ラグランジュの未定乗数法
- 制約条件があり,目的凸関数を解析的に解く場合に使える方法
等式制約の場合
- 目的関数f(x)を複数の制約条件g_i(x)=0(i=0⋯n)の下で最大化する
- 制約g0(x)=0,⋯,gn(x)=0に対して,それぞれラグランジュ乗数λiを考える
- n個のラグランジュ乗数を並べたベクトルλと,gi(x)をn個並べたベクトルg(x)
- ラグランジュ関数はL(x,λ)=f(x)+λ⋅g(x)
- 次の連立方程式を解けば良い
- ∇xL=∇xf(x)+∇x(λ⋅g(x))=0
- g(x)=0
不等式制約の場合
- 目的関数f(x)を制約条件gi(x)≥0(i=0⋯n)の下で最大化する
- ラグランジュ関数Lは等式制約の場合と同じだがλ≥0とする
- 制約を満たすxを優遇してLをより大きくするため
- 凸関数では,鞍点(x\*,λ\*)が最適解を与える
- 鞍点とは,xに関しては最大値となり,λに関しては最小値となるような点
- L(x,λ\*)≤L(x\*,λ\*)≤L(x\*,λ)
- 双対問題: 制約がλ≥0のみなので,しばしば問題が解きやすくなる
- L(x,λ)を最大化するxを求める.それはxをλに依存する形x\*(λ)で表される.
- L(x\*(λ),λ)をλについて最小化する
- λ\*が得られ,さらに最適解x\*が得られる
参考文献