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


         

Программа для задачи об обезьяне



        состояние( Р2, наполу, В, Н) ).
    % можетзавладеть(Состояние):
обезьяна может завладеть

    % бананом, находясь в состоянии Состояние
можетзавладеть( состояние( -, -, -, имеет) ).
    % может 1:  обезьяна уже его имеет
можетзавладеть( Состояние1) :-
    % может 2:  Сделать что-нибудь, чтобы завладеть им
        ход( Состояние1, Ход, Состояние2),
    % сделать что-нибудь
        можетзавладеть( Состояние2).
    % теперь может завладеть
line();
Рис. 2. 14.  Программа для задачи об обезьяне и банане.
Для ответа на наш вопрос системе пришлось сделать лишь один возврат. Верная последовательность ходов была найдена почти сразу. Причина такой эффективности программы кроется в том порядке, в

Рис. 2. 15.  Поиск банана обезьяной. Перебор начинается в верхнем узле и распространяется вниз, как показано. Альтернативные ходы перебираются слева направо. Возврат произошел только один раз.
котором в ней расположены предложения, касающиеся отношения ход. В нашем случае этот порядок (к счастью) оказался весьма подходящим. Однако возможен и менее удачный порядок. По правилам игры обезьяна могла бы с легкостью ходить туда-сюда, даже не касаясь ящика, или бесцельно двигать ящик в разные стороны. Как будет видно из следующего раздела, более тщательное исследование обнаруживает, что порядок предложений в нашей программе является, на самом деле, критическим моментом для успешного решения задачи.
Назад | Содержание
| Вперёд

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





Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий