courses:knowledge_base_and_expert_system:lab5

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
courses:knowledge_base_and_expert_system:lab5 [2019/08/28 23:28]
andrey.suchkov [Основные теоретические положения]
courses:knowledge_base_and_expert_system:lab5 [2022/12/10 09:08] (current)
Line 1: Line 1:
 ====== Лабораторная работа №5: Разработка простой экспертной системы на языке Visual Prolog ====== ====== Лабораторная работа №5: Разработка простой экспертной системы на языке Visual Prolog ======
 ===== Цель работы ===== ===== Цель работы =====
 +Реализация и отладка простой экспертной системы на языке Visual Prolog.
 ===== Основные теоретические положения ===== ===== Основные теоретические положения =====
 Экспертные системы (ЭС) -- это системы искусственного интеллекта (интеллектуальные системы),​ предназначенные для решения плохо формализованных и слабо структурированных задач в определенных проблемных областях на основе заложенных в них знаний специалистов-экспертов. В настоящее время ЭС внедряются в различные виды человеческой деятельности,​ где использование точных математических методов и моделей затруднительно или вообще невозможно. К ним относятся:​ медицина,​ обучение,​ поддержка принятия решений и управление в сложных ситуациях,​ различные деловые приложения и т.д. Экспертные системы (ЭС) -- это системы искусственного интеллекта (интеллектуальные системы),​ предназначенные для решения плохо формализованных и слабо структурированных задач в определенных проблемных областях на основе заложенных в них знаний специалистов-экспертов. В настоящее время ЭС внедряются в различные виды человеческой деятельности,​ где использование точных математических методов и моделей затруднительно или вообще невозможно. К ним относятся:​ медицина,​ обучение,​ поддержка принятия решений и управление в сложных ситуациях,​ различные деловые приложения и т.д.
Line 14: Line 15:
 Рассматриваемая в данной работе экспертная система функционирует следующим образом. Например,​ при работе с предметной областью <<​Бытовая техника>>,​ определяется предикат ''​technique_is(string)'',​ позволяющий идентифицировать бытовую технику,​ которая более всего удовлетворяет указанным пользователем признакам. При этом БЗ экспертной системы задается перечислением свойств объектов,​ которые у них имеются или же отсутствуют:​ Рассматриваемая в данной работе экспертная система функционирует следующим образом. Например,​ при работе с предметной областью <<​Бытовая техника>>,​ определяется предикат ''​technique_is(string)'',​ позволяющий идентифицировать бытовую технику,​ которая более всего удовлетворяет указанным пользователем признакам. При этом БЗ экспертной системы задается перечислением свойств объектов,​ которые у них имеются или же отсутствуют:​
 <code prolog> <code prolog>
-technique_is ("​CD-плейер"​) :-  +technique_is("​CD-плейер"​) :-  
-      it_is ("​аудио"​),​ +      it_is("​аудио"​),​ 
-      positive ("​работает с", "​CD-дисками"​),​ +      positive("​работает с", "​CD-дисками"​),​ 
-      negative ("​имеет",​ "​динамик"​).+      negative("​имеет",​ "​динамик"​).
 </​code>​ </​code>​
 Предикаты ''​positive''​ и ''​negative''​ необходимы для того, чтобы запросить у пользователя ответ о наличии у объекта какого-то свойства и сохранить этот ответ в рабочей памяти:​ Предикаты ''​positive''​ и ''​negative''​ необходимы для того, чтобы запросить у пользователя ответ о наличии у объекта какого-то свойства и сохранить этот ответ в рабочей памяти:​
Line 36: Line 37:
       Answer = no.       Answer = no.
 ask(X,​Y,​yes) :- ask(X,​Y,​yes) :-
-      write(X,« »,Y,«?»),+      write(X," ",Y,"?"),
       readln(Reply),​       readln(Reply),​
       frontchar(Reply,'​y',​_),​!.       frontchar(Reply,'​y',​_),​!.
Line 45: Line 46:
       assertz(xnegative(X,​Y)).       assertz(xnegative(X,​Y)).
 </​code>​ </​code>​
-Два встроенных предиката ''​asserta''​ и ''​assertz''​ позволяют добавлять новые утверждения в базу данных. Оба предиката действуют в точности одинаковым образом,​ за тем исключением,​ что asserta добавляет утверждение в начало базы данных,​ в то время как ''​assertz''​ (или ''​assert''​) добавляет утверждение в ее конец.+Два встроенных предиката ''​asserta''​ и ''​assertz''​ позволяют добавлять новые утверждения в базу данных. Оба предиката действуют в точности одинаковым образом,​ за тем исключением,​ что ​''​asserta'' ​добавляет утверждение в начало базы данных,​ в то время как ''​assertz''​ (или ''​assert''​) добавляет утверждение в ее конец.
 ===== Постановка задачи ===== ===== Постановка задачи =====
 +Разработать в среде Visual Prolog простую ЭС в соответствии с вариантом задания либо предложив свою предметную область,​ предварительно согласовав её с преподавателем.
 ===== Порядок выполнения работы ===== ===== Порядок выполнения работы =====
 +  - Разработать простую ЭС в соответствии с вариантом задания либо согласовав предметную область с преподавателем.
 +  - Произвести отладку ЭС в среде Visual Prolog для различных наборов ответов пользователя на задаваемые экспертной системой вопросы.
 ===== Варианты заданий ===== ===== Варианты заданий =====
 +^  № варианта ​ ^  Описание ​ ^
 +|  1  |  Экспертная система с __обратной__ цепочкой рассуждений для определения заболевания пациента. ​ |
 +|  :::  |  Количество возможных видов заболеваний -- 3.  |
 +|  :::  |  Количество признаков заболеваний -- 15.  |
 +|  :::  |  Максимальная глубина дерева определения заболевания по соответствующим признакам -- 4.  |
 +|  2  |  Экспертная система с __прямой__ цепочкой рассуждений для определения заболевания пациента. ​ |
 +|  :::  |  Количество возможных видов заболеваний -- 15.  |
 +|  :::  |  Количество признаков заболеваний -- 7.  |
 +|  :::  |  Максимальная глубина дерева определения заболевания по соответствующим признакам -- 4.  |
 +|  3  |  Экспертная система с __обратной__ цепочкой рассуждений для определения причины неработоспособности компьютера. ​ |
 +|  :::  |  Количество возможных причин неработоспособности -- 4.  |
 +|  :::  |  Количество признаков неработоспособности -- 15.  |
 +|  :::  |  Максимальная глубина дерева определения причины неработоспособности по соответствующим признакам -- 3.  |
 +|  4  |  Экспертная система с __прямой__ цепочкой рассуждений для определения причины неработоспособности компьютера. ​ |
 +|  :::  |  Количество возможных причин неработоспособности -- 12.  |
 +|  :::  |  Количество признаков неработоспособности -- 6.  |
 +|  :::  |  Максимальная глубина дерева определения причины неработоспособности по соответствующим признакам -- 4.  |
 +|  5  |  Экспертная система с __обратной__ цепочкой рассуждений для определения причины,​ по которой не заводится автомобиль. ​ |
 +|  :::  |  Количество возможных причин -- 4.  |
 +|  :::  |  Количество признаков,​ позволяющих определить причину -- 11.  |
 +|  :::  |  Максимальная глубина дерева определения причины по соответствующим признакам -- 3.  |
 +|  6  |  Экспертная система с __прямой__ цепочкой рассуждений для определения причины,​ по которой не заводится автомобиль. ​ |
 +|  :::  |  Количество возможных причин -- 6.  |
 +|  :::  |  Количество признаков,​ позволяющих определить причину -- 7.  |
 +|  :::  |  Максимальная глубина дерева определения причины по соответствующим признакам -- 5.  |
 +|  7  |  Экспертная система с __обратной__ цепочкой рассуждений для выработки рекомендаций студенту по планированию его времени для успешной сдачи экзаменов. ​ |
 +|  :::  |  Количество возможных рекомендаций -- 4.  |
 +|  :::  |  Количество факторов,​ влияющих на выработку рекомендации -- 11.  |
 +|  :::  |  Максимальная глубина дерева определения причины по соответствующим факторам -- 4.  |
 +|  8  |  Экспертная система с __прямой__ цепочкой рассуждений для выработки рекомендаций студенту по планированию его времени для успешной сдачи экзаменов. ​ |
 +|  :::  |  Количество возможных рекомендаций -- 10.  |
 +|  :::  |  Количество факторов,​ влияющих на выработку рекомендации -- 4.  |
 +|  :::  |  Максимальная глубина дерева определения причины по соответствующим факторам -- 5.  |
 ===== Содержание отчёта ===== ===== Содержание отчёта =====
 +  * Цель работы.
 +  * Краткое изложение основных теоретических понятий.
 +  * Постановка задачи с кратким описанием порядка выполнения работы.
 +  * Результаты работы программы для различных исходных ситуаций (скриншоты экрана с результатами работы программы). Объяснения результатов программы
 +  * Общий вывод по проделанной работе.
 +  * Код программы.
courses/knowledge_base_and_expert_system/lab5.1567034910.txt.gz · Last modified: 2022/12/10 09:08 (external edit)