ゲーム理論シミュレーター 戻る
数理科学

ゲーム理論シミュレーター

囚人のジレンマ・鹿狩り・チキンゲームの利得行列を操作してナッシュ均衡を求め、空間進化ゲームで協力と競争のダイナミクスをリアルタイム可視化。

ゲームプリセット
利得行列(行: P1, 列: P2)
P2: 協力 (C)P2: 裏切 (D)
P1: 協力 (C) / /
P1: 裏切 (D) / /
進化ゲーム設定
グリッドサイズ
突然変異率
%
計算結果
協力率
0
世代
平均利得
パレート最適
協力 (C)
裏切り (D)
しっぺ返し
Win-Stay
ゲーム
利得
理論・主要公式
任意のプレイヤー $i$ と戦略 $s_i'$ に対して:
$u_i(s_i^ , s_{-i}^ ) \geq u_i(s_i', s_{-i}^*)$

レプリケーター方程式:
$\dot{x}_i = x_i(f_i - \bar{f})$

ゲーム理論シミュレーターとは

🙋
このシミュレーターで「ナッシュ均衡」ってどうやって見つけるんですか?利得行列の数字をいじるだけでいいんですか?
🎓
大まかに言うと、誰も戦略を変える気にならない状態が均衡だね。このツールでは、まず左上の「囚人のジレンマ」などのプリセットを選んで、利得行列の数字を直接クリックして変えてみよう。例えば「協力」の報酬を大きくすると、均衡が「協力」に変わる瞬間が見られるよ。実務では、価格競争のモデルでこの数字を調整して均衡価格を探ったりするんだ。
🙋
え、でもそれって静的な分析ですよね?下の「空間進化ゲーム」でグリッドが動いてるのは何を見てるんですか?
🎓
いいところに気が付いたね。下のグリッドは、ナッシュ均衡だけでは説明できない「戦略の普及・進化」をシミュレートしてるんだ。例えば、隣人から戦略をコピーする「更新ルール」や、たまに戦略が変わる「突然変異率」を上のスライダーで変えてみて。協力が広がる条件や、裏切り者が蔓延する条件がリアルタイムで見えるよ。生物の群れの行動や、社会規範の広がりを研究するのに使われる手法だ。
🙋
「初期戦略」を「ランダム」から「ほとんど協力」に変えると、最初は協力だらけなのに、すぐに裏切りが広がっちゃいました…。これが「囚人のジレンマ」の怖いところということですか?
🎓
その通り!個人の合理的選択が集団を悪い結果に導くパラドックスを、目で見て確認できたね。でも、「鹿狩りゲーム」に切り替えて同じパラメータで確認してみて。こっちでは協力が維持されるはずだ。シミュレーターを触ると、ゲームの構造(利得行列)が集団の運命をどう決めるか、直感的に理解できるんだ。自動車業界での技術標準の競争(VHS対ベータみたいな)も、このようなモデルで分析されることがあるよ。

よくある質問

ナッシュ均衡が存在しないゲーム(例:チキンゲームの混合戦略均衡以外)では、純粋戦略の均衡が表示されません。その場合、混合戦略均衡を手動で計算するか、数値を再調整して純粋戦略均衡が存在する条件を満たすようにしてください。
画面上のスライダーまたは数値入力で0〜100%の間で設定できます。比率が低いと競争戦略が広がりやすく、高いと協力が維持されやすい傾向があります。研究目的に応じて10%刻みで変化させ、ダイナミクスを観察することを推奨します。
横軸は時間ステップ、縦軸は各戦略の人口比率を示します。協力戦略(青)と競争戦略(赤)の割合が収束するか、周期的に変動するかを確認してください。均衡状態では線が安定し、振動が続く場合は混合戦略均衡の可能性があります。
ナッシュ均衡は利得の大小関係(順序)に依存するため、絶対値を変えても相対的な順位が変わらなければ均衡は変化しません。例えば囚人のジレンマでは、裏切りの利得が協力より常に高い限り、均衡は変わりません。数値変更後は必ず「更新」ボタンを押してください。

実世界での応用

経済学・経営戦略:企業間の価格競争や広告競争をモデル化し、ナッシュ均衡としての市場価格を予測します。新規参入企業の戦略や、既存企業の協調行動(カルテル)が均衡をどう崩すかの分析に使われます。

生物学・生態学:動物の行動(縄張り争い、餌の分配、繁殖戦略)を「進化的に安定な戦略(ESS)」として研究します。例えば、ハト派とタカ派の戦略が個体群内でどのような割合で共存するかをシミュレートできます。

政治学・国際関係:軍拡競争や国際交渉、環境条約の遵守問題を「囚人のジレンマ」や「チキンゲーム」として分析します。相互不信がどのように非協調的な均衡を生み出すか、またそれを脱するための制度設計を考察します。

コンピュータサイエンス・ネットワーク設計:インターネット上のデータ転送におけるユーザー(またはプロトコル)の振る舞いをゲームとしてモデル化します。各ノードが自己の効率を最大化する行動を取った結果、ネットワーク全体の輻輳が発生するという「混雑ゲーム」の分析などが該当します。

よくある誤解と注意点

まず、「ナッシュ均衡は唯一の『正解』だ」という思い込みは捨てましょう。例えば「鹿狩りゲーム」では、「全員が協力」と「全員が裏切り」の2つのナッシュ均衡が存在します。シミュレーターで初期状態を変えると、どちらの均衡に収束するかが変わることがありますよね。これは、現実の交渉や市場でも、初期条件や歴史的経緯(例えば、どちらの技術が先に普及したか)によって異なる均衡が実現することを示しています。

次に、進化ゲームのパラメータ設定の落とし穴です。「更新ルール」を「最良応答」にした場合、グリッド上の戦略変化が非常に速く、カオス的になることがあります。これは、現実の人間や生物の学習・模倣がそこまで合理的ではないことを考えると、過度に単純化されたモデルかもしれない、と疑うきっかけにしてください。実務で応用する際は、更新ルールの選択が結論を大きく左右するので、対象とするシステムの「学習メカニズム」をよく考える必要があります。

最後に、利得行列の数字の「絶対値」よりも「大小関係」が本質的だという点です。囚人のジレンマでは、裏切りに対する誘惑の利得T、協力に対する報酬R、相互裏切りに対する懲罰P、単独協力に対する惨事Sの間に、T > R > P > S という関係が成り立っています。シミュレーターで「報酬R」の数値を10から100に大きくしても、この大小関係が保たれていれば、依然として囚人のジレンマは成立し、裏切りが優勢になります。数字をいじる際は、この順序関係がどう変わるかに注目しましょう。

使い方ガイド

  1. 利得行列の4つのセルに値を入力する:m00r(協力-協力)、m01r(協力-裏切り)、m10r(裏切り-協力)、m11r(裏切り-裏切り)各プレイヤーの報酬を指定
  2. 初期協力率を0~100%で設定し、世代数を50~500世代の範囲で選択
  3. シミュレーション開始ボタンをクリックすると、空間進化ゲーム(格子状配置)のリアルタイム可視化が開始され、各世代の協力率変化を追跡
  4. ナッシュ均衡到達時に平均利得とパレート最適性判定が自動算出される

具体的な計算例

囚人のジレンマ標準形:協力-協力(3,3)、協力-裏切り(0,5)、裏切り-協力(5,0)、裏切り-裏切り(1,1)を入力。初期協力率60%、世代数200で実行。第50世代で協力率が32%に低下、第120世代で均衡に達し平均利得1.85。TFT(しっぺ返し)戦略導入時は協力率が75%で安定化し、平均利得が2.94に上昇する空間進化動態を観測。

実務での注意点

  1. 利得を金銭単位(万円、万ドル)で設定する際、実務では割引率を反映させ長期利得=∑(利得×割引率^世代)で調整が必要
  2. 100×100格子での局所相互作用で進化速度が変わるため、格子サイズ30以下では急速に収束し実務的な戦略検証に不向き
  3. ナッシュ均衡が複数存在(混合戦略平衡)する場合、初期配置に強く依存するため企業間協力では10回以上異なる初期値でシミュレーション実施が推奨
  4. パレート最適到達できない利得構造は協力誘導メカニズム(契約金、評判機構)の導入必須