线性编程松弛输出多于输入

时间:2015-10-01 14:45:43

标签: python scipy linear-programming

版本:

  • SciPy:0.16

问题

我正在尝试优化福利功能(下面的代码),但松弛输出并不会产生正确的结果(红色圆圈),结果可能是。

最后两个结果相似,但丢失了一个(120)。我不知道为什么?

In [3]:
A = np.array([[1,0],[0,1],[1,2]])

In [4]:
# dispo
b = [60, 50, 120]
bounds = ([1,None],[1,None])
In [5]:

c = np.array([80, 120])
In [10]:
sol = linprog(-c, A, b, bounds=bounds)
In [17]:

sol
Out[17]:
  status: 0
   slack: array([  0.,  20.,   0.,  59.,  29.])
     nit: 5
 success: True
     fun: -8400.0
 message: 'Optimization terminated successfully.'
       x: array([ 60.,  30.])

更好的背景link to gist

1 个答案:

答案 0 :(得分:1)

您正在查看表中的错误位置。 linprog计算sol.x作为“Producción”行的值。它不会返回您圈出的列中的值,但您可以自己轻松地计算它们。