Symmetry in SAT:
an overview
August 27th, 2018
Theory and Practice of SAT solving
Oaxaca, Mexico
Jo Devriendt, KU Leuven
Intro
Everyone knows symmetry:
"something does not change under a set of transformations"
 Wikipedia
Symmetry :=
Permutation of variable assignments that preserves satisfaction
In combinatorial solving
Symmetry induces symmetry classes:
Symmetry classes tend to get huge > search problem
"......calculating......"
In combinatorial solving
In combinatorial solving
Goal: investigate only asymmetrical cases
!!
Contents
 Intro
 SAT Prelims
 "Classic" symmetry breaking
 The pigeonhole problem
 "Recent" symmetry breaking
 Nonbreaking approaches
 Bonus: symmetry, local search & maxSAT
"Interesting research question"
In SAT:
Syntactic symmetry :=
literal permutation that preserves the CNF
static ↔ dynamic
other ↔ breaking
Shatter
BreakID
CDCLSym
SymChaff
Symmetric learning
?
In SAT literature:
Adaptive prefixassignment
Terminology
 variable x
 set of all variables X
 literal l
 clause c
 (propositional) formula φ
 (variable) assignment α
 α(l) is the truth value of l in α

symmetry σ
 σ(...) is the symmetrical image of ...
 symmetry group Σ
 Σ(...) is the orbit of ... under Σ
 generator set gen(Σ)
3. "Classic" symmetry breaking
Symmetry breaking formulas:
Crawford [1]
Given: φ, Σ
Find: symmetry breaking formula sbf
that invalidates symmetrical assignments
Symmetry breaking formulas:
Crawford [1]
Core idea: sbf encodes
"α is lexicographically smaller than σ(α)"
for σ ϵ Σ
parameter: total order on X
Symmetry breaking formulas:
Crawford [1]
Sound
Complete
Huge: O(X²Σ)
Core idea: sbf encodes
"α is lexicographically smaller than σ(α)"
for all σ ϵ Σ
Symmetry breaking:
Shatter [2]
 construct sbf for much smaller gen(Σ)
 "chain encoding"
 improved clausal encoding
Sound
Incomplete
Feasible: O(Xgen(Σ))
Detecting symmetry:
Saucy [3]
Sparse graph automorphism detection
 Graph construction from CNF:
 node for each literal and clause
 edge between literals occurring in clause
 edge between literal and negation
 No polynomial algorithm known
 Output: generators to automorphism group
Static symmetry breaking:
Shatter+Saucy
Propositional description
offtheshelf SAT solver
SAT/UNSAT
Graph automorphism detection
Add symmetry breaking formulas
4. The pigeonhole problem
Pigeonhole!
Do n pigeons fit in n1 holes?
 Prooftheoretic problem
 Simple but large symmetry group
 composition of "pigeon interchangeability"
and "hole interchangeability"  1 symmetry class
 composition of "pigeon interchangeability"
Pigeonhole!
Seems ok?
Original Shatter experiment:
Pigeonhole!
Modest gains...
Better results in original paper?
Own Shatter experiment:
Pigeonhole!
 Propositional encoding reduces "pigeon interchangeability"
to "row interchangeability"  Shatter's sbf's are complete [4] with correct choice of
 gen(Σ)

variable order
 full sbf = O(n²)
Pigeonhole!
 Propositional encoding reduces "pigeon interchangeability"
to "row interchangeability"  Shatter's sbf's are complete [4] with correct choice of
 gen(Σ)

variable order
 full sbf = O(n²)
5. "Recent" symmetry breaking
Symmetry breaking:
BreakID [5]
Core idea: detect "row swap" symmetries
 Search σ_{1} , σ_{2} ϵgen(Σ) that form 2 subsequent row swaps
 forms initial 3rowed variable matrix M
 Apply every σ ϵ gen(Σ) to all detected rows r ϵ M so far
 images σ(r) disjoint of M are candidates to extend M
 test if swap r ↔ σ(r) is a symmetry by syntactical check on φ
 if success, extend M with σ(r)
 Use Saucy to extend gen(Σ) with new symmetry generators by fixing all variable nodes with variable in M, first row excepted
*Approximative algorithm
Symmetry breaking:
BreakID [5]
Core idea: detect "row swap" symmetries
Detect row interchangeability subgroups?
Caveat!
 First clause in sbf for σ is binary:
 x is stabilized by Σ iff Σ(x)={x}
 Given Σ with smallest nonstabilized x, for each x' ϵ Σ(x):
is clause of sbf under some σ ϵ Σ
Symmetry breaking:
BreakID [5]
Core idea: maximize number of binary sbf clauses
 Create stabilizer chain of Σ:
 Σ_{i} is the stabilizer subgroup of Σ_{i1 }stabilizing the next nonstabilized variable in ordering
 Σ_{i} have different smallest nonstabilized variables x_{i}
 For each x' ϵ Σ_{i}(x_{i}):
is a clause of some sbf
Symmetry breaking:
BreakID [5]
Core idea: exploit binary sbf clauses
Symmetry breaking:
BreakID [5]
Core idea: exploit binary sbf clauses
 Approximative implementation
 which adapts the variable order!
 which adapts the variable order!
 Works well for polarity symmetry σ where for all x:
as sbf is equivalent to unit clause
and their number is maximized through adopted variable order.
Complete algorithm?
Symmetry breaking:
CDCLSym [6]
Core idea: generate sbf dynamically
 Keep track of reducer symmetries where σ(α)<α
 by watching smallest variable s.t. σ(v)≠v

Generate clause from sbf forcing α≤σ(α)
Additionally: try Bliss instead of Saucy
Use clauses for propagation?
Not only generator symmetries?
Symmetry breaking:
On completeness
 Pigeon interchangeability can be completely broken with polynomial sbf
 How about edge interchangeability?
 E.g., find coloring of complete graph (Ramsey numbers)
 Recent intrest [11] [14]
 How about general interchangeability over arbitrary high dimensional relations?
Tractable sbf for edge interchangeability?
Symmetry breaking:
Prefix breaking [7]
Core idea: enumerate asymmetrical assignments to variable prefix
Highlevel constraints
Incremental / parallel SAT solver
Graph representation
Symmetry class representative enumeration
Variable prefix
Clausal encoding
6. Nonbreaking approaches
Symmetry handling:
SymChaff [8]
Core idea: search decisions consider row interchangeability
 Only for row interchangeability symmetry
 Keep track of rowinterchangeable variables
 interchangeability reduces under previous choices
 Use cardinality decision points over rowinterchangeable variables
Cardinality decision of 1 over first column:
Symmetry handling:
SymChaff [8]
 Only for row interchangeability symmetry
 Keep track of rowinterchangeable variables
 interchangeability reduces under previous choices
 Use cardinality decision points over rowinterchangeable variables
Core idea: search decisions consider row interchangeability
Cardinality decision of 1 over first column:
Symmetry handling:
SymChaff [8]
Strong performance on pigeonhole
Symmetry handling:
Symmetric learning [9]
 Learnt clauses are logical consequences of φ
 Whenever c is a consequence of φ, so is σ(c)
 Problem: Σ(c) is huge
 Learn only σ(c) for σ ϵ gen(Σ)
Core idea: consider symmetrical learned clauses
Symmetry handling:
Symmetric explanation learning [10]
 Learn σ(c) that propagate at least once
 symmetries typically permute only a fraction of the literals
 if c is unit, σ(c) has a good chance of being unit as well
 explanation clauses are unit ;)
Core idea: consider useful symmetrical explanation clauses
 For each σ ϵ gen(Σ), whenever c propagates, store σ(c) in a separate clause store θ
 Propagation on θ happens only if standard unit propagation is at a fixpoint
 Whenever a σ(c) ϵ θ propagates, upgrade it to a "normal" learned clause
 After backjump over c's propagation level, clear σ(c) from θ
 Every learned σ(c) is useful & original
 Transitive effect: track σ'(σ(c)) when σ(c) propagates
Symmetry handling:
Symmetric explanation learning [10]
Core idea: consider useful symmetrical explanation clauses
Symmetry handling:
Symmetric explanation learning [10]
What is "complete" symmetrical learning?
Can it be done efficiently?
Caveat: performance on larger instances
Research trends:
 Symmetry detection on propositional level is hard
 not a solved problem, cfr. pigeonhole
 papers often assume highlevel symmetry input [7] [8]
 Sbf construction based on canonical labeling [7] [11]
 Dynamical approaches often perform lazy clause generation [6] [10] [12]
 Use computational group algebra to detect symmetry group structure [5] [13]
The influence of the variable order on an sbf?
Proof checking and symmetrical learning?
Thanks for listening!
Questions?
[1] SymmetryBreaking Predicates for Search Problems (1996) Crawford et al.
[2] Efficient SymmetryBreaking 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 PrefixAssignment Technique for Symmetry Reduction (2017) Juntilla et al.
[8] Symchaff: exploiting symmetry in a structureaware 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 alldifferent problems (2005) Puget
[14] The quest for perfect and compact symmetry breaking for graph problems (2016) Heule
7. Bonus: symmetry, local search & maxSAT
Bonus: symmetry, local search & maxSAT
 (Satisfying) assignments now have an associated score
 Local search "moves" from one to the other based on structurepreserving transformations
Bonus: symmetry, local search & maxSAT
 (Satisfying) assignments now have an associated score
 Local search "moves" from one to the other based on structurepreserving transformations
 Designing local moves is typically done by hand...
Bonus: symmetry, local search & maxSAT
 (Satisfying) assignments now have an associated score
 Local search "moves" from one to the other based on structurepreserving transformations
 Designing local moves is typically done by hand...
Symmetries form moves!
Can be automatically detected!
Bonus: symmetry, local search & maxSAT
Symmetrybased local search in weighted maxSAT?
Copy of Symmetry in SAT: an overview
By krr
Copy of Symmetry in SAT: an overview
talk for Theory and Practice of Satisfiability Solving
 145