Назад | Содержание| Вперёд Часть 1 ЯЗ...

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

Часть 1

ЯЗЫК ПРОЛОГ

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

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

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

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

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

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

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

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

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

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

        X  =  боб

        Y  =  энн;

        X  =  боб

        Y  =  пат

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

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

        (2)    Является ли (тотже) X родителем Пат?

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

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

Ответ:

        X  =  боб

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

На Прологе легко определить отношение, подобное отношению родитель, указав n-ку объектов, для которых это отношение выполняется.

Пользователь может легко задавать пролог-системе вопросы, касающиеся отношений, определенных в программе.

Пролог-программа состоит из предложений. Каждое предложение заканчивается точкой.

Аргументы отношения могут быть (среди прочего): конкретными объектами, или константами (такими, как том и энн), или

абстрактными объектами, такими, как

X

и

Y

. Объекты первого типа называются

атомами

. Объекты второго типа -

переменными

.

Вопросы к системе состоят из одного или более целевых утверждений (или кратко целей). Последовательность целей, такая как

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

означает конъюнкцию этих целевых утверждений:

        X  -  родитель Энн   и

        X  -  родитель Пат.

Пролог-система рассматривает вопросы как цели, к достижению которых нужно стремиться.

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

Если на вопрос существует несколько ответов, пролог-система найдет столько из них, сколько пожелает пользователь.

Упражнения

1. 1.    Считая, что отношение родительопределено так же, как и раньше в данном разделе(см. рис. 1.1), найдите, какими будут ответыпролог-системы на следующие вопросы:

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

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

        (c)        ?  -  родитель( пам,Х), родитель( Х, пат).

        (d)        ?  -  родитель( пам, X), родитель( Х, Y),

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

Посмотреть ответ

1. 2.    Сформулируйте на Прологеследующие вопросы об отношении родитель:

        (a)        Ктородитель Пат?

        (b)        Естьли у Лиз ребенок?

        (c)        Ктоявляется родителем родителя Пат?

Посмотреть ответ

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









Главная | В избранное | Наш E-MAIL | Добавить материал | Нашёл ошибку | Наверх