0
我昨晚花了大約4-5小時搜索堆棧溢出,通過scipy優化文檔等,無法找到我的問題的答案。我的問題是,如果選項似乎僅用於上限,那麼如何爲優化方程設置下限?請參閱下面的等式和代碼。Python Scipy優化與下限(而不是A_ub)
import numpy as np
from scipy.optimize import linprog
from numpy.linalg import solve
c = np.array([4,7,5])
A = np.array([[4,1,10],[3,2,1],[0,4,5]])
b = np.array([10,12,20])
res = linprog(c,A_ub = A,b_ub = b)
print(res)
減少(4,7,5)
('Optimal value:', -0.0, '\nX:', array([ 0., 0., 0.]))
fun: -0.0
message: 'Optimization terminated successfully.'
nit: 0
slack: array([ 10., 12., 20.])
status: 0
success: True
x: array([ 0., 0., 0.])
最大化(-4,-7,-5)
('Optimal value:', -37.666666666666664, '\nX:', array([ 0.66666667, 5. ` , 0. ]))`
fun: -37.666666666666664
message: 'Optimization terminated successfully.'
nit: 2
slack: array([ 2.33333333, 0. , 0. ])
status: 0
success: True
x: array([ 0.66666667, 5. , 0. ])
這是給我一個答案中的第一個最小化x1,x2,x3,這明顯顯示全零。如果第二個答案是< = 10,< = 12,< = 20,則第二個答案會使函數最大化,因爲顯然它是一個上限。我需要的是基於> = 10,> = 12,> = 20使函數最小化的最佳答案。
對不起,如果這很容易!我花了好幾個小時在網上爬行...
謝謝!我很糟糕......我現在正在努力學習數學的歷史專業=)我怎麼能讓你高興?我有不到15的聲望......非常感謝! – JoustinJustin
別擔心。 –