我有一个 MiniZinc 应用程序,我想通过找到一些输入数据的低成本排列来最小化某些东西的“成本”。所以我有:
array[1 .. n] of var 1 .. n: Seq;
...
constraint alldifferent( [ Seq[i] | i in 1 .. n ]);
然后我根据 Seq 计算成本。该应用程序开始工作,但运行时间过长,超过了一个非常小的数字。显然求解器尝试了所有 n! 可能性。我如何缩放这个?
我有一个 MiniZinc 应用程序,我想通过找到一些输入数据的低成本排列来最小化某些东西的“成本”。所以我有:
array[1 .. n] of var 1 .. n: Seq;
...
constraint alldifferent( [ Seq[i] | i in 1 .. n ]);
然后我根据 Seq 计算成本。该应用程序开始工作,但运行时间过长,超过了一个非常小的数字。显然求解器尝试了所有 n! 可能性。我如何缩放这个?