加拿大广播公司 - 知道“为什么”一个节目是不可行的

时间:2016-06-02 13:56:48

标签: python linear-programming

我使用CBC来解决不同的整数线性编程问题。对于其中一些人来说,这组约束条件是没有解决方案的。在这种情况下,我得到这样的东西:

Problem is infeasible - 0.30 seconds
Infeasible - objective value -6832.50000000

有没有什么方法CBC可以告诉我“为什么”这个问题是不可行的?例如,我很乐意拥有一组不相容的最小约束。

1 个答案:

答案 0 :(得分:4)

我很确定,这个功能并没有在CBC中实现。

替代软件

虽然CplexGurobi支持这一概念。对于后者,我可以确认,这非常有效(称为不可减少的不一致子系统(IIS))。如果您在学术环境中(您的访问域需要被认可为大学),并且您的项目符合学术项目(总是更好地查看自己的使用条款),Gurobi也可以免费获得。

自定义实施

如果您想自己实现,请查看:

  

0。 Guieu和J.W. Chinneck(1999),“分析不可行的混合整数   和整数线性程序“,INFORMS Journal on Computing,vol.11,no。   1,pp.63-77。

  
    Ulrich Junker。 QUICKXPLAIN:对过度约束问题的首选解释和放宽。在第19届全国人工智能会议论文集(AAAI'04),Anthony G. Cohn(编辑)。 AAAI出版社167-172。

后者在this Ruby wrapper for cbc

中实施