使用 Pulp 更新约束

abc*_*abc 3 python linear-programming pulp

假设有一个线性程序和以下形式的约束:

\n\n
4 x_1 + 3 x_2 \xe2\x89\xa4 10\n
Run Code Online (Sandbox Code Playgroud)\n\n

并且您想要将其更新为

\n\n
4 x_1 + 3 x_2 + 10 x_3 \xe2\x89\xa4 10\n
Run Code Online (Sandbox Code Playgroud)\n\n

或者

\n\n
3 x_2 \xe2\x89\xa4 10\n
Run Code Online (Sandbox Code Playgroud)\n\n

为了做到这一点,我从头开始“重写”约束,就像

\n\n
prob.constraints[0] = ...\n
Run Code Online (Sandbox Code Playgroud)\n\n

但对于很长的约束来说,这是非常低效的。

\n\n

是否有更简单的方法来添加或删除约束中的变量?

\n

Atn*_*nas 6

您可以通过以下方式向约束添加新术语:

prob.constraints[0].addterm(x_3, 10)
Run Code Online (Sandbox Code Playgroud)

同样,您可以通过删除术语

prob.constraints[0].pop(x_1)
Run Code Online (Sandbox Code Playgroud)

这完成了您列出的两个示例。