Добавил:
rn Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Экспертные системы (Шаповалов ФИБС БТС 10 семестр) / Материалы / Иллюстрированный самоучитель по экспертным системам.doc
Скачиваний:
84
Добавлен:
04.09.2023
Размер:
6.22 Mб
Скачать

22.1. База прецедентов

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

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

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

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

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

 

22.1.1. Программа chef

Для демонстрации возможностей экспертной системы, базирующейся на прецедентах, рассмотрим систему CHEF, которая предназначалась для формирования кулинарных рецептов [Hammond, 1986]. Эта программа принимает информацию о целевых характеристиках блюда (тип, вкусовые качества, своеобразие) и формирует подходящий рецепт. Например, программа может получить следующий "заказ":

блюдо из баранины (beef);

включает брокколи (broccoli);

использует поджаривание (stir-fry);

блюдо должно получиться хрустящим (crisp).

Заказ оформляется в виде выражения на специальном формальном языке:

dish(beef), include(broccoli), method(stir-frv), texture(crisp)

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

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

На рис. 22.1 представлена упрощенная схема той части программы CHEF, которая имеет отношение к манипуляциям с базой прецедентов.

Рис. 22.1. Архитектура программы CHEF

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

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

После выполнения всех необходимых коррекций новый рецепт записывается модулем сохранения в базу прецедентов.

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