مساله ۱۰. مسابقه کلاهها

سه نفر داخل یه اتاق میشن و رو سر هر کدوم بطور تصادفی یا کلاه قرمز میذاریم یا آبی. هر کی رنگ کلاه ۲ نفر دیگه رو میبینه، ولی رنگ کلاه خودشو نمیبینه.
هر کی روی کاغذش یا رنگ کلاه خودشو حدس میزنه و مینویسه، و یا خالیش میزاره، و کاغذا رو به داور میدن. اگه حداقل یکی از حدسها درست باشه و هیچکدوم غلط نباشه، برنده جایزه بزرگ میشن.
با چه استراتژی بیشترین احتمال برنده شدن رو تضمین میکنن؟ این احتمال چنده؟
توضیحات:
-
قبل از اینکه وارد اتاق بشن میتونن سر یه استراتژی به توافق برسن، ولی داخل اتاق هیچ اطلاعاتی نباید بینشون رد و بدل بشه.
-
به عنوان مثال اگه رنگ کلاها به ترتیب قرمز، آبی، آبی باشه، و روی ۳ کاغذ به ترتیب قرمز، خالی، آبی نوشته شده باشه برنده میشن. اگه قرمز، قرمز، خالی نوشته شده باشه، چون دومی رنگشو اشتباه حدس زده، میبازن. اگه هر ۳ کاغذ خالی هم باشه میبازن چون هیشکی رنگ کلاهشو درست حدس نزده.
-
همه حالتها (هر ۳ کلاه یک رنگ، یا ۲ کلاه یک رنگ یکی رنگ دیگه) مجازه و احتمال هر ۸ حالت برابر.
لینک مساله در توویتر: https://twitter.com/Riazi_Cafe/status/1675054034577952768
با استراتژی مناسب میشه احتمال بردن ۷۵٪ رو تضمین کرد.
دو نمونه از استراتژیها که این احتمال رو تضمین میکنه:
استراتژی ۱. هرکی اگه رنگ کلاه ۲ نفر دیگه یکی بود، رنگ مخالف رو بنویسه، وگرنه خالی بزاره. در اینصورت مگه اینکه هر ۳ کلاه یه رنگ باشه، برنده میشن.
استراتژی ۲.
- نفر اول: اگه ۲ نفر دیگه همرنگ بودن، همون رنگ رو بگو. وگرنه خالی بزار
- نفر دوم و سوم: اگه دو نفر دیگه همرنگ بودن خالی بزار، وگرنه رنگ نفر اول رو بگو.
چرا ۷۵٪ بیشترین احتمال ممکنه؟
هر استراتژی رو میتونیم یه تابع P(i, c1, c2, choice) بگیریم که میگه شخص i در صورت دیدن رنگ c1 و c2 (به ترتیب) در سر ۲ نفر دیگه با چه احتمالی choice (آبی یا قرمز یا خالی) رو انتخاب میکنه.
میشه نشان داد [*] که جواب بهینه در بین حالتهایی که برای i و c1 و c2 خاص یکی از P(i, c1, c2, red) و P(i, c1, c2, blue) و P(i, c1, c2, empty) برابر یک ه و ۲ تای دیگه صفره وجود داره، و پس میتونیم در بین استراتژیهایی که به صورت F(i, c1, c2) مدل شدن دنبال جواب بگردیم. که این تابع به ما میگه اگه شخص i رنگ c1 و c2 رو به ترتیب رو سر ۲ نفر دیگه دید، چی بنویسه. که برد این تابع red و blue و empty ه.
اگه با یه برنامه کامپیوتری تمام حالتهای این تابع رو امتحان کنیم (۳ به توان ۱۲ تابع مختلف، چون دامنه تابع ۱۲ حالت داره و برد تابع ۳ حالت) و احتمال برد رو حساب کنیم، به جواب ۷۵٪ میرسیم. یه همچنین برنامهای رو اینجا نوشتیم که اگه اجراش کنیم میگه با بهترین استراتژی در ۶ حالت از ۸ حالت برنده میشیم: https://github.com/pykello/riazi_cafe_solutions/blob/main/hats.cpp
[*] فرض کنین P استراتژی بهینه است. برای یک iو c1 و c2 خاص، میشه امید ریاضی امتیاز رو به صورت A * P(i, c1, c2, blue) + B * P(i, c1, c2, red) + C * P(i, c1, c2, empty) + D نوشت. با توجه به اینکه جمع این ۳ احتمال یک ه، و با توجه به اینکه کدوم یکی از A و B و C بیشتره، میشه یکی از این ۳ احتمال رو یک و دوتای دیگه رو صفر گرفت بدون اینکه امید ریاضی امتیاز کم بشه. با تکرار این کار روی همه i و c1 و c2 ها، یه استراتژی بهینه غیراحتمالاتی پیدا میکنیم.
لینک راهحل در توویتر: https://twitter.com/Riazi_Cafe/status/1675725772886269952