Пред.
След.
Макеты страниц
Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике ДЛЯ СТУДЕНТОВ И ШКОЛЬНИКОВ ЕСТЬ
ZADANIA.TO
10.3.2. Деревья игрВ чисто конфликтной ситуации два противника делают ходы и контрходы, приближаясь к конечной ситуации, желательной только для одного из них. Если ставки невелики и правила точно определены, мы называем это игрой. Деловые отношения, конфликты между людьми, войны сходны с играми, хотя допустимые ходы, правила определения преимущества или ущерба и сами рамки таких серьезных конфликтов обычно нечетки. Тем не менее заманчиво считать задачи принятия решений в реальных жизненных ситуациях, содержащих конфликт, играми; это позволило бы анализировать их математически. Так как в некоторых важных типах конфликтов необходимо быстро принимать решения, требующие обработки огромного объема данных, и так как любой процесс принятия решения с помощью ЭВМ должен быть математически обоснован, то вопрос о том, как ЭВМ должна разыгрывать сложные игры, очень важен для практики. Кроме того, и игры, и работа с ЭВМ являются своего рода вызовом человеческому интеллекту. Довольно трудно научить ЭВМ хорошо играть в интересные игры, но именно эта трудность и может доставить удовольствие некоторым из нас. Формально мы будем заниматься вычислимыми стратегиями для игр двух лиц с нулевой суммой и с полной информацией (Льюс и Райфа, 1957). Менее формально мы будем рассматривать задачу программирования стратегии поведения для условной игры на доске при следующих правилах: два игрока ходят по очереди, выбирая ходы из заданного множества возможных ходов; любой проигрыш материала, позиции в игре для одного партнера является прямым выигрышем для другого; каждый ход сразу же становится известен; результат каждого хода детерминирован. Последнее означает, что позиция игроков в результате предложенного хода полностью предсказуема в отличие от предсказуемости с точностью до случайного события. В качестве иллюстрации последнего ограничения можно привести разновидность игры в шашки, в которой ходы не детерминированы. Пусть, например, съеденная шашка снимается с доски только после того, как бросается игральная кость и выпадает 4 или больше; ясно, что результат хода можно предсказать только с некоторой вероятностью. Можно было бы расширить обсуждение и рассмотреть вероятностные исходы, но это уведет нас от искусственного интеллекта в область теории игр. Игру двух лиц с нулевой суммой можно представить серией поочередных ходов партнеров, пока не будет достигнута одна из заключительных позиций. Каждой заключительной позиции приписывается число, которое можно назвать исходом игры. Игрок А стремится максимизировать исход, игрок В — минимизировать его. Во многих ситуациях можно просто приписать В качестве примера рассмотрим игру, заданную в матричной форме в табл. 10.1. Ее можно интерпретировать так. Таблица 10.1 Упрощенная игра в матричной форме
Каждый из игроков А и В выбирает один из двух ходов Эту игру можно представить также и в виде дерева (рис. 10.7). Отметим квадратами узлы, представляющие ходы игрока А, кружочками — ходы игрока В. Листья отмечены числами, показывающими исходы игры. Поставим теперь вопрос: Какова цена этой игры для А? Мы уже знаем, что А может гарантировать себе исход, равный 5. Вычислим эту величину заново по рис. 10.7, чтобы проиллюстрировать метод, пригодный и для более сложных игр. Метод работает в обратном направлении, начиная от исходов игры. Исходам непосредственно предшествует ход игрока В. Какова цена каждого из этих ходов? Поскольку каждая позиция представляет выбор для В, а В пытается минимизировать результат этого выбора, то цена позиции, разумеется, равна наименьшему из исходов, которых В может достичь из этой позиции. Поэтому, если множество исходов для
Рис. 10.7. Дерево игры, заданной в табл. 10.1. Для того чтобы установить обращенную цену позиции игрока А, надо просто повторить операцию, отправляясь от известных теперь обращенных цен позиций игрока В и находя максимумы вместо минимумов, поскольку А стремится максимизировать исходы. В рассматриваемой тривиальной игре первый (и единственный) ход игрока А предоставит В позиции с ценами 4 и 5. Поскольку А стремится максимизировать исход, цена выбранной им позиции (а значит, и всей игры) равна 5. Идея метода применима ко всем играм на доске. Можно представить себе, что мы исследуем все допустимые дебютные последовательности ходов в шахматах, все возможные ответы на них и т. д. до тех пор, пока не находим гарантированную выигрышную последовательность ходов, если такая существует. Если ее нет, это тоже станет известно. Смысл игры в шахматы пропадет. К счастью для любителей шахмат, на практике такой метод совершенно непригоден. В наиболее интересном случае в шахматах достаточно рассмотреть 20 дебютных ходов и 20 ответов на них. По оценке Минского, соответствующее дерево состоит из 10120 узлов — гораздо больше, чем в состоянии просмотреть человек или ЭВМ. В практической программе для игры должна определяться стратегия, т. е. в высшей степени избирательный поиск содержательных последовательностей ходов, допускающий возможность того, что правильный ответ не будет найден. Одна из таких простых стратегий — просмотр на
Возможности просмотра на Будем использовать просмотр на 1 шаг вперед. Для оценки позиции
Игрок А ставит X и стремится максимизировать
(так как прямые можно провести по диагонали, горизонтали и вертикали от крестика),
Так как
Все эти позиции имеют цену 1, поэтому можно считать, что выбор для В безразличен. После этого у А есть 7 ходов, некоторые из них имеют максимальную цену 2. Пусть сделан выбор
у В теперь есть 6 ответов. То, что В должен сделать ход
„ясно для всех", но не для функции! Для сравнения:
Ведь если В минимизирует Поскольку человек не должен проигрывать в „крестики и нолики" (если ему больше 8 лет), такая функция поиска на дереве. При составлении оценки сначала А исследует девять позиций, затем В — восемь, затем А — семь и т. д. до общего числа Одна из наиболее сложных проблем, возникающих при написании игровых программ, состоит в том, чтобы избежать просмотра бесперспективных путей и связанной с этим потери времени. Среди методов поиска, рассчитанных на это, наиболее широко распространена альфа-бета-процедура. Она основана на идее о том, что не следует продолжать исследование некоторого множества путей, если можно показать, что все они хуже какого-либо другого, уже исследованного пути. Этот метод можно проиллюстрировать, не углубляясь в детали конкретной игры, так как альфа-бета-процедура позволяет осуществлять поиск на любом дереве игры. Рассмотрим абстрактную игру, схема которой приведена на рис. 10.8. Число 10 соответствует выигрышу игрока А, —10 соответствует выигрышу игрока В. Для того чтобы найти общую эвристическую функцию, сделаем интуитивно разумное допущение о том, что игрок может определять среднюю цену позиций Р, достижимых из Р, не анализируя каждую из следующих позиций. Таким образом, эвристическая оценка позиции Р с
если Р — не концевая точка. Если же Р — концевая точка, то значение Применим альфа-бета-процедуру к такому дереву игры, используя при этом просмотр на два шага вперед. На каждом шаге игрок исследует свои возможные ходы, ответы противника и возникающую в результате конфигурацию игры. Он вычисляет (кликните для просмотра скана) провернет ветви слева направо. Обозначим соответствующие ходы 5 теперь просматривает два хода вперед после позиции В связи с этим примером необходимо отметить следующее. Первое и самое важное: рассмотрены лишь немногие из всех возможных ходов. Второе: картина игры меняется по мере ее развития. Если бы мы вычислили обоснованность альфа-бета-процедуры, как и любой игровой процедуры, зависит и от того, как выбрана эвристическая оценочная функция Пример демонстрирует также основные отличия поиска на дереве игры от поиска на графе решения задачи. В играх нет возврата назад; сделанный ход исключает возможность возвращения к другим позициям, которые можно было бы выбрать.
Рис. 10.10. Информация игрока В об игре (В делает свой первый ход). Это означает, что алгоритмы поиска в пространстве состояний здесь не подходят. По мере продвижения по дереву и приближения к концевой точке наши эвристические оценки цены позиции, вероятно, будут улучшаться. Но и при этом в какой-то момент мы должны полагаться на оценки, зависящие от усреднения по ряду неточно исследованных возможностей. Поэтому Слейгл и Диксон (1970) предложили в дополнение к использованию стратегий минимакса и усреднения увеличивать цену позиции, если она открывает возможности для нескольких продолжений. Это оправдывалось тем, что, достигнув такой позиции и имея возможность лучше оценить эти продолжения, мы с большей вероятностью найдем среди них хорошее, если их много. Известные правила такого рода основаны на изменении оценок позиций, произведенном до получения обращенных цен (Слейгл, 1971). Применяя альфа-бета-процедуру для того, чтобы не исследовать бесперспективные пути, можно повысить ее эффективность, упорядочивая поиск так, чтобы окончательное отсечение выясня лось на ранних этапах поиска. Чтобы убедиться в этом, читатель может сравнить число узлов, раскрытых в примере, со значительно большим числом узлов, которые мы раскрывали слева направо. Предложен ряд процедур динамического упорядочения, цель которых — обеспечить наиболее раннее нахождение точки отсечения. Эту проблему подробно обсуждает Слейгл (1971). Он также предлагает методы динамического изменения глубины просмотра вперед для перспективных и неперспективных путей. В заключение приведем некоторые комментарии по поводу игры ЭВМ в конкретные игры. Для большинства реальных игр альфа-бета-процедуры, даже включающей динамическое упорядочение, недостаточно для уменьшения до разумных пределов числа ходов, которые надо рассмотреть. Поэтому в программу обычно вводится специальный блок, „предлагающий ходы". Он выделяет ходы, направленные на достижение некоторой разумной цели в игре. Примеры из шахмат: безопасность короля, овладение центром, материальное превосходство. Ходы, которые надо рассмотреть, выбираются из множества ходов, порожденного таким блоком, а не из всего множества возможных ходов. Это значительно уменьшает число ходов, которые надо рассмотреть. В идее такого блока заложено также то, что хорошая программа конкретной игры будет приспособлена специально к ней, поскольку программа должна содержать много сведений о данной игре. Это в особенности относится к шахматам, наиболее подробно изученной игре. Чаще всего упоминающаяся американская шахматная программа „Мэк-Хэк", созданная в МТИ, как и большинство современных программ, хороша тем, что содержит большие массивы данных о возможных ходах для применения их в различных ситуациях (Гринб-латт и др., 1968). Другими словами, хороший шахматист знает много о шахматах. Спорным пока является вопрос о том, каким образом программа должна приобретать эти знания. Один путь, несомненно, состоит в том, чтобы добавлять некоторые записи в исходную программу. Это до некоторой степени уже осуществлено. Большинство шахматных программ содержат последовательности ходов и контрходов для стандартных защит. Ситуация в миттельшпиле сложнее из-за огромного числа возможных позиций. Один из подходов к решению этой проблемы — представить ее как задачу распознавания образов. Программа обычно играет много партий сама с собой или с человеком. Встречающиеся позиции записываются и предпринимается попытка найти правило классификации, чтобы определить, когда тот или иной ход целесообразен. Это оправдало себя при создании программ, играющих в шашки (Сэмюэль, 1967). Зобрист и Карлсон (1973) предложили, чтобы в более сложной шахматной игре противником был опытный игрок и чтобы у него была возможность „обращать внимание» обучаемой машины на ключевые особенности различных позиций на доске, в то время как программа накапливает опыт и оценивает его. В реальных играх большую роль играет понятие статической позиции. Некоторые позиции существенно нестабильны и их не следует оценивать до разрешения этой нестабильности. Например, в шахматах не имеет смысла делать такие оценки в ходе размена ферзей, надо сначала завершить размен. Программы, играющие в шахматы, часто осуществляют предварительный просмотр до следующей статической позиции, а не в точности на Ньюэлл и Саймон (1965, 1972) и Де Гроот (1966) противопоставляли человеческую и машинную игры. Де Гроот, в частности, исследовал игру многих шахматных мастеров. Он заметил, что их игра стереотипна, и предположил, что она по меньшей мере представляет особое умение, которое так же сильно зависит от знания шахматной литературы, как и от владения общими игровыми стратегиями. Ньюэлл и Саймон, однако, считают, что наблюдаемые ими игроки обнаруживают по крайней мере зачатки элементов игровых программ, в особенности правило минимакса и идею просмотра до статической позиции. Основное различие между игрой человека и алгоритмами, которые мы обсуждали, состоит в том, что людям, видимо, свойственна некоторая инертность: если уж они начали разрабатывать какую-то линию игры, они продвигаются по ней достаточно глубоко и лишь затем возвращаются назад, чтобы проверить, не помешает ли им противник. Таким образом, оказывается, что люди более, чем хорошо запрограммированная ЭВМ, расположены к методу перебора в глубину. Большинство методов программирования игры в шахматы основано на предположении о том, что оценивание шахматной позиции требует так много времени, что о прямом переборе возможных позиций не стоит и говорить. Заставить нас снять этот аргумент могли бы два усовершенствования: развитие вычислительной техники, которое позволит проводить очень быстрый поиск, и/или создание легко программируемого способа оценивания позиции. Есть основания считать, что оба эти события могут произойти. Гиллогли (1972) сообщил об удивительно эффективной шахматной программе, применяющей прямой перебор, а алгоритм оценивания был разработан Хансом Берлинером, чемпионом мира по игре в шахматы по переписке! Аналогичный подход избрал советский гроссмейстер Ботвинник (1970), возможно, самый лучший игрок, активно занимающийся шахматными программами. Программа, предложенная Ботвинником, основана на употреблении сложных оценок, а не на запоминании предыдущих позиций. Неизменным остается то обстоятельство, что хорошая шахматная программа должна располагать обширной информацией относительно шахмат. При этом она может использовать информацию совсем не так, как это делал бы человек.
|
1 |
Оглавление
|