Рассмотрим пример обработки нечетких знаний, в частности учет неопределенности пути решения задачи в пространстве состояний на примере разработки программы, способной играть с человеком в позиционную игру.
РЕВЕРСИ — логическая игра, рассчитанная на двух участников, которые играют на доске размером 8×8 фишками разного цвета.
Участники начинают игру, имея по две фишки, стоящие в центре доски по диагонали друг от друга. В процессе игры совершаются ходы, в результате которых число фишек увеличивается. Цель каждого игрока заключается в том, чтобы к моменту окончания игры число его фишек преобладало над числом фишек противника. В игре приняты следующие нормативные правила:
- при очередном ходе фишку можно ставить на свободную клетку в любом направлении, но обязательно рядом хотя бы с одной из фишек противника;
- фишка должна ставиться так, чтобы хотя бы одна из фишек противника оказалась замкнутой своими фишками. При этом замкнутые фишки противника меняют цвет и становятся своими;
- фишки могут неоднократно менять цвет, но не могут переставляться на доске;
- игра заканчивается, если доска заполнена, или на ней присутствуют фишки только одного цвета, или ни один из игроков не может сделать очередной ход.
Примеры возможных позиций в игре показаны на рис. 3.13. При написании компьютерного игрока возникают следующие задачи:
- Выделение и представление объектов игры.
- Реализация операций, соответствующих правилам переме щения и изменения объектов.
- Построение правил принятия решений при выборе хода.
- Управление последовательностью игры.
В данном случае объектами игры являются свободная клетка и занятые клетки двух цветов (белая и черная). Над объектами совершаются операции — ходы, которые заключаются в занятии свободной клетки в соответствии с заданными правилами. Изменение цвета одной или нескольких клеток является результатом хода.
Интеллект компьютерного игрока проявляется в процессах принятия решений.
На уровне новичка компьютер выбирает оптимальный для себя ход, не рассматривая возможные ответные ходы противника.
Возможные ходы белой фишкой из позиции Q Рис. 3.13. Позиции игры РЕВЕРСИ
Оценочная функция имеет вид
где х, у =1,…,8 — координаты клетки, в которую можно совершить ход;
— подмножество полного множества клеток XxY, на которые можно поставить очередную фишку;
— число замыкаемых клеток;
— ценность i-й замыкаемой клетки;
— ценность клетки, на которую совершается ход.
Значенияи ss вычисляются на основе следующих эмпирически подобранных констант:•для кромочной клетки поля. Такие клетки могут быть замкнуты только вдоль кромки доски, поэтому они предпочтительнее внутренних клеток;
•для остальных клеток;
• угловые клетки поля не могут быть замкнуты, они являются наиболее ценными для захвата;
• ss = 0.8, если ход делается на угловую клетку;
• ss = 0.4, если ход делается на кромочную клетку;
• ss = 0 для всех остальных клеток.
Анализ возможности хода осуществляется следующим образом.
На уровне профессионала компьютер анализирует ход, который может сделать противник. Оценочная функция возможного хода R в данном случае вычисляется как разность между возможным выигрышем очередного хода и возможным проигрышем при следующем ходе противника:
где— координаты клеток, на которые может поставить свою фишку человек при ходе компьютера в клетку с координатами х, у; параметр dep указывает на игрока, для которого вычисляется оценка эффективности хода. Нулевое значение соответствует ходу компьютера;соответствует вычислению эффективности хода, который может совершить противник (человек), по формуле .
Управление игрой заключается в инициализации исходной позиции и отслеживании текущей ситуации, включающей ряд проверок на возможность совершения текущего хода, на передачу хода, на наличие свободных клеток, а также изменение цветов фишек и выдачу текущих сообщений, в том числе об окончании игры и ее результатах.
Проведенные эксперименты показали существенное преимущество применения тактики, учитывающей вероятные ходы противника. Эксперименты с увеличением глубины просмотра вероятных ходов компьютера и человека показали, что «заглядывать» дальше чем на два хода не имеет смысла, так как опытные игроки сознательно препятствуют разыгрываемым компьютером комбинациям, а неопытные делают то же самое, не понимая целей компьютерного игрока.