3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

文章題で身に付くプログラミング思考入門️ by TheWaggleAdvent Calendar 2024

Day 23

囚人のジレンマ (矛盾編 - パレート最適)|文章題で身に付くプログラミング思考入門️(23/25)

Posted at

はじめに

あなたは、物事に対して、良し悪しや答えを求めたいタイプですか?

現実は、何が良くて何が悪いかを決めきれない複雑な問題ばかりですね。
その中で、良し悪しや答えが決まっていれば選びやすいのですが、そう上手くいかないものばかりです。

その上で、どのような選択をすべきだろうか?ということについて理論的に考えてみたいと思います。

『文章題で身に付くプログラミング思考入門️』は、日常や文章問題からプログラミング思考を身に付けていく、簡単で身近で、あなたをちょっと輝かせてくれるシリーズです。

今回は、囚人のジレンマ 矛盾編の1です。
完全なる思考実験です。

これまでのまとめ

対象者

  • プログラミングの考え方を学びたい人
  • プログラミングに挫折したことのある人
  • 論理的思考を鍛えたい人
  • 文系の人
  • エンジニアの思考を理解したい人

個別最適か、全体最適か

現実では、個々の合理的な選択が全体としての最適な結果を妨げたり、逆もまた然りですね。
このバランスや矛盾について、忘年会のお店選びも例に加えて考えてみましょう。

パレート最適とナッシュ均衡について紹介していきます。
今回は矛盾編の1として、パレート最適に焦点を当てます。
似ているようで非なるものです。難しいので雰囲気で読んでください。

パレート最適

パレート最適とは、他の誰かの利益を損なうことなく、誰かの状況を改善できない状態を指します。
つまり、全員が得をする選択肢がこれ以上ない、全体として最適な状態です。

囚人のジレンマにおけるパレート最適

では、囚人のジレンマにおけるパレート最適は何かについて考えてみましょう。

囚人のジレンマのルールを以下として、両者の合計得点を出してみます。

両者が「協力」:3点ずつ
一方が「裏切り」もう一方が「協力」:裏切り側に5点、協力側は0点
両者が「裏切り」:1点ずつ

合計得点は

  • 両者が「協力」を選べば、合計 6点
  • 一方が「裏切り」もう一方が「協力」を選べば、合計 5点
  • 両者が「裏切り」を選べば、合計 2点

となります。
ですので、両者が「協力」を選ぶのが最も点数が高く、これがパレート最適です。
つまり囚人たちにとっては、お互いを信じ、両者とも軽い刑罰を受けることが、結果的には全体最適なわけですね。

忘年会のお店選びにおけるパレート最適

例えば、以下の3人で忘年会をしようと思った時のお店選びについて考えてみます。

  • Aさん:飲み放題じゃないと嫌だ
  • Bさん:静かなお店じゃないと嫌だ
  • Cさん:肉料理が食べられないと嫌だ

お店は以下の3店舗があったとします。

  • X店:飲み放題ありとても静か、肉料理なし
  • Y店:飲み放題ありそれなりに静か、肉料理数品あり
  • Z店:飲み放題なし賑やか、肉料理ふんだんにあり

さあ、どのお店が一番良いでしょうか?あなたならどうやって選びますか?
感覚的には、X店とZ店に関しては「嫌だ」と言っている人がいるわけですから、Y店しか残らない感じがしますね。

こちらも数値化できるとわかりやすいので、点数をつけてお店を評価していきましょう。

点数 飲み放題 静かさ 肉料理
2 あり とても静か ふんだんにあり
1 - それなりに静か 数品あり
-2 なし 賑やか なし

条件がそれなりに満たされれば1点、しっかり満たされれば2点、全く満たされないのであれば-2点で付けています。

この表に従って、お店に対する評価を見ていきましょう。

  • X店:飲み放題ありとても静か、肉料理なし
    • Aさん2点、Bさん2点、Cさん-2点
  • Y店:飲み放題ありそれなりに静か、肉料理数品あり
    • Aさん2点、Bさん1点、Cさん1点
  • Z店:飲み放題なし賑やか、肉料理ふんだんにあり
    • Aさん-2点、Bさん-2点、Cさん2点

ですから、それぞれ以下の評価になりますね。

X店 Y店 Z店
Aさん 2 2 -2
Bさん 2 1 -2
Cさん -2 1 2
合計 2点 4点 -2点

この結果を見ると、感覚値と結果が一致しますね。

パレート最適の結論

現在、Y店が一番点数が高いですね。

この状態よりもBさんの満足度を上げようと思ったらX店を選択することになります。
X店を選択しようと思ったら、Cさんの満足度が下がります。

逆にCさんの満足度を上げようと思ったらZ店を選択することになるので、AさんとBさんの満足度が下がります。

このように、誰かの満足度を上げると、他の誰かの満足度が下がる状態をパレート最適と言います。

重みづけの影響

もう一パターン、以下の点数で採点してみましょう。

点数 飲み放題 静かさ 肉料理
1 あり とても静か ふんだんにあり
0 - それなりに静か 数品あり
-1 なし 賑やか なし

この基準だと、評価は以下のようになります。

X店 Y店 Z店
Aさん 1 1 -1
Bさん 1 0 -1
Cさん -1 0 1
合計 1点 1点 -1点

面白いですね!こちらでは、X店とY店が同率一位になりました。
要は、各項目の重みづけによって結果が変わるわけです。

現実問題を重みづけしようと思ったら、それなりに複雑です。

例えば、BさんもCさんも飲み放題にはこだわらないものの、3人ともお酒をたくさん飲むのでみんなにとって飲み放題が望ましいよね、とか、Bさんにとってはそれなりに静かだとまだマイナスなんだよ、とか、Cさんのグルメっぷりは突出したものがあって、Cさんの好きなお店に行くのが結果的にみんなにとってハッピーだったりするわけです。

現実を数値化するのは複雑なことで簡単ではないですが、実は、感覚的には誰もがこれを日常的に行っているのではないでしょうか。
あなたの頭の中を公式に出来たら、今後一切、お店選びに迷う必要がなくなるかもしれません。

まとめ

囚人のジレンマでは、お互いを信じ、両者とも軽い刑罰を受けることが、結果的には全体最適でした。
お店選びでは、誰かの強い不満を避けた選択をすることが全体最適であるとともに、選択に対して重みづけを変えることで結果も変わることを確認しました。

さて、囚人のジレンマに戻って考えてみますが、

「二人とも刑罰を受けることが、本当に一番良い選択肢だと言えるのだろうか?」

と疑問に思いませんでしたか?
これについて、次回ナッシュ均衡を紹介していきます。

最後に

ここまで読んでくださってありがとうございます!
よかったら「いいね」をください。続ける励みになります!

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?