Solving 0-1 integer linear programming problems with core-guided optimization
Jo Devriendt ¹²³ Stephan Gocht ¹² Emir Demirović ⁴ Jakob Nordström ²¹ Peter J Stuckey ⁵
¹ Lund University, Sweden
² University of Copenhagen, Denmark
³ KU Leuven, Belgium
⁴ TU Delft, The Netherlands
⁵ Monash University, Australia
Currently post-doc with Joost Vennekens
jodevriendt.com
slides.com/jod/cgo-eavise
Based on the AAAI21 paper
"Cutting to the Core of Pseudo-Boolean Optimization: Combining Core-Guided Search with Cutting Planes Reasoning"
- All variables are 0-1 (Boolean)
- Constraints C are linear inequalities
- Formula φ is a conjunction of constraints
- Negation:
- A literal is a variable or its negation
-
Linear objective function O to be minimized
- WLOG, objective has only positive coefficients
Prelims:
0-1 Integer Linear Programming (with negations)
Prelims:
0-1 Integer Linear Programming (with negations)
A solution:
Optimal solution:
Solutions
Linear Optimization
Objective
(to minimize)
Solutions
Linear Optimization
Objective
(to minimize)
Solutions
Linear Optimization
Objective
(to minimize)
Solutions
Linear Optimization
Objective
(to minimize)
Solutions
Linear Optimization
Objective
(to minimize)
Solutions
Linear Optimization
Objective
(to minimize)
Solutions
Linear Optimization
Objective
(to minimize)
Solutions
Core-guided Optimization (CGO)
Objective
(to minimize)
Solutions
Objective
(to minimize)
Core-guided Optimization (CGO)
Solutions
Objective
(to minimize)
Core-guided Optimization (CGO)
Solutions
Objective
(to minimize)
Core-guided Optimization (CGO)
Solutions
Objective
(to minimize)
Core-guided Optimization (CGO)
Core-guided Optimization (CGO)
Solutions
Objective
(to minimize)
Prelims:
0-1 Integer Linear Programming (with negations)
Special types of constraints:
-
Cardinality: all coefficients are 1 or -1, e.g.,
-
Clause: cardinality representing disjunction of literals, e.g.,
Prelims
Solver abstraction:
- Input
- Formula
-
Assumptions
- Output, either
- Solution satisfying under
- Core constraint implied by and violated by
This abstraction applies to conflict-driven, constraint learning solvers
I
Classic
Core-guided Optimization
Solve under assumptions
Extract core
Reformulate problem
Increase lower bound
- Original core-guided idea [FM06] (MaxSAT)
- CGO also succesfully applied in ASP [AKMS12] and CP [GBDS20]
- Described technique: OLL [AKMS12, MDM14] and ONE [ADR15]
CGO loop
Solve under assumptions
- Assume all variables in objective to be false
Extract core
- Classic case: conflict-driven clause learning solver
- Core is a clause
Reformulate problem
- Determine :
smallest coefficient in objective with variable in core - Enlarge core to extension constraint Ext with one fewer auxiliary variables
-
Add Ext to with order constraints
- Sound as implies Core
-
Reformulate objective:
Multiply Ext by ,
subtract lhs and add rhs to O
Increase lower bound
- Lower bound increase is simply
Rinse and repeat
- Repeat procedure with reformulated problem
II
Cutting-planes
Core-guided Optimization
(our contribution)
Solve under assumptions
- Assume all variables in objective to be false
Extract cardinality core
- With a conflict-driven cutting-planes
solver, core is a linear inequality - Can contain non-assumptions or negative coefficients
- Eliminate by adding Boolean axioms
- Can have arbitrarily large coefficients
- Reduce to cardinality core, e.g., by division with largest coefficient
Reformulate problem
- Determine
- Determine cardinality degree d
- Enlarge core to extension constraint Ext with d fewer auxiliary variables
- Add Ext to with order constraints
- Reformulate objective
Increase lower bound
- Lower bound increase is
- Rinse and repeat
Advantage of cutting-planes vs clausal
- Stronger (cardinality) core
- Stronger lower bound per core
- No encoding of Ext to clauses
Why a cardinality core?
Given
If
Then
Any core constraint is violated by setting all objective coefficients to 0, so it can be transformed to a constraint satisfying the if-condition.
Why a cardinality core?
Extension constraint would require too many auxiliary variables (assuming unary encoding)
compared to
III
Cutting-planes
Core-guided Optimization
Optimizations
Cardinality reduction optimization
- Multiple implied cardinalities
- Pick one that leads to best
lower bound increase
- Pick one that leads to best
Lower bounds:
Lazy extension encoding
- Auxiliary variables represent bounds on lhs
- Extension constraint can be split along the auxiliary variables
- Setting to false implies must be false
- As long as is false, the constraint for is not needed
- Lazily introduce variable and corresponding constraint
- Similar in spirit to [MJML14]
Interleaving core-guided and linear optimization
Solutions
Objective
(to minimize)
Related ideas in [ADMR15]
Solutions
Objective
(to minimize)
Interleaving core-guided and linear optimization
Related ideas in [ADMR15]
Solutions
Objective
(to minimize)
Interleaving core-guided and linear optimization
Related ideas in [ADMR15]
Solutions
Objective
(to minimize)
Interleaving core-guided and linear optimization
Related ideas in [ADMR15]
Solutions
Objective
(to minimize)
Interleaving core-guided and linear optimization
Related ideas in [ADMR15]
Solutions
Objective
(to minimize)
Interleaving core-guided and linear optimization
Related ideas in [ADMR15]
Solutions
Objective
(to minimize)
Interleaving core-guided and linear optimization
Related ideas in [ADMR15]
IV
Detailed example
Assume best case objective
Call yields SAT?
Extract core
Reformulate objective,
increase lower bound
Optimal
no
yes
CGO lower bound derivation
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
Call yields SAT?
Extract core
Reformulate objective,
increase lower bound
Optimal
no
yes
CGO lower bound derivation
Assume best case objective
Call yields SAT?
Extract core
Reformulate objective,
increase lower bound
Optimal
no
yes
CGO lower bound derivation
Assume best case objective
Call yields SAT?
Extract core
Reformulate objective,
increase lower bound
Optimal
no
yes
CGO lower bound derivation
Assume best case objective
Call yields SAT?
Extract core
Reformulate objective,
increase lower bound
Optimal
no
yes
CGO lower bound derivation
Assume best case objective
Call yields SAT?
Extract core
Reformulate objective,
increase lower bound
Optimal
no
yes
CGO lower bound derivation
Assume best case objective
Call yields SAT?
Extract core
Reformulate objective,
increase lower bound
Optimal
no
yes
CGO lower bound derivation
Assume best case objective
Call yields SAT?
Extract core
Reformulate objective,
increase lower bound
Optimal
no
yes
CGO lower bound derivation
Assume best case objective
Call yields SAT?
Extract core
Reformulate objective,
increase lower bound
Optimal
no
yes
CGO lower bound derivation
Assume best case objective
Call yields SAT?
Extract core
Reformulate objective,
increase lower bound
Optimal
no
yes
CGO lower bound derivation
Assume best case objective
Call yields SAT?
Extract core
Reformulate objective,
increase lower bound
Optimal
no
yes
CGO lower bound derivation
Assume best case objective
Call yields SAT?
Extract core
Reformulate objective,
increase lower bound
Optimal
no
yes
CGO lower bound derivation
Assume best case objective
Call yields SAT?
Extract core
Reformulate objective,
increase lower bound
Optimal
no
yes
CGO lower bound derivation
Assume best case objective
Call yields SAT?
Extract core
Reformulate objective,
increase lower bound
Optimal
no
yes
CGO lower bound derivation
Assume best case objective
Call yields SAT?
Extract core
Reformulate objective,
increase lower bound
Optimal
no
yes
CGO lower bound derivation
Assume best case objective
Call yields SAT?
Extract core
Reformulate objective,
increase lower bound
Optimal
no
yes
CGO lower bound derivation
Assume best case objective
Call yields SAT?
Extract core
Reformulate objective,
increase lower bound
Optimal
no
yes
CGO lower bound derivation
Assume best case objective
Call yields SAT?
Extract core
Reformulate objective,
increase lower bound
Optimal
no
yes
CGO lower bound derivation
Proof complexity view
V
Experiments
Overall performance
[PB16]
Overall performance
[PB16]
Overall performance
[PB16]
Overall performance
[PB16]
Stronger cores reach optimality faster
Fewer # variables due to lazy encoding
Take-away
Our contribution
- Core-guided optimization with cutting-planes reasoning instead of clausal reasoning
- Investigated different ways to optimize process
Cutting-planes reasoning advantages
- More efficient search for cores
- Can find stronger cores
- No re-encoding to clauses needed
- Proposed optimizations are easy to implement
Conclusion
- Huge performance improvement in RoundingSat
- Still behind MIP solvers on many instances
- Future work: incorporate MIP preprocessing techniques?
References
- [FM06] On Solving the Partial MAX-SAT Problem; Fu, Malik; 2006
- [AKMS12] Unsatisfiability-Based Optimization in clasp; Andres, Kaufmann, Matheis, Schaub; 2012
- [MDM14] Core-Guided MaxSAT with Soft Cardinality Constraints; Morgado, Dodaro, Marques-Silva; 2014
- [MJML14] Martins, Joshi, Manquinho, Lynce; Incremental Cardinality Constraints for MaxSAT; 2014
- [ADMR15] Alviano, Dodaro, Marques-Silva, Ricca; Optimum stable model search: algorithms and implementation; 2015
- [ADR15] Alviano, Dodaro, Ricca; A MaxSAT Algorithm Using Cardinality Constraints of Bounded Size; 2015
- [PB16] Latest PB competition - www.cril.univ-artois.fr/PB16/
- [GBDS20] Core-Guided and Core-Boosted Search for CP; Gange, Berg, Demirović, Stuckey; 2020
Thanks for your attention!
Solving 0-1 Integer Linear Programs with Core-guided Optimisation
By Jo Devriendt
Solving 0-1 Integer Linear Programs with Core-guided Optimisation
- 627