Cutting to the Core of Pseudo-Boolean Optimization: Combining Core-Guided Search with Cutting Planes Reasoning
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
jodevriendt.com
slides.com/jod/coreguidedpb-full
Objective
(to minimize)
Solutions
Optimization
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)
- All variables are Boolean (0, 1)
- 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
Basically, we are doing 0-1 integer linear programming in this talk
- All variables are Boolean (0, 1)
- 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
- Solver input
- Formula
- Assumptions
- Solver output, either
- Solution satisfying under
- Core constraint implied by and violated by
Prelims: 0-1 linear programming
Prelims
Solver abstraction:
- Input
- Formula
-
Assumptions
- Output, either
- Solution satisfying under
- Core constraint implied by and violated by
I
Classic
Core-guided Optimization
Solve under assumptions
Extract core
Reformulate problem
Increase lower bound
- Original core-guided idea [FM06]
- CGO also succesfully applied in ASP [AKMS12] and CP [GBDS20]
- Described technique: OLL [AKMS12, MDM14] and ONE [ADR15]
CGO loop
Solve under assumptions
Extract core
Reformulate problem
Increase lower bound
- Original core-guided idea [FM06]
- 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 symmetry breakers
- 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
- Assume all variables in objective to be false
- Conflict-driven clause learning solver returns clausal core
- Determine :
smallest coefficient in objective with variable in core - Enlarge core to extension constraint Ext with one fewer auxiliary variables
-
Add Ext to with symmetry breakers
- Sound as implies Core
-
Reformulate objective:
Multiply Ext by ,
subtract lhs and add rhs to O - Lower bound increase is simply
- 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 cutting-planes reasoning
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 symmetry breakers
- 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
Cutting Planes CGO Example
- Assume all variables in objective to be false
- With a cutting-planes reasoning
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
- Determine
- Determine cardinality degree d
- Enlarge core to extension constraint Ext with d fewer auxiliary variables
- Add Ext to with symmetry breakers
- Reformulate objective
- Lower bound increase is
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:
Cardinality reduction optimization
- Multiple implied cardinalities
- Pick one that leads to best
lower bound increase
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]
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
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
Combining Core-Guided Search with Cutting Planes Reasoning - FULL
By Jo Devriendt
Combining Core-Guided Search with Cutting Planes Reasoning - FULL
- 470