Symmetric explanation learning: Effective dynamic symmetry handling for SAT
Jo Devriendt, Bart Bogaerts,
Maurice Bruynooghe, Marc  Denecker
 
2017
What's up with symmetry in SAT?
- CNF theory T, literal l, variable x, assignment α
 - Symmetry σ: permutation of literals
- commutes with negation σ(l) = ¬σ(¬l)
 - preserves satisfaction      σ(α) ⊨ T iff α ⊨ T
		
- syntactically fixes T                     σ(T) = T 
 
 - syntactically fixes T                     σ(T) = T 
 
 - Set of symmetries Σ generate an algebraic group <Σ> under ◦ (composition)
 
What's up with symmetry in SAT?
- E.g. pigeonhole problem
 - Set of holes {h1,h2,...,hn}
 - Set of pigeons {p1 ,p2,...,pn+1}
 - Symmetries σ on pigeons and holes
e.g., swapping h1 and h2
 - Symmetry group <Σ> of all permutations on pigeons and/or holes
 

Symmetry detection in SAT
- 
                Saucy [1]
	
                
- Convert CNF to colored graph
 - Automorphisms are syntactical symmetries
 - Result: set 
                        
                            Σ
                         of generator symmetries for 
                        
                            <Σ>
                        
                        
 
 - 
                BreakID [7]
	
                
- Find "the right" generators
 
 
    Symmetry exploitation in SAT
Two classes of techniques
- Dynamic symmetry exploitation
 - Static symmetry exploitation/breaking
 
avoid symmetrical parts of the search space
Symmetry exploitation in SAT
- 
lex-leader symmetry breaking formula     sbf(σ)   for σ
	
- based on variable order
 - 
 
 - 
Shatter and BreakID preprocessors [2,7]
	
- Given Σ, construct sbf(σ) for each σ∈Σ
 - Linear encoding of sbf(σ) into clauses
 - Very good results in recent SAT competitions
 
 
static symmetry breaking
Symmetry exploitation in SAT
- Takes symmetries into account during search
 - Requires dedicated solvers
	
- SymChaff [3]
 - Symmetry propagation for SAT (SP) [4]
 - Symmetric Learning Scheme (SLS) [5]
 - ...
 
 
dynamic symmetry exploitation
Symmetric learning
- Modern SAT solvers learn new clauses during search
 - Typically by resolution, but the idea works for any proof system
 - Learnt clauses are logical consequences of the theory
 - Whenever c is a consequence of T, so is σ(c)
 - Why not also learn σ(c)?
 
Symmetric learning
- Learning σ(c) for all  σ∈<Σ>:
	
- infeasible [6] (simpy too many σ)
 - How to ensure that no duplicate/subsumed clauses are learnt?
 
 - Various algorithms exist that make some choice on which symmetries to apply (SP, SLS)
 - None of them perform as well as state-of-the art static symmetry breaking
 - We present a novel algorithm in this family: symmetric explanation learning (SEL)
 
Symmetric explanation learning
- Idea: we prefer to learn clauses with a high chance of propagation
	
- Even better: we prefer to only learn clauses that propagate at least once
 
 - Idea: symmetries typically permute only a fraction of the literals
 - Hence, if c is unit, σ(c) has a good chance of being unit as well
	
- This notion of "interesting" candidate learned clause is dynamic
 
 
Symmetric explanation learning
- Proposal: whenever c propagates, store σ(c) in a separate clause store θ for each σ∈Σ
 - Propagation on θ happens with low priority: only if standard unit propagation is at a fixpoint
 - Whenever a clause in θ propagates, we learn it (we upgrade it to a "normal" learned clause)
 - Whenever we backtrack over the level where c propagated, we remove all σ(c) from θ
 
SEL: Properties
- Duplicate/subsumed clauses are never learnt
 - Combinatorial explosion of learnt clauses is contained by:
	
- Only considering candidates σ(c) for σ∈Σ (not σ∈<Σ>) and c a learnt clause
 - Removing candidates upon backtracking
 
 - Still allows for transitive effects (learning σ'(σ(c)) after learning σ(c))
 
SEL: Optimizations
- Standard two-watched literal scheme applied to θ
 - Do not store σ(c) if it is satisfied at the time of c's propagation
 - Store a simplification of σ(c) in θ:
	
- Remove all false literals at the time of c's propagation
 - Restore original σ(c) when upgrading
 
 
SEL vs SLS
- SLS: learn σ(c) for each learned clause c and each σ∈Σ 
	
- possibly learns useless clauses
 - no (intrinsic) mechanism to avoid duplicates
 - no transitive effects (possibly misses useful clauses)
 
 - SEL:
	
- possibly misses useful clauses
 
 
SEL vs SP
- SP: tracks symmetrical literals that can be propagated
	
- uses notion of weak activity of symmetry
 - learns σ(c) as reason of symmetrical propagation
 
 - SEL:
	
- whenever SP learns σ(c), so does SEL (not vice versa)
 
 
Notation
- State:
 - : assignment (list of literals)
 - : decision literals
 - : learned clause store
 - : explanation (maps propagated literals to the clause that propagated them)
 - : symmetrical learned clause store
 

SEL: Experiments
- Limits:
	
- 5000s
 - 16GB
 
 - Benchmarks
	
- app14, hard14
 - app16, hard16
 - highly symmetric instances
 
 - Solvers:
	
- Glucose 4.0
 - Glucose 4.0 + BreakID
 - Glucose 4.0 + SEL
 - Glucose 4.0 + SP
 - Glucose 4.0 + SLS
 
 


If SEL does not outperform static symmetry breaking... Why bother?
Symmetry exploitation in SAT
Static symmetry breaking:
- Compatible with any solver (simple preprocessing!)
 - Discards models a priori
 
Dynamic symmetry exploitation (SEL):
- Simple idea
 - Requires dedicated solvers
 - Does not discard models a priori
	
- 
Compatible with other inference tasks, such as:
		
- Model counting
 - (partial) MAXSAT
 - Optimization
 
 
 - 
Compatible with other inference tasks, such as:
		
 - "Lazy"
 
static vs dynamic
Summary
- We presented the first general-purpose dynamic symmetry exploitation technique +/- on par with static symmetry breaking
 - Based on symmetric learning; propagation-directed selection of learnt clauses
 - No completeness results yet. Under which conditions on Σ is SEL guaranteed to never visit two symmetrical assignments?
 
Thanks for your attention!
Questions?
[1] Symmetry and Satisfiability: An Update - 2010 - Katebi e.a.
[2] Efficient Symmetry-Breaking for Boolean Satisfiability - 2006 - Aloul e.a.
[3] On the importance of row symmetry - 2014 - Devriendt e.a.
[4] Automatic generation of constraints for partial symmetry breaking - 2011 - Jefferson & Petrie
[5] Symmetry and satisfiability - 2009 - Sakallah
[6] On Local Domain Symmetry for Model Expansion - 2016 - Devriendt e.a.
[7] Improved Static Symmetry Breaking for SAT - 2016 - Devriendt e.a.
An open research problem:
Do 7825 pigeons fit in 7824 holes?
Do 7825 pigeons fit in 7824 holes?
- impossible for SAT solvers
 - trivial on the first-order level
 
Thanks for your attention!
Questions?
[1] Symmetry and Satisfiability: An Update - 2010 - Katebi e.a.
[2] Efficient Symmetry-Breaking for Boolean Satisfiability - 2006 - Aloul e.a.
[3] On the importance of row symmetry - 2014 - Devriendt e.a.
[4] Automatic generation of constraints for partial symmetry breaking - 2011 - Jefferson & Petrie
[5] Symmetry and satisfiability - 2009 - Sakallah
[6] On Local Domain Symmetry for Model Expansion - 2016 - Devriendt e.a.
[7] Improved Static Symmetry Breaking for SAT - 2016 - Devriendt e.a.
(really, this time)
SEL
By krr
SEL
SAT17
- 2,290