Exploiting Symmetry
in Model Expansion
for Predicate and Propositional Logic

Jo Devriendt

Supervisor: Marc Denecker

January 5th 2017

  • Motivation
     
  • Chapter 3
     
  • Chapter 4
     
  • Chapter 5
     
  • Chapter 6
\neg p \vee q
P(x) \vee Q(x)
l \rightarrow \sigma(l)

Structure of talk

Motivation

Automatization of solving combinatorial problems

Combinatorial problems

Pick a satisfying solution from a set of candidate solutions






Automated systems
 

In:
- description of candidate solutions (simple)
- description of satisfying solutions (complex)

Out:
- satisfying solution

Combinatorial problems




Abstraction in thesis:
model expansion problem
in predicate and propositional logic
 

In:
- vocabulary + domain

- theory + input structure
 

Out:
- model to theory

Pick a satisfying solution from a set of candidate solutions

Symmetry

Permutation on the set of candidate solutions
preserving satisfaction

Symmetry

Partitions candidate solutions into symmetry classes

Potential exponential blow-up of search space.

This blow-up is a fundamental problem of current combinatorial search technology and must be addressed.

Symmetry "handling"

  • Detect non-trivial symmetry group
  • Guide combinatorial search algorithm to visit each symmetry class instead of each candidate solution.

Chapter 3

Symmetry in Propositional Logic

\neg p \vee q

Existing work (Shatter, Sbass)

  1. Convert propositional theory to graph
  2. Detect generators for graph automorphism group
  3. Convert automorphism generators to symmetry generators
  4. Add symmetry breaking formula to theory for each generator
  5. Solve extended problem
\neg p \vee q

Our work (BreakID)

  1. Convert propositional theory to graph - improved graph encoding for ground ASP theory
  2. Detect generators for graph automorphism group
  3. Convert automorphism generators to symmetry generators
  4. Infer properties of symmetry group
    • row interchangeability
    • stabilizer chain
  5. Add symmetry breaking formula to theory for each generator, as well as for row interchangeability
  6. Add binary symmetry breaking clauses based on stabilizer chain
  7. Solve extended problem
\neg p \vee q

Experimental evaluation

\neg p \vee q

Performs well on Pigeonhole :)

Chapter 4

Symmetry in Predicate Logic

P(x) \vee Q(x)

Existing work

P(x) \vee Q(x)
  1. Derive symmetry due to undifferentiated domain elements
  2. Construct propositional symmetry breaking formulas

(Kodkod, Paradox)

  1. Ground to propositional theory
  2. Use propositional symmetry detection (automorphism graph)
  3. Construct propositional symmetry breaking formulas

 

(Sbass)

Our work

  1. local domain symmetry and local domain interchangeability
  2. Automorphism graph encoding of predicate level theory + structure
  3. Efficient local domain interchangeability detection method
    • Often makes graph encoding redundant
  4. Completeness result for local domain interchangeability
  5. Implementation in IDP

 

P(x) \vee Q(x)

Experimental evaluation

P(x) \vee Q(x)

Chapter 5

Automated Local Search via Symmetry

Combinatorial Optimization

Satisfying solutions have an associated objective function.

Local Search

Move locally through solution space optimizing the objective function.

Automating Local Search?

Existing work

  • State-of-the-art: handcrafted algorithms
  • WalkSat: flips a Boolean variable at each iteration
  • LocalSolver: constructs ejection chains of Boolean variables that tend to preserve feasibility

Our work

  • Use (quasi)symmetry properties of combinatorial optimization problem to construct neighborhoods
  • Combine with complete search

Experimental evaluation

Chapter 6

Symmetry Propagation

l \rightarrow \sigma(l)

Conflict Learning Conflict Driven SAT solving

 

  • Search algorithm with decisions, propagations, conflicts and backjumps
  • Proof builder based on conflicts: learns new clauses that are resolvents of propagating clauses
l \rightarrow \sigma(l)

Dynamic Symmetry Handling in SAT

 

Existing work

Symmetrical Learning Scheme: learn symmetrical variants of learned clause

l \rightarrow \sigma(l)

Good idea, but what symmetrical variants to learn?

Idea 1: Symmetry Propagation

 

Our work

  • Weak activity for symmetries
  • Allow symmetrical propagations
  • With symmetrical reason clauses
l \rightarrow \sigma(l)

Weakly inactive symmetries also lead to useful symmetrical propagations!

Idea 2: Symmetric Explanation Learning

 

Our work

  • For each propagating clause   , keep track of symmetrical        
     
  • If           is unit or conflicting, learn
l \rightarrow \sigma(l)

Simple and elegant.

c
\sigma(c)
\sigma(c)
\sigma(c)

Experimental evaluation

l \rightarrow \sigma(l)

Summary

Thanks for your attention!

\neg p \vee q
P(x) \vee Q(x)
l \rightarrow \sigma(l)

New symmetry breaking preprocessor for SAT and ground ASP
 

Useful predicate level notion of symmetry
 

Automated local search through symmetry
 

Efficient variant of symmetric learning