К библиотеке

----------------------------------------------------------------------------------------------------

Первоначальный источник : http://www.basegroup.ru/library/analysis/fuzzylogic/math/?

 

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

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

Основы нечеткой логики были заложены в конце 60-х лет в работах известного американского математика Латфи Заде. Исследования такого рода было вызвано возрастающим неудовольствием экспертными системами. Хваленый "искусственный интеллект", который легко справлялся с задачами управления сложными техническими комплексами, был беспомощным при простейших высказываниях повседневной жизни, типа "Если в машине перед тобой силит неопытный водитель - держись от нее подальше". Для создания действительно интеллектуальных систем, способных адекватно взаимодействовать с человеком, был необходим новый математический аппарат, который переводит неоднозначные жизненные утверждения в язык четких и формальных математических формул. Первым серьезным шагом в этом направлении стала теория нечетких множеств, разработанная Заде. Его работа "Fuzzy Sets", опубликованная в 1965 году в журнале "Information and Control", заложила основы моделирования интеллектуальной деятельности человека и стала начальным толчком к развитию новой математической теории. Он же дал и название для новой области науки - "fuzzy logic" (fuzzy - нечеткий, размытый, мягкий).

Чтобы стать классиком, надо немного опередить свое время. Существует легенда о том, каким образом была создана теория "нечетких множеств". Один раз Заде имел длинную дискуссию со своим другом относительно того, чья из жен более привлекательна. Термин "привлекательная" является неопределенным и в результате дискуссии они не смогли прийти к удовлетворительному итогу. Это заставило Загде сформулировать концепцию, которая выражает нечеткие понятия типа "привлекательная" в числовой форме.

Дальнейшие работы профессора Латфи Заде и его последователей заложили фундамент новой теории и создали предпосылки для внедрения методов нечеткого управления в инженерную практику.

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

Свое второе рождение теория нечеткой логики пережила в начале восьмидесятых годов, когда несколько групп исследователей (в-основном в США и Япони) всерьез занялись созданием электронных систем различного применения, использующих нечеткие управляющие алгоритмы. Теоретические основы для этого были заложены в ранних работах Коско и других ученых.

Третий период начался с конца 80-х годов и до сих пор. Этот период характеризуется бумом практического применения теории нечеткой логики в разных сферах науки и техники. До 90-ого года появилось около 40 патентов, относящихся к нечеткой логике (30 - японских). Сорок восемь японских компаний создают лабораторию LIFE (Laboratory for International Fuzzy Engineering), японское правительство финансирует 5-летнюю программу по нечеткой логике, которая включает 19 разных проектов - от систем оценки глобального загрязнения атмосферы и предвидения землетрясений до АСУ заводских цехов. Результатом выполнения этой программы было появление целого ряда новых массовых микрочипов, базирующихся на нечеткой логике. Сегодня их можно найти в стиральных машинах и видеокамерах, цехах заводов и моторных отсеках автомобилей, в системах управления складскими роботами и боевыми вертолетами.
В США развитие нечеткой логики идет по пути создания систем для большого бизнеса и военных. Нечеткая логика применяется при анализе новых рынков, биржевой игре, оценки политических рейтингов, выборе оптимальной ценовой стратегии и т.п. Появились и коммерческие системы массового применения.

Смещение центра исследований нечетких систем в сторону практических применений привело к постановке целого ряда проблем, в частности:

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

Нечеткие множества

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

Нечеткое подмножество отличается от обычного тем, что для элементов x из E нет однозначного ответа "нет" относительно свойства R. В связи с этим, нечеткое подмножество A универсального множества E определяется как множество упорядоченной пари A = {mA(х)/х}, где mA(х) - характеристическая функция принадлежности (или просто функция принадлежности), принимающая значение в некотором упорядоченном множестве M (например, M = [0,1]).

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

Рассмотрим множество X всех чисел от 0 до 10. Определим подмножество A множества X всех действительных чисел от 5 до 8.

A = [5,8]

Покажем функцию принадлежности множества A, эта функция ставит в соответствие число 1 или 0 каждому элементу в X, в зависимости от того, принадлежит данный элемент подмножеству A или нет. Результат представлен на следующем рисунке:

Можно интерпретировать элементы, соответствующие 1, как элементы, находящиеся в множестве A, а элементы, соответствующие 0, как элементы, не находящиеся в множестве A.

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

В данном примере опишем множество молодых людей. Формально можно записать так

B = {множество молодых людей}

Поскольку, вообще, возраст начинается с 0, то нижняя граница этого множества должна быть нулем. Верхнюю границу определить сложнее. Сначала установим верхнюю границу, скажем, равную 20 годам. Таким образом, имеем B как четко ограниченный интервал, буквально: B = [0,20]. Возникает вопрос: почему кто-то в свой двадцатилетний юбилей - молодой, а сразу на следующий день уже не молодой? Очевидно, это структурная проблема, и если передвинуть верхнюю границу в другую точку, то можно задать такой же вопрос.

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

Рассмотрим как с помощью нечеткого множества определить выражение "он еще молодой".

В первом примере мы кодировали все элементы множества с помощью 0 ли 1. Простым способом обобщить данную концепцию является введение значений между 0 и 1. Реально можно даже допустить бесконечное число значений между 0 и 1, в единичном интервале I = [0, 1].

Интерпретация чисел при соотношении всех элементов множества становится теперь сложнее. Конечно, число 1 соответствует элементу, принадлежащему множеству B, а 0 означает, что элемент точно не принадлежит множеству B. Все другие значения определяют степень принадлежности к множеству B.

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

Пусть E = {x1, x2, x3, x4, x5 }, M = [0,1]; A - нечеткое множество, для которого

mA(x1)=0,3; mA(x2)=0; mA(x3)=1; mA(x4)=0,5; mA(x5)=0,9

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

A = {0,3/x1; 0/x2; 1/x3; 0,5/x4; 0,9/x5 } или

A = 0,3/x1 + 0/x2 + 1/x3 + 0,5/x4 + 0,9/x5,

(знак "+" является операцией не сложения, а объединения) или

  x1 x2 x3 x4 x5
A = 0,3 0 1 0,5 0,9

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

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

  • Величина mA(x) называется высотою нечеткого множества A. Нечеткое множество A является нормальным, если его высота равняется 1, то есть верхняя граница ее функции принадлежности равняется 1 ( mA(x)=1). При mA(x)<1 нечеткое множество называется субнормальным.
  • Нечеткое множество является пустым, если "xОE m A(x)=0. Непустое субнормальное множество можно нормализировать по формуле mA(x) :=
  • Нечеткое множество является унимодальным, если mA(x)=1 лишь для одного x из E.
  • Носителем нечеткого множества A является обычное подмножество со свойством mA(x)>0, то есть носитель A = {x/mA(x)>0} " xОE.
  • Элементы xОE, для которых mA(x)=0,5 называются точками перехода множества A.

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

1. Пусть E = {0,1,2,..,10}, M =[0,1]. Нечеткое множество "несколько" можно определить таким образом:

"несколько" = 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,...}. Нечеткое множество "малый" можно определить:

m"малый"(x)=

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

m"молодой"(x) =

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

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

4. Пусть E = {Запорожец, Жигули, Мерседес,....} - множество марок автомобилей, а E' = [0,µ] - универсальное множество "стоимость", тогда на E' мы можем определить нечеткие множества типа: "для небогатых ", "для среднего класса", "престижные", с функциями принадлежности типа:

Имея эти функции и зная цены автомобилей из E в данный момент времени, определим на E' нечеткие множества с этими же названиями.

Так, например, нечеткое множество "для небогатых", заданное на универсальном множестве E = {Запорожец, Жигули, Мерседес,....} выглядит таким образом:

Аналогично можно определить нечеткое множество "скоростные", "средние", "тихоходные" и т.д.

Методы построения функций принадлежности нечетких множеств

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

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

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

    0 1
x1 высота лба низкий широкий
x2 профиль носа курносый горбатый
x3 длина носа короткий длинный
x4 разрез глаз узкий широкий
x5 цвет глаз светлый темный
x6 форма подбородка острый квадратный
x7 толщина губ тонкие толстые
x8 цвет лица темный светлый
x9 овал лица овальное квадратное

Для конкретного лица А эксперт, исходя из приведенной шкалы, задает mA(x)О [0,1], формируя векторную функцию принадлежности { mA(x1), mA(x2),... mA(x9)}.

Косвенные методы определения значений функции принадлежности используются в случаях, когда нет элементарных измеримых свойств для определения нечеткого множества. Как правило, это методы попарных сравнений. Если бы значение функций принадлежности были известны, например, mA(xi) = wi, i=1,2,...,n, тогда попарные сравнения можно представить матрицей отношений A = {aij}, где aij=wi/wj (операция деления).

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

Содержание

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

Говорят, что A содержится в B, если "x ОE mA(x) <mB(x).

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

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

Равенство

A и B равны, если "xОE mA(x) = mB (x).

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

Дополнение

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

"xОE mA(x) = 1 - m B(x).

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

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

Пересечение

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

mAЗB(x) = min( mA(x), mB(x)).

Объединение

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

mAИ B(x) = max(mA(x), m B(x)).

Разность

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

mA-B(x) = mA З (x) = min( mA(x), 1 - m B(x)).

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

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

mA-B(x) = max{[min{m A(x), 1 - mB(x)}];[min{1 - mA(x), mB(x)}] }

Примеры

Пусть:

A = 0,4/ x1 + 0,2/ x2+0/ x3+1/ x4;

B = 0,7/ x1+0,9/ x2+0,1/ x3+1/ x4;

C = 0,1/ x1+1/ x2+0,2/ x3+0,9/ x4.

Здесь:

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

2. A B C.

3. = 0,6/ x1 + 0,8/x2 + 1/x3 + 0/x4;

= 0,3/x1 + 0,1/x2 + 0,9/x3 + 0/x4.

4. AЗB = 0,4/x1 + 0,2/x2 + 0/x3 + 1/x4.

5. АИС = 0,7/x1 + 0,9/x2 + 0,1/x3 + 1/x4.

6. А - С = АЗ = 0,3/x1 + 0,1/x2 + 0/x3 + 0/x4;

В - А = З С = 0,6/x1 + 0,8/x2 + 0,1/x3 + 0/x4.

7. А Е В = 0,6/x1 + 0,8/x2 + 0,1/x3 + 0/x4.

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

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

Пусть A нечеткий интервал между 5 до 8 и B нечеткое число около 4, как показано на рисунке.

Проиллюстрируем нечеткое множество между 5 и 8 И (AND) около 4 (синяя линия).

Нечеткое множество между 5 и 8 ИЛИ (OR) около 4 показано на следующем рисунке (снова синяя линия).

Следующий рисунок иллюстрирует операцию отрицания. Синяя линия - это ОТРИЦАНИЕ нечеткого множества A.

На следующем рисунке заштрихованная часть соответствует нечеткому множеству A и изображает область значений А и всех нечетких множеств, содержащихся в A. Остальные рисунки изображают соответственно , AЗ, AИ.

Свойства операций И і З

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

  • - коммутативность;
  • - ассоциативность;
  • - идемпотентность;
  • - дистрибутивность;
  • AИЖ = A, где Ж - пустое множество, то есть mЖ(x) = 0 "xОE;
  • AЗЖ = Ж;
  • AЗE = A, где E - универсальное множество;
  • AИE = E;
  • - теоремы де Моргана.

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

  • AЗ№ Ж,
  • AИE.

(Что, в частности, проиллюстрировано выше в примере представления нечетких множеств).

  • CON(A) = A2 - операция концентрирования,
  • DIL(A) = A0,5 - операция размывания,

которые используются при работе с лингвистическими переменными.

Умножение на число