Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Принцип минимакса




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

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



Часть II. Применение языка Prolog в области искусственного интеллекта


 

При этом многое зависит от функции оценки. Такая функция в большинстве ин­тересных игр должна представлять собой эвристическую функцию, позволяющую оценить шансы на выигрыш с точки зрения одного из игроков. Чем выше эта оцен­ка, тем больше шансов на выигрыш имеет игрок, а чем меньше это значение, тем выше шансы на выигрыш у его противника. Поскольку один из игроков получает возможность достичь позиции с высокой оценкой, а другой вынужден довольство­ваться низкой оценкой, эти два игрока соответственно именуются как МХ и MI N. Каждый раз, когда ход должен сделать игрок МАХ, он выбирает ход, который в мак­симальной степени увеличивает оценку своей позиции. В противоположность этому игрок MIN должен выбрать ход, который сводит к минимуму оценку позиции своего противника. Если известны значения позиций низкого уровня в дереве поиска, то такой принцип (называемый минимаксом) позволяет определить значения всех дру­гих позиций в дереве поиска, как показано на рис. 22.2. На этом рисунке уровни по­зиций, в которых должен ходить игрок МАХ, чередуются с позициями, в которых право сделать ход передается игроку MI N. Значения позиций нижнего уровня опреде­ляются с помощью функции оценки. Стоимости внутренних узлов.можно рассчитать, поднимаясь снизу вверх, от одного уровня к другому до тех пор, пока не будет дос­тигнут корневой узел. На рис. 22,2 результирующая стоимость корневого узла равна 4, поэтому наилучшим ходом для игрока МХ в позиции а является а-Ь. Наилучшим ответом для игрока MIN является b-d и т.д. Такая последовательность позиций в иг­ре называется также основным вариантом. Основной вариант определяет для обоих участников игру, оптимальную в соответствии с принципом минимакса. Обратите внимание на то, что стоимость позиций вдоль основного варианта не изменяется. В соответствии с этим правильными являются те ходы, которые позволяют сохра­нить стоимость игры.


M1N

Ход игрока МАХ

Стетичэские

оценки


Рис. 22.2. Статические значения (нижний уровень) и зафиксированные минимаксные значения в дереве поиска. Ходы, обозначенные жирными стрелками, составляют ос­новной вариант, т.е. игру обеих сторон, оптимальную е соответствии с принципом минимакса (описание этого дерева игры на языке Prolog приведено в листинге 22.1)

Листинг 22.1. Описание дерева игры, представленного на рис 22.2, на языке Prolog "' % ""moves(" Position, PositionList): возможные'хода'""


moves (a, moves t b, moves (c, moves(d, moves (e, moves(f,


b,c


 


Глава 22. Ведение игры



moves(g, (oyp]).

% min_tc_ move (Pos): игрок KIN должен сделать ход з позиции Pos

min_tKmove (Ь). rain_to_inove(с).

h max"to_move(РОЕ;: игрок МАХ лолжен сделать ход в позиции Роз

max_to_move{ a).

ma>:_to_jnove { d).

max_to_move{ e).

ma>:_to_move { f).

max_t<3_move (g).

% staticval { Pos, Value): переменная Value - статическое значение для Pos

staticval[ i, 1). staticvaK j, 4). staticvaK k, 5). staticval(1, 6}. staticvaK m, 2). staticvaK n, 1), staticvaK o, 1). staticvaK P, 1),

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

Правила распространения значений можно формализовать следующим образом. Обозначим статическое значение позиции Р следующим образом:

v(P)

а зафиксированное значение таким образом:

V[P)

Предположим, что Pi,,.., Рг, — допустимые позиции-преемники Р. В таком случае отношение между статическими и зафиксированными значениями можно опреде­лить, как показано ниже.

• Если В — заключительная позиция в дереве поиска (п = 0), то V (Р) = v (P).

• Если Р - позиция хода игрока МАХ, то V (Р) = max ViPJ,

i

• Если Р - позиция хода игрока MIN, то V(P) = min V(Pi),

i

Программа Prolog1, которая вычисляет минимаксное зафиксированное значение для заданной позиции, приведена в листинге 22.2. Основным отношением в этой программе является следующее: minimax{ Pos, BestSuccF Val)

где Val — минимаксное значение позиции Pos, a BestSucc — позиция, являющаяся наилучшим преемником позиции Pos (ход, который должен быть выполнен для дос­тижения Val). Отношение moves(РОЕ, PosList)

соответствует правилам допустимого хода игры; PosList — это список допустимых по­зиций — преемников Pos. Предполагается, что предикат moves не достигает успеха, если Роз — заключительная позиция поиска (лист дерева поиска), А такое отношение: best) PosList, BestPos, BestVal;



Часть II. Применение языка Prolog в области искусственного интеллекта


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





Поделиться с друзьями:


Дата добавления: 2015-10-01; Мы поможем в написании ваших работ!; просмотров: 748 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Ваше время ограничено, не тратьте его, живя чужой жизнью © Стив Джобс
==> читать все изречения...

2245 - | 2190 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.01 с.