非線形計画法
条件付き最適化問題は目的関数と制約条件で示すが、この中に一つでも 1 次式でないも のが含まれる問題を総称して非線形計画法いう。非線形計画問題は、多くの分野で研究さ れているが、複雑性により十分汎用的なものは確立されておらず、限定的なものに限り幾 つかの提案がなされている。ここでは簡単な解法について紹介する。
1.制約なし極値問題
(1)単純問題の解法
1変数で表される関数z f(x)の極値は f(x)0を解くことによって求められる。
■例:某都市施設を建設することになった。施設の規模を変えると便益Bも建設費用Cも 変化する。与えられた単位規模当たりの便益と費用をもとに、便益を最大にする規模 S を 求める。
(2)近似解法
複雑な関数であっても、ある値aの近傍における近似値として下式のテーラー展開によっ て求めることができる。a0の場合にはマクローリン展開とも呼ばれる。
3
2 ( )
! ) 3
! ( ) 2 )(
( ) ( )
( f x a
a f x
a x a f a f x
f
2変数の場合のテーラー展開による近似値はどうなるだろうか。
) , (x1 x2 f
z として、x1 aht, x2 bkt,(a,b,h,k:const.)とすれば
x z x k
h
x k z x x hk z x
h z k k x h z x x h z x k x h z x
z
dt dx x
x k h z x
z dt
dx x
x k h z x
z dt
z k d x h z x
z dt dx x
z dt dx x
z dt dz
2
2 1
2 2 2 2 2 1
2 2
1 2 2 2
2 2
2 1
2
2 1
2 2
1 2
2 2
2 1 1
1 2 1
2 2
2 1
2 2 1 1
2 ,
となって、微分演算子も単なる変数記号のように扱うことで分かりやすく表現でき、これ の高次導関数は以下のように示される。
5 ,
0 6 30
max ,
3 ,
10
30 2
S dS S
dZ
C B Z S C S
B
n
r
r r n
n r r n r n n
n
x x k z h dt C
z d
0 1 2
さらにz f(x1,x2)を、z f(x1ht,x2 kt)((t))として、tをパラメータとする点
) ,
(x1 x2 との位置関係を示せるように再表現しておき(t) f(x1 ht,x2 kt)の近似値を 求める。u x1ht, v x2 ktとすると(t) f(u,v)
v k u h
t v v t u u
t
であり、これに
v x
u v
u x
v v x
u u x
2
1 1
1
0 1
を代入すると
2
1 k x
h x
t
である。
このことから ( )( ) f(u,v) k y
h x t
m
m
となって、同様に簡単に表現される。
ここで(t)のマクローリン展開は
(0)
! ) 2 0 ( ) 0 ( ) (
t2
t
t であり
) , ( )
0 ( ), , ( )
0 ( ), , ( ) 0
( 1 2
2
2 1
2 1 2 1
2
1 f x x
k x h x
x x x f x k
h x
x
f
であるから、代入して
) ,
! ( ) 2 , ( )
, ( )
( 1 2
2
2 1
2 2 1 2 1
2
1 f x x
k x h x
x t x x f x k
h t x x f
t
tの値は任意であり、見通し良くするためt 1 とすると
) ,
! ( 2 ) 1 , ( )
, ( ) ,
( 2 2
2
2 1
2 1 2 1
2 1 2
1 f x x
k x h x
x x x f x k
h x x f k x h x
f
となる。ここで、hx1,k x2としてベクトル表現すると
2 1
2 2 2
2 1
2
2 1
2 2
1 2
2 1 2
1
2 1 2
1 2
2 1
1 2!
1
x x x
f x
x f
x x
f x
f x
x x
x x
f x f x
x f x x x x f
t t
と
なって、 , ( ), ( )
2 2 2
2 1
2
2 1
2 2 1 2
2 1 2
1 x x H x
x f x
x f
x x
f x
f f
x f x f x
x
と お く と xx x x x x (x)x
! 2 ) 1
( ) ( )
( f f H
f t t と 簡 潔 に 表 さ れ る 。 )
(x
H は f(x)のヘッセ行列と呼ばれる。f(x)のxo(上付きのoはOptimizeの頭文字)の 近傍では次のようになる。
x x x x x x x
x ( )
! 2 ) 1
( ) ( )
( o f o f o t tH o
f ) (x
f が xo で 極 値 ( こ こ で は 局 所 的 最 小 値 と し よ う ) と な る た め の 条 件 は
0 ) ( ,
)
(
f x 0 xtH x x である。なおH(x)は、対称行列であるが、これの固有値は 実数であり、例えば固有値対角行列をΛ、固有値ベクトルをC とすれば、次のようになっ てyi2 0よりλi 0しかないので、よってヘッセ行列H(x)は正定値である。
1)ニュートン・ラプソン法 )
(x
f をxkにおいてテーラー展開すると
となるが、右辺の近似式を0にするxを求めるべく、
これをxで偏微分して0とおく。つまり、
0 x x x x
x x x x
x x x x x x x
x x x
x x
) )(
( ) ( ) )(
(
! 2 2 ) 1 ( 0
) )(
( )
! ( 2 ) 1 ( ) ( )
(
k k
k k
k t
k k
t k k
H f
H f
H f
f
両 辺 にH1(x)を か け て 整 理 す る とxxk H1(x)f(xk) と な る 。xdk と し て
k k
k x d
x 1 とし、繰り返し計算を行って近似値としての解を求める。
ステップ0:所期点(x0)を決める。k 0 ステップ1:f(xk)0であればストップ。
) )(
( )
!( 2 ) 1 ( ) ( ) ( )
( f k f k t k k tH k
f x x x xx xx x xx
) ( 0
), (
, ,
) (
2 y x
y y x x x x
x x x
t i
i i t
t t t
t t
t t
t
C y
λ C
C H
C C H HCC I
C C C
C HC C C HC H
H
y
x
f(x)
X(k+1) X(k)
ステップ2:dk xk H1(x)f(xk)を計算する。
ステップ3:xk1 xk dkとする。
ステップ4: f(xk1) f(xk) 0ならストップ。k k1とし、ステップ1に戻る。
■例:z f(x)x14 x24 minをニュートン法で求めよ。但し、出発点x(0) (1,1)と し、計算値の差が0.015以下になったら計算作業中止せよ。
これは式よりxO (0,0)でminz0であることは一目瞭然であるが、近似計算により漸 次z0であることがわかる。
0124 . 0 ,
0030 . 81 0
* 16 2 4
0154 . 27 0
* 8 2
27 8 27
8 ,
27 4 27
4 ) ( ) (
, 4
* 12 0 9
0 4
* 12
9 ) ( , 9
* 4 12 0
9 0
* 4 12 ) ( , 9 4 9 4 ) ( 3
078 . 9 0
* 4 2
9 4 9 4 ,
9 2 9 2 ) ( ) ( 48 0 9 48 0
9 ) (
9 0 48 9 0 48 12
0 0 ) 12
( , 27 32 27 32 4
) 4 ( 2
395 . 81 0 32
3 2 3 2
3 1 3 1 1 , 1
3 1 3 1 ) ( ) ( ,
12 0 1 12 0
1 ) (
12 0
0 12 12
0 0 ) 12
( 4 , 4 4
) 4 ( 1
2 0
) 3 ( 4 (
4 )
4 (
4 )
3 (
3 ) 2 ( ) 3 ( 1
3
2 2 2 2
1 2 2
3 4 3 4 4 )
2 (
2 ) 1 ( ) 2 ( 1
2 1
3 , 2 3 2 2 2 2 1
3 , 2 3 3 2 2 3 1 )
1 (
1 ) 0 ( ) 1 ( 1
1 1
1 , 1 2 2 2 1 2
1 , 1 3 2 3 1
2 1 ) 0 (
2 1 2
1
2 1 2
1
z z
z k
z
f H
H H
f k
z
f H H
x H x
x f x
k z
f H H
x x x
x H f
x x x
f x f f
k z k
x x x
x
x j x
x i x
x x x x
x x
x x
x
x x x x
x x
x
x x
x x x x
x x
x
x x
2)最急降下法
これは探索点における勾配の負の方向を探索方向として用いるほうほうである。つまり 作業実施点xkからの探索方向として次のベクトルを用いる。
t n
k k
k k
k
x f x
f x
f f
( ) ( ) ( )
) (
2 1
x x
x x
d
これを次のステップを繰り返して行いf(x*)0になるまで繰り返す。
ステップ0:所期点(x0)を決める。k 0 ステップ1:f(xk)0であればストップ。
ステップ2:dk f x( k)とする
ステップ3: f(xk αdk)が最小となる値αを求める。
これは簡単に求められないことが多く、D(αk) f(xk αdk)としてD(αk)よりαを求 める方法がある。
ステップ4:xk1 xk αdkとする。k k1とし、ステップ1に戻る。
2.制約つき極値問題
(1)ラグランジュの未定乗数法
2変数x1,x2の間にg(x1,x2)0の関係があるとき、z f(x1,x2)の極値を考えよう。x2
はx1の関数であるから、zはx1のみの関数である。ここで、g(x1,x2)0は陰関数であり、
両辺を微分して
2 1 2
1
1 2 1
2 1
2 2 1 1 1 1
, 0
x x x
x g
g dx dx dx
g dx dx g
dx x
g dx dx x
g dx
dg
となって、z f(x1,x2)の極値なので
) 0 ( , 0 )
( 2
2 1 2 1 2
2 1 2 1
1 2 1 2 2 1 1 1 1
x
x x x x x
x x x
x g
g g f g f g f g dx f
dx dx dx x
f dx dx x
f dx
dz
である。よってzに極値を与えるx1は ( , ) 0, 0
1 2 1 2
2
1 x x x x
i x x f g f g
g の根でなくてはな
らない。よって、これを求め、
1 1x
fx の符号を調べることによって極大か極小かを判定する ことができる。
ここで ( )
2 2 1
1 g f g λ
fx x x x なる関係を利用して 0, 0
2 2
1 x1 x x
x λg f λg
f となり、
かつg(x1,x2)0の式は、(x1,x2,λ) f(x1,x2)λg(x1,x2) λ:const.とおいて、下式 を解くのと等価である。
0 ,
0 ,
0
2 1
λ x
x
但しλ(ラグランジュ乗数という)の符号は正負どちらでもよい。
一般に変数x1,x2,,xnについてm(n)個の条件gi(x1,x2,,xn)0 (i1,2,,m)
のもとで関数z f(x1,x2,,xn)の極値を求めるには、
. : ) ( )
( ) (
1
const λ
g λ
f i
m
i i
i x
x λ
x,
とおいて、λ gi(x)0
j であるから
) , , 2 , 1 ( 0 ),
, , 2 , 1 (
0 i m
n λ
xj j i
の連立方程式で求められる。
■例:x1x2 4の条件のもとでz x12 x22を最小にせよ。
この問題の答えは、目的関数が原点からの距離の2乗に等しいから、原点からx1x2 4
に下ろした垂線の交点である。
普通に解くには、条件式を変形したx2 4x1を目的関数に代入したz x12 (4x1)2
を微分して求める。つまり
8 ,
2 ,
2 ,
0 2
4 1 1 2 min
1
x x x z
dx dz
ラグランジュの方法を用いれば、
) 4 (
) , ,
( 1 2 12 22 1 2
x x λ x x λ x x
8
2 ,
2 ,
4
4 2 2
0 2
0 2
min
2 1
2 1
2 1
2 2
1 1
x x
λ
λ x x
x λ x λ
λ x x
λ x x
この方法ではλ4に選んでおけば値がx1x2 4の直線上ではz x12 x22と同じ値 をとることを示している。また、
λ λ x λ
x λ 4
2 2 2
2 2 2 2
1
と変形され、値の最小値はλ値によって変化す る。つまり、λ値とmin及びその座標(x1,x2)は次のようになっている。
) 3 , 3 ( ) , ( 6 6
) 5 . 2 , 5 . 2 ( ) , ( 5 . 7 5
) 2 , 2 ( ) , ( 8 4
) 5 . 1 , 5 . 1 ( ) , ( 5 . 7 3
) 1 , 1 ( ) , ( 6 2
) 5 . 0 , 5 . 0 ( ) , ( 5 . 3 1
) 0 , 0 ( ) , ( 0 0
2 1 min
2 1 min
2 1 min
2 1 min
2 1 min
2 1 min
2 1 min
x x λ
x x λ
x x λ
x x λ
x x λ
x x λ
x x λ
これによりminはx1 x2の直線上を辿りながら原点からx1 x2 4と交わるところま で次第に増加し、この点を過ぎると次第に減少していることがわかる。また、λがどんな値 であっても直線x1x2 4上の値は常に一定である。minは鞍点となっている。
■例:体積 V の円筒形水槽を特殊な板で作ることになった。水槽は底面・側面のみを囲う 構造である。このとき、板の面積を最小にする底面の半径 r と高さ h の比を求めよ。
1 : 1 2 :
2
, 2 0 2 2
, 0 ,
0 2
2 2
, 2 0 2
, 0 2
) (
2 )
, , (
min 2
0
2
2 2
2 2
r r h
h
h λ h
λ h rh λ h r rh λπ h π r r π
r λ r
λ r
λπ r h π
h r π V λ rh π r π λ h r
πrh πr S
h πr V 0
1 1
2 2
3 3
4 4
5
5 6
6
0 1 1
2 2
3 3
4 4
5
5 6
6
zmin=8
z=8 z=10 z =12
z=16
Φ =16 Φ=12 Φ=10 Φ=9 Φmin=8
16 12 10
16 12 10 9
λ=0 の時の zの変 化 λ =-4の時 のΦの 変化
(2)キュンタッカーの条件
制約式は等号で結ばれていれば比較的簡単に求められるが、一つでも不等式が含まれる と解は一意に決められないことが多い。非線形計画法は、かなり複雑な理論であるので一 般的解法は現在でもはっきりせず、一定の条件を満たす問題を解く場合に限られる。
問題にある関数を図形に表現した場合、下に凸となるものを凸関数、上に凸となるものを 凹関数と呼んでいる。
) (x
gi のすべてが凸関数であり、 f(x)も凸関数であるとき
を凸計画法という。この中に一つでも凹関数なる場合を非凸計画法という。
) (x
gi のすべてが凹関数であり、 f(x)も凹関数であるとき
を 凹 計画法という。
目的関数が凸関数の場合、最小値を求めることは容易であるが最大値を求めることは特定 の場合を除き一般に困難であり、凹関数の場合、反対に最大値を求めることは容易である が最小値については困難である。ここでは凸計画法、又は凹計画法に限定して述べる。
双対性は
主問題:
min cx
z
0 x
b Ax
とすると、双対問題:
max wb
0 w
c w
y A
である。
これの非対称形は、主問題:
min 0 cx
x b x
z A
、双対問題:
max wb
y
0 w 0, w
c wA
である。
又は、主問題:
min cx
z
0 x 0, x
b Ax
、双対問題
max wb
y
0 w
c wA
(※)
の 組 と な る 。 非 対 称 形 は 通 常 の 双 対 問 題 と 等 価 で あ る 。 な ぜ な ら ス ラ ッ ク
1
0 m
t s s
s とすると、
min
s 0 x c z s b,
I x
A と表せて、この
min )
(
0
) , , 2 , 1 ( 0 ) (
x f z
x
m i
x
gi
max )
(
0
) , , 2 , 1 ( 0 ) (
x f z
x
m i
x
gi
非 対 称 性 双 対 問 題 を 書 く と 、w
A I
c 0
, ywbmax と な る 。 こ れ は )0 wI ( 0 w c,
wA となり通常形に同じとなるからである。
よって
について、(1)は
であり、
11 1
1 11
1 a
n
n
a x a
g x
g 、dxi yiとし、
n
t y1 y
y
とすると、a1y0,a2y0,,aky0となる。また、 io
i o
x a f
とすると、(3)はaoy0
と示して、ao t1a1 t2a2 tkakが存在する。(ファーカスの定理より)
なぜなら先の(※)を書き直して、
と
となるからである。ところで、i1,,nのうち、①i1,,lはyi 0、②il1,,n はyi 0,y0である。②の場合は双対定理がそのまま使えるが①の場合は通常の双対定 理、つまり
と
でなくてはならない。よって通常形と非対称形を一緒に扱うため、tAzaoとして調整
項zを添えることにする。②の場合は調整項不要のためzi 0(il1,,n)である。
min
0 , 0
y a
y y
0 y
z o
A
min 0 0 t
t a
t o
u A
min 0 y a
y 0 y
z o
A
min 0 0 t
t a
t o
u A
) 3 ( , , 1 0
) 2 ( ,
, 1 0
) 1 ( ,
, 1 0
n i
x dx f
l i
dx
k j
x dx g
i
i i o
i i
i i i
0 0 0
2 2 1 1
2 2 1 1
1 2
2 1 1 1 1
n n k k
k
n n
i i
i
n n
x dx dx g
x dx g x g
x dx dx g
x dx g x g
x dx dx g
x dx g x g