Файл: Простейшая программа на языке Пролог.docx

ВУЗ: Не указан

Категория: Отчет по практике

Дисциплина: Не указана

Добавлен: 05.12.2023

Просмотров: 65

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Министерство образования и науки Российской ФедерацииФГБОУ ВО «НИУ «МЭИ»Инженерно-Экономический институтКафедра «Безопасность и информационные технологии»ОТЧЕТ ПО ЛАБОРАТОРНОЙ РАБОТЕ №1по дисциплине «Интеллектуальные информационные системы»Тема: «Простейшая программа на языке Пролог»Выполнил:Студент группы ИЭз-228-1488 Прониченкович Г.ЗПроверила:Степчук Е.Е.Москва 2020

Задание

Необходимо выполнить следующие действия:1. Описать с помощью фактов 4-уровневовое генеалогическое дерево в Пролог-программе “Родственники”, включающей предикаты parent и person.2. Написать правила, определяющие следующие отношения:1. “X является отцом Y” .2. “X является бабушкой Y” .3. “X является сестрой Y” .4. “X является племянником Y” .5. “X является племянницей Y” .6. “X является родителем родителя Y” .7. “X является прадедушкой Y” .8. “X является двоюродным братом Y” .3. Отладить программу с помощью интерпретатора SWI Prolog.4. Продемонстрировать работу программы с помощью вопросов.5. Составить отчет по лабораторной работе.

Состав данных

Код программы

person(andrew,m).person(lisa,f).person(edgar,m).person(olga,f).person(aksen,m).person(anna,f).person(oleg,m).person(stas,m).person(elisa,f).person(ivan,m).person(alena,f).person(misha,m).person(masha,f).person(karen,m).person(veigar,m).parent(andrew,anna).parent(andrew,aksen).parent(lisa,anna).parent(lisa,aksen).parent(edgar,oleg).parent(olga,oleg).parent(anna,ivan).parent(anna,elisa).parent(oleg,ivan).parent(oleg,elisa).parent(stas,misha).parent(stas,masha).parent(stas,karen).parent(elisa,misha).parent(elisa,masha).parent(elisa,karen).parent(ivan,veigar).parent(alena,veigar).father(X,Y):- person(X,m), parent(X,Y).grandmother(X,Y):- person(X,f), parent(X,Z), parent(Z,Y).sister(X,Y):- person(X,f), father(P,Y), father(P,X), X\=Y.nephew(X,Y):- person(X, m), grandmother(P,X), parent(P,Z), parent(P,Y), parent(Z,X), Y\=Z.

niece(X,Y):- person(X,f), grandmother(P,X), parent(P,Z), parent(P,Y), parent(Z,X), Y\=Z.
parents_parent(X,Y):- parent(X,Z), parent(Z,Y).
great_grandfather(X,Y):- person(X,m), parents_parent(Z,Y), parent(X,Z).
cousin_brother(X,Y):- person(X,m), nephew(X,S), parent(S,Y).

Тест работы программы

ࠀ?- father(X,Y).X = andrew,Y = anna ;X = andrew,Y = aksen ;X = edgar,Y = oleg ;X = oleg,Y = ivan ;X = oleg,Y = elisa ;X = stas,Y = misha ;X = stas,Y = masha ;X = stas,Y = karen ;X = ivan,Y = veigar ;false.?- grandmother(X,Y).X = lisa,Y = ivan ;X = lisa,Y = elisa ;X = olga,Y = ivan ;X = olga,Y = elisa ;X = anna,Y = veigar ;X = anna,Y = misha ;X = anna,Y = masha ;X = anna,Y = karen ;false.?- sister(X,Y).X = anna,Y = aksen ;X = elisa,Y = ivan ;X = masha,Y = misha ;X = masha,Y = karen ;false.?- nephew(X,Y).X = ivan,Y = aksen ;X = misha,Y = ivan ;X = karen,Y = ivan ;X = veigar,Y = elisa ;false.?- niece(X,Y).X = elisa,Y = aksen ;X = masha,Y = ivan ;false.?- parents_parent(X,Y).X = andrew,Y = ivan ;X = andrew,Y = elisa ;X = lisa,Y = ivan ;X = lisa,Y = elisa ;X = edgar,Y = ivan ;X = edgar,Y = elisa ;X = olga,Y = ivan ;X = olga,Y = elisa ;X = anna,Y = veigar ;X = anna,Y = misha ;X = anna,Y = masha ;X = anna,Y = karen ;X = oleg,Y = veigar ;X = oleg,Y = misha ;X = oleg,Y = masha ;X = oleg,Y = karen ;false.?- great_grandfather(X,Y).X = andrew,Y = veigar ;X = andrew,Y = misha ;X = andrew,Y = masha ;X = andrew,Y = karen ;X = edgar,Y = veigar ;X = edgar,Y = misha ;X = edgar,Y = masha ;X = edgar,Y = karen ;false.?- cousin_brother(X,Y).X = misha,Y = veigar ;X = karen,Y = veigar ;X = veigar,Y = misha ;X = veigar,Y = masha ;X = veigar,Y = karen ;false.