Структура экспертных систем


Экспертная система включает три основных составляющих: базу правил, рабочую память и механизм вывода. В дополнение к ним для поддержки работы системы и реализации интеллектуального взаимодействия с пользователем в нее обычно входят еще и подсистема приобретения знаний, средства общения на естественном языке, а также подсистема объяснения (см. рис.2.1).

Рис.2.1 – Обобщенная структура экспертной системы


База правил (память для хранения правил), которая содержит набор срабатывающих в определенных ситуациях правил, имеющих форму ЕСЛИ-ТО. Такие конструкции получили название продукционных правил. Каждое правило складывается из двух частей. Первая из них – антецедент или посылка правил, – состоит из элементарных предложений, соединенных логическими связками И, ИЛИ и т.д. Вторая часть, называемая консеквентом, или заключением, состоит из одного или нескольких предложений, которые образуют выдаваемое правилом решение либо указывают на действие, подлежащее выполнению. Антецедент представляет собой образец правила, предназначенного для распознавания ситуации, когда оно должно сработать. Правило срабатывает, если факты из рабочей памяти при сопоставлении совпали с образцом, после чего правило считается отработавшим.

Рабочая память (база данных) – в этой памяти хранятся множество фактов, описывающих текущую ситуацию, и все пары «атрибут-значение», которые были установлены к определенному моменту. Содержимое рабочей памяти со временем изменяется, увеличиваясь в объеме по мере срабатывания правил. Новые факты, добавляемые в рабочую память, являются результатом вывода, который состоит в применении правил к имеющимся фактам. База знаний включает в себя совокупность правил и содержимое рабочей памяти.

Механизм вывода (интерпретатор правил) выполняет две функции: во-первых, просмотр существующих фактов из рабочей памяти и правил из базы знаний и добавление в рабочую память новых фактов и, во-вторых, определение порядка просмотра и применения правил. Этот механизм управляет процессом консультации, сохраняя для пользователя информацию о полученных заключениях, и запрашивает у него информацию, когда для срабатывания очередного правила в рабочей памяти оказывается недостаточно данных.

Выше уже отмечалось, что механизм вывода включает в себя два компонента - один из них реализует собственно вывод, другой управляет этим процессом. Компонент вывода выполняет первую задачу, просматривая имеющиеся правила и факты из рабочей памяти и добавляя в последнюю новые факты при срабатывании какого-нибудь правила. Управляющий компонент определяет порядок применения правил. Рассмотрим каждый из этих компонентов более подробно.

Компонент вывода – его действие основано на применении правила вывода, обычно называемого модус поненс, суть которого состоит в следующем: пусть известно, что истинно утверждение А и существует правило вида «ЕСЛИ А, ТО В», тогда утверждение В также истинно. Правила срабатывают, когда находятся факты, удовлетворяющие их левой части: если истинна посылка, то должно быть истинно и заключение. Хотя в принципе на первый взгляд кажется, что такой вывод легко может быть реализован на компьютере, тем не менее на практике человеческий мозг все равно оказывается более эффективным при решении задач.

Управляющий компонент. Этот компонент определяет порядок применения правил, а также устанавливает, имеются ли еще факты, которые могут быть изменены в случае продолжения консультации. Управляющий компонент выполняет четыре функции:


      1. Сопоставление – образец правила сопоставляется с имеющимися фактами.

      2. Выбор – если в конкретной ситуации могут быть применены сразу несколько правил, то из них выбирается одно, наиболее подходящее по заданному критерию (разрешение конфликта).

      3. Срабатывание – если образец правила при сопоставлении совпал с какими-либо фактами из рабочей памяти, то правило срабатывает.

      4. Действие – рабочая память подвергается изменению путем добавления в нее заключения сработавшего правила. Если в правой части правила содержится указание на какое-либо действие, то оно выполняется.


Подсистема приобретения знанийпредназначена для добавления в базу знаний новых правил и модификации имеющихся. В ее задачу входит приведение правила к виду, позволяющему механизму вывода применять это правило в процессе работы. В простейшем случае в качестве такой подсистемы может выступать обычный редактор или текстовый процессор, который просто заносит правила в файл. В более сложных системах предусмотрены еще и средства для проверки вводимых или модифицируемых правил на непротиворечивость с имеющимися правилами.

Средства общения на естественном языке. Поскольку системы, основанные на знаниях, реализуются на компьютерах, то и входная информация воспринимается ими в виде, понятном компьютеру, т. с. в битах и байтах. Однако для того чтобы с системой мог взаимодействовать неподготовленный пользователь, в нес требуется включить средства общения на естественном языке. Подавляющее большинство экспертных систем обладают достаточно примитивным интерфейсом на естественном языке – допустимые входные сообщения пользователя ограничены набором понятий, содержащихся в базе знаний.

Простые системы ведут с пользователем достаточно элементарный диалог, в котором он может обойтись словами «да», «нет» и иногда добавить вопрос «почему?». В более сложных системах компонент взаимодействия с пользователем способен произвести грамматический разбор входного предложения. Грамматический разбор состоит в определении связанных частей предложения.

Подсистема объяснения. Большинство специалистов-пользователей не смогут с доверием относиться к выведенному системой заключению, пока не будут знать, как оно было получено.

В качестве примера рассмотрим структуру экспертной системы на базе нечеткой логики FUZZY EXPERT1 (см. рис.2.2). Она содержит 16 блоков, 8 из которых составляют собственно экспертную систему, а остальные – среду разработки.

Рис.2.2 – Структура экспертной системы FUZZY EXPERT

 

Блок модификации нечеткой базы знаний и дерева вывода содержит все формы, необходимые для внесения изменений в блоки экспертной системы: дерево логического вывода, базу знаний и функции принадлежности. Это основной блок среды разработки нечетких баз знаний. Он выполняет следующие функции:


  • формирование дерева логического вывода;

  • задание функций принадлежности лингвистических термов: модифицированным методом Саати или методом статистической обработки экспертной информации;

  • заполнение нечетких баз знаний;

  • сохранение (извлечение) вариантов экспертных систем из библиотеки.


Блок моделирования используется для получения графиков и поверхностей, отражающих зависимость выходной переменной от одной или двух входных переменных при фиксированных значениях остальных переменных.

Блок настройки предназначен для решения задач оптимизации нечеткой базы знаний с целью повышения качества идентификации нелинейных объектов. Этот блок выполняет следующие функции:


  • запрос обучающей выборки;

  • решение задач оптимизации нечетких баз знаний градиентным методом;

  • решение задач оптимизации нечетких баз знаний с параметрическими функциями принадлежности при помощи генетического алгоритма;

  • решение задач оптимизации нечетких баз знаний с-уровневыми функциями принадлежности при помощи генетического алгоритма.


Блок тестирования ЭС предназначен для выполнения следующих действий: запроса тестирующей выборки и оценки качества идентификации в точках тестирующей выборки.

Блок документирования осуществляет выдачу информации о построенной экспертной системе в виде, удобном для инженера по знаниям.

Библиотека экспертных систем используется для хранения созданных экспертных систем на различных этапах их разработки.

Библиотека функций принадлежности содержит набор стандартных моделей функций принадлежности: трапециевидные; треугольные; колоколообразные; экспоненциальные.

Архив расчетов позволяет хранить результаты выполняемых расчетов на различных этапах создания и функционирования системы.