はじめに
『囚人のジレンマ』という言葉を聞いたことがありますか?
これは、経済学や心理学、プログラミングの世界で広く議論されているテーマです。
プログラミングの世界にも競技があるのですが、アルゴリズムコンテストなどでこのテーマを扱われることがあります。
つまり、経済学や心理学の世界で語られるような戦略でも、強い弱いの定量的な判断ができるということですね。
『文章題で身に付くプログラミング思考入門️』は、日常や文章問題からプログラミング思考を身に付けていく、簡単で身近で、あなたをちょっと輝かせてくれるシリーズです。
今回は、アルゴリズムから、囚人のジレンマを考えてみます。
これまでのまとめ
対象者
- プログラミングの考え方を学びたい人
- プログラミングに挫折したことのある人
- 論理的思考を鍛えたい人
- 文系の人
- エンジニアの思考を理解したい人
囚人のジレンマとは?
まず始めに、囚人のジレンマとは何か?という話ですが、これはゲーム理論という学問の代表的な例として有名ですね。
ゲーム理論とは
ではゲーム理論とは何か?をとても簡単に説明しましょう。
世の中にはたくさんの人や団体など、決断を行う主体がたくさんいて、お互いに影響し合いながら生き抜いているわけですが、これを数式として説明しようというのがゲーム理論です。
つまり、難しくて複雑で、答えがないんじゃないかというほどの難問に対して、それでも一定の答えを導けるはずだと信じた先人たちの飽くなき探究心が生み出す、非常に難解で興味深い考え方です。
その中でも、短期的・個人的な利益を優先するか、長期的・全体的な利益を優先するか、結局のところ自分にとってどちらが一体お得なのだろうか?というのが囚人のジレンマです。
囚人のジレンマとは
さて、以下のような状況になったら、あなたなら「黙秘」と「自白」のどちらを選びますか?
2人の囚人が別々に隔離されて尋問を受けている。
両者が「黙秘」すれば、2人とも軽い刑罰。
一方が裏切って「自白」、もう一方が「黙秘」すると、裏切った囚人は釈放、黙秘した囚人は重い刑罰。
両者が裏切り合って「自白」なら、中程度の刑罰。
整理すると、
- 黙秘するなら、軽い刑罰か、重い刑罰
- 自白するなら、釈放か、中程度の刑罰
明らかに裏切って自白した方がお得です。
例えば、数字をつけて算数にしてみましょう。
- 黙秘するなら、軽い刑罰(
1
)か重い刑罰(3
)- 合計4
- 自白するなら、釈放(
0
)か中程度の刑罰(2
)- 合計2
わかりやすくなったと思います。数字は、いくつを選んでも影響がありません。
なぜなら、
釈放 < 軽い刑罰 < 中程度の刑罰 < 重い刑罰
であることは明らかですから。
つまり、比較演算でもできますね。
釈放は軽い刑罰よりお得、中程度の刑罰は重い刑罰よりお得ですから、お得かつお得な自白の方が明らかにお得なわけです。
それなら、理論的には裏切った方が優位となるわけですが、ここから先が面白いところです。
囚人のジレンマを題材にしたアルゴリズムコンテストというのがあり、「一体どういう戦略が、長期的目線で互いに利益を生み出すのか?」というのが競われました。
自分が勝つための強い戦略、というのが決まったわけです。
裏切った方が本当に優位だったのでしょうか?
次回、アルゴリズム編の2で紹介していきたいと思います。
最後に
ここまで読んでくださってありがとうございます!
よかったら「いいね」をください。続ける励みになります!