Conflict-driven SAT Solving
Alexander Nadel, Intel Israel
“25 years of SAT“ Session @ SAT’22 Conference
August 4, 2022
Technion, Haifa, Israel
1
PEG PDS DDI
1/11
The Scalability of SAT is Phenomenal
Modern solvers cope with industrial instances of 100,000,000’s clauses
The introduction of Conflict-Driven-Clause-Learning (CDCL) or, simply, �Conflict-driven Solving was the birth of modern highly-scalable SAT solving
Learn from conflicts to drive & prune backtrack search
PEG PDS DDI
2/11
Agenda
Today’s focus: in-depth dive into the “core of the core”
Not covered today
PEG PDS DDI
3/11
Conflict-driven SAT Solving: Seminal Work
1996: GRASP by Joao P. Marques-Silva and Karem A. Sakallah
João P. Marques Silva, Karem A. Sakallah: GRASP - a new search algorithm for satisfiability. ICCAD 1996: 220-227��2001: Chaff by Matthew W. Moskewicz, Conor F. Madigan, Ying Zhao, Lintao Zhang and Sharad Malik
Matthew W. Moskewicz, Conor F. Madigan, Ying Zhao, Lintao Zhang, Sharad Malik: Chaff: Engineering an Efficient SAT Solver. DAC 2001: 530-535
PEG PDS DDI
4/11
Boolean Constraint Propagation (BCP) Essentials
BCP consumes 80-90% of SAT run-time
What?
How?
c2
c1
c3
c2
c1
c3
c2
c1
c3
Falsified literal:
Satisfied literal:
Unassigned literal:
PEG PDS DDI
5/11
Efficient Data Structure for BCP
Hantao Zhang: SATO: An Efficient Propositional Prover. CADE 1997: 272-275
Geoffrey Chu, Aaron Harwood, Peter J. Stuckey: Cache Conscious Data Structures for Boolean Satisfiability Solvers. J. Satisf. Boolean Model. Comput. 6(1-3): 99-120 (2009)
7/28/2022
c4
c5
c7
c2
c1
c3
c6
Falsified literal:
Satisfied literal:
Unassigned literal:
Unknown literal:
Non-falsified literal:
Non-satisfied literal:
c4
c5
c7
c3
c2
c6
c1
PEG PDS DDI
6/11
Conflict Analysis Loop in Chaff
Right-hand side: the conflict
Left-hand side: the reason, including the rightmost Unique Implication Point (UIP) of the last level
f@5(C5)
Decision Level 4
f@1(C7)
c@3
¬f@3(C6)
C1= ¬a ∨ f ∨ g
C2= ¬a ∨ f ∨ ¬g
C3= ¬c ∨ ¬f ∨ g
C4= ¬b ∨ ¬f ∨ ¬g
C5= ¬e ∨ f
a@1
b@2
c@3
d@4
e@5
g@5
¬ g@5
f@5
e@5
c@3
b@2
1UIP
C6 = ¬f ∨ ¬c ∨ ¬b
a@1
b@2
C3
C3
C4
C5
C4
g@3
¬ g@3
a@1
¬ f@3
C1
C1
C2
C2
1UIP
C7 = f ∨ ¬a
a@1
c@3
b@2
NCB to 3
NCB to 1
Decision Level 1
Decision Level 2
Decision Level 3
Decision Level 5
Decision variable/literal
Implication graph
g@5(C3)
g@3(C1)
PEG PDS DDI
7/11
Conflict Analysis Loop in GRASP
b@2
a@1
g@3
a@1
b@2
c@3
d@4
e@5
f@5(C5)
g@5
¬ g@5
f@5
e@5
c@3
1UIP
C6 = ¬f ∨ ¬c ∨ ¬b
C3
C3
C4
C5
C4
2UIP
C7 = ¬e ∨ ¬c ∨ ¬b
¬f@3(C6)
a@1
b@2
c@3
d@4
¬f@1(C8)
a@1
¬ f@3
C1
C1
C2
C2
1UIP
c@3
b@2
2UIP
C1= ¬a ∨ f ∨ g
C2= ¬a ∨ f ∨ ¬g
C3= ¬c ∨ ¬f ∨ g
C4= ¬b ∨ ¬f ∨ ¬g
C5= ¬e ∨ f
b@2
C9 = ¬c ∨ ¬b ∨ ¬a
C8 = f ∨ ¬a
CB to 4
¬ g@3
Backtrack to conflict level 3
CB to 2
In GRASP, f is a special kind of a “flipped” decision variable at level 5, but GRASP learns as if ¬f were implied at level 3
g@5(C3)
g@3(C1)
PEG PDS DDI
8/11
Up-to-date Conflict Analysis Loop Algorithm �Covers GRASP & Chaff & Modern Solvers
PEG PDS DDI
9/11
Conflict Analysis Loop Evolvement
Maple_LCM_Dist_ChronoBT (MapleCB): the return of Chronological Backtracking (CB)
Alexander Nadel, Vadim Ryvchin: Chronological Backtracking. SAT 2018: 111-121
Cadical’19: custom (score-based) backtracking
Sibylle Möhle, Armin Biere: Backing Backtracking. SAT 2019: 250-266
CB & BCP integration: implemented, but not discussed
1996
GRASP
2001
Chaff
2018
Maple_LCM_Dist_ChronoBT
2019
Cadical’19
Chaff’s alg. (one 1UIP cls. & NCB) is the state-of-the-art
PEG PDS DDI
10/11
Integrating CB and BCP
Example of a necessary adjustment
Useful invariants are still violated even with the adjustments:
Intel® SAT Solver (IntelSAT): a new formally proven BCP alg. with a possible solution
Alexander Nadel: Introducing Intel® SAT Solver. SAT 2022.
There is more to it! Looking forward to the next 25 years!
@30
c2
@20
c1
@30
@1
@20
@1
@1
@20
@1
@30
Falsified literal:
Unassigned literal:
@10
@20
@10
Satisfied literal:
@1
@30
@1
@30
@1
@20
@1
@20
PEG PDS DDI
11/11