• 検索結果がありません。

非線形計画法

N/A
N/A
Protected

Academic year: 2025

シェア "非線形計画法"

Copied!
12
0
0

読み込み中.... (全文を見る)

全文

(1)

非線形計画法

条件付き最適化問題は目的関数と制約条件で示すが、この中に一つでも 1 次式でないも のが含まれる問題を総称して非線形計画法いう。非線形計画問題は、多くの分野で研究さ れているが、複雑性により十分汎用的なものは確立されておらず、限定的なものに限り幾 つかの提案がなされている。ここでは簡単な解法について紹介する。

1.制約なし極値問題

(1)単純問題の解法

1変数で表される関数zf(x)の極値は f(x)0を解くことによって求められる。

■例:某都市施設を建設することになった。施設の規模を変えると便益Bも建設費用Cも 変化する。与えられた単位規模当たりの便益と費用をもとに、便益を最大にする規模 S を 求める。

(2)近似解法

複雑な関数であっても、ある値aの近傍における近似値として下式のテーラー展開によっ て求めることができる。a0の場合にはマクローリン展開とも呼ばれる。

3

2 ( )

! ) 3

! ( ) 2 )(

( ) ( )

( f x a

a f x

a x a f a f x

f  

 

2変数の場合のテーラー展開による近似値はどうなるだろうか。

) , (x1 x2 f

z  として、x1aht, x2bkt,(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

(2)

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

さらにzf(x1,x2)を、zf(x1ht,x2kt)((t))として、tをパラメータとする点

) ,

(x1 x2 との位置関係を示せるように再表現しておき(t) f(x1ht,x2kt)の近似値を 求める。ux1ht, vx2ktとすると(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 

 

 

 

 

 

 

 

となる。ここで、hx1,k x2としてベクトル表現すると

(3)

   

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

と お く と xxx  xx x (x)x

! 2 ) 1

( ) ( )

( f f H

f t t と 簡 潔 に 表 さ れ る 。 )

(x

Hf(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

fxo で 極 値 ( こ こ で は 局 所 的 最 小 値 と し よ う ) と な る た め の 条 件 は

0 ) ( ,

)

(    

f x 0 xtH x x である。なおH(x)は、対称行列であるが、これの固有値は 実数であり、例えば固有値対角行列をΛ、固有値ベクトルをC とすれば、次のようになっ てyi2 0よりλi 0しかないので、よってヘッセ行列H(x)は正定値である。

1)ニュートン・ラプソン法 )

(x

fxkにおいてテーラー展開すると

となるが、右辺の近似式を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)を か け て 整 理 す る とxxkH1(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)

(4)

ステップ2:dkxkH1(x)f(xk)を計算する。

ステップ3:xk1xkdkとする。

ステップ4: f(xk1) f(xk) 0ならストップ。kk1とし、ステップ1に戻る。

■例:zf(x)x14x24 minをニュートン法で求めよ。但し、出発点x(0) (1,1)と し、計算値の差が0.015以下になったら計算作業中止せよ。

これは式よりxO (0,0)でminz0であることは一目瞭然であるが、近似計算により漸 次z0であることがわかる。

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

(5)

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:xk1xkαdkとする。kk1とし、ステップ1に戻る。

2.制約つき極値問題

(1)ラグランジュの未定乗数法

2変数x1,x2の間にg(x1,x2)0の関係があるとき、zf(x1,x2)の極値を考えよう。x2

x1の関数であるから、zx1のみの関数である。ここで、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

となって、zf(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

1x xx x

i x x f g f g

g の根でなくてはな

らない。よって、これを求め、

1 1x

fx の符号を調べることによって極大か極小かを判定する ことができる。

ここで ( )

2 2 1

1 g f g λ

fx xx xなる関係を利用して 0, 0

2 2

1x1xx

x λg f λg

f となり、

かつg(x1,x2)0の式は、(x1,x2,λ) f(x1,x2)λg(x1,x2) λ:const.とおいて、下式 を解くのと等価である。

(6)

0 ,

0 ,

0

2 1

 

 

 

λ x

x

但しλ(ラグランジュ乗数という)の符号は正負どちらでもよい。

一般に変数x1,x2,,xnについてm(n)個の条件gi(x1,x2,,xn)0 (i1,2,,m)

のもとで関数zf(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 ji   

 

 

 の連立方程式で求められる。

■例:x1x2 4の条件のもとでzx12x22を最小にせよ。

この問題の答えは、目的関数が原点からの距離の2乗に等しいから、原点からx1x2 4

に下ろした垂線の交点である。

普通に解くには、条件式を変形したx2 4x1を目的関数に代入したzx12 (4x1)2

を微分して求める。つまり

8 ,

2 ,

2 ,

0 2

4 1 1 2 min

1

x x x z

dx dz

ラグランジュの方法を用いれば、

) 4 (

) , ,

( 1 2122212

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の直線上ではzx12x22と同じ値 をとることを示している。また、

λ λ x λ

x λ 4

2 2 2

2 2 2 2

1   

 

 

 

 

 

と変形され、値の最小値はλ値によって変化す る。つまり、λ値とmin及びその座標(x1,x2)は次のようになっている。

(7)

) 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 λ

これによりminx1x2の直線上を辿りながら原点からx1x2 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

1 1

2 2

3 3

4 4

5

5 6

6

1 1

2 2

3 3

4 4

5

5 6

6

min8

z=8 z=10 z =12

z=16

Φ =16 Φ=12 Φ=10 Φ=9 Φmin8

16 12 10

16 12 10 9

λ=0 の時の zの変 化 λ =-4の時 のΦの 変化

(8)

(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

(9)

非 対 称 性 双 対 問 題 を 書 く と 、w

A I

 

c 0

, ywbmax と な る 。 こ れ は )

0 wI ( 0 w c,

wA    となり通常形に同じとなるからである。

よって

について、(1)は

であり、

11 1

1 1

1

1  a

 



 n

n

a x a

g x

g   dxiyiとし、

n

ty1y

y

とすると、a1y0,a2y0,,aky0となる。また、 io

i o

x a f  

 

 とすると、(3)はaoy0

と示して、aot1a1t2a2 tkakが存在する。(ファーカスの定理より)

なぜなら先の(※)を書き直して、

となるからである。ところで、i1,,nのうち、①i1,,lyi 0、②il1,,nyi 0,y0である。②の場合は双対定理がそのまま使えるが①の場合は通常の双対定 理、つまり

でなくてはならない。よって通常形と非対称形を一緒に扱うため、tAzaoとして調整

zを添えることにする。②の場合は調整項不要のためzi 0(il1,,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

参照

関連したドキュメント

の向上を図る。 【中層住宅地区】

理由:老朽化した都営住宅の建替えを適切に誘導し、

住宅等の建築物を建築する もの(住宅、住宅で他の用途 を兼ねるもの(工場を兼ねる ものを除く。 )

これによれば,宅地かつ普通商業地区は,側面長が572.6メートルで,総評価

3.非線形計画法のソフトウェア さて,ここでは非線形計画法のソフトウェアのお話

Eilon 教授が「区間計 画法 (Interval Programming) J なる言葉を使ってい た.私は20年以上前に I 区間算

住宅の建設等及び住宅用地の購入を目的として資 金を金融機関等から借り入れた者に対し、借入金

   主として住宅に供せられる家屋に関 する土地で「固定資産の価格等の概