Yuta Hayashibe

ラグランジュの未定乗数法

  • 制約条件があり,目的凸関数を解析的に解く場合に使える方法

等式制約の場合

  • 目的関数f(x)f({\bold x})を複数の制約条件g_i(x)=0(i=0n)g\_i({\bold x})=0 (i=0\cdots n)の下で最大化する
  • 制約g0(x)=0,,gn(x)=0g_0({\bold x}) = 0, \cdots, g_n({\bold x}) = 0に対して,それぞれラグランジュ乗数λi\lambda_iを考える
  • nn個のラグランジュ乗数を並べたベクトルλ{\bold \lambda}と,gi(x)g_i({\bold x})nn個並べたベクトルg(x){\bold g}({\bold x})
  • ラグランジュ関数はL(x,λ)=f(x)+λg(x)L({\bold x}, \lambda) = f({\bold x}) + {\bold \lambda} \cdot {\bold g}({\bold x})
  • 次の連立方程式を解けば良い
    • xL=xf(x)+x(λg(x))=0\nabla_{{\bold x}} L = \nabla_{{\bold x}} f({\bold x}) + \nabla_{{\bold x}} ({\bold \lambda} \cdot {\bold g}({\bold x})) = 0
    • g(x)=0{\bold g}({\bold x}) = 0

不等式制約の場合

  • 目的関数f(x)f({\bold x})を制約条件gi(x)0(i=0n)g_i({\bold x}) \geq 0 (i=0\cdots n)の下で最大化する
    • ラグランジュ関数LLは等式制約の場合と同じだがλ0\lambda \geq 0とする
    • 制約を満たすx{\bold x}を優遇してLLをより大きくするため
  • 凸関数では,鞍点(x\*,λ\*)({\bold x}^\*, \lambda^\*)が最適解を与える
    • 鞍点とは,x{\bold x}に関しては最大値となり,λ\lambdaに関しては最小値となるような点
    • L(x,λ\*)L(x\*,λ\*)L(x\*,λ)L({\bold x}, \lambda^\*) \leq L({\bold x}^\*, \lambda^\*) \leq L({\bold x}^\*, \lambda)
  • 双対問題: 制約がλ0\lambda \geq 0のみなので,しばしば問題が解きやすくなる
    1. L(x,λ)L({\bold x}, \lambda)を最大化するx{\bold x}を求める.それはx{\bold x}λ\lambdaに依存する形x\*(λ){\bold x}^\* (\lambda)で表される.
    2. L(x\*(λ),λ)L({\bold x}^\* (\lambda), \lambda)λ\lambdaについて最小化する
    3. λ\*\lambda^\*が得られ,さらに最適解x\*{\bold x}^\*が得られる

参考文献