Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛабПрактикум(1-5)_ПЗ в ИС_2011 .doc
Скачиваний:
27
Добавлен:
19.11.2019
Размер:
1.56 Mб
Скачать

Пример программы на Прологе

Существует множество реализации языка Пролог для разных классов вычислительных систем. Для выполнения лабораторных работ используется программный продукт Visual Prolog v.5.2 Personal Edition for Windows.

Программа на Прологе состоит из нескольких секций, каждая из которых идентифицируется ключевым словом и имеет следующую обобщенную структуру:

domains

/* секция объявления доменов */

database

/* секция объявления динамических баз данных */

predicates

/* секция объявления предикатов */

clauses

/* предложения (факты и правила) */

goal

/* подцель_1, подцель_2, и т. д. */

Обязательным в программе является присутствие двух секций с именами predicates и clauses. В первой из них описываются структуры используемых в программе отношений, а во второй эти отношения определяются. Более подробно секции Пролог-программы будут рассмотрены на следующих практических занятиях.

Для набора фактов и правил, рассмотренных выше, один из возможных примеров программы на Прологе будет иметь вид:

Рис. 1.2.Пример программы на Прологе

Пролог-программа может использовать комментарии, которые не влияют на выполнение программы, но могут оказать помощь человеку, читающему программу. Пролог игнорирует произвольное число строк, заключенное между символами /* и */. Все, что находится между % и концом строки, также рассматривается как комментарий.

Практикум 1-1

Запустите систему Пролог.

Создайте программу «Родственные отношения» в соответствии с рис.1.1., рис.1.2.

Проверьте работу программы, ответив на вопросы:

  1. Является ли Ольга родителем Игоря?

  2. Кто родители князя Игоря?

  3. Есть ли у Олега дети?

  4. Чьим внуком является Ярослав Мудрый?

  5. Сколько детей у Анны Византийской?

Практикум 1-2

Добавьте правила, для определения родственных связей

  • отец

  • мать

  • брат

  • сын

  • дядя

Проверьте работу программы, ответив на вопросы:

  1. Кто отец Владимира Красное Солнышко??

  2. Перечислить всех матерей?

  3. Сколько братьев у Ярослава Мудрого?

  4. Был ли сын у Ярополка?

  5. Был ли дядя у Мстислава Храброго?

Практикум 1-3

Самостоятельно сформулируйте пять запросов к базе знаний

Оформите Отчет по лабораторной работе

Контрольное задание 1 Исходные данные

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

В индивидуальном задании студенту для описания базы фактов предлагается минимальный набор родственных отношений в соответствии с вариантом:

отец/2. мать/2.

сын/2. дочь/2.

сын/3. дочь/3.

родитель/2. мужчина/1.

родитель/2. женщина/1.

ребенок/2. мужчина/1.

ребенок/2. женщина /1.

ребенок/3.

родители/3.

ребенок/3. сын/2.

Значками «/1», «/2», «/3» задается арность отношения или, говоря в терминах предметной области, количество личностей в отношении.

Например:

  • отношение «мужчина/1» характеризует такой факт как «Виктор является мужчиной» или на Пролог

мужчина (“Виктор”);

  • отношение «отец/2» характеризует родственное отношение «Виктор отец Андрея» или на Пролог

отец (“Виктор”, “ Aндрей”);

  • отношение «сын/3» характеризует родственной отношение «Андрей сын Виктора и Аллы» или на Пролог

сын (“Андрей”, “Виктор”, “Алла”);

  • отношение «родитель/3» характеризует родственной отношение «Виктор и Алла родители Андрея» или на Пролог

родители (“Виктор”, “Алла”, “Андрей”).

Примечание: Указанный в задании минимальный набор фактов родственных отношений может быть расширен дополнительными фактами, но необходимость подобного действия необходимо обосновать.