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
Next revision Both sides next revision
courses:knowledge_base_and_expert_system:lab5 [2019/08/28 23:28]
andrey.suchkov [Основные теоретические положения]
courses:knowledge_base_and_expert_system:lab5 [2019/10/21 07:03]
andrey.suchkov [Порядок выполнения работы]
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.txt · Last modified: 2022/12/10 09:08 (external edit)