私はscipy.optimizeモジュールを使用して、出力を最小化する最適な入力の重みを見つけています。私が見た例から、片側方程式で制約を定義します。次に、タイプ「不平等」の変数を作成します。私の質問は、制約内の変数の合計が1より小さいか1より大きい必要があるかどうかを最適化パッケージがどのように知るかです。
...
def constraint1(x):
return x[0]+x[1]+x[2]+x[3]-1
....
con1 = {'type': 'ineq', 'fun': constraint1}
私の例で使用している完全なソリューションへのリンク: http://apmonitor.com/che263/index.php/Main/PythonOptimization
ありがとうございました。
https://docs.scipy.org/doc/scipy-0.18.1/reference/tutorial/optimize.html を参照し、多変量スカラー関数の制約付き最小化(最小化)までスクロールすると、あなたはそれを見つけることができます
このアルゴリズムでは、次の形式の制約付き最小化問題を処理できます。
ここで、不等式の形式はC_j(x) >= 0
です。
したがって、制約を次のように定義すると
def constraint1(x):
return x[0]+x[1]+x[2]+x[3]-1
制約のタイプを次のように指定します
con1 = {'type': 'ineq', 'fun': constraint1}
制約が標準形式x[0]+x[1]+x[2]+x[3]-1>=0
、つまりx[0]+x[1]+x[2]+x[3]>=1
であると自動的に想定します