PowerPoint プレゼンテーション

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