技術とか戦略とか

証券レガシーシステムを8年いじってから転職した普通の文系SEによるブログ。技術のみではなく趣味の戦略考察についても。

ゲーム理論(二人・二択)の混合戦略の確率を求める

ゲーム理論についてはこちらの記事で触れています。
 
情報処理技術者試験対策「ゲーム理論

https://akira2kun.hatenablog.com/entry/2018/07/10/234859

 
上記の記事では、「混合戦略」にも触れています。
混合戦略は、何度も同じゲームを繰り返す場合において、相手がどのような確率で選択肢を選んだとしても、全ゲームで得られる平均の利得を一定にすることを意図したものです。
長期的な目で見て、利得が下がるリスクを最も軽減できる戦略です。
各選択肢の選択確率をある値にすることで、これが可能になります。
その「ある値」の求め方を、今回の記事では解説します。
 
今回は以下の前提を置きます。
・劣等戦略(相手がどのような選択肢を選んだとしても、他のある選択肢以下の利得しか得られない選択肢)はあらかじめ除外
・プレイヤーが二人で、選択肢は二択のゲームを想定
 
【今回の例で取り扱う利得表】

f:id:akira2kun:20181223180626j:plain

 
【混合戦略の求め方】
1.連立方程式を解く方法
選択肢Aを選ぶ確率をp、選択肢Bを選ぶ確率を1-pとおく。
混合戦略が成り立つ時、相手が選択肢aを選んだ場合の期待利得と相手が選択肢bを選んだ場合の期待利得は等しくなるため、以下の式が成り立つ。
 
選択肢aを選択…2*p + 5*(1-p) …①
選択肢bを選択…6*p + 4*(1-p) …②
①=②のため
2*p + 5*(1-p) = 6*p + 4*(1-p)
2p + 5 - 5p = 6p + 4 - 4p
-3p + 5 = 2p + 4
-5p = -1
p = 0.2
 
以上より、選択肢Aを選ぶ確率が0.2、選択肢Bを選ぶ確率が1-0.2(=0.8)の時に、混合戦略となる。
 
2.微分方程式を解く方法
選択肢aが選ばれる確率pが決まる時、選択肢bが選ばれる確率は1-pという形で一意に求まる。
また、混合戦略の定義は、「相手が選択肢aを選んだ場合の期待利得と相手が選択肢bを選んだ場合の期待利得が等しくなるように選択肢を選ぶ」である。
そのため、混合戦略の定義は、「相手が選択肢aを1の確率で選ぶ場合の期待利得と相手が選択肢aを1-1(=0)の確率で選んだ場合の期待利得が等しくなるように選択肢を選ぶ」と置き換えることができる。
 
そこで、相手が選択肢aを選ぶ確率をx軸、自分の利得をy軸に置くと、以下のグラフを得られる。
下記のグラフについて、線分A-A'は選択肢Aを選んだ場合の利得、線分B-B'は選択肢Bを選んだ場合の利得、線分C-C'は混合戦略となる場合の利得を示している。

f:id:akira2kun:20181223181056j:plain

 

線分A-A'と線分B-B'を式に表すと以下のようになる。
線分A-A'の式…4x + 2
線分B-B'の式…-x + 5
 
線分A-A'と線分B-B'を微分し傾きを求めると、以下のようになる。
線分A-A'の傾き…4
線分B-B'の傾き…-1
 
ここで、線分C-C'は混合戦略であり、xの値によらずyは一定のため、傾きは0である。
線分A-A'をpの比率で、線分B-B'を1-pの比率で合成し、線分C-C'を生成する場合、比率pは以下の式で求まる。
 
4*p + -1*(1-p) = 0
5p - 1 = 0
5p = 1
p = 0.2
 
以上より、選択肢Aを選ぶ確率が0.2、選択肢Bを選ぶ確率が1-0.2(=0.8)の時に、混合戦略となる。

 

【検算】
選択肢Aを選ぶ確率が0.2、選択肢Bを選ぶ確率が0.8の時の期待利得を求める。
 
相手が選択肢aを選んだ場合、自分の期待利得は以下のようになる。
2 * 0.2 + 5 * 0.8 = 0.44 …①
 
相手が選択肢bを選んだ場合、自分の期待利得は以下のようになる。
6 * 0.2 + 4 * 0.8 = 0.44 …②
 
①と②が等しいため、選択肢Aを選ぶ確率が0.2、選択肢Bを選ぶ確率が0.8の時に混合戦略となる。
 
【混合戦略の簡単なイメージ】
教育機関で教えられるのは連立方程式を解く方法で、複雑な状況に対応することを考えるとこちらの方法を用いるべきです。
しかし、プレイヤーが二人で選択肢が二択というような簡単な状況では、微分方程式を解く方法の方が簡単にイメージできます。
 
傾きを合成して0にするだけなので、簡単に書いてしまうと「選択肢Aの傾き:選択肢Bの傾き*-1」の逆数がそのまま「選択肢Aを選ぶ確率」と「選択肢Bを選ぶ確率」になります。
上記の例で言うと、「4:1」の逆数「1/4:1」=「1:4」=「0.2:0.8」が「選択肢Aを選ぶ確率」と「選択肢Bを選ぶ確率」になります。 
 

手続き型のプログラムで計算できるように計算式を書くと、以下のようになります。
 
   選択肢Aの傾き
 = (選択肢A・選択肢bの時の利得 - 選択肢A・選択肢aの時の利得)
 
   選択肢Bの傾き*-1
 = (選択肢B・選択肢bの時の利得 - 選択肢B・選択肢aの時の利得)*-1
 
   選択肢Aの選択確率
 = 選択肢Bの傾き*-1 / (選択肢Aの傾き + 選択肢Bの傾き*-1)
 
   選択肢Bの選択確率
 = 選択肢Aの傾き / (選択肢Aの傾き + 選択肢Bの傾き*-1)
 
  ※以下の場合は劣等戦略未除外エラーとする。
   ・選択肢A・選択肢aの時の利得 > 選択肢B・選択肢aの時の利得 かつ
    選択肢A・選択肢bの時の利得 > 選択肢B・選択肢bの時の利得
   ・選択肢A・選択肢aの時の利得 < 選択肢B・選択肢aの時の利得 かつ
    選択肢A・選択肢bの時の利得 < 選択肢B・選択肢bの時の利得
  ※以下の場合は選択肢Aの選択確率・選択肢Bの選択確率を共に0.5とする。
   ・選択肢A・選択肢aの時の利得 = 選択肢B・選択肢aの時の利得 かつ
    選択肢A・選択肢bの時の利得 = 選択肢B・選択肢bの時の利得
 
人間がイメージしやすいように書くと、リスクの高い選択肢(相手が選ぶ選択肢によって利得が大きく変わる選択肢)を選ぶ確率を少なめに、リスクの低い選択肢(相手が選ぶ選択肢によって利得が大きく変わるらない選択肢)を選ぶ確率を多めにすると、混合戦略に近くなる、と書けます。