泉恵女学園物語・その5
description
Transcript of 泉恵女学園物語・その5
1
泉恵女学園物語・その5
おはなし DEA (包絡分析法) - 単体法への準備-
ライオネル学園大学
せん けい
ここね、先生の大学は…
2
七瀬
先生、お願いがあるんです。今度の土曜日、空いてますか?10時に先生の研究室に伺います。一日中、空けといてくださいね。
まだかな…
3
七瀬
先生、遅刻しました。すみません!
いや、いや、こっちも忘れていたよ。何か頼みがあるんだったね。まあとりあえず、かき氷でもどう?私はコーヒーでも飲もう。
いただきます、先生。ところで、変な質問していいですか?
ああ…いいよ。
4
七瀬
先生いま、つきあってる人、いるんですか?
いないな。研究一筋さ。
じゃ、土曜日も研究ですか?すごく忙しいんですね。お邪魔しちゃったかな…。
いや、そんなことはない。週に一度くらい、こんな時間もいいものさ。
あの、高校生の身分であつかましいお願いなんですけど…。
なんでも言ってごらん♪
5
七瀬
DEA のこと、もっと教えてほしいんです。毎週土曜日、教えてもらっていいですか?
え? まあ、いいけど…。
6
七瀬
みんな、OKだって!
おじゃましまーす!
残念だったな先公!
7
七瀬
あれからみんなで、毎週土曜日、DEA について本格的に教えてもらおうってことになったんです。
OK してくれてありがとう、先生!
汚い部屋ね。
あ、グルメ本だ。センセ、借りていい?
週に一度くらい、DEAもいいものさ。
コーヒーくらい出しなさいよ。
あ、パソコン。欲しーな。
ごめんなさい。私は止めたんだけど…。
カップ汚れてる。洗ってないんですか?
このマンガ、私のものー!
あ、タバコだ。
吸うんですか?
変な本がいっぱいー。
先生、なんか元気ないですね。
8
それでは DEA の前に、まず線形計画法を教える!しっかり聞いててくれ! 一度しか説明しないぞ!
はーい!
悲しい奴だよな。
なんか怒ってるみたい…。
9
線形計画法 (Linear Programming) は、いろんなところに役立つ。
例として、夏休みの有意義な過ごし方を計算しよう。
星野くん、君の趣味は?
読書と…ショッピングかな ?
10
1 百円
2 時間
3 気力
読書
7 百円
4 時間
2 気力
買い物
うれしさ
3うれしさ
5
それぞれの趣味を1回やるのに必要な、「時間」「お金」「気力」を、それぞれ書いて欲しい。あと、それを1回やったときの「うれしさ」もね。
こんなとこかな…。
11
さらに、夏休み中に使える「時間」「お金」「気力」の総量を、それぞれ教えて欲しい。
こんなところです。
1 百円
2 時間
3 気力
読書
7 百円
4 時間
2 気力
買い物
うれしさ
3うれしさ
5
140 百円
100 時間
120 気力
総量
12
1 百円
2 時間
3 気力
読書
7 百円
4 時間
2 気力
買い物
うれしさ
3うれしさ
5
140 百円
100 時間
120 気力
総量
さて…それでは夏休み中に「読書」「買い物」を、それぞれ何回ずつすればいいだろうか ?
読書を x1 回、買い物を x2 回する、としよう。読書のうれしさは 3 、買い物のうれしさは 5 だから、うれしさの合計は 3x1+5x2 。これを最大にすればいい !
ちなみに 3x1+5x2 のことを目的関数という。しばしば Z であらわされる。つまり Z= 3x1+5x2 。
13
1 百円
2 時間
3 気力
読書
7 百円
4 時間
2 気力
買い物
うれしさ
3うれしさ
5
140 百円
100 時間
120 気力
総量
x1,x2 を大きくすれば、 Z=3x1+5x2 はいくらでも大きくなりそうなものだ。
ところがどっこい、そうはいかない。「お金」「時間」「気力」の制約があるからだ。
たとえば読書はせいぜい 40 回しかできない。
気力は 120 しかないのに、読書 1 回で 3 気力を消費してしまうからだ。だから x1 40≦ なのさ。
14
1 百円
2 時間
3 気力
読書
7 百円
4 時間
2 気力
買い物
うれしさ
3うれしさ
5
140 百円
100 時間
120 気力
総量
つまり読書を x1 回、買い物を x2 回するなら、お金を x1+7x2 百円、時間を 2x1+4x2 時間、気力を 3x1+2x2 気力、消費する。ところがお金は 140 百円、時間は 100 時間、気力は 120 気力しか存在しない。
そこで次の3本の制約条件がなりたつ。
お金の制約 : x1+7x2 140 ≦ 百円、時間の制約 : 2x1+4x2 100 ≦ 時間、気力の制約 : 3x1+2x2 120 ≦ 気力。
また、 x1,x2 はいずれも正の値だ。読書や買い物を「マイナス回」行なうわけにはいかないからだ。だから、 x1 0, x≧ 2 0≧という条件がつく。 ( これらを非負条件という )
15
1 百円
2 時間
3 気力
読書
7 百円
4 時間
2 気力
買い物
うれしさ
3うれしさ
5
140 百円
100 時間
120 気力
総量
制約条件
お金の制約 : x1+7x2 140 ≦ 百円時間の制約 : 2x1+4x2 100 ≦ 時間気力の制約 : 3x1+2x2 120 ≦ 気力
非負条件
x1 0≧x2 0≧
Z=3x1+5x2
目的関数
ゆえに「夏休み問題」は、3つの制約条件、2つの非負条件のもとで、目的関数を最大にする問題なんだ。
16
さて、この問題をグラフで解こう。X 軸に x1 , Y 軸に x2 をとって、制約条件と非負条件をグラフにする。
すると、解の許される範囲は以下の部分になる。
40 50 140
60
25
20
制約条件
Z=3x1+5x2
目的関数
お金の制約 : x1+7x2 140 ≦ 百円
気力の制約 : 3x1+2x2 120 ≦ 気力
時間の制約 : 2x1+4x2 100 ≦ 時間
x1
x2
17
目的関数の式を書き直すと、 x2=-0.6x1+0.2Z となる。これは傾き -0.6 の直線だ。ところが Z がわからない。つまり領域を通るような傾き -0.6 の直線は、どれでも答えだ。これらのうちで、 Z が最大になるのはどれだろう?
ここで x1 に 0 を入れると、 x2=0.2Z となる。つまり Z を大きくすることは、y 軸との交点( y 切片)を大きくすることと同じなんだ。
いろいろ試すと、点 B を通るとき、 y 軸との交点は最大になる。解は 点 B(35, 7.5) 。つまり x1=35, x2=7.5 。そのとき目的関数の値は Z=3x1+5x2= 142.5 。
Z=3x1+5x2
目的関数
読書を 35 回、
買い物を 7.5 回やれば
いいってことね!
C
B
A
x1
x2
18
読書を 35 回、買い物を 7.5 回やると、どの資源をどれくらい使ったかがわかる。星野くんの場合、時間と気力を使い切っている。
お金ばっかり、
ずいぶん
余っちゃったなぁー。
1 百円2 時間3 気力
読書
7 百円4 時間2 気力
買い物
140 百円100 時間120 気力
総量
35 回 7.5 回
35 百円70 時間
105 気力
読書
52.5 百円30 時間15 気力
買い物
87.5 百円100 時間120 気力
使用量
× ×
= =
-=
52.5 百円0 時間0 気力
余り
=+
19
さて用語の整理をしておこう。解が存在可能な範囲を実行可能領域といい、その中の点を実行可能解という。実行可能解のうち、目的関数を最大 ( もしくは最小 ) にするものを最適解という。
そして、最適解はかならず図形の頂点のどこかだ。( この場合、点 O, A, B, C, D の頂点のうち、頂点 B だった )
Z=3x1+5x2
C
B
A
D
O
最適解
じゃあ、5つの点だけ
調べればいいのね!
x1
x2
20
星野さんの「うれしさ」つまり目的関数 Z の値を、各点について示そう。
この場合は2次元だし、制約条件も少ないので、すべての頂点について目的関数、つまり Z の値を調べられた。
しかしもっと問題が大きくなると、すべての頂点はとても調べきれない。
どうすればいいの?
C
B
A
D
O
142.5
120
100 132
0x1
x2
21
ここで線形計画法のありがたいところは、
(1) 原点から出発し(2) Zの値が大きくなるような頂点に移動し、(3) 数が大きくなる方向がなければ終了
… すれば、必ず最適解にたどりつくということだ。
C
B
A
D
O
142.5
120
100 1322手かかったわね。
0x1
x2
22
しつこく繰り返すが…線形計画法のありがたいところは、
(1)原点から出発し(2)Zの値が大きくなるような頂点に移動し、(3)数が大きくなる方向がなければ終了という手順さえ守れば、
どんなに下手な道の選び方をしても、いつかは必ず最適解にたどりつく、ということだ。
こんどは3手。
でもたどりついた!
C
B
A
D
O
142.5
120
100 132
0x1
x2
23
この性質を利用したものが単体法、もしくはシンプレックス法というものだ。これで線形計画法を簡単に解くことができる。
だが話が長くなるから、ここでいったん、休憩にしよう。
やっと終わったぜ。
はーい!
あ、コーヒーだ!
24
七瀬
だますみたいで先生に悪い…とは思ったのですが、仲の悪かった A 組と B 組が、こんな悪だくみで盛り上がるなんて、数か月前には考えられなかったことだったんです。ひさしぶりに楽しいランチタイムでした。これで第5話は終わりです。ありがとうございました。
クーラーが
ききすぎよ。
このコーヒー、
まずーい。
CDの趣味、最悪だぜ。ロックにしなよ。
インスタントだって!豆の買い置きくらいしておきなさい!
あ、ホントだ。
まだまだ DEAには遠そうですね!
ごみ箱どこですか?え、このバケツ?
この電話、かけていーい?あれー、つながんなーい。
おやつは
ないんですね・・・。
資料もいっぱいー。
ほかの人たちはこないんですか?
25
泉恵女学園物語・その6
おはなし DEA (包絡分析法) - スラック変数・基底変換-
ライオネル学園大学
せん けい
楽しいランチタイムも、
あっという間に終わり…まーかせて。
予習したんだから!
永倉七瀬
26
それでは単体法の準備を続けよう。眠いだろうが、しっかり聞いててくれよ!
はーい!
こうして午後の授業は始まりました。
うぃーす
七瀬
27
1 百円
2 時間
3 気力
読書
7 百円
4 時間
2 気力
買い物
うれしさ
3うれしさ
5
140 百円
100 時間
120 気力
総量
制約条件
お金の制約 : x1+7x2 140 ≦ 百円時間の制約 : 2x1+4x2 100 ≦ 時間気力の制約 : 3x1+2x2 120 ≦ 気力
非負条件
x1 0≧x2 0≧
Z=3x1+5x2
目的関数
まず「夏休み問題」の復習だ。これは3つの制約条件、2つの非負条件のもとで、目的関数を最大にする問題だった。
40 50 140
60
25
20
28
制約条件
お金の制約 : x1+7x2 140 ≦ 百円時間の制約 : 2x1+4x2 100 ≦ 時間気力の制約 : 3x1+2x2 120 ≦ 気力
非負条件
x1 0≧x2 0≧
Z=3x1+5x2
目的関数
ここで不等号をなくすため、λ1, λ2, λ3 を導入して等式にする。これらをスラック変数という。スラック変数は、資源の使い残し量を示す。
新・制約条件お金の制約 : x1+7x2 +λ1 = 140 百円時間の制約 : 2x1+4x2 +λ2 = 100 時間気力の制約 : 3x1+2x2 +λ3 = 120 気力
スラック変数
スラックって、
英語の「余裕」のことよ。
沢渡
29
読書を35回、買い物を7.5回やると、
どの資源をどれくらい使ったかがわかる。
星野くんの場合、
時間と気力の2資源を使い切っている。
お金ばっかり、
ずいぶん
余っちゃったなぁー。
1 百円2 時間3 気力
読書
7 百円4 時間2 気力
買い物
140 百円100 時間120 気力
総量
35回 7.5回
35 百円70 時間
105 気力
読書
52.5 百円30 時間15 気力
買い物
87.5 百円100 時間120 気力
使用量
× ×
= =
-=
52.5 百円0 時間0 気力
余り
=+
たとえば点 B の使いのこしは、お金 =52.5 百円、時間、気力は0だった。ゆえに λ1 =52.5, λ2 =0, λ3 =0 。他の4つの頂点についても求めよう。
C
B
A
D
O 120
100 132
0
30
すると次の表のようになる。面白いのは、どの行 (ヨコのライン ) にも、かならず0が2つ、入っていることだ。
どうして?
C
B
A
D
O
142.5
120
100 132
0
頂点 x1 x2 λ 1 λ 2 λ 3 ZO 0 0 140 100 120 0A 40 0 100 20 0 120B 35 7.5 52.5 0 0 143C 14 18 0 0 42 132D 0 20 0 20 80 100
沢渡
31
その理由の直感的な説明は…いま式が3本あり、変数は5つある。ゆえにどれか2つの変数を消去(0を代入する)しても、解が求まるからなんだ。
ふーん…
C
B
A
D
O
142.5
120
100 132
0
頂点 x1 x2 λ 1 λ 2 λ 3 ZO 0 0 140 100 120 0A 40 0 100 20 0 120B 35 7.5 52.5 0 0 143C 14 18 0 0 42 132D 0 20 0 20 80 100
新・制約条件お金の制約 : x1+7x2 +λ1 = 140 百円時間の制約 : 2x1+4x2 +λ2 = 100 時間気力の制約 : 3x1+2x2 +λ3 = 120 気力
たとえばλ2, λ3 を隠しても3変数に式3本なので答えは求まります。これこそ点 Bの解よ。
永倉沢渡
32
どの頂点も、2つの直線の交点だ。そして0になるのは、その2直線の示す条件が持つスラック変数だ。
たとえば点 C は、(1)お金の制約と(2)時間の制約の交点。だから λ1 と λ2 が0になった。
ほんとだ…
頂点 x1 x2 λ 1 λ 2 λ 3 ZO 0 0 140 100 120 0A 40 0 100 20 0 120B 35 7.5 52.5 0 0 143C 14 18 0 0 42 132D 0 20 0 20 80 100
40 50 140
60
25
20C
お金の余り
時間の余り
気力の余り
お金の制約式
時間の制約式
新・制約条件(1)お金の制約 : x1+7x2 +λ1 = 140 百円(2)時間の制約 : 2x1+4x2 +λ2 = 100 時間(3)気力の制約 : 3x1+2x2 +λ3 = 120 気力
沢渡
33
より一般的に言えば、次になる。
変数を n 個、制約条件の式を m 本とする。実行可能領域の頂点ならば、対応する変数 (n+m) 個のうち、少なくとも n 個が0になる。
ふーん…頂点 x1 x2 λ 1 λ 2 λ 3 ZO 0 0 140 100 120 0A 40 0 100 20 0 120B 35 7.5 52.5 0 0 143C 14 18 0 0 42 132D 0 20 0 20 80 100
お金の余り
時間の余り
気力の余り
新・制約条件(1)お金の制約 : x1+7x2 +λ1 = 140 百円(2)時間の制約 : 2x1+4x2 +λ2 = 100 時間(3)気力の制約 : 3x1+2x2 +λ3 = 120 気力
m個n個
沢渡
34
いよいよ単体法の説明に入る…前に、もうひとがんばり。
「基底形式」 「基底変数」 「非基底変数」 「基底解」 「基底変換」
という専門言葉を覚えて欲しい。
ふぁーい
バリエーションのない
学問だぜ!
35
基底形式お金の制約 : x1+7x2 +λ1 = 140 百円時間の制約 : 2x1+4x2 +λ2 = 100 時間気力の制約 : 3x1+2x2 +λ3 = 120 気力
制約条件の不等式を、λ で等式に書き直したものを「基底形式」といい、λ のことを 「基底変数」という。
基底変数以外の変数を、非基底変数という。 x1,x2 のことだ。
基底変数非基底変数「基底解」と
「基底変換」は?
安達
36
非基底変数、つまり x1,x2 の値をすべて 0 にすれば、基底変数 λ1 , λ2 , λ3 の値はあっという間に求まる。 (x1=x2=0, λ1=140 , λ2=100 , λ3=120)
こうして得られた解を 「基底解」というんだ。
基底形式お金の制約 : x1+7x2 +λ1 = 140 百円時間の制約 : 2x1+4x2 +λ2 = 100 時間気力の制約 : 3x1+2x2 +λ3 = 120 気力
基底変数非基底変数このくらいの方程式なら
あなたも解けるでしょ?馬鹿にしやがって!
星野 松岡
37
また基底変数をいろいろ取り替えることができる。
たとえば x1 を消去してみよう。(1) 式を2倍して (2) から引く。(1) 式を3倍して (3) から引く。すると次のようになる。
基底形式お金の制約 : x1+7x2 +λ1 = 140 ……(1)時間の制約 : 2x1+4x2 +λ2 = 100 ……(2)気力の制約 : 3x1+2x2 +λ3 = 120 ……(3)
基底形式お金の制約 : x1 + 7x2 + λ1 = 140 ……(1)時間の制約 : -10x2 - 2λ1 +λ2 = -180 ……(2)気力の制約 : -19x2 - 3λ1 +λ3 = -300 ……(3)
お金の制約 : λ1 + 7x2 + x1 = 140 ……(1)時間の制約 : - 2λ1 -10x2 +λ2 = -180 ……(2)気力の制約 : - 3λ1 -19x2 +λ3 = -300 ……(3)
順番を入れかえると基底変数を取りかえた ことがはっきりするでしょ。λ1 と x1 を入れかえたの。
x1 を消去して
順序を入れかえて
これも基底形式になってる ! やるわね。
永倉
遠藤
38
この基底変数の取り替えが基底変換 なんだ。
基底形式お金の制約 : x1 + 7x2 +λ1 = 140 ……(1)時間の制約 : 2x1 + 4x2 +λ2 = 100 ……(2)気力の制約 : 3x1 + 2x2 +λ3 = 120 ……(3)
お金の制約 : λ1 + 7x2 + x1 = 140 ……(1)時間の制約 : - 2λ1 -10x2 +λ2 = -180 ……(2)気力の制約 : - 3λ1 -19x2 +λ3 = -300 ……(3)
基底変数は λ1 ,λ2 , λ3
基底変数は x1 ,λ2 , λ3
基底変換 の結果を、いつも 基底形式 に直すのはたいへん!もっと便利な表記法がありそうでしょ?それが 単体表 なの!
シンプレックス・タブローともいうの。タブローって、表っていう意味のフランス語よ。語尾を下げて発音すると、どんな言葉もフランス語風に聞こえるわ。
永倉
39
永倉くん、よく知ってるねえ。
まーかせて。数学だけはプロだから。まず最初の表を単体表にすると、こうなります。
基底形式お金の制約 : x1 + 7x2 +λ1 = 140 ……(1)時間の制約 : 2x1 + 4x2 +λ2 = 100 ……(2)気力の制約 : 3x1 + 2x2 +λ3 = 120 ……(3)
式の番号
ステップ
基底変数
基底変数の値
変数 x1 x2 λ1 λ2 λ3
Ⅰ(1)(2)(3)
λ1
λ2
λ3
140100120
1 7 1 0 0 2 4 0 1 0 3 2 0 0 1
基底変数に入ってない変数の値はつねに0ってことに注意してね!
だから x1=x2=0 なの。
x1,x2 は基底変数ではないでしょ?
永倉
40
基底変換 はどうやるか言えるかい?
もちろん。さっきやったように、 x1 を消去してみます。すると単体表では、次のような表記法になります。
式の番号
ステップ
基底変数
基底変数の値
変数 x1 x2 λ1 λ2 λ3
Ⅰ(1)(2)(3)
λ1
λ2
λ3
140100120
1 7 1 0 0 2 4 0 1 0 3 2 0 0 1
式の番号
ステップ
基底変数
基底変数の値
変数 x1 x2 λ1 λ2 λ3
Ⅱ(4)(5)(6)
x1
λ2
λ3
140-180-300
1 7 1 0 0 0 -10 -2 1 0 0 -19 -3 0 1
お金の制約 : x1 + 7x2 +λ1 = 140 ……(1)時間の制約 : 2x1 + 4x2 +λ2 = 100 ……(2)気力の制約 : 3x1 + 2x2 +λ3 = 120 ……(3)
ステップⅠ
お金の制約 : x1 + 7x2 + λ1 = 140 …(1)時間の制約 : -10x2 - 2λ1 +λ2 = -180 …(2)気力の制約 : -19x2 - 3λ1 +λ3 = -300 …(3)
ステップⅡ
この丸は
何ですか?
永倉
杉原
41
丸について詳しく説明すると…いま x1 を追い出そうと決めたので、タテの列が決まります。
式の番号
ステップ
基底変数
基底変数の値
変数 x1 x2 λ1 λ2 λ3
Ⅰ(1)(2)(3)
λ1
λ2
λ3
140100120
1 7 1 0 0 2 4 0 1 0 3 2 0 0 1
式の番号
ステップ
基底変数
基底変数の値
変数 x1 x2 λ1 λ2 λ3
Ⅰ(1)(2)(3)
λ1
λ2
λ3
140100120
1 7 1 0 0 2 4 0 1 0 3 2 0 0 1
どの行を基本にして、他の行から引くか決めたので、(この場合は第1行)、ヨコの行が決まります。
それで?
永倉
杉原
42
この2つの「輪」は、しばしば1つの図に同時に書き込みます。すると次の図になります。
式の番号
ステップ
基底変数
基底変数の値
変数 x1 x2 λ1 λ2 λ3
Ⅰ(1)(2)(3)
λ1
λ2
λ3
140100120
1 7 1 0 0 2 4 0 1 0 3 2 0 0 1
式の番号
ステップ
基底変数
基底変数の値
変数 x1 x2 λ1 λ2 λ3
Ⅰ(1)(2)(3)
λ1
λ2
λ3
140100120
1 7 1 0 0 2 4 0 1 0 3 2 0 0 1
もっと省略して、たんに1つの数字をマルで囲んだのが、さっきの丸だったんです。杉原さん、わかった?これがもっとも普通の書き方なので、はやく慣れてください。
了解!
この丸のついた場所を、ピボットといいます。
バスケットボールに、「ピボットフット」という言葉があります。
動かしてはいけない軸足のことです。
永倉
杉原
43
初期状態(原点)からの最初の一手(基底変換)は、「6通りしかない」ってこと、わかりますか?
式の番号
ステップ
基底変数
基底変数の値
変数 x1 x2 λ 1 λ 2 λ 3
Ⅰ(1)(2)(3)
λ 1
λ 2
λ 3
140100120
1 7 1 0 0 2 4 0 1 0 3 2 0 0 1
ここの9つには丸をつけてはいけないんですか?
永倉
杉原
つけてはいけない。丸をつけるのは、「その列の変数を基底変数に組み入れたい」からだろ?ところが λ1, λ2, λ3 は、すでに基底変数だからだ。
44
だから原点からの最初の基底変換は、6通りしかないの。
式の番号
ステップ
基底変数
基底変数の値
変数 x1 x2 λ 1 λ 2 λ 3
Ⅰ(1)(2)(3)
λ 1
λ 2
λ 3
140100120
1 7 1 0 0 2 4 0 1 0 3 2 0 0 1
わかりました。
40 50
140
60
25
20
図で描くと次の6通りだ。
永倉
杉原
45
もう少し詳しく調べてみましょう。どこに黒丸をつけると、どの矢印になるのでしょうか?
式の番号
ステップ
基底変数
基底変数の値
変数 x1 x2 λ 1 λ 2 λ 3
Ⅰ(1)(2)(3)
λ 1
λ 2
λ 3
140100120
1 7 1 0 0 2 4 0 1 0 3 2 0 0 1
x1 の列に丸をつけることは、今まで非基底変数だった x1 を基底変数に組み入れることです。つまり、今まで x1 は 0 だったのに、 0 より大きくなるんですよね…。
x1=0 が 0 以上になるんだから、上の3つの丸は、それぞれ下の3つの矢印のどれかです。
40 50
140
x1
x2
永倉
杉原
46
上から3番目に丸をつけたら?
式の番号
ステップ
基底変数
基底変数の値
変数 x1 x2 λ 1 λ 2 λ 3
Ⅰ(1)(2)(3)
λ 1
λ 2
λ 3
140100120
1 7 1 0 0 2 4 0 1 0 3 2 0 0 1
第3行に丸をつけると、第3行が基準になります。ですから第3行を3で割って、 x1 の値を1にします。すると、基底変数の値は 40 になります。ということは…この矢印?
40 50
140
60
25
20
式の番号
ステップ
基底変数
基底変数の値
変数 x1 x2 λ1 λ2 λ3
Ⅰ(1)(2)(3)
λ1
λ2
λ3
140 10040
1 7 1 0 0 2 4 0 1 0 1 2/3 0 0 1/3
x1
x2
正解!
永倉
杉原
47
この表の読み方はわかるかい?
丸を説明していたら、ずいぶん話がそれてしまいました。元に戻りましょう。今、単体表のステップⅡまでを説明したのでした。
式の番号
ステップ
基底変数
基底変数の値
変数 x1 x2 λ1 λ2 λ3
Ⅰ(1)(2)(3)
λ1
λ2
λ3
140100120
1 7 1 0 0 2 4 0 1 0 3 2 0 0 1
式の番号
ステップ
基底変数
基底変数の値
変数 x1 x2 λ1 λ2 λ3
Ⅱ(4)(5)(6)
x1
λ2
λ3
140100120
1 7 1 0 0 0 -10 -2 1 0 0 -19 -3 0 1
まるっきり!
永倉
松岡
48
この表の意味を知るために、基底解を求めてみましょう。ステップ1では、すべての資源が余っています。ステップ2では、 x1=140 。でも λ2 と λ3 はマイナス、これでは資源が不足してしまいます。
式の番号
ステップ
基底変数
基底変数の値
変数 x1 x2 λ1 λ2 λ3
Ⅰ(1)(2)(3)
λ1
λ2
λ3
140100120
1 7 1 0 0 2 4 0 1 0 3 2 0 0 1
式の番号
ステップ
基底変数
基底変数の値
変数 x1 x2 λ1 λ2 λ3
Ⅱ(4)(5)(6)
x1
λ2
λ3
140-180-300
1 7 1 0 0 0 -10 -2 1 0 0 -19 -3 0 1
お金の制約 : x1 + 7x2 +λ1 = 140 ……(1)時間の制約 : 2x1 + 4x2 +λ2 = 100 ……(2)気力の制約 : 3x1 + 2x2 +λ3 = 120 ……(3)
ステップⅠ
お金の制約 : λ1 + 7x2 + x1 = 140 ……(1)時間の制約 : - 2λ1 -10x2 +λ2 = -180 ……(2)気力の制約 : - 3λ1 -19x2 +λ3 = -300 ……(3)
ステップⅡ
これはグラフでいうと、どこからどこに移動したか、わかるかな?
永倉
49
実はこの基底変換は、下の矢印だったんだね!x1 が 0 から 140 に増えてるだろ?
40 50 140
60
25
20
ステップⅠステップⅡ
x1
x2
式の番号
ステップ
基底変数
基底変数の値
変数 x1 x2 λ 1 λ 2 λ 3
Ⅰ(1)(2)(3)
λ 1
λ 2
λ 3
140100120
1 7 1 0 0 2 4 0 1 0 3 2 0 0 1
式の番号
ステップ
基底変数
基底変数の値
変数 x1 x2 λ 1 λ 2 λ 3
Ⅱ(4)(5)(6)
x1
λ 2
λ 3
140-180-300
1 7 1 0 0 0 -10 -2 1 0 0 -19 -3 0 1
お金の制約: x1 + 7x2 +λ 1 = 140 ……(1)時間の制約: 2x1 + 4x2 +λ 2 = 100 ……(2)気力の制約: 3x1 + 2x2 +λ 3 = 120 ……(3)
Ⅰステップ
お金の制約: λ 1 + 7x2 + x1 = 140 ……(1)時間の制約: - 2λ 1 -10x2 +λ 2 = -180 ……(2)気力の制約: - 3λ 1 -19x2 +λ 3 = -300 ……(3)
Ⅱステップ
50
ステップⅡの意味を知ろう。x1 が 140 で x2 が 0… ということは、
40 50 140
60
25
20
ステップⅡx1
x2
趣味は「読書」しかない、と考えて、しかも制約は金銭だけ、と考えれば、読書は 140 回できる、ってことね!
1 百円
2 時間
3 気力
読書
7 百円
4 時間
2 気力
買い物
140 百円
100 時間
120 気力
総量
そのとおり!ところが現実には、読書は 140回もできない。
1回2時間かかるが 100 時間しかないから 50 回以下。気力が3必要だが、 120 気力しかないから 40 回以下… ってことなんだ。
式の番号
ステップ
基底変数
基底変数の値
変数 x1 x2 λ 1 λ 2 λ 3
Ⅱ(4)(5)(6)
x1
λ 2
λ 3
140-180-300
1 7 1 0 0 0 -10 -2 1 0 0 -19 -3 0 1
51
ゆえにステップⅡは、現実には実行不可能だ。だからステップⅡの点は、実行可能領域ではない(色が塗られていない)んだね。
40 50140
60
25
20
ステップⅡx1
x2
52
つまり基底変換は、やみくもに行ってはいけない。でないと、実行可能領域からはみ出してしまうからだ。
だって先生、さっきは、「どんなに下手な頂点の選び方をしても、 かならず最適解にたどりつく」って言ってたじゃない。
すまない。さっきの説明は舌足らずだった。どんなに下手な 実行可能領域 の頂点の選び方をしても、と言うべきだったね。
どんな基底変換をしても自動的に実行可能領域の頂点に行くのではない、ということには、十分、注意してもらいたい。
じゃあ先生、なんだい ? 遠藤くん。
遠藤
森井
53
原点からの最初の6通りの基底変換のうち、どれを選べばいいの?
選んでいいのは、左の図でいえば、実行可能解に行く2つの矢印だけだ。右の表で言えば、2つの丸だけが許される。
式の番号
ステップ
基底変数
基底変数の値
変数 x1 x2 λ 1 λ 2 λ 3
Ⅰ(1)(2)(3)
λ 1
λ 2
λ 3
140100120
1 7 1 0 0 2 4 0 1 0 3 2 0 0 1
式の番号
ステップ
基底変数
基底変数の値
変数 x1 x2 λ 1 λ 2 λ 3
Ⅰ(1)(2)(3)
λ 1
λ 2
λ 3
140100120
1 7 1 0 0 2 4 0 1 0 3 2 0 0 1
遠藤
40
50
140
60
25
20
54
どの順で基底変換すべきか、組織的に教える方法…それこそ単体法なんだ。
それでは、やっと単体法の説明に入れるぞ!
先生、ちょうど3時です。ちょっとお茶にしましょうよ!
待ってたぜ!
依存ありませんわ。
綾崎
松岡
安達
55
「恵泉女学園物語・その6」はここで終了です。つきあってくれて、ありがとう。みなさんもお茶で一服したら?
単体法って、実は手順だけなら一瞬なんです。でも、みんなで意味をじっくり考えながら学ぶのは、高校ではめったにない体験で、すごく新鮮でした。
よく「大学の勉強は役に立たない」って聞きます。そうかもしれません。でも、「本当に勉強をした」っていう体験は、きっと…
なにしてんの?お茶、お茶!
呼ばれちゃった。じゃ、またね!
永倉
56
泉恵女学園物語・その7
おはなし DEA (包絡分析法) - 単体法-
せん けい
コーヒータイムが終わりました。
かき氷、とてもおいしかったです。
永倉
57
かき氷はおいしかったかな?それでは勉強をはじめよう。
はーい
これからコーヒータイム後の授業!やっと単体法に入れそうです。
気合いれてこーぜ!
山本
58
それでは「夏休み問題」を単体法で解こう。
6種類の基底変換のうち、実行可能領域におさまる、いわば許される基底変換は、下の2つだった。そこで疑問が産まれる…。
1)どれが許される基底変換かを見分ける方法は? (6つのうち2つしか許されないのはなぜか?)
2)許される基底変換のうちどれを選べばいいのか? (2つのうち、どちらを選べばいいのか?)
遠藤
6つのうち2つしか許されないのはなぜ?
保坂
最初の一手はどっち?
式の番号
ステップ
基底変数
基底変数の値
変数 x1 x2 λ 1 λ 2 λ 3
Ⅰ(1)(2)(3)
λ 1
λ 2
λ 3
140100120
1 7 1 0 0 2 4 0 1 0 3 2 0 0 1
疑問1
疑問2
40 50 140
60
25
20
x1
x2
59
それを知るために単体表を描こう。じつは今までの表はニセモノ…なんちゃって単体表 だったのだ!
式の番号
ステップ
基底変数
基底変数の値
変数 x1 x2 λ1 λ2 λ3
Ⅰ(1)(2)(3)
λ1
λ2
λ3
140100120
1 7 1 0 0 2 4 0 1 0 3 2 0 0 1
永倉
式の番号
ステップ
基底変数
基底変数の値
変数 Z x1 x2 λ1 λ2 λ3
Ⅰ
(1)
(2)(3)(4)
λ1
λ2
λ3
140100120
0 1 7 1 0 0 0 2 4 0 1 0 0 3 2 0 0 1
1 -3 -5 0 0 0
増加臨界 θi
0 Z
140/7=20100/4=25120/2=60
説明
なんちゃって単体表
本当の単体表
本当の単体表は下なの。今までの表と大きな違いは
(1) 基底変数の欄に Z が入ってること。(2) 変数の欄にも Z が入ってること。(3)増加臨界の欄が加わったこと。
「説明」の欄もついてるけど、これはあんまり関係ないわ。
60
Z の欄には何を入れればいいのだろうか?目的関数は Z=3x1+5x2 。それを変形して 0 = Z -3x1 -5x2 。よって Z の欄には 0 、変数の欄には 1, -3, -5, 0, 0, 0 を入れる。
永倉
式の番号
ステップ
基底変数
基底変数の値
変数 Z x1 x2 λ1 λ2 λ3
Ⅰ
(1)
(2)(3)(4)
λ1
λ2
λ3
140100120
0 1 7 1 0 0 0 2 4 0 1 0 0 3 2 0 0 1
1 -3 -5 0 0 0
増加臨界 θi
0 Z
140/7=20100/4=25120/2=60
説明
本当の単体表
この状態の意味は、 x1=x2=0 のとき Z=0 。つまり読書も買い物も 0 回で、うれしさも 0 ってこと。
山本
増加臨界の欄はどうやって埋めるの?
61
いま目的関数 Z の欄には 1 -3 -5 0 0 0 が入っている。書き直せば Z=3x1+5x2 。で、今のところ x1, x2 はどちらも 0 だ。基底変換して基底変数に組み入れれば、x1 も x2 も 0 より大きい正の値になる。
つまり、ここにマイナスがある限り、基底変換で解を改善できる んだ。
永倉
式の番号
ステップ
基底変数
基底変数の値
変数 Z x1 x2 λ1 λ2 λ3
Ⅰ
(1)
(2)(3)(4)
λ1
λ2
λ3
140100120
0 1 7 1 0 0 0 2 4 0 1 0 0 3 2 0 0 1
1 -3 -5 0 0 0
増加臨界 θi
0 Z
140/7=20100/4=25120/2=60
説明
本当の単体表
ここの説明、すごく大事だから、わからなかったらじっくり復習してね!
山本
あの…増加臨界の欄の話は?
62
さて、 Z の欄には -3,-5 という2つのマイナスがある。これは目的関数が Z=3x1+5x2 という意味だった。x1 を1つ増やすと Z が 3 つ増え、 x2 を1つ増やすと Z が 5 つ増える。
だから x1 と x2 を増やすチャンスがあるのなら、より係数の大きな x2 の方を増やしたほうが賢い。だから x1,x2 のうち、まず基底変換すべきなのは x2 なんだね!
永倉
式の番号
ステップ
基底変数
基底変数の値
変数 Z x1 x2 λ1 λ2 λ3
Ⅰ
(1)
(2)(3)(4)
λ1
λ2
λ3
140100120
0 1 7 1 0 0 0 2 4 0 1 0 0 3 2 0 0 1
1 -3 -5 0 0 0
増加臨界 θi
0 Z
140/7=20100/4=25120/2=60
説明
本当の単体表
山本さん、もう少しだからガマンして!
山本
私は忘れられてしまったの?
63
基底変換すべきは x2 とわかった。さて、 x2 はどこまで増やせるだろうか?これが「増加臨界」という意味だ。
結論から言えば、「基底変数の値」を「変数」の値で割った値を計算し、それらのうち、いちばん少ない値まで は x2 を増やせる。
本当の単体表式の番号
ステップ
基底変数
基底変数の値
変数 Z x1 x2 λ1 λ2 λ3
Ⅰ
(1)
(2)(3)(4)
λ1
λ2
λ3
140100120
0 1 7 1 0 0 0 2 4 0 1 0 0 3 2 0 0 1
1 -3 -5 0 0 0
増加臨界 θi
0 Z
140/7 = 20100/4 = 25120/2 = 60
説明
最小の
値を選ぶ
60
25
20
x1
x2
永倉
図で言えば、これら3つの矢印のうち最小値の 20 を選んだ、ってことなの!これが増加臨界の欄の説明よ。わかった?
山本
はい
64
よって、最初の一手のピボットは、 x2,λ1 の交点なんだ。
これで最初の2つの疑問…1)どれが許される基底変換か?
( Z の欄がマイナスで、かつ増加臨界が最小)2)どれを選べばいいか?
( Z の欄のマイナスが最大で、かつ増加臨界が最小)
に答えたことになる。
本当の単体表式の番号
ステップ
基底変数
基底変数の値
変数 Z x1 x2 λ1 λ2 λ3
Ⅰ
(1)
(2)(3)(4)
λ1
λ2
λ3
140100120
0 1 7 1 0 0 0 2 4 0 1 0 0 3 2 0 0 1
1 -3 -5 0 0 0
増加臨界 θi
0 Z
140/7 = 20100/4 = 25120/2 = 60
説明
最小の
値を選ぶ
永倉
右の図で言えば、6つの矢印のうち2つしか許されず、しかも↑を選ぶべき、ってことよ!
x1
65
それでは単体表で ステップⅡまで 行ってみよう。
永倉
なんで灰色の欄に、100 1 -16/7 0 5/7 0 0が入ってるかわかる?ピボット行の -5倍を引いたから!
式の番号
ステップ
基底変数
基底変数の値
変数 Z x1 x2 λ1 λ2 λ3
増加臨界 θi 説明
Ⅰ
(1)
(2)(3)(4)
λ1
λ2
λ3
140100120
0 1 7 1 0 0 0 2 4 0 1 0 0 3 2 0 0 1
1 -3 -5 0 0 0 0 Z
140/7 = 20100/4 = 25120/2 = 60
Ⅱ
(5)
(6)(7)(8)
x2
λ2
λ3
202080
0 1/7 1 1/7 0 0 0 10/7 0 -4/7 1 0 0 19/7 0 -2/7 0 1
1 -16/7 0 5/7 0 0 100 Z (1)-(6)*(-5)
(2) / 7(3) - (6)×4(4) - (6)×2
D C
B
AO
100
0x1
x2グラフでいうと次の一手を進んだんだ。
ピボット行
最小なのでピボット行が第1行になった
66
それではステップⅢまで 行ってみよう。
永倉
式の番号
ステップ
基底変数
基底変数の値
変数 Z x1 x2 λ1 λ2 λ3
増加臨界 θi 説明
Ⅰ
(1)
(2)(3)(4)
λ1
λ2
λ3
140100120
0 1 7 1 0 0 0 2 4 0 1 0 0 3 2 0 0 1
1 -3 -5 0 0 0 0 Z
140/7 = 20100/4 = 25120/2 = 60
Ⅱ
(5)
(6)(7)(8)
x2
λ2
λ3
202080
0 1/7 1 1/7 0 0 0 10/7 0 -4/7 1 0 0 19/7 0 -2/7 0 1
1 -16/7 0 5/7 0 0 100 Z
20*7 =14020* 7/10 = 1480* 7/19 ≒ 30
(1)-(6)*(-5)
(2) / (7)(3) - (6)*4(4) - (6)*2
ピボット行
最小なのでピボット行が第2行になった
Ⅲ
(9)
(10)(11)(12)
x2
λ2
λ3
181442
0 0 1 1/5 -1/10 0 0 1 0 -2/5 7/10 0 0 0 0 4/5 -19/10 1
1 0 0 -1/5 8/5 0 132 Z (5)-(11)*(-16/7)
(6) - (11)*(1/7)(7) / (10/7)(8) - (11)*(19/7)
最小のマイナスなのでピボット列が第2列になった
C
B
AO
100
0x1
x2
132
67
ステップⅣ。 もう灰色の欄にマイナスがない。つまりこれ以上、改善する余地がない。したがって終了だ。
永倉
C
B
AO
100
0x1
x2
132
142.5
式の番号
ステップ
基底変数
基底変数の値
変数 Z x1 x2 λ1 λ2 λ3
増加臨界 θi 説明
Ⅰ
(1)
(2)(3)(4)
λ1
λ2
λ3
140100120
0 1 7 1 0 0 0 2 4 0 1 0 0 3 2 0 0 1
1 -3 -5 0 0 0 0 Z
140/7 = 20100/4 = 25120/2 = 60
Ⅱ
(5)
(6)(7)(8)
x2
λ2
λ3
202080
0 1/7 1 1/7 0 0 0 10/7 0 -4/7 1 0 0 19/7 0 -2/7 0 1
1 -16/7 0 5/7 0 0 100 Z
20*7 =14020* 7/10 = 1480* 7/19 ≒ 30
(1)-(6)*(-5)
(2) / (7)(3) - (6)*4(4) - (6)*2
ピボット行
Ⅲ
(9)
(10)(11)(12)
x2
λ2
λ3
181442
0 0 1 1/5 -1/10 0 0 1 0 -2/5 7/10 0 0 0 0 4/5 -19/10 1
1 0 0 -1/5 8/5 0 132 Z
18*5 = 90
42* 5/4 = 52.5
(5)-(11)*(-16/7)
(6) - (11)*(1/7)(7) / (10/7)(8) - (11)*(19/7)
Ⅳ
(13)
(14)(15)(16)
x2
λ2
λ3
7.535
52.5
0 0 1 0 3/8 -1/4 0 1 0 0 -1/4 1/2 0 0 0 1 -19/8 5/4
1 0 0 0 9/8 1/4 142.5 Z (9)-(16)*(-1/5)
(10) - (16)*(1/5)(11) - (16)* (-2/5)(12) / (4/5)
最小のマイナスなのでピボット列が第2列になった
最小なのでピボット行が第3行になった
お疲れさま!
68
これで単体法の説明は終わり。みんな、わかったかな?1回でわからなければ、何度も読み返そう!
それではテストだ!
ええーっ!
土曜日にテストなんて追試以来だな!ドキドキするぜ!
69
ある会社では2つの製品 P1,P2 を作って、それぞれ1 kg あたり 100千円と 150千円で売っている。
製品 P1 を作るためには機械M1,M2,M3,M4 を用いる。製品 P2 を作るためには機械M2,M3,M4 を用いる。それぞれの製品を 1kg作るために必要な機械の使用時間は以下の通りである。また各機械の月間の、使用可能時間も示す。
売り上げを最大にするには、 P1,P2 の生産量を、それぞれどれだけにすればいいか、単体法で解け。
製品1 2製品 利用可能時間
M1 2 0 90M2 3 3 150M3 1 3 120M4 3 4 180
売値 100 150
問1
どひー! まず定式化しなきゃ…。森井
70
製品1 2製品 利用可能時間
M1 2 0 90M2 3 3 150M3 1 3 120M4 3 4 180
売値 100 150
ある会社では2つの製品 P1,P2 を作って、それぞれ1 kg あたり 100千円と 150千円で売っている。製品 P1 を作るためには機械M1,M2,M3,M4 を用いる。製品 P2 を作るためには機械M2,M3,M4 を用いる。それぞれの製品を 1kg作るために必要な機械の使用時間は以下の通りである。また各機械の月間の、使用可能時間も示す。売り上げを最大にするには、 P1,P2 の生産量を、それぞれどれだけにすればいいか、単体法で解け。
Z = x1 + x2
x1+ x2 +λ1 =
x1+ x2 +λ2 =
x1+ x2 +λ3 =
x1+ x2 +λ4 =
まず定式化してみます。空欄を埋めてみましょう。正解は次のページです。
森井
71
製品1 2製品 利用可能時間
M1 2 0 90M2 3 3 150M3 1 3 120M4 3 4 180
売値 100 150
ある会社では2つの製品 P1,P2 を作って、それぞれ1 kg あたり 100千円と 150千円で売っている。製品 P1 を作るためには機械M1,M2,M3,M4 を用いる。製品 P2 を作るためには機械M2,M3,M4 を用いる。それぞれの製品を 1kg作るために必要な機械の使用時間は以下の通りである。また各機械の月間の、使用可能時間も示す。売り上げを最大にするには、 P1,P2 の生産量を、それぞれどれだけにすればいいか、単体法で解け。
Z = 100x1 + 150x2
2x1+ 0x2 +λ1 = 90
3x1+ 3x2 +λ2 = 150
1x1+ 3x2 +λ3 = 120
3x1+ 4x2 +λ4 = 180
これが正解です。いよいよ次は単体表の作成!次のページを埋めてください。
森井
72
値 z x1 x2 λ 1 λ 2 λ 3 λ 4zλ 1λ 2λ 3λ 4
x1 x2 λ 1 λ 2 λ 3 λ 4zλ 1λ 2x2λ 4
x1 x2 λ 1 λ 2 λ 3 λ 4zλ 1λ 2x2x1
製品1 2製品 利用可能時間
M1 2 0 90M2 3 3 150M3 1 3 120M4 3 4 180
売値 100 150
式の番号
ステップ
基底変数
基底変数の値
変数 Z x1 x2 λ 1 λ 2 λ 3
増加限界θ i 説明
Ⅰ
(1)
(2)(3)(4)
λ 1
λ 2
λ 3
140100120
0 1 7 1 0 0 0 2 4 0 1 0 0 3 2 0 0 1
1 -3 -5 0 0 0 0 Z
140/7 = 20100/4 = 25120/2 = 60
Ⅱ
(5)
(6)(7)(8)
x2
λ 2
λ 3
202080
0 1/7 1 1/7 0 0 0 10/7 0 -4/7 1 0 0 19/7 0 -2/7 0 1
1 -16/7 0 5/7 0 0 100 Z (1)-(6)*(-5)
(2) / (7)(3) - (6)*4(4) - (6)*2
最小なのでピボット行が第1行になった
最小のマイナスなのでピボット列が第2列になった
大サービス! 参考に「夏休み問題」の表を途中まで見せてあげる。これを参考にがんばって埋めて! 3ステップで終わるわ。正解は次のページよ!
森井
73
値 z x1 x2 λ 1 λ 2 λ 3 λ 4z 0 1 - 100 - 150 0 0 0 0λ 1 90 0 2 0 1 0 0 0 -λ 2 150 0 3 3 0 1 0 0 50λ 3 120 0 1 3 0 0 1 0 40λ 4 180 0 3 4 0 0 0 1 45
x1 x2 λ 1 λ 2 λ 3 λ 4z 6000 1 - 50 0 0 0 50 0λ 1 90 0 2 0 1 0 0 0 45λ 2 30 0 2 0 0 1 -1 0 15x2 40 0 0.333333 1 0 0 0.333333 0 120λ 4 20 0 1.66667 0 0 0 -1.33333 1 12
x1 x2 λ 1 λ 2 λ 3 λ 4z 6600 1 0 0 0 0 10 30λ 1 66 0 0 0 1 0 1.6 - 1.2λ 2 6 0 0 0 0 1 0.6 - 1.2x2 36 0 0 1 0 0 0.6 - 0.2x1 12 0 1 0 0 0 -0.8 0.6
事情が許すなら、Excel を使うとずっとラクよ!
杉原
森井
これが正解…らしいです。
正解は x1=12, x2=36 。そのとき目的関数 Z の値は 6600 。資源は機械M1 は 66 時間 ,機械M2 は 6 時間、余るということさ。
74
ある会社では2つの製品 P1,P2 を作って、それぞれ1 kg あたり 100千円と 150千円で売っている。
製品 P1 を作るためには機械M1,M2,M3,M4 を用いる。製品 P2 を作るためには機械M2,M3,M4 を用いる。それぞれの製品を 1kg作るために必要な機械の使用時間は以下の通りである。また各機械の月間の、使用可能時間も示す。
生産量を最大にするには、 P1,P2 の生産量を、それぞれどれだけにすればいいか、単体法で解け。
問2
生産量って、 x1+x2 のことよね。だから売値がそれぞれ1円と思えばいいの。すると定式化は…。
森井
製品1 2製品 利用可能時間
M1 2 0 90M2 3 3 150M3 1 3 120M4 3 4 180
売値 1 1
問1をちょっとだけ変えて問2だ!
75
ある会社では2つの製品 P1,P2 を作って、それぞれ1 kg あたり 100千円と 150千円で売っている。製品 P1 を作るためには機械M1,M2,M3,M4 を用いる。製品 P2 を作るためには機械M2,M3,M4 を用いる。それぞれの製品を 1kg作るために必要な機械の使用時間は以下の通りである。また各機械の月間の、使用可能時間も示す。
生産量を最大にするには、 P1,P2 の生産量を、それぞれどれだけにすればいいか、単体法で解け。
空欄を埋めてみましょう。正解は次のページです。
森井 Z = x1 + x2
x1+ x2 +λ1 =
x1+ x2 +λ2 =
x1+ x2 +λ3 =
x1+ x2 +λ4 =
製品1 2製品 利用可能時間
M1 2 0 90M2 3 3 150M3 1 3 120M4 3 4 180
生産量 1 1
76
これが正解です。やさしすぎた?でも単体表の作成は、けっこうホネよ!それでは、次のページを埋めてください。
森井 Z = 1x1 + 1x2
2x1+ 0x2 +λ1 = 90
3x1+ 3x2 +λ2 = 150
1x1+ 3x2 +λ3 = 120
3x1+ 4x2 +λ4 = 180
製品1 2製品 利用可能時間
M1 2 0 90M2 3 3 150M3 1 3 120M4 3 4 180
生産量 1 1
ある会社では2つの製品 P1,P2 を作って、それぞれ1 kg あたり 100千円と 150千円で売っている。製品 P1 を作るためには機械M1,M2,M3,M4 を用いる。製品 P2 を作るためには機械M2,M3,M4 を用いる。それぞれの製品を 1kg作るために必要な機械の使用時間は以下の通りである。また各機械の月間の、使用可能時間も示す。
生産量を最大にするには、 P1,P2 の生産量を、それぞれどれだけにすればいいか、単体法で解け。
77
問1の正解を見せてあげる!今度も3ステップで終わるわ。
森井
値 z x1 x2 λ 1 λ 2 λ 3 λ 4z 0 1 - 100 - 150 0 0 0 0λ 1 90 0 2 0 1 0 0 0 -λ 2 150 0 3 3 0 1 0 0 50λ 3 120 0 1 3 0 0 1 0 40λ 4 180 0 3 4 0 0 0 1 45
x1 x2 λ 1 λ 2 λ 3 λ 4z 6000 1 - 50 0 0 0 50 0λ 1 90 0 2 0 1 0 0 0 45λ 2 30 0 2 0 0 1 - 1 0 15x2 40 0 0.333333 1 0 0 0.333333 0 120λ 4 20 0 1.66667 0 0 0 - 1.33333 1 12
x1 x2 λ 1 λ 2 λ 3 λ 4z 6600 1 0 0 0 0 10 30λ 1 66 0 0 0 1 0 1.6 - 1.2λ 2 6 0 0 0 0 1 0.6 - 1.2x2 36 0 0 1 0 0 0.6 - 0.2x1 12 0 1 0 0 0 - 0.8 0.6
値 z x1 x2 λ 1 λ 2 λ 3 λ 4zλ 1λ 2λ 3λ 4
x1 x2 λ 1 λ 2 λ 3 λ 4zx1λ 2λ 3λ 4
x1 x2 λ 1 λ 2 λ 3 λ 4zx1x2λ 3λ 4
製品1 2製品 利用可能時間
M1 2 0 90M2 3 3 150M3 1 3 120M4 3 4 180
生産量 1 1
78
どう?そろそろ単体表にも慣れた?
杉原森井
これが問2の正解です。
値 z x1 x2 λ 1 λ 2 λ 3 λ 4z 0 1 - 1 - 1 0 0 0 0λ 1 90 0 2 0 1 0 0 0 45λ 2 150 0 3 3 0 1 0 0 50λ 3 120 0 1 3 0 0 1 0 120λ 4 180 0 3 4 0 0 0 1 60
x1 x2 λ 1 λ 2 λ 3 λ 4z 45 1 0 - 1 0.5 0 0 0x1 45 0 1 0 0.5 0 0 0 -λ 2 15 0 0 3 - 1.5 1 0 0 5λ 3 75 0 0 3 - 0.5 0 1 0 25λ 4 45 0 0 4 - 1.5 0 0 1 11.25
x1 x2 λ 1 λ 2 λ 3 λ 4z 50 1 0 0 0 0.333333 0 0x1 45 0 1 0 0.5 0 0 0x2 5 0 0 1 - 0.5 0.333333 0 0λ 3 60 0 0 0 1 - 1 1 0λ 4 25 0 0 0 0.5 - 1.33333 0 1
ちょっと待った!
79
実はもう1ステップ、進めることができる。いま第Ⅲステップの基底変数は λ3,λ4 で、 λ1,λ2 は非基底変数だ 。ところが λ1 の係数は 0 で、 λ2 みたいに正の値ではない。これは、まだ進んでいいというサインなんだ。
値 z x1 x2 λ 1 λ 2 λ 3 λ 4z 0 1 - 1 - 1 0 0 0 0λ 1 90 0 2 0 1 0 0 0 45λ 2 150 0 3 3 0 1 0 0 50λ 3 120 0 1 3 0 0 1 0 120λ 4 180 0 3 4 0 0 0 1 60
x1 x2 λ 1 λ 2 λ 3 λ 4z 45 1 0 - 1 0.5 0 0 0x1 45 0 1 0 0.5 0 0 0 -λ 2 15 0 0 3 - 1.5 1 0 0 5λ 3 75 0 0 3 - 0.5 0 1 0 25λ 4 45 0 0 4 - 1.5 0 0 1 11.25
x1 x2 λ 1 λ 2 λ 3 λ 4z 50 1 0 0 0 0.333333 0 0x1 45 0 1 0 0.5 0 0 0x2 5 0 0 1 - 0.5 0.333333 0 0λ 3 60 0 0 0 1 - 1 1 0λ 4 25 0 0 0 0.5 - 1.33333 0 1
λ で、かつ非基底変数なのに0 のものがある!
基底変数
基底変数
80
なぜかって?いま第Ⅲステップの Z の行を解読しよう。すると、 z=0×λ1 - 0.333333λ2 となっている。
つまり第Ⅲステップでは λ1 は非基底解で、値が 0 なのだが、λ1 にかかっている係数が 0 だから、λ1 を基底解に組み入れ、その結果 λ1 が正の値になっても、Z が小さくはならないからだ。
値 z x1 x2 λ 1 λ 2 λ 3 λ 4z 0 1 - 1 - 1 0 0 0 0λ 1 90 0 2 0 1 0 0 0 45λ 2 150 0 3 3 0 1 0 0 50λ 3 120 0 1 3 0 0 1 0 120λ 4 180 0 3 4 0 0 0 1 60
x1 x2 λ 1 λ 2 λ 3 λ 4z 45 1 0 - 1 0.5 0 0 0x1 45 0 1 0 0.5 0 0 0 -λ 2 15 0 0 3 - 1.5 1 0 0 5λ 3 75 0 0 3 - 0.5 0 1 0 25λ 4 45 0 0 4 - 1.5 0 0 1 11.25
x1 x2 λ 1 λ 2 λ 3 λ 4z 50 1 0 0 0 0.333333 0 0x1 45 0 1 0 0.5 0 0 0x2 5 0 0 1 - 0.5 0.333333 0 0λ 3 60 0 0 0 1 - 1 1 0λ 4 25 0 0 0 0.5 - 1.33333 0 1
z=0×λ1-0.333333λ2
81
だから第Ⅲステップから λ1 を基底に組み入れ、 λ4 を追い出したステップⅣもまた、立派な答えなんだ。
値 z x1 x2 λ 1 λ 2 λ 3 λ 4z 0 1 - 1 - 1 0 0 0 0λ 1 90 0 2 0 1 0 0 0 45λ 2 150 0 3 3 0 1 0 0 50λ 3 120 0 1 3 0 0 1 0 120λ 4 180 0 3 4 0 0 0 1 60
x1 x2 λ 1 λ 2 λ 3 λ 4z 45 1 0 - 1 0.5 0 0 0x1 45 0 1 0 0.5 0 0 0 -λ 2 15 0 0 3 - 1.5 1 0 0 5λ 3 75 0 0 3 - 0.5 0 1 0 25λ 4 45 0 0 4 - 1.5 0 0 1 11.25
x1 x2 λ 1 λ 2 λ 3 λ 4z 50 1 0 0 0 0.333333 0 0x1 45 0 1 0 0.5 0 0 0x2 5 0 0 1 - 0.5 0.333333 0 0λ 3 60 0 0 0 1 - 1 1 0 60λ 4 25 0 0 0 0.5 - 1.33333 0 1 50
x1 x2 λ 1 λ 2 λ 3 λ 4z 50 1 0 0 0 0.333333 0 0x1 20 0 1 0 0 1.333333 0 - 1x2 30 0 0 1 0 - 1 0 1λ 3 35 0 0 0 0 1.666667 1 - 2λ 1 50 0 0 0 1 - 2.66667 0 2
杉原
具体的にはどういうことなんですか?
82
直感的には…。問2の領域は左図の着色部分だ。で、目的関数 Z=x1+x2 の値をできるだけ大きくしようとしたら、
Z=x1+x2
A
D
BC
Z=x1+x2
D
C
線 CD にぴったり重なってしまったんだね!このとき、線 CD上ならどこでも最適解だろ?
x1 x2 λ 1 λ 2 λ 3 λ 4z 50 1 0 0 0 0.333333 0 0x1 45 0 1 0 0.5 0 0 0x2 5 0 0 1 -0.5 0.333333 0 0λ 3 60 0 0 0 1 -1 1 0 60λ 4 25 0 0 0 0.5 - 1.33333 0 1 50
x1 x2 λ 1 λ 2 λ 3 λ 4z 50 1 0 0 0 0.333333 0 0x1 20 0 1 0 0 1.333333 0 -1x2 30 0 0 1 0 -1 0 1λ 3 35 0 0 0 0 1.666667 1 -2λ 1 50 0 0 0 1 -2.66667 0 2
Ⅲ
Ⅳ
ステップⅢが点 D 、ステップⅣが点 C なんですね!
杉原
点 D
点 C
83
だから、点 C と点 D を線形結合させた答えは、みんな答えなんだ。
x1 x2 λ 1 λ 2 λ 3 λ 4z 50 1 0 0 0 0.333333 0 0x1 45 0 1 0 0.5 0 0 0x2 5 0 0 1 - 0.5 0.333333 0 0λ 3 60 0 0 0 1 - 1 1 0 60λ 4 25 0 0 0 0.5 - 1.33333 0 1 50
x1 x2 λ 1 λ 2 λ 3 λ 4z 50 1 0 0 0 0.333333 0 0x1 20 0 1 0 0 1.333333 0 - 1x2 30 0 0 1 0 - 1 0 1λ 3 35 0 0 0 0 1.666667 1 - 2λ 1 50 0 0 0 1 - 2.66667 0 2
Ⅲ
Ⅳ
杉原
D
C
( 45,5 )
( 20,30 )
点 D
点 C
2030
k 45 5
+(1-k)x1
x2
=
( 0 k 1≦ ≦ )
数式で書くと、こうなります…。
森井
グラフで書くと、こうです。
答えのグラフ
答えの数式
84
現実問題にはまれなケースかもしれないが、少なくとも理論上はこの問題のように、最適解が無数にある可能性を知っておく必要がある。
ちなみに、最適解が1つしかなかった 問1の解答 を見てみよう。最終ステップに、非基底変数で、かつ Z の行が 0 の λ がないだろ?だから問1の場合は、たしかにここで終了なんだね!
値 z x1 x2 λ 1 λ 2 λ 3 λ 4z 0 1 - 100 - 150 0 0 0 0λ 1 90 0 2 0 1 0 0 0 -λ 2 150 0 3 3 0 1 0 0 50λ 3 120 0 1 3 0 0 1 0 40λ 4 180 0 3 4 0 0 0 1 45
x1 x2 λ 1 λ 2 λ 3 λ 4z 6000 1 - 50 0 0 0 50 0λ 1 90 0 2 0 1 0 0 0 45λ 2 30 0 2 0 0 1 - 1 0 15x2 40 0 0.333333 1 0 0 0.333333 0 120λ 4 20 0 1.66667 0 0 0 - 1.33333 1 12
x1 x2 λ 1 λ 2 λ 3 λ 4z 6600 1 0 0 0 0 10 30λ 1 66 0 0 0 1 0 1.6 - 1.2λ 2 6 0 0 0 0 1 0.6 - 1.2x2 36 0 0 1 0 0 0.6 - 0.2x1 12 0 1 0 0 0 - 0.8 0.6
基底変数 どちらも0 より大きい
杉原
わかりました。
森井
それでは次の問題にいきましょう!
85
シンプレックス法で次の線形計画問題を解け。
問3
もう λ を使っての定式化 ( 基底形式への変換 ) はいいわ。いきなり単体表を埋めてちょうだい。
森井
いよいよ最後だ。がんばれー。
目的関数
Z = 2x1 + 4x2 + x3 を 最大化したい
制約条件は
x1+ 2x2 4≦
2x1+ x2 3≦
x2+ 4x3 3≦
x1, x2, x3 0≧
86
この問題の表を見せてあげる。今度は4ステップかかるわ。
森井
製品1 2製品 3製品 制限材料1 1 2 0 4
2材料 2 1 0 33材料 0 1 4 3
利益 2 4 1
値 z x1 x2 x3 λ 1 λ 2 λ 3zλ 1λ 2λ 3
値 z x1 x2 x3 λ 1 λ 2 λ 3zx2λ 2λ 3
値 z x1 x2 x3 λ 1 λ 2 λ 3zx2λ 2x3
値 z x1 x2 x3 λ 1 λ 2 λ 3zx2x1x3
問3
87
これであなたも単体法をマスターしました!
杉原森井
これが問3の正解。つまりx1=2/3,x2=5/3,x3=1/3、そのとき z=25/3。
値 z x1 x2 x3 λ 1 λ 2 λ 3z 0 1 - 2 - 4 - 1 0 0 0λ 1 4 0 1 2 0 1 0 0 2λ 2 3 0 2 1 0 0 1 0 3λ 3 3 0 0 1 4 0 0 1 3
値 z x1 x2 x3 λ 1 λ 2 λ 3z 8 1 0 0 - 1 2 0 0x2 2 0 0.5 1 0 0.5 0 0 -λ 2 1 0 1.5 0 0 - 0.5 1 0 -λ 3 1 0 - 0.5 0 4 - 0.5 0 1 0.25
値 z x1 x2 x3 λ 1 λ 2 λ 3z 8.25 1 - 0.125 0 0 1.875 0 0.25x2 2 0 0.5 1 0 0.5 0 0 4λ 2 1 0 1.5 0 0 - 0.5 1 0 0.66667x3 0.25 0 - 0.125 0 1 - 0.125 0 0.25 - 2 <-これは選ばない!
値 z x1 x2 x3 λ 1 λ 2 λ 3z 8.333333 1 0 0 0 1.833333 0.083333 0.25x2 1.666667 0 0 1 0 0.666667 - 0.33333 0x1 0.666667 0 1 0 0 - 0.33333 0.666667 0x3 0.333333 0 0 0 1 - 0.16667 0.083333 0.25
問3の正解こりごりだぜ!
松岡
88
七瀬
あの日は結局、夕方7時まで勉強したので、クタクタになりました。こんなに苦労するようで、経営工学科でやってけるの?…と不安にもなりました。でも私は今日はっきりと、ほんとうに心の底から納得したのです。「経営工学は素晴らしい!」って。不思議なことにあの日、先生はその口癖を一度も言いませんでした。
これで第7話は終わりです。ありがとうございました。
来週は日本茶を
持ってきましょう。
あ、テレビみよ。
おい先公、寿司でもおごりなよ。
インスタントラーメン!
下賎な食べ物ね。 ノイズだらけじゃん。電波はいってないね。
理系のままでいればよかったかな…。
あ、もうこんな時間。たいへん、弟が…。
あの機械、何に使うんですか?
疲れた…。
マージャンできないのにマージャンマンガが好きなんですか?
ゴキブリ出ますよ。
掃除してください!