
- •Санкт-Петербургский национальный исследовательский университет
- •Редакторы знаний и функции системы kappa
- •Основные этапы разработки объектной модели
- •Пример. Окно Object Browser
- •Построение функциональной модели с использованием продукционных правил Цикл формирования цепи рассуждений в прямом направлении
- •If посылка then заключение.
- •Формирование цепи рассуждений в обратном направлении
- •Средства отладки базы знаний
- •Окно связи правил (Rule Relations)
- •Окно трассировки правил (Rule Trace)
- •Активная трассировка при прямом формировании цепочки рассуждений
- •Окно просмотра иерархии выводов (Inference Browser)
- •Средства создания интерфейса с пользователем. Окно сеанса (Session Window)
- •Средства объяснений оболочки kappa
- •Практическое задание
- •Разработка и программирование объектной модели предметной области
- •Разработка и программирование функциональной модели предметной области
- •Компьютерный практикум по нечетким системам
- •Аппроксимация функции одной переменной с использованием нечеткой системы
- •Варианты заданий
- •Построение элементарной нечеткой экспертной системы
- •Программирование нечеткой системы в среде matlab с использованием встроенных функций
- •Кластеризация с помощью алгоритма нечетких центров
- •Компьютерный практикум по нейронным сетям
- •Аппроксимация функции на основе нейронных сетей
- •Варианты заданий
- •Использование инструмента nnTool для построения нейронной сети
- •Кластеризация с помощью нейронных сетей
- •Рекуррентные нейронные сети Хопфилда и Хэмминга
- •Нейронные сети радиально-базисных функций. Вероятностные сети
- •Построение нейронечеткой модели с помощью anfis-редактора
- •Приложение 1. Функции пакета «Fuzzy Logic Toolbox» системы matlab для работы с системами нечеткой логики
- •Приложение 2. Функции пакета «Neural Network Toolbox» системы matlab для работы с нейронными сетями
Формирование цепи рассуждений в обратном направлении
В рассуждении, управляемом целями, механизм вывода пытается проверить гипотезу (цель) путем нахождения правил, где она является заключением, и дальнейшей попыткой проверки их предпосылок. Предпосылки, в свою очередь, становятся новыми гипотезами, которые будут проверяться другими правилами, и так далее.
Для такого формирования цепочки рассуждений требуется предопределенная цель (написанная в Goal-редакторе), а процесс вывода непрерывно пытается удовлетворить эту цель
Различают три возможные фазы в обратном рассуждении
Расширение (Expanding) - происходит попытка оценить как условные части правил, так и значения пар объект: слот в направлении достижения цели,
Разрушение (Collapsing) - определение достижения цели. Цель может быть достигнута благодаря недавно добавленным с помощью процесса расширения новым фактам Пары объект: слот и правила могут быть "разрушены" ради достижения цели (когда они становятся «лишними»).
Выяснение (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 предлагает четыре различные стратегии:
SELECTIVE Evaluation - выборочная оценка (по умолчанию),
DEPTHFIRST- оценка по глубине;
BREADTHFIRST - широтная оценка;
BESTFIRST Evaluation -оценка лучших.
Стратегия выборочной оценки является наиболее эффективной, так как выбирается только одно самое успешное направление рассуждения. Как только одно правило из Списка стало истинным, так все остальные правила удаляются из Rule List и новый цикл начинается с пустым Списком правил.
Глубинная стратегия является исчерпывающей, она раскрывает все возможные последствия только что появившейся в Списке слотов пары. Отличие от выборочной только в том, что она не очищает Список правил после каждого успешного выполнения правила. Новые правила добавляются к началу Списка в соответствии с приоритетами. Если не пусты оба списка (Rule List и Agenda), то приоритет отдается очередному элементу Списка слотов. Слоты добавляются к началу списка Agenda.
Широтная стратегия (тоже исчерпывающая) раскрывает все возможные значения нового факта. Новые правила добавляются к концу Списка (в соответствии с их приоритетами). Первым применяется то правило, которое может производить новые пункты в Списке слотов. Если не пусты оба списка (Rule List и Agenda), то приоритет отдается очередному элементу Списка правил.
Оценка лучших. Новые правила перемешиваются с уже имеющимися в Списке в соответствии приоритетами, первым применяется правило; которое может производить новые пункты в Списке слотов. Если не пусты оба списка (Rule List и Agenda); то приоритет отдается очередному элементу Списка слотов.
Выбор наилучшей стратегии, как обычно, остается за разработчиком приложения или пользователем. От выбора удачной стратегии во многом зависит скорость решения задачи и, соответственно, эффективность использования приложения.