stringtranslate.com

Дерево игры

В контексте комбинаторной теории игр , которая обычно изучает последовательные игры с совершенной информацией , дерево игры — это граф, представляющий все возможные игровые состояния в такой игре. К таким играм относятся такие известные, как шахматы , шашки , го и крестики-нолики . Его можно использовать для измерения сложности игры , поскольку он отражает все возможные варианты развития игры. Из-за больших деревьев сложных игр, таких как шахматы, алгоритмы, предназначенные для игры в этот класс игр, будут использовать частичные деревья игр, что делает вычисления возможными на современных компьютерах. Существуют различные методы решения игровых деревьев. Если можно создать полное дерево игры, можно использовать детерминированный алгоритм , такой как обратная индукция или ретроградный анализ . Рандомизированные алгоритмы и алгоритмы minmax , такие как MCTS , могут использоваться в тех случаях, когда полное дерево игры невозможно.

Понимание дерева игры

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

Полное дерево игры — это дерево игры, начинающееся с начальной позиции и содержащее все возможные ходы из каждой позиции; полное дерево — это то же дерево, что и полученное из представления игры в развернутой форме . Точнее, полная игра — это норма игры в теории игр. Который может ясно выразить многие важные аспекты. Например, последовательность действий, которые могут предпринять заинтересованные стороны, их выбор в каждой точке принятия решения, информация о действиях, предпринимаемых другими заинтересованными сторонами, когда каждая заинтересованная сторона принимает решение, и преимущества всех возможных результатов игры. [2]

Первые два слоя игрового дерева для игры в крестики-нолики.

На диаграмме показаны первые два уровня, или слоя , в дереве игры для игры в крестики-нолики . Вращения и отражения позиций эквивалентны, поэтому у первого игрока есть три варианта хода: в центре, на краю или в углу. У второго игрока есть два варианта ответа, если первый игрок играл в центре, в противном случае — пять вариантов. И так далее.

Количество конечных узлов в полном дереве игры — это количество возможных способов ведения игры. Например, дерево игры в крестики-нолики имеет 255 168 конечных узлов.

Деревья игры важны для искусственного интеллекта , поскольку один из способов выбрать лучший ход в игре — это поиск по дереву игры с использованием любого из многочисленных алгоритмов поиска по дереву в сочетании с минимаксными правилами для обрезки дерева . Дерево игры «крестики-нолики» легко доступно для поиска, но полное дерево игр для более крупных игр, таких как шахматы , слишком велико для поиска. Вместо этого программа, играющая в шахматы, просматривает частичное дерево игры : обычно столько слоев из текущей позиции, сколько она может выполнить за отведенное время. За исключением случая «патологических» игровых деревьев [3] (которые на практике встречаются довольно редко), увеличение глубины поиска (т. е. числа просматриваемых ходов) обычно повышает вероятность выбора лучшего хода.

Игры двух человек также можно представить в виде деревьев и/или . Чтобы первый игрок выиграл игру, должен существовать выигрышный ход для всех ходов второго игрока. Это представлено в дереве «и-или» с помощью дизъюнкции для представления альтернативных ходов первого игрока и использования конъюнкции для представления всех ходов второго игрока.

Решение игровых деревьев

Версия детерминированного алгоритма

Произвольное дерево игры, полностью раскрашенное.

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

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

На диаграмме показано дерево игры для произвольной игры, раскрашенное по приведенному выше алгоритму.

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

Любое поддерево, которое можно использовать для решения игры, называется деревом решений , а размеры деревьев решений различной формы используются в качестве меры сложности игры . [4]

Версия рандомизированных алгоритмов

При решении деревьев игр можно использовать рандомизированные алгоритмы . У такого типа реализации есть два основных преимущества: скорость и практичность. В то время как детерминированная версия решения деревьев игры может быть выполнена за Ο ( n ) , следующий рандомизированный алгоритм имеет ожидаемое время выполнения θ ( n 0,792 ) , если каждый узел в дереве игры имеет степень 2. Более того, он практичен, поскольку рандомизированный алгоритмы способны «помешать врагу», то есть противник не может победить систему игровых деревьев, зная алгоритм, используемый для решения игрового дерева, поскольку порядок решения является случайным.

Ниже приведена реализация алгоритма решения рандомизированного дерева игры: [5]

def  gt_eval_rand ( u )  ->  bool : """Возвращает True, если этот узел оценивается как выигрыш, в противном случае False """ if u . лист : вернуть тебя . win else : random_children = ( gt_eval_rand ( child ) для дочернего элемента в случайном_порядке ( u.children ) ) if u . op == "ИЛИ" : вернуть любой ( random_children ) , если u . op == «И» : вернуть все ( random_children )                         

Алгоритм использует идею « короткого замыкания »: если корневой узел рассматривается как оператор « ИЛИ », то как только будет найдено одно значение True , корень классифицируется как True ; и наоборот, если корневой узел считается оператором « И », то как только будет найден один False , корень классифицируется как False .

[6]

Смотрите также

Рекомендации

  1. ^ Цукерман, Инон; Уилсон, Брэндон; Нау, Дана С. (2018). «Как избежать патологии дерева игры при состязательном поиске для двух игроков». Вычислительный интеллект . 34 (2): 542–561. дои : 10.1111/монета.12162. ISSN  1467-8640. S2CID  46926187.
  2. ^ Хуан, Цзышуо; Ю, Ханг; Чу, Сянъян; Пэн, Чжэньвэй (01 мая 2018 г.). «Новая модель оптимизации, основанная на дереве игры для систем преобразования нескольких энергий». Энергия . 150 : 109–121. doi :10.1016/j.energy.2018.02.091. ISSN  0360-5442.
  3. ^ Нау, Дана (1982). «Исследование причин патологии в играх». Искусственный интеллект . 19 (3): 257–278. дои : 10.1016/0004-3702(82)90002-9.
  4. ^ Виктор Эллис (1994). В поисках решений в играх и искусственном интеллекте (PDF) . Кандидат наук. Диссертация, Лимбургский университет, Маастрихт, Нидерланды. ISBN 90-900748-8-0.
  5. ^ Дэниел Рош (2013). SI486D: Случайность в вычислениях, Блок игровых деревьев. Военно-морская академия США, факультет компьютерных наук.
  6. ^ Пекарж, Либор; Матуш, Радек; Андрела, Иржи; Личманнова, Мартина (сентябрь 2020 г.). «Обзор исследований игр Калаха и предложение нового эвристически-детерминированного алгоритма по сравнению с решениями поиска по дереву и принятием решений человеком». Информатика . 7 (3): 34. doi : 10.3390/informatics7030034 . hdl : 10084/142398 .

дальнейшее чтение