- •Лабораторная работа №2
- •Теоретическая часть
- •Основные фазы программирования на языке пролог
- •2. Описание базы знаний
- •3. Формулировка целей
- •4. Моделирование рассуждений
- •5. Пример программирования простых баз данных с использованием правил
- •Практическое задание
- •Адлер самолёт
- •V а g
- •Контрольные вопросы
5. Пример программирования простых баз данных с использованием правил
Условие:
-
Наименование предметной области:
«Подбор партнера»
Количество объектов:
7
Количество учитываемых параметров:
3
В качестве объектов выберем следующие мужские имена: Bill, Jim, Mark, Robert, Willy, Tom, Frank, а в качестве учитываемых параметров: рост, цвет волос и класс машины.
Решение:
/٭ Программа “Подбор партнера” ٭/
domains
man = symbol
predicates
choice(man)
short_height(man) /٭ мужчина низкого роста ٭/
medium_height(man) /٭ мужчина среднего роста ٭/
tall_height(man) /٭ мужчина высокого роста ٭/
black_hair(man) /٭ брюнет ٭/
brown_hair(man) /٭ шатен ٭/
blond_hair(man) /٭ блондин ٭/
old_car(man) /٭ владелец старого автомобиля ٭/
new_car(man) /٭ владелец нового автомобиля ٭/
sports_car(man) /٭ владелец спортивного автомобиля ٭/
Kathy_choice(man)
who_is_the_choice
goal
who_is_the_choice.
clauses
choice(bill).
choice(jim).
choice(mark).
choice(robert).
choice(willy).
choice(tom).
choice(frank).
short_height(bill).
short_height(tom).
medium_height(willy).
medium_height(mark).
medium_height(jim).
tall_height(robert).
tall_height(frank).
black_hair(bill).
black_hair(willy).
brown_hair(jim).
brown_hair(tom).
blond_hair(mark).
blond_hair(robert).
blond_hair(frank).
old_car(mark).
new_car(tom).
sports_car(jim).
sports_car(robert).
who_is_the_choice:–
Kathy_choice(Choice),
Write(“Kathy choice is”, Choice, “.”),
nl.
Kathy_choice(Choice):–
choice(Choice),
tall_height(Choice),
blond_hair(Choice),
sports_car(Choice).
/٭٭ Конец программы ٭٭/
В разделе clauses 7 утверждений предиката сhoice содержат имена bill, jim, mark, robert, willy, tom и frank. Утверждения с предикатами short_height, medium_height, tall_height, black_hair, brown_hair, blond_hair, new_car, old_car и sports_car также содержат эти мужские имена. Целью программы является отыскание мужчины, соответствующего вкусам некой Kathy: высокого роста, блондина, обладателя спортивного автомобиля. В случае обнаружения мужчины, обладающего перечисленными свойствами, программа должна напечатать его имя.
Практическое задание
1. Описать БЗ «Библиотека», содержащую факты:
О читателях – студентах:
Фамилия |
Курс |
Фамилия |
Курс |
Иванов |
2 |
Анисимов |
3 |
Петров |
2 |
Тихонов |
3 |
Сидоров |
2 |
Травкин |
3 |
Ковалёв |
2 |
Жданов |
4 |
Антонов |
3 |
Галкин |
4 |
О книгах, невозвращённых читателями в срок
Название книги |
Номер книги |
Год издания |
Фамилия студента |
Физика |
1001 |
1990 |
Иванов |
Химия |
3002 |
1970 |
Петров |
Физика |
1002 |
1985 |
Антонов |
Химия |
3003 |
2001 |
Тихонов |
Химия |
3004 |
2000 |
Галкин |
Математика |
4001 |
1985 |
Галкин |
Добавить к БЗ правило, позволяющее определить:
какие книги (название, номер) не возвращены студентами заданного курса;
кто из студентов не вернул книги, изданные до 1990 года;
кто из студентов не вернул книги заданной тематики (например, по химии).
Сформулировать цели:
перечислить фамилии студентов 3-го курса, которые пользуются услугами библиотеки;
перечислить фамилии студентов 2-го и 4-го курсов, которые пользуются услугами библиотеки;
какие книги (название и номер) не возвращены студентами 2-го курса?
Кто из студентов не вернул книги, изданные до 1990 года?
Кто из студентов не вернул книги по физике?
2. Описать БЗ «Путешествие».
Каждый факт этой БЗ устанавливает, что можно доехать на транспортных средствах некоторой компании (1-й аргумент) из одного города (2-й аргумент – пункт отправления) в другой город (3-й аргумент – пункт назначения) и при этом воспользоваться некоторым видом транспорта (4-й аргумент). Схема маршрутов представлена на рис.1.