Title: Faster Symmetry Discovery using Sparsity of Symmetries
1Faster Symmetry Discovery using Sparsity of
Symmetries
- Paul T. Darga
- Karem A. Sakallah
- Igor L. Markov
- The University of Michigan
2Outline
- Introduction of the symmetry discovery problem
- Algorithm overview
- Saucy 2.0
- Experimental results
- Conclusion
3Sparsity and Symmetry
- Human-designed artifacts possessconsiderable
structure - Not totally random
- Sparsity
- Components connect at well-defined interfaces
- Many global components mostly local connections
- Symmetry
- Several similar components
- Rearrangement preserves structure
4Symmetry Buzz
- Boolean satisfiability
- Many problems can be framed as SAT queries
- Shatter (Aloul et al, DAC 03) maps
CNFsymmetries to symmetry-breaking predicates - Prune away large portions of the search space
- Generalized constraint systems (CSPs)
- Model checking
- Reduce size of state space that must be explored
(Miller et al, 06) - Logic synthesis
- Technology mapping (Chai Kuehlmann, 06)
- Post-placement wiring (Chang et al, 07)
5Graph Symmetry
(1,4)(2,3)
(1,2,3,4)(5,6)
is a symmetry!
is not a symmetry!
The set of edges is unchanged.
The set of edges is different.
6Graph Symmetry
identity (1,2,4,3) (1,4)(2,3) (1,3,4,2) (1,2)(3,4)
(1,3)(2,4) (1,4) (2,3)
identity (6,7,8) (6,8,7) (6,7) (6,8) (7,8)
1
2
7
6
3
4
8
- 8 vertices8! 40320 permutations
- 48 symmetries(8 for square, 6 for triangle)
- Can represent implicitlyas an exponentially
smallerset of generators
y1 (1,2)(3,4) y2 (2,3) y3 (6,7) y4 (6,8)
(1,3,4,2)(7,8) y2y1y3y4y3
7Problem Statement
- Given a graph G
- with n vertices
- and a partition P of its vertices,
- with unknown symmetry set Sym(G)P,
- find a set of symmetries S ? Sym(G)P
- such that S generates Sym(G)P
- and S n.
8Graph Symmetry Tools
- Nauty (McKay, 81)
- Blazed the trail
- Tuned to quickly find the symmetries oflarge
sets of small graphs - Saucy (Darga et al, DAC 04)
- Graph symmetry can be fast for large yetsparse
graphs - gt 1000x speedup over nauty for graphs with tens
of thousands of vertices - Bliss (Junttila Kaski, 07)
- Efficient canonical labeling of sparse graphs
- Some improvements on Saucy
9Introducing Saucy 2.0
- Original saucy exploit graph sparsity
- Saucy 2.0 exploit symmetry sparsity as well
- Most generators permute a small number of
vertices - Dramatic speed-up over original saucy(gt 1000x on
million vertex graphs) - Now, when it comes to SAT
- No matter how large the formula
- Might as well try breaking its symmetries
- Since finding them is almost free
10Algorithm Overview
- Vertex partition refinement
- Recursive decomposition
- Search
- surprisingly like SAT solving!
11Vertex Partition Refinement
- Try to distinguish vertices that are not symmetric
3
- For each vertex v, compute a neighbor count tuple
- Partition the vertices based on these tuples
- Repeat until the partition stabilizes
12From Partitions to Symmetries
- Different cells definitely not symmetric
- Same cell maybe symmetric, maybe not
5
3 ? 1
3 ? 3
3 ? 5
3 ? 7
3 ? 1
3 ? 2
3 ? 3
3 ? 4
3 ? 5
1 ? 1
1 ? 2
1 ? 3
1 ? 4
1 ? 5
3 ? 2
3 ? 4
3 ? 6
3 ? 8
13Recursive Decomposition
- Consider all mappings of a vertex in a
non-singleton cell - Recursively find set of symmetries with vertex
identity mapped
5
3
- Base case discrete partition identity
- Information learned while solving the recursive
subproblem assists in solving the other
subproblems (orbit pruning)
14Search The Problem
- Given a vertex partition and a possible mapping
5
3 ? 1
- Find one symmetry that
- has the given mapping
- respects the partition
15Search Partial Permutations
Decisions 1 ? 2
1
2
1
4
3
- Analogy to SAT
- partial assignment
- constraint propagation
- decision engine
- backtracking
1
2
2
(1,2,4,3)is a symmetry!
3
4
16Saucy 2.0
- Symmetries can be sparse too!
- Termination condition applies long before the
partitions are discrete - Tuned the algorithm to race toward the search
termination condition - Maintain additional state to speed up some tasks
- Checking the termination condition
- Checking that a permutation is a symmetry
- Backtracking
- Several other improvements see the paper
17Results Discovery Time (s)
Vertices Generators Old Saucy Saucy 2.0
5pipe 38746 239 0.83 0.08
6pipe 65839 346 2.22 0.15
7pipe 100668 473 4.80 0.29
LA 436535 12852 528.39 0.21
IL 819138 14999 958.80 0.43
CA 1679418 44439 gt 30 min 0.84
adaptec1 393964 15683 966.48 0.35
adaptec2 471054 21788 gt 30 min 0.47
adaptec3 800506 36289 gt 30 min 0.93
adaptec4 878800 53857 gt 30 min 0.99
18Results Refinements
Vertices Generators Old Saucy Saucy 2.0
5pipe 38746 239 108345 953
6pipe 65839 346 229503 1381
7pipe 100668 473 431985 1889
LA 436535 12852 85419592 27211
IL 819138 14999 114958085 31347
CA 1679418 44439 n/a 93133
adaptec1 393964 15683 123724315 42879
adaptec2 471054 21788 n/a 59459
adaptec3 800506 36289 n/a 95653
adaptec4 878800 53857 n/a 138797
19Conclusions and Future Work
- Saucy 2.0 exploits sparsity in symmetry to speed
up symmetry discovery - Running time grows proportionally to thenumber
of generators - For SAT symmetry discovery is practically free
now - Future work
- Further explore the analogies with SAT solving to
improve the search phase of the algorithm - Apply similar techniques to canonical labeling
20Thank You!
21From Partitions to Symmetries
- Different cells definitely not symmetric
- Same cell maybe symmetric, maybe not
5
3 ? 1
3 ? 3
3 ? 5
3 ? 7
1 ? 1
1 ? 2
1 ? 3
1 ? 4
1 ? 5
3 ? 2
3 ? 4
3 ? 6
3 ? 8
22Refinement
- Orbit partitions, dont have to call it that
- Decomposition into subproblems
- Search
- partial permutations from partitions
- analogy to SAT solving
- Numbers
- Conclusion
23Vertex Partitions and Refinement
- Initial partition
- 1,2,3,4,5,6,7,8
- Orbit partition
- 1,2,3,4,5,6,7,8
- After degree refinement
- 1,2,3,4,6,7,8,5
1
2
7
6
5
3
4
8
- Vertices in different cells
- have a different number of connections to some
cell - are definitely not symmetric
- Vertices in the same cell
- have the same number of connections to every cell
- are possibly symmetric
- Refinement provides an approximation of the orbit
partition
24Recursive Decomposition
- Singleton no other mapping
- Pick any nonsingleton cell T
- If the partition is discrete, only the identity
permutation is a symmetry
1 2 3 4 5 6 7 8
1 2 3 4 6 7 8 5
1 2 3 4 6 7 8 5
1 2 3 4 6 7 8 5
1 2 3 4 6 7 8 5
1 2 3 4 6 7 8 5
1 2 3 4 6 7 8 5