Practical SAT Solving: Look-ahead Techniques Marijn J.H. Heule - - PowerPoint PPT Presentation

practical sat solving look ahead techniques
SMART_READER_LITE
LIVE PREVIEW

Practical SAT Solving: Look-ahead Techniques Marijn J.H. Heule - - PowerPoint PPT Presentation

Practical SAT Solving: Look-ahead Techniques Marijn J.H. Heule Warren A. Hunt Jr. The University of Texas at Austin Heule & Hunt (UT Austin) Look-ahead Techniques 1 / 1 Sat solving: DPLL Davis Putnam Logemann Loveland [DP60,DLL62]


slide-1
SLIDE 1

Practical SAT Solving: Look-ahead Techniques

Marijn J.H. Heule Warren A. Hunt Jr. The University of Texas at Austin

Heule & Hunt (UT Austin) Look-ahead Techniques 1 / 1

slide-2
SLIDE 2

Sat solving: DPLL Davis Putnam Logemann Loveland [DP60,DLL62]

Simplify (Unit Propagation) Split the formula Variable Selection Heuristics Direction heuristics

Heule & Hunt (UT Austin) Look-ahead Techniques 2 / 1

slide-3
SLIDE 3

DPLL: Example FDPLL := (x1 ∨ x2 ∨ ¬x3) ∧ (¬x1 ∨ x2 ∨ x3) ∧ (¬x1 ∨ ¬x2 ∨ x3) ∧ (x1 ∨ x3) ∧ (¬x1 ∨ ¬x3)

Heule & Hunt (UT Austin) Look-ahead Techniques 3 / 1

slide-4
SLIDE 4

DPLL: Example FDPLL := (x1 ∨ x2 ∨ ¬x3) ∧ (¬x1 ∨ x2 ∨ x3) ∧ (¬x1 ∨ ¬x2 ∨ x3) ∧ (x1 ∨ x3) ∧ (¬x1 ∨ ¬x3) x3 1

Heule & Hunt (UT Austin) Look-ahead Techniques 3 / 1

slide-5
SLIDE 5

DPLL: Example FDPLL := (x1 ∨ x2 ∨ ¬x3) ∧ (¬x1 ∨ x2 ∨ x3) ∧ (¬x1 ∨ ¬x2 ∨ x3) ∧ (x1 ∨ x3) ∧ (¬x1 ∨ ¬x3) x3 1 x2 x1 x3 1 1 1

Heule & Hunt (UT Austin) Look-ahead Techniques 3 / 1

slide-6
SLIDE 6

Look-ahead: Definition DPLL with selection of (effective) decision variables by look-aheads on variables

Heule & Hunt (UT Austin) Look-ahead Techniques 4 / 1

slide-7
SLIDE 7

Look-ahead: Definition DPLL with selection of (effective) decision variables by look-aheads on variables Look-ahead: Assign a variable to a truth value

Heule & Hunt (UT Austin) Look-ahead Techniques 4 / 1

slide-8
SLIDE 8

Look-ahead: Definition DPLL with selection of (effective) decision variables by look-aheads on variables Look-ahead: Assign a variable to a truth value Simplify the formula

Heule & Hunt (UT Austin) Look-ahead Techniques 4 / 1

slide-9
SLIDE 9

Look-ahead: Definition DPLL with selection of (effective) decision variables by look-aheads on variables Look-ahead: Assign a variable to a truth value Simplify the formula Measure the reduction

Heule & Hunt (UT Austin) Look-ahead Techniques 4 / 1

slide-10
SLIDE 10

Look-ahead: Definition DPLL with selection of (effective) decision variables by look-aheads on variables Look-ahead: Assign a variable to a truth value Simplify the formula Measure the reduction Learn if possible

Heule & Hunt (UT Austin) Look-ahead Techniques 4 / 1

slide-11
SLIDE 11

Look-ahead: Definition DPLL with selection of (effective) decision variables by look-aheads on variables Look-ahead: Assign a variable to a truth value Simplify the formula Measure the reduction Learn if possible Backtrack

Heule & Hunt (UT Austin) Look-ahead Techniques 4 / 1

slide-12
SLIDE 12

Look-ahead: Example Flearning := (¬x1 ∨ ¬x3 ∨ x4) ∧ (¬x1 ∨ ¬x2 ∨ x3) ∧ (¬x1 ∨ x2) ∧ (x1 ∨ x3 ∨ x6) ∧ (¬x1 ∨ x4 ∨ ¬x5) ∧ (x1 ∨ ¬x6) ∧ (x4 ∨ x5 ∨ x6) ∧ (x5 ∨ ¬x6)

Heule & Hunt (UT Austin) Look-ahead Techniques 5 / 1

slide-13
SLIDE 13

Look-ahead: Example Flearning := (¬x1 ∨ ¬x3 ∨ x4) ∧ (¬x1 ∨ ¬x2 ∨ x3) ∧ (¬x1 ∨ x2) ∧ (x1 ∨ x3 ∨ x6) ∧ (¬x1 ∨ x4 ∨ ¬x5) ∧ (x1 ∨ ¬x6) ∧ (x4 ∨ x5 ∨ x6) ∧ (x5 ∨ ¬x6) ϕ = {x2=0}

Heule & Hunt (UT Austin) Look-ahead Techniques 5 / 1

slide-14
SLIDE 14

Look-ahead: Example Flearning := (¬x1 ∨ ¬x3 ∨ x4) ∧ (¬x1 ∨ ¬x2 ∨ x3) ∧ (¬x1 ∨ x2) ∧ (x1 ∨ x3 ∨ x6) ∧ (¬x1 ∨ x4 ∨ ¬x5) ∧ (x1 ∨ ¬x6) ∧ (x4 ∨ x5 ∨ x6) ∧ (x5 ∨ ¬x6) ϕ = {x2=0, x1=0}

Heule & Hunt (UT Austin) Look-ahead Techniques 5 / 1

slide-15
SLIDE 15

Look-ahead: Example Flearning := (¬x1 ∨ ¬x3 ∨ x4) ∧ (¬x1 ∨ ¬x2 ∨ x3) ∧ (¬x1 ∨ x2) ∧ (x1 ∨ x3 ∨ x6) ∧ (¬x1 ∨ x4 ∨ ¬x5) ∧ (x1 ∨ ¬x6) ∧ (x4 ∨ x5 ∨ x6) ∧ (x5 ∨ ¬x6) ϕ = {x2=0, x1=0, x6=0}

Heule & Hunt (UT Austin) Look-ahead Techniques 5 / 1

slide-16
SLIDE 16

Look-ahead: Example Flearning := (¬x1 ∨ ¬x3 ∨ x4) ∧ (¬x1 ∨ ¬x2 ∨ x3) ∧ (¬x1 ∨ x2) ∧ (x1 ∨ x3 ∨ x6) ∧ (¬x1 ∨ x4 ∨ ¬x5) ∧ (x1 ∨ ¬x6) ∧ (x4 ∨ x5 ∨ x6) ∧ (x5 ∨ ¬x6) ϕ = {x2=0, x1=0, x6=0, x3=1}

Heule & Hunt (UT Austin) Look-ahead Techniques 5 / 1

slide-17
SLIDE 17

Look-ahead: Properties Very expensive

Heule & Hunt (UT Austin) Look-ahead Techniques 6 / 1

slide-18
SLIDE 18

Look-ahead: Properties Very expensive Effective compared to cheap heuristics

Heule & Hunt (UT Austin) Look-ahead Techniques 6 / 1

slide-19
SLIDE 19

Look-ahead: Properties Very expensive Effective compared to cheap heuristics Detection of failed literals (and more)

Heule & Hunt (UT Austin) Look-ahead Techniques 6 / 1

slide-20
SLIDE 20

Look-ahead: Properties Very expensive Effective compared to cheap heuristics Detection of failed literals (and more) Strong on random k-Sat formulae

Heule & Hunt (UT Austin) Look-ahead Techniques 6 / 1

slide-21
SLIDE 21

Look-ahead: Properties Very expensive Effective compared to cheap heuristics Detection of failed literals (and more) Strong on random k-Sat formulae Examples: march, OKsolver, kcnfs

Heule & Hunt (UT Austin) Look-ahead Techniques 6 / 1

slide-22
SLIDE 22

Look-ahead: Reduction heuristics Number of satisfied clauses

Heule & Hunt (UT Austin) Look-ahead Techniques 7 / 1

slide-23
SLIDE 23

Look-ahead: Reduction heuristics Number of satisfied clauses Number of implied variables

Heule & Hunt (UT Austin) Look-ahead Techniques 7 / 1

slide-24
SLIDE 24

Look-ahead: Reduction heuristics Number of satisfied clauses Number of implied variables New (reduced, not satisfied) clauses

Smaller clauses more important Weights based on occurring

Heule & Hunt (UT Austin) Look-ahead Techniques 7 / 1

slide-25
SLIDE 25

Look-ahead: Architecture

xa xb xc

1

?

1 DPLL

x1 x2 x3 x4 FLA

9 1 9 13 1 6 1 7 10 1 8 LookAhead H(xi)

Heule & Hunt (UT Austin) Look-ahead Techniques 8 / 1

slide-26
SLIDE 26

Look-ahead: Pseudo-code

1: F := Simplify (F) 2: If F is empty then return satisfiable 3: If ∅ ∈ F then return unsatisfiable 4: F; ldecision := LookAhead( F ) 5: if DPLL( F(ldecision ← 1)) = satisfiable then 6:

return satisfiable

7: end if 8: return DPLL( F(ldecision ← 0))

Heule & Hunt (UT Austin) Look-ahead Techniques 9 / 1

slide-27
SLIDE 27

Look-ahead: Local learning Flearning := (¬x1 ∨ ¬x3 ∨ x4) ∧ (¬x1 ∨ ¬x2 ∨ x3) ∧ (¬x1 ∨ x2) ∧ (x1 ∨ x3 ∨ x6) ∧ (¬x1 ∨ x4 ∨ ¬x5) ∧ (x1 ∨ ¬x6) ∧ (x4 ∨ x5 ∨ x6) ∧ (x5 ∨ ¬x6)

Heule & Hunt (UT Austin) Look-ahead Techniques 10 / 1

slide-28
SLIDE 28

Look-ahead: Local learning Flearning := (¬x1 ∨ ¬x3 ∨ x4) ∧ (¬x1 ∨ ¬x2 ∨ x3) ∧ (¬x1 ∨ x2) ∧ (x1 ∨ x3 ∨ x6) ∧ (¬x1 ∨ x4 ∨ ¬x5) ∧ (x1 ∨ ¬x6) ∧ (x4 ∨ x5 ∨ x6) ∧ (x5 ∨ ¬x6) ϕ = {x2=0}

Heule & Hunt (UT Austin) Look-ahead Techniques 10 / 1

slide-29
SLIDE 29

Look-ahead: Local learning Flearning := (¬x1 ∨ ¬x3 ∨ x4) ∧ (¬x1 ∨ ¬x2 ∨ x3) ∧ (¬x1 ∨ x2) ∧ (x1 ∨ x3 ∨ x6) ∧ (¬x1 ∨ x4 ∨ ¬x5) ∧ (x1 ∨ ¬x6) ∧ (x4 ∨ x5 ∨ x6) ∧ (x5 ∨ ¬x6) ϕ = {x2=0, x1=0}

Heule & Hunt (UT Austin) Look-ahead Techniques 10 / 1

slide-30
SLIDE 30

Look-ahead: Local learning Flearning := (¬x1 ∨ ¬x3 ∨ x4) ∧ (¬x1 ∨ ¬x2 ∨ x3) ∧ (¬x1 ∨ x2) ∧ (x1 ∨ x3 ∨ x6) ∧ (¬x1 ∨ x4 ∨ ¬x5) ∧ (x1 ∨ ¬x6) ∧ (x4 ∨ x5 ∨ x6) ∧ (x5 ∨ ¬x6) ϕ = {x2=0, x1=0, x6=0}

Heule & Hunt (UT Austin) Look-ahead Techniques 10 / 1

slide-31
SLIDE 31

Look-ahead: Local learning Flearning := (¬x1 ∨ ¬x3 ∨ x4) ∧ (¬x1 ∨ ¬x2 ∨ x3) ∧ (¬x1 ∨ x2) ∧ (x1 ∨ x3 ∨ x6) ∧ (¬x1 ∨ x4 ∨ ¬x5) ∧ (x1 ∨ ¬x6) ∧ (x4 ∨ x5 ∨ x6) ∧ (x5 ∨ ¬x6) ϕ = {x2=0, x1=0, x6=0, x3=1}

Heule & Hunt (UT Austin) Look-ahead Techniques 10 / 1

slide-32
SLIDE 32

Look-ahead: Local learning Flearning := (¬x1 ∨ ¬x3 ∨ x4) ∧ (¬x1 ∨ ¬x2 ∨ x3) ∧ (¬x1 ∨ x2) ∧ (x1 ∨ x3 ∨ x6) ∧ (¬x1 ∨ x4 ∨ ¬x5) ∧ (x1 ∨ ¬x6) ∧ (x4 ∨ x5 ∨ x6) ∧ (x5 ∨ ¬x6) ϕ = {x2=0, x1=0, x6=0, x3=1} (local) constraint resolvents a.k.a. hyper binary resolvents: (x2 ∨ x3) and (x2 ∨ ¬x6)

Heule & Hunt (UT Austin) Look-ahead Techniques 10 / 1

slide-33
SLIDE 33

Look-ahead: Necessary assignments Flearning := (¬x1 ∨ ¬x3 ∨ x4) ∧ (¬x1 ∨ ¬x2 ∨ x3) ∧ (¬x1 ∨ x2) ∧ (x1 ∨ x3 ∨ x6) ∧ (¬x1 ∨ x4 ∨ ¬x5) ∧ (x1 ∨ ¬x6) ∧ (x4 ∨ x5 ∨ x6) ∧ (x5 ∨ ¬x6)

Heule & Hunt (UT Austin) Look-ahead Techniques 11 / 1

slide-34
SLIDE 34

Look-ahead: Necessary assignments Flearning := (¬x1 ∨ ¬x3 ∨ x4) ∧ (¬x1 ∨ ¬x2 ∨ x3) ∧ (¬x1 ∨ x2) ∧ (x1 ∨ x3 ∨ x6) ∧ (¬x1 ∨ x4 ∨ ¬x5) ∧ (x1 ∨ ¬x6) ∧ (x4 ∨ x5 ∨ x6) ∧ (x5 ∨ ¬x6) ϕ = {x1=1}

Heule & Hunt (UT Austin) Look-ahead Techniques 11 / 1

slide-35
SLIDE 35

Look-ahead: Necessary assignments Flearning := (¬x1 ∨ ¬x3 ∨ x4) ∧ (¬x1 ∨ ¬x2 ∨ x3) ∧ (¬x1 ∨ x2) ∧ (x1 ∨ x3 ∨ x6) ∧ (¬x1 ∨ x4 ∨ ¬x5) ∧ (x1 ∨ ¬x6) ∧ (x4 ∨ x5 ∨ x6) ∧ (x5 ∨ ¬x6) ϕ = {x1=1, x2=1}

Heule & Hunt (UT Austin) Look-ahead Techniques 11 / 1

slide-36
SLIDE 36

Look-ahead: Necessary assignments Flearning := (¬x1 ∨ ¬x3 ∨ x4) ∧ (¬x1 ∨ ¬x2 ∨ x3) ∧ (¬x1 ∨ x2) ∧ (x1 ∨ x3 ∨ x6) ∧ (¬x1 ∨ x4 ∨ ¬x5) ∧ (x1 ∨ ¬x6) ∧ (x4 ∨ x5 ∨ x6) ∧ (x5 ∨ ¬x6) ϕ = {x1=1, x2=1, x3=1}

Heule & Hunt (UT Austin) Look-ahead Techniques 11 / 1

slide-37
SLIDE 37

Look-ahead: Necessary assignments Flearning := (¬x1 ∨ ¬x3 ∨ x4) ∧ (¬x1 ∨ ¬x2 ∨ x3) ∧ (¬x1 ∨ x2) ∧ (x1 ∨ x3 ∨ x6) ∧ (¬x1 ∨ x4 ∨ ¬x5) ∧ (x1 ∨ ¬x6) ∧ (x4 ∨ x5 ∨ x6) ∧ (x5 ∨ ¬x6) ϕ = {x1=1, x2=1, x3=1, x4=1}

Heule & Hunt (UT Austin) Look-ahead Techniques 11 / 1

slide-38
SLIDE 38

Look-ahead: Necessary assignments Flearning := (¬x1 ∨ ¬x3 ∨ x4) ∧ (¬x1 ∨ ¬x2 ∨ x3) ∧ (¬x1 ∨ x2) ∧ (x1 ∨ x3 ∨ x6) ∧ (¬x1 ∨ x4 ∨ ¬x5) ∧ (x1 ∨ ¬x6) ∧ (x4 ∨ x5 ∨ x6) ∧ (x5 ∨ ¬x6) ϕ = {x1=1, x2=1, x3=1, x4=1} Flearning := (¬x1 ∨ ¬x3 ∨ x4) ∧ (¬x1 ∨ ¬x2 ∨ x3) ∧ (¬x1 ∨ x2) ∧ (x1 ∨ x3 ∨ x6) ∧ (¬x1 ∨ x4 ∨ ¬x5) ∧ (x1 ∨ ¬x6) ∧ (x4 ∨ x5 ∨ x6) ∧ (x5 ∨ ¬x6)

Heule & Hunt (UT Austin) Look-ahead Techniques 11 / 1

slide-39
SLIDE 39

Look-ahead: Necessary assignments Flearning := (¬x1 ∨ ¬x3 ∨ x4) ∧ (¬x1 ∨ ¬x2 ∨ x3) ∧ (¬x1 ∨ x2) ∧ (x1 ∨ x3 ∨ x6) ∧ (¬x1 ∨ x4 ∨ ¬x5) ∧ (x1 ∨ ¬x6) ∧ (x4 ∨ x5 ∨ x6) ∧ (x5 ∨ ¬x6) ϕ = {x1=1, x2=1, x3=1, x4=1} Flearning := (¬x1 ∨ ¬x3 ∨ x4) ∧ (¬x1 ∨ ¬x2 ∨ x3) ∧ (¬x1 ∨ x2) ∧ (x1 ∨ x3 ∨ x6) ∧ (¬x1 ∨ x4 ∨ ¬x5) ∧ (x1 ∨ ¬x6) ∧ (x4 ∨ x5 ∨ x6) ∧ (x5 ∨ ¬x6) ϕ = {x1=0}

Heule & Hunt (UT Austin) Look-ahead Techniques 11 / 1

slide-40
SLIDE 40

Look-ahead: Necessary assignments Flearning := (¬x1 ∨ ¬x3 ∨ x4) ∧ (¬x1 ∨ ¬x2 ∨ x3) ∧ (¬x1 ∨ x2) ∧ (x1 ∨ x3 ∨ x6) ∧ (¬x1 ∨ x4 ∨ ¬x5) ∧ (x1 ∨ ¬x6) ∧ (x4 ∨ x5 ∨ x6) ∧ (x5 ∨ ¬x6) ϕ = {x1=1, x2=1, x3=1, x4=1} Flearning := (¬x1 ∨ ¬x3 ∨ x4) ∧ (¬x1 ∨ ¬x2 ∨ x3) ∧ (¬x1 ∨ x2) ∧ (x1 ∨ x3 ∨ x6) ∧ (¬x1 ∨ x4 ∨ ¬x5) ∧ (x1 ∨ ¬x6) ∧ (x4 ∨ x5 ∨ x6) ∧ (x5 ∨ ¬x6) ϕ = {x1=0, x6=0}

Heule & Hunt (UT Austin) Look-ahead Techniques 11 / 1

slide-41
SLIDE 41

Look-ahead: Necessary assignments Flearning := (¬x1 ∨ ¬x3 ∨ x4) ∧ (¬x1 ∨ ¬x2 ∨ x3) ∧ (¬x1 ∨ x2) ∧ (x1 ∨ x3 ∨ x6) ∧ (¬x1 ∨ x4 ∨ ¬x5) ∧ (x1 ∨ ¬x6) ∧ (x4 ∨ x5 ∨ x6) ∧ (x5 ∨ ¬x6) ϕ = {x1=1, x2=1, x3=1, x4=1} Flearning := (¬x1 ∨ ¬x3 ∨ x4) ∧ (¬x1 ∨ ¬x2 ∨ x3) ∧ (¬x1 ∨ x2) ∧ (x1 ∨ x3 ∨ x6) ∧ (¬x1 ∨ x4 ∨ ¬x5) ∧ (x1 ∨ ¬x6) ∧ (x4 ∨ x5 ∨ x6) ∧ (x5 ∨ ¬x6) ϕ = {x1=0, x6=0, x3=1}

Heule & Hunt (UT Austin) Look-ahead Techniques 11 / 1

slide-42
SLIDE 42

Look-ahead: Necessary assignments Flearning := (¬x1 ∨ ¬x3 ∨ x4) ∧ (¬x1 ∨ ¬x2 ∨ x3) ∧ (¬x1 ∨ x2) ∧ (x1 ∨ x3 ∨ x6) ∧ (¬x1 ∨ x4 ∨ ¬x5) ∧ (x1 ∨ ¬x6) ∧ (x4 ∨ x5 ∨ x6) ∧ (x5 ∨ ¬x6) ϕ = {x1=1, x2=1, x3=1, x4=1} Flearning := (¬x1 ∨ ¬x3 ∨ x4) ∧ (¬x1 ∨ ¬x2 ∨ x3) ∧ (¬x1 ∨ x2) ∧ (x1 ∨ x3 ∨ x6) ∧ (¬x1 ∨ x4 ∨ ¬x5) ∧ (x1 ∨ ¬x6) ∧ (x4 ∨ x5 ∨ x6) ∧ (x5 ∨ ¬x6) ϕ = {x1=0, x6=0, x3=1}

Heule & Hunt (UT Austin) Look-ahead Techniques 11 / 1

slide-43
SLIDE 43

Look-ahead: Autarky definition An autarky is a partial assignment that satisfies all clauses that are “touched” by the assignment

Heule & Hunt (UT Austin) Look-ahead Techniques 12 / 1

slide-44
SLIDE 44

Look-ahead: Autarky definition An autarky is a partial assignment that satisfies all clauses that are “touched” by the assignment a pure literal is an autarky

Heule & Hunt (UT Austin) Look-ahead Techniques 12 / 1

slide-45
SLIDE 45

Look-ahead: Autarky definition An autarky is a partial assignment that satisfies all clauses that are “touched” by the assignment a pure literal is an autarky each satisfying assignment is an autarky

Heule & Hunt (UT Austin) Look-ahead Techniques 12 / 1

slide-46
SLIDE 46

Look-ahead: Autarky definition An autarky is a partial assignment that satisfies all clauses that are “touched” by the assignment a pure literal is an autarky each satisfying assignment is an autarky the remaining formula is satisfiability equivalent to the original formula

Heule & Hunt (UT Austin) Look-ahead Techniques 12 / 1

slide-47
SLIDE 47

Look-ahead: Autarky definition An autarky is a partial assignment that satisfies all clauses that are “touched” by the assignment a pure literal is an autarky each satisfying assignment is an autarky the remaining formula is satisfiability equivalent to the original formula An 1-autarky is a partial assignment that satisfies all touched clauses except one

Heule & Hunt (UT Austin) Look-ahead Techniques 12 / 1

slide-48
SLIDE 48

Look-ahead: Autarky detection Flearning := (¬x1 ∨ ¬x3 ∨ x4) ∧ (¬x1 ∨ ¬x2 ∨ x3) ∧ (¬x1 ∨ x2) ∧ (x1 ∨ x3 ∨ x6) ∧ (¬x1 ∨ x4 ∨ ¬x5) ∧ (x1 ∨ ¬x6) ∧ (x4 ∨ x5 ∨ x6) ∧ (x5 ∨ ¬x6)

Heule & Hunt (UT Austin) Look-ahead Techniques 13 / 1

slide-49
SLIDE 49

Look-ahead: Autarky detection Flearning := (¬x1 ∨ ¬x3 ∨ x4) ∧ (¬x1 ∨ ¬x2 ∨ x3) ∧ (¬x1 ∨ x2) ∧ (x1 ∨ x3 ∨ x6) ∧ (¬x1 ∨ x4 ∨ ¬x5) ∧ (x1 ∨ ¬x6) ∧ (x4 ∨ x5 ∨ x6) ∧ (x5 ∨ ¬x6) ϕ = {x1=1}

Heule & Hunt (UT Austin) Look-ahead Techniques 13 / 1

slide-50
SLIDE 50

Look-ahead: Autarky detection Flearning := (¬x1 ∨ ¬x3 ∨ x4) ∧ (¬x1 ∨ ¬x2 ∨ x3) ∧ (¬x1 ∨ x2) ∧ (x1 ∨ x3 ∨ x6) ∧ (¬x1 ∨ x4 ∨ ¬x5) ∧ (x1 ∨ ¬x6) ∧ (x4 ∨ x5 ∨ x6) ∧ (x5 ∨ ¬x6) ϕ = {x1=1, x2=1}

Heule & Hunt (UT Austin) Look-ahead Techniques 13 / 1

slide-51
SLIDE 51

Look-ahead: Autarky detection Flearning := (¬x1 ∨ ¬x3 ∨ x4) ∧ (¬x1 ∨ ¬x2 ∨ x3) ∧ (¬x1 ∨ x2) ∧ (x1 ∨ x3 ∨ x6) ∧ (¬x1 ∨ x4 ∨ ¬x5) ∧ (x1 ∨ ¬x6) ∧ (x4 ∨ x5 ∨ x6) ∧ (x5 ∨ ¬x6) ϕ = {x1=1, x2=1, x3=1}

Heule & Hunt (UT Austin) Look-ahead Techniques 13 / 1

slide-52
SLIDE 52

Look-ahead: Autarky detection Flearning := (¬x1 ∨ ¬x3 ∨ x4) ∧ (¬x1 ∨ ¬x2 ∨ x3) ∧ (¬x1 ∨ x2) ∧ (x1 ∨ x3 ∨ x6) ∧ (¬x1 ∨ x4 ∨ ¬x5) ∧ (x1 ∨ ¬x6) ∧ (x4 ∨ x5 ∨ x6) ∧ (x5 ∨ ¬x6) ϕ = {x1=1, x2=1, x3=1, x4=1}

Heule & Hunt (UT Austin) Look-ahead Techniques 13 / 1

slide-53
SLIDE 53

Look-ahead: Autarky detection Flearning := (¬x1 ∨ ¬x3 ∨ x4) ∧ (¬x1 ∨ ¬x2 ∨ x3) ∧ (¬x1 ∨ x2) ∧ (x1 ∨ x3 ∨ x6) ∧ (¬x1 ∨ x4 ∨ ¬x5) ∧ (x1 ∨ ¬x6) ∧ (x4 ∨ x5 ∨ x6) ∧ (x5 ∨ ¬x6) ϕ = {x1=1, x2=1, x3=1, x4=1} Flearning satisfiability equivalent to (x5 ∨ ¬x6)

Heule & Hunt (UT Austin) Look-ahead Techniques 13 / 1

slide-54
SLIDE 54

Look-ahead: Autarky detection Flearning := (¬x1 ∨ ¬x3 ∨ x4) ∧ (¬x1 ∨ ¬x2 ∨ x3) ∧ (¬x1 ∨ x2) ∧ (x1 ∨ x3 ∨ x6) ∧ (¬x1 ∨ x4 ∨ ¬x5) ∧ (x1 ∨ ¬x6) ∧ (x4 ∨ x5 ∨ x6) ∧ (x5 ∨ ¬x6) ϕ = {x1=1, x2=1, x3=1, x4=1} Flearning satisfiability equivalent to (x5 ∨ ¬x6) Could reduce computational cost on UNSAT

Heule & Hunt (UT Austin) Look-ahead Techniques 13 / 1

slide-55
SLIDE 55

Look-ahead: Autarky or Conflict on 2-SAT Formulae Lookahead techniques can solve 2-SAT formulae in polynomial time. Each lookahead on l results:

1 in an autarky: forcing l to be true 2 in a conflict: forcing l to be false

Heule & Hunt (UT Austin) Look-ahead Techniques 14 / 1

slide-56
SLIDE 56

Look-ahead: Autarky or Conflict on 2-SAT Formulae Lookahead techniques can solve 2-SAT formulae in polynomial time. Each lookahead on l results:

1 in an autarky: forcing l to be true 2 in a conflict: forcing l to be false

SAT game

by Olivier Roussel http://www.cs.utexas.edu/~marijn/game/2SAT

Heule & Hunt (UT Austin) Look-ahead Techniques 14 / 1

slide-57
SLIDE 57

Look-ahead: 1-Autarky learning Flearning := (¬x1 ∨ ¬x3 ∨ x4) ∧ (¬x1 ∨ ¬x2 ∨ x3) ∧ (¬x1 ∨ x2) ∧ (x1 ∨ x3 ∨ x6) ∧ (¬x1 ∨ x4 ∨ ¬x5) ∧ (x1 ∨ ¬x6) ∧ (x4 ∨ x5 ∨ x6) ∧ (x5 ∨ ¬x6)

Heule & Hunt (UT Austin) Look-ahead Techniques 15 / 1

slide-58
SLIDE 58

Look-ahead: 1-Autarky learning Flearning := (¬x1 ∨ ¬x3 ∨ x4) ∧ (¬x1 ∨ ¬x2 ∨ x3) ∧ (¬x1 ∨ x2) ∧ (x1 ∨ x3 ∨ x6) ∧ (¬x1 ∨ x4 ∨ ¬x5) ∧ (x1 ∨ ¬x6) ∧ (x4 ∨ x5 ∨ x6) ∧ (x5 ∨ ¬x6) ϕ = {x2=0}

Heule & Hunt (UT Austin) Look-ahead Techniques 15 / 1

slide-59
SLIDE 59

Look-ahead: 1-Autarky learning Flearning := (¬x1 ∨ ¬x3 ∨ x4) ∧ (¬x1 ∨ ¬x2 ∨ x3) ∧ (¬x1 ∨ x2) ∧ (x1 ∨ x3 ∨ x6) ∧ (¬x1 ∨ x4 ∨ ¬x5) ∧ (x1 ∨ ¬x6) ∧ (x4 ∨ x5 ∨ x6) ∧ (x5 ∨ ¬x6) ϕ = {x2=0, x1=0}

Heule & Hunt (UT Austin) Look-ahead Techniques 15 / 1

slide-60
SLIDE 60

Look-ahead: 1-Autarky learning Flearning := (¬x1 ∨ ¬x3 ∨ x4) ∧ (¬x1 ∨ ¬x2 ∨ x3) ∧ (¬x1 ∨ x2) ∧ (x1 ∨ x3 ∨ x6) ∧ (¬x1 ∨ x4 ∨ ¬x5) ∧ (x1 ∨ ¬x6) ∧ (x4 ∨ x5 ∨ x6) ∧ (x5 ∨ ¬x6) ϕ = {x2=0, x1=0, x6=0}

Heule & Hunt (UT Austin) Look-ahead Techniques 15 / 1

slide-61
SLIDE 61

Look-ahead: 1-Autarky learning Flearning := (¬x1 ∨ ¬x3 ∨ x4) ∧ (¬x1 ∨ ¬x2 ∨ x3) ∧ (¬x1 ∨ x2) ∧ (x1 ∨ x3 ∨ x6) ∧ (¬x1 ∨ x4 ∨ ¬x5) ∧ (x1 ∨ ¬x6) ∧ (x4 ∨ x5 ∨ x6) ∧ (x5 ∨ ¬x6) ϕ = {x2=0, x1=0, x6=0, x3=1}

Heule & Hunt (UT Austin) Look-ahead Techniques 15 / 1

slide-62
SLIDE 62

Look-ahead: 1-Autarky learning Flearning := (¬x1 ∨ ¬x3 ∨ x4) ∧ (¬x1 ∨ ¬x2 ∨ x3) ∧ (¬x1 ∨ x2) ∧ (x1 ∨ x3 ∨ x6) ∧ (¬x1 ∨ x4 ∨ ¬x5) ∧ (x1 ∨ ¬x6) ∧ (x4 ∨ x5 ∨ x6) ∧ (x5 ∨ ¬x6) ϕ = {x2=0, x1=0, x6=0, x3=1} (local) 1-autarky resolvents: (¬x2 ∨ ¬x4) and (¬x2 ∨ ¬x5)

Heule & Hunt (UT Austin) Look-ahead Techniques 15 / 1

slide-63
SLIDE 63

Tree-based Look-ahead

Given a formula F which includes the clauses (a ∨ ¯ b) and (a ∨ ¯ c), tree-based look-ahead can reduce the costs of look-aheads. F a b c

2 3 4 5 1 6

implication action 1 propagate a 2 propagate b 3 backtrack b 4 propagate c 5 backtrack c 6 backtrack a

Heule & Hunt (UT Austin) Look-ahead Techniques 16 / 1

slide-64
SLIDE 64

Homework puzzle Populate the matrix with the following numbers: 10, 40, 50, 12, 21, 31, 35, 43, 46, 56, 74, 75, 83, 87, 89, 98 such that no digit repeats in any row, column or diagonal.

Heule & Hunt (UT Austin) Look-ahead Techniques 17 / 1

slide-65
SLIDE 65

Practical SAT Solving: Look-ahead Techniques

Marijn J.H. Heule Warren A. Hunt Jr. The University of Texas at Austin

Heule & Hunt (UT Austin) Look-ahead Techniques 18 / 1