Symmetry in SAT: an Overview
Total Page:16
File Type:pdf, Size:1020Kb
Symmetry in SAT: an overview August 27th, 2018 Theory and Practice of SAT solving Oaxaca, Mexico Jo Devriendt, KU Leuven 1 Intro Everyone knows symmetry: SYMMETRIC ASYMMETRIC "something does not change under a set of transformations" - Wikipedia 2 In combinatorial solving Symmetry := Permutation of variable assignments that preserves satisfaction + + + + + + 3 In combinatorial solving Symmetry := Permutation of variable assignments that preserves satisfaction + + + + + + 3 In combinatorial solving Symmetry induces symmetry classes: + + + + + + 4 In combinatorial solving Symmetry induces symmetry classes: + "......calculating......" + + + + + Symmetry classes tend to get huge -> search problem 4 In combinatorial solving Goal: investigate only asymmetrical cases + + !! + 5 Contents 1. Intro 2. SAT Prelims 3. "Classic" symmetry breaking 4. The pigeonhole problem 5. "Recent" symmetry breaking 6. Non-breaking approaches 7. Bonus: symmetry, local search & maxSAT 6 Contents 1. Intro 2. SAT Prelims 3. "Classic" symmetry breaking 4. The pigeonhole problem 5. "Recent" symmetry breaking 6. Non-breaking approaches 7. Bonus: symmetry, local search & maxSAT "Interesting research question" 6 In SAT: Syntactic symmetry := literal permutation that preserves the CNF a ↦ b ¬a ↦ ¬b a ∨ ¬b b ↦ c b ∨ ¬c ¬b ↦ ¬c c ∨ ¬a c ↦ a ¬c ↦ ¬a 7 In SAT: Syntactic symmetry := literal permutation that preserves the CNF a ↦ b ¬a ↦ ¬b a ∨ ¬b b ↦ c b ∨ ¬c (a b c) ¬b ↦ ¬c c ∨ ¬a c ↦ a ¬c ↦ ¬a 7 In SAT literature: Shatter BreakID CDCLSym eaking Adaptive prefix-assignment br ↔ ? SymChaff other Symmetric learning static ↔ dynamic 8 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(Σ) 9 3. "Classic" symmetry breaking 10 Symmetry breaking formulas: Crawford [1] Given: φ, Σ Find: symmetry breaking formula sbf that invalidates symmetrical assignments + + + + + + + + + φ φ ∪ sbf 11 Symmetry breaking formulas: Crawford [1] Core idea: sbf encodes "α is lexicographically smaller than σ(α)" for σ ϵ Σ 12 Symmetry breaking formulas: Crawford [1] Core idea: sbf encodes "α is lexicographically smaller than σ(α)" for σ ϵ Σ x1 ≤ σ(x1) x1 = σ(x1) ⇒ x2 ≤ σ(x2) (x1 = σ(x1) ∧ x2 = σ(x2) ) ⇒ x3 ≤ σ(x3) … 12 Symmetry breaking formulas: Crawford [1] Core idea: sbf encodes "α is lexicographically smaller than σ(α)" for σ ϵ Σ x1 ≤ σ(x1) x1 = σ(x1) ⇒ x2 ≤ σ(x2) (x1 = σ(x1) ∧ x2 = σ(x2) ) ⇒ x3 ≤ σ(x3) … parameter: total order on X 12 Symmetry breaking formulas: Crawford [1] Core idea: sbf encodes "α is lexicographically smaller than σ(α)" for all σ ϵ Σ + + + φ ∪ sbf 13 Symmetry breaking formulas: Crawford [1] Core idea: sbf encodes "α is lexicographically smaller than σ(α)" for all σ ϵ Σ + Sound + Complete + Huge: O(|X|²|Σ|) φ ∪ sbf 13 Symmetry breaking: Shatter [2] construct sbf for -much smaller- gen(Σ) "chain encoding" improved clausal encoding + + + + + + φ ∪ sbf 14 Symmetry breaking: Shatter [2] construct sbf for -much smaller- gen(Σ) "chain encoding" improved clausal encoding Sound + + Incomplete + + Feasible: O(|X||gen(Σ)|) + + φ ∪ sbf 14 Detecting symmetry: Saucy [3] Sparse graph automorphism detection 15 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 15 Static symmetry breaking: Shatter+Saucy Graph Propositional automorphism Add symmetry description detection breaking formulas (a b c) ¬a ∨ b a ∨ ¬b b ∨ ¬c c ∨ ¬a SAT/UNSAT off-the-shelf SAT solver 16 4. The pigeonhole problem 17 Pigeonhole! Do n pigeons fit in n-1 holes? ∀p: ⋁h xph ′ ∀h: ∀p ≠ p : ¬xph ∨ ¬xp′h x11 x12 x13 x21 x22 x23 x31 x32 x33 x41 x42 x43 18 Pigeonhole! Do n pigeons fit in n-1 holes? ∀p: ⋁h xph ′ ∀h: ∀p ≠ p : ¬xph ∨ ¬xp′h Proof-theoretic problem Simple but large symmetry group composition of "pigeon interchangeability" and "hole interchangeability" 1 symmetry class x11 x12 x13 x21 x22 x23 x31 x32 x33 x41 x42 x43 18 Pigeonhole! Original Shatter experiment: 19 Pigeonhole! Original Shatter experiment: Seems ok? 19 Pigeonhole! Own Shatter experiment: 20 Pigeonhole! Own Shatter experiment: Modest gains... Better results in original paper? 20 Pigeonhole! Propositional encoding reduces "pigeon interchangeability" to "row interchangeability" Shatter's sbf's are complete [4] with correct choice of gen(Σ) variable order x11 x12 x13 x21 x22 x23 x31 x32 x33 x41 x42 x43 |full sbf| = O(n²) 21 Pigeonhole! Propositional encoding reduces "pigeon interchangeability" to "row interchangeability" Shatter's sbf's are complete [4] with correct choice of gen(Σ) variable order x11 x12 x13 x21 x22 x23 x31 x32 x33 x41 x42 x43 |full sbf| = O(n²) 22 5. "Recent" symmetry breaking 23 Symmetry breaking: BreakID [5] Core idea: detect "row swap" symmetries *Approximative algorithm 24 Symmetry breaking: BreakID [5] Core idea: detect "row swap" symmetries *Approximative algorithm 1. Search σ1 , σ2 ϵgen(Σ) that form 2 subsequent row swaps forms initial 3-rowed variable matrix M 24 Symmetry breaking: BreakID [5] Core idea: detect "row swap" symmetries *Approximative algorithm 1. Search σ1 , σ2 ϵgen(Σ) that form 2 subsequent row swaps forms initial 3-rowed variable matrix M 2. 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) 24 Symmetry breaking: BreakID [5] Core idea: detect "row swap" symmetries *Approximative algorithm 1. Search σ1 , σ2 ϵgen(Σ) that form 2 subsequent row swaps forms initial 3-rowed variable matrix M 2. 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) 3. Use Saucy to extend gen(Σ) with new symmetry generators by fixing all variable nodes with variable in M, first row excepted 24 Symmetry breaking: BreakID [5] Core idea: detect "row swap" symmetries Caveat! 25 Symmetry breaking: BreakID [5] Core idea: detect "row swap" symmetries Caveat! Detect row interchangeability subgroups? 25 Symmetry breaking: BreakID [5] Core idea: maximize number of binary sbf clauses 26 Symmetry breaking: BreakID [5] Core idea: maximize number of binary sbf clauses First clause in sbf for σ is binary: ¬x1 ∨ σ(x1) x is stabilized by Σ iff Σ(x)={x} Given Σ with smallest non-stabilized x, for each x' ϵ Σ(x): ¬x ∨ x′ is clause of sbf under some σ ϵ Σ 26 Symmetry breaking: BreakID [5] Core idea: exploit binary sbf clauses 27 Symmetry breaking: BreakID [5] Core idea: exploit binary sbf clauses Create stabilizer chain of Σ: Σ ⊃ Σ ⊃ Σ ⊃ … ⊃ 1 1 2 Σi is the stabilizer subgroup of Σi-1 stabilizing the next non- stabilized variable in ordering Σi have different smallest non-stabilized variables xi For each x' ϵ Σi(xi): ′ x x ¬ i ∨ is a clause of some sbf 27 Symmetry breaking: BreakID [5] Core idea: exploit binary sbf clauses 28 Symmetry breaking: BreakID [5] Core idea: exploit binary sbf clauses Approximative implementation which adapts the variable order! 28 Symmetry breaking: BreakID [5] Core idea: exploit binary sbf clauses Approximative implementation which adapts the variable order! Works well for polarity symmetry σ where for all x: σ(x) = ¬x as sbf is equivalent to unit clause ¬x1 and their number is maximized through adopted variable order. 28 Symmetry breaking: BreakID [5] Core idea: exploit binary sbf clauses Approximative implementation which adapts the variable order! Works well for polarity symmetry σ where for all x: σ(x) = ¬x as sbf is equivalent to unit clause ¬x1 and their number is maximized through adopted variable order. Complete algorithm? 28 Symmetry breaking: CDCLSym [6] Core idea: generate sbf dynamically 29 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 29 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? 29 Symmetry breaking: On completeness Pigeon interchangeability can be completely broken with polynomial sbf 30 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] 30 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? 30 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? 30 Symmetry breaking: Prefix breaking [7] Core idea: enumerate asymmetrical assignments to variable prefix High-level Graph Symmetry class constraints representation representative enumeration + + ∀x: ∃y : Variable + φ(x, y) prefix 31 Symmetry breaking: Prefix breaking [7] Core idea: enumerate asymmetrical assignments to variable prefix High-level Graph Symmetry class constraints representation representative enumeration + + ∀x: ∃y : Variable + φ(x, y) prefix Clausal encoding Incremental / parallel SAT solver 31 6.