Symmetry in SAT: an Overview

Symmetry in SAT: an Overview

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.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    84 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us