-1

最小化された関数値に依存する制約を設定しようとしています。

私が抱えている問題は、次の性質のものです。

fmin = 最小化 (d1x1 +d2x2 ... +d5x5)

次の制約で最適化したい場所:

x1+X2+x3+x4+x5 = 1

0.003 <x1 .. X5  < 0.05

d1x1/fmin = y1
(d2x2+d3x4)/fmin = y2
(d4x4+d5x5)/fmin = y3

この場合、y1..yn はスカラー定数です。

   The problem I am having is that I dont know how to setup the A_ub or A_eq 
   In linprog so that B_ub = y1*fmin for d1x1 for example. 

だからどういうわけか私は定義する必要があります:

制約の 1 つとして x1d1/fmin = y1。

ここで、最適値ベクトルは (d1 .. dn) になります。ただし、ここでは例として、制約 d1/minimized(d1..dn) = y1 も満たさなければなりません。

これをどのように設定すればよいですか?どのようなオプティマイザーを使用しますか?

Excelソルバーを使用してこれを非常に簡単に行うことができますが、今はこれをPythonでコーディングしたいと考えています。scipy.linprog を使用しようとしていますが、これが線形プログラミングの問題なのか、それとも別のアプローチを使用する必要があるのか​​ わかりません。この問題に対して linprog で制約を設定する方法を考えることができません。誰でも私を助けることができますか?

4

1 に答える 1

1

d1, ..., dnそれもスカラー定数であると仮定すると、たとえば制約

d1*x1/fmin==y1

として書き換えることができます

d1*x1==y1*d1*x1+y1*d2*x2+...+y1*dn*xn

これは次のように正規化できます。

(d1-y1*d1)*x1 - y1*d2*x2 - y1*d3*x3 - ... - y1*dn*xn == 0

これは、線形ソルバーの入力として使用できます。

于 2016-12-23T14:44:49.263 に答える