増大ラグランジュ乗数法

今回は増大ラグランジュ乗数法(augmented Lagrange multiplier method)のお話です
これはラグランジュの未定乗数法を不等式制約条件を扱える様に拡張したアルゴリズムとなります


2変数の不等式制約条件下での最小化問題を考えます
augmented lagrange multiplier.wxm

obj : 評価関数(%o3)
x, y : 設計変数
g[1]〜g[4] ≦ 0 : 制約条件(%o4〜7)


http://cdn-ak.f.st-hatena.com/images/fotolife/r/ryooji_f/20111209/20111209214236.png
L : Lagrange関数
La : 増大Lagrange関数
J : 勾配ベクトル(∂La/∂x, ∂La/∂y)



n : step数
設計変数の初期値は(5, 2)とします
不等式制約の結合に用いるパラメータrには適当な大きい値(1000)としておきます
未定乗数λの初期値はすべて1とします


※次のブロックは最適解に収束するまでひたすら繰り返します・゚・(ノД`)

繰り返すこと24回
%o179にて制約条件によるλの増大処理を行います(画面出力は省略)
勾配ベクトルJとパラメータαを用いて更新した設計変数を%o180式に示します
Laを停留させるαをfind_root関数を用いて一次探索します(%o181)
この結果から定まった設計変数を%o182式に示します
評価関数の値を%o184式に示します


http://cdn-ak.f.st-hatena.com/images/fotolife/r/ryooji_f/20111209/20111209214233.png
設計変数の収束の様子を横軸にx, 縦軸にyとして%t185にプロットします