Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Книги / metod / LAB1.DOC
Скачиваний:
50
Добавлен:
10.12.2013
Размер:
180.74 Кб
Скачать

Практическая работа № 6 ипс-самоделка-3

Как вы помните из текста учебника, множества могут быть заданы перечислением элементов, для такого способа фиксации множества достаточно фактов. Иными словами, задав систему фактов, мы тем самым определяем множество. Однако, в большинстве случаев возможно указать некоторые связи и отношения между объектами. Связи и отношения между объектами задаются правилами. Использование правил позволяет сократить число фактов, сделав базу данных более лаконичной. Более того, наличие правил превращает базу данных в базу знаний, поскольку теперь появляется возможность получать сведения, которые изначально в этой базе записаны не были. При построении правил обычно выделяется совокупность отношений, отвечающих на вопрос "Что известно?". Правило можно построить, пользуясь известным принципом разделения исходной задачи на более простые, которые, в свою очередь, тоже могут быть разделены. Этот процесс известен под названием процесса декомпозиции задачи. Процесс декомпозиции заканчивается в тот момент, когда отношения связывают зафиксированные в базе знаний объекты. Например, в задаче o построении родственных отношений можно определить следующие правила:

бабушка(x,y)<-мама(x,z),мама(z,y);

бабушка(x,y)<-мама(x,z),папа(z,y);

дедушка(x,y)<-папа(x,z),папа(z,y);

дедушка(x,y)<-папа(x,z),мама(z,y);

Процесс декомпозиции не обязательно однозначен. Даже простой пример о родственниках допускает и иную трактовку. Введем, к примеру, правило, определяющее понятие "родитель":

родитель(x,y)<-мама(x,y);

родитель(x,y)<-папа(x,y);

Тогда бабушку и дедушку можно определить проще:

бабушка(x,y)<-мама(x,z),родитель(z,y);

дедушка(x,y)<-папа(x,z),родитель(z,y);

Если к только, что записанным правилам добавить несколько фактов, определяющих мам и пап, то получается база знаний, которая называется "семья":

мама(Саша,Петя);

папа(Сережа,Петя);

мама(Оля,Саша);

папа(Коля,Саша);

мама(Люда,Сережа);

папа(Петя,Сережа);

родитель(x,y)<-мама(x,y);

родитель(x,y)<-папа(x,y);,

бабушка(x,y)<-мама(x,z),родитель(z,y);

дедушка(x,y)<-папа(x,z),родитель(z,y);.

В данном примере для определения понятия родитель(x,y) потребовалось более одного правила. По сути дела здесь использовано так называемое недетерминированное ветвление, дающее альтернативное определение этого отношения и используемое системой после того, как было применено первое по порядку отношение. Следует подчеркнуть, что в определении участвуют оба правила.

В общем случае число правил может быть неограниченным. Вообще говоря, могут быть разные способы записи отношений. Предложенный здесь вариант соответствует заданию отношений в системе логического программирования Пролог-Д. Именно этой системой вы будете пользоваться, выполняя следующие задания.

Задания.

1. Опишите на языке Пролог-Д состав своей семьи или иными словами множество людей принадлежащих вашей семье.

2. Составьте базу знаний, описывающую множество стран Европы.

3. Попробуйте записать с помощью языка Пролог-Д следующие правила:

- Если животное имеет волосы, то это животное млекопитающее;

- Если животное имеет перья, то это животное птица;

- Если животное может летать и откладывает яйца, то это животное птица;

- Если животное ест мясо, то это животное хищник;

- Если животное имеет острые зубы и животное имеет когти и его глаза смотрят вперед, то это животное хищник;

- Если животное млекопитающее и имеет копыта, то это животное парнокопытное;

- Если животное млекопитающее и жует жвачку, то это животное парнокопытное;

- Если животное млекопитающее и это животное хищник и это животное желто-коричневого цвета и это животное имеет темные пятна, то это животное гепард;

- Если животное млекопитающее и это животное хищник и это животное желто-коричневого цвета и это животное имеет темные полосы, то это животное тигр;

- Если животное является парнокопытным и имеет длинную шею и имеет длинные ноги и имеет черные пятна, то это животное жираф;

- Если животное является парнокопытным и имеет черные полосы, то это животное зебра.

Всего вместе с примером из текста будет дюжина правил. Они нам пригодится позже. Сохраните их на диске, предварительно проверив синтаксическую правильность выражений.

Соседние файлы в папке metod