§4. Нечеткие множества и нечеткая логика
В основе нечеткой логики лежит теория нечетких множеств, изложенная в серии работ Л. Заде в 1965-1973 годах. Математическая теория нечетких множеств (fuzzy sets) и нечеткая логика (fuzzy logic) являются обобщениями классической теории множеств и классической формальной логики. Основной причиной появления новой теории стало наличие нечетких и приближенных рассуждений при описании человеком процессов, систем, объектов.
Л. Заде, формулируя это главное свойство нечетких множеств базировался на трудах предшественников. В начале 1920-х годов польский математик Лукашевич трудился над принципами многозначной математической логики, в которой значениями предикатов могли быть не только «истина» или «ложь». В 1937 г. еще один американский ученый Макс Блэк впервые применил многозначную логику Лукашевича к спискам как множествам объектов и назвал такие множества неопределенными.
Прежде чем нечеткий подход к моделированию сложных систем получил признание во всем мире, прошло не одно десятилетие с момента зарождения теории нечетких множеств.
Нечеткая логика как научное направление развивалась сложно и непросто, не избежала она и обвинений в лженаучности. Даже в 1989 году, когда примеры успешного применения нечеткой логики в обороне, промышленности и бизнесе исчислялись десятками, Национальное научное общество США обсуждало вопрос об исключении материалов по нечетким множествам из институтских учебников.
Первый период развития нечетких систем (конец 60-х–начало 70 гг.) характеризуется развитием теоретического аппарата нечетких множеств. В 1970 г. Беллман совместно с Заде разработал теорию принятия решений в нечетких условиях.
Во втором периоде (70–80-е годы) появляются первые практические результаты в области нечеткого управления сложными техническими системами (парогенератор с нечетким управлением). И. Мамдани в 1975 г. спроектировал первый функционирующий на основе алгебры Заде контроллер, управляющий паровой турбиной. Одновременно стало уделяться внимание вопросам построения экспертных систем, построенных на нечеткой логике, разработке нечетких контроллеров. Нечеткие экспертные системы для поддержки принятия решений находят широкое применение в медицине и экономике.
Наконец, в третьем периоде, который длится с конца 80-х годов и продолжается в настоящее время, появляются пакеты программ для построения нечетких экспертных систем, а области применения нечеткой логики заметно расширяются. Она применяется в автомобильной, аэрокосмической и транспортной промышленности, в области изделий бытовой техники, в сфере финансов, анализа и принятия управленческих решений и многих других. Кроме того, немалую роль в развитии нечеткой логики сыграло доказательство знаменитой теоремы FAT (Fuzzy Approximation Theorem) Б. Коско, в которой утверждалось, что любую математическую систему можно аппроксимировать системой на основе нечеткой логике.
Одним из самых впечатляющих результатов стало создание управляющего микропроцессора на основе нечеткой логики, способного автоматически решать известную «задачу о собаке, догоняющей кота». В 1990 г. Комитет по контролю экспорта США внес нечеткую логику в список критически важных оборонных технологий, не подлежащих экспорту потенциальному противнику.
В бизнесе и финансах нечеткая логика получила признание после того, как в 1988 году экспертная система на основе нечетких правил для прогнозирования финансовых индикаторов единственная предсказала биржевой крах. И количество успешных фаззи-применений в настоящее время исчисляется тысячами.
В Японии это направление переживает настоящий бум. Здесь функционирует специально созданная организация – Laboratory for International Fuzzy Engineering Research. Программой этой организации является создание более близких человеку вычислительных устройств.
Информационные системы, базирующиеся на нечетких множествах и нечеткой логике, называют нечеткими системами.
Достоинства нечетких систем:
функционирование в условиях неопределенности;
оперирование качественными и количественными данными;
использование экспертных знаний в управлении;
построение моделей приближенных рассуждений человека;
устойчивость при действии на систему всевозможных возмущений.
Недостатками нечетких систем являются:
отсутствие стандартной методики конструирования нечетких систем;
невозможность математического анализа нечетких систем существующими методами;
применение нечеткого подхода по сравнению с вероятностным не приводит к повышению точности вычислений.
Теория нечетких множеств
Главное отличие теории нечетких множеств от классической теории четких множеств состоит в том, что для четких множеств результатом вычисления характеристической функции могут быть только два значения – 0 или 1, то для нечетких множеств это количество бесконечно, но ограничено диапазоном от нуля до единицы.
Нечеткое множество
Пусть U - так называемое универсальное множество, из элементов которого образованы все остальные множества, рассматриваемые в данном классе задач, например множество всех целых чисел, множество всех гладких функций и т.д. Характеристическая функция множества - это функция , значения которой указывают, является ли элементом множества A:
В теории нечетких множеств характеристическая функция называется функцией принадлежности, а ее значение - степенью принадлежности элемента x нечеткому множеству A.
Более строго, нечетким множеством A называется совокупность пар
где— функция принадлежности, т.е.
Пусть, например, U={a, b, c, d, e}, . Тогда элемент a не принадлежит множеству A, элемент b принадлежит ему в малой степени, элемент c более или менее принадлежит, элемент d принадлежит в значительной степени, e является элементом множества A.
Пример. Пусть универсум U есть множество действительных чисел. Нечеткое множество A, обозначающее множество чисел, близких к 10, можно задать следующей функцией принадлежности (рис. 19):
, где
Рис. 19. Функция принадлежности
Показатель степени m выбирается в зависимости от степени близости к 10. Например, для описания множества чисел, очень близких к 10, можно положить m=4, для множества чисел, не очень далеких от 10, m=1.
Носителем нечеткого множества A называется четкое множество таких точек в U, для которых величина положительна, т.е.
Ядром нечеткого множества A называется четкое множество таких точек в U, для которых величина = 1.
Множеством уровня (-срезом) нечеткого множества A называется четкое подмножество универсального множества U, определяемое по формуле , где
Функцию принадлежности называют нормальной, если ядро нечеткого множества содержит хотя бы один элемент.
Операции над нечеткими множествами
Для нечетких множеств, как и для обычных, определены основные операции: объединение, пересечение и инверсия/дополнение.
Для определения пересечения и объединения нечетких множеств наибольшей популярностью пользуются следующие три группы операций:
Максиминные
|
|
Алгебраические
|
|
Ограниченные
|
|
Дополнение нечеткого множества во всех трех случаях определяется одинаково:
Пример. Пусть A— нечеткое множество "от 5 до 8"и B— нечеткое множество "около 4", заданные своими функциями принадлежности (рис.20):
Рис. 20. Функции принадлежности нечетких множеств А и B.
Тогда, используя максиминные операции, мы получим следующие множества, изображенные на рис. 21.
Рис. 21. Функции принадлежности нечетких множеств, полученных из А и B.
При максиминном и алгебраическом определении операций не будут выполняться законы противоречия и исключения третьего:
а в случае ограниченных операций не будут выполняться свойства идемпотентности и дистрибутивности:
и
Можно показать, что при любом построении операций объединения и пересечения в теории нечетких множеств приходится отбрасывать либо законы противоречия и исключения третьего, либо законы идемпотентности и дистрибутивности.
Нечеткая логика
Понятие нечеткой и лингвистической переменных используется при описании объектов и явлений с помощью нечетких множеств.
Нечеткая переменная характеризуется тройкой <�, X, A>, где - наименование переменной, X - универсальное множество (область определения ),
A - нечеткое множество на X, описывающее ограничения (т.е. A(x)) на значения нечеткой переменной .
Лингвистической переменной называется набор <� ,T,X,G,M>, где - наименование лингвистической переменной, Т - множество ее значений (терм-множество), представляющих собой наименования нечетких переменных, областью определения каждой из которых является множество X (множество T называется базовым терм-множеством лингвистической переменной), G - синтаксическая процедура, позволяющая оперировать элементами терм-множества T, в частности, генерировать новые термы (значения), М - семантическая процедура, позволяющая превратить каждое новое значение лингвистической переменной, образуемое процедурой G, в нечеткую переменную, т.е. сформировать соответствующее нечеткое множество.
Лингвистическую переменную можно определить как переменную, значениями которой являются не числа, а слова или предложения естественного (или формального) языка. Например, лингвистическая переменная "возраст" может принимать следующие значения: "очень молодой", "молодой", "среднего возраста", "старый", "очень старый" и др. Ясно, что переменная "возраст" будет обычной переменной, если ее значения — точные числа; лингвистической она становится, будучи использованной в нечетких рассуждениях человека.
Каждому значению лингвистической переменной соответствует определенное нечеткое множество со своей функцией принадлежности. Так, лингвистическому значению "молодой" может соответствовать функция принадлежности, изображенная на рис.22.
Рис.22. Функция принадлежности значения «молодой» лингвистической переменной «возраст»
Пример: Пусть эксперт определяет толщину выпускаемого изделия с помощью понятий "малая толщина", "средняя толщина" и "большая толщина", при этом минимальная толщина равна 10 мм, а максимальная - 80 мм (рис. 23).
Формализация такого описания может быть проведена с помощью следующей лингвистической переменной <�, T, X, G, M>, где
- толщина изделия;
T - {"малая толщина", "средняя толщина", "большая толщина"};
X - [10, 80];
G - процедура образования новых термов с помощью связок "и", "или" и модификаторов типа "очень", "не", "слегка" и др. Например: "малая или средняя толщина" (рис. 24), "очень малая толщина" и др.;
М - процедура задания на X = [10, 80] нечетких подмножеств А1="малая толщина", А2 = "средняя толщина", А3="большая толщина", а также нечетких множеств для термов из G(T) в соответствии с правилами трансляции нечетких связок и модификаторов "и", "или", "не", "очень", "слегка" и др.
Наряду с рассмотренными выше базовыми значениями лингвистической переменной "толщина" (Т={"малая толщина", "средняя толщина", "большая толщина"}) возможны значения, зависящие от области определения Х. В данном случае значения лингвистической переменной "толщина изделия" могут быть определены как "около 20 мм", "около 50 мм", "около 70 мм", т.е. в виде нечетких чисел.
Рис. 23. Функции принадлежности нечетких множеств: "малая толщина" = А1 , "средняя толщина"= А2, " большая толщина"= А3 .
Рис. 24. Функция принадлежности: нечеткое множество "малая или средняя толщина" = А1А1
Нечеткими высказываниями будем называть высказывания следующего вида:
Высказывание <� есть '>, где - наименование лингвистической переменной, ' - ее значение, которому соответствует нечеткое множество на универсальном множестве Х.
Например, высказывание <давление большое> предполагает, что лингвистической переменной «давление» придается значение «большое», для которого на универсальном множестве Х переменной «давление» определено соответствующее данному значению «большое» нечеткое множество.
Высказывание <� есть m'>, где m - модификатор, которому соответствуют слова «очень», «более или менее», «много больше» и др. Например: <давление очень большое>, <скорость много больше средней> и др.
Составные высказывания, образованные из высказываний видов 1. и 2. и союзов "И", "ИЛИ", "ЕСЛИ.., ТО...", "ЕСЛИ.., ТО.., ИНАЧЕ".
Основным правилом вывода в традиционной логике является правило modus ponens, согласно которому мы судим об истинности высказывания B по истинности высказываний A и
Например, если A — высказывание "Иван в больнице", B — высказывание "Иван болен", то если истинны высказывания "Иван в больнице" и "Если Иван в больнице, то он болен", то истинно и высказывание "Иван болен".
Во многих привычных рассуждениях, однако, правило modus ponens используется не в точной, а в приближенной форме. Так, обычно мы знаем, что A истинно и что , где есть, в некотором смысле, приближение A. Тогда из мы можем сделать вывод о том, что B приближенно истинно.
Нечеткая импликация выражается в следующем виде:
и
Основой для проведения операции нечеткого логического вывода является база правил, содержащая нечеткие высказывания в форме "Если-то" и функции принадлежности для соответствующих лингвистических термов. При этом должны соблюдаться следующие условия:
существует хотя бы одно правило для каждого лингвистического терма выходной переменной;
для любого терма входной переменной имеется хотя бы одно правило, в котором этот терм используется в качестве предпосылки (левая часть правила).
В противном случае имеет место неполная база нечетких правил.
Для реализации логического вывода необходимо выполнить следующее:
Сопоставить факты с каждым из правил и определить степень соответствия, назначив текущую силой правил.
Для каждого правила, сила которого больше заданного порога вычислить достоверность левой части.
Для каждого правила с помощью оператора импликации вычислить достоверность правой части.
Для многих результатов, полученных по различным правилам, выбрать одно (усредненное)
Пример. Пусть есть некоторая система, например, реактор, описываемая тремя параметрами: температура, давление и расход рабочего вещества. Все показатели измеримы, и множество возможных значений известно. Также из опыта работы с системой известны некоторые правила, связывающие значения этих параметров. Предположим, что сломался датчик, измеряющий значение одного из параметров системы, но знать его показания необходимо хотя бы приблизительно. Тогда встает задача об отыскании этого неизвестного значения (пусть это будет давление) при известных показателях двух других параметров (температуры и расхода) и связи этих величин в виде следующих правил:
если Температура низкая и Расход малый, то Давление низкое;
если Температура средняя, то Давление среднее;
если Температура высокая или Расход большой, то Давление высокое.
Температура, Давление и Расход — лингвистические переменные.
Температура. Универсум (множество возможных значений) — отрезок [0, 150]. Начальное множество термов {Высокая, Средняя, Низкая}. Функции принадлежности термов имеют следующий вид (рис. 25):
Рис.25. Функции принадлежности термов лингвистической переменной Температура
Давление. Универсум — отрезок [0, 100]. Начальное множество термов {Высокое, Среднее, Низкое}. Функции принадлежности термов имеют следующий вид (рис. 26):
Рис.26. Функции принадлежности термов лингвистической переменной Давление
Расход. Универсум — отрезок [0, 8]. Начальное множество термов {Большой, Средний, Малый}. Функции принадлежности термов имеют следующий вид (рис. 27):
Рис.27. Функции принадлежности термов лингвистической переменной Расход
Пусть известны значения Температура - 85 и Расход - 3,5 . Произведем расчет значения давления.
Этап фаззификации (переход от заданных четких значений к степеням уверенности). По заданным значениям входных параметров найдем степени уверенности простейших утверждений:
|