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

  • Лабораторная работа №1 на тему: «Разработка прототипа экспертной системы, базирующейся на правилах»

  • Состав данных: База знаний на тему - Морские животные Текст программы

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

  • ИИС_Лаб_1_ИЭоз-60а-19_Разумов П.В.. Разработка прототипа экспертной системы, базирующейся на правилах


    Скачать 89.67 Kb.
    НазваниеРазработка прототипа экспертной системы, базирующейся на правилах
    Дата17.03.2023
    Размер89.67 Kb.
    Формат файлаdocx
    Имя файлаИИС_Лаб_1_ИЭоз-60а-19_Разумов П.В..docx
    ТипЛабораторная работа
    #997382

    ФГБОУ ВО НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ «МЭИ»

    «Инженерно-экономический институт»

    Кафедра «Безопасности и информационных технологий»

    Интеллектуальные информационные системы
    Лабораторная работа №1 на тему:

    «Разработка прототипа экспертной системы, базирующейся на правилах»

    Руководитель

    доц. Карпович Е.Е.
    Выполнил

    студент группы ИЭоз-60а-19

    Разумов П.В.

    Москва 2023г

    Задание:

      1. Разработать базу знаний ЭС в выбранной предметной области.

      2. Написать программу, выполняющую функции ЭС, с использованием системы программирования SWI Prolog.

      3. Продемонстрировать работу программы.

      4. Составить отчет по лабораторной работе.

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

    База знаний на тему - Морские животные

    Текст программы:

    :- dynamic xpositive/2, xnegative/2.

    run :- assertz(xpositive(' ',' ')), assertz(xnegative(' ',' ')),

    nl,write(' * * * * * * * * * * * * * * * * * * * * * '),

    nl,write(' ДОБРО ПОЖАЛОВАТЬ! '),

    nl,write(' Проводится идентификация вида '),

    nl,write(' Отвечайте, пожалуйста, да или нет '),

    nl,write(' на вопросы об акулах, вид которой '),

    nl,write(' Вы хотите определить '),

    nl,write(' * * * * * * * * * * * * * * * * * * * * * * '),

    nl, expertiza.

    expertiza :- shark_is(X), !, nl, write('Вероятно Ваша акула – '), write(X), write('.'),

    nl,clear_facts.

    expertiza :- nl, write('Извините, я не смогу помочь Вам!'), clear_facts.

    vopros(X, Y) :- write('вопрос – '), write(X), write(' '),

    write(Y), write('? (да/нет) '), read(R), remember(X, Y, R).

    positive(X, Y) :- xpositive(X, Y), !.

    positive(X, Y) :- not(negative(X, Y)), !, vopros(X, Y).

    negative(X, Y) :- xnegative(X, Y), !.

    remember(X, Y, 'да') :- assertz(xpositive(X, Y)).

    remember(X, Y, 'нет') :- assertz(xnegative(X, Y)), fail.

    clear_facts :- retract(xpositive(_,_)), fail.

    clear_facts :- retract(xnegative(_,_)), fail.

    shark_is('Азиатская_кунья') :- positive('у нее','размер до 1,5м'),

    positive('она','опасна'),!,

    positive('она','часто встречается'),!.

    shark_is('Острозубая') :- positive('у нее','размер от 1,2м'),

    positive('она','не опасна'),!,

    positive('она','редко встречается'),!.

    shark_is('Колючая_акула') :- positive('у нее','размер 2м'),

    positive('она','потенциально опасна'),!,

    positive('она','часто встречается'),!.

    shark_is('Акула_молот') :- positive('у нее','размер до 4м'),

    positive('она','опасна'),!,

    positive('она','редко встречается'),!.

    shark_is('Белая_акула') :- positive('у нее','размер до 7м'),

    positive('она','очень опасна'),!,

    positive('она','крайне редко встречается'),!.

    shark_is('Тихоокеанская_сельдевая') :- positive('у нее','размер до 3,6м'),

    positive('она','потенциально опасна'),!,

    positive('она','редко встречается'),!.

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





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