Министерство образования и науки Российской Федерации
Новосибирский государственный технический университет
Кафедра экономической информатики
по дисциплине
Интеллектуальные информационные системы
Факультет Бизнеса
Группа ФБИ-52
Выполнили: Бакулина О.И.
Постика М.В.
Преподаватель: Авдеенко Т.В.
Новосибирск
2008
Введение.
Лабораторная работа №1 по дисциплине «Интеллектуальные информационные системы» предполагает составление экспертной системы по анализу родственных связей некоторой произвольно выбранной (самостоятельно) группы людей. В данном случае анализируется генеалогическое древо рода А.С.Пушкина, которое состоит из 6 поколений. Нами было выбрано данное дерево, поскольку оно содержит достаточно полную информацию о родственных связях, что позволяет составить большое количество разнообразных правил.
Для выполнения лабораторной работы используется предложенная преподавателем программная среда пролог, синтаксис языка которой имеет свои особенности, изученные нами, прежде чем приступить к программированию.
При написании предложений на языке Пролог нужно соблюдать следующие правила: имена объектов и отношений состоят из латинских букв, цифр, знака подчеркивания и начинаются со строчной буквы; имена переменных начинаются с прописной буквы; первым в предложении указывается имя отношения, за которым в скобках записываются имена объектов, разделяемых запятыми; факт заканчивается точкой.
Также необходимо учитывать порядок перечисления объектов в скобках. Он может быть произвольным, но, выбрав определенный порядок, следует сохранять его и далее.
Генеалогическое древо рода Пушкиных
Перевод генеалогического дерева в базу фактов
Вертикальные связи:
Сын (Осип Абрамович, Абрам Петрович).
Дочь (Надежда Осиповна, Осип Абрамович).
Отношение «Сын» характеризует родственное отношение «Осип Абрамович сын Абрама Петровича».
Отношение «Дочь» характеризует родственное отношение «Надежда Осиповна дочь Осипа Абрамовича».
Горизонтальные связи:
Муж(Александр Сергеевич, Наталья Николаевна ).
Жена (Наталья Николаевна, Александр Сергеевич).
Отношение «Муж» характеризует родственное отношение «Александр Сергеевич муж Натальи Николаевны».
Отношение «Жена» характеризует родственное отношение «Наталья Николаевна жена Александра Сергеевича»
Унарные отношения:
Мужчина (Абрам Петрович).
Женщина (Регина Фон Шеберг).
Отношение «Мужчина» характеризует такой факт как «Абрам Петрович является мужчиной».
Отношение «Женщина» характеризует такой факт как «Регина Фон Шеберг» является женщиной».
Составление правил искомых родственных связей в базе знаний.
При выполнении лабораторной работы нами были написаны правила для установления родственных связей таких как:
· отец,
Если есть такой Y, который является либо сыном, либо дочерью X, и Х – мужчина, значит Х является отцом Y.
otec(X,Y):-(syn(Y,X);doch(Y,X)),men(X).
· мать,
Если есть такой Y, который является либо сыном, либо дочерью X, и Х – женщина, значит Х является матерью Y.
mama(X,Y):-(syn(Y,X);doch(Y,X)),women(X).
· сестра,
Если есть такая Х, которая является дочерью Z, и Z имеет либо сына, либо дочь Y, то X сестра Y.
sestra(X,Y):-doch(X,Z),(syn(Y,Z);doch(Y,Z)),X\=Y.
· брат,
Если есть такой Х, который является сыном Z, и Z имеет либо сына, либо дочь Y, то X брат Y.
brat(X,Y):-syn(X,Z),(syn(Y,Z);doch(Y,Z)),X\=Y.
· мужчина,
Если есть такой Х, который является сыном Y, то X – мужчина.
men(X):-syn(X,Y)
· женщина,
Если есть такая Х, которая является дочерью Y, то Х – женщина.
women(X):-doch(X,Y)
· ребенок,
Если есть такой Х, что Х либо сын, либо дочь и Y-его родитель, то Х является ребенком Y.
rebenok(X,Y):-syn(X,Y);doch(X,Y).
· супруг,
Если есть такой Х, что его ребенок Z является и ребенком Y, то Х является супругом Y
suprug(X,Y):-rebenok(Z,X),rebenok(Z,Y),X\=Y.
· дедушка,
Если есть такой Х, что он является отцом Z, а у Z есть либо сын, либо дочь Y, то Х является дедушкой Y
dedushka(X,Y):-otec(X,Z),(syn(Y,Z);doch(Y,Z)).
· бабушка,
Если есть такая Х, что она является матерью Z, а у Z есть либо сын, либо дочь Y, то X является бабушкой Y
babushka(X,Y):-mama(X,Z),(syn(Y,Z);doch(Y,Z)).
· дядя,
Если существует такой Х, что Х является братом Z, а у Z есть сын либо дочь Y, то Х является дядей Y
dyadya(X,Y):-brat(X,Z),(syn(Y,Z);doch(Y,Z)).
Случай с тетями не был рассмотрен из-за их отсутствия
· прабабушка,
Если существует такой Х, что Х является мамой Z, а Z – бабушка либо дедушка Y, то Х – прабабушка Y
prababushka(X,Y):-mama(X,Z),(babushka(Z,Y);dedushka(Z,Y)).тетя,
· прадедушка,
Если существует такой Х, что Х является отцом Z, а Z – отцом либо мамой H, а H в свою очередь имеет либо сына либо дочь Y, то Х – прадедушка Y
pradedushka(X,Y):-otec(X,Z),(otec(Z,H);mama(Z,H)),(syn(Y,H);doch(Y,H)).
· внук,
Если существует такой Х, что Х является сыном Z, а Y – отцом или матерью Z, то X является внуком Y
vnuk(X,Y):-syn(X,Z),(otec(Y,Z);mama(Y,Z)).
· внучка,
Если существует такая Х, что Х является дочерью Z, а Y – отцом или матерью Z, то X является внучкой Y
vnuchka(X,Y):-doch(X,Z),(otec(Y,Z);mama(Y,Z)).
Примеры запросов к базе знаний и ее ответов
men (X)
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.