Определение и примеры нечёткой логики. Основы теории нечетких множеств и нечеткой логики

Нечеткая логика (fuzzy logic) - это надмножество классической булевой логики. Она расширяет возможности классической логики, позволяя применять концепцию неопределенности в логических выводах. Употребле­ние термина "нечеткий" применительно к математической теории может ввес­ти в заблуждение. Более точно ее суть характеризовало бы название "непре­рывная логика". Аппарат нечеткой логики столь же строг и точен, как и класси­ческий, но вместе со значениями "ложь" и "истина" он позволяет оперировать значениями в промежутке между ними. Говоря образно, нечеткая логика по­зволяет ощущать все оттенки окружающего мира, а не только чистые цвета.

Нечеткая логика как новая область математики была представлена в 60-х го­дах профессором калифорнийского университета Лотфи Заде (Lotfi Zadeh). Пер­воначально она разрабатывалась как средство моделирования неопределенности естественного языка, однако впоследствии круг задач, в которых нечеткая логи­ка нашла применение, значительно расширился. В настоящее время она исполь­зуется для управления линейными и нелинейными системами реального време­ни, при решении задач анализа данных, распознавания, исследования операций.

Часто для иллюстрации связи нечеткой логики с естественными представ­лениями человека об окружающем мире приводят пример о пустыне. Опреде­лим понятие "пустыня" как "бесплодная территория, покрытая песком". Те­перь рассмотрим простейшее высказывание: "Сахара - это пустыня". Нельзя не согласиться с ним, принимая во внимание данное выше определение. Пред­положим, что с поверхности Сахары удалена одна песчинка. Осталась ли Саха­ра пустыней? Скорее всего, да. Продолжая удалять песчинки одну за другой, всякий раз оцениваем справедливость приведенного ранее высказывания. По прошествии определенного промежутка времени песка в Сахаре не останется и высказывание станет ложным. Но после какой именно песчинки его истин­ность меняется? В реальной жизни с удалением одной песчинки пустыня не исчезает. Пример показывает, что традиционная логика не всегда согласуется с представлениями человека. Для оценки степени истинности высказываний ес­тественный язык имеет специальные средства (некоторые наречия и обороты, например: "в некоторой степени", "очень" и др.). С возникновением нечеткой логики они появились и в математике.

Одно из базовых понятий традиционной логики - понятие подмножества. Подобно этому в основе нечеткой логики лежит теория нечетких подмножеств (нечетких множеств). Эта теория занимается рассмотрением множеств, опре­деляемых небинарными отношениями вхождения. Это означает, что принима­ется во внимание не просто то, входит элемент во множество или не входит, но и степень его вхождения, которая может изменяться от 0 до 1.


Пусть S - множество с конечным числом элементов, S ={s 1 , s 2 ,..., s n }, где n - число элементов (мощность) множества S . В классичес­кой теории множеств подмножество U множества S может быть определено как отображение элементов S на множество В = {0, 1}:

U: S => В.

Это отображение может быть представлено множеством упорядоченных пар вида:

{s i ,m ui }, iÎ,

где s i - i-й элемент множества S ; n - мощность множества S ; m Ui - элемент множества В = {0, 1}. Если m Ui = 1, то s i является элементом подмножества U . Элемент "0" множества В используется для обозначения того, что s i не входит в подмножество U . Проверка истинности предиката "s k ÎU " осуществляется пу­тем нахождения пары, в которой s k - первый элемент. Если для этой пары m Uk =l, то значением предиката будет "истина", в противном случае - "ложь".

Если U - подмножество S , то U может быть представлено n-мерным векто­ром (m U 1 , m U 2 ,…, m Un), где i-й элемент вектора равен "1", если соответствую­щий элемент множества S входит и в U , и "0" в противном случае. Таким обра­зом, U может быть однозначно представлено точкой в n-мерном бинарном ги­перкубе В n , В = {0, 1} (рисунок 1).

Рисунок 1 - Графическое представление традиционного множества

Нечеткое подмножество F может быть представлено как отображение эле­ментов множества S на интервал I = . Это отображение определяется мно­жеством упорядоченных пар: {s i ,m F ,(s i)}, iÎ, где s i - i-й элемент множества S ; n - мощность множества S ; m F (s i) Î -степень вхождения элемента s i в множество F . Значение m F (s i), равное 1, озна­чает полное вхождение, m F (s i) = 0 указывает на то, что элемент s i не принадле­жит множеству F . Часто отображение задается функцией m F (x) принадлежнос­ти х нечеткому множеству F . В силу этого термины "нечеткое подмножество" и "функция принадлежности" употребляются как синонимы. Степень истиннос­ти предиката "s k ÎF " определяется путем нахождения парного элементу s k зна­чения m F (s k), определяющего степень вхождения s k в F .

Обобщая геометрическую интерпретацию традиционного подмножества на не­четкий случай, получаем представление F точкой в гиперкубе I n , I = . В отличие от традиционных подмножеств точки, изображающие нечеткие подмножества, мо­гут находиться не только на вершинах гиперкуба, но и внутри него (рисунок 2).

Рисунок 2 - Графическое представление нечеткого множества

Рассмотрим пример определения нечеткого подмножества. Имеется мно­жество всех людей S . Определим нечеткое подмножество Т всех высоких лю­дей этого множества. Введем для каждого человека степень его принадлежно­сти подмножеству Т . Для этого зададим функцию принадлежности m Т (h), оп­ределяющую, в какой степени можно считать высоким человека ростом h сан­тиметров.

(1)

где h - рост конкретного человека в сантиметрах.

График этой функции пред­ставлен на рисунке 3.

Рисунок 3 - График функции принадлежности rn T (h)

Пусть рост Михаила - 163 см, тогда истинность высказывания "Михаил высок" будет равна 0.21. Использованная в данном случае функция принад­лежности тривиальна. При решении большинства реальных задач подобные функции имеют более сложный вид, кроме того, число их аргументов может быть большим.

Методы построения функций принадлежности для нечетких подмножеств довольно разнообразны. В большинстве случаев они отражают субъективные представления экспертов о предметной области. Так, например, кому-то чело­век ростом 180 см может показаться высоким, а кому-то - нет. Однако часто такая субъективность помогает снизить степень неопределенности при реше­нии слабо формализованных задач. Как правило, для задания функций принад­лежности используются типовые зависимости, параметры которых определя­ются путем обработки мнений экспертов. Представление произвольных функ­ций при реализации автоматизированных систем часто затруднено, поэтому в реальных разработках такие зависимости аппроксимируются кусочно-линей­ными функциями.

Необходимо осознавать разницу между нечеткой логикой и теорией веро­ятностей. Заключается она в различии понятий вероятности и степени принад­лежности. Вероятность определяет, насколько возможен один из нескольких взаимоисключающих исходов или одно из множества значений. Например, может определяться вероятность того, что утверждение истинно. Утверждение может быть либо истинным, либо ложным. Степень принадлежности показы­вает, насколько то или иное значение принадлежит определенному классу (под­множеству). Например, при определении истинности утверждения ее возмож­ные значения не ограничены "ложью" и "истиной", а могут попадать и в проме­жуток между ними. Еще одно различие выражено в математических свойствах этих понятий. В отличие от вероятности для степени принадлежности не тре­буется выполнение аксиомы аддитивности.

Основы теории нечетких множеств и нечеткой логики

Одним из методов изучения множеств без уточнения их границ является теория нечетких множеств, которая была предложена в 1965 г. профессором Калифорнийского университета Лотфи Заде. Первоначально она разрабатывалась как средство моделирования неопределенности естественного языка. Однако впоследствии круг задач, решаемых с использованием аппарата нечетких множеств, значительно расширился и сейчас включает в себя такие области, как анализ данных, распознавание, исследование операций, моделирование сложных систем, поддержка принятия решений и т. д. .

Нередко при определении и описании характеристик объектов оперируют не только количественными, но и качественными значениями. В частности, рост человека можно количественно измерить в сантиметрах, а можно описать, используя качественные значения: карликовый, низкий, средний, высокий или гигантский. Интерпретация качественных значений носит субъективный характер, т.е. они могут по-разному трактоваться разными людьми (субъектами). В силу нечеткости (размытости) качественных значений, при необходимости перехода от них к количественным величинам возникают определенные трудности.

В системах, построенных на базе нечетких множеств, используются правила вида «ЕСЛИ А ТО В» (А ® В), в которых как в А (условие, предпосылку), так и в В (результат, гипотезу) могут входить качественные значения. Например, «ЕСЛИ Рост = "высокий" ТО Вид_спорта = "баскетбол"».

Переменная, значение которой определяется набором качественных значений некоторого свойства, в теории нечетких множеств называются лингвистической . В приведенном примере правила используются две лингвистические переменные: Рост и Вид_спорта.

Каждое значение лингвистической переменной определяется через так называемое нечеткое множество. Нечеткое множество определяется через некоторую базовую шкалу X и функцию принадлежности (характеристическую функцию) m(х ), где х Î Х . При этом, если в классическом канторовском множестве элемент либо принадлежит множеству (m(х ) = 1), либо не принадлежит (m(х ) = 0), то в теории нечетких множеств m(х ) может принимать любое значение в интервале . Над нечеткими множествами можно выполнять стандартные операции: дополнение (отрицание), объединение, пересечение, разность и т. д. (рис. 33).

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

При задании лингвистической переменной ее значения, т. е. нечеткие множества, должны удовлетворять определенным требованиям (рис. 34).

1. Упорядоченность. Нечеткие множества должны быть упорядочены (располагаться по базовой шкале) в соответствии с порядком задания качественных значений для лингвистической переменной.

2. Ограниченность. Область определения лингвистической переменной должна быть четко обозначена (определены минимальные и максимальные значения лингвистической переменной на базовой шкале). На границах универсального множества, где определена лингвистическая переменная, значения функций принадлежности ее минимального и максимального нечеткого множества должны быть единичными. На рисунке Т 1 имеет неправильную функцию принадлежности, а Т 6 – правильную.

3. Согласованность. Должно соблюдаться естественное разграничение понятий (значений лингвистической переменной), когда одна и та же точка универсального множества не может одновременно принадлежать с m(х ) = 1 двум и более нечетким множествам (требование нарушается парой Т 2 – Т 3).

4. Полнота. Каждое значение из области определения лингвистической переменной должно описываться хотя бы одним нечетким множеством (требование нарушается между парой T 3 – Т 4).

5. Нормальность. Каждое понятие в лингвистической переменной должно иметь хотя бы один эталонный или типичный объект, т. е. в какой-либо точке функция принадлежности нечеткого множества должна быть единичной (требование нарушается T 5).

X

Нечеткое множество «низкий рост» m н (х )

0 20 40 60 80 100 110 120 140 160 X

Нечеткое множество «высокий рост» m в (х )

0 20 40 60 80 100 110 120 140 160 X

Д = Н: Дополнение нечеткого множества «низкий рост»

m д (х ) = 1 – m н (х )

0 20 40 60 80 100 110 120 140 160 X

Н È В: Объединение нечетких множеств «низкий рост» и «высокий рост»

m нв (х ) = mах (m н (х ), m в (х ))

0 20 40 60 80 100 110 120 140 160 X

Н Ç В: Пересечение нечетких множеств «низкий рост» и «высокий рост»

m нв (х ) = min (m н (х ), m в (х ))

Рис. 33. Операции над нечеткими множествами

m(х ) Т 1 Т 2 Т 3 Т 4 Т 5 Т 6

Рис. 34. Пример задания нечетких множеств для линг­вис­тической переменной с нарушением требований

Требования 2–4 можно заменить одним универсальным – сумма функций принадлежности m(х ) по всем нечетким множествам в каждой точке области определения переменной должна равняться 1.

При обработке правил с лингвистическими переменными (нечетких правил) для вычисления истинности гипотезы применяются правила нечеткой логики. Нечеткая логика – разновидность непрерывной логики, в которой предпосылки, гипотезы и сами логические формулы могут принимать истинностные значения с некоторой долей вероятности.

Основные положения нечеткой логики:

· истинность предпосылки, гипотезы или формулы лежит в интервале ;

· если две предпосылки (Е 1 и Е 2) соединены Ù (логическим И), то истинность гипотезы Н рассчитывается по формуле t(Н) = MIN(t(Е 1), t(Е 2));

· если две предпосылки (Е 1 и Е 2) соединены Ú (логическим ИЛИ), то истинность гипотезы Н рассчитывается по формуле t(Н) = MAX(t(Е 1), t(Е 2));

· если правило (П) имеет свою оценку истинности, тогда итоговая истинность гипотезы Н итог корректируется с учетом истинности правила t(Н итог) = MIN(t(Н), t(П)).

Стандартная статья о нечеткой логике обычно грешит двумя вещами:

  1. В 99% случаев статья касается исключительно применения нечеткой логики в контексте нечетких множеств, а точнее нечеткого вывода, а еще точнее алгоритма Мамдани. Складывается впечатление, что только этим способом нечеткая логика может быть применена, однако это не так.
  2. Почти всегда статья написана на математическом языке. Замечательно, но программисты пользуются другим языком с другими обозначениями. Поэтому оказывается, что статья просто непонятна тем, кому, казалось бы, должна быть полезна.
Все это грустно, потому что нечеткая логика - это одно из величайших достижений математики XX-ого века, если критерием брать практическую пользу. В этой статье я попытаюсь показать, насколько это простой и мощный инструмент программирования - настолько же простой, но гораздо более мощный, чем система обычных логических операций.

Самым замечательным фактом о нечеткой логике является то, что это прежде всего логика . Из начал мат-логики известно, что любая логическая функция может быть представлена дизъюнктивной или конъюнктивной нормальной формой, из чего следует, что для реализации исчисления высказываний достаточно всего трех операций: конъюнкции (&&), дизъюнкции (||) и отрицания (!). В классической логике каждая из этих операций задана таблицей истинности:

A b || a b && a ! -------- -------- ---- 0 0 0 0 0 0 0 1 0 1 1 0 1 0 1 0 1 0 1 1 0 0 1 1 1 1 1 1
В нечеткой логике, в отличие от классической, вместо величин истина и ложь используется величина степень истинности , принимающая любые значения из бесконечного множества от 0 до 1 включительно. Следовательно логические операции уже нельзя представить таблично. В нечеткой логике они задаются фукнциями.

Есть два способа реализации дизъюнкции и конъюнкции:

#Максиминный подход: a || b => max(a, b) a && b => min(a, b) #Колорометрический подход: a || b => a + b - a * b a && b => a * b
Отрицание задается единственным способом (не трудно догадаться):

A => 1 - a
Легко проверить, что для крайних случаев - когда значения переменных исключительно 1 или 0 - приведенные выше функции дают таблицы истинности операций классической логики. Готово! Теперь у нас есть расширенная логика, обладающая невероятной мощью, простотой и при этом полностью совместимая с классической логикой в предельных случаях. Значит везде, где мы [программисты] используем логические выражения, мы можем использовать выражения нечеткой логики? Не совсем.

Дело в том, что все операторы языков программирования требуют четких условий, поэтому в какой-то момент всегда приходится из нечеткой степени истинности получать четкий критерий срабатывания. Это похоже на то, что происходит в квантовом мире: до тех пор, пока система эволюционирует в соответствии с уравнением Шредингера, ее квантовое состояние изменяется детерминированно и непрерывно, но как только мы прикасаемся к системе, происходит квантовый скачок, и система сваливается в одно из дискретных состояний. В нечеткой логике это называется дефаззификацией. Природа просто превращает квантовое состояние в вероятность и бросает кости, но вообще говоря методы дефаззификации бывают разные. Я не буду углубляться в эту тему, потому что объем ее тянет на отдельную статью. Упомяну лишь только, что метод дефаззификации следует выбирать, учитывая семантику задачи.

Для примера представим себе систему управления ракетой, использующую нечеткую логику для обхода препятствий. Представим себе, что ракета летит точно в гору, и система управления вычисляет решение: лететь вправо - 0.5, лететь влево - 0.5. Если использовать дефаззификацию методом центра масс, то система управления даст команду - лететь прямо. Бум! Очевидно, что в этом случае правильное решение - бросить кости и получить команду «влево» или «вправо» с вероятностью 50%.

В простейшем случае, когда нужно принять решение на основании степени истинности, можно разбить множество на интервалы и использовать if-else-if.

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

В качестве примера приведу использование нечеткой логики для решения задачи, которой я развлекался еще в институте - это задача поиска китайского иероглифа по изображению.

Я сразу отбросил идею распознавать любой каракуль, нарисованный пользователем на экране (тогда это был экран КПК). Вместо этого программа предлагала выбрать тип черты из порядка 23-х, определенных правилами японской каллиграфии. Выбрав тип черты, пользователь рисовал прямоугольник, в который вписывалась черта. Фактически, иероглиф - и введенный, и хранимый в словаре - представлялся в виде множества прямоугольников, для которых был определен тип.

Как определить равенство иероглифов в таком представлении? Для начала сформулируем критерий в четкой постановке:

Иероглифы A и B равны тогда и только тогда, когда для каждой черты в A существует равная ей черта в B и для каждой черты в B существует равная ей черта в A.

Неявно предполагается, что иероглифы не содержат черт-дубликатов, то есть, если некоторая черта совпала с чертой в другом иероглифе, то ни с одной другой чертой в том же иероглифе она совпасть не может.

Равенство черт можно определить следующим образом:

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

Эти два определения дают нам систему утверждений, которой достаточно для реализации алгоритма поиска.

Для начала построим матрицу E следующим образом:

For i in 1..n for j in 1..n E = A[i] == B[j] end end #A и B - это иероглифы; A[i] и B[j] - это их черты, и оператор "==" вычисляет их нечеткое равенство. #Предполагается, что оба иероглифа имеют одинаковое количество черт - n.
Затем сомкнем эту матрицу в вектор M[n]:

For i in 1..n M[i] = E.max_in_row(i) end #Метод max_in_row вычисляет максимальное значение в строке матрицы.
Я использую максиминный подход, потому что, на практике, колорометрический дает слишком маленькие значения для конъюнкций. Если вспомнить, что max - это дизъюнкция, то получается, что мы вычисляем утверждение, что i-я черта A равна первой черте B или второй или третьей и т.д. Таким образом M - это вектор совпадений черт A с чертами B.

#Просто нечеткой конъюнкцией. e = M.min #Либо так: e = M.sum / M.length #(отношение суммы элементов к длине вектора).
Оба способа работают, но по-разному, причем второй способ работает даже если сравнивать черты четко. Какой из них правильней - вопрос философский.

Еще пару слов стоит сказать о сравнении черт. В соответствии с определением, равенство черт - это конъюнкция двух условий: равенства типов и равенства прямоугольников. Черты некоторых типов очень похожи. Вводя, пользователь легко может их перепутать, поэтому стоит иметь таблицу похожести, значения которой будут отражать насколько черта i похожа на черту j (на главной диагонали, естественно, будут единицы). Как степень равенства прямоугольников можно брать отношение площади их пересечения к площади большего из прямоугольников.

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

Лекция № 1

Нечеткая логика

  1. Понятие нечеткой логики.
  2. Операции с нечеткими множествами.
  3. Лингвистическая переменная.
  4. Нечеткое число.
  1. 1. Понятие нечеткой логики

Нечеткая логика является многозначной логикой, что позволяет определить промежуточные значения для таких общепринятых оценок, как да|нет, истинно|ложно, черное|белое и т.п. Выражения подобные таким, как слегка тепло или довольно холодно возможно формулировать математически и обрабатывать на компьютерах. Нечеткая логика появилась в 1965 в работах Лотфи А. Задэ (Lotfi A. Zadeh ), профессора технических наук Калифорнийского университета в Беркли.

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

Нечеткая логика - раздел математики, являющийся новой мощной технологией.

Нечеткая логика возникла как наиболее удобный способ построения систем управления метрополитенами и сложными технологическими процессами, а также нашла применение в бытовой электронике, диагностических и других экспертных системах. Несмотря на то, что математический аппарат нечеткой логики впервые был разработан в США, активное развитие данного метода началось в Японии, и новая волна вновь достигла США и Европы. В Японии до сих пор продолжается бум нечеткой логики и экспоненциально увеличивается количество патентов, большая часть которых относится к простым приложениям нечеткого управления .

Термин fuzzy (англ. нечеткий, размытый - произносится "фаззи ") стал ключевым словом на рынке. Статьи по электронике без нечетких компонент постепенно исчезали и пропали совсем, как будто кто-то закрыл кран. Это показывает насколько стала популярной нечеткая логика; появилась даже туалетная бумага с напечатанными на ней словами "Fuzzy Logic".

В Японии исследования в области нечеткой логики получили широкую финансовую поддержку. В Европе и США усилия были направлены на то, чтобы сократить огромный отрыв от японцев. Так, например, агентство космических исследований NASA стало использовать нечеткую логику в маневрах стыковки.

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

2. Операции с нечеткими множествами

Определение и основные характеристики

нечетких множеств

Нечеткое множество (fuzzyset) представляет собой совокупность элементов произвольной природы, относительно которых нельзя точно утверждать - обладают ли эти элементы некоторым характеристическим свойством, которое используется для задания нечеткого множества.

Пусть E - универсальное множество, x - элемент E , а R - некоторое свойство. Обычное (четкое) подмножество A универсального множества E , элементы которого удовлетворяют свойству R , определяется как множество упорядоченных пар A = {µ A (х )/х } , где

µ A (х ) - характеристическая функция , принимающая значение 1 , если x удовлетворяет свойству R, и 0 - в противном случае.

Нечеткое подмножество отличается от обычного тем, что для элементов x из E нет однозначного ответа "да-нет" относительно свойства R . В связи с этим, нечеткое подмножество A универсального множества E определяется как множество упорядоченных пар A = {µ A (х )/х } , где

µ A (х ) - характеристическая функция принадлежности (или просто функция принадлежности), принимающая значения в некотором вполне упорядоченном множестве M (например, M = ). Функция принадлежности указывает степень (или уровень) принадлежности элемента x подмножеству A . Множество M называют множеством принадлежностей . Если M = {0,1} , то нечеткое подмножество A может рассматриваться как обычное или четкое множество.

Примеры записи нечеткого множества

Пусть E = {x 1 , x 2 , x 3 , x 4 , x 5 } , M = ; A - нечеткое множество, для которого

µ A (x 1)=0,3;

µ A (x 2)=0;

µ A (x 3)=1;

µ A (x 4)=0,5;

µ A (x 5)=0,9.

Тогда A можно представить в виде:

A = {0,3/x 1 ; 0/x 2 ; 1/x 3 ; 0,5/x 4 ; 0,9/x 5 } или

A = 0,3/x 1 + 0/x 2 + 1/x 3 + 0,5/x 4 + 0,9/x 5 , или

Замечание. Здесь знак "+ " не является обозначением операции сложения, а имеет смысл объединения.

Основные характеристики нечетких множеств

Пусть M = и A - нечеткое множество с элементами из универсального множества E и множеством принадлежностей M .

Величина µ A (x ) называется высотой нечеткого множества A . Нечеткое множество A нормально , если его высота равна 1 , т.е. верхняя граница его функции принадлежности равна 1 (µ A (x )=1 ). При µ A (x ) <1 нечеткое множество называется субнормальным .

Нечеткое множество пусто , если µ A (x )=0. Непустое субнормальное множество можно нормализовать по формуле A (x ) = .

Нечеткое множество унимодально , если µ A (x )=1 только на одном x из E.

Носителем нечеткого множества A является обычное подмножество со свойством µ A (x )>0 , т.е. носитель A = {x/µ A (x )>0} , x E .

Элементы x E , для которых µ A (x )=0,5 называются точками перехода множества A .

Примеры нечетких множеств

1) Пусть E = {0,1,2,..,10}, M =. Нечеткое множество "несколько" можно определить следующим образом: "несколько " = 0,5/3+0,8/4+1/5+1/6+0,8/7+0,5/8; его характеристики: высота = 1 , носитель = {3,4,5,6,7,8}, точки перехода - {3,8}.

2) Пусть E = { 0,1,2,3,...,n ,...}. Нечеткое множество "малый " можно определить:

"малый" = .

3) Пусть E = {1,2,3,...,100} и соответствует понятию "возраст ", тогда нечеткое множество "молодой ", может быть определено с помощью

4) Нечеткое множество "молодой " на универсальном множестве E" ={Иванов, Петров, Сидоров ,...} задается с помощью функции принадлежности µ "молодой " (x ) на E = {1,2,3,..100} (возраст), называемой по отношению к E" функцией совместимости, при этом:

µ "молодой" (Сидоров )= µ "молодой" (x ), где x - возраст Сидорова.

5) Пусть E = {Запорожец, Жигули, Мерседес ,....} - множество марок автомобилей, а E" = , формируя векторную функцию принадлежности { µ A (x 1 ), µ A (x 2 ),... µ A (x 9 )}.

При прямых методах используются также групповые прямые методы, когда, например, группе экспертов предъявляют конкретное лицо и каждый должен дать один из двух ответов: "этот человек лысый " или "этот человек не лысый ", тогда количество утвердительных ответов, деленное на общее число экспертов, дает значение µ "лысый" (данного лица). (В этом примере можно действовать через функцию совместимости, но тогда придется считать число волосинок на голове у каждого из предъявленных эксперту лиц).

Косвенные методы определения значений функции принадлежности используются в случаях, когда нет элементарных измеримых свойств, через которые определяется интересующее нас нечеткое множество. Как правило, это методы попарных сравнений. Если бы значения функций принадлежности были нам известны, например, µ A (x i ) = w i , i =1,2,...,n , то попарные сравнения можно представить матрицей отношений A = {a ij }, где a ij =w i /w j (операция деления).

На практике эксперт сам формирует матрицу A , при этом предполагается, что диагональные элементы равны 1, а для элементов симметричных относительно диагонали a ij = 1/a ij , т.е. если один элемент оценивается в n раз сильнее чем другой, то этот последний должен быть в 1/n раз сильнее, чем первый. В общем случае задача сводится к поиску вектора w , удовлетворяющего уравнению вида А w = λ max w , где λ max - наибольшее собственное значение матрицы A . Поскольку матрица А положительна по построению, решение данной задачи существует и является положительным.

Пример. Рассмотрим нечеткое множество A , соответствующее понятию «расход теплоносителя небольшой». Объект x - расход теплоносителя, x0; x max - множество физически возможных значений скорости изменения температуры. Эксперту предъявляются различные значения расхода теплоносителя x и задается вопрос: с какой степенью уверенности 0 ≤ μ A (x) ≤ 1 эксперт считает, что данный расход теплоносителя x небольшой. При μ A (x) = 0 - эксперт абсолютно уверен, что расход теплоносителя x небольшой. При μ A (x) = 1 - эксперт абсолютно уверен, что расход теплоносителя x нельзя классифицировать как небольшой.

Операции над нечеткими множествами

Включение .

Пусть A и B - нечеткие множества на универсальном множестве E.

Говорят, что A содержится в B , если .

Обозначение : .

Иногда используют термин "доминирование ", т.е. в случае когда A Ì B , говорят, что B доминирует A .

Равенство .

A и B равны, если " x Î E m A (x ) = m B (x ).

Обозначение : A = B .

Дополнение.

Пусть М = , A и B - нечеткие множества, заданные на E . A и B дополняют друг друга, если

" x Î E m A (x ) = 1 - m B (x ).

Обозначение : или.

Очевидно, что. (Дополнение определено для M = , но очевидно, что его можно определить для любого упорядоченного M ).

Пересечение .

A ÇB - наибольшее нечеткое подмножество, содержащееся одновременно в A и B .

m A Ç B(x ) = min(m A (x ), m B (x )).

Объединение.

А È В - наименьшее нечеткое подмножество, включающее как А , так и В , с функцией принадлежности:

m A È B(x ) = max(m A (x ), m B (x )).

Разность.

А - B = А Ç с функцией принадлежности:

m A-B (x ) = m A Ç (x ) = min(m A (x ), 1 - m B (x )).

Дизъюнктивная сумма.

А Å B = (А - B) È (B - А) = (А Ç ) È (Ç B) с функцией принадлежности:

m A-B (x ) = max{; }

Примеры.

A = 0,4/ x 1 + 0,2/ x 2 +0/ x 3 +1/ x 4 ;

B = 0,7/ x 1 +0,9/ x 2 +0,1/ x 3 +1/ x 4 ;

C = 0,1/ x 1 +1/ x 2 +0,2/ x 3 +0,9/ x 4 .

A Ì B , т.е. A содержится в B или B доминирует A , С несравнимо ни с A , ни с B , т.е. пары {A, С } и {A, С } - пары недоминируемых нечетких множеств.

0,6/ x 1 + 0,8/x 2 + 1/x 3 + 0/x 4 ;

0,3/x 1 + 0,1/x 2 + 0,9/x 3 + 0/x 4 .

A Ç B = 0,4/x 1 + 0,2/x 2 + 0/x 3 + 1/x 4 .

А È В = 0,7/x 1 + 0,9/x 2 + 0,1/x 3 + 1/x 4 .

А - В = А Ç = 0,3/x 1 + 0,1/x 2 + 0/x 3 + 0/x 4 ;

В - А В = 0,6/x 1 + 0,8/x 2 + 0,1/x 3 + 0/x 4 .

А Å В = 0,6/x 1 + 0,8/x 2 + 0,1/x 3 + 0/x 4 .

Наглядное представление операций над нечеткими множествами

Для нечетких множеств можно строить визуальное представление. Рассмотрим прямоугольную систему координат, на оси ординат которой откладываются значения m A (x ) , на оси абсцисс в произвольном порядке расположены элементы E (мы уже использовали такое представление в примерах нечетких множеств). Если E по своей природе упорядочено, то этот порядок желательно сохранить в расположении элементов на оси абсцисс. Такое представление делает наглядными простые операции над нечеткими множествами.

На верхней части рисунка заштрихованная часть соответствует нечеткому множеству A и, если говорить точно, изображает область значений А и всех нечетких множеств, содержащихся в A . На нижней - даны, A Ç , A È .

Свойства операций È и Ç.

Пусть А, В, С - нечеткие множества, тогда выполняются следующие свойства:

Коммутативность;

Ассоциативность;

Идемпотентность;

Дистрибутивность;

A ÈÆ = A , где Æ - пустое множество , т.е. (x) = 0 " >x Î E ;

A Ç E = A , где E - универсальное множество;

Теоремы де Моргана.

В отличие от четких множеств, для нечетких множеств в общем случае:

Замечание. Введенные выше операции над нечеткими множествами основаны на использовании операций max и min . В теории нечетких множеств разрабатываются вопросы построения обобщенных, параметризованных операторов пересечения, объединения и дополнения, позволяющих учесть разнообразные смысловые оттенки соответствующих им связок "и ", "или ", "не ".

Расстояние между нечеткими множествами

Пусть A и B - нечеткие подмножества универсального множества E . Введем понятие расстояния r(A , B ) между нечеткими множествами. При введении расстояния обычно предъявляются следующие требования:

r(A, B ) ³ 0 - неотрицательность;

r(A, B ) = r(B, A ) - симметричность;

r(A, B ) < r(A, C ) + r(C, B ).

К этим трем требованиям можно добавить четвертое: r(A, A ) = 0.

Евклидово или квадратичное расстояние:

e(A, B ) = , e(A, B )Î.

Перейдем к индексам нечеткости или показателям размытости нечетких множеств.

Если объект х обладает свойством R (порождающим нечеткое множество A ) лишь в частной мере, т.е.

0< m A (x ) <1, то внутренняя неопределенность, двусмысленность объекта х в отношении R проявляется в том, что он, хотя и в разной степени, принадлежит сразу двум противоположным классам: классу объектов, "обладающих свойством R ", и классу объектов, "не обладающих свойством R ". Эта двусмысленность максимальна, когда степени принадлежности объекта обеим классам равны, т.е. m A (x ) = (x ) = 0,5, и минимальна, когда объект принадлежит только одному классу, т.е. либо m A (x ) = 1 и (x ) = 0, либо m A (x ) = 0 и (x ) = 1.

3. Лингвистическая переменная

В нечеткой логике значения любой величины представляются не числами, а словами естественного языка и называются ТЕРМАМИ. Так, значением лингвистической переменной ДИСТАНЦИЯ являются термы ДАЛЕКО, БЛИЗКО и т. д.

Конечно, для реализации лингвистической переменной необходимо определить точные физические значения ее термов. Пусть, например, переменная ДИСТАНЦИЯ может принимать любое значение из диапазона от 0 до 60 метров. Как же нам поступить? Согласно положениям теории нечетких множеств, каждому значению расстояния из диапазона в 60 метров может быть поставлено в соответствие некоторое число, от нуля до единицы, которое определяет СТЕПЕНЬ ПРИНАДЛЕЖНОСТИ данного физического значения расстояния (допустим, 10 метров) к тому или иному терму лингвистической переменной ДИСТАНЦИЯ. В нашем случае расстоянию в 50 метров можно задать степень принадлежности к терму ДАЛЕКО, равную 0,85, а к терму БЛИЗКО - 0,15. Конкретное определение степени принадлежности возможно только при работе с экспертами. При обсуждении вопроса о термах лингвистической переменной интересно прикинуть, сколько всего термов в переменной необходимо для достаточно точного представления физической величины. В настоящее время сложилось мнение, что для большинства приложений достаточно 3-7 термов на каждую переменную. Минимальное значение числа термов вполне оправданно. Такое определение содержит два экстремальных значения (минимальное и максимальное) и среднее. Для большинства применений этого вполне достаточно. Что касается максимального количества термов, то оно не ограничено и зависит целиком от приложения и требуемой точности описания системы. Число же 7 обусловлено емкостью кратковременной памяти человека, в которой, по современным представлениям, может храниться до семи единиц информации.

Понятие нечеткой и лингвистической переменных используется при описании объектов и явлений с помощью нечетких множеств.

Нечеткая переменная характеризуется тройкой <α, X, A>, где

α - наименование переменной,

X - универсальное множество (область определения α),

A - нечеткое множество на X, описывающее ограничения (т.е. μ A (x )) на значения нечеткой переменной α.

Лингвистической переменной называется набор <β ,T,X,G,M>, где

β - наименование лингвистической переменной;

Т - множество ее значений (терм-множество), представляющих собой наименования нечетких переменных, областью определения каждой из которых является множество X.

Множество T называется базовым терм-множеством лингвистической переменной;

G - синтаксическая процедура, позволяющая оперировать элементами терм-множества T, в частности, генерировать новые термы (значения). Множество TÈ G(T), где G(T) - множество сгенерированных термов, называется расширенным терм-множеством лингвистической переменной;

М - семантическая процедура, позволяющая превратить каждое новое значение лингвистической переменной, образуемое процедурой G, в нечеткую переменную, т.е. сформировать соответствующее нечеткое множество.

Замечание. Чтобы избежать большого количества символов

символ β используют как для названия самой переменной, так и для всех ее значений;

пользуются одним и тем же символом для обозначения нечеткого множества и его названия, например терм "молодой ", являющийся значением лингвистической переменной β = "возраст ", одновременно есть и нечеткое множество М ("молодой ").

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

Пример: Пусть эксперт определяет толщину выпускаемого изделия с помощью понятий "малая толщина ", "средняя толщина " и "большая толщина ", при этом минимальная толщина равна 10 мм, а максимальная - 80 мм.

Формализация такого описания может быть проведена с помощью следующей лингвистической переменной < β, T, X, G, M>, где

β - толщина изделия;

T - {"малая толщина ", "средняя толщина ", "большая толщина "};

G - процедура образования новых термов с помощью связок "и ", "или " и модификаторов типа "очень ", "не ", "слегка " и др. Например: "малая или средняя толщина ", "очень малая толщина " и др.;

М - процедура задания на X = нечетких подмножеств А 1 ="малая толщина ", А 2 = "средняя толщина ", А 3 ="большая толщина ", а также нечетких множеств для термов из G(T) в соответствии с правилами трансляции нечетких связок и модификаторов "и ", "или ", "не ", "очень ", "слегка " и др. операции над нечеткими множествами вида: А Ç В, АÈ В, CON А = А 2 , DIL А = А 0,5 и др.

Замечание. Наряду с рассмотренными выше базовыми значениями лингвистической переменной "толщина " (Т={"малая толщина ", "средняя толщина ", "большая толщина "}) возможны значения, зависящие от области определения Х. В данном случае значения лингвистической переменной "толщина изделия" могут быть определены как "около 20 мм ", "около 50 мм ", "около 70 мм ", т.е. в виде нечетких чисел .

Продолжение примера:

Функции принадлежности нечетких множеств:

"малая толщина" = А 1 , "средняя толщина "= А 2 , " большая толщина "= А 3 .

Функция принадлежности:

нечеткое множество "малая или средняя толщина " = А 1 ?А 1 .

4. Нечеткое число

Нечеткие числа - нечеткие переменные, определенные на числовой оси, т.е. нечеткое число определяется как нечеткое множество А на множестве действительных чисел R с функцией принадлежности m A (x )Î, где x - действительное число, т.е. x Î R.

Нечеткое число А нормально , если μ A (x )=1, выпуклое , если для любых x≤y≤z выполняется μ A (x )≥ μ A (y )∩ μ A (z ).

Подмножество S A ÌR называется носителем нечеткого числа А, если

S = {x /μ A (x )>0}.

Нечеткое число А унимодально , если условие m A (x ) = 1 справедливо только для одной точки действительной оси.

Выпуклое нечеткое число А называется нечетким нулем , если

m A (0) = (m A (x )).

Нечеткое число А положительно , если "x Î S A , x >0 и отрицательно , если "x Î S A , x <0.

Операции над нечеткими числами

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

Пусть А и В - нечеткие числа, и - нечеткая операция, соответствующая операции над обычными числами. Тогда

С = АB Ûm C (z )=(m A (x )Lm B (y ))).

С = Ûm C (z )=(m A (x )Lm B (y ))),

С = Û m C (z )=(m A (x )Lm B (y ))),

С = Û m C (z )=(m A (x )L m B (y ))),

С = Û m C (z )=(m A (x )Lm B (y ))),

С = Û m C (z )=(m A (x )Lm B (y ))),

С = Û m C (z )=(m A (x )Lm B (y ))).

Замечание. Решение задач математического моделирования сложных систем с применением аппарата нечетких множеств требует выполнения большого объема операций над разного рода лингвистическими и другими нечеткими переменными. Для удобства исполнения операций, а также для ввода-вывода и хранения данных, желательно работать с функциями принадлежности стандартного вида.

Нечеткие множества, которыми приходится оперировать в большинстве задач, являются, как правило, унимодальными и нормальными. Одним из возможных методов аппроксимации унимодальных нечетких множеств является аппроксимация с помощью функций (L-R)-типа.

Список литературы

1. Орлов А.И. Теория принятия решений. Учебное пособие / А.И.Орлов.- М.: Издательство «Экзамен», 2005. - 656 с.

2. Борисов А. Н., Кроумберг О. А., Федоров И. П. Принятие решений на основе нечетких моделей: примеры использования. - Рига: Зинатве, 1990. - 184 с.

3. Андрейчиков А.В., Андрейчикова О.Н. Анализ, синтез, планирование решений в экономике — М.: Финансы и статистика, 2000. — 368 с.

4. Нечеткие множества в моделях управления и искусственного интеллекта/Под ред. Д. А. Поспелова. — М.: Наука, 1986. — 312 с.

5. Боросов А.Н. Принятие решений на основе нечетких моделей: Примеры использования. Рига: Зинанте, 1990.

6. Вопросы анализа и процедуры принятия решений/Под ред. И.Ф. Шахнова. М.: Мир, 1976.

7. Кофман А. Введение в теорию нечетких множеств/Пер, с франц. М,: Радио и связь, 1982.

9. Лебег А. Об измерении величин. - М.: Учпедгиз, 1960. - 204 с.

10. Орлов А.И. Основания теории нечетких множеств (обобщение аппарата Заде). Случайные толерантности. - В сб.: Алгоритмы многомерного статистического анализа и их применения. - М.: Изд-во ЦЭМИ АН СССР, 1975. - С.169-175.

Введение в нечеткую логику

Нечеткая логика – это логическая или управляющая система n-значной логической системы, которая использует степени состояния («степени правды») входов и формирует выходы, зависящие от состояний входов и скорости изменения этих состояний. Это не обычная «истинная или ложная» (1 или 0), булева (двоичная) логика, на которой основаны современные компьютеры. Она в основном обеспечивает основы для приблизительного рассуждения с использованием неточных решений и позволяет использовать лингвистические переменные.



Нечеткая логика была разработана в 1965 году профессором Лотфи Заде в Калифорнийском университете в Беркли. Первым приложением было выполнение обработки компьютерных данных на основе естественных значений.


Если говорить проще, состояниями нечеткой логики могут быть не только 1 или 0, но и значения между ними, то есть 0.15, 0.8 и т.д. Например, в двоичной логике, мы можем сказать, что мы имеем стакан горячей воды (то есть 1 или высокий логический уровень) или стакан холодной воды, то есть (0 или низкий логический уровень), но в нечеткой логике, мы можем сказать, что мы имеем стакан теплой воды (ни горячий, ни холодный, то есть где-то между этими двумя крайними состояниями). Четкая логика: да или нет (1, 0). Нечеткая логика: конечно, да; возможно, нет; не могу сказать; возможно да и т.д.

Базовая архитектура нечеткой логической системы

Система нечеткой логики состоит из следующих модулей:



Фазифаер (Fuzzifier или оператор размытия). Он принимает измеренные переменные в качестве входных данных и преобразует числовые значения в лингвистические переменные. Он преобразует физические значения, а также сигналы ошибок в нормализованное нечеткое подмножество, которое состоит из интервала для диапазона входных значений и функций принадлежности, которые описывают вероятность состояния входных переменных. Входной сигнал в основном разделен на пять состояний, таких как: большой положительный, средний положительный, малый, средний отрицательный и большой отрицательный.


Контроллер. Он состоит из базы знаний и механизма вывода. База знаний хранит функции принадлежности и нечеткие правила, полученные путем знания работы системы в среде. Механизм вывода выполняет обработку полученных функций принадлежности и нечетких правил. Другими словами, механизм вывода формирует выходные данные на основе лингвистической информации.


Дефазифаер (Defuzzifier или оператор восстановления чёткости). Он выполняет обратный процесс фазифаера. Другими словами, он преобразует нечеткие значения в нормальные числовые или физические сигналы и отправляет их в физическую систему для управления работой системы.

Принцип работы системы нечеткой логики

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


Степени принадлежности в этом общем значении в нечетком множестве определяют выход, основанный на принципе IF-THEN. Принадлежность назначается на основе предположения о выходе с помощью входов и скорости изменения входных данных. Функция принадлежности в основном представляет собой графическое представление нечеткого множества.


Рассмотрим такое значение «х», что x ∈ X для всего интервала и нечеткого множества A, которое является подмножеством X. Функция принадлежности «x» в подмножестве A задается как: fA (x), Обратите внимание, что «x» обозначает значение принадлежности. Ниже приводится графическое представление нечетких множеств.



В то время как ось x обозначает универсальный набор, ось y обозначает степени принадлежности. Эти функции принадлежности могут быть треугольными, трапециевидными, одноточечными или гауссовыми по форме.

Практический пример системы на основе нечеткой логики

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


Первым шагом будет определение лингвистических переменных и терминов. Для входных данных лингвистические переменные приведены ниже:

  • Тип грязи: {Greasy, Medium, Not Greasy} (жирное, среднее, не жирное)
  • Качество грязи: {Large, Medium, Small} (высокое, среднее, незначительное)

Для вывода лингвистические переменные приведены ниже:

  • Время стирки: {Short, Very Short, Long, Medium, Very Long} (короткий, очень короткий, длинный, средний, очень длинный).

Второй шаг включает в себя построение функций принадлежности. Ниже приведены графики, определяющие функции принадлежности для двух входов. Функции принадлежности для качества грязи:



Функции принадлежности для типа грязи:



Третий шаг включает разработку набора правил для базы знаний. Ниже приведен набор правил с использованием логики IF-THEN (если-тогда):

IF качество грязи Small И Тип грязи Greasy, THEN Время стирки Long.
IF качество грязи Medium И Тип грязи Greasy, THEN Время стирки Long.
IF качество грязи Large и тип грязи Greasy, THEN Время стирки Very Long.
IF качество грязи Small И Тип грязи Medium, THEN Время стирки Medium.
IF качество грязи Medium И Тип грязи Medium, THEN Время стирки Medium.
IF качество грязи Large и тип грязи Medium, THEN Время стирки Medium.
IF качество грязи Small и тип грязи Non-Greasy, THEN Время стирки Very Short.
IF качество грязи Medium И Тип грязи Non-Greasy, THEN Время стирки Medium.
IF качество грязи Large и тип грязи Greasy, THEN Время стирки Very Short.

Фазифаер, который первоначально преобразовал входные данные датчиков в эти лингвистические переменные, теперь применяет вышеуказанные правила для выполнения операций нечеткого набора (например, MIN и MAX) для определения выходных нечетких функций. На основе выходных нечетких множеств разработана функция принадлежности. Последним шагом является этап дефазификации, в котором дефазифаер использует выходные функции принадлежности для определения времени стирки.

Области применения нечеткой логики

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

Преимущества нечеткой логики

  • Системы нечеткой логики являются гибкими и позволяют изменять правила.
  • Такие системы также принимают даже неточную, искаженную и ошибочную информацию.
  • Системы нечеткой логики могут быть легко спроектированы.
  • Поскольку эти системы связаны с человеческими рассуждениями и принятием решений, они полезны при формировании решений в сложных ситуациях в различных типах приложений.

сайт


Теги:



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