Jo Devriendt
ORBEL36
nonfictionsoftware.com
KU Leuven (starting in October)
MIAO group headed by Jakob Nordström
Lund University, Sweden
University of Copenhagen, Denmark
Discussions with Daniel Dadush, Jan Elffers, Stephan Gocht, Janne Kokkala
Constraint propagation
Constraint propagation
Conflict?
Constraint propagation
Conflict?
Decide unassigned variable
no
Constraint propagation
Conflict?
Decide unassigned variable
no
Constraint propagation
Conflict?
Decide unassigned variable
no
Constraint propagation
Conflict?
Learn cutting plane
Decide unassigned variable
yes
no
Constraint propagation
Conflict?
Learn cutting plane
Backjump
Decide unassigned variable
yes
no
Constraint propagation
Conflict?
Learn cutting plane
Backjump
Decide unassigned variable
yes
no
Constraint propagation
Conflict?
Learn cutting plane
Backjump
Decide unassigned variable
yes
no
here be dragons
Constraint propagation
Conflict?
Learn cutting plane
Backjump
Decide unassigned variable
yes
no
Constraint propagation
Conflict?
Learn cutting plane
Backjump
Decide unassigned variable
yes
no
Constraint propagation
Conflict?
Learn cutting plane
Backjump
Decide unassigned variable
yes
no
How to learn a cutting plane?
1. "Massage" propagating constraints:
Ok!
Not ok!
1. "Massage" propagating constraints:
Not ok!
1. "Massage" propagating constraints:
Ok!
1. "Massage" propagating constraints:
Not ok!
1. "Massage" propagating constraints:
Not ok!
1. "Massage" propagating constraints:
Not ok!
1. "Massage" propagating constraints:
Ok!
1. "Massage" propagating constraints:
2. Create linear combination:
+1x
+1x
2. Create linear combination:
+1x
2. Create linear combination:
+1x
2. Create linear combination:
+1x
2. Create linear combination:
+1x
2. Create linear combination:
+2x
2. Create linear combination:
+2x
2. Create linear combination:
+2x
2. Create linear combination:
+3x
2. Create linear combination:
+3x
2. Create linear combination:
+3x
2. Create linear combination:
Excellent constraint to learn:
Fixes u=0, z=1 after backjump
How to learn a cutting plane?
Exact features
Always looking for interesting applications :)
[MS96] GRASP - a new search algorithm for satisfiability - Marques-Silva, Sakallah
[BS97] Using CSP lookback techniques to solve real-world SAT instances - Bayardo, Schrag
[WW00] Combining Linear Programming and Satisability Solving for Resource Planning - Wolfman, Weld
[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
[Dd06] A Fast Linear-Arithmetic Solver for DPLL(T) - Dutertre, de Moura
[FM06] On Solving the Partial MAX-SAT Problem - Fu, Malik
[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
[D16] Scheduling and rostering with learning constraint solvers - Downing
[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
[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)