【发布时间】:2018-03-21 22:09:20
【问题描述】:
我想最小化以下 LPP: c=60x+40y+50z 受制于 20x+10y+10z>=350 , 10x+10y+20z>=400, x,y,z>=0
我的代码 sn-p 如下(我是第一次使用 scipy 包)
from scipy.optimize import linprog
c = [60, 40, 50]
A = [[20,10], [10,10],[10,20]]
b = [350,400]
res = linprog(c, A, b)
print(res)
输出为:screenshot of the output in Pycharm
1.谁能详细解释一下linprog函数的参数,特别是bound是怎么计算的?
2.我写的参数对吗?
我对 LPP 基础知识很幼稚,我认为我对参数的理解有误。
【问题讨论】:
-
您尝试过什么解决方法?文档说参数应该是什么?根据错误消息,我的第一个猜测是传入
A.T而不是 A。 -
“如何计算界限”是什么意思?
-
错误信息非常好恕我直言。
-
文档说 linprog() 的第 6 个参数是“x 中每个元素的 bounds=(min, max) 对,定义了该参数的边界。”我不确定如何计算这个值。
-
@ProteetiProva 这是一个可选参数,您可以将其作为算法的输入来指定变量值必须在特定范围内(默认情况下,范围为 [0, +∞))。如果您的问题不需要特定的界限,那么您不需要给出它。
标签: python numpy scipy linear-programming