|
||||
|
Назад | Содержание| Вперёд Часть 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 | Добавить материал | Нашёл ошибку | Наверх |
||||
|