Программирование на языке Пролог для искусственного интеллекта


         

Реализация на Прологе миниатюрного, не


Реализация на Прологе миниатюрного, не зависящего от конкретной игры интерпретатора языка AL0 показана на рис. 15.6. Эта программа осуществляет также взаимодействие с пользователем во время игры. Центральная задача этой программы - использовать знания, записанные в таблице советов, то есть интерпретировать программу на языке советов AL0 с целью построения форсированных деревьев и их "исполнения" в процессе игры. Базовый алгоритм порождения форсированных деревьев аналогичен поиску с предпочтением в И / ИЛИ-графах гл. 13, при этом форсированное дерево соответствует решающему И / ИЛИ-дереву. Этот алгоритм также напоминает алгоритм построения решающего дерева ответа на вопрос пользователя, применявшийся в оболочке экспертной системы (гл. 14).

Программа на рис. 15.6 составлена в предположении, что она играет белыми, а ее противник - черными. Программа запускается процедурой

line();

% Миниатюрный интерпретатор языка AL0

%

% Эта программа играет, начиная с заданной позиции,

% используя знания, записанные на языке AL0

        :- ор( 200, xfy, :).

        :- ор( 220, xfy, ..).

        :- ор( 185, fx, если).

        :- ор( 190, xfx, то).

        :- ор( 180, xfy, или).

        :- ор( 160, xfy, и).

        :- ор( 140, fx, не).


        игра( Поз) :-

                                                  % Играть, начиная с Поз

                игра( Поз, nil).

                                          % Начать с пустого форсированного дерева


Содержание  Назад  Вперед