Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
39
第4章 制約付き最適化問題
4.1 制約付き最適化問題この章では,関数を最小化する際に変数に制約の付いた問題を扱う.
例 18. 例 8 の問題を再掲する.
最大化 f(x, y) := xy
制約 x+ y = 4, x ! 0, y ! 0
となる.ここで x+ y = 4 より,
xy = x(4"x) = "x2+4x = "(x"2)2+4
となる.0 x
y
A
B
C
点が A :(1, 3) # B :(2, 2) # C :(3, 1) と動くとき,関数 f(x, y) = xy の値は,
(x, y) A B C
f(x, y) 3 $ 4 % 3
と変化する.よって x + y = 4 を満たす点で B に近いものの中では,B においてf(x, y) の関数値が一番大きくなる.
このような点を制約無しの最適化問題と同様に局所最大解と呼ぶ. さらに, B はすべての点に対しても最大解にもなっている. このような点を大域最大解と呼ぶ. したがって題意を満たす一辺が 2 の正方形のとき面積が最大になる.
制約付き最小化問題の定義
以下で言葉をきちん定義しよう.今までと同様に最小化問題で主に説明するが最大化問題も同様である. また変数を一般に n 個として扱う.
制約付き最小化問題 とは以下のような問題を指す:集合 C を数ベクトル空間 Rn
の部分集合とする.
最小化 f(x)
制約 x & C(4.1)
40 第 4章 制約付き最適化問題
最小化問題 (4.1) において, 上記のような集合 C を 実行可能領域 , C の点を 実行可能解 と呼ぶ. ここで, 「x & C」とは「x が C に含まれる」ことを意味する. 例えば,例 8 の制約
x+ y = 4, x ! 0, y ! 0
のように式を用いて表される.このときに用いられる式を 制約式 と呼ぶ .
定義. x̄ & C が x̄ に充分近い C 上のすべての x に対して
f(x) ! f(x̄)
のとき f(x̄) を (4.1) の局所最小値, x̄ を局所最小解と呼ぶ.
定義. x̄ & C が C 上のすべての x に対して
f(x) ! f(x̄)
のとき f(x̄) を (4.1) の大域最小値, x̄ を大域最小解と呼ぶ .
4.2 等式制約が一つの場合4.2.1 曲線上の増減表制約付き最適化問題を調べるには,実行可能領域上での目的関数の値の変化を,1
変数関数の増減表に似たものを用いて調べることから始める .
1 次関数を円周上で最適化
1
2
3
0 x
y
1
1
!1
!1
"#
図 4.1: 円と x + y の等高線
始めに,円周上で 1 次関数を最小化または最大化する問題を考える;
最小化,又は最大化 f(x, y) := x+ y
制約 x2 + y2 = 1.
図 4.1 を見てみよう.直線 !2 は f(x, y) = x+ y =
"1 を満たす直線である. よって,!2 は f の等高線になっている.直線 !1,!3 もある値に対する f
の等高線であり,等高線上での f(x, y) の値は !3,!2,!1 の順で大きくなる. 以下で,f の等高線と局所最適解の関係を見てみよう.
4.2. 等式制約が一つの場合 41
円と !2 の位置関係
さて, f の等高線 !2 と円との交点の近くを詳しく見てみる.
2 A
B
C
!"
図 4.2: !2 と円の交点の周りで拡大
3
A
B
C
A
B
C
!"
図 4.3: !3 と円の接点の周りで拡大
拡大図 4.2 のように点 A,B,C を定める. すると,点が A # B # C と動くとき関数 f の値は,
!2 と円の交点の近く(x, y) A B C
f(x, y) 大 % 小 % もっと小
と変化するのが読み取れるだろう. よって, !2 と円の交点は局所最適解にはならない.
円と !3 の位置関係
一方,別の等高線 !3 と円の接点付近では(図 4.3 を見よ),
!3 と円の接点の近く(x, y) A! B! C!
f(x, y) 大 % 小 $ 大
と変化する.いま,!3 と円の接点は ("1/'2,"1/
'2) であり,表よりその点に近い
円周上の点の中では,("1/'2,"1/
'2) が f(x, y) の値を一番小さくする. したがっ
て, ("1/'2,"1/
'2) が局所最小解である.同様に,図 4.1 で等高線 !1 と円の接点
は局所最大解になっていることがわかるだろうか.
一般の関数を円周上で最適化
次に,一般の関数を円周上で最適化する問題を考えよう.一次関数でなくても,目的関数の等高線と実行可能領域の位置関係は,局所最適解と密接なつながりを持つ.
42 第 4章 制約付き最適化問題
A
B
C!"
!" D
E
図 4.4: 目的関数の等高線と実行可能領域 1
目的関数の等高線と実行領域の関係(その 1)
例えば,目的関数の等高線が図 4.4のようになっていると仮定する.するとA,B,C,D,E のどの点が局所最小解または局所最大解だろうか? 点を A # B # C と動かすと,図から増減表は
(x, y) A B C
f(x, y) 大 % 中 % 小
となる.したがって,点 B は局所最小解ではない.一方,点を C # D # E と動かすと,図から増減表は
(x, y) C D E
f(x, y) 中 % 小 $ 中
となるので,点 D は局所最小解になる.
目的関数の等高線と実行領域の関係(その 2)
それでは,目的関数の等高線が図 4.5 のようになった場合はどうだろうか?
A
B
C
!"
図 4.5: 実行可能領域と目的関数の等高線 2
この場合は,点を A # B # C と動かすと,図から増減表は
4.2. 等式制約が一つの場合 43
(x, y) A B C
f(x, y) 小 % 大 % 小
となるので,点 B は局所最大解になる.
4.2.2 ラグランジュ乗数法一般の関数を一般の曲線上で最適化
上記のように,ある点が局所最適解ならば,そこで等高線と実行可能領域は接していることがわかる.これと,勾配ベクトルと等高線との関係より以下の定理を得る.
定理 9 (ラグランジュ乗数法). 最適化問題
最小化,又は最大化 f(x)
制約 g(x) = 0
を考え,x̄ を局所最適解とする. (g(x̄) )= 0 ならば, ある数 " が存在して,
!(f(x̄) = "(g(x̄)
g(x̄) = 0
が成り立つ.
勾配ベクトルと等高線
まず,この定理を理解する為に,以下の重要な幾何的関係を説明する:
「関数の勾配ベクトルと等高線とは直交する」
ただし,上記の「直交する」とは,ある点において「勾配ベクトル」とそこでの「等高線の接線」が直交していることをいう(図 4.6 右を参照) .
(a, b)
f(x, y) = f(a, b)
z = f(x, y)
(a, b)O
O
x
y
z
x
y
(a, b, f(a, b))
!f(a, b)
図 4.6: 接平面,等高線と接線の関係
44 第 4章 制約付き最適化問題
これについて解説しよう.まず,関数 f のグラフ z = f(x, y) と (a, b) における接平面
z = f(a, b) + fx(a, b)(x" a) + fy(a, b)(y " b) (4.2)
を考える(図 4.6 右).点 (x, y, z) = (a, b, f(a, b)) を通り xy 平面に平行な平面
z = f(a, b) (4.3)
で,f のグラフと接平面を切ると断面は図 4.6 のようになる.このとき,接平面の断面は等高線の (x, y) = (a, b) における接線になっている .
この接線は平面 (4.2) と (4.3) の交線なので,
fx(a, b)(x" a) + fy(a, b)(y " b) = 0 (4.4)
で与えられる.ここで,式 (4.4) はベクトルと内積 を用いて,"fx(a, b)
fy(a, b)
#·"x" a
y " b
#= 0
とも書ける. よって,勾配ベクトル (f(a, b)は等高線の (x, y) = (a, b)における接線と直交していることが分かる.したがって,勾配ベクトルは等高線と直交している.
(a, b)O x
y
z
!f(a, b)
z
図 4.7: 接平面と勾配ベクトルの向き
さらに,接平面の式 (4.2) に"x
y
#=
"a
b
#+(f(a, b) =
"a+ fx(a, b)
b+ fy(a, b)
#
を代入すると
z = f(a, b) + fx(a, b)2 + fy(a, b)
2 > f(a, b)
となるので,(f(a, b)は接平面の z 座標が増加する方向を向いている.よって,
勾配ベクトルは関数値が増える方向を向いている
ことも覚えておこう(図 4.6 の勾配ベクトルの向きも参照).
定理 9 の解説
以上の準備のもとに定理 9 を解説する.まず,x̄ を局所最適解とする.上の考察より,(f(x̄) は点 x̄ で f の等高線と直交している.また,定理直前の考察から,f
の等高線は実行可能領域と x̄ で接している.ここで,実行可能領域は値 0 に対する
4.2. 等式制約が一つの場合 45
g の等高線であることに注意する.これよりさらに,実行可能領域は (g(x̄) と点 x̄
で直交していることがわかる.まとめると
(f(x̄) * {f の等高線 } 「接する」 {実行可能領域 } * (g(x̄)
が成り立つ.ところで,「f の等高線と実行可能領域が x̄で接している」とは,x̄において,「f の等高線と実行可能領域の接線が一致している」ことを表す.したがって,(f(x̄) と(g(x̄) は同一の直線と直交しているので,平行であり(f(x̄) = "(g(x̄) と書ける.
実行可能領域に関する停留点
定理の式を用いて以下を定義する.
定義. ある実数 " に対して,!(f(x̄) = "(g(x̄)
g(x̄) = 0
を満たすような点 x̄ を 実行可能領域に関する停留点 と呼ぶ.ただし,省略しても誤解がない場合は,単に停留点と呼ぶ.
A
B
C
!"
図 4.8: 局所最適解にならない停留点
通常の停留点と同じように, 実行可能領域に関する停留点であっても最適解にならないものは存在する(図 4.8 参照).
最適解の存在定理
証明はしないが最適解の存在定理を一つ挙げておく .
定理 10. 目的関数が連続で, 実行可能領域が有界閉集合ならば, 最適化問題は大域最小解と大域最大解を持つ.
制約付き最適化問題で特に等式制約を持つ問題は,実行可能領域が有界閉集合になる場合が多い.最適解の存在があらかじめ分かっていると議論が楽になり,1 階微分の情報(ラグランジュ乗数法)のみで,最適解を探せることも多い.
46 第 4章 制約付き最適化問題
4.3 等式制約付き最小化問題の解き方この節では具体的に例題を解いてみよう.以下,全ての例題で実行可能領域が有
界閉集合になっている.したがって,あらかじめ大域最適解が存在するとわかっている.
例 19.
最小化 f(x, y) := x" y
制約 g(x, y) := 2x2 + 3y2 " 1 = 0
この例では説明のために冗長な解答を書く.ラグランジュ乗数法(定理 9)より,局所最適解は,
!(f(x, y) = "(g(x, y),
g(x, y) = 0
を (x, y)," について解いたときの,(x, y) に含まれている.いま,目的関数と制約式の勾配ベクトルは, それぞれ
(f(x, y) =
"1
"1
#, (g(x, y) =
"4x
6y
#
となるので,上式は $%%&
%%'
1 = "4x
"1 = "6y
2x2 + 3y2 " 1 = 0
となる.これを満たす (x, y)," を見つければ, (x, y) が停留点になる(" は存在すれば良く, 必ずしも求める必要はない).第 1式より 4x )= 0となるので, " = 1/(4x)として第 2式に代入すると, y = "2x/3
を得る. これを第 3式に代入すると, x = ±(
3/10が求まる. このとき y = +(
2/15
となる. よって,停留点は (x, y) = (±(
3/10,+(
2/15) である.したがって, (x, y) = (±
(3/10,+
(2/15)での目的関数 f の値を比べると,大域最
小解が ("(3/10,
(2/15),大域最小値が f("
(3/10,
(2/15) = "
(3/10"
(2/15
である.
図 4.9: 停留点と大域最適解の関係
解説. さて,上記の方法で本当に大域最小値が求まっているだろうか?この節のはじめに書いたように例 19 の実行可能領域は有界閉集合であり,必ず大域最適解が存在する.さらに図 4.9 のように,すべての大域最適解は
4.3. 等式制約付き最小化問題の解き方 47
停留点に含まれる(これに関して下記「特異点」を参照).言い換えると,停留点の内どれかが大域最適解なのである.したがって,停留点の値を比較し最小の値をとるものが大域最適解である.
特異点
(g(a) = 0 が成り立つ点 a を g の特異点 と呼ぶ.図 4.9 の包含関係が成り立つためには,定理にあるように大域最適解が制約式の特異点にならないという仮定が必要である.例 19 では
(g(x, y) =
)4x6x
*
で,これが零ベクトルになるのは (x, y) = (0, 0) のときのみである.しかし,実行可能領域には (0, 0) は入っていないので,制約式 g は実行可能領域に特異点を持たない.したがって,どの大域最適解(実行可能領域に入っているので)も制約式の特異点にならない.したがって,図 4.9 の包含関係が成り立つ.実際は,自然な実行可能領域に特異点は少ないので(ないことも多い),始めは気に
せずに図 4.9 が成り立つと思って勉強を進めた方が良い.
例 20.
最小化又は最大化 f(x, y, z) := x" y + z2
制約 g(x, y, z) := x2 + y2 + 2z2 " 1 = 0
ラグランジュの乗数法より,局所最適解は!(f(x, y, z) = "(g(x, y, z)
g(x, y, z) = 0
を (x, y, z)," について解いたときの (x, y, z) に含まれている.いま,
(f(x, y, z) =
+
,-1
"1
2z
.
/0 , (g(x, y, z) =
+
,-2x
2y
4z
.
/0
より,上式は
(,)
$%%%%%&
%%%%%'
1 = 2"x
"1 = 2"y
2z = 4"z
x2 + y2 + 2z2 " 1 = 0
となる.(,) の第 1 式より " )= 0 なので,
x =1
2", y =
"1
2"(4.5)
48 第 4章 制約付き最適化問題
となり,x = "y (4.6)
を得る.また,(,) の第 3 式より
z(1" 2") = 0 (4.7)
となる.ここで場合分けをする.z = 0 のとき,(,) の第 4 式と式 (4.6) より 2x2 " 1 = 0 を得るので, (x, y, z) =
(±1/'2,+1/
'2, 0) となる.
z )= 0 のとき,式 (4.7) より " = 1/2 となるので,式 (4.5) より x = 1,y = "1
を得るが,(,) の第 4 式よりこれは解にならない.したがって,停留点は (±1/
'2,+1/
'2, 0) となり,そこでの値を比較すると,大
域最小解は ("1/'2, 1/
'2, 0),大域最小値は f("1/
'2, 1/
'2, 0) = "
'2 となる.
例 21 (2 次形式の最小値). この例では,2 次形式の持つ性質を示す.A =
1a bb c
2を対称行列として以下の最小化問題を考える.
最小化 f(x, y) :=1x y
2A
"x
y
#= ax2 + 2bxy + cy2
制約 g(x, y) = x2 + y2 " 1
すると,最小値は A の最小固有値, 最小解はその固有ベクトルになる.ラグランジュ乗数法より,最適解は実行可能領域に関する停留点になる.よって,
!(f(x, y) = "(g(x, y),
g(x, y) = 0
を (x, y)," について解けばよい.いま
(f(x, y) =
"2ax+ 2by
2bx+ 2cy
#, (g(x, y) =
"2x
2y
#
より,第一式は "2ax+ 2by
2bx+ 2cy
#= "
"2x
2y
#
なので,停留点の式は $%%&
%%'
"a b
b c
#"x
y
#= "
"x
y
#,
x2 + y2 " 1 = 0
と書ける.これを解けば良いのだが,直接解くのは意外に大変である.そこで少し見方を変えると,この式は " が A の固有値で,(x, y) がその固有ベクトルあり,か
4.4. 等式制約が複数の場合 49
つ大きさが 1 であるということを表している.よって,停留点は A の固有ベクトルと一致する.ここで,",(x, y) をそれぞれ A の固有値と固有ベクトルとすると,
f(x, y) =1x y
2A
"x
y
#=1x y
23"
"x
y
#4= "(x2 + y2) = "
となる.よって,停留点での f の値は固有値と一致する.したがって,最小化問題の最小値は A の固有値の中で小さい方であり,最小解はA の最小固有値に対する固有ベクトルである..
4.4 等式制約が複数の場合制約式が複数ある場合を解説する.
定理 11. 最小化問題
最小化 f(x)
制約 g1(x) = 0, g2(x) = 0, . . . , gm(x) = 0
を考え,x̄ を局所最小解とする. (g1(x̄), . . . ,(gm(x̄) が一次独立ならば, ある数"1, . . . ,"m が存在して,
(f(x̄) = "1(g1(x̄) + · · ·+ "m(gm(x̄)
g1(x̄) = 0, g2(x̄) = 0, . . . , gm(x̄) = 0
が成り立つ.
!g2(a, b, c)g1(x, y, z) = 0
g2(x, y, z) = 0
(a, b, c) !g1(a, b, c)
図 4.10: 実行可能領域(空間内の円)
解説. この定理はきちんと示そうとすると難しい.そこで具体例を用いて解説するので,図を見て成り立ちそうだという直感を得てほしい.制約式が複数の場合は 3変数の問題を考えた方が良い.#,$,%,& を定数とする.
最小化 f(x, y, z) = #x+ $y + %z + &
制約!g1(x, y, z) = x2 + y2 + z2 " 1 = 0
g2(x, y, z) = x+ y + z " 1 = 0
実行可能領域は球面と平面との共通部分になるので,図 4.10 のように空間内の円である.この実行可能領域が制約式が複数の場合の典型例になる.
50 第 4章 制約付き最適化問題
(a, b, c)
図 4.11: 実行可能領域と接する平面
制約式が一つの時と同じように,x̄ =
(a, b, c) が局所最適解の時は,目的関数の等高面と実行可能領域が接する.ただし,空間内の円と接する平面は図 4.11 のように回転しても,やはり接している.よって,実行可能領域に接する平面の法線ベクトルは,回転させた平面のものも含めて,
"1(g1(a, b, c) + "2(g2(a, b, c)
と書ける.いま,目的関数の (a, b, c) を通る等高面の法線ベクトルは (f(a, b, c) であるので,
(f(a, b, c) = "1(g1(a, b, c) + "2g2(a, b, c)
が成り立つ.
練習問題 4. 1. 実行可能領域に関する停留点とその点での目的関数の値を求め, 最小解を探せ.
(1).
最小化 f(x, y) := 2x" 3y
制約 g(x, y) := 2x2 + y2 " 1 = 0
(2).
最小化 f(x, y) := x3 + y3
制約 g(x, y) := x2 + y2 " 1 = 0
2. x, y が原点を中心とする半径 1 の円周上の点であるとき, 2x2 " 6xy + 2y2 の最小値と最大値を求めよ.
4.5 定理 9 の証明2 変数の最小化問題の場合を証明する.x̄ = (a, b) を局所最小解とする.いま,関
数 u(t) = (x(t), y(t)) で,t = 0 の近くで微分可能で,
u(0) = x̄, g(u(t)) = 0
を満たすものが存在するとしよう.すると定理の主張は簡単に示せる.実際,x̄ は局所最小解で,u(t) は制約を満たしているので,f(u(t)) ! f(x̄) = f(u(0)) が成り立つ.よって,制約なしの最適化問題
最小化 f(u(t)), t & R
4.5. 定理 9 の証明 51
は t = 0 で局所最小値を取る.したがって,( 1 変数関数に対する)1 次の最適性条件より,合成関数 f - u の t = 0 における微分は
d
dtf(u(t))
5555t=0
= (f(x̄) · u!(0) = 0
を満たす.また,t = 0 の近くで g(u(t)) = 0 なので,g - u の微分も
d
dtg(u(t))
5555t=0
= (g(x̄) · u!(0) = 0
を満たす. したがって,(f(x̄) と (g(x̄) は 2 次元ベクトルで一つのベクトル u!(0)
に直交しているので,ある定数 " が存在して,(f(x̄) = "(g(x̄) が成り立つ.よって証明された.さて,上記のような u(t)の存在を示そう.これには陰関数定理を用いる.(g(x̄) )= 0
より,特に gy(x̄) )= 0 とする.すると,陰関数定理より関数 ' で,x = a の近くで微分可能で, !
g(x,'(x)) = 0(x は a に近い任意の数)'(a) = b
を満たすものが存在する.よって,t = 0 の近くで,
u(t) =
"a+ t
'(a+ t)
#
と定義すると上記を満たす関数 u を得る.