Несколько дней назад я провел онлайн-контест по игре.
В онлайн-контесте приняло участие 1199 человек, а решений набралось больше 5000, среди которых 61 решение — попытки обойти систему с помощью нахождения уязвимостей. Это очень круто, спасибо всем, кто принял участие.
Эта игра представляет собой тип “игр полковника Блотто”. В ней принимают участие два игрока. У каждого одинаковое кол-во ресурсов, которое нужно разместить на поле NxM. Побеждает тот, кто займет больше клеток (т.е. кол-во ваших ресурсов на ней больше, чем у оппонента). Так выглядит условие для нашей задачи
Когда я запустил этот эксперимент, я еще не знал, что у этой игры нет идеального решения, но благодаря комментариям я смог лучше разобраться в этой теме.
Начнем с победителей этой игры
![image](https://habrastorage.org/r/w1560/getpro/habr/post_images/497/4f3/152/4974f315268791faf54af1522b42162b.png)
Лучшее решение набрало 4121 побед — весьма неплохой результат. Но что было бы, если бы в игре участвовали решения только из ТОП-100?
![image](https://habrastorage.org/r/w1560/getpro/habr/post_images/3da/fc7/410/3dafc74101205127703e5ca10321d4e4.png)
Удивительно, но оно не вошло даже в топ5 (на 8м месте), а 1е место здесь заняло решение с 68-го места.
Это как раз показывает, что лучшего решения нет. Остальные результаты можно посмотреть на game.pavlukhinlab.com
Но что еще интересного можно узнать?
Самые большие числа игроки ставили в центр, в среднем все игроки заполняли первую строку большими числами, в то время как лучшие результаты делали больший упор на нижнюю строку.
![image](https://habrastorage.org/r/w1560/getpro/habr/post_images/38c/37c/d25/38c37cd2563c82af73107c582984c515.png)
![image](https://habrastorage.org/r/w1560/getpro/habr/post_images/430/74f/eae/43074feaeac5c7c8cf3468c237d15c4e.png)
средние значения по всем играм (слева) и по ТОП-100 (справа)
Ну и еще примеры лучших стратегий:
Лучшие стратегии выбирали 5 основных клеток, оставшиеся клетки заполнялись мелкими значениями. Что логично, ведь для победы достаточно занять 5 клеток.
Ну а теперь немного графиков.
Вероятностные распределения чисел:
![image](https://habrastorage.org/r/w1560/getpro/habr/post_images/b68/aec/837/b68aec837a3e0565faddeedf53baa886.png)
![image](https://habrastorage.org/r/w1560/getpro/habr/post_images/c0b/efe/bf8/c0befebf84a468a7afaaf535820e84c6.png)
вторые клетки среди всех игроков (слева) и ТОП-100 (справа)
![image](https://habrastorage.org/r/w1560/getpro/habr/post_images/175/197/922/175197922cbefdb37fd6ac4f0c68b02c.png)
![image](https://habrastorage.org/r/w1560/getpro/habr/post_images/394/782/e83/394782e83fca793480990081fe8ac638.png)
центральные клетки среди всех и ТОП-100
![image](https://habrastorage.org/r/w1560/getpro/habr/post_images/b47/438/d20/b47438d20c7ae82a33033872b34678a2.png)
распределение чисел по всем играм
![image](https://habrastorage.org/r/w1560/getpro/habr/post_images/240/282/e49/240282e496f8e687187c4528e0bdcb87.png)
распределение чисел по ТОП-100
Если смотреть распределения по всем клеткам среди всех игроков, то выглядят они в целом похоже. Также можно сделать вывод, что в данных условиях нет смысла заполнять клетки значениями больше 30.
На этом исследование подходит к концу — это все, что я смог извлечь из этих данных. Возможно кто-то из вас сможет предложить что-то еще, что можно проверить — жду вас в комментариях. Обезличенные игры ищите по ссылке.
Пы.Сы. В предыдущем посте я рассказал про нейронку, которая обучалась играть в эту игру. К сожалению, ничего из этого пока не получилось. Две нейронки решили, что лучшая стратегия — кидать нули на выходе и радоваться ничьей. Но может я еще разберусь в этой теме и сделаю отдельный пост посвященный ошибкам, которые я допустил при создании нейронки, и, возможно, успехам.
В онлайн-контесте приняло участие 1199 человек, а решений набралось больше 5000, среди которых 61 решение — попытки обойти систему с помощью нахождения уязвимостей. Это очень круто, спасибо всем, кто принял участие.
Эта игра представляет собой тип “игр полковника Блотто”. В ней принимают участие два игрока. У каждого одинаковое кол-во ресурсов, которое нужно разместить на поле NxM. Побеждает тот, кто займет больше клеток (т.е. кол-во ваших ресурсов на ней больше, чем у оппонента). Так выглядит условие для нашей задачи
Условие
1. Играют двое.
2. Поле игры представляет собой доску размера 3 на 3.
3. Каждый игрок располагает армией в 100 космодесантников.
4. Перед битвой ночью каждая сторона втайне размещает свои отряды произвольным способом на 9-и клетках. На каждую клетку можно поставить любое целое число космодесантников от 0 до 100.
5. Утром начинается сражение за очередную планету. На каждой из 9 клеток побеждает тот игрок, у кого на этой клетке стоит больше астартес. За победу на каждой из 9 клеток дается 1 очко. Если на некоторой клетке стоит одинаковое число, то сражение на этой клетке заканчивается вничью, и оба игрока получают 0,5 очка.
6. Сражение выигрывает тот, кто выиграл больше полей. Если оба игрока выиграли по 4,5 поля, сражение заканчивается вничью.
2. Поле игры представляет собой доску размера 3 на 3.
3. Каждый игрок располагает армией в 100 космодесантников.
4. Перед битвой ночью каждая сторона втайне размещает свои отряды произвольным способом на 9-и клетках. На каждую клетку можно поставить любое целое число космодесантников от 0 до 100.
5. Утром начинается сражение за очередную планету. На каждой из 9 клеток побеждает тот игрок, у кого на этой клетке стоит больше астартес. За победу на каждой из 9 клеток дается 1 очко. Если на некоторой клетке стоит одинаковое число, то сражение на этой клетке заканчивается вничью, и оба игрока получают 0,5 очка.
6. Сражение выигрывает тот, кто выиграл больше полей. Если оба игрока выиграли по 4,5 поля, сражение заканчивается вничью.
Когда я запустил этот эксперимент, я еще не знал, что у этой игры нет идеального решения, но благодаря комментариям я смог лучше разобраться в этой теме.
Начнем с победителей этой игры
![image](https://habrastorage.org/getpro/habr/post_images/497/4f3/152/4974f315268791faf54af1522b42162b.png)
Решение Ноунейм 4173![image](https://habrastorage.org/r/w1560/getpro/habr/post_images/e54/780/cc4/e54780cc40324f21d468b11a5a15fd3b.png)
![image](https://habrastorage.org/getpro/habr/post_images/e54/780/cc4/e54780cc40324f21d468b11a5a15fd3b.png)
Лучшее решение набрало 4121 побед — весьма неплохой результат. Но что было бы, если бы в игре участвовали решения только из ТОП-100?
![image](https://habrastorage.org/getpro/habr/post_images/3da/fc7/410/3dafc74101205127703e5ca10321d4e4.png)
Удивительно, но оно не вошло даже в топ5 (на 8м месте), а 1е место здесь заняло решение с 68-го места.
Решение Arem![image](https://habrastorage.org/r/w1560/getpro/habr/post_images/ea0/f51/644/ea0f51644ce093005dbae3a798dbceb4.png)
![image](https://habrastorage.org/getpro/habr/post_images/ea0/f51/644/ea0f51644ce093005dbae3a798dbceb4.png)
Это как раз показывает, что лучшего решения нет. Остальные результаты можно посмотреть на game.pavlukhinlab.com
Но что еще интересного можно узнать?
Самые большие числа игроки ставили в центр, в среднем все игроки заполняли первую строку большими числами, в то время как лучшие результаты делали больший упор на нижнюю строку.
![image](https://habrastorage.org/getpro/habr/post_images/38c/37c/d25/38c37cd2563c82af73107c582984c515.png)
![image](https://habrastorage.org/getpro/habr/post_images/430/74f/eae/43074feaeac5c7c8cf3468c237d15c4e.png)
средние значения по всем играм (слева) и по ТОП-100 (справа)
Ну и еще примеры лучших стратегий:
Примеры стратегий Ogoun (6 решений в ТОП-100)![image](https://habrastorage.org/r/w1560/getpro/habr/post_images/f94/065/96e/f9406596eaf4ccf57dd106c4948fdf75.png)
![image](https://habrastorage.org/r/w1560/getpro/habr/post_images/a61/a14/02b/a61a1402be86757c90a2be3969d38d61.png)
![image](https://habrastorage.org/getpro/habr/post_images/f94/065/96e/f9406596eaf4ccf57dd106c4948fdf75.png)
![image](https://habrastorage.org/getpro/habr/post_images/a61/a14/02b/a61a1402be86757c90a2be3969d38d61.png)
Примеры стратегий Guten (8 решений в ТОП-100)![image](https://habrastorage.org/r/w1560/getpro/habr/post_images/45a/dea/58b/45adea58b7464b976de1e9b2cef5035d.png)
![image](https://habrastorage.org/r/w1560/getpro/habr/post_images/bae/7b5/429/bae7b5429575722ba20fedf57edeec91.png)
![image](https://habrastorage.org/getpro/habr/post_images/45a/dea/58b/45adea58b7464b976de1e9b2cef5035d.png)
![image](https://habrastorage.org/getpro/habr/post_images/bae/7b5/429/bae7b5429575722ba20fedf57edeec91.png)
Лучшие стратегии выбирали 5 основных клеток, оставшиеся клетки заполнялись мелкими значениями. Что логично, ведь для победы достаточно занять 5 клеток.
Ну а теперь немного графиков.
Вероятностные распределения чисел:
![image](https://habrastorage.org/getpro/habr/post_images/b68/aec/837/b68aec837a3e0565faddeedf53baa886.png)
![image](https://habrastorage.org/getpro/habr/post_images/c0b/efe/bf8/c0befebf84a468a7afaaf535820e84c6.png)
вторые клетки среди всех игроков (слева) и ТОП-100 (справа)
![image](https://habrastorage.org/getpro/habr/post_images/175/197/922/175197922cbefdb37fd6ac4f0c68b02c.png)
![image](https://habrastorage.org/getpro/habr/post_images/394/782/e83/394782e83fca793480990081fe8ac638.png)
центральные клетки среди всех и ТОП-100
![image](https://habrastorage.org/getpro/habr/post_images/b47/438/d20/b47438d20c7ae82a33033872b34678a2.png)
распределение чисел по всем играм
![image](https://habrastorage.org/getpro/habr/post_images/240/282/e49/240282e496f8e687187c4528e0bdcb87.png)
распределение чисел по ТОП-100
Если смотреть распределения по всем клеткам среди всех игроков, то выглядят они в целом похоже. Также можно сделать вывод, что в данных условиях нет смысла заполнять клетки значениями больше 30.
На этом исследование подходит к концу — это все, что я смог извлечь из этих данных. Возможно кто-то из вас сможет предложить что-то еще, что можно проверить — жду вас в комментариях. Обезличенные игры ищите по ссылке.
Пы.Сы. В предыдущем посте я рассказал про нейронку, которая обучалась играть в эту игру. К сожалению, ничего из этого пока не получилось. Две нейронки решили, что лучшая стратегия — кидать нули на выходе и радоваться ничьей. Но может я еще разберусь в этой теме и сделаю отдельный пост посвященный ошибкам, которые я допустил при создании нейронки, и, возможно, успехам.