最適化理論/ゲーム理論

提供: Internet Web School

(版間での差分)
(鞍点のない問題)
 
(間の66版分が非表示)
1 行: 1 行:
-
A,Bがじゃんけんを繰り返し,毎回,勝ったほうが10点を得るゲームを行う.
+
ゲーム理論の概要は
-
A,Bが繰り出す手によって得られる得点をAの視点から表にしたものが以下である。
+
-
Aはどのように「グー」「チョキ」「パー」の手を繰り出していけば、得点が最大になるだろうか?
+
[http://ja.wikipedia.org/wiki/%E3%82%B2%E3%83%BC%E3%83%A0%E7%90%86%E8%AB%96 ゲーム理論](Wikipedia)
-
例えばAが「グー」を出し続けていけば,Bはそれを観て「パー」を出し続けて,Bは勝ちを繰り返すことができる.
+
-
Aが「グー」「チョキ」「パー」をこの順に規則的に繰り返していけば,Bはそれを観て
+
-
「パー」「グー」「チョキ」 という対抗手段を講じて勝ちを繰り返すことができる.
+
-
結局,Aは「グー」「チョキ」「パー」を不規則に出すことになる.それでは,それぞれどのような確率で出せば
+
に書かれている. ここでは,例を2つあげて説明する.
-
得点の期待値を最大にできるか? という問題に帰着するだろう.
+
==鞍点のある問題==
 +
 
 +
教育熱心な父親と,遊び盛りの息子がいる. この父親,ご多分に洩れず仕事の疲れがたまり,日曜は昼寝することが多いが,子煩悩で息子の勉強も気になる.
 +
息子にしてみれば,日曜日に頼みもしないのに,父親に小言を言われながら―父親にしてみれば指導であるが―勉強させられるのは最悪である.
-
Aが「グー」「チョキ」「パー」を出す確率をそれぞれ
+
鬱陶しいが父親が起きていても,時間を稼ぎながら話題をはぐらかして,なんとか家でゲームでもした方がましと考えている.
-
<math>p_1,p_2,p_3</math>とする.
+
 +
父親が大人しく昼寝してくれて,こっそり抜け出すことができれば友人の家にでもゲームでもしに行くのだが,それができなくても,溜まった宿題を一人で片付けるほうがまだましと考えている.
-
<math>0 \le p_1,0  \le p_2,0  \le p_3 \qquad  p_1+p_2+p_3=0 \qquad  (1) </math>
+
   
 +
父親は「昼寝をする.しない.」息子は「勉強する.遊ぶ.」でそれぞれ「戦略」に選択肢がある.
-
ここで問題の簡単化のため,得点表のそれぞれ要素の値を正数とするため各要素に10を加えておく.
+
そこで,二人に「戦略」の選択によってかわる利害得失を下のように単純化して表にしてみる.
-
Aが得点の期待値を求めれば
+
-
Bが「グー」を出すときは
+
<利得表1>
-
<math>10p_1+0p_2+20p_3  </math>
 
-
Bが「チョキ」を出すときは
+
{| border="3" class="wikitable" style="text-align: center; "
 +
|-
 +
|父親\息子
 +
|勉強する
 +
|遊ぶ
 +
|-
 +
|昼寝しない
 +
|-50
 +
|50
 +
|-
 +
|昼寝する
 +
|0
 +
|100
 +
|}
-
<math>20p_1+10p_2+0p_3  </math>
 
-
Bが「パー」を出すときは
+
この表の値は,息子の側に立ったものである.父親が昼寝しないで「指導」を受けながら勉強する最悪な場合は得点-50点
-
<math>0p_1+20p_2+10p_3  </math>
+
何とか,はぐらかしながら,遊ぶ場合は
 +
あまり楽しめないが50点,父親が昼寝して,一人で勉強して,溜まっている宿題
 +
を片付けるのは0点,こっそり抜け出して遊ぶ場合は100点である.
 +
父親にしてみれば
 +
「昼寝する」を選択したら,自分の失点(息子の得点)は最大100点
 +
 +
「昼寝しない」選択したら,自分の失点(息子の得点)は最大50点
 +
この二つの最大失点のうち最小のものは50点である.
 +
息子にしてみれば
 +
「勉強する」を選択したら自分の得点は最小-50点
-
<math>20p_1+10p_2+0p_3  </math>
+
「遊ぶ」を選択したら自分の得点は最小50点
 +
この二つの最小得点のうち,最大ものは50点である.
 +
この例では
 +
最大失点のうち,最小のもの」=「最小得点のうち,最大もの」
 +
が成立っている.
-
<math>0  \le p_1,0  \le p_2,0  \le p_3 \qquad  p_1+p_2+p_3=0 \qquad  (1) </math>
+
結局,父親が昼寝をしなければ,父親にとっては,最悪でも息子の得点は50点
 +
息子にしてみれば,「遊ぶ」を選択したら最悪でも自分の得点は50点
 +
である.このような状況を「このゲームには鞍点がある」という.
 +
 +
この話を一般化しておく.
 +
 +
二人の競技者<math>P,Q</math>が取り得る「戦略」の集合を<math>P_O,Q_O</math>とする.
 +
 +
この二人がそれぞれ「戦略」の集合<math>P_O,Q_O</math>の中から戦略<math>P,Q</math>を選択したときの
 +
得点を<math>G(P,Q)</math>で表しておく.
 +
 +
上の例では,<math>P=息子,Q=父親</math>で,<math>P_O=\{ 勉強する,遊ぶ \}</math>
 +
<math>Q_O=\{ 昼寝する,昼寝しない \} </math>である.
 +
 +
<math>G(P,Q)</math>は上の利得表1で与えらる.
 +
 +
 +
<math>P</math>が<math>P_O</math>の中から選択されると<math>Q</math>はこれに対抗して
 +
 +
<math>G(P,Q)</math>が最小になるように
 +
(自分の損失が最小になるように)
 +
<math>Q</math>を<math>Q_O</math>中で選択するはずである.
 +
 +
すなわち
 +
 +
<math>\min \{  G(P,Q) |Q \in Q_O\}</math>
 +
 +
が実現されるとなるような<math>Q</math>を<math>Q_O</math>の中で探す.
 +
 +
この最小値を<math>\min_Q G(P,Q)</math> で表しておく.
 +
 +
 +
<math>P</math>はこれを見越して,自分の利益が最大になるようにするため,
 +
 +
<math>\max \{  \min_Q G(P,Q) |P \in P_O\}</math>
 +
 +
が実現されるとなるような<math>P</math>を<math>P_O</math>の中から探すことになる.
 +
 +
この最大値を
 +
 +
<math>\max_P \min_Q G(P,Q) </math>
 +
 +
で表しておく.
 +
 +
 +
 +
まっく逆の<math>Q</math>の立場からは,
 +
<math>Q</math>が<math>Q_O</math>の中から選択されると<math>P</math>はこれに対抗して
 +
 +
<math>G(P,Q)</math>が最大になるように
 +
<math>P</math>を<math>P_0</math>中で選択するはずである.
 +
すなわち
 +
 +
<math>\max \{  G(P,Q) |P \in P_O\}</math>
 +
 +
が実現されるとなるような<math>P</math>を<math>P_O</math>の中から探す.
 +
この最小値を
 +
 +
<math>\min_P G(P,Q)</math>
 +
 +
で表しておく.
 +
 +
<math>Q</math>はこれを見越して,自分の損失を最小にするため,
 +
 +
<math>\min \{  \max_P G(P,Q) |Q \in Q_O\}</math>
 +
 +
が実現されるとなるような<math>Q</math>を<math>Q_0</math>の中で探すことになる.
 +
 +
この最大値を
 +
 +
<math>\min_Q \max_P E(P,Q)</math>
 +
 +
で表しておく.
 +
 +
 +
以上出てきた,2つの値には一般には
 +
 +
<math>\max_P \min_Q G(P,Q)  \le  \min_Q \max_P G(P,Q)</math>
 +
 +
という関係が成り立っている.
 +
 +
 +
この不等式の導出は以下による.
 +
 +
まず<math>Q</math>を<math>Q_O</math>の中で動かして,
 +
 +
<math>\min_Q G(P,Q)  \le  G(P,Q)</math>
 +
 +
が任意の<math>P</math>(両辺),<math>Q</math>(右辺)について成立
 +
 +
 +
次に上の不等式の右辺について<math>P</math>を<math>P_0</math>中で動かして,
 +
 +
<math>\min_Q G(P,Q)  \le  \max_P G(P,Q)</math>
 +
 +
が任意の<math>P</math>(左辺),<math>Q</math>
 +
 +
(右辺)について成立
 +
 +
さらに上の不等式の左辺について<math>P</math>を<math>P_O</math>の中で動かして,
 +
 +
<math>\max_P \min_Q G(P,Q)  \le  \max_P G(P,Q)</math>
 +
 +
が任意の<math>Q</math>(右辺)について成立
 +
 +
最後に右辺の<math>Q</math>を<math>Q_O</math>の中で動かして
 +
 +
<math> \max_P \min_Q G(P,Q)  \le  \min_Q \max_P G(P,Q)</math>
である.
である.
-
この問題に解が存在するとすれば,その得点の期待値<math>0 \lt G</math> とすれば
 
-
[[ファイル:Game_ページ_1.jpg]]
+
特に「鞍点」が存在する場合,戦略<math>P^* \in P_O,Q^* \in Q_O</math>が存在して
 +
 
 +
<math> \max_P \min_Q G(P,Q)  =G(P^*,Q^*)= \min_Q \max_P G(P,Q)</math>
 +
 
 +
となる.
 +
この場合,競技者<math>P,Q</math>はそれぞれ戦略<math>P^* \in P_O,Q^* \in Q_O</math>
 +
以外の戦略を選択すると損をすることになり,この意味で平衡状態になる.
 +
 
 +
(図2.1 鞍点)
 +
 
 +
[[ファイル:Fig.2.1.gif|500px]]
 +
 
 +
==鞍点のない問題==
 +
 
 +
<math>P,Q</math>の2人がじゃんけんをする.
 +
負けたら10円を相手に払い,勝ったら相手から10円貰うというルールで,
 +
じゃんけんを繰り返す.
 +
 
 +
無論,「アイコ」の場合は,支払うお金,貰うお金とも0円である.
 +
 
 +
<math>P</math>と<math>Q</math>の出す手によって,貰えるお金,支払うお金がどうなるか,
 +
<math>P</math>の立場で以下のような表になる.
 +
 
 +
利得表1
 +
{| border="3" class="wikitable" style="text-align: center; "
 +
|-
 +
|P\Q
 +
|グー
 +
|チョキ
 +
|パー
 +
|-
 +
|グー
 +
|0
 +
|10
 +
|―10
 +
|-
 +
|チョキ
 +
|―10
 +
|0
 +
|10
 +
|-
 +
|パー
 +
|10
 +
|―10
 +
|0
 +
|}
 +
 
 +
 
 +
「-10」は<math>Q</math>に10円払う事を表す.
 +
<math>P</math>の立場に立ってみる.先ず,このゲームの利得表には鞍点がない.
 +
双方が選択の余地のない「平衡状態」にする戦略はないわけである.出す手をランダムにしてゲームを繰り返す方法以外ない.
 +
このような問題を混合戦略問題とう.
 +
じゃんけんを繰り返すわけであるが,どのような「戦略」があるか?
 +
 
 +
グーを出し続けとすると,<math>Q</math>はそれを直ぐ見破って,
 +
パーを出し続けてくるであろう.続ければ続けるほど<math>P</math>は大損である.
 +
同様にパーを出し続けても,チョキを出し続けるのも駄目である.グー,チョキ,パーを何等か順序で規則的に出したとしても
 +
<math>Q</math>はその規則性を見破って,<math>P</math>が大損するような対応をしてくるであろう.
 +
 
 +
結局,例えばサイコロを用意して,出た目によって出す手を決めるランダムな手を繰り返す方法であろう.
 +
 
 +
(1か6ならグー,2か5ならパー,3か4ならチョキなど)
 +
 
 +
問題は,どんな割合で(確率で)グー,チョキ,パーを出すべきかである.
 +
相手の<math>Q</math>は<math>P</math>の出す手を監視しながら<math>P</math>と対戦するので,<math>P</math>が選択したグー,チョキ,パーの確率を直ぐに見破り,
 +
それでも,自分にとって有利な手を選択してくると考えるべきである.<math>P</math>と<math>Q</math>の立場を替えても全く同じである.
 +
 
 +
 
 +
ゲームの理論を創始し,この種の問題に解を与えたのが,ノイマン(<math>von Nuemann</math> 現在の計算機の原理開発者としても有名)である.
 +
 
 +
鞍点のある問題と異なり,一工夫が必要である.それは,ゲームの利得
 +
<math>G(P,Q)</math>の替わりに期待値<math>E(P,Q)</math>を使う.以下,その説明をする.
 +
 
 +
<math>P</math>が選択する戦略(グー,チョキ,パーを出す確率)を<math>p_1,p_2,p_3</math>とし,
 +
<math>P=(p_1,p_2,p_3)</math>で表しておく.
 +
 
 +
このゲームの場合,「戦略」は幾つかある「手」をランダムに選んで繰り返す
 +
確率の組み合わせになるわけである.
 +
 
 +
 
 +
同様に<math>Q</math>が選択する戦略を<math>Q=(q_1,q_2,q_3)</math>で表しておく.
 +
 
 +
 
 +
<math>P</math>がグーを出し,<math>Q</math>もグーを出す確率は<math>p_1・q_1</math>でこのとき
 +
 
 +
<math>P</math>は損得なし(0円の儲け),
 +
 
 +
<math>P</math>がグーを出し,<math>Q</math>がチョキを出す確率は<math>p_1・q_2</math>
 +
でこのとき,<math>P</math>は10円の儲け,
 +
 
 +
<math>P</math>がグーを出し,<math>Q</math>がパーを出す確率は<math>p_1・q_3</math>でこのとき,
 +
<math>P</math>は10円の損失(-10の儲け),
 +
 
 +
という計算を全て行うと
 +
 
 +
<math>P=(p_1,p_2,p_3),Q=(q_1,q_2,q_3)</math>
 +
での<math>P</math>の儲けの期待値<math>E(P,Q)</math>は
 +
 
 +
<math>
 +
E(P,Q)=0・p_1・q_1+10・p_1・q_2+(-10)・p_1・q_3
 +
+(‐10)・p_2・q_1+0・p_2・q_2+10・p_2・q_3 
 +
+10・p_3・q_1+(‐10)・p_3・q_2+0・p_3・q_3 
 +
</math>
 +
 
 +
である.
 +
<math>P=(p_1,p_2,p_3),Q=(q_1,q_2,q_3)</math>は
 +
それぞれ,グー,チョキ,パーを出す確率を表しているから,
 +
これらについての制約は
 +
 
 +
<math>
 +
1 \ge p_1 \ge 0,1 \ge p_2 \ge 0,1 \ge p_3 \ge 0, p_1+p_2+p_3=1 \\
 +
1 \ge q_1 \ge 0,1 \ge q_2 \ge 0,1 \ge q_3 \ge 0, q_1+q_2+q_3=1
 +
</math>
 +
 
 +
である.
 +
 
 +
簡単のため<math>P,Q</math>の採り得る集合を
 +
 
 +
<math>
 +
P_O= \{  (p_1,p_2,p_3)|1 \ge p_1 \ge 0,1 \ge p_2 \ge 0,1 \ge p_3 \ge 0, p_1+p_2+p_3=1\} \\
 +
Q_O= \{  (q_1,q_2,q_3)|1 \ge q_1 \ge 0,1 \ge q_2 \ge 0,1 \ge q_3 \ge 0, q_1+q_2+q_3=1\}
 +
</math>
 +
 
 +
で表しておく.前節の<math>P_0,Q_0</math>と異なり,それぞれ,確率を要素にもつベクトルの
 +
集合になっている.
 +
 
 +
<math>P=(p_1,p_2,p_3)</math>が<math>P_O</math>の中から選択されると<math>Q</math>はこれに対抗して
 +
<math>E(P,Q)</math>が最小になるように
 +
(自分の損失が最小になるように)
 +
<math>Q=(q_1,q_2,q_3)</math>を<math>Q_O</math>中で選択するはずである.
 +
すなわち
 +
 
 +
<math>min \{  E(P,Q) |Q \in Q_O\} </math>
 +
 
 +
が実現されるとなるような<math>Q</math>を<math>Q_O</math>の中で探す.
 +
この最小値を
 +
 
 +
<math>min_Q E(P,Q)</math>
 +
で表しておく.
 +
 
 +
<math>P</math>はこれを見越して,自分の利益が最大になるようにするため,
 +
 
 +
<math>max \{  min_Q E(P,Q) |P \in P_O\} </math>
 +
 
 +
が実現されるとなるような<math>P</math>を<math>P_O</math>の中から探すことになる.
 +
この最大値を
 +
 
 +
<math>max_P min_Q E(P,Q) </math>
 +
 
 +
で表しておく.
 +
 
 +
まっく逆のQの立場からは,
 +
<math>Q=(q_1,q_2,q_3)</math>が<math>Q_0 </math>の中から選択されると<math>P</math>はこれに対抗して
 +
 
 +
<math>E(P,Q)</math>が最大になるように
 +
 
 +
<math>P=(p_1,p_2,p_3)</math>を<math>P_0 </math>中で選択するはずである.
 +
すなわち
 +
 
 +
<math>max \{  E(P,Q) |P \in P_O\} </math>
 +
 
 +
が実現されるとなるような<math>P</math>を<math>P_0</math>の中から探す.この最小値を
 +
<math>min_P E(P,Q)</math>
 +
で表しておく.
 +
 
 +
<math>Q</math>はこれを見越して,自分の損失を最小にするため,
 +
 
 +
<math>min \{  max_P E(P,Q) |Q \in Q_O \} </math>
 +
が実現されるとなるような<math>Q</math>を<math>Q_0</math>の中で探すことになる.この最大値を
 +
<math>min_Q max_P E(P,Q)</math>
 +
で表しておく.
 +
 
 +
 
 +
以上出てきた,2つの値には一般には
 +
 
 +
<math>max_P min_Q E(P,Q)  \le  min_Q max_P E(P,Q)</math>
 +
 
 +
という関係が成り立っている.
 +
 +
ノイマンは上のような問題では,<math>P_O,Q_0</math>の中に
 +
 
 +
<math>P^*=(p_1^*,p_2^*,p_3^*), Q^*=(q_1^*,q_2^*,q_3^*)</math>
 +
 
 +
があって
 +
 
 +
<math>
 +
max_P min_Q E(P,Q) = min_Q max_P E(P,Q)=E(P^*,Q^*) \\
 +
max_P E(P,Q^*)=E(P^*,Q^*)= min_Q E(P^*,Q)
 +
</math>
 +
 
 +
となることを証明した.
 +
 
 +
この<math>P^*</math>と<math>Q^*</math>を具体的求めることにする.
 +
 
 +
問題を解きやすくするため,最初に出てきた<利得表>
 +
(損失と利益の表)の要素に全て10を加えておく.
 +
 
 +
 
 +
利得表2 
 +
 
 +
 
 +
{| border="3" class="wikitable" style="text-align: center; "
 +
|-
 +
|P\Q
 +
|グー
 +
|チョキ
 +
|パー
 +
|-
 +
|グー
 +
|10
 +
|20
 +
|0
 +
|-
 +
|チョキ
 +
|0
 +
|10
 +
|20
 +
|-
 +
|パー
 +
|20
 +
|0
 +
|10
 +
|}
 +
 
 +
 
 +
これでは,一方的な<math>P</math>のゲームになるかもしれないが,
 +
 
 +
<math>P^*=(p_1^*,p_2^*,p_3^*),Q^*=(q_1^*,q_2^*,q_3^*)</math>
 +
 
 +
を計算するためだけであり,このような,利得表の平行移動やっても解は同じである.
 +
 
 +
 
 +
<math>P^*</math>も,<math>Q^*</math>も,<math>E(P^*,Q^*)</math>も未知な量であるが
 +
<math>E(P^*,Q^*)</math>は判っているもの
 +
として
 +
 
 +
<math>max_P E(P,Q^*)=E(P^*,Q^*)=min_Q E(P^*,Q)</math>
 +
 
 +
に注目する.
 +
 
 +
<math>
 +
E(P,Q)=q_1 \{  10p_1+0p_2+20p_3\}
 +
+q_2 \{  20p_1+10p_2+0p_3\}
 +
+q_3 \{  0p_1+20p_2+10p_3\}
 +
</math>
 +
 
 +
で,
 +
 
 +
<math>1 \ge q_1 \ge 0,1 \ge q_2 \ge 0,1 \ge q_3 \ge 0, q_1+q_2+q_3=1</math>
 +
 
 +
であるので
 +
 
 +
<math>
 +
E(P^*,Q^*)  \le 10p_1+0p_2+20p_3~ (1) \\
 +
E(P^*,Q^*)  \le 20p_1+10p_2+0p_3~ (2) \\
 +
E(P^*,Q^*)  \le 0p_1+20p_2+10p_3~ (3)
 +
</math>
 +
 
 +
という条件を満たせば,任意の<math>Q \in Q_0</math>について
 +
<math>E(P^*,Q^*)  \le E(P,Q)</math>
 +
が成り立つ.従って
 +
 
 +
<math>E(P^*,Q^*)  \le min_Q E(P,Q)</math>
 +
 
 +
が成り立つ.
 +
 
 +
<math>(1)</math>~<math>(3)</math>と<math>P \in P_0</math> 即ち
 +
 
 +
<math>1 \ge p_1,p_2,p_3 \ge 0, p_1+p_2+p_3=1</math>
 +
 
 +
の制約条件下で
 +
 
 +
<math>E(P,Q^*)=max_P E(P,Q^*)</math>となる<math>P</math>
 +
 
 +
を求めれば,
 +
 
 +
<math>E(P,Q^*)=E(P^*,Q^*)</math>
 +
となるわけである.
 +
 
 +
しかし,これではまだ<math>E(P^*,Q^*)</math>が未知量であるので,
 +
 
 +
<math>(1)</math>~<math>(3)</math>の両辺を<math>E(P,Q^*)</math>
 +
で割り,
 +
 
 +
<math>
 +
r_1=p_1/E(P,Q^*) \\
 +
r_2=p_2/E(P,Q^*) \\
 +
r_3=p_3/E(P,Q^*)
 +
</math>
 +
 
 +
として,
 +
<math>E(P^*,Q^*)/E(P,Q^*) \ge 1</math>
 +
 
 +
に注意すると
 +
 
 +
<math>
 +
1 \le 10r_1+0r_2+20r_3~(1') \\
 +
1 \le 20r_1+10r_2+0r_3~(2') \\
 +
1 \le 0r_1+20r_2+10r_3~(3')
 +
</math>
 +
 
 +
<math>
 +
r_1+r_2+r_3
 +
=(p_1+p_2+p_3)/E(P,Q^*)
 +
=1/E(P,Q^*)
 +
</math>
 +
 
 +
から
 +
 
 +
<math>E(P,Q^*)のPについての最大化  \Leftrightarrow 「r_1+r_2+r_3の最小化」</math>
 +
 
 +
 
 +
結局,線形計画法の問題
 +
 
 +
<math>
 +
1  \le 10r_1+0r_2+20r_3(1') \\
 +
1  \le 20r_1+10r_2+0r_3(2') \\
 +
1  \le 0r_1+20r_2+10r_3(3')
 +
</math>
 +
 
 +
かつ
 +
 
 +
<math>r_1,r_2,r_3 \ge 0</math>
 +
 
 +
の制約条件で
 +
 
 +
<math>r_1+r_2+r_3</math>
 +
 
 +
を最小化する
 +
という問題が出てくる.
 +
 
 +
Microsoft Excel
 +
のsolver などツールが利用できる.
 +
 
 +
その解から
 +
 
 +
<math>
 +
p_1^*=r_1/(r_1+r_2+r_3) \\
 +
p_2^*=r_2/(r_1+r_2+r_3) \\
 +
p_3^*=r_3/(r_1+r_2+r_3)
 +
</math>
 +
 
 +
とすれば,<math>P^*</math>の最適戦略が求まる.
 +
生産計画でも説明した Microsoft Excel のソルバーを使って解くこともできる.
 +
 
 +
 
 +
<math>P</math>と<math>Q</math>の役目を交換しても全く同じなので,<math>P^*=Q^*</math>である.
 +
最初の<利得表2>を用いれば,<math>E(P^*,Q^*)</math>も求まる.
 +
 
 +
Microsoft Excel の入力データとソルバーのパラメータ設定は以下である.
 +
[[ファイル:LP-Fig40.1.jpg|600px]]
 +
ソルバーの出力は以下である.
 +
[[ファイル:LP-Fig40.2.jpg|600px]]
 +
<math>
 +
p_1^*=r_1/(r_1+r_2+r_3)=1/3 \\
 +
p_2^*=r_2/(r_1+r_2+r_3)=1/3 \\
 +
p_3^*=r_3/(r_1+r_2+r_3)=1/3
 +
</math>
-
[http://ja.wikipedia.org/wiki/%E3%82%B2%E3%83%BC%E3%83%A0%E7%90%86%E8%AB%96 ゲーム理論]
+
を示している.

2021年1月2日 (土) 16:57 時点における最新版

ゲーム理論の概要は

ゲーム理論(Wikipedia)

に書かれている. ここでは,例を2つあげて説明する.

鞍点のある問題

  教育熱心な父親と,遊び盛りの息子がいる. この父親,ご多分に洩れず仕事の疲れがたまり,日曜は昼寝することが多いが,子煩悩で息子の勉強も気になる.

息子にしてみれば,日曜日に頼みもしないのに,父親に小言を言われながら―父親にしてみれば指導であるが―勉強させられるのは最悪である.

鬱陶しいが父親が起きていても,時間を稼ぎながら話題をはぐらかして,なんとか家でゲームでもした方がましと考えている.

父親が大人しく昼寝してくれて,こっそり抜け出すことができれば友人の家にでもゲームでもしに行くのだが,それができなくても,溜まった宿題を一人で片付けるほうがまだましと考えている.


父親は「昼寝をする.しない.」息子は「勉強する.遊ぶ.」でそれぞれ「戦略」に選択肢がある.

そこで,二人に「戦略」の選択によってかわる利害得失を下のように単純化して表にしてみる.

<利得表1>


父親\息子 勉強する 遊ぶ
昼寝しない -50 50
昼寝する 0 100


この表の値は,息子の側に立ったものである.父親が昼寝しないで「指導」を受けながら勉強する最悪な場合は得点-50点

何とか,はぐらかしながら,遊ぶ場合は あまり楽しめないが50点,父親が昼寝して,一人で勉強して,溜まっている宿題 を片付けるのは0点,こっそり抜け出して遊ぶ場合は100点である.

父親にしてみれば

「昼寝する」を選択したら,自分の失点(息子の得点)は最大100点

「昼寝しない」選択したら,自分の失点(息子の得点)は最大50点

この二つの最大失点のうち最小のものは50点である.

息子にしてみれば

「勉強する」を選択したら自分の得点は最小-50点

「遊ぶ」を選択したら自分の得点は最小50点


この二つの最小得点のうち,最大ものは50点である.

この例では

最大失点のうち,最小のもの」=「最小得点のうち,最大もの」

が成立っている.

結局,父親が昼寝をしなければ,父親にとっては,最悪でも息子の得点は50点

息子にしてみれば,「遊ぶ」を選択したら最悪でも自分の得点は50点 である.このような状況を「このゲームには鞍点がある」という.


この話を一般化しておく.

二人の競技者\(P,Q\)が取り得る「戦略」の集合を\(P_O,Q_O\)とする.

この二人がそれぞれ「戦略」の集合\(P_O,Q_O\)の中から戦略\(P,Q\)を選択したときの 得点を\(G(P,Q)\)で表しておく.

上の例では,\(P=息子,Q=父親\)で,\(P_O=\{ 勉強する,遊ぶ \}\) \(Q_O=\{ 昼寝する,昼寝しない \} \)である.

\(G(P,Q)\)は上の利得表1で与えらる.


\(P\)が\(P_O\)の中から選択されると\(Q\)はこれに対抗して

\(G(P,Q)\)が最小になるように (自分の損失が最小になるように) \(Q\)を\(Q_O\)中で選択するはずである.

すなわち

\(\min \{ G(P,Q) |Q \in Q_O\}\)

が実現されるとなるような\(Q\)を\(Q_O\)の中で探す.

この最小値を\(\min_Q G(P,Q)\) で表しておく.


\(P\)はこれを見越して,自分の利益が最大になるようにするため,

\(\max \{ \min_Q G(P,Q) |P \in P_O\}\)

が実現されるとなるような\(P\)を\(P_O\)の中から探すことになる.

この最大値を

\(\max_P \min_Q G(P,Q) \)

で表しておく.


まっく逆の\(Q\)の立場からは, \(Q\)が\(Q_O\)の中から選択されると\(P\)はこれに対抗して

\(G(P,Q)\)が最大になるように \(P\)を\(P_0\)中で選択するはずである. すなわち

\(\max \{ G(P,Q) |P \in P_O\}\)

が実現されるとなるような\(P\)を\(P_O\)の中から探す. この最小値を

\(\min_P G(P,Q)\)

で表しておく.

\(Q\)はこれを見越して,自分の損失を最小にするため,

\(\min \{ \max_P G(P,Q) |Q \in Q_O\}\)

が実現されるとなるような\(Q\)を\(Q_0\)の中で探すことになる.

この最大値を

\(\min_Q \max_P E(P,Q)\)

で表しておく.


以上出てきた,2つの値には一般には

\(\max_P \min_Q G(P,Q) \le \min_Q \max_P G(P,Q)\)

という関係が成り立っている.


この不等式の導出は以下による.

まず\(Q\)を\(Q_O\)の中で動かして,

\(\min_Q G(P,Q) \le G(P,Q)\)

が任意の\(P\)(両辺),\(Q\)(右辺)について成立


次に上の不等式の右辺について\(P\)を\(P_0\)中で動かして,

\(\min_Q G(P,Q) \le \max_P G(P,Q)\)

が任意の\(P\)(左辺),\(Q\)

(右辺)について成立

さらに上の不等式の左辺について\(P\)を\(P_O\)の中で動かして,

\(\max_P \min_Q G(P,Q) \le \max_P G(P,Q)\)

が任意の\(Q\)(右辺)について成立

最後に右辺の\(Q\)を\(Q_O\)の中で動かして

\( \max_P \min_Q G(P,Q) \le \min_Q \max_P G(P,Q)\)

である.


特に「鞍点」が存在する場合,戦略\(P^* \in P_O,Q^* \in Q_O\)が存在して

\( \max_P \min_Q G(P,Q) =G(P^*,Q^*)= \min_Q \max_P G(P,Q)\)

となる. この場合,競技者\(P,Q\)はそれぞれ戦略\(P^* \in P_O,Q^* \in Q_O\) 以外の戦略を選択すると損をすることになり,この意味で平衡状態になる.

(図2.1 鞍点)

鞍点のない問題

\(P,Q\)の2人がじゃんけんをする. 負けたら10円を相手に払い,勝ったら相手から10円貰うというルールで, じゃんけんを繰り返す.

無論,「アイコ」の場合は,支払うお金,貰うお金とも0円である.

\(P\)と\(Q\)の出す手によって,貰えるお金,支払うお金がどうなるか, \(P\)の立場で以下のような表になる.

利得表1

P\Q グー チョキ パー
グー 0 10 ―10
チョキ ―10 0 10
パー 10 ―10 0


「-10」は\(Q\)に10円払う事を表す. \(P\)の立場に立ってみる.先ず,このゲームの利得表には鞍点がない. 双方が選択の余地のない「平衡状態」にする戦略はないわけである.出す手をランダムにしてゲームを繰り返す方法以外ない. このような問題を混合戦略問題とう. じゃんけんを繰り返すわけであるが,どのような「戦略」があるか?

グーを出し続けとすると,\(Q\)はそれを直ぐ見破って, パーを出し続けてくるであろう.続ければ続けるほど\(P\)は大損である. 同様にパーを出し続けても,チョキを出し続けるのも駄目である.グー,チョキ,パーを何等か順序で規則的に出したとしても \(Q\)はその規則性を見破って,\(P\)が大損するような対応をしてくるであろう.

結局,例えばサイコロを用意して,出た目によって出す手を決めるランダムな手を繰り返す方法であろう.

(1か6ならグー,2か5ならパー,3か4ならチョキなど)

問題は,どんな割合で(確率で)グー,チョキ,パーを出すべきかである. 相手の\(Q\)は\(P\)の出す手を監視しながら\(P\)と対戦するので,\(P\)が選択したグー,チョキ,パーの確率を直ぐに見破り, それでも,自分にとって有利な手を選択してくると考えるべきである.\(P\)と\(Q\)の立場を替えても全く同じである.


ゲームの理論を創始し,この種の問題に解を与えたのが,ノイマン(\(von Nuemann\) 現在の計算機の原理開発者としても有名)である.

鞍点のある問題と異なり,一工夫が必要である.それは,ゲームの利得 \(G(P,Q)\)の替わりに期待値\(E(P,Q)\)を使う.以下,その説明をする.

\(P\)が選択する戦略(グー,チョキ,パーを出す確率)を\(p_1,p_2,p_3\)とし, \(P=(p_1,p_2,p_3)\)で表しておく.

このゲームの場合,「戦略」は幾つかある「手」をランダムに選んで繰り返す 確率の組み合わせになるわけである.


同様に\(Q\)が選択する戦略を\(Q=(q_1,q_2,q_3)\)で表しておく.


\(P\)がグーを出し,\(Q\)もグーを出す確率は\(p_1・q_1\)でこのとき

\(P\)は損得なし(0円の儲け),

\(P\)がグーを出し,\(Q\)がチョキを出す確率は\(p_1・q_2\) でこのとき,\(P\)は10円の儲け,

\(P\)がグーを出し,\(Q\)がパーを出す確率は\(p_1・q_3\)でこのとき, \(P\)は10円の損失(-10の儲け),

という計算を全て行うと

\(P=(p_1,p_2,p_3),Q=(q_1,q_2,q_3)\) での\(P\)の儲けの期待値\(E(P,Q)\)は

\( E(P,Q)=0・p_1・q_1+10・p_1・q_2+(-10)・p_1・q_3 +(‐10)・p_2・q_1+0・p_2・q_2+10・p_2・q_3 +10・p_3・q_1+(‐10)・p_3・q_2+0・p_3・q_3 \)

である. \(P=(p_1,p_2,p_3),Q=(q_1,q_2,q_3)\)は それぞれ,グー,チョキ,パーを出す確率を表しているから, これらについての制約は

\( 1 \ge p_1 \ge 0,1 \ge p_2 \ge 0,1 \ge p_3 \ge 0, p_1+p_2+p_3=1 \\ 1 \ge q_1 \ge 0,1 \ge q_2 \ge 0,1 \ge q_3 \ge 0, q_1+q_2+q_3=1 \)

である.

簡単のため\(P,Q\)の採り得る集合を

\( P_O= \{ (p_1,p_2,p_3)|1 \ge p_1 \ge 0,1 \ge p_2 \ge 0,1 \ge p_3 \ge 0, p_1+p_2+p_3=1\} \\ Q_O= \{ (q_1,q_2,q_3)|1 \ge q_1 \ge 0,1 \ge q_2 \ge 0,1 \ge q_3 \ge 0, q_1+q_2+q_3=1\} \)

で表しておく.前節の\(P_0,Q_0\)と異なり,それぞれ,確率を要素にもつベクトルの 集合になっている.

\(P=(p_1,p_2,p_3)\)が\(P_O\)の中から選択されると\(Q\)はこれに対抗して \(E(P,Q)\)が最小になるように (自分の損失が最小になるように) \(Q=(q_1,q_2,q_3)\)を\(Q_O\)中で選択するはずである. すなわち

\(min \{ E(P,Q) |Q \in Q_O\} \)

が実現されるとなるような\(Q\)を\(Q_O\)の中で探す. この最小値を

\(min_Q E(P,Q)\) で表しておく.

\(P\)はこれを見越して,自分の利益が最大になるようにするため,

\(max \{ min_Q E(P,Q) |P \in P_O\} \)

が実現されるとなるような\(P\)を\(P_O\)の中から探すことになる. この最大値を

\(max_P min_Q E(P,Q) \)

で表しておく.

まっく逆のQの立場からは, \(Q=(q_1,q_2,q_3)\)が\(Q_0 \)の中から選択されると\(P\)はこれに対抗して

\(E(P,Q)\)が最大になるように

\(P=(p_1,p_2,p_3)\)を\(P_0 \)中で選択するはずである. すなわち

\(max \{ E(P,Q) |P \in P_O\} \)

が実現されるとなるような\(P\)を\(P_0\)の中から探す.この最小値を \(min_P E(P,Q)\) で表しておく.

\(Q\)はこれを見越して,自分の損失を最小にするため,

\(min \{ max_P E(P,Q) |Q \in Q_O \} \) が実現されるとなるような\(Q\)を\(Q_0\)の中で探すことになる.この最大値を \(min_Q max_P E(P,Q)\) で表しておく.


以上出てきた,2つの値には一般には

\(max_P min_Q E(P,Q) \le min_Q max_P E(P,Q)\)

という関係が成り立っている.

ノイマンは上のような問題では,\(P_O,Q_0\)の中に

\(P^*=(p_1^*,p_2^*,p_3^*), Q^*=(q_1^*,q_2^*,q_3^*)\)

があって

\( max_P min_Q E(P,Q) = min_Q max_P E(P,Q)=E(P^*,Q^*) \\ max_P E(P,Q^*)=E(P^*,Q^*)= min_Q E(P^*,Q) \)

となることを証明した.

この\(P^*\)と\(Q^*\)を具体的求めることにする.

問題を解きやすくするため,最初に出てきた<利得表> (損失と利益の表)の要素に全て10を加えておく.


利得表2 


P\Q グー チョキ パー
グー 10 20 0
チョキ 0 10 20
パー 20 0 10


これでは,一方的な\(P\)のゲームになるかもしれないが,

\(P^*=(p_1^*,p_2^*,p_3^*),Q^*=(q_1^*,q_2^*,q_3^*)\)

を計算するためだけであり,このような,利得表の平行移動やっても解は同じである.


\(P^*\)も,\(Q^*\)も,\(E(P^*,Q^*)\)も未知な量であるが \(E(P^*,Q^*)\)は判っているもの として

\(max_P E(P,Q^*)=E(P^*,Q^*)=min_Q E(P^*,Q)\)

に注目する.

\( E(P,Q)=q_1 \{ 10p_1+0p_2+20p_3\} +q_2 \{ 20p_1+10p_2+0p_3\} +q_3 \{ 0p_1+20p_2+10p_3\} \)

で,

\(1 \ge q_1 \ge 0,1 \ge q_2 \ge 0,1 \ge q_3 \ge 0, q_1+q_2+q_3=1\)

であるので

\( E(P^*,Q^*) \le 10p_1+0p_2+20p_3~ (1) \\ E(P^*,Q^*) \le 20p_1+10p_2+0p_3~ (2) \\ E(P^*,Q^*) \le 0p_1+20p_2+10p_3~ (3) \)

という条件を満たせば,任意の\(Q \in Q_0\)について \(E(P^*,Q^*) \le E(P,Q)\) が成り立つ.従って

\(E(P^*,Q^*) \le min_Q E(P,Q)\)

が成り立つ.

\((1)\)~\((3)\)と\(P \in P_0\) 即ち

\(1 \ge p_1,p_2,p_3 \ge 0, p_1+p_2+p_3=1\)

の制約条件下で

\(E(P,Q^*)=max_P E(P,Q^*)\)となる\(P\)

を求めれば,

\(E(P,Q^*)=E(P^*,Q^*)\) となるわけである.

しかし,これではまだ\(E(P^*,Q^*)\)が未知量であるので,

\((1)\)~\((3)\)の両辺を\(E(P,Q^*)\) で割り,

\( r_1=p_1/E(P,Q^*) \\ r_2=p_2/E(P,Q^*) \\ r_3=p_3/E(P,Q^*) \)

として, \(E(P^*,Q^*)/E(P,Q^*) \ge 1\)

に注意すると

\( 1 \le 10r_1+0r_2+20r_3~(1') \\ 1 \le 20r_1+10r_2+0r_3~(2') \\ 1 \le 0r_1+20r_2+10r_3~(3') \)

\( r_1+r_2+r_3 =(p_1+p_2+p_3)/E(P,Q^*) =1/E(P,Q^*) \)

から

\(E(P,Q^*)のPについての最大化  \Leftrightarrow 「r_1+r_2+r_3の最小化」\)


結局,線形計画法の問題

\( 1 \le 10r_1+0r_2+20r_3(1') \\ 1 \le 20r_1+10r_2+0r_3(2') \\ 1 \le 0r_1+20r_2+10r_3(3') \)

かつ

\(r_1,r_2,r_3 \ge 0\)

の制約条件で

\(r_1+r_2+r_3\)

を最小化する という問題が出てくる.

Microsoft Excel のsolver などツールが利用できる.

その解から

\( p_1^*=r_1/(r_1+r_2+r_3) \\ p_2^*=r_2/(r_1+r_2+r_3) \\ p_3^*=r_3/(r_1+r_2+r_3) \)

とすれば,\(P^*\)の最適戦略が求まる. 生産計画でも説明した Microsoft Excel のソルバーを使って解くこともできる.


\(P\)と\(Q\)の役目を交換しても全く同じなので,\(P^*=Q^*\)である. 最初の<利得表2>を用いれば,\(E(P^*,Q^*)\)も求まる.

Microsoft Excel の入力データとソルバーのパラメータ設定は以下である.

ソルバーの出力は以下である.

\( p_1^*=r_1/(r_1+r_2+r_3)=1/3 \\ p_2^*=r_2/(r_1+r_2+r_3)=1/3 \\ p_3^*=r_3/(r_1+r_2+r_3)=1/3 \)

を示している.

個人用ツール