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

       

Исходное состояние



Рисунок 2. 12.  Исходное состояние обезьяньего мира, представленное в виде структурного объекта. Его четыре компоненты суть горизонтальная позиция обезьяны, вертикальная позиция обезьяны, позиция ящика, наличие или отсутствие у обезьяны банана.


Не всякий ход допустим при всех возможных состояниях мира. Например, ход "схватить" допустим, только если обезьяна стоит на ящике прямо под бананом (т.е. в середине комнаты) и еще не имеет банана. Эти правила можно формализовать в Прологе в виде трехместного отношения ход:

        ход( Состояние1, М, Состояние2)

Три аргумента этого отношения определяют ход, следующим образом:

        Состояние1 --------> Состояние2
                                    М

Состояние1 это состояние до хода, М - выполняемый ход, и Состояние2 - состояние после хода.

Ход "схватить", вместе с необходимыми ограничениями на состояние перед этим ходом, можно выразить такой формулой:

ход( состояние( середина, наящике, середина, неимеет),
                                                           % Перед ходом
        схватить,                                 % Ход
        состояние( середина, наящике, середина, имеет) ).
                                                         % После хода

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

Таким же способом можно выразить и тот факт, что обезьяна, находясь на полу, может перейти из любой горизонтальной позиции Р1 в любую позицию Р2. Обезьяна может это сделать независимо от позиции ящика, а также независимо от того, есть у нее банан или нет. Все это можно записать в виде следующего прологовского факта:

        ход( состояние( Р1, наполу, В, Н),
                перейти( Р1, Р2),             % Перейти из Р1 в Р2
                состояние( Р2, наполу, В, Н) ).

Заметим, что в этом предложении делается много утверждений и, в частности:

  • выполненный ход состоял в том, чтобы "перейти из некоторой позиции Р1 в некоторую позицию Р2";
  • обезьяна находится на полу, как до, так и после хода;
  • ящик находится в некоторой точке В, которая осталась неизменной после хода;
  • состояние "имеет банан" остается неизменным после хода.



Содержание раздела