23667

Изучение стратегий разрешения конфликтов в продукционных системах

Лабораторная работа

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

При реализации прямого вывода в продукционных базах знаний машина логических выводов сопоставляет левые части антецеденты правил с базой данных и помещает правила антецеденты которых удовлетворяются в агенду конфликтное множество. Когда правило становится активным условия в его левой части удовлетворяются оно помещается в агенду в соответствии со следующими правилами: 1. Вновь активизируемые правила помещаются над всеми правилами с более низкой значимостью salience и ниже всех правил с более высокой значимостью. Если в результате...

Русский

2013-08-05

43.5 KB

3 чел.

Лабораторная работа № 3

Изучение стратегий разрешения конфликтов в продукционных системах.

Общие сведения.

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

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

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

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

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

(declare <rule- salience>).

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

(defrule test-1

(declare (salience 99))

(fire test-1)

=>

(printout t "Rule test-1 firing." crlf))

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

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

(set-strategy <strategy>),

где <strategy>::= depthbreadthsimplicitycomplexitylexmearandom   

По умолчанию используется стратегия 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. Для определения места правила в агенде среди правил одинаковой значимости в первую очередь используется новизна образцов, активизирующих данное правило. Каждый факт и экземпляр помечаются временным тегомдля указания его новизны по отношению ко всем другим фактам и экземплярам в системе. Для определения местоположения правила в агенде образцы (факты или экземпляры), связанные с активацией каждого правила сортируются по убыванию новизны. Правило с более поздним образцом помещается выше правил с более ранними образцами. Чтобы определить относительный порядок размещения двух правил, отсортированные временные теги этих образцов, активирующих эти правила, сравниваются попарно начиная с самых больших значений. Сравнение продолжается до тех пор, пока не будет обнаружено, что временной тег одной активации больше соответствующего временного тега другой активации. Правило с большим значением временного тега помещается в агенду выше другого правила.

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

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

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

Порядок выполнения работы.

1. Используя редактор clipsedt.exe сформировать с помощью конструкции deffacts исходный набор из пяти произвольных фактов (далее обозначаемых (a), (b), (c), (d) и (e)).

2. В соответствии с вариантом задания (табл. 1) сформировать набор правил, где (n), (m), (p), (r), (s) и (t) – некоторые произвольно выбранные факты (в квадратных скобках указана значимость правила). Сохранить подготовленные конструкции в файле <file_name>.clp.

Таблица 1

Варианты БЗ для исследования стратегий разрешения конфликтов

Вариант 1

Вариант 2

Вариант 3

Вариант 4

(a)(b)=>(m) [5000]

(a)(c)=>(n) [6000]

(b)(c)(d)=>(p) [5000] (a)(d)(c)=>(r) [6000]

(m)(n)=>(s) [6000]

(n)(p)(r)=>(t) [5000]

(a)(d)(e)=>(m) [5000] (c)(d)=>(p) [5000]

(c)(b)(d)=>(r) [6000] (b)(a)=>(n) [6000]

(p)(m)=>(t) [6000]

(r)(p)(m)=>(s) [5000]

(a)(b)(c)=>(r) [5000] (e)(c)(d)=>(p) [5000]

(a)(b)=>(m) [5000]

(a)(e)=>(n) [5000]

(m)(n)(r)=>(s) [5000] (m)(p)=>(t) [6000]

(e)(d)(a)=>(p) [8000] (b)(d)=>(m) [8000]

(a)(c)=>(n) [8000]

(a)(d)(b)=>(r) [8000]

(m)(p)=>(t) [6000]

(a)(n)(r)=>(s) [6000]

Вариант 5

Вариант 6

Вариант 7

Вариант 8

(a)(d)(e)=>(p) [6000] (b)(c)=>(m) [7000]

(d)(a)=>(n) [7000]

(e)(d)(c)=>(r) [6000]

(b)(n)=>(s) [7000]

(n)(p)(r)=>(t) [7000]

(c)(d)(a)=>(m) [4000] (c)(e)=>(p) [4000]

(c)(b)(d)=>(r) [4000] (b)(a)=>(n) [4000]

(p)(c)=>(t) [6000]

(a)(p)(m)=>(t) [5000]

(b)(c)(d) =>(r) [3000]

(a)(b)=>(m) [3000]

(e)(c)(d)=>(p) [3000] (a)(e)=>(n) [3000]

(m)(e)(r)=>(t) [5000] (m)(b)=>(s) [5000]

(a)(b)(c)=>(r) [2000] (e)(c)(d)=>(p) [2000]

(a)(d)=>(m) [3000]

(a)(e)=>(n) [3000]

(c)(n)(r)=>(t) [4000] (m)(d)=>(s) [5000]

3. Загрузить среду CLIPS (файл clipswin.exe). Активизировать окна “Facts Window” и Agenda Window”. С помощью команды Load Constructs меню File (или «горячей» комбинации Ctrl-L) загрузить факты и правила из файла <file_name>.clp.

4. Выполнить начальную установку командой (run) («горячая» комбинация - Ctrl-U). Зафиксировать состояние списка фактов и агенды.

5. Выполнить в пошаговом режиме обработку правил («горячая» комбинация - Ctrl-T), фиксируя после каждого шага состояние агенды и списка фактов.

6. Повторить действия п. 4 и 5 при различных стратегиях разрешения конфликтов. Для изменения стратегий использовать пункт Options менюExecution. Зафиксировать и объяснить полученные результаты.


 

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

83655. Основы матричных методов расчета электрических цепей 192 KB
  Соотношение 3 запишем для всех n ветвей схемы в виде матричного равенства или 4 где Z – диагональная квадратная размерностью n x n матрица сопротивлений ветвей все элементы которой взаимную индуктивность не учитываем за исключением элементов главной диагонали равны нулю. Сказанное может быть записано в виде матричного соотношения 8 где столбцовая матрица контурных токов; транспонированная контурная матрица. 11 то получим матричную форму записи уравнений составленных по методу контурных токов: 12 где...
83656. Преобразование энергии в электрической цепи. Мгновенная, активная, реактивная и полная мощности синусоидального тока 145 KB
  Мгновенная активная реактивная и полная мощности синусоидального тока Передача энергии w по электрической цепи например по линии электропередачи рассеяние энергии то есть переход электромагнитной энергии в тепловую а также и другие виды преобразования энергии характеризуются интенсивностью с которой протекает процесс то есть тем сколько энергии передается по линии в единицу времени сколько энергии рассеивается в единицу времени. 1 Выражение для мгновенного значения мощности в электрических цепях имеет вид: . Среднее за период...
83657. Резонансы в цепях синусоидального тока 136 KB
  Следствием этого является совпадение по фазе тока на входе цепи с входным напряжением. Резонанс в цепи с последовательно соединенными элементамирезонанс напряжений Для цепи на рис. В цепи преобладает индуктивность т.
83658. Векторные и топографические диаграммы 135.5 KB
  Для наглядного определения величины и фазы напряжения между различными точками электрической цепи удобно использовать топографические диаграммы. Они представляют собой соединенные соответственно схеме электрической цепи точки на комплексной плоскости отображающие их потенциалы. Для построения топографической диаграммы предварительно осуществим расчет комплексных потенциалов другой вариант построения топографической диаграммы предполагает расчет комплексов напряжений на элементах цепи с последующим суммированием векторов напряжений вдоль...
83659. Анализ цепей с индуктивно связанными элементами 150 KB
  Такие элементы могут связывать цепи электрически гальванически разделенные друг от друга. В том случае когда изменение тока в одном из элементов цепи приводит к появлению ЭДС в другом элементе цепи говорят что эти два элемента индуктивно связаны а возникающую ЭДС называют ЭДС взаимной индукции. Степень индуктивной связи элементов характеризуется коэффициентом связи 1 где М – взаимная индуктивность элементов цепи размерность – Гн; и собственные индуктивности этих элементов.
83660. Особенности составления матричных уравнений при наличии индуктивных связей и ветвей с идеальными источниками 118 KB
  В общем случае разветвленной цепи со взаимной индукцией матрица сопротивлений ветвей имеет вид Z . Здесь элементы главной диагонали комплексные сопротивления ветвей схемы; элементы вне главной диагонали комплексные сопротивления индуктивной связи i й и k – й ветвей знак ставится при одинаковой ориентации ветвей относительно одноименных зажимов в противном случае ставится...
83661. Методы расчета, основанные на свойствах линейных цепей 165.5 KB
  Метод наложения Данный метод справедлив только для линейных электрических цепей и является особенно эффективным когда требуется вычислить токи для различных значений ЭДС и токов источников в то время как сопротивления схемы остаются неизменными. Аналитически принцип наложения для цепи содержащей n источников ЭДС и m источников тока выражается соотношением . 1 Здесь комплекс входной проводимости k – й ветви численно равный отношению тока к ЭДС в этой ветви при равных нулю ЭДС в остальных ветвях; комплекс взаимной ...
83662. Метод эквивалентного генератора 123.5 KB
  как сумму двух составляющих одна из которых вызывается источниками входящими в структуру активного двухполюсника и источником ЭДС расположенным между зажимами 1 и 2 слева а другая – источником ЭДС расположенным между зажимами 1 и 2 справа. Параметры эквивалентного генератора активного двухполюсника могут быть определены экспериментальным или теоретическим путями. В первом случае в частности на постоянном токе в режиме холостого хода активного двухполюсника замеряют напряжение на его зажимах с помощью вольтметра которое и равно ....
83663. Пассивные четырехполюсники 223.5 KB
  При анализе электрических цепей в задачах исследования взаимосвязи между переменными (токами, напряжениями, мощностями и т.п.) двух каких-то ветвей схемы широко используется теория четырехполюсников. Четырехполюсник – это часть схемы произвольной конфигурации, имеющая две пары зажимов (отсюда и произошло его название), обычно называемые входными и выходными.