非線形計画法入門 - 最適化工学技塾opteng.main.jp/content/nlp_intro.pdf ·...
TRANSCRIPT
0
非非線線形形計計画画法法入入門門
[PART 1] 最適化理論
1. はじめに
2. 制約条件がない場合の最適化理論
3. 制約条件付きの最適化理論
[PART 2] 最適化手法
1. はじめに
2. 制約条件がない場合の最適化手法
3. 制約条件付きの最適化手法
最適化工学技塾
清水 良明
1
[PART 1] 最適化理論
1.はじめに
本講義では、生産システムの計画・設計や管理さらには制御における問題解決に役立つと思わ
れる最適化手法とその応用例を紹介することにする。ここでは基本的には、対象とするシステムの挙
動(システムモデル)とそこでの決定に対する評価基準(評価モデル)がなんらかの数式モデルとして
表現可能な数学的に良構造(well-defined)な場合に話を限定して進めることにする。
ところで、”最適化(Optimization)”とは、広義には、「できる限り効果的、機能的な決定・設計をし
て、システムを作る努力又は過程」、狭義には、「可能な選択肢のなかから、与えられた基準を最もよ
く満たす特定の解を決定するのに用いる方法論または手法・手順」をさすが、数学的に”最適化問
題”とは一般的に以下のように表現される。
(p.1) Maximamize or Minimamize f(x) subject to x∈X
Table.1 最適化手法の用途と分類
☆ 意思決定 ・・・・・ 代替案の選択・順位付け
用途:
☆ モデリング ・・・・・ システムモデル中のパラメータ推定
☆ プロセス制御 ・・・・・ 制御系のパラメータ設定
☆ 数学的に良構造(well-defined) / 悪構造(ill-defined)
分類上のキーワード:
☆ 単一目標(single objective) / 多目標(multiple objectives)
☆ 制約条件付き(constrained) / 制約条件なし(unconstrained)
・確定系(deterministic) / 確率系(stochastic) / Fuzzy 系
・線形(linear) / 非線形(nonlinear)
☆ 単一変数(scalar) / 多変数(multiple)
・実数変数(real) / 整数変数(integer) / 混合変数(mixed-integer)
2
ここで、x は、n 次元の決定変数(例えば、装置の大きさや操作条件などのプロセスの性能を左右
する量)を、また X⊂Rn は制約条件(Constraint)と呼ばれる x に関する複数の数式によって決められ
る実行可能領域(Feasible region、プロセスの物質や熱等の収支式などの対象プロセスの挙動を規
定する条件式の集まり)を表す。一方、 f(x)は評価関数或は目的関数(Performance index、
Criterion、 Objective function etc.)などと呼ばれる f : Rn→R1なる関数である。(例えばシステムの利
益などのシステムの性能を計る指標)
与えられた変数 x や領域 X さらに関数 f の性質によって種々の最適化問題が構成されることにな
る。(Table.1、参照)
Fig.1 問題解決の手順の一例
問題解決 始
現象入出力関係 の数学モデルの作成
因果関係
(問題解決上の)入出力関係を説明できるか?
評価基準の数式モデルの作成
意思決定主体の選考(効用、価値)基準を正当に表わすか?
最適化手法の適用
効果的手法があるか?
数値計算法のプログラミング
効果の適用
効果あるか?
問題解決 終
モデル化
最適化問題の定式化と解決の選択
プログラミング
修正
修正
Y
Y
N
N
Y
応用面での対応
Y
旧法の改良、新解法
N
原因の究明N
問題解決 始
現象入出力関係 の数学モデルの作成
因果関係
(問題解決上の)入出力関係を説明できるか?
評価基準の数式モデルの作成
意思決定主体の選考(効用、価値)基準を正当に表わすか?
最適化手法の適用
効果的手法があるか?
数値計算法のプログラミング
効果の適用
効果あるか?
問題解決 終
モデル化
最適化問題の定式化と解決の選択
プログラミング
修正
修正
Y
Y
N
N
Y
応用面での対応
Y
旧法の改良、新解法
N
原因の究明N
3
しかし、現実の問題解決では、最適化問題が常に ready-made で与えられるわけではないので、
所与の問題解決のために最適化問題をcustom-madeに定式化する手順を修得することも重要となる。
こうした姿勢から基本的な問題解決の進め方の手順の一例を Fig.1 に示す。
2.制約条件がない場合の最適化理論
ここでは、(p.1)での実行可能領域 X が実数空間の全体 Rnであるような問題の最適性に関する理
論的背景について検討する。即ち、
(p.2) Maximamize f(x) subject to x∈ Rn (f : Rn→R1)
と表現されるような、ベクトル値関数 f(x)の決定変数 x に関する最大化問題を取り上げる。
このような制約条件なしの場合には単なる関数の極値問題そのものとなり、局所的に考えるなら、
スカラーの実変数関数の最大化の場合と同じように最適性の必要条件は極値条件として与えられ
る。
ところで、f(x)が x=xo で極大になるとは、x=xoの近傍(∥x-xo∥<ε)で、f(xo)が f(x)の最大値を
与える事で,
f(xo) = Max f(x) (1)
と表すことができる。ただし、ここでは、εは小さな正数である。
もし、f が x=xoの近傍で連続微分可能のとき、f(x)が x=xoで極値となるための必要条件は、
[定理 1]
(∂f/∂x)xo = ▽f(xo) = 0T (2)
で与えられ、上の条件を満たすような xoのことを停留点(stationary point)と呼ぶ。さらに、f に対して
2次まで微分可能であるとすれば、f(x)が x=xoで極大になるための十分条件は
[定理 2]
▽f(xo) = 0T、かつ
4
Hessian 行列、 [∂(∂f/∂x)T/∂x]xo = ▽2f(xo)が負定、
で与えられる。 (必要条件は、Hessian 行列が非正定となることである。)
ここで負定(negative definite)とは、任意の d (≠0) ∈Rnに対して dT ▽2f(xo) d < 0 となること
であり、非正定(negative semi-definite)とは、dT▽2f(xo)d ≦ 0 となることである。また f(xo)が正定でも
負定でもないときには、その点は鞍点(saddle point,
Fig.2 参照)と呼ばれる。
ところで大局的な最適性条件を一般の場合に明
記することは困難であるが、-f(x)が凸関数である場
合には次の[定理 3]のように表現できる。
[定理 3] -f(x)が Rn 上で微分可能な凸関数で
あるとき、f(x)が x=xoで最大となるための必要十分条
件は、▽f(xo)=0、が成立することである。
ここで f(x)が凸関数であるとは、任意の α (0<α<1), x1, x2に対して
f(αx1+(1-α)x2) ≦ α f(x1)+(1-α) f(x2) (3)
が成立することで、特に x1≠x2 であって常に不等号(<)が成立する場合を、厳密に凸であると表現
する。そして-f(x)が凸関数で、かつ連続 2 次微分可能ならば-▽2f(x)はつねに非負定となり、またこ
の逆も成立するため、-f(x)が凸関数であるという大局的な仮定を設けることにより、(2)式の必要条件
は、また十分条件にもなるといえる。
(例 1) バッチ反応器の最適経済設計
2D+E→F なる液相均一バッチ反応において、転化率 x と、1 バッチ時間 t 及び製品単位生産量
あたりの反応器の固定費 cf並びに生産量 q との間には、それぞれ
x = atb (- ) (4)
cf = kq/x (円/mol-F) (5)
となる関係が知られているとする。ここで、a, b, k は定数である。(b<1)
また未反応の原料は 1 バッチ毎に回収し再利用するものとし、この反応システムの経済性を、直
Fig.2 鞍点の形状
5
接的な操業コスト c1、回収コスト c2及び固定コスト c3 (=cf) で評価するものとする。
この時、所定量の製品 Fを生産するのに最も経済的な 1バッチあたりの生産量と運転時間を求め
よ。
(解答) 単位生産量当りのそれぞれのコストを表現することにして、1 バッチ毎の単位時間あたり
の直接的操業コストを copr(円/hr・batch)とすれば、
c1=coprt/q (円/mol-F) (6)
が得られる。
一方、任意の転化率 x において製品 x モルあたり、d は 2x モル、E は x モル消費されるので、そ
れぞれ 2(1-x), (1-x)モルが未反応物となり、製品 1モル当りでは合計 3(1-x)/x モルの回収が必
要となる。これより、未反応物単位モルあたりの回収コストを copr(円/mol-Recyc)とすれば
c2=ccyc・3(1-x)/x (円/mol-F) (7)
と計算される。
従って、製品 1モル当りを基準とする全コスト、cT=c1+c2+c3は
cT(q, t) = coprt/q+ccyc・3(1-x)/x+kq/x
= coprt/q+3(ccyc/a)(t-b-a)+(k/a)qt-b (円/mol-F) (8)
と表される。(2)式の最適条件より、
∂cT/∂t = copr/q-3(ccycb/a)t-b-1-(kb/a)qt-b-1 = 0 (9)
∂cT/∂q = -coprt/q2+(k/a)t-b = 0 (10)
となる。これより
q = 3(ccyc/k){b/(1-b)} (mol-F) (11)
t = [(9/ak)(ccyc2/copr){b/(1-b)}2]1/(b+1) (hr) (12)
6
を得る。
3. 制約条件付きの最適化理論
3.1. 等号制約の場合
ここでは一般に非線形の等号制約のもとでの次のような最適化問題を取り上げる。
(p.3) Max f(x) subject to hj(x) = 0, (j=1, 2, ..., m), (m<n)
すぐに思いつく一つの解法は、まず条件式を用いてm個の変数を残りの(n-m)個の変数で表わ
し、次にそれを f(x)に代入することによって m 個の変数を消去し、(n-m)個の変数についての制約
のない問題として取り扱うものである。一見これは合理的な解法のように思えるが、変数の消去が容
易な場合を除いて一般的には効果的とはいえない。このためよく用いられるのが、ラグランジュ未定
乗数法と呼ばれる以下に述べるような方法である。
いま、f 及び h が xo近傍で連続微分可能であり、ヤコビアン行列、(∂h/∂x)xo=J(xo)の階数が m で
あるとする。このとき、適当な m 次元ベクトル λ(ラグランジュ乗数と呼ばれる。)を用いて、ラグランジュ
関数 L を
L(x,λ) = f(x)+λTh(x) (13)
で定義する。この時、
[定理 4]
x=xoが(p.3)の最適解であるための必要条件は、
▽xL(xo, λo) = 0 (14)
▽λL(xo, λo) = 0 (15)
を満足する λoが存在することである。
(証明) x を m 次元の x1と(n-m)次元の x2に分割して表現するとすれば、仮定より x1を x2 によ
7
って、x1 = φ(x2)のように表すことができる。これに従って目的関数も
z = f(φ(x2), x2) = F(x2) (16)
のように表現され、x2に関しての制約のない問題とみなす事ができる。従って最適解は f の x2に関す
る停留条件,
(∂F/∂x2)= (∂φ/∂x2)T(∂f/∂x1)+(∂f/∂x2) = 0 (17)
より求められる。(上式を含めて、以下各微係数の評価は xoにおいて行うものとする。)
一方、h(x)も
h(x) = h(φ(x2), x2) = 0 (18)
のように、x2のみの関数として表現できるので、これを x2で微分することにより
(∂h/∂x1)(∂φ/∂x2)+(∂h/∂x2) = 0 (19)
が成立する。これより
(∂φ/∂x2) = -(∂h/∂x1)-1(∂h/∂x2) (20)
と計算されるので、これを(17)式に代入すれば
(∂f/∂x2)-(∂h/∂x2)T[(∂h/∂x1)
-1]T(∂f/∂x1) = 0 (21)
が得られる。ここで、
-(∂f/∂x1)T(∂h/∂x1)
-1 = λoT (22)
とおけば、(21)式は
8
(∂f/∂x2)+(∂h/∂x2)Tλo = 0 (23)
と書ける。また(22)式より
(∂f/∂x1)+(∂h/∂x1)Tλo = 0 (24)
が得られる。結局(23), (24)式をまとめれば
(∂f/∂x)+(∂h/∂x)Tλo = 0 (25)
となる。上式は(13)式の定義より、
▽xL(xo, λo) = 0 (26)
にほかならないことがわかる。
ラグランジュ乗数は、一見便宜的に導入されただけのもののように思えるが、以下に示すようにそ
れよりはもっと深い意味をもっている。いま、[定理 4]の条件から最適解xoが得られたとする。この時、
h(xo)=0 の右辺の値がわずかに変化して y になったとする。即ち
h(xo) = y (27)
になったとする。この時、xo近傍での f(x)の最適値の y に対する変化率は、
(∂f/∂y) = (∂x/∂y)T(∂f/∂x)
= -(∂x/∂y)T(∂h/∂x)Tλo (28)
で与えられる。一方、(27)式より
(∂h/∂x)(∂x/∂y) = I (29)
9
と計算されるので、これを上式に代入すれば
(∂f/∂y) = -λo (30)
が得られる。これは制約条件の右辺の変化に対する最適値の変化率がラグランジュ乗数に負号を付
けたものによって与えられることを示している。
(例 2) 温度 T、圧力 poの流体を n段の断熱圧縮により pnまで圧縮する場合、各段の圧縮比をど
の様にすれば最少のエネルギーになるか。
(解答) 各段の圧力を piとすると各圧縮比 riは
ri = pi/pi-1, (i=1, .., n) (31)
で与えられる。このとき各段で断熱圧縮に要するエネルギー、Eiは
Ei = NRTγ/(1-γ)(ri(γ-1)/γ-1), (i=1, .., n) (32)
で計算されるので、全体では
E = Σi Ei = NRTγ/(1-γ)(Σi ri(γ-1)/γ-n) (33)
となる。ここで、γは定圧比熱 cpと定容比熱 cy の比、R はガス恒数、T は絶対温度、N はモル数を表
す。一方、
Πi ri = pn/po (34)
であるから、
K = NRTγ/(1-γ), k = (γ-1)/γ, r = pn/po
10
とおくと、問題は、制約条件、Πiri = rの下で目的関数、E = K(Σi rik-n)を最小化する等号制約下
での最適問題として定式化される。従って、このラグランジュ関数を
L(r, λ) = K(Σi rik-n)+λ(Πi ri-r) (35)
で定義し、これを riで微分したものをゼロとおけば、
(∂L/∂ri) = Kkrik-1+λ(r1r2・・・ri-1r1+1・・・rn)
= Kkrik-1+λr/ri = 0, (i=1, .., n) (36)
となる。ここで ri≠0 であるから、上式に riをかけると
rik = -λr/Kk = 一定 , (i=1, .., n) (37)
を得る。すなわち各段の圧縮比の等しい場合が最小エネルギーとなる。
3.2 不等号制約条件の場合
(p.4) Max f(x) subject to g(x)≧0
で表されるような最適化問題を取り上げ、これが x=xo で最
適解となるための条件について考える。
まず Fig.3 に点Aで示すような外向きの尖点となる境界
上の特異点の存在を排除するため、制約想定(constraint
qualification)と呼ばれる正則条件を仮定しておく。次いで
先と同様に、ラグランジュ関数 L を
L(x, λ) = f(x)+λTg(x) (38)
で定義する。さらに f 及び g に連続微分可能性を仮定するとき、xoが(p.4)の最適解であるための必
Fig.3 ラグランジュ乗数が存在しない例
x2
g1=0
f=5
g3=0f=1
x1
x*
g2=0A
x2
g1=0
f=5
g3=0f=1
x1
x*
g2=0
x2
g1=0
f=5
g3=0f=1
x1
x*
g2=0A
11
要条件は
[定理 5] (Kuhn-Tucker の条件)
▽xL(xo, λo) = 0
λoTg(xo) = 0 (39)
g(xo)≧0
λo≧0
で与えられる。
(略証) もし xoが g(x)≧0 の内点であれば、制約式とは独立に▽f(xo) = 0 から得られる。この場
合には λo=0 とすれば上の条件は全て成り立つ。一方、xoが境界上の点(このとき等号条件が成立す
るものを gaで表す)なら、
-▽f(xo) = λaoT▽ga(xo) (40)
とできる λao(≧0)が存在する。この λa
oにゼロ成分を加えたものを λoと表せば、(39)式はある λo(≧0)
に対して
-▽f(xo) = λoT▽g(xo) (41)
と書ける。この結果、
▽xL(xo, λo) = ▽f(xo)+λoT▽g(xo) = 0 (42)
が得られ、この他の条件も成立することも容易にわかる。
ここで、等号制約の場合のラグランジュ乗数の符号は不定であったが、今の場合には非負となる。
これは、▽f が制約式の負方向の勾配ベクトル -▽gによって形成される錐体の内部になければ、活
性となっている制約式のあるものの内部方向に進むことで評価関数値をさらに改善できる可能性が
あることになるからである。(Fig.4参照)
また本節では、関数 f, gの微分可能性の仮定の上に最適性の必要条件について述べたが、前節
Fig.4 Kuhn-Tuckerの条件の図的表現
x2
x1
)(2∗∆− xg a
0)(2 =− xg a
)( ∗∇− xf
)( ∗∇ xf
0)(2 =− xg a
)(1∗∇− xg a
x2
x1
)(2∗∆− xg a
0)(2 =− xg a
)( ∗∇− xf
)( ∗∇ xf
0)(2 =− xg a
)(1∗∇− xg a
12
の制約条件なしの議論と同様、もし f, g が凸関数である場合には、これらが十分条件ともなる事が示
される。
(例 3) 1バッチ時間に上限がある場合に(例 1)の最適設計について考察せよ。
(解) 時間の上限に関する制約式を、t≦T で表すとすれば、
L(t, q) = cT+λ(t-T) (43)
となり、[定理 5]の必要条件を適用すれば、ここでの必要条件は、
∂L/∂t = copr/q-3(ccycb/a)t-b-1-(kb/a)qt-b-1+λ = 0 (44)
∂L/∂q=-coprt/q2+(k/a)t-b = 0 (45)
λ(t-T) = 0 (46)
で与えられる。
ここで λ=0のときは、先の場合と同じ停留条件となる。従って、(12)式で求められるようなTが、t≦T
を満たすときには最適解は変らない。
一方、λ≠0 のとき、換言すれば、そのような t が、t>T となるときには、t=T でなければならないこと
になる。そしてこのときの生産量は、
q = √copr(a/k)Tb+1 (47)
で与えられる。
3.3 線形計画問題と鞍点
線形計画問題、“(p.5) Max cTx subject to Ax≦b” も、一つの不等号制約条件下での最適
化問題とみなす事ができる。前節での議論に従えばラグランジュ関数は、
13
L(x, λ) = cTx+λT(b-Ax) (48)
で定義される。関数 L について
L(x, λ*) ≦ L(x*, λ*) ≦ L(x*, λ) (49)
を満たす組(x*, λ*)は鞍点と呼ばれる。この時、次の定理が成立する。
[定理 6]x*が(p.5)の最適解で、λ*がその双対問題、 “(p.6) Min bTλ subject to ATx≧c” の
最適解であるための必要十分条件は、組(x*, λ*)が関数 L(x, λ)の鞍点となることである。(証明略)
上の定理と Fig.3 を重ねて眺めてみれば、既に述べた線形計画問題の双対定理の意味するとこ
ろの幾何学的解釈が可能となるであろう。
また、この条件は一般の最適化問題において、関数の微分可能性を前提としない最適性の判定
条件を与える事にも注意しておこう。
14
[PART 2] 最適化手法
1. はじめに
既に見てきたように最適性の必要条件は、制約条件がない場合は目的関数の、ある場合はラグランジュ
関数の停留条件として与えられた。従ってもしこれらが解析的に解ける場合には、直ちに最適点を求める
ことができる。しかし実際には解析解が得られることは希であり、以下に述べるような数値的解法に頼らざ
るを得ない。これには、
(1)何らかの合理性をもって直接的に探索する方法と、
(2)情報源として関数の微分(勾配)を利用するもの
に大別される。
2. 制約条件がない場合の最適化手法
2.1 スカラ値関数の最小化
ここでの問題は以下のように与えられる。
(p.1) Minimamize f(x), f:R1→R1
一変数の関数の最小点をさがす直線探索(一次元探索)は、種々の問題に応用できる有用な手法の
基礎となるものであり、制約条件のない最適化問題における、最も重要な手法の一つである。
15
(定義) 関数 f(x)が区間(a, b)において唯一の停留点(最大点または最小点)をもつとき、a≦x≦bにおい
て単峰(unimodal)であるという。
この節では、停留値は常に最小値であり、関数f は連続であるとだけ仮定し、その値のみを使用して与
えられた単峰性の関数の停留点を求める方法について考える。
2.1.1 黄金分割による探索
アルゴリズムを与える前にまず “各ステップごとに、最小点を含む区間の幅を一定の比率τで減らせる
ようにできるか?”という問題を考えてみる。
ある段階における区間を(a(i), b(i))とし、関数値を評価する点をx1(i), x2
(i), (x1(i)< x2
(i) )とする。
このとき、上の条件よりこれらの点は次式を満たしていなければならない。
τ=−−
=−−
)()(
)(1
)(
)()(
)()(2
ii
ii
ii
ii
abxb
abax
(1)
となる。したがって
)(2
)()()(1
iiii xbax −=− (2)
となる。いま一般性を失うことなく
)()( )(1
)(2
ii xfxf > とすると
)(2
)1( ii xb =+ (3)
Fig.1 f(x)が(a,b)で単峰性かつf(x1)<f(x2)のとき、
可能な2種類の最小点の存在位置
x1 x2a b
最小点
•
• •
•
•
x1 x2a b
最小点
•
••
•
•
Fig.1 f(x)が(a,b)で単峰性かつf(x1)<f(x2)のとき、
可能な2種類の最小点の存在位置
x1 x2a b
最小点
•
• •
•
•
x1 x2a b
最小点
•
••
•
•
x1 x2a b
最小点
•
• •
•
•
x1 x2a b
最小点
•
• •
•
•
x1 x2a b
最小点
•
••
•
•
x1 x2a b
最小点
•
••
•
•
16
および
)()1( ii aa =+ (4)
となる。さらに
)(1
)1(2
ii xx =+ (5)
とすることにする。このとき、次ステップにおいても式(1)の関係を保つためには
)()(
)()(2
)()(2
)()(1
)()(2
)()1(2
ii
ii
ii
ii
ii
ii
abax
axax
axax
−−
==−−
=−−+
τ (6)
でなければならない。さらに式(2)は
)( )()(2
)()()()(1
iiiiii axabax −−−=− (7)
であるから、この両辺を)()(
2ii ax − で割ると
τ/11)/()( )()(2
)()(1 +−=−− iiii axax (8)
となり、ここで式(6)の第2項に注目すれば、結局
012 =−+ττ (9)
を得る。この方程式は正の解
2/)15( −=τ ≒ 618.0 (10)
をもつので、実際に区間幅を一定割合τ で減らせることができることがわかる。
17
以上の手順のアルゴリズム化は単純で、以下の2通りの場合に応じた探索を行えば良い。
① )()( )(1
)(2
ii xfxf > のとき
)(
2)1( ii xb =+
)(1
)1(2
ii xx =+
))(1( )()1()()1(1
iiii abax −−+= ++ τ
② )()( )(1
)(2
ii xfxf ≦ のとき
)(1
)1( ii xa =+
)(2
)1(1
ii xx =+
))(1( )1()()()1(2
++ −−−= iiii abbx τ
このアルゴリズムでは、各回の探索点は区間の黄金分割(Golden section)比となっているのでこの名が
ある。なおn回だけ関数値を評価した後の区間幅は
1)1()1()()( )( −−=− nnn abab τ (11)
となる。
2.1.2 Fibona㏄i探索
“一次元探索の中で、関数値を評価する回数がきまっているとき、最初の区間幅[a, b]と最後のそれの
比が最大になるという意味で、最適なアルゴリズム(もしあれば)は何か?”という問題を考えてみよう。これ
18
は最後の区間幅が単位長さになる場合に、最初の区間幅を最大にするアルゴリズムを見い出すことと同
じである。この問題についてはKieferやJohnsonなどが検討している。
n回の関数値の評価によって単位長さの区間に縮小できる最大の区間をLnとする。最小点をさがす過
程の最初の2個の関数値を評価する2点をx1, x2(x1 < x2)とすると、最小点が(a, x1)の中にあるときは、その
区間を減少させるには、あとたかだか(n-2)回の評価しか利用できず、したがって、x1-a≦Ln-2となる。
一方、最小値が(x1, b)の中にあるときは、b-x1≦Ln-1となる(x2はこの区間内にあり、(n-1)回の関数値の
評価が残っている)。以上から次式を得る。
Ln≦ Ln-1+Ln-2 (12)
したがって、Lnの最大値は、Ln-1+Ln-2で与えられ、つぎの循環式が
Fn = Fn-1+Fn-2, F0=F1=1 (13)
解をもつとき、それが最適であることがわかる。このようなFiをFibonacci数という。
いま、あらかじめきめられた関数値の評価回数をNとするときのアルゴリズムは、つぎのようになる。
x1(i)= (FN-i/FN-i+2) (b(i)-a(i) )+a(i) (14)
x2(i)= (FN-i+1/FN-i+2) (b(i)-a(i) )+a(i) (15)
ここで、i=1, 2, …, N とする。また
x2(i)-a(i)= b(i)-x1
(i)= (FN-i+1/FN-i+2) (b(i)-a(i) ) (16)
であるから、N回の計算によって縮小できる区間の長さは以下で与えられる。
19
))(/( )1()1(21
1
1abFF iNiN
N
i−= +−+−
−
=πδ (17)
= 2(b(1)-a(1))/FN+1 (18)
(上のアルゴリズムによって区間幅の最適な減少が与えられることの証明になっている。)
次に黄金分割のアルゴリズムとFibona㏄i数を基礎とするアルゴリズムの間で探索効率の比較をしてみ
る。まず、十分大きなNに対してr2-r-1=0が成立することに注意すれば
τ==−∞→rFF NNN
/1/lim 1 (19)
であるから、これら2種類のアルゴリズムは、漸近的に等しい減少率を与えることがわかる。さらに、いま
Gi=1/τi-1 = ri-1とおくと、Giは循環式
Gi+1 = Gi+Gi-1 (20)
を満たし、初期条件に対しては
G0 =τ(<1), G1 = 1 (21)
となる。したがって、N >1に対して次式が成り立つ。
GN < FN < GN+1 (22)
これらのことから、黄金分割によるアルゴリズムも、Fibona㏄i数によるアルゴリズムも、ほとんど差がないこと
が示される。さらに実行手順は黄金分割のアルゴリズムのほうがより単純であり、またあらかじめNをきめて
おく必要もないので、実用上は好ましいといえる。
20
(例 1) 管型反応器のhot spotの発見
管型反応器の触媒の交換は、その反応器が最高温度となる“hot spot”の位置情報を利用して決定さ
れる。触媒が新しいときは、hot spotは管の入口近傍にあり、触媒が古くなるにつれhot spotは出口のほう
へと移行する。温度は半径方向には一様であり、hot spotは入口から1000と1250mmの間にあることが予知
できると仮定して、5回の逐次実験でhot spotの位置を見いだせ。
(解) まずFibonacci法を用いて存在範囲を絞り込み、最終の3点に対して温度Tをxの2次方程式によっ
て関数近似し、そのTの最大値に対応する値を求めるxとする。
探索点の計算および実験結果の過程をTable 1に示す。これよりさらに、実験番号3、4および5におけ
るデータを用いて2次関数、
T(x)= a0+a1x+a2x2, 1192.2≦x≦1230.5 (23)
への当てはめより、x7=1204.9およびT(x7)=355.6℃をうる。
Table 1 実験結果の過程
実験番号 k 1 2 3 4 5 Result
Ik, (存在区間) 1000mm 1000 1096.1 1153.9 1192.2 1192.2
1250mm 1250 1250 1250 1250 1230.5
除去幅 - 96.1 57.8 38.3 19.5 -
xk, 位置 1096.1 1153.9 1192.2 1211.7 1230.5 1204.9
T(xk), 温度℃ 326.5 338.5 350 354 333 355.6
Fn-k+2 - 8 5 3 2 -
Ik/I0=Fn-k+2/Fn+1 - 8/13 5/13 3/13 2/13 -
21
2.2 ベクトル値関数の最小化
ここでの問題は以下のように与えられる。
(p.2) Minimize f(x), f: Rn→R1
2.2.1 シンプレックス法
シンプレックス法は、最初Himsworth、Spendley、Hextの3人によって紹介され、のちにNelderとMeadに
よって発展された方法で、単体(シンプレックス; simplex)とよばれる幾何学的な図形がおもな役割を果た
す。この方法の基本的な考え方は、シンプレックスのある1点に着目した時、残りの点で張られる超平面に
関する鏡像をとることによって、新しいシンプレックスを容易に形成することができる点である。さらに、シン
プレックスの頂点の中で、関数値が最も大きいものを選べば、それの鏡像の点における関数値は小さくな
るであろうと予想できる。この予想が正しければ、このプロセスを続けることによって、シンプレックスを最小
点に近づけることが期待できる。
こうした考え方をさらに進め、NelderとMeadは、より柔軟な方法、すなわち、シンプレックスの大きさと形
をかえることによって目的関数の局部的な性質に応じてシンプレックスを適応させていくことができるように
した。アルゴリズムを構成する前にシンプレックスの各頂点xi の中から以下のものを特定する。
(a) xh は、 )(max)( i
i
h xfxf = 、 (i=1, 2, ..., n+1)に対応する点
(b) xs は、 )(max)( i
i
s xfxf = (i≠h, i=1, 2, ..., n+1)に対応する点
22
(c) xl は、 )(max)( i
i
l xfxf = 、 (i=1, 2, ..., n+1)に対応する点
(d) x0 は、i≠hである単点のxiの図心、すなわち
∑≠=
+=hii
in n,1
10 /)( xx (24)
つぎに、この方法で用いる3種の操作を定義する。(Fig.2 参照)
(1)鏡像(reflection): xh をつぎの xr でおきかえる操作のことである。
xr=(1+α)x0-αxh (25)
ここに、α(>0)は、鏡像係数といわれ、距離 [xrx0] と距離 [xhx0]の比である。
(2)拡張(expansion): 点x0の方向に、その点をこえて試行点をさらに移動することで関数値の改良がさら
に期待できるときは、次式による拡張を行なう。
xe=γxr+(1-γ)x0 (26)
ここに、γ(>1)は、拡張係数といわれ、距離 [xex0] と距離 [xrx0]の比である。
(3)収縮(contraction):xhを以下のxcにおきかえる操作は収縮と呼ばれる。
xc=βxh+(1-β)x0 (27)
ここに、収縮係数β(0<β<1)は、距離 [xcx0] と距離 [xhx0]の比である。
すでに述べたように、この方法では、最小点へ向かってシンプレックスの形体を変化(移動、拡張)させ
23
ながら、収縮していくと考えられ、この過程はつぎの順序で行なわれる。
① 最初のシンプレックスをつくり、各頂点での関数値を求めてxh, xs, xl, x0をきめる。
② 最初に鏡像を行ない、求められた点xrの関数値を定める 。
③ f(xs)≧f(xr)≧f(xl)の場合は、xhをxrにおきかえて新しくつくられたシンプレックスについて手続きを繰り
返す。
④ 一方、f(xr)<f(xl) となる場合は、xr-x0方向へ試行点をさらに移動することにより、より小さな関数値が
得られると期待される。そこで、新しくできたシンプレックスをこの方向に拡張してみて、f(xr)>f(xe)であれ
ば成功であったと考え、xhをxeにおきかえる。
失敗の場合はxhをxrにおきかえる。いずれにしても、こうしてつくられた新しいシンプレックスに対して手
続きを繰り返す。
⑤ 鏡像によって、f(xh)≧f(xr)≧f(xs)となるxrが得られたときは、xhをxrとおきかえたうえで収縮の操作を行
なう。f(xr)≧f(xh)の場合は、このおきかえを行なわないで収縮を行なう。この操作を行なったあと、f(xh)と
f(xc)を比較してみて、f(xh)>f(xc)であれば収縮は成功したことになり、xhをxcにおきかえ、新しいシンプレッ
クスについて手続きを繰り返す。
失敗の場合、すなわちf(xh)≦f(xc)のときは、シンプレックスを関数値の最も小さい点xlの方向へ縮小す
る。すなわち
xi:=(xi+xl)/2 (i=1, 2, ・・, n+1, i≠l) (28)
24
として、新しいシンプレックスについて手続きを始める。
Ne1derとMeadは、停止の条件として、次式を提唱している。
εnnffn
i
n
jj <++−∑ ∑
+
=
+
=
1/21
1
1
1
2i ]1)}/(1)))/(()(([{ xx (29)
ここに、εはあらかじめきめられた小さな数である。
2.2.2 こう配法(山登り法)
(1)最大傾斜法
関数f(x)の探索点xkにおけるこう配ベクトルをgk=(▽f(xk))T
により表わす。このとき-gkは局部的には関数値が、最急
降下の方向を表わす。-gkの方向に探索点数列{xk}を、
xk+1= xk-tgk, t >0, k=0, 1, … (30)
Fig.2 2次元の場合について操作を図示
(a)鏡像 (b)拡張 (c)収縮
xh xh xh
x0 x0 x0
xr xr xe
xe•
•
Fig.2 2次元の場合について操作を図示
(a)鏡像 (b)拡張 (c)収縮
xh xh xh
x0 x0 x0
xr xr xe
xe•
•
0 1 2 3 4 5
3
2
4
5
6
9
10
7
8
第2中
間段
p 3(at
m)
第1中間段 p2(atm)
Fig,3 探索過程
E=2.70
2.65
2.60
2.59
2.58
0 1 2 3 4 5
3
2
4
5
6
9
10
7
8
第2中
間段
p 3(at
m)
第1中間段 p2(atm)
Fig,3 探索過程
E=2.70
2.65
2.60
2.59
2.58
25
により計算する方法を、一般に最大傾斜法(maximum gradient method)とよぶ。ここで、tは適当に与えら
れるステップ幅で、これを
0
min>t
f(xk-tgk)=f(xk+1), k=0, 1, … (31)
として決定する方法は、最適こう配法とよばれる。このステップ幅の最適値t*は、f(x-tg)を一般に数値的
に最小化して求められる。このために既に述べた一次元探索法が利用できる。
(例 2) 終圧が10atmの3段圧縮機の所用全エネルギーを最小とする2段入口圧p2および3段入口圧p3を
最適傾斜法によって求めよ。
(解) 問題の3段圧縮機の全仕事量Eは次式で計算される。
E=NRTγ/(γ-1)[(p2/p1)(γ-1)/γ +(p3/p2)(γ-1)/γ+(p4/p3)(γ-1)/γ-3] (32)
ここでNはkg-mo1数、Rはガス定数、Tは絶対温度°K、γ=cp/cvである。(計算には、NRT1=1、 γ=1.4を用
いよ)
Eを最小とするp2、p3の探索において、p2およびp3に関するEの偏徴係数は以下のように計算される。
∂E/∂p2= NRT1(p1(1-γ)/γ p2
-1/γ-p3(γ-1)/γp2
(1-2γ)/γ) (33)
∂E/∂p3= NRT1(p2(1-γ)/γ p3
-1/γ-p3(1-2γ)/γp4
(γ-1)/γ) (34)
上式に、NRT1=1、 p1=1、 p2=4、 p3=7、 p4=10、 およびγ=1.4を代入し、中間圧としてp2=4および
p3=7atmを探索の初期値とすれば、∂E/∂p2=0.079, ∂E/∂p3=0.009 となる。ここでステップ幅tを
t=0.05/(∂E/∂p3)kとした時の第一段階における探索過程をTable 2に示す。
26
第4ステップで現在の探索方向の最
小値が得られており、次段階では、この
点での傾斜を計算し、以下同様の手順
により、Fig.3に示す探索過程を経て最
適点に至る。なお今の場合p2およびp3の最適値は、解析的に式(33), (34)をゼロに等置して次のように求
められる。
p2=(p12p4)1/3 =2.154 (35)
p3=(p42p1)1/3 =4.642 (36)
(2)共役傾斜法
最大傾斜法における各段階の探索方向は互いに独立とならないため一般的にあまりよい性能を示さな
い。このため連続するt個、(t≦n)の探索方向が互いに線形独立となるような共役方向を利用する最小化
法(共役傾斜法)が考えられた。共役傾斜法は、現在使われている一般的な最小化法の中で最も有力な
方法の一つとされている。ただしこれは、最適化の手法を適用する関数が、最小点の近傍では2次形式
で十分に近似できるという仮定に基づいている。
(共役方向を使う傾斜法は、厳密には2次形式に対してのみ適用できる。)
[定義] 正値行列Aに対して、2つの方向を表わすベクトルu、vが
uTAv = 0 (37)
Table.2 計算結果(第一段階)
k p2 p3 E 1 4.00 7.00 2.681 2 3.56 6.95 2.653 3 3.15 6.90 2.629 4 2.68 6.85 2.615 ← 最小値 5 2.24 6.80 2.622
27
を満たすとき、“方向uおよびvは正値行列Aに関して共役(Conjugate)である"という。以後混乱のおそれが
ない場合は、単に“uとvは共役である”という。
そしてd1、d2、…、dnが正値行列Aに関して互いに共役なベクトルであるとき、以下の性質が成りたつ。
〔定理2.1〕 2次形式
F = a+bTx+(1/2)xTAx (38)
の最小点は、任意の出発点x(0)から、各ベクトルdiを、降下の方向として1回ずつ使って、有限回の降下ス
テップの計算によって求められる。またこのときdiを使う順番は関係しない。
(証)i=nとするとgn+1は一次独立なd1, d2, …, dnと直交するので、恒等的に0となる。gn+1(xn+1)=0すなわち
xn+1で最適となる.
[補助定理2.1] d1, d2, …, dnが互いに共役ならばこれらは一次独立となる。
(証)di(≠0)は一次独立でないと仮定する。すると全ては0でない定数ciに対して、Σicidi=0 が成立する。い
まcs≠0とし、この両辺にdsTA=を乗じるとds
TAds=0となる。Aは正定値行列よりds=0となり矛盾する。よって
di(i=1, .., n)は一次独立となる。
[補助定理2.2] 点x(i+1)を、式(38)の2次形式にi回の降下ステップを行なった結果到達した点とすると
dsTgi+1 = ds
Tgs+1+ ∑+=
i
sjj
Tsjλ
1Add
= 0, s=1, 2, ..., i (39)
28
となる。ここに
gi+1 = ▽F(x(i+1))
= Ax(i+1)+ b
= A(x(s+1)+ ∑+=
+i
sjjj
1) bdλ
= gs+1+ ∑+=
i
sjjj
1Adλ (40)
である。
そして実際の探索に必要な共役方向は
(1)ある線上で関数の最小値を求めることができ、かつ
(2)その点でのこう配ベクトルを求めることができる
という条件の下で求めることができる。
この代表的な手法の一つであるF1etcher-Reevesの方法のアルゴリズムをまとめるとつぎのようにな
る。
① g1=(▽F(x(1)))を求め、d1=-g1とする。
② i=2, 3, …, n+2について
(a) x(i)=x(i-1)+λi-1di-1とする。ここで
29
(b) λi-1は、qi-1(λ)=F(xi-1+λdi-1)を最小にする値である。
(c) gi=▽F(x(i))とする
(d) i=n+2でないときは
di=-gi+{(gi)Tgi/(gi-1)Tgi-1}di-1
とし、(a)にもどる。
③ x(1)をx(n+2)でおきかえ、①へもどる。
2.2.3 ニュートン・ラフソン法
二次導関数を用いる関数最小化法としてニュートン・ラフソン法が良く知られている。この基本的な考
え方は、非線形関数φ(t)の根を求めるニュートン法に基づいている。
いま、 tをφ(t)=0の根の推定値とする。φ'(t)≠0の場合は、φ(t)をtの近傍でテーラ展開して
0=φ(t)≒φ(t)+(t-t)φ'(t) (41)
より
t≒t-φ(t)/φ'(t) (42)
から、新しい根の推定値が求められる。この考え方を最適性の必要条件▽F(x)T=0を満たす解の導出に
応用したものが、ニュートン・ラフソン(Newton-Raphson)法である。
すなわち、探索点列{x(k)}( k=O, 1, …)を
30
0=▽F(x(k+1))T≒▽F(x(k))T+H(x(k))(x(k+1)-x(k)) (43)
から、H-1(x(k))が存在するという仮定の下で
x(k+1)= x(k)-H-1(x(k))▽F(x(k))T (44)
により順次生成していく解法である。
ニュートン・ラフソン法では、目的関数が正定のヘシヤンHを有する二次関数のときは、x(0)より1ステップ
で、関数の最小点が求まる。この方法は、最大傾斜法より収束速度がはやくて、一見すぐれているように
みえるが、ヘシヤンの逆行列を計算しなければならないので、計算手順はずっと複雑になり、計算時間は
必ずしも短くなるとはいえない。
3. 制約条件付きの最適化手法
ここでは以下に与えられる問題を取り上げる。
(p.3) Minimize f(x) subject to g(x)≦0
3.1 コンプレックス法
Boxは、以下の制約条件を満たす領域は凸であり、少なくとも1個の実行可能な点があると仮定した上で、
不等式制約条件
xLi≦xi≦xU
i, i=1, 2, …, (45)
Gj≦φj(x)≦Hj, j=1, 2, …, (46)
x0
x0r
•
Fig.4 過剰鏡像の手続き
xh
x0
x0r
•
Fig.4 過剰鏡像の手続き
xh
31
のもとでの最適化問題に対してシンプレックス法を拡張したコンプレックス法とよばれる方法を提案してい
る。ここにxLi, xU
i, Gj, Hjは下限・上限値である。
シンプレックス法が(n+1)個の頂点を使うのに対して、この方法は、k個、(k>n+1)の頂点をもつ基準形で
ないコンプレックス(comp1ex)を用いる。これはk=n+1個の頂点をもつコンプレックスを用いると、とくに制約
条件の近傍では、それに平行な超平面上に平らになり、制約条件が重なると動けなくなり、その部分空間
から抜けだせなくなる傾向があるためである。
またコンプレックス法で用いる基本的な操作は、xhを次式で定義されるx0rにおきかえる過剰鏡像(over-
reflection)である。
x0r=(1+α)x0-αxh (47)
ここに、α>1, xhは最大の関数値をもつ頂点、x0は残りの頂点の重心である。2次元の場合の例をk=4として
Fig.4に示す。(経験則としてk=2n, α=1.3がよいとされる)
コンプレックス法のアルゴリズムをつぎに示す。
①実行可能な一つの点と次式によって定められる(k-1)個の点から初期のコンプレックスを与える。
xi=xiL+ri(xU
i-xLi) (48)
ここに、riは[0, 1]の区間で一様な擬似乱数である。式(48)でつくった点が制約条件(46)を満たさない場
合は、その点を、条件をすでに満たしている頂点の図心の方向へ動かせば、最終的には実行可能な点
が見いだせる。
32
②過剰鏡像を行ない新しいコンプレックスを作る。ただし、これによって求められた試行点が、最大の関数
値を与える場合は、残りの点の図心の方向への中間点まで移動し、これを新しい試行点とする。この手続
きを、制約条件が犯されるようになるまで繰り返す。
③過剰鏡像が陽な制約条件(45)を犯すときは、境界の点におきかえる。陰な制約条件(46)を犯すときは、
試行点を残りの点の図心の方向の中間点まで動かす。これを全ての制約条件を満たす点が見つかるま
で繰り返す。
Boxによって提案されている停止条件は、ひきつづいて評価された関数値の差が、あらかじめ定めてお
いた誤差範囲より小さくなったとき探索を終了するというものである。
3.2 ペナルティ関数法
制約条件なしの最小化問題の方が制約条件つき問題より求解は容易なため、なんらかの方法で後者
を前者に帰着させる試みがいろいろと提案されている。制約条件が簡単な場合には、単なる変数変換に
より制約条件を取り除くことができる。
たとえば、|x|≦1をx=cosθ、x≧0をx=eyのようにする例があげられる。しかし、このような変数変換法は一
般的でないし、変換の結果、目的関数の望ましい性質が失われることもある。
こうした考え方をより一般に適用できるようにしたものがペナルティ関数法である。この方法では、制約条
件式の一部(または全部)を目的関数に組み込み(普通はf(x)に加える)、xが条件を満たさないときには、
それだけ目的関数の値が(罰(Penalty)として)悪化するようにする。たとえば(p.3)を
33
(p.4) min F(x, k)=f(x)+ ∑=
m
ik
1
[max(gi(x), 0]a, k>0, α≧1 (49)
で与えられる制約条件なし最小化問題で置き換える。この時、xが制約条件を満たす限り、
f(x)=F(x, k) (50)
であり、一方、これを犯すときは
F(x, k)>f(x) (51)
となる。ある仮定の下で、kを適当な数列{kj}、kj↑∞として与えることで(p.4)の最小点を漸近的に求めるこ
とができる。このような方法は、制約条件の境界の外部から最小点に近づいていくため外点法(exterior
point method)とよばれる。
一方、反対に内部から近づいていく解法は、内点(interior point)法とよばれる。このうちFiaccoと
McCormickの方法(SUMT)が広く知られている。
この方法では、ペナルティを含む目的関数を
F(x, k)=f(x)- ∑=
m
ik
1
1/gi(x), k>0 (52)
で与える。xが内部より境界に近づくにつれて、大きな正数がf(x)の値に付加される。
式(52)のkを数列{kj}、kj↓0で与え、F(x, kj)の最小点を、x*(kj)とすると、適当な仮定の下で、
∑=
∗
∞→=
m
ijijj
kxgk1
0))((/1lim (53)
34
)()),((lim ∗∗
∞→= xfkkxF jjj
(54)
が成りたつ。
3.3 一般縮小勾配法
P.Wolfeによる縮小勾配法(reduced gradient method)につづいて、J.AbadieとJ.Carpenter は1969年、目
的関数のみならず制約式も非線形の場合を取り扱える、一般縮小勾配法 (Genera1ized Reduced
Gradient method)(GRG法)を提案した。
ここでは、次のような上下限制約のある非線形計画問題を考える。
(p.5) Minimize f(x) subject to =
UL xxxxh
≦≦
0)(
ここで dim x=n, dim h=m とする。
いま制約条件を満たす任意の点xにおいて、m個の基底変数のベクトルxBとn-m個の非基底変数のベ
クトルxNに対応するxL, xUの分割をxL=(xLB、xLN), xU=(xUB, xUN)とすれば、制約条件は次のように表わされ
る。
xBL≦xB≦xB
U, xNL≦xN≦xN
U (55)
h(xB, xN)= 0 (56)
また、行列▽xh(x)の基底行列(basis matrix)
B(x)=▽xBh(x) (57)
35
は正則であるという非退化の仮定(nondegeneracy assumption)をおく。
この時、もとの問題(p.5)は、(xB, xN)の近傍において非基底変数xNの上限xNUと下限xN
Lのみを制約とす
る次の縮小問題(reduced prob1em)に帰着する。
(p.6) Minimize f(xB(xN), xN)=F(xN) subject to xNL≦xN≦xN
U
ここで関数F(xN)は縮小目的関数と呼ばれ、その縮小勾配(reduced gradient)▽F(xN)は、次式で計算さ
れる。
▽F(xN)=▽xNf(x)+▽xBf(x)(∂xB(xN)/∂xN) (58)
また同様に式(56)より
dh(xB(xN), xN)=▽xBh(x)dxB+▽xNh(x)dxNB=0 (59)
となるので、▽xBh(x)=B(x)がxで正則であることを考慮すれば
∂xB(xN)/∂xN= B-1(x)▽xNh(x) (60)
が得られる。式(60)を式(58)に代入すれば、縮小勾配の公式
▽F(xN)=▽xNf(x)-▽xBf(x)B-1(x)▽xNh(x) (61)
が導かれる。
このように求められた縮小勾配を利用して縮小問題(p.6)を上下限を考慮した降下法で解くことにする、
いま現在の点x N (i)における方向ベクトルd N
(i)が
36
▽F(xN(i))d N
(i) < 0 (62)
を満たすように定められたとする。このときのステップ幅α(i)を、xN(i) +αdN
(i)が上下限制約を満たすようにαに
制限を加えた1次元探索問題
(p.7) 0
min>a
F(xN (i)+αd N
(i))=f(xB(xN (i)+αdN
(i)), xN (i)+αdN
(i))
subject to xNL≦xN
(i)+αdN (i)≦xN
U (63)
を解いて求める。
この計算に必要な基底変数xB(xN (i)+α(i)dN
(i))の値は、非線形方程式
h(xB, x N (i+1))= 0, x N
(i+1) =x N (i)+α(i)d N
(i) (64)
に対して擬Newton法(Pseudo Newton method)の更新公式
xB(t+1)=xB
(t)-B-1(xB(t), xN
(i+1))h(xB(t), x N
(i+1)), t=1, 2, (65)
を適用して求めればよい。
ここで擬Newton法において基底変数xBのある成分(xB)rが、上下限制約を破るときには、現在の点と前
の点との間で線形補間をして、(xB)rが上下限制約の境界上になるようにαの値を縮小する必要もある。そ
して、(xB)rの代わりに上下限制約の間にある非基底変数(xN)sを基底変数とする基底変換を行う。以上の
アルゴリズムを整理すれば以下のようになる。
① 制約式と非退化の仮定を同時に満たす初期点x(1)=(xB(1), xN
(1))を選び、i=1とする。
37
② 現在の点x(i)=(xB(i), xN
(i))において停止基準を満たせば終了。そうでなければ縮小勾配
▽F(xN(i))を計算して、適当な降下方向dN
(i)を定める。
③ 1次元探索問題
0
min>a
F(xN (i)+αdN
(i)), xNL≦xN
(i)+αdN (i)≦xN
U
を解き、ステップ幅α(i)とxN (i+1) =xN
(i) +α(i)dN (i)に対応するxB
(i+1)を求める。
ここで基底変数が上下限制約を破る場合にはα(i)を縮小して境界上の点を求め、基底を入れ替えた後、
基底変換を行う。i=i+1として手順②へもどる。
3.4 逐次2次計画法(Sequential Quadratic Programming)
ここでは以下の最適化問題を取り上げる。
0)2,,1(,0)()1,,1(,0)(
)()8.(
>===≤
xNixhNixg
tosubjectxfMinimizep
i
i
SQPを一言で述べると、制約のある問題に対するKukuhn-Tucker条件を連立非線形方程式と見なし、こ
の方程式を準Newton法で解くことにより最適解を求めようとする手法である。その基本的な考え方とアル
ゴリズムを以下に述べる。
まず(p.8)のLagrange関数は(表記の簡潔上、以下でのLagrange乗数は横ベクトルとする)、
)()()(),,( xhxgxfxL µλµλ ++= (66)
38
となり、この最適性の必要条件を与えるKuhn-Tucker条件は次式のようになる。
0)()()(),,( =∇+∇+∇=∇ xhxgxfxLx µλµλ (67)
1,,10)( Nixgii == λ (68)
0)( =xh (69)
0,0)( ≧ ≦ λxg
このとき、最適解x*に対応するLagrange関数∗∗ µλ , が存在するとき、Kuhn-Tucker条件の等式部分より、
),,( ∗∗∗ µλx に関する連立非線形方程式はそれぞれ以下のようになる。
0),,( =∇ ∗∗∗ µλxLx (70)
1,,10)( Nixgii ==∗∗ λ (71)
0)( =∗xh (72)
これらを満たす ),,( ∗∗∗ µλx を求めるためにNewton法を適用する。そのために式(70)~(72)を
),,( ∗∗∗ µλx の近傍 ),,( lllx µλ において線形近似する。次解を求めるための更新式は次のようになる。
)())((
)())(()()()())((
lll
li
li
lli
li
lllllllllxx
2
xhxxxhN1,1,i0xgλxxxgλ
xfxhμxgλxxμ,λ,xL
−=−∇
==+−∇
−∇=∇+∇+−∇
(73)
上式は次のように整理される。
39
−
∇−
=
−
∇∇
∇∇∇∇∇
+
+
+
)(
)(
00)()(0)(
0)()()()()()(
1
1
1
111
111
112
l
l
l
l
ll
l
lN
lN
lN
lll
lTlN
TlTlllxx
h
f
μ
λ
hgg
gghggμ,λ,L
x
xxx
xxx
xxxxxx
0
00
0
λ
λ (74)
しかし、ここで必要となるHess行列 ),,(2 lllxx xL µλ∇ の計算には多大な労力がいる。そこで次に示す補
助問題(p.9)を考える。
0)()(0)()(
)(21)()9.( 2
=∇+
≤∇+
∇+∇
dxhxhdxgxg
tosubject
dxfddxfMinimizep
ll
ll
lTl
この問題はlx 近傍で目的関数を2次近似し、定数項を省略し、制約式を線形近似することで得られる問
題である。(p.9)に対するLagrange関数を次に示す。ただし、
dxhvxvhdxguxugdBddxfvudL lllllTl )()()()(21)(),,( ∇++∇+++∇= (75)
ここで、 )(2 lxf∇ を行列lB 、Lagrange乗数を
lu , lv とした。この問題の、Kuhn-Tucker条件は
0,0)()(0)()(
1,,10)()(0)()()(
≥≤∇+
=∇+
==∇+
=∇+∇++∇
llll
lll
lli
li
li
li
llllll
udxgxgdxhxh
NidxguxguxhvxgudBxf
(76)
となる。式(76)のKuhn-Tucker条件の等式部分を行列式形式で表すと次のようになる。
40
−
∇−
=
∇∇
∇∇∇∇
)(
)(
00)()(0)(
0)()()()()(
111
111
11
l
l
l
l
l
l
lN
lN
lN
lll
lTlN
TlTl f
ggu
ggugg
xh
0
x
v
u
d
0xh0xx
0xxxhxxB
(77)
ここで式(74)と式(77)を比較して、111 +++ =≅=−= llllllll vuxxd µλλ ,, に留意すれば、
式(74)中のlB は式(77)の ),,(2 lll
xx xL µλ∇ と同等であることがわかる。ここでlB を求める式はBFGS
(Broydon-Fletcher-Goldfarb-Shanno)の公式より次式のように与えられる。
llTl
lTlll
lTl
Tllll
pBpBppB
pqqqBB
)()(
)()(1 −+=+
(78)
ただし、
)()()(),,(
),,(),,( 1
1
xhvxguxfvuxLvuxLvuxLq
xxp
Tx
lllTx
lllTx
l
lll
∇+∇+∇=∇
∇−∇=
−=+
+
以上より、SQPのアルゴリズムを以下にまとめる。
Step 0: 初期点lx 及び
lB を与える。 0=l (反復回数)とする。
Step 1: 次のQP部分問題をd について解く(内部反復)。
2,,1,0)()(
1,,1,0)()(
)(21
NjdxhxhNidxgxg
tosubject
dxfdBdMinimize
Tli
li
Tli
li
TllT
==∇+
=≤∇+
∇+
この問題の解をld とし(探索方向の決定)、不等号制約条件、等号制約条件に対するLagrange乗数ベ
41
クトルをそれぞれ1+lλ , 1+lµ とする。
Step 2 ),,( 11 ++ lllx µλ がもとの問題に対するKuhn-Tucker条件を満たしていれば停止する。さもなければ
Step 3へ行く。(収束判定)
Step 3 lll dxx +=+1とする。
Step 4 行列 lB を更新して 1+lB を生成する。 1+= ll としてStep 1へ行く。(外部反復)
なお、Step 0でのlB は単位行列Iを用いる。さらにStep 3では、制約条件を破らないように目的関数
)(xf にペナルティ項を付け加えた目的関数
])(,,)(,)(,,)(,0max[)()( 11 xxxxxx lm hhggf δθδ += (79)
を導入して、充分大きなδ>0を設定して1次元探索問題
)(Minimize ll dx αθδ + (80)
を解き、ステップ幅αを求め、次の点をlll dα+=+ xx 1とする。
4. おわりに
非線形計画問題に対しては線形計画問題における、内点法やシンプレックス法のような真に実用的解
法(大規模問題について、大域的最適解を有限回数で解ける)は、いまだ存在していない。最適化技術
の役割が今後ますます増えていくことが予想される中で現実のほとんどのシステムは非線形であることを
考えれば、非線形システムの最適化手法の新しい開発と応用が望まれる。