From DPLL to CDCL SAT solvers Combinatorial Problem Solving (CPS) - - PowerPoint PPT Presentation

▶
from dpll to cdcl sat solvers
SMART_READER_LITE
LIVE PREVIEW

From DPLL to CDCL SAT solvers Combinatorial Problem Solving (CPS) - - PowerPoint PPT Presentation

From DPLL to CDCL SAT solvers Combinatorial Problem Solving (CPS) Albert Oliveras Enric Rodr guez-Carbonell May 17, 2019 Overview of the session Conflict Analysis Motivating example Backjumping Conflict graph Lemma


slide-1
SLIDE 1

From DPLL to CDCL SAT solvers

Combinatorial Problem Solving (CPS)

Albert Oliveras Enric Rodr´ ıguez-Carbonell

May 17, 2019

slide-2
SLIDE 2

Overview of the session

2 / 56

■

Conflict Analysis

◆

Motivating example

◆

Backjumping

◆

Conflict graph

◆

Lemma shortening

■

Lemma removal

■

Decision heuristics

■

Restarts

■

Efficient implementation of UnitProp:

◆

Occur lists

◆

Two-watched literals

■

Final remarks

slide-3
SLIDE 3

Motivating Example

3 / 56

p11 ∨ p6 ∨ p12 p11 ∨ p13 ∨ p16 p12 ∨ p16 ∨ p2 p2 ∨ p4 ∨ p20 ∨ p10 p10 ∨ p8 ∨ p1 p10 ∨ p3 p3 ∨ p26 p10 ∨ p5 p1 ∨ p3 ∨ p5 ∨ p17 ∨ p18 p3 ∨ p19 ∨ p18 p21 ∨ p6 p21 ∨ p17 p22 ∨ p13 p13 ∨ p8 p4 ∨ p19 p20 ∨ p23 p20 ∨ p24 p25 ∅ = ⇒

slide-4
SLIDE 4

Motivating Example

3 / 56

p11 ∨ p6 ∨ p12 p11 ∨ p13 ∨ p16 p12 ∨ p16 ∨ p2 p2 ∨ p4 ∨ p20 ∨ p10 p10 ∨ p8 ∨ p1 p10 ∨ p3 p3 ∨ p26 p10 ∨ p5 p1 ∨ p3 ∨ p5 ∨ p17 ∨ p18 p3 ∨ p19 ∨ p18 p21 ∨ p6 p21 ∨ p17 p22 ∨ p13 p13 ∨ p8 p4 ∨ p19 p20 ∨ p23 p20 ∨ p24 p25 ∅ = ⇒ p25 = ⇒

slide-5
SLIDE 5

Motivating Example

3 / 56

p11 ∨ p6 ∨ p12 p11 ∨ p13 ∨ p16 p12 ∨ p16 ∨ p2 p2 ∨ p4 ∨ p20 ∨ p10 p10 ∨ p8 ∨ p1 p10 ∨ p3 p3 ∨ p26 p10 ∨ p5 p1 ∨ p3 ∨ p5 ∨ p17 ∨ p18 p3 ∨ p19 ∨ p18 p21 ∨ p6 p21 ∨ p17 p22 ∨ p13 p13 ∨ p8 p4 ∨ p19 p20 ∨ p23 p20 ∨ p24 p25 ∅ = ⇒ p25 = ⇒ p25 pd

21 =

⇒

slide-6
SLIDE 6

Motivating Example

3 / 56

p11 ∨ p6 ∨ p12 p11 ∨ p13 ∨ p16 p12 ∨ p16 ∨ p2 p2 ∨ p4 ∨ p20 ∨ p10 p10 ∨ p8 ∨ p1 p10 ∨ p3 p3 ∨ p26 p10 ∨ p5 p1 ∨ p3 ∨ p5 ∨ p17 ∨ p18 p3 ∨ p19 ∨ p18 p21 ∨ p6 p21 ∨ p17 p22 ∨ p13 p13 ∨ p8 p4 ∨ p19 p20 ∨ p23 p20 ∨ p24 p25 ∅ = ⇒ p25 = ⇒ p25 pd

21 =

⇒ p25 pd

21 p6 =

⇒

slide-7
SLIDE 7

Motivating Example

3 / 56

p11 ∨ p6 ∨ p12 p11 ∨ p13 ∨ p16 p12 ∨ p16 ∨ p2 p2 ∨ p4 ∨ p20 ∨ p10 p10 ∨ p8 ∨ p1 p10 ∨ p3 p3 ∨ p26 p10 ∨ p5 p1 ∨ p3 ∨ p5 ∨ p17 ∨ p18 p3 ∨ p19 ∨ p18 p21 ∨ p6 p21 ∨ p17 p22 ∨ p13 p13 ∨ p8 p4 ∨ p19 p20 ∨ p23 p20 ∨ p24 p25 ∅ = ⇒ p25 = ⇒ p25 pd

21 =

⇒ p25 pd

21 p6 =

⇒ p25 pd

21 p6 p17 =

⇒

slide-8
SLIDE 8

Motivating Example

3 / 56

p11 ∨ p6 ∨ p12 p11 ∨ p13 ∨ p16 p12 ∨ p16 ∨ p2 p2 ∨ p4 ∨ p20 ∨ p10 p10 ∨ p8 ∨ p1 p10 ∨ p3 p3 ∨ p26 p10 ∨ p5 p1 ∨ p3 ∨ p5 ∨ p17 ∨ p18 p3 ∨ p19 ∨ p18 p21 ∨ p6 p21 ∨ p17 p22 ∨ p13 p13 ∨ p8 p4 ∨ p19 p20 ∨ p23 p20 ∨ p24 p25 ∅ = ⇒ p25 = ⇒ p25 pd

21 =

⇒ p25 pd

21 p6 =

⇒ p25 pd

21 p6 p17 =

⇒ p25 pd

21 p6 p17 pd 22 =

⇒

slide-9
SLIDE 9

Motivating Example

3 / 56

p11 ∨ p6 ∨ p12 p11 ∨ p13 ∨ p16 p12 ∨ p16 ∨ p2 p2 ∨ p4 ∨ p20 ∨ p10 p10 ∨ p8 ∨ p1 p10 ∨ p3 p3 ∨ p26 p10 ∨ p5 p1 ∨ p3 ∨ p5 ∨ p17 ∨ p18 p3 ∨ p19 ∨ p18 p21 ∨ p6 p21 ∨ p17 p22 ∨ p13 p13 ∨ p8 p4 ∨ p19 p20 ∨ p23 p20 ∨ p24 p25 ∅ = ⇒ p25 = ⇒ p25 pd

21 =

⇒ p25 pd

21 p6 =

⇒ p25 pd

21 p6 p17 =

⇒ p25 pd

21 p6 p17 pd 22 =

⇒ p25 pd

21 p6 p17 pd 22 p13 =

⇒

slide-10
SLIDE 10

Motivating Example

3 / 56

p11 ∨ p6 ∨ p12 p11 ∨ p13 ∨ p16 p12 ∨ p16 ∨ p2 p2 ∨ p4 ∨ p20 ∨ p10 p10 ∨ p8 ∨ p1 p10 ∨ p3 p3 ∨ p26 p10 ∨ p5 p1 ∨ p3 ∨ p5 ∨ p17 ∨ p18 p3 ∨ p19 ∨ p18 p21 ∨ p6 p21 ∨ p17 p22 ∨ p13 p13 ∨ p8 p4 ∨ p19 p20 ∨ p23 p20 ∨ p24 p25 ∅ = ⇒ p25 = ⇒ p25 pd

21 =

⇒ p25 pd

21 p6 =

⇒ p25 pd

21 p6 p17 =

⇒ p25 pd

21 p6 p17 pd 22 =

⇒ p25 pd

21 p6 p17 pd 22 p13 =

⇒ p25 pd

21 p6 p17 pd 22 p13 p8 =

⇒

slide-11
SLIDE 11

Motivating Example

3 / 56

p11 ∨ p6 ∨ p12 p11 ∨ p13 ∨ p16 p12 ∨ p16 ∨ p2 p2 ∨ p4 ∨ p20 ∨ p10 p10 ∨ p8 ∨ p1 p10 ∨ p3 p3 ∨ p26 p10 ∨ p5 p1 ∨ p3 ∨ p5 ∨ p17 ∨ p18 p3 ∨ p19 ∨ p18 p21 ∨ p6 p21 ∨ p17 p22 ∨ p13 p13 ∨ p8 p4 ∨ p19 p20 ∨ p23 p20 ∨ p24 p25 ∅ = ⇒ p25 = ⇒ p25 pd

21 =

⇒ p25 pd

21 p6 =

⇒ p25 pd

21 p6 p17 =

⇒ p25 pd

21 p6 p17 pd 22 =

⇒ p25 pd

21 p6 p17 pd 22 p13 =

⇒ p25 pd

21 p6 p17 pd 22 p13 p8 =

⇒ p25 pd

21 p6 p17 pd 22 p13 p8 pd 4 =

⇒

slide-12
SLIDE 12

Motivating Example

3 / 56

p11 ∨ p6 ∨ p12 p11 ∨ p13 ∨ p16 p12 ∨ p16 ∨ p2 p2 ∨ p4 ∨ p20 ∨ p10 p10 ∨ p8 ∨ p1 p10 ∨ p3 p3 ∨ p26 p10 ∨ p5 p1 ∨ p3 ∨ p5 ∨ p17 ∨ p18 p3 ∨ p19 ∨ p18 p21 ∨ p6 p21 ∨ p17 p22 ∨ p13 p13 ∨ p8 p4 ∨ p19 p20 ∨ p23 p20 ∨ p24 p25 ∅ = ⇒ p25 = ⇒ p25 pd

21 =

⇒ p25 pd

21 p6 =

⇒ p25 pd

21 p6 p17 =

⇒ p25 pd

21 p6 p17 pd 22 =

⇒ p25 pd

21 p6 p17 pd 22 p13 =

⇒ p25 pd

21 p6 p17 pd 22 p13 p8 =

⇒ p25 pd

21 p6 p17 pd 22 p13 p8 pd 4 =

⇒ p25 pd

21 p6 p17 pd 22 p13 p8 pd 4 p19 =

⇒

slide-13
SLIDE 13

Motivating Example

3 / 56

p11 ∨ p6 ∨ p12 p11 ∨ p13 ∨ p16 p12 ∨ p16 ∨ p2 p2 ∨ p4 ∨ p20 ∨ p10 p10 ∨ p8 ∨ p1 p10 ∨ p3 p3 ∨ p26 p10 ∨ p5 p1 ∨ p3 ∨ p5 ∨ p17 ∨ p18 p3 ∨ p19 ∨ p18 p21 ∨ p6 p21 ∨ p17 p22 ∨ p13 p13 ∨ p8 p4 ∨ p19 p20 ∨ p23 p20 ∨ p24 p25 ∅ = ⇒ p25 = ⇒ p25 pd

21 =

⇒ p25 pd

21 p6 =

⇒ p25 pd

21 p6 p17 =

⇒ p25 pd

21 p6 p17 pd 22 =

⇒ p25 pd

21 p6 p17 pd 22 p13 =

⇒ p25 pd

21 p6 p17 pd 22 p13 p8 =

⇒ p25 pd

21 p6 p17 pd 22 p13 p8 pd 4 =

⇒ p25 pd

21 p6 p17 pd 22 p13 p8 pd 4 p19 =

⇒ p25 pd

21 p6 p17 pd 22 p13 p8 pd 4 p19 pd 20 =

⇒

slide-14
SLIDE 14

Motivating Example

3 / 56

p11 ∨ p6 ∨ p12 p11 ∨ p13 ∨ p16 p12 ∨ p16 ∨ p2 p2 ∨ p4 ∨ p20 ∨ p10 p10 ∨ p8 ∨ p1 p10 ∨ p3 p3 ∨ p26 p10 ∨ p5 p1 ∨ p3 ∨ p5 ∨ p17 ∨ p18 p3 ∨ p19 ∨ p18 p21 ∨ p6 p21 ∨ p17 p22 ∨ p13 p13 ∨ p8 p4 ∨ p19 p20 ∨ p23 p20 ∨ p24 p25 ∅ = ⇒ p25 = ⇒ p25 pd

21 =

⇒ p25 pd

21 p6 =

⇒ p25 pd

21 p6 p17 =

⇒ p25 pd

21 p6 p17 pd 22 =

⇒ p25 pd

21 p6 p17 pd 22 p13 =

⇒ p25 pd

21 p6 p17 pd 22 p13 p8 =

⇒ p25 pd

21 p6 p17 pd 22 p13 p8 pd 4 =

⇒ p25 pd

21 p6 p17 pd 22 p13 p8 pd 4 p19 =

⇒ p25 pd

21 p6 p17 pd 22 p13 p8 pd 4 p19 pd 20 =

⇒ p25 pd

21 p6 p17 pd 22 p13 p8 pd 4 p19 pd 20 p23 =

⇒

slide-15
SLIDE 15

Motivating Example

3 / 56

p11 ∨ p6 ∨ p12 p11 ∨ p13 ∨ p16 p12 ∨ p16 ∨ p2 p2 ∨ p4 ∨ p20 ∨ p10 p10 ∨ p8 ∨ p1 p10 ∨ p3 p3 ∨ p26 p10 ∨ p5 p1 ∨ p3 ∨ p5 ∨ p17 ∨ p18 p3 ∨ p19 ∨ p18 p21 ∨ p6 p21 ∨ p17 p22 ∨ p13 p13 ∨ p8 p4 ∨ p19 p20 ∨ p23 p20 ∨ p24 p25 ∅ = ⇒ p25 = ⇒ p25 pd

21 =

⇒ p25 pd

21 p6 =

⇒ p25 pd

21 p6 p17 =

⇒ p25 pd

21 p6 p17 pd 22 =

⇒ p25 pd

21 p6 p17 pd 22 p13 =

⇒ p25 pd

21 p6 p17 pd 22 p13 p8 =

⇒ p25 pd

21 p6 p17 pd 22 p13 p8 pd 4 =

⇒ p25 pd

21 p6 p17 pd 22 p13 p8 pd 4 p19 =

⇒ p25 pd

21 p6 p17 pd 22 p13 p8 pd 4 p19 pd 20 =

⇒ p25 pd

21 p6 p17 pd 22 p13 p8 pd 4 p19 pd 20 p23 =

⇒ p25 pd

21 p6 p17 pd 22 p13 p8 pd 4 p19 pd 20 p23

  • M

pd

11 =

⇒

slide-16
SLIDE 16

Motivating Example

3 / 56

p11 ∨ p6 ∨ p12 p11 ∨ p13 ∨ p16 p12 ∨ p16 ∨ p2 p2 ∨ p4 ∨ p20 ∨ p10 p10 ∨ p8 ∨ p1 p10 ∨ p3 p3 ∨ p26 p10 ∨ p5 p1 ∨ p3 ∨ p5 ∨ p17 ∨ p18 p3 ∨ p19 ∨ p18 p21 ∨ p6 p21 ∨ p17 p22 ∨ p13 p13 ∨ p8 p4 ∨ p19 p20 ∨ p23 p20 ∨ p24 p25 ∅ = ⇒ p25 = ⇒ p25 pd

21 =

⇒ p25 pd

21 p6 =

⇒ p25 pd

21 p6 p17 =

⇒ p25 pd

21 p6 p17 pd 22 =

⇒ p25 pd

21 p6 p17 pd 22 p13 =

⇒ p25 pd

21 p6 p17 pd 22 p13 p8 =

⇒ p25 pd

21 p6 p17 pd 22 p13 p8 pd 4 =

⇒ p25 pd

21 p6 p17 pd 22 p13 p8 pd 4 p19 =

⇒ p25 pd

21 p6 p17 pd 22 p13 p8 pd 4 p19 pd 20 =

⇒ p25 pd

21 p6 p17 pd 22 p13 p8 pd 4 p19 pd 20 p23 =

⇒ p25 pd

21 p6 p17 pd 22 p13 p8 pd 4 p19 pd 20 p23

  • M

pd

11 =

⇒ M pd

11 =

⇒

slide-17
SLIDE 17

Motivating Example

3 / 56

p11 ∨ p6 ∨ p12 p11 ∨ p13 ∨ p16 p12 ∨ p16 ∨ p2 p2 ∨ p4 ∨ p20 ∨ p10 p10 ∨ p8 ∨ p1 p10 ∨ p3 p3 ∨ p26 p10 ∨ p5 p1 ∨ p3 ∨ p5 ∨ p17 ∨ p18 p3 ∨ p19 ∨ p18 p21 ∨ p6 p21 ∨ p17 p22 ∨ p13 p13 ∨ p8 p4 ∨ p19 p20 ∨ p23 p20 ∨ p24 p25 ∅ = ⇒ p25 = ⇒ p25 pd

21 =

⇒ p25 pd

21 p6 =

⇒ p25 pd

21 p6 p17 =

⇒ p25 pd

21 p6 p17 pd 22 =

⇒ p25 pd

21 p6 p17 pd 22 p13 =

⇒ p25 pd

21 p6 p17 pd 22 p13 p8 =

⇒ p25 pd

21 p6 p17 pd 22 p13 p8 pd 4 =

⇒ p25 pd

21 p6 p17 pd 22 p13 p8 pd 4 p19 =

⇒ p25 pd

21 p6 p17 pd 22 p13 p8 pd 4 p19 pd 20 =

⇒ p25 pd

21 p6 p17 pd 22 p13 p8 pd 4 p19 pd 20 p23 =

⇒ p25 pd

21 p6 p17 pd 22 p13 p8 pd 4 p19 pd 20 p23

  • M

pd

11 =

⇒ M pd

11 =

⇒ Before we continue, some notation:

  • Literal p25 belongs to decision level (DL) 0
  • Literals pd

21, p6, p17 belong to decision level 1

  • ...
slide-18
SLIDE 18

Motivating Example

4 / 56

p11 ∨ p6 ∨ p12 p11 ∨ p13 ∨ p16 p12 ∨ p16 ∨ p2 p2 ∨ p4 ∨ p20 ∨ p10 p10 ∨ p8 ∨ p1 p10 ∨ p3 p3 ∨ p26 p10 ∨ p5 p1 ∨ p3 ∨ p5 ∨ p17 ∨ p18 p3 ∨ p19 ∨ p18 p21 ∨ p6 p21 ∨ p17 p22 ∨ p13 p13 ∨ p8 p4 ∨ p19 p20 ∨ p23 p20 ∨ p24 p25 M is p25 pd

21 p6 p17 pd 22 p13 p8 pd 4 p19 pd 20 p23

slide-19
SLIDE 19

Motivating Example

4 / 56

p11 ∨ p6 ∨ p12 p11 ∨ p13 ∨ p16 p12 ∨ p16 ∨ p2 p2 ∨ p4 ∨ p20 ∨ p10 p10 ∨ p8 ∨ p1 p10 ∨ p3 p3 ∨ p26 p10 ∨ p5 p1 ∨ p3 ∨ p5 ∨ p17 ∨ p18 p3 ∨ p19 ∨ p18 p21 ∨ p6 p21 ∨ p17 p22 ∨ p13 p13 ∨ p8 p4 ∨ p19 p20 ∨ p23 p20 ∨ p24 p25 M is p25 pd

21 p6 p17 pd 22 p13 p8 pd 4 p19 pd 20 p23

M pd

11 =

⇒

slide-20
SLIDE 20

Motivating Example

4 / 56

p11 ∨ p6 ∨ p12 p11 ∨ p13 ∨ p16 p12 ∨ p16 ∨ p2 p2 ∨ p4 ∨ p20 ∨ p10 p10 ∨ p8 ∨ p1 p10 ∨ p3 p3 ∨ p26 p10 ∨ p5 p1 ∨ p3 ∨ p5 ∨ p17 ∨ p18 p3 ∨ p19 ∨ p18 p21 ∨ p6 p21 ∨ p17 p22 ∨ p13 p13 ∨ p8 p4 ∨ p19 p20 ∨ p23 p20 ∨ p24 p25 M is p25 pd

21 p6 p17 pd 22 p13 p8 pd 4 p19 pd 20 p23

M pd

11 =

⇒ M pd

11 p12 =

⇒

slide-21
SLIDE 21

Motivating Example

4 / 56

p11 ∨ p6 ∨ p12 p11 ∨ p13 ∨ p16 p12 ∨ p16 ∨ p2 p2 ∨ p4 ∨ p20 ∨ p10 p10 ∨ p8 ∨ p1 p10 ∨ p3 p3 ∨ p26 p10 ∨ p5 p1 ∨ p3 ∨ p5 ∨ p17 ∨ p18 p3 ∨ p19 ∨ p18 p21 ∨ p6 p21 ∨ p17 p22 ∨ p13 p13 ∨ p8 p4 ∨ p19 p20 ∨ p23 p20 ∨ p24 p25 M is p25 pd

21 p6 p17 pd 22 p13 p8 pd 4 p19 pd 20 p23

M pd

11 =

⇒ M pd

11 p12 =

⇒ M pd

11 p12 p16 =

⇒

slide-22
SLIDE 22

Motivating Example

4 / 56

p11 ∨ p6 ∨ p12 p11 ∨ p13 ∨ p16 p12 ∨ p16 ∨ p2 p2 ∨ p4 ∨ p20 ∨ p10 p10 ∨ p8 ∨ p1 p10 ∨ p3 p3 ∨ p26 p10 ∨ p5 p1 ∨ p3 ∨ p5 ∨ p17 ∨ p18 p3 ∨ p19 ∨ p18 p21 ∨ p6 p21 ∨ p17 p22 ∨ p13 p13 ∨ p8 p4 ∨ p19 p20 ∨ p23 p20 ∨ p24 p25 M is p25 pd

21 p6 p17 pd 22 p13 p8 pd 4 p19 pd 20 p23

M pd

11 =

⇒ M pd

11 p12 =

⇒ M pd

11 p12 p16 =

⇒ M pd

11 p12 p16 p2 =

⇒

slide-23
SLIDE 23

Motivating Example

4 / 56

p11 ∨ p6 ∨ p12 p11 ∨ p13 ∨ p16 p12 ∨ p16 ∨ p2 p2 ∨ p4 ∨ p20 ∨ p10 p10 ∨ p8 ∨ p1 p10 ∨ p3 p3 ∨ p26 p10 ∨ p5 p1 ∨ p3 ∨ p5 ∨ p17 ∨ p18 p3 ∨ p19 ∨ p18 p21 ∨ p6 p21 ∨ p17 p22 ∨ p13 p13 ∨ p8 p4 ∨ p19 p20 ∨ p23 p20 ∨ p24 p25 M is p25 pd

21 p6 p17 pd 22 p13 p8 pd 4 p19 pd 20 p23

M pd

11 =

⇒ M pd

11 p12 =

⇒ M pd

11 p12 p16 =

⇒ M pd

11 p12 p16 p2 =

⇒ M pd

11 p12 p16 p2 p10 =

⇒

slide-24
SLIDE 24

Motivating Example

4 / 56

p11 ∨ p6 ∨ p12 p11 ∨ p13 ∨ p16 p12 ∨ p16 ∨ p2 p2 ∨ p4 ∨ p20 ∨ p10 p10 ∨ p8 ∨ p1 p10 ∨ p3 p3 ∨ p26 p10 ∨ p5 p1 ∨ p3 ∨ p5 ∨ p17 ∨ p18 p3 ∨ p19 ∨ p18 p21 ∨ p6 p21 ∨ p17 p22 ∨ p13 p13 ∨ p8 p4 ∨ p19 p20 ∨ p23 p20 ∨ p24 p25 M is p25 pd

21 p6 p17 pd 22 p13 p8 pd 4 p19 pd 20 p23

M pd

11 =

⇒ M pd

11 p12 =

⇒ M pd

11 p12 p16 =

⇒ M pd

11 p12 p16 p2 =

⇒ M pd

11 p12 p16 p2 p10 =

⇒ M pd

11 p12 p16 p2 p10 p1 =

⇒

slide-25
SLIDE 25

Motivating Example

4 / 56

p11 ∨ p6 ∨ p12 p11 ∨ p13 ∨ p16 p12 ∨ p16 ∨ p2 p2 ∨ p4 ∨ p20 ∨ p10 p10 ∨ p8 ∨ p1 p10 ∨ p3 p3 ∨ p26 p10 ∨ p5 p1 ∨ p3 ∨ p5 ∨ p17 ∨ p18 p3 ∨ p19 ∨ p18 p21 ∨ p6 p21 ∨ p17 p22 ∨ p13 p13 ∨ p8 p4 ∨ p19 p20 ∨ p23 p20 ∨ p24 p25 M is p25 pd

21 p6 p17 pd 22 p13 p8 pd 4 p19 pd 20 p23

M pd

11 =

⇒ M pd

11 p12 =

⇒ M pd

11 p12 p16 =

⇒ M pd

11 p12 p16 p2 =

⇒ M pd

11 p12 p16 p2 p10 =

⇒ M pd

11 p12 p16 p2 p10 p1 =

⇒ M pd

11 p12 p16 p2 p10 p1 p3 =

⇒

slide-26
SLIDE 26

Motivating Example

4 / 56

p11 ∨ p6 ∨ p12 p11 ∨ p13 ∨ p16 p12 ∨ p16 ∨ p2 p2 ∨ p4 ∨ p20 ∨ p10 p10 ∨ p8 ∨ p1 p10 ∨ p3 p3 ∨ p26 p10 ∨ p5 p1 ∨ p3 ∨ p5 ∨ p17 ∨ p18 p3 ∨ p19 ∨ p18 p21 ∨ p6 p21 ∨ p17 p22 ∨ p13 p13 ∨ p8 p4 ∨ p19 p20 ∨ p23 p20 ∨ p24 p25 M is p25 pd

21 p6 p17 pd 22 p13 p8 pd 4 p19 pd 20 p23

M pd

11 =

⇒ M pd

11 p12 =

⇒ M pd

11 p12 p16 =

⇒ M pd

11 p12 p16 p2 =

⇒ M pd

11 p12 p16 p2 p10 =

⇒ M pd

11 p12 p16 p2 p10 p1 =

⇒ M pd

11 p12 p16 p2 p10 p1 p3 =

⇒ M pd

11 p12 p16 p2 p10 p1 p3 p26 =

⇒

slide-27
SLIDE 27

Motivating Example

4 / 56

p11 ∨ p6 ∨ p12 p11 ∨ p13 ∨ p16 p12 ∨ p16 ∨ p2 p2 ∨ p4 ∨ p20 ∨ p10 p10 ∨ p8 ∨ p1 p10 ∨ p3 p3 ∨ p26 p10 ∨ p5 p1 ∨ p3 ∨ p5 ∨ p17 ∨ p18 p3 ∨ p19 ∨ p18 p21 ∨ p6 p21 ∨ p17 p22 ∨ p13 p13 ∨ p8 p4 ∨ p19 p20 ∨ p23 p20 ∨ p24 p25 M is p25 pd

21 p6 p17 pd 22 p13 p8 pd 4 p19 pd 20 p23

M pd

11 =

⇒ M pd

11 p12 =

⇒ M pd

11 p12 p16 =

⇒ M pd

11 p12 p16 p2 =

⇒ M pd

11 p12 p16 p2 p10 =

⇒ M pd

11 p12 p16 p2 p10 p1 =

⇒ M pd

11 p12 p16 p2 p10 p1 p3 =

⇒ M pd

11 p12 p16 p2 p10 p1 p3 p26 =

⇒ M pd

11 p12 p16 p2 p10 p1 p3 p26 p5 =

⇒

slide-28
SLIDE 28

Motivating Example

4 / 56

p11 ∨ p6 ∨ p12 p11 ∨ p13 ∨ p16 p12 ∨ p16 ∨ p2 p2 ∨ p4 ∨ p20 ∨ p10 p10 ∨ p8 ∨ p1 p10 ∨ p3 p3 ∨ p26 p10 ∨ p5 p1 ∨ p3 ∨ p5 ∨ p17 ∨ p18 p3 ∨ p19 ∨ p18 p21 ∨ p6 p21 ∨ p17 p22 ∨ p13 p13 ∨ p8 p4 ∨ p19 p20 ∨ p23 p20 ∨ p24 p25 M is p25 pd

21 p6 p17 pd 22 p13 p8 pd 4 p19 pd 20 p23

M pd

11 =

⇒ M pd

11 p12 =

⇒ M pd

11 p12 p16 =

⇒ M pd

11 p12 p16 p2 =

⇒ M pd

11 p12 p16 p2 p10 =

⇒ M pd

11 p12 p16 p2 p10 p1 =

⇒ M pd

11 p12 p16 p2 p10 p1 p3 =

⇒ M pd

11 p12 p16 p2 p10 p1 p3 p26 =

⇒ M pd

11 p12 p16 p2 p10 p1 p3 p26 p5 =

⇒ M pd

11 p12 p16 p2 p10 p1 p3 p26 p5 p18 =

⇒

slide-29
SLIDE 29

Motivating Example

4 / 56

p11 ∨ p6 ∨ p12 p11 ∨ p13 ∨ p16 p12 ∨ p16 ∨ p2 p2 ∨ p4 ∨ p20 ∨ p10 p10 ∨ p8 ∨ p1 p10 ∨ p3 p3 ∨ p26 p10 ∨ p5 p1 ∨ p3 ∨ p5 ∨ p17 ∨ p18 p3 ∨ p19 ∨ p18 p21 ∨ p6 p21 ∨ p17 p22 ∨ p13 p13 ∨ p8 p4 ∨ p19 p20 ∨ p23 p20 ∨ p24 p25 M is p25 pd

21 p6 p17 pd 22 p13 p8 pd 4 p19 pd 20 p23

M pd

11 =

⇒ M pd

11 p12 =

⇒ M pd

11 p12 p16 =

⇒ M pd

11 p12 p16 p2 =

⇒ M pd

11 p12 p16 p2 p10 =

⇒ M pd

11 p12 p16 p2 p10 p1 =

⇒ M pd

11 p12 p16 p2 p10 p1 p3 =

⇒ M pd

11 p12 p16 p2 p10 p1 p3 p26 =

⇒ M pd

11 p12 p16 p2 p10 p1 p3 p26 p5 =

⇒ M pd

11 p12 p16 p2 p10 p1 p3 p26 p5 p18 =

⇒ conflict!

slide-30
SLIDE 30

Motivating Example

4 / 56

p11 ∨ p6 ∨ p12 p11 ∨ p13 ∨ p16 p12 ∨ p16 ∨ p2 p2 ∨ p4 ∨ p20 ∨ p10 p10 ∨ p8 ∨ p1 p10 ∨ p3 p3 ∨ p26 p10 ∨ p5 p1 ∨ p3 ∨ p5 ∨ p17 ∨ p18 p3 ∨ p19 ∨ p18 p21 ∨ p6 p21 ∨ p17 p22 ∨ p13 p13 ∨ p8 p4 ∨ p19 p20 ∨ p23 p20 ∨ p24 p25 M is p25 pd

21 p6 p17 pd 22 p13 p8 pd 4 p19 pd 20 p23

M pd

11 =

⇒ M pd

11 p12 =

⇒ M pd

11 p12 p16 =

⇒ M pd

11 p12 p16 p2 =

⇒ M pd

11 p12 p16 p2 p10 =

⇒ M pd

11 p12 p16 p2 p10 p1 =

⇒ M pd

11 p12 p16 p2 p10 p1 p3 =

⇒ M pd

11 p12 p16 p2 p10 p1 p3 p26 =

⇒ M pd

11 p12 p16 p2 p10 p1 p3 p26 p5 =

⇒ M pd

11 p12 p16 p2 p10 p1 p3 p26 p5 p18 =

⇒ conflict!

■

Let’s try to find out the causes of the conflict

■

First of all we will compute, for each literal of the current decision level, the reason why it is true

slide-31
SLIDE 31

Motivating Example

5 / 56

1. p11 ∨ p6 ∨ p12 2. p11 ∨ p13 ∨ p16 3. p12 ∨ p16 ∨ p2 4. p2 ∨ p4 ∨ p20 ∨ p10 5. p10 ∨ p8 ∨ p1 6. p10 ∨ p3 7. p3 ∨ p26 8. p10 ∨ p5 9. p1∨p3∨p5∨p17∨p18 10. p3 ∨ p19 ∨ p18 11. p21 ∨ p6 12. p21 ∨ p17 13. p22 ∨ p13 14. p13 ∨ p8 15. p4 ∨ p19 16. p20 ∨ p23 17. p20 ∨ p24 18. p25

slide-32
SLIDE 32

Motivating Example

5 / 56

1. p11 ∨ p6 ∨ p12 2. p11 ∨ p13 ∨ p16 3. p12 ∨ p16 ∨ p2 4. p2 ∨ p4 ∨ p20 ∨ p10 5. p10 ∨ p8 ∨ p1 6. p10 ∨ p3 7. p3 ∨ p26 8. p10 ∨ p5 9. p1∨p3∨p5∨p17∨p18 10. p3 ∨ p19 ∨ p18 11. p21 ∨ p6 12. p21 ∨ p17 13. p22 ∨ p13 14. p13 ∨ p8 15. p4 ∨ p19 16. p20 ∨ p23 17. p20 ∨ p24 18. p25 Literal pd

11

p12 p16 p2 p10 p1 p3 p26 p5 p18 Reason ⊥ 1 2 3 4 5 6 7 8 9

slide-33
SLIDE 33

Motivating Example

5 / 56

1. p11 ∨ p6 ∨ p12 2. p11 ∨ p13 ∨ p16 3. p12 ∨ p16 ∨ p2 4. p2 ∨ p4 ∨ p20 ∨ p10 5. p10 ∨ p8 ∨ p1 6. p10 ∨ p3 7. p3 ∨ p26 8. p10 ∨ p5 9. p1∨p3∨p5∨p17∨p18 10. p3 ∨ p19 ∨ p18 11. p21 ∨ p6 12. p21 ∨ p17 13. p22 ∨ p13 14. p13 ∨ p8 15. p4 ∨ p19 16. p20 ∨ p23 17. p20 ∨ p24 18. p25 Literal pd

11

p12 p16 p2 p10 p1 p3 p26 p5 p18 Reason ⊥ 1 2 3 4 5 6 7 8 9 Let us take the conflicting clause p3 ∨ p19 ∨ p18. p18 is true due to clause 9. Resolution gives: p3 ∨ p19 ∨ p18 p1 ∨ p3 ∨ p5 ∨ p17 ∨ p18 p3 ∨ p19 ∨ p1 ∨ p5 ∨ p17

slide-34
SLIDE 34

Motivating Example

5 / 56

1. p11 ∨ p6 ∨ p12 2. p11 ∨ p13 ∨ p16 3. p12 ∨ p16 ∨ p2 4. p2 ∨ p4 ∨ p20 ∨ p10 5. p10 ∨ p8 ∨ p1 6. p10 ∨ p3 7. p3 ∨ p26 8. p10 ∨ p5 9. p1∨p3∨p5∨p17∨p18 10. p3 ∨ p19 ∨ p18 11. p21 ∨ p6 12. p21 ∨ p17 13. p22 ∨ p13 14. p13 ∨ p8 15. p4 ∨ p19 16. p20 ∨ p23 17. p20 ∨ p24 18. p25 Literal pd

11

p12 p16 p2 p10 p1 p3 p26 p5 p18 Reason ⊥ 1 2 3 4 5 6 7 8 9 Let us take the conflicting clause p3 ∨ p19 ∨ p18. p18 is true due to clause 9. Resolution gives: p3 ∨ p19 ∨ p18 p1 ∨ p3 ∨ p5 ∨ p17 ∨ p18 p3 ∨ p19 ∨ p1 ∨ p5 ∨ p17 Now the last assigned literal that is false in the new clause is p5. The reason why p5 is false is clause 8. Again, resolution: p3 ∨ p19 ∨ p1 ∨ p5 ∨ p17 p10 ∨ p5 p3 ∨ p19 ∨ p1 ∨ p17 ∨ p10

slide-35
SLIDE 35

Motivating Example

5 / 56

1. p11 ∨ p6 ∨ p12 2. p11 ∨ p13 ∨ p16 3. p12 ∨ p16 ∨ p2 4. p2 ∨ p4 ∨ p20 ∨ p10 5. p10 ∨ p8 ∨ p1 6. p10 ∨ p3 7. p3 ∨ p26 8. p10 ∨ p5 9. p1∨p3∨p5∨p17∨p18 10. p3 ∨ p19 ∨ p18 11. p21 ∨ p6 12. p21 ∨ p17 13. p22 ∨ p13 14. p13 ∨ p8 15. p4 ∨ p19 16. p20 ∨ p23 17. p20 ∨ p24 18. p25 Literal pd

11

p12 p16 p2 p10 p1 p3 p26 p5 p18 Reason ⊥ 1 2 3 4 5 6 7 8 9 Let us take the conflicting clause p3 ∨ p19 ∨ p18. p18 is true due to clause 9. Resolution gives: p3 ∨ p19 ∨ p18 p1 ∨ p3 ∨ p5 ∨ p17 ∨ p18 p3 ∨ p19 ∨ p1 ∨ p5 ∨ p17 Now the last assigned literal that is false in the new clause is p5. The reason why p5 is false is clause 8. Again, resolution: p3 ∨ p19 ∨ p1 ∨ p5 ∨ p17 p10 ∨ p5 p3 ∨ p19 ∨ p1 ∨ p17 ∨ p10 The process is now iterated...

slide-36
SLIDE 36

Motivating Example

6 / 56

1. p11 ∨ p6 ∨ p12 2. p11 ∨ p13 ∨ p16 3. p12 ∨ p16 ∨ p2 4. p2 ∨ p4 ∨ p20 ∨ p10 5. p10 ∨ p8 ∨ p1 6. p10 ∨ p3 7. p3 ∨ p26 8. p10 ∨ p5 9. p1 ∨ p3 ∨ p5 ∨ p17 ∨ p18 10. p3 ∨ p19 ∨ p18 11. p21 ∨ p6 12. p21 ∨ p17 13. p22 ∨ p13 14. p13 ∨ p8 15. p4 ∨ p19 16. p20 ∨ p23 17. p20 ∨ p24 18. p25 M is p25 pd

21 p6 p17 pd 22 p13 p8 pd 4 p19 pd 20 p23

Literal pd

11

p12 p16 p2 p10 p1 p3 p26 p5 p18 Reason ∅ 1 2 3 4 5 6 7 8 9

slide-37
SLIDE 37

Motivating Example

6 / 56

1. p11 ∨ p6 ∨ p12 2. p11 ∨ p13 ∨ p16 3. p12 ∨ p16 ∨ p2 4. p2 ∨ p4 ∨ p20 ∨ p10 5. p10 ∨ p8 ∨ p1 6. p10 ∨ p3 7. p3 ∨ p26 8. p10 ∨ p5 9. p1 ∨ p3 ∨ p5 ∨ p17 ∨ p18 10. p3 ∨ p19 ∨ p18 11. p21 ∨ p6 12. p21 ∨ p17 13. p22 ∨ p13 14. p13 ∨ p8 15. p4 ∨ p19 16. p20 ∨ p23 17. p20 ∨ p24 18. p25 M is p25 pd

21 p6 p17 pd 22 p13 p8 pd 4 p19 pd 20 p23

Literal pd

11

p12 p16 p2 p10 p1 p3 p26 p5 p18 Reason ∅ 1 2 3 4 5 6 7 8 9 p3 ∨ p19 ∨ p18 p1 ∨ p3 ∨ p5 ∨ p17 ∨ p18 p3 ∨ p19 ∨ p1 ∨ p5 ∨ p17 p10 ∨ p5 p3 ∨ p19 ∨ p1 ∨ p17 ∨ p10

slide-38
SLIDE 38

Motivating Example

6 / 56

1. p11 ∨ p6 ∨ p12 2. p11 ∨ p13 ∨ p16 3. p12 ∨ p16 ∨ p2 4. p2 ∨ p4 ∨ p20 ∨ p10 5. p10 ∨ p8 ∨ p1 6. p10 ∨ p3 7. p3 ∨ p26 8. p10 ∨ p5 9. p1 ∨ p3 ∨ p5 ∨ p17 ∨ p18 10. p3 ∨ p19 ∨ p18 11. p21 ∨ p6 12. p21 ∨ p17 13. p22 ∨ p13 14. p13 ∨ p8 15. p4 ∨ p19 16. p20 ∨ p23 17. p20 ∨ p24 18. p25 M is p25 pd

21 p6 p17 pd 22 p13 p8 pd 4 p19 pd 20 p23

Literal pd

11

p12 p16 p2 p10 p1 p3 p26 p5 p18 Reason ∅ 1 2 3 4 5 6 7 8 9 p3 ∨ p19 ∨ p18 p1 ∨ p3 ∨ p5 ∨ p17 ∨ p18 p3 ∨ p19 ∨ p1 ∨ p5 ∨ p17 p10 ∨ p5 p3 ∨ p19 ∨ p1 ∨ p17 ∨ p10 p10 ∨ p3 p19 ∨ p1 ∨ p17 ∨ p10

slide-39
SLIDE 39

Motivating Example

6 / 56

1. p11 ∨ p6 ∨ p12 2. p11 ∨ p13 ∨ p16 3. p12 ∨ p16 ∨ p2 4. p2 ∨ p4 ∨ p20 ∨ p10 5. p10 ∨ p8 ∨ p1 6. p10 ∨ p3 7. p3 ∨ p26 8. p10 ∨ p5 9. p1 ∨ p3 ∨ p5 ∨ p17 ∨ p18 10. p3 ∨ p19 ∨ p18 11. p21 ∨ p6 12. p21 ∨ p17 13. p22 ∨ p13 14. p13 ∨ p8 15. p4 ∨ p19 16. p20 ∨ p23 17. p20 ∨ p24 18. p25 M is p25 pd

21 p6 p17 pd 22 p13 p8 pd 4 p19 pd 20 p23

Literal pd

11

p12 p16 p2 p10 p1 p3 p26 p5 p18 Reason ∅ 1 2 3 4 5 6 7 8 9 p3 ∨ p19 ∨ p18 p1 ∨ p3 ∨ p5 ∨ p17 ∨ p18 p3 ∨ p19 ∨ p1 ∨ p5 ∨ p17 p10 ∨ p5 p3 ∨ p19 ∨ p1 ∨ p17 ∨ p10 p10 ∨ p3 p19 ∨ p1 ∨ p17 ∨ p10 p19 ∨ p1 ∨ p17 ∨ p10 p10 ∨ p8 ∨ p1 p19 ∨ p17 ∨ p10 ∨ p8

slide-40
SLIDE 40

Motivating Example

6 / 56

1. p11 ∨ p6 ∨ p12 2. p11 ∨ p13 ∨ p16 3. p12 ∨ p16 ∨ p2 4. p2 ∨ p4 ∨ p20 ∨ p10 5. p10 ∨ p8 ∨ p1 6. p10 ∨ p3 7. p3 ∨ p26 8. p10 ∨ p5 9. p1 ∨ p3 ∨ p5 ∨ p17 ∨ p18 10. p3 ∨ p19 ∨ p18 11. p21 ∨ p6 12. p21 ∨ p17 13. p22 ∨ p13 14. p13 ∨ p8 15. p4 ∨ p19 16. p20 ∨ p23 17. p20 ∨ p24 18. p25 M is p25 pd

21 p6 p17 pd 22 p13 p8 pd 4 p19 pd 20 p23

Literal pd

11

p12 p16 p2 p10 p1 p3 p26 p5 p18 Reason ∅ 1 2 3 4 5 6 7 8 9 p3 ∨ p19 ∨ p18 p1 ∨ p3 ∨ p5 ∨ p17 ∨ p18 p3 ∨ p19 ∨ p1 ∨ p5 ∨ p17 p10 ∨ p5 p3 ∨ p19 ∨ p1 ∨ p17 ∨ p10 p10 ∨ p3 p19 ∨ p1 ∨ p17 ∨ p10 p19 ∨ p1 ∨ p17 ∨ p10 p10 ∨ p8 ∨ p1 p19 ∨ p17 ∨ p10 ∨ p8 p2 ∨ p4 ∨ p20 ∨ p10 p19 ∨ p17 ∨ p8 ∨ p2 ∨ p4 ∨ p20

slide-41
SLIDE 41

Motivating Example

6 / 56

1. p11 ∨ p6 ∨ p12 2. p11 ∨ p13 ∨ p16 3. p12 ∨ p16 ∨ p2 4. p2 ∨ p4 ∨ p20 ∨ p10 5. p10 ∨ p8 ∨ p1 6. p10 ∨ p3 7. p3 ∨ p26 8. p10 ∨ p5 9. p1 ∨ p3 ∨ p5 ∨ p17 ∨ p18 10. p3 ∨ p19 ∨ p18 11. p21 ∨ p6 12. p21 ∨ p17 13. p22 ∨ p13 14. p13 ∨ p8 15. p4 ∨ p19 16. p20 ∨ p23 17. p20 ∨ p24 18. p25 M is p25 pd

21 p6 p17 pd 22 p13 p8 pd 4 p19 pd 20 p23

Literal pd

11

p12 p16 p2 p10 p1 p3 p26 p5 p18 Reason ∅ 1 2 3 4 5 6 7 8 9 p3 ∨ p19 ∨ p18 p1 ∨ p3 ∨ p5 ∨ p17 ∨ p18 p3 ∨ p19 ∨ p1 ∨ p5 ∨ p17 p10 ∨ p5 p3 ∨ p19 ∨ p1 ∨ p17 ∨ p10 p10 ∨ p3 p19 ∨ p1 ∨ p17 ∨ p10 p19 ∨ p1 ∨ p17 ∨ p10 p10 ∨ p8 ∨ p1 p19 ∨ p17 ∨ p10 ∨ p8 p2 ∨ p4 ∨ p20 ∨ p10 p19 ∨ p17 ∨ p8 ∨ p2 ∨ p4 ∨ p20 p12 ∨ p16 ∨ p2 p19 ∨ p17 ∨ p8 ∨ p4 ∨ p20 ∨ p12 ∨ p16

slide-42
SLIDE 42

Motivating Example

6 / 56

1. p11 ∨ p6 ∨ p12 2. p11 ∨ p13 ∨ p16 3. p12 ∨ p16 ∨ p2 4. p2 ∨ p4 ∨ p20 ∨ p10 5. p10 ∨ p8 ∨ p1 6. p10 ∨ p3 7. p3 ∨ p26 8. p10 ∨ p5 9. p1 ∨ p3 ∨ p5 ∨ p17 ∨ p18 10. p3 ∨ p19 ∨ p18 11. p21 ∨ p6 12. p21 ∨ p17 13. p22 ∨ p13 14. p13 ∨ p8 15. p4 ∨ p19 16. p20 ∨ p23 17. p20 ∨ p24 18. p25 M is p25 pd

21 p6 p17 pd 22 p13 p8 pd 4 p19 pd 20 p23

Literal pd

11

p12 p16 p2 p10 p1 p3 p26 p5 p18 Reason ∅ 1 2 3 4 5 6 7 8 9 p3 ∨ p19 ∨ p18 p1 ∨ p3 ∨ p5 ∨ p17 ∨ p18 p3 ∨ p19 ∨ p1 ∨ p5 ∨ p17 p10 ∨ p5 p3 ∨ p19 ∨ p1 ∨ p17 ∨ p10 p10 ∨ p3 p19 ∨ p1 ∨ p17 ∨ p10 p19 ∨ p1 ∨ p17 ∨ p10 p10 ∨ p8 ∨ p1 p19 ∨ p17 ∨ p10 ∨ p8 p2 ∨ p4 ∨ p20 ∨ p10 p19 ∨ p17 ∨ p8 ∨ p2 ∨ p4 ∨ p20 p12 ∨ p16 ∨ p2 p19 ∨ p17 ∨ p8 ∨ p4 ∨ p20 ∨ p12 ∨ p16 p19 ∨ p17 ∨ p8 ∨ p4 ∨ p20 ∨ p12 ∨ p16 p11 ∨ p13 ∨ p16 p19 ∨ p17 ∨ p8 ∨ p4 ∨ p20 ∨ p12 ∨ p11 ∨ p13

slide-43
SLIDE 43

Motivating Example

6 / 56

1. p11 ∨ p6 ∨ p12 2. p11 ∨ p13 ∨ p16 3. p12 ∨ p16 ∨ p2 4. p2 ∨ p4 ∨ p20 ∨ p10 5. p10 ∨ p8 ∨ p1 6. p10 ∨ p3 7. p3 ∨ p26 8. p10 ∨ p5 9. p1 ∨ p3 ∨ p5 ∨ p17 ∨ p18 10. p3 ∨ p19 ∨ p18 11. p21 ∨ p6 12. p21 ∨ p17 13. p22 ∨ p13 14. p13 ∨ p8 15. p4 ∨ p19 16. p20 ∨ p23 17. p20 ∨ p24 18. p25 M is p25 pd

21 p6 p17 pd 22 p13 p8 pd 4 p19 pd 20 p23

Literal pd

11

p12 p16 p2 p10 p1 p3 p26 p5 p18 Reason ∅ 1 2 3 4 5 6 7 8 9 p3 ∨ p19 ∨ p18 p1 ∨ p3 ∨ p5 ∨ p17 ∨ p18 p3 ∨ p19 ∨ p1 ∨ p5 ∨ p17 p10 ∨ p5 p3 ∨ p19 ∨ p1 ∨ p17 ∨ p10 p10 ∨ p3 p19 ∨ p1 ∨ p17 ∨ p10 p19 ∨ p1 ∨ p17 ∨ p10 p10 ∨ p8 ∨ p1 p19 ∨ p17 ∨ p10 ∨ p8 p2 ∨ p4 ∨ p20 ∨ p10 p19 ∨ p17 ∨ p8 ∨ p2 ∨ p4 ∨ p20 p12 ∨ p16 ∨ p2 p19 ∨ p17 ∨ p8 ∨ p4 ∨ p20 ∨ p12 ∨ p16 p19 ∨ p17 ∨ p8 ∨ p4 ∨ p20 ∨ p12 ∨ p16 p11 ∨ p13 ∨ p16 p19 ∨ p17 ∨ p8 ∨ p4 ∨ p20 ∨ p12 ∨ p11 ∨ p13 p11 ∨ p6 ∨ p12 p19 ∨ p17 ∨ p8 ∨ p4 ∨ p20 ∨ p11 ∨ p13 ∨ p6

slide-44
SLIDE 44

Motivating Example

6 / 56

1. p11 ∨ p6 ∨ p12 2. p11 ∨ p13 ∨ p16 3. p12 ∨ p16 ∨ p2 4. p2 ∨ p4 ∨ p20 ∨ p10 5. p10 ∨ p8 ∨ p1 6. p10 ∨ p3 7. p3 ∨ p26 8. p10 ∨ p5 9. p1 ∨ p3 ∨ p5 ∨ p17 ∨ p18 10. p3 ∨ p19 ∨ p18 11. p21 ∨ p6 12. p21 ∨ p17 13. p22 ∨ p13 14. p13 ∨ p8 15. p4 ∨ p19 16. p20 ∨ p23 17. p20 ∨ p24 18. p25 M is p25 pd

21 p6 p17 pd 22 p13 p8 pd 4 p19 pd 20 p23

Literal pd

11

p12 p16 p2 p10 p1 p3 p26 p5 p18 Reason ∅ 1 2 3 4 5 6 7 8 9 p3 ∨ p19 ∨ p18 p1 ∨ p3 ∨ p5 ∨ p17 ∨ p18 p3 ∨ p19 ∨ p1 ∨ p5 ∨ p17 p10 ∨ p5 p3 ∨ p19 ∨ p1 ∨ p17 ∨ p10 p10 ∨ p3 p19 ∨ p1 ∨ p17 ∨ p10 p19 ∨ p1 ∨ p17 ∨ p10 p10 ∨ p8 ∨ p1 p19 ∨ p17 ∨ p10 ∨ p8 p2 ∨ p4 ∨ p20 ∨ p10 p19 ∨ p17 ∨ p8 ∨ p2 ∨ p4 ∨ p20 p12 ∨ p16 ∨ p2 p19 ∨ p17 ∨ p8 ∨ p4 ∨ p20 ∨ p12 ∨ p16 p19 ∨ p17 ∨ p8 ∨ p4 ∨ p20 ∨ p12 ∨ p16 p11 ∨ p13 ∨ p16 p19 ∨ p17 ∨ p8 ∨ p4 ∨ p20 ∨ p12 ∨ p11 ∨ p13 p11 ∨ p6 ∨ p12 p19 ∨ p17 ∨ p8 ∨ p4 ∨ p20 ∨ p11 ∨ p13 ∨ p6

Now the process cannot continue any longer.

slide-45
SLIDE 45

Motivating Example

6 / 56

1. p11 ∨ p6 ∨ p12 2. p11 ∨ p13 ∨ p16 3. p12 ∨ p16 ∨ p2 4. p2 ∨ p4 ∨ p20 ∨ p10 5. p10 ∨ p8 ∨ p1 6. p10 ∨ p3 7. p3 ∨ p26 8. p10 ∨ p5 9. p1 ∨ p3 ∨ p5 ∨ p17 ∨ p18 10. p3 ∨ p19 ∨ p18 11. p21 ∨ p6 12. p21 ∨ p17 13. p22 ∨ p13 14. p13 ∨ p8 15. p4 ∨ p19 16. p20 ∨ p23 17. p20 ∨ p24 18. p25 M is p25 pd

21 p6 p17 pd 22 p13 p8 pd 4 p19 pd 20 p23

Literal pd

11

p12 p16 p2 p10 p1 p3 p26 p5 p18 Reason ∅ 1 2 3 4 5 6 7 8 9 p3 ∨ p19 ∨ p18 p1 ∨ p3 ∨ p5 ∨ p17 ∨ p18 p3 ∨ p19 ∨ p1 ∨ p5 ∨ p17 p10 ∨ p5 p3 ∨ p19 ∨ p1 ∨ p17 ∨ p10 p10 ∨ p3 p19 ∨ p1 ∨ p17 ∨ p10 p19 ∨ p1 ∨ p17 ∨ p10 p10 ∨ p8 ∨ p1 p19 ∨ p17 ∨ p10 ∨ p8 p2 ∨ p4 ∨ p20 ∨ p10 p19 ∨ p17 ∨ p8 ∨ p2 ∨ p4 ∨ p20 p12 ∨ p16 ∨ p2 p19 ∨ p17 ∨ p8 ∨ p4 ∨ p20 ∨ p12 ∨ p16 p19 ∨ p17 ∨ p8 ∨ p4 ∨ p20 ∨ p12 ∨ p16 p11 ∨ p13 ∨ p16 p19 ∨ p17 ∨ p8 ∨ p4 ∨ p20 ∨ p12 ∨ p11 ∨ p13 p11 ∨ p6 ∨ p12 p19 ∨ p17 ∨ p8 ∨ p4 ∨ p20 ∨ p11 ∨ p13 ∨ p6

All obtained clauses are false in the assignment.

slide-46
SLIDE 46

Motivating Example

6 / 56

1. p11 ∨ p6 ∨ p12 2. p11 ∨ p13 ∨ p16 3. p12 ∨ p16 ∨ p2 4. p2 ∨ p4 ∨ p20 ∨ p10 5. p10 ∨ p8 ∨ p1 6. p10 ∨ p3 7. p3 ∨ p26 8. p10 ∨ p5 9. p1 ∨ p3 ∨ p5 ∨ p17 ∨ p18 10. p3 ∨ p19 ∨ p18 11. p21 ∨ p6 12. p21 ∨ p17 13. p22 ∨ p13 14. p13 ∨ p8 15. p4 ∨ p19 16. p20 ∨ p23 17. p20 ∨ p24 18. p25 M is p25 pd

21 p6 p17 pd 22 p13 p8 pd 4 p19 pd 20 p23

Literal pd

11

p12 p16 p2 p10 p1 p3 p26 p5 p18 Reason ∅ 1 2 3 4 5 6 7 8 9 p3 ∨ p19 ∨ p18 p1 ∨ p3 ∨ p5 ∨ p17 ∨ p18 p3 ∨ p19 ∨ p1 ∨ p5 ∨ p17 p10 ∨ p5 p3 ∨ p19 ∨ p1 ∨ p17∨p10 p10 ∨ p3 p19 ∨ p1 ∨ p17∨p10 p19 ∨ p1 ∨ p17 ∨ p10 p10 ∨ p8 ∨ p1 p19 ∨ p17 ∨ p10 ∨ p8 p2 ∨ p4 ∨ p20 ∨ p10 p19 ∨ p17 ∨ p8 ∨ p2 ∨ p4 ∨ p20 p12 ∨ p16 ∨ p2 p19 ∨ p17 ∨ p8 ∨ p4 ∨ p20∨p12 ∨ p16 p19 ∨ p17 ∨ p8 ∨ p4 ∨ p20 ∨ p12 ∨ p16 p11 ∨ p13 ∨ p16 p19 ∨ p17 ∨ p8 ∨ p4 ∨ p20 ∨ p12 ∨ p11 ∨ p13 p11 ∨ p6 ∨ p12 p19 ∨ p17 ∨ p8 ∨ p4 ∨ p20 ∨ p11 ∨ p13 ∨ p6

Lits assigned at last decision level 5 in blue

slide-47
SLIDE 47

Motivating Example

7 / 56

■

Three clauses with only one literal assigned at the last DL (5):

◆

p19 ∨ p17 ∨ p10 ∨ p8 (max DL of others: 3)

◆

p19 ∨ p17 ∨ p8 ∨ p2 ∨ p4 ∨ p20 (max DL of others: 4)

◆

p19 ∨ p17 ∨ p8 ∨ p4 ∨ p20 ∨ p11 ∨ p13 ∨ p6 (max DL of others: 4)

■

If we had had those clauses:

◆

At DL. 3 we could’ve propagated p10

◆

At DL. 4 we could’ve propagated p2

◆

At DL. 4 we could’ve propagated p11

■

In practice procedure stops when we find the first such clause, because:

◆

It is the cheapest one to find

◆

It can propagate lits at a lower DL (literals of previous decision levels are never removed)

slide-48
SLIDE 48

Backjump rule

8 / 56

This example motivates us to introduce the rule:

Backjump M ld N | | F = ⇒ M l′ | | F if        for some clause C ∨ l′ : F | = C ∨ l′ and M | = ¬C l′ is undefined in M l′ or ¬l′ occurs in F

The only thing we need is a backjump clause C ∨ l′ such that: 1. It is a logical consequence of the rest of the clauses 2. All its literals are false at some previous decision level d, except one which was undefined at d

slide-49
SLIDE 49

Conflict Analysis

9 / 56

■

The procedure shown in the example is called conflict analysis

■

Why is the obtained clause a logical consequence of the input?

◆

Because resolution is correct

slide-50
SLIDE 50

Conflict Analysis

10 / 56

■

The procedure shown in the example is called conflict analysis

■

Why is the obtained clause false under the current assignment?

◆

Conflicting clause is false under the current assignment

◆

Each non-decision lit l false at the last decision level (dl) can be resolved away with a reason clause of the form l1 ∨ · · · ∨ ln ∨ ¬l

◆

l is replaced by lits l1, . . . , ln such that all of them are false

slide-51
SLIDE 51

Conflict Analysis

11 / 56

■

The procedure shown in the example is called conflict analysis

■

Why a clause with only one lit at last decision level (dl) can be obtained?

◆

Conflicting clause has at least two lits at decision level dl (provided unit propagation applied before any decision)

◆

Each non-decision lit l at decision level dl is replaced by lits l1, . . . , ln such that 1. All of them have been added to the assignment before l (hence their decision level is ≤ dl) 2. At least one was set at decision level dl (again, provided ....)

◆

In the worst case, we will terminate with a clause with the last decision lit being the only set at decision level dl

slide-52
SLIDE 52

Conflict Analysis - Conflict Graph

12 / 56

■

Situation can be represented with the conflict graph:

p p p p p p p p

11 12 16 2 10 1 5 18 3

p

p p p p p p p

6 13 4 20 8 17 19

⊥

slide-53
SLIDE 53

Conflict Analysis - Conflict Graph

13 / 56

■

The cut represents 1-UIP learning scheme (UIP ≡ Unique Implication Point)

p p p p p p p p

11 12 16 2 10 1 5 18 3

p

p p p p p p p

6 13 4 20 8 17 19

1UIP

⊥

■

Backjump clause is p19 ∨ p17 ∨ p8 ∨ p10

slide-54
SLIDE 54

Conflict Analysis - Conflict Graph

14 / 56

■

This cut represents the 2-UIP learning scheme

p p p p p p p p

11 12 16 2 10 1 5 18 3

p

p p p p p p p

6 13 4 20 8 17 19

2UIP

⊥

■

Backjump clause is p19 ∨ p17 ∨ p8 ∨ p20 ∨ p4 ∨ p2

slide-55
SLIDE 55

Conflict Analysis - Conflict Graph

15 / 56

■

This cut represents the 3-UIP learning scheme

p p p p p p p p

11 12 16 2 10 1 5 18 3

p

p p p p p p p

6 13 4 20 8 17 19

3UIP

⊥

■

Backjump clause is p19 ∨ p17 ∨ p8 ∨ p20 ∨ p4 ∨ p6 ∨ p11 ∨ p13

slide-56
SLIDE 56

What is a good lemma?

16 / 56

■

Every time a conflict is found, conflict analysis is started

■

Backjump clause is added to the clause database (we say it is learned):

Learn M | | F = ⇒ M | | F, C if

  • all atoms of C occur in F

F | = C

■

Backjump clauses once they are learned are referred to as lemmas

■

Learning them helps to prevent future similar conflicts

■

The set of literals of previous DL in the 2UIP contains the literals of previous DL in the 1UIP

■

So 1UIP gives shorter clauses than 2UIP

■

Also 1UIP allows one to backjump to a lower or equal DL

■

However, in general difficult to assess in advance the quality of a lemma

slide-57
SLIDE 57

Lemma Shortening

17 / 56

■

But, given a lemma L, any lemma L′ ⊆ L is clearly better.

■

Given L, how to obtain a possible L′?

■

LOCAL MINIMIZATION:

◆

Generate lemma L and mark its literals

◆

Remove non-decision literals l ∈ L such that reason(l) \ {l} contains only marked literals EXAMPLE: our 2-UIP clause was p19 ∨ p17 ∨ p8 ∨ p2 ∨ p4 ∨ p20 with reason(p19) = p4 ∨ p19. Hence p19 can be removed. Why?

slide-58
SLIDE 58

Lemma Shortening

17 / 56

■

But, given a lemma L, any lemma L′ ⊆ L is clearly better.

■

Given L, how to obtain a possible L′?

■

LOCAL MINIMIZATION:

◆

Generate lemma L and mark its literals

◆

Remove non-decision literals l ∈ L such that reason(l) \ {l} contains only marked literals EXAMPLE: our 2-UIP clause was p19 ∨ p17 ∨ p8 ∨ p2 ∨ p4 ∨ p20 with reason(p19) = p4 ∨ p19. Hence p19 can be removed. Why? p19 ∨ p17 ∨ p8 ∨ p2 ∨ p4 ∨ p20 p4 ∨ p19 p17 ∨ p8 ∨ p2 ∨ p4 ∨ p20

slide-59
SLIDE 59

Lemma Shortening

18 / 56

■

RECURSIVE MINIMIZATION:

◆

Generate lemma L and mark its literals

◆

Remove non-decision literals l ∈ L such that search backwards from l in the implication graph reaches only negations of marked literals 1. p1 ∨ p2 2. p1 ∨ p6 3. p2 ∨ p6 ∨ p3 4. p1 ∨ p4 ∨ p5 5. p3 ∨ p4 ∨ p5 ∅ = ⇒ . . . = ⇒ p1d p2 p6 p3 p4

d p5

p

1

p

2

p

3

p

6

p

5

p

4

⊥

■

1UIP lemma is p3 ∨ p4 ∨ p1

■

p3 is clearly removable

slide-60
SLIDE 60

Overview of the session

18 / 56

■

Conflict Analysis

◆

Motivating example

◆

Backjumping

◆

Conflict graph

◆

Lemma shortening

■

Lemma removal

■

Decision heuristics

■

Restarts

■

Efficient implementation of UnitProp:

◆

Occur lists

◆

Two-watched literals

■

Final remarks

slide-61
SLIDE 61

Lemma Removal

19 / 56

■

Effects of adding lemmas: + Reduces the search space

  • Space traversal slower since unit propagation becomes expensive

■

Hence we cannot keep all generated lemmas. We need:

Forget M | | F, C = ⇒ M | | F if F | = C

■

Which lemmas to keep and which ones to forget?

◆

Each lemma has a number called activity

◆

Activity is incremented when lemma is used in conflict analysis

◆

From time to time, lemmas with low activity are removed

◆

Mixed policies: keep

■

short lemmas

■

recent lemmas

■

lemmas with low Literals Blocks Distance (LDB):

  • no. of different decision levels involved in a clause
slide-62
SLIDE 62

Overview of the session

19 / 56

■

Conflict Analysis

◆

Motivating example

◆

Backjumping

◆

Conflict graph

◆

Lemma shortening

■

Lemma removal

■

Decision heuristics

■

Restarts

■

Efficient implementation of UnitProp:

◆

Occur lists

◆

Two-watched literals

■

Final remarks

slide-63
SLIDE 63

Decision Heuristic

20 / 56

■

SAT instances may have (tens, hundreds of ?) thousands of variables

■

Most SAT instances have clusters of variables: sets of variables that are semantically linked GOAL: to force the SAT solver to work on one cluster at a time

■

Each variable has an associated activity

■

Each time it appears in a conflict analysis, its activity is incremented

■

Recent activity should be given more importance:

◆

Divide all activities by integer K from time to time, or

◆

Keep increasing the activity increment

■

Decide chooses unassigned var with highest activity

■

Note that heuristic does not depend on clauses: CHEAP!

■

Value selection: take false, or last tried value for that variable (last phase)

slide-64
SLIDE 64

Overview of the session

20 / 56

■

Conflict Analysis

◆

Motivating example

◆

Backjumping

◆

Conflict graph

◆

Lemma shortening

■

Lemma removal

■

Decision heuristics

■

Restarts

■

Efficient implementation of UnitProp:

◆

Occur lists

◆

Two-watched literals

■

Final remarks

slide-65
SLIDE 65

Restarts

21 / 56

■

Early mistakes in the search tree have dramatic effects in running time HOW TO AVOID THIS BEHAVIOUR?

■

Introduce restarts:

Restart M | | F = ⇒ ∅ | | F

■

Why should a new run behave differently? And why could it be better?

■

In a new run, the solver may behave better among others thanks to:

◆

the activities of the variables

◆

the learned lemmas Only the assignment is reset!

slide-66
SLIDE 66

Restarts - Strategies

22 / 56

■

Unrestricted application of Restart leads to incompleteness

■

What is done in practice?

■

A restart strategy tells after how many conflicts a restart should be made

◆

Set initial RESTART LIMIT

◆

After RESTART LIMIT conflicts:

■

Update RESTART LIMIT according to the restart strategy

■

Apply Restart

■

For example:

◆

Let RESTART LIMIT follow the Luby sequence, defined as:

■

r0 := N; ri := N · li, where li = 2k−1 if ∃k with i = 2k − 1 li−2k−1+1 if ∃k with 2k−1 ≤ i < 2k − 1

slide-67
SLIDE 67

Restarts - Strategies

23 / 56

2000 4000 6000 8000 10000 12000 14000 16000 18000 10 20 30 40 50 60 70 80 90 100 RESTART LIMIT Luby-based restart sequence with initial 512

slide-68
SLIDE 68

Restarts - Strategies

24 / 56

Another possibility is an inner-outer geometric sequence: for (int inner = 100, outer = 100;;){ // Run SAT-solver for ’inner’ conflicts if (inner >= outer){

  • uter *= 1.1;

inner = 100; } else inner *= 1.1 }

slide-69
SLIDE 69

Restarts - Strategies

25 / 56

200 400 600 800 1000 1200 1400 1600 1800 50 100 150 200 250 300 350 400 450 500 RESTART LIMIT Inner-outer geometric sequence

slide-70
SLIDE 70

Overall CDCL algorithm

26 / 56

while(true){ while (propagate gives conflict()){ if (decision level==0) return UNSAT; else analyze conflict(); } restart if applicable(); remove lemmas if applicable(); if (!decide()) returns SAT; // All vars assigned }

slide-71
SLIDE 71

Overview of the session

26 / 56

■

Conflict Analysis

◆

Motivating example

◆

Backjumping

◆

Conflict graph

◆

Lemma shortening

■

Lemma removal

■

Decision heuristics

■

Restarts

■

Efficient implementation of UnitProp:

◆

Occur lists

◆

Two-watched literals

■

Final remarks

slide-72
SLIDE 72

Performance of SAT Solvers

27 / 56

■

The most important tasks that a SAT solver performs are:

◆

Choose which variable to Decide on

◆

Apply unit propagation exhaustively

◆

Analyze conflicts

■

When profiling a state-of-the art SAT solver we get:

◆

Variable selection (≈ 10%)

◆

Unit propagation application (≈ 80%)

◆

Conflict analysis (≈ 10%)

■

Hence, the most important thing to optimize is unit propagation, aka BCP (Boolean Constraint Propagation)

slide-73
SLIDE 73

BCP with Occur Lists

28 / 56

■

BCP only has to detect propagating or conflicting clauses

■

There is no need to detect that all clauses are true

■

Instead of traversing the whole clause set again and again:

◆

For each literal, store the clauses where it appears in occur lists

◆

Every time a new lit l is added to the assignment,

  • nly clauses containing l need to be visited

■

Let’s see how it would work with an example

slide-74
SLIDE 74

BCP with Occur Lists

29 / 56

p

2 p 6

p

2

p

3 p 5 p 1

p

6

p

6 p 2 p 4

p

1

p

2

p

6

p

3

p

5

p

4 p 2

p

1

p

1

1 2 4 5 6 3

p

1

p

2

p

4

p

5

p

3

p

6

5 2 6 1 2 5 2 p

1

p

2

p

3

p

4

p

5

p

6

1 p

2

p

3

p

4

p

5

p

6

p

1

Model ToPropagate ClausesWith

1 4 2 3 4 6 5 3 6 2 3 U U U U U U

Current assignment: ∅

slide-75
SLIDE 75

BCP with Occur Lists

30 / 56

p

2 p 6

p

2

p

3 p 5 p 1

p

6

p

6 p 2 p 4

p

1

p

2

p

6

p

3

p

5

p

4 p 2

p

1

p

1

1 2 4 5 6 3

p

1

p

2

p

4

p

5

p

3

p

6

5 2 6 1 2 5 2 1 p

1

p

1

p

2

p

3

p

4

p

5

p

6

p

2

p

3

p

4

p

5

p

6

p

2

Model ToPropagate ClausesWith

1 4 2 3 4 6 5 3 6 2 3 U F U U U U

Current assignment: p2

d

Now, we propagate p2 visiting ClausesWith[p2]

slide-76
SLIDE 76

BCP with Occur Lists

31 / 56

p

2 p 6

p

2

p

3 p 5 p 1

p

6

p

6 p 2 p 4

p

1

p

2

p

6

p

3

p

5

p

4 p 2

p

1

p

1

p

1

p

2

p

4

p

5

p

3

p

6

5 2 6 1 2 5 2 1 p

1

p

1

p

2

p

3

p

4

p

5

p

6

p

2

p

3

p

4

p

5

p

6

Model ToPropagate ClausesWith

1 4 2 3 4 6 5 3 6 2 3 U F U U U U

1 2 3 4 5 6

Current assignment: p2

d

Literal p1 has to be added to the assignment

slide-77
SLIDE 77

BCP with Occur Lists

32 / 56

p

2 p 6

p

2

p

3 p 5 p 1

p

6

p

6 p 2 p 4

p

1

p

2

p

6

p

3

p

5

p

4 p 2

p

1

p

1

p

1

p

2

p

4

p

5

p

3

p

6

5 2 6 1 2 5 2 1 p

1

p

1

p

2

p

3

p

4

p

5

p

6

p

2

p

3

p

4

p

5

p

6

p

1

Model ToPropagate ClausesWith

1 4 2 3 4 6 5 3 6 2 3 T F U U U U

1 2 3 4 5 6

Current assignment: p2

d p1

Now, we propagate p1 visiting ClausesWith[p1]

slide-78
SLIDE 78

BCP with Occur Lists

33 / 56

p

2 p 6

p

2

p

3 p 5 p 1

p

6

p

6 p 2 p 4

p

1

p

2

p

6

p

3

p

5

p

4 p 2

p

1

p

1

p

1

p

2

p

4

p

5

p

3

p

6

2 6 1 2 5 1 p

1

p

1

p

2

p

3

p

4

p

5

p

6

p

2

p

3

p

4

p

5

p

6

Model ToPropagate ClausesWith

1 4 2 3 4 6 5 3 6 2 3 T F U U U U

1 2 3 4 5 6

2 5

Current assignment: p2

d p1

No lit is propagated, we have to decide

slide-79
SLIDE 79

BCP with Occur Lists

34 / 56

p

2 p 6

p

2

p

3 p 5 p 1

p

6

p

6 p 2 p 4

p

1

p

2

p

6

p

3

p

5

p

4 p 2

p

1

p

1

p

1

p

2

p

4

p

5

p

3

p

6

2 6 1 2 5 1 p

1

p

1

p

2

p

3

p

4

p

5

p

6

p

2

p

3

p

4

p

5

p

6

p

4

Model ToPropagate ClausesWith

1 4 2 3 4 6 5 3 6 2 3 T F U F U U

1 2 3 4 5 6

2 5

Current assignment: p2

d p1 p4 d

Now, we propagate p4 visiting ClausesWith[p4]

slide-80
SLIDE 80

BCP with Occur Lists

35 / 56

p

2 p 6

p

2

p

3 p 5 p 1

p

6

p

6 p 2 p 4

p

1

p

2

p

6

p

3

p

5

p

4 p 2

p

1

p

1

p

1

p

2

p

4

p

5

p

3

p

6

2 6 1 2 5 1 p

1

p

1

p

2

p

3

p

4

p

5

p

6

p

2

p

3

p

4

p

5

p

6

Model ToPropagate ClausesWith

1 4 2 3 4 6 5 3 6 2 3 T F U F U U

1 2 3 4 5 6

2 5

Current assignment: p2

d p1 p4 d

Literals p6, p5 have to be added to the assignment

slide-81
SLIDE 81

BCP with Occur Lists

36 / 56

p

2 p 6

p

2

p

3 p 5 p 1

p

6

p

6 p 2 p 4

p

1

p

2

p

6

p

3

p

5

p

4 p 2

p

1

p

1

p

1

p

2

p

4

p

5

p

3

p

6

2 6 1 2 5 1 p

1

p

1

p

2

p

3

p

4

p

5

p

6

p

2

p

3

p

4

p

5

p

6

p

6

p

5

Model ToPropagate ClausesWith

1 4 2 3 4 6 5 3 6 2 3 T F U F F T

1 2 3 4 5 6

2 5

Current assignment: p2

d p1 p4 d p6 p5

Now, we propagate p5 visiting ClausesWith[p5]

slide-82
SLIDE 82

BCP with Occur Lists

37 / 56

p

2 p 6

p

2

p

3 p 5 p 1

p

6

p

6 p 2 p 4

p

1

p

2

p

6

p

3

p

5

p

4 p 2

p

1

p

1

p

1

p

2

p

4

p

5

p

3

p

6

2 6 1 2 5 1 p

1

p

1

p

2

p

3

p

4

p

5

p

6

p

2

p

3

p

4

p

5

p

6

p

6

Model ToPropagate ClausesWith

1 4 2 3 4 6 5 3 6 2 3 T F U F F T

1 2 3 4 5 6

2 5

Current assignment: p2

d p1 p4 d p6 p5

Literal p3 has to be added to the assignment

slide-83
SLIDE 83

BCP with Occur Lists

38 / 56

p

2 p 6

p

2

p

3 p 5 p 1

p

6

p

6 p 2 p 4

p

1

p

2

p

6

p

3

p

5

p

4 p 2

p

1

p

1

p

1

p

2

p

4

p

5

p

3

p

6

2 6 1 2 5 1 p

1

p

1

p

2

p

3

p

4

p

5

p

6

p

2

p

3

p

4

p

5

p

6

p

6

p

3

Model ToPropagate ClausesWith

1 4 2 3 4 6 5 3 6 2 3 T F F F F T

1 2 3 4 5 6

2 5

Current assignment: p2

d p1 p4 d p6 p5 p3

Now, we propagate p3 visiting ClausesWith[p3]

slide-84
SLIDE 84

BCP with Occur Lists

39 / 56

p

2 p 6

p

2

p

3 p 5 p 1

p

6

p

6 p 2 p 4

p

1

p

2

p

6

p

3

p

5

p

4 p 2

p

1

p

1

p

1

p

2

p

4

p

5

p

3

p

6

2 6 1 2 5 1 p

1

p

1

p

2

p

3

p

4

p

5

p

6

p

2

p

3

p

4

p

5

p

6

p

6

Model ToPropagate ClausesWith

1 4 2 3 4 6 5 3 6 2 3 T F F F F T

1 2 3 4 5 6

2 5

Current assignment: p2

d p1 p4 d p6 p5 p3

Clause 5 indicates a conflict. Backtrack/backjump is called.

slide-85
SLIDE 85

BCP with Occur Lists

40 / 56

p

2 p 6

p

2

p

3 p 5 p 1

p

6

p

6 p 2 p 4

p

1

p

2

p

6

p

3

p

5

p

4 p 2

p

1

p

1

p

1

p

2

p

4

p

5

p

3

p

6

2 6 1 2 5 1 p

1

p

1

p

2

p

3

p

4

p

5

p

6

p

2

p

3

p

4

p

5

p

6

p

4

Model ToPropagate ClausesWith

1 4 2 3 4 6 5 3 6 2 3 T F U T U U

1 2 3 4 5 6

2 5

Current assignment: p2

d p1 p4

Procedure continues propagating p4

slide-86
SLIDE 86

BCP - How to improve it?

41 / 56

■

The key observation is the following: A clause with 2 non-false literals can’t be propagating or conflicting

■

For each clause we will try to watch two non-false literals

■

Enough to visit a clause when a watched literal becomes false

■

If 2 non-false literals do not exist, this is because:

◆

All the lits are false (then backtrack)

◆

All the lits are false but one, which is undef (then propagate)

◆

All the lits are false but one, which is true

■

This is called the two watched literals scheme

slide-87
SLIDE 87

BCP - Two Watched Literals

42 / 56

p

2

p

6

p

2 p 3

p

5 p 1

p

6

p

6 p 2

p

4

p

1 p 2

p

6

p

3

p

5 p 4

p

2

p

1

p

1

1 2 4 5 6 3

p

1

p

2

p

4

p

5

p

3

p

6

2 6 5 5 p

1

p

2

p

3

p

4

p

5

p

6

1 p

2

p

3

p

4

p

5

p

6

p

1

Model ToPropagate ClausesWithLitWatched

1 4 2 3 4 6 3 U U U U U U

Current assignment: ∅

slide-88
SLIDE 88

BCP - Two Watched Literals

43 / 56

p

2

p

6

p

2 p 3

p

5 p 1

p

6

p

6 p 2

p

4

p

1 p 2

p

6

p

3

p

5 p 4

p

2

p

1

p

1

1 2 4 5 6 3

p

1

p

2

p

4

p

5

p

3

p

6

2 6 5 5 1 p

1

p

1

p

2

p

3

p

4

p

5

p

6

p

2

p

2

p

3

p

4

p

5

p

6

Model ToPropagate ClausesWithLitWatched

1 4 2 3 4 6 3 U F U U U U

Current assignment: p2

d

Now, we propagate p2 visiting ClausesWithLitWatched[p2]

slide-89
SLIDE 89

BCP - Two Watched Literals

44 / 56

p

2

p

6

p

2 p 3

p

5 p 1

p

6

p

6 p 2

p

4

p

1 p 2

p

6

p

3

p

5 p 4

p

2

p

1

p

1

p

1

p

2

p

4

p

5

p

3

p

6

2 6 5 5 1 p

1

p

1

p

2

p

3

p

4

p

5

p

6

p

2

p

3

p

4

p

5

p

6

Model ToPropagate ClausesWithLitWatched

1 4 6 3 U F U U U U

1 2 3 4 5 6

2 3 4

Current assignment: p2

d

Clauses 2 and 3 are rewatched. Clause 4 can’t because it is unit (p1)

slide-90
SLIDE 90

BCP - Two Watched Literals

45 / 56

p

2

p

6

p

2 p 3

p

5 p 1

p

6

p

6 p 2

p

4

p

1 p 2

p

6

p

3

p

5 p 4

p

2

p

1

p

1

p

1

p

2

p

4

p

5

p

3

p

6

2 6 5 5 1 p

1

p

1

p

2

p

3

p

4

p

5

p

6

p

2

p

3

p

4

p

5

p

6

p

1

Model ToPropagate ClausesWithLitWatched

1 4 6 3 T F U U U U

1 2 3 4 5 6

2 3 4

Current assignment: p2

d p1

Now, we propagate p1 visiting ClausesWithLitWatched[p1]

slide-91
SLIDE 91

BCP - Two Watched Literals

46 / 56

p

2

p

6

p

2 p 3

p

5 p 1

p

6

p

6 p 2

p

4

p

1 p 2

p

6

p

3

p

5 p 4

p

2

p

1

p

1

p

1

p

2

p

4

p

5

p

3

p

6

2 6 5 1 p

1

p

1

p

2

p

3

p

4

p

5

p

6

p

2

p

3

p

4

p

5

p

6

Model ToPropagate ClausesWithLitWatched

6 3 T F U U U U

1 2 3 4 5 6

2 3 1 4 5 4

Current assignment: p2

d p1

Clauses 5 is reselected. No lit is unit propagated. We have to decide.

slide-92
SLIDE 92

BCP - Two Watched Literals

47 / 56

p

2

p

6

p

2 p 3

p

5 p 1

p

6

p

6 p 2

p

4

p

1 p 2

p

6

p

3

p

5 p 4

p

2

p

1

p

1

p

1

p

2

p

4

p

5

p

3

p

6

2 6 5 1 p

1

p

1

p

2

p

3

p

4

p

5

p

6

p

2

p

3

p

4

p

5

p

6

p

4

Model ToPropagate ClausesWithLitWatched

6 3 T F U F U U

1 2 3 4 5 6

2 3 1 4 5 4

Current assignment: p2

d p1 p4 d

Now, we propagate p4 visiting ClausesWithLitWatched[p4]

slide-93
SLIDE 93

BCP - Two Watched Literals

48 / 56

p

2

p

6

p

2 p 3

p

5 p 1

p

6

p

6 p 2

p

4

p

1 p 2

p

6

p

3

p

5 p 4

p

2

p

1

p

1

p

1

p

2

p

4

p

5

p

3

p

6

2 6 5 1 p

1

p

1

p

2

p

3

p

4

p

5

p

6

p

2

p

3

p

4

p

5

p

6

Model ToPropagate ClausesWithLitWatched

6 3 T F U F U U

1 2 3 4 5 6

2 3 1 4 5 4

Current assignment: p2

d p1 p4 d

Clause 6 unit propagates p5 and clause 3 propagates p6.

slide-94
SLIDE 94

BCP - Two Watched Literals

49 / 56

p

2

p

6

p

2 p 3

p

5 p 1

p

6

p

6 p 2

p

4

p

1 p 2

p

6

p

3

p

5 p 4

p

2

p

1

p

1

p

1

p

2

p

4

p

5

p

3

p

6

2 6 5 1 p

1

p

1

p

2

p

3

p

4

p

5

p

6

p

2

p

3

p

4

p

5

p

6

p

5

p

6

Model ToPropagate ClausesWithLitWatched

6 3 T F U F F T

1 2 3 4 5 6

2 3 1 4 5 4

Current assignment: p2

d p1 p4 d p5 p6

Now, we propagate p6 visiting ClausesWithLitWatched[p6]

slide-95
SLIDE 95

BCP - Two Watched Literals

50 / 56

p

2

p

6

p

2 p 3

p

5 p 1

p

6

p

6 p 2

p

4

p

1 p 2

p

6

p

3

p

5 p 4

p

2

p

1

p

1

p

1

p

2

p

4

p

5

p

3

p

6

2 6 5 1 p

1

p

1

p

2

p

3

p

4

p

5

p

6

p

2

p

3

p

4

p

5

p

6

p

5

Model ToPropagate ClausesWithLitWatched

6 3 T F U F F T

1 2 3 4 5 6

2 3 1 4 5 4

Current assignment: p2

d p1 p4 d p5 p6

Clause 5 can’t be reselected because it is unit (p3).

slide-96
SLIDE 96

BCP - Two Watched Literals

51 / 56

p

2

p

6

p

2 p 3

p

5 p 1

p

6

p

6 p 2

p

4

p

1 p 2

p

6

p

3

p

5 p 4

p

2

p

1

p

1

p

1

p

2

p

4

p

5

p

3

p

6

2 6 5 1 p

1

p

1

p

2

p

3

p

4

p

5

p

6

p

2

p

3

p

4

p

5

p

6

p

5

p

3

Model ToPropagate ClausesWithLitWatched

6 3 T F T F F T

1 2 3 4 5 6

2 3 1 4 5 4

Current assignment: p2

d p1 p4 d p5 p6 p3

Now, we propagate p3 visiting ClausesWithLitWatched[p3]

slide-97
SLIDE 97

BCP - Two Watched Literals

52 / 56

p

2

p

6

p

2 p 3

p

5 p 1

p

6

p

6 p 2

p

4

p

1 p 2

p

6

p

3

p

5 p 4

p

2

p

1

p

1

p

1

p

2

p

4

p

5

p

3

p

6

2 6 5 1 p

1

p

1

p

2

p

3

p

4

p

5

p

6

p

2

p

3

p

4

p

5

p

6

p

5

Model ToPropagate ClausesWithLitWatched

6 3 T F T F F T

1 2 3 4 5 6

2 3 1 4 5 4

Current assignment: p2

d p1 p4 d p5 p6 p3

Clause 2 indicates a conflict. Backjump/backtrack is called.

slide-98
SLIDE 98

BCP - Two Watched Literals

53 / 56

p

2

p

6

p

2 p 3

p

5 p 1

p

6

p

6 p 2

p

4

p

1 p 2

p

6

p

3

p

5 p 4

p

2

p

1

p

1

p

1

p

2

p

4

p

5

p

3

p

6

2 6 5 1 p

1

p

1

p

2

p

3

p

4

p

5

p

6

p

2

p

3

p

4

p

5

p

6

Model ToPropagate ClausesWithLitWatched

6 3 T F U U U U

1 2 3 4 5 6

2 3 1 4 5 4

Current assignment: p2

d p1 (lit p4 not yet added)

After backtrack watches are properly placed!

slide-99
SLIDE 99

Two watched literals - Analysis

54 / 56

■

Each clause is visited far less often

■

Upon backtrack, nothing has to be done

■

Inactive literals tend to be watched, hence further reducing the number of clauses to be visited

■

Very effective for long clauses (e.g. lemmas)

slide-100
SLIDE 100

Overview of the session

54 / 56

■

Conflict Analysis

◆

Motivating example

◆

Backjumping

◆

Conflict graph

◆

Lemma shortening

■

Lemma removal

■

Decision heuristics

■

Restarts

■

Efficient implementation of UnitProp:

◆

Occur lists

◆

Two-watched literals

■

Final remarks

slide-101
SLIDE 101

Why SAT solvers are really good?

55 / 56

Three key ingredients that only work if used TOGETHER:

■

Learn at each conflict the backjump clause as a lemma: ◆

makes UnitProp more powerful

◆

prevents future similar conflicts

■

Decide on the variable with most occurrences in recent conflicts: ◆

so-called activity-based heuristics

◆

idea: work off clusters of tightly related (by many clauses) vars

■

Forget from time to time low-activity lemmas: ◆

crucial to keep UnitProp fast and afford memory usage

◆

idea: lemmas from worked off clusters no longer needed! These are the most important features of CDCL (Conflict-Driven Clause Learning) SAT solvers

slide-102
SLIDE 102

Bibliography - Further reading

56 / 56

■

Matthew W. Moskewicz, Conor F. Madigan, Ying Zhao, Lintao Zhang, Sharad Malik. Chaff: Engineering an Efficient SAT Solver. DAC 2001: 530-535

■

Lintao Zhang, Conor F. Madigan, Matthew W. Moskewicz, Sharad Malik. Efficient Conflict Driven Learning in Boolean Satisfiability Solver. ICCAD 2001: 279-285

■

Niklas En, Niklas Srensson. An Extensible SAT-solver. SAT 2003: 502-518

■

Robert Nieuwenhuis, Albert Oliveras, Cesare Tinelli. Solving SAT and SAT Modulo Theories: From an abstract Davis–Putnam–Logemann–Loveland procedure to DPLL(T).

  • J. ACM 53(6): 937-977 (2006)