| 
	        
	          | 
 | Краткое описание Разработка программного модуля диалога с пользователем, логика работы которого определяется вне тела программы и может быть изменена пользователем без обновления ее кода.
 |  
	          | 1. | Цель работы Ознакомиться с подходом к разработке экспертных систем (ЭС) и баз знаний в части описания правил построения диалога с пользователем.
 |  
	          | 2. | Порядок выполнения работы 
	              Изучить теоретическое введение.Последовательно выполнить все задания к лабораторной работе. Провести серию из 5+ испытаний с различными исходными данными и изменениями в базе знаний.Оформить отчет по лабораторной работе.  |  
	          | 3. | Задания лабораторной работы | Требования |  
	          | 3.1. | Выбрать предметную область и формализовать  задачу, которая может быть решена с помощью ЭС: 
	              Определить перечень объектов принятия решения O.Определить свойства (атрибуты) объектов принятия решения A и их значения.Определить параметры P других объектов, событий, процессов и т.д., которые влияют на выбор конкретных значений свойств объектов O. | 
	              Задача принятия решения должна сводиться к выбору конкретного объекта (или рекомендации) Oi из заранее определенного множества O. Множество возможных решений  должно быть более двух.Количество свойств (атрибутов) объектов должно не менее 10.Количество параметров других объектов, , событий, процессов и т.д. должно быть не менее 20.Множества свойств объекта принятия решения (P) и других объектов (A) не должны пересекаться. |  
	          | |O| > 1 | |A| = 10+ | |P| = 20+ | P!=A |  
	          | 3.2. | Разработать схему разветвленного диалога с пользователем: 
	              Придумать множество вопросов Q, позволяющих определить значения параметров PРазработать  граф диалога вопросов и ответовСоставить правила выбора последующего вопроса на основе ответов предыдущего. | 
	            Количество вопросов Q должно быть не менее 20. Количество возможных ответов для каждого вопроса дожно быть не менее 2-х Должны быть предусмотрены вопросы с 3-4 вариантами ответов, а также открытые вопросы (без предварительных вариантов на выбор).Порядок задавания вопросов должен изменяться в зависимости от ответов, т.е. могут быть заданы не все  вопросы, а только их часть.Все вопросы должны задаваться в распространенной языковой и по возможности вежливой форме. Например, "Выберите цвет автомобиля", "Какой размер одежды Вы носите?" |  
	          | 3.3. | Разработать базу знаний (БЗ) и компьютерную программу (программный модуль), которая опрашивает пользователя на основе спроектированной схемы диалога (Q->P): 
	              Создание базы знаний для хранения вариантов ответов, вопросов  и правил их задавания.Разработка программы, которая считывает вопросы из БЗ, анализирует ответы и на основе правил БЗ  определяет очередность последующих вопросов.Разработать интерфейс с пользователем, который обеспечивает эффективный режим диалога. | 
	            Одновременно должен задаваться только один вопрос. Варианты допустимых ответов должны оформляться в виде раскрывающего списка, радио кнопок или других  визуальных элементов. Для консольных приложений можно использовать нумерацию вариантов ответов.Вся информация о вопросах, ответах, а также правила задавания вопросов и выбора их очередности должны храниться во внешней базе знаний (в СУБД, XML-файле или других информационных структурах).Программа должна работать без изменения ее кода при добавлении, обновлении и удалении вопросов/ответов и правил их задавания. |  
	          | 3.4. | Реализовать программные модули, которые осуществляют обработку результатов диалога с пользователем: 
	              P -> A: Обработка (анализ) полученных данных P для определения атрибутов AA ->Oi: Принятие решения на основе полученных характеристик A - выбор одного из заранее определенных вариантов решения (объекта  O)Вывод результата (рекомендации) пользователю. | 
	            Этот пункт задания является опциональным, т.к. его реализация более подробно рассматривается в рамках лабораторной работы ES-2.Допускается реализация этих этапов принятия решения без использования внешней БЗ.Не допускается исключение этапа определения значений необходимых для принятия решения атрибутов A за счет использования хорошо построенного диалога. (Не допускается исключение этапа P -> A). |  
	          | 4. | 
	              Пример реализации структуры БЗ с помощью реляционной базы данных, кторая содержит 3 таблицы:
  
     таблица вопросов Quest таблица правил очередности задавания вопросов QuestRulesтаблица ответов Answ |  
	          | 
	            
	              | 
	                
	                  | Quest |  
	                  | Поле | Тип данных | Описание |  
	                  | ID | Integer | Идентификатор вопроса |  
	                  | Question | String | Вопрос |  
	                  | AnsType | Integer | Тип данных для ответа (0 – Boolean, 1 – Integer, 2 – String)
 |  
	                  | Answer1 | String | Вариант ответа 1 |  
	                  | Answer2 | String | Вариант ответа 2 |  
	                  | … | … | … |  
	                  | AnswerN | String | Вариант ответа N |  
	                  | Asked | Boolean | Задан/не задан вопрос |  
	                  | Parameter | String | Параметр (свойство) объекта, значение которого определяется ответом. |  
	                  | Order | Integer | Порядок (очередность) задавания вопроса |  | 
	                
	                  | Answ |  
	                  | Поле | Тип данных | Описание |  
	                  | ID | Integer | Идентификатор записи |  
	                  | Parameter 1 | String | Значение параметра (свойства) объекта, заполняемое после ответа на вопрос. |  
	                  | … | … | … |  
	                  | Parameter M | String | Значение параметра M |  |  
	              | 
	                
	                  | QuestRules |  
	                  | Поле | Тип данных | Описание |  
	                  | ID | Integer | Идентификатор правила |  
	                  | IF_Par | String | Параметр (свойство) объекта. |  
	                  | IF_Value | String | Значение параметра объекта |  
	                  | NextQuest | Integer | Номер (ID) следующего вопроса. Значение =0, если нужно только исключить вопрос. |  
	                  | NoAsk | Integer | Номер (ID) вопроса, который не надо задавать. Значение =0, если не нужно исключать вопрос. |  |  |  | 
	          
	            | Консультация в форуме |  |  
	          | Лабораторные работы (старая версия)
 |  |  
	          | Требования к оформлению электронных отчетов |  |  
	          | Учебный проект в области ИИ |  |  
	          | Статьи и кейсы студентов |  
	          |  |  |  
	          | Дополнительная функциональность |  
	          | Cоздание подсистемы редактирования БЗ | 1+ |  |  
	          | Визуализация графа диалога | 1+ |  |  
	          | Реализация правил изменения очередности вопросов | 1+ |  |  
	          | Увеличение количества вопросов (40+) | 1+ |  |  
	          | Вопросы по материалам (тематике) НОК CLAIM | 1+ |  |  
	          | Содержание отчета |  
	          | 
	             Название и цель работыЗадание, краткое описание предметной области и выбранной задачиПеречень параметров, атрибутов и их допустимых значений Перечень вопросов, вариантов ответов и граф диалогаСтруктура БЗ (логическая и физическая модель данных)Блок-схема алгоритма  работы программыПодробное описание алгоритма работы программы с БЗПодробная инструкция по работе с БЗ и ЭС Выводы и рекомендацииДопускается оформить один отчет на  л/р ES-1 и ES-2 |  
	          | Рекомендации по реализации |  
	          | Замечание 1. Для некоторых задач диалог может быть построен таким образом, что ответ на очередной вопрос сужает область поиска (выбора), а каждому листу дерева вопросов сопоставляется вариант решения. В этом случае в схеме диалога заложен алгоритм принятия решения (выбора). Характерной особенностью таких диалогов является взаимосвязанность всех вопросов. Однако, для случаев, когда существует группы несвязанных и не зависящих друг от друга вопросов (фактически отдельные графы диалога), возникают проблемы:  Например, необходимо определить характеристики покупаемого компьютера. Пусть имеется, по крайней мере, четыре независимых группы вопросов, определяющих требования к системному блоку, монитору, клавиатуре и мыши соответственно. При использовании указанного подхода каждому ответу из множества {Answer1, …, AnswerN}, на котором заканчивается диалог о выборе системного блока, нужно сопоставить переход на первый вопрос Q2 из группы по выбору монитора (клавиатуры, мыши). Если нужно вопрос Q2 заменить на другой (Q3), то придется изменять N соответствующих переходов (ссылок) на него.  Для избежания этого недостатка можно задать порядок (очередность) следования вопросов при отсутствии явных указаний. Если в структуре ответа, хранящегося в БЗ, не будет указаний на следующий вопрос, то программа осуществит поиск первого незаданного вопроса. Обычно первыми в списке идут вопросы, являющиеся вершинами независимых веток графа диалога. |  
	          | Требование. Не допускается исключение этапа определения значений необходимых для принятия атрибутов за счет использования хорошо построенного диалога. Чтобы этого избежать можно, например, ввести несколько независимых веток вопросов. |  
	          | Замечание 2. На практике часто встречаются случаи, когда граф диалога имеет циклические структуры. Это может привести к тому, что один и тот же вопрос будет задаваться больше одного раза. Можно вынести все общие вопросы разных веток диалога и задавать их один раз без привязки к конкретному объекту (в начале или конце диалога). Однако, если по статистике эти вопросы нужно задавать редко, то это нецелесообразно. Для решения этой задачи можно в БЗ задать правила, которые определяют вопросы, которые не нужно задавать. |  
	          | Дополнительные лабораторные работы |  
	          | ES-2: Разработка модуля вывода ЭС |  |  
	          | ES-3: Разработка ЭС с поддержкой вероятностного вывода |  |  
	          | ES-4: Разработка ЭС с поддержкой нечеткого вывода |  |  
	          | ES-5: Компонента объяснения ЭС |  |  
	          | ES-6: Компонента обучения ЭС |  |  
	          | ES-7: Программный интерфейс взаимодействия с ЭС (DLL, DCOM, CORBA, ACTIVEX и др.) |  |  
	          | ES-8: Модуль генерации исходных данных ЭС(подсистема моделирования) |  |  
	          |  |  |