top of page
Моделирование

Графы. Игровые стратегии

Игровые стратегии

Как вы уже знаете из § 6, игровые модели — это модели, ко­торые описывают соперничество двух (или более) сторон, каждая из которых стремится к выигрышу, т. е. преследует свою цель. Часто цели участников противоречивы — выигрыш одного озна­чает проигрыш других.

Построением и изучением игровых моделей занимается тео­рия игр — раздел прикладной математики. Задача состоит в том, чтобы найти стратегию (алгоритм игры), который позволит тому или другому участнику получить наибольший выигрыш (или, по крайней мере, наименьший проигрыш) в предположении, что со­перники играют безошибочно.

Во многих простых играх, в которых игроки ходят по очереди, есть не так много вариантов развития событий, и их можно рас­смотреть полностью, однозначно определив, кто выиграет в задан­ной начальной ситуации, если оба соперника не будут ошибаться.

Все позиции (игровые ситуации) делятся на выигрышные и проигрышные. Выигрышная позиция — это такая позиция, в ко­торой игрок, делающий первый ход, может гарантированно выиг­рать при любой игре соперника, если сам не сделает ошибку. При этом говорят, что у него есть выигрышная стратегия — алгоритм выбора очередного хода, позволяющий ему выиграть.

Если игрок начинает играть в проигрышной позиции, он обя­зательно проиграет, если ошибку не сделает его соперник. В этом случае говорят, что у него нет выигрышной стратегии. Таким об­разом, общая стратегия игры состоит в том, чтобы своим ходом создать проигрышную позицию для соперника.

Выигрышные и проигрышные позиции можно охарактеризо­вать так:

•  позиция, из которой все возможные ходы ведут в выигрыш­
ные позиции, — проигрышная;

•  позиция,   из  которой   хотя  бы  один   из  возможных  ходов
ведёт в проигрышную позицию,  — выигрышная, при этом
стратегия игрока состоит в том, чтобы перевести игру в эту
проигрышную (для соперника) позицию.

Для примера рассмотрим игру с камнями, в которой участ­вуют два игрока. Вначале перед игроками лежит куча из некото­рого количества камней (обозначим его S). За один ход игрок мо­жет добавить в кучу один камень (ход « + 1») или увеличить коли­чество камней в куче в два раза (ход «*2»). Например, имея кучу из 5 камней, за один ход можно получить кучу из 6 или 10 кам­ней. У каждого игрока есть неограниченное количество камней. Победителем считается игрок, первым получивший кучу, в кото­рой 14 камней или больше.

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

 

    Здесь «В1» обозначает выигрыш за один ход.

При S = 6 у первого игрока есть два хода: ход «+1» даёт кучу из 7 камней, а ход «*2» — кучу из 12 камней. Выиграть за один не может, оба возможных хода ведут в выигрышные (для второго!) позиции, поэтому первый игрок проиграет, если второй не ошибётся. Позицию S — 6 отметим в таблице как «X1» (проигрыш за 1 ход):

 

 

Вспомним, что задача игрока — перевести игру в проигрыш­ную для соперника позицию. Если S = 5 или S = 3, первый игрок может получить (ходом «+1» или «*2» соответственно) кучу из 6 камней, т. е. создать проигрышную позицию. Этого достаточно для выигрыша, но выиграть можно только за 2 хода:

 

Рассуждая аналогично, выясняем, что позиция S = 4 — про­игрышная, так как возможные ходы ведут в выигрышные пози­ции (соперник выиграет за 1 или за 2 хода). При S = 2 первый иг­рок может своим ходом «*2» перевести игру в проигрышную по­зицию (S = 4), поэтому он выиграет. А при S = 1 он проиграет, потому что может своим ходом получить только кучу из 2 кам­ней:

 

Полученная таблица показывает результат игры первого игрока в том случае, если второй не будет ошибаться. Если игра начинает­ся в проигрышной позиции, первый игрок проиграет, а если в вы­игрышной — его стратегия состоит в том, чтобы на каждом шаге своим ходом создавать проигрышную позицию для соперника.

Для полного исследования всех вариантов игры можно по­строить дерево, содержащее все возможные ходы. Предположим, что сначала в куче 4 камня (эта позиция будет корнем дерева). Тогда в результате первого хода может получиться куча из 5 или 8 камней:

 

Следующий уровень дерева показывает все возможные позиции после ответного хода второго игрока:

 

Мы видим, что второй игрок может выиграть своим первым ходом (получив 16 камней), если первый построит кучу из 8 кам­ней. В остальных случаях игра продолжается, и дерево можно строить дальше по тому же принципу.

Как мы уже показали ранее с помощью таблицы, при S = 4 выигрывает второй игрок. Чтобы доказать это с помощью дерева, не нужно строить полное дерево игры. Достаточно рассмотреть все возможные ходы соперника и для каждого из них найти один (!) выигрышный ход второго игрока. Вариант с выигрышем в один ход мы уже разобрали, теперь посмотрим, что произойдёт, если первый игрок получит кучу из 5 камней. Как следует из по­строенной выше таблицы, для кучи из 5 камней выигрышный ход второго игрока — «+1», он переводит игру в проигрышную позицию. При любом ответе первого игрока второй выигрывает своим вторым ходом «*2»:

 

Таким образом, мы доказали, что при S = 4 у второго игрока есть стратегия, позволяющая ему гарантированно выиграть, по крайней мере, за 2 хода.

на реальной местности.

bottom of page