Дерево игры. Поиск выигрышной стратегии - umotnas.ru o_O
Главная
Поиск по ключевым словам:
страница 1страница 2
Похожие работы
Название работы Кол-во страниц Размер
Проективный графический тест "дерево" 1 181.81kb.
Лекция: Анализ и моделирование функциональной области внедрения ис... 1 215.08kb.
Исходное дерево 1 21.82kb.
Программа дисциплины Стратегии в менеджменте: Маркетинговые стратегии... 1 207.39kb.
Ключевые слова: многокритериальные задачи выбора, матричная игра... 1 18.95kb.
Организационно – деятельностные игры 1 105.23kb.
Ольга Игоревна Крупенчук ладушки. Пальчиковые игры для малышей ладушки... 1 94.68kb.
Неэкономические приложения праксеологии (на примере спортивной игры 1 244.67kb.
Стратегии производителей 1 82.6kb.
Реферат математические игры и головоломки 1 123.54kb.
Инструменты целеполагания и формирования стратегии развития предприятия 1 147.34kb.
Задача о нахождении минимальных затрат при строительстве транспортных... 1 30.46kb.
Викторина для любознательных: «Занимательная биология» 1 9.92kb.

Дерево игры. Поиск выигрышной стратегии - страница №1/2


© К. Поляков, 2009-2014

C3 (высокий уровень, время – 30 мин)


Тема: Дерево игры. Поиск выигрышной стратегии.

Что нужно знать:

  • в простых играх можно найти выигрышную стратегию, просто перебрав все возможные варианты ходов соперников

  • для примера рассмотрим такую игру: сначала в кучке лежит 5 спичек; два игрока убирают спички по очереди, причем за 1 ход можно убрать 1 или 2 спички; выигрывает тот, кто оставит в кучке 1 спичку

  • первый игрок может убрать одну спичку (в этом случае их останется 4), или сразу 2 (останется 3), эти два варианта можно показать на схеме:



  • если первый игрок оставил 4 спички, второй может своим ходом оставить 3 или 2; а если после первого хода осталось 3 спички, второй игрок может выиграть, взяв две спички и оставив одну:



  • если осталось 3 или 2 спички, то 1-ый игрок (в обеих ситуациях) выиграет своим ходом:



  • простроенная схема называется «деревом игры», она показывает все возможные варианты, начиная с некоторого начального положения (для того, чтобы не загромождать схему, мы не рисовали другие варианты, если из какого-то положения есть выигрышный ход)

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

  • проанализируем эту схему; если первый игрок своим первым ходом взял две спички, то второй сразу выигрывает; если же он взял одну спичку, то своим вторым ходом он может выиграть, независимо от хода второго игрока

  • кто же выиграет при правильной игре? для этого нужно ответить на вопросы: 1) «Может ли первый игрок выиграть, независимо от действий второго?», и 2) «Может ли второй игрок выиграть, независимо от действий первого?»

  • ответ на первый вопрос – «да»; действительно, убрав всего одну спичку первым ходом, 1-ый игрок всегда может выиграть на следующем ходу

  • ответ на второй вопрос – «нет», потому что если первый игрок сначала убрал одну спичку, второй всегда проиграет, если первый не ошибется




  • таким образом, при правильной игре выиграет первый игрок; для этого ему достаточно первым ходом убрать всего одну спичку

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

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

  • все позиции в простых играх делятся на выигрышные и проигрышные

  • выигрышная позиция – это такая позиция, в которой игрок, делающий первый ход, может гарантированно выиграть при любой игре соперника, если не сделает ошибку; при этом говорят, что у него есть выигрышная стратегия – алгоритм выбора очередного хода, позволяющий ему выиграть

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

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

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

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

Пример задания:


Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в кучу один камень или увеличить количество камней в куче в два раза. Например, имея кучу из 15 камней, за один ход можно получить кучу из 16 или 30 камней. У каждого игрока, чтобы делать ходы, есть неограниченное количество камней. Игра завершается в тот момент, когда количество камней в куче становится не менее 22. Победителем считается игрок, сделавший последний ход, то есть первым получивший кучу, в которой будет 22 или больше камней.

В начальный момент в куче было S камней, 1 ≤ S ≤ 21. Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника. Описать стратегию игрока – значит описать, какой ход он должен сделать в любой ситуации, которая ему может встретиться при различной игре противника.

Выполните следующие задания. Во всех случаях обосновывайте свой ответ.

1. а) Укажите все такие значения числа S, при которых Петя может выиграть в один ход. Обоснуйте, что найдены все нужные значения S, и укажите выигрывающий ход для каждого указанного значения S.

б) Укажите такое значение S, при котором Петя не может выиграть за один ход, но при любом ходе Пети Ваня может выиграть своим первым ходом. Опишите выигрышную стратегию Вани.

2. Укажите два таких значения S, при которых у Пети есть выигрышная стратегия, причём
– Петя не может выиграть за один ход, и
– Петя может выиграть своим вторым ходом, независимо от того, как будет ходить Ваня.


Для каждого указанного значения S опишите выигрышную стратегию Пети.

3. Укажите значение S, при котором:
– у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети, и
– у Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом.


Для указанного значения S опишите выигрышную стратегию Вани.

Постройте дерево всех партий, возможных при этой выигрышной стратегии Вани (в виде рисунка или таблицы). На рёбрах дерева указывайте, кто делает ход, в узлах – количество камней в куче.

Решение (способ 1, таблица):

  1. Вопрос 1а. Последним ходом может быть «+1» или «*2». Выиграть последним ходом «+1» можно, если S = 21. Ходом «*2» можно выиграть из любой позиции при S > 10 (сюда входит и 21!). Можно составить таблицу, в которой «В1» обозначает выигрыш за один ход:

S

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21


































В1

В1

В1

В1

В1

В1

В1

В1

В1

В1

В1

Поэтому ответ должен быть такой:

«1а. Петя может выиграть за один ход при любом S > 10. Он должен увеличить вдвое число камней, при этом в куче всегда получится не менее 22 камней.»



  1. Вопрос 1б. Для ответа на этот вопрос нужно найти позицию, из которой все возможные ходы ведут к выигрышу за 1 ход, то есть к позиции, отмеченной в таблице как «В1». Например, это позиция при S = 10: ход «+1» ведёт в выигрышную позицию S = 11, а ход «*2» ведёт в выигрышную позицию S = 20. Поэтому позицию S = 10 отметим в таблице как «×­1» (проигрыш за 1 ход):

S

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21































×­1

В1

В1

В1

В1

В1

В1

В1

В1

В1

В1

В1

Ответ на вопрос 1б должен быть такой:

«1б. При S = 10 Петя не может выиграть в один ход, потому что при его ходе «+1» число камней в куче становится равно 11 (меньше 22), а при ходе «*2» число камней в куче становится равно 20 (также меньше 22). Других возможных ходов у Пети нет. Из любой позиции после одного хода Пети (это может быть 11 или 20), Ваня может выиграть своим первых ходом, удвоив количество камней в куче.»



  1. Вопрос 2. Пете, для того, чтобы гарантированно выиграть на втором ходу, нужно из начальной позиции перевести игру в проигрышную позицию, отмеченную знаком «×1». Пока мы нашли одну такую позицию: S = 10. Петя может перевести игру в эту позицию из позиций

S = 9 (ходом «+1») и S = 5 (ходом «*2»)

В таблице отмечаем эти положения как «В­­2» – гарантированный выигрыш за 2 хода:



S

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21
















В2










В2

×1

В1

В1

В1

В1

В1

В1

В1

В1

В1

В1

В1

Поэтому ответ должен быть такой:

«2. Из позиций S = 9 и S = 5 Петя не может выиграть в один ход, но Петя может выиграть своим вторым ходом, независимо от того, как будет ходить Ваня. При S = 9 ходом «+1» Пете нужно перевести игру в позицию S = 10, которая является проигрышной (см. ответ на вопрос 1б). При S = 5 Петя переводит игру в ту же позицию ходом «*2».»



  1. Вопрос 3. Нужно найти такую позицию, из которой оба возможных хода Пети ведут в позиции, отмеченные в таблице как «В­1» (выигрыш в 1 ход) и «В­2» (выигрыш в 2 хода). Например, это позиция S = 8, из которой можно «попасть» только в S = 9 («В2») и S = 16 («В1»). Отмечаем эту позицию как «×2» – проигрыш в два хода:

S

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21
















В2







×2

В2

×­1

В1

В1

В1

В1

В1

В1

В1

В1

В1

В1

В1

Поэтому ответ должен быть такой:

«3. В позиции S = 8 у Вани есть выигрышная стратегия, которая позволяет ему выиграть первым или вторым ходом. Если Петя выбирает ход «+1», в куче становится 9 камней и Ваня выигрывает на 2-м ходу (см. ответ на вопрос 2). Если Петя выбирает ход «*2», Ваня выигрывает первым ходом, удвоив число камней в куче.»



  1. Остается нарисовать дерево возможных вариантов игры из позиции S = 8. Для этого используем построенную таблицу:

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

Обратите внимание, что на каждом шаге мы рассматриваем все возможные ходы Пети и только один лучший ход Вани. Например, в позиции S = 11 Ваня может сделать ход «+1» и получить 12 камней в куче, но тогда он проиграет (Петя следующим ходом удвоит число камней и получит 24 камня). Этот ход мы не рассматриваем, потому что мы хотим доказать, что у Вани есть выигрышная стратегия – ему достаточно хода «*2», после которого он выиграет. В то же время нужно рассмотреть все возможные ответы Пети, чтобы доказать, что у него нет шансов на выигрыш при правильной игре Вани. В этом суть теории игр – добиться лучшего результата в худшем случае, то есть при безошибочной игре соперника.

Построенное дерево можно записать и в другой форме, например, «положив его на бок»:

Ещё один вариант – представить дерево в виде таблицы:



Начальная позиция

1-й ход Пети

(все варианты)



1-й ход Вани

(ход по стратегии)



2-й ход Пети

(все варианты)



2-й ход Вани

(ход по стратегии)



8

9

10

11

22 (выигрыш)

20

40 (выигрыш)

16

32 (выигрыш)







Решение (способ 2, математический, О.В. Лучникова, г. Новокузнецк):

  1. Вопрос 1а. Петя выигрывает первым ходом:

Петя должен правильно выбрать одно из двух возможных действий (+1 ИЛИ *2), которое переведет кучу камней к состоянию ≥22. Таким образом, получаем совокупность неравенств:





  1. Вопрос 1б. Ваня выигрывает первым ходом:

Любое действие Пети (И +1 И *2) должно привести кучу камней к состоянию . Только это может обеспечить выигрыш Вани на следующем ходу. Таким образом, получаем систему:





  1. Вопрос 2. Назовите два значения S, при которых Петя может выиграть своим вторым ходом?



  1. Петя должен выиграть, а это значит, он должен правильно выбрать один из двух возможных вариантов действий (+1 ИЛИ *2), которое переведет кучу камней к состоянию . Только это может обеспечить ему выигрыш при любом действии его противника Вани. Таким образом, получаем совокупность:



  1. Вопрос 3. При каком S Ваня выигрывает своим первым или вторым ходом?

  2. Сначала найдем, при каком S Ваня гарантированно выигрывает именно вторым ходом.



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



  1. Найдем, при каких значениях S Петя не сможет победить ни после первого, ни после второго хода. Т.е. любое действие Пети приведет кучу камней к такому состоянию, при котором Ваня сможет выиграть после 1 или после второго хода:





  1. Совокупность решений первой и второй частей – и есть все множество решений третьего вопроса. Т.е. S = 8.

  2. Построим дерево игры для S = 8



Важное замечание по поводу решения этой задачи методом О.В. Лучниковой (Г.  Сергеев, ГБОУ Гимназия 1551 г. Москвы): в случае, когда возможных ходов не два, а больше, при ответе на вопрос 3 прямое применение этого метода может привести к неверному результату. Действительно, система

означает, что один из возможных ходов ведёт в позицию типа В2 (выигрыш в два хода), а другой – в позицию типа В­1 (выигрыш в один хода). Если есть еще и другие возможные ходы, они могут вести в проигрышные позиции, тогда, выбрав один из этих ходов, Петя может выиграть. Таким образом, к этой системе нужно добавить условие «все возможные ходы ведут в позиции типа В1 или В­2». Еще раз отметим, что в задачах с двумя возможными ходами оно выполнится автоматически. Кроме того, нужно учесть, что из ответа на этот вопрос нужно исключить ответ на вопрос 1б, то есть позиции, из которых есть гарантированный выигрыш в 1 ход.

Детали решения в случае трёх возможных ходов см. в следующей разобранной задаче (решение Г. Сергеева).

Решение (способ 3, «холмы и ямы», А. Козлов, г. Северобайкальск):


  1. будем обозначать на рисунке выигрышные позиции «холмом» (возвышенностью), а проигрышные – «ямой» (впадиной); таким образом, задача игрока – «посадить соперника в яму», то есть создать для него проигрышную позицию

  2. Вопрос 1а. Последним ходом может быть «+1» или «*2». Выиграть последним ходом «+1» можно, если S = 21. Ходом «*2» можно выиграть из любой позиции при S > 10 (сюда входит и 21!). Таким образом, можно выделить первый «холм», стартовав с которого игрок выигрывает в один ход (число 1 над «холмом»):

















































1
















S

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

Поэтому ответ должен быть такой:

«1а. Петя может выиграть за один ход при любом S > 10. Он должен увеличить вдвое число камней, при этом в куче всегда получится не менее 22 камней.»



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


















































1
















S

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21































1


































Ответ на вопрос 1б должен быть такой:

«1б. При S = 10 Петя не может выиграть в один ход, потому что при его ходе «+1» число камней в куче становится равно 11 (меньше 22), а при ходе «*2» число камней в куче становится равно 20 (также меньше 22). Других возможных ходов у Пети нет. Из любой позиции после одного хода Пети (это может быть 11 или 20), Ваня может выиграть своим первых ходом, удвоив количество камней в куче.»



  1. Вопрос 2. Пете, для того, чтобы гарантированно выиграть на втором ходу, нужно из начальной позиции перевести игру в проигрышную позицию, отмеченную знаком «×1». Пока мы нашли одну такую позицию: S = 10. Петя может перевести игру в эту позицию из позиций

S = 9 (ходом «+1») и S = 5 (ходом «*2»)

В таблице отмечаем эти положения как «холмы» с индексом 2 – гарантированный выигрыш за 2 хода:


















2










2



















1
















S

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21































1


































Поэтому ответ должен быть такой:

«2. Из позиций S = 9 и S = 5 Петя не может выиграть в один ход, но Петя может выиграть своим вторым ходом, независимо от того, как будет ходить Ваня. При S = 9 ходом «+1» Пете нужно перевести игру в позицию S = 10, которая является проигрышной (см. ответ на вопрос 1б). При S = 5 Петя переводит игру в ту же позицию ходом «*2».»



  1. Вопрос 3. Нужно найти такую позицию, из которой оба возможных хода Пети ведут в позиции, отмеченные в таблице как «холмы» с метками 1 (выигрыш в 1 ход) или 2 (выигрыш в 2 хода). Например, это позиция S = 8, из которой можно «попасть» только в S = 9 («холм-2») и S = 16 («холм-1»). Отмечаем эту позицию как «яму» с меткой 2 – проигрыш в два хода:
















2










2



















1
















S

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

























2




1


































Поэтому ответ должен быть такой:

«3. В позиции S = 8 у Вани есть выигрышная стратегия, которая позволяет ему выиграть первым или вторым ходом. Если Петя выбирает ход «+1», в куче становится 9 камней и Ваня выигрывает на 2-м ходу (см. ответ на вопрос 2). Если Петя выбирает ход «*2», Ваня выигрывает первым ходом, удвоив число камней в куче.»


Ещё пример задания:


Здесь и в задачах для тренировки условие записано в сокращенном виде для экономии места. Полную форму записи условия см. в первой разобранной задаче.

Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в кучу один камень, добавить в кучу три камня или увеличить количество камней в куче в два раза. Например, имея кучу из 15 камней, за один ход можно получить кучу из 16, 18 или 30 камней. У каждого игрока, чтобы делать ходы, есть неограниченное количество камней. Игра завершается в тот момент, когда количество камней в куче становится не менее 30.
В начальный момент в куче было S камней, 1 ≤ S ≤ 29.


1. При каких S: 1а) Петя выигрывает первым ходом; 1б) Ваня выигрывает первым ходом?

2. Назовите три значения S, при которых Петя может выиграть своим вторым ходом?

3. При каких S Ваня выигрывает своим первым или вторым ходом?

Решение (способ 2, математический, Г.  Сергеев, г. Москва):

  1. Вопрос 1а. Петя выигрывает первым ходом:


Петя должен правильно выбрать один из трёх возможных вариантов действий


(+1 ИЛИ +3 ИЛИ *2), которое переведет кучу камней к состоянию ≥30. Таким образом, получаем совокупность неравенств:



  1. Вопрос 1б. Ваня выигрывает первым ходом

Любое действие Пети (И +1 И +3 И *2) должно привести кучу камней к состоянию


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



  1. Назовите три значения S, при которых Петя может выиграть своим вторым ходом?

Петя должен выиграть, а это значит, он должен правильно выбрать один из трёх возможных вариантов действий (+1 ИЛИ +3 ИЛИ *2), которое переведет кучу камней к состоянию . Только это может обеспечить ему выигрыш при любом действии его противника Вани. Таким образом, получаем совокупность:





  1. Вопрос 3. При каком S Ваня выигрывает своим первым или вторым ходом?

Сначала найдем, при каком S Ваня выигрывает своим вторым ходом.



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



  1. Найдем, при каких значениях S любое действие Пети приведет кучу камней к такому состоянию, при котором Ваня сможет выиграть после 1 или после второго хода:




  1. Составим систему на основе следующих условий:

    1. любой ход Пети ведет в позицию выигрыша в два хода () или в один ход ()

    2. текущая позиция не совпадает с проигрышной позицией в один ход (), иначе, кроме нужных значений S, мы здесь получим ещё ответ на вопрос 1б





  1. итак, ответ на вопрос 3: S = 10 или 12.

  2. Построим дерево игры для S = 10. Обратите внимание, что после ходов Пети +1 и +3 Ваня своим следующим ходом сводит игру к одной и той же проигрышной (для Пети) позиции
    S = 14.


следующая страница >>