Principles and Practice of Constraint Programming – CP 2003

Volume 2833 of the series Lecture Notes in Computer Science pp 333-347

Generic SBDD Using Computational Group Theory

  • Ian P. GentAffiliated withSchool of Computer Science, University of St Andrews
  • , Warwick HarveyAffiliated withIC-Parc, Imperial College London
  • , Tom KelseyAffiliated withSchool of Computer Science, University of St Andrews
  • , Steve LintonAffiliated withSchool of Computer Science, University of St Andrews

* Final gross prices may vary according to local VAT.

Get Access


We introduce a novel approach for symmetry breaking by dominance detection (SBDD). The essence of SBDD is to perform ‘dominance checks’ at each node in a search tree to ensure that no symmetrically equivalent node has been visited before. While a highly effective technique for dealing with symmetry in constraint programs, SBDD forces a major overhead on the programmer, of writing a dominance checker for each new problem to be solved. Our novelty here is an entirely generic dominance checker. This in itself is new, as are the algorithms to implement it. It can be used for any symmetry group arising in a constraint program. A constraint programmer using our system merely has to define a small number (typically 2–6) of generating symmetries, and our system detects and breaks all resulting symmetries. Our dominance checker also performs some propagation, again generically, so that values are removed from variables if setting them would lead to a successful dominance check. We have implemented this generic SBDD and report results on its use. Our implementation easily handles problems involving 1036 symmetries, with only four permutations needed to direct the dominance checks during search.