見出し画像

⑦[湖の汚染]ゲーム理論をGeminiとMathematicaで勉強

これも興味深い。こうして湖は汚染されていく。現実の通りだ。
今回はClaudeが制限オーバーしてしまったので、Geminiさんに聞いてみた。きちんと指定すれば動くな。しかもコードが短い。これからはGeminiさんに切り替えようか?(他の問題で試すも、デバッグがGeminiは弱い)

ゲーム理論をMathematicaの基本関数で組む。
湖の周りでn個のパルプ工場群が生産している。
パルプ生産には湖の水を使い、排水を湖に戻している。
排水に浄化装置をつけるとコストは工場毎にKかかる。
浄化装置をつけない工場の数をj個とすると、
各工場は湖の水を生産に使うのに浄化装置をつけねばばらず、
その総コストはjLとなる。
L<K<nLとする。
工場の経営者の目標はコスト最小化である。
ナッシュ均衡を計算して欲しい。

プロンプト

コードの説明パラメータ設定: num, K, L の値を設定します。
利得関数定義: payoff関数は、与えられた戦略プロファイルとプレイヤー番号から、そのプレイヤーの利得を計算します。
戦略プロファイル生成: Tuples関数を使って、全ての可能な戦略プロファイルを生成します。
ナッシュ均衡判定: nashEquilibriumQ関数は、与えられた戦略プロファイルがナッシュ均衡であるかどうかを判定します。
ナッシュ均衡探索: Select関数を使って、全ての戦略プロファイルの中からナッシュ均衡となるものを抽出します。

結果の解釈
このコードを実行すると、与えられたパラメータの下での全てのナッシュ均衡が得られます。ナッシュ均衡は、このゲームにおける安定な状態を表しており、各工場の経営者は、他の工場の行動を考慮して、この均衡状態にある戦略を選ぶことが予想されます。

Geminiの回答
num = 3;
K = 10;
L = 4;

(* 利得関数を定義 *)
payoff[strategies_, i_] := If[strategies[[i]] == 1, K, L Total[1 - strategies]];

(* 全ての戦略プロファイルを生成 *)
strategyProfiles = Tuples[{0, 1}, num];

(* ナッシュ均衡を探す関数 *)
nashEquilibriumQ[strategies_] := 
  And @@ (payoff[strategies, #] <= payoff[ReplacePart[strategies, {# -> 1}], #] && 
          payoff[strategies, #] <= payoff[ReplacePart[strategies, {# -> 0}], #] & /@ Range[num]);

(* ナッシュ均衡を全て求める *)
nashEquilibria = Select[strategyProfiles, nashEquilibriumQ];

Print["ナッシュ均衡は次の通りです: ", nashEquilibria];

ナッシュ均衡は次の通りです: {{0,0,1},{0,1,0},{1,0,0}}

計算結果

この解釈をしてください。
ナッシュ均衡は次の通りです: {{0,0,1},{0,1,0},{1,0,0}}

プロンプト

ナッシュ均衡の解釈:パルプ工場のケース

ご提示いただいたナッシュ均衡{{0,0,1},{0,1,0},{1,0,0}}は、以下のことを意味します。

各要素の意味{0,0,1}, {0,1,0}, {1,0,0}: これは3つのパルプ工場の戦略の組み合わせを表しています。それぞれの数字は、各工場が浄化装置をつける(1)かつけない(0)かを示しています。
例: {0,0,1} は、工場1と工場2は浄化装置をつけず、工場3だけが浄化装置をつけるという状況を表します。

ナッシュ均衡の意味

このゲームにおけるナッシュ均衡とは、どの工場も、他の工場の戦略を固定した状態で、自分だけが戦略を変えても、より良い結果(コストの削減)を得られないという状態のことです。つまり、全ての工場が現在の戦略を維持することが、それぞれの工場にとって最適な選択であるということです。

このケースにおける解釈

今回の結果から、どの工場も他の2つの工場が浄化装置をつけない状況であれば、自分だけが浄化装置をつけることを避けるということがわかります。これは、浄化装置のコストKが、他の工場がつけない工場の数jに比例するコストjLよりも高いという設定と一致しています。

つまり、このゲームでは、どの工場も「他の工場がやってくれるなら、自分はやらなくてもいい」という考えになり、結果として、どの工場も浄化装置をつけないという状況が3つの異なるパターンで均衡として現れているということです。

社会全体の視点
この結果は、社会全体の視点から見ると必ずしも効率的とは言えません。全ての工場が浄化装置をつければ、湖の水質は保たれる可能性が高いですが、個々の工場の利益を最大化するという観点からは、このような非協力的な均衡が成立してしまうことがあります。

このゲームは、環境問題における「フリーライダー問題」を簡略化したモデルと捉えることができます。

まとめ各工場は、他の工場の行動に大きく影響される
個々の合理的な行動が、必ずしも社会全体の最適解にはならない
環境問題など、協力が必要な状況において、このような非協力的な均衡が成立する可能性がある

Geminiの回答

いいなと思ったら応援しよう!