Главная страница
Навигация по странице:

  • ОТЧЕТ ПО ЛАБОРАТОРНОЙ РАБОТЕ №1 по дисциплине «Интеллектуальные информационные системы»Тема: «Простейшая программа на языке Пролог »

  • лабораторная_работа_1. Простейшая программа на языке Пролог


    Скачать 34.2 Kb.
    НазваниеПростейшая программа на языке Пролог
    Дата06.05.2023
    Размер34.2 Kb.
    Формат файлаdocx
    Имя файлалабораторная_работа_1.docx
    ТипОтчет
    #1112580


    Министерство образования и науки Российской Федерации

    ФГБОУ ВО «НИУ «МЭИ»





    Инженерно-Экономический институт

    Кафедра «Безопасность и информационные технологии»
    ОТЧЕТ ПО ЛАБОРАТОРНОЙ РАБОТЕ №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.



    написать администратору сайта