Суть данного подхода, получившего название «нечеткой логики» («Fuzzy Logic»), заключается в следующем: в нем используются так называемые «лингвистические» переменные вместо обычных числовых переменных или в дополнение к ним; простые отношения между переменными описываются с помощью нечетких высказываний; сложные отношения описываются нечеткими алгоритмами.
Прошедшие сорок лет с момента гениальной публикации Л.А. Заде показали, что методология нечеткого моделирования признана и интенсивно развивается во всем мире. По этой проблематике уже опубликованы сотни тысяч работ, в том числе и по элементной базе нечетких компьютеров и контроллеров, инструментальным средствам разработки инженерных методов расчета и разработки нечетких систем управления и др.
На вопрос: «Что такое нечеткая логика?» обычно дается следующий ответ: «Это технология, которая обеспечивает разработку систем с помощью интуиции и инженерных знаний «know-how». Нечеткая логика использует понятия повседневной речи для определения поведения системы».
Студенту необходимо, восстановив знания по математической логике, освоить методику применения операций над нечеткими множествами и нечеткими отношениями, понять смысл использования нечетких продукций и реализации этапов систем нечеткого вывода.
Для манипулирования нечеткими (размытыми, расплывчатыми, неопределенными) переменными Лотфи Заде ввел специальную логику, в которой факты не только истинны или ложны, но и могут быть истинны с оценкой, изменяющейся от 0 (ложный факт) до 1 (абсолютно истинный факт). А именно, говорят, что функция f есть нечеткая мера, если она удовлетворяет следующим свойствам:
- если T - достоверно истинное, а F - достоверно ложное
высказывание, то
f(F) = 0, f(T) = 1;
- для любых недостоверных высказываний A и В
0 < f(A) < 1
и (A - B) - f(A) ≤ F(B).
Это значит, что если кто-то счастлив с оценкой 0, то это очень несчастный человек. Когда же человек счастлив с оценкой 1, то он безусловно счастлив. И если человек счастлив на 0,4, то подразумевается, что на 0,6 он несчастлив (например, посетил музей, но не попал в театр).
В основе алгебры нечетких множеств находятся понятия нечеткого множества и нечетких операций (алгоритмов) над ними.
Нечеткая логика - это логика, в которой высказывание интерпретируется, как имеющее неточное значение, характеризуемое нечетким множеством, т.е. представляется функцией, принимающей значение на отрезке [0, 1].
Нечетким множеством (fuzzy set) является совокупность элементов произвольного характера, про которые не удается определенно заявить относятся они или нет к совокупности элементов данного множества.
Нечеткое множество B - это множество кортежей <x, µB(x)>. Обычно записывают:
B = {<x, µB(x)>}, "xÎ X,
где x - элемент универсального множества (универсума) X;
µB(x) - характеристическая функция (или функция принадлежности).
Эта функция µB (x) каждому элементу xÎ X ставит в соответствие определенное действительное число, принадлежащее интервалу [0, 1]. Когда xÎ X, а µB (x)=1, считают, что элемент x наверняка принадлежит нечеткому множеству B, если же µB (x)=0 - элемент x определенно не принадлежит множеству B.
В общем виде для xi Î X, "i =1, 2,…, n
B = {<x1, µB (x1)>,< x2, µB (x2)>,… ,< xn, µB (xn)>}.
Если для некоторого множества B = {x1, x2, x3, x4, x5, x6} указана мера принадлежности элементов xi Î X, "i =1, 6 множеству B :
µB (x1) = 0, µB (x2) = 1, µB (x3) = 0, µB (x4) = 1, µB (x5) = 1, µB (x6) = 0}, то нечеткое множество представляется так:
B = {<x1, 0>,< x2, 1>,< x3,0>,<x4,1>,< x5,1>,< x6,0>}.
Как задают нечеткие множества?
Например, для множества четных натуральных чисел X={0, 2, 4, 6,…} нечеткое множество B - «нечеткое число, близкое к нулю», можно задать так:
B = {<0, 1.0>, <2, 0.8>, <4, 0.5>, <6, 0.2>}
или B = {(0, 1.0), (2, 0.8), (4, 0.5), (6, 0.2)}.
Другим способом задания нечеткого множества является графическое представление. В этом случае в качестве графика представляется зависимость функции принадлежности µВ (x) от значений самих элементов x нечеткого множества B. Так для указанного множества график функции можно представить соответствующими точками или, если абстрагироваться от физического смысла элементов множества, - в виде кривой.
Возможность выполнения операций над нечеткими множествами подразумевает, что функция принадлежности часто является синонимом нечеткого множества.
Например, пересечением двух нечетких множеств A и B называют третье нечеткое множество C = A Ç B, заданное на том же универсуме X, функция принадлежности которого равна
µ C (x) = min { µA (x), µ B (x)}, "x Î X.
Это такое множество, элементы которого одновременно содержатся в A и в B:
µC (x) = µA (x) Ù µ B (x), "x Î X.
Реализация операции пересечения конечных нечетких множеств A и B выглядит так:
A = {(1, 1.0), (2, 0.9), (3, 0.7), (4, 0.5), (5, 0.3), (6, 0.1)},
B = {(1, 0.2), (2, 0.9), (3, 1.0), (4, 0.9), (5, 0.2), (6, 0)},
C =A Ç B= {(1, 0.2), (2, 0.9), (3, 0.7), (4, 0.5), (5, 0.2)}.
Объединением двух нечетких множеств A и B называется такое третье нечеткое множество функция принадлежности которого определяется так:
µD (x) = max { µA (x), µ B (x)}, "x Î X.
Лингвистическая переменная
Понятие лингвистической переменной используется при описании объектов и явлений с помощью нечетких множеств. Она используется в нечетком управлении для представления входных и выходных переменных управляемой системы.
Лингвистическая переменная определяется как кортеж:
<β, T, X, G, M >,
где β - наименование или название лингвистической переменной;
T - базовое терм-множество лингвистической переменной или множество её значений (термов), каждое из которых представляет собой наименование отдельной нечеткой переменной;
Х - область определения (универсум) нечетких переменных, которые входят в определение лингвистической переменной β;
G - некоторая синтаксическая процедура, которая описывает процесс образования или генерирования из множества Т новых, осмысленных значений для данной лингвистической переменной;
М - семантическая процедура, которая позволяет поставить в соответствие каждому новому значению данной лингвистической переменной, получаемому с помощью процедуры G, некоторое содержание посредством формирования соответствующего нечеткого множества.
Пример. В качестве примера можно рассмотреть ситуацию со скоростью движения автомобильного транспорта в пределах городской черты. Хотя правила дорожного движения регламентируют величину этой скорости, однако многие автолюбители предпочитают давать собственную субъективную оценку своей скорости движения. При этом используются такие определения, как «малая скорость», «средняя скорость» и «высокая скорость» движения. Очевидно, что подобная практическая оценка скорости может относиться к диапазону скоростей в пределах интервала от 0 км/ч до некоторой величины, определяемой личными предпочтениями того или иного водителя. Пусть в нашем примере из соображений удобства это будет величина 100 км/ч.
Формализация субъективной оценки скорости движения может быть выполнена с помощью следующей лингвистической переменной < β1, T, X, G, M >,
где β1 - скорость движения автомобиля;
T = {«малая скорость», «средняя скорость», «высокая скорость»}; X = [0, 100];
G - процедура образования новых термов с помощью логических связок «И», «ИЛИ» и модификаторов типа «очень», «НЕ», «слегка» и др. Например: «малая или средняя скорость», «очень высокая скорость» и др;
M - процедура задания на Х = [0, 100] нечетких переменных α1 = «малая скорость», α2 = «средняя скорость», α3 = «высокая скорость», а также соответствующих нечетких множеств для термов из G(T) в соответствии с правилами трансляции нечетких связок и модификаторов «И», «ИЛИ», «НЕ», «очень», «слегка» и других операций над нечеткими множествами вида: АÇВ, АÈВ, ⌐А и т.п.
Для рассматриваемого примера нечеткие множества А1, А2, А3, соответствующие нечетким переменным: α1 = «малая скорость», α2 = «средняя скорость», α3 = «высокая скорость», удобно задать графически с помощью кусочно-линейной функции принадлежности.
Системы нечеткого вывода
Процесс нечеткого вывода представляет собой некоторый алгоритм получения нечетких заключений на основе нечетких условий или предпосылок с использованием понятий нечеткой логики.
Системы нечеткого вывода предназначены для реализации процесса нечеткого вывода и служат базисом всей современной нечеткой логики. Системы нечеткого вывода позволяют решать задачи автоматического управления, классификации данных, распознавания образов, принятия решений, машинного обучения и многие другие.