Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекция1.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
135 Кб
Скачать
☆

1. Факты и правила

При составлении программы на языке Пролог необходимо описать объекты (objects) и отношения (relations), а затем – правила (rules), при условии соблюдения которых эти отношения являются истинными. Программа на языке Пролог состоит из предложений (clauses), которые могут быть отнесены к одному из двух типов фраз: факты и правила.

Отношение в Прологе называется предикатом. Аргументы – это объекты, которые связываются этим отношением. Предикаты могут не иметь аргументов, но использование таких предикатов ограничено.

Предложение: «Одновременно на работу выходили Голубева, Иванова, Васин, Смирнов и Азаров» позволяет установить, что объектами являются Голубева, Иванова, Васин, Смирнов и Азаров. Каждый из которых обладает свойством принадлежности к определенному полу человека. Факты относительно этой принадлежности обеспечиваются двухместным предикатом сотрудник.

Факты

Отношение между объектами называется фактом. Факты – это отношения или свойства, о которых известно, что они имеют значение «истина». Факт самодостаточен. Прологу не требуется дополнительных сведений для подтверждения факта, и факт может быть использован как основа для логического вывода. Отношение состоит из имени отношения и объекта или объектов, заключенных в круглые скобки. Как и предложение, факт заканчивается точкой.

сотрудник(голубева, жен).

сотрудник(смирнов, муж).

Факты помимо отношений могут выражать и свойства:

профессия(администратор).

профессия(повар).

Правила

Правила позволяют вывести один факт из других фактов. Правило – это заключение, для которого известно, что оно истинно, если одно или несколько других найденных заключений или фактов являются истинными. Правила – это связанные отношения. Они позволяют Прологу логически выводить одну порцию информации из другой. Правило принимает значение «истина», если доказано, что заданный набор условий является истинным.

(слайд 3)

Символ «: -» имеет смысл «если», и служит для разделения двух частей правила: заголовка и тела.

Заголовок – это факт, который был бы истинным, если бы были бы истинными несколько условий.

Тело – это ряд условий, которые должны быть истинными, чтобы Пролог мог доказать, что заголовок правила истинен.

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

В качестве предикатов, составляющих тело правила, могут выступать:

  • предикаты, фигурирующие в базе фактов;

  • предикаты, совпадающие с заголовком других правил;

  • встроенные предикаты систем программирования Пролог.

Пример 2.

На основании высказывания B из примера 1 можно сформулировать правило, которое может выглядеть так:

Кассир и администратор являются людьми одного пола.

По этому правилу получается, что в том случае, когда в примере 1 будет устанавливаться профессия каждого из работников кафе, то необходимо описать правило, в котором осуществляется проверка совпадения полов.

На Прологе синтаксис у правил будет таким:

работа(Имя,Должность,Пол):-

сотрудник(Имя,Пол), профессия(Должность), … .

условие_пола(X1,Y1,Z1,X2,Y2,Z2):-

работа(X1,Y1,Z1), работа(X2,Y2,Z2),

Y1=кассир, Y2=администратор, Z1=Z2.

условие_пола(X1,Y1,Z1,X2,Y2,Z2):-

работа(X1,Y1,Z1), работа(X2,Y2,Z2),

Y1=администратор, Y2=кассир, Z1=Z2.

В примере 2 заголовками являются:

работа(Имя,Должность,Пол); условие_пола(X1,Y1,Z1,X2,Y2,Z2).

Телом первого правила является:

сотрудник(Имя,Пол), профессия(Должность), …

Здесь многоточие означает, что формулировка правила не приводится до конца, так как на этом этапе мы еще не учли всех фактов, изложенных в условии.