Лекция №8. Нечеткая логика
Наверное, самым впечатляющим у человеческого интеллекта является способность принимать правильные решения в условиях неполной и нечеткой информации. Построение моделей приближенных размышлений человека и использование их в компьютерных системах представляет сегодня одну из важнейших проблем науки.
Основы нечеткой логики были заложены в конце 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.
Примеры нечетких множеств
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 (операция деления).
Операции над нечеткими множествами
Наглядное представление операций над нечеткими множествами
Для нечетких множеств можно применить визуальное представление. Рассмотрим прямоугольную систему координат, на оси ординат которой откладываются значение 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, X, A>, где
- a - имя переменной,
- X - универсальное множество (область определения a),
- A - нечеткое множество на X, описывающее ограничение (то есть m A(x)) на значение нечеткой переменной a.
Лингвистической переменной называется набор <b ,T,X,G,M>, где
- b - имя лингвистической переменной;
- Т - множество его значений (терм-множество), представляющие имена нечетких переменных, областью определения, которых является множество X. Множество T называется базовым терм-множеством лингвистической переменной;
- G - синтаксическая процедура, позволяющая оперировать элементами терм-множества T, в частности, генерировать новые термы (значения). Множество TИG(T), где G(T) - множество сгенерированных термов, называется расширенным терм-множеством лингвистической переменной;
- М - семантическая процедура, позволяющая преобразовать новое значение лингвистической переменной, образованной процедурой G, в нечеткую переменную, то есть сформировать соответствующее нечеткое множество.
Во избежание большого количества символов:
- символ b используют как для названия самой переменной, так и для всех его значений;
- для обозначения нечеткого множества и его названия пользуются одним символом, например, терм "молодой", является значением лингвистической переменной b = "возраст", и одновременно нечетким множеством М ("молодой").
Присваивание нескольких значений символам предполагает, что контекст допускает неопределенности.
Пример
Пусть эксперт определяет толщину изделия, с помощью понятия "маленькая толщина", "средняя толщина" и "большая толщина", при этом минимальная толщина равняется 10 мм, а максимальная - 80 мм.
Формализация этого описания может быть проведена с помощью лингвистической переменной <b, T, X, G, M>, где
- b - толщина изделия;
- T - {"маленькая толщина", "средняя толщина", "большая толщина"};
- X - [10, 80];
- G - процедура образования новых термов с помощью связок "и", "или" и модификаторов типа "очень", "не", "слегка" и др. Например, "маленькая или средняя толщина", "очень маленькая толщина" и др.;
- М - процедура задания на X = [10, 80] нечетких подмножеств А1="маленькая толщина", А2 = "средняя толщина", А3="большая толщина", а также нечетких множеств для термов из G(T) соответственно правилам трансляции нечетких связок и модификаторов "и", "или", "не", "очень", "слегка", операции над нечеткими множествами вида: А З C, АИ C, , CON А = А2 , DIL А = А0,5 і ін.
Вместе с рассмотренными выше базовыми значениями лингвистической переменной "толщина" (Т={"маленькая толщина", "средняя толщина", "большая толщина"}) существуют значения, зависящие от области определения Х. В данном случае значения лингвистической переменной "толщина изделия" могут быть определены как "около 20 мм", "около 50 мм", "около 70 мм", то есть в виде нечетких чисел.
Функции принадлежности нечетких множеств:
"маленькая толщина" = А1 , "средняя толщина"= А2, " большая толщина"= А3.
Функция принадлежности:
нечеткое множество "маленькая или средняя толщина" = А1ИА1.
Преимущества нечетких систем
Коротко перечислим преимущества fuzzy-систем по сравнению с другими:
- возможность оперировать нечеткими входными данными: например, непрерывно изменяющиеся во времени значения (динамические задачи), значения, которые невозможно задать однозначно (результаты статистических опросов, рекламные компании и т.д.);
- возможность нечеткой формализации критериев оценки и сравнения: оперирование критериями "большинство", "возможно", преимущественно" и т.д.;
- возможность проведения качественных оценок как входных данных, так и выходных результатов: вы оперируете не только значениями данных, но и их степенью достоверности (не путать с вероятностью!) и ее распределением;
- возможность проведения быстрого моделирования сложных динамических систем и их сравнительный анализ с заданной степенью точности: оперируя принципами поведения системы, описанными fuzzy-методами, вы во-первых, не тратите много времени на выяснение точных значений переменных и составление описывающих уравнений, во-вторых, можете оценить разные варианты выходных значений.
Применение нечетких систем
Что касается отечественного рынка коммерческих систем на основе нечеткой логики, то его формирование началось в середине 1995 года. Популярными являются следующие пакеты:
- CubiCalc 2.0 RTC - одна из мощных коммерческих экспертных систем на основе нечеткой логики, позволяющая создавать собственные прикладные экспертные системы ;
- CubiQuick - дешевая "университетская" версия пакета CubiCalc ;
- RuleMaker - программа автоматического извлечения нечетких правил из входных данных ;
- FuziCalc - электронная таблица с нечеткими полями, позволяющая делать быстрые оценки при неточных данных без накопления погрешности;
- OWL - пакет, содержащий исходные тексты всех известных видов нейронных сетей, нечеткой ассоциативной памяти и т.д.
Основными потребителями нечеткой логики на рынке СНГ являются банкиры и финансисты, а также специалисты в области политического и экономического анализа. Они используют CubiCalc для создания моделей разных экономических, политических, биржевых ситуаций. Что же касается пакета FuziCalc, то он занял свое место на компьютерах больших банкиров и специалистов по чрезвычайным ситуациям - то есть тех, для кого важна скорость проведения расчетов в условиях неполноты и неточности входной информации. Однако можно с уверенностью сказать, что эпоха расцвета прикладного использования нечеткой логики на отечественном рынке еще впереди.
Сегодня элементы нечеткой логики можно найти в десятках промышленных изделий - от систем управления электропоездами и боевыми вертолетами до пылесосов и стиральных машин. Без применения нечеткой логики немыслимы современные ситуационные центры руководителей западных стран, где принимаются ключевые политические решения и моделируются разные кризисные ситуации. Одним из впечатляющих примеров масштабного применения нечеткой логики стало комплексное моделирование систем