Разработка автоматизированных экспертных систем в Exsys CORVID. Лабораторный практикум
.pdf
№ 3931 М И Н И С Т Е РС Т В О Н АУ К И И В ЫС Ш Е ГО О Б РА З О ВА Н И Я РФ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ «МИСиС»
ИНСТИТУТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ И АВТОМАТИЗИРОВАННЫХ СИСТЕМ УПРАВЛЕНИЯ
Кафедра автоматизированных систем управления
В.Б. Трофимов И.О. Темкин
РАЗРАБОТКА АВТОМАТИЗИРОВАННЫХ ЭКСПЕРТНЫХ СИСТЕМ В EXSYS CORVID
Лабораторный практикум
Рекомендовано редакционно-издательским советом университета
Москва 2020
УДК 004.4 Т76
Р е ц е н з е н т канд. техн. наук, проф. Е.А. Калашников
Трофимов В.Б.
Т76 Разработка автоматизированных экспертных систем в Exsys CORVID : лаб. практикум / В.Б. Трофимов, И.О. Темкин. – М. : Изд. Дом НИТУ «МИСиС», 2020. – 47 с.
Рассмотрены основные типы переменных, используемые для создания экспертных систем в Exsys CORVID, описана среда разработки автоматизированных экспертных систем, а также логический и командный блоки среды, рассмотрена среда исполнения и даны особенности настройки экспертной системы. Приведены варианты заданий для выполнения лабораторных работ.
Предназначен для студентов, обучающихся в магистратуре по направлению подготовки 09.04.01 «Информатика и вычислительная техника».
УДК 004.4
В.Б. Трофимов, И.О. Темкин, 2020
НИТУ «МИСиС», 2020
|
СОДЕРЖАНИЕ |
|
1. |
Оболочка экспертных систем Exsys CORVID........................ |
4 |
2. |
Лабораторная работа 1. Создание экспертной системы, |
|
ввод основных переменных.................................................. |
7 |
|
3. |
Лабораторная работа 2. Построение логического блока |
|
экспертной системы.......................................................... |
18 |
|
4. |
Лабораторная работа 3. Разработка командного блока |
|
экспертной системы.......................................................... |
27 |
|
5. |
Лабораторная работа 4. Исполнение экспертной системы.... |
32 |
Заключение..................................................................... |
35 |
|
Библиографический список............................................... |
39 |
|
Приложение. Варианты заданий......................................... |
40 |
|
3
1. ОБОЛОЧКА ЭКСПЕРТНЫХ СИСТЕМ EXSYS CORVID
Exsys CORVID – современное программное средство разработки экспертных автоматизированных систем. Оно содержит большое количество настроек и элементов управления, которые используются для создания сложных систем, обработки специальных ситуаций, логического описания процесса принятия решений. Также с его помощью можно объяснить процесс решения проблемы пользователю [1–16].
Первый шаг в Exsys CORVID – это выбор проблемы, которая может быть разбита на логические части или подпроблемы. Проблема должна быть решаема с применением логики, которую можно объяснить человеку, используя утверждения в форме: «IF ..., THEN ...» («ЕСЛИ …, ТО …») или «SINCE ..., I KNEW THAT ...» («С ТЕХ ПОР КАК…, Я ЗНАЛ ЧТО …»). Части «IF» или «SINCE» могут включать несколько условий.
Такое описание проблемы позволяет перевести ее в форму, необходимую для ввода в CORVID. Exsys CORVID содержит много способов описания вероятностных событий и решения проблем многоцелевого выбора.
Для описания возможных ситуаций и построения правил в CORVID имеется набор переменных, т.е. существует несколько типов переменных в зависимости от типа данных, которые они представляют. При запуске системы переменным, которые использованы в части «IF» правил, должны быть назначены значения. Значения могут исходить непосредственно от пользователя системы, из заключения (вывода) других правил, от других источников, например, баз данных.
Рассмотрим основные типы переменных.
1. Static List Variable – «статический список», или «переменные со статическим списком значений» – переменные, принимающие значения из заранее определенного списка (например, из списка множественного выбора). Это наиболее часто используемые переменные CORVID. Они состоят из утверждения (названия признака) и двух или более возможных значений (значений признака). Например, переменная может иметь значение «ДА» и «НЕТ». Для построения правила в базе знаний утверждению
4
(признаку) приписывается одно из нескольких возможных значений. При работе с экспертной системой пользователю будет задан вопрос (утверждение, выведено название признака) и предложены возможные варианты, из которых ему надо сделать выбор, после чего он получит заключение правила (рекомендацию).
2.Numeric Variable – «числовые переменные». Этот тип переменных принимает числовое значение из заданного диапазона. Числовое значение вводит пользователь в процессе работы системы по ее запросу. Правила могут содержать алгебраические выражения с числовыми переменными.
3.Confidence Variable – «доверительные переменные» – переменные, используемые для представления рекомендаций, которые будет выдавать система. С доверительными переменными ассоциируется доверительное значение (степень уверенности), которое, основываясь на введенных пользователем данных, показывает, насколько достоверна та или иная рекомендация. Эти переменные представляют собой набор возможных вариантов значений, из которых система может сделать выбор. Им можно назначить значения, которые будут использоваться, например, для определения суммарной балльной оценки возникновения какой-либо ситуации. То есть этот вид переменных используется для оценки, в результате которой выбирается или отвергается один из возможных вариантов решения проблемы или формируется набор наиболее вероятных событий. CORVID позволяет конкретизировать данный тип переменных, давая рекомендации для лучшей настройки. Этот тип переменных часто используется для описания элементов, которые находятся после слова «THEN». В CORVID существует несколько способов работы с «Confidence Variable», особенно когда есть различные независимые факторы, которые надо скомбинировать, и где некоторые факторы важнее, чем другие.
Переменным типа «Confidence Variable» присваиваются «Confidence Values» (доверительные значения). Назначенное числовое значение влияет на выбор, основанный на логике правил и первичных данных, введенных пользователем. Определенной переменной значения могут присваиваться в нескольких правилах. Значения переменной от всех правил объединяют,
5
чтобы найти полное (итоговое) доверительное значение для переменной, которое будет использовано для выбора.
В CORVID есть много путей комбинирования доверительных значений переменных, самый простой из них – суммирование. Доверительные значения можно представить в виде «баллов», введенных (назначенных) разработчиком и взятых, например, из рекомендаций экспертов. В правилах значения, назначенные переменным типа «Confidence Variable», находятся после части «THEN». Присваивание в правилах осуществляется символом «=».
После введения исходных данных в систему и логического вывода переменная типа «Confidence Variable» с самым большим количеством баллов будет указывать на лучший из возможных вариант (элемент, рекомендацию).
Значения могут быть любым числом. Их можно изменять друг относительно друга. Если необходимо увеличить значимость какого-либо фактора (сделать его более существенным, приоритетным) в части «IF», то переменной типа «Confidence Variable» в части «THEN» можно добавить несколько баллов. Также в части «THEN» можно прописать несколько доверительных переменных и менять их доверительные значения. Этот подход позволяет сгруппировать факторы для объединения и дать рекомендацию пользователю.
Для построения более сложных экспертных систем в CORVID есть много математических способов для объединения отдельных доверительных значений, которые можно использовать для каждой индивидуальной переменной типа «Confidence Variable».
CORVID использует переменные каждого типа данных. Это позволяет создавать правила и определять вопросы, которые будут задаваться пользователю экспертной системы.
6
2. Лабораторная работа 1. СОЗДАНИЕ ЭКСПЕРТНОЙ СИСТЕМЫ, ВВОД ОСНОВНЫХ ПЕРЕМЕННЫХ
Главное окно CORVID представлено на рис. 2.1. Для того чтобы создать новую экспертную систему, необходимо выбрать пункт «New» в меню «File» (рис. 2.2). Это действие вызовет стандартный Windows-диалог – появится окно сохранения файла. Для изучения CORVID создадим простейшую экспертную систему распознавания образов и назовем ее «expert». Выберите какую-либо папку для сохранения файлов и введите имя фала – название системы, затем нажмите на кнопку «Save». CORVID автоматически создаст *.CVD файл, в котором будет храниться база знаний.
Рис. 2.1. Главное окно Exsys CORVID
Рис. 2.2. Меню «File»
7
Для добавления и редактирования переменных используется окно «Variables». Это окно появится, если выбрать пункт «Variables» в меню «Windows» или нажать на значок «Add / Edit Variables» на панели инструментов (рис. 2.3, 2.4).
Рис. 2.3. Меню «Windows» и значок «Add / Edit Variables»
Рис. 2.4. Окно переменных «Variables»
8
Окно «Variables» – это наиболее часто используемое окно в CORVID, которое позволяет настроить все свойства переменных, необходимых для построения правил.
Нажмите на кнопку «New», чтобы создать (добавить) новую переменную (рис. 2.5).
Рис. 2.5. Кнопка «New» в окне переменных «Variables»
После нажатия на кнопку «New» появится окно «New Variable» (рис. 2.6).
Рис. 2.6. Окно «New Variable»
Каждая новая переменная должна иметь название и тип. Имя будет использоваться для обращения к переменной в системе.
9
Оно должно быть уникальным, коротким и содержательным, чтобы можно было понять, что оно означает. В CORVID есть семь типов переменных, но большинство систем может быть построено с использованием трех основных типов («Static List», «Numeric value» и «Confidence»).
Имя вводится в поле с меткой «Name». Имена переменных могут состоять только из следующих символов: буквы, цифры и символы – _, #, $, %. Все остальные символы из имен переменных удаляются. Пробелы в именах переменных автоматически конвертируются в подчеркивания (в символ «_»). Для выбора типа переменных пользователю предлагается кнопка-переклю- чатель – «radio button».
В качестве примера рассмотрим процесс распознавания двух возможных ситуаций по двум признакам (табл. 2.1). Пусть первая переменная «Признак_1» является «переменной со статическим списком» («Static List») и может принимать «Значение_1_1» или «Значение_1_2». Вторая переменная «Признак_2» является числовой («Numeric value»).
|
|
Таблица 2.1 |
Описание возможных ситуаций |
||
|
|
|
|
Значения признаков |
|
Название признаков |
для разных возможных |
|
(переменных) |
ситуаций (состояний) |
|
|
Ситуация_1 |
Ситуация_2 |
Признак_1 |
Значение_1_1 |
Значение_1_2 |
Признак_2 |
0≤ Значение ≤50 |
50< Значение ≤100 |
Третья переменная будет называться «Ситуация_1», а четвертая – «Ситуация_2». Они относятся к типу «Confidence». «Ситуация_1» – суммарная балльная оценка возникновения первой ситуации, «Ситуация_2» – второй ситуации.
Правила запишем следующим образом:
1)«IF («Признак_1» = «Значение_1_1»), THEN («Ситуация_1» := 10 баллов)»;
2)«IF («Признак_1» = «Значение_1_2»), THEN («Ситуация_2» := 10 баллов)»;
3)«IF (0 ≤ «Признак_2» ≤ 50), THEN («Ситуация_1» := 20 баллов)»;
10
