Каталог@Mail.ru - каталог ресурсов интернет HitMeter - счетчик посетителей сайта, бесплатная статистика

Нечеткая логика и нечеткие множества - что это такое

На главную Математический раздел Криптография и т.д. Новости

Понятия нечеткого множества и нечеткой логики

Как известно, в простом классическом варианте логики - булевой логике - всё категорично: либо да, либо нет; либо истинно, либо ложно. Промежуточных градаций (например, "скорее истинно", "вряд ли истинно") нет. Аналогично в теории множеств категорично определение принадлежности множеству. Элемент может принадлежать множеству либо не принадлежать ему. Это нередко создаёт проблемы. Например, насколько истинно высказывание "100000 - большое число?". Или - насколько верно, что 100000 можно отнести ко множеству больших чисел? Очевидно, что говорить о строгой принадлежности тут абсурдно. Или насколько истинно высказывание "Московский ЦСКА - сильная футбольная команда?". Если посмотреть с точки зрения логики, а не фанатских чувств, то ясно, что классическая логика опять не поможет.

Нечеткая логика основана на понятии нечеткого множества. Для нечеткого множества A определяется функция принадлежности MA(x), которая определяет степень уверенности того, что x принадлежит множеству A. Интервал значений функции: [0, 1], иногда исключают один или два конца интервала. При M(x0)=0 мы полностью уверены, что x0 НЕ относится ко множеству A, а если M(x0)=1, то мы полностью уверены, что x0 принадлежит множеству. Если значение между 0 и 1, это соответствует ситуации, когда что-то нам мешает делать категоричные выводы. Допустим, A - множество сильных шахматистов. Петров часто играет просто изумительно, лупит весьма серьёзных противников, но в этом году пару раз хотелось его освистать, когда он обидно зевал фигуры. Вполне логично, что для Петрова целесообразно взять степень уверенности где-то между 0,5 и 1, ближе к 0,7, 0,8 или 0,9.

Задание функций принадлежности

Очевидно, нужно различать два принципиально разных случая области определения x - случаи дискретной области и непрерывной области. Для дискретной области нам нужно просто перечислить пары вида (объект, значение функции принадлежности). Например, A - множество сильных национальных футбольных сборных. Мы уверены со степенью 1, что у Германии сильная сборная, со степенью 0,95, что таковая у Голландии, со степенью 0,5, что таковая у России и со степенью 0, что таковая у Андорры. Тогда можно записать так: A = {Андорра/0, Россия/0,5, Голландия/0,95, Германия/1}. Есть и другие нотации записи, нет смысла рассматривать все. При записи полезно упорядочение по возрастанию/убыванию степени уверенности. Возникает вопрос, как мы определяем сами степени. Пара хороших методов для этого - метод парных сравнений и метод множеств уровня. Эти методы - отдельный разговор, не для данной статьи. Впрочем, если оценка ведётся по количественной характеристике, нам часто тупо достаточно эталонного показателя. Допустим, сильно ли играет некоторый спортсмен? Делим набранное количество очков на максимально возможное (последнее и есть эталон). Скажем, из 100 игр Петров выиграл 60 и сыграл вничью 25. За победу - 1 очко, за ничью - 0,5. Петров набрал 60+0,5*25 = 72,5 очка, эталон - 100 очков. Тогда для Петрова степень уверенности в том, что он силён, составит 0,725.

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

А вот японские математики Т.Тэрано, К.Асаи и М.Сугэно в своем труде "Прикладные нечеткие системы" на этот случай предлагают гораздо более хитрую функцию:

Этот хитрый график они получили, взяв 13 различных значений x и задав для них степень принадлежности. Полученные 13 точек соединили прямыми линиями. Вот и всё. Допустим, при x = 200 M = 0,1, а при x=250 M=0,2, тогда между 200 и 250 можно использовать формулу 0,1(x-200)/50 + 0,1 (уравнение прямой по двум точкам). Так, x=240 полагаем M=0,18, а при x=210 полагаем M=0,12.

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

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

Класс взят исходя из того, что сначала по мере роста x наша уверенность всё больше растёт, и с некоторого момента мы больше не сомневаемся, что человек богатый. Теперь нужно уточнить параметр a. Мы считаем, что если у человека хотя бы 10 млн. руб., то он богатый. Следовательно, a = 10 млн. Понятно, что подбор параметров часто субъективен, но это болезнь и многих других методов, пытающихся "гуманитарные" категории переводить в цифры.

2. Метод "контрольных точек" - для нескольких x устанавливаем значение MA(x), далее сводя выбор функции к методам аппроксимации по точкам, например, интерполируя значения между точками (ссылка для не понявших: что такое интерполяция).

Приведём ещё один вариант, как бы мы могли выбрать функцию принадлежности по первому подходу. Допустим, мы считаем: всё относительно, и на каждого найдётся тот, чьё состояние больше (или когда-то станет больше). Тогда при очень больших x функция будет стремиться к 1, но никогда не достигнет её. Под такие рассуждения подходят функции вида 1-eax при положительном параметре a. Нам нужна одна точка, чтобы определить a. Берём x такое, что мы крайне затрудняемся сказать, богат человек или нет (M=0,5). Допустим, для нас это x=0,5 (млн. руб.). Тогда a=2ln(2). Получим вот такой график:

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

Как известно, при определении логической системы нужно определять логические операции (логическое И - конъюнкцию, логическое ИЛИ - дизъюнкцию, логическое НЕ - отрицание и т.д.). Аналогично в теории множеств есть операции пересечения, объединения, взятия дополнения и т.д. В нечёткой логике, строго говоря, существуют разные способы определения операций. Главное, чтобы они удовлетворяли ряду общепринятых ограничений. Например, для определения нечеткого аналога объединения требуется выбрать функцию s(a, b) такую, что: 1) s(0, a)=a; 2) функция монотонная и неубывающая; 3) s(a, b)=s(b, a) - симметрия, или - по-научному - коммутативность; 4) s(a, s(b, c))=s(s(a, b), c) - ассоциативность. Примеры таких функций: max(a, b), min(a+b, 1), a + b - ab. Вот пример применения функции типа "максимум":

copyright © Исканцев Н.В., 2014

К математическому разделу
На главную
X