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