Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
Symmetry in SAT:Symmetry in SAT: an overviewan overview
August 27th, 2018 Theory and Practice of SAT solving
Oaxaca, Mexico
Jo Devriendt, KU Leuven
1
IntroIntro
Everyone knows symmetry:
SYMMETRIC ASYMMETRIC
"something does not change under a set of transformations" - Wikipedia
2
Symmetry :=Permutation of variable assignments that preserves satisfaction
+ +
+++
+
In combinatorial solvingIn combinatorial solving
3
Symmetry :=Permutation of variable assignments that preserves satisfaction
+ +
+++
++ +
+++
+
In combinatorial solvingIn combinatorial solving
3
Symmetry induces symmetry classes:
+ +
+++
+
In combinatorial solvingIn combinatorial solving
4
Symmetry induces symmetry classes:
+ +
+++
+
Symmetry classes tend to get huge -> search problem
"......calculating......"
In combinatorial solvingIn combinatorial solving
4
In combinatorial solvingIn combinatorial solving
Goal: investigate only asymmetrical cases
!!+
+
+
5
ContentsContents
1. Intro2. SAT Prelims3. "Classic" symmetry breaking4. The pigeonhole problem5. "Recent" symmetry breaking6. Non-breaking approaches7. Bonus: symmetry, local search & maxSAT
6
ContentsContents
1. Intro2. SAT Prelims3. "Classic" symmetry breaking4. The pigeonhole problem5. "Recent" symmetry breaking6. Non-breaking approaches7. Bonus: symmetry, local search & maxSAT
"Interesting research question" 6
In SAT:In SAT:
Syntactic symmetry := literal permutation that preserves the CNF
a ∨ ¬b
b ∨ ¬c
c ∨ ¬a
a ↦ b
¬a ↦ ¬b
b ↦ c
¬b ↦ ¬c
c ↦ a
¬c ↦ ¬a
7
In SAT:In SAT:
Syntactic symmetry := literal permutation that preserves the CNF
a ∨ ¬b
b ∨ ¬c
c ∨ ¬a
a ↦ b
¬a ↦ ¬b
b ↦ c
¬b ↦ ¬c
c ↦ a
¬c ↦ ¬a
(a b c)
7
static ↔ dynamic
othe
r ↔
bre
akin
g Shatter BreakID CDCLSym
SymChaff Symmetric learning
?
In SAT literature:In SAT literature:
Adaptive prefix-assignment
8
TerminologyTerminologyvariable x
set of all variables Xliteral lclause 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(Σ)
9
3. "Classic" symmetry breaking3. "Classic" symmetry breaking
10
Symmetry breaking formulas:Symmetry breaking formulas: Crawford [1]Crawford [1]
Given: φ, ΣFind: symmetry breaking formula sbf
that invalidates symmetrical assignments
+ +
+++
+ +
+
+
φ φ ∪ sbf 11
Symmetry breaking formulas:Symmetry breaking formulas: Crawford [1]Crawford [1]
Core idea: sbf encodes "α is lexicographically smaller than σ(α)"
for σ ϵ Σ
12
Symmetry breaking formulas:Symmetry breaking formulas: Crawford [1]Crawford [1]
Core idea: sbf encodes "α is lexicographically smaller than σ(α)"
for σ ϵ Σ
x ≤1 σ(x )1
x =1 σ(x ) ⇒1 x ≤2 σ(x )2
(x =1 σ(x ) ∧1 x =2 σ(x )) ⇒2 x ≤3 σ(x )3
…
12
Symmetry breaking formulas:Symmetry breaking formulas: Crawford [1]Crawford [1]
Core idea: sbf encodes "α is lexicographically smaller than σ(α)"
for σ ϵ Σ
x ≤1 σ(x )1
x =1 σ(x ) ⇒1 x ≤2 σ(x )2
(x =1 σ(x ) ∧1 x =2 σ(x )) ⇒2 x ≤3 σ(x )3
…
parameter: total order on X12
Symmetry breaking formulas:Symmetry breaking formulas: Crawford [1]Crawford [1]
Core idea: sbf encodes "α is lexicographically smaller than σ(α)"
for all σ ϵ Σ
+
+
+
φ ∪ sbf13
Symmetry breaking formulas:Symmetry breaking formulas: Crawford [1]Crawford [1]
SoundCompleteHuge: O(|X|²|Σ|)
Core idea: sbf encodes "α is lexicographically smaller than σ(α)"
for all σ ϵ Σ
+
+
+
φ ∪ sbf13
Symmetry breaking:Symmetry breaking: Shatter [2]Shatter [2]
construct sbf for -much smaller- gen(Σ)"chain encoding"improved clausal encoding
+ +
+++
+
φ ∪ sbf14
Symmetry breaking:Symmetry breaking: Shatter [2]Shatter [2]
construct sbf for -much smaller- gen(Σ)"chain encoding"improved clausal encoding
SoundIncompleteFeasible: O(|X||gen(Σ)|)
+ +
+++
+
φ ∪ sbf14
Detecting symmetry:Detecting symmetry: Saucy [3]Saucy [3]
Sparse graph automorphism detection
15
Detecting symmetry:Detecting symmetry: Saucy [3]Saucy [3]
Sparse graph automorphism detection
Graph construction from CNF:node for each literal and clauseedge between literals occurring in clauseedge between literal and negation
No polynomial algorithm knownOutput: generators to automorphism group
15
Static symmetry breaking:Static symmetry breaking: Shatter+SaucyShatter+Saucy
Propositionaldescription
off-the-shelfSAT solver
SAT/UNSAT
Graphautomorphism
detection¬a ∨ b
Add symmetrybreaking formulas
a ∨ ¬b
b ∨ ¬c
c ∨ ¬a
(a b c)
16
4. The pigeonhole problem4. The pigeonhole problem
17
Pigeonhole!Pigeonhole!Do n pigeons fit in n-1 holes?
∀p : x ⋁h ph
∀h : ∀p = p : ¬x ∨′ph ¬x p h′
x 11x 21x 31x 41
x 12x 22x 32x 42
x 13x 23x 33x 43 18
Pigeonhole!Pigeonhole!Do n pigeons fit in n-1 holes?
Proof-theoretic problemSimple but large symmetry group
composition of "pigeon interchangeability" and "hole interchangeability"1 symmetry class
∀p : x ⋁h ph
∀h : ∀p = p : ¬x ∨′ph ¬x p h′
x 11x 21x 31x 41
x 12x 22x 32x 42
x 13x 23x 33x 43 18
Pigeonhole!Pigeonhole!
Original Shatter experiment:
19
Pigeonhole!Pigeonhole!
Seems ok?
Original Shatter experiment:
19
Pigeonhole!Pigeonhole!
Own Shatter experiment:
20
Pigeonhole!Pigeonhole!
Modest gains... Better results in original paper?
Own Shatter experiment:
20
Pigeonhole!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²)
x 11x 21x 31x 41
x 12x 22x 32x 42
x 13x 23x 33x 43
21
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!Pigeonhole!
x 11x 21x 31x 41
x 12x 22x 32x 42
x 13x 23x 33x 43
22
5. "Recent" symmetry breaking5. "Recent" symmetry breaking
23
Symmetry breaking:Symmetry breaking: BreakID [5]BreakID [5]
Core idea: detect "row swap" symmetries
*Approximative algorithm
24
Symmetry breaking:Symmetry breaking: BreakID [5]BreakID [5]
Core idea: detect "row swap" symmetries
1. Search σ , σ ϵgen(Σ) that form 2 subsequent row swapsforms initial 3-rowed variable matrix M
1 2
*Approximative algorithm
24
Symmetry breaking:Symmetry breaking: BreakID [5]BreakID [5]
Core idea: detect "row swap" symmetries
1. Search σ , σ ϵgen(Σ) that form 2 subsequent row swapsforms initial 3-rowed variable matrix M
2. Apply every σ ϵ gen(Σ) to all detected rows r ϵ M so farimages σ(r) disjoint of M are candidates to extend Mtest if swap r ↔ σ(r) is a symmetry by syntactical check on φif success, extend M with σ(r)
1 2
*Approximative algorithm
24
Symmetry breaking:Symmetry breaking: BreakID [5]BreakID [5]
Core idea: detect "row swap" symmetries
1. Search σ , σ ϵgen(Σ) that form 2 subsequent row swapsforms initial 3-rowed variable matrix M
2. Apply every σ ϵ gen(Σ) to all detected rows r ϵ M so farimages σ(r) disjoint of M are candidates to extend Mtest if swap r ↔ σ(r) is a symmetry by syntactical check on φif success, extend M with σ(r)
3. Use Saucy to extend gen(Σ) with new symmetry generators byfixing all variable nodes with variable in M, first row excepted
1 2
*Approximative algorithm
24
Symmetry breaking:Symmetry breaking: BreakID [5]BreakID [5]
Core idea: detect "row swap" symmetries
Caveat!
25
Detect row interchangeability subgroups?
Symmetry breaking:Symmetry breaking: BreakID [5]BreakID [5]
Core idea: detect "row swap" symmetries
Caveat!
25
Symmetry breaking:Symmetry breaking: BreakID [5]BreakID [5]
Core idea: maximize number of binary sbf clauses
26
First clause in sbf for σ is binary: x is stabilized by Σ iff Σ(x)={x}Given Σ with smallest non-stabilized x, for each x' ϵ Σ(x): is clause of sbf under some σ ϵ Σ
¬x ∨1 σ(x )1
¬x ∨ x′
Symmetry breaking:Symmetry breaking: BreakID [5]BreakID [5]
Core idea: maximize number of binary sbf clauses
26
Symmetry breaking:Symmetry breaking: BreakID [5]BreakID [5]
Core idea: exploit binary sbf clauses
27
Create stabilizer chain of Σ: Σ is the stabilizer subgroup of Σ stabilizing the next non-stabilized variable in ordering
Σ have different smallest non-stabilized variables xFor each x' ϵ Σ (x ): is a clause of some sbf
i i-1
i i
i i
Σ ⊃ Σ ⊃1 Σ ⊃2 … ⊃ 1
¬x ∨i x′
Symmetry breaking:Symmetry breaking: BreakID [5]BreakID [5]
Core idea: exploit binary sbf clauses
27
Symmetry breaking:Symmetry breaking: BreakID [5]BreakID [5]
Core idea: exploit binary sbf clauses
28
Approximative implementationwhich adapts the variable order!
Symmetry breaking:Symmetry breaking: BreakID [5]BreakID [5]
Core idea: exploit binary sbf clauses
28
Approximative implementationwhich 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.
σ(x) = ¬x
Symmetry breaking:Symmetry breaking: BreakID [5]BreakID [5]
Core idea: exploit binary sbf clauses
¬x 1
28
Approximative implementationwhich 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.
σ(x) = ¬x
Symmetry breaking:Symmetry breaking: BreakID [5]BreakID [5]
Core idea: exploit binary sbf clauses
¬x 1
Complete algorithm? 28
Symmetry breaking:Symmetry breaking: CDCLSym [6]CDCLSym [6]
Core idea: generate sbf dynamically
29
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
Symmetry breaking:Symmetry breaking: CDCLSym [6]CDCLSym [6]
Core idea: generate sbf dynamically
29
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
Symmetry breaking:Symmetry breaking: CDCLSym [6]CDCLSym [6]
Core idea: generate sbf dynamically
Use clauses for propagation?Not only generator symmetries? 29
Pigeon interchangeability can be completely broken withpolynomial sbf
Symmetry breaking:Symmetry breaking: On completenessOn completeness
30
Pigeon interchangeability can be completely broken withpolynomial sbfHow about edge interchangeability?
E.g., find coloring of complete graph (Ramsey numbers)Recent intrest [11] [14]
Symmetry breaking:Symmetry breaking: On completenessOn completeness
30
Pigeon interchangeability can be completely broken withpolynomial sbfHow about edge interchangeability?
E.g., find coloring of complete graph (Ramsey numbers)Recent intrest [11] [14]
How about general interchangeability over arbitrary highdimensional relations?
Symmetry breaking:Symmetry breaking: On completenessOn completeness
30
Pigeon interchangeability can be completely broken withpolynomial sbfHow about edge interchangeability?
E.g., find coloring of complete graph (Ramsey numbers)Recent intrest [11] [14]
How about general interchangeability over arbitrary highdimensional relations?
Symmetry breaking:Symmetry breaking: On completenessOn completeness
Tractable sbf for edge interchangeability? 30
Symmetry breaking:Symmetry breaking: Prefix breaking [7]Prefix breaking [7]
Core idea: enumerate asymmetrical assignments to variable prefix
High-levelconstraints
Graph representation
∀x : ∃y :φ(x, y)
+
+
+
Symmetry classrepresentativeenumeration
Variableprefix
31
Symmetry breaking:Symmetry breaking: Prefix breaking [7]Prefix breaking [7]
Core idea: enumerate asymmetrical assignments to variable prefix
High-levelconstraints
Incremental /parallel SAT solver
Graph representation
∀x : ∃y :φ(x, y)
+
+
+
Symmetry classrepresentativeenumeration
Variableprefix
Clausal encoding31
6. Non-breaking approaches6. Non-breaking approaches
32
Symmetry handling:Symmetry handling: SymChaff [8]SymChaff [8]
Core idea: search decisions consider row interchangeability
x 11x 21x 31x 41
x 12x 22x 32x 42
x 13x 23x 33x 43 33
Symmetry handling:Symmetry handling: SymChaff [8]SymChaff [8]
Core idea: search decisions consider row interchangeability
x 11x 21x 31x 41
x 12x 22x 32x 42
x 13x 23x 33x 43 33
Only for row interchangeability symmetryKeep track of row-interchangeable variables
interchangeability reduces under previous choicesUse cardinality decision points over row-interchangeablevariables
Symmetry handling:Symmetry handling: SymChaff [8]SymChaff [8]
Core idea: search decisions consider row interchangeability
x 11x 21x 31x 41
x 12x 22x 32x 42
x 13x 23x 33x 43 33
Only for row interchangeability symmetryKeep track of row-interchangeable variables
interchangeability reduces under previous choicesUse cardinality decision points over row-interchangeablevariables
Cardinality decision of 1over first column:
Only for row interchangeability symmetryKeep track of row-interchangeable variables
interchangeability reduces under previous choicesUse cardinality decision points over row-interchangeablevariables
Symmetry handling:Symmetry handling: SymChaff [8]SymChaff [8]
Core idea: search decisions consider row interchangeability
0001
x 12x 22x 32x 42
x 13x 23x 33x 43 34
Cardinality decision of 1over first column:
Symmetry handling:Symmetry handling: SymChaff [8]SymChaff [8]
Strong performance on pigeonhole
35
Symmetry handling:Symmetry handling: Symmetric learning [9]Symmetric learning [9]
Core idea: consider symmetrical learned clauses
36
Learnt clauses are logical consequences of φWhenever c is a consequence of φ, so is σ(c)Problem: Σ(c) is huge
Learn only σ(c) for σ ϵ gen(Σ)
Symmetry handling:Symmetry handling: Symmetric learning [9]Symmetric learning [9]
Core idea: consider symmetrical learned clauses
36
Learnt clauses are logical consequences of φWhenever c is a consequence of φ, so is σ(c)Problem: Σ(c) is huge
Learn only σ(c) for σ ϵ gen(Σ)
Symmetry handling:Symmetry handling: Symmetric learning [9]Symmetric learning [9]
Core idea: consider symmetrical learned clauses
36
Symmetry handling:Symmetry handling: Symmetric explanation learning [10]Symmetric explanation learning [10]
Core idea: consider useful symmetrical explanation clauses
37
Learn σ(c) that propagate at least oncesymmetries typically permute only a fraction of the literalsif c is unit, σ(c) has a good chance of being unit as wellexplanation clauses are unit ;-)
Symmetry handling:Symmetry handling: Symmetric explanation learning [10]Symmetric explanation learning [10]
Core idea: consider useful symmetrical explanation clauses
37
Symmetry handling:Symmetry handling: Symmetric explanation learning [10]Symmetric explanation learning [10]
Core idea: consider useful symmetrical explanation clauses
38
For each σ ϵ gen(Σ), whenever c propagates, store σ(c) in aseparate clause store θ
Propagation on θ happens only if standard unit propagation isat a fixpointWhenever a σ(c) ϵ θ propagates, upgrade it to a "normal"learned clauseAfter backjump over c's propagation level, clear σ(c) from θ
Symmetry handling:Symmetry handling: Symmetric explanation learning [10]Symmetric explanation learning [10]
Core idea: consider useful symmetrical explanation clauses
38
For each σ ϵ gen(Σ), whenever c propagates, store σ(c) in aseparate clause store θ
Propagation on θ happens only if standard unit propagation isat a fixpointWhenever a σ(c) ϵ θ propagates, upgrade it to a "normal"learned clauseAfter backjump over c's propagation level, clear σ(c) from θ
Every learned σ(c) is useful & originalTransitive effect: track σ'(σ(c)) when σ(c) propagates
Symmetry handling:Symmetry handling: Symmetric explanation learning [10]Symmetric explanation learning [10]
Core idea: consider useful symmetrical explanation clauses
38
Symmetry handling:Symmetry handling: Symmetric explanation learning [10]Symmetric explanation learning [10]
39
Symmetry handling:Symmetry handling: Symmetric explanation learning [10]Symmetric explanation learning [10]
Caveat: performance on larger instances
39
Symmetry handling:Symmetry handling: Symmetric explanation learning [10]Symmetric explanation learning [10]
What is "complete" symmetrical learning?Can it be done efficiently?
Caveat: performance on larger instances
39
Research trends:Research trends:
Symmetry detection on propositional level is hardnot a solved problem, cfr. pigeonholepapers often assume high-level 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 groupstructure [5] [13]
Proof checking and symmetrical learning?The influence of the variable order on an sbf? 40
Thanks for listening!Thanks for listening! Questions?Questions?
[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) 41
7. Bonus: symmetry, local search7. Bonus: symmetry, local search& maxSAT& maxSAT
42
Bonus: symmetry, local search &Bonus: symmetry, local search &maxSATmaxSAT
1 2
521
3
(Satisfying) assignments now have an associated score
43
Bonus: symmetry, local search &Bonus: symmetry, local search &maxSATmaxSAT
1 2
521
31 2
521
3
(Satisfying) assignments now have an associated scoreLocal search "moves" from one to the other based on structure-preserving transformations
43
Bonus: symmetry, local search &Bonus: symmetry, local search &maxSATmaxSAT
(Satisfying) assignments now have an associated scoreLocal search "moves" from one to the other based on structure-preserving transformationsDesigning local moves is typically done by hand...
44
Bonus: symmetry, local search &Bonus: symmetry, local search &maxSATmaxSAT
(Satisfying) assignments now have an associated scoreLocal search "moves" from one to the other based on structure-preserving transformationsDesigning local moves is typically done by hand...
Symmetries form moves! Can be automatically detected!
45
Bonus: symmetry, local search &Bonus: symmetry, local search &maxSATmaxSAT
46
Bonus: symmetry, local search &Bonus: symmetry, local search &maxSATmaxSAT
Symmetry-based local search in weighted maxSAT? 46