Linprog Python - 实现二进制数

时间:2017-02-17 18:43:19

标签: python optimization mixed-integer-programming

我有多个约束,他们很容易进入linprog,但我有两个约束,其中包含二进制组件。以下是一个:

1或0是Nabc

Mabc - 11(1)< = 0< - M111 - 11(1) 要么 Mabc-11(0)< = 0< -M111-11(0)

abc是下标

如何在linprog模块中实现它,或者可能使其不需要二进制文件。

这是我可以在python中实现的,因为没有与之关联的二进制数:

Mabc <= 40

1 个答案:

答案 0 :(得分:0)

Scipy的linprog只能解决线性编程问题。

您的问题不是LP,而是混合整数问题(MIP)因此无法解决(此处没有分支定界或分支切割代码)。

我没有得到你的例子,但如果没有二进制/整数变量,它很可能无法解决。

你可以尝试pulp这是获得支持MIP的lib的最简单方法,它支持配方和解决(例如CBC和GLPK; CBC至少在windows-install上自动链接)。