scipy.optimize.linprog不为我工作:我做错了什么?

2024-10-05 13:15:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着用scipy.optimize.linprog在一个简单的案子里它对我不起作用。我一定是做错了什么事——请帮我找出来。在

这里是输入和预期的解决方案,以及一个测试,预期的解决方案是可行的

import numpy, scipy.optimize
print "A", A_ub
print "b", b_ub
print "c", c
print "x_expected", x_expected
print "expected optimum", numpy.dot(c, x_expected)
print "feasibility test", numpy.dot(A_ub, x_expected) <= b_ub

这个指纹

^{pr2}$

当我给linprog打电话时,我得到了一个可行的解决方案,但它似乎没有我上面所期望的那样最佳。在

r = scipy.optimize.linprog(c, A_ub, b_ub)
x_derived = r.x
print "x_derived", x_derived
print "derived optimum", numpy.dot(c, x_derived)
print "derived feasibility", numpy.dot(A_ub, x_derived) <= b_ub

这个指纹

x_derived [ 1.  0.  0.  1.]
derived optimum 1.0
derived feasibility [ True  True  True  True]

在我的推理中,我应该得到预期的解决方案(或者更好的解决方案,如果有的话)而不是我得到的解决方案,这是不是有什么问题?如果我没有错,我怎么才能让linprog帮我拿到呢?谢谢!在


Tags: numpytruescipy解决方案dot指纹optimizeexpected

热门问题