I am solving a scheduling problem (briefly described here: SWI Prolog CLP(FD) scheduling switched to ECLP).
I am able to get some solution quickly, but now I want to incorporate some optimization task.
A part of the problem/schedule row looks like D1,D2,N1,N2,A0,A1,A2,..,A9
where some cost for this variables is C1,C1,C1,C1,C2,C2,C2,...,C2
. So from this point of view any permutation of assignments to A0..A9
has the same cost. But, obviously, during the labeling process the solver backtracks through all the possibilities.
Short note: I am calculating this only in my head, but I think the search space only for this described part is like number of subsets of size 10 from domain of size 15 * 10!. This is quite some amount of space to backtrack through. And from the point of view of cost/optimization as well as the constraint satisfaction, each permutation has the same cost/satisfiability - the order of variables does not matter.
Can I somehow affect the labeling/search procedure to do not bother with order of variables within some list? Or can you provide some way how to remodel the problem to be able to work this way?