Jo Devriendt
jodevriendt.com
Acknowledgment:
MIAO group at Lund/Copenhagen
slides: slides.com/jod/cdcpl-devil
How to solve?
"Generate-and-test" search tree...
...maybe we get lucky with good heuristics?
Suppose the problem is UNSATisfiable:
To show UNSAT of above constraints,
just add all of them together.
No need to search over candidate solutions!
Dual reasoning
besides searching over variable-value assignments,
search over constraint combinations
\(z\)
\(\overline{z}\)
\(x\)
\(y\)
\(\overline{y}\)
\(\overline{z}\)
\(z\)
\(x\)
\(y\)
\(z\)
\(\overline{z}\)
\(\overline{x}\)
\(y\)
\(\overline{y}\)
\(\overline{y}\)
\(\overline{z}\)
\(z\)
\(x\)
\(y\)
\(z\)
\(\overline{z}\)
Decision literals
Search trail: the current assignment, as a list of literals in chronological order, paired with their decision status
Reason constraint
d | d | p |
Conflict constraint
Propagated literal
\(\overline{x}\)
\(y\)
\(\overline{y}\)
\(\overline{y}\)
\(\overline{z}\)
\(z\)
\(x\)
\(y\)
\(z\)
\(\overline{z}\)
\(x\)
\(y\)
\(z\)
\(\overline{z}\)
\(\overline{y}\)
\(\overline{z}\)
\(x\)
\(\overline{x}\)
Crucial invariants
In case of double literals:
Divide lhs and rhs by 2, ceil:
\(\overline{y}\)
\(\overline{z}\)
\(x\)
\(\overline{x}\)
Automatic proof construction (dual reasoning) during search!
Crucial invariants
Mid-presentation summary
Rules:
Can simulate resolution rule
Can we construct cutting plane proof during search, similar to resolution via CDCL?
Let's see...
d | d | d |
Slack
Given a trail, the slack of the constraint is the difference between the lhs and the rhs (assuming unknown literals as true)
slack =
2+2+0-3 =
1
Problem
constraints
slack
trail
Problem
constraints
slack
trail
Problem
constraints
slack
trail
Slack is sub-additive: slack of summed constraints is at most sum of slacks
Can we get the reason constraint to slack 0 with the coefficient of the propagated variable identical to the conflict coefficient?
round-to-one [NE18]
constraints
slack
trail
Divide by propagating coefficient, after ensuring all coefficients are divisible
round-to-one [NE18]
constraints
slack
trail
Divide by propagating coefficient, after ensuring all coefficients are divisible
1) non-falsified: add \(\overline{x}\geq 0\)
2) falsified: add \(y \geq 0\)
divisor
3) divide by 2
4) multiply with conflict coefficient
5) add to conflict
constraints
slack
trail
1) non-falsified: add \(\overline{x}\geq 0\)
2) falsified: add \(y \geq 0\)
divisor
3) divide by 2
4) multiply with conflict coefficient
5) add to conflict
Building cutting plane proofs!
round-to-one [NE18]
Divide by propagating coefficient, after ensuring all coefficients are divisible, then multiply by conflict coefficient.
Rest of search routine: roughly same as CDCL
Efficient implementation: gitlab.com/JoD/exact
Round-to-one is not the final answer
strictly stronger than regular division!
Way more degrees of freedom than in CDCL ...
... thesis topic :)
Efficient implementation: gitlab.com/JoD/exact
[H85] The intractibility of resolution - Haken
[CCT87] On the complexity of cutting-plane proofs - Cook, Coullard, Turán
[MS96] GRASP - a new search algorithm for satisfiability - Marques-Silva, Sakallah
[BS97] Using CSP lookback techniques to solve real-world SAT instances - Bayardo, Schrag
[MMZZM01] Chaff: Engineering an efficient SAT solver - Moskewicz, Madigan, Zhao, Zhang, Malik
[CK05] A fast pseudo-Boolean constraint solver - Chai, Kuehlmann
[SS06] Pueblo: A hybrid pseudo-Boolean SAT solver - Sheini, Sakallah
[LP10] The Sat4j library, release 2.2 - Le Berre, Parrain
[EN18] Divide and conquer: Towards faster pseudo-boolean solving - Elffers, Nordström
[D20] Watched Propagation for 0-1 Integer Linear Constraints - Devriendt
[DGN20] Learn to Relax: Integrating 0-1 Integer Linear Programming with Pseudo-Boolean Conflict-Driven Search - Devriendt, Gleixner, Nordström
[SDNS20] Theoretical and Experimental Results for Planning with Learned Binarized NeuralNetwork Transition Models - Say, Devriendt, Nordström, Stuckey
[LBDEN20] Verifying Properties of Bit-vector Multiplication Using Cutting Planes Reasoning - Liew, Beame, Devriendt, Elffers, Nordström
[LBDEN20]