symmetry detection and exploitation in constraint
play

Symmetry Detection and Exploitation in Constraint Programming Chris - PowerPoint PPT Presentation

Introduction Automatic Symmetry Detection Symmetry Exploitation Conclusion Symmetry Detection and Exploitation in Constraint Programming Chris Mears June, 2008 Chris Mears Symmetry Detection and Exploitation in Constraint Programming


  1. Introduction Automatic Symmetry Detection Symmetry Exploitation Conclusion Symmetry Detection and Exploitation in Constraint Programming Chris Mears June, 2008 Chris Mears Symmetry Detection and Exploitation in Constraint Programming

  2. Introduction Automatic Symmetry Detection Constraint Programming Symmetry Exploitation Symmetries Conclusion Constraint Programming What is constraint programming? Chris Mears Symmetry Detection and Exploitation in Constraint Programming

  3. Introduction Automatic Symmetry Detection Constraint Programming Symmetry Exploitation Symmetries Conclusion Constraint Programming What is constraint programming? Programming with constraints! Chris Mears Symmetry Detection and Exploitation in Constraint Programming

  4. Introduction Automatic Symmetry Detection Constraint Programming Symmetry Exploitation Symmetries Conclusion Constraint Programming For solving combinatorial problems. Problems are specified with constraints . E.g., only one class per room. For both: satisfaction (can it be done?), optimisation (what’s the best way?). Focus on finite domain problems. Chris Mears Symmetry Detection and Exploitation in Constraint Programming

  5. Introduction Automatic Symmetry Detection Constraint Programming Symmetry Exploitation Symmetries Conclusion Example: Latin Square A CSP is a triple < X , D , C > X is a set of variables D is a set of values C is a set of constraints Chris Mears Symmetry Detection and Exploitation in Constraint Programming

  6. Introduction Automatic Symmetry Detection Constraint Programming Symmetry Exploitation Symmetries Conclusion Example: Latin Square 1 2 3 A CSP is a triple < X , D , C > 3 1 2 X is a set of variables D is a set of values 2 3 1 C is a set of constraints = { x 11 , x 12 , x 13 , x 21 , x 22 , x 23 , x 31 , x 32 , x 33 } X = { 1 , 2 , 3 } D C = { x 11 � = x 12 , x 11 � = x 13 , x 12 � = x 13 , x 21 � = x 22 , x 21 � = x 23 , x 22 � = x 23 , x 31 � = x 32 , x 31 � = x 33 , x 32 � = x 33 , x 11 � = x 21 , x 11 � = x 31 , x 21 � = x 31 , x 12 � = x 22 , x 12 � = x 32 , x 22 � = x 32 , x 13 � = x 23 , x 13 � = x 33 , x 23 � = x 33 } Chris Mears Symmetry Detection and Exploitation in Constraint Programming

  7. Introduction Automatic Symmetry Detection Constraint Programming Symmetry Exploitation Symmetries Conclusion Example: Latin Square x11 x12 x13 A CSP is a triple < X , D , C > x21 x22 x23 X is a set of variables D is a set of values x31 x32 x33 C is a set of constraints = { x 11 , x 12 , x 13 , x 21 , x 22 , x 23 , x 31 , x 32 , x 33 } X = { 1 , 2 , 3 } D = { x 11 � = x 12 , x 11 � = x 13 , x 12 � = x 13 , x 21 � = x 22 , x 21 � = x 23 , x 22 � = x 23 , C x 31 � = x 32 , x 31 � = x 33 , x 32 � = x 33 , x 11 � = x 21 , x 11 � = x 31 , x 21 � = x 31 , x 12 � = x 22 , x 12 � = x 32 , x 22 � = x 32 , x 13 � = x 23 , x 13 � = x 33 , x 23 � = x 33 } Chris Mears Symmetry Detection and Exploitation in Constraint Programming

  8. Introduction Automatic Symmetry Detection Constraint Programming Symmetry Exploitation Symmetries Conclusion Another Example: Steel Mill Slab Design Put orders in slabs. At most two colours per slab. Minimise sum of slab sizes. Orders Slabs Chris Mears Symmetry Detection and Exploitation in Constraint Programming

  9. Introduction Automatic Symmetry Detection Constraint Programming Symmetry Exploitation Symmetries Conclusion Another Example: Steel Mill Slab Design Put orders in slabs. At most two colours per slab. Minimise sum of slab sizes. Orders Slabs Chris Mears Symmetry Detection and Exploitation in Constraint Programming

  10. Introduction Automatic Symmetry Detection Constraint Programming Symmetry Exploitation Symmetries Conclusion Tree Search Constraint problems are usually solved by some form of search. E.g., backtracking search. x11 1 3 2 1 2 x12 2 3 1 3 2 3 2 3 1 3 1 3 1 2 1 2 x21 Chris Mears Symmetry Detection and Exploitation in Constraint Programming

  11. Introduction Automatic Symmetry Detection Constraint Programming Symmetry Exploitation Symmetries Conclusion Symmetry Example: Latin Square 1 2 3 A symmetry is a 3 1 2 permutation of the problem that doesn’t affect solutions. E.g. Any two rows can be 2 3 1 swapped. Chris Mears Symmetry Detection and Exploitation in Constraint Programming

  12. Introduction Automatic Symmetry Detection Constraint Programming Symmetry Exploitation Symmetries Conclusion Symmetry Example: Latin Square 1 2 3 A symmetry is a 2 3 1 permutation of the problem that doesn’t affect solutions. x21 x22 x23 E.g. Any two rows can be 3 2 1 swapped. x31 x32 x33 Chris Mears Symmetry Detection and Exploitation in Constraint Programming

  13. Introduction Automatic Symmetry Detection Constraint Programming Symmetry Exploitation Symmetries Conclusion Symmetry Example: Steel Mill Slab Design Slab weights can be permuted. Identical orders can be permuted. Chris Mears Symmetry Detection and Exploitation in Constraint Programming

  14. Introduction Automatic Symmetry Detection Constraint Programming Symmetry Exploitation Symmetries Conclusion Symmetry: a Definition Definition A symmetry is a permutation of literals (variable-value pairs) that maps solutions to solutions (and therefore non-solutions to non-solutions). Kinds of Symmetry Variable symmetries (permutation of variables) Value symmetries (permutation of values) Variable-value symmetries (permutation of literals) Chris Mears Symmetry Detection and Exploitation in Constraint Programming

  15. Introduction Automatic Symmetry Detection Constraint Programming Symmetry Exploitation Symmetries Conclusion Symmetries: Who cares? Interesting property, but who cares? Symmetries can be used to improve search. Chris Mears Symmetry Detection and Exploitation in Constraint Programming

  16. Introduction Automatic Symmetry Detection Constraint Programming Symmetry Exploitation Symmetries Conclusion Search x11 1 3 2 1 2 x12 2 3 1 3 2 3 2 3 1 3 1 3 1 2 1 2 x21 Chris Mears Symmetry Detection and Exploitation in Constraint Programming

  17. Introduction Automatic Symmetry Detection Constraint Programming Symmetry Exploitation Symmetries Conclusion Symmetries in Search Symmetries in the problem lead to symmetric subtrees. Only need to search one of each symmetric set. x11 1 3 2 1 2 x12 2 3 1 3 2 3 2 3 1 3 1 3 1 2 1 2 x21 Chris Mears Symmetry Detection and Exploitation in Constraint Programming

  18. Introduction Automatic Symmetry Detection Constraint Programming Symmetry Exploitation Symmetries Conclusion Symmetries in Search Symmetries in the problem lead to symmetric subtrees. Only need to search one of each symmetric set. x11 1 3 2 1 2 x12 2 3 1 3 2 3 2 3 1 3 1 3 1 2 1 2 x21 Chris Mears Symmetry Detection and Exploitation in Constraint Programming

  19. Introduction Automatic Symmetry Detection Constraint Programming Symmetry Exploitation Symmetries Conclusion Symmetries Avoiding redundant search 1 Detect symmetries. 2 Avoid searching through symmetric subtrees. Chris Mears Symmetry Detection and Exploitation in Constraint Programming

  20. Introduction Instances Automatic Symmetry Detection Models Symmetry Exploitation Our Framework Conclusion Automatic Symmetry Detection We have investigated detecting symmetries in problems automatically. There are many methods for detecting symmetries. Two main approaches: Instance-based (most) E.g., 3 × 3 Latin Square Model-based (only two) E.g., N × N Latin Square Chris Mears Symmetry Detection and Exploitation in Constraint Programming

  21. Introduction Instances Automatic Symmetry Detection Models Symmetry Exploitation Our Framework Conclusion Instance-based Detection Methods Generate-and-test Try some permutations and see if the constraints are the same. Graph-based Build a graph of the problem and find its automorphisms. Complete Find all the solutions and examine them. Chris Mears Symmetry Detection and Exploitation in Constraint Programming

  22. Introduction Instances Automatic Symmetry Detection Models Symmetry Exploitation Our Framework Conclusion Instance-based Detection Methods Generate-and-test Try some permutations and see if the constraints are the same. Graph-based Build a graph of the problem and find its automorphisms. Complete Find all the solutions and examine them. Chris Mears Symmetry Detection and Exploitation in Constraint Programming

  23. Introduction Instances Automatic Symmetry Detection Models Symmetry Exploitation Our Framework Conclusion Graph-based Detection Build a graph derived from the CSP. Once constructed, find the automorphisms of the graph. Use standard tools, e.g. Saucy. The automorphisms correspond directly to symmetries of the instance. Main difference between methods is how to build the graph. Chris Mears Symmetry Detection and Exploitation in Constraint Programming

Recommend


More recommend