双対問題の導出 式を足しあわせる方法 Lagrange 緩和 相補性条件 双対辞書...
description
Transcript of 双対問題の導出 式を足しあわせる方法 Lagrange 緩和 相補性条件 双対辞書...
2000 年 12 月 第 4 回 双対問題 1
内容•双対問題の導出
式を足しあわせる方法Lagrange 緩和
•相補性条件•双対辞書•主問題と双対問題(一般論)
第 5 回双対問題 テキスト p.42-56
2000 年 12 月 第 4 回 双対問題 2
問題引き続き,あなたは丼チェーン店の店長だ.今日,丼チェーンの本社から,自社農場で飼育している豚,鶏,牛の肉の価値を算出するよう指令が届いた.さて,トンコケ丼,コケトン丼,ミックス丼の販売価格から考えたとき,豚肉,鶏肉,牛肉の百グラムあたりの価値は何円と考えればよいのだろうか?
こういうときは双対問題が便利
双対問題=
もとの問題(主問題)と表裏一体を成す線形計画問題
2000 年 12 月 第 4 回 双対問題 3
式を足し合わせることによる導出
基本的アイディア:式を足し合わせることによって上界を計算
上界:主問題の最適解以上であることが保証されている値
2000 年 12 月 第 4 回 双対問題 4
式を足し合わせることによる導出
30)
602
602
3
321
321
x
xxx
xxx
150333 321 xxx
目的関数は 15x1+18x2+30x3 の最大化
1500303030 321 xxx
1500303030301815 321321 xxxxxx
15x1+18x2+30x3 の上界は 1500
最適値は 1230 であったので 270 のギャップ
2000 年 12 月 第 4 回 双対問題 5
式を足し合わせることによる導出
60020)
3606126
3606612
3
321
321
x
xxx
xxx
1320321818 321 xxx
1320321818301815 321321 xxxxxx
最適値は 1230 であったので 90 のギャップ
目的関数は 15x1+18x2+30x3 の最大化
2000 年 12 月 第 4 回 双対問題 6
式を足し合わせることによる導出
30)
602
602
333
2322212
1312111
yxy
yxyxyxy
yxyxyxy
3213321221121 30606022 yyyxyyyxyyxyy
目的関数は 15x1+18x2+30x3 の最大化
???
2000 年 12 月 第 4 回 双対問題 7
式を足し合わせることによる導出 3213321221121 30606022 yyyxyyyxyyxyy
321
21
21
30
218
215
yyy
yy
yy
の必要あり,このとき上界は
これが 15x1+18x2+30x3 以上になるためには
321 306060 yyy
最もよい(小さい)上界を与える y1 , y2 , y3 を求める問題は?
2000 年 12 月 第 4 回 双対問題 8
双対問題
0,,
30
182
152
306060
321
321
21
21
321
yyy
yyy
yy
yy
yyy
条件最小化
それぞれの肉の百グラムあたりの価値(単位は百円)
仕入れ価格の最小化
豚肉と鶏肉の価値トンコケ丼の価値
2000 年 12 月 第 4 回 双対問題 9
Lagrange 緩和による方法
0,,
30
602
602
321
3
321
321
xxx
x
xxx
xxx条件
最大化 15x1+18x2+30x3
0,,,,,
30
602
602
321321
3
321
321
yyyxxx
x
xxx
xxx条件
最大化 15x1+18x2+30x3
+(60 - 2x1 - x2 -x3)y1
+(60 - x1 - 2x2 -x3)y2
+(30 - x3)y3
主問題
最適値は主問題の上界
非負
2000 年 12 月 第 4 回 双対問題 10
Lagrange 緩和による方法
0,,,,,
30
602
602
321321
3
321
321
yyyxxx
x
xxx
xxx条件
最大化 15x1+18x2+30x3
+(60 - 2x1 - x2 -x3)y1
+(60 - x1 - 2x2 -x3)y2
+(30 - x3)y3
目的関数を x1,x2,x3 についてまとめる
0,,,,,
30
602
602
321321
3
321
321
yyyxxx
x
xxx
xxx条件
最大化 (15 - 2y1 - y2)x1
+(18 - y1 - 2y2)x2
+(30 - y1 - y2 -y3)x3
+60y1+60y2+30y3
2000 年 12 月 第 4 回 双対問題 11
Lagrange 緩和による方法
いくつかの条件を省く(緩和)
0,,,,, 321321 yyyxxx条件
最大化 (15 - 2y1 - y2)x1
+(18 - y1 - 2y2)x2
+(30 - y1 - y2 -y3)x3
+60y1+60y2+30y3
0,,,,,
30
602
602
321321
3
321
321
yyyxxx
x
xxx
xxx条件
最大化 (15 - 2y1 - y2)x1
+(18 - y1 - 2y2)x2
+(30 - y1 - y2 -y3)x3
+60y1+60y2+30y3
Lagrange 緩和問題線形計画問題だけでなく,一般的な最適化問題に対するフレームワーク
2000 年 12 月 第 4 回 双対問題 12
Lagrange 緩和による方法
ここが正だといくらでも大きくできる
0,,,,, 321321 yyyxxx条件
最大化 (15 - 2y1 - y2)x1
+(18 - y1 - 2y2)x2
+(30 - y1 - y2 -y3)x3
+60y1+60y2+30y3
非正でなければならない
他の係数についても同様
なるべくよい(なるべく小さい)上界を得ることを考える
この条件のもとで目的関数の x に依存しない部分を最小化
2000 年 12 月 第 4 回 双対問題 13
Lagrange 緩和による方法
0,,
30
182
152
321
321
21
21
yyy
yyy
yy
yy条件最小化 60y1+60y2+30y3
双対問題
2000 年 12 月 第 4 回 双対問題 19
弱双対性定理(弱双対性( week duality ))主問題の実行可能解の目的関数値は,双対問題の実行可能解の目的関数値以下である.
主問題の最適値が∞なら双対問題には実行可能解が存在しない
双対問題の最適値が-∞なら主問題には実行可能解が存在しない
2000 年 12 月 第 4 回 双対問題 20
強双対性
定理(強双対性( strong duality ))主問題が最適解をもつなら,その双対問題も最適解をもち,そのとき両者の目的関数は一致する.
より強いことも言える
2000 年 12 月 第 4 回 双対問題 21
相補性条件Lagrange 緩和問題の目的関数に注目
15x1+18x2+30x3+(60 - 2x1 - x2 - x3)y1+(60 - x1 - 2x2 - x3)y2+(30 -x3)y3
(15 - 2y1 - y2)x1+(18 - y1 - 2y2)x2+(30 - y1 - y2 -y3)x3+60y1+60y2+30y3
=0
=0
さらに...
双対問題の目的関数(最小化)
主問題の目的関数(最大化)
2000 年 12 月 第 4 回 双対問題 22
相補性条件xi は主問題の実行可能解なので
(60 - 2x1 - x2 - x3)y1+(60 - x1 - 2x2 - x3)y2+(30 -x3)y3=0
0,,
030
0260
0260
321
3
321
321
xxx
x
xxx
xxx
が成り立つ
yi は双対問題の実行可能解なので
が成り立つ0,,
030
0218
0215
321
321
21
21
yyy
yyy
yy
yy
各項は 0 以上,すなわち 0
2000 年 12 月 第 4 回 双対問題 23
相補性条件xi は主問題の実行可能解なので
0,,
030
0260
0260
321
3
321
321
xxx
x
xxx
xxx
が成り立つ
yi は双対問題の実行可能解なので
が成り立つ0,,
030
0218
0215
321
321
21
21
yyy
yyy
yy
yy
各項は 0 以下,すなわち 0
(15 - 2y1 - y2)x1+(18 - y1 - 2y2)x2+(30 - y1 - y2 -y3)x3=0
つまり...
2000 年 12 月 第 4 回 双対問題 24
相補性条件
を満たさなければならない.
(15 - 2y1 - y2)x1=0(18 - y1 - 2y2)x2=0(30 - y1 - y2 -y3)x3=0
(60 - 2x1 - x2 - x3)y1=0(60 - x1 - 2x2 - x3)y2=0(30 - x3)y3=0
主問題の最適解 xi と主問題の最適解 yi は
余った肉の価値は 0でなければならな
い
原料の価格>
丼の価格ならば丼を作らな
いxi と yi が最適解であることの必要十分条件
2000 年 12 月 第 4 回 双対問題 25
双対辞書
双対問題の辞書を作る
0,,
30
182
152
306060
321
321
21
21
321
yyy
yyy
yy
yy
yyy
条件最小化
余裕変数の導入
最小化 60y1+60y2+30y3 =z条件 2y1+ y2 -w1 =15 y1+ 2y2 -w2 =18 y1+ y2+ y3 -w3=30
0,,,,, 321321 wwwyyy
2000 年 12 月 第 4 回 双対問題 26
双対辞書
最小化問題を最大化問題に変換
最小化 60y1+60y2+30y3 =z条件 2y1+ y2 -w1 =15 y1+ 2y2 -w2 =18 y1+ y2+ y3 -w3=30
0,,,,, 321321 wwwyyy
最大化 -60y1-60y2-30y3 =-z条件 2y1+ y2 -w1 =15 y1+ 2y2 -w2 =18 y1+ y2+ y3 -w3=30
0,,,,, 321321 wwwyyy
2000 年 12 月 第 4 回 双対問題 27
双対辞書
辞書により表現
最大化 -60y1-60y2-30y3 =-z条件 2y1+ y2 -w1 =15 y1+ 2y2 -w2 =18 y1+ y2+ y3 -w3=30
0,,,,, 321321 wwwyyy
初期双対辞書-z = 0 -60y1-60y2-30y3
w1=-15+ 2y1+ y2
w2=-18+ y1+ 2y2
w3=-30+ y1+ y2+ y3
2000 年 12 月 第 4 回 双対問題 28
双対辞書
双対辞書に対応する基底解は必ずしも実行可能になっていない
初期双対辞書-z = 0 -60y1-60y2-30y3
w1=-15+ 2y1+ y2
w2=-18+ y1+ 2y2
w3=-30+ y1+ y2+ y3
(y1,y2,y3,w1,w2,w3)=(0,0,0,-15,-18,-30)
非負条件を満たしていない
2000 年 12 月 第 4 回 双対問題 29
双対辞書主問題の初期辞書と見比べると
初期双対辞書-z = 0 -60y1-60y2-30y3
w1=-15+ 2y1+ y2
w2=-18+ y1+ 2y2
w3=-30+ y1+ y2+ y3
初期辞書z = 0+15x1+18x2+30x3
s1=60- 2x1- x2- x3
s2=60- x1- 2x2- x3
s3=30 - x3
係数を行列表現すると
0 15 18 3060 –2 –1 –160 –1 –2 –130 0 0 –1
0 –60 –60 –30–15 2 1 0–18 1 2 0–30 1 1 1
転置反転の関係
2000 年 12 月 第 4 回 双対問題 30
双対辞書
初期双対辞書-z = 0 -60y1-60y2-30y3
w1=-15+ 2y1+ y2
w2=-18+ y1+ 2y2
w3=-30+ y1+ y2+ y3
初期辞書z = 0+15x1+18x2+30x3
s1=60- 2x1- x2- x3
s2=60- x1- 2x2- x3
s3=30 - x3
(y1,y2,y3,w1,w2,w3)=(0,0,0,-15,-18,-30)
(x1,x2,x3,s1,s2,s3)=(0,0,0,60,60,30)
相補性条件siyi=0 i=1,2,3wjxj=0 j=1,2,3を満たしている
2000 年 12 月 第 4 回 双対問題 31
双対辞書 初期双対辞書-z = 0 -60y1-60y2-30y3
w1=-15+ 2y1+ y2
w2=-18+ y1+ 2y2
w3=-30+ y1+ y2+ y3
初期辞書z = 0+15x1+18x2+30x3
s1=60- 2x1- x2- x3
s2=60- x1- 2x2- x3
s3=30 - x3
相補性条件siyi=0 i=1,2,3wjxj=0 j=1,2,3
1 反復後の辞書z =900+15x1+18x2-30s3
s1=30 - 2x1- x2+ s3
s2=30 - x1- 2x2+ s3
x3=30 - s3
1 反復後の双対辞書-z =-900-30y1-30y2-30w3
w1=- 15+ 2y1+ y2
w2=- 18+ y1+ 2y2
y3= 30- y1- y2+ w3基底解(y1,y2,y3,w1,w2,w3)=(0,0,30,-15,-18,0)
実行可能解でなければ多面集合の端点でもない
2000 年 12 月 第 4 回 双対問題 32
双対辞書
相補性条件siyi=0 i=1,2,3wjxj=0 j=1,2,3
1 反復後の辞書z =900+15x1+18x2-30s3
s1=30 - 2x1- x2+ s3
s2=30 - x1- 2x2+ s3
x3=30 - s3
1 反復後の双対辞書-z =-900-30y1-30y2-30w3
w1=- 15+ 2y1+ y2
w2=- 18+ y1+ 2y2
y3= 30- y1- y2+ w3
基底解(y1,y2,y3,w1,w2,w3)=(0,9,21,-6,0,0)
2 反復後の辞書z =1170+ 6x1- 9s2- 21s3
s1=15 -3/2x1-1/2s2+1/2s3
x2=15 -1/2x1-1/2s2+1/2s3
x3=30 - s3
2 反復後の双対辞書-z =-1170- 15y1- 15w2-30w3
w1=- 6+3/2y1+1/2w2
y2= 9- 1/2y1+1/2w2
y3= 21- 1/2y1- 1/2w2+ w3
まだ実行可能解でなければ
多面集合の端点でもない
2000 年 12 月 第 4 回 双対問題 33
双対辞書
相補性条件siyi=0 i=1,2,3wjxj=0 j=1,2,3
基底解(y1,y2,y3,w1,w2,w3)=(4,7,19,0,0,0)
2 反復後の辞書z =1170+ 6x1- 9s2- 21s3
s1=15 -3/2x1-1/2s2+1/2s3
x2=15 -1/2x1-1/2s2+1/2s3
x3=30 - s3
2 反復後の双対辞書-z =-1170- 15y1- 15w2-30w3
w1=- 6+3/2y1+1/2w2
y2= 9- 1/2y1+1/2w2
y3= 21- 1/2y1- 1/2w2+ w3
最終辞書z =1230- 4s1 - 7s2- 19s3
x1=10 - 2/3s1+1/3s2+1/3s3
x2=10 +1/3s1- 2/3s2+1/3s3
x3=30 - s3
やっと実行可能解になった
最終双対辞書-z =-1230- 10w1- 10w2-30w3
y1 = 4+2/3w1-1/3w2
y2 = 7- 1/3w1+2/3w2
y3 = 19- 1/3w1- 1/3w2+ w3
2000 年 12 月 第 4 回 双対問題 34
双対辞書
基底解(y1,y2,y3,w1,w2,w3)=(4,7,19,0,0,0)
最終双対辞書-z =-1230- 10w1- 10w2-30w3
y1 = 4+2/3w1-1/3w2
y2 = 7- 1/3w1+2/3w2
y3 = 19- 1/3w1- 1/3w2+ w3
豚肉は百グラム 400 円鶏肉は百グラム 700 円牛肉は百グラム 1900 円とするのが最適な価格付け
じつはわざわざ双対辞書を作らなくても主問題の最終辞書の目的関数式z =1230- 4s1 - 7s2- 19s3
における係数符号を反転したものが最適な双対変数になっている
2000 年 12 月 第 4 回 双対問題 35
双対辞書
30
30
30
y1 y1
y2
y2
y3
y330
30
30
双対問題の実行可能領域と双対辞書に対応する基底解の動き
2000 年 12 月 第 4 回 双対問題 36
2 種類の運賃クラスを考え,高い方の運賃クラスを Y ,安い方の運賃クラスを Q とする.残席数(図中の数字)を利益最大になるように顧客に割り振る.
2000 年 12 月 第 4 回 双対問題 37
推定需要量
発地 - 着地(運賃クラス) 略称 需要量の推定値 収益 成田 - ホノルル(クラス Q ) NaHoQ 80 70000 成田 - ハワイ(クラス Q ) NaHaQ 70 85000成田 - マウイ(クラス Q ) NaMaQ 50 79000成田 - ホノルル(クラス Y ) NaHoY 10 115000 成田 - ハワイ(クラス Y ) NaHaY 20 140000 成田 - マウイ(クラス Y ) NaMaY 20 130000
Q1.各運賃クラスを何人まで受け付けるか?Q2.就航していないホノルル - ハワイ,ホノルル - マウイの価格は幾らに設定すれば良いか?何円以上なら受け付けるべきか?
2000 年 12 月 第 4 回 双対問題 38
Excel Solver
Y クラスはすべて受け入れ. Q クラスは 20,20,10 を上限に受け入れ.
2000 年 12 月 第 4 回 双対問題 39
感度レポート(最適双対変数)
NaHo の価値 =70000HoHa の価値 =15000 (料金未設定の便)HoMa の価値 =9000 (料金未設定の便)