2016-10-06 10 views
0

昨夜、Stack Overflowを検索し、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を最小にする。 2番目の答えは、それぞれが< = 10,< = 12,< = 20の場合に関数を最大化します。これは明らかに上限です。私が必要とするのは、> = 10、> = 12、> = 20という関数に最小化されていることに基づく最良の答えです。

残念ですが、これは簡単です!私はこの上でウェブを這う多くの時間を費やしました...

答えて

0

a'x >= b-a'x <= -bと同じです。私。 >=の不等式に-1を掛けます。

+0

ありがとうございます!私はとても悪いです...私は今、歴史を学ぶことを学ぶことを試みています=)どうすればあなたをアップアップできますか?私は15未満の評判を持っています...ありがとう! – JoustinJustin

+0

それは心配しないでください。 –

関連する問題