53
« 1 ê 70 計画数理 最適化手法を学ぶ « 2 ê 70 シラバス 講義の目的、内容 環境建設分野の計画をシステマティックに、かつ合理的に分析するオペレーションズリサーチの技法につ いて、基礎と応用を学ぶ。主に線形計画法、動的計画法、ゲーム理論を学習する。また最近注目されてい る確率的な方法を取り入れた最適化手法についても学習する。 講義スケジュール 1.ガイダンス 2.一変数関数の最大値・最小値問題 3.線形計画法 4.線形計画法における双対問題 5.シンプレックス法 6.動的計画法の基礎 7.PERT8.動的計画法のアルゴリズム 9.ゲーム理論の基礎 10.囚人のジレンマ問題 11.囚人のジレンマ問題 12.シミュレーテッド・アニーリング 13.ニューラルネットワーク 14.遺伝的アルゴリズム 15.期末試験 Printed from the Mathematica Help Browser 1 ©1988-2003 Wolfram Research, Inc. All rights reserved.

計画数理endeavor.eng.toyo.ac.jp/~yoshino/lecture/keikakusuuri/...« ≈ 1 ê 70 計画数理 最適化手法を学ぶ « ≈ 2 ê 70 シラバス 講義の目的、内容 環境建設分野の計画をシステマティックに、かつ合理的に分析するオペレーションズリサーチの技法につ

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 計画数理endeavor.eng.toyo.ac.jp/~yoshino/lecture/keikakusuuri/...« ≈ 1 ê 70 計画数理 最適化手法を学ぶ « ≈ 2 ê 70 シラバス 講義の目的、内容 環境建設分野の計画をシステマティックに、かつ合理的に分析するオペレーションズリサーチの技法につ

« ≈ 1 ê 70

計画数理 最適化手法を学ぶ

« ≈ 2 ê 70

シラバス

講義の目的、内容

環境建設分野の計画をシステマティックに、かつ合理的に分析するオペレーションズリサーチの技法について、基礎と応用を学ぶ。主に線形計画法、動的計画法、ゲーム理論を学習する。また最近注目されている確率的な方法を取り入れた最適化手法についても学習する。

講義スケジュール

1.ガイダンス

2.一変数関数の最大値・最小値問題

3.線形計画法

4.線形計画法における双対問題

5.シンプレックス法

6.動的計画法の基礎

7.PERT図

8.動的計画法のアルゴリズム

9.ゲーム理論の基礎

10.囚人のジレンマ問題

11.囚人のジレンマ問題

12.シミュレーテッド・アニーリング

13.ニューラルネットワーク

14.遺伝的アルゴリズム

15.期末試験

Printed from the Mathematica Help Browser 1

©1988-2003 Wolfram Research, Inc. All rights reserved.

Page 2: 計画数理endeavor.eng.toyo.ac.jp/~yoshino/lecture/keikakusuuri/...« ≈ 1 ê 70 計画数理 最適化手法を学ぶ « ≈ 2 ê 70 シラバス 講義の目的、内容 環境建設分野の計画をシステマティックに、かつ合理的に分析するオペレーションズリサーチの技法につ

参考書

ストラング「線形代数とその応用」産業図書(4200円)

松原望「計量社会学」東京大学出版会(3200円)

篠本滋「情報処理概論」岩波書店(3600円)

« ≈ 3 ê 70

今週のテーマ:一変数関数の最大値・最小値問題もっとも簡単な最大値・最小値問題は一変数関数に関する問題である.簡単な理由は機械的に実行できるからである.以下では一変数関数の最大値や最小値を求める方法を解説する.

« ≈ 4 ê 70

二次関数の最大値・最小値問題(1)

もっとも簡単な問題

問題:二次関数 y=a x2 + b x +cの頂点の座標を求めなさい.

解答:もとの式は y=a Hx+ bÅÅÅÅÅÅÅÅ2 a L2- b2-4 a cÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅ4 a と変形できるので,頂点は H - bÅÅÅÅÅÅÅÅ2 a , - b2-4 a cÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅ4 a M

例えば, y = x2 - 2 x - 3 の場合, y = Hx - 1L2 + H-4L と変形できるので,頂点は H1, -4L となる.これが最大値を求める問題なのか,それとも最小値を求める問題なのかは a によって決まってくる.a > 0のとき最小値問題, a < 0 のとき最大値問題である(なぜ?).

現実的な問題設定

以下のような問題設定だとこのような問題を解く意義がわかると思われる.

問題:ある単純ばりの位置 x におけるたわみ yHxL が式y=a x2 + b x +cで表された.たわみが最大になる位置 x とこのときのたわみ y を求めなさい.

解答:もとの式は y=a Hx+ bÅÅÅÅÅÅÅÅ2 a L2- b2-4 a cÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅ4 a と変形できるので,たわみが最大になるのは x=- bÅÅÅÅÅÅÅÅ2 a のとき

で,このときのたわみは y=- b2-4 a cÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅ4 a である.

問題自体はまったく同じである.現実的な問題と接すると,数学の大切さがわかってくると思う.

« ≈ 5 ê 70

2 Printed from the Mathematica Help Browser

©1988-2003 Wolfram Research, Inc. All rights reserved.

Page 3: 計画数理endeavor.eng.toyo.ac.jp/~yoshino/lecture/keikakusuuri/...« ≈ 1 ê 70 計画数理 最適化手法を学ぶ « ≈ 2 ê 70 シラバス 講義の目的、内容 環境建設分野の計画をシステマティックに、かつ合理的に分析するオペレーションズリサーチの技法につ

二次関数の最大値・最小値問題(2)

少し考えなくてはならない問題

問題:操作時間 x とそれによって得られる利益 y の関係が y=- x2 + 4 x +6であるような機械がある.ただし x の範囲は 0 § x § 6である.この機械によって得られる利益を最大にする操作時間 x を求めよ.

解答:頂点が H 2 , 10L なので x=2 のときに利益は最大になる.これは x の範囲にも合致している.

In[5]:= Plot@−x^2 + 4 x + 6, 8x, 0, 6<, PlotRange → AllD;

1 2 3 4 5 6

-5

-2.5

2.5

5

7.5

10

もうひとつ同じような問題

問題:操作時間 x とそれによって得られる利益 y の関係が y=- x2 + 14 x -9であるような機械がある.ただし x の範囲は 0 § x § 6である.この機械によって得られる利益を最大にする操作時間 x を求めよ.

解答:頂点が H 7 , 40L なので x=7 のときに y は最大になるが, x の範囲には合致していない. 0 § x § 6においては x は単調増加なので, x=6 のときに最大値 39をとる.

Printed from the Mathematica Help Browser 3

©1988-2003 Wolfram Research, Inc. All rights reserved.

Page 4: 計画数理endeavor.eng.toyo.ac.jp/~yoshino/lecture/keikakusuuri/...« ≈ 1 ê 70 計画数理 最適化手法を学ぶ « ≈ 2 ê 70 シラバス 講義の目的、内容 環境建設分野の計画をシステマティックに、かつ合理的に分析するオペレーションズリサーチの技法につ

In[22]:= Plot@−x^2 + 14 x − 9, 8x, 0, 6<, PlotRange → AllD;

1 2 3 4 5 6

-10

10

20

30

40

In[20]:= −x^2 + 14 x − 9 ê. x → 7

Out[20]= 40

In[21]:= −x^2 + 14 x − 9 ê. x → 6

Out[21]= 39

« ≈ 6 ê 70

一般的な場合

問題: x の関数 y= f HxL を最大(最小)にする x とそのときの値を求めよ.ただし x の範囲は a § x § bである.

解答:以下の手順で解決できる.

1. d yÅÅÅÅÅÅÅÅÅd x =0 をといて解を求める.2.上で得られた解のうち a § x § bに含まれている x について f HxL を求める.3. f HaL および f HbL を求める.4.上で得られた値から最大値(最小値)を求める.

« ≈ 7 ê 70

4次関数の場合

少ししんどい問題

問題:関数 y= x4- 4ÅÅÅÅ3 x3-8 x2 + 16 x -5の最小値を求めよ.

解答:以下の通り.

4 Printed from the Mathematica Help Browser

©1988-2003 Wolfram Research, Inc. All rights reserved.

Page 5: 計画数理endeavor.eng.toyo.ac.jp/~yoshino/lecture/keikakusuuri/...« ≈ 1 ê 70 計画数理 最適化手法を学ぶ « ≈ 2 ê 70 シラバス 講義の目的、内容 環境建設分野の計画をシステマティックに、かつ合理的に分析するオペレーションズリサーチの技法につ

In[117]:=

y = x^4 − 4 ê3 x^3 − 8 x^2 + 16 x − 5;

d yÅÅÅÅÅÅÅÅÅÅÅd x

= 0 をとくと,

In[118]:=

sol = Solve@D@y, xD 0, xDOut[118]=

88x → −2<, 8x → 1<, 8x → 2<<

より, x = -2, x = 1, x = 2となる.これらを f HxL に代入すると,

In[119]:=

y ê. sol@@1DDOut[119]=

−127

3

In[120]:=

y ê. sol@@2DDOut[120]=

83

In[121]:=

y ê. sol@@3DDOut[121]=

13

これより, x = -2のとき最小値 y= - 127 ê 3となる.

In[83]:= Plot@y, 8x, −5, 5<D;

-4 -2 2 4

-40

-20

20

40

60

もう少ししんどい問題

問題:関数 y= x4-4 x3-8 x2 + 48 x -5 H0§x§3Lの最小値を求めよ.

Printed from the Mathematica Help Browser 5

©1988-2003 Wolfram Research, Inc. All rights reserved.

Page 6: 計画数理endeavor.eng.toyo.ac.jp/~yoshino/lecture/keikakusuuri/...« ≈ 1 ê 70 計画数理 最適化手法を学ぶ « ≈ 2 ê 70 シラバス 講義の目的、内容 環境建設分野の計画をシステマティックに、かつ合理的に分析するオペレーションズリサーチの技法につ

解答:以下の通り.

In[122]:=

y = x^4 − 4 x^3 − 8 x^2 + 48 x − 5;

d yÅÅÅÅÅÅÅÅÅÅÅd x

= 0 をとくと,

In[123]:=

sol = Solve@D@y, xD 0, xDOut[123]=

88x → −2<, 8x → 2<, 8x → 3<<

より, x = -2, x = 2, x = 3となる.これらのうち 0 § x § 3を満たす x = 2および x = 3 を f HxL に代入すると,

In[125]:=

y ê. sol@@2DDOut[125]=

43

In[126]:=

y ê. sol@@3DDOut[126]=

40

また, x の変域の境界にある x = 0 および x = 3 を代入する.(x = 3 は既に計算済み)

In[128]:=

y ê. x → 0

Out[128]=

−5

これより, x = 0 のとき最小値 y= - 5となる.

In[127]:=

Plot@y, 8x, 0, 3<, PlotRange → AllD;

0.5 1 1.5 2 2.5 3

10

20

30

40

6 Printed from the Mathematica Help Browser

©1988-2003 Wolfram Research, Inc. All rights reserved.

Page 7: 計画数理endeavor.eng.toyo.ac.jp/~yoshino/lecture/keikakusuuri/...« ≈ 1 ê 70 計画数理 最適化手法を学ぶ « ≈ 2 ê 70 シラバス 講義の目的、内容 環境建設分野の計画をシステマティックに、かつ合理的に分析するオペレーションズリサーチの技法につ

In[131]:=

Plot@y, 8x, −5, 7<, PlotRange → AllD;

-4 -2 2 4 6

200

400

600

800

« ≈ 8 ê 70

今回のまとめ最大値・最小値問題はあまり難しくない場合がある.これらを解くことが難しくなる理由には主に以下の二つの理由のためである.

1.変数の数が多くなる.

2.束縛条件が複雑である.

今回の場合,変数の数は1と少なかったために難しさは少なかった.しかし,束縛条件( x の変域)が入ることで手間がかかった.

« ≈ 9 ê 70

課題問題:関数 y = 3 x2 - 2 x - 5 の最小値を求めなさい.ただし x は整数のみを取り得るものとする.

以下はヒント.

In[140]:=

y = 3 x^2 − 2 x − 5;

In[141]:=

Solve@D@y, xD 0, xDOut[141]=

99x →13==

x が連続(実数)ならば x = 1 ê 3 のときに最小値をとる.整数の場合にはどうしたらいいだろうか?

In[146]:=

lst = Table@8i, y ê. x → i<, 8i, −5, 5<D;

In[155]:=

gr1 = ListPlot@lst, DisplayFunction → Identity, PlotStyle → [email protected]<D;

Printed from the Mathematica Help Browser 7

©1988-2003 Wolfram Research, Inc. All rights reserved.

Page 8: 計画数理endeavor.eng.toyo.ac.jp/~yoshino/lecture/keikakusuuri/...« ≈ 1 ê 70 計画数理 最適化手法を学ぶ « ≈ 2 ê 70 シラバス 講義の目的、内容 環境建設分野の計画をシステマティックに、かつ合理的に分析するオペレーションズリサーチの技法につ

In[159]:=

gr2 = Plot@y, 8x, −5.5, 5.5<, DisplayFunction → IdentityD;

In[160]:=

Show@8gr1, gr2<, DisplayFunction → $DisplayFunctionD;

-4 -2 2 4

20

40

60

80

« ≈ 10 ê 70

今週のテーマ:簡単な線形計画法の例

もっとも簡単な問題

問題:価格が同じである材料 M と N を効率よく用いて製品を作りたい.材料 M には成分 a1 が3単位,成分 a2 が6単位,材料 N には a1 が 3.5 単位, a2 が 5 単位含まれている.製品を作るためには成分 a1 が 20 単位以上,成分 a2 が 30 単位以上必要である.このとき材料 M と材料 N の価格(個数)を最小にするように材料 M と材料 N の個数を決定しなさい.

定式化

条件 93 x1+3.5 x2 ¥ 20,

6 x1+ 5 x2 ¥ 30,

x1 ¥0, x2¥0の元で目的関数 P=x1+x2を最小にする x1 と x2 と P の最小値を求める.

« ≈ 11 ê 70

図式解法(その1:条件の表示)条件を満たす領域をグラフにプロットしてみる.

In[1]:= << Graphics`InequalityGraphics`

In[2]:= gr1 = InequalityPlot@ And@3 x + 3.5 y ≥ 20, 6 x + 5 y ≥ 30, x ≥ 0, y ≥ 0D,8x, 0, 8<, 8y, 0, 8< , PlotRange → All, DisplayFunction → IdentityD;

8 Printed from the Mathematica Help Browser

©1988-2003 Wolfram Research, Inc. All rights reserved.

Page 9: 計画数理endeavor.eng.toyo.ac.jp/~yoshino/lecture/keikakusuuri/...« ≈ 1 ê 70 計画数理 最適化手法を学ぶ « ≈ 2 ê 70 シラバス 講義の目的、内容 環境建設分野の計画をシステマティックに、かつ合理的に分析するオペレーションズリサーチの技法につ

In[3]:= gr2 = Plot@8H20 − 3 xLê 3.5, H30 − 6 xLê5<, 8x, 0, 8<, DisplayFunction → IdentityD;

In[4]:= Show@8gr1, gr2<, DisplayFunction → $DisplayFunction, PlotRange → 880, 8<, 80, 8<<D;

1 2 3 4 5 6 7 8

1

2

3

4

5

6

7

8

1 2 3 4 5 6 7 8

1

2

3

4

5

6

7

8

« ≈ 12 ê 70

図式解法(その2:解の探索)条件を満たす領域にある x と y ( x1 と x2)の組み合わせから P = x1 + x2 を最小にする x1と x2を見つけるために x2 = P - x1 と変形してグラフにプロットする.以下に示したのは P を 4, 5, 6, 7 とした場合の直線である.

In[5]:= gr3 = Plot@84 − x, 5 − x, 6 − x, 7 − x<, 8x, 0, 8<,PlotStyle −> 88RGBColor@1, 0, 0D<, 8RGBColor@1, 0, 0D<,8RGBColor@1, 0, 0D<, 8RGBColor@1, 0, 0D<<, DisplayFunction → IdentityD;

Printed from the Mathematica Help Browser 9

©1988-2003 Wolfram Research, Inc. All rights reserved.

Page 10: 計画数理endeavor.eng.toyo.ac.jp/~yoshino/lecture/keikakusuuri/...« ≈ 1 ê 70 計画数理 最適化手法を学ぶ « ≈ 2 ê 70 シラバス 講義の目的、内容 環境建設分野の計画をシステマティックに、かつ合理的に分析するオペレーションズリサーチの技法につ

In[6]:= Show@8gr1, gr2, gr3<,DisplayFunction → $DisplayFunction, PlotRange → 880, 8<, 80, 8<<D;

1 2 3 4 5 6 7 8

1

2

3

4

5

6

7

8

1 2 3 4 5 6 7 8

1

2

3

4

5

6

7

8

P が 4 や 5 のときには条件を満たす x と y の組み合わせを発見できないことがわかる.しかし P が 6 や 7のときには条件を満たす点が存在することがわかる.そこでギリギリ1点だけが条件を満たすように少しずつ P の値を小さくしてゆくことを試みる.

« ≈ 13 ê 70

図式解法(その3:解の探索)条件をみたす点は領域の境界上にあると考えられるので,境界を表す線の方程式の交点を求める.

In[10]:= sol = Solve@83 x + 7ê 2 y == 20, 6 x + 5 y == 30<, 8x, y<D

Out[10]= 99x →56

, y → 5==

この結果を P の式に代入すると,

In[11]:= x + y ê. sol

Out[11]= 9 356

=

と解が求められる.実際に P=35/6 の場合のグラフは,1点のみを領域と共有していることがわかる.

In[12]:= gr4 = Plot@35ê6 − x, 8x, 0, 8<,PlotStyle −> 8RGBColor@1, 0, 0D<, DisplayFunction → IdentityD;

10 Printed from the Mathematica Help Browser

©1988-2003 Wolfram Research, Inc. All rights reserved.

Page 11: 計画数理endeavor.eng.toyo.ac.jp/~yoshino/lecture/keikakusuuri/...« ≈ 1 ê 70 計画数理 最適化手法を学ぶ « ≈ 2 ê 70 シラバス 講義の目的、内容 環境建設分野の計画をシステマティックに、かつ合理的に分析するオペレーションズリサーチの技法につ

In[14]:= Show@8gr1, gr2, gr4<,DisplayFunction → $DisplayFunction, PlotRange → 880, 2<, 84, 6<<D;

0.25 0.5 0.75 1 1.25 1.5 1.75 2

4.25

4.5

4.75

5

5.25

5.5

5.75

6

0.25 0.5 0.75 1 1.25 1.5 1.75 2

4.25

4.5

4.75

5

5.25

5.5

5.75

6

« ≈ 14 ê 70

もう少し難しい問題

問題例

問題:原料Aと原料Bで3種類の製品 P1 , P2 , P3 を作る.原料 A は 18 単位を超えて入手することができず,原料 B は 20 単位を超えて入手することができない.各製品を作るためには,原料Aと原料Bをそれぞれ, (6, 3) ,(4,5),(3,7) 単位ずつ必要としている(ただし,括弧内は最初が原料A次が原料Bの単位数を示している).このとき,製品の総数を最大にする P1 , P2 , P3 の単位数 x1 , x2 , x3 を求めよ.ただし,これらは実数でよいものとする.

定式化

条件 96 x1+4 x2 +3 x3 § 18,

3 x1+5 x2 +7 x3 § 20,

x1 ¥0, x2¥0, x3¥0の元で目的関数 P=x1+x2+x3を最大にする x1 と x2 , x3 と P の最大値を求め

る.

Printed from the Mathematica Help Browser 11

©1988-2003 Wolfram Research, Inc. All rights reserved.

Page 12: 計画数理endeavor.eng.toyo.ac.jp/~yoshino/lecture/keikakusuuri/...« ≈ 1 ê 70 計画数理 最適化手法を学ぶ « ≈ 2 ê 70 シラバス 講義の目的、内容 環境建設分野の計画をシステマティックに、かつ合理的に分析するオペレーションズリサーチの技法につ

In[23]:= InequalityPlot3D@And@6 x + 4 y + 3 z ≤ 18, 3 x + 5 y + 7 z ≤ 20, x ≥ 0, y ≥ 0, z ≥ 0D,8x<, 8y<, 8z<, PlotPoints → 20D

0

1

2

3

0

1

2

3

4

0

1

2

0

1

2

0

1

2

3

Out[23]= Graphics3D

« ≈ 15 ê 70

スラック変数の導入この問題を解くために「スラック変数」という水増しのための仮の変数を導入して,問題を方程式にする.

条件 96 x1+4 x2 +3 x3 +s1 = 18,

3 x1+5 x2 +7 x3 +s2 = 20,

x1 ¥0, x2¥0, x3¥0, s1¥0, s2¥0の元で目的関数 P=x1+x2+x3+0µs1+0µs2を最大にする x1 , x2 , x3 , s1 ,

s2 を求める.

条件が2つの場合には5つある変数( x1 , x2 , x3 , s1 , s2)のうち2つだけが非ゼロのときに最大となるので,ゼロでないふたつを決めて条件式からその値を決定し P の値をもとめて比較すればよい.

同様にして一般には n 個の条件式がある場合には n 個の変数が非ゼロなときに最大または最小となる.そこで,非ゼロな n 個の変数の組み合わせ分の数だけ方程式をといて変数の値を決定し,最大値(または最小値)を決定する.

これを代数的な解法という.

« ≈ 16 ê 70

12 Printed from the Mathematica Help Browser

©1988-2003 Wolfram Research, Inc. All rights reserved.

Page 13: 計画数理endeavor.eng.toyo.ac.jp/~yoshino/lecture/keikakusuuri/...« ≈ 1 ê 70 計画数理 最適化手法を学ぶ « ≈ 2 ê 70 シラバス 講義の目的、内容 環境建設分野の計画をシステマティックに、かつ合理的に分析するオペレーションズリサーチの技法につ

代数的な解法方程式は,以下のように設定される.

In[48]:= eqns = 86 x1 + 4 x2 + 3 x3 + s1 == 18, 3 x1 + 5 x2 + 7 x3 + s2 == 20<;

ゼロでない2つの変数の選び方は10通り.

In[25]:= << DiscreteMath`Combinatorica`

In[29]:= vars = 8x1, x2, x3, s1, s2<;

In[30]:= picked = KSubsets@vars, 2D

Out[30]= 88x1, x2<, 8x1, x3<, 8x1, s1<, 8x1, s2<,8x2, x3<, 8x2, s1<, 8x2, s2<, 8x3, s1<, 8x3, s2<, 8s1, s2<<

ゼロとなる変数のリストを作る.

In[44]:= zerovars = Map@Complement@vars, #D &, picked, 81<D

Out[44]= 88s1, s2, x3<, 8s1, s2, x2<, 8s2, x2, x3<, 8s1, x2, x3<, 8s1, s2, x1<,8s2, x1, x3<, 8s1, x1, x3<, 8s2, x1, x2<, 8s1, x1, x2<, 8x1, x2, x3<<

In[49]:= conds = Map@# → 0 &, zerovars, 82<D

Out[49]= 88s1 → 0, s2 → 0, x3 → 0<, 8s1 → 0, s2 → 0, x2 → 0<,8s2 → 0, x2 → 0, x3 → 0<, 8s1 → 0, x2 → 0, x3 → 0<,8s1 → 0, s2 → 0, x1 → 0<, 8s2 → 0, x1 → 0, x3 → 0<, 8s1 → 0, x1 → 0, x3 → 0<,8s2 → 0, x1 → 0, x2 → 0<, 8s1 → 0, x1 → 0, x2 → 0<, 8x1 → 0, x2 → 0, x3 → 0<<

In[52]:= eqlist = Map@eqns ê. # &, condsD

Out[52]= 886 x1 + 4 x2 18, 3 x1 + 5 x2 20<, 86 x1 + 3 x3 18, 3 x1 + 7 x3 20<,8s1 + 6 x1 18, 3 x1 20<, 86 x1 18, s2 + 3 x1 20<,84 x2 + 3 x3 18, 5 x2 + 7 x3 20<, 8s1 + 4 x2 18, 5 x2 20<, 84 x2 18, s2 + 5 x2 20<,8s1 + 3 x3 18, 7 x3 20<, 83 x3 18, s2 + 7 x3 20<, 8s1 18, s2 20<<

In[65]:= ans = Thread@Solve@eqlist, pickedDD

General::ivar : 8s1, s2<は有効な変数ではありません. 詳細

Out[65]= 999x1 →59

, x2 →113==, 88x1 → 2, x3 → 2<<, 99x1 →

203

, s1 → −22==, 88x1 → 3, s2 → 11<<,

99x2 →6613

, x3 → −1013

==, 88x2 → 4, s1 → 2<<, 99x2 →92

, s2 → −52==,

99x3 →207

, s1 →667

==, 88x3 → 6, s2 → −22<<, 88s1 → 18, s2 → 20<<=

In[71]:= anslist = Map@Flatten, ans, 81<D

Out[71]= 99x1 →59

, x2 →113

=, 8x1 → 2, x3 → 2<, 9x1 →203

, s1 → −22=,

8x1 → 3, s2 → 11<, 9x2 →6613

, x3 → −1013

=, 8x2 → 4, s1 → 2<, 9x2 →92

, s2 → −52=,

9x3 →207

, s1 →667=, 8x3 → 6, s2 → −22<, 8s1 → 18, s2 → 20<=

In[91]:= a1 = Map@x1 + x2 + x3 ê. # &, condsD

Out[91]= 8x1 + x2, x1 + x3, x1, x1, x2 + x3, x2, x2, x3, x3, 0<

Printed from the Mathematica Help Browser 13

©1988-2003 Wolfram Research, Inc. All rights reserved.

Page 14: 計画数理endeavor.eng.toyo.ac.jp/~yoshino/lecture/keikakusuuri/...« ≈ 1 ê 70 計画数理 最適化手法を学ぶ « ≈ 2 ê 70 シラバス 講義の目的、内容 環境建設分野の計画をシステマティックに、かつ合理的に分析するオペレーションズリサーチの技法につ

In[100]:=

MapThread@ReplaceAll, 8a1, anslist<DOut[100]=

9 389

, 4, 203

, 3, 5613

, 4, 92

, 207

, 6, 0=

In[102]:=

Max@MapThread@ReplaceAll, 8a1, anslist<DDOut[102]=

203

この答えは条件を満たしていない.方程式の解がともに正だったものは,1,2,4,6,8,10番目である.

In[106]:=

Part@%100, 81, 2, 4, 6, 8, 10<DOut[106]=

9 389

, 4, 3, 4,207

, 0=

In[107]:=

9 38

9, 4, 3, 4,

20

7, 0= êê Max

Out[107]=389

従って,

In[108]:=

picked@@1DDOut[108]=

8x1, x2<

In[109]:=

ans@@1DDOut[109]=

99x1 →59

, x2 →113

==

のときに,最大値 38/9 をとる.

« ≈ 17 ê 70

線形計画法(Liner Programming)1次の等式,不等式条件を満たす変数の組み合わせから,与えられた1次式を最大もしくは最小にする変数の値を求める方法.

14 Printed from the Mathematica Help Browser

©1988-2003 Wolfram Research, Inc. All rights reserved.

Page 15: 計画数理endeavor.eng.toyo.ac.jp/~yoshino/lecture/keikakusuuri/...« ≈ 1 ê 70 計画数理 最適化手法を学ぶ « ≈ 2 ê 70 シラバス 講義の目的、内容 環境建設分野の計画をシステマティックに、かつ合理的に分析するオペレーションズリサーチの技法につ

線形計画法の問題

A=

i

k

jjjjjjjjjjjjjjjj

a11 a12 ∫ a1 k

a21 a22 ∫ a2 k

ª ª ∏ ª

an1 an2 ∫ an k

y

{

zzzzzzzzzzzzzzzz, x=

i

k

jjjjjjjjjjjjjjjj

x1

x2

ª

xk

y

{

zzzzzzzzzzzzzzzz, s=

i

k

jjjjjjjjjjjjjjjj

s1

s2

ª

sn

y

{

zzzzzzzzzzzzzzzz, v=(v1 v2 ∫ vk ) が与えられたとき,

1. A x § s, x¥0という条件の下で P=v.x を最大にする.2. A x ¥ s, x¥0という条件の下で P=v.x を最小にする.

線形計画法の問題(スラック変数を入れると)

A=

i

k

jjjjjjjjjjjjjjjj

a11 a12 ∫ a1 k 1 0 ∫ 0

a21 a22 ∫ a2 k 0 1 ∫ 0

ª ª ∏ ª ª ª ∏ ∏

an1 an2 ∫ an k 0 0 ∫ 1

y

{

zzzzzzzzzzzzzzzz, x=

i

k

jjjjjjjjjjjjjjjj

x1

x2

ª

xn+k

y

{

zzzzzzzzzzzzzzzz, s=

i

k

jjjjjjjjjjjjjjjj

s1

s2

ª

sn

y

{

zzzzzzzzzzzzzzzz, v=(v1 v2 ∫ vk 0 0 ∫ 0) が与えられたとき,

1. A x = s, x¥0という条件の下で P=v.x を最大にする.2. A x = s, x¥0という条件の下で P=v.x を最小にする.

« ≈ 18 ê 70

課題問題:以下の条件のもとで Pの最大値とPを最大にする xとyの値を求めなさい.

条件 93 x+6 y § 1,

3.5 x+ 5 y § 1,

x ¥0, y¥0 目的関数 P=20 x+30 y

« ≈ 19 ê 70

単体法(シンプレックス法)代数的な方法を用いることによって線形計画法の問題を解くことができるが,条件が複雑になるほど解かなければならない方程式(そして変数)の数が多くなる.そこで,シンプレックス法と呼ばれる手法を導入する.

« ≈ 20 ê 70

Printed from the Mathematica Help Browser 15

©1988-2003 Wolfram Research, Inc. All rights reserved.

Page 16: 計画数理endeavor.eng.toyo.ac.jp/~yoshino/lecture/keikakusuuri/...« ≈ 1 ê 70 計画数理 最適化手法を学ぶ « ≈ 2 ê 70 シラバス 講義の目的、内容 環境建設分野の計画をシステマティックに、かつ合理的に分析するオペレーションズリサーチの技法につ

線形計画法の問題

A=

i

k

jjjjjjjjjjjjjjjj

a11 a12 ∫ a1 k

a21 a22 ∫ a2 k

ª ª ∏ ª

an1 an2 ∫ an k

y

{

zzzzzzzzzzzzzzzz, x=

i

k

jjjjjjjjjjjjjjjj

x1

x2

ª

xk

y

{

zzzzzzzzzzzzzzzz, s=

i

k

jjjjjjjjjjjjjjjj

s1

s2

ª

sn

y

{

zzzzzzzzzzzzzzzz, v=(v1 v2 ∫ vk ) が与えられたとき,

1. A x § s, x¥0という条件の下で P=v.x を最大にする.2. A x ¥ s, x¥0という条件の下で P=v.x を最小にする.

線形計画法の問題(スラック変数を入れると)

A=

i

k

jjjjjjjjjjjjjjjj

a11 a12 ∫ a1 k 1 0 ∫ 0

a21 a22 ∫ a2 k 0 1 ∫ 0

ª ª ∏ ª ª ª ∏ ∏

an1 an2 ∫ an k 0 0 ∫ 1

y

{

zzzzzzzzzzzzzzzz, x=

i

k

jjjjjjjjjjjjjjjj

x1

x2

ª

xk+n

y

{

zzzzzzzzzzzzzzzz, s=

i

k

jjjjjjjjjjjjjjjj

s1

s2

ª

sn

y

{

zzzzzzzzzzzzzzzz, v=(v1 v2 ∫ vk 0 0 ∫ 0) が与えられたと

き,A x = s, x¥0という条件の下で P=v.x を最大または最小にする.

« ≈ 21 ê 70

変数の設定以下のように問題の変数を分離しておこう.

B=

i

k

jjjjjjjjjjjjjjjj

a11 a12 ∫ a1 k

a21 a22 ∫ a2 k

ª ª ∏ ª

an1 an2 ∫ an k

y

{

zzzzzzzzzzzzzzzz, F=

i

k

jjjjjjjjjjjjjjjj

1 0 ∫ 0

0 1 ∫ 0

ª ª ∏ ∏

0 0 ∫ 1

y

{

zzzzzzzzzzzzzzzz,

xB=

i

k

jjjjjjjjjjjjjjjj

x1

x2

ª

xk

y

{

zzzzzzzzzzzzzzzz, xF =

i

k

jjjjjjjjjjjjjjjj

xk+1

xk+2

ª

xk+n

y

{

zzzzzzzzzzzzzzzz,

vB=(v1 v2 ∫ vk ), vF=(0 0 ∫ 0)

このとき,問題は,

A=HB F L, x=ikjjjjxB

xF

y{zzzz, s=

i

k

jjjjjjjjjjjjjjjj

s1

s2

ª

sn

y

{

zzzzzzzzzzzzzzzz, v=(vB vF ), が与えられたとき,HB FL i

kjjjjxB

xF

y{zzzz = s, x¥0という条件の下で

P=HvB vFL .ikjjjjxB

xF

y{zzzz を最大または最小にする.

16 Printed from the Mathematica Help Browser

©1988-2003 Wolfram Research, Inc. All rights reserved.

Page 17: 計画数理endeavor.eng.toyo.ac.jp/~yoshino/lecture/keikakusuuri/...« ≈ 1 ê 70 計画数理 最適化手法を学ぶ « ≈ 2 ê 70 シラバス 講義の目的、内容 環境建設分野の計画をシステマティックに、かつ合理的に分析するオペレーションズリサーチの技法につ

と書き換えられる.

« ≈ 22 ê 70

双対性証明は略すが「双対性」という性質によって,線形計画法で検討する問題は,最大値問題を最小値問題に,または最小値問題を最大値問題に置き換えて検討することができる.これを「双対性」という.

A=HB F L, x=ikjjjjxB

xF

y{zzzz, s=

i

k

jjjjjjjjjjjjjjjj

s1

s2

ª

sn

y

{

zzzzzzzzzzzzzzzz, v=(vB vF ), が与えられたとき,A x = s, x¥0という条件の下で P=v . x を最大

(最小)にする.

という問題の双対問題は,

A=IBT F T M, y=ikjjjjyB

yF

y{zzzz, s=

i

k

jjjjjjjjjjjjjjjj

s1

s2

ª

sn

y

{

zzzzzzzzzzzzzzzz, v=(vB vF ), が与えられたとき,A y = v, y¥0という条件の下で P=sT . y を

最小(最大)にする.

と表される.以下では主に最大値問題を考えてゆく.

A=HB F L, x=ikjjjjxB

xF

y{zzzz, s=

i

k

jjjjjjjjjjjjjjjj

s1

s2

ª

sn

y

{

zzzzzzzzzzzzzzzz, v=(vB vF ), が与えられたとき,A x = s, x¥0という条件の下で P=v . x を最大

にする.

« ≈ 23 ê 70

シンプレックス法の原理

A=HB F L, x=ikjjjjxB

xF

y{zzzz, s=

i

k

jjjjjjjjjjjjjjjj

s1

s2

ª

sn

y

{

zzzzzzzzzzzzzzzz, v=(vB vF ), が与えられたとき,A x = s, x¥0という条件の下で P=v . x を最大

にする.

について検討する.

このとき, A x = B xB + F xF = s より, xB = B-1 Hs - F xF L である.従って,P は xF を用いて,

P = v.x = vB.xB + vF .xF = vB. B-1Hs - F xF L + vF .xF = vB. B-1 s - HvB B-1 F - vFL . xF

Printed from the Mathematica Help Browser 17

©1988-2003 Wolfram Research, Inc. All rights reserved.

Page 18: 計画数理endeavor.eng.toyo.ac.jp/~yoshino/lecture/keikakusuuri/...« ≈ 1 ê 70 計画数理 最適化手法を学ぶ « ≈ 2 ê 70 シラバス 講義の目的、内容 環境建設分野の計画をシステマティックに、かつ合理的に分析するオペレーションズリサーチの技法につ

となる.xF は正の数だから,r = HvB B-1 F - vF L をすべて負の数にすることがひとつの指針となる.そこで,以下のような表現形式を作る.

ikjjjjB F s

vB vF 0y{zzzz

この行列について行に関する基本変形(同じ行に属する要素を定数倍する,ある行のすべての要素に別の行の対応する要素の定数倍を加える)を行ってゆき, B の部分が単位行列に,そして vB の部分が 0 ベクトルになるように変形してゆく.このとき,他の部分は自動的に,

ikjjjjI B-1 F B-1 s0 r -P

y{zzzz

となる.もしも r がすべて負の数ならば,これ以上の改良は不可能である.このときの P が最大値であり, B-1 s がそのときの変数の値となる.もしも r に正の数が含まれている場合には列を入れ替えて(または入れ替えを行ったつもりになって),新たに基本変形を行ってゆく.

« ≈ 24 ê 70

シンプレックス法の手順結局,最適解を求める手順は以下の通り.

1.初期状態の表を作る.

ikjjjjB F s

vB vF 0y{zzzz

2.基本変形を行って

ikjjjjI B-1 F B-1 s0 r -P

y{zzzz

を作る. r がすべて負になっていない場合には,変数を入れ替えて同じ操作を行う.入れ替える二つの列は,r の最大値をもつ列を新たに採用し,その列にある各行の値で同じ行にある B-1 s の要素を割った値の小さいほうに対応する列を破棄する.

« ≈ 25 ê 70

例題演習

条件 96 x1+4 x2 +3 x3 +s1 = 18,

3 x1+5 x2 +7 x3 +s2 = 20,

x1 ¥0, x2¥0, x3¥0, s1¥0, s2¥0の元で目的関数 P=x1+x2+x3+0µs1+0µs2を最大にする x1 , x2 , x3 , s1 ,

s2 を求める.

この問題における各変数は以下の通り.

18 Printed from the Mathematica Help Browser

©1988-2003 Wolfram Research, Inc. All rights reserved.

Page 19: 計画数理endeavor.eng.toyo.ac.jp/~yoshino/lecture/keikakusuuri/...« ≈ 1 ê 70 計画数理 最適化手法を学ぶ « ≈ 2 ê 70 シラバス 講義の目的、内容 環境建設分野の計画をシステマティックに、かつ合理的に分析するオペレーションズリサーチの技法につ

B=ikjjjj6 4 3

3 5 7y{zzzz , F=

ikjjjj1 0

0 1y{zzzz, s=

ikjjjj18

20y{zzzz

xB=

i

k

jjjjjjjjjj

x1

x2

x3

y

{

zzzzzzzzzz, xF =

ikjjjjx4

x5

y{zzzz,

vB=(1 1 1 ), vF=(0 0)

このとき,基本変形する行列は下のようになる.

ikjjjjB F s

vB vF 0y{zzzz=

i

k

jjjjjjjjjj

6 4 3

3 5 7

1 0

0 1

18

20

1 1 1 0 0 0

y

{

zzzzzzzzzz

この式はスラック変数が選ばれているせいで P がゼロになっていることを反映している.はじめに,1列から3列のどれも同じ値なので仮に1列を選ぶ.次にスラック変数から18/6 < 20/3 より4列を破棄する,

i

k

jjjjjjjjjj

6 4 3 1 0 18

3 5 7 0 1 20

1 1 1 0 0 0

y

{

zzzzzzzzzzØøøøøøøø

1 行π6

i

k

jjjjjjjjjj

1 2ê3 1ê2 1ê6 0 3

3 5 7 0 1 20

1 1 1 0 0 0

y

{

zzzzzzzzzz

Øøøøøøøøøøøøøøøøø

2 行-1行µ3

i

k

jjjjjjjjjj

1 2ê3 1ê2 1ê6 0 3

0 3 11ê2 -1ê2 1 11

1 1 1 0 0 0

y

{

zzzzzzzzzz

Øøøøøøøøøøøøø

3 行-1行

i

k

jjjjjjjjjj

1 2ê3 1ê2 1ê6 0 3

0 3 11ê2 -1ê2 1 11

0 1ê3 1ê2 -1ê6 0 -3

y

{

zzzzzzzzzz

この結果は新たに x1 と x5 を基底変数とすると, x1 = 3 かつ x5 = 11 としたときに P が3となることを示している.まだ r の部分がすべて負になってないので,さらに続ける. r の中で一番大きい 1/2 をもつ3列目を採用し,3/(1/2)=6 と 11/(11/2)=2 を較べ,小さい2行目に相当する5列目を破棄する.

i

k

jjjjjjjjjj

1 2ê3 1ê2 1ê6 0 3

0 3 11ê2 -1ê2 1 11

0 1ê3 1ê2 -1ê6 0 -3

y

{

zzzzzzzzzzØøøøøøøøøøøøø

2 行µ2ê11

i

k

jjjjjjjjjj

1 2ê3 1ê2 1ê6 0 3

0 6ê11 1 -1ê11 2ê11 2

0 1ê3 1ê2 -1ê6 0 -3

y

{

zzzzzzzzzz

Øøøøøøøøøøøøøøøøøøø

1 行-2行µ1ê2

i

k

jjjjjjjjjj

1 13ê33 0 7ê33 -1ê11 2

0 6ê11 1 -1ê11 2ê11 2

0 1ê3 1ê2 -1ê6 0 -3

y

{

zzzzzzzzzz

Øøøøøøøøøøøøøøøøøøø

3 行-2行µ1ê2

i

k

jjjjjjjjjj

1 13ê33 0 7ê33 -1ê11 2

0 6ê11 1 -1ê11 2ê11 2

0 2ê33 0 -4ê33 -1ê11 -4

y

{

zzzzzzzzzz

この結果は新たに x1 と x3 を基底変数とすると, x1 = 2 かつ x3 = 2 としたときに P が4となることを示している.まだ r の部分がすべて負になってないので,さらに続ける. r の中で一番大きい 2/33 をもつ2列目を採用し,2/(13/33)=66/13 と 2/(6/11)=11/3 を較べ,小さい2行目に相当する3列目を破棄する.

Printed from the Mathematica Help Browser 19

©1988-2003 Wolfram Research, Inc. All rights reserved.

Page 20: 計画数理endeavor.eng.toyo.ac.jp/~yoshino/lecture/keikakusuuri/...« ≈ 1 ê 70 計画数理 最適化手法を学ぶ « ≈ 2 ê 70 シラバス 講義の目的、内容 環境建設分野の計画をシステマティックに、かつ合理的に分析するオペレーションズリサーチの技法につ

i

k

jjjjjjjjjj

1 13ê33 0 7ê33 -1ê11 2

0 6ê11 1 -1ê11 2ê11 2

0 2ê33 0 -4ê33 -1ê11 -4

y

{

zzzzzzzzzzØøøøøøøøøøøøø

2 行µ11ê6

i

k

jjjjjjjjjj

1 13ê33 0 7ê33 -1ê11 2

0 1 11ê6 -1ê6 1ê3 11ê30 2ê33 0 -4ê33 -1ê11 -4

y

{

zzzzzzzzzz

Øøøøøøøøøøøøøøøøøøøøøøø

1 行-2行µ13ê33

i

k

jjjjjjjjjj

1 0 -13ê18 5ê18 -2ê9 5ê90 1 11ê6 -1ê6 1ê3 11ê30 2ê33 0 -4ê33 -1ê11 -4

y

{

zzzzzzzzzz

Øøøøøøøøøøøøøøøøøøøøø

3 行-2行µ2ê33

i

k

jjjjjjjjjj

1 0 -13ê18 5ê18 -2ê9 5ê90 1 11ê6 -1ê6 1ê3 11ê30 0 -1ê9 -1ê9 -1ê9 -38ê9

y

{

zzzzzzzzzz

この結果は新たに x1 と x2 を基底変数とすると, x1 = 5 ê 9 かつ x2 = 11 ê3 としたときに P が 38/9 となることを示している. r の部分がすべて負になったので終了.

« ≈ 26 ê 70

課題問題:以下の条件のもとで Pの最大値とPを最大にする xとyの値をシンプレックス法を用いて求めなさい.

条件 93 x+6 y § 1,

3.5 x+ 5 y § 1,

x ¥0, y¥0 目的関数 P=20 x+30 y

B=ikjjjj3 6

3.5 5y{zzzz , F=

ikjjjj1 0

0 1y{zzzz, s=

ikjjjj1

1y{zzzz

xB=ikjjjjx1

x2

y{zzzz, xF =

ikjjjjx3

x4

y{zzzz,

vB=(20 30 ), vF=(0 0)

ikjjjjB F s

vB vF 0y{zzzz=

i

k

jjjjjjjjjj

3 6

3.5 5

1 0

0 1

1

1

20 30 0 0 0

y

{

zzzzzzzzzz

解答

r の値が大きい2列目に注目する.1/6 <1/5 より1行2列の6を1にするように基本変形を行う.

i

k

jjjjjjjjjj

3 6

3.5 5

1 0

0 1

1

1

20 30 0 0 0

y

{

zzzzzzzzzzØøøøøøøøøøø

1 行µ1ê6

i

k

jjjjjjjjjj

0.5 1

3.5 5

1ê6 0

0 1

1ê61

20 30 0 0 0

y

{

zzzzzzzzzzØøøøøøøøøøøøøøøøø

2 行-1行µ5

i

k

jjjjjjjjjj

0.5 1

1 0

1ê6 0

-5ê6 1

1ê61ê6

20 30 0 0 0

y

{

zzzzzzzzzzØøøøøøøøøøøøøøøøøø

3 行-1行µ30

i

k

jjjjjjjjjj

0.5 1

1 0

1ê6 0

-5ê6 1

1ê61ê6

5 0 -5 0 -5

y

{

zzzzzzzzzz

20 Printed from the Mathematica Help Browser

©1988-2003 Wolfram Research, Inc. All rights reserved.

Page 21: 計画数理endeavor.eng.toyo.ac.jp/~yoshino/lecture/keikakusuuri/...« ≈ 1 ê 70 計画数理 最適化手法を学ぶ « ≈ 2 ê 70 シラバス 講義の目的、内容 環境建設分野の計画をシステマティックに、かつ合理的に分析するオペレーションズリサーチの技法につ

r の値が正である1列目に注目する.(1/6)/0.5 > 1/6 /1 より2行1列の1を単位行列の1にするように基本変形を行う.

i

k

jjjjjjjjjj

0.5 1

1 0

1ê6 0

-5ê6 1

1ê61ê6

5 0 -5 0 -5

y

{

zzzzzzzzzzØøøøøøøøøøøøøøøøøøø

1 行-2行µ0.5

i

k

jjjjjjjjjj

0 1

1 0

7ê12 0.5

-5ê6 1

1ê12

1ê65 0 -5 0 -5

y

{

zzzzzzzzzzØøøøøøøøøøøøøøøøø

3 行-2行µ5

i

k

jjjjjjjjjj

0 1

1 0

7ê12 0.5

-5ê6 1

1ê12

1ê60 0 -5ê6 -5 -35ê6

y

{

zzzzzzzzzz

x=1/6, y=1/12 のとき最大値 35/6 をとる.

ちなみに Mathematica を用いると,

In[25]:= LinearProgramming@820, 30<, 883, 6<, 83.5, 5<, 81, 0<, 80, 1<<, 81, 1, 0, 0<D êê Timing

Out[25]= 80.01 Second, 80.166667, 0.0833333<<

In[24]:= 81ê6, 1 ê12< êê N

Out[24]= 80.166667, 0.0833333<

« ≈ 27 ê 70

今週のテーマ:ゲーム理論

ゲーム理論(Game Theory, Theory of Game)とは

「相手がいるゲーム」を行うことによって得られる利得を最大にするように行動するための戦略を検討するための数学

ゲームという言葉

ゲーム理論で検討するのは,「相手と利得を争うゲーム」である.従って,ゲーム理論は,いわゆる「ゲーム」だけではなく,交渉に関係する事項一般について有効である.

« ≈ 28 ê 70

用語

プレーヤー(Player)

ゲームへの参加者

戦略(Strategy)

プレーヤーが実行できる手段

Printed from the Mathematica Help Browser 21

©1988-2003 Wolfram Research, Inc. All rights reserved.

Page 22: 計画数理endeavor.eng.toyo.ac.jp/~yoshino/lecture/keikakusuuri/...« ≈ 1 ê 70 計画数理 最適化手法を学ぶ « ≈ 2 ê 70 シラバス 講義の目的、内容 環境建設分野の計画をシステマティックに、かつ合理的に分析するオペレーションズリサーチの技法につ

利得(Payoff)

1回のゲームによってプレーヤーが得られる利益

利得行列(Payoff Matrix)

すべての戦略の組み合わせについてまとめられた利得のリスト.ゲームの性質はペイオフマトリクスによって完全に表される.

« ≈ 29 ê 70

ゲームの例ここで例として挙げるゲームはすべてプレーヤーがふたりのゲーム(2人ゲーム)である.ふたりのプレーヤーをAおよびプレーヤーBと呼ぶことにする.プレーヤーAの戦略を a1, a2, a3, ∫, am そしてBの戦略を b1, b2, b3, ∫, bn と表す.このとき,ペイオフマトリクスを以下のように表す.P はそれぞれのペイオフを表している.

β1 β2 ∫ βn

α1 HPA1, PB

1L HPA1, PB

2L ∫ HPA1, PB

nLα2 HPA

2, PB1L HPA

2, PB2L ∫ HPA

2, PBnL

ª ª ª ∏ ª

αm HPAm, PB

1L HPAm, PB

2L ∫ HPAm, PB

nL

例1

どんな特徴を持っているだろう?

β1 β2 β3

α1 H3, −3L H0, 0L H−2, 2Lα2 H2, −2L H−3, 3L H−3, 3Lα3 H2, −2L H2, −2L H1, 1L

例2

どんな特徴を持っているだろう?

β1 β2

α1 H1, −1L H5, −5Lα2 H4, −4L H2, −2L

例3

どんな特徴を持っているだろう?

22 Printed from the Mathematica Help Browser

©1988-2003 Wolfram Research, Inc. All rights reserved.

Page 23: 計画数理endeavor.eng.toyo.ac.jp/~yoshino/lecture/keikakusuuri/...« ≈ 1 ê 70 計画数理 最適化手法を学ぶ « ≈ 2 ê 70 シラバス 講義の目的、内容 環境建設分野の計画をシステマティックに、かつ合理的に分析するオペレーションズリサーチの技法につ

β1 β2

α1 H−1, −1L H3, −5Lα2 H−5, 3L H2, 2L

« ≈ 30 ê 70

ゲームの種類

ゼロ和ゲーム,非ゼロ和ゲーム

自分の利得が他者の損失(マイナスの利得)となるゲームをゼロ和ゲームという.つまり胴元の取り分がないゲームである.逆に,その関係が成り立たないゲームを非ゼロ和ゲームという.

協力ゲーム,非協力ゲーム

ゲームがアプリオリに協力の要素を含んでるものと含んでないないもの.

« ≈ 31 ê 70

ミニマックス原理

例1について最適な戦略はなにか?

β1 β2 β3

α1 H3, −3L H0, 0L H−2, 2Lα2 H2, −2L H−3, 3L H−3, 3Lα3 H2, −2L H2, −2L H1, −1L

β1 β2 β3

α1 3 0 −2α2 2 −3 −3α3 2 2 1

(ゼロ和ゲームの場合片方のペイオフしか書かないことが多い)

プレーヤーAの戦略の選び方

各戦略のうち最も少ない利得に注目し,その中で最大値をとる戦略を選ぶ(マクシミン基準,maxi-mincriterion).(一番悪いものを較べて,その中で一番良いものをえらぶ)

プレーヤーBの戦略の選び方

各戦略のうち最も大きな損失に注目し,その中で最小値をとる戦略を選ぶ(ミニマックス基準,mini-maxcriterion).

予想される答え

プレーヤーAは a3 を,プレーヤーBは b3 をとることが最良であると考えられる.

Printed from the Mathematica Help Browser 23

©1988-2003 Wolfram Research, Inc. All rights reserved.

Page 24: 計画数理endeavor.eng.toyo.ac.jp/~yoshino/lecture/keikakusuuri/...« ≈ 1 ê 70 計画数理 最適化手法を学ぶ « ≈ 2 ê 70 シラバス 講義の目的、内容 環境建設分野の計画をシステマティックに、かつ合理的に分析するオペレーションズリサーチの技法につ

ミニマックス原理

プレーヤーがマクシミン基準やミニマックス基準をもとにして戦略をたてること.これらは最悪の中から最良を選ぶという意味で(消極的ではあるが)安全な方法である.

« ≈ 32 ê 70

課題次のペイオフマトリクスについて,ミニマックス原理によってそれぞれの戦略を決定せよ.

β1 β2

α1 H1, −1L H5, −5Lα2 H4, −4L H2, −2L

β1 β2

α1 1 5α2 4 2

その結果は正しいと思われるか?正しいか正しくないのかを判断し,その判断理由を説明しなさい.

« ≈ 33 ê 70

今週のテーマ:Nash 均衡解ゲーム理論の主要な功績のひとつである Nash 均衡解について検討する.John Nash はこの業績でノーベル経済学賞を受賞している.

« ≈ 34 ê 70

再び「例1」について

例1について最適な戦略はなにか?

例1では,以下のペイオフマトリクス(利得行列)について検討した.このとき,プレーヤーAについてはマクシミン基準,プレーヤーBについてはミニマックス基準を用いた.

β1 β2 β3

α1 H3, −3L H0, 0L H−2, 2Lα2 H2, −2L H−3, 3L H−3, 3Lα3 H2, −2L H2, −2L H1, −1L

結論を言えば,このようにして(一方がマクシミン基準を用い他方がミニマックス基準を用いて選んで)

得られた解はひとつの妥当な解になっている.なぜならば,相手の戦略が判明したときに現在の戦略が自分にとって最良の選択になっているからである.

24 Printed from the Mathematica Help Browser

©1988-2003 Wolfram Research, Inc. All rights reserved.

Page 25: 計画数理endeavor.eng.toyo.ac.jp/~yoshino/lecture/keikakusuuri/...« ≈ 1 ê 70 計画数理 最適化手法を学ぶ « ≈ 2 ê 70 シラバス 講義の目的、内容 環境建設分野の計画をシステマティックに、かつ合理的に分析するオペレーションズリサーチの技法につ

他の戦略はあるのか?

基準を逆にすると

前とは逆にプレーヤーAがミニマックス基準をとりプレーヤーBがマクシミン基準をとる場合を考えてみる.

β1 β2 β3

α1 H3, −3L H0, 0L H−2, 2Lα2 H2, −2L H−3, 3L H−3, 3Lα3 H2, −2L H2, −2L H1, −1L

結果として選ばれるのは,Ha2, b1L という組み合わせかHa3, b1L という組み合わせである.これは最良の選択になっているとは言えない.プレーヤーAには b1 が選ばれたときにより良い戦略があり,プレーヤーBにも a2 や a3 が選ばれたときにより良い戦略があるからである.

どこに失敗があったのか?

基準の選び方に失敗している.プレーヤーBについて考えてみる.マクシミン基準は「もっとも少ない利益となる可能性の中から最大値をとる戦略を選ぶ」ので,選択された戦略は正の利得でなければ意味がない.ところが,プレーヤーBが得た値は負の値となっている.これでは利益を見込んで損失を出していることを意味する結果となってしまう.従って,プレーヤーBはマクシミン基準を戦略を選ぶ基準として採用してはいけない.

両方がミニマックス基準を選択すると

プレーヤーBがマクシミン基準を選択することは得策ではないことがわかったので,両方がミニマックス基準を選択した場合を考える.

β1 β2 β3

α1 H3, −3L H0, 0L H−2, 2Lα2 H2, −2L H−3, 3L H−3, 3Lα3 H2, −2L H2, −2L H1, −1L

プレーヤーAが (a2 と a3 のふたつからどちらを選ぶのかを合理的に判断せずに) a2 を戦略として選ぶと,プレーヤーBは利得をあげることができる.しかし,繰り返し取引をする場合には,プレーヤーAはすぐさま戦略を a3 に代えてしまうと思われるので,プレーヤーBの利得は長くは続かないと思われる.

最良の戦略

ミニマックス原理に基づいて幾つかの戦略を調べた結果,プレーヤーAがマクシミン基準をとりプレーヤーBがミニマックス基準をとったときの戦略に行き着くことがわかった.それは,この状態のときに,「相手の戦略が判明したときに現在の戦略が自分にとって最良の選択になっている」からである.

« ≈ 35 ê 70

Printed from the Mathematica Help Browser 25

©1988-2003 Wolfram Research, Inc. All rights reserved.

Page 26: 計画数理endeavor.eng.toyo.ac.jp/~yoshino/lecture/keikakusuuri/...« ≈ 1 ê 70 計画数理 最適化手法を学ぶ « ≈ 2 ê 70 シラバス 講義の目的、内容 環境建設分野の計画をシステマティックに、かつ合理的に分析するオペレーションズリサーチの技法につ

Nash 均衡解与えられたゲームにおいて,「相手の戦略が判明したときに現在の戦略が互いにとって最良の選択になっ

ている」状態になっている戦略の組み合わせを「 Nash 均衡解( Nash equilibrium solution )」という.

ペイオフマトリクスが PAi j(および -PA

i j)で表される2人ゼロ和ゲームにおいて,戦略の組み合わせ Hai,b j) が Nash 均衡解であるというのは,

maxi min j PAi j = min j maxi PA

i j

または,

max j mini PAi j = mini max j PA

i j

が成立することである.逆に上の式が成立するとき「 Nash 均衡解が存在する」という. Nash 均衡解が決定されるとき,解が与えるペイオフを「ゲームの値」という.また,Nash 均衡解がひとつの戦略対に決定するゲームを純粋ゲーム( pure game)という.

例1で再び確認しておく.

β1 β2 β3 i行の最小値 i行の最大値α1 3 0 −2 −2 3α2 2 −3 −3 −3 2α3 2 2 1 1 2

j列の最大値 3 2 1j列の最小値 2 −3 −3

« ≈ 36 ê 70

混合ゲーム

例2について

以下のゲームにもミニマックス原理をあてはめてみる.

β1 β2

α1 H1, −1L H5, −5Lα2 H4, −4L H2, −2L

プレーヤーAは常に利益となり,プレーヤーBは常に損失となるので,プレーヤーAについてはマクシミン基準を,プレーヤーBにはミニマックス基準を適用するのが妥当である.その結果として得られる答えは,(a2, b1) である.しかし,これは純粋ゲームにはなっていない.

β1 β2

α1 H1, −1L H5, −5Lα2 H4, −4L H2, −2L

26 Printed from the Mathematica Help Browser

©1988-2003 Wolfram Research, Inc. All rights reserved.

Page 27: 計画数理endeavor.eng.toyo.ac.jp/~yoshino/lecture/keikakusuuri/...« ≈ 1 ê 70 計画数理 最適化手法を学ぶ « ≈ 2 ê 70 シラバス 講義の目的、内容 環境建設分野の計画をシステマティックに、かつ合理的に分析するオペレーションズリサーチの技法につ

Nash 均衡解が存在しないゲームを混合ゲーム(mixed game)という.

« ≈ 37 ê 70

混合ゲームの解(混合戦略)

混合戦略

混合ゲームの解を求めるために「混合戦略」を導入する.これは,戦略 ai Hi = 1, 2, ∫, m L を確率 piで選ぶ戦略である(ただし Si pi = 1).

混合戦略ではない戦略を「純粋戦略」と呼ぶ.

« ≈ 38 ê 70

例2の最適解

混合戦略による解の構成

混合戦略をとる場合の最適解を検討するために,再び例2について検討する.

β1 β2

α1 H1, −1L H5, −5Lα2 H4, −4L H2, −2L

β1 β2

α1 1 5α2 4 2

プレーヤーAが a1 という戦略をとる確率を p とすると,戦略 a2 をとる確率は H1 - pL である.同様に,プレーヤーBについて,それぞれの戦略をとる確率を q および H1 - qL とおく.このとき,2人ゼロ和ゲームなので,混合戦略によってプレーヤーAが得られる利得の期待値とプレーヤーBの損失の期待値は等しい.これを EHp, qL とおくと,EHp, qL = p q µ 1 + p H1 - qL µ 5 + H1 - pL q µ 4 + H1 - pL H1 - qL µ 2 = 2 H1 - 3 pL q + 2 + 3 p,

となる.

In[15]:= expected@p_, q_D := Hp q + p H1 − qL ∗ 5 + H1 − pL q ∗ 4 + H1 − pL H1 − qL ∗ 2 êê SimplifyL

In[16]:= Collect@expected@p, qD, qD

Out[16]= 2 + 3 p + H2 − 6 pL q

In[14]:= Collect@expected@p, qD, pD

Out[14]= 2 + p H3 − 6 qL + 2 q

プレーヤーAから見ると,プレーヤーBの戦略はわからないので,ふたつある戦略のいずれかをとったときの値である EHp, 0L と EHp, 1L に注目するしかない.これは, EHp, 0L = 4 - 3 p, EHp, 1L = 2 + 3 p である.

In[17]:= expected@p, 1D

In[18]:= expected@p, 0D

Printed from the Mathematica Help Browser 27

©1988-2003 Wolfram Research, Inc. All rights reserved.

Page 28: 計画数理endeavor.eng.toyo.ac.jp/~yoshino/lecture/keikakusuuri/...« ≈ 1 ê 70 計画数理 最適化手法を学ぶ « ≈ 2 ê 70 シラバス 講義の目的、内容 環境建設分野の計画をシステマティックに、かつ合理的に分析するオペレーションズリサーチの技法につ

この値の p 依存性を調べてみる.

In[22]:= Plot@8expected@p, 0D, expected@p, 1D<, 8p, 0, 1<D;

0.2 0.4 0.6 0.8 1

2

3

4

5

グラフはプレーヤーBが純粋戦略をとったとき(つまり,もっとも極端な混合戦略を選んだとき)の利得を表しており,プレーヤーBが混合戦略をとったときには,プレーヤーAは二つの線で挟まれる範囲にある利得を得ることになる.従って,ミニマックス戦略またはマクシミン戦略をとった場合のいずれの場合でもプレーヤーAの最適戦略は,グラフ上の交点になる.交点の座標は,

In[24]:= Solve@expected@p, 0D expected@p, 1D, pD

Out[24]= 99p →13==

と求められる.つまり,プレーヤーAの混合戦略は, a1 を確率 1/3 で選び, a2 を確率 2/3 で選ぶときに最適な戦略となる.このときの利得の期待値は,

In[34]:= expected@1ê 3, qD

Out[34]= 3

となり,相手の戦略によらない(交点だから当然である).同様にして,プレーヤーBの最適戦略は,

In[33]:= Solve@expected@0, qD expected@1, qD, qD

Out[33]= 99q →12==

と求められる.プレーヤーBの損失の期待値も,

In[35]:= expected@p, 1ê2D

Out[35]= 3

となり,プレーヤーAの利得の期待値と一致する.このゲームの場合,ゲームの値は3とすることが妥当だろう.

In[23]:= << Graphics`InequalityGraphics`

In[30]:= Options@InequalityPlot, ImageSizeD

Out[30]= 8ImageSize → Automatic<

28 Printed from the Mathematica Help Browser

©1988-2003 Wolfram Research, Inc. All rights reserved.

Page 29: 計画数理endeavor.eng.toyo.ac.jp/~yoshino/lecture/keikakusuuri/...« ≈ 1 ê 70 計画数理 最適化手法を学ぶ « ≈ 2 ê 70 シラバス 講義の目的、内容 環境建設分野の計画をシステマティックに、かつ合理的に分析するオペレーションズリサーチの技法につ

In[32]:= InequalityPlot@expected@p, 0D ≤ y ≤ expected@p, 1D,8p, 0, 1<, 8y, 0, 5< , ImageSize → 8200, 200<D;

0.050.10.150.20.250.32.5

33.5

4

0.050.10.150.20.250.32.5

33.5

4

« ≈ 39 ê 70

一般的な問題とその解法(線形計画法との関係)

問題設定

より一般的な混合戦略の求め方を見てみる.プレーヤーAの戦略が m 種類あり,プレーヤーBの戦略が n種類あるとする.プレーヤーAが取る混合戦略を pi Hi = 1, 2, ∫, mL とする(ただし ⁄ pi = 1).ペイオフマトリクスは m 行 n 列の行列として表される.この行列の要素を Pi j とおく.このとき,プレーヤーBが純粋戦略(n種類の中から1つを確率1で選び他を確率0で選ぶ)をとるときの期待値はプレーヤーBが選択する純粋戦略の数 n だけある.ゲームの値を v と設定すると,この問題は

p1 P11+ p2 P21+ p3 P31 + ∫+ pm Pm1¥ v,p1 P12+ p2 P22+ p3 P32 + ∫+ pm Pm2¥ v, ªp1 P1 n+ p2 P2 n+p3 P3 n + ∫+pm Pmn¥ v,p1 +p2 +p3 + ∫+ pm=1,のもとで, v の最小値を求める

変数変換

この問題は,p 'i = pi ê vと置き換えることによって,線形計画法で検討した問題に帰着する.

Printed from the Mathematica Help Browser 29

©1988-2003 Wolfram Research, Inc. All rights reserved.

Page 30: 計画数理endeavor.eng.toyo.ac.jp/~yoshino/lecture/keikakusuuri/...« ≈ 1 ê 70 計画数理 最適化手法を学ぶ « ≈ 2 ê 70 シラバス 講義の目的、内容 環境建設分野の計画をシステマティックに、かつ合理的に分析するオペレーションズリサーチの技法につ

p'1 P11+p'2 P21+ p'3 P31 + ∫+ p'm Pm1¥ 1,p'1 P12+p'2 P22+ p'3 P32 + ∫+ p'm Pm2¥ 1, ªp'1 P1 n+ p'2 P2 n+ p'3 P3 n + ∫+ p'm Pmn¥ 1,のもとで,p =1/v = p'1 + p'2 + p'3 + ∫+ p'mを最大にする p'i Hi=1, 2, ∫, mL とその値 v を求める.

このタイプの問題ならば既に解いているはずである.

« ≈ 40 ê 70

再び例2の場合例2の問題を線形計画法を応用して解を求めてみる.

β1 β2

α1 1 5α2 4 2

ペイオフマトリクスより,問題は,

p'1µ1+ p'2 µ4¥ 1,p'1µ5+ p'2 µ2¥ 1,のもとで,p=1êÓ =1µ p'1 +1µp'2を最大にする pi Hi=1, 2L とその値 v を求める.

となる.これは,

i

k

jjjjjjj1 4 1 0 15 2 0 1 11 1 0 0 0

y

{

zzzzzzz →

2 行× 1ê5 i

k

jjjjjjj1 4 1 0 11 2ê5 0 1ê5 1ê51 1 0 0 0

y

{

zzzzzzz →

1 行 − 2 行

i

k

jjjjjjj0 18ê5 1 −1ê5 4ê51 2ê5 0 1ê5 1ê51 1 0 0 0

y

{

zzzzzzz →

3 行 − 2 行

i

k

jjjjjjj0 18ê5 1 −1ê5 4ê51 2ê5 0 1ê5 1ê50 3ê5 0 −1ê5 −1ê5

y

{

zzzzzzz →

1 行× 5ê18

i

k

jjjjjjj0 1 5ê18 −1ê18 2ê91 2ê5 0 1ê5 1ê50 3ê5 0 −1ê5 −1ê5

y

{

zzzzzzz →

2 行 − 1 行 × 2ê5

i

k

jjjjjjj0 1 5ê18 −1ê18 2ê91 0 −1ê9 2ê9 1ê90 3ê5 0 −1ê5 −1ê5

y

{

zzzzzzz →

3 行 − 1 行× 3ê5

i

k

jjjjjjj0 1 5ê18 −1ê18 2ê91 0 −1ê9 2ê9 1ê90 0 −1ê6 −1ê6 −1ê3

y

{

zzzzzzz

30 Printed from the Mathematica Help Browser

©1988-2003 Wolfram Research, Inc. All rights reserved.

Page 31: 計画数理endeavor.eng.toyo.ac.jp/~yoshino/lecture/keikakusuuri/...« ≈ 1 ê 70 計画数理 最適化手法を学ぶ « ≈ 2 ê 70 シラバス 講義の目的、内容 環境建設分野の計画をシステマティックに、かつ合理的に分析するオペレーションズリサーチの技法につ

この結果は, v=1/(1/3)=3 がゲームの値であり, p1 = p '1 µ v = 1 ê 9 µ 3 = 1 ê 3, p2 = p '2 µ v = 2 ê 9 µ 3 = 2 ê 3 が最適な戦略であることを示している.

« ≈ 41 ê 70

今週のまとめ相手の戦略が判明しても自分の戦略を変えないような戦略の組み合わせをNash 均衡解といい,Nash 均衡解が存在するゲーム2人ゼロ和ゲームを純粋ゲームという.Nash 均衡解をもたない2人ゼロ和ゲームを混合ゲームという.混合ゲームの最適解は,それぞれの戦略を選ぶ確率を決定することで得られる.この確率を求める問題は線形計画法を用いることによって解くことができる.

« ≈ 42 ê 70

今週の課題以下のペイオフマトリックスをもつゲームの最適な混合戦略を求めよ.

In[59]:= LinearProgramming@81, 1, 1<, 883, 6, 8<, 84, 5, 3<,85, 4, 6<, 81, 0, 0<, 80, 1, 0<, 80, 0, 1<<, 81, 1, 1, 0, 0, 0<D êê Timing

Out[59]= 90. Second, 90,16

,1

18==

β1 β2 β3 minα1 3 4 5 3α2 6 5 4 4α3 8 3 6 3

max 8 5 6

解答

問題は以下のように書き換えられる.

p'1µ3+ p'2 µ6+ p'3 µ8¥ 1,p'1µ4+ p'2 µ5+ p'3 µ3¥ 1,p'1µ5+ p'2 µ4+ p'3 µ6¥ 1,のもとで,p=1ê v =1µ p'1 +1µp'2 +1µp'3を最大にする pi Hi=1, 2, 3L とその値 v を求める.

このとき,もととなる行列は以下の通り.

ikjjjjB F s

vB vF 0y{zzzz=

i

k

jjjjjjjjjjjjjjjj

3 6 8 1 0 0 1

4 5 3 0 1 0 1

5 4 6 0 0 1 1

1 1 1 0 0 0 0

y

{

zzzzzzzzzzzzzzzz

シンプレックス法を適用すると,

Printed from the Mathematica Help Browser 31

©1988-2003 Wolfram Research, Inc. All rights reserved.

Page 32: 計画数理endeavor.eng.toyo.ac.jp/~yoshino/lecture/keikakusuuri/...« ≈ 1 ê 70 計画数理 最適化手法を学ぶ « ≈ 2 ê 70 シラバス 講義の目的、内容 環境建設分野の計画をシステマティックに、かつ合理的に分析するオペレーションズリサーチの技法につ

i

k

jjjjjjjjjjjjjj

3 6 8 1 0 0 14 5 3 0 1 0 15 4 6 0 0 1 11 1 1 0 0 0 0

y

{

zzzzzzzzzzzzzz

Øøøøøøøøøøøøø

3 行µ 1 ê 5

i

k

jjjjjjjjjjjjjj

3 6 8 1 0 0 14 5 3 0 1 0 11 4 ê 5 6 ê 5 0 0 1 ê 5 1 ê 51 1 1 0 0 0 0

y

{

zzzzzzzzzzzzzz

Øøøøøøøøøøøøøøøøøøøø

1 行 - 3 行µ 3,2 行 - 3 行µ 4,4 行 - 3 行

i

k

jjjjjjjjjjjjjj

0 18 ê 5 22 ê 5 1 0 -3 ê 5 2 ê 50 9 ê 5 -9 ê 5 0 1 -4 ê 5 1 ê 51 4 ê 5 6 ê 5 0 0 1 ê5 1 ê 50 1 ê 5 -1 ê 5 0 0 -1 ê 5 -1 ê 5

y

{

zzzzzzzzzzzzzz

Øøøøøøøøøøøøøøø

1 行µ 5 ê 18

i

k

jjjjjjjjjjjjjj

0 1 11 ê 9 5 ê18 0 -1 ê 6 1 ê 90 9 ê 5 -9 ê5 0 1 -4 ê 5 1 ê 51 4 ê 5 6 ê 5 0 0 1 ê 5 1 ê 50 1 ê 5 -1 ê5 0 0 -1 ê 5 -1 ê 5

y

{

zzzzzzzzzzzzzz

Øøøøøøøøøøøøøøøøøøøøøøøø

2 行 - 1 行µ 9 ê 5,3 行 - 1 行µ 4 ê 5,4 行 - 1 行µ 1 ê 5

i

k

jjjjjjjjjjjjjj

0 1 11 ê 9 5 ê 18 0 -1 ê 6 1 ê 90 0 -4 -1 ê 2 1 -1 ê 2 01 0 2 ê 9 -2 ê 9 0 1 ê 3 1 ê 90 0 -4 ê9 -1 ê 18 0 -1 ê 6 -2 ê 9

y

{

zzzzzzzzzzzzzz

以上の結果から, v は v=1/p =1/(2/9)=9/2 のときに最小値をとる.このときの戦略は,p1 = p1 ' µ v = 1 ê 9 µ 9 ê 2 = 1 ê 2, p2 = p2 ' µ v = 0, p3 = p3 ' µ v = 1 ê 9 µ 9 ê 2 = 1 ê 2 という混合戦略である.

しかし,これは唯一の解ではないらしい.なぜなら,一般に束縛条件の数が非ゼロな変数の数と等しくなるが,結果はそうはなっていないからである.実際に Mathematica が導出した答えはゲームの値こそ同じものの,異なる戦略(P1 = 0, P2 = 3 ê4, P3 = 1 ê 4)を示している.

« ≈ 43 ê 70

非協力ゲーム(囚人のジレンマ)「囚人のジレンマ」はゲーム理論の中でも有名な話題である.ここでは,その特徴と解の性質について議論してゆく.

« ≈ 44 ê 70

例3の場合以下のゲームについて考えてみよう.プレーヤーは双方とも C と D という2種類の戦略を持っている非ゼロ和ゲームである.

C DC H2, 2L H−5, 3LD H3, −5L H−1, −1L

Nash 均衡解は (D, D) である.しかし, Nash 均衡解では双方が損をしてしまい,ゲームの価値がない.この状態を「囚人のジレンマ」という.

もともとの囚人のジレンマとは次のような状態をいう.

32 Printed from the Mathematica Help Browser

©1988-2003 Wolfram Research, Inc. All rights reserved.

Page 33: 計画数理endeavor.eng.toyo.ac.jp/~yoshino/lecture/keikakusuuri/...« ≈ 1 ê 70 計画数理 最適化手法を学ぶ « ≈ 2 ê 70 シラバス 講義の目的、内容 環境建設分野の計画をシステマティックに、かつ合理的に分析するオペレーションズリサーチの技法につ

ふたりの犯罪者が囚人となっている.ふたりは共犯であるが,双方とも黙秘を続けており事件の全容は解明されていない(嫌疑不十分).囚人たちは別々に取り調べ官から取引を持ちかけられる.その内容は,「もしも犯罪の全容について証言するなら,今の懲役を短くし,仲間の懲役が長くしよう(情状酌量).もしも君が話さない間にもう一方が証言をしたら,君の懲役が長くなり仲間の懲役が短くなる.もしも両方が証言したら二人とも今よりももっと思い刑になる」.さぁ,どうするべきだろうか?

« ≈ 45 ê 70

囚人のジレンマ(Prisoner's Dilemma)囚人のジレンマは一般に以下のペイオフマトリックスで表される変数の大小関係が次のような関係にあるものをいう.S<P<R<T また,第二の条件として, 2 R ¥S+T (裏切りあっても状況は改善されない)が要求される.

Cooperation H協力L

DefectionH裏切りL

Cooperaton HR, RL HS, TLDefection HT, SL HP, PL

それぞれの記号の意味は以下の通り. R: Reward (報償) , S: Saint (聖人) T: Temptation (誘惑), P:Punishment (制裁)

ここで,R=T+S, r=-S/R,S<0 , P=0 という縛りをいれると, r は利益に対するコストの比をあらわす.そのときのペイオフマトリクスは,以下の表に比例定数 R をかけたものとなる.

Cooperation H協力L

DefectionH裏切りL

Cooperaton H1, 1L H−r, 1 + rLDefection H1 + r, −rL H0, 0L

« ≈ 46 ê 70

囚人のジレンマの適用例(松原より)以下のような例が考えられる.

Cooperation H協力L

DefectionH裏切りL

Cooperaton HR, RL HS, TLDefection HT, SL HP, PL

適用例 プレ −ヤ − R S T P

軍備競争 国家 軍縮協定 弱小化 協定違反強大化 軍拡・国際緊張

環境問題 企業 環境保護 競争力低下 競争力増強 環境悪化

税金 国民 良好財政 不公平負担 不払い・軽負担 財政悪化

生態系 生物種 共存共栄 種の絶滅 種の繁栄 種の減少

Printed from the Mathematica Help Browser 33

©1988-2003 Wolfram Research, Inc. All rights reserved.

Page 34: 計画数理endeavor.eng.toyo.ac.jp/~yoshino/lecture/keikakusuuri/...« ≈ 1 ê 70 計画数理 最適化手法を学ぶ « ≈ 2 ê 70 シラバス 講義の目的、内容 環境建設分野の計画をシステマティックに、かつ合理的に分析するオペレーションズリサーチの技法につ

このように,さまざまな状況にみられる状況を表しているために,囚人のジレンマは,応用数学,経済学,社会学,生態学から注目されている数理モデルである.

« ≈ 47 ê 70

Axelrod の実験(Itertated Prisoner's Dilemma)Axelrod が1980 年ごろに行った有名な実験.「でたらめ」を含む15のアルゴリズムが総当り戦を1試合が200回であるゲームを5試合行い,その得点を競った.ゲームに参加した代表的なアルゴリズムを以下に示す.

JOSS: 最初は協調.相手が裏切ると次回は裏切り.相手が協調したら9割協調,1割裏切り.

TFT: 最初は協調.あとは前回の相手の手と同じ.

Random: でたらめ.

Friedman: 最初は協調.相手が一度でも裏切ると裏切り続ける.

Downing: 自分が協調した回の次に相手が協調する確率を見積もり,自分が裏切った回の次に相手が協調する確率を見積もる.ふたつの確率をもとにその確率どおりに相手が動くものと仮定して利得が最大になるように行動する.

このゲームにおけるペイオフマトリックスは以下の通り.

Cooperation DefectionCooperaton H3, 3L H0, 5LDefection H5, 0L H1, 1L

結論は…

« ≈ 48 ê 70

空間的に拡張された囚人のジレンマパワーポイントにまとめたファイル(http://endeavor.eng.toyo.ac.jp/~yoshino/works/prisoner/katachi-0406.pdf)を参照しよう.

« ≈ 49 ê 70

今週のまとめ.囚人のジレンマは自然界・社会に見られるさまざま関係を簡単化したモデルとして注目されてきた.

・Nash 均衡解を求めると損な利害関係が選ばれるが,有限回の繰り返しゲームを行うと「しっぺ返し」という協調を基本とした「優しい戦略」が最良の戦略らしいことが知られている.

・空間的に拡張された囚人のジレンマでは,協調戦略はクラスタリング(集まる)ことによって生き延びようとする.

« ≈ 50 ê 70

34 Printed from the Mathematica Help Browser

©1988-2003 Wolfram Research, Inc. All rights reserved.

Page 35: 計画数理endeavor.eng.toyo.ac.jp/~yoshino/lecture/keikakusuuri/...« ≈ 1 ê 70 計画数理 最適化手法を学ぶ « ≈ 2 ê 70 シラバス 講義の目的、内容 環境建設分野の計画をシステマティックに、かつ合理的に分析するオペレーションズリサーチの技法につ

今週の課題課題1

もしも自分がAxelrod の実験に参加するとしたらどのような戦略をとるかを考えなさい.理由も述べること.

課題2

自分の身の回りで起こった囚人のジレンマについて説明しなさい.

« ≈ 51 ê 70

今週のテーマ:動的計画法の基礎動的計画法は最適化問題(最大値最小値問題)に頻繁に用いられる方法である.この方法は,簡単に言えば,「与えられた問題を小さな問題に分割することを繰り返して解ける問題を作り,その解を積み上げて最終的な解をえる」方法である.ここではグラフ理論に関する言葉の定義を学んだあとで,動的計画法の基礎を学ぶ.

« ≈ 52 ê 70

グラフ理論の初歩

グラフとは

頂点(vertex, vertices)と頂点間を連結する(connect)辺(edge)によって作られる図形をグラフ(graph)と呼ぶ.グラフ理論において重要なのは,頂点間が連結されているかどうかだけであり,頂点の位置は特に重要ではない.グラフ理論は,ものともののつながりを解析するときに良く使われる.例えば,生態系における捕食者-被食者の関係や,社会における流通現象,交通ネットワークなどに用いられる.

グラフの例

In[1]:= << DiscreteMath`Combinatorica`

完全グラフ(すべての頂点間に辺が存在している)

Printed from the Mathematica Help Browser 35

©1988-2003 Wolfram Research, Inc. All rights reserved.

Page 36: 計画数理endeavor.eng.toyo.ac.jp/~yoshino/lecture/keikakusuuri/...« ≈ 1 ê 70 計画数理 最適化手法を学ぶ « ≈ 2 ê 70 シラバス 講義の目的、内容 環境建設分野の計画をシステマティックに、かつ合理的に分析するオペレーションズリサーチの技法につ

In[9]:= ShowGraph@CompleteGraph@15D, ImageSize → 150, VertexColor → RedD;

In[8]:= Options@ShowGraphD

Out[8]= 8VertexColor → RGBColor@0., 0., 0.D, VertexStyle → Disk@NormalD,VertexNumber → False, VertexNumberColor → RGBColor@0., 0., 0.D,VertexNumberPosition → LowerLeft, VertexLabel → False,VertexLabelColor → RGBColor@0., 0., 0.D, VertexLabelPosition → UpperRight,PlotRange → Normal, AspectRatio → 1, EdgeColor → RGBColor@0., 0., 0.D,EdgeStyle → Normal, EdgeLabel → False, EdgeLabelColor → RGBColor@0., 0., 0.D,EdgeLabelPosition → LowerLeft, LoopPosition → UpperRight, EdgeDirection → False<

木グラフ(頂点数から1を引いた数だけの辺があり,すべてが連結されている)

In[11]:= ShowGraphArray@8CompleteKaryTree@15, 2D, RandomTree@15D<, VertexColor → RedD

Out[11]= GraphicsArray

車輪グラフ

36 Printed from the Mathematica Help Browser

©1988-2003 Wolfram Research, Inc. All rights reserved.

Page 37: 計画数理endeavor.eng.toyo.ac.jp/~yoshino/lecture/keikakusuuri/...« ≈ 1 ê 70 計画数理 最適化手法を学ぶ « ≈ 2 ê 70 シラバス 講義の目的、内容 環境建設分野の計画をシステマティックに、かつ合理的に分析するオペレーションズリサーチの技法につ

In[12]:= ShowGraph@Wheel@15D, VertexColor → Red, ImageSize → 150D;

ランダムグラフ

In[13]:= ShowGraph@RandomGraph@15, 0.5D, VertexColor → Red, ImageSize → 150D;

« ≈ 53 ê 70

無向グラフと有向グラフ辺に向きがないグラフを無向グラフという.辺に向きがあるグラフを有向グラフという.

In[4]:= ShowGraphArray@8Wheel@15D, OrientGraph@Wheel@15DD<, ImageSize → 200D;

In[5]:= grph = RandomGraph@10, 0.6D;

Printed from the Mathematica Help Browser 37

©1988-2003 Wolfram Research, Inc. All rights reserved.

Page 38: 計画数理endeavor.eng.toyo.ac.jp/~yoshino/lecture/keikakusuuri/...« ≈ 1 ê 70 計画数理 最適化手法を学ぶ « ≈ 2 ê 70 シラバス 講義の目的、内容 環境建設分野の計画をシステマティックに、かつ合理的に分析するオペレーションズリサーチの技法につ

In[6]:= ShowGraphArray@8grph, OrientGraph@grphD<, ImageSize → 400D;

« ≈ 54 ê 70

動的計画法

与えられた問題をさらに細かい問題に分けてとき,その解を用いて最初の問題を作り上げる問題解法を「動的計画法」という.

« ≈ 55 ê 70

例題(最短経路問題)以下のような有向グラフがある.例えば,頂点は場所であり辺は頂点1から頂点9までの道と考えてみる.有向であることは,矢印方向の行き方は検討すべきなのだが,逆方向の行き方は理にかなわないので検討していないものであることを意味している.そして,グラフ間の数字は頂点間の距離を表しているとする.

このとき,頂点1から頂点9まで行く最短の行き方とそれにかかる距離を求めなさい(解:距離は19になる).

1

2

3

4

5

6

7

8 9

1

2

6

12

3

4

7

4 15

7

3

10

715

3

« ≈ 56 ê 70

38 Printed from the Mathematica Help Browser

©1988-2003 Wolfram Research, Inc. All rights reserved.

Page 39: 計画数理endeavor.eng.toyo.ac.jp/~yoshino/lecture/keikakusuuri/...« ≈ 1 ê 70 計画数理 最適化手法を学ぶ « ≈ 2 ê 70 シラバス 講義の目的、内容 環境建設分野の計画をシステマティックに、かつ合理的に分析するオペレーションズリサーチの技法につ

解法頂点iから頂点9に到達するまでの最短距離を fi とおく.そして, f9 = 0 と定義する.

次に ti j を頂点 i から頂点 j までの距離とする.ただし連結されてない2点間では ti j = ¶ とする.このとき, fi について,

fi c ti j + f j

が成立する.つまり,頂点 i から頂点9まで行く場合,頂点 i から頂点 j まで行き,頂点 j から頂点9まで行くことになる.したがって,すべての j のうち,右辺が一番小さい値が fi になる.

fi = Minj

8 ti j + f j}

そこで,点9に近いところから順に fi を求めることにする.これは明らかに, f7 = 3, f8 = 10 である.

1

2

3

4

5

6

7

8 9

1

2

6

12

3

4

7

4 15

7

3

10

715

3

次に頂点5について考えてみると,頂点5からは頂点7に行く以外ないので f5 = 7 + f7 = 10.

頂点6については頂点8を通る経路と直接頂点9へ行く経路がある.つまり,

f6 = Min 87 + f8, 15< = Min 817, 15< = 15

と,直接行く経路が近いことがわかる.同様にして,

f4 = Min 84 + f5, 3 + f6, 15 + f7, 7 + f8}=Min{14, 18, 17, 18}=14

となることがわかった.ここまでをまとめると以下のようになる.

Printed from the Mathematica Help Browser 39

©1988-2003 Wolfram Research, Inc. All rights reserved.

Page 40: 計画数理endeavor.eng.toyo.ac.jp/~yoshino/lecture/keikakusuuri/...« ≈ 1 ê 70 計画数理 最適化手法を学ぶ « ≈ 2 ê 70 シラバス 講義の目的、内容 環境建設分野の計画をシステマティックに、かつ合理的に分析するオペレーションズリサーチの技法につ

1

2

3

4

5

6

7

8 9

1

2

6

12

3

4

7

4 3

10

15

さらに,頂点2と頂点3について考えてみると,

f2 = Min 812 + f5, 6 + f4 < = Min 822, 20< = 20, f3 = Min 83 + f4, 4 + f6 < = Min 817, 19< = 17

最終的に f1 は,

f2 = Min 81 + f2, 2 + f3 < = Min 821, 19< = 19

1

2

3

4

5

6

7

8 9

2

6

3

7

4 3

10

15

最短経路問題を解くためには,終点に近い部分から順に補助的な最短経路問題を順にといてゆけばよい.上で得られたグラフはすべての頂点からの最短経路が示されている.

« ≈ 1 ê 1

例題(最長経路問題)前の例題について,最長経路をもとめなさい(解:距離は27になる).例えば,これを工程表と読み替えてみるとよいだろう.

40 Printed from the Mathematica Help Browser

©1988-2003 Wolfram Research, Inc. All rights reserved.

Page 41: 計画数理endeavor.eng.toyo.ac.jp/~yoshino/lecture/keikakusuuri/...« ≈ 1 ê 70 計画数理 最適化手法を学ぶ « ≈ 2 ê 70 シラバス 講義の目的、内容 環境建設分野の計画をシステマティックに、かつ合理的に分析するオペレーションズリサーチの技法につ

1

2

3

4

5

6

7

8 9

1

2

6

12

3

4

7

4 15

7

3

10

715

3

« ≈ 58 ê 70

解法頂点1から頂点iまでの距離を fi とおく.そして, f1 = 0 と定義する.

次に ti j を頂点 i から頂点 j までの距離とする.ただし連結されてない2点間では ti j = 0 とする.このとき, f j について,

f j s fi + ti j

が成立する.つまり,頂点1から頂点 j まで行く場合,頂点1から頂点 i まで行き,頂点i から頂点 j まで行くことになる.したがって,すべての i のうち,右辺が一番小さい値が f j になる.

f j = Maxi

8 fi + ti j}

そこで,点1に近いところから順に fi を求めることにする.これは明らかに, f2 = 1, f3 = 2 である.

1

2

3

4

5

6

7

8 9

1

2

6

12

3

4

7

4 15

7

3

10

715

3

Printed from the Mathematica Help Browser 41

©1988-2003 Wolfram Research, Inc. All rights reserved.

Page 42: 計画数理endeavor.eng.toyo.ac.jp/~yoshino/lecture/keikakusuuri/...« ≈ 1 ê 70 計画数理 最適化手法を学ぶ « ≈ 2 ê 70 シラバス 講義の目的、内容 環境建設分野の計画をシステマティックに、かつ合理的に分析するオペレーションズリサーチの技法につ

次 に 頂 点 4 に つ い て 考 え て み る と , 頂 点 2 か ら 頂 点 3 か ら の 2 通 り が あ る の で ,f4 = Max 8 f2 + 6, f3 + 3< = Max 81 + 6, 2 + 3< = 7.

頂点5については頂点2を通る経路と頂点4を通る経路がある.

f5 = Max 8 f2 + 12, f4 + 4< = Max 81 + 12, 7 + 4< = 13

同様にして,

f6 = Max 8 f3 + 4, f4 + 3< = Max 82 + 4, 7 + 3< = 10

となることがわかった.ここまでをまとめると以下のようになる.

1

2

3

4

5

6

7

8 9

1

2

6

12 7

15

7

3

10

715

3

さらに,頂点7と頂点8について考えてみると,

f7 = Max 8 f4 + 15, f5 + 7< = Max 87 + 15, 13 + 7< = 22, f8 = Max 8 f4 + 7, f6 + 7 < = Max 87 + 7, 10 + 7< = 17

最終的に f9 は,

f9 = Max 8 f6 + 15, f7 + 3, f8 + 10 < = Max 810 + 15, 22 + 3, 17 + 10 < = 27

1

2

3

4

5

6

7

8 9

1

2

6

12

15

10

73

42 Printed from the Mathematica Help Browser

©1988-2003 Wolfram Research, Inc. All rights reserved.

Page 43: 計画数理endeavor.eng.toyo.ac.jp/~yoshino/lecture/keikakusuuri/...« ≈ 1 ê 70 計画数理 最適化手法を学ぶ « ≈ 2 ê 70 シラバス 講義の目的、内容 環境建設分野の計画をシステマティックに、かつ合理的に分析するオペレーションズリサーチの技法につ

最長経路問題を解くためには,始点に近い部分から順に補助的な最長経路問題を順にといてゆけばよい.このようにして得られた経路はクリティカルパス(critical path)と呼ばれている.上で得られたグラフはすべての頂点までの最長経路が示されている.

« ≈ 59 ê 70

今週のまとめ有向グラフにおける最短経路問題および最長経路問題について検討した.これらの問題を解くためには,より簡単な複数の問題に分解してその問題の解を利用すればよい.

« ≈ 60 ê 70

今週の課題以下に示すネットワークにおける最短経路と最長経路を求めなさい.

1

2

3

4

5

6

7

4

2

5

6

3

8

4 3

14

9

解答(最短経路問題のみ)

f7 = 0, f6 = 1, f5 = 3, f4 = Min 84 + f5, 4 + f6, 9< = Min 84 + 3, 4 + 1, 9< = 5,

f3 = Min 83 + f4, 8 + f6< = Min 83 + 5, 8 + 1< = 8, f2 = Min 85 + f4, 6 + f5< = Min 85 + 5, 6 + 3< = 9,

f1 = Min 84 + f2, 2 + f3< = Min 84 + 9, 2 + 8< = 10.

従って, 1Ø3Ø4Ø6Ø7 で,10 が最小値である.

(最長経路問題の答えはあとに示すように??である)

« ≈ 61 ê 70

Printed from the Mathematica Help Browser 43

©1988-2003 Wolfram Research, Inc. All rights reserved.

Page 44: 計画数理endeavor.eng.toyo.ac.jp/~yoshino/lecture/keikakusuuri/...« ≈ 1 ê 70 計画数理 最適化手法を学ぶ « ≈ 2 ê 70 シラバス 講義の目的、内容 環境建設分野の計画をシステマティックに、かつ合理的に分析するオペレーションズリサーチの技法につ

今週のテーマ:動的計画法のアルゴリズム前回は動的計画法の考え方について紹介した.今回は,実際のアルゴリズムとその応用について紹介する.

« ≈ 62 ê 70

再帰法(Recurring)の性質前回説明した方法は,

1.埋め込み,

2.汎関数方程式,

3.反復固定,

4.最適性の原理,

とういう4つの特徴によって説明することができる.

埋め込み(embedding)

検討している問題は,ひとつの頂点ごとにひとつの問題となっているような最適問題の集まりとして埋め込まれている.

汎関数方程式(functional equation)

これらの最適問題の解の集合は汎関数方程式(関数の関数についての方程式)によって特徴付けられる.

再帰確定(recursive fixing)

ここで考えている汎関数方程式の解は再帰確定と呼ばれる過程によって計算することができる.これは,さまざまなノードにおける方程式の解を評価することによって構成されている.

最適性の原理(principle of optimality)

あるノードから別のノードまでの最適解を考えるとき,その解の途中にあるすべての経路も最適解になっている.

« ≈ 63 ê 70

再帰法のアルゴリズム(最長経路問題の場合)上で使われたアルゴリズム(計算方法)は以下のようにまとめられる.

1.v1 = 0 そして v j = -¶ を j = 2, 3, ∫, N について設定する.

2. j = 2, 3, ∫, N について,以下の操作を繰り返す.

44 Printed from the Mathematica Help Browser

©1988-2003 Wolfram Research, Inc. All rights reserved.

Page 45: 計画数理endeavor.eng.toyo.ac.jp/~yoshino/lecture/keikakusuuri/...« ≈ 1 ê 70 計画数理 最適化手法を学ぶ « ≈ 2 ê 70 シラバス 講義の目的、内容 環境建設分野の計画をシステマティックに、かつ合理的に分析するオペレーションズリサーチの技法につ

2-1.i = 1, 2, ∫, j - 1 について,以下の操作を繰り返す.

2-1-1. max 8v j, vi + ti j< を v j に代入.

始まり

j=2

v1=0, vj=-大きい数(j=2,3,…,N)

j≦Nか?

i=1

i≦j-1か?

vj=max{vj, vi+tij}

i=i+1

j=j+1

終わりNo

Yes

YesNo

« ≈ 64 ê 70

もうひとつのアルゴリズム:Reachingこの問題には Reaching と呼ばれるもうひとつ探索アルゴリズムがある.全部の解をいちどに求めようとするものである.このアルゴリズムは以下のようにまとめられる.

1.v1 = 0 そして v j = -¶ を j = 2, 3, ∫, N について設定する.

2.i = 1, 2, ∫, N - 1 について,以下の操作を繰り返す.

2-1. j = i + 1, 2, ∫, N について,以下の操作を繰り返す.

2-1-1. max 8v j, vi + ti j< を v j に代入.

Printed from the Mathematica Help Browser 45

©1988-2003 Wolfram Research, Inc. All rights reserved.

Page 46: 計画数理endeavor.eng.toyo.ac.jp/~yoshino/lecture/keikakusuuri/...« ≈ 1 ê 70 計画数理 最適化手法を学ぶ « ≈ 2 ê 70 シラバス 講義の目的、内容 環境建設分野の計画をシステマティックに、かつ合理的に分析するオペレーションズリサーチの技法につ

始まり

i=1

v1=0, vj=-大きい数(j=2,3,…,N)

i≦N-1か?

j=i+1

j≦Nか?

vj=max{vj, vi+tij}

j=j+1

i=i+1

終わりNo

Yes

YesNo

« ≈ 65 ê 70

Reaching による例題(最大経路問題)の解法

1

2

3

4

5

6

7

8 9

1

2

6

12

3

4

7

4 15

7

3

10

715

3

(内側のループは全部確認する必要がなく,連結している部分だけを確認すればよい)

f1 = 0, f2 = f3 = f4 = f5 = f6 = f7 = f8 = f9 = -¶ とおく.

i=1のとき

f2 = Max 8 f2 , f1 + t12< = Max 8-¶, 0 + 1< = 1 , f3 = Max 8 f3 , f1 + t13< = Max 8-¶, 0 + 2< = 2 , (これ以上連結がないのでこれで終了)

i=2のとき

(t23が定義されてないので飛ばして)

46 Printed from the Mathematica Help Browser

©1988-2003 Wolfram Research, Inc. All rights reserved.

Page 47: 計画数理endeavor.eng.toyo.ac.jp/~yoshino/lecture/keikakusuuri/...« ≈ 1 ê 70 計画数理 最適化手法を学ぶ « ≈ 2 ê 70 シラバス 講義の目的、内容 環境建設分野の計画をシステマティックに、かつ合理的に分析するオペレーションズリサーチの技法につ

f4 = Max 8 f4 , f2 + t24< = Max 8-¶, 1 + 6< = 7 ,

f5 = Max 8 f5 , f2 + t25< = Max 8-¶, 1 + 12< = 13 , (これ以上連結がないので終了)

i=3のとき

f4 = Max 8 f4 , f3 + t34< = Max 87, 2 + 3< = 7 ,

f6 = Max 8 f6 , f3 + t36< = Max 8-¶, 2 + 4< = 6 ,

i=4のとき

f5 = Max 8 f5 , f4 + t45< = Max 813, 7 + 4< = 13 ,

f6 = Max 8 f6 , f4 + t46< = Max 86, 7 + 3< = 10 ,

f7 = Max 8 f7 , f4 + t47< = Max 8-¶, 7 + 15< = 22 ,

f8 = Max 8 f8 , f4 + t48< = Max 8-¶, 7 + 7< = 14 ,

i=5のとき

f7 = Max 8 f7 , f5 + t57< = Max 8-¶, 7 + 15< = 22 ,

i=6のとき

f8 = Max 8 f8 , f6 + t68< = Max 814, 10 + 7< = 17 ,

f9 = Max 8 f9 , f6 + t69< = Max 814, 10 + 15< = 25 ,

i=7のとき

f9 = Max 8 f9 , f7 + t79< = Max 825, 22 + 3< = 25 ,

i=8のとき

f9 = Max 8 f9 , f8 + t89< = Max 825, 17 + 10< = 27

« ≈ 66 ê 70

Mathematica らしくない実装(Recurring)Mathematica は関数プログラミングで書くべき言語なのだが,例題を解くために構造化プログラミング(?)で上記のアルゴリズムを実装してみる.

Printed from the Mathematica Help Browser 47

©1988-2003 Wolfram Research, Inc. All rights reserved.

Page 48: 計画数理endeavor.eng.toyo.ac.jp/~yoshino/lecture/keikakusuuri/...« ≈ 1 ê 70 計画数理 最適化手法を学ぶ « ≈ 2 ê 70 シラバス 講義の目的、内容 環境建設分野の計画をシステマティックに、かつ合理的に分析するオペレーションズリサーチの技法につ

1

2

3

4

5

6

7

8 9

1

2

6

12

3

4

7

4 15

7

3

10

715

3

In[1]:= tij = 880, 1, 2, a, a, a, a, a, a<,8a, 0, a, 6, 12, a, a, a, a<,8a, a, 0, 3, a, 4, a, a, a<,8a, a, a, 0, 4, 3, 15, 7, a<,8a, a, a, a, 0, a, 7, a, a<,8a, a, a, a, a, 0, a, 7, 15<,8a, a, a, a, a, a, 0, a, 3<,8a, a, a, a, a, a, a, 0, 10<,8a, a, a, a, a, a, a, a, 0<

<;

In[2]:= tij ê. a → −100 êê MatrixForm

Out[2]//MatrixForm=

i

k

jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj

0 1 2 −100 −100 −100 −100 −100 −100−100 0 −100 6 12 −100 −100 −100 −100−100 −100 0 3 −100 4 −100 −100 −100−100 −100 −100 0 4 3 15 7 −100−100 −100 −100 −100 0 −100 7 −100 −100−100 −100 −100 −100 −100 0 −100 7 15−100 −100 −100 −100 −100 −100 0 −100 3−100 −100 −100 −100 −100 −100 −100 0 10−100 −100 −100 −100 −100 −100 −100 −100 0

y

{

zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz

最長経路問題の場合

In[4]:= recurringMaxPath@t_D := Module@8v, n<,n = Length@t@@1DDD;Array@v, nD;v@1D = 0;Do@v@jD = −100, 8j, 2, n<D;Do@

Do@v@jD = Max@8v@jD, v@iD + t@@i, jDD<D, 8i, 1, j − 1<D;, 8j, 2, n<DDo@Print@j, " ", v@jDD, 8j, 2, n<D;

D

48 Printed from the Mathematica Help Browser

©1988-2003 Wolfram Research, Inc. All rights reserved.

Page 49: 計画数理endeavor.eng.toyo.ac.jp/~yoshino/lecture/keikakusuuri/...« ≈ 1 ê 70 計画数理 最適化手法を学ぶ « ≈ 2 ê 70 シラバス 講義の目的、内容 環境建設分野の計画をシステマティックに、かつ合理的に分析するオペレーションズリサーチの技法につ

In[5]:= recurringMaxPath@Htij ê. a → −1000LD êê Timing

2 1

3 2

4 7

5 13

6 10

7 22

8 17

9 27

Out[5]= 80. Second, Null<

最短経路問題の場合(ただし各頂点からゴールまでの値を示してる)

In[2]:= recurringMinPath@t_D := Module@8v, n<,n = Length@t@@1DDD;Array@v, nD;v@1D = 0;Do@v@jD = 100, 8j, 2, n<D;Do@

Do@v@jD = Min@8v@jD, v@iD + t@@i, jDD<D, 8i, 1, j − 1<D;, 8j, 2, n<DDo@Print@j, " ", v@jDD, 8j, 2, n<D;

D

In[3]:= recurringMinPath@Htij ê. a → 1000LD êê Timing

2 1

3 2

4 5

5 9

6 6

7 16

8 12

9 19

Out[3]= 80. Second, Null<

ちなみに課題を解いてみると,

Printed from the Mathematica Help Browser 49

©1988-2003 Wolfram Research, Inc. All rights reserved.

Page 50: 計画数理endeavor.eng.toyo.ac.jp/~yoshino/lecture/keikakusuuri/...« ≈ 1 ê 70 計画数理 最適化手法を学ぶ « ≈ 2 ê 70 シラバス 講義の目的、内容 環境建設分野の計画をシステマティックに、かつ合理的に分析するオペレーションズリサーチの技法につ

1

2

3

4

5

6

7

4

2

5

6

3

8

4 3

14

9

In[17]:= tij = 880, 4, 2, a, a, a, a<,8a, 0, a, 5, 6, a, a<,8a, a, 0, 3, a, 8, a<,8a, a, a, 0, 4, 4, 9<,8a, a, a, a, 0, a, 3<,8a, a, a, a, a, 0, 1<,8a, a, a, a, a, a, 0<<;

In[18]:= recurringMinPath@Htij ê. a → 1000LD êê Timing

2 4

3 2

4 5

5 9

6 9

7 10

Out[18]= 80.01 Second, Null<

In[12]:= recurringMaxPath@Htij ê. a → −1000LD êê Timing

2 4

3 2

4 9

5 13

6 13

7 16

Out[12]= 80. Second, Null<

50 Printed from the Mathematica Help Browser

©1988-2003 Wolfram Research, Inc. All rights reserved.

Page 51: 計画数理endeavor.eng.toyo.ac.jp/~yoshino/lecture/keikakusuuri/...« ≈ 1 ê 70 計画数理 最適化手法を学ぶ « ≈ 2 ê 70 シラバス 講義の目的、内容 環境建設分野の計画をシステマティックに、かつ合理的に分析するオペレーションズリサーチの技法につ

In[10]:= Remove@reccuringMaxPathD

« ≈ 67 ê 70

Mathematica らしくない実装(Reaching)同様にして Reaching についても Mathematica で実装してみる.

In[6]:= reachingMaxPath@t_D := Module@8v, n<,n = Length@t@@1DDD;Array@v, nD;v@1D = 0;Do@v@jD = −100, 8j, 2, n<D;Do@

Do@v@jD = Max@8v@jD, v@iD + t@@i, jDD<D, 8j, i + 1, n<D;, 8i, 1, n − 1<DDo@Print@j, " ", v@jDD, 8j, 2, n<D;

D

In[7]:= reachingMaxPath@Htij ê. a → −1000LD êê Timing

2 1

3 2

4 7

5 13

6 10

7 22

8 17

9 27

Out[7]= 80. Second, Null<

« ≈ 68 ê 70

どちらのアルゴリズムの方が優秀か?どちらのアルゴリズムがより優秀なのかを確認するために,例題(最長経路問題)において,何回のチェックを行っているのかを確認する.

Printed from the Mathematica Help Browser 51

©1988-2003 Wolfram Research, Inc. All rights reserved.

Page 52: 計画数理endeavor.eng.toyo.ac.jp/~yoshino/lecture/keikakusuuri/...« ≈ 1 ê 70 計画数理 最適化手法を学ぶ « ≈ 2 ê 70 シラバス 講義の目的、内容 環境建設分野の計画をシステマティックに、かつ合理的に分析するオペレーションズリサーチの技法につ

Reccuring (常に新しい頂点をチェックしてゆく)

ステップ数 →

頂点番号↓⏐⏐⏐⏐

0 1 2 3 4 5 6 7 8

1 0 0 0 0 0 0 0 0 02 −∞ 1 1 1 1 1 1 1 13 −∞ −∞ 2 2 2 2 2 2 24 −∞ −∞ −∞ 7 7 7 7 7 75 −∞ −∞ −∞ −∞ 13 13 13 13 136 −∞ −∞ −∞ −∞ −∞ 10 10 10 107 −∞ −∞ −∞ −∞ −∞ −∞ 22 22 228 −∞ −∞ −∞ −∞ −∞ −∞ −∞ 17 179 −∞ −∞ −∞ −∞ −∞ −∞ −∞ −∞ 27

確認回数

H未連結まで含むL0 1

123

46

610

815

1021

1228

1536

Reaching(赤は実際に代入操作を行った場所を示す)

ステップ数 →

頂点番号↓⏐⏐⏐⏐

0 1 2 3 4 5 6 7 8

1 0 0 0 0 0 0 0 0 02 −∞ 1 1 1 1 1 1 1 13 −∞ 2 2 2 2 2 2 2 24 −∞ −∞ 7 7 7 7 7 7 75 −∞ −∞ 13 13 13 13 13 13 136 −∞ −∞ −∞ 6 10 10 10 10 107 −∞ −∞ −∞ −∞ 22 22 22 22 228 −∞ −∞ −∞ −∞ 14 14 17 17 179 −∞ −∞ −∞ −∞ −∞ −∞ 25 25 27

確認回数

H未連結まで含むL0 2

8415

621

1026

1130

1333

1435

1536

結論

表からわかるように,どちらも「すべての辺を一度だけ確認することをすべての連結について確認する」ために,同じ程度に速い方法である.すべての辺のペアについてチェックしているので NHN - 1L ê 2 個を検証することになる.しかし,Reaching の方が若干速くなるシチュエーションがあるらしい(既に幾つかのPath が既知であると,それを利用できるらしい).

ちょっとした疑問

工程が複雑になると,その組み合わせの数は膨大になる.計算時間は自乗で効いてくるから,だんだんしんどくなる.どうしたらいいのだろうか?

In[8]:= f@n_D := n Hn − 1Lê2

52 Printed from the Mathematica Help Browser

©1988-2003 Wolfram Research, Inc. All rights reserved.

Page 53: 計画数理endeavor.eng.toyo.ac.jp/~yoshino/lecture/keikakusuuri/...« ≈ 1 ê 70 計画数理 最適化手法を学ぶ « ≈ 2 ê 70 シラバス 講義の目的、内容 環境建設分野の計画をシステマティックに、かつ合理的に分析するオペレーションズリサーチの技法につ

In[9]:= f@9D

Out[9]= 36

In[10]:= f@100D

Out[10]= 4950

In[14]:= f@10000D

Out[14]= 49995000

In[11]:= f@1000D

Out[11]= 499500

In[13]:=

« ≈ 69 ê 70

今週の課題Reaching によって最短経路問題を解く計算方法をフローチャートで書きなさい.もしも可能ならば,解を求めるプログラムも書きなさい.言語は, VisualBASIC, C, C++, Java, Fortran, Perl, Mathematica, Pascal, Lisp(Scheme) のいずれかであること.

« ≈ 70 ê 70

巡回セールスマン問題

Printed from the Mathematica Help Browser 53

©1988-2003 Wolfram Research, Inc. All rights reserved.