Гранди, Феликс
- 1 year ago
- 0
- 0
Функция Шпрага-Гранди широко используется в теории игр для нахождения выигрышной стратегии в комбинаторных играх, таких как игра Ним . Функция Шпрага-Гранди определяется для игр с двумя игроками, в которых проигрывает игрок, не имеющий возможности сделать очередной ход.
В случае дискретных игр иногда называется нимбером .
Теорема Шпрага-Гранди — это общий вывод из результатов, которые были независимо сформулированы и доказаны (1935) и (1939). Она состоит в том, что для любой беспристрастной игры , где выигрывает сделавший последний ход, для каждой позиции однозначно определено значение функции Шпрага-Гранди, которое и определяет выигрышную стратегию либо её отсутствие.
Функцией Шпрага-Гранди называется такая функция F, определенная для x и принимающая неотрицательные значения, так что:
Таким образом, F( x ) — наименьшее неотрицательное целое число, не найденное среди значений Шпрага-Гранди для определенных х .
Функция F определена на множестве всех позиций игры следующим образом:
где — множество целых неотрицательных чисел, а — множество всех допустимых ходов из позиции P .
Одно из полезных свойств функции Шпрага-Гранди заключается в том, что она равна нулю для всех проигрышных позиций и положительна для всех выигрышных позиций. Это даёт метод нахождения выигрышной стратегии:
Если у нас имеется игр , то можно рассмотреть комбинацию этих игр, для которой игровое поле состоит из совокупности игровых полей для игр и за один ход игрок может выбрать некоторое , и сделать ход на игровом поле для игры . Такая комбинация называется суммой игр и обозначается . Ситуацию на игровом поле игры , когда игровое поле игры находится в позиции , удобно обозначать как .
Функция Шпрага-Гранди обладает одним удивительным свойством, которое позволяет оптимально играть в сумму игр , зная функцию Шпрага-Гранди для всех позиций каждой из игр . Формулируется оно следующим образом:
где — исключающее «или» (он же XOR).
Имеется площадь, состоящая из 10 клеток. Играют два игрока. За один ход разрешается делить площадь на две неравные ненулевые площади так, чтобы единство каждой отдельно взятой клетки не нарушалось (то есть клетку делить нельзя). Проигрывает тот, кто не может сделать ход. Кто выигрывает при условии правильной справедливой игры?
Задача решается с конца. Рассмотрим варианты деления площади для всех случаев от 1 до 10 клеток, и найдем для них значения функции Шпрага-Гранди. Заметим, что для данной игры, в результате деления площади каждый раз на две новые площади, значение функции Шпрага-Гранди находится с помощью Ним-суммы .
Значение Шпрага-Гранди для n = 10 получается равным 0. Следовательно, игрок, делающий ход первым, проигрывает. При любом его ходе второй игрок переходит в позиции 4 + 4 или n = 1/2/7, значение Шпрага-Гранди для которых также равно 0.
Выигрывает тот, кто ходит вторым.