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

Все ЭС имеют сходную архитектуру. В основе этой архитектуры лежит разделение знаний, заложенных в систему, и алгоритмов их обработки. Так, например, программа решающая квадратное уравнение, несомненно, использует знание о том, как следует решать этот вид уравнений. Но это знание «зашито» в текст программы и его нельзя ни прочитать, ни изменить, если исходные тексты программы недоступны.

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

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

Базу знаний можно также редактировать, что позволяет изменять работу ЭС без ее перепрограммирования.

Реальные ЭС могут иметь сложную, разветвленную структуру модулей, но для любой ЭС необходимо наличие следующих основных блоков (рис 1.5):

1. БЗ – база знаний – наиболее ценный компонент ядра ЭС, совокупность знаний о предметной области и способах решения задач, записанная в форме, понятной неспециалистам в программировании: эксперту, пользователю и др. Обычно знания в БЗ записываются в форме, приближенной к естественному языку. Форма записи знаний получила название язык представления знаний (ЯПЗ). В различных системах могут использоваться различные ЯПЗ. Параллельно такому "человеческому" представлению БЗ может существовать во внутреннем "машинном" представлении. Преобразование между различными формами представления БЗ должно осуществляться автоматически, так как редактирование БЗ не подразумевает участие программиста-разработчика.

2. МВ – машина вывода – блок, моделирующий ход рассуждений эксперта на основании знаний, заложенных в БЗ. Машина вывода является неизменной частью ЭС. Однако большинство реальных ЭС имеют встроенные средства управлением ходом логического вывода с помощью так называемых метаправил, записываемых в БЗ.

3. Р – редактор базы знаний – предназначен для разработчиков ЭС. С помощью этого редактора в БЗ добавляются новые знания или редактируются существующие.

4. И – интерфейс пользователя – блок, предназначенный для взаимодействия ЭС с пользователем, через который система запрашивает необходимые для ее работы данные, и выводит результат. Система может иметь «жесткий» интерфейс, ориентированный на определенный способ ввода и вывода информации, или может включать средства проектирования специализированных интерфейсов (генератор интерфейса) для более эффективного взаимодействия с пользователем.

 

Рисунок 1.5 - Обобщенная структура ЭС

 

С точки зрения изучения технологии экспертных систем наибольший интерес представляют база знаний и машина вывода.

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

На первый взгляд процесс вывода кажется достаточно простым – выполняются однотипные операции по перебору записей БЗ и сравнении их с имеющимися фактами, пока не будет найдено решение или некий целевой факт. Однако, управление процессом вывода, независящее от контекста проблемы не практике малоэффективно. При решении реальных задач человек крайне редко прибегает к перебору данных. Вместо этого, люди пользуются эвристическими правилами, которые значительно ограничивают пространство поиска решения и позволяет быстро и эффективно решать задачи. Эвристические знания имеют эмпирическую природу, то есть формируются на базе опыта и интуиции эксперта. Ярким примером превосходства эвристического подхода над алгоритмическим (основанным на полном или частичном переборе) является игра в шахматы. В начале игры «белые» имеют возможность сделать любой из 20 допустимых ходов, в ответ на который «черные» могут также совершить один из 20 ходов. Нетрудно посчитать, что следующий ход «белых» может быть выбран уже из 400 возможных различных состояний партии. Далее, по мере развития игры возникает неуправляемый комбинаторный взрыв.

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

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

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

В реальных системах, как правило, используется комбинация из прямого и обратного вывода. А для управления всем процессом логического вывода предназначены метаправила – специальный вид правил БЗ, представляющие собой директивы машины вывода. Используя метаправила можно упорядочить применение знаний в зависимости от конкретных значений фактов и текущего состояния БЗ. Продемонстрировать отличие мета правил от обычных правил можно на примере «игрушечной» ЭС. Пусть задачей этой ЭС является размещение мебели (столов, стульев, парт и пр.) в аудиториях университета с учетом требований эргономики, безопасности и т.д. На основании знаний об оборудовании помещения в зависимости от расположения и размеров аудитории, от вида занятий (лекции, практика или лабораторные работы) и других параметров, в БЗ заложены правила предписывающие тот или иной способ размещения мебели. Это обычный вид правил. Но в данной предметной области может понадобиться уточнить способ решения задачи с помощью метаправил вида «Если имеет место свойство X, то сначала применить группу правил N». Таким метаправилом может быть, например, следующее: «Если аудитория предназначена для лабораторных занятий, то сначала применить правила, касающиеся компьютеров и лабораторного оборудования, а затем мебели». Если обычные правила БЗ представляют шаги решения задачи, то метаправила описывают стратегию получения решений.

Тот факт, что фактически изменяемой компонентой в архитектуре ЭС является БЗ, наталкивает на закономерный вопрос: «Можно ли взять готовую экспертную систему из одной предметной области, заложить в нее знания из другой предметной области, и получить новую ЭС?» Для редактирования или даже полной замене содержимого БЗ не требуется изменение кода ЭС и привлечение программистов, поэтому такой перенос готовых программных решений в принципе возможен. Исследования в этом направлении привели к созданию так называемых оболочек экспертных систем. Оболочки ЭС включают машину вывода и интерпретатор ЯПЗ, развитый интерфейс разработчика, а также средства проектирования интерфейса пользователя. Наполнение БЗ оболочки позволяет получить ЭС для различных задач. Повторное использование разработанных компонентов ЭС значительно сокращает время разработки новых ЭС. Однако, как показала практика применения оболочек ЭС, перенос методов решений и средств представления знаний из одной области знаний в другую не всегда возможен. Инструментальные средства, успешно применяемые для одного вида задач, оказываются неэффективными при попытке использовать их для решения других видов задач. Структура и методы описания знаний, в задачах медицинской диагностики и поиска неисправностей в электронных схемах, существенно отличаются от тех, что используются при проектировании технологических цепочек или выборе конфигурации компьютера. Таким образом, возникло новое направление исследований – классификация экспертных задач, таких как медицинская диагностика, планирование, интерпретация сигналов, и т.п. Были предприняты попытки эвристической классификации методов описания знаний и решения проблем в зависимости от решаемой задачи. Такая классификация стала рассматриваться в качестве этапа, предваряющего выбор методов и инструментов решения задач.