我正在解决一个调度问题(在这里简要描述:SWI Prolog CLP(FD) 调度切换到 ECLP)。
我能够快速获得一些解决方案,但现在我想合并一些优化任务。
问题/时间表行的一部分看起来像D1,D2,N1,N2,A0,A1,A2,..,A9
这个变量的一些成本在哪里C1,C1,C1,C1,C2,C2,C2,...,C2
。因此,从这个角度来看,任何分配的排列都A0..A9
具有相同的成本。但是,显然,在标记过程中,求解器会回溯所有可能性。
简短说明:我只是在脑海中计算这个,但我认为仅针对该描述部分的搜索空间就像来自大小为 15 * 10的域的大小为 10 的子集的数量!. 这是相当多的空间来回溯。从成本/优化以及约束满足的角度来看,每个排列都具有相同的成本/可满足性——变量的顺序无关紧要。
我可以以某种方式影响标签/搜索过程,以免打扰某些列表中的变量顺序吗?或者你能提供一些方法来改造问题以便能够以这种方式工作吗?