KMR の確率進化動学

次の協調ゲーム (coordination game) を考えます:

$ \begin{bmatrix} 4, 4 & 0, 3 \\\\ 3, 0 & 2, 2 \end{bmatrix} $

行プレイヤーをプレイヤー $0$,列プレイヤーをプレイヤー $1$, またそれぞれのプレイヤーの行動を行動 $0$,行動 $1$ と呼ぶことにします.

非摂動動学

ベースになる非摂動動学 (unperturbed dynamics) は次で定義されるマルコフ連鎖で与えられます:

  • $N$ 人のプレイヤーがいて,各プレイヤーは行動 $0$ か $1$ かをプレイしている.

  • $t$ 期において行動 $1$ をプレイしているプレイヤーの数を $X_t$ と表す.

  • $X_0$ の値は $0$ としてもよいし,何らかの確率分布に従ってランダムに決まるとしてもよい.

  • 行動改訂の機会は次のいずれかのルールに従っておとずれる.

    • 逐次改訂 (sequential revisions): 各 $t$ 期において,$N$ 人のうち1人が等確率でランダムに選ばれ,その行動を (変えたければ) 変えることができる.その他のプレイヤーはいまとっている行動をとり続ける.
    • 同時改訂 (simultaneous revisions): 各 $t$ 期において,$N$ 人全員が行動を (変えたければ) 変えることができる.

    以下,逐次改訂で説明するが,同時改訂の場合も同様.

  • 行動変更の機会を与えられたプレイヤーは,行動を決めたあと,残りの $N - 1$ 人から等確率でランダムに選ばれたプレイヤーと上のゲームをプレイする.

  • したがって,自分が行動 $0$ をとっているならば行動 $1$ をとっているプレイヤーとマッチする確率は $\frac{X_t}{N - 1}$, 自分が自分が行動 $1$ をとっているならば行動 $1$ をとっているプレイヤーとマッチする確率は $\frac{X_t - 1}{N - 1}$ である.

  • そのことを見越して,自分が行動 $0$ をとっているならば混合戦略 $\left(1 - \frac{X_t}{N - 1}, \frac{X_t}{N - 1}\right)$ に対する最適反応を, 自分が行動 $1$ をとっているならば混合戦略 $\left(1 - \frac{X_t - 1}{N - 1}, \frac{X_t - 1}{N - 1}\right)$ に対する最適反応をとる.

  • 行動 $0, 1$ に対して無差別な場合は確率半々でランダムにいずれかを選ぶとする (が,どちらかの行動の決め打ちにしてもよい).

  • 上記の場合分けが煩わしければ,「自分自身と対戦する」ことも許して, 行動 $1$ をとっているプレイヤーとマッチする確率はつねに $\frac{X_t}{N}$,としてもよい.

KMR の確率進化動学

本体の摂動動学 (perturbed dynamics) は次で定義されるマルコフ連鎖で与えられます:

  • 行動変更の機会を与えられたプレイヤーは,必ずしも最適反応をとるわけではなく,(小さい) 正の値 $\varepsilon$ に対して, 確率 $1 - \varepsilon$ で最適反応をとるが,確率 $\varepsilon$ で「実験」を行い (あるいは「突然変異」が起こり), ($X_t$ の値によらず) 行動 $0, 1$ を確率半々でランダムに選ぶ.

  • 同時改訂の場合は,各期,各人は独立に,確率 $\varepsilon$ でランダムな選択を行い,残りの確率 $1 - \varepsilon$ で最適反応をとる

論点

上で定義された摂動動学は uniformly ergordic なので,定常分布を一意にもちます.

  • $\varepsilon \to 0$ としたときの定常分布の様子はどうなるか.

詳細

以下で,$p \in [0, 1]$ を「相手が行動 $1$ をとる確率が $p$ より小さいなら自分の最適反応は $0$, $p$ より大きいなら自分の最適反応は $1$」であるような数とします. 上の利得行列では $p = 1/3$ です.

逐次改訂

現時点で行動 $1$ をとっているプレイヤーの数を $n$ とします.

  1. $1$ をとっているプレイヤーの数が減少するのは (つまり,状態が $n$ から $n-1$ に変わるのは):
    $1$ をとっているプレイヤーが行動改訂の機会を得て (確率 $n/N$),かつ, 「実験」を行い (確率 $\varepsilon$),行動 $0$ をとる (確率 $1/2$) か, 通常の最適反応を行い (確率 $1 - \varepsilon$),$0$ が厳密な最適反応である ($(n-1)/(N-1) < p$ のとき) か, 無差別で ($(n-1)/(N-1) = p$ のとき) $0$ をとる (確率 $1/2$) とき.

  2. $1$ をとっているプレイヤーの数が増加するのは (つまり,状態が $n$ から $n+1$ に変わるのは):
    $0$ をとっているプレイヤーが行動改訂の機会を得て (確率 $(N-n)/N$),かつ, 「実験」を行い (確率 $\varepsilon$),行動 $1$ をとる (確率 $1/2$) か, 通常の最適反応を行い (確率 $1 - \varepsilon$),$1$ が厳密な最適反応である ($n/(N-1) > p$ のとき) か, 無差別で ($n/(N-1) = p$ のとき) $1$ をとる (確率 $1/2$) とき.

  3. $1$ をとっているプレイヤーの数が変化しないのは:
    上のケース以外のとき.

「自分自身と対戦しない」設定で議論しましたが,「自分自身と対戦する」ことも許す設定にしてもよいです.

同時改訂

現時点で行動 $1$ をとっているプレイヤーの数を $n$ とします. 「自分自身と対戦する」ことを許して, $\frac{n}{N} < p$ ならば $0$ が最適反応, $\frac{n}{N} = p$ ならば無差別, $\frac{n}{N} > p$ ならば $1$ が最適反応,ということにしましょう.

各プレイヤーについて,行動 $1$ をとる確率は,

  1. $\frac{n}{N} < p$ のとき: 「実験」を行い (確率 $\varepsilon$),行動 $1$ をとる (確率 $1/2$) ときなので,確率 $\varepsilon/2$

  2. $\frac{n}{N} = p$ のとき: 確率 $1/2$

  3. $\frac{n}{N} > p$ のとき: 「『実験』を行い (確率 $\varepsilon$),行動 $0$ をとる (確率 $1/2$)」以外のときなので,確率 $1 - \varepsilon/2$

です. したがって,行動 $1$ をとる人数は,

  1. $\frac{n}{N} < p$ のとき: 試行回数 $N$,成功確率 $\varepsilon/2$ の2項分布

  2. $\frac{n}{N} = p$ のとき: 試行回数 $N$,成功確率 $1/2$ の2項分布

  3. $\frac{n}{N} > p$ のとき: 試行回数 $N$,成功確率 $1 - \varepsilon/2$ の2項分布

にそれぞれ従います.

2項分布に従う確率変数は scipy.stats.binom が生成してくれるのでそれを使うのが一つの手です.

pmf メソッドを使って

from scipy.stats import binom
binom.pmf((0 から N までのリスト), (試行回数), (成功確率))

とすると,$\{0, \ldots, N\}$ 上の確率分布を返してくれます. これを遷移行列の各 $n$ 行に ($n$ で適切に場合分けして) 代入していけばよい.

いずれの場合も,確率行列 $P$ を設定してしまえば, あとは quanteconMarkovChain に代入してそのメソッドを使っていくだけ.


In [ ]: