2 Краткие теоретические сведения.
2.1 Назначение и общая структура экспертных систем.
Под Экспертной Системой (ЭС) понимается программа (комплекс программ), моделирующая в некоторой степени работу человека-эксперта в конкретной предметной области. Причем эта область строго ограничена. Основное назначение ЭС — проведение консультаций в той предметной области, для которой спроектирована данная ЭС.
Программа, реализованная в экспертной системе, ЭС использует знания специалистов (экспертов) о некоторой конкретной узко специализированной предметной области и в пределах этой области способна принимать решения на уровне эксперта-профессионала.
Осознание полезности систем, которые могут копировать дорогостоящие или редко встречающиеся человеческие знания, привело к широкому внедрению и расцвету этой технологии в 80-е, 90-е годы прошлого века. Основу успеха ЭС составили два важных свойства, отмечаемые рядом исследователей [12], [13]:
в ЭС знания отделены от данных, и мощность экспертной системы обусловлена в первую очередь мощностью базы знаний и только во вторую очередь используемыми методами решения задач;
решаемые ЭС задачи являются неформализованными или слабоформализованными и используют эвристические, экспериментальные, субъективные знания экспертов в определенной предметной области.
Основными категориями решаемых ЭС задач являются: диагностика, управление (в том числе технологическими процессами), интерпретация, прогнозирование, проектирование, отладка и ремонт, планирование, наблюдение (мониторинг), обучение.
Обобщенная схема ЭС приведена на рисунке 2. Основу ЭС составляет подсистема логического вывода, которая использует информацию из базы знаний (БЗ), генерирует рекомендации по решению искомой задачи. Чаще всего для представления знаний в ЭС используются системы продукций и семантические сети. Допустим, БЗ состоит из фактов и правил (если <�посылка> то <�заключение>). Если ЭС определяет, что посылка верна, то правило признается подходящим для данной консультации и оно запускается в действие. Запуск правила означает принятие заключения данного правила в качестве составной части процесса консультации.
Обязательными частями любой ЭС являются также модуль приобретения знаний и модуль отображения и объяснения решений. В большинстве случаев, реальные ЭС в промышленной эксплуатации работают также на основе баз данных (БД). Только одновременная работа со знаниями и большими объемами информации из БД позволяет ЭС получить неординарные результаты, например, поставить сложный диагноз (медицинский или технический), открыть месторождение полезных ископаемых, управлять ядерным реактором в реальном времени.
Рисунок 7 – Структура экспертной системы
Важную роль при создании ЭС играют инструментальные средства. Среди инструментальных средств для созданияЭС наиболее популярны такие языки программирования, как LISP и PROLOG, а также экспертные системы-оболочки(ЭСО): KEE, CENTAUR, G2 и GDA, CLIPS, АТ_ТЕХНОЛОГИЯ, предоставляющие в распоряжение разработчика - инженера по знаниям широкий набор для комбинирования систем представления знаний, языков программирования, объектов и процедур [14], [15].
Рассмотрим различные способы классификации ЭС.
По назначению ЭС делятся на:
ЭС общего назначения.
-
Специализированные ЭС:
проблемно-ориентированные для задач диагностики, проектирования, прогнозирования
предметно-ориентированные для специфических задач, например, контроля ситуаций на атомных электростанциях.
По степени зависимости от внешней среды выделяют:
Статические ЭС, не зависящие от внешней среды.
Динамические, учитывающие динамику внешней среды и предназначенные для решения задач в реальном времени. Время реакции в таких системах может задаваться в миллисекундах, и эти системы реализуются, как правило, на языке С++.
По типу использования различают:
Изолированные ЭС.
ЭС на входе/выходе других систем.
Гибридные ЭС или, иначе говоря, ЭС интегрированные с базами данных и другими программными продуктами (приложениями).
По сложности решаемых задач различают:
Простые ЭС - до 1000 простых правил.
Средние ЭС - от 1000 до 10000 структурированных правил.
Сложные ЭС - более 10000 структурированных правил.
По стадии создания выделяют:
Исследовательский образец ЭС, разработанный за 1-2 месяца с минимальной БЗ.
Демонстрационный образец ЭС, разработанный за 2-4 месяца, например, на языке типа LISP, PROLOG, CLIPS
Промышленный образец ЭС, разработанный за 4-8 месяцев, например, на языке типа CLIPS с полной БЗ.
Коммерческий образец ЭС, разработанный за 1,5-2 года, например, на языке типа С++, Java с полной БЗ.
В составе ЭС выделяется три компонента (см. рисунок 7) :
1) База Знаний (БЗ). БЗ — центральная часть Экспертной Системы. Она содержит совокупность фактов и знаний (правил) для вывода других знаний. Содержащаяся в БЗ информация используется ЭС для вывода экспертного заключения во время консультации. Обычно БЗ располагают отдельно от программы, на диске или другом носителе.
2) Механизм Вывода (MB). MB содержит описания способов применения содержащихся в БЗ знаний. Во время консультации MB запускает ЭС в работу, выполняет правила, определяет приемлемость найденного решения и передает результаты в СПИ.
3) Система Пользовательского Интерфейса (СПИ). СПИ есть та часть ЭС, которая взаимодействует с пользователем. В функции СПИ входит: прием информации от пользователя, передача результатов пользователю в наиболее удобной для него форме, объяснение полученных ЭС результатов (выдача справочной информации по выводу результатов).
В зависимости от способов классификации и размещения информации Базы Знаний различают: продукционную, сетевую и фреймовую модели представления знаний.
Сетевая модель основана на представление знаний в виде сети, вершины которой соответствуют понятиям, а дуги — отношениям между ними.
В основе фреймовой модели лежит логическая группировка атрибутов объекта, при этом для хранения и обработки логические группы описываются во фреймах.
Продукционная модель основывается на правилах вида «если-то» и позволяет помещать фрагменты фактического знания в правила языка Пролог. Именно так строятся ЭС, базирующиеся на правилах. При реализации ЭС, базирующейся на логике, БЗ представляется совокупностью утверждений в виде фактов. Вывод экспертного заключения при этом строится на основе стандартных средств работы со списками.
2.2 Вывод экспертного заключения.
Под выводом в ЭС понимается доказательство того, что из множества предположений следует некоторое заключение. Принятая логика получения заключения специфицируется правилами вывода. Вывод осуществляется посредством поиска и сопоставления по образцу.
В ЭС, базирующейся на правилах, запросы пользователя трансформируются в форму, сопоставимую с формой правил БЗ. Механизм вывода инициализирует процесс сопоставления, начиная с «верхнего» правила, Обращение к правилу называется «вызовом». Вызов соответствующих правил в процессе сопоставления продолжается до тех нор, пока не произошло сопоставление или не исчерпана вся БЗ, а значение не найдено. Если MB обнаруживает, что можно вызвать более одного правила,
то запускается процесс разрешения конфликта. При разрешении конфликта приоритет отдается обычно тем правилам, которые более конкретны, либо правилам, которые учитывают больше текущих данных.
В ЭС, базирующейся на логике, трансформированные запросы являются значениями, которые сопоставляются со списками значений, находящихся в утверждениях БЗ.
Внутренние программы унификации Visual Prolog'a позволяют решать задачи поиска и сопоставления по образцу без написания дополнительных правил. Как в системе, базирующейся на правилах, так и в системе, базирующейся на логике, пользователь получает ответы на свои запросы в соответствии с заложенной в ЭС логикой. Для программной реализации механизма вывода экспертного заключения достаточно только написать необходимые спецификации.
2.3 ЭС, базирующаяся на правилах, и ее реализация.
ЭС, базирующаяся на правилах, позволяет проектировщику строить правила, которые естественным образом объединяют в группы связанные фрагменты знаний. При этом взаимная независимость продукционных правил делает базу правил семантически модульной и способной к развитию.
Реализованная на Visual Prolog'e ЭС на правилах содержит множество правил, которые вызываются посредством входных данных в момент сопоставления. Наряду с множеством правил MB ЭС имеет в своем составе интерпретатор, который выбирает и активизирует различные модули системы. Работа этого интерпретатора описывается последовательностью трех шагов:
1) Интерпретатор сопоставляет образец правила с элементами данных в БЗ.
2) Если можно вызвать более одного правила, то для выбора правила используется механизм разрешения конфликта.
3) Выбранное правило применяется для поиска ответа на поставленный вопрос.
Этот трехшаговый процесс является циклическим и называется циклом распознавание-действие. Утвердительный ответ ЭС является результатом выполнения одного из продукционных правил, выбор правила производится в соответствии с входными данными.
Написание на Visual Prolog'e ЭС, базирующейся на правилах, начинается с декларации БД. БД хранит ответы пользователя на вопросы СПИ. Эти данные являются утвердительными или отрицательными ответами. Далее строятся продукционные правила, описывающие фрагменты фактического знания. Пример (для ЭС идентификации и выбора породы собак):
dog_is(«английский бульдог»):-
it_is( «короткошерстная»),
positive(«имеет», «рост меньше 22 дюймов»),
positive( «имеет», «свисающий хвост»),
positive («имеет», «хороший характер»), !.
/* Аналогично описываются знания о других породах собак */
…
dog_is («коккер-спаниэль»): -
it_is («длинношерстная»),
positive(«имеет», «рост меньше 22 дюймов»),
positive(«имеет», «свисающий хвост»),
positive(«имеет», «длинные уши»),
positive(«имеет», «хороший характер»), !.
Причем с целью ограничения пространства поиска описывающие связанные фрагменты знаний правила могут бать сгруппированы посредством введения в базу вспомогательных правил для идентификации подкатегорий. К примеру, в ЭС выбора породы собаки это будет правило it_is, которое идентифицирует породу собаки по признаку принадлежности к группе длинношерстных или короткошерстных :
it_is( «короткошерстная»): -
positive(«собака имеет», «короткую шерсть»), !.
it_is( «длинношерстная»): -
positive(«собака имеет», «длинную шерсть»), !.
В рассматриваемом здесь примере основные данные для выбора породы собаки являются общеизвестными, поскольку выбраны распространенные породы собак. Набор признаков для классификации пород выбран на основании следующих соображений:
—Все используемые атрибуты являются необходимыми для идентификации породы.
—Ни один из атрибутов не характерен для всех пород одновременно.
Правила MB сопоставляют данные пользователя с данными в продукционных правилах (правила positive и negative в рассматриваемой ЭС), а также сохраняют «трассу» утвердительных и неутвердительных (отрицательных) ответов (правило remember для добавления в БД утверждений с ответами 1 (да) и 2 (нет)), которые используются при сопоставлении с образцом :
/* Механизм вывода экспертного заключения.
xpositive(X, Y) и xnegative(X, Y) —предикаты динамической БД, хранят, соответственно, утвердительные и неутвердительные ответы пользователя на вопросы, которые СПИ задает на основе значений аргументов предиката positive в теле очередного варианта правила dog_is */
positive(X, Y): -
xpositive(X,Y), !.
positive(X, Y): -
not(negative(X,Y)), !, ask(X,Y).
negative(X, Y): -
xnegative(X,Y), !.
/* Консультация. Предикат dlg_Ask создает стандартное диалоговое окно получения ответа пользователя на вопрос Да/Нет*/
Возможен другой вариант ask!
ask(X, Y):-
concat(«Вопрос : », X, Temp),
concat(Temp, « », Temp1),
concat(Temp1, Y, Temp2),
concat(Temp2, «?», Quest),
Reply1—dlg_Ask(«Консультация», Quest, [«Да», «Нет»]),
Reply=Replyl+l,
remember(X, Y, Reply).
/* Занесение ответов пользователя в динамическую БД */
remember(X, Y, 1):- !,
assertz(xpositive(X, Y)).
remember(X, Y, 2): — !,
assertz(xnegative(X, Y)), fail.
2.4 ЭС, базирующаяся на логике, и ее реализация.
Здесь БЗ состоит из утверждений в виде предложений логики предикатов. При этом часть утверждений описывают объекты, другая часть — условия или атрибуты, которые характеризуют различные объекты. Количество признаков определяет степень точности классификации. Интерпретатор внутри системы выполняет свои функции на основе следующей схемы:
1) Система содержит в БЗ предложения, которые управляют поиском и сопоставлением. Интерпретатор сопоставляет эти предложения с элементами данных в БД.
2) Если существует возможность вызова более одного правила, то для разрешения конфликта система использует возможности механизма внутренней унификации Пролога.
3) Система получает результаты унификационного процесса автоматически, поэтому они направляются на нужное (логическое) устройство вывода информации.
Так же, как и в ЭС, базирующейся на правилах, данный циклический процесс является процессом распознавание-действие.
Основное отличие структуры ЭС, базирующейся на логике, состоит в описании объектов и атрибутов в виде фактов:
/* Условия-характеристики различных пород.*/
cond(l, «короткошерстная порода»).
cond(2, «длинношерстная порода»).
cond(3, «рост меньше 22 дюймов»).
cond(4, «рост больше 30 дюймов»).
cond(5, «свисающий хвост»).
cond(6, «длинные уши»).
cond(7, «хороший характер»).
cond(8, «вес более 100 фунтов»).
/* Данные о типах породы */
topic (« короткошерстная »).
topic(«длинношерстная»).
/* Данные о конкретных породах */
rule(l, «собака», «короткошерстная», [1]).
rule(2, «собака», «длинношерстная», [2]).
rule(3, «короткошерстная», «английский бульдог», [3,5,7]).
rule(4, «короткошерстная», «гончая», [3,6,7]).
rule(5, «короткошерстная», «датский дог», [5,6,7,8]).
rule(6, «короткошерстная», «американский фокстерьер», [4,6,7]).
rule(7, «длинношерстная», «коккер-спаниэль», [3,5,6,7]).
ш1е(8, «длинношерстная», «ирландский сеттер», [4,6]).
|