Учебный курс "Интеллектуальные системы" > Практика > Лабораторные работы
it-claim.ru

ES-1: Разработка вопросно-ответной компоненты ЭС

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

 

© НОК CLAIM. Замечания, вопросы и сведения об ошибках просим сообщать в форуме или присылать администратору сайта.
OZON.ru Rambler's Top100 Раздел создан при поддержке гранта Благотворительного фонда В.Потанина