|
Краткое описание
Разработка компьютерной программы для поддержки принятия решения, логика работы которой определяется вне тела программы (в базе знаний) и может быть изменена инженером по знаниям без обновления ее кода. |
1. |
Цель работы
Ознакомиться с подходом к разработке экспертных систем (ЭС) и баз знаний для гибкой автоматизации процессов принятия решения.
|
2. |
Порядок выполнения работы
|
3. |
Задания лабораторной работы |
Требования |
3.1. |
В рамках выбранной предметной области ЭС, где уже определены объекты принятия решения (O), их свойства (A), а также параметры других объектов, событий, процессов и т.д (P), спроектировать множество продукционных правил (R).
|
- Количество продукционных правил, определяющих значения свойств объектов принятия решения (A) на основе значений параметров других объектов (P), должно быть не менее 20.
-
Количество правил, имеющих две (или более) посылки и реализующих их конъюнкцию (или другую форму агрегирования), должно быть не менее 40%.
|
R = {P => A} |
|R| = 20+ |
|Pi & Pj =>An | = 8+ |
3.2. |
Доработать базу знаний (БЗ) и компьютерную программу из л/р ES-1, реализовав в ней возможность вывода правил (P->A):
- Создание в БЗ информационных структур для хранения продукционных правил различного типа (с одной или несколькими посылками).
- Разработка программы (программного модуля), которая осуществляет обработку (вывод) правил для определения свойств объекта принятия решения (A).
- Разработка компоненты, которая на основе полученных свойств осуществляет выбор конкретного объекта или совета.
- Интеграция с программными модулями л/р ES-1.
|
- Правила должны храниться в отдельной структуре (таблице) БЗ. Описание правил в БЗ должно быть реализовано таким образом, что от пользователя не требуется указание номера вопроса, номера ответа и т.д.
- Применение одного, нескольких или всех правил может осуществляться:
- после ответа на каждый вопрос или только на некоторые вопросы
- после завершения диалога.
- Для избежания повторного использования правила можно ввести соответствующий атрибут (например, Used).
- Если условие применения одного правила зависит от результатов использования других правил, то необходимо задать соответствующий порядок (очередность). Альтернативой этому является повторная проверка выполнимости всех правил после срабатывания хотя бы одного из них.
- В общем случае необходимость и очередность задавания вопросов может определяться на основе применения группы правил. Для реализации этого механизма имеет смысл объединить правила для вопросов и правила определения новых параметров.
|
4. |
- Ниже приведены два варианта реализации таблицы правил
- В таблице RulesSimple всегда имеется только одна посылка и одно следствие. Для реализации множества следствий необходимо написать несколько правил с одинаковой левой частью.
- В таблице RulesComplex может иметься одна или две посылки, которые могут объединяться логической, арифметической или другой операцией. Для реализации более сложного правила, содержащего три или более посылки, его нужно разбивать на несколько простых.
- При вероятностном или нечетком выводе можно использовать операцию приращения/уменьшения значения параметра.
|
RulesSimple |
Поле |
Тип данных |
Описание |
ID |
Integer |
Идентификатор правила |
IF_Atr |
String |
Атрибут (свойство) объекта посылки. |
IF_Value |
String |
Значение атрибута (свойства) объекта посылки. |
Then_Atr |
String |
Атрибут (свойство) объекта следствия. |
Then_Value |
String |
Значение атрибута (свойства) объекта следствия. |
Used |
Boolean |
Использовано/не использовано правило |
|
RulesComplex |
Поле |
Тип данных |
Описание |
ID |
Integer |
Идентификатор правила |
IF1_Atr |
String |
Атрибут (свойство) объекта посылки. |
IF1_Value |
String |
Значение атрибута (свойства) объекта посылки. |
Operation |
Integer |
Логическая операция ( 0 – нет операции, 1 – AND, 2 – OR, 3 – NOT …) |
IF2_Atr |
String |
Атрибут (свойство) объекта посылки. |
IF2_Value |
String |
Значение атрибута (свойства) объекта посылки. |
Then_Atr |
String |
Атрибут (свойство) объекта следствия. |
Then_Value |
String |
Значение атрибута (свойства) объекта следствия. Значение ='Null', если осуществляется прирост/уменьшение вероятности гипотезы. |
ChangeValue |
Integer (Number) |
Прирост/уменьшение вероятности (уверенности, достоверности) гипотезы (факта). |
Used |
Boolean |
Использовано/не использовано правило |
|
|
|
Консультация в форуме |
|
Лабораторные работы
(старая версия) |
|
Требования к оформлению электронных отчетов |
|
Учебный проект в области ИИ |
|
Статьи и кейсы студентов |
|
|
Дополнительная функциональность |
Cоздание подсистемы редактирования БЗ |
1+ |
|
Визуализация работы машины вывода (отображение дерева вывода) |
1+ |
|
Синтаксический разбор логических и математических выражений в правилах |
1+ |
|
Проверка правил на противоречивость и избыточность |
1+ |
|
Вывод новых (производных) правил |
1+ |
|
Обратный, смешанный и немонотонный вывод |
1+ |
|
Пример сложного правила |
- Если (стиль_одежды = "деловой")
И (пол="мужской" )
То (вид_одежды="костюм")
|
Содержание отчета |
- Название и цель работы
- Задание, краткое описание предметной области и выбранной задачи
- Перечень параметров, атрибутов и их допустимых значений
- Правила получения атрибутов A из множества исходных параметров P
- Структура БЗ (логическая и физическая модель данных)
- Блок-схема алгоритма работы программы
- Подробное описание алгоритма работы программы с БЗ
- Подробная инструкция по работе с БЗ и ЭС
- Выводы и рекомендации
- Допускается оформить один отчет на л/р ES-1 и ES-2
|
Дополнительные лабораторные работы |
ES-1: Разработка вопросно-ответной компоненты ЭС |
|
ES-3: Разработка ЭС с поддержкой вероятностного вывода |
|
ES-4: Разработка ЭС с поддержкой нечеткого вывода |
|
ES-5: Компонента объяснения ЭС |
|
ES-6: Компонента обучения ЭС |
|
ES-7: Программный интерфейс взаимодействия с ЭС (DLL, DCOM, CORBA, ACTIVEX и др.) |
|
ES-8: Модуль генерации исходных данных ЭС(подсистема моделирования) |
|
|