August 27th, 2018
Theory and Practice of SAT solving
Oaxaca, Mexico
Jo Devriendt, KU Leuven
Everyone knows symmetry:
"something does not change under a set of transformations"
- Wikipedia
Symmetry :=
Permutation of variable assignments that preserves satisfaction
Symmetry induces symmetry classes:
Symmetry classes tend to get huge -> search problem
"......calculating......"
Goal: investigate only asymmetrical cases
!!
"Interesting research question"
Syntactic symmetry :=
literal permutation that preserves the CNF
static ↔ dynamic
other ↔ breaking
Shatter
BreakID
CDCLSym
SymChaff
Symmetric learning
?
Adaptive prefix-assignment
Given: φ, Σ
Find: symmetry breaking formula sbf
that invalidates symmetrical assignments
Core idea: sbf encodes
"α is lexicographically smaller than σ(α)"
for σ ϵ Σ
parameter: total order on X
Sound
Complete
Huge: O(|X|²|Σ|)
Core idea: sbf encodes
"α is lexicographically smaller than σ(α)"
for all σ ϵ Σ
Sound
Incomplete
Feasible: O(|X||gen(Σ)|)
Sparse graph automorphism detection
Propositional description
off-the-shelf SAT solver
SAT/UNSAT
Graph automorphism detection
Add symmetry breaking formulas
Do n pigeons fit in n-1 holes?
Seems ok?
Original Shatter experiment:
Modest gains...
Better results in original paper?
Own Shatter experiment:
Core idea: detect "row swap" symmetries
*Approximative algorithm
Core idea: detect "row swap" symmetries
Detect row interchangeability subgroups?
Caveat!
Core idea: maximize number of binary sbf clauses
Core idea: exploit binary sbf clauses
Core idea: exploit binary sbf clauses
Complete algorithm?
Core idea: generate sbf dynamically
Use clauses for propagation?
Not only generator symmetries?
Tractable sbf for edge interchangeability?
Core idea: enumerate asymmetrical assignments to variable prefix
High-level constraints
Incremental / parallel SAT solver
Graph representation
Symmetry class representative enumeration
Variable prefix
Clausal encoding
Core idea: search decisions consider row interchangeability
Cardinality decision of 1 over first column:
Core idea: search decisions consider row interchangeability
Cardinality decision of 1 over first column:
Strong performance on pigeonhole
Core idea: consider symmetrical learned clauses
Core idea: consider useful symmetrical explanation clauses
Core idea: consider useful symmetrical explanation clauses
What is "complete" symmetrical learning?
Can it be done efficiently?
Caveat: performance on larger instances
The influence of the variable order on an sbf?
Proof checking and symmetrical learning?
[1] Symmetry-Breaking Predicates for Search Problems (1996) Crawford et al.
[2] Efficient Symmetry-Breaking for Boolean Satisfiability (2003) Aloul et al.
[3] Symmetry and Satisfiability: An Update (2010) Katebi et al.
[4] Breaking row and column symmetries in matrix models (2002) Flener et al.
[5] Improved Static Symmetry Breaking for SAT (2016) Devriendt et al.
[6] CDCLSym: Introducing Effective Symmetry Breaking in SAT Solving (2018) Metin et al.
[7] An Adaptive Prefix-Assignment Technique for Symmetry Reduction (2017) Juntilla et al.
[8] Symchaff: exploiting symmetry in a structure-aware satisfiability solver (2009) Sabharwal
[9] Enhancing clause learning by symmetry in SAT solvers (2010) Benhamou
[10] Symmetric explanation learning: Effective dynamic symmetry handling for SAT (2017) Devriendt et al.
[11] Breaking Symmetries in Graphs: The Nauty Way (2016) Codish et al.
[12] Symmetries, almost symmetries, and lazy clause generation (2014) Chu et al.
[13] Breaking symmetries in all-different problems (2005) Puget
[14] The quest for perfect and compact symmetry breaking for graph problems (2016) Heule
Symmetries form moves!
Can be automatically detected!
Symmetry-based local search in weighted maxSAT?