2016-10-06 25 views
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使函數最小化的最佳答案。

對不起,如果這很容易!我花了好幾個小時在網上爬行...

回答

0

a'x >= b-a'x <= -b相同。即將>=不等式乘以-1。

+0

謝謝!我很糟糕......我現在正在努力學習數學的歷史專業=)我怎麼能讓你高興?我有不到15的聲望......非常感謝! – JoustinJustin

+0

別擔心。 –