|
Краткое описание
Разработка программного модуля диалога с пользователем, логика работы которого определяется вне тела программы и может быть изменена пользователем без обновления ее кода. |
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 для определения атрибутов A
- A ->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: Модуль генерации исходных данных ЭС(подсистема моделирования) |
|
|
|