囚人のジレンマ・ゲームと総当たり戦シミュレーター

繰り返し囚人のジレンマを自分で遊んだり、15の戦略に総当たり戦をさせたりできます。記事の実験(手違いがなくても、しっぺ返しは4位)を同じ乱数で再現でき、手違いの確率や利得も変えられます。

1位—
しっぺ返し(TFT)の順位—
根に持つ同士の1手あたり得点—
試合数 × 手数—

マスにポインターを合わせるかタップすると、値を表示します。

各マスは、縦の戦略が横の戦略と戦ったときの1手あたり平均得点です。RとPの中間より高ければ青、低ければ赤で塗っています。

参加する戦略

各戦略の規則
ALLC
お人好し:毎回協調します。
ALLD
裏切り者:毎回裏切ります。
TFT
しっぺ返し:初手は協調し、以後は相手の前回の手をそのまま返します。
STFT
疑心暗鬼のしっぺ返し:しっぺ返しと同じですが、初手だけ裏切ります。
TF2T
二度までは許す:2回続けて裏切られたときだけ仕返します。
GRUDGER
根に持つ:相手が一度でも裏切ると、以後はずっと裏切ります。
RANDOM
気まぐれ:協調と裏切りを五分五分で選びます。
PAVLOV
パブロフ:前回RかTを得たら同じ手、PかSなら逆の手を出します。
JOSS
ジョス:しっぺ返しですが、協調する場面で10%の確率で抜き打ちに裏切ります。
GTFT
寛容なしっぺ返し:しっぺ返しですが、裏切られても10%の確率で水に流します。
TTFT
倍返し:1回の裏切りに2回続けて裏切り返します。
PROBER
探り屋:最初の3手は裏切り・協調・協調。相手が2手目と3手目に協調したら以後ずっと裏切り、そうでなければしっぺ返しを続けます。
SOFT_MAJ
多数決(甘め):相手の協調回数が裏切り回数以上なら協調します。
HARD_MAJ
多数決(厳しめ):初手は裏切り。以後は相手の裏切り回数が協調回数以上なら裏切ります。
GRADUAL
段階的な報復:相手のn回目の裏切りにはn回続けて裏切り、そのあと2回協調します。
1手の利得(自分の得点)

自分で対戦する

相手を選び、毎手「協調」か「裏切り」を押してください。手の右上に小さな点が付いたら、手違いで手が逆になったという意味です。

あなた
相手
あなたの得点:0相手の得点:0手数:0

手違い率スイープ:手違いが増えると誰が勝つか

上で選んだ戦略・手数・利得で、手違い0、0.5、1、2、3.5、5、7.5、10、15、20%の総当たり戦をそれぞれ実行します。各段階の乱数シードは、記事と同じく「基準シード+手違い率×1000」です。

進化:どの戦略が増えるか

直前の総当たり戦の得点表を使った離散レプリケータ動態です。全戦略が同じ割合から始まり、世代ごとに、その時点の集団に対する得点に比例して割合が増減します。

1対1と同士討ち

1つの組み合わせを何試合も戦わせ、得点の分布、1試合分の手の並び、そして計算できる戦略については厳密な期待得点を表示します。

同じ戦略同士の対戦(200手)

1試合分の手の並びです。上の段がA、下の段がB。青=協調、橙=裏切り、黒い印=手違いで逆になった手。

設定の意味

利得は1回の対戦で自分が得る点で、T(相手が協調しているときに裏切った点)、R(両方協調)、P(両方裏切り)、S(自分だけ協調した点)です。「手違い」は手が意図と逆になる確率、「各組の試合数」は同じ組み合わせを何回戦わせるか、「乱数シード」は同じ結果を再現するための番号です。得点は自分自身を含む全員との1手あたり平均です。

まず試してみること

まず「記事:手違いなし」を押して、しっぺ返し(TFT)が4位になることを確かめてください。次に「記事:手違い1%」を押し、根に持つ(GRUDGER)の得点がどれだけ下がるかを見ます。「自分で対戦する」では相手を選んで「協調」か「裏切り」を押します。正体不明の相手を選ぶと、終了後に相手の戦略がわかります。

結果の見方

順位表の「記事」列は記事に載っている数値で、同じ設定ならこのページの結果と一致します。「厳密値」は試合数を無限にしたときの期待値です。対戦表は縦の戦略が横の戦略と戦ったときの1手あたり得点で、青は高く、赤は低い値です。順位は参加する戦略の顔ぶれと利得で変わるため、ほかの組み合わせでも同じ順位になるとは限りません。

次は、何を確かめる?

このテーマを深く読む

囚人のジレンマで「しっぺ返し」は最強? 手違いを入れて10戦略を比べた

実験結果と考察を読む
このツールを共有

ほかの実験ツール · 実装で学ぶ · この実験の解説記事