Создание экспертных систем в среде EXSYS
Министерство Путей Сообщения РФ
Иркутский Государственный Университет Путей Сообщения
Институт Информационных Технологий и Моделирования
Кафедра «Информационные Системы»
Курсовая работа
По дисциплине «Системы искусственного интеллекта»
На тему: СОЗДАНИЕ ЭКСПЕРТНЫХ СИСТЕМ В СРЕДЕ EXSYS
Иркутск 2003г.
ВВЕДЕНИЕ
Экспертные системы (ЭС) - это системы искусственного интеллекта (интеллектуальные системы), предназначенные для решения плохоформализованных и слабоструктурированных задач в определенных проблемных областях, на основе заложенных в них знаний специалистов-экспертов [1-4]. В настоящее время ЭС внедряются в различные виды человеческой деятельности, где использование точных математических методов и моделей затруднительно или вообще невозможно. К ним относятся: медицина, обучение, поддержка принятия решений и управление в сложных ситуациях, деловые различные приложения и т. д.
Основными компонентами ЭС являются базы данных (БД) и знаний (БД), блоки поиска решения, объяснения, извлечения и накопления знаний, обучения и организации взаимодействия с пользователем. БД, БЗ и блок поиска решений образуют ядро ЭС.
Для конструирования ЭС используются различные инструментальные средства: универсальные языки программирования, языки искусственного интеллекта, инструментальные системы и среды и системы-оболочки. Системы-оболочки являются наиболее простым средством формализации (автоформализации) экспертных знаний, практически не требующие участия посредников в лице инженера по знаниям или программиста при их использовании. Инженер по знаниям только помогает эксперту выбрать наиболее подходящую для его проблемной области оболочку.
В пособии рассматривается ряд коммерческих инструментальных систем-оболочек, широко используемых для конструирования прикладных ЭС для статических проблемных областей, характеризующихся постоянством своих параметров в процессе функционирования (процессе консультации) ЭС. В таких статических ЭС режимы приобретения знаний (формирования БЗ) и консультации разделены.
Системы EXSYS и GURU относятся к системам дедуктивного продукционного типа, причем система GURU (в ее современной версии, ориентированной на рабочие станции) по сути является инструментальной средой, поддерживающей различные режимы конструирования прикладных ЭС и обладающей достаточно развитыми средствами обработки фактора неопределенности. Эта система ориентирована на различные классы пользователей в зависимости от их подготовки в области искусственного интеллекта и программирования, имеет развитый интерфейс с современными СУБД и электронными таблицами, средства сбора статистики и т. д. Система может работать на различных вычислительных платформах под управлением различных операционных систем, а также имеет поддержку сетевой конфигурации. Здесь будет рассмотрен наиболее простой способ использования GURU как системы-оболочки.
В пособие приводятся общие характеристики систем и рассматриваются основные режимы их функционирования - режим приобретения знаний, в котором экспертом (возможно, при участии инженера по знаниям) формируется БЗ прикладной, и режим консультации, когда оболочка уже "наполнена" знаниями и является по сути прикладной ЭС, предназначенной для пользователя-прикладника. В режиме приобретения знаний также осуществляется модификация ЭС (изменение и пополнение БЗ).
СИСТЕМА EXSYS
Общие характеристики системы Exsys
Экспертная система Exsys представляет собой интеллектуальную систему, которая может быть использована для разработки базы знаний в любой предметной области. При этом знания представляются в виде продукционных правил. В систему включены средства отладки и тестирования программы, редактирования для модификации знаний и данных.
Основной частью экспертной системы является база знаний, которая накапливается в процессе развития системы. База знаний содержит правила типа:
IF (условие) THEN (заключение), либо
IF (условие) THEN (заключение 1) ELSE (заключение 2)
Пример продукции:
Если pH < 6, то жидкость – кислота.
Правила могут существовать с некоторой долей вероятности, которая выражается коэффициентом уверенности. Величину этого коэффициента задает эксперт при разработки базы знаний. В экспертной системе Exsys предусмотрено три шкалы, по которым оцениваются коэффициенты уверенности.
Первая шкала использует только два значения коэффициентов уверенности: 0 –ложь, 1 – истина.
Вторая шкала предусматривает значения от нуля до десяти, при этом: 0 – абсолютная ложь, 10 – абсолютная истина, промежуточные значения характеризуют различную степень уверенности.
Третья шкала расширяет возможности второй: -100 – абсолютная ложь, +100 – абсолютная истина, промежуточные значения соответствуют различной степени уверенности.
При разработке базы знаний эксперт решает, в зависимости от особенностей задачи, какую из этих шкал выбрать.
При разработке базы знаний можно воспользоваться текстовой информацией, формулами или использовать и то, и другое одновременно. Все зависит от выбора разработчика. В том случае, если было решено использовать математические выражения, появляются переменные. Они записываются в квадратных скобках. Например, [X] > [Y].
С правилом могут быть связаны примечание (NOTE) и ссылка (REFERENCE), которые отражают справочную информацию. Каждое правило обязательно должно содержать две части IF – условие и THEN – заключение. Части ELSE, NOTE, REFERENCE не являются обязательными.
При разработке правил в системе Exsys используются квалификаторы. Квалификатор – это специальная текстовая переменная, которая имеет имя и может принимать одно из нескольких значений. Все значения пронумерованы для быстрого и легкого ввода их при создании правил.
Квалификаторы используются для формирования условий. С этой целью выбирается нужный квалификатор и указывается номер соответствующего значения.
В процессе создания экспертной системы можно изменить любое правило, любой квалификатор, их текстовую информацию и вариант значения.
В системе формируются варианты выбора (CHOICES) принятия решения, которые составляют часть THEN (заключение) правила с заданной экспертом шкалой вероятности.
Важной особенностью системы Exsys является возможность вывода информации из других правил, позволяющая разбивать сложные задачи на подзадачи. В Exsys реализованы механизмы как прямого, так и обратного вывода.
Система Exsys, как и любая экспертная система имеет возможность объяснения полученных результатов. При необходимости, можно выяснить весь ход вычислений, вплоть до исходных данных.
Система Exsys в процессе поиска решения способна выполнять ряд вычислительных задач, но некоторые задачи выходят за рамки его возможностей. В Exsys имеется возможность вызова внешних программ для выполнения вычислений. Внешние программы могут передавать данные Exsys через БД или spread sheet. Exsys может вызывать почти все MSDOS–программы в качестве внешних программ.
Ввод правил
Ввод нового правила выполняется при нажатии клавиши <ENTER> или <А>. Exsys проверяет все новые правила на совместимость с уже существующими. Если обнаружен возможный конфликт, информация об этом отображается на экране и пользователь должен произвести необходимые изменения. Exsys не может проверять математические формулы.
Правила состоят из условий, которые являются предложениями. Эти условия часто состоят из квалификаторов и значений, объединенных в предложение. Квалификатор всегда находится в начале предложения. В условной части правила может быть несколько пар квалификатор-значение. Exsys допускает до 30 значений для одного квалификатора. Не следует переопределять значения квалификаторов, так как Exsys хранит квалификаторы в соответствии с их номерами и не сможет распознать, что два квалификатора с различными номерами одинаковы, если их текстовые значения совпадают.
Ранее введенные квалификаторы можно вызывать для повторного использования по их номерам, можно перемещаться по их списку нажатием клавиш <> и <>. Если список квалификаторов велик или Вы забыли номер требуемого квалификатора, можно найти его по его текстовому имени. Для этого необходимо нажать клавишу <F>, а затем ввести текст. Если некоторый квалификатор содержит введенный текст, он будет отображен вместе со своим номером. Таким образом, в результате поиска могут быть найдены несколько квалификаторов. Выбор нужного производится по номеру.
Во время работы экспертной системы проверяются IF – части правил. Если все условия в IF – части правила истинные, то принимается истинной THEN – часть правила, в противном случае принимается истинной ELSE – часть правила (если она есть). Exsys допускает задание в одной IF – части до 126 конъюнкций условий. Условия проверяются в том порядке, в котором они записаны, соответственно порядок их следования может быть различным. Поэтому наиболее важные условия следует записывать раньше.
Каждое правило может иметь примечание. Примечание отображается вместе с правилом и не влияет на ход работы, а служит лишь информацией для пользователя. Правило так же может иметь ссылку на источник информации, выраженной в нем. В отличие от примечания, ссылка не отображается, если пользователь специально не укажет этого.
Прикладная задача
Создадим небольшое множество правил, которые будут определять, как профессия вам больше подходит. Для создания новой базы знаний необходимо ответить на несколько вопросов.
Введем название предметной области – «Выбор профессии».
Далее необходимо выбрать шкалу вероятности. В рассматриваемом примере будет шкала Yes/No.
Зададим варианты выбора (CHOICES):
программист
врач
юрист
переводчик
экономист
актер
Зададим варианты квалификатора (QUALIFIERS):
Вы склонны к (гуманитарным наукам/точным наукам)?
Вас интересует (компьютеры/криминал)?
Вы любите читать (детективы/ литературу на иностранном языке)?
Вы склонны к (математике/риторике)?
Вы предпочитаете работу типа (человек-человек/человек-техника)?
Вам бы хотелось проводить операции (с банковскими бумагами/в медицинских целях)?
Техника для вас это ("неизвестное существо"/смысл жизни)?
По телевизору вы смотрите (криминальную хронику/программу здоровье)?
Вы участвуете в самодеятельности (да/нет)?
Конструкция правил:
RULE NUMBER: 1
IF:
Вы склонны к гуманитарным наукам
and Вы склонны к риторике
THEN:
Вы любите читать литературу на иностранном языке
----------------------------------------
RULE NUMBER: 2
IF:
Вы любите читать литературу на иностранном языке
and Вы предпочитаете работу типа человек-человек
THEN:
Переводчик - Confidence=1
----------------------------------------
RULE NUMBER: 3
IF:
Вы любите читать детективы
or: По телевизору вы смотрите криминальную хронику
or: Вы склонны к гуманитарным наукам
and Вас интересует криминалистика
THEN:
Юрист - Confidence=1
----------------------------------------
RULE NUMBER: 4
IF:
Вы склонны к гуманитарным наукам
and Вы склонны к математике
THEN:
Техника для вас это смысл жизни
----------------------------------------
RULE NUMBER: 5
IF:
Техника для вас это смысл жизни
or: Вы предпочитаете работу типа человек-техника
THEN:
Программист - Confidence=1
----------------------------------------
RULE NUMBER: 6
IF:
Техника для вас это смысл жизни
and Вам бы хотелось проводить операции с банковскими бумагами
THEN:
Экономист - Confidence=1
----------------------------------------
RULE NUMBER: 7
IF:
Вы склонны к гуманитарным наукам
and Вы любите читать литературу на иностранном языке
and Вы склонны к риторике
THEN:
Вы предпочитаете работу типа человек-человек
----------------------------------------
RULE NUMBER: 8
IF:
Вы предпочитаете работу типа человек-человек
or: Вы участвуете в самодеятельности да
THEN:
Переводчик - Confidence=1
----------------------------------------
RULE NUMBER: 9
IF:
Вы склонны к гуманитарным наукам
or: Вы предпочитаете работу типа человек-человек
and Вам бы хотелось проводить операции в медицинских целях
and По телевизору вы смотрите программу здоровье
THEN:
Врач - Confidence=1
----------------------------------------
RULE NUMBER: 10
IF:
Вы склонны к риторике
and Вы предпочитаете работу типа человек-человек
and Вы участвуете в самодеятельности да
THEN:
Актер - Confidence=1
Примерный вид диалога с ЭС:
Вы склонны к (гуманитарным наукам/точным наукам)? гуманитарным наукам
Вы склонны к (математике/риторике)? математике
Вам бы хотелось проводить операции (с банковскими бумагами/в медицинских целях)? с банковскими бумагами
Вас интересует (компьютеры/криминал)? компьютеры
Вы любите читать (детективы/ литературу на иностранном языке)? детективы
Вы предпочитаете работу типа (человек-человек/человек-техника)? человек-техника
Вы участвуете в самодеятельности (да/нет)? нет
Результат:
программист |
1 |
экономист |
1 |
врач |
none |
юрист |
None |
переводчик |
None |
актер |
none |
В ходе диалога программа выдаёт всплывающие окна, где содержится вопрос (адресованный пользователю) и варианты ответа.
Вывод: В проделанной курсовой работе мы рассмотрели на примере: построение набора правил небольшой экспертной системы, которая выдаёт рекомендации по выбору профессии, получили практические навыки работы в среде EXSYS.