Jo Devriendt
KU Leuven
Acknowledgment:
MIAO group headed by Jakob Nordström
Lund University, Sweden
University of Copenhagen, Denmark
slides @ slides.com/jod/kaho
PB solvers
Talk outline
(example-driven)
Unit propagation
Unit propagation
Conflict?
Unit propagation
Conflict?
Decide unassigned variable
no
Unit propagation
Conflict?
Decide unassigned variable
no
Unit propagation
Conflict?
Decide unassigned variable
no
Unit propagation
Conflict?
Decide unassigned variable
no
Unit propagation
Conflict?
Decide unassigned variable
no
Unit propagation
Conflict?
Decide unassigned variable
no
Unit propagation
Conflict?
Decide unassigned variable
no
Unit propagation
Conflict?
Decide unassigned variable
no
Unit propagation
Conflict?
Decide unassigned variable
no
Unit propagation
Conflict?
Learn constraint
Decide unassigned variable
yes
no
Unit propagation
Conflict?
Learn constraint
Decide unassigned variable
yes
no
Unit propagation
Conflict?
Learn constraint
Backjump
Decide unassigned variable
yes
no
Unit propagation
Conflict?
Learn constraint
Backjump
Decide unassigned variable
yes
no
Unit propagation
Conflict?
Learn constraint
Backjump
Decide unassigned variable
yes
no
Unit propagation
Conflict?
Learn constraint
Backjump
Decide unassigned variable
yes
no
Unit propagation
Conflict?
Learn constraint
Backjump
Decide unassigned variable
yes
no
Unit propagation
Conflict?
Learn constraint
Backjump
Decide unassigned variable
yes
no
Unit propagation
Conflict?
Learn constraint
Backjump
Decide unassigned variable
yes
no
Unit propagation
Conflict?
Learn constraint
Backjump
Decide unassigned variable
yes
no
Unit propagation
Conflict?
Learn constraint
Backjump
Decide unassigned variable
yes
no
Unit propagation
Conflict?
Learn constraint
Backjump
Decide unassigned variable
yes
no
Unsatisfiable!
Unit propagation
Conflict?
Learn constraint
Backjump
Decide unassigned variable
yes
no
here be dragons
In our example
Farkas' lemma:
There exists a positive linear combination of constraints that is clearly inconsistent
iff
The ILP is rationally infeasible
Unit propagation
Conflict?
Learn constraint
Backjump
Decide unassigned variable
yes
no
Unit propagation
Conflict?
Learn constraint
Backjump
Decide unassigned variable
yes
no
Rational solution:
x = y = 0.5
z = v = w = 1
but still unsatisfiable
Unit propagation
Conflict?
Learn constraint
Backjump
Decide unassigned variable
yes
no
Unit propagation
Conflict?
Learn constraint
Backjump
Decide unassigned variable
yes
no
Unit propagation
Conflict?
Learn constraint
Backjump
Decide unassigned variable
yes
no
Unit propagation
Conflict?
Learn constraint
Backjump
Decide unassigned variable
yes
no
Unit propagation
Conflict?
Learn constraint
Backjump
Decide unassigned variable
yes
no
Unit propagation
Conflict?
Learn constraint
Backjump
Decide unassigned variable
yes
no
Unit propagation
Conflict?
Learn constraint
Backjump
Decide unassigned variable
yes
no
Unit propagation
Conflict?
Learn constraint
Backjump
Decide unassigned variable
yes
no
Unit propagation
Conflict?
Learn constraint
Backjump
Decide unassigned variable
yes
no
add variable axiom 1 ≥ v
divide by 2, round up rhs
Unit propagation
Conflict?
Learn constraint
Backjump
Decide unassigned variable
yes
no
Unit propagation
Conflict?
Learn constraint
Backjump
Decide unassigned variable
yes
no
Unit propagation
Conflict?
Learn constraint
Backjump
Decide unassigned variable
yes
no
Unit propagation
Conflict?
Learn constraint
Backjump
Decide unassigned variable
yes
no
Unit propagation
Conflict?
Learn constraint
Backjump
Decide unassigned variable
yes
no
Unsatisfiable!
Fourth rule: division (with rounding)
Together: cutting planes proof system
cutting planes proof system
Resolution:
Modified PB solver
Assume best case objective
PB call yields SAT?
Extract core
Reformulate objective,
increase lower bound
Optimal
no
yes
Simple solution:
x = y = z = v = w = 1
Optimal rational solution:
x = z = 0, y = v = 1/3, w = 2/3
Assume best case objective
PB call yields SAT?
Extract core
Reformulate objective,
increase lower bound
Optimal
no
yes
Assume best case objective
PB call yields SAT?
Extract core
Reformulate objective,
increase lower bound
Optimal
no
yes
Assume best case objective
PB call yields SAT?
Extract core
Reformulate objective,
increase lower bound
Optimal
no
yes
Assume best case objective
PB call yields SAT?
Extract core
Reformulate objective,
increase lower bound
Optimal
no
yes
Assume best case objective
PB call yields SAT?
Extract core
Reformulate objective,
increase lower bound
Optimal
no
yes
Assume best case objective
PB call yields SAT?
Extract core
Reformulate objective,
increase lower bound
Optimal
no
yes
Assume best case objective
PB call yields SAT?
Extract core
Reformulate objective,
increase lower bound
Optimal
no
yes
Assume best case objective
PB call yields SAT?
Extract core
Reformulate objective,
increase lower bound
Optimal
no
yes
Assume best case objective
PB call yields SAT?
Extract core
Reformulate objective,
increase lower bound
Optimal
no
yes
Assume best case objective
PB call yields SAT?
Extract core
Reformulate objective,
increase lower bound
Optimal
no
yes
Assume best case objective
PB call yields SAT?
Extract core
Reformulate objective,
increase lower bound
Optimal
no
yes
Assume best case objective
PB call yields SAT?
Extract core
Reformulate objective,
increase lower bound
Optimal
no
yes
Assume best case objective
PB call yields SAT?
Extract core
Reformulate objective,
increase lower bound
Optimal
no
yes
Assume best case objective
PB call yields SAT?
Extract core
Reformulate objective,
increase lower bound
Optimal
no
yes
Assume best case objective
PB call yields SAT?
Extract core
Reformulate objective,
increase lower bound
Optimal
no
yes
Assume best case objective
PB call yields SAT?
Extract core
Reformulate objective,
increase lower bound
Optimal
no
yes
Assume best case objective
PB call yields SAT?
Extract core
Reformulate objective,
increase lower bound
Optimal
no
yes
What use cases do you see for this kind of technology?
[MS96] GRASP - a new search algorithm for satisfiability - Marques-Silva, Sakallah
[MMZZM01] Chaff: Engineering an efficient SAT solver - Moskewicz, Madigan, Zhao, Zhang, Malik
[P04] Where are the hard knapsack problems? - Pisinger
[CK05] A fast pseudo-Boolean constraint solver - Chai, Kuehlmann
[SS06] Pueblo: A hybrid pseudo-Boolean SAT solver - Sheini, Sakallah
[ABKW08] Constraint Integer Programming: A New Approach to Integrate CP and MIP - Achterberg, Berthold, Koch, Wolter
[LP10] The Sat4j library, release 2.2 - Le Berre, Parrain
[EN18] Divide and conquer: Towards faster pseudo-boolean solving - Elffers, Nordström
[EGNV18] Using Combinatorial Benchmarks to Probe the Reasoning Power of pseudo-Boolean Solvers - Elffers, Giráldez-Cru, Nordström, Vinyals
[DGN20] Learn to Relax: Integrating 0-1 Integer Linear Programming with Pseudo-Boolean Conflict-Driven Search - Devriendt, Gleixner, Nordström
[D20] Watched Propagation for 0-1 Integer Linear Constraints - Devriendt
[JGDNS21] Cutting to the Core of Pseudo-Boolean Optimization: Combining Core-Guided Search with Cutting Planes Reasoning - Devriendt, Gocht, Demirovć, Nordström, Stuckey
[ZIB] SoPlex - soplex.zib.de
[PBCOMP] Latest PB competition - www.cril.univ-artois.fr/PB16/
[MIPLIB] The Mixed Integer Programming Library - miplib.zib.de
By Romain Wallon (CRIL, Univ Artois & CNRS)