gpt4 book ai didi

python - Scipy 最大化线性规划不起作用

转载 作者:行者123 更新时间:2023-12-01 04:33:03 24 4
gpt4 key购买 nike

我有以下内容:

ball = scipy.optimize.linprog(array([0,0,1]), A, b)

哪里

A = 
array([[-1.0, 0.0, 1.0],
[ 1.0, 0.0, 1.0],
[ 0.0, -1.0, 1.0],
[ 0.0, 1.0, 1.0]], dtype=float128)

b = array([ 0.0, 1.0, 0.0, 1.0], dtype=float128)

我们可以手动最大化它以获得答案 x = [0.5, 0.5, 0.5] 。然而 scipy 给了我

  status: 0
slack: array([ 0., 1., 0., 1.])
success: True
fun: -0.0
x: array([ 0., 0., 0.])
message: 'Optimization terminated successfully.'
nit: 0

这根本就是错误的答案!是我的代码错误,还是我发现了错误?

编辑:要验证 scipy 给出的解决方案不是最优的,请执行

np.all(np.dot(A, np.array([0.5,0.5,0.5])) <= b)

查看我的解决方案是否满足约束条件。然后注意

np.dot(np.array([0,0,1]), np.array([0.5,0.5,0.5])) > np.dot(np.array([0,0,1]), np.array([0,0,0]))

看看它至少是一个更好的解决方案。事实上,这是最优解。

编辑2: scipy.__version__ = 0.16.0

最佳答案

根据文档,linprog找到最小值,而您提出的解决方案是最大值。

关于python - Scipy 最大化线性规划不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32109668/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com