Fast computation with indistinguishable objects in constraint programming

ksrh1
Monday 7 April 2025

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

Staff

Mun See Chang

Özgür Akgün

Ian Gent

Chris Jefferson

Related topics