![Page 1: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/1.jpg)
Introduction to Satisfiability
Jinbo Huang
NICTA and Australian National University
Jinbo Huang Introduction to Satisfiability
![Page 2: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/2.jpg)
Overview
I Satisfiability
I Algorithms
I Applications
I Extensions
Jinbo Huang Introduction to Satisfiability
![Page 3: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/3.jpg)
Satisfiability
Broadly, can set of constraintsbe satisfied?
Example: neighbors havedifferent colors on map
WA 6= NT ,WA 6= SA, . . .
Jinbo Huang Introduction to Satisfiability
![Page 4: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/4.jpg)
Boolean Satisfiability (SAT)
All variables are Boolean (true/false)
Constraints are clauses
I A ∨ B ,B ∨ C ∨ D, . . .
I disjunction (logical OR) of literals
I literal: variable or its negation
I set of clauses: conjunctive normal form (CNF)
Clause satisfied when ≥ 1 literal is true
Jinbo Huang Introduction to Satisfiability
![Page 5: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/5.jpg)
Why CNF?
Any Boolean formula can be put in CNF
With auxilary variables, polynomial-size CNFpreserves satisfiability
Modeling is relatively natural
I problem broken into parts/steps
I model each part/step as (small) set of clauses
Jinbo Huang Introduction to Satisfiability
![Page 6: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/6.jpg)
Why Boolean: Versatility
Can model many types of problems
I planning/scheduling, spatial/temporalreasoning, hardware/software verification, testgeneration, diagnosis, bioinformatics, . . .
WA 6= NT translates intoWAR → NTR ,WAB → NTB ,WAG → NTG , . . .
(X → Y is short for X ∨ Y )
Encoding can be larger, but reasoning notnecessarily slower
Jinbo Huang Introduction to Satisfiability
![Page 7: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/7.jpg)
Why Boolean: NP-Completeness
All of NP translate to SAT in polynomial time
I p ∈ NP ⇒ p is solved by an algorithmI algo. works by moving from one state to next
I content of memory (computer) or tape (Turingmachine)
I encode state with set of Boolean variablesI size of state: polynomialI # of states needed: polynomial
I moves determined by instructions in algo.I encode instructions with Boolean formulasI # of sets needed: polynomial
I write formula that is satisfiable iff algorithmsays YES
Jinbo Huang Introduction to Satisfiability
![Page 8: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/8.jpg)
Why Boolean: Practical Solvers
Often efficient & scalable on real-world problems
I often handle millions of clauses
Some techniques not readily applicable to constraintsolvers
I fast propagation (literal watching)
I learning & restarts (exponential boost)
I decision heuristic (driven by learning)
Jinbo Huang Introduction to Satisfiability
![Page 9: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/9.jpg)
Algorithms for SAT
Clause learning
I top 3 in Application, SAT Competition 2009:precosat, glucose, LySAT
I 2 of top 3 in Crafted: clasp, minisat
Local search
I top 3 in Random Satisfiable: TNM,gnovelty+2, hybridGM3
Other algorithms
I lookahead, solver portfolios
Jinbo Huang Introduction to Satisfiability
![Page 10: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/10.jpg)
Algorithm: Enumeration
{A ∨ B ,B ∨ C}
Is formula satisfiable?
8 assignments to ABC : enumerate & check, untilmodel found, e.g., A = B = C = t
Exponential in # of variables in worst case (fine,but can try to do better in average case)
Jinbo Huang Introduction to Satisfiability
![Page 11: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/11.jpg)
Algorithm: Enumeration
{A ∨ B ,B ∨ C}
Is formula satisfiable?
8 assignments to ABC : enumerate & check, untilmodel found, e.g., A = B = C = t
Exponential in # of variables in worst case (fine,but can try to do better in average case)
Jinbo Huang Introduction to Satisfiability
![Page 12: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/12.jpg)
Algorithm: Enumeration
{A ∨ B ,B ∨ C}
Is formula satisfiable?
8 assignments to ABC : enumerate & check, untilmodel found, e.g., A = B = C = t
Exponential in # of variables in worst case (fine,but can try to do better in average case)
Jinbo Huang Introduction to Satisfiability
![Page 13: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/13.jpg)
Algorithm: Enumeration by Search
{A ∨ B ,B ∨ C}
Jinbo Huang Introduction to Satisfiability
![Page 14: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/14.jpg)
Conditioning
{A ∨ B ,B ∨ C}|A
'&
$%
Jinbo Huang Introduction to Satisfiability
![Page 15: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/15.jpg)
Conditioning
{A ∨ B ,B ∨ C}|A {B ,B ∨ C}
'&
$%
Jinbo Huang Introduction to Satisfiability
![Page 16: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/16.jpg)
Conditioning
{A ∨ B ,B ∨ C}|A {B ,B ∨ C}|B
'&
$%
Jinbo Huang Introduction to Satisfiability
![Page 17: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/17.jpg)
Conditioning
{A ∨ B ,B ∨ C}|A {B ,B ∨ C}|B {C}
'&
$%
Jinbo Huang Introduction to Satisfiability
![Page 18: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/18.jpg)
Conditioning
{A ∨ B ,B ∨ C}|A {B ,B ∨ C}|B {C}
Simplifies formula
I false literal disappears from clause
I true literal makes clause disappear
Leaves of search tree
I empty clause generated: formula falsified
I all clauses gone: formula satisfied
Not necessarily 2n leaves, even in case of UNSAT
Jinbo Huang Introduction to Satisfiability
![Page 19: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/19.jpg)
Early Backtracking
Backtrack as soon as empty clause generated
Can we do even better?
What about unit clauses?{A ∨ B ,B ∨ C}|A {B ,B ∨ C}
B must be true, no need for two branches
Setting B = t may lead to more unit clauses, repeattill no more (or till empty clause)
Known as unit propagation
Jinbo Huang Introduction to Satisfiability
![Page 20: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/20.jpg)
Early Backtracking
Backtrack as soon as empty clause generated
Can we do even better?
What about unit clauses?{A ∨ B ,B ∨ C}|A {B ,B ∨ C}
B must be true, no need for two branches
Setting B = t may lead to more unit clauses, repeattill no more (or till empty clause)
Known as unit propagation
Jinbo Huang Introduction to Satisfiability
![Page 21: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/21.jpg)
Early Backtracking
Backtrack as soon as empty clause generated
Can we do even better?
What about unit clauses?{A ∨ B ,B ∨ C}|A {B ,B ∨ C}
B must be true, no need for two branches
Setting B = t may lead to more unit clauses, repeattill no more (or till empty clause)
Known as unit propagation
Jinbo Huang Introduction to Satisfiability
![Page 22: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/22.jpg)
Early Backtracking
Backtrack as soon as empty clause generated
Can we do even better?
What about unit clauses?{A ∨ B ,B ∨ C}|A {B ,B ∨ C}
B must be true, no need for two branches
Setting B = t may lead to more unit clauses, repeattill no more (or till empty clause)
Known as unit propagation
Jinbo Huang Introduction to Satisfiability
![Page 23: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/23.jpg)
Early Backtracking
Backtrack as soon as empty clause generated
Can we do even better?
What about unit clauses?{A ∨ B ,B ∨ C}|A {B ,B ∨ C}
B must be true, no need for two branches
Setting B = t may lead to more unit clauses, repeattill no more (or till empty clause)
Known as unit propagation
Jinbo Huang Introduction to Satisfiability
![Page 24: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/24.jpg)
Algorithm: DPLL
Same kind of search tree, each node augmentedwith unit propagation
I multiple assignments in one levelI decision & implications
I may not need n levels to reach leaf
What (completely) determines search tree?
Jinbo Huang Introduction to Satisfiability
![Page 25: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/25.jpg)
Algorithm: DPLL
Same kind of search tree, each node augmentedwith unit propagation
I multiple assignments in one levelI decision & implications
I may not need n levels to reach leaf
What (completely) determines search tree?
Jinbo Huang Introduction to Satisfiability
![Page 26: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/26.jpg)
DPLL: Variable Ordering
Can have huge impact on efficiency
Example: unit propagation lookahead, as in satz
I short clauses are good, more likely to result inunit propagation
I tentatively try each variable, count new binaryclauses generated
I select variable with highest score:w(X ) · w(X ) · 1024 + w(X ) + w(X )
Generally different orders down different branches:dynamic ordering
Jinbo Huang Introduction to Satisfiability
![Page 27: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/27.jpg)
Enhancement
Given variable ordering, search tree is fixed
How can we possibly reduce search tree further?
Backtrack earlier
Backtracking occurs (only) when empty clausegenerated
Empty clause generated (only) by unit propagation
Jinbo Huang Introduction to Satisfiability
![Page 28: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/28.jpg)
Enhancement
Given variable ordering, search tree is fixed
How can we possibly reduce search tree further?
Backtrack earlier
Backtracking occurs (only) when empty clausegenerated
Empty clause generated (only) by unit propagation
Jinbo Huang Introduction to Satisfiability
![Page 29: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/29.jpg)
Enhancement
Given variable ordering, search tree is fixed
How can we possibly reduce search tree further?
Backtrack earlier
Backtracking occurs (only) when empty clausegenerated
Empty clause generated (only) by unit propagation
Jinbo Huang Introduction to Satisfiability
![Page 30: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/30.jpg)
Empowering Unit Propagation
Unit propagation determined by set of clauses
More clauses ⇒ (potentially) more propagation,earlier empty clause (backtrack), smaller search tree
What clauses to add?
I not already in CNF
I logically implied by CNF (or correctness lost)
I empower UP
Jinbo Huang Introduction to Satisfiability
![Page 31: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/31.jpg)
Empowering Unit Propagation
Unit propagation determined by set of clauses
More clauses ⇒ (potentially) more propagation,earlier empty clause (backtrack), smaller search tree
What clauses to add?
I not already in CNF
I logically implied by CNF (or correctness lost)
I empower UP
Jinbo Huang Introduction to Satisfiability
![Page 32: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/32.jpg)
Empowering Unit Propagation
Unit propagation determined by set of clauses
More clauses ⇒ (potentially) more propagation,earlier empty clause (backtrack), smaller search tree
What clauses to add?
I not already in CNF
I logically implied by CNF (or correctness lost)
I empower UP
Jinbo Huang Introduction to Satisfiability
![Page 33: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/33.jpg)
Empowering Unit Propagation
Unit propagation determined by set of clauses
More clauses ⇒ (potentially) more propagation,earlier empty clause (backtrack), smaller search tree
What clauses to add?
I not already in CNF
I logically implied by CNF (or correctness lost)
I empower UP
Jinbo Huang Introduction to Satisfiability
![Page 34: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/34.jpg)
Empowering Unit Propagation
Unit propagation determined by set of clauses
More clauses ⇒ (potentially) more propagation,earlier empty clause (backtrack), smaller search tree
What clauses to add?
I not already in CNF
I logically implied by CNF (or correctness lost)
I empower UP
Jinbo Huang Introduction to Satisfiability
![Page 35: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/35.jpg)
Clause Learning
∆|A
A,BB ,CA,X ,YA,X ,ZA,Y ,ZA,X ,ZA,Y ,Z
∆|A
A,B
B ,C
A,
X ,Y
A,
X ,Z
A,
Y ,Z
A,
X ,Z
A,
Y ,Z
∆|A,B
A,BB ,CA,
X ,Y
A,
X ,Z
A,
Y ,Z
A,
X ,Z
A,
Y ,Z
∆|A,B,C
A,BB ,CA,
X ,Y
A,
X ,Z
A,
Y ,Z
A,
X ,Z
A,
Y ,Z
∆|A,B,C ,X
A,BB ,CA,X ,
Y
A,X ,ZA,
Y ,Z
A,X ,ZA,
Y ,Z
I Conflict in level 3: ∆|A,B,C ⇒ XI B ,C irrelevant: ∆|A ⇒ XI What clause would have allowed UP to derive
X in level 0? A ∨ X (A→ X )
Jinbo Huang Introduction to Satisfiability
![Page 36: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/36.jpg)
Clause Learning
∆|A
A,BB ,CA,X ,YA,X ,ZA,Y ,ZA,X ,ZA,Y ,Z
∆|A
A,B
B ,C
A,
X ,Y
A,
X ,Z
A,
Y ,Z
A,
X ,Z
A,
Y ,Z
∆|A,B
A,BB ,CA,
X ,Y
A,
X ,Z
A,
Y ,Z
A,
X ,Z
A,
Y ,Z
∆|A,B,C
A,BB ,CA,
X ,Y
A,
X ,Z
A,
Y ,Z
A,
X ,Z
A,
Y ,Z
∆|A,B,C ,X
A,BB ,CA,X ,
Y
A,X ,ZA,
Y ,Z
A,X ,ZA,
Y ,Z
I Conflict in level 3: ∆|A,B,C ⇒ XI B ,C irrelevant: ∆|A ⇒ XI What clause would have allowed UP to derive
X in level 0? A ∨ X (A→ X )
Jinbo Huang Introduction to Satisfiability
![Page 37: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/37.jpg)
Clause Learning
∆|A
A,BB ,CA,X ,YA,X ,ZA,Y ,ZA,X ,ZA,Y ,Z
∆|A
A,B
B ,C
A,
X ,Y
A,
X ,Z
A,
Y ,Z
A,
X ,Z
A,
Y ,Z
∆|A,B
A,BB ,CA,
X ,Y
A,
X ,Z
A,
Y ,Z
A,
X ,Z
A,
Y ,Z
∆|A,B,C
A,BB ,CA,
X ,Y
A,
X ,Z
A,
Y ,Z
A,
X ,Z
A,
Y ,Z
∆|A,B,C ,X
A,BB ,CA,X ,
Y
A,X ,ZA,
Y ,Z
A,X ,ZA,
Y ,Z
I Conflict in level 3: ∆|A,B,C ⇒ XI B ,C irrelevant: ∆|A ⇒ XI What clause would have allowed UP to derive
X in level 0? A ∨ X (A→ X )
Jinbo Huang Introduction to Satisfiability
![Page 38: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/38.jpg)
Clause Learning
∆|A
A,BB ,CA,X ,YA,X ,ZA,Y ,ZA,X ,ZA,Y ,Z
∆|A
A,B
B ,C
A,
X ,Y
A,
X ,Z
A,
Y ,Z
A,
X ,Z
A,
Y ,Z
∆|A,B
A,BB ,CA,
X ,Y
A,
X ,Z
A,
Y ,Z
A,
X ,Z
A,
Y ,Z
∆|A,B,C
A,BB ,CA,
X ,Y
A,
X ,Z
A,
Y ,Z
A,
X ,Z
A,
Y ,Z
∆|A,B,C ,X
A,BB ,CA,X ,
Y
A,X ,ZA,
Y ,Z
A,X ,ZA,
Y ,Z
I Conflict in level 3: ∆|A,B,C ⇒ XI B ,C irrelevant: ∆|A ⇒ XI What clause would have allowed UP to derive
X in level 0? A ∨ X (A→ X )
Jinbo Huang Introduction to Satisfiability
![Page 39: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/39.jpg)
Clause Learning
∆|A
A,BB ,CA,X ,YA,X ,ZA,Y ,ZA,X ,ZA,Y ,Z
∆|A
A,B
B ,C
A,
X ,Y
A,
X ,Z
A,
Y ,Z
A,
X ,Z
A,
Y ,Z
∆|A,B
A,BB ,CA,
X ,Y
A,
X ,Z
A,
Y ,Z
A,
X ,Z
A,
Y ,Z
∆|A,B,C
A,BB ,CA,
X ,Y
A,
X ,Z
A,
Y ,Z
A,
X ,Z
A,
Y ,Z
∆|A,B,C ,X
A,BB ,CA,X ,
Y
A,X ,ZA,
Y ,Z
A,X ,ZA,
Y ,Z
I Conflict in level 3: ∆|A,B,C ⇒ XI B ,C irrelevant: ∆|A ⇒ XI What clause would have allowed UP to derive
X in level 0? A ∨ X (A→ X )
Jinbo Huang Introduction to Satisfiability
![Page 40: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/40.jpg)
Clause Learning
∆|A
A,BB ,CA,X ,YA,X ,ZA,Y ,ZA,X ,ZA,Y ,Z
∆|A
A,B
B ,C
A,
X ,Y
A,
X ,Z
A,
Y ,Z
A,
X ,Z
A,
Y ,Z
∆|A,B
A,BB ,CA,
X ,Y
A,
X ,Z
A,
Y ,Z
A,
X ,Z
A,
Y ,Z
∆|A,B,C
A,BB ,CA,
X ,Y
A,
X ,Z
A,
Y ,Z
A,
X ,Z
A,
Y ,Z
∆|A,B,C ,X
A,BB ,CA,X ,
Y
A,X ,ZA,
Y ,Z
A,X ,ZA,
Y ,Z
I Conflict in level 3: ∆|A,B,C ⇒ XI B ,C irrelevant: ∆|A ⇒ XI What clause would have allowed UP to derive
X in level 0? A ∨ X (A→ X )
Jinbo Huang Introduction to Satisfiability
![Page 41: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/41.jpg)
Clause Learning
∆|A
A,BB ,CA,X ,YA,X ,ZA,Y ,ZA,X ,ZA,Y ,Z
∆|A
A,B
B ,C
A,
X ,Y
A,
X ,Z
A,
Y ,Z
A,
X ,Z
A,
Y ,Z
∆|A,B
A,BB ,CA,
X ,Y
A,
X ,Z
A,
Y ,Z
A,
X ,Z
A,
Y ,Z
∆|A,B,C
A,BB ,CA,
X ,Y
A,
X ,Z
A,
Y ,Z
A,
X ,Z
A,
Y ,Z
∆|A,B,C ,X
A,BB ,CA,X ,
Y
A,X ,ZA,
Y ,Z
A,X ,ZA,
Y ,Z
I Conflict in level 3: ∆|A,B,C ⇒ XI B ,C irrelevant: ∆|A ⇒ XI What clause would have allowed UP to derive
X in level 0? A ∨ X (A→ X )
Jinbo Huang Introduction to Satisfiability
![Page 42: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/42.jpg)
Clause Learning
∆|A
A,BB ,CA,X ,YA,X ,ZA,Y ,ZA,X ,ZA,Y ,Z
∆|A
A,B
B ,C
A,
X ,Y
A,
X ,Z
A,
Y ,Z
A,
X ,Z
A,
Y ,Z
∆|A,B
A,BB ,CA,
X ,Y
A,
X ,Z
A,
Y ,Z
A,
X ,Z
A,
Y ,Z
∆|A,B,C
A,BB ,CA,
X ,Y
A,
X ,Z
A,
Y ,Z
A,
X ,Z
A,
Y ,Z
∆|A,B,C ,X
A,BB ,CA,X ,
Y
A,X ,ZA,
Y ,Z
A,X ,ZA,
Y ,Z
I Conflict in level 3: ∆|A,B,C ⇒ XI B ,C irrelevant: ∆|A ⇒ XI What clause would have allowed UP to derive
X in level 0? A ∨ X (A→ X )
Jinbo Huang Introduction to Satisfiability
![Page 43: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/43.jpg)
Clause Learning
∆|A
A,BB ,CA,X ,YA,X ,ZA,Y ,ZA,X ,ZA,Y ,Z
∆|A
A,B
B ,C
A,
X ,Y
A,
X ,Z
A,
Y ,Z
A,
X ,Z
A,
Y ,Z
∆|A,B
A,BB ,CA,
X ,Y
A,
X ,Z
A,
Y ,Z
A,
X ,Z
A,
Y ,Z
∆|A,B,C
A,BB ,CA,
X ,Y
A,
X ,Z
A,
Y ,Z
A,
X ,Z
A,
Y ,Z
∆|A,B,C ,X
A,BB ,CA,X ,
Y
A,X ,ZA,
Y ,Z
A,X ,ZA,
Y ,Z
I Conflict in level 3: ∆|A,B,C ⇒ XI B ,C irrelevant: ∆|A ⇒ XI What clause would have allowed UP to derive
X in level 0? A ∨ X (A→ X )
Jinbo Huang Introduction to Satisfiability
![Page 44: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/44.jpg)
Clause Learning
∆|A
A,BB ,CA,X ,YA,X ,ZA,Y ,ZA,X ,ZA,Y ,Z
∆|A
A,B
B ,C
A,
X ,Y
A,
X ,Z
A,
Y ,Z
A,
X ,Z
A,
Y ,Z
∆|A,B
A,BB ,CA,
X ,Y
A,
X ,Z
A,
Y ,Z
A,
X ,Z
A,
Y ,Z
∆|A,B,C
A,BB ,CA,
X ,Y
A,
X ,Z
A,
Y ,Z
A,
X ,Z
A,
Y ,Z
∆|A,B,C ,X
A,BB ,CA,X ,
Y
A,X ,ZA,
Y ,Z
A,X ,ZA,
Y ,Z
I Conflict in level 3: ∆|A,B,C ⇒ X
I B ,C irrelevant: ∆|A ⇒ XI What clause would have allowed UP to derive
X in level 0? A ∨ X (A→ X )
Jinbo Huang Introduction to Satisfiability
![Page 45: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/45.jpg)
Clause Learning
∆|A
A,BB ,CA,X ,YA,X ,ZA,Y ,ZA,X ,ZA,Y ,Z
∆|A
A,B
B ,C
A,
X ,Y
A,
X ,Z
A,
Y ,Z
A,
X ,Z
A,
Y ,Z
∆|A,B
A,BB ,CA,
X ,Y
A,
X ,Z
A,
Y ,Z
A,
X ,Z
A,
Y ,Z
∆|A,B,C
A,BB ,CA,
X ,Y
A,
X ,Z
A,
Y ,Z
A,
X ,Z
A,
Y ,Z
∆|A,B,C ,X
A,BB ,CA,X ,
Y
A,X ,ZA,
Y ,Z
A,X ,ZA,
Y ,Z
I Conflict in level 3: ∆|A,B,C ⇒ XI B ,C irrelevant
: ∆|A ⇒ XI What clause would have allowed UP to derive
X in level 0? A ∨ X (A→ X )
Jinbo Huang Introduction to Satisfiability
![Page 46: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/46.jpg)
Clause Learning
∆|A
A,BB ,CA,X ,YA,X ,ZA,Y ,ZA,X ,ZA,Y ,Z
∆|A
A,B
B ,C
A,
X ,Y
A,
X ,Z
A,
Y ,Z
A,
X ,Z
A,
Y ,Z
∆|A,B
A,BB ,CA,
X ,Y
A,
X ,Z
A,
Y ,Z
A,
X ,Z
A,
Y ,Z
∆|A,B,C
A,BB ,CA,
X ,Y
A,
X ,Z
A,
Y ,Z
A,
X ,Z
A,
Y ,Z
∆|A,B,C ,X
A,BB ,CA,X ,
Y
A,X ,ZA,
Y ,Z
A,X ,ZA,
Y ,Z
I Conflict in level 3: ∆|A,B,C ⇒ XI B ,C irrelevant: ∆|A ⇒ X
I What clause would have allowed UP to deriveX in level 0? A ∨ X (A→ X )
Jinbo Huang Introduction to Satisfiability
![Page 47: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/47.jpg)
Clause Learning
∆|A
A,BB ,CA,X ,YA,X ,ZA,Y ,ZA,X ,ZA,Y ,Z
∆|A
A,B
B ,C
A,
X ,Y
A,
X ,Z
A,
Y ,Z
A,
X ,Z
A,
Y ,Z
∆|A,B
A,BB ,CA,
X ,Y
A,
X ,Z
A,
Y ,Z
A,
X ,Z
A,
Y ,Z
∆|A,B,C
A,BB ,CA,
X ,Y
A,
X ,Z
A,
Y ,Z
A,
X ,Z
A,
Y ,Z
∆|A,B,C ,X
A,BB ,CA,X ,
Y
A,X ,ZA,
Y ,Z
A,X ,ZA,
Y ,Z
I Conflict in level 3: ∆|A,B,C ⇒ XI B ,C irrelevant: ∆|A ⇒ XI What clause would have allowed UP to derive
X in level 0?
A ∨ X (A→ X )
Jinbo Huang Introduction to Satisfiability
![Page 48: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/48.jpg)
Clause Learning
∆|A
A,BB ,CA,X ,YA,X ,ZA,Y ,ZA,X ,ZA,Y ,Z
∆|A
A,B
B ,C
A,
X ,Y
A,
X ,Z
A,
Y ,Z
A,
X ,Z
A,
Y ,Z
∆|A,B
A,BB ,CA,
X ,Y
A,
X ,Z
A,
Y ,Z
A,
X ,Z
A,
Y ,Z
∆|A,B,C
A,BB ,CA,
X ,Y
A,
X ,Z
A,
Y ,Z
A,
X ,Z
A,
Y ,Z
∆|A,B,C ,X
A,BB ,CA,X ,
Y
A,X ,ZA,
Y ,Z
A,X ,ZA,
Y ,Z
I Conflict in level 3: ∆|A,B,C ⇒ XI B ,C irrelevant: ∆|A ⇒ XI What clause would have allowed UP to derive
X in level 0? A ∨ X (A→ X )Jinbo Huang Introduction to Satisfiability
![Page 49: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/49.jpg)
Clause Learning
∆|A
A,BB ,CA,X ,YA,X ,ZA,Y ,ZA,X ,ZA,Y ,ZA,X
∆|A
A,B
B ,C
A,
X ,Y
A,
X ,Z
A,
Y ,Z
A,
X ,Z
A,
Y ,Z
A,
X
A ∨ X satisfies criteria
I not in CNF
I implied by CNF
I empowers UP
Learn clause in level 3
Backtrack to level 0, start over
How to learn? How far tobacktrack?
Jinbo Huang Introduction to Satisfiability
![Page 50: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/50.jpg)
Clause Learning
∆|A
A,BB ,CA,X ,YA,X ,ZA,Y ,ZA,X ,ZA,Y ,ZA,X
∆|A
A,B
B ,C
A,
X ,Y
A,
X ,Z
A,
Y ,Z
A,
X ,Z
A,
Y ,Z
A,
X
A ∨ X satisfies criteria
I not in CNF
I implied by CNF
I empowers UP
Learn clause in level 3
Backtrack to level 0, start over
How to learn? How far tobacktrack?
Jinbo Huang Introduction to Satisfiability
![Page 51: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/51.jpg)
Clause Learning
∆|A
A,BB ,CA,X ,YA,X ,ZA,Y ,ZA,X ,ZA,Y ,ZA,X
∆|A
A,B
B ,C
A,
X ,Y
A,
X ,Z
A,
Y ,Z
A,
X ,Z
A,
Y ,Z
A,
X
A ∨ X satisfies criteria
I not in CNF
I implied by CNF
I empowers UP
Learn clause in level 3
Backtrack to level 0, start over
How to learn? How far tobacktrack?
Jinbo Huang Introduction to Satisfiability
![Page 52: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/52.jpg)
Clause Learning
∆|A
A,BB ,CA,X ,YA,X ,ZA,Y ,ZA,X ,ZA,Y ,ZA,X
∆|A
A,B
B ,C
A,
X ,Y
A,
X ,Z
A,
Y ,Z
A,
X ,Z
A,
Y ,Z
A,
X
A ∨ X satisfies criteria
I not in CNF
I implied by CNF
I empowers UP
Learn clause in level 3
Backtrack to level 0, start over
How to learn? How far tobacktrack?
Jinbo Huang Introduction to Satisfiability
![Page 53: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/53.jpg)
Implication Graph
1 : A,B2 : B ,C3 : A,X ,Y4 : A,X ,Z5 : A,Y ,Z6 : A,X ,Z7 : A,Y ,Z
8 : A,X
Jinbo Huang Introduction to Satisfiability
![Page 54: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/54.jpg)
Implication Graph
1 : A,B2 : B ,C3 : A,X ,Y4 : A,X ,Z5 : A,Y ,Z6 : A,X ,Z7 : A,Y ,Z8 : A,X
Jinbo Huang Introduction to Satisfiability
![Page 55: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/55.jpg)
Implication Graph
1 : A,B2 : B ,C3 : A,X ,Y4 : A,X ,Z5 : A,Y ,Z6 : A,X ,Z7 : A,Y ,Z8 : A,X
Jinbo Huang Introduction to Satisfiability
![Page 56: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/56.jpg)
Conflict Analysis
1 : A,B2 : B ,C3 : A,X ,Y4 : A,X ,Z5 : A,Y ,Z6 : A,X ,Z7 : A,Y ,Z
I Cut: roots (decisions) on one side, sink(contradiction) on other
I Arrows across cut together responsible forcontradiction
I Conflict set: tail points of arrows
Jinbo Huang Introduction to Satisfiability
![Page 57: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/57.jpg)
Conflict Set
1 : A,B2 : B ,C3 : A,X ,Y4 : A,X ,Z5 : A,Y ,Z6 : A,X ,Z7 : A,Y ,Z
I Cut 1: {A,X}I Cut 2: {A,Y }I Cut 3: {A,Y ,Z}
Jinbo Huang Introduction to Satisfiability
![Page 58: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/58.jpg)
Conflict Clause
1 : A,B2 : B ,C3 : A,X ,Y4 : A,X ,Z5 : A,Y ,Z6 : A,X ,Z7 : A,Y ,Z
I Cut 1: {A,X} ⇒ A ∨ X
I Cut 2: {A,Y } ⇒ A ∨ Y
I Cut 3: {A,Y ,Z} ⇒ A ∨ Y ∨ Z (existing)
Jinbo Huang Introduction to Satisfiability
![Page 59: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/59.jpg)
Conflict Clause
1 : A,B2 : B ,C3 : A,X ,Y4 : A,X ,Z5 : A,Y ,Z6 : A,X ,Z7 : A,Y ,Z
I Cut 1: {A,X} ⇒ A ∨ X
I Cut 2: {A,Y } ⇒ A ∨ Y
I Which clause to learn?
Jinbo Huang Introduction to Satisfiability
![Page 60: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/60.jpg)
Unique Implication Point (UIP)
Prefer shorter explanation
I shorter clause closer to unit, more empowering
Never need > 1 node from latest level
I latest decision + history always suffices
UIP: lies on all paths from decision to contradiction
Jinbo Huang Introduction to Satisfiability
![Page 61: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/61.jpg)
Unique Implication Point (UIP)
Prefer shorter explanation
I shorter clause closer to unit, more empowering
Never need > 1 node from latest level
I latest decision + history always suffices
UIP: lies on all paths from decision to contradiction
Jinbo Huang Introduction to Satisfiability
![Page 62: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/62.jpg)
1-UIP Learning
Work from sink backwardsStop when conflict set includes a UIP, and no othernodes, of latest level: 1-UIP clause (A ∨ Y )
I 2-UIP, 3-UIP, . . ., All-UIP
Empirically shown effective, most common choice
Jinbo Huang Introduction to Satisfiability
![Page 63: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/63.jpg)
Backtracking to Assertion Level
Learned clause: A ∨ Y
I becomes unit (Y ) when erasing current level
I asserting clause: UP will assert Y(empowerment)
Jinbo Huang Introduction to Satisfiability
![Page 64: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/64.jpg)
Backtracking to Assertion Level
Backtrack as far as possible, as long as UP remainsempowered
Assertion level: 2nd highest level in learned clause,or -1 if learned clause is unit
I A0 ∨ B1 ∨ C1 ∨ X4: aLevel = 1
I X4: aLevel = −1
I learned unit clause asserted before any decision
Empirically shown effective, most common choice
Jinbo Huang Introduction to Satisfiability
![Page 65: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/65.jpg)
Clause Learning: Putting It Together
repeatif no free variable
return SATpick free variable X and set either X or Xif contradiction
if level < 0return UNSAT
learn clausebacktrack anywhere learned clause 6= ∅
I No more branching, unlike DPLL
I Conflict-driven, repeated probing
Jinbo Huang Introduction to Satisfiability
![Page 66: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/66.jpg)
Clause Learning: Putting It Together
repeatif no free variable
return SATpick free variable X and set either X or Xif contradiction
if level < 0return UNSAT
learn clausebacktrack anywhere learned clause 6= ∅
I No more branching, unlike DPLL
I Conflict-driven, repeated probing
Jinbo Huang Introduction to Satisfiability
![Page 67: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/67.jpg)
Clause Learning: Putting It Together
repeatif no free variable
return SATpick free variable X and set either X or Xif contradiction
if level < 0return UNSAT
learn clausebacktrack anywhere learned clause 6= ∅
I Completeness?
I Completeness?
Jinbo Huang Introduction to Satisfiability
![Page 68: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/68.jpg)
Clause Learning: Putting It Together
repeatif no free variable
return SATpick free variable X and set either X or Xif contradiction
if level < 0return UNSAT
learn clausebacktrack anywhere learned clause 6= ∅
I Will terminate because learned clause must benew, |clauses| finite
Jinbo Huang Introduction to Satisfiability
![Page 69: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/69.jpg)
Clause Learning: Putting It Together
repeatif no free variable
return SATpick free variable X and set either X or Xif contradiction
if level < 0return UNSAT
learn clausebacktrack anywhere learned clause 6= ∅
I Components: decision heuristic, learningmethod, backtracking method
Jinbo Huang Introduction to Satisfiability
![Page 70: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/70.jpg)
Decision Heuristic: Popular Ideas
Learned conflict clause summarizes cause of failure
Try to satisfy conflict clausesI helps eventually satisfy whole CNF if SATI helps terminate early if UNSAT
Maintain occurrence count for each literalI increment on learning new clauseI periodically shrink all counts: recent activity
more relevant
Pick variable with highest count (+&− combined)I set to same value it had last: progress saving
Jinbo Huang Introduction to Satisfiability
![Page 71: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/71.jpg)
Progress Saving
Backtracking erases multiple levels of assignments
Some of those may have satisfied parts of CNF
Reusing assignments helps avoid having torediscover those partial solutions
Jinbo Huang Introduction to Satisfiability
![Page 72: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/72.jpg)
Restarts: Special Case of Backtracking
Re-make decisions in light of new clauses
I restart at predetermined intervals
I restart based on current search activity
Important empirically
I solvers with no restarts uncompetitive
I performance sensitive to restart policy
Important theoretically
I clause learning more powerful than DPLL,proof relies on restarts
Jinbo Huang Introduction to Satisfiability
![Page 73: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/73.jpg)
Restarts: Special Case of Backtracking
Re-make decisions in light of new clauses
I restart at predetermined intervals
I restart based on current search activity
Important empirically
I solvers with no restarts uncompetitive
I performance sensitive to restart policy
Important theoretically
I clause learning more powerful than DPLL,proof relies on restarts
Jinbo Huang Introduction to Satisfiability
![Page 74: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/74.jpg)
Restarts: Special Case of Backtracking
Re-make decisions in light of new clauses
I restart at predetermined intervals
I restart based on current search activity
Important empirically
I solvers with no restarts uncompetitive
I performance sensitive to restart policy
Important theoretically
I clause learning more powerful than DPLL,proof relies on restarts
Jinbo Huang Introduction to Satisfiability
![Page 75: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/75.jpg)
Efficient Unit Propagation
Need to detect unit clauses
Naively, keep track of clause lengths: when settingX , decrement lengths of clauses that contain X
I inefficient when CNF is large
Pick 2 literals to watch in each clause
I watch A,B in A ∨ B ∨ C ∨ D
I clause cannot be unit unless A or B is set
I do nothing when C or D is assigned
Scales to millions of clauses in practice
Jinbo Huang Introduction to Satisfiability
![Page 76: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/76.jpg)
Clause Learning: Summary
Fundamentally different search scheme from DPLL
I no branching
I sequence of decisions, learn, backtrack, repeat
I theoretically more powerful than DPLL
What determines search behavior
I methods for decision, learning, backtracking(including restarts)
I popular choices: literal activity + progresssaving, 1-UIP learning, backtracking toassertion level (various restart policies beingexplored)
Jinbo Huang Introduction to Satisfiability
![Page 77: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/77.jpg)
Clause Learning and Resolution
Resolution p-simulates clause learning
I Each learned clause obtained by resolution
I At termination, resolution proof can beextracted (in polytime)
Jinbo Huang Introduction to Satisfiability
![Page 78: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/78.jpg)
Clause Learning and Resolution
Clause learning p-simulates resolutionI Have clause learning absorb interesting clauses
of resolution proof (in polytime)I interesting: 1-empowering, 1-provableI absorb: render it useless (not 1-empowering)
I Interesting clause always exists unless ∆1-inconsistent
I Hence clause learning will terminate afterabsorbing all interesting clauses
Jinbo Huang Introduction to Satisfiability
![Page 79: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/79.jpg)
Hard Problems for Resolution: Pigeonhole
Pij : pigeon i in hole j
P11 ∨ P12, P21 ∨ P22, P31 ∨ P32
¬P11 ∨ ¬P21, ¬P21 ∨ ¬P31, ¬P11 ∨ ¬P31
¬P12 ∨ ¬P22, ¬P22 ∨ ¬P32, ¬P12 ∨ ¬P32
No polynomial resolution proof for PHn
Jinbo Huang Introduction to Satisfiability
![Page 80: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/80.jpg)
Extended Resolution
Introduce new variables into proof
Extension: x ↔ φ
I φ: formula over existing variables
I Suffices to restrict φ to l1 ∨ l2
Otherwise same as resolution
Jinbo Huang Introduction to Satisfiability
![Page 81: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/81.jpg)
Extended Resolution
Can simulate (compact) proof by induction
Pigeonhole: No 1-to-1 map from {1, . . . , n} to{1, . . . , n − 1}
I Base case (n = 2): easy
I If f (i) maps {1, . . . , n} to {1, . . . , n − 1}I Define f ′(i) from {1, . . . , n − 1} to{1, . . . , n − 2}
I f ′(i) = f (i) if f (i) 6= n − 1I f ′(i) = f (n) otherwise
Jinbo Huang Introduction to Satisfiability
![Page 82: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/82.jpg)
Extended Resolution
Induction proofI If f (i) maps {1, . . . , n} to {1, . . . , n − 1}I Define f ′(i) from {1, . . . , n − 1} to{1, . . . , n − 2}
I f ′(i) = f (i) if f (i) 6= n − 1I f ′(i) = f (n) otherwise
ER proof simulating aboveI {Pij} describes f (PHn), introduce {Qij} to
describe f ′ (PHn−1)I Qij ↔ (Pij ∨ (Pi ,n−1 ∧ Pnj))
I O(n3) resolutions to derive PHn−1
I Repeat until base case PH2:R11,R21,¬R11 ∨ ¬R21
Jinbo Huang Introduction to Satisfiability
![Page 83: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/83.jpg)
Extended Resolution
Strictly more powerful than resolution
Jinbo Huang Introduction to Satisfiability
![Page 84: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/84.jpg)
Adding Extensions to Clause Learning
How does solver decide?
Compare simulation of resolution by solver
I Resolution itself provides no guidance on whatclauses to resolve
I Solver uses probings as guide
I Reduces search space, retains power
Prune space of extensions
Jinbo Huang Introduction to Satisfiability
![Page 85: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/85.jpg)
Adding Extensions to Clause Learning
How does solver decide?
Compare simulation of resolution by solver
I Resolution itself provides no guidance on whatclauses to resolve
I Solver uses probings as guide
I Reduces search space, retains power
Prune space of extensions
Jinbo Huang Introduction to Satisfiability
![Page 86: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/86.jpg)
Adding Extensions to Clause Learning
How does solver decide?
Compare simulation of resolution by solver
I Resolution itself provides no guidance on whatclauses to resolve
I Solver uses probings as guide
I Reduces search space, retains power
Prune space of extensions
Jinbo Huang Introduction to Satisfiability
![Page 87: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/87.jpg)
Useless Extensions
x ↔ l1 ∨ l2 useless if ∆ ∪ {l1, l2} ` false
Lemma: Banning them does not affect power of ER
Efficient filtering of useless extensions?
Jinbo Huang Introduction to Satisfiability
![Page 88: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/88.jpg)
Useless Extensions
x ↔ l1 ∨ l2 useless if ∆ ∪ {l1, l2} ` false
Lemma: Banning them does not affect power of ER
Efficient filtering of useless extensions?
Jinbo Huang Introduction to Satisfiability
![Page 89: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/89.jpg)
Useless Extensions
x ↔ l1 ∨ l2 useless if ∆ ∪ {l1, l2} ` false
Lemma: Banning them does not affect power of ER
Efficient filtering of useless extensions?
Jinbo Huang Introduction to Satisfiability
![Page 90: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/90.jpg)
Useless Extensions
Theorem: Solver need only pick l1 ∨ l2 fromassignment stack (with negation)
I Due to forced assignments, not allcombinations of l1 ∨ l2 possible
I But those would be useless anyway
I Full power of ER retained
I Decision heuristic doubles as guide forextensions
Jinbo Huang Introduction to Satisfiability
![Page 91: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/91.jpg)
A More Concrete Heuristic
Pick l1 ∨ l2 from learned clause, if length ≥ k
I Literals in learned clause must come fromassignment stack (with negation)
Open question: Does this restrict power of ER
Jinbo Huang Introduction to Satisfiability
![Page 92: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/92.jpg)
Experiments: Application Benchmarks
Results mixed
However, where it worked, improvement verysubstantial
I From unsolved to solved (in 5–30 minutes)
I Search tree size reduced by factor of 5–42
Jinbo Huang Introduction to Satisfiability
![Page 93: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/93.jpg)
Experiments: Crafted Benchmarks
gt-ordering: any partial order on {1, . . . , n} musthave maximal element
7 instances, none could be solved by baseline solver
All solved, in 39 seconds
Jinbo Huang Introduction to Satisfiability
![Page 94: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/94.jpg)
Extended Clause Learning: Summary
Extensions can lead to substantial practical gains
Extension heuristics a promising research direction
Catch: More powerful proof system, harder to findshort proof
Jinbo Huang Introduction to Satisfiability
![Page 95: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/95.jpg)
Local Search
Clause learning poor on random problems
I good at exploiting structure
I little/no structure in random problems
Local search
I start with complete assignment
I if CNF satisfied, done; else flip a var, repeat
I incomplete: may not find model, cannot proveunsatisfiability
Jinbo Huang Introduction to Satisfiability
![Page 96: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/96.jpg)
Local Search
Clause learning poor on random problems
I good at exploiting structure
I little/no structure in random problems
Local search
I start with complete assignment
I if CNF satisfied, done; else flip a var, repeat
I incomplete: may not find model, cannot proveunsatisfiability
Jinbo Huang Introduction to Satisfiability
![Page 97: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/97.jpg)
GSAT
repeat MAX-TRIES timesrandomly generate assignment αrepeat MAX-FLIPS times
if α satisfies CNF then return SATflip variable in α for least falsified clauses
return FAIL
I quickly descends toward better assignment
I spends much time moving “sideways” on aplateau, before exiting into better plateau
I may get stuck in local minimum
Jinbo Huang Introduction to Satisfiability
![Page 98: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/98.jpg)
Walksat
I flip variable in falsified clause (more focus)
I introduce noise to escape from plateaus
repeat MAX-TRIES timesrandomly generate assignment αrepeat MAX-FLIPS times
if α satisfies CNF then return SATrandomly pick falsified clauseif ∃ “freebie move” then do itelse
with probability p, flip random var in clauseelse flip var in clause for least “break count”
return FAILJinbo Huang Introduction to Satisfiability
![Page 99: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/99.jpg)
Phase Transition in Random Problems
k-SAT: k literals per clause
Vary # of (random) clauses for given # of variables
I low ratio: nearly all SAT, easy
I high ratio: nearly all UNSAT, easy
I phase transition (≈ 4.2 for 3-SAT): about halfSAT, half UNSAT, hardest
Jinbo Huang Introduction to Satisfiability
![Page 100: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/100.jpg)
Solver Portfolio
Keep collection of solvers
Train solver selector on large set of instances
Use it to select solver for given instance
1 of top 3 in Crafted, SAT Competition 2009:SATzilla
Jinbo Huang Introduction to Satisfiability
![Page 101: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/101.jpg)
Applications of SAT
I Qualitative temporal reasoning
I Constraint solving
Jinbo Huang Introduction to Satisfiability
![Page 102: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/102.jpg)
Qualitative Temporal Reasoning
Reasoning about time intervals (events)
Qualitative: relations between intervals
I not concerned with exact time points
“Peter reads newspaper duringbreakfast, goes to work afterbreakfast”
Jinbo Huang Introduction to Satisfiability
![Page 103: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/103.jpg)
Interval Algebra (IA)
I All have inverse, total of 13 atomic relations
Jinbo Huang Introduction to Satisfiability
![Page 104: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/104.jpg)
The Reasoning Task
Is given temporal (IA) networksatisfiable?
I nodes: variables
I edges: constraints
I infinite domain (all possible intervals on a line)I traditional search doesn’t work
I 213 = 8192 possible relationsI “Peter reads private email before or after work”
Jinbo Huang Introduction to Satisfiability
![Page 105: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/105.jpg)
Transforming Search Space
Don’t search for instantiation of nodes (intervals)
Search for instantiation of edges
I edge: set of atomic relations
I any consistent instantiation of nodes satisfiesexactly 1 per edge
I need only search for satisfiable atomicrefinement of network
TheoremAtomic IA network is satisfiable iff path-consistent
Jinbo Huang Introduction to Satisfiability
![Page 106: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/106.jpg)
Transforming Search Space
Don’t search for instantiation of nodes (intervals)
Search for instantiation of edges
I edge: set of atomic relations
I any consistent instantiation of nodes satisfiesexactly 1 per edge
I need only search for satisfiable atomicrefinement of network
TheoremAtomic IA network is satisfiable iff path-consistent
Jinbo Huang Introduction to Satisfiability
![Page 107: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/107.jpg)
Path Consistency
Any consistent assignment for2 nodes can be extended toconsistent assignment for 3rd
∀ABC , a, b, if Aa ∼ Bb then ∃cCc ∼ Aa and Cc ∼ Bb
I reading 7:10–7:20, breakfast 7:00–7:30
I can assign work 8:00–12:00
I missing edge: universal relation
Jinbo Huang Introduction to Satisfiability
![Page 108: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/108.jpg)
Path Consistency
Any consistent assignment for2 nodes can be extended toconsistent assignment for 3rd
∀ABC , a, b, if Aa ∼ Bb then ∃cCc ∼ Aa and Cc ∼ Bb
I reading 7:10–7:20, work 7:15–12:00
I no way to assign breakfast
I refine (invisible) edge W-R: universal → after
Jinbo Huang Introduction to Satisfiability
![Page 109: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/109.jpg)
Ensuring Path Consistency
Atomic network: ∀ABC : RAC ∈ RAB ◦ RBC
CompositionI {d} ◦ {p} = {p}I {d} ◦ {o} = {p,m, o, s, d}
R12d ,R23p ∨R23o,R13m ∨R13d ∨R13f
R12d ∧ R23p → false
R12d ∧ R23o → (R13m ∨ R13d)
Alternatively, use inequalitiesbetween points, better in practice
Jinbo Huang Introduction to Satisfiability
![Page 110: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/110.jpg)
Ensuring Path Consistency
Atomic network: ∀ABC : RAC ∈ RAB ◦ RBC
CompositionI {d} ◦ {p} = {p}I {d} ◦ {o} = {p,m, o, s, d}
R12d ,R23p ∨R23o,R13m ∨R13d ∨R13f
R12d ∧ R23p → false
R12d ∧ R23o → (R13m ∨ R13d)
Alternatively, use inequalitiesbetween points, better in practice
Jinbo Huang Introduction to Satisfiability
![Page 111: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/111.jpg)
Ensuring Path Consistency
Atomic network: ∀ABC : RAC ∈ RAB ◦ RBC
CompositionI {d} ◦ {p} = {p}I {d} ◦ {o} = {p,m, o, s, d}
R12d ,R23p ∨R23o,R13m ∨R13d ∨R13f
R12d ∧ R23p → false
R12d ∧ R23o → (R13m ∨ R13d)
Alternatively, use inequalitiesbetween points, better in practice
Jinbo Huang Introduction to Satisfiability
![Page 112: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/112.jpg)
Ensuring Path Consistency
Atomic network: ∀ABC : RAC ∈ RAB ◦ RBC
CompositionI {d} ◦ {p} = {p}I {d} ◦ {o} = {p,m, o, s, d}
R12d ,R23p ∨R23o,R13m ∨R13d ∨R13f
R12d ∧ R23p → false
R12d ∧ R23o → (R13m ∨ R13d)
Alternatively, use inequalitiesbetween points, better in practice
Jinbo Huang Introduction to Satisfiability
![Page 113: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/113.jpg)
Ensuring Path Consistency
Atomic network: ∀ABC : RAC ∈ RAB ◦ RBC
CompositionI {d} ◦ {p} = {p}I {d} ◦ {o} = {p,m, o, s, d}
R12d ,R23p ∨R23o,R13m ∨R13d ∨R13f
R12d ∧ R23p → false
R12d ∧ R23o → (R13m ∨ R13d)
Alternatively, use inequalitiesbetween points, better in practice
Jinbo Huang Introduction to Satisfiability
![Page 114: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/114.jpg)
Ensuring Path Consistency
Atomic network: ∀ABC : RAC ∈ RAB ◦ RBC
CompositionI {d} ◦ {p} = {p}I {d} ◦ {o} = {p,m, o, s, d}
R12d ,R23p ∨R23o,R13m ∨R13d ∨R13f
R12d ∧ R23p → false
R12d ∧ R23o → (R13m ∨ R13d)
Alternatively, use inequalitiesbetween points, better in practice
Jinbo Huang Introduction to Satisfiability
![Page 115: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/115.jpg)
Solving IA Networks by SAT
Encode each 4 in complete graph
I invisible edges are edges with universal relation
I(n3
)= n(n−1)(n−2)
6 triangles
CNF satisfiable iff IA network satisfiable
Jinbo Huang Introduction to Satisfiability
![Page 116: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/116.jpg)
More Compact Encoding
Jinbo Huang Introduction to Satisfiability
![Page 117: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/117.jpg)
More Compact Encoding
Encode 2 partitions separately
I # of triangles from 20 to 11
I partition recursively
I soundness nontrivial
TheoremIA has atomic network amalgamation property
Jinbo Huang Introduction to Satisfiability
![Page 118: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/118.jpg)
Empirical Results: 50–100 Nodes
Jinbo Huang Introduction to Satisfiability
![Page 119: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/119.jpg)
Empirical Results: 110–200 Nodes
Jinbo Huang Introduction to Satisfiability
![Page 120: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/120.jpg)
Applications of SAT
I Qualitative temporal reasoning
I Constraint solving
Jinbo Huang Introduction to Satisfiability
![Page 121: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/121.jpg)
A Constraint Model
int: z = 10;array [1..z] of 1..z*z: sq = [x*x | x in 1..z];array [1..z] of var 0..z: s;var 1..z: k;var 1..z: j;constraint forall ( i in 2..z ) ( s[i] > 0 -> s[i-1] > s[i] );constraint s[1] < k;constraint sum ( i in 1..z ) ( sq[s[i]] ) = sq[k];constraint s[j] > 0;solve maximize j;
Perfect Square: Find largest set of integers⊆ {1, . . . , z} whose squares sum up to a square
Jinbo Huang Introduction to Satisfiability
![Page 122: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/122.jpg)
Elements of Constraint Model
I Integer and set comparisons
I Integer arithmetic
I Linear equalities and inequalities
I Set operations
I Array access with variable index
I Global constraints
I Satisfaction and optimization
Jinbo Huang Introduction to Satisfiability
![Page 123: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/123.jpg)
Existing Methods
I Pseudo-Boolean constraints to SAT
I Boolean cardinality constraints to SAT
I Integer linear constraints to SAT
I Extensional constraints to SAT
I Set constraints to BDDs
I Satisfiability modulo theories
I Lazy clause generation (hybrid of FD and SAT)
Jinbo Huang Introduction to Satisfiability
![Page 124: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/124.jpg)
New Approach
Everything to SAT
Jinbo Huang Introduction to Satisfiability
![Page 125: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/125.jpg)
Challenge
Desired encoding varies with constraint type
I Unary suits cardinality constraints
I Direct encoding suits extensional constraints
I Primitive comparisons can encode linearconstraints
I None good for arbitrary arithmetic
Jinbo Huang Introduction to Satisfiability
![Page 126: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/126.jpg)
Solution
One-size-fits-all binary encoding
I Arbitrary arithmetic supported
I Heterogeneous model into single Booleanformula
I Con: potential loss of propagation power
Adopt constraint language MiniZinc
I Reasonably simple yet expressive
I Many benchmarks and solvers available forempirical study
Jinbo Huang Introduction to Satisfiability
![Page 127: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/127.jpg)
MiniZinc
I Developed by G12 @ NICTA
I Solver independent modeling
I Reasonable compromise between simplicity &expressivity
I Comes with translation to FlatZinc, suitable aslow-level solver input language
I Large pool of benchmarks & examples
I Encourages comparison of different solvers
Jinbo Huang Introduction to Satisfiability
![Page 128: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/128.jpg)
Binary Encoding
I Use k bits per integer, in two’s complementI Balance between efficiency and completeness
I Large k : large encoding, inefficientI Small k : may fail to find solution
I Start with k sufficient for constants in model
I Increase k , re-encode, and re-solve untilsolution found or limit (32, e.g.) reached
Jinbo Huang Introduction to Satisfiability
![Page 129: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/129.jpg)
Integer Comparisons
I x3© x2© x1© ≤ y3© y2© y1©
−→
(x3 > y3) ∨ [(x3 = y3) ∧ ( x2© x1© ≤unsigned y2© y1©)]
I x2© x1© ≤unsigned y2© y1© −→
(x2 < y2) ∨ [(x2 = y2) ∧ (x1 ≤ y1)]
I Similar for other operators: =, 6=, <,≥, >
Jinbo Huang Introduction to Satisfiability
![Page 130: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/130.jpg)
Integer Comparisons
I x3© x2© x1© ≤ y3© y2© y1© −→
(x3 > y3) ∨ [(x3 = y3) ∧ ( x2© x1© ≤unsigned y2© y1©)]
I x2© x1© ≤unsigned y2© y1© −→
(x2 < y2) ∨ [(x2 = y2) ∧ (x1 ≤ y1)]
I Similar for other operators: =, 6=, <,≥, >
Jinbo Huang Introduction to Satisfiability
![Page 131: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/131.jpg)
Integer Comparisons
I x3© x2© x1© ≤ y3© y2© y1© −→
(x3 > y3) ∨ [(x3 = y3) ∧ ( x2© x1© ≤unsigned y2© y1©)]
I x2© x1© ≤unsigned y2© y1© −→
(x2 < y2) ∨ [(x2 = y2) ∧ (x1 ≤ y1)]
I Similar for other operators: =, 6=, <,≥, >
Jinbo Huang Introduction to Satisfiability
![Page 132: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/132.jpg)
Integer Comparisons
I x3© x2© x1© ≤ y3© y2© y1© −→
(x3 > y3) ∨ [(x3 = y3) ∧ ( x2© x1© ≤unsigned y2© y1©)]
I x2© x1© ≤unsigned y2© y1© −→
(x2 < y2) ∨ [(x2 = y2) ∧ (x1 ≤ y1)]
I Similar for other operators: =, 6=, <,≥, >
Jinbo Huang Introduction to Satisfiability
![Page 133: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/133.jpg)
Integer Arithmetic
I Adder and multiplier as in computer hardware
I Constraints to prevent overflow+: sum temporarily has k + 1 bits
leading two bits must be identical×: product temporarily has 2k bits
leading k + 1 bits must be identical
I Subtraction, division, and modulo via + and ×I max(x , y , z) −→
[(y ≤ x)→ (x = z)] ∧ [(y > x)→ (y = z)]
I Other operators: negation, absolute value, min
Jinbo Huang Introduction to Satisfiability
![Page 134: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/134.jpg)
Integer Arithmetic
I Adder and multiplier as in computer hardware
I Constraints to prevent overflow+: sum temporarily has k + 1 bits
leading two bits must be identical×: product temporarily has 2k bits
leading k + 1 bits must be identical
I Subtraction, division, and modulo via + and ×
I max(x , y , z) −→[(y ≤ x)→ (x = z)] ∧ [(y > x)→ (y = z)]
I Other operators: negation, absolute value, min
Jinbo Huang Introduction to Satisfiability
![Page 135: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/135.jpg)
Integer Arithmetic
I Adder and multiplier as in computer hardware
I Constraints to prevent overflow+: sum temporarily has k + 1 bits
leading two bits must be identical×: product temporarily has 2k bits
leading k + 1 bits must be identical
I Subtraction, division, and modulo via + and ×I max(x , y , z) −→
[(y ≤ x)→ (x = z)] ∧ [(y > x)→ (y = z)]
I Other operators: negation, absolute value, min
Jinbo Huang Introduction to Satisfiability
![Page 136: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/136.jpg)
Integer Arithmetic
I Adder and multiplier as in computer hardware
I Constraints to prevent overflow+: sum temporarily has k + 1 bits
leading two bits must be identical×: product temporarily has 2k bits
leading k + 1 bits must be identical
I Subtraction, division, and modulo via + and ×I max(x , y , z) −→
[(y ≤ x)→ (x = z)] ∧ [(y > x)→ (y = z)]
I Other operators: negation, absolute value, min
Jinbo Huang Introduction to Satisfiability
![Page 137: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/137.jpg)
Linear Constraints
I a1x1 + . . . + anxn op© bop© can be =, 6=,≤, <,≥, >
I Decompose into multiplications, summations,comparison
I Use auxiliary variables to keep size linear in n
Jinbo Huang Introduction to Satisfiability
![Page 138: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/138.jpg)
Linear Constraints
I a1x1 + . . . + anxn op© bop© can be =, 6=,≤, <,≥, >
I Decompose into multiplications, summations,comparison
I Use auxiliary variables to keep size linear in n
Jinbo Huang Introduction to Satisfiability
![Page 139: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/139.jpg)
Set Operations
I set of 1..10 : Y
−→ Y1, . . . ,Y10
I Yi encodes i ∈ Y
I Membership: x ∈ Y −→∨10
i=1[(x = i) ∧ Yi ]
I Subset: X ⊆ Y −→∧10
i=1(Xi → Yi)I If X and Y have different universes, use smallest
range containing both
I Cardinality: x = |Y | −→ x =∑10
i=1 Yi
I Similar for other operators: union, intersection,difference, symmetric difference
Jinbo Huang Introduction to Satisfiability
![Page 140: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/140.jpg)
Set Operations
I set of 1..10 : Y −→ Y1, . . . ,Y10
I Yi encodes i ∈ Y
I Membership: x ∈ Y −→∨10
i=1[(x = i) ∧ Yi ]
I Subset: X ⊆ Y −→∧10
i=1(Xi → Yi)I If X and Y have different universes, use smallest
range containing both
I Cardinality: x = |Y | −→ x =∑10
i=1 Yi
I Similar for other operators: union, intersection,difference, symmetric difference
Jinbo Huang Introduction to Satisfiability
![Page 141: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/141.jpg)
Set Operations
I set of 1..10 : Y −→ Y1, . . . ,Y10
I Yi encodes i ∈ Y
I Membership: x ∈ Y −→∨10
i=1[(x = i) ∧ Yi ]
I Subset: X ⊆ Y −→∧10
i=1(Xi → Yi)I If X and Y have different universes, use smallest
range containing both
I Cardinality: x = |Y | −→ x =∑10
i=1 Yi
I Similar for other operators: union, intersection,difference, symmetric difference
Jinbo Huang Introduction to Satisfiability
![Page 142: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/142.jpg)
Set Operations
I set of 1..10 : Y −→ Y1, . . . ,Y10
I Yi encodes i ∈ Y
I Membership: x ∈ Y −→∨10
i=1[(x = i) ∧ Yi ]
I Subset: X ⊆ Y −→∧10
i=1(Xi → Yi)
I If X and Y have different universes, use smallestrange containing both
I Cardinality: x = |Y | −→ x =∑10
i=1 Yi
I Similar for other operators: union, intersection,difference, symmetric difference
Jinbo Huang Introduction to Satisfiability
![Page 143: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/143.jpg)
Set Operations
I set of 1..10 : Y −→ Y1, . . . ,Y10
I Yi encodes i ∈ Y
I Membership: x ∈ Y −→∨10
i=1[(x = i) ∧ Yi ]
I Subset: X ⊆ Y −→∧10
i=1(Xi → Yi)I If X and Y have different universes, use smallest
range containing both
I Cardinality: x = |Y | −→ x =∑10
i=1 Yi
I Similar for other operators: union, intersection,difference, symmetric difference
Jinbo Huang Introduction to Satisfiability
![Page 144: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/144.jpg)
Set Operations
I set of 1..10 : Y −→ Y1, . . . ,Y10
I Yi encodes i ∈ Y
I Membership: x ∈ Y −→∨10
i=1[(x = i) ∧ Yi ]
I Subset: X ⊆ Y −→∧10
i=1(Xi → Yi)I If X and Y have different universes, use smallest
range containing both
I Cardinality: x = |Y | −→ x =∑10
i=1 Yi
I Similar for other operators: union, intersection,difference, symmetric difference
Jinbo Huang Introduction to Satisfiability
![Page 145: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/145.jpg)
Set Operations
I set of 1..10 : Y −→ Y1, . . . ,Y10
I Yi encodes i ∈ Y
I Membership: x ∈ Y −→∨10
i=1[(x = i) ∧ Yi ]
I Subset: X ⊆ Y −→∧10
i=1(Xi → Yi)I If X and Y have different universes, use smallest
range containing both
I Cardinality: x = |Y | −→ x =∑10
i=1 Yi
I Similar for other operators: union, intersection,difference, symmetric difference
Jinbo Huang Introduction to Satisfiability
![Page 146: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/146.jpg)
Arrays of Booleans/Integers/Sets
I Index range fixed at compile time
I Decompose into individual variablesY [1..10] −→ Y1, . . . ,Y10
I Handling variable indicesY [x ] = z −→
∨10i=1[(x = i) ∧ (Yi = z)]
Jinbo Huang Introduction to Satisfiability
![Page 147: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/147.jpg)
Optimization Problems
I Optimization of variable only (optimization ofexpression eliminated using auxiliary variable)
I Binary search for increasingly optimal solutions
I Each step of search is a satisfaction problem
I At most k + 1 subproblems (log of domain size)
Jinbo Huang Introduction to Satisfiability
![Page 148: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/148.jpg)
Complexity of Encoding
I Quadratic in k for ×, /,%, linear constraints
I Linear for +,−, ||,min,max ,=, 6=,≤, <,≥, >I Linear in size of array for array access with
variable index
I Linear in size of universe of set for setconstraints
I In practice, often millions of variables & clauses
Jinbo Huang Introduction to Satisfiability
![Page 149: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/149.jpg)
Weaknesses and Strengths
I Domain knowledge lost
I Binary search blind
I Propagation weak for some types of constraints
I All constraints propagated seamlessly at once
I Clause learning more powerful than traditionalnogood learning
I SAT heuristics good at real-world problems
Jinbo Huang Introduction to Satisfiability
![Page 150: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/150.jpg)
Empirical Evaluation
I Use all benchmark groups & examples inMiniZinc distribution (3/3/2008)
I 488 problems in 21 groups: 12 satisfaction, 8optimization, 1 mixed
I rectangle packing, linear equations, car sequencing,curriculum design, social golfers, job shopscheduling, nurse scheduling, n-queens, truckscheduling, warehouse planning, math puzzles, ...
I Compare with G12/FD & Gecode/FlatZinc
I 4-hour time limit for each run
Jinbo Huang Introduction to Satisfiability
![Page 151: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/151.jpg)
Overall Result
# of problems solved out of 488
FznTini G12/FD Gecode/FlatZinc263 103 178
Jinbo Huang Introduction to Satisfiability
![Page 152: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/152.jpg)
Easy Cases for All
Problem Inst. FznTini G12/FD Gecode/FlatZinc
Solved Time Solved Time Solved Time
alpha 1 1 1.65 1 0.10 1 239.20
areas 4 4 0.69 4 0.71 4 0.04
eq 1 1 49.92 1 0.18 1 0.00
examples 18 18 2076.74 18 1557.62 18 2.87
kakuro 6 6 0.17 6 1.10 6 0.01
knights 4 4 0.78 4 390.79 4 1.01
photo 1 1 0.08 1 0.20 1 0.00
Jinbo Huang Introduction to Satisfiability
![Page 153: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/153.jpg)
Bad Cases for Booleanization
Problem Inst. FznTini G12/FD Gecode/FlatZinc
Solved Time Solved Time Solved Time
cars 79 1 3.34 1 0.15 1 0.01
golfers 9 3 6278.30 4 12.88 6 1297.26
golomb 5 4 2030.23 5 323.54 5 10.35
magicseq 7 4 9939.32 7 172.12 7 9.19
queens 6 5 4168.79 6 90.68 3 0.33
trucking 10 9 14747.10 10 196.48 10 86.52
Jinbo Huang Introduction to Satisfiability
![Page 154: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/154.jpg)
Good Cases for Booleanization
Problem Inst. FznTini G12/FD Gecode/FlatZinc
Solved Time Solved Time Solved Time
packing 50 9 2843.46 7 2447.65 7 44.13
bibd 9 8 16.17 8 757.72 6 197.48
curriculum 3 3 12.76 2 13.17 0 —
jobshop 73 19 50294.40 2 1764.65 2 31.6
nurse sch. 100 99 1800.36 1 3.97 0 —
perfect sq. 10 10 548.41 4 4350.19 5 2024.85
warehouses 10 10 671.71 9 2266.44 9 221.83
Jinbo Huang Introduction to Satisfiability
![Page 155: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/155.jpg)
Summary and Opportunities
I SAT works!
I More compact and/or propagation friendlyencodings of constraints
I Direct encoding of global constraints
I More informed search (than blind binarysearch) for optimization problems
I Deeper empirical and theoretical studies ofpower and limitations
I Hybridizations of SAT and other techniques
Jinbo Huang Introduction to Satisfiability
![Page 156: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/156.jpg)
Extensions of SAT
I Max-SAT
I Model counting
I Knowledge compilation
I Quantified Boolean formulas
I Pseudo-Boolean formulas
Jinbo Huang Introduction to Satisfiability
![Page 157: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/157.jpg)
Max-SAT
Satisfy max # of clauses
Clauses can have weights
I satisfy clauses with max sum of weights
Can have hard clauses
I these must be satisfied
I maximize with respect to rest
Jinbo Huang Introduction to Satisfiability
![Page 158: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/158.jpg)
Model Counting
Compute # of models (satisfying assignments)
#P-complete
Literals can have weights
I weight of model: product of literal weights
I compute sum of weights of models
I closely related to probabilistic reasoning
Jinbo Huang Introduction to Satisfiability
![Page 159: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/159.jpg)
Knowledge Compilation
Put formula into given logical form
I to support efficient (poly-time) operations
Target compilation forms
I decomposable negation normal form
I binary decision diagrams
I prime implicates, . . .
Forms differ in succinctness & tractability
I pick most succinct form that supports desiredoperations
I need to develop compilers for themJinbo Huang Introduction to Satisfiability
![Page 160: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/160.jpg)
Quantified Boolean Formula
∀X∃Y ∀Z (X ∨ Z ) ∧ Y
I all variables quantified
Is formula true?
PSPACE-complete
Jinbo Huang Introduction to Satisfiability
![Page 161: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/161.jpg)
Quantified Boolean Formula
∀X∃Y ∀Z (X ∨ Z ) ∧ Y
I all variables quantified
Is formula true?
PSPACE-complete
Jinbo Huang Introduction to Satisfiability
![Page 162: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/162.jpg)
Pseudo-Boolean Formula
Pseudo-Boolean constraint
I 2X + Y + 3Z < 5
Special case: cardinality constraint
I X + Y + Z > 2
Jinbo Huang Introduction to Satisfiability
![Page 163: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/163.jpg)
Pseudo-Boolean Formula
Pseudo-Boolean constraint
I 2X + Y + 3Z < 5
Special case: cardinality constraint
I X + Y + Z > 2
Jinbo Huang Introduction to Satisfiability
![Page 164: Introduction to Satisfiabilityusers.cecs.anu.edu.au/~jinbo/logic/sat.pdf · Why Boolean: NP-Completeness All of NP translate to SAT in polynomial time I p 2NP )p is solved by an algorithm](https://reader033.vdocuments.site/reader033/viewer/2022053005/5f08d37d7e708231d423e870/html5/thumbnails/164.jpg)
SAT Resources
I SAT conferences, www.satisfiability.org
I SAT competitions, www.satcompetition.org
I SAT Live, www.satlive.org
I Handbook of satisfiability
Jinbo Huang Introduction to Satisfiability