如何提高MiniZinc解决布套问题的速度?

时间:2019-06-17 18:33:13

标签: minizinc

最近,我试图用MiniZinc解决[Balas,E.,&Ho,A.(1980)]提出的集合覆盖问题实例。

我尝试了两种方法或模型来解决SCP41实例:

模型

(1)。 ILP模型

https://github.com/affernan/minizinctest/blob/master/scp_mzinc_lp.mzn

(2)。具有代码,forall,数组等的ILP模型。我不确定模型(1)==(2)https://github.com/affernan/minizinctest/blob/master/scp_mzinc_code.mzn

对于每个模型在SCP41上的每次运行,MiniZinc都不会完成迭代或达到最佳状态。我知道实例和问题是非常组合的,但是可以通过哪些方式改进模型?

致谢!

1 个答案:

答案 0 :(得分:2)

这两种模型都可以在几秒钟内通过MiniZinc的mip求解器(在我的机器上分别为4.2s和2.4s)求解。您尝试了什么求解器?

稍后:这是一个稍快的版本:http://www.hakank.org/minizinc/scp41.mzn(使用mip / cbc求解器的时间为0.6s)。