Breaking the Symmetries of Indistinguishable Objects
This work addresses efficiency issues in constraint solving for problems with symmetries, though it is incremental as it builds on existing symmetry-breaking techniques.
The paper tackles the problem of symmetries arising from indistinguishable objects in constraint programming, such as in the social golfer problem, by defining these symmetries in complex types and implementing complete symmetry breaking in the Essence modeling language.
Indistinguishable objects often occur when modelling problems in constraint programming, as well as in other related paradigms. They occur when objects can be viewed as being drawn from a set of unlabelled objects, and the only operation allowed on them is equality testing. For example, the golfers in the social golfer problem are indistinguishable. If we do label the golfers, then any relabelling of the golfers in one solution gives another valid solution. Therefore, we can regard the symmetric group of size $n$ as acting on a set of $n$ indistinguishable objects. In this paper, we show how we can break the symmetries resulting from indistinguishable objects. We show how symmetries on indistinguishable objects can be defined properly in complex types, for example in a matrix indexed by indistinguishable objects. We then show how the resulting symmetries can be broken correctly. In Essence, a high-level modelling language, indistinguishable objects are encapsulated in "unnamed types". We provide an implementation of complete symmetry breaking for unnamed types in Essence.