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 осуществляет занесение введенных значений в факты рабочей памяти. Кроме того, для переменной выполняется контроль типа введенного значения.


 

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

2832. Озеленение городских территории 63 KB
  Озеленение городских территории Система зеленых насаждений в городе. Классификация. Озелененные территории в городе и за его границами в зависимости от функционального назначения, размеров и размещения в плане относятся к различным категориям. ...
2833. Безопасность жизнедеятельности. Среда обитания человека 690 KB
  Безопасность жизнедеятельности. Среда обитания человека. Среда обитания человека подразделяется на производственную и непроизводственную (бытовую). Основным элементом производственной среды является труд, который в свою очередь состоит из вза...
2834. Канал измерения температуры 5.17 MB
  Канал измерения температуры. Общие сведения об измерении температуры. Понятие температуры Приборы, предназначенные для измерения температуры, называются термометрами. В качестве принципа работы термометров можно использовать любой физический п...
2835. Ремонт зданий 44.5 KB
  Виды ремонтов зданий. Текущие ремонты здания, их виды, цели и содержание. Капитальные ремонты зданий, их виды, цель и содержание. Источники финансирования текущих и капитальных ремонтов. Нормирование затрат на ремонты, суть понятия «недоремонт» 1 Ви...
2836. Трудові ресурси сільського господарства, склад і класифікація трудових ресурсів 102.5 KB
  Трудові ресурси сільського господарства, склад і класифікація трудових ресурсів Трудові ресурси як фактор економічного розвитку держави Трудові ресурси – специфічний і найважливіший із усіх видів економічних ресурсів. Як фактор економічного роз...
2837. Разработка и внедрение системы экологического менеджмента на АЭС 2.13 MB
  Становление и концепция экологического менеджмента при осуществлении деятельности, связанной с использованием атомной энергии и природных ресурсов. Руководство концерна Росэнергоатом и его филиалов - атомных станций, их деловые партнеры понимают преимущества, получаемые на международном и российском рынках предприятиями, которые внедрили систему экологического менеджмента.
2838. Проектирование и исследование рычажного механизма 395.5 KB
  Задание Задание №8 вариант №8 Спроектировать плоский рычажный механизм (см рисунок 1). Рисунок 1. Схема механизма Вариант K H, мм n, об/мин Pпс ...
2839. Общие принципы технической эксплуатации элементов конструкций и инженерного оборудования зданий 106 KB
  Общие принципы технической эксплуатации элементов конструкций и инженерного оборудования зданий. Прочностные и деформационные характеристики несущих конструкций, их нормирование, оценка и обеспечение в заданных пределах при эксплуатации. Эксплуатаци...
2840. Генетика как наука и ее теоретические аспекты 256.5 KB
  ЭТАПЫ РАЗВИТИЯ ГЕНЕТИКИ КАК НАУКИ. Генетика – наука о наследственности и изменчивости организмов, о закономерностях наследственной изменчивости и о материальных основах наследственности. а) Развитие классической генетики (создание самой наук...