Successfully reported this slideshow.                                                                          Upcoming SlideShare
×

「リア充」で学ぶ線形計画問題(ver0.5.3)

4,527 views

Published on

「バイトとデートの時間をうまく配分してリア充を目指す」問題を線形計画問題として解説．

Published in: Education
• Full Name
Comment goes here.

Are you sure you want to Yes No • Be the first to comment

「リア充」で学ぶ線形計画問題(ver0.5.3)

1. 1. 線形計画問題 等式標準形 実行可能基底解 単体法 双対性 学習ガイド 「リア充」で学ぶ線形計画問題 長江 剛志1 February 15, 2013(ver0.5.3) 1 東北大学大学院 工学研究科 技術社会システム専攻 (nagae@m.tohoku.ac.jp)
2. 2. 線形計画問題 等式標準形 実行可能基底解 単体法 双対性 学習ガイドOutline 1 線形計画問題 2 等式標準形 3 実行可能基底解 4 単体法 5 双対性 6 学習ガイド
3. 3. 線形計画問題 等式標準形 実行可能基底解 単体法 双対性 学習ガイド 1 線形計画問題 2 等式標準形 3 実行可能基底解 4 単体法 5 双対性 6 学習ガイド
4. 4. 線形計画問題 等式標準形 実行可能基底解 単体法 双対性 学習ガイド「リア充」問題 A くんには自由な時間が 1 日あたり 8 時間 あり，彼女ができ たばかり． 自由な時間の使い途として バイト と デート を考える． バイトすると 1 時間あたり 700 円 の収入になる． デートすると 1 時間あたり 350 円 の支出になる． A くんの仕送りから家賃・食費などの生活費を除くと リア充 資金 として 1 日あたり 700 円 を充当できる． A くんはバイトしてもデートしても充実感が得られるが，で きたばかりの彼女と過ごす時間の方が，バイトの時間よりも 充実感を味わえる．そこで，1 時間あたりの充実感の比率を バイト:デート = 1:5 とする． リア充資金とバイト給料でデート代を賄いつつ，充実した生 活を送るには 1 日あたりバイトとデートを何時間づつすれば よいだろう？
5. 5. 線形計画問題 等式標準形 実行可能基底解 単体法 双対性 学習ガイド線形計画問題としての定式化 I 未知変数 (制御変数) の定義 バイトにあてる時間を x1 , デートにあてる時間を x2 で表す． 時間制約 バイトの時間とデートの時間の合計が 8 時間を超えてはいけ ない： x1 + x2 ≤ 8 (1) 予算制約 「バイトの収入とリア充資金の合計」が「デートへの支出」 以上でなければいけない： 700x1 + 700 ≥ 350x2 両辺を 350 で割れば， 2x1 + 2 ≥ x2 (2)
6. 6. 線形計画問題 等式標準形 実行可能基底解 単体法 双対性 学習ガイド線形計画問題としての定式化 II 目的関数 バイト 1 時間あたりの充実度 1 に対して，デート 1 時間あた りの充実度が 5 だから，その合計を「リア充度」とする： Z(x1 , x2 ) x1 + 5x2 (3) 線形計画問題として表現されたリア充問題 max x1 + 5x2 x1 ,x2 s.t. x1 + x2 ≤ 8 2x1 + 2 ≥ x2 x1 , x2 ≥ 0 s.t. は subject to ... (. . . の制約の下で) の略．
7. 7. 線形計画問題 等式標準形 実行可能基底解 単体法 双対性 学習ガイド許容領域 (9,15) 9 制約条件を満足する (許容 8 (0, 8) される) バイト時間とデー 7 ト時間の組 (x1 , x2 ) は，4 6 本の不等式： 5 x1 + x1 + x2 ≤ 8 4 x2 = 8 3 2 1 (8, 0) -2 -1 1 2 3 4 5 6 7 8 9 で囲まれた領域 -1
8. 8. 線形計画問題 等式標準形 実行可能基底解 単体法 双対性 学習ガイド許容領域 (9,15) 9 制約条件を満足する (許容 8 (0, 8) される) バイト時間とデー 7 ト時間の組 (x1 , x2 ) は，4 6 (2, 6) 本の不等式： 5 x1 + x1 + x2 ≤ 8 x2 4 x2 = 2x1 + 2 ≥ x2 = 8 +2 3 1 2x 2 1 (−2, 0) (8, 0) -2 -1 1 2 3 4 5 6 7 8 9 で囲まれた領域 -1
9. 9. 線形計画問題 等式標準形 実行可能基底解 単体法 双対性 学習ガイド許容領域 (9,15) 9 制約条件を満足する (許容 8 (0, 8) される) バイト時間とデー 7 ト時間の組 (x1 , x2 ) は，4 6 (2, 6) 本の不等式： 5 x1 x1 + x2 ≤ 8 x2 + x1 = 0 x2 = 4 = 2x1 + 2 ≥ x2 +2 8 3 1 2x 2 x1 ≥ 0 (0, 2) 1 (−2, 0) (8, 0) -2 -1 1 2 3 4 5 6 7 8 9 で囲まれた領域 -1
10. 10. 線形計画問題 等式標準形 実行可能基底解 単体法 双対性 学習ガイド許容領域 (9,15) 9 制約条件を満足する (許容 8 (0, 8) される) バイト時間とデー 7 ト時間の組 (x1 , x2 ) は，4 6 (2, 6) 本の不等式： 5 x1 x1 + x2 ≤ 8 x2 + x1 = 0 x2 = 4 = 2x1 + 2 ≥ x2 +2 8 3 1 2x 2 x1 ≥ 0 (0, 2) 1 x2 ≥ 0 (−2, 0) (0, 0) x2 = 0 (8, 0) -2 -1 1 2 3 4 5 6 7 8 9 で囲まれた領域 -1
11. 11. 線形計画問題 等式標準形 実行可能基底解 単体法 双対性 学習ガイド目的関数の等高線と最適解 [ ] 1 目的関数 Z(x1 , x2 ) x1 + 5x2 の等高線は， を法線ベクトルと 5 する平行線． 9 許容領域 の中で，原点か 8 ら最も遠い (ie. 最も値の 7 高い) 等高線が通る点 6 (2, 6) Z (x1 , x ) 2 = 32 (2, 6) が 最適解 で，最適 5 Z (x1 , x ) 2 = 30 値 は 32. 4 Z (x1 , x ) 2 = 25 Z (x1 , x ) 3 2 = 20 2 [ ] 1 1 5 Z (x1 , x ) 2 = 10 -2 -1 1 2 3 4 5 6 7 8 9 -1 Z (x1 , x ) 2 =0
12. 12. 線形計画問題 等式標準形 実行可能基底解 単体法 双対性 学習ガイド脱線 (1): 彼女が実家暮らしの場合 彼女の門限が厳しく，一緒に居られるのは 4 時間まで→ 以下の制約によって許容領域が狭められる： x2 ≤ 4 9 あたらしい制約によって 8 最適解は (4, 4), 最適値は 7 24 となる． 6 5 (4, 4) x2 = 4 4 Z (x1 , x ) Z (x1 , x ) 2 = 24 3 2 = 20 2 [ ] 1 1 5 Z (x1 , x ) 2 = 10 -2 -1 1 2 3 4 5 6 7 8 9 -1 Z (x1 , x ) 2 =0
13. 13. 線形計画問題 等式標準形 実行可能基底解 単体法 双対性 学習ガイド脱線 (2): 彼女とケンカした場合 バイトに精を出す方が彼女と一緒に居るより充実感を得られる→ 目的関数が以下の式で表されるとする： 1 Z ′ (x1 , x2 ) x1 + x2 2 [ ] 9 1 目的関数の等高線は 8 0.5 7 を法線とする平行線． 6 最適解は (8, 0), 最適値は Z( ′ x1 Z( ′ x1 5 8. , x2 , x2 Z( ′ x1 )= 4 )= 8 , x2 7 3 )= 2 [ ] 4 1 1 0.5 (8, 0) -1 1 2 3 4 5 6 7 8 9-2 -1
14. 14. 線形計画問題 等式標準形 実行可能基底解 単体法 双対性 学習ガイド脱線 (3): 彼女と仲直りした場合 彼女と一緒にいても充実できるが，付き合い始めた頃ほど情熱的 にもなれない→目的関数が以下の式で表されるとする： Z ′′ (x1 , x2 ) x1 + x2 [ ] 9 1 目的関数の等高線は 8 1 7 を法線とする平行線． 6 (2, 6) (2, 6) と (8, 0) を結ぶ線分 Z ′′ 5 (x 上の 任意の点 が最適解 Z ′′ 1, 4 x2 (x )= で，最適値は 8. Z ′′ 1, 8 3 x2 (x )= [ ] 1, 2 1 x2 6 )= 1 1 4 (8, 0) -1 1 2 3 4 5 6 7 8 9-2 -1
15. 15. 線形計画問題 等式標準形 実行可能基底解 単体法 双対性 学習ガイド最適解の特徴 最適解は許容領域の 端点 (ごく稀に 辺 ) に限られる． 9 9 8 8 7 7 6 6 5 5 4 4 3 3 2 2 1 1 -2 -1 1 2 3 4 5 6 7 8 9 -2 -1 1 2 3 4 5 6 7 8 9 -1 -1 9 9 8 8 7 7 6 6 5 5 4 4 3 3 2 2 1 1 -1 1 2 3 4 5 6 7 8 9 -1 1 2 3 4 5 6 7 8 9 -2 -1 -2 -1 つまり，端点を順に探していけば 必ず 最適解が見つかる． 許容領域の端点をシステマティックに表現・探索する方法は？
16. 16. 線形計画問題 等式標準形 実行可能基底解 単体法 双対性 学習ガイドOutline 1 線形計画問題 2 等式標準形 3 実行可能基底解 4 単体法 5 双対性 6 学習ガイド
17. 17. 線形計画問題 等式標準形 実行可能基底解 単体法 双対性 学習ガイド等式標準形 N 個の未知変数 x1 , x2 , · · · , xN を用いて，M 本の 等式 制約条件を 満足しながら，目的関数を最小化する． 等式標準形の線形計画問題 min c1 x1 + c2 x2 + ··· + cN xN x1 ,x2 ,··· ,xN s.t. a11 x1 + a12 x2 + ··· + a1N xN = b1 a21 x1 + a22 x2 + ··· + a2N xN = b2 . . . . .. . . . . . . . . . aM1 x1 + aM2 x2 + · · · + aMN xN = bM x1 , x2 , ··· xN ≥ 0 任意の線形計画問題を同一の形式で記述できる 許容領域の端点をシステマティックに表現できる
18. 18. 線形計画問題 等式標準形 実行可能基底解 単体法 双対性 学習ガイド等式標準形への変換方法 I 最大化問題は，目的関数の全ての係数に −1 を乗じる： max x1 + 5x2 → min −x1 − 5x2 x1 ,x2 x1 ,x2 不等式制約は，まず，(x1 , x2 , · · · についての線形式) ≤ (定数) の形に整理する： 2x1 + 2 ≥ x2 → −2x1 + x2 ≤ 2 非負の人工的な変数 (スラック変数) を導入することで，不等 式制約を等式に書き換える： x1 +x2 ≤ 8 x1 +x2 +x3 = 8 −2x1 +x2 ≤ 2 −2x1 +x2 +x4 = 2 → x2 ≤ 4 x2 +x5 = 4 x1 , x2 ≥ 0 x1 , x2 , x3 , x4 , x5 ≥ 0
19. 19. 線形計画問題 等式標準形 実行可能基底解 単体法 双対性 学習ガイド等式標準形への変換方法 II 【補足】非負制約のない変数は，2 つの人工的な非負変数を 導入し，その差として表現する． + − min − x1 + 2x2 , min − x1 + 2(x2 − x2 ), + − x1 ,x2 x1 ,x2 ,x2 s.t. x1 + x2 = 1, + − ⇒ s.t. x1 + (x2 − x2 ) = 1, x1 ≥ 0, x1 ≥ 0, x2 は正でも負でも 0 でもよい + − x2 , x2 ≥ 0
20. 20. 線形計画問題 等式標準形 実行可能基底解 単体法 双対性 学習ガイドリア充問題 (彼女が実家暮らしの場合) の等式標準形としての表現 min −x1 −5x2 +0 · x3 +0 · x4 +0 · x5 x1 ,x2 ,x3 ,x4 ,x5 s.t. x1 +x2 +x3 = 8 −2x1 +x2 +x4 = 2 +x2 +x5 = 4 x1 , x2 , x3 , x4 , x5 ≥ 0 行列とベクトルを使えば，もっとスッキリ記述できる．
21. 21. 線形計画問題 等式標準形 実行可能基底解 単体法 双対性 学習ガイド目的関数をベクトルで表現 2 つの N 次元列ベクトル： [ ]⊤ [ ]⊤ x = x1 x2 · · · xN , c = c1 c2 · · · cN を用いて目的関数を書き直す (⊤ は行列の転置を表す記号)． min c1 x1 + c2 x2 + ··· + cN xN x1 ,x2 ,··· ,xN a11 x1 + a12 x2 + ··· + a1N xN = b1 a21 x1 + a22 x2 + ··· + a2N xN = b2 . . . . .. . . . . . . . . . aM1 x1 + aM2 x2 + · · · + aMN xN = bM x1 , x2 , ··· xN ≥ 0
22. 22. 線形計画問題 等式標準形 実行可能基底解 単体法 双対性 学習ガイド目的関数をベクトルで表現 2 つの N 次元列ベクトル： [ ]⊤ [ ]⊤ x = x1 x2 · · · xN , c = c1 c2 · · · cN を用いて目的関数を書き直す (⊤ は行列の転置を表す記号)． min c⊤ x x a11 x1 + a12 x2 + ··· + a1N xN = b1 a21 x1 + a22 x2 + ··· + a2N xN = b2 . . . . .. . . . . . . . . . aM1 x1 + aM2 x2 + · · · + aMN xN = bM x1 , x2 , ··· xN ≥ 0
23. 23. 線形計画問題 等式標準形 実行可能基底解 単体法 双対性 学習ガイド制約条件を行列とベクトルで表現 min c⊤ x x s.t. a11 x1 + a12 x2 + ··· + a1N xN = b1 a21 x1 + a22 x2 + ··· + a2N xN = b2 . . . . .. . . . . . . . . . aM1 x1 + aM2 x2 + · · · + aMN xN = bM x1 , x2 , ··· xN ≥ 0
24. 24. 線形計画問題 等式標準形 実行可能基底解 単体法 双対性 学習ガイド制約条件を行列とベクトルで表現 min c⊤ x x        a11 a12 · · · a1N   x1   b1          21 a22 · · · a2N   x2   b2   a                              s.t.  .   . . .. .   .  =  .  .   .   .        .   . . . .   .   .                       aM1 aM2 · · · aMN xN bM x≥0
25. 25. 線形計画問題 等式標準形 実行可能基底解 単体法 双対性 学習ガイド制約条件を行列とベクトルで表現 min c⊤ x x s.t. Ax = b x≥0      a11 a12 · · · a1N       b1       21 a22 · · · a2N  a           . A=  .  , b =  b2         .   . . . .. .  .   .     .     . . .             aM1 aM2 · · · aMN bM より簡潔に { } min c⊤ x|Ax = b, x ≥ 0 x と記述することもある．
26. 26. 線形計画問題 等式標準形 実行可能基底解 単体法 双対性 学習ガイド等式標準形リア充問題のベクトル・行列表現 等式標準形リア充問題 min −x1 −5x2 +0 · x3 +0 · x4 +0 · x5 x1 ,x2 ,x3 ,x4 ,x5 s.t. x1 +x2 +x3 = 8 −2x1 +x2 +x4 = 2 x2 +x5 = 4 x1 , x2 , x3 , x4 , x5 ≥ 0 ベクトル・行列表現 { } min c⊤ x|Ax = b, x ≥ 0 x [ ]⊤ [ ]⊤ x x1 x2 x3 x4 x5 , c −1 −5 0 0 0 ,      1 1 1 0 0     8      −2 1 0 1 0 ,    A       b 2          0 1 0 0 1 4
27. 27. 線形計画問題 等式標準形 実行可能基底解 単体法 双対性 学習ガイドOutline 1 線形計画問題 2 等式標準形 3 実行可能基底解 4 単体法 5 双対性 6 学習ガイド
28. 28. 線形計画問題 等式標準形 実行可能基底解 単体法 双対性 学習ガイドリア充問題の例 9 0 8 = x4 7 x1 = 0 6 x1 +x2 +x3 = 8 −2x1 +x2 +x4 = 2 5 4 x5 = 0 3 x3 = x2 +x5 = 4 2 0 1 x2 = 0 -2 -1 1 2 3 4 5 6 7 8 9 -1
29. 29. 線形計画問題 等式標準形 実行可能基底解 単体法 双対性 学習ガイドリア充問題の例 9 0 8 = 基底変数/非基底変数: x4 7 (xB |xN ) = (x1 , x2 , x3 |x4 , x5 ) x1 = 0 6 5 x5 = 0 x1 +x2 +x3 = 8 4 t 3 xN = (x4 , x5 ) x3 = −2x1 +x2 +x4 = 2 2 0 x2 +x5 = 4 1        x2 = 0  1 1 1  x1  0 0 [ ] 8          x  4     −2 1 0  x2 +1 0         x = 2 -2 -1 -1 1 2 3 4 5 6 7 8 9                     5        0 1 0 x3 0 1 4 AB AN xN = (x4 , x5 ) = 0 として AB xB = b を解けば， (x1 , x2 , x3 ) = (1, 4, 3) x が全て非負→実行可能
30. 30. 線形計画問題 等式標準形 実行可能基底解 単体法 双対性 学習ガイドリア充問題の例 9 0 8 = 基底変数/非基底変数: x4 7 x1 = 0 6 (xB |xN ) = (x3 , x4 , x5 |x1 , x2 ) 5 4 x5 = 0 x3 +x1 +x2 = 8 x3 3 = 0 x4 −2x1 +x2 = 2 2 x5 +x2 = 4 1 txN = (x1 , x2 ) x2 = 0        -2 -1 1 2 3 4 5 6 7 8 9 1 0 0  x3   1 1 [ ] 8          x  1         0 1 0  x4 +−2 1    x = 2 -1               2              0 0 1 x5 0 1 4 AB AN xN = (x1 , x2 ) = 0 として AB xB = b を解けば， (x3 , x4 , x5 ) = (8, 2, 4) x が全て非負→実行可能
31. 31. 線形計画問題 等式標準形 実行可能基底解 単体法 双対性 学習ガイドリア充問題の例 9 0 8 = 基底変数/非基底変数: x4 7 x1 = 0 6 (xB |xN ) = (x2 , x3 , x5 |x1 , x4 ) 5 x5 = 0 4 x2 +x3 +x1 = 8 x3 3 = x2 −2x1 +x4 = 2 tx 2 N = (x1 , x4 ) 0 x2 +x5 = 4 1 x2 = 0        -1 1 1 0   x 2   1      0 [ ] 8  x   1 0 0  x3 +−2  1   -2 -1 1 2 3 4 5 6 7 8 9                       1 x = 2   4              1 0 1 x5 0 0 4 AB AN xN = (x1 , x4 ) = 0 として AB xB = b を解けば， (x2 , x3 , x5 ) = (2, 6, 2) x が全て非負→実行可能
32. 32. 線形計画問題 等式標準形 実行可能基底解 単体法 双対性 学習ガイドリア充問題の例 9 0 8 = 基底変数/非基底変数: x4 7 x1 = 0 6 (xB |xN ) = (x1 , x3 , x5 |x2 , x4 ) 5 x5 = 0 4 x1 +x3 +x2 = 8 x3 3 = −2x1 +x2 +x4 = 2 2 0 x5 +x2 = 4 1 t x2 = 0        -1  1 1 0   x 1  1      0 [ ] 8  x   −2 0 0  x3 +1  2   -2 -1 1 2 3 4 5 6 7 8 9          xN = (x2 , x4 )             1 x = 2   4              0 0 1 x5 1 0 4 AB AN xN = (x2 , x4 ) = 0 として AB xB = b を解けば， xB = (x1 , x3 , x5 ) = (−1, 9, 4) x1 が負→実行不可能
33. 33. 線形計画問題 等式標準形 実行可能基底解 単体法 双対性 学習ガイドリア充問題の例 9 xN = (x1 , x3 ) 8 t 0 Z Z = Z 基底変数/非基底変数: x4 7 Z x1 = 0 6 Z (xB |xN ) = (x2 , x4 , x5 |x1 , x3 ) 5 Z x5 = 0 4 Z x2 +x1 +x3 = 8 Z x3 3 Z= 0 x2 +x4 −2x1 = 2 Z 2 Z x2 +x5 = 4 1 x2 = 0 Z        Z 9 1 0 0   x 2   1 1 [ ] 8 Z       x   1 1 0  x4 +−2  1   -2 -1 1 2 3 4 5 6 7 8           0 x = 2 -1               3              1 0 1 x5 0 0 4 AB AN xN = (x1 , x3 ) = 0 として AB xB = b を解けば， (x2 , x4 , x5 ) = (8, −6, −4) x4 , x5 が負→実行不可能
34. 34. 線形計画問題 等式標準形 実行可能基底解 単体法 双対性 学習ガイドリア充問題の例 9 0 Z 8 Z = Z 基底変数/非基底変数: x4 ZtN = (x3 , x4 ) 7 x1 = 0 6 x Z (xB |xN ) = (x1 , x2 , x5 |x3 , x4 ) 5 Z x5 = 0 4 Z x1 +x2 +x3 = 8 Z x3 3 Z= 0 −2x1 +x2 +x4 = 2 2 Z Z x2 +x5 = 4 1 x2 = 0 Z        Z 9  1 1 0  x1  1 0 [ ] 8 -2 -1 -1 1 2 3 4 5 6 7 8 Z              x  3        −2 1 0  x2 +0 1          x = 2               4      0 1 1 x5 0 0 4 AB AN xN = (x3 , x4 ) = 0 として AB xB = b を解けば， (x1 , x2 , x5 ) = (2, 6, −2) x5 が負→実行不可能
35. 35. 線形計画問題 等式標準形 実行可能基底解 単体法 双対性 学習ガイドリア充問題の例 9 0 Z 8 Z = Z 基底変数/非基底変数: x4 7 Z x1 = 0 6 Z (xB |xN ) = (x1 , x2 , x4 |x3 , x5 ) 5 Z xN = (x3 , x5 ) x = 0 4 Zt 5 x1 +x2 +x3 = 8 Z x3 3 Z 0= −2x1 +x2 +x4 = 2 Z 2 Z x2 +x5 = 4 1 x2 = 0 Z        Z 9  1 1 0  x1  1 0 [ ] 8 -2 -1 1 2 3 4 5 6 7 8 Z              x  3        -1 −2 1 1  x2 +0 0          x = 2               5      0 1 0 x4 0 1 4 AB AN xN = (x3 , x5 ) = 0 として AB xB = b を解けば， (x1 , x2 , x4 ) = (4, 4, 6) x が全て非負→実行可能
36. 36. 線形計画問題 等式標準形 実行可能基底解 単体法 双対性 学習ガイドリア充問題の例 9 0 Z 8 Z = Z 基底変数/非基底変数: x4 7 Z x1 = 0 6 Z (xB |xN ) = (x1 , x4 , x5 |x2 , x3 ) 5 Z x5 = 0 4 Z x1 +x2 +x3 = 8 Z x3 3 Z= 0 −2x1 +x4 +x2 = 2 Z 2 Z x5 +x2 = 4 1 x2 = 0 Z t        Z 9  1 0 0   x 1  1 1 [ ] 8 Z       x   −2 1 0  x4 +1  2   -2 -1 1 2 3 4 5 6 7 8           xN = (x2 , x3 ) 0 x = 2 -1               3              0 0 1 x5 1 0 4 AB AN xN = (x2 , x3 ) = 0 として AB xB = b を解けば， (x1 , x2 , x5 ) = (8, 18, 4) x が全て非負→実行可能
37. 37. 線形計画問題 等式標準形 実行可能基底解 単体法 双対性 学習ガイドリア充問題の例 9 xN = (x1 , x3 ) t 0 8 特に，xN = 0 とした解： = x4 7 txN = (x3 , x4 ) [ ] [ −1 ] x1 = 0 6 x AB b 5 xN = (x3 , x5 ) x= B = 4 t t x5 = 0 xN 0 xN = (x4 , x5 ) x3 3 = t 2 x N = (x1 , x4 ) 0 は基底解と呼ばれ，許容領域 1 を構成する直線の「交点」に t txN = (x1 , x2 ) x2 = 0 t 対応する． -2 -1 1 2 3 4 5 6 7 8 9xN = (x2 , x4 )-1 xN = (x2 , x3 ) 基底解の中で，x ≥ 0 を満足す るものは実行可能基底解と呼 変数を基底変数 xB ，非基底変数 xN ばれ，許容領域の「端点」に に分解すれば，等式制約 Ax = b を満 対応する． たす解は [ ] [ −1 ] 端点は表現できた．次は， xB AB (b − AN xN ) x= = ある端点が最適解か否か xN xN を判定する方法 と xN のみを用いて表せる． 最適解でなかったときに， 次の端点を探索する方法
38. 38. 線形計画問題 等式標準形 実行可能基底解 単体法 双対性 学習ガイドOutline 1 線形計画問題 2 等式標準形 3 実行可能基底解 4 単体法 5 双対性 6 学習ガイド
39. 39. 線形計画問題 等式標準形 実行可能基底解 単体法 双対性 学習ガイドリア充問題の実行可能基底解と最適性 たとえば，非基底変数を 基底解 (xB |xN ) = (8, 2, 4|0, 0) は xN = (x1 , x2 ) とする． 実行可能 で，端点 (0, 0) に相当． 目的関数および等式制約は 9 0 8 = x4 Z(x) = −x1 −5x2 7 x1 = 0 s.t. x3 +x1 +x2 = 8 6 x4 −2x1 +x2 = 2 5 x5 = 0 x5 +x2 = 4 4 x3 3 = 0 非基底変数 xN のみで表せば 2 1 t x2 = 0 Z = −x1 − 5x2 , -2 -1 -1 1 2 3 4 5 6 7 8 9  x  8  1  1 [ x ]  3     x  2 −2        4 =   −       1 1 .   x2 基底解における目的関数は Z = 0. x5 4 0 1 目的関数の xN に関する係数は (−1, −5) でどちらも負なので， x1 や x2 を増やせば 目的関数は減少
40. 40. 線形計画問題 等式標準形 実行可能基底解 単体法 双対性 学習ガイド基底変数の入れ替えと次の実行可能基底解 x1 = 0 のまま x2 を増やす． ここで，  x  8 1 ゼロとなった基底変数 x4  3           xB =  x4  = 2 − 1 x2             非負となった非基底変数 x2 x5 4 1 を入れ替えれば，新しい実行可 能基底解 xB ≥ 0 であるためには，  (xB |xN ) = (x2 , x3 , x5 |x1 , x4 )  x3 = 8 − x2 ≥ 0 ⇒ x2 ≤ 8,     x4 = 2 − x2 ≥ 0 ⇒ x2 ≤ 2,  = (2, 6, 2|0, 0) x = 4 − x ≥ 0 ⇒ x ≤ 4  5 2 2 が得られる．この入れ替えをピ このうち，目的関数を最も小さ ボット操作と呼ぶ． くするのは， この基底解における目的関数は x2 = min {8, 2, 4} = 2 Z = −x1 − 5x2 = −10 と選んだときで，このとき で，入れ替え前の目的関数 (x3 , x4 , x5 ) = (6, 0, 2) となる． Z = 0 よりも小さい．
41. 41. 線形計画問題 等式標準形 実行可能基底解 単体法 双対性 学習ガイド ピボット操作：より目的関数の小さい隣合う端点へ 9 xB xN 8 0 Z = x3 x4 x5 x1 x2 x4 7 x1 = 0 6 8 2 4 0 0 0 5 x5 = 0    x2 = 0  x2 = 2 4 3 x3 =     0  x = 2 → x = 0 2  4  4 1 txN = (x1 , x2 ) x2 = 0-2 -1 1 2 3 4 5 6 7 8 9 -1
42. 42. 線形計画問題 等式標準形 実行可能基底解 単体法 双対性 学習ガイド ピボット操作：より目的関数の小さい隣合う端点へ 9 xB xN 8 0 Z = x3 x4 x5 x1 x2 x4 7 x1 = 0 6 8 2 4 0 0 0 5 x5 = 0    x2 = 0  x2 = 2 4 3 x3 =     txN = (x1 , x4 ) 0  x = 2 → x = 0 2 6  4  4 1 d x2 = 0-2 -1 1 2 3 4 5 6 7 8 9 -1 xB xN Z x2 x3 x5 x1 x4 2 6 2 0 0 -10 1 組の基底変数と非基底変数の入れ 替えは， 「ある端点」から「より目的 関数の小さい隣の端点」への移動に 相当．
43. 43. 線形計画問題 等式標準形 実行可能基底解 単体法 双対性 学習ガイド 2 回目の挑戦 (最適性のチェック) 基底変数を非基底変数 xN のみ 9 0 で表せば 8 = 1 1 0  x  8  1 0 [ ] x4 7  1 0 0  x2  2 −2 1 x1      x1 = 0 6      3  =  −              x  4 5 x5 = 0 1 0 1 x5 4 0 0 4 3 x3 = [ ] 110 2 txN = (x1 , x4 ) 0 AB = 100 の逆行列を用いて 101 1 x2 = 0  x  1 1 0−1 8  1 0 [ ]-1 1 2 3 4 5 6 7 8 9  2   x  1 0 0 2 −2 1 x1        3 =     −   x    -1                  非基底変数 xN = (x1 , x4 ) x5 1 0 1 4 0 0 4 目的関数および等式制約： 2 −2 1  [ ]        x  = 6 −  3 −1 x1         Z(x) = −5x2 −x1 2 2 −1 4 s.t. x2 +x3 x1 =8 x2 −2x1 +x4 = 2 x2 +x5 =4
44. 44. 線形計画問題 等式標準形 実行可能基底解 単体法 双対性 学習ガイド 2 回目の挑戦 (最適性のチェック) 基底変数を非基底変数 xN のみ 9 0 で表せば 8 =  x  2 −2 1  [ ] x4 7  2     x  6  3 −1 x1  x1 = 0 6  3 =   −               x 5 x5 = 0 x5 2 2 −1 4 4 x3 3 = x2 = 2 + 2x1 − x4 を目的関数に 2 txN = (x1 , x4 ) 0 1 代入すれば， x2 = 02 -1 1 2 3 4 5 6 7 8 9 -1 Z = −x1 − x2 = −x1 − 2 − 2x1 + x4 非基底変数 xN = (x1 , x4 ) = −3x1 + x4 − 2. 目的関数および等式制約： 非基底変数 xN = (x1 , x4 ) に関 Z(x) = −5x2 −x1 s.t. x2 +x3 x1 =8 する係数は (−3, 1) なので， x2 −2x1 +x4 = 2 x1 を増やせば目的関数は減少． x2 +x5 =4
45. 45. 線形計画問題 等式標準形 実行可能基底解 単体法 双対性 学習ガイド2 回目の挑戦 (基底変数の入れ替え) x4 = 0 のまま x1 を増やす． ここで，  x  2 −2 ゼロとなった基底変数 x5  2           xB =  x3  = 6 −  3  x1             非負となった非基底変数 x1 x5 2 2 を入れ替えることで，新しい実 xB ≥ 0 であるためには， 行可能基底解   x2 = 2 + 2x1 ≥ 0 ⇒ x1 ≥ 0 なら OK  (xB |xN ) = (x1 , x2 , x3 |x4 , x5 )    x3 = 6 − 3x1 ≥ 0 ⇒ x1 ≤ 2   = (1, 4, 3|0, 0) x5 = 2 − 2x1 ≥ 0 ⇒ x1 ≤ 1 が得られる． このうち，目的関数を最も小さ この基底解における目的関数は くするのは， Z = −x1 − 5x2 = −21 x1 = min {2, 1} = 1 で，入れ替え前の目的関数 と選んだときで，このとき Z = −10 よりも小さい． (x2 , x3 , x5 ) = (4, 3, 0) となる．
46. 46. 線形計画問題 等式標準形 実行可能基底解 単体法 双対性 学習ガイド 2 回目の挑戦 (端点から端点へ) xB xN Z 9 x3 x4 x5 x1 x2 8 0 = 8 2 4 0 0 0 x4 7 x1 = 0 6 5 基底変数 x4 ↔ 非基底変数 x2 x5 = 0 4 x3 xB xN 3 = Z 2 txN = (x1 , x4 ) 0 x2 x3 x5 x1 x4 1 6 2 6 2 0 0 -10 dxN = (x1 , x2 ) x2 = 0-2 -1 1 2 3 4 5 6 7 8 9 -1
47. 47. 線形計画問題 等式標準形 実行可能基底解 単体法 双対性 学習ガイド 2 回目の挑戦 (端点から端点へ) xB xN Z 9 x3 x4 x5 x1 x2 8 0 = 8 2 4 0 0 0 x4 7 x1 = 0 6 5 基底変数 x4 ↔ 非基底変数 x2 t x5 = 0 4 xB xN 3 xN = (x4 , x5 ) x3 = Z d 2 x N = (x1 , x4 ) 0 x2 x3 x5 x1 x4 1 6 2 6 2 0 0 -10 dxN = (x1 , x2 ) x2 = 0-2 -1 -1 1 2 3 4 5 6 7 8 9 基底変数 x5 ↔ 非基底変数 x1 xB xN Z x1 x2 x3 x4 x5 1 4 3 0 0 -21
48. 48. 線形計画問題 等式標準形 実行可能基底解 単体法 双対性 学習ガイド 3 回目の挑戦 (最適性のチェック) 基底変数を非基底変数 xN のみ 9 0 で表せば 8 =  1 1 1  x  8 0 0 [ ] x4 7  −2 1 0  x1  2 1 0 x4      x1 = 0 6      2  =  −              x  5 5 x5 = 0 0 1 0 x3 4 0 1 4 t 3 xN = (x4 , x5 ) x3 = [ ] 1 11 2 0 AB = −2 1 0 の逆行列を用 0 10 1 x2 = 0 いて-1 1 2 3 4 5 6 7 8 9 -1  x   1 1 1−1 8 0 0 [ ]  x  −2 1 0 2 1 0 x4   1       非基底変数 xN = (x4 , x5 )  2 =           −           x       目的関数および等式制約： x3 0 1 0 4 0 1 5 1 −0.5 0.5  [ ]         Z(x) = −x1 −5x2 = 4 −  0       1  x4  x  s.t. x1 +x2 +x3 =8 3 0.5 −1.5 5 −2x1 +x2 +x4 =2 x2 +x5 = 4
49. 49. 線形計画問題 等式標準形 実行可能基底解 単体法 双対性 学習ガイド 3 回目の挑戦 (最適性のチェック) 基底変数を非基底変数 xN のみ 9 0 で表せば 8 =  x  1 −0.5 0.5  [ ] x4 7  1     2 =   −   x  4  0   x1 = 0 6           1  x4   x 5 x5 = 0 x3 3 0.5 −1.5 5 4 t xN = (x4 , x5 ) x3 = [ [ x1 ] ] = 1+0.5x4 −0.5x5 を目的関数 3 2 0 x2 4−x5 1 に代入すれば， x2 = 02 -1 1 2 3 4 5 6 7 8 9 -1 Z = −1 − 0.5x4 + 0.5x5 − 20 + 5x5 非基底変数 xN = (x4 , x5 ) = −21 − 0.5x4 + 5.5x5 . 目的関数および等式制約： 非基底変数 xN = (x4 , x5 ) に関 Z(x) = −x1 −5x2 s.t. x1 +x2 +x3 =8 する係数は (−0.5, 5.5) なので， −2x1 +x2 +x4 =2 x4 を増やせば目的関数は減少． x2 +x5 = 4
50. 50. 線形計画問題 等式標準形 実行可能基底解 単体法 双対性 学習ガイド3 回目の挑戦 (基底変数の入れ替え) x5 = 0 のまま x4 を増やす． ここで，  x  1 −0.5 ゼロとなった基底変数 x3  1           xB =  x2  = 4 −  0  x4             非負となった非基底変数 x4 x3 3 0.5 入れ替えれば，新しい実行可能 xB ≥ 0 であるためには， 基底解   x1 = 1 + 0.5x4 ≥ 0 ⇒ x1 ≥ 0 なら OK  (xB |xN ) = (x1 , x2 , x4 |x3 , x5 )    x2 = 4 ≥ 0   ⇒ x1 とは無関係 = (4, 4, 6|0, 0) x3 = 3 − 0.5x4 ≥ 0 ⇒ x4 ≤ 6 が得られる． 従って，目的関数を最も小さく この基底解における目的関数は するのは， Z = −x1 − 5x2 = −24 x4 = 6 で，入れ替え前の目的関数 と選んだときで，このとき Z = −24 よりも小さい． (x1 , x2 , x3 ) = (4, 4, 0) となる．
51. 51. 線形計画問題 等式標準形 実行可能基底解 単体法 双対性 学習ガイド 3 回目の挑戦 (端点から端点へ) xB xN Z x3 x4 x5 x1 x2 9 8 0 8 2 4 0 0 0 = x4 7 基底変数 x4 ↔ 非基底変数 x2 x1 = 0 6 5 xB xN t x5 = 0 Z 4 x2 x3 x5 x1 x4 3 xN = (x4 , x5 ) x3 = d 2 x N = (x1 , x4 ) 0 2 6 2 0 0 -10 6 1 dxN = (x1 , x2 ) x2 = 0 基底変数 x5 ↔ 非基底変数 x1-2 -1 1 2 3 4 5 6 7 8 9 -1 xB xN Z x1 x2 x3 x4 x5 1 4 3 0 0 -21
52. 52. 線形計画問題 等式標準形 実行可能基底解 単体法 双対性 学習ガイド 3 回目の挑戦 (端点から端点へ) xB xN Z x3 x4 x5 x1 x2 9 8 0 8 2 4 0 0 0 = x4 7 基底変数 x4 ↔ 非基底変数 x2 x1 = 0 6 5 xB xN 4 d -xN = (x3 , x5 ) x5 = 0 t x2 x3 x5 x1 x4 Z 3 xN = (x4 , x5 ) x3 = d 2 x N = (x1 , x4 ) 0 2 6 2 0 0 -10 6 1 dxN = (x1 , x2 ) x2 = 0 基底変数 x5 ↔ 非基底変数 x1-2 -1 1 2 3 4 5 6 7 8 9 -1 xB xN Z x1 x2 x3 x4 x5 1 4 3 0 0 -21 基底変数 x3 ↔ 非基底変数 x4 xB xN Z x1 x2 x4 x3 x5 4 4 6 0 0 -24