Формирование цепочек гравил в нечетких экспертных системах


Lawrence O.Hall
Отдел компьютерных систем и разработок, ENB 118
университет Южной Флориды Тампа, Fl. 33620
hall@csee.usf.edu
Перевел Зенкевич К.А.


Резюме: нечеткая экспертная система должна иметь цепочку правил отличающуюся от экпертных системы где не используется нечеткая логига. В частности любое правило, которое может использоваться со специфической лингвистической переменной в последствие должно выполнятся прежде, чем правило, предшествующие условию от которого зависят проистекающая ценность размытого множества, последовательной лингвистической переменной, когда оно выполнятся. Зависимые правила рассмотриваются в цепи с нечеткими правилами, которые производят или утверждают необходимую нечеткую лингвистическую переменную. Недавний документ DeSouza указывает, что версия оболочки экспертной системы FuzzyCLIPS не работает с цепочками нечетких правил, как этого можно было бы ожидать. FuzzyShell, которая известа как единственная оболочка способная иметь ожидаемое нечеткое правило, в цепи. В этой статье мы показываем несколько подходов к получению желательного поведения в FuzzyCLIPS. Далее, указываем на потенциальную ловушку с подходом FuzzyShell в формированию цепочки правил.
Ключевые слова: нечеткие экспертные системы, формирование цепочки, принятие решения.


Введение

   Много доступных нечетких оболочек для экспертных системы но ни одна из ранних нечетких оболочек не обратилась к идее формирования цепочки правил ожидаемым способом. Использование FuzzyShell, который действительно обращается к цепочки правил можно будет ожидать в нечетких экспертных системах будущего.
    Формирование цепочки правила происходит, когда у одного или более правил есть предшествующее условия, которые соответствуют утверждению о последствиях одного или более правил. В классических экспертных системах, где факты верны или ложны, формирование цепочки правила - простое расуждение. Если у одно из правил, у которого есть необходимое предшествующее условие в его последовательных выполнениях, которые зависят от него (находятся в цепи с ним) тогда его тоже необходимо выполнять.
    Иллюстрация 1 показывает пример трех правил в цепи. Нечеткое правило экспертной системы приведет к дополнительным сбоям в рабочей памяти нечетких лингвистических переменных и связанных размытых множествах. Возможно, что больше чем одно правило с той же самой нечеткой лингвистической переменной в последствии будет использоваться. Рассмотрим иллюстрацию 2 правила 1 и 2 могут использоваться оба, если температура 57 фарингейта, и у него есть членство отличное от нуля в обоих предшествующих размытых множествах, как в этом примере. Комбинация правил 1 и 2 приведет к размытому множеству, которое отлично от полученных, запуская любое правило отдельно. Поэтому, Правило 3 должно использоваться только после того, как правила 1 и 2 были применены так, чтобы проистекающее размытое множество, связанное с первым, приняло во внимание эффекты обоих Правил 1 и 2. Однако, используя классические стратегии правила экспертной системы (в зависимости от стратегии решения конфликта) вероятно, что Правило 3 будет всегда импользоваться прежде, чем оба правила 1 и 2 выполнились. Это не то, что кто-то, используя нечеткую экспертную систему ожидал бы.
    В частности FuzzyCLIPS, который является свободно доступным, портативным и разумным расширением оболочки экспертной системы CLIPS, не гарантирует желаемого поведение, в случае трёх правил в иллюстрации 2. FuzzyShell, с другой стороны, позволит правилам 1 и 2 выполнятся сначала и создавать соответствующее сложное размытое множество прежде, чем это будет использовано в правиле 3. Есть другие нечеткие оболочки, такой как в нечетком логическом комплекте инструментов Matlab, которые не настроены, чтобы позволить цепь нечетких правил вообще. Они прежде всего разработаны для нечетких правил контроля с первым уровнем. Нечеткое формирование цепочки правила использовалось в заявках, например в нечетком диспетчере для того, чтобы поддержать расстояние между автомобилями в норме.
    В этой статье мы покажем три способа позволить FuzzyCLIPS также иметь желательное или ожидаемое поведение перед лицом нечеткого формирования цепочки правил. Также указано, что у подхода, используемого в FuzzyShell, могут быть неожиданные результаты в случае сокращения фактов. Остальная часть бумаги организована следующим образом. Глава 2 обсуждает проблему выбора, управления, для FuzzyCLIPS и FuzzyShell более подробно Секция 3 обсуждает скрытую проблему с выбором, сделанным в FuzzyShell, и Секция 4 - резюме.

Правила 1: ЕСЛИ днем 50F, ТОГДА день требует свитера
Правилами 2: ЕСЛИ день требует свитер, ТОГДА везти в автобусе
Правилами 3: ЕСЛИ везти в автобусе, ТОГДА отправление-время -7:45a.m.
Рисунок 1: 3 цепи правил с Правилами 2 в зависимости от Правил 1 и Правила 3.

Правило 1: ЕСЛИ утренняя температура – ниже 55 ТОГДА, утро - холодное
Правило 2: ЕСЛИ утренняя температура – около 55-75 ТОГДА, утро - умеренное
Правило 3: ЕСЛИ утро умеренно ТОГДА, время быстрого велосипеда.
Рисунок 2: 2 цепи правил с Правилами 3 в зависимости от Правил 1 и Правила 2.


Управление запуском методов

   Правило, запускающее работу экспертных систем в производство имеет несколько подходов состояний, и циклов как показано в иллюстрации 3. И FuzzyCLIPS и FuzzyShell - системы производства. На стадии разработки все антецеденты правила подобраны против рабочей памяти. Но признать стадии всех правил, которые могут используются, как полагают, находятся в конфликте, и стратегия решения конфликта используется, чтобы оценить или закрыть их.
    Обычно используемые стратегии решения конфликта - лексикографический анализ (ЗАКОН) и анализ средств. Обе стратегии помещают одновременно используя новизну времени фактов, которая соответствует антецеденту правила, определяя что правило выполняется первым. Они дают предпочтение правилам, антецедент которых (частично) соответствует последним утверждаемым фактам. В иллюстрации 4 мы показываем 4 правила в формате FuzzyCLIPS. Размытые множества, которые они используют, показывают в иллюстрации 5. Пример почти идентичен используемому в [14] с только незначительными модификациями в границах размытого множества, вызывающих различия. В FuzzyCLIPS, когда стартер правила запущен и утверждает факты о миссии роботы и положения правила 2 будут в состоянии выполнятся. Следующее правило 1 будет выполнятся, а затем и правило 3 будет в состоянии выполнятся. Rule 3 будет первым на повестке дня правил, которые будут запущены, потому что ее антецедент соответствует факту, последний раз утверждаемому (или добавленому) к рабочей памяти.

Двигатель Вывода
1. Состязание: факты против правил.
2. Признайте: правила, которые могут стрелять, правила разряда.
3. Закон: стреляйте вершина оценила правило.
Правила Основы Знания, Работающие Факты Памяти. Текущая Ситуация.Inference Engine- логический вывод.
Иллюстрация 3: система производства. Правила гдг больше правил соответствуют фактам в рабочей памяти. Только 1 правило выполняется за цикл.

    Однако, с нечеткими правилами можно было бы ожидать выполнения правило 2 перед правилом 3, так как это имеет эффект изменения размытого множества, используемого в антецеденте правила 3. В FuzzyShell правило 2 будет стрелять перед правилом 3. Это было достигнуто модифицированием к основной структуре соответствия образца или сети Сети [19]. Сеть- быстрое средство соответствия образца, которое обычно используется, чтобы ускорить правило, выполняющиеся в системе производства. Чтобы быть справедливым, нужно отметить, что, используя версию 6.04a FuzzyClips после правила 3 правило 2 будет выполнятся. Так как правило 2 изменяет факт, который используется правилом 3, правило 3 будет выполнятся снова. Исход - ряд фактов в рабочей памяти, которые выглядят немного различными, чем если бы правило 1 и правило 2 выполнялись и затем запускалась правило 3, но, фактически, эквивалентны в этом простом примере.
    Иллюстрация 6 показывает частичный свод правил с 3 уровнями формирования цепочки для теннисного игрока, который пытается решить, когда войти в игру, основанную на том, во сколько запланированный теннисный матч произойдет. Размытые множества показывают в иллюстрации. Время состязания (во Флориде по крайней мере) затронуто температурой и ветром. В холодные, ветреные дни каждый играет ранее.

(ообманывать правило (робот (миссия x)
(2-ое видение датчика)) (2-ое видение (pixel-position-x оставленный)
(pixel-position-y рядом)) => (утверждают (цель (миссия? x) (ориентация NWW))))
(ообманывать правило 2 (робот (миссия? x) (2-ое видение датчика))

(2-ое видение (pixel-position-x оставленный медиане) (pixel-position-y далеко)) =>
(утверждают (цель (миссия? x) (СЗ ориентации))))
(defrule rule3 (цель (предотвращение препятствия миссии) (СЗ ориентации)) =>

(утверждают (право угла поворота 20)) (утверждают (среда расстояния к путешествию)))
(defrule стартер => (утверждают (робот (предотвращение препятствия миссии)
(2-ое видение датчика)))
(утверждают (2-ое видение (pixel-position-x оставленный медиане) (pixel-position-y далеко))))
иллюстрация 4: подмножество нечетких правил для контроля за роботом, основанного на тех в FuzzyShell.

минимизирует неудобства. Однако, со сводом правил в иллюстрации 6 различные времена начала работы будут выбраны основанные на том, выполняются ли все нечеткие правила в данный уровень правила этой цепи. Фактически заказ дан FuzzyCLIPS, заставит различное время начала быть определенным. Если Вы предполагаете, что человек, использующий этот свод правил решает, когда ожидать прибытие рабочих, он может измениться при тех же самых внешних условиях просто, потому что кто-то действительно управлял основным обслуживанием и переупорядочил правила.
    Рассмотрите случай, в котором температура 50oF, и скорость ветра 9:5 миля в час. Теперь по умалчанию процедура решения конфликта FuzzyCLIPS, 1 правил, временный реестр 2, ветер 1 и ветер 2 могут все выполнятся. Однако, с правилами выше во временном реестре FuzzyCLIPS ветер 2 выполнялись, и правило 1 будет выполнятся. Затем, если ценность в последний раз, играемая, будет сверх, то правило рабочие врмя 1 будет выполнятся. Однако, есть больше информации о форме размытого множества, разового, который не был использован, потому что правила в более высоком уровне еще не выполнялтсь. Можно было бы ожидать, что правила temp1, временный 2, ветер 1 и ветер 2 запустятся, и затем управлять будет courtime 1 и courtime 2, чтобы выполнится и наконец правила worktime обеспечивает ожидаемое разовое начало. Следовательно, время, чтобы начать работу будет различно, чем большинство людей, сведущих в нечетких экспертных системах, ожидало бы.
    Однако, если все правила, которые действуют на данное размытое множество, будут запущены то перед любым правилом, зависящим от проистекающего размытого множества (например, правило далее вниз в цепи правила), заключительное время начала будет тем же самым что и для идентичного (или очень подобного) учитывая внешние условия. Результаты несоответствуют тем, которых ожидал бы пользователь, который понимает технологию.


Ловушки FuzzyShell

    Потенциальная проблема для проектировщика, который использует FuzzyShell, могут произойти, когда от нечетких фактов отрекаются рабочяя память где знания базируются. Считайте два правила (использующий FuzzyCLIPS-как синтаксис) показанными в иллюстрации 9. Правило отрекается от нечеткого факта x, который также используется Ruleb. Предположите, что факты x являются A, и y - B, находятся в рабочей памяти и что размытое множество для y очень B, наложения с y B. Теперь и Rulea и Ruleb могут выполнятся. Как определено в FuzzyShell, когда Rulea перед Ruleb, Ruleb будет запущен на заднем плане, чтобы получить заключительное размытое множество для нечеткой лингвистической переменной r. Однако, от одного из фактов, требуемых для Ruleb при выполнении, отрекается Rulea. Любой не глубоко знакомый с работами FuzzyShell не ожидал бы, что Ruleb будет стрелять в этом случае. Действительно это, кажется, не разумное поведение для правила стрелять после того, как от факта, требуемого ним, отрекаются. Ruleb не будет выполнятся при подходах к контакту с цепями нечетких правил, предложенных для использования в FuzzyCLIPS. Конечно в любое время, от факта отрекаются, есть проблемы немонотонного рассуждения [25].
    Необходимо факты, которые были добавлены к рабочей памяти из-за присутствия факта, от которого отрекаются, должен также отречься непосредственно? Иногда ответ - да. Однако, в другом использовании ответ не и проектировщиков основы правила, обычно используют сокращение факта. Наш пункт - то, что вышеупомянутая особенность FuzzyShell - только ловушка под некоторыми точками зрения.


Изменяя в FuzzyCLIPS

   Альтернативный подход, который не требует изменения основной сети Сети FuzzyCLIPS, должен определить новую стратегию решения конфликта для FuzzyCLIPS. Этот подход требует модификаций к кодексу FuzzyCLIPS, но только для заказа правила на повестке дня. Новая стратегия, требование это нечеткая стратегия, будет немного состоять из 7 текущих взаимно исключительных стратегий. Будет позволено работать одновременно с любой из этих 7 стратегий (хотя его использование с широтой избыточно). Это применено прежде, чем любая текущая стратегия решения конфликта заказывает правила. Нечеткая стратегия просто делает временное изменение к выступам любых правил о повестках дня, у которых есть нечеткая лингвистическая переменная в их последствии, которое было в наборе фактов, добавленных к рабочей памяти последним увольнением правила. Это делает выступ затронутых правил самым высоким, которое заставит их двигаться в вершину повестки дня. Выступы правила надолго не изменены и вернутся к их оригинальным ценностям для использования в следующий раз, когда правила – будут использовані. Этот подход позволяет любой из 7 текущих стратегий решения конфликта использоваться в отсутствие нечеткого формирования цепочки. Это легко вызовет желательное поведение всех правил, у которых есть лингвистическая нечеткая переменная в их последствии, чтобы использовать перед правилом, которое использует лингвистическую переменную в ее предшествующих событиях. Далее, это не требует никакого изменения к основной структуре соответствия образца и является просто выбором, который базирует знание, проектировщик может использовать, если желательный.
   Есть несколько проблем с заказом правил о повестке дня, которая должна быть признана здесь. Во-первых, для кого-то конечно возможно произвести основу знания FuzzyCLIPS, например, больше чем 5 000 правил, в которых каждое правило находится на повестке дня в каждом цикле. Это сделало бы заказывающие нечеткие правила о повестке дня весьма отнимающими много времени, однако, только приказывая, чтобы повестка дня собралась быть по существу тем же самым количеством времени. В общем у большинства основанных на правилах систем будет меньше чем 50 правил о повестке дня с между 1 и 10 наиболее вероятное число данный способ, которым инженеры знания типично строят основания знания. У многих нечеткое правило базировало системы, особенно, не будет большого количества правил. Возможно более серьезный проблема, что FuzzyCLIPS, который построен на CLIP, является намного более общим чем FuzzyShell, и это позволяет функциям быть в правой стороне правил. Эти функции могут утверждать нечеткий факт, основанный на весьма сложных формулах. Возможно, не возможно априорно определить, будет ли нечеткий факт утверждаться, когда это будет включено в функцию справа правила. Следовательно, предложенное решение не относится к функциям справа нечетких правил. Это требует, чтобы нечеткое последствие было добавлено к рабочей памяти только утверждать командой. Такое ограничение с нечеткими правилами кажется довольно незначительным. Иллюстрация 8 показывает пример, который может быть проблематичным в FuzzyCLIPS с повесткой дня заказать схема 2. Это также излагает проблемы другим нечетким экспертным системам. Полагайте, что A2 утверждается, который частично соответствует и A1 и A3 и полагать, что Y утверждается. Теперь, R1 и R3 пойдут на повестке дня. Если R3 будет стрелять, то наша процедура заказа повестки дня вызовет желательное поведение. Иначе, это не будет и комбинация B1, и B3 не будет относиться к R4. Заказ правила, стреляющего в FuzzyCLIPS, неопределенен. Следовательно, для этого примера к цепи правильно, что использование выступа с R3 необходимо.
    Добавление времени выполнения наверху к заказу правил о повестке дня является беспокойством. Во время процесса погрузки правил таблица может быть составлена с числом правила каждого нечеткого правила и для каждого нечеткого правила, списка других нечетких правил, которые разделяют его нечеткое последствие. Когда нечеткое правило становится самым высоким на повестке дня, стол нечетких правил, которые разделяют последствие оцениваемого вершиной нечеткого правила, может использоваться, чтобы соответственно ударить выступ других нечетких правил с его последствием, которые находятся на повестке дня. Это требует только одного простого прохода через правила о повестке дня, которая будет минимальной стоимостью времени в обычном случае только небольшого количества правил, являющихся в любом данном состязании, признает, цикл акта. Эта стратегия предполагает, что нечеткие последствия не включены в функции.

(defrule temp1 (defrule temp2 (день (температура ниже - 50))
(день (температура выше - 50)) => (день (температура ниже - 70))
(утверждают (день (холод теннисного временного секретаря))), => (утверждают (день (умеренный теннисный временный секретарь)))

(defrule wind1 (день (windspeed выше - 10)) =>
(утверждают (день (ветреный теннисный ветер)))
(defrule wind2 (день (windspeed выше - 5))
(не (день (windspeed выше - 10))) =>
(утверждают (день (умеренный теннисный ветер))))
(defrule courttime1 (день (холод теннисного временного секретаря))

(день (ветреный теннисный ветер)) =>
(утверждают (день (разовый теннисом ранний))))
(defrule courtime2 (день (холод теннисного временного секретаря))
(день (умеренный теннисный ветер)) => (утверждают (день (разовый теннисом обычно-последний))))

(defrule worktime1
(день (разовый теннисом ранний))
(игра (прошлая разовая сверхнеделя)) =>
(работа (разовый началом ранний))) (defrule worktime2 (день (разовый теннисом обычно-последний)) =>
(работа (разовый началом обычный)))

Иллюстрация 6: Ряд нечетких правил с тремя уровнями формирования цепочки. R1: Если A1 Тогда B1 R2: Если A3 и X Тогда B3 R3: Если Y Тогда X R4: Если B2 Тогда иллюстрация 8
Z1: ряд особого случая нечеткие правила, в которых A и B - нечеткие переменные с нечеткими наборами
fA1; A2; A3g и fB1; B2; B3g - размытые множества на соответствующих нечетких переменных, и среднее размытое множество частично накладывается на своих соседей.
X и Y свежие факты, и Z1 - нечеткий факт. (defrule Rulea (defrule Ruleb f1 <-(x A) (x A) (y, B) (y, очень B), => => (отрекитесь? f1) (утверждают r, очень C)) (утверждайте (r, C)), иллюстрация 9: Два нечетких правила, у которых есть неинтуитивные результаты в FuzzyShell.


Вывод

   В этой статье, мы обсудили формирование цепочки в нечетком правиле, базовой системы. В нечетких системах это желательно для всех правил, еффективная ценность лингвистической переменной перед переменной используется в антецеденте другого правила. Правила, как говорят, находятся в нечеткой цепи с другими правилами (выше в цепи), у которых есть нечеткие лингвистические переменные от их последствий, которые соответствуют предшествующим нечетким переменным правила. FuzzyShell [14] делает некоторые сложные модификации к основной сети соответствия образца, чтобы позволить нечеткому формированию цепочки работать как ожидалось. Авторы FuzzyShell отмечают, что никакая другая нечеткая оболочка экспертной системы правильно не обращается с формированием цепочки в нечетких системах основанных на нечетких правилах. Мы показываем три подхода к правильной обработке с формированием цепочки в FuzzyCLIPS. Подходы могут использоваться с FuzzyCLIPS 6.04a и не потребовать никаких модификаций к основному алгоритму соответствующего образца. Далее, механизм, который изменяет алгоритм заказа повестки дня правила, позволяя текущие 7 различных подходов решения конфликта FuzzyCLIPS использоваться Этот подход также решает нечеткую проблему формирования цепочки в FuzzyCLIPS в манере, прозрачной пользователю. Наконец, когда от фактов отрекаются, мы указали на потенциальную ловушку выборов, сделанных в FuzzyShell обращаться с нечетким формированием цепочки. Эта потенциальная ловушка не существует ни в одном из решений FuzzyCLIPS проблемы, которые даны здесь. Подтверждения Это исследование было частично сделано в BISC, в то время как автор был на творческом отпуске. Благодаря Отделению Беркли UC CS и профессора Zadeh для использования их услуг. Благодаря анонимным рецензентам для их полезных комментариев.