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

         

Отношение родительродителя, выраженное через композицию двух отношений родитель.



   Отношение родительродителя, выраженное через композицию двух отношений родитель.

Наш составной вопрос можно интерпретировать и так: "Найти X и Y, удовлетворяющие следующим двум требованиям":

        родитель ( Y, джим)  и   родитель( X, У)

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

        родитель ( X, Y)   и   родитель ( Y, джим)

Этот вопрос можно задать нашей пролог-системе и в такой форме:

        ?-  родитель( X, Y), родитель( Y, джим).

При этом результат будет тем же. Таким же образом можно спросить: "Кто внуки Тома?"

        ?-  родитель( том, X), родитель( X, Y).

Система ответит так:

        X  =  боб
        Y  =  энн;

        X  =  боб
        Y  =  пат



Следующим вопросом мог бы быть такой: "Есть ли у Энн и Пат общий родитель?" Его тоже можно выразить в два этапа:

        (1)    Какой X является родителем Энн?
        (2)    Является ли (тот же) X родителем Пат?

Соответствующий запрос к пролог-системе будет тогда выглядеть так:

        ?-  родитель( X, энн), родитель( X, пат).

Ответ:

        X  =  боб

Наша программа-пример помогла проиллюстрировать некоторые важные моменты:



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