Синтетические симуляции социальной интеллектуальной игры "Мафия"

Решил развлечь себя написанием симулятора игры в мафию. Это полностью синтетическая модель игр, имитирующая ход игры от начала до конца, в соответствии с правилами классической игры. Но прелесть этого симулятора в том, что он поддерживает настройку вероятностей действий игроков. Есть возможности настройки, как будут действовать игроки в тех или иных ситуациях. Одна из главных настроек: это способность (%) находить мафию.

Я запустил симуляции тысяч игр на разных настройках поведения игроков за столом и хочу поделиться с вами интересными результатами.

Первая симуляция 1000 игр. Входные настройки:

  • 🧨 Каждый игрок голосует сам, как считает нужным, все голосования свободные
  • 🧨 Игроки голосуют вместе с шерифом в чёрных после того, как шериф вскрывается и объявляет чёрные проверки
  • 🧨 Красные проверки не голосуются
  • 🧨 Мафия голосует так же, как и красные игроки и тоже не договариваясь, куда голосовать
  • 🧨 Мафия голосует с шерифом
  • 🧨 Все симуляции без лжешерифов
  • 🧨 В этой симуляции игроки одинаково голосуют как за красных, так и за чёрных (способность находить цвета выключена). Другими словами, шанс, что красный игрок правильно определит того или иного игрока за столом красным - 50%

Здесь видно, что когда игроки действуют случайным образом и независимо друг от друга, мафия побеждает в 4 раза чаще мирных. В этой ситуации шериф значительно спасает положение красных. Но велико влияние шерифа за столом? Далее я совсем убрал фактор шерифа. Вот 1000 игр, где игроки действуют всё так же случайным образом, но теперь ещё и без шерифских проверок.

Без шерифа, без согласованных голосований и без способностей находить чёрных у красных есть всего около 10% шансов на победу. При это мафия так же часто голосует в свою мафию, как и красные это делают.

Далее я добавил красным и чёрным больше шансов голосовать в чёрных и меньше шансов голосовать в красных. Пусть показатель способностей находить красных будет чуть выше среднего, скажем 65% вместо 50% как было выше. Другими словами, добавим красным немного способностей находить цвета.

Здесь игроки всё ещё играют рассогласовано и чёрные не думают, когда в кого голосовать. Но чёрные убивают шерифа сразу, как только шериф вскрывается. И все игроки голосуют в чёрную проверку и никогда не голосуют в красные проверки. Как видим, аж 65% скилла к нашей красной игре необходимо, чтобы не проигрывать хотя бы половину игр!

Следующий эксперимент особенно интересен. В нём я добавляю в стол одного очень талантливого игрока, способного находить цвета в 90% случаев верно. Остальные игроки действуют без способностей находить цвета.

За “плохим столом” такой игрок будет проигрывать две трети своих игр. Но на длинной дистанции результативность красных команд поднимется. Не забываем, что треть игр этот опытный игрок играет за чёрных.

А теперь пусть за столом будет 2 опытных игрока, не ошибающихся в цветах в 90% случаев:

При этом они всё ещё голосуют рассогласованно, не вместе.

5 опытных игроков:

А вот вероятность побед, если все 10 игроков умеют определить цвет другого игрока с 90% точностью:

Весь код симулятора, включая Notebook c примерами симуляции и анализа статистики доступен на GitHub (https://github.com/SergeySetti/mafiasim)

Comments