Стратегия упрощения


Между всеми правилами с одинаковым приоритетом только что активиро­ванные правила размещаются выше всех активированных правил с равной или большей определенностью (specificity). Определенность правила вычис­ляется по числу сопоставлений, которые нужно сделать в левой части пра­вила. Каждое сопоставление с константой или заранее связанной с фактом переменной добавляет к определенности единицу. Каждый вызов функции в левой части правила, являющийся частью условных элементов :, = или test, также добавляет к определенности единицу. Логические функции and, or и not не увеличивают определенность правила, но их аргументы могут сделать это. Вызовы функций, сделанные внутри функций, не увеличивают определенность правила.

Например, следующее правило имеет определенность, равную 5.

Пример 6.2. Вычисление определенности правила

(defrule example

(item ?х ?у ?х)

(test (and (numberp ?x) (> ?х (+ 10 ?у)) (< ?х 100)))

=>)

И сравнение заранее связанной переменной ?х с константой, и вызовы функций numberp, < и > добавляют единицу к определенности правила. В итоге получаем определенность, равную 5. Вызовы функций and и + не увеличивают определенность правила.

Стратегия усложнения

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

Стратегия LEX

Между правилами с одинаковым приоритетом только что активированные правила размещаются с использованием одноименной стратегии, впервые использованной в системе OPS5. Для определения места активированного правила в плане решения задачи используется "новизна" образца, который активировал правило. CLIPS маркирует каждый факт или объект временным тегом для отображения относительной новизны каждого факта или объекта в системе. Образцы, ассоциированные с каждой активацией прави­ла, сортируются по убыванию тегов для определения местоположения пра­вила. Активация правила, выполненная более новыми образцами, распола­гается перед активацией, осуществленной более поздними образцами. Для определения порядка размещения двух активаций правил, поодиночке срав­ниваются отсортированные временные теги для этих двух активаций, начи­ная с наибольшего временного тега. Сравнение продолжается до тех пор, пока не останется одна активация с наибольшим временным тегом. Эта активация размещается выше всех остальных в плане решения задачи.

Если активация некоторого правила выполнена большим числом образцов, чем активация другого правила и все сравниваемые временные теги одина­ковы, то активация с большим числом временных тегов помещает перед активацией с меньшим. Если две активации имеют одинаковое количество временных тегов и их значения равны, то правило с большей определен­ностью (см. разд. 6.4.3) помещается перед активацией с меньшей. В отличие от системы OPS5, условный элемент not в CLIPS имеет псевдовременной тег, который также используется в данной стратегии разрешения конфлик­тов. Временной тег условного элемента not всегда меньше, чем временной тег образца.

В качестве примера рассмотрим следующие шесть активаций правил, при­веденные в LEX-порядке (запятая в конце строки активации означает нали­чие логического элемента not). Учтите, что временные теги фактов не обя­зательно равны индексу, но если индекс факта больше, то больше и его временной тег. Для данного примера примем, что временные теги равны индексам.

 



Дата добавления: 2021-12-14; просмотров: 302;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.007 сек.