Мир InterBase


         

Классификация задач экспертных систем


В сборнике статей, опубликованном под общей редакцией Хейеса-Рота [Heyes-Roth et al, 1983], была предложена классификация экспертных систем, которая отражает специфику задач, решаемых с помощью этой технологии. С тех пор эта классификация неоднократно критиковалась различными авторами, в основном из-за того, что в ней были смешаны разные характеристики, а это привело к тому, что сформулированные категории нельзя рассматривать как взаимно исключающие. Тем не менее мы кратко представим эту классификацию и будем рассматривать ее как отправную точку для дальнейшего совершенствования.

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


Диагностические системы предназначены для обнаружения источников неисправностей по результатам наблюдений за поведением контролируемой системы (технической или биологической). В эту категорию входит широкий спектр задач в самых различных предметных областях — медицине, механике, электронике и т.д.
Системы проектирования предназначены для структурного синтеза конфигурации объектов (компонентов проектируемой системы) при заданных ограничениях. Типичными задачами для таких систем является синтез электронных схем, компоновка архитектурных планов, оптимальное размещение объектов в ограниченном пространстве.
Системы планирования предназначены для подготовки планов проведения последовательности операций, приводящей к заданной цели. К этой категории относятся задачи планирования поведения роботов и составление маршрутов передвижения транспорта.
Системы мониторинга анализируют поведение контролируемой системы и, сравнивая полученные данные с критическими точками заранее составленного плана, прогнозируют вероятность достижения поставленной цели. Типовые области приложения таких систем — контроль движения воздушного транспорта и наблюдение за состоянием энергетических объектов.
Наладочные системы предназначены для выработки рекомендаций по устранению неисправностей в контролируемой системе. К этому классу относятся системы, помогающие программистам в отладке программного обеспечения, и консультирующие системы.
Системы оказания помощи при ремонте оборудования выполняют планирование процесса устранения неисправностей в сложных объектах, например в сетях инженерных коммуникаций.
Обучающие системы проводят анализ знаний студентов по определенному предмету, отыскивают пробелы в знаниях и предлагают средства для их ликвидации.
Системы контроля обеспечивают адаптивное управление поведением сложных человеко-машинных систем, прогнозируя появление возможных сбоев и планируя действия, необходимые для их предупреждения. Областью применения таких систем является управление воздушным транспортом, военными действиями и деловой активностью в сфере бизнеса.
Как уже упоминалось, множество исследователей отмечали наличие ряда существенных недостатков в приведенной классификации. Рейхгелт и Ван Гармелен обратили внимание на то, что некоторые из категорий в ней перекрываются или включают друг друга [Reichgelt and van Harmelen, 1986]. Например, категорию системы планирования в этой классификации вполне можно рассматривать как составную часть категории системы проектирования, поскольку планирование можно трактовать как проектирование последовательности операций (на это, кстати, обратили внимание и авторы классификации [Heyes-Roth et al, 1983]). Кленси также задался вопросом: "Является ли автоматизация программирования проблемой планирования или проектирования!" [Clancey, 1985]. Совершенно очевидно, что подобное замечание можно высказать и по отношению к таким категориям, как диагностические системы, системы мониторинга, системы оказания помощи при ремонте и обучающие системы.

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

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

Рис. 11.1. Иерархия родовых аналитических операции ([Clancey, 1985])

Рис. 11.2. Иерархия родовых синтетических операции ([Clancey, 1985])

На рис. 11.1 показано, как различные виды операции Интерпретация соотносятся с понятием система. Операция Идентификация позволит выяснить, с системой какого типа мы имеем дело, используя в качестве объекта анализа пары сигналов "стимул/реакция". Если обслуживаемая система является системой управления, то операция Предсказание предоставит нам информацию о том, каких выходных сигналов (проявлений поведения системы) следует ожидать для определенного класса входных сигналов. Операция Управление, опираясь на известные характеристики системы, определяет, какие стимулы (входные сигналы) следует подать на ее вход, чтобы получить желаемую реакцию. Таким образом, три указанные разновидности операции Интерпретация перекрывают все возможные варианты неопределенности любого из членов множества {вход, выход, сиcтема} при известных двух других. Для систем, в которых существует неисправность, можно провести дальнейшую конкретизацию операции Идентификация. Операция Мониторинг определяет наличие отклонений в поведении, а операция Диагностирование выявляет причины этих отклонений.

Как показано на рис. 11.2, есть три варианта конкретизации операции Построение. Операция Спецификация задает ограничения, которым должна удовлетворять синтезируемая система. Операция Проектирование формирует структурную организацию компонентов, которая удовлетворяет заданным ограничениям, а операция Сборка реализует спроектированную систему, собирая воедино отдельные ее компоненты. Операция Проектирование, в свою очередь, разделяется на операции Конфигурирование (формирование структуры системы) и Планирование (формирование последовательности действий по созданию системы с заданной структурой).

Теперь посмотрим, как соотносится описанная ранее классификация экспертных систем с предложенной Кленси иерархической схемой операций.
Кленси относит интерпретацию к родовым операциям, таким образом, задача интерпретации "накрывает" любые другие задачи, в том или ином виде выполняющие описание обслуживаемой системы. В частности, выделенные в первой классификации задачи (категории экспертных систем) предсказание и управление теперь превращаются в разновидность задачи интерпретация.
Мониторинг и диагноз становятся вариантами задачи идентификации, которая, в свою очередь, является разновидностью задачи интерпретации. Задачу наладка можно включить в задачу диагноз, хотя частично она включает и задачу модификация (чтобы привести обслуживаемую систему в режим нормальной работы).
Проектирование остается базовой категорией, а обучение "поглощается" задачей модификация, так же, как и ремонт. Задача планирование превращается в один из вариантов задачи проектирование.
Как уже отмечалось, то внимание, которое мы уделяем вопросам классификации, объясняется не только любовью к отвлеченным теоретическим рассуждениям. В идеале мы стремимся к тому, чтобы иметь возможность отобразить множество методов решения проблем на множество задач. Тогда можно было бы сказать, какой из методов наиболее приемлем для любой заданной задачи. Вклад Кленси в этот вопрос — выявление определенного метода решения проблем, эвристической классификации, к рассмотрению которой мы сейчас и перейдем. Мы уделяем этому методу так много внимания по той простой причине, что он достаточно понятен и может быть использован для характеристики поведения множества систем, которые мы рассматривали в предыдущих главах.


Классификация методов решения проблем


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


Эвристическое сопоставление


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

На рис. 11.3 показаны три основных этапа выполнения эвристической классификации: абстрагирование от данных, сопоставление абстрактных категорий данных с абстрактными категориями решений (утолщенная стрелка) и конкретизация решения. Рассмотрим их по очереди.

Рис. 11.3. Структура логических связей при эвристической классификации ([Clancey, 1985])

Абстрагирование от данных. Часто бывает полезно абстрагироваться от данных, характеризующих конкретный случай. Так, при диагностировании заболевания зачастую важ_но не столько то, что у пациента высокая температура (скажем, 39.8°), а то, что она выше нормальной. То есть врач обычно рассуждает в терминах диапазона температур, а не в терминах конкретного ее значения.

Эвристическое сопоставление. Выполнить сопоставление первичных данных в конкретном случае и окончательного диагноза довольно трудно. Гораздо легче сопоставить более абстрактные данные и достаточно широкий класс заболеваний. Например, повышенная температура может служить индикатором лихорадки, наводящей на мысль о инфекционном заражении. Данные "включают" гипотезы, но на относительно высоком уровне абстракции. Такой процесс сопоставления имеет ярко выраженный эвристический характер, поскольку соответствие между данными и гипотезами на любом уровне не бывает однозначным и из общего правила может быть множество исключений. Анализ данных, которые "вписываются" в определенную абстрактную категорию, просто позволяет отбирать решения, лучше согласующиеся с абстрактами решений.

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

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

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

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


Общность эвристической классификации


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

Программа SAGON [Bennett et al., 1978] предназначена для выработки рекомендаций относительно использования программного пакета MARC, с помощью которого выполняется анализ характеристик механических систем методом конечных элементов. MARC — это достаточно сложный программный продукт, который предоставляет в распоряжение пользователей огромное количество опций. Разумное использование широких возможностей MARC представляет серьезную проблему для неопытных пользователей. Роль программы SAGON состоит именно в том, чтобы помочь таким пользователям. Программа формирует стратегию анализа, которая основывается на введенном пользователем описании компонентов.

Рис. 11.4. Структура логических связей в системе MYCIN ([Clancey, 1985])

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

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

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

В своей статье Кленси также проанализировал и систему SOPHIE ([Brown et ai, 1982]), предназначенную для поиска неисправностей в электронных схемах. Программа создавалась как инструмент для проведения исследований в области обучения с использованием компьютера, но включенный в ее состав модуль решения проблем способен классифицировать электронные схемы в терминах компонентов, которые вызывают неправильное функционирование схемы. Заранее пронумерованное пространство решений этого модуля содержит описания дозволенных и ошибочных пар вход/выход.

На рис. 11.5 схематически показано, каким образом структуру логического вывода в системе SOPHIE можно трактовать в качестве примера эвристической классификации. Результаты измерений в различных точках электронной схемы позволяют SOPHIE формировать количественные утверждения о поведении схемы, например о напряжении между двумя точками электрической цепи. Программа затем может преобразовать их в утверждения относительно качества функционирования схемы (например, слишком высокое напряжение), а последние эвристически сопоставляются с отказами на уровне модуля. Таким образом, в терминах задач анализа, представленных на рис. 11.1, можно говорить о том, что в системе SOPHIE выполняется мониторинг состояния схемы и диагностирование отказавших модулей и компонентов.

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

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

Рис. 11.5. Структура логических связей в системе SOPHIE ([Clancey, 1985])

Нужно отметить, что предложенная Кленси методика анализа фундаментальных аспектов решения проблем с помощью технологии экспертных систем не является единственной. Например, в работе [Chandrasekaran, 1986] получило дальнейшее развитие понятие родовой задачи (generic task). Родовая задача представляет собой, по сути, спецификацию задачи, включающую описание различных форм знаний о предметной области и их организации для выполнения задачи вручную и набор режимов выполнения задачи.

Примерами таких задач являются иерархическая классификация, сопоставление или оценка гипотез и передача информации, направляемая знаниями.

Задача иерархической классификации включает отбор гипотез из иерархически организованного пространства альтернатив, а затем уточнение этих гипотез с учетом' имеющихся данных. Гипотезами могут быть, например, заболевания или неисправности оборудования. Каждая такая гипотеза может быть порождена имеющимися данными, но прежде чем развивать ее дальше, необходимо выполнить определенные проверки или уточнить гипотезу таким образом, чтобы она соответствовала более широкому набору имеющихся фактов. Экспертные системы, в которых выполняются такие родовые задачи, мы рассмотрим в главах 13 и 16.

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

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

Итак, одно из отличий между подходами Кленси и Чандрасекарана состоит в том, что для первого характерно стремление разбить решение проблемы на мелкие абстрактные категории. Подход Кленси приводит к поглощению этапа сопоставления гипотез эвристической классификацией, в то время как Чандрасёкаран делает акцент на том, что обработка гипотез может рассматриваться как самостоятельная родовая задача со своими собственными правами вне контекста классификации. Таким образом, появляется проблема, до какого уровня "зернистости" целесообразно доводить абстрагирование и какие критерии следует выбрать для оценки этой "грануляции". Рассмотрение этих вопросов выходит за рамки вводного курса, однако те, кто собирается профессионально заниматься конструированием экспертных систем, должны не упускать из виду существование множества способов разрешения этих проблем.

11.1. Определение понятия "оружие нападения"

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

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

Можно считать, что в первых трех частях выполняется абстрагирование от данных, как, например, в этом предложении:

"Любая винтовка с центральным боем или охотничье ружье, в котором используется сила пороховых газов для перезаряжания после каждого выстрела и которое заряжается или может быть заряжено обоймой на 6 и более боеприпасов".

Этим определением "накрывается" большинство полуавтоматических винтовок и охотничьих ружей, оснащенных магазином, в который помещается более пяти патронов.

В части 4 перечисляются 17 моделей индивидуального стрелкового оружия, причем некоторые из них уже подходят под определение, которое дано в первых трех частях. Но некоторые модели отнесены к этой категории, несмотря на то, что они не обладают признаками, обозначенными ранее. В, частности, к таким моделям относится полуавтоматический пистолет с 30-зарядным магазином Gobray М11. Можно считать, что в этой части рассматриваются специальные случаи, не учтенные при составлении предыдущих трех.

Часть 5 можно рассматривать как аналог этапа конкретизация решения. В этой части некоторые из типов оружия, "подпадающие" под действие частей 1-3, исключаются из категории при наличии дополнительных признаков.

В разделе упражнений вы встретите набор правил на языке CLIPS, которые соответствуют определению, сформулированному в рассматриваемом документе.


Классификация или конструирование?


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

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

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

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

Тем не менее очень важно учитывать предложенное Кленси разделение между задачами и методами решения проблем. Все диагностические задачи не являются проблемами классификации, поскольку при их решении может потребоваться создать новые классы отказов или модифицировать существующие, по мере того как будет накапливаться опыт работы с новыми устройствами. Аналогично, для задачи планирования в какой-то проблемной области может оказаться возможным организовать выбор из библиотеки планов или набора заготовок планов, как это делается в системе ONCOCIN (мы рассматривали ее в главе 10). Все зависит от того, какие ограничения накладываются в данной ситуации на процесс решения проблемы. Даже обычную задачу проектирования, например нового дома, можно решить несколькими способами. На одном конце диапазона стоит привлечение архитектора, который спроектирует дом с нуля (метод конструирования), а на другом — выбор проекта из каталога (метод классификации).

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

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


Рекомендуемая литература


Помимо тех работ, ссылки на которые приведены в тексте, существует и ранняя классификация подходов к решению проблем, выполненная Чандрасекараном [Chandrasekaran, 1983]. Теоретические аспекты классификации родовых задач были увязаны с проектом MDX [Chandrasekaran, 1984], в котором исследовались методы решения проблем применительно к области диагностики легочных заболеваний. Наиболее полное изложение подхода, предполагающего использование родовых задач, сопровождаемое комментариями и материалами дискуссии, читатель найдет в работе [Chandrasekaran, 1988].

Достаточно полное изложение результатов, полученных Кленси, можно найти в работе [Clancey, 1987, а, в]. Описание системы HERACLES, задуманной как прототип оболочки для исследования методики эвристической классификации, представлено в работе [Clancey, 1987,с].

Методика эвристической классификации была использована в системе KADS в качестве абстрактной модели экспертноети [Scheiber et al, 1993]. В настоящее время существуют KADS-модели и для других родовых задач, таких как мониторинг, конфигурирование, моделирование и т.д.

классификацию задач, решаемых экспертными системами,



1. Проанализируйте классификацию задач, решаемых экспертными системами, которую предложил Хейес-Рот.

I) Как вы считаете, существуют ли задачи, которые не представлены в этой классификации?

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

2. Проанализируйте схему задач экспертных систем, предложенную Кленси (рис. 11.1 и 11.2).

I) Где в этой схеме, по-вашему, место для компьютерной системы обработки данных?

II) Можете ли вы предложить способ расширения или уточнения такого анализа? Например, можете ли вы предложить способ дальнейшей дифференциации задачи "Управление"?

3. Являются ли перечисленные ниже задачи по своему характеру задачами классификации, задачами конструирования или задачами, обладающими признаками обоих этих типов?

I) Принятие решения о том, какой курс дисциплин следует прослушать в колледже.

II) Принятие решения о том, как провести отпуск.

III) Изменение ранее составленного плана проведения отпуска вследствие непредвиденных обстоятельств.

IV) Подготовка налоговой декларации.

4. Ниже представлен список правил на языке CLIPS, который соответствует приведенному во врезке 11.1 определению термина "оружие нападения" (assault-weapon). Некоторые правила в этом наборе вам следует попытаться сформулировать самостоятельно.

;; Объявления (deftemplate gun

(field name (type SYMBOL))

(field class (type SYMBOL))

(field action (type SYMBOL))
(field caliber (type FLOAT))
(field capacity (type INTEGER))
(field feature (type SYMBOL))

)

(deftemplate assault-weapon

(field name (type SYMBOL)) )

;; Факты

;; Данный набор исходных правил квалифицируют

;; только модели Heckler & Kock 91 и Benelli

;; как "оружие нападения".

(deffacts guns

(gun (name Browning22)
(class rifle) (action semi)
(caliber .22) (capacity 11))

(gun (name CobrayMll)
(class pistol)
(action semi)
(caliber 9.0) (capacity 30))

(gun (name HK91) (class rifle)
(action semi) (caliber .308) (capacity 20))

(gun (name GlocklT) (class pistol)
(action semi) (caliber 9.0) (capacity 17))

(gun (name Mossberg) (class shotgun)
(action slide) (caliber .410)
(capacity 5) (feature pistol-grip))
(gun (name BenelliSuper90)
(class shotgun) (action semi)
(caliber 12.0) (capacity 5)
(feature barrel-shroud)) )

;; ПРАВИЛА

;; Общий случай

;; Любая полуавтоматическая

;; винтовка (semi-automatic rifle)

;; или охотничье ружье (shotgun) с емкостью

;; магазина более 5 патронов.

(defrule Parti

(gun (name ?N) (class ?Csrifle|shotgun)
(action semi) (capacity ?X&:(> ?X 5))) =>

(assert (assault-weapon (name ?N)))

)

;; Любая полуавтоматическая

;; винтовка (semi-automatic rifle)

;; или охотничье ружье (shotgun) с

;; перечисленными дополнительными признаками.

(defrule Part2

(gun (name ?N) (class ?C&rifle|shotgun)

(action semi)

(feature ?Fsflash-suppressor|barrel-shroud|night-scope)) =>

(assert (assault-weapon (name ?N)))

)

;; Любое охотничье ружье (shotgun) с пистолетной
;; рукояткой.

;; Сюда вставьте разработанное вами
;; самостоятельно правило pistol-grip.

;; Особые случаи

;; Модель Cobray Mil относится к категории
;; "оружие нападения".

;; Сюда вставьте разработанное вами
;; самостоятельно правило cobray.

;; Исключения

;; Модели, указанные пользователем, не относятся
;; к категории "оружие нападения", (defrule rimfire

?except <- (gun (name ?N) (class rifle)

(caliber .22)

?mistake <- (assault-weapon) (name ?N)) =>

(retract ?mistake) (retract ?except) )

;; К категории "оружие нападения" не относятся

;; охотничьи ружья со скользящим затвором

;;(slide-action shotgun).

;; Сюда вставьте разработанное вами

;; самостоятельно правило slide.

Правило cobray учитывает особый случай с моделью Cobray Mil. Включение в набор правила pistol-grip приведет к тому, что к категории "оружие нападения" будет отнесена и модель Mossberg, но затем уточняющее правило slide исключит эту модель.

5. Ниже приведен фрагмент программы Wine Advisor (Советчик для любителей вин) на языке CLIPS (программа разработана Рандом Вальцманом для системы Teknowledge OPS5). В программу вводится название блюда, а она предлагает список вин, рекомендуемых к этому блюду. Программа работает по принципу эвристической классификации, поскольку построена на предположении о наличии прямого соответствия между основными характеристиками блюда (например, из мяса или рыбы, типа приправ и т.п.) и классом рекомендуемых вин (в характеристики класса входит цвет, крепость, сахаристость и т.п.).

I) Ваша задача состоит в том, чтобы проанализировать представленный набор правил и принять решение о том, как организовать базу знаний о блюдах и винах, как поступать с неопределенностью, как переходить от одной стадии процесса логического вывода к другой. Комментарии в тексте программы помогут вам понять ее суть и укажут способ расширения ее возможностей. В случае необходимости пользуйтесь описанием языка CLIPS, приведенном в Приложении.

;; Шаблоны

(def template wine

(field property (type SYMBOL))

(field is (type SYMBOL))

(field cert (type FLOAT))

)

(def template meal

(field property (type SYMBOL))
(field is (type SYMBOL))

)

(deftemplate decision

(field re (type SYMBOL)) (field is (type SYMBOL))

)

;; Факты

(deffacts the-facts

(task dish) )

;; Порождающие правила в формате

;; (defrule <наименование_правила> <прав часть>

;; =>

;; <лев_часть> ).

;; ПРАВИЛА, КАСАЮЩИЕСЯ БЛЮД.

Эти правила соответствуют этапу абстрагирования данных.

Правило dish-type вызывается первым, поскольку оно устанавливает модель среды в соответствии с имеющимися фактами при перезапуске исполнительной системы CLIPS,
(defrule dish-type (initial-fact) (task dish) =>

(printout t crlf

"Is the main dish of the meal MEAT, FISH or POULTRY?"
;; Блюдо приготовлено из МЯСА, РЫБЫ или ПТИЦЫ?

t crlf) (assert (meal (property dish-type)

(is read)))) )

;; Правило meat собирает дополнительные сведения
;; о блюде, если известно, что оно приготовлено
;; из мяса, (defrule meat (task dish)

(meal (property dish-type) (is meat)) =>

(printout t crlf

"What kind of meat? For example STEAK, VEAL, LAMB."
;; Из какого мяса? Например, ГОВЯДИНА, ТЕЛЯТИНА, БАРАНИНА.

t crlf) (assert (meal (property meat-type)

(is read)))) )

Аналогичное правило fish для блюда из рыбы напишите самостоятельно. Это правило должно уточнять тип морского продукта, из которого приготовлено блюдо: свежая рыба, моллюски и т.п.

Разработайте и правило poultry для блюд из птицы.

;; ПРАВИЛА, КОТОРЫЕ ИМЕЮТ ДЕЛО С
;; ХАРАКТЕРИСТИКАМИ ВИН.

Эти правила соответствуют этапу эвристического сопоставления.

Правило steak является примером сопоставления вида мясного блюда с классом вин.

(defrule steak

?task <- (task dish) (meal
(property meat-type) (is steak)) =>

(assert (wine (property color) (is red)

(cert 1.0))) (assert (wine (property body) (is full)

(cert 1.0))) (assert (wine (property flavor) (is dry)

(cert 0.7))) (assert (wine (property flavor) (is sweet)

(cert 0.2))) (retract ?task)

(assert (task attributes)) )

;;Такие же правила можно написать и для других

;;видов мясных блюд: из телятины (veal),

;;баранины (lamb) и т.д.

;;Задача dish удалена, поскольку известно,

;;какого типа блюдо.

;;Затем устанавливается задача принятия решения

;;о характеристиках вина.

;;Для блюд из мяса, рыбы и птицы нужно
;;определить правила по умолчанию
;;(default rules), которые будут относиться к
;;любому типу соответствующего исходного
;;продукта (например, подходят и для блюда из
;;аллигатора, если последний отнесен
;;к мясным продуктам).

;;ПРАВИЛА РАБОТЫ С КОЭФФИЦИЕНТАМИ УВЕРЕННОСТИ

;;Если в модели среды существуют две структуры с
;;одними и теми же значениями для одних и тех же
;;атрибутов, но отличаются коэффициентами
;;уверенности, то правило
;;attribute-update создает из них третью
;;структуру с новым значением и удаляет две
;;исходные.

;;Новое значение коэффициента уверенности CF
;;вычисляется по формуле:
;;cf = cfl + с£2(1 - cfl)

(defrule attribute-update (task attributes)
?winel <- (property ?attribute) (is ?value)

(cert ?certl)) ?wine2 <- (property ?attribute) (is ?value)

(cert ?cert2)) (<> ?crtl ?cert2) =>

(bind ?newcert (+ ?certl ( ?cert2

(- 1 ?certl)))) (assert (wine (property ?attribute)

(is ?value) (cert ?newcert))) (retract ?winel) (retract ?wine2) )

;;Разработайте правило preference, к которому
;;следует обращаться только в том случае, если в
;;рабочей памяти существует больше одного

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

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

;Разработайте правило unique, которое будет
;;активизироваться в том случае, если существует
;;только одна структура с определенным значением
;;атрибута. Это правило объявляет, что атрибут
;;окончательно определен.

;Разработайте правило unity, которое будет
;;активизироваться в том случае, если существует
;;структура, обладающая коэффициентом
;;уверенности, равным 1.
;;Это правило объявляет, что атрибут
;;окончательно определен.

;;Если все атрибуты вина определены, вывести отчет,
(defrule all-attributes-done ?task .
<- (task attributes) ?col
<- (color done) ?bod
<- (body done) ?fla
<- (flavor done) (wine (property color)
(is ?color)) (wine (property body)
(is ?body)) (wine (property flavor)
(is ?flavor)) =>

(printout t crlf

"Try a " ?flavor " " ?color " wine with a " ?body " body"
;; "Попробуйте " ?f lavor " " ?color " вино с
;; " ?body " консистенцией."

t crlf)

(retract ?col) (retract ?bod) (retract ?fla)
(retract ?task) (assert (task brand)) )

;;ПРАВИЛА, ИМЕЮЩИЕ ОТНОШЕНИЕ К ВИНУ.

;;Выбор вина по заданному описанию значений ;атрибутов.

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

;;Разработайте правило go-choose, которое
;;выбирает вино с наивысшим рейтингом, если не
;;активизируются никакие другие правила,
;;дополняющие список вин.

;;Правило soave является примером правила
;;дополнения списка новым названием вина
;;(в данном случае "soave").
;;Разработайте другие аналогичные правила.

(defrule soave (task brand)

(wine (property color) (is white))
(wine (property flavor) (is dry)

(cert ?certl)) (wine (property body) (is fine)

(cert ?cert2)) =>

(assert (wine (property brand) (is soave)

(cert (min ?certl ?cert2))))

)

;; ПРАВИЛА, ОРГАНИЗУЮЩИЕ ВЫБОР ПОЛЬЗОВАТЕЛЕМ ИЗ
;; СПИСКА.

Пользователь отвечает на выводимый запрос вводом "yes" или "по".

Разработайте правило selection, которое выбирает вино с наивысшим рейтингом и предлагает его пользователю.

Разработайте правило rejection, которое активизируется после ввода пользователем отрицательного ответа на текущее предложение.

Правило acceptance завершает текущий сеанс работы с программой, (defrule acceptance

(task choice)

(decision (re ?candidate) (is yes))

=>

(printout

t crlf

"Sir/Madam has impeccable taste "
;; "Сэр/Мадам! У вас исключительно тонкий вкус! "

t crlf) (halt) )

II) Как можно изменить стратегию поиска, например не формировать сначала весь список, а предлагать пользователю вина сразу же после формирования очередного кандидата, причем создавать их в порядке "качества" вина?