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




Пример: обезьяна и банан - часть 2


Первое, целью игры является ситуация, в которой обезьяна имеет банан, т. е. любое состояние, у которого в качестве четвертой компоненты стоит "имеет":

        состояние( -, -, -, имеет)

Второе, каковы разрешенные ходы, переводящие мир из одного состояния в другое? Существуют четыре типа ходов:

(1)        схватить банан,
(2)        залезть на ящик,
(3)        подвинуть ящик,
(4)        перейти в другое место.

fig2_12.gif (977 bytes)

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

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

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

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

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

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

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

ход( состояние( середина, наящике, середина, неимеет),
                                                           % Перед ходом



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