Использование нечеткой логики. Fuzzy Logic: Четкие решения нечеткой логики

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

Нечеткая логика – это логическая или управляющая система 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) для определения выходных нечетких функций. На основе выходных нечетких множеств разработана функция принадлежности. Последним шагом является этап дефазификации, в котором дефазифаер использует выходные функции принадлежности для определения времени стирки.

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

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

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

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

сайт


Теги:



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

6 сентября 2017 в возрасте 96 лет умер Лотфи Заде, создатель нечеткой логики.
6 сентября 2017 в компании, которая основана на технологиях нечеткой логики и нейронных сетей, и в которой я пока работаю, начались такие преобразования, которые только в рамках этой самой нечеткой логики и можно как-нибудь описать. И с завтрашнего дня будет расторгнут мой контракт, хотя если с 15 сентября я и становлюсь безработным, то это можно будет оценить только в терминах нечетной логики - на 0,28, на 0,78 или 1,58 - жизнь покажет.
А два года назад, к 50-летию нечеткой логики, Александр Малютин написал заметку на научпоп-сайт «Перельман перезвонит» (nowwow.info). Сайт этот ныне уже умер, и поэтому следует спасти статью. Ведь про нечетную логику написал журналист, который в свое время возглавлял «Известия». Кстати, блогеры-домохозяйки могут не выходить - нечетная логика объясняется на примере стиральной машины. Лучше поучитесь у профи, как надо писать.

К 50-ЛЕТИЮ ОДНОГО ИЗ САМЫХ УДАЧНЫХ МАТЕМАТИЧЕСКИХ ТЕРМИНОВ

Нечеткой логике полвека - в июне 1965 года в журнале Information and Control вышла основополагающая статья «Нечеткие множества» (Fuzzy Sets), которую написал американский математик азербайджанского происхождения Лотфи Заде. Долгих ему лет. Жаль, до юбилея не дожил британский математик танзанийского происхождения Ибрагим Мамдани, который в 1975 году представил первую реальную систему управления с нечеткой логикой - контроллер, следящий за работой парового двигателя. После чего технология стала активно развиваться, найдя применение во многих областях.

Заде 50 лет назад предложил математическое описание живой человеческой логики. В обычной математической логике есть только «истина» (обозначаемая еще числом 1) или «ложь» (0). В нечеткой логике степень истинности высказывания может быть любой - точнее, любым числом от 0 до 1. Красива ли вон та девушка? Ни да, ни нет, а «0,78; что красива».

Непривычно звучит. Как это вообще понять? Для простоты можно считать, что кто-то провел опрос, в котором 78% респондентов назвали девушку красивой, а остальные нет. А может ли быть от таких конструкций практическая польза? Вполне. Допустим, нужно принять решение, отправлять ли девушку на конкурс мисс чего-нибудь (серьезные расходы!), а для этого нужно оценить ее шансы на призовое место. Тогда-то и пригодятся оценки не только красоты, но и других важных для победы и тоже нечетких параметров: остроумия, эрудированности, доброты и т. п. Нужно только понять, откуда брать степени истинности и как оперировать с нечеткими данными. Заде понял. Необходимый для практики математический аппарат он разработал к 1973 году. Мамдани на его основе и сделал свой контроллер.

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

Другое дело, когда у научного понятия есть бытовой омоним. Тогда обывателю кажется, что он понимает, о чем речь, особенно если посмотрел про это кино. Таких «понятных» терминов в математике и физике тоже немало. Черная дыра. Магический квадрат. Горизонт событий. Очарованный кварк. Теорема о двух милиционерах. Ну и конечно - матрица! Кто же не знает, что матрица - это когда Киану Ривз бегает по потолку. И не надо нам рассказывать про какие-то таблицы с числами.

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

Выдающийся советский ядерщик Георгий Флеров говорил: «Объяснять важному начальству научную проблему нужно не так, как правильно, а так, как ему будет понятно. Это ложь во благо». Правильно. Руководство не нужно смущать лекциями про «спонтанные нарушения электрослабой симметрии». Расскажите лучше про «частицу Бога» и «Великую тайну гравитации». Вранья, кстати, в этом особого нет - а инвестиции есть. Не беда, что околонаучные сказки порождают завышенные ожидания и, как следствие, избыточное вливание денег, заканчивающееся разорением. Общая польза в итоге перевешивает. Пузырь доткомов в 2001 году лопнул, но интернет-технологии получили мощнейший импульс.

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

Флеровская «ложь во благо» на примере искусственного интеллекта сработала на 100%. Японское правительство с 1982-го по 1992 год потратило полмиллиарда долларов на разработку «компьютера пятого поколения» с элементами «мышления». Как задумывалось, не получилось. В частности, скис язык логического программирования Prolog, которому в 1980-е прочили первые роли. Ну и ладно. Все ж как с доткомами: роботов в некоторых странах в итоге все равно научились делать отличных.

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

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

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

Отметим, что он выдал два точных параметра, два конкретных числа: степень прозрачности раствора и скорость изменения прозрачности раствора. А вот дальше начинает работать алгоритм Ибрагима Мамдани.

На первом этапе, который называется фаззификацией (введением нечеткости), оба числа превращаются в нечеткие понятия. Допустим, мы ввели три градации загрязнения: «слабое», «среднее» и «сильное». Тогда вместо уровня прозрачности раствора появляются три нечетких суждения о загрязнении, скажем: «0,3; слабое», «0,6; среднее», «0,1; сильное».

Что значат эти цифры? Как и в случае с девушкой, чью нечеткую красоту мы обсуждали в начале текста, их можно считать результатами некоего референдума, на котором 30% граждан проголосовали, что загрязнение при данном уровне прозрачности раствора слабое, 60% - что среднее, 10% - сильное. А что, кто-то этот референдум проводил? Можно считать, что да.

В ходе разработки изделия собрались эксперты по машинной стирке и прикинули, как разложатся голоса «избирателей» в зависимости от уровня прозрачности раствора. А не шарлатанство ли это, спросите вы, математика же точная наука, какие еще эксперты по стирке? Да вот такие. Если вы всерьез хотите решить задачу, то найдете стоящих специалистов, чьи прикидки и оценки будут осмысленными и полезными.

Итак, у нас есть один нечеткий параметр «степень загрязнения», теперь нужен второй: «тип загрязнения». Проводим еще один «референдум». Допустим, он показал, что при такой скорости изменения концентрации раствора, которую нам выдал датчик, загрязнение следует считать, например, «0,2; малой жирности», «0,5; средней жирности», «0,3; большой жирности».

Наступает второй этап алгоритма: применение нечетких правил. Теперь вместе с экспертами мы обсуждаем, каким должно быть время стирки в зависимости от степени и типа загрязнения. Перебирая все возможные варианты, получаем - трижды три - девять правил следующего вида: «если загрязнение сильное и средней жирности, то время стирки - большое». Далее по законам логики (мы их для простоты пропустим) подсчитываем степень истинности для времени стирки. Пусть в результате нечеткое время стирки получилось таким: «0,1; малое», «0.7; среднее», «0,2; большое». Можно приступать к заключительному этапу.

Он называется дефаззификацией, то есть ликвидацией нечеткости - нам ведь необходимо дать машине точную вводную, сколько времени вращать барабан. Подходы есть разные, один из распространенных заключается в вычислении «центра тяжести». Допустим, эксперты сказали, что малое время стирки это 20 минут, среднее - 40 минут, большое - 60 минут. Тогда с учетом «веса» каждого значения получаем итоговый параметр: 20*0,1 + 40*0,7 + 60*0,2 = 42. Одежда будет «достаточно чистой» после 42 минут стирки. Ура.

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

Производители стиральных машин даже принялись рекламировать применение нечеткой логики и прямо на изделиях или в инструкциях писать Fuzzy Logic, Fuzzy Control, Logic Control. Бизнесмены люди прагматичные и не размещают каких попало слов на своем товаре. Так что если вы увидели на машине надпись Fuzzy Logic, это значит: она «продает» товар. Технология помимо своих сугубо потребительских свойств гипнотизирует покупателя еще и названием, мотивируя на расставание с лишней сотней долларов. Уж не знаю, получает ли с этого роялти Лотфи Заде, но это было бы справедливо. Ни один другой раздел математики на бытовой технике не упоминается.

Но вы же заметили, наверное, что по ходу описания работы стиральной машины с нечеткой логикой не встретилось ни одного места, где можно было бы заподозрить, что у машины появился собственный разум. Только инструкции вроде служебных, только решение запрограммированных задач. Машина будет вовремя сливать воду. Но она не будет понимать, что она делает и зачем. В ее микропроцессорную голову никогда не придет мысль перестать стирать и ради прикола устроить в ванной потоп. Если только эта мысль не посетит программиста, который для прикола встроит в машину еще какую-нибудь Funny Logic. Сама же машина до такого додуматься не может.

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

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

У нас, говоря словами Станислава Лема, обязательно получится Усилитель Умения Водить Авто - как уже получился Усилитель Умения Остановить Стирку. А вот Усилитель Интеллекта, появление которого предсказывал великий фантаст, на основе нынешних технологий «искусственного интеллекта», в том числе нечеткой логики, несмотря на все ее изящество и полезность, не получится. Нечеткая логика это всего лишь способ сократить объем вычислений при решении некоторого класса задач. И на том спасибо.

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

Нечеткая логика (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 см может показаться высоким, а кому-то - нет. Однако часто такая субъективность помогает снизить степень неопределенности при реше­нии слабо формализованных задач. Как правило, для задания функций принад­лежности используются типовые зависимости, параметры которых определя­ются путем обработки мнений экспертов. Представление произвольных функ­ций при реализации автоматизированных систем часто затруднено, поэтому в реальных разработках такие зависимости аппроксимируются кусочно-линей­ными функциями.

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

С.Д.Штовба "Введение в теорию нечетких множеств и нечеткую логику"

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

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

1.7.1. Лингвистические переменные

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

Определение 44. Лингвистическая переменная задается пятеркой , где - ; имя переменной; - ; терм-множество, каждый элемент которого (терм) представляется как нечеткое множество на универсальном множестве ; - ; синтаксические правила, часто в виде грамматики, порождающие название термов; - ; семантические правила, задающие функции принадлежности нечетких термов, порожденных синтаксическими правилами .

Пример 9. Рассмотрим лингвистическую переменную с именем "температура в комнате". Тогда оставшуюся четверку можно определить так:

Таблица 4 - Правила расчета функций принадлежности

Графики функций принадлежности термов "холодно", "не очень холодно", "комфортно", "более-менее комфортно", "жарко" и "очень жарко" лингвистической переменной "температура в комнате" показаны на рис. 13.

Рисунок 13 - Лингвистическая переменная "температура в комнате"

1.7.2. Нечеткая истинность

Особое место в нечеткой логике занимает лингвистическая переменная "истинность". В классической логике истинность может принимать только два значения: истинно и ложно. В нечеткой логике истинность "размытая". Нечеткая истинность определяется аксиоматически, причем разные авторы делают это по-разному. Интервал используется как универсальное множество для задания лингвистической переменной "истинность". Обычная, четкая истинность может быть представлена нечеткими множествами-синглтонами. В этом случае четкому понятию истинно будет соответствовать функция принадлежности , а четкому понятию ложно - ; , .

Для задания нечеткой истинности Заде предложил такие функции принадлежности термов "истинно" и "ложно":

;

где - ; параметр, определяющий носители нечетких множеств "истинно" и "ложно". Для нечеткого множества "истинно" носителем будет интервал , а для нечеткого множества ложно" - ; .

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

Рисунок 14 - Лингвистическая переменная "истинность" по Заде

Для задания нечеткой истинности Балдвин предложил такие функции принадлежности нечетких "истинно" и "ложно":

Квантификаторы "более-менее" и "очень" часто применяют к нечеткими множествами "истинно" и "ложно", получая таким образом термы "очень ложно", "более-менее ложно", "более-менее истинно", "очень истинно", "очень, очень истинно", "очень, очень ложно" и т.п. Функции принадлежности новых термов получают, выполняя операции концентрации и растяжения нечетких множеств "истинно" и "ложно". Операция концентрации соответствует возведению функции принадлежности в квадрат, а операция растяжения - возведению в степень ½. Следовательно, функции принадлежности термов "очень, очень ложно", "очень ложно", "более-менее ложно", "более-менее истинно", "истинно", "очень истинно" и "очень, очень истинно" задаются так:

Графики функций принадлежности этих термов показаны на рис. 15.

Рисунок 15 - Лингвистическая переменная "истинность" по Балдвину

1.7.3. Нечеткие логические операции

Вначале кратко напомнить основные положения обычной (булевой) логики. Рассмотрим два утверждения A и B, каждое из которых может быть истинным или ложным, т.е. принимать значения "1" или "0". Для этих двух утверждений всего существует различных логических операций, из которых содержательно интерпретируются лишь пять: И (), ИЛИ (), исключающее ИЛИ (), импликация () и эквивалентность (). Таблицы истинности для этих операций приведены в табл. 5.

Таблица 5 - Таблицы истинности булевой логики

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

Определение 45. Обозначим нечеткие логические переменные через и , а функции принадлежности, задающие истинностные значения этих переменных через и , . Нечеткие логические операции И (), ИЛИ (),
НЕ () и импликация () выполняются по таким правилам:

;

В многозначной логике логические операции могут быть заданы таблицами истинности. В нечеткой логике количество возможных значений истинности может быть бесконечным, следовательно в общем виде табличное представление логических операций невозможно. Однако, в табличной форме можно представить нечеткие логические операции для ограниченного количества истинностных значений, например, для терм-множества {"истинно", "очень истинно", "не истинно", "более-менее ложно", "ложно"}. Для трехзначной логики с нечеткими значениями истинности T - ; "истинно", F - ; "ложно" и T+F - "неизвестно" Л Заде предложил такие лингвистические таблицы истинности:

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

Пример 10. Заданы следующие нечеткие истинностные значения:

Применяя правило из определения 45, найдем нечеткую истинность выражения "почти истинно ИЛИ истинно":

Сравним полученное нечеткое множество с нечетким множеством "более-менее истинно". Они почти равны, значит:

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

неопределенно

неопределенно

неопределенно

неопределенно

неопределенно

неопределенно

неопределенно

неопределенно

очень истинно

очень истинно

более-менее истинно

более-менее истинно

1.7.3. Нечеткая база знаний

Определение 46. Нечеткой базой знаний называется совокупность нечетких правил "Если - то", определяющих взаимосвязь между входами и выходами исследуемого объекта. Обобщенный формат нечетких правил такой:

Если посылка правила, то заключение правила.

Посылка правила или антецедент представляет собой утверждение типа "x есть низкий", где "низкий" - ;это терм (лингвистическое значение), заданный нечетким множеством на универсальном множестве лингвистической переменной x. Квантификаторы "очень", "более-менее", "не", "почти" и т.п. могут использоваться для модификации термов антецедента.

Заключение или следствие правила представляет собой утверждение типа "y есть d", в котором значение выходной переменной (d) может задаваться:

  1. нечетким термом: "y есть высокий";
  2. классом решений: "y есть бронхит"
  3. четкой константой: "y=5";
  4. четкой функцией от входных переменных: "y=5+4*x".

Если значение выходной переменной в правиле задано нечетким множеством, тогда правило может быть представлено нечетким отношением. Для нечеткого правила "Если x есть , то y есть ", нечеткое отношение задается на декартовом произведении , где - ; универсальное множество входной (выходной) переменной. Для расчета нечеткого отношения можно применять нечеткую импликацию и t-норму. При использовании в качестве t-нормы операции нахождения минимума, расчет нечеткого отношения осуществляется так:

Пример 11. Следующая нечеткая база знаний описывает зависимость между возрастом водителя (x) и возможностью дорожно-транспортного происшествия (y):

Если x = Молодой, то y = Высокая;

Если x = Средний, то y = Низкая;

Если x = Очень старый, то y = Высокая.

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

Рисунок 16 - Функции принадлежности термов

Рисунок 17 - Нечеткие отношения, соответствующие правилам базы знаний из примера 11

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

Нечёткая логика – логика, основанная на теории нечётких множеств. Её предметом является построение моделей приближенных рассуждений человека и использование их в компьютерных системах. В нечёткой логике расширена граница оценки с двузначной (Либо 0, либо 1) до неограниченной многозначной оценки (На интервале ).

Нечёткое множество A в полном пространстве X определяется через функцию принадлежности m A (x):

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

В случае нечёткой логики можно создать неограниченное число операций, поэтому в ней не используются базовые операции для записи остальных. Особо важное значение имеют расширения НЕ, И, ИЛИ до нечётких операций. Они называются соответственно – нечёткое отрицание, t-норма и s-норма. Так как число состояний неограниченно, то невозможно описать эти операции с помощью таблицы истинности. Операции поясняются с помощью функций и аксиом, а представляются с помощью графиков.

Аксиоматическое представление нечётких операций:

Нечёткое отрицание

Аксиома N1 сохраняет свойство двузначного НЕ, а N2 – сохраняет правило двойного отрицания. N3 – наиболее существенная: нечёткое отрицание инвертирует последовательность оценок.

Типичная операция нечёткого отрицания – вычитание из 1.

При отрицании значение 0.5 является центральным и обычно x и x θ принимают симметричные значения относительно 0.5.

T-норма.

Аксиома T1 справедлива, как и для чёткого И. T2 и T3 – законы пересечения и объединения. Аксиома T4 является требованием упорядоченности.

Типичной t-нормой является операция min или логическое произведение:

При логическом произведении график строится симметрично относительно плоскости, образуемый наклонными x1 и x2.

S-норма.

Типичной s-нормой является логическая сумма, определяемая операцией max.

Кроме неё существуют алгебраическая сумма, граничная сумма и драстическая сумма:

Как видно из рисунков порядок обратный, нежели в случае t-нормы.

В качестве примеров нечёткого определения можно рассмотреть температуру и работу клапана:

Сходства

Нечёткая логика является обобщением классической чёткой логики. И чёткая и нечёткая логики основаны на множествах и на операциях отношения. Нечёткие операции являются расширением операций чёткой логики.

Различия

В чёткой логике переменные являются полными членными множеств, а в нечёткой – только частичными членами множеств.

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

3. Пример

Сначала мы рассмотрим множество X всех вещественных чисел между 0 и 10, которые мы назовем областью исследования. Теперь, давайте определим подмножество X всех вещественных чисел в амплитуде между 5 и 8.

A =

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

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

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

В этом примере мы хотим описать множество молодых людей. Более формально мы можем обозначить

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

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

B =

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

Более естественный способ описать множество B состоит в том, чтобы ослабить строгое разделение между молодыми и не молодыми. Мы будем делать это, допуская не только (четкое) решение ДА: он/она находится в множестве молодых , или НЕТ: он/она не в множестве молодых , но более гибких фраз подобно: Хорошо, он/она принадлежит немного больше к множеству молодых или НЕТ, он/она почти не принадлежит к множеству молодых.

В нашем первом примере мы кодировали все элементы Области Исследования 0 или 1. Прямой путь обобщить эту концепцию для нечёткого множества состоит в том, чтобы определить большее количество значений между 0 и 1. Фактически, мы определяем бесконечно многие варианты между 0 и 1, а именно единичный интервал I = .

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

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

При таком способе 25-летние люди будут все еще молоды на 50 процентов (0.5). Теперь Вы знаете, что такое нечеткое множество.