Prisoner's dilemma simulation program
Ruby
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
README.md
game.rb
prisoner.rb
start.rb

README.md

囚人のジレンマシミュレーションプログラム

このプログラムは囚人のジレンマの非ゼロサム型ゲームをシミュレートしたプログラムです。 このシミュレーションでは5つの戦略があり、それぞれが総当りで試合を行います。 1回の試合では200回の囚人のジレンマを行います。 すべての組み合わせを調べた後、最後にポイントを出力して終了します。

今回の5つの戦略は、

  • TFT
  • すべて裏切る
  • 奇数で協力
  • 奇数で裏切る
  • ランダム

の戦略を用意しました。 また、囚人のジレンマはTFT戦略が最も優秀な戦略だと知られています。 もし疑問があれば、自分なりの戦略を考えてこのプログラムに追加して様子をみると良いかもしれません。

ruby start.rb で起動します。 実行環境は ruby 1.9.3p286 (2012-10-12 revision 37165) [x86_64-darwin12.1.1]でのみ確認しました。 基本的に1.9系なら大丈夫だと思います。1.8系では保証しません。

囚人のジレンマとは

囚人のジレンマ(しゅうじんのジレンマ、英:Prisoner's Dilemma)はゲーム理論や経済学における重要概念の一つで、全員で協調すれば皆に取ってよい結果になる事がわかっているにも関わらず、皆が自身の利益を優先している状況下では互いに裏切りあって逆に損をしてしまうというジレンマをさす。「囚人のジレンマ」という名称は後述する司法取引のシナリオでこのジレンマが発生してしまう事からついているが、同種のジレンマは経済現象でも頻繁に見られるため(値下げ競争、環境保護など)、このジレンマはゲーム理論における重要な研究対象とされた。

wikipedia「囚人のジレンマ」より