Теория игр: что где применять
Короткая таблица: по формулировке условия — какой аппарат брать.
2 мин
Разбор задачи про игру почти всегда начинается с трёх вопросов: ходы у игроков одинаковые? партия конечна? позиция распадается на независимые части?
| в условии | что брать |
|---|---|
| одна позиция, граф ходов без циклов | выигрышные и проигрышные позиции |
| граф ходов с циклами, возможна бесконечная партия | ретроанализ, три исхода |
| несколько независимых частей | функция Гранди и XOR |
| кучи камней, берут из одной | ним |
| берут не больше | ним с Гранди |
| проигрывает взявший последний | мизерный ним |
| двигают к краю, у края объекты исчезают | лестничный ним |
| две кучи, можно брать поровну из обеих | игра Уайтхоффа |
| большие ограничения, игра простая | искать закономерность |
| ход зависит от предыдущего хода соперника | позиция — пара (что осталось, что разрешено) |
Что проверить до того, как писать
- Кто проигрывает. «Не может сходить» и «взял последний» — разные игры.
- Одинаковы ли ходы. Если у игроков разные наборы ходов, вся теория Гранди неприменима.
- Конечна ли партия. Появился цикл — нужен ретроанализ и третий исход.
- Независимы ли части. Ход, задевающий сразу две части, ломает XOR.
Оценка бюджета
| подход | стоимость |
|---|---|
| перебор с запоминанием на графе позиций | |
| ретроанализ | |
| Гранди для игры вычитания до | |
| поиск периода | в худшем случае |
| ответ по формуле | на запрос |
Практический вывод: если , считайте перебором и не ищите формулу. Если до — формула нужна обязательно, и её всё равно сначала угадывают по таблице, посчитанной перебором.