我有多个约束,他们很容易进入linprog,但我有两个约束,其中包含二进制组件。以下是一个:
1或0是Nabc
Mabc - 11(1)< = 0< - M111 - 11(1) 要么 Mabc-11(0)< = 0< -M111-11(0)
abc是下标
如何在linprog模块中实现它,或者可能使其不需要二进制文件。
这是我可以在python中实现的,因为没有与之关联的二进制数:
Mabc <= 40
答案 0 :(得分:0)
Scipy的linprog只能解决线性编程问题。
您的问题不是LP,而是混合整数问题(MIP)因此无法解决(此处没有分支定界或分支切割代码)。
我没有得到你的例子,但如果没有二进制/整数变量,它很可能无法解决。
你可以尝试pulp这是获得支持MIP的lib的最简单方法,它支持配方和解决(例如CBC和GLPK; CBC至少在windows-install上自动链接)。