8118

Логический вывод в системе CLIPS. Стратегии разрешения конфликтов

Лекция

Информатика, кибернетика и программирование

Логический вывод в системеCLIPS. Стратегии разрешения конфликтов. (Конспект) Базовый цикл работы МЛВ в системеCLIPS: 1. Работа МЛВ останавливается, если достигнут предел активации правил или нет текущего фокуса. В противном случае, для в...

Русский

2013-02-04

146 KB

21 чел.

Логический вывод в системе CLIPS.

Стратегии разрешения конфликтов.

(Конспект)

Базовый цикл работы МЛВ в системе CLIPS:

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

2. Выполняются операторы, содержащиеся в консеквенте выбранного правила. Использование в консеквенте правила функции return не может переместить текущий фокус из стека фокусов. Счетчик числа правил инкрементируется для контроля предела активации правил.

3. Результатом шага 2 может быть активация или деактивация правил. Активированные правила (у которых удовлетворяется условия в антецеденте) помещаются в агенду того модуля, в котором они определены. Размещение в агенде определяется значимостью (salience) правила и текущей стратегией разрешения конфликтов. Деактивированные правила удаляются из агенды.

4. При использовании динамических значимостей, значения значимостей всех правил, содержащихся в агенде переоцениваются. Цикл повторяется с шага 1.

Агенда представляет собой список правил, условия которых удовлетворяются, но которые еще не были выполнены. Каждый модуль имеет собственную агенду. При извлечении правил агенда работает аналогично стеку – первым выполняется правило, находящееся на вершине агенды. Когда правило становится активным (условия в его левой части удовлетворяются), оно помещается в агенду в соответствии со следующими правилами:

1. Вновь активируемые правила помещаются над всеми правилами с более низкой значимостью (salience) и ниже всех правил с более высокой значимостью.

2. Для определения места среди правил равной значимости используется текущая стратегия разрешения конфликта.

3. Если в результате добавления или удаления факта одновременно активизируются несколько правил и шаги 1 и 2 не позволяют выполнить упорядочение, то эти правила упорядочиваются между собой произвольно.

Значимость позволяет пользователю назначать правилу приоритет, который учитывается при его помещении в агенду. Первым выбирается и срабатывает правило с максимальной значимостью. Значимость может принимать целое значение в диапазоне от -10000 до +10000. По умолчанию ее значение равно 0. Для явного назначения правилу значимости используется оператор:

(declare <rule- salience>),

который добавляется в левую часть правила и размещается перед первым условным элементом, например:

(defrule r1

(declare (salience 500))

(fire test-1)

=>

(printout t "Rule r1 firing." crlf))

Значение значимости может назначаться в один из трех моментов: при определении правила, при активизации правила и в каждом цикле выполнения (последние два случая соответствуют динамической значимости). По умолчанию значение значимости назначается только при определении правила. Для изменения такого поведения может использоваться команда set-salience-evaluation.

Стратегии разрешения конфликтов. В CLIPS поддерживается семь стратегий разрешения конфликтов: “вглубь” (depth), “вширь” (breadth), “простоты” (simplicity), “сложности” (complexity), LEX, MEA и случайного выбора (random). По умолчанию используется стратегия “вглубь”. Текущая стратегия может быть установлена, используя пункт меню “Ececution/Options” оконного интерфейса, или командой set-strategy. При этом агенда переупорядочивается на основе новой стратегии. Синтаксис команды:

(set-strategy <strategy>),

где <strategy>::= depthbreadthsimplicitycomplexity lexmearandom.

По умолчанию используется стратегия depth.

Стратегия “вглубь”. Вновь активируемые правила помещаются в агенду над всеми правилами такой же значимости. Например, пусть факт f-1 активирует правила rule-1 и rule-2, а факт f-2 активирует правила rule-3 и rule-4. Тогда если f-1 устанавливается раньше, чем f-2, то rule-3 и rule-4 окажутся в агенде выше правил rule-1 и rule-2. Однако положение правила rule-1 относительно правила rule-2 и правила rule-3 относительно правила rule-4 будет произвольным.

Стратегия “вширь”. Вновь активируемые правила помещаются ниже всех правил с такой же значимостью. Например, пусть факт f-1 активирует правила rule-1 и rule-2, а факт f-2 активирует правила rule-3 и rule-4. Тогда, если f-1 устанавливается раньше, чем f-2, то rule-1 и rule-2 окажутся в агенде выше правил rule-3 и rule-4. Однако, положение правила rule-1 относительно правила rule-2 и правила rule-3 относительно правила rule-4 будет произвольным.

Стратегия “простоты”. Среди правил одинаковой значимости, вновь активируемые правила помещаются над всеми правилами с равной или большей специфичностью (specificity). Специфичность правила определяется числом сравнений, которые должны быть выполнены в левой части правила.

Специфичность инкрементируется при:

  •  каждом сравнении с константой или предварительно связанной переменной;
  •  каждом вызове функции, сделанном из левой части правила в условном элементе с предикатным ограничением (:), ограничением возвращаемым значением (=) или УЭ-проверкой (test).

Булевы функции “и”, “или”, “не” не увеличивают специфичность правила, но их аргументы увеличивают. Вызовы функций, выполняемые из функций, не увеличивают специфичность. Например, следующее правило:

(defrule example

(item ?x ?y ?x)

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

=>)

имеет специфичность 5 (считаются операторы (item ?x ?y ?x),  ?x,  numberp,  >,  <).

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

Стратегия LEX. Для определения места правила в агенде среди правил одинаковой значимости в первую очередь используется новизна образцов, активирующих данное правило. Каждый факт и экземпляр в БД помечаются “временным тегом”, указывающим его новизну по отношению ко всем другим фактам и экземплярам в системе. Для определения местоположения правила в агенде образцы (факты или экземпляры), связанные с активацией каждого правила сортируются по убыванию новизны. Правило с более поздним образцом помещается выше правил с более ранними образцами. Чтобы определить относительный порядок размещения двух правил, отсортированные временные теги образцов, активирующих правила, сравниваются попарно, начиная с самых больших значений. Сравнение продолжается до тех пор, пока не будет обнаружено, что временной тег одной активации больше соответствующего временного тега другой активации. Правило с большим значением временного тега помещается в агенду выше другого правила. Данная стратегия поясняется примером на рис. 16.1. В данном случае раньше сработает правило Rule1, т.к. временной тег образца, связанного с его третьим условным элементом (8) больше, чем временной тег соответствующего образца у правила Rule2 (6).

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

Стратегия MEA. Для определения места правила в агенде среди правил равной значимости в первую очередь используется временной тег образца, связанного с первым условным элементом в правиле. Правило, у которого этот временной тег больше временных тегов, связанных с первыми условными элементами других правил, помещается в агенду выше них. Если временные теги первых образцов равны, то для определения места правила используется стратегия LEX. В примере на рис. 16.2 раньше сработает правило Rule1.

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

Пример построения ЭС в среде CLIPS 

Ниже в качестве примера приведен фрагмент простой ЭС в среде CLIPS, определяющей наличие у студента свободного времени в зависимости от количества несделанных лабораторных работ и оставшегося до зачета времени:

(defrule data-input

(initial-fact)

=>

(printout t crlf "Введите число дней до зачета (целое значение): ")

 (bind ?days (read))

(if (numberp ?days)

then (assert (days ?days))

else (printout t "Введите число" crlf))

 (printout t crlf "Введите число несделанных лабораторных работ (в %)")

 (bind ?works (read))

 (assert (works ?works)))

(defrule R1

(days ?days)

(works ?works)

(test (and (= ?days 1) (<> ?works 0)))

=>

(printout t crlf "Свободного времени нет" crlf)

(assert (freetime "no")))

(defrule R2

(days ?days)

(works ?works)

(test (and (= ?days 2) (>= ?works 10)))

=>

(printout t crlf crlf "Свободного времени нет" crlf)

(assert (freetime "no")))

Правило data-input обеспечивает ввод исходных значений числа оставшихся до зачета дней и количества несделанных работ. Оно инициируется исходным фактом (initial-fact) в рабочей памяти и выдает приглашение на ввод значения. Команда bind осуществляет занесение введенных значений в факты рабочей памяти. Кроме того, для переменной выполняется контроль типа введенного значения.


 

А также другие работы, которые могут Вас заинтересовать

81736. Мотив поиска истины в произведениях отечественной литературы 33.66 KB
  является проблема человеческого счастья проблема поисков смысла жизни. В жизни обоих можно выделить несколько этапов на которых меняется их мировоззрение в душе происходит определенный перелом. Он понял что в жизни есть нечто более важное чем слава. Медленно возвращается он к жизни к людям.
81737. Правда Раскольникова и правда Сони в романе Ф. М. Достоевского «Преступление и наказание». Роль евангельских мотивов и образов в романе 33.02 KB
  Все идущие оттуда идеи будь то буржуазный утилитаризм Лужина коммунистическое общежитие Лебезятникова наполеонизм Раскольникова носят разрушительный нигилистический характер. диспуты Раскольникова с Разумихиным и Порфирием сколько опровергает его постулаты на практике. Кроткая и жертвенная Соня живущая по евангельским заповедям подвигает Раскольникова на путь покаяния отказа от теории воссоединения с людьми и жизнью.
81738. Особенности творчества одного из современных отечественных поэтов второй половины хх века 41.92 KB
  Поэт ведет разговор с читателем и слушателем как бы один на один с глазу на глаз с абсолютной индивидуальной доверительностью. Окуджава снискал себе известность как поэт города. Изменения которые происходили в стране и порой далеко не в лучшую сторону не могли не сказаться на характере творчества поэта.
81739. Тема чести в произведениях отечественной классики 19 века 31.73 KB
  Пушкин Капитанская дочка Роман открывается эпиграфом: Береги честь смолоду который несет в себе очень глубокий смысл. Каждый человек смолоду должен хранить честь достоинство и оставаться человеком до конца. Он подвергается смертельной опасности но даже под угрозой смерти не желает предать честь своего сословия не желает предать честь дворянина отказаться от присяги которую он давал императрице. Он легко предает честь офицера встает под знамена бунтовщиков.
81740. Образ Петербурга в романе Ф. Достоевского «Преступление и наказание» 31.29 KB
  В романе мы открываем Петербург мрачный, давящий на душу. Город, где во дворы-колодцы никогда не заглядывает солнце. Это Петербург бедных людей, которых заставляет вечно дрожать нужда и пронизывающий ветер с моря. Это город Достоевского.
81741. Письма героев как средства их характеристики в произведениях отечественной литературы 32.51 KB
  А Пушкин Евгений Онегин Письмо Татьяны Онегину Третья глава Онегин сталкивается с внутренней природной стихией человеческого сердца любовью. и первый поступок ее любви письмо составляют центр главы. еще подняться не может даже тогда когда получает письмо влюбленной Т. решила написать письмо О.
81742. Лирика М.Цветаевой. Основные темы, идеи, художественное мастерство. Чтение наизусть и разбор одного стихотворения 38.65 KB
  В своем первом альбоме юная Цветаева отличалась тем-что ничего не выдумывала и никому не подражала. Но как поэт и как личность Цветаева развивалась стремительно. Зимой 1915-1916 годов Цветаева жилав Петербурге после возвращения домой она стала писать по-иному чем прежде и в этом была некоторая закономерность. Обделенная в детстве сказкой не имевшая няни Цветаева жадно наверстывала упущенное.
81743. Личность и история в романе Л. Н. Толстого « Война и мир». Кутузов и Наполеон как два нравственных полюса романа 30.19 KB
  Он утверждал что существуют история наука и история искусство и что они имеют свои четко различающиеся задачи. История-наука как полагал Т уделяет главное внимание частностям подробностям событий и ограничивается их внешним описанием в то время как история-искусство схватывает общий ход событий проникая в глубины их внутреннего смысла.
81744. Образ Петербурга в произведениях отечественной классики 19 века 32.16 KB
  Со времени образования Петром I Петербурга в 1703 году этому городу стали посвящаться многие произведения классиков русской литературы таких как Радищев но наиболее полно образ этого города был раскрыт в творчестве двух великих писателей: Александра Сергеевича Пушкина и Николая Васильевича Гоголя. Петербург в произведениях Пушкина это прежде всего торжественный парадный город олицетворение государства его силы и могущества. Восхищение городом перед которым померкла старая Москва звучит в каждой строчке вступления поэмы. Например в...