Linprog Python - 实现二进制数

Linprog Python - Implementing binary numbers

我有多个约束,它们可以直接进入 linprog,但我有两个约束,其中有一个二进制组件。以下为:

1 或 0 是 Nabc

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

abc是下标

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

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

Mabc <= 40

Scipy 的 linprog 只解决了 Linear-programming 个问题。

您的问题不是 LP,而是 Mixed-integer 问题 (MIP),因此无法解决(那里没有可用的 Branch-and-Bound 或 Branch-and-Cut 代码)。

我不明白你的例子,但很可能没有 Binary/Integer 个变量就无法解决。

您可以尝试 pulp,这是获得支持公式和求解的 MIP-ready 库的最简单方法(例如 CBC 和 GLPK;CBC 至少在 windows-install).