practical sat solving: look-ahead techniquespractical sat solving: look-ahead techniques...

Post on 23-Dec-2020

7 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Practical SAT Solving: Look-ahead Techniques

Marijn J.H. HeuleWarren 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]

Simplify (Unit Propagation)

Split the formula

Variable Selection HeuristicsDirection heuristics

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

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

DPLL: Example

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

x3

1 0

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

DPLL: Example

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

x3

1 0

x2

x1 x3

0 1

0 1 1 0

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

Look-ahead: Definition

DPLL with selection of (effective) decision variables by

look-aheads on variables

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

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

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

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

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

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

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

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

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

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

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

Look-ahead: Properties

Very expensive

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

Look-ahead: Properties

Very expensive

Effective compared to cheap heuristics

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

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

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

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

Look-ahead: Reduction heuristics

Number of satisfied clauses

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

Look-ahead: Reduction heuristics

Number of satisfied clauses

Number of implied variables

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

Look-ahead: Reduction heuristics

Number of satisfied clauses

Number of implied variablesNew (reduced, not satisfied) clauses

Smaller clauses more importantWeights based on occurring

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

Look-ahead: Architecture

xa

xb xc

0 1

?

1 0 0

DPLL

x1 x2 x3 x4

FLA

0

9

1

9

0

13

1

6

0 1

7

0

10

1

8

LookAhead

H(xi )

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

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 then6: return satisfiable

7: end if

8: return DPLL( F(ldecision ← 0))

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

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

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

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

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

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

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 resolventsa.k.a. hyper binary resolvents:

(x2 ∨ x3) and (x2 ∨ ¬x6)

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

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

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

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

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

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

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

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

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

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

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

Look-ahead: Autarky definition

An autarky is a partial assignment that satisfies all clausesthat are “touched” by the assignment

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

Look-ahead: Autarky definition

An autarky is a partial assignment that satisfies all clausesthat are “touched” by the assignment

a pure literal is an autarky

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

Look-ahead: Autarky definition

An autarky is a partial assignment that satisfies all clausesthat 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

Look-ahead: Autarky definition

An autarky is a partial assignment that satisfies all clausesthat 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

Look-ahead: Autarky definition

An autarky is a partial assignment that satisfies all clausesthat 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 thatsatisfies all touched clauses except one

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

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

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

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

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

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

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

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

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

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 gameby Olivier Roussel

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

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

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

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

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

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

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

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

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

Homework puzzle

Populate the matrix with the following numbers:

10, 40, 50, 12, 21, 31, 35, 43, 46, 56, 74, 75, 83, 87, 89, 98such that no digit repeats in any row, column or diagonal.

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

Practical SAT Solving: Look-ahead Techniques

Marijn J.H. HeuleWarren A. Hunt Jr.

The University of Texas at Austin

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

top related