制約付き最小化問題(Constrained Minimization Problem)
制約付き最小化問題(Constrained Minimization Problem)は、最小化したい目的関数の下で、特定の制約条件を満たす変数の最適解を求める問題です
例題
制約付き最小化問題(Constrained Minimization Problem)の例題として、目的関数と制約条件を設定したコードを表します。
1 | from scipy.optimize import minimize |
この例では、2変数の目的関数 objective
と制約条件 constraint
を定義しています。
目的関数は最小化したい関数(ここでは $ x^2 + y^2 $)を示しており、制約条件は $x + y \leqq 1$ のような形式で設定しています。
minimize
関数を使用して、目的関数と制約条件を引数として渡しています。
制約条件は constraints
パラメータに辞書型として渡されており、'type'
には制約の種類(この例では不等式制約 'ineq'
)を、'fun'
には制約条件の関数を指定しています。
最適化の結果は result
に格納され、result.x
に最適解の変数の値が、result.fun
に最適な目的関数値が返されます。これらを表示しています。
実行結果
上記のコードを実行すると下記のような結果が表示されます。
[実行結果]
最適解: [0.5 0.5] 最適な目的関数値: 0.5000000000000002
この結果は、制約付き最小化問題の最適解と最適な目的関数値を示しています。
🔹最適解: [0.5, 0.5]
この結果は、最適解の変数の値を示しています。
ここでは、x
の値が 0.5、y
の値が 0.5 であることを意味します。
この値は、制約条件 $x + y \leqq 1$ を満たす中で、目的関数 $x^2 + y^2$ を最小化するための最適な値です。
🔹最適な目的関数値: 0.5000000000000002
この結果は、最適な目的関数の値を示しています。
ここでは、目的関数 $ x^2 + y^2 $ の最小値が $0.5$ であることを示しています。
ただし、浮動小数点数の誤差があるため、表示された値は正確な最小値ではありません。
厳密な結果は result.fun
の値として得られます。
この結果から、与えられた目的関数 $ x^2 + y^2 $ を最小化するための最適解は、$x = 0.5$ および $y = 0.5$ であり、そのときの最適な目的関数値は約 $0.5$ であることがわかります。