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)