courses:knowledge_base_and_expert_system:lab5

Differences

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

Link to this comparison view

courses:knowledge_base_and_expert_system:lab5 [2019/09/04 21:39]
andrey.suchkov [Варианты заданий]
courses:knowledge_base_and_expert_system:lab5 [2022/12/10 09:08]
Line 1: Line 1:
-====== Лабораторная работа №5: Разработка простой экспертной системы на языке Visual Prolog ====== 
-===== Цель работы ===== 
-===== Основные теоретические положения ===== 
-Экспертные системы (ЭС) -- это системы искусственного интеллекта (интеллектуальные системы),​ предназначенные для решения плохо формализованных и слабо структурированных задач в определенных проблемных областях на основе заложенных в них знаний специалистов-экспертов. В настоящее время ЭС внедряются в различные виды человеческой деятельности,​ где использование точных математических методов и моделей затруднительно или вообще невозможно. К ним относятся:​ медицина,​ обучение,​ поддержка принятия решений и управление в сложных ситуациях,​ различные деловые приложения и т.д. 
  
-Основными компонентами ЭС являются рабочая память,​ называемая также базой данных (БД), база знаний (БЗ), блоки поиска решения,​ объяснения,​ извлечения и накопления знаний,​ обучения и организации взаимодействия с пользователем. Рабочая память,​ БЗ и блок поиска решений образуют ядро ЭС. 
- 
-База данных (рабочая память) предназначена для хранения исходных и промежуточных данных решаемой в текущий момент задачи. Этот термин совпадает по названию,​ но не по смыслу с термином,​ используемым в информационно-поисковых системах (ИПС) и системах управления базами данных (СУБД) для обозначения всех данных (в первую очередь долгосрочных),​ хранимых в системе. 
- 
-База знаний в ЭС предназначена для хранения долгосрочных данных,​ описывающих рассматриваемую предметную область (а не текущих данных),​ и правил,​ описывающих целесообразные преобразования данных этой области. 
- 
-Для конструирования ЭС используются различные инструментальные средства:​ универсальные языки программирования,​ языки искусственного интеллекта,​ инструментальные системы и среды и системы-оболочки. Системы-оболочки являются наиболее простым средством формализации (автоформализации) экспертных знаний,​ практически не требующие участия посредников в лице инженера по знаниям или программиста при их использовании. Инженер по знаниям только помогает эксперту выбрать наиболее подходящую для его проблемной области оболочку. 
- 
-Рассматриваемая в данной работе экспертная система функционирует следующим образом. Например,​ при работе с предметной областью <<​Бытовая техника>>,​ определяется предикат ''​technique_is(string)'',​ позволяющий идентифицировать бытовую технику,​ которая более всего удовлетворяет указанным пользователем признакам. При этом БЗ экспертной системы задается перечислением свойств объектов,​ которые у них имеются или же отсутствуют:​ 
-<code prolog> 
-technique_is ("​CD-плейер"​) :-  
-      it_is ("​аудио"​),​ 
-      positive ("​работает с", "​CD-дисками"​),​ 
-      negative ("​имеет",​ "​динамик"​). 
-</​code>​ 
-Предикаты ''​positive''​ и ''​negative''​ необходимы для того, чтобы запросить у пользователя ответ о наличии у объекта какого-то свойства и сохранить этот ответ в рабочей памяти:​ 
-<code prolog> 
-positive(X,​Y) :- 
-      xpositive(X,​Y),​!. 
-positive(X,​Y) :- 
-      not(xnegative(X,​Y)),​ 
-      ask(X,​Y,​Answer),​ 
-      remember(X,​Y,​Answer),​ 
-      Answer = yes. 
-negative(X,​Y) :- 
-      xnegative(X,​Y),​!. 
-negative(X,​Y) :- 
-      not(xpositive(X,​Y)),​ 
-      ask(X,​Y,​Answer),​ 
-      remember(X,​Y,​Answer),​ 
-      Answer = no. 
-ask(X,​Y,​yes) :- 
-      write(X,"​ ",​Y,"?"​),​ 
-      readln(Reply),​ 
-      frontchar(Reply,'​y',​_),​!. 
-ask(_,​_,​no). 
-remember(X,​Y,​yes) :- 
-      assertz(xpositive(X,​Y)). 
-remember(X,​Y,​no) :- 
-      assertz(xnegative(X,​Y)). 
-</​code>​ 
-Два встроенных предиката ''​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)