我使用CBC来解决不同的整数线性编程问题。对于其中一些人来说,这组约束条件是没有解决方案的。在这种情况下,我得到这样的东西:
Problem is infeasible - 0.30 seconds
Infeasible - objective value -6832.50000000
有没有什么方法CBC可以告诉我“为什么”这个问题是不可行的?例如,我很乐意拥有一组不相容的最小约束。
答案 0 :(得分:4)
我很确定,这个功能并没有在CBC中实现。
虽然Cplex和Gurobi支持这一概念。对于后者,我可以确认,这非常有效(称为不可减少的不一致子系统(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。