Fast computation with indistinguishable objects in constraint programming
Constraint programming is a paradigm for solving combinatorial problems. It can be used to solve problems such as sudoku, but can also be used to give factory layouts and university timetables. In many such problems, we often want to draw from a set of indistinguishable objects. For example, when deciding factory layouts, two machines of the same model are indistinguishable, and hence interchanging them gives us equivalent layouts. When solving a problem with indistinguishable objects, we end up doing repeated computations, which slows down the solving process. We see how we can enhance the language for specifying a problem so that a user can express which objects are indistinguishable. Our tool would then exploit their interchangeability to give fast solutions to their problems.
Keywords
Symbolic AI, combinatorial search, constraint programming