Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник_Final.doc
Скачиваний:
59
Добавлен:
09.11.2019
Размер:
10.39 Mб
Скачать

8.4. Рассуждения в прямом направлении

В процессе формирования прямой цепи рассуждений используется список правил (Rule List) и список слотов (Agenda), представляющий собой список пар вида «объект : слот», назначенных к рассмотрению при рассуждении в прямом направлении. Во время рассуждения состав этих списков взаимосвязано меняется. Слоты, значения которых изменяются в результате выполняемых правил, автоматически добавляются в список Agenda. По умолчанию процесс формирования прямой цепи рассуждений продолжается до тех пор, пока не опустеет один из списков – Agenda или Rule List.

8.4.1. Стратегии принятия решения

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

В ЭО KAPPA предусмотрены следующие режимы обработки списка слотов:

  • IGNORE – при использовании этого режима в первую очередь будет обрабатываться элемент списка слотов, появившийся в этом перечне самым последним (т.е. очередь будет перестраиваться);

  • NOIGNORE – в этом режиме элементы списка слотов обрабатываются в порядке очереди, независимо от момента его занесения в список.

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

  • SELECTIVE Evaluation – выборочная оценка (по умолчанию);

  • DEPTHFIRST – оценка по глубине;

  • BREADTHFIRST – широтная оценка;

  • BESTFIRST Evaluation – оценка лучших.

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

Глубинная стратегия является исчерпывающей, т.к. раскрывает все возможные значения вновь появившегося элемента в списке слотов. Отличие глубинной стратегии от выборочной состоит лишь в том, что при ее использовании список правил после каждого успешного выполнения одного правила не очищается. Новые правила добавляются к началу списка в соответствии с их приоритетом. Если не пусты оба списка (Rule List и Agenda), то приоритет отдается очередному элементу списка слотов. Новые слоты добавляются в начало списка слотов.

Широтная стратегия также является исчерпывающей и раскрывает все возможные значения нового факта. Новые правила добавляются к концу списка в соответствии с их приоритетом. Первым применяется правило, которое может производить новые пункты в списке слотов. Если не пусты оба списка (Rule List и Agenda), то приоритет отдается очередному элементу списка правил.

При стратегии оценки лучших новые правила добавляются к правилам, уже находящимся в списке, в соответствии с их приоритетом.. Первым применяется правило, которое может производить новые пункты в Списке слотов. Если не пусты оба списка (Rule List и Agenda), то приоритет отдается очередному элементу списка слотов.

Выбор стратегии и режима обработки слотов осуществляется в окне Set Forward Chain Modes (рис. 8.3).

Рис. 8.3. Установка стратегии и режима слотов

Кроме этого их можно задать путем вызова функции

SetForwardChainMode (<режим>, <стратегия>).

На рисунках 8.4−8.7 представлен пример прямой цепи вывода для трех правил, сформированных с использованием разных стратегий.

Пример.

Rule1 (priority=0): If ob:s1 And ob:s3 == 4 Then ob:rez = 1

Rule2 (priority=1): If Not(ob:s2) And ob:s3 == 4 Then ob:rez = -1

Rule3 (priority=0): If ob:rez == -1 Then ob:v = 5

Рис. 8.4. Выборочная стратегия (selective)

Рис. 8.5. Глубинная стратегия (depthfirst)

Рис. 8.6. Широтная стратегия (breadthfirst)

Рис. 8.7. Стратегия оценки лучшего (bestfirst)

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

Рис. 8.6. Пример отношения правил