400 likes | 701 Views
Saucy3: Fast Symmetry Discovery in Graphs. Hadi Katebi Karem A. Sakallah Igor L. Markov The University of Michigan. Outline. Graph symmetry Implicit representation of permutation sets: Ordered Partition Pairs (OPPs) Basic permutation search tree Pruning via partition refinement:
E N D
Saucy3: Fast Symmetry Discovery in Graphs Hadi Katebi Karem A. Sakallah Igor L. Markov The University of Michigan
Outline • Graph symmetry • Implicit representation of permutation sets: Ordered Partition Pairs (OPPs) • Basic permutation search tree • Pruning via partition refinement: • Non-isomorphic OPP pruning • Matching OPP pruning • Group-theoretic pruning: • Coset pruning • Orbit pruning • Algorithm trace • Experimental results • Conclusions
4 1 2 4 4 2 2 1 2 3 2 3 3 3 3 7 7 7 7 5 5 6 6 5 5 5 6 6 6 4 4 2 3 4 3 2 4 1 4 1 1 1 1 1 8 8 8 8 2 3 7 6 5 4 1 8 Graph Symmetry (1 2 3 4)(5 6) (1 4)(2 3) is not a symmetry! is a symmetry! The set of edges is unchanged. The set of edges is different.
Problem Statement • Given a graph G • with n vertices • and a partition p of its vertices (colors), • with unknown set of symmetries Sym(G)p, • Find a set of symmetries S Sym(G)p • such that S generates Sym(G)p • and |S| ≤n - 1
Graph 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 • > 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 • Traces (Piperno, ’08) Primarily canonical labeling tools; symmetries produced as a byproduct
Permutations • Permutation: bijection from V to V • Tabular representation • Cycle notation • Graph Symmetry: permutation that preserves edge relation • Permutation Composition: • Symmetric group on m-element set T: Sm(T ) • |Sm(T )| = m !
Ordered Partitions • Unit OP: m = 1 • Discrete OP: m = n
Ordered Partition Pair (OPP) • Isomorphic OPP: m = k and • Non-isomorphic OPP: m ≠ k or • Matching OPP: isomorphic and • Unit OPP: top and bottom ordered partitions are unit • Discrete OPP: top and bottom ordered partitions are discrete
Implicit Representation of Permutations Sets using OPPs Discrete OPP(single permutation)
Implicit Representation of Permutations Sets using OPPs Unit OPP(m ! permutations)
Implicit Representation of Permutations Sets using OPPs Isomorphic OPP
Implicit Representation of Permutations Sets using OPPs Matching OPP
Implicit Representation of Permutations Sets using OPPs Non-isomorphic OPP
1 2 8 6 7 7 8 7 7 6 6 8 7 8 6 6 7 5 6 67 68 66 3 4 6 7 8 8 8 7 8 6 88 77 78 76 86 77 Basic Search for Symmetries ü ü X X X X
(3) (2,1) (3) (3) (3) 1 2 7 (2,1) (2,1) (2,1) 5 6 (7) (3) (3) 3 4 8 (3) (2,1) (2,1) (2,1) Vertex Partition Refinement • Try to distinguish vertices that are not symmetric 5 • For each vertex v, compute a neighbor-count tuple • Partition the vertices based on these tuples • Repeat until the partition stabilizes R
7 7 8 6 6 6 8 8 7 78 77 Search-Tree Pruning via Vertex Refinement R ü ü
Isomorphic Refinement 1 1 2 2 7 7 5 5 6 6 3 3 4 4 8 8 12 2 1 1 2 4 3 3 4 Top Bottom ü R
Non-Isomorphic Refinement 1 1 2 2 7 7 5 5 6 6 3 3 4 4 8 8 16 7 1 2 6 8 3 4 Top Bottom û R
5 Group Generators 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 vertices: 8! = 40320 permutations • 48 symmetries8 for square and 6 for triangle • Basic enumeration is inefficient • Fundamental concept: symmetry group can be represented implicitly by an exponentially smaller set of generators
1 2 7 5 6 3 4 8 Group Generators Generators: g1 = (1 2)(3 4) g2 = (2 3) g3 = (6 7) g4 = (6 8) = g2g1g3g4g3 (1 3 4 2)(7 8) is a symmetry • g4g3 = (6 8) ◦ (6 7) = (6 7 8) g3g4g3 = (6 7) ◦ (6 7 8) = (7 8) g1g3g4g3 = (1 2)(3 4) ◦ (7 8) = (1 2)(3 4)(7 8) g2g1g3g4g3 = (2 3) ◦ (1 2)(3 4)(7 8) = (1 3 4 2)(7 8)
Orbit Partition • 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 5 6 3 4 8 • Symmetry group induces an equivalence relation on vertices: the orbit partition • Refinement provides an approximation of the orbit partition • Orbit partition: • Built up incrementally from discovered symmetries • Used to prune search for redundant symmetries
Cosets • A subgroup H of a group G partitions it into cosets • Each coset has the same number of elements as H • G can be generated by composing a single representative from each coset with H • Used to prune search for redundant symmetries
Algorithm Outline • Phase 1: Recursive subgroup decomposition • Phase 2: Search for coset representatives … surprisingly like SAT solving! • Four pruning mechanisms: • Group-theoretic • Coset pruning: stop after coset representative is found • Orbit pruning: avoid looking for coset representative • Algorithmic (due to OPP data structure): • Matching OPP pruning: identify candidate permutation before reaching leaves • Non-isomorphic OPP pruning: detect absence of coset representative in current subtree
1 11 2 7 16 12 13 14 17 18 5 6 3 4 8 21 24 22 23 (2 3) = 68 66 67 (1 2)(3 4) = 77 78 76 78 Saucy 2.1 Search Tree R R R // // x ≈ Orbit Partition // {1,2,3,4}{6,7,8} {2,3}{6,7,8} id (7 8) ≈ Coset pruning // Orbit Pruning = Matching OPP x Non-isomorphic OPP (6 7) ≈ {6,7,8} {7,8}
Experimental Evaluation • 1183 SAT 2009 competition benchmarks • Application • Crafted • Random • Saucy on all 1183 • Shatter on 47 most difficult benchmarks • Experiments on SUN workstation • 3GHz Intel Dual-Core CPU • 6MB cache • 8GB RAM • 64-bit Redhat Linux
Saucy Time vs. Graph Vertices • Time out = 500 sec. • Sacuy finished on all but 18 • connum: 6 (solved by varying branching heuristics) • equilarge: 3 • mod2-rand3bip: 9 • Crafted category is the most challenging • Weak trend towards larger run times for larger graphs • Saucy is really fast (runtime < 1 sec.) on 93% (1101) of all benchmarks
Saucy Group Order vs. Testcase • 323 benchmarks exhibited non-trivial symmetries • Random category: • 606 had no symmetry • 4 had one symmetry • Crafted category: • 175 out of 263 (66%) had symmetry • 18 timed out • Application category: • 144 out of 292 (50%) had symmetry
Saucy Group Order vs. #generators • Guarantee to produce no more than n - 1 generators for n-vertex graph • The number of reported generators is significantly less than n - 1
Shatter Variables and Clauses • Shatter on 47 benchmarks • Unsolved benchmarks or benchmarks with run time > 1000 sec. • Application: 13 • Crafted: 34 • # added SBP clauses • Less than 4% for 29 benchmarks • Ranged from 25% to 133% for 18 benchmarks • # added SBP variables • Less than 1% for 23 benchmarks • Ranged from 9% to an order of magnitude for 24 benchmarks
Shatter (Symmetry-Breaking) Flow • Use shatter to generate SBPs • Add SBPs to the original CNF formula • Pass the augmented CNF formula to the SAT solver • Statistical data: • We used a re-ordering script to • Reorder variables • Reorder clauses • 20 re-ordered versions of each benchmark • 10 for the original benchmarks • 10 for the SBP augmented benchmarks • Time-outs • Crafted: 5000 sec. • Application: 10000 sec.
SAT Solver Run Time • 13 out of 47 benchmarked finished within time-outs
SAT Solver Run Time • SBP augmented versions led to fewer time-outs • All but 3 benchmarks were solved faster • Four benchmarks which were reported to be unsolvable in SAT 2009 competition were solved with the addition of SBPs
Conclusions and Future Work • For SAT: symmetry discovery is practically free • Static symmetry breaking • Many CNF instances possess no or little symmetry • CNF instances with a lot of symmetry may or may not benefit from static symmetry breaking • Future work: • SAT-inspired algorithmic enhancements: • Branching heuristics • Learning • Dynamic symmetry breaking: • Integrating symmetry breaking within the SAT solver • Uncovering hidden/conditional symmetries