Команды, действующие во время ввода данных
В любой момент, когда система просит пользователя ввести некоторое данное, он может нажать Escдля выбора одной из команд, приведенных ниже. Это позволяет лучше понять, как происходит процесс оценки правил.
Help
Rules met
Backtrace
Continue
Quit
Help выводит подсказку, связанную с данным правилом.
Rules met показывает все правила, оцененные с момента начала консультации.
Backtrace показывает всех предков текущего data-правила. Правила выводятся в порядке, обратном относительно текущего правила, что дает пользователю возможность увидеть, как было достигнуто заключение.
Continue возвращает систему к оценке текущего вопроса.
Quit возвращает управление на уровень оценки правил, так что пользователь может прервать оценку текущей гипотезы, возможно, вследствие некорректно введенных данных.
Рекомендуемая литература
1. Д. Марселлус. Программирование экспертных систем на Турбо-Прологе. – М.: Финансы и статистика, 1994.
2. И. Братко. Программирование на языке Пролог для искусственного интеллекта. – М.: Мир, 1990.
3. А. Янсон . Турбо-Пролог в сжатом изложении. М.: Мир, 1991.
4. Дж. Малпас. Реляционный язык Пролог и его применение. М.: Наука, 1990.
5. Ц. Ин, Д. Соломон. Использование Турбо-Пролога. М.: Мир, 1993.
6. Л. Стерлинг, Э.Шапиро . Искусство программирования на языке Пролог. М.:Мир, 1990.
7. Язык Пролог в пятом поколении ЭВМ: Сб.статей 1983-1986 гг.: Пер. с англ./ Сост. Н.И. Ильинский. – М.: Мир, 1990.
8. Дж. Доорс , А. Рейблейн, С. Вадера. Пролог – язык программирования будущего. – М.: Финансы и статистика, 1990.
9. К. Кларк , Ф. Маккейб. Введение в логическое программирование на микро- Прологе. – М.: Радио и связь, 1987.
10. У. Клоксин, К. Меллиш. Программирование на языке Пролог. – М.: Мир, 1987.
11. PDC Prolog version 3.30. User’s Guide. Prolog Development Center. H.J. Holst Vej 5A, DK – 2605 Broendly, Copenhagen, Denmark.
Приложение. Варианты лабораторных работ
Лабораторная работа 1. Работа с простой базой данных
Меню ресторана представляет собой небольшую базу данных, которая описана следующим образом:
закуска(артишоки).
закуска(трюфели).
закуска(салат с яйцом).
мясо(жаркое).
мясо(цыпленок табака).
рыба(окунь жареный).
рыба(судак).
десерт(мороженое).
десерт(клубника со сливками).
десерт(дыня).
Вариант 1.
1. Определить, является ли закуской а) салат с яйцом; б) салат из помидор.
2. Определить те блюда Е, которые являются закусками.
3. Определить предикат второе_блюдо(Р), если Р- мясное или рыбное блюдо. Получить список вторых блюд.
4. Определить предикат обед тройкой (Е,Р,Д), где Е – закуска, Р – второе блюдо, Д – десерт. Получить список обедов.
5. Определить обеды с блюдом из рыбы.
6. Используя предикат п.5, определить обед с рыбным блюдом и дыней на десерт.
7. Для каждого блюда добавить еще один аргумент – калорийность. Определить калорийность обеда. Получить список обедов калорийности меньше заданной.
Вариант 2.
1. Определить, является ли десертом а) мороженое; б) пирожное.
2. Определить те блюда D, которые являются десертом.
3. Определить предикат второе_блюдо(Р), если Р- мясное или рыбное блюдо. Получить список вторых блюд.
4. Определить предикат обед тройкой (Е,Р,Д), где Е – закуска, Р – второе блюдо, Д – десерт. Получить список обедов.
5. Определить обеды с блюдом из мяса.
6. Используя предикат п.5, определить обед с мясным блюдом и мороженым на десерт.
7. Для каждого блюда добавить еще один аргумент – стоимость. Определить стоимость обеда. Получить список обедов стоимости меньше заданной.
Лабораторная работа 2. Программа “Родственные отношения”
1. Составить родословную своей семьи, использовав 10-12 отношений родитель. Определить предикат пол для каждого члена семьи.
2. Определить предикаты мать, отец, дядя, тетя, кузен, дед, внук.
3. Определить рекурсивный предикат предок.
4. Оттранслируйте следующие утверждения в правила на Прологе:
а) всякий, кто имеет ребенка – счастлив;
б) всякий Х, имеющий ребенка, у которого есть сестра, имеет двух детей.
5. Определить предикат найти_тетю(Х) , выдающий информацию о наличии (отсутствии) тети у личности Х. Определить предикаты о наличии прочих родственников у личности Х.
6. Определить предикат, дающий список всех родственников личности Х. Переменную Х ввести.