TS Studio
  Top > パソコン > 囚人のジレンマ

更新日:2023/5/14

囚人のジレンマ

ゲーム理論の一つである囚人のジレンマについての解説とシミュレーションプログラムの紹介です。

■目次

作成日 時期不詳(1997年頃)


囚人のジレンマ シミュレーションの理論

「囚人のジレンマ」とは,ゲーム理論のひとつである非ゼロサムゲームの一種で あり,1950年代の初めに最初に考え出されたものです。

非ゼロサムゲームとは,自分と相手が対戦したときに,自分の得点と相手の得点の和が0にならないゲームのことをいいます。従ってゼロサムゲームとは,自分の得点と相手の得点の和が0になるゲームのことです。

非ゼロサムゲーム
相手
協力 裏切り
自分 協力 3/3 0/5
裏切り 5/0 1/1
ゼロサムゲーム
相手
協力 裏切り
自分 協力 0/0 -5/5
裏切り 5/-5 0/0
「/」の左側が自分の得る得点,右側が相手の得る得点を示しています。

この「囚人のジレンマ」という比喩は,刑務所の別々の部屋に入れられた2人の囚人の各々が,お互いの犯した罪を白状するようにいわれたときに,白状する(裏切り,defection[D])かそれとも黙っておく(協力,cooperation[C])かを決めます(お互いに連絡することはないものとします)。

彼らに科せられる罰は,互いの罪を一方のみが白状するか,両方が白状し合うか,両方とも黙秘するかで異なります。すなわち,罪を一方のみが白状した場合,白状した囚人は釈放されます(+5)が,もう一方の囚人は罪を認めないために5年の刑(+0)を受けることになります。次に両方が白状した場合は,罪を認めたわけですから3年の刑(+1)を受けることになるでしょう。最後に両方とも黙秘した場合は,罪自体を認めないので証拠不十分で1年の刑(+3)になります。

註:より軽い罰を受ける方が得点は高くなります。

囚人のジレンマ
相手
黙秘(協力:C) 白状(裏切り:D)
自分 黙秘(協力:C) 3/3 0/5
白状(裏切り:D) 5/0 1/1

註:この囚人のジレンマの得点表においては,常に(一方的な裏切りの利益:DC)>(相互協力の利益:CC)>(相互裏切りの利益:DD)>(一方的に裏切られたときの利益:CD)の順の得点になっている必要があります。このようなときに囚人たちはどのようにするか考えてみます。もし相手が白状(裏切り)をする場合,自分は黙秘(協力)しても何も得るものはないので,自分も白状するべきです。また相手が黙秘(協力)しようとしても,自分は黙秘するよりも白状(裏切り)した方が得です。従って自分にとって最良の選択は,白状(裏切り)となります。

しかし,1回限りの「囚人のジレンマ」ではなく反復して行う場合には,前回に相手の採った戦略次第で自分の戦略を変えることができるので,常に裏切りが最良の選択とはなり得ません。そこでどの戦略を採ると最も得点を得ることができるかをシミュレートしたのが,次に示す「反復囚人のジレンマ」シミュレーションです。

「反復囚人のジレンマ」シミュレーションで競技者(囚人)が採る戦略には,大きく次の4つがあります。

  • 協力し続ける
  • 裏切り続ける
  • しっぺ返し戦略(Tit-for-Tat)
    初回は協力,それ以降は前回の相手と同じ戦略を採る
  • パブロフ戦略
    高い利得を得たときはそのまま,低い利得の時は戦略を変える

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

「囚人のジレンマ」ソースファイルです。

標準のCライブラリしか使っていませんので,ほとんどすべてのCコンパイラで処理することができると思います。Nの値を大きくすると,2乗に比例して計算に時間がかかるようになります。

関連書籍

ゲーム理論でおすすめの本です。

コンピュータ・IT 【本】 [Amazon]

プログラミング・C言語 [Amazon]


Copyright(C) 1997-2022 Suzumura Tomohiro All rights reserved.