В рассуждении, управляемом целями, механизм вывода пытается проверить гипотезу (цель) путем нахождения правил, где она является заключением, и дальнейшей попыткой проверки их предпосылок. Предпосылки, в свою очередь, становятся новыми гипотезами, которые будут проверяться другими правилами, и так далее.
Для такого формирования цепочки рассуждений требуется предопределенная цель (написанная в Goal-редакторе), а процесс вывода непрерывно пытается удовлетворить эту цель
Различают три возможные фазы в обратном рассуждении
1. Расширение (Expanding) - происходит попытка оценить как условные части правил, так и значения пар объект: слот в направлении достижения цели,
2. Разрушение(Collapsing)- определение достижения цели. Цель может быть достигнута благодаря недавно добавленным с помощью процесса расширения новым фактам Пары объект: слот и правила могут быть "разрушены" ради достижения цели (когда они становятся «лишними»).
3. Выяснение (Asking) - происходит запрос у пользователя значения слота при обнаружении отсутствия последнего. Эта фаза является не обязательной. Для отказа от этой функции используется переменная [NOASK].
Вызвать процесс формирования цепочки в обратном направлении можно четырьмя способами
§ в интерпретаторе KAL (функция BackwardChain),
§ в окне трассировщика правил (окно Rule Trace, меню Option, BackwardChain),
§ из окна Inference Browser (меню Options,Step Mode),
§ программно, используя необходимые KAL-выражения.
Стратегии принятия решения. Нам известно, что Rule List - это список правил из текущего набора правил, которые соответствуют предпосылке элемента в Списке слотов, a Agenda (Список слотов) - список пар объект:слот, назначенных к рассмотрению в процессе рассуждения в прямом направлении. Во время выполнения логического вывода состав этих списков взаимосвязано изменяется.
Слоты, значения которых изменяются в результате выполняемых правил, автоматически добавляются в список Agenda. Для этого также можно воспользоваться функцией Assert в Then-части правила или в KAL-интерпретатора. По умолчанию процесс формирования цепочки в прямом направлении продолжается до тех пор, пока не опустеет один из списков - Agenda или Rule List .
Предусмотрены следующиережимы Списка слотов:
· IGNORE- обрабатываться будет пункт Списка слотов, появившийся в этом перечне самым последним (очередь будет перестраиваться);
· NOIGNORE- пункт будет обработан в порядке очереди независимо от момента его появления в Списке.
Очевидно, что в процессе рассуждения не исключены конфликтные ситуации. Например, если пункту Списка слотов соответствует несколько правил, то какое из них будет выполнено в первую очередь? Для решения подобной проблемы KAPPA предлагает четыре различные стратегии:
1. SELECTIVE Evaluation - выборочная оценка (по умолчанию),
2. DEPTHFIRST- оценка по глубине;
3. BREADTHFIRST - широтная оценка;
4. BESTFIRST Evaluation -оценка лучших.
Стратегиявыборочной оценки является наиболее эффективной, так как выбирается только одно самое успешное направление рассуждения. Как только одно правило из Списка стало истинным, так все остальные правила удаляются из Rule List и новый цикл начинается с пустым Списком правил.
Глубинная стратегия является исчерпывающей, она раскрывает все возможные последствия только что появившейся в Списке слотов пары. Отличие от выборочнойтолько в том, что она не очищает Список правил после каждого успешного выполнения правила. Новые правила добавляются к началу Списка в соответствии с приоритетами. Если не пусты оба списка (Rule List и Agenda), то приоритет отдается очередному элементу Списка слотов. Слоты добавляются к началу списка Agenda.
Широтная стратегия (тоже исчерпывающая) раскрывает все возможные значения нового факта. Новые правила добавляются к концу Списка (в соответствии с их приоритетами). Первым применяется то правило, которое может производить новые пункты в Списке слотов. Если не пусты оба списка (Rule List и Agenda), то приоритет отдается очередному элементу Списка правил.
Оценка лучших. Новые правила перемешиваются с уже имеющимися в Списке в соответствии приоритетами, первым применяется правило; которое может производить новые пункты в Списке слотов. Если не пусты оба списка (Rule List и Agenda); то приоритет отдается очередному элементу Списка слотов.
Выбор наилучшей стратегии, как обычно, остается за разработчиком приложения или пользователем. От выбора удачной стратегии во многом зависит скорость решения задачи и, соответственно, эффективность использования приложения.
1.1.5. Средства отладки базы знаний
Как правило, при разработке базы знаний допускаются многочисленные ошибки. Часто они являются следствием недостаточной внимательности и организованности. Так, например, в результате ошибки могут не совпадать обозначения одного и того же слота, использованные в предметной и функциональной моделях. Вплоть до того, что в одном случае имя может начинаться с большой буквы, в другом с маленькой. Иногда возникает путаница в обозначениях оператора присваивания «=», оператора сравнения данных числового типа «==» и оператора сравнения данных символьного типа «#=». Также распространена ошибка, когда вместо круглых скобок ставится квадратная и наоборот. Для обнаружения подобных и многих других ошибок в ЭО KAPPA предусмотрены средства отладки.