【发布时间】:2020-06-04 01:42:51
【问题描述】:
我刚刚做了一些实验,如果优化问题有很多解决方案会发生什么。我知道通过 MiniZinc,我们可以确定满足问题的多个答案。(就像用户指南中的地图着色)。 而 MiniZinc 总是在我们得到最优答案后不久显示一条双虚线。
现在我刚刚运行下面的代码,我注意到如果我使用 gecode 求解器的答案与我使用 coin-bc 或 cplex 求解器时的答案不同。 MiniZinc 中是否有任何功能会在此类多重最优解决问题时通知我们,或者获取所有解决方案而不管我们使用的求解器。
enum suppliers;
suppliers={s1,s2,s3};
set of int:sup=1..length(suppliers);
array[sup] of float:price=[3.0,6.0,12.0];
array[sup] of int:max=[2,3,1];
int:demand=3;
array[sup] of var 0..1000:qty;
var float:cost;
constraint sum(i in sup)(
qty[i])=demand;
constraint forall(i in sup)(
qty[i]<=max[i]
);
constraint qty[2] != 1;
constraint qty[1] != 1;
constraint sum(i in sup)(
price[i]*qty[i])=cost;
solve minimize cost;
【问题讨论】:
标签: optimization minizinc