制約のある最適化問題のお話が続きましたが,今回はもっと簡単な,制約のない最適化問題のお話です
今回は最急降下法(Steepest descent method)を使ってみます
これは勾配法(Gradient method)の仲間で,最もシンプルなアルゴリズムとなります(´・ω・`)
2変数の簡単な最小化問題を考えます
steepest descent.wxm
x, y : 設計変数
obj : 評価関数(%o2)
J : 勾配ベクトル[∂obj/∂x, ∂obj/∂y]
この評価関数は2次式なので,いわゆる非線形計画問題(nonlinear programming, NLP)になります
%o3にて,objのx, yに関する勾配ベクトルをJに代入します
n : step数
設計変数(x, y)の初期値は[0, 0]とします
αは設計変数の更新に用いる適当なパラメータで,0.3とします(最急降下法ではα一定です)
※次のブロックは最適解に収束するまでひたすら繰り返します・゚・(ノД`)
繰り返すこと46回(%o189)
勾配Jとパラメータαを用いて更新した設計変数を%o190式に示します
収束時の評価関数の値を%o192式に示します