С.Д.ШТОВБА ВВЕДЕНИЕ В ТЕОРИЮ НЕЧЕТКИХ МНОЖЕСТВ И НЕЧЕТКУЮ ЛОГИКУ Введение 1.1 Основные термины и определения 1.2 Свойства нечетких множеств 1.3 Операции над нечеткими множеств 1.4 Нечеткая арифметика 1.5 Нечеткие отношения и их свойства 1.6 Операции над нечеткими отношениями 1.7 Нечеткая логика 2. Структура Fuzzy Logic Toolbox 3. Построение нечетких систем в диалоговом режиме с помощью модуля Fuzzy 3.1. Проектирование систем типа Мамдани 3.2. Проектирование систем типа Сугэно 4 Прикладные нечеткие системы 4.1 Нечеткая система прогнозирования результатов футбольных матчей 4.2 Нечеткая экспертная система оценки технического состояния оборудования возбуждения турбогенераторов АЭС 4.3 FALEFC пакет быстрой настройки весов правил нечеткого классификатора 4.4 Обзор применения теории нечетких множеств 4.5 Нечеткое моделирование конкурентоспособности марочного товара с помощью Fuzzy Logic Toolbox 4.6 Проектирование нечётких иерархических систем с помощью Fuzzy Logic Toolbox 4.7 Нечеткий вывод при нечетких исходных данных. Расширение Fuzzy Logic Toolbox. 4.9 Нечеткая модель безошибочности ввода текста оператором 4.10 Нечеткая модель обнаружения зрательного сигнала оператором 4.11 Нечеткий классификатор вин 5. Структура данных системы нечеткого логического вывода 6. Модели функций принадлежности 7. Руководство пользователя 7.1 FIS-редактор 7.2 Редактор функций принадлежности 7.3 Редактор базы знаний 7.4 Визуализация нечеткого логического вывода 7.5 Визуализация поверхности “входы-выход” 7.6 ANFIS-редактор 7.7 Findcluster 8. Настройка нечетких моделей типа Мамдани 9. Синтез нечетких моделей с помощью субтрактивной кластеризации и ANFIS-алгоритма 10. Классификация на основе нечеткого логического вывода в MATLAB 11. Настройка моделей классификации на основе нечеткого логического вывода в MATLAB 12. Нечеткая кластеризация 12.1 Кластеризация при заданном числе кластеров 13. Построения функций принадлежности на основе экспертной информации 13.1 Метод статистической обработки экспертной информации 13.2 Построение функций принадлежности на основе парных сравнений 13.3 Построение функций принадлежности кластеризацией экспериментальных данных 14 Принятие решений в нечетких условиях по схеме Беллмана Заде 14.1 Нечеткие цели, ограничения и решения 14.2 Нечеткий многокритериальный анализ вариантов 14.3 Нечеткий многокритериальный анализ инновационных проектов 15. Идентификация зависимостей с помощью нечеткой базы знаний Сугено 16. Влияние методов дефаззификации на скорость обучения нечетких моделей типа мамдани 17. Получение нечетких чисел по результатам нечеткого вывода 18. Cохранение прозрачности нечеткой модели Мамдани при обучении по экспериментальным данным Литература Введение Теория нечетких множеств (fuzzy sets theory) ведет свое начало с 1965г., когда профессор Лотфи Заде (Lotfi Zadeh) из университета Беркли опубликовал основополагающую работу “Fuzzy Sets” в журнале “Information and Control” [1]. Прилагательное "fuzzy", которое можно перевести на русский как нечеткий, размытый, ворсистый, пушистый, введено в название новой теории с целью дистанцирования от традиционной четкой математики и аристотелевой логики, оперирующих с четкими понятиями: “принадлежит - не принадлежит”, “истина ложь”. Концепция нечеткого множества зародилась у Заде “как неудовлетворенность математическими методами классической теории систем, которая вынуждала добиваться искусственной точности, неуместной во многих системах реального мира, особенно в так называемых гуманистических системах, включающих людей” [2]. Началом практического применения теории нечетких множеств можно считать 1975г., когда Мамдани и Ассилиан (Mamdani and Assilian) построили первый нечеткий контролер для управления простым паровым двигателем. В 1982 Холмблад и Остергад (Holmblad and Osregaad) разработали первый промышленный нечеткий контроллер, который был внедрен в управление процессом обжига цемента на заводе в Дании. Успех первого промышленного контролера, основанного на нечетких лингвистических правилах “Если - то” привел к всплеску интереса к теории нечетких множеств среди математиков и инженеров. Несколько позже Бартоломеем Коско (Bart Kosko) была доказана теорема о нечеткой аппроксимации (Fuzzy Approximation Theorem), согласно которой любая математическая система может быть аппроксимирована системой, основанной на нечеткой логике. Другими словами, с помощью естественно-языковых высказываний-правил “Если - то”, с последующей их формализацией средствами теории нечетких множеств, можно сколько угодно точно отразить произвольную взаимосвязь “входы-выход” без использования сложного аппарата дифференциального и интегрального исчислений, традиционно применяемого в управлении и идентификации. Системы, основанные на нечетких множествах разработаны и успешно внедрены в таких областях, как: управление технологическими процессами, управление транспортом, медицинская диагностика, техническая диагностика, финансовый менеджмент, биржевое прогнозирование, распознавание образов. Спектр приложений очень широкий - от видеокамер и бытовых стиральных машин до средств наведения ракет ПВО и управления боевыми вертолетами. Практический опыт разработки систем нечеткого логического вывода свидетельствует, что сроки и стоимость их проектирования значительно меньше, чем при использовании традиционного математического аппарата, при этом обеспечивается требуемый уровень робастности и прозрачности моделей. Ниже излагаются основные термины и понятия теории нечетких множеств, необходимые для использования Fuzzy Logic Toolbox. Материал раздела базируется на результатах работ [1-6]. В разделе приведена также терминология на английском языке с целью облегчения работы пользователям с англоязычным пакетом прикладных программ Fuzzy Logic Toolbox. 1.1 Основные термины и определения Понятие нечеткого множества - эта попытка математической формализации нечеткой информации для построения математических моделей. В основе этого понятия лежит представление о том, что составляющие данное множество элементы, обладающие общим свойством, могут обладать этим свойством в различной степени и, следовательно принадлежать к данному множеству с различной степенью. При таком подходе высказывания типа “такой-то элемент принадлежит данному множеству” теряют смысл, поскольку необходимо указать “насколько сильно” или с какой степенью конкретный элемент удовлетворяет свойствам данного множества. Определение 1. Нечетким множеством (fuzzy set) на универсальном множестве U называется совокупность пар ( ), где - степень принадлежности элемента к нечеткому множеству . Степень принадлежности - это число из диапазона [0, 1]. Чем выше степень принадлежности, тем в большей мерой элемент универсального множества соответствует свойствам нечеткого множества. Определение 2. Функцией принадлежности (membership function) называется функция, которая позволяет вычислить степень принадлежности произвольного элемента универсального множества к нечеткому множеству. Если универсальное множество состоит из конечного количества элементов , тогда нечеткое множество записывается в виде . В случае непрерывного множества U используют такое обозначение Примечание: знаки и в этих формулах означают совокупность пар и u. Пример 1. Представить в виде нечеткого множества понятие “мужчина среднего роста”. Решение: = 0/155+0.1/160 + 0.3/165 + 0.8/170 +1/175 +1/180 + 0.5/185 +0/180. Определение 3. Лингвистической переменной (linguistic variable) называется переменная, значениями которой могут быть слова или словосочетания некоторого естественного или искусственного языка. Определение 4. Терм–множеством (term set) называется множество всех возможных значений лингвистической переменной. Определение 5. Термом (term) называется любой элемент терм–множества. В теории нечетких множеств терм формализуется нечетким множеством с помощью функции принадлежности. Пример 2. Рассмотрим переменную “скорость автомобиля”, которая оценивается по шкале “низкая", "средняя", "высокая” и “очень высокая". В этом примере лингвистической переменной является “скорость автомобиля”, термами - лингвистические оценки “низкая", "средняя", "высокая” и “очень высокая”, которые и составляют терм–множество. Определение 6. Дефаззификацией (defuzzification) называется процедура преобразования нечеткого множества в четкое число. В теории нечетких множеств процедура дефаззификации аналогична нахождения характеристик положения (математического ожидания, моды, медианы) случайных величин в теории вероятности. Простейшим способом выполнения процедуры дефаззификации является выбор четкого числа, соответствующего максимуму функции принадлежности. Однако пригодность этого способа ограничивается лишь одноэкстремальными функциями принадлежности. Для многоэкстремальных функций принадлежности в Fuzzy Logic Toolbox запрограммированы такие методы дефаззификации: Centroid - центр тяжести; Bisector - медиана; LOM (Largest Of Maximums) - наибольший из максимумов; SOM (Smallest Of Maximums) - наименьший из максимумов; Mom (Mean Of Maximums) - центр максимумов. Определение 7. Дефаззификация нечеткого множества по методу центра тяжести осуществляется по формуле . Физическим аналогом этой формулы является нахождение центра тяжести плоской фигуры, ограниченной осями координат и графиком функции принадлежности нечеткого множества. В случае дискретного универсального множества дефаззификация нечеткого множества тяжести осуществляется по формуле по методу центра . Определение 8. Дефаззификация нечеткого множества по методу медианы состоит в нахождении такого числа a, что . Геометрической интерпретацией метода медианы является нахождения такой точки на оси абцисс, что перпендикуляр, восстановленный в этой точке, делит площадь под кривой функции принадлежности на две равные части. В случае дискретного универсального множества дефаззификация нечеткого множества по методу медианы осуществляется по формуле . Определение 9. Дефаззификация нечеткого множества центра максимумов осуществляется по формуле: по методу , где G – множество всех элементов из интервала , имеющих максимальную степень принадлежности нечеткому множеству . В методе центра максимумов находится среднее арифметическое элементов универсального множества, имеющих максимальные степени принадлежностей. Если множество таких элементов конечно, то формула из определения 9 упрощается к следующему виду: , где - мощность множества G. В дискретном случае дефаззификация по методам наибольшего из максимумов и наименьшего из максимумов осуществляется по формулам и , соответственно. Из последних трех формулы видно, что если функция принадлежности имеет только один максимум, то его координата и является четким аналогом нечеткого множества. Пример 3. Провести дефаззификацию нечеткого множества “мужчина среднего роста” из примера 1 по методу центра тяжести. Решение: Применяя формулу из определения 7, получаем: Определение 10. Нечеткой базой знаний (fuzzy knowledge base) о влиянии факторов на значение параметра y называется совокупность логических высказываний типа: ЕСЛИ ИЛИ … ИЛИ , ТО , для всех где - нечеткий терм, которым оценивается переменная номером jp ( , в строчке с ); - количество строчек-конъюнкций, в которых выход y оценивается нечетким термом , ; - количество термов, используемых для лингвистической оценки выходного параметра y. С помощью операций (ИЛИ) и (И) нечеткую базу знаний из определения 10 перепишем в более компактном виде: (1) Определение 11. Нечетким логическим выводом (fuzzy logic inference) называется апроксимация зависимости с помощью нечеткой базы знаний и операций над нечеткими множествами. Пусть , - функция принадлежности входа , т. е. нечеткому терму , нечеткому терму , , ; - функция принадлежности выхода y , т. е. . Тогда степень принадлежности конкретного входного вектора нечетким термам из базы знаний (1) определяется следующей системой нечетких логических уравнений: , (2) где - операция максимума (минимума). Нечеткое множество , соответствующее входному вектору следующим образом: , , определяется (3) где - операция объединения нечетких множеств. Четкое значение выхода y, соответствующее входному вектору определяется в результате деффаззификации нечеткого . 1.2. Свойства нечетких множеств Определение 12. Высотой нечеткого множества называется верхняя граница его функции принадлежности: . Для дискретного универсального множества супремум становится максимумом, а значит высотой нечеткого множества будет максимум степеней принадлежности его элементов Определение 13. Нечеткое множество называется нормальным, если его высота равна единице. Нечеткие множества не являющиеся нормальными называются субнормальными. Нормализация - преобразование субнормального нечеткого множества в нормальное определяется так: . В качестве примера на рис. 1 показана нормализация нечеткого множества с функцией принадлежности . Рисунок 1 - Нормализация нечеткого множества Определение 14. Носителем нечеткого множества называется четкое подмножество универсального множества , элементы которого имеют ненулевые степени принадлежности: . Определение 15. Нечеткое множество называется пустым, если его носитель является пустым множеством. Определение 16. Ядром нечеткого множества называется четкое подмножество универсального множества , элементы которого имеют степени принадлежности равные единице: . Ядро субнормального нечеткого множества пустое. Определение 17. -сечением (или множеством -уровня) нечеткого множества называется четкое подмножество универсального множества , элементы которого имеют степени принадлежности большие или равные : , . Значение называют -уровнем. Носитель (ядро) можно рассматривать как сечение нечеткого множества на нулевом (единичном) -уровне. Рис. 2 иллюстрирует определения носителя, ядра, -сечения и -уровня нечеткого множества. Рисунок 2 - Ядро, носитель и -сечение нечеткого множества Определение 18. Нечеткое множество называется выпуклым если: , , . Альтернативное определение: нечеткое множество будет выпуклым, если все его -сечения - выпуклые множества. На рис. 3 приведены примеры выпуклого и невыпуклого нечетких множеств. Рисунок 3 - К определению выпуклого нечеткого множества Определение 19. Нечеткие множества . 1.3. Операции над нечеткими множеств и равны ( ) если Определения нечетких теоретико-множественных операций объединения, пересечения и дополнения могут быть обобщены из обычной теории множеств. В отличие от обычных множеств, в теории нечетких множеств степень принадлежности не ограничена лишь бинарной значениями 0 и 1 - она может принимать значения из интервала [0, 1]. Поэтому, нечеткие теоретикомножественные операции могут быть определены по-разному. Ясно, что выполнение нечетких операций объединения, пересечения и дополнения над не нечеткими множествами должно дать такие же результаты, как и при использование обычных канторовских теоретико-множественных операций. Ниже приведены определения нечетких теоретико-множественных операций, предложенных Л. Заде. Определение 20. Дополнением нечеткого множества заданного на называется нечеткое множество с функцией принадлежности для всех . На рис. 4 приведен пример выполнения операции нечеткого дополнения. Рисунок 4 - Дополнение нечеткого множества Определение 21. Пересечением нечетких множеств и заданных на называется нечеткое множество с функцией принадлежности для всех . Операция нахождения минимума также обозначается знаком , т.е. . Определение 22. Объединением нечетких множеств и заданных на называется нечеткое множество с функцией принадлежности для всех . Операция нахождения максимума также обозначается знаком , т.е. . Обобщенные определения операций нечеткого пересечения и объединения треугольной нормы (t-нормы) и треугольной конормы (t-конормы или s-нормы) приведены ниже. Определение 23. Треугольной нормой (t-нормой) называется бинарная операция на единичном интервале , удовлетворяющая следующим аксиомам для любых : 1. (граничное условие); 2. если (монотонность); 3. (коммутативность); 4. (ассоциативность). Наиболее часто используются такие t-нормы: пересечение по Заде ; вероятностное пересечение ; пересечение по Лукасевичу . Примеры выполнения пересечения нечетких множеств с использованием этих t-норм показаны на рис. 5. Рисунок 5 - Пересечение нечетких множеств с использованием различных tнорм Определение 25. Треугольной конормой (s-нормой) называется бинарная операция на единичном интервале , удовлетворяющая следующим аксиомам для любых : 1. (граничное условие); 2. если (монотонность); 3. (коммутативность); 4. (ассоциативность). Наиболее часто используются такие s-нормы: объединение по Заде ; вероятностное объединение ; объединение по Лукасевичу . Примеры выполнения объединения нечетких множеств с использованием этих s-норм показаны на рис. 6. Наиболее известные треугольные нормы приведены в табл. 1. Рисунок 6 - Объединение нечетких множеств с использованием различных sнорм Таблица 1 Примеры треугольных норм Парам етр - 1.4. Нечеткая арифметика В этом разделе рассматриваются способы расчета значений четких алгебраических функций от нечетких аргументов. Материал основывается на понятиях нечеткого числа и принципа нечеткого обобщения. В конце раздела приводятся правила выполнения арифметических операций над нечеткими числами. Определение 25. Нечетким числом называется выпуклое нормальное нечеткое множество с кусочно-непрерывной функцией принадлежности, заданное на множестве действительных чисел. Например, нечеткое число "около 10" можно задать следующей функцией принадлежности: . Определение 26. Нечеткое число называется положительным (отрицательным) если , ( ). Определение 27. Принцип обобщения Заде. Если - функция от n независимых переменных и аргументы заданы нечеткими числами , соответственно, то значением функции называется нечеткое число с функцией принадлежности: . Принцип обобщения позволяет найти функцию принадлежности нечеткого числа, соответствующего значения четкой функции от нечетких аргументов. Компьютерно-ориентированная реализация принципа нечеткого обобщения осуществляется по следующему алгоритму: Шаг 1. Зафиксировать значение . Шаг 2. Найти все n-ки , и , . Шаг 3. Степень принадлежности элемента , удовлетворяющие условиям нечеткому числу вычислить по формуле: . Шаг 4. Проверить условие "Взяты все элементы y?". Если "да", то перейти к шагу 5. Иначе зафиксировать новое значение и перейти к шагу 2. Шаг 5. Конец. Приведенный алгоритм основан на представлении нечеткого числа на дискретном универсальном множестве, т.е. . Обычно исходные данные , задаются кусочно-непрерывными функциями принадлежности: . Для вычисления значений функции аргументы , дискретизируют, т.е. представляют в виде . Число точек выбирают так, чтобы обеспечить требуемую точность вычислений. На выходе этого алгоритма получается нечеткое множество, также заданное на дискретном универсальном множестве. Результирующую кусочно-непрерывную функцию принадлежности нечеткого числа получают как верхнюю огибающую точек . Пример 4. Нечеткие числа и заданы следующими трапециевидными функциями принадлежности: и . Необходимо найти нечеткое число с использованием принципа обобщения из определения 27. Зададим нечеткие аргументы на четырех точках (дискретах): {1, 2, 3 4} для и {2, 3, 4 8} для . Тогда: и . Процесс выполнения умножения над нечеткими числами сведен в табл. 2. Каждый столбец таблицы соответствует одной итерации алгоритма нечеткого обобщения. Результирующее нечеткое множество задано первой и последней строчками таблицы. В первой строке записаны элементы универсального множества, а в последней строке степени их принадлежности к значению выражения . В результате получаем: . Предположим, что тип функция принадлежности будет таким же, как и аргументов и , т. е. трапециевидной. В этом случае функция принадлежности задается выражением: . На рис. 7 показаны результаты выполнения операции с представлением нечетких множителей на 4-х дискретах. Красными звездочками показаны элементы нечеткого множества из табл. 2, а тонкой красной линией - трапециевидная функция принадлежности. Исследуем, как измениться результат нечеткого обобщения при увеличении числа дискрет, на которых задаются аргументы. Нечеткое число при задании аргументов и на 30 дискретах приведено на рис. 7. Синими точками показаны элементы нечеткого множества , найденные по принципу обобщения, а зеленой линией - верхняя огибающая этих точек - функция принадлежности . Функция принадлежности результата имеет форму криволинейной трапеции, немного выгнутой влево. Таблица 2 - К примеру 4 2 3 4 6 1 1 1 2 2 3 1 2 2 3 4 2 3 2 8 0 0 0 1 1 1 0 1 1 0 1 0 0 1 0 1 0 0 0 1 8 9 12 4 3 3 4 2 4 2 3 4 3 0 1 0 1 1 0 0 1 0 1 0 0 1 0 1 16 24 32 4 3 4 8 4 8 8 0 1 0 1 0 1 1 0 1 0 0 1 1 0 0 0 0 0 1 1 0 0 0 Рисунок 7 - К примеру 4 Применение принципа обобщения Заде сопряжено с двумя трудностями: 1. большой объем вычислений количество элементов результирующего нечеткого множества, которые необходио обработать, равно , где - количество точек, на которых задан i-й нечеткий аргумент, ; 2. необходимость построения верхней огибающей элементов результирующего нечеткого множества. Более практичным является применение -уровневого принципа обобщения. В этом случае нечеткие числа представляются в виде разложений по -уровневым множествам: , где - минимальное (максимальное) значение на -уровне. Определение 28. -уровневый принцип обобщения. Если функция от n независимых переменных и аргументы заданы нечеткими числами , число , то значением функции , где называется нечеткое и . Применение -уровневого принципа обобщения сводится к решению для каждого -уровня следующей задачи оптимизации: найти максимальное и минимальное значения функции при условии, что аргументы могут принимать значения из соответствующих -уровневых множеств. Количество уровней выбирают так, чтобы обеспечить необходимую точность вычислений. Пример 5. Решить задачу из примера 4 применяя -уровневый принцип обобщения. Будем использовать 2 следующих -уровня:{0, 1}. Тогда нечеткие аргументы задаються так: и . По -уровневому принципу обобщения получаем: . На рис. 8 показан результат умножения двух нечетких чисел : красными горизонтальными линиями изображены сечения, а тонкой красной линией - кусочно-линейная аппроксимация функции принадлежности нечеткого числа . Исследуем, как измениться результат нечеткого обобщения при увеличении числа -уровней. Нечеткое число при задании аргументов и на 41 -уровне показано на рис. 8. Синими горизонтальными линиями изображены -сечения нечеткого множества, а жирной синей линией -кусочно-линейная аппроксимация функции принадлежности нечеткого числа для 41 -уровня. Сравнивая рис. 7 и 8, видим, что результаты обобщения по определениям 27 и 28 близки. Рисунок 8 - К примеру 5 Применение -уровневого принципа обобщения позволяет получить правила выполнения арифметических операций над нечеткими числами. Правила выполнения арифметических операций для положительных нечетких чисел приведены в табл. 3. Эти правила необходимо применять для каждого -уровня. Таблица 3 Правила выполнения арифметических операций для положительных нечетких чисел (для каждого -уровня) Арифметическая операция 1.5. Нечеткие отношения и их свойства Определение 30. Нечетким отношением на множествах называется нечеткое подмножество декартова произведения . Степень принадлежности показывает степень выполнения отношения между элементами , , . В дальнейшем будем рассматривать только бинарные нечеткие отношения, которые задаются на декартовом произведении двух множеств. Обозначим эти множества через и . Тогда задание бинарного нечеткого отношения на состоит в указании всех троек , где , , или, что тоже самое, . Пример 5. Задать нечеткое отношение (" приблизительно равно "). Пусть . Тогда нечеткое отношение удобно задавать матрицей вида: . Для непрерывных множеств и нечеткое отношение можно задать следующей функцией принадлежности: . Нечеткие отношения на дискретных и непрерывных множествах изображены на рис. 10. Пример 6. Задать нечеткое отношение " намного меньше, чем ". Пусть . Тогда нечеткое отношение можно задать матрицей вида: . Для непрерывных множеств и нечеткое отношение " намного меньше, чем " можно определить такой функцией принадлежности: . Нечеткие отношения " намного меньше, чем " на дискретных и непрерывных множествах изображены на рис. 11. Как видно из примеров, нечеткие отношения являются более гибкими по сравнению с традиционными отношениями. Они позволяют задать не только сам факт выполнения отношения, но и указывать степень его выполнения, что является очень важным для многих практических задач. Рисунок10 - Нечеткое отношение " приблизительно равно " Рисунок11 - Нечеткое отношение " намного меньше, чем " Пример 7. Задать отношение "схожий менталитет" для следующих национальностей {Украинцы(У), Чехи (Ч), Австрийцы (А), Немцы (Н)}. Использование обычного, не нечеткого отношения позволяет выделить только одну пару наций со схожими менталитетами -немцев и австрийцев. Этим отношением не отражаться тот факт, что по менталитету чехи более близки к немцам, чем украинцы. Нечеткое отношение позволяет легкопредставить такую информацию: . Определение 31. Носителем нечеткого отношения на множествах и называется подмножество декартова произведения вида: . Носитель нечеткого отношения можно рассматривать как обычное отношение, связывающего все пары , для которых степень выполнения нечеткого отношения не равна нулю. Более полезным является использование сечений нечеткого отношения, определения которых аналогично определениям множеств -уровня (см. раздел1.2). Определение 32. -сечением нечеткого отношения на называется обычное отношение, связывающее все пары , для которых степень выполнения нечеткого отношения не меньше : . Определение 33. Нечеткое отношение на называется рефлексивным, если для любого выполняется равенство .В случае конечного множества все элементы главной диагонали матрицы равны 1. Примером рефлексивного нечеткого отношения может быть отношение "приблизительно равны". Определение 34. Нечеткое отношение на называется антирефлексивным, если для любого выполняется равенство .В случае конечного множества все элементы главной диагонали матрицы равны 0.Примером антирефлексивного нечеткого отношения может быть отношение"значительно больше". Определение 35. Нечеткое отношение на называется симметричным, если для любой пары выполняется равенство .Матрица симметричного нечеткого отношения, заданного на конечном множестве, симметричная. Определение 36. Нечеткое отношение на называется асимметричным, если выражение справедливо для любой пары .Примером асимметричного нечеткого отношения может служить отношение "намного больше". Определение 37. Нечеткое отношения и на называется обратными, если для любой пары выполняется равенство .Примером обратных нечетких отношений может служить пара "намного больше" -"намного меньше". 1.6. Операции над нечеткими отношениями Операции над нечеткими отношениями аналогичны соответствующим операциям для обычных отношений. Однако, как и для нечетких теоретико- множественных операций, они могут выполняться различными способами. Ниже приводятся определения операций над нечеткими отношениями с использованием треугольных нормы и конормы (см. раздел 1.3). Определение 38. Пересечением нечетких отношений и , заданных на , называется нечеткое отношение с функцией принадлежности , , где - t-норма. Определение 39. Объединением нечетких отношений и , заданных на , называется нечеткое отношение с функцией принадлежности , , где - s-норма (t-конорма). Пересечение и объединение нечетких отношений " приблизительно равно " и" намного меньше, чем "из примеров 5 и 6 показаны на рис. 12. В качестве tнормы и s-нормыиспользовались операции нахождения минимума и максимума, соответственно. Рисунок 12 -Операции над нечеткими отношениями из примеров 5 и 6 Определение 40. Дополнением нечеткого отношения , заданного на , называется нечеткое отношение с функцией принадлежности , . Определение 41. Максминной композицией (произведением) нечетких отношений и , заданных на и , называется нечеткое отношение на множестве с функцией принадлежности , , , . В случае конечных множеств матрица нечеткого отношения получается как максминное произведение матриц и . Эта операция выполняется как обычное произведение матриц, в котором операция поэлементного умножения заменена на нахождение минимума, а суммирование - на нахождение максимума. Аналогично определяются операции минимаксной и максимультипликативной композиции. Композиция играет ключевую роль в нечетком логическом выводе. Пример 8. Заданы нечеткие отношения максминная ( ), минимаксная ( и ) и максимультипликативная ( этих нечетких отношений определяются такими матрицами: . Тогда ) композиции ; ; . Определение 42. Нечеткое отношение на называется транзитивным, если .Другими словами, для любой пары степень выполнения отношения должна быть не меньше степени выполнения отношения . Определение 43. Транзитивным замыканием нечеткого отношения называется следующее отношение , где . 1.7. Нечеткая логика Нечеткая логика это обобщение традиционной аристотелевой логики на случай, когда истинность рассматривается как лингвистическая переменная, принимающая значения типа: "очень истинно", "более-менее истинно", "не очень ложно" и т.п. Указанные лингвистические значения представляются нечеткими множествами. 1.7.1. Лингвистические переменные Напомним, что лингвистической называется переменная, принимающая значения из множества слов или словосочетаний некоторого естественного или искусственного языка. Множество допустимых значений лингвистической переменной называется терм-множеством. Задание значения переменной словами, без использования чисел, для человека более естественно. Ежедневно мы принимаем решения на основе лингвистической информации типа: "очень высокая температура"; "длительная поездка"; "быстрый ответ"; "красивый букет"; "гармоничный вкус" и т.п. Психологи установили, что в человеческом мозге почти вся числовая информация вербально перекодируется и хранится в виде лингвистических термов. Понятие лингвистической переменной играет важную роль в нечетком логическом выводе и в принятии решений на основе приближенных рассуждений. Формально, лингвистическая переменная определяется следующим образом. Определение 44. Лингвистическая переменная задается пятеркой , где - ; имя переменной; - ; терм-множество, каждый элемент которого (терм) представляется как нечеткое множество на универсальном множестве ; - ; синтаксические правила, часто в виде грамматики, порождающие название термов; - ; семантические правила, задающие функции принадлежности нечетких термов, порожденных синтаксическими правилами . Пример 9. Рассмотрим лингвистическую переменную с именем "температура в комнате". Тогда оставшуюся четверку можно определить так: универсальное множество - ; ; терм-множество - ; {"холодно", "комфортно", "жарко"} с такими функциями принадлежностями ( ): синтаксические правила , порождающее новые термы с использованием квантификаторов "не", "очень" и "более-менее"; семантические правила , в виде таблицы 4. Таблица 4 Правила расчета функций принадлежности Квантиф икатор Функция принадлежности ( ) не t очень t болееменее t Графики функций принадлежности термов "холодно", "не очень холодно", "комфортно", "более-менее комфортно", "жарко" и "очень жарко" лингвистической переменной "температура в комнате" показаны на рис. 13. Рисунок 13 - Лингвистическая переменная "температура в комнате" 1.7.2. Нечеткая истинность Особое место в нечеткой логике занимает лингвистическая переменная "истинность". В классической логике истинность может принимать только два значения: истинно и ложно. В нечеткой логике истинность "размытая". Нечеткая истинность определяется аксиоматически, причем разные авторы делают это поразному. Интервал [0, 1] используется как универсальное множество для задания лингвистической переменной "истинность". Обычная, четкая истинность может быть представлена нечеткими множествами-синглтонами. В этом случае четкому понятию истинно будет соответствовать функция принадлежности , а четкому понятию ложно - ; , . Для задания нечеткой истинности Заде предложил такие функции принадлежности термов "истинно" и "ложно": ; , , где - ; параметр, определяющий носители нечетких множеств "истинно" и "ложно". Для нечеткого множества "истинно" носителем будет интервал , а для нечеткого множества ложно" - ; . Функции принадлежности нечетких термов "истинно" и "ложно" изображены на рис. 14. Они построены при значении параметра . Как видно, графики функций принадлежности термов "истинно" и "ложно" представляют собой зеркальные отображения. Рисунок 14 - Лингвистическая переменная "истинность" по Заде Для задания нечеткой истинности Балдвин предложил такие функции принадлежности нечетких "истинно" и "ложно": где . Квантификаторы "более-менее" и "очень" часто применяют к нечеткими множествами "истинно" и "ложно", получая таким образом термы "очень ложно", "более-менее ложно", "более-менее истинно", "очень истинно", "очень, очень истинно", "очень, очень ложно" и т.п. Функции принадлежности новых термов получают, выполняя операции концентрации и растяжения нечетких множеств "истинно" и "ложно". Операция концентрации соответствует возведению функции принадлежности в квадрат, а операция растяжения - возведению в степень ½. Следовательно, функции принадлежности термов "очень, очень ложно", "очень ложно", "более-менее ложно", "более-менее истинно", "истинно", "очень истинно" и "очень, очень истинно" задаются так: ; ; ; ; . Графики функций принадлежности этих термов показаны на рис. 15. Рисунок 15 - Лингвистическая переменная "истинность" по Балдвину 1.7.3. Нечеткие логические операции Вначале кратко напомнить основные положения обычной (булевой) логики. Рассмотрим два утверждения A и B, каждое из которых может быть истинным или ложным, т.е. принимать значения "1" или "0". Для этих двух утверждений всего существует различных логических операций, из которых содержательно интерпретируются лишь пять: И ( ), ИЛИ ( ), исключающее ИЛИ ( ), импликация ( ) и эквивалентность ( ). Таблицы истинности для этих операций приведены в табл. 5. Таблица 5 Таблицы истинности булевой логики A B 0 0 0 0 0 1 1 0 1 0 1 1 1 0 1 0 0 1 1 0 0 1 1 1 1 0 1 1 Предположим, что логическое утверждение может принимать не два значения истинности, а три, например: "истинно", "ложно" и "неопределенно". В этом случае мы будем иметь дело не с двухзначной, а трехзначной логикой. Общее количество бинарных операций, а, следовательно, и таблиц истинности, в трехзначной логике равно . Нечеткая логика является разновидностью многозначной логики, в которой значения истинности задаются лингвистическими переменными или термами лингвистической переменной "истинность". Правила выполнения нечетких логических операций получают из булевых логических операций с помощью принципа обобщения. Определение 45. Обозначим нечеткие логические переменные через и , а функции принадлежности, задающие истинностные значения этих переменных через и , . Нечеткие логические операции И ( ), ИЛИ ( ), НЕ ( ) и импликация ( ) выполняются по таким правилам: ; ; ; . В многозначной логике логические операции могут быть заданы таблицами истинности. В нечеткой логике количество возможных значений истинности может быть бесконечным, следовательно в общем виде табличное представление логических операций невозможно. Однако, в табличной форме можно представить нечеткие логические операции для ограниченного количества истинностных значений, например, для терм-множества {"истинно", "очень истинно", "не истинно", "более-менее ложно", "ложно"}. Для трехзначной логики с нечеткими значениями истинности T - ; "истинно", F - ; "ложно" и T+F - "неизвестно" Л Заде предложил такие лингвистические таблицы истинности: T T F T T T F F F T T T+F F T+F T F T T F T F F T F F F T+F T F T+F T+F T T+F T+F T T+F F T+F F T+F T+F T+F T+F 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 Для задания многомерных зависимостей "входы-выходы" используют нечеткие логические операции И и ИЛИ. Удобно правила формулировать так, чтобы внутри каждого правил переменные объединялись логической операцией И, а правила в базе знаний связывались операцией ИЛИ. В этом случае нечеткую базу знаний, связывающую входы с выходом , можно представить в следующем виде: ЕСЛИ ИЛИ … ИЛИ , ТО , , где - нечеткий терм, которым оценивается переменная в строчке с номером ( ); - количество строчек-конъюнкций, в которых выход оценивается значений ; - количество различных значений, используемых для оценки выходной переменной . Приведенную выше базу знаний удобно представлять таблицей, которую иногда называют матрицей знаний (табл. 6). Таблица 6 Нечеткая база знаний … … … … … … … … … … … … … … … … … … … … … … … Для учета различной степени уверенности эксперта в адекватности правил используют весовые коэффициенты. Нечеткую базу знаний из таблицы 6 с весовыми коэффициентами правил можно записать следующим образом: , где - ; нечеткая логическая операция ИЛИ; - ;нечеткая логическая операция И; - ; весовой коэффициент правила с номером . 2. Структура Fuzzy Logic Toolbox Fuzzy Logic Toolbox - это пакет прикладных программ, входящих в состав среды MatLab. Он позволяет создавать системы нечеткого логического вывода и нечеткой классификации в рамках среды MatLab, с возможностью их интегрирования в Simulink. Базовым понятием Fuzzy Logic Toolbox является FISструктура - система нечеткого вывода (Fuzzy Inference System). FIS-структура содержит все необходимые данные для реализации функционального отображения “входы-выходы” на основе нечеткого логического вывода согласно схеме, приведенной на рис. 2.1. Рисунок 2.1. Нечеткий логический вывод Обозначения: X - входной четкий вектор; - вектор нечетких множеств, соответствующий входному вектору X; - результат логического вывода в виде вектора нечетких множеств; Y - выходной четкий вектор. Fuzzy Logic Toolbox содержит следующие категории программных инструментов: функции; интерактивные модули с графическим пользовательским интерфейсом (с GUI); блоки для пакета Simulink; демонстрационные примеры. 3. Построение нечетких систем в диалоговом режиме с помощью модуля Fuzzy Модуль fuzzy позволяет строит нечеткие системы двух типов - Мамдани и Сугэно. В системах типа Мамдани база знаний состоит из правил вида “Если x1=низкий и x2=средний, то y=высокий”. В системах типа Сугэно база знаний состоит из правил вида “Если x1=низкий и x2=средний, то y=a0+a1x1+a2x2". Таким образом, основное отличие между системами Мамдани и Сугэно заключается в разных способах задания значений выходной переменной в правилах, образующих базу знаний. В системах типа Мамдани значения выходной переменной задаются нечеткими термами, в системах типа Сугэно - как линейная комбинация входных переменных. 3.1. Проектирование систем типа Мамдани Рассмотрим основные этапы проектирования систем типа Мамдани на примере создания системы нечеткого логического вывода, моделирующей зависимость , . Проектирование системы нечеткого логического вывода будем проводить на основе графического изображения указанной зависимости. Для построения трехмерного изображения функции составим следующую программу: в области %Построение графика функции y=x1^2*sin(x2-1) %в области x1є[-7,3] и x2є[-4.4,1.7]. n=15; x1=-7:10/(n-1):3; x2=-4.4:6.1/(n-1):1.7; y=zeros(n,n); for j=1:n y(j,:)=x1.^2*sin(x2(j)-1); end surf(x1,x2,y) xlabel('x1') ylabel('x2') zlabel('y') title('Target'); В результате выполнения программы получим графическое изображение, приведенное на рис. 3.1. Проектирование системы нечеткого логического вывода, соответствующей приведенному графику, состоит в выполнении следующей последовательности шагов. Рис.3.1. Эталонная поверхность Шаг 1. Для загрузки основного fis-редактора напечатаем слова fuzzy в командной строке. После этого откроется нового графическое окно, показанное на рис. 3.2. Рис.3.2. Окно редактора FIS-Editor Шаг 2. Добавим вторую входную переменную. Для этого в меню Edit выбираем команду Add input. Шаг 3. Переименуем первую входную переменную. Для этого сделаем один щелчок левой кнопкой мыши на блоке input1, введем новое обозначение x1 в поле редактирования имени текущей переменной и нажмем <Enter>. Шаг 4. Переименуем вторую входную переменную. Для этого сделаем один щелчок левой кнопкой мыши на блоке input2, введем новое обозначение x2 в поле редактирования имени текущей переменной и нажмем <Enter>. Шаг 5. Переименуем выходную переменную. Для этого сделаем один щелчок левой кнопкой мыши на блоке output1, введем новое обозначение y в поле редактирования имени текущей переменной и нажмем <Enter>. Шаг 6. Зададим имя системы. Для этого в меню File выбираем в подменю Export команду To disk и вводим имя файла, например, first. Шаг 7. Перейдем в редактор функций принадлежности. Для этого сделаем двойной щелчок левой кнопкой мыши на блоке x1. Шаг 8. Зададим диапазон изменения переменной x1. Для этого напечатаем -7 3 в поле Range (см. рис. 3.3) и нажмем <Enter>. Шаг 9. Зададим функции принадлежности переменной x1. Для лингвистической оценки этой переменной будем использовать 3 терма с треугольными функциями принадлежности. Для этого в меню Edit выберем команду Add MFs... В результате появиться диалоговое окно выбора типа и количества функций принадлежностей. По умолчанию это 3 терма с треугольными функциями принадлежности. Поэтому просто нажимаем <Enter>. Шаг 10. Зададим наименования термов переменной x1. Для этого делаем один щелчок левой кнопкой мыши по графику первой функции принадлежности (см. рис. 3.3). Затем вводим наименование терма, например, Низкий, в поле Name и нажмем <Enter>. Затем делаем один щелчок левой кнопкой мыши по графику второй функции принадлежности и вводим наименование терма, например, Средний, в поле Name и нажмем <Enter>. Еще раз делаем один щелчок левой кнопкой мыши по графику третьей функции принадлежности и вводим наименование терма, например, Высокий, в поле Name и нажмем <Enter>. В результате получим графическое окно, изображенное на рис. 3.3. Рис.3.3. Функции принадлежности переменной x1 Шаг 11. Зададим функции принадлежности переменной x2. Для лингвистической оценки этой переменной будем использовать 5 термов с гауссовскими функциями принадлежности. Для этого активизируем переменную x2 с помощью щелчка левой кнопки мыши на блоке x2. Зададим диапазон изменения переменной x2. Для этого напечатаем -4.4 1.7 в поле Range (см. рис. 3.4) и нажмем <Enter>. Затем в меню Edit выберем команду Add MFs.... В появившимся диалоговом окне выбираем тип функции принадлежности gaussmf в поле MF type и 5 термов в поле Number of MFs. После этого нажимаем <Enter>. Рис 3.4. Функции принадлежности переменной x2 Шаг 12. По аналогии с шагом 10 зададим следующие наименования термов переменной x2: Низкий, Ниже среднего, Средний, Выше среднего, Высокий. В результате получим графическое окно, изображенное на рис. 3.4. Шаг 13. Зададим функции принадлежности переменной y. Для лингвистической оценки этой переменной будем использовать 5 термов с треугольными функциями принадлежности. Для этого активизируем переменную y с помощью щелчка левой кнопки мыши на блоке y. Зададим диапазон изменения переменной y. Для этого напечатаем -50 50 в поле Range (см. рис. 3.5) и нажмем <Enter>.Затем в меню Edit выберем команду Add MFs.... В появившимся диалоговом окне выбираем 5 термов в поле Number of MFs. После этого нажимаем <Enter>. Рис 3.5. Функции принадлежности переменной y Шаг 14. По аналогии с шагом 10 зададим следующие наименования термов переменной y: Низкий, Ниже среднего, Средний, Выше среднего, Высокий. В результате получим графическое окно, изображенное на рис. 3.5. Шаг 15. Перейдем в редактор базы знаний RuleEditor. Для этого выберем в меню Edit выберем команду Edit rules.... Шаг 16. На основе визуального наблюдения за графиком, изображенным на рис. 3.1 сформулируем следующие девять правил: 1. Если x1=Средний, то y=Средний; 2. Если x1=Низкий и x2=Низкий, то y=Высокий; 3. Если x1=Низкий и x2=Высокий, то y=Высокий; 4. Если x1=Высокий и x2=Высокий, то y=Выше Среднего; 5. Если x1=Высокий и x2=Низкий, то y=Выше Среднего; 6. Если x1=Высокий и x2=Средний, то y=Средний; 7. Если x1=Низкий и x2=Средний, то y=Низкий; 8. Если x1=Высокий и x2=Выше Среднего, то y=Средний; 9. Если x1=Высокий и x2=Ниже Среднего, то y=Средний. Для ввода правила необходимо выбрать в меню соответствующую комбинацию термов и нажать кнопку Add rule. На рис. 3.6 изображено окно редактора базы знаний после ввода всех девяти правил. Число, приведенное в скобках в конце каждого правила представляет собой весовым коэффициент соответствующего правила. Рис 3.6. База знаний в RuleEditor Шаг 17. Сохраним созданную систему. Для этого в меню File выбираем в подменю Export команду To disk. На рис. 3.7 приведено окно визуализации нечеткого логического вывода. Это окно активизируется командой View rules... меню View. В поле Input указываются значения входных переменных, для которых выполняется логический вывод. Рис 3.7. Визуализация нечеткого логического вывода в RuleViewer На рис. 3.8 приведена поверхность “входы-выход”, соответствующая синтезированной нечеткой системе. Для вывода этого окна необходимо использовать команду View surface... меню View. Сравнивая поверхности на рис. 3.1 и на рис. 3.8 можно сделать вывод, что нечеткие правила достаточно хорошо описывают сложную нелинейную зависимость. Рис 3.8. Поверхность “входы-выход” в окне SurfaceViwer 3.2. Проектирование систем типа Сугэно Рассмотрим основные этапы проектирования систем типа Сугэно на примере создания системы нечеткого логического вывода, моделирующей зависимость , (рис. 3.1). Моделирование этой зависимости будем осуществлять с помощью следующей базы знаний: 1. Если x1=Средний, то y=0; 2. Если x1=Высокий и x2=Высокий, то y=2x1+2x2+1; 3. Если x1=Высокий и x2=Низкий, то y=4x1-x2; 4. Если x1=Низкий и x2=Средний, то y=8x1+2x2+8; 5. Если x1=Низкий и x2=Низкий, то y=50; 6. Если x1=Низкий и x2=Высокий, то y=50. Проектирование системы нечеткого логического вывода типа Сугэно состоит в выполнении следующей последовательности шагов. Шаг 1. Для загрузки основного fis-редактора напечатаем слова fuzzy в командной строке. После этого откроется нового графическое окно, показанное на рис. 3.2. Шаг 2. Выберем тип системы. Для этого в меню File выбираем в подменю New fis… команду Sugeno. Шаг 3. Добавим вторую входную переменную. Для этого в меню Edit выбираем команду Add input. Шаг 4. Переименуем первую входную переменную. Для этого сделаем один щелчок левой кнопкой мыши на блоке input1, введем новое обозначение x1 в поле редактирования имени текущей переменной и нажмем <Enter>. Шаг 5. Переименуем вторую входную переменную. Для этого сделаем один щелчок левой кнопкой мыши на блоке input2, введем новое обозначение x2 в поле редактирования имени текущей переменной и нажмем <Enter>. Шаг 6. Переименуем выходную переменную. Для этого сделаем один щелчок левой кнопкой мыши на блоке output1, введем новое обозначение y в поле редактирования имени текущей переменной и нажмем <Enter>. Шаг 7. Зададим имя системы. Для этого в меню File выбираем в подменю Export команду To disk и введем имя файла, например, FirstSugeno. Шаг 8. Перейдем в редактор функций принадлежности. Для этого сделаем двойной щелчок левой кнопкой мыши на блоке x1. Шаг 9. Зададим диапазон изменения переменной x1. Для этого напечатаем -7 3 в поле Range (см. рис. 3.9) и нажмем <Enter>. Рис 3.9. Функции принадлежности переменной x1 Шаг 10. Зададим функции принадлежности переменной x1. Для лингвистической оценки этой переменной будем использовать, 3 терма с треугольными функциями принадлежности, которые установлены по умолчанию. Зададим наименования термов переменной x1. Для этого делаем один щелчок левой кнопкой мыши по графику первой функции принадлежности (см. рис. 3.9). Затем напечатаем наименование терма Низкий в поле Name. Затем делаем один щелчок левой кнопкой мыши по графику второй функции принадлежности и вводим наименование терма Средний в поле Name. Еще раз делаем один щелчок левой кнопкой мыши по графику третьей функции принадлежности и вводим наименование терма Высокий в поле Name и нажмем <Enter>. В результате получим графическое окно, изображенное на рис. 3.9. Шаг 11. Зададим функции принадлежности переменной x2. Для лингвистической оценки этой переменной будем использовать 3 терма с треугольными функциями принадлежности, которые установлены по умолчанию. Для этого активизируем переменную x2 с помощью щелчка левой кнопки мыши на блоке x2. Зададим диапазон изменения переменной x2. Для этого напечатаем -4.4 1.7 в поле Range (см. рис. 3.10) и нажмем <Enter>. По аналогии с предыдущим шагом зададим следующие наименования термов переменной x2: Низкий, Средний, Высокий. В результате получим графическое окно, изображенное на рис. 3.10. Рис 3.10. Функции принадлежности переменной x2 Шаг 12. Зададим линейные зависимости между входами и выходом, приведенные в базе знаний. Для этого активизируем переменную y с помощью щелчка левой кнопки мыши на блоке y. В правом верхнем угле появилось обозначение трех функций принадлежности, каждая из которых соответствует одной линейной зависимости между входами и выходам. В базе знаний, приведенной в начале подраздела 3.2 указаны 5 различных зависимостей: y=50; y=4x1-x2; y=2x1+2x2+1; y=8x1+2x2+8; y=0. Поэтому добавим еще две зависимости путем выбора команды Add Mfs… меню Edit. В появившимся диалоговом окне в поле Number of MFs выбираем 2 и нажимаем кнопку OK. Шаг 13. Зададим наименования и параметры линейных зависимостей. Для этого делаем один щелчок левой кнопкой мыши по наименованию первой зависимости mf1. Затем печатаем наименование зависимости, например 50, в поле Name, и устанавливаем тип зависимости – константа путем выбора опции Сonstant в меню Type. После этого вводим значение параметра – 50 в поле Params. Аналогично для второй зависимости mf2 введем наименование зависимости, например 8+8x1+2x2. Затем укажем линейный тип зависимости путем выбора опции Linear в меню Type и введем параметры зависимости 8 2 8 в поле Params. Для линейной зависимости порядок параметров следующий: первый параметр – коэффициент при первой переменной, второй – при второй и т.д., и последний параметр – свободный член зависимости. Аналогично для третьей зависимости mf3 введем наименование зависимости, например 1+2x1+2x2, укажем линейный тип зависимости и введем параметры зависимости 2 2 1. Для четвертой зависимости mf4 введем наименование зависимости, например 4x1-x2, укажем линейный тип зависимости и введем параметры зависимости 4 -1 0. Для пятой зависимости mf5 введем наименование зависимости, например 0, укажем тип зависимости - константа и введем параметр зависимости 0. В результате получим графическое окно, изображенное на рис. 3.11. Рис 3.11. Окно линейных зависимостей “входы-выход” Шаг 14. Перейдем в редактор базы знаний RuleEditor. Для этого выберем в меню Edit команду Edit rules.... и введем правила базы знаний. Для ввода правила необходимо выбрать соответствующую комбинацию термов и зависимостей и нажать кнопку Add rule. На рис. 3.12 изображено окно редактора базы знаний после ввода всех шести правил. Рис 3.12. Нечеткая база знаний для системы типа Сугэно На рис. 3.13 приведено окно визуализации нечеткого логического вывода. Это окно активизируется командой View rules... меню View. В поле Input указываются значения входных переменных, для которых выполняется логический вывод. Как видно из этого рисунка значение выходной переменной рассчитывается как среднее взвешенное значение результатов вывода по каждому правилу. Рис. 3.13 Визуализация нечеткого логического вывода для системы типа Сугэно На рис. 3.14 приведена поверхность “входы-выход”, соответствующая синтезированной нечеткой системе. Для вывода этого окна необходимо использовать команду View surface... меню View. Сравнивая поверхности на рис. 3.1, рис. 3.8 и на рис. 3.14 можно сделать вывод, что нечеткие правила достаточно хорошо описывают сложную нелинейную зависимость. При этом, модель типа Сугэно более точная. Преимущество моделей типа Мамдани состоит в том, что правила базы знаний являются прозрачными и интуитивно понятными, тогда как для моделей типа Сугэно не всегда ясно какие линейные зависимости “входы-выход” необходимо использовать. Рис 3.14. Поверхность “входы-выход” для системы типа Сугэно 4. Нечеткая система прогнозирования результатов футбольных матчей В настоящем разделе описана система прогнозирования результатов футбольных матчей, в основу которой положены формализованные в виде нечеткой базы знаний лингвистические высказывания правила типа “Если – То”. Система разработана в Винницком государственном техническом университет доцентом Штовбой С.Д. и студентом 5-го курса Вивдюком В.В. Для настройки и тестирования системы использовались данные о матчах чемпионатов Украины по футболу 2000 -2002 годов. Для запуска системы необходимо ввести команду fuzzy football. [Fis-файл системы football.fis] Нами отобраны следующие факторы, которые оказывают наибольшее влияние на результат поединка: x1 – разница потерь ведущих игроков (разница между количеством травмированных и дисквалифицированных футболистов в первой команде – хозяине поля и количеством травмированных и дисквалифицированных футболистов в гостевой команде); x2 – разница игровых динамик (разница очков, набранных командой хозяином поля и гостевой командой в последних пяти турах); x3 – разница в классе команд (разница мест, которые занимают команда-хозяин и команда-гость в текущем чемпионате); x4 – фактор поля (рассчитываться как HP/HG - GP/GG, где HP – общее количество очков, набранное командой хозяином поля в домашних играх текущего чемпионата; HG - общее количество домашних игр, проведенных очков, командой хозяином поля в текущем чемпионата; GP – общее количество очков, набранное гостевой командой в текущего чемпионата на выезде; HG - общее количество выездных игр, проведенных гостевой командой в текущем чемпионата); x5 – встреча команд (разница забитых и пропущенных мячей двух команд во всех чемпионатах Украины); Заметим, что значения этих факторов легко может быть определено до начала футбольного матча. Результата матча (y) прогнозируется как разница голов забитых командой хозяином поля и гостевой командой. Для лингвистической оценки входных и выходной переменных используются следующие терм-множества: x1 – {Большая_скамейка (БС); Одинаковая_скамейка (ОС); Короткая_скамейка (КС)}; x2 – {Существенный_проигрыш (СП); Проигрыш (П); Выигрыш (В); Существенный_выигрыш (СВ)}; x3 – {Лидер (Л); Верхняя_половина (ВП); Середина (С); Нижняя_половина (НП); Аутсайдер (А)}; x4 – {Абсолютная_неудача (АНд); Неудача (Нд); Преимущество (Пр); Абсолютное_преимущество (АПр)}; x5 – {Позорные_встречи (Пз); Равные_встречи (Р); Разгромные_встречи (Рз)}; y – {Крупный_проигрыш (КП); Проигрыш (П); Ничья (Н); Выигрыш (В); Крупный_выигрыш (КВ)}. Экспертные лингвистические высказывания, отражающие взаимосвязь между факторами х1-x5 и результатом футбольного матча (y) представлены в табл. 4.1. Каждая строка таблицы соответствует одному правилу, например, для первой строки это правило: Если x1=”Большая_скамейка” и х2=”Преимущественно_выигрыш” и х3=”Лидер” и х4=”Абсолютное_преимущество” и х5=”Разгромные_встречи”, То y=”Крупный_выигрыш”. Таблица 4.1. База знаний № x1 x2 x3 x4 x5 y 1 БС СВ Л АПр Рз КВ 2 ОС В ВП Пр Рз КВ 3 ОС П Л Пр Рз КВ 4 БС В ВП Пр Р КВ 5 ОС В С Нд Рз В 6 КС П ВП Пр Р В 7 ОС В С Нд Рз В 8 БС СВ НП Пр Р В 9 ОС В С Нд Р Н 10 КС СП С Нд Р Н 11 ОС П НП Пр Пз Н 12 БС СП ВП Нд Р Н 13 БС П С АНд Р П 14 ОС В НП Нд Пз П 15 КС СП С Пр Пз П 16 ОС П А Нд Р П 17 КС СП А АНд Р КП 18 ОС СП НП Нд Пз КП 19 КС П НП АНд Р КП 20 БС СП НП Нд Пз КП Тестирование нечеткой модели на выборке из 175 матчей показывает, что среднеквадратическое отклонение составляет 1.60, при этом статистическая оценка вероятности правильного предсказания исхода поединка (выигрыш, ничья, проигрыш) составляет 0.64. Проиллюстрируем возможности предложенной нечеткой системы на примере прогнозирования результатов 9-го чемпионата Украины. Исходной информацией, необходимой для прогнозирования служат результаты игр за 1-8 чемпионаты и результаты первых пяти игр 9-го чемпионата. На основе этой информации необходимо спрогнозировать результаты оставшихся 6, 7, ...., 26 туров. В каждом туре происходит 7 матчей, поэтому необходимо спрогнозировать результаты 21*7=147 игр. Прогнозирование проводилось по следующей методике. Вначале спрогнозируем результаты 6-го тура. Затем с учетом полученных данных пересчитаем значения факторов x2-x5 и спрогнозируем результаты 7-го тура, потом 8-го и т.д. по 26 тур. Заметим, что значение фактора x5 - “встреча команд”, необходимо пересчитывать только со второго круга чемпионата, т.е. начиная с 14го тура. Значение фактора x1 на i-ом туре определим как x1(i)=x1(6)/(i-5), где x1(6) - значения фактора x1 в 6-м туре. Это позволит снизить влияние этого фактора при моделировании последних туров, т.к. на момент прогнозирования количество травмированных и дисквалифицированных игроков является величиной неизвестной. Результаты прогнозирования в виде зависимости точности прогнозирования от количества туров и в виде итоговой таблицы чемпионата показаны на рис.4.1 и в табл. 4.2, соответственно. Рис. 4.1 – Зависимость точности прогнозирования от количества туров Таблица 4.2 Результирующая турнирная таблица Реальные значения Команда Нечеткая система очки место очки место Динамо 58 1 59 1-2 Шахтер 57 2 59 1-2 Днепр 52 3 57 3 Металург Д 51 4 53 4 Металург М 37 5 33 8 ЦСКА 36 6 26 10 Металург Зп 32 7 41 7 Таврия 30 8 49 5 Карпаты 27 9 47 6 Металист 25 10 22 11 Кривбас 24 11 27 9 Ворскла 20 12 3 14 Сталь 11 13 21 12 Нива 9 14 11 13 5. Структура данных системы нечеткого логического вывода Система нечеткого логического вывода представляется в рабочей области MatLab в виде структуры данных, изображенной на рис. 5.1. Существует два способа загрузки FIS в рабочую область: считывание с диска с помощью функции readfis; передача из основного fis-редактора путем выбора в меню File подменю Export и команды To workspace. Поля структуры данных системы нечеткого логического вывода предназначены для хранения следующей информации: name - наименование системы нечеткого логического вывода; type - тип системы. Допустимые значения 'Mamdani' и 'Sugeno'; andMethod - orMethod реализация логической операции ИЛИ. - Запрограммированные реализации: 'max' - максимум и 'probor' - вероятностное ИЛИ; defuzzMethod метод дефаззификации. Запрограммированные методы для систем типа Мамдани: 'centroid' - центр тяжести; 'bisector' медиана; 'lom' - наибольший из максимумов; 'som' наименьший из максимумов; 'mom' - среднее из максимумов. Запрограммированные методы для систем типа Сугэно: 'wtaver' - взвешенное среднее и 'wtsum' - взвешенная сумма; impMethod - aggMethod реализация операции объединения функций принадлежности выходной переменной. Запрограммированные реализации: 'max' - максимум; 'sum' - сумма и 'probor' - вероятностное ИЛИ; input - массив входных переменных; input.name - наименование входной переменной; input.range - диапазон изменения входной переменной; input.mf - массив функций принадлежности входной переменной; input.mf.name - input.mf.type модель функции принадлежности входной переменной. Запрограммированные модели: dsigmf функция принадлежности в виде разности между двумя сигмоидными функциями; gauss2mf - двухсторонняя гауссовская функция реализация логической операции И. Запрограммированные реализации: 'min' - минимум и 'prod' - умножение; реализация операции импликации. Запрограммированные реализации: 'min' - минимум и 'prod' - умножение; наименование переменной; функции принадлежности входной принадлежности; gaussmf гауссовская функция принадлежности; gbellmf - обобщенная колокообразная функция принадлежности; pimf - пи-подобная функция принадлежности; psigmf - произведение двух сигмоидных функций принадлежности; sigmf - сигмоидная функция принадлежности; smf - s-подобная функция принадлежности; trapmf - трапециевидная функция принадлежности; trimf треугольная функция принадлежности; zmf - z-подобная функция принадлежности; массив параметров переменной; функции принадлежности входной input.mf.params - output - массив выходных переменных; output.name - наименование выходной переменной; output.range - диапазон изменения выходной переменной; output.mf - массив функций принадлежности выходной переменной; output.mf.name - output.mf.type модель функции принадлежности выходной переменной. Запрограммированные модели для системы типа Мамдани: dsigmf - функция принадлежности в виде разности между двумя сигмоидными функциями; gauss2mf - двухсторонняя гауссовская функция принадлежности; gaussmf - гауссовская функция принадлежности; gbellmf обобщенная - колокообразная функция принадлежности; pimf - пиподобная функция принадлежности; psigmf - произведение двух сигмоидных функций принадлежности. Запрограммированные модели для системы типа Сугэно: constatnt - константа (функция принадлежности в виде синглтона); linear - линейная комбинация входных переменных; output.mf.params - наименование переменной; функции массив параметров выходной переменной; принадлежности функции выходной принадлежности массив правил нечеткой базы знаний; rule - rule.antecedent посылки правила. Указываются порядковые номера термов в порядке записи входных переменных. Число 0 указывает на то, что значение соответствующей входной переменной не влияет на истинность правила; rule.consequent заключения правила. Указываются порядковые номера термов в порядке записи выходных переменных. Число 0 указывает на то, что правило не распространяется на соответствующую выходную переменную; rule.weight - вес правила. Задается числом из диапазона [0, 1]; rule.connection - логическая связка переменных логическое И; 2 - логическое ИЛИ. внутри правила: 1- Для доступа к свойствам системы нечеткого логического вывода достаточно указать имя соответствующего поля. Например, команда FIS_NAME.rule(1).weight=0.5 устанавливает вес первого правила в 0.5, команда length(FIS_NAME.rule) определяет количество правил в базе знаний, а команда FIS_NAME.input(1).mf(1).name='низкий' переименовывает первый терм первой входной переменной в "низкий". Структура fis-файла Системы нечеткого логического вывода сохраняется надиске в виде fisфайлов - текстовых файлов специального формата. Функции readfis и writefis используются для чтения и записи этих файлов. Иногда удобно модифицировать системы нечеткого логического вывода путем редактирования их fis-файлов, без вызова GUI -модулей Fuzzy Logic Toolbox. Для изменения fis-файлов можно использовать любой текстовый редактор. Однако редактировать fis-файлы надо осторожно так как, изменения некоторых строчек файла влечет за собой необходимость корректирования нескольких других. Например, если при редактировании удален терм, используемый для лингвистической оценки входной или выходной переменной, то необходимо убедиться, что в базе знаний отсутствуют правила, включающие этой терм. Формат fis-файла описан в табл. 5.1 на примере файла tipper .fis демонстрационной системы нечеткого логического вывода, определяющей размер чаевых в ресторане. Обратим внимание, что правила базы знаний представлены в индексном формате. Таблица 5.1 Формат fis - файла (на примере файла tipper.fis) Строки файла Описание % $ Revision: 1.1 $ строка комментария [System] указатель, на начало описания общих параметров системы нечеткого логического вывода Name='tipper' наименование системы Type='mamdani' тип системы нечеткого логического вывода NumInputs=2 количество входных переменных системы NumOutputs=1 количество выходных переменных системы NumRules=3 количество правил в базе знаний AndMethod='min' реализация логической операции И OrMethod='max' реализация логической операции ИЛИ ImpMethod='min' реализация операции импликации AggMethod='max' реализация операции аггреатирования DefuzzMethod='centroid' метод дефаззификации [Input1] указатель, на начало описания первой входной переменной Name='service' наименование первой входной переменной Range=[0 10] диапазон изменения NumMFs=3 количество термов MF1='poor':'gaussmf',[1.5 0] наименование первого терма, тип функции принадлежности и ее параметры MF2='good':'gaussmf',[1.5 5] наименование второго терма, тип функции принадлежности и ее параметры MF3='excellent':'gaussmf',[1.5 10] наименование второго терма, тип функции принадлежности и ее параметры [Input2] указатель, на начало описания второй входной переменной Name='food' наименование второй входной переменной Range=[0 10] диапазон изменения NumMFs=2 количество термов MF1='rancid':'trapmf',[0 0 1 3] наименование первого терма, тип функции принадлежности и ее параметры MF2='delicious':'trapmf',[7 9 10 10] наименование второго терма, тип функции принадлежности и ее параметры [Output1] указатель, на начало описания первой выходной переменной Name='tip' наименование выходной переменной Range=[0 30] диапазон изменения NumMFs=3 количество термов MF1='cheap':'trimf',[0 5 10] наименование первого терма, тип функции принадлежности и ее параметры MF2='average':'trimf',[10 15 20] наименование второго терма, тип функции принадлежности и ее параметры MF3='generous':'trimf',[20 25 30] наименование второго терма, тип функции принадлежности и ее параметры [Rules] указатель, на начало описания правил базы знаний 1 1, 1 (1) : 2 2 0, 2 (1) : 1 правила базы знаний в индексном формате 3 2, 3 (1) : 2 6. Модели функций принадлежности Fuzzy Logic Toolbox включает 11 встроенных функций принадлежностей, которые используют следующие основные функции: кусочно-линейную; гауссовское распределение; сигмоидную кривую; квадратическую и кубические кривые. Для удобства имена всех встроенных функций принадлежности оканчиваютя на mf. Вызов функции принадлежности осуществляется следующим образом: namemf(x, params), где namemf – наименование функции принадлежности; x – вектор, для координат которого необходимо рассчитать значения функции принадлежности; params – вектор параметров функции принадлежности. Простейшие функции принадлежности треугольная (trimf) и трапециевидная (trapmf) формируется с использованием кусочно-линейной аппроксимации. Трапециевидная функция принадлежности является обобщение треугольной, она позволяет задавать ядро нечеткого множества в виде интервала. В случае трапециевидной функции принадлежности возможна следующая удобная интерпретация: ядро нечеткого множества – оптимистическая оценка; носитель нечеткого множества – пессимистическая оценка. Две функции принадлежности – симметричная гауссовская (gaussmf) и двухстороняя гауссовская (gaussmf) формируется с использованием гауссовского распределения. Функция gaussmf позволяет задавать ассиметричные функция принадлежности. Обобщенная колоколообразная функция принадлежности (gbellmf) по своей форме похожа на гауссовские. Эти функции принадлежности часто используются в нечетких системах, так как на всей области определения они является гладкими и принимают ненулевые значения. Функции принадлежности sigmf, dsigmf, psigmf основаны на использовании сигмоидной кривой. Эти функции позволяют формировать функции принадлежности, значения которых начиная с некоторого значения аргумента и до + (-) равны 1. Такие функции удобны для задания лингвистических термов типа “высокий” или “низкий”. Полиномиальная аппроксимация применяется при формировании функций zmf, pimf и smf, графические изображения которых похожи на функции sigmf, dsigmf, psigmf, соответственно. Основная информация о встроенных функциях принадлежности сведена в табл. 6.1. На рис. 6.1 приведены графические изображения функций принадлежности, полученные с помощью демонстрационной сценария mfdemo. Как видно из рисунка, встроенные функции принадлежности позволяют задавать разнообразные нечеткие множества. В Fuzzy Logic Toolbox предусмотрена возможность для пользователя создания собственной функции принадлежности. Для этого необходимо создать mфункцию, содержащую два входных аргумента – вектор, для координат которого необходимо рассчитать значения функции принадлежности и вектор параметров функции принадлежности. Выходным аргументом функции должен быть вектор степеней принадлежности. Ниже приведена m-функция, реализующая колоколообразную функцию принадлежности function mu=bellmf(x, params) %bellmf – bell membership function; %x – input vector; %params(1) – concentration coefficient (>0); %params(2) – coordinate of maximuma. a=params(1); b=params(2); mu=1./(1+ ((x-b)/a).^2); : Рисунок 6.1. Встроенные функции принадлежности Таблица 6.1. Функции принадлежности Наименование функции Описание Аналитическая формула Порядок параметров dsigmf функция принадлежности в виде разности между двумя сигмоидными функциями [a1 c1 a2 c2] gauss2mf двухсторонняя гауссовская функция принадлежности [a1 c1 a2 c2] если c1<c2, то ; если c1>c2, то . gaussmf симметричная гауссовская функция принадлежности [c b] gbellmf обобщенная колокообразная функция принадлежности [a b c] pimf пи-подобная функция принадлежности [a b c d] произведение smf и zmf функций [a d] – носитель нечеткого множества; [b c] – ядро нечеткого множества; psigmf произведение двух сигмоидных функций принадлежности [a1 c1 a2 c2] sigmf сигмоидная функция принадлежности [a c] smf s-подобная функция принадлежности [a, b] trapmf трапециевидная функция принадлежности [a, b, c, d] trimf треугольная функция принадлежности [a, b, c] zmf z-подобная функция принадлежности [a, b] 7. Руководство пользователя 7.1. FIS-редактор FIS-редактор предназначен для создания, сохранения, загрузки и вывода на печать систем нечеткого логического вывода, а также для редактирования следующих свойств: тип системы; наименование системы; количество входных и выходных переменных; наименование входных и выходных переменных; параметры нечеткого логического вывода. Загрузка FIS-редактора происходит с помощью команды fuzzy. В результате появляется интерактивное графическое окно, приведенное на рис. 3.2. На этом же рисунке также указаны функциональные назначения основных полей графичекого окна. В нижней части графического окна FIS-редактора расположены кнопки Help и Close, которые позволяют вызвать окно справки и закрыть редактор, соответственно. FIS-редактор содержит 8 меню. Это три общесистемных меню - File, Edit, View, и пять меню для выбора параметров нечеткого логического вывода – And Method, Or Method, Implication, Aggregation и Defuzzification. Меню File Это общее меню для всех GUI-модулей используемых с системами нечеткого логического вывода. Общий вид меню показан на рис. 7.1. Рисунок 7.1 – Меню File С помощью команды New FIS… пользователь имеет возможность создать новую систему нечеткого логического вывода. При выборе этой команды появятся две альтернативы: Mamdani и Sugeno, которые определяют тип создаваемой системы. Создать систему типа Mamdani можно также нажатием Ctrl+N. С помощью команды Import пользователь имеет возможность загрузить ранее созданную систему нечеткого логического вывода. При выборе этой команды появятся две альтернативы From Workspace… и From disk, которые позволяют загрузить систему нечеткого логического вывода из рабочей области MatLab и с диска, соответственно. При выборе команды From Workspace… появится диалоговое окно, в котором необходимо указать идентификатор системы нечеткого логического вывода, находящейся в рабочей области MatLab. При выборе команды From disk появится диалоговое окно (рис. 7.2), в котором необходимо указать имя файла системы нечеткого логического вывода. Файлы систем нечеткого логического вывода имеют расширение .fis . Загрузить систему нечеткого логического вывода с диска можно также нажатием Ctrl+N или командой fuzzy FIS_name, где FIS_name – имя файла системы нечеткого логического вывода. Рисунок 7.2 – Окно загрузки системы нечеткого логического вывода с диска При выборе команды Export появятся две альтернативы To Workspace… и To disk, которые позволяют скопировать систему нечеткого логического вывода в рабочую область MatLab и на диск, соответственно. При выборе команды To Workspace… появится диалоговое окно, в котором необходимо указать идентификатор системы нечеткого логического вывода, под которым она будет сохранена в рабочей области MatLab. При выборе команды To disk появится диалоговое окно, в котором необходимо указать имя файла системы нечеткого логического вывода. Скопировать систему нечеткого логического вывода в рабочую область и на диск можно также нажатием Ctrl+T и Ctrl+S, соответственно. Команда Print позволяет вывести на принтер копию графического окна. Печать возможна также по нажатию Ctrl+P. Команда Close закрывает графическое окно. Закрытия графического окна происходит по нажатию Ctrl+W или однократного щелчка левой кнопки мыши по кнопке Close. Меню Edit Общий вид меню приведен на рис. 7.3. Рисунок 7.3 – Меню Edit Команда Undo отменяет ранее совершенное действие. Выполняется также по нажатию Ctrl+Z. Команда Add Variable… позволяет добавить в систему нечеткого логического вывода еще одну переменную. При выборе этой команды появятся две альтернативы Input и Output, которые позволяют добавить входную и выходную переменную, соответственно. Команда Remove Selected Variable удаляет текущую переменную из системы. Признаком текущей переменной является красная окантовка ее прямоугольника. Назначение текущей переменной происходит с помощью однократного щелчка левой кнопки мыши по ее прямоугольнику. Удалить текущую переменную можно также с помощью нажатия Ctrl+X. Команда Membership Function… открывает редактор функций принадлежностей. Эта команда может быть также выполнена нажатием Ctrl+2. Команда Rules… открывает редактор базы знаний. Эта команда может быть также выполнена нажатием Ctrl+3. Меню View Это общее меню для всех GUI-модулей, используемых с системами нечеткого логического вывода. Общий вид меню показан на рис. 7.4. Это меню позволяет открыть окно визуализауии нечеткого логического вывода (команда Rules или нажатие клавиш Ctrl+5) и окно вывода поверхности “входы-выход”, соответствующей системе нечеткого логического вывода (команда Surface или нажатие клавиш Ctrl+6). Рисунок 7.4 – Меню View Меню And Method Это меню позволяет установить следующие реализации логической операции И: min – минимум; prod – умножение. Пользователь также имеет возможность установить собственную реализацию операции И. Для этого необходимо выбрать команду Custom… и в появившемся графическом окне напечатать имя функции, реализующей эту операцию. Меню Or Method Это меню позволяет установить следующие реализации логической операции ИЛИ: max – умножение; probor - вероятностное ИЛИ. Пользователь также имеет возможность установить собственную реализацию операции ИЛИ. Для этого необходимо выбрать команду Custom… и в появившемся графическом окне напечатать имя функции, реализующей эту операцию. Меню Implication Это меню позволяет установить следующие реализации импликации: min – минимум; prod – умножение. Пользователь также имеет возможность установить собственную реализацию импликации. Для этого необходимо выбрать команду Custom… и в появившемся графическом окне напечатать имя функции, реализующей эту операцию. Меню Aggregation Это меню позволяет установить следующие реализации операции объединения функций принадлежности выходной переменной: max – максимум; sum – сумма; probor - вероятностное ИЛИ. Пользователь также имеет возможность установить собственную реализацию этой операции. Для этого необходимо выбрать команду Custom… и в появившемся графическом окне напечатать имя функции, реализующей эту операцию Меню Defuzzification Это меню позволяет выбрать метод дефаззификации. Для систем типа Мамдани запрограммированы следующие методы: centroid – центр тяжести; bisector –медиана; lom – наибольший из максимумов; som – наименьший из максимумов; mom – среднее из максимумов. Для систем типа Сугэно запрограммированы следующие методы: wtaver – взвешенное среднее; wtsum – взвешенная сумма. Пользователь также имеет возможность установить собственный метод деффазификации. Для этого необходимо выбрать команду Custom… и в появившемся графическом окне напечатать имя функции, реализующей эту операцию. 7.2. Редактор функций принадлежности Редактор функций принадлежности-(Membership Function Editor) редактор предназначен для задания следующей информации о терм-множествах входных и выходных переменных: количество термов; наименования термов; тип и параметры функций принадлежности, которые необходимы для представления лингвистических термов в виде нечетких множеств. Редактор функций принадлежности может быть вызван из любого GUIмодуля, используемого с системами нечеткого логического вывода, командой Membership Functions… меню Edit или нажатием клавиш Ctrl+2. В FIS-редакторе открыть редактор функций принадлежности можно также двойным щелчком левой кнопкой мыши по полю входной или выходной переменных. Общий вид редактора функций принадлежности с указанием функционального назначения основных полей графичекого окна приведен на рис. 7.5. В нижней части графического окна расположены кнопки Help и Close, которые позволяют вызвать окно справки и закрыть редактор, соответственно. Рисунок 7.5. Редактор функций принадлежности Редактор функций принадлежности содержит четыре меню - File, Edit, View, Type и четыре окна ввода информации – Range, Display Range, Name и Params. Эти четыре окно предназначенны для задания диапазона изменения текущей переменной, диапазона вывода функций принадлежности, наименования текущего лингвистического терма и параметров его функции принадлежности, соответственно. Параметры функции принадлежности можно подбирать и в графическом режиме, путем изменения формы функции принадлежности с помощью технологии “Drug and drop”. Для этого необходимо позиционировать курсор мыши на знаке режима “Drug and drop” (см. рис. 7.5), нажать на левую кнопку мыши и не отпуская ее изменять форму функции принадлежности. Параметры функции принадлежности будут пересчитываться автоматически. Меню File и View одинаковые для всех GUI-модулей используемых с системами нечеткого логического вывода. Они подробно описаны в разделе 7.1. Меню Edit Общий вид меню приведен на рис. 7.6. Рисунок 7.6. Меню Edit Команда Undo отменяет ранее совершенное действие. Выполняется также по нажатию Ctrl+Z. Команда Add MFs… позволяет добавить термы в терм-множество, используемое для лингвистической оценки текущей переменной. При выборе этой команды появится диалоговое окно (рис. 7.7), в котором необходимо выбрать тип функции принадлежности и количество термов. Значения параметров функций принадлежности будут установлены автоматически таким образом, чтобы равномерно покрыть область определения переменной, заданной в окне Range. При изменении области определения в окне Range параметры функций принадлежности будут промасштабированы. Рисунок 7.7. Выбор количества термов и типа функций принадлежности Команда Add Custom MF… позволяет добавить один лингвистический терм, функция принадлежности которого отличается от встроенных. После выбора этой команды появится графическое окно (рис. 7.8), в котором необходимо напечатать лингвистически терм (поле MF name),, имя функции принадлежности (поле MFile function name) и параметры функции принадлежности (поле Parameter list). Рисунок 7.8. Задание лингвистического терма с невстроенной функцией принадлежности Команда Remove Selected MF удаляет текущий терм из терм-множества текущей переменной. Признаком текущей переменной является красная окантовка ее прямоугольника. Признаком текущего терма является красный цвет его функции принадлежности. Для выбора текущего терма необходимо провести позиционирования курсора мыши на графике функции принадлежности и сделать щелчок левой кнопкой мыши. Команда Remove All MFs удаляет все термы из терм-множества текущей переменной. Команда FIS Properties… открывает FIS-редактор. Эта команда может быть также выполнена нажатием Ctrl+1. Команда Rules… открывает редактор базы знаний. Эта команда может быть также выполнена нажатием Ctrl+3. Меню Type Это меню позволяет установить тип функций принадлежности термов, используемых для лингвистической оценки текущей переменной. На рис. 7.9 приведено меню Type, в котором указаны возможные типы функций принадлежности. Рисунок 7.9. Меню Type 7.3. Редактор базы знаний Редактор базы знаний (Rule Editor) предназначен для формирования и модификации нечетких правил. Редактор базы знаний может быть вызван из любого GUI-модуля, используемого с системами нечеткого логического вывода, командой Rules… меню Edit или нажатием клавиш Ctrl+3. В FIS-редакторе открыть редактор базы знаний можно также двойным щелчком левой кнопкой мыши по прямоугольнику с названием системы нечеткого логического вывода, расположенного в центре графического окна. Общий вид редактора базы знаний с указанием функционального назначения основных полей графического окна приведен на рис. 7.10. В нижней части графического окна расположены кнопки Help и Close, которые позволяют вызвать окно справки и закрыть редактор, соответственно. Рисунок 7.10. Редактор базы знаний Редактор функций принадлежности содержит четыре системных меню File, Edit, View, Options, меню выбора термов входных и выходных переменных, поля установки логических операций И, ИЛИ, НЕ и весов правил, а также кнопки редактирования и просмотра правил. Для ввода нового правила в базу знаний необходимо с помощью мыши выбрать соответствующую комбинацию лингвистических термов входных и выходных переменных, установить тип логической связки (И или ИЛИ) между переменными внутри правила, установить наличие или отсутствие логической операции НЕ для каждой лингвистической переменной, ввести значение весового коэффициента правила и нажать кнопку Add Rule. По умолчанию установлены следующие параметры: логическая связка переменных внутри правила – И; логическая операция НЕ – отсутствует; значение весового коэффициента правила – 1. Возможны случаи, когда истинность правила не изменяется при произвольной значении некоторой входной переменной, т.е. это переменная не влияет на результат нечеткого логического вывода в данной области факторного пространства. Тогда в качестве лингвистического значения этой переменной необходимо установить none. Для удаления правила из базы знаний необходимо сделать однократный щелчок левой кнопкой мыши по этому правилу и нажать кнопку Delete Rule. Для модификации правила необходимо сделать однократный щелчок левой кнопкой мыши по этому правилу, затем установить необходимые параметры правила и нажать кнопку Edit Rule. Меню File и View одинаковые для всех GUI-модулей используемых с системами нечеткого логического вывода. Они подробно описаны в разделе 7.1. Меню Edit Общий вид меню приведен на рис. 7.11. Рисунок 7.11. Меню Edit Команда Undo отменяет ранее совершенное действие. Выполняется также по нажатию Ctrl+Z. Команда FIS Properties… открывает FIS-редактор. Эта команда может быть также выполнена нажатием Ctrl+1. Команда Membership Function… открывает редактор функций принадлежностей. Эта команда может быть также выполнена нажатием Ctrl+2. Меню Options Это меню позволяет установить язык и формат правил базы знаний (рис. 7. 12). Рисунок 7.12. Меню Options При выборе команды Language появится список языков English (Английский), Deutsch (Немецкий), Francais (Французкий), из которого необходимо выбрать один. При выборе команды Format появится список возможных форматов правил базы знаний: Verbose - лингвистический; Symbolic – логический; Indexed – индексированный. Различные форматы база знаний демо-системы нечеткого логического вывода Tipper приведены на рис. 7.10 (формат правил Verbose), рис. 7.13 (формат правил Symbolic) и рис. 7.14 (формат правил Indexed). Рисунок 7.13. База знаний в формате Symbolic Рисунок 7.14. База знаний в формате Indexed 7.4. Визуализация нечеткого логического вывода Визуализация нечеткого логического вывода осуществляется с помощью GUI-модуля Rule Viewer. Этот модуль позволяет проиллюстрировать ход логического вывода по каждому правилу, получение результирующего нечеткого множества и выполнение процедуры дефаззификации. Rule Viewer может быть вызван из любого GUI-модуля, используемого с системами нечеткого логического вывода, командой View rules … меню View или нажатием клавиш Ctrl+4. Вид Rule Viewer для системы логического вывода tipper с указанием функционального назначения основных полей графического окна приведен на рис. 7.15. Рисунок 7.15 – Визуализация логического вывода для системы tipper с помощью Rule Viewer Rule Viewer содержит четыре меню - File, Edit, View, Options, два поля ввода ввода информации – Input и Plot points и кнопки прокрутки изображения влево-вправо (left-right), вверх-вниз (up-down). В нижней части графического окна расположены также кнопки Help и Close, которые позволяют вызвать окно справки и закрыть редактор, соответственно. Каждое правило базы знаний представляется в виде последовательности горизонтально расположенных прямоугольников. При этом первые два прямоугольника (см. рис. 7.15) отображают функции принадлежностей термов посылки правила (ЕСЛИ-часть правила), а последний третий прямоугольник соответствует функции принадлежности терма-следствия выходной переменной (ТО-часть правила). Пустой прямоугольник в визуализации второго правила означает, что в этом правиле посылка по переменной food отсутствует (food is none). Желтая заливка графиков функций принадлежностей входных переменных указывает насколько значения входов, соответствуют термам данного правила. Для вывода правила в формате Rule Editor необходимо сделать однократный щелчок левой кнопки мыши по номеру соответствующего правила. В этом случае указанное правило будет выведено в нижней части графического окна. Голубая заливка графика функции принадлежности выходной переменной представляет собой результат логического вывода в виде нечеткого множества по данному правилу. Результирующее нечеткое множество, соответствующее логическому выводу по всем правилам показано в нижнем прямоугольнике последнего столбца графического окна. В этом же прямоугольнике красная вертикальная линия соответствует четкому значению логического вывода, полученного в результате дефаззификации. Ввод значений входных переменных может осуществляться двумя способами: путем ввода численных значений в поле Input; с помощью мыши, путем перемещения линий-указателей красного цвета. В последнем случае необходимо позиционировать курсор мыши на красной вертикальной линии, нажать на левую кнопку мыши и не отпуская ее переместить указатель на нужную позицию. Новое численное значения соответствующей входной переменной будет пересчитано автоматически и выведено в окно Input. В поле Plot points задается количество точек дискретизации для построения графиков функций принадлежности. Значение по умолчанию – 101. Меню File и View одинаковые для всех GUI-модулей используемых с системами нечеткого логического вывода. Они подробно описаны в разделе 7.1. Меню Edit Общий вид меню приведен на рис. 7.16. Рисунок 7.16. Меню Edit Команда FIS Properties… открывает FIS-редактор. Эта команда может быть также выполнена нажатием Ctrl+1. Команда Membership Functions… открывает редактор функций принадлежностей. Эта команда может быть также выполнена нажатием Ctrl+2. Команда Rules… открывает редактор базы знаний. Эта команда может быть также выполнена нажатием Ctrl+3. Меню Options Меню Options содержит только одну команду Format, которая позволяет установить один из следующих форматов вывода выбранного правило в нижней части графического окна: Verbose - лингвистический; Symbolic – логический; Indexed – индексированный. 7.5. Визуализация поверхности “входы-выход” Визуализация поверхности “входы-выход” осуществляется с помощью GUIмодуля Surface Viewer. Этот модуль позволяет вывести графическое изображение зависимости значения любой выходной переменной от произвольных двух (или одной) входных переменных. Surface Viewer может быть вызван из любого GUIмодуля, используемого с системами нечеткого логического вывода, командой View surface … меню View или нажатием клавиш Ctrl+4. Общий вид модуля Surface Viewer с указанием функционального назначения основных полей графического окна приведен на рис. 7.17. Рисунок 7.17. Визуализация поверхности “входы-выход” для системы tipper с помощью Surface Viewer Surface Viewer содержит верхних системных меню - File, Edit, View, Options, три меню выбора координатных осей - X (input), Y (input), Z (output), три поля ввода ввода информации – X girds, Y girds, Ref. Input и кнопку Evaluate для построения поверхности при новых параметрах. В нижней части графического окна расположены также кнопки Help и Close, которые позволяют вызвать окно справки и закрыть редактор, соответственно. Surface Viewer позволяет вращать поверхность “входы-выход” с помощью мыши. Для этого необходимо позиционировать курсор мыши на поверхности “входы-выход”, нажать на левую кнопку мыши и не отпуская ее повернуть графическое изображение на требуемый угол. Поля X girds и Y girds предназначены для задания количества точек дискретизации по осям X и Y, для построения поверхности “входы-выход”. По умолчанию количество дискрет по каждой оси равно 15. Для изменения этого значения необходимо установить маркер на поле X girds (Y girds) и ввести новое значение. Поле Ref. Input предназначено для задания значений входных переменных, кроме тех, которые ассоциированы с координатными осями. По умолчанию это значения середины интервалов изменения переменных. Для изменения этого значения необходимо установить маркер на поле Ref. Input и ввести новые значение. Меню File и View одинаковые для всех GUI-модулей используемых с системами нечеткого логического вывода. Они подробно описаны в разделе 7.1. Меню координатных осей Меню X (input), Y (input), Z (output) позволяют поставить в соответствие осям координат входные и выходные переменные. При этом входные переменные могут отображаться только по осям X и Y, а выходные переменные только по оси Z. В Surface Viewer предусмотрена возможность построения однофакторных зависимостей “вход-выход”. Для этого в меню второй координатной оси (X (input) или Y (input)) необходимо выбрать none. Меню Edit Общий вид меню приведен на рис. 7.16. Назначения команд меню описано в разделе 7.4. Меню Options Меню Options изображено на рис. 7.18. Оно содержит команды Plot, Color Map и Always evaluate. Рисунок 7.18. Меню Options Команда Plot позволяет управлять форматом вывода поверхности “входывыход”. При выборе этой команды появляется меню (рис. 7.19) в котором необходимо выбрать формат вывода поверхности. На рис. 7.20 приведены поверхности “входы-выход” для системы tipper для всех поддерживаемых форматов. Рисунок 7.19. Меню Plot Рисунок 7.20. Примеры форматов поверхности “входы-выход” Команда Color Map позволяет управлять палитрой цветов при выводе поверхности “входы-выход”. При выборе этой команды появляется меню, в котором необходимо выбрать одну из палитр: default – использовать палитру, установленную по умолчанию; blue – холодная сине-голубая палитра; hot – теплая палитра, состоящая из черного, красного, желтого и белого цветов; HSV – палитра насыщенных цветов: красный, желтый, зеленый, циан, голубой, мажента, красный. Команда Always evaluate позволяет установить / отменить режим автоматического, т.е. без нажатия кнопки Evaluate, перерисовывания поверхности “входы-выход" при любом изменении параметров. 7.6. ANFIS-редактор ANFIS является аббревиатурой Adaptive Neuro-Fuzzy Inference System – (адаптивная нейро-нечеткая система). ANFIS-редактор позволяет автоматически синтезировать из экспериментальных данных нейро-нечеткие сети. Нейронечеткую сеть можно рассматривать как одну из разновидностей систем нечеткого логического вывода типа Сугэно. При этом функции принадлежности синтезированных систем настроены (обучены) так, чтобы минимизировать отклонения между результатами нечеткого моделирования и экспериментальными данными. Загрузка ANFIS-редактора осуществляется по команде anfisedit. В результате выполнения этой команды появится графическое окно, изображенное рис. 7.21. На этом же рисунке указаны функциональные области ANFIS-редактора, описание которых приведено ниже. Рисунок 7.21. Основное окно ANFIS-редактора ANFIS-редактор содержит 3 верхних меню - File, Edit и View, область визуализации, область свойств ANFIS, область загрузки данных, область генерирования исходной системы нечеткого логического вывода, область обучения, область тестирования, область вывода текущей информации, а также кнопки Help и Close, которые позволяют вызвать окно справки и закрыть ANFISредактор, соответственно. Меню File и View одинаковые для всех GUI-модулей используемых с системами нечеткого логического вывода. Они подробно описаны в разделе 7.1. Меню Edit Общий вид меню приведен на рис.7.22. Рисунок 7.22. Меню Edit Команда Undo отменяет ранее совершенное действие. Выполняется также по нажатию Ctrl+Z. Команда FIS Properties… открывает FIS-редактор. Эта команда может быть также выполнена нажатием Ctrl+1. Команда Membership Functions… открывает редактор функций принадлежностей. Эта команда может быть также выполнена нажатием Ctrl+2. Команда Rules… открывает редактор базы знаний. Эта команда может быть также выполнена нажатием Ctrl+3. Команда Anfis… открывает ANFIS-редактор. Эта команда может быть также выполнена нажатием Ctrl+3. Заметим, что данная команда, запущенная из ANFISредактора не приводит к выполнению каких-либо действий, так этот редактор уже открыт. Однако, в меню Edit других GUI-модулей, используемых с системами нечеткого логического вывода, добавляется команда Anfis…, позволяющая открыть ANFIS-редактор из этих модулей. Область визуализации В этой области выводится два типа информации: при обучении системы – кривая обучения в виде графика зависимости ошибки обучения от порядкового номера итерации. при загрузке данных и тестировании системы – экспериментальные данные и результаты моделирования. Экспериментальные данные и результаты моделирования выводятся в виде множества точек в двумерном пространстве. При этом по оси абцисс откладывается порядковый номер строчки данных в выборке (обучающей, тестирующей или контрольной), а по оси ординат - значение выходной переменной для данной строчки выборки. Используются следующие маркеры: голубая точка (.) – теструющая выборка; голубая окружность (o) – обучающая выборка; голубой плюс (+) – контрольная выборка; красная звездочка (*) – результаты моделирования. Область свойств ANFIS В области свойств ANFIS (ANFIS info) выводится информация о количестве входных и выходных переменных, о количестве функций принадлежностей для каждой входной переменной, а также о количестве строчек в выборках. В этой области расположены две кнопки Structure и Clear Plot. Нажатие кнопки Structure открыет новое графическое окно, в котором система нечеткого логического вывода представляет в виде нейро-нечеткой сети. В качестве иллюстрации на рис. 7.23 приведна нейро-нечеткая сеть, содержащая четыре входных переменных и одну выходную. В этой системе по три лингвистических терма используеться для оценки каждой из входных переменных и четыре терма для выходной. Нажатие кнопки Clear Plot позволяет очистить область визуализации. Рисунок 7.23. Пример структуры нейро-нечеткой сети Область загрузки данных В области загрузки данных (Load data) расположены: меню выбора типа данных (Type), содержащее альтернативы: o Traning - обучающая выборка; o Testing - тестирующая выборка; o Checking - контрольная выборка; o Demo - демонстрационный пример; меню выбора источника данных (From), содержащее альтернативы: o disk – диск; o worksp. - рабочая область MatLab; кнопка загрузки данных Load Data…, по нажатию которой появляется диалоговое окно выбора файла, если загрузка данных происходит с диска, или окно ввода идентификатора выборки, если загрузка данных происходит из рабочей области; кнопка очистки данных Clear Data. Примечание. В течении одной сеанса работы ANFIS-редактора можно загружать данные одного формата, т.е. количество входных переменных в выборках должно быть одинаковым. Область генерирования исходной системы нечеткого логического вывода В области генерирования (Generate FIS) расположены меню выбора способа создания исходной системы нечеткого логического вывода. Меню содержит следующие альтернативы: Load from disk – загрузка системы с диска; Load from worksp. – загрузка системы из рабочей области MatLab; Grid partition - генерирование системы по методу решетки (без кластеризации); Sub. clustering – генерирование системы по методу субкластеризации. В области также расположена кнопка Generate, по нажатию которой генерируется исходная система нечеткого логического вывода. При выборе Load from disk появляется стандартное диалоговое окно открытия файла. При выборе Load from worksp. появляется стандартное диалоговое окно ввода идентификатора системы нечеткого логического вывода. При выборе Grid partition появляется окно ввода параметров метода решетки (рис. 7.24), в котором нужно указать количество термов для каждой входной переменной и тип функций принадлежности для входных и выходной переменных. Рисунок 7.24. Окно ввода параметров для метода решетки При выборе Sub. clustering появляется окно ввода следующих параметров метода субкластеризации (рис. 7.25): Range of influence – уровни влияния входных переменных; Squash factor – коэффициент подавления; Accept ratio – коэффициент, установливающий во сколько раз потенциал данной точки должен быть выше потенциала центра первого кластера для того, чтобы центром одного из кластеров была назначена рассматриваемая точка; Reject ratio –коэффициент, установливающий во сколько раз потенциал данной точки должен быть ниже потенциала центра первого кластера, чтобы рассматриваемая точка была исключена из возможных центров кластеров. Рисунок 7.25. Окно ввода параметров для метода субкластеризации Более подробно параметры и алгоритм субкластеризации будут рассматриваться при описании функции subclust. Область обучения В области обучения (Train FIS) расположены меню выбора метода оптимизации (Optim. method), поле задания требуемой точности обучения (Error tolerance), поле задания количества итераций обучения (Epochs) и кнопка Train Now, нажатие которой запускает режим обучение. Промежуточные результаты обучения выводятся в область визуализации и в рабочую област MatLab. В ANFIS-редакторе реализованы два метода обучения: backpropa – метод обратного распространения ошибки, основанный на идеях метода наискорейшего спуска; hybrid – гибридный метод, объединяющий метод обратного распространения ошибки с методом наименьших квадратов. Область тестирования В области тестирования (Test FIS) расположены меню выбора выборки и кнопка Test Now, по нажатию по которой происходит тестирование нечеткой системы с выводом результатов в область визуализации. Область вывода текущей информации В этой области выводится наиболее существенная текущая информация, например, сообщения об окончании выполнении операций, значение ошибки обучения или тестирования и т.п. 7.7. Findcluster GUI-модуль Findcluster позволяет автоматически находить центры кластеров многомерных данных с помощью нечеткого c-means алгоритма и алгоритма субтрактивной кластеризации. Загрузка модуля Findcluster осуществляется по команде findcluster. Основное графическое окно модуля Findcluster с указанием назначения функциональных областей приведено на рис. 7.26. Рисунок 7.26. Основное окно модуля Findcluster Модуль Findcluster содержит 7 верхних типовых меню графического окна (File, Edit, View, Insert, Tools, Windows и Help), область визуализации, область загрузки данных, область кластеризации, область вывода текущей информации а также кнопки Info и Close, которые позволяют вызвать окно справки и закрыть модуль, соответственно. Область визуализации В этой области в двумерном пространстве выводятся экспериментальные данные (образы) и найденные центры кластеров. Для образов используется маркер в виде красной окружности (o), а для центров кластеров – маркер в виде черной точки ( ). В области также расположены меню выбора координатных осей X-axis и Yaxis, позволяющие ассоциировать признаки образов с осями абсцисс и ординат, соответственно. Область загрузки данных В этой области, которая расположена в правом верхнем углу окна, находится кнопка Load Data…. Нажатие этой кнопки позволяет загрузить данные для кластеризации, хранящиеся на диске. После нажатия кнопки Load Data… открывается типовое окно открытия файла. В файле данные должны быть записаны построчно, т. е. каждому образу должна соответствовать одна строка файла данных. Область вывода текущей информации В этой области, которая расположена внизу графического окна, выводится наиболее важная текущая информация, например, состояние модуля, номер итерации алгоритма кластеризации, значение целевой функции и т.п. Область кластеризации В этой области пользователь может выбрать алгоритм кластеризации, установить параметры алгоритма кластеризации, провести кластеризацию и сохранить координаты центров кластеров в виде файла. В области расположены следующие меню и кнопки. Меню Method… позволяет выбрать один из двух алгоритмов кластеризации: subtractiv – алгоритм субтрактивной кластеризации; fcm - нечеткий c-means алгоритм. При выборе алгоритма субтрактивной кластеризации графическое окно модуля Findcluster имеет вид, показанный на рис. 7.26. В этом случае пользователь имеет возможность установить значения следующих параметров алгоритма Influence Range, Squash, Accept Ratio и Reject Ratio, смысл которых объяснен в описании функции subclust. При выборе нечеткого c-means алгоритма область кластеризации принимает вид, изображенный на рис. 7.27. В этом случае пользователь имеет возможность установить значения следующих параметров: Cluster Num. - количество кластеров; Max Iteration # - максимальное количество итераций алгоритма; Min - минимально допустимое значение улучшения целевой функции за одну итерацию алгоритма; Exponent - значения экспоненциального веса. Дополнительная информация об этих параметрах приведена в описании функции fcm (подраздел 8.8). Рисунок 7.27. Область кластеризации для нечеткого c-means алгоритма кластеризации Кнопка Start – запускает кластеризацию. При использовании алгоритма fcm значения координат центров кластеров выводятся в окне визуализации после каждой итерации. При использовании субтрактивной алгоритма открывается дополнительное окно (рис. 7.28), показывающее динамику процесс кластеризации. Координаты центров кластеров выводятся по окончанию выполнения алгоритма. Рисунок 7.28. Окно выполнения алгоритма субтрактивной кластеризации Кнопка Save Center… - позволяет сохранить координаты найденных центров кластеров. По нажатию этой кнопки открывается типовое окно записи данных в файл. Координаты центров записываются в таком же формате, как и данные для кластеризации, т. е. каждая строчка файла содержит значения координат одного центра. Кнопка Clear Plot позволяет очистить поле вывода данных. Список литературы 1. Zadeh L. Fuzzy sets // Information and Control. — 1965. — №8. — P. 338-353. 2. Заде Л. Понятие лингвистической переменной и ее применение к принятию приближенных решений. — М.: Мир, 1976. — 167 с. 3. Орловский С.А. Проблемы принятия решений при нечеткой исходной информации. — М.: Радио и связь, 1981. — 286 с. 4. Ротштейн А.П., Штовба С.Д. Проектирование нечетких баз знаний: лабораторный практикум и курсовое проектирование. Учебное пособие. - Винница: Винницкий государственный технический университет, 1999.- 65с. (На укр. языке). 5. Ротштейн А.П., Штовба С.Д. Влияние методов деффазификации на скорость настройки нечеткой модели // Кибернетика и системный анализ.2002.- №1. 6. Fuzzy Logic Toolbox. User’s Guide, Version 2. The MathWorks, Inc., 1999. 8. Настройка нечетких моделей типа Мамдани При написании материала этого раздела использовались источники [1-8]. В модели типа Мамдани взаимосвязь между входами X=(x1,x2,...,xn) и выходом y определяется нечеткой базой знаний следующего формата: ЕСЛИ ИЛИ ... ИЛИ ТО Где ai,jp - лингвистический терм, которым оценивается переменная xi в строчке с номером jp ( ); kj - количество строчек-конъюнкций, в которых выход y оценивается лингвистическим термом dj ; - весовой коэффициент правила с порядковым номером jp число из диапазона [0, 1], задающее относительный вес правила при нечетком логическом выводе; м - количество термов, используемых для лингвистической оценки выходной переменной. С помощью операций Y (ИЛИ) и I (И) нечеткую базу знаний перепишем в более компактном виде: (1) Все лингвистические термы в базе знаний (1) представляются как нечеткие множества, заданные соответствующими функциями принадлежности. База знаний (1) может трактоваться как некоторое разбиение пространства влияющих факторов на подобласти с размытыми границами, в каждой из которых функция отклика принимает значение, заданное соответствующим нечетким множеством. Правило в базе знаний представляет собой "информационный сгусток", отражающий одну из особенностей зависимости "входы выход". Такие "сгусти насыщенной информации" или "гранулы знаний" могут рассматриваться как аналог вербального кодирования, которое, как установили психологи, происходит в человеческом мозге при обучении. Видимо поэтому, формирование нечеткой базы знаний в конкретной предметной области, как правило, не составляет трудностей для эксперта. Введем следующие обозначения, необходимые для дальнейшего изложения материала: - функция принадлежности входа xi нечеткому терму ai,jp, , т. е. , - функция принадлежности выхода нечеткому терму d j, т. е. . Степень принадлежности входного вектора нечетким термам dj из базы знаний (2) определяется следующей системой нечетких логических уравнений: (2) где - операция из s-нормы (t-нормы), т.е. из множества реализаций логической операций ИЛИ (И). Наиболее часто используются следующие реализации: для операции ИЛИ - нахождение максимума и для операции И нахождение минимума. Нечеткое множество , соответствующее входному вектору X* , определяется следующим образом: , где imp - импликация, обычно реализуемая как операция нахождения минимума; agg - аггреатирование нечетких множеств, которое наиболее часто реализуется операцией нахождения максимума. Четкое значение выхода y , соответствующее входному вектору X * определяется в результате дефаззификации нечеткого множества . Наиболее часто применяется дефаззификация по методу центра тяжести: , где - символ интеграла Будем предполагать, что существует выборка экспериментальные данных, связывающая входы X=(x1,x2,...,xn) с выходом y исследуемой зависимости: (3) где Xr=(xr,1,xr,2,...,xr,n) - вектор входов и yr выход в r-паре; М - объем выборки. Задача настройки состоит в нахождении нечеткой модели F , обеспечивающей минимальное значение среднеквадратической невязки: (4) где F(Xr) - значение выхода нечеткой модели при значении входов, заданных вектором Xr. Выход нечеткой модели зависит от ее структуры - правил базы знаний и параметров: функций принадлежностей, весовых коэффициентов правил, реализаций логических операций, метода дефаззификации. Нахождение параметров нечеткой модели, обеспечивающих минимальное значение критерия (4) и является задачей настройки. Обозначим через P - вектор параметров функций принадлежностей термов входных и выходной переменных нечеткой модели и через W - вектор весовых коэффициентов правил базы знаний. Тогда настройка нечеткой модели типа Мамдани сводится к следующей задаче математического программирования: найти такой вектор (P,W) чтобы: . В приведенной выше задаче оптимизации на управляемые переменные P обычно накладывают ограничения, обеспечивающие линейную упорядоченность элементов терм-множеств. Такие ограничения не позволяют алгоритмам оптимизации сделать, например, терм "Низкий" выше "Высокого". Кроме того, ядра нечетких множеств не должны выходить за пределы диапазонов изменения соответствующих переменных. Что касается вектора W , то его координаты должны находиться в диапазоне [0, 1]. Настройка моделей типа Мамдани в пакете Fuzzy Logic Toolbox не предусмотрена. Мы предлагаем для решения этой задачи использовать функции нелинейной оптимизации из матлабовского пакета Optimization Toolbox. Применение пакетов Fuzzy Logic Toolbox и Optimization Toolbox для настройки нечеткой модели типа Мамдани проиллюстрируем на примере идентификации нелинейной зависимости (5) в диапазоне . Исходными данными для идентификации являются график функции (рис. 1a) и обучающая выборка в форме (3), приведенная в файле tr_set_mamdani.dat. Входы и выход нечеткой модели будем рассматривать как лингвистические переменные, значения которых определяются из следующих терм-множеств: {"Низкий", "Средний", "Высокий"} для x1 и x2 , и {"Низкий", "Ниже Среднего", "Средний", "Выше Среднего", "Высокий"} для y . Формализацию термов осуществим с помощью симметричной гауссовской функции принадлежности (gaussmf): где х - элемент универсального множества, h - параметр функции принадлежности координата максимума; c - параметр функции принадлежности коэффициент концентрации. Выбор такого типа функции принадлежности обусловлен ее достаточной гибкостью и простотой - она задается лишь двумя параметрами. Это позволяет сократить размерность задачи оптимизации, возникающей на этапе настройки. В результате визуального наблюдения графика идентифицируемой зависимости (рис. 1a) сформулируем семь правил базы знаний (табл. 1). Исходная нечеткая модель представлена файлом mamdani_0.fis. Поверхность "входы-выход" исходной нечеткой модели показана на рис.1b. Как видно из рисунка до настройки нечеткая модель отражает основные особенности идентифицируемой зависимости. Таблица 1 Нечеткая база знаний для зависимости (5) x1 x2 y Низкий Низкий Высокий Низкий Средний Низкий Низкий Высокий Высокий Средний - Средний Высокий Низкий Выше среднего Высокий Средний Ниже среднего Высокий Высокий Выше среднего Для настройки нечеткой модели будем использовать программу, приведенную в файле train_mam.m . Это m-сценарий, вызывающий функцию нелинейной оптимизации constr и m-функцию ob_fun_mamdani.m, вычисляющую невязку на обучающей выборке при заданных значениях управляемых переменных. Количество управляемых переменных равно 23: 7 весовых коэффициентов правил базы знаний; 11 коэффициентов концентраций функций принадлежностей термов входных и выходной переменных; 2 координаты максимумов функций принадлежностей термов "Средний" входных переменных; 3 координаты максимумов функций принадлежностей не крайних термов выходной переменной (т.е. термов "Ниже Среднего", "Средний" и "Выше Среднего"). Координаты максимумов функций принадлежностей крайних термов ("Низкий" и "Высокий") не настраиваются, так как нет никаких логических оснований предполагать, что они будут отличаться от границ диапазонов изменения переменных. В результате настройки получена новая нечеткая модель, записанная в файле mamdani_trained.fis . Оптимальные функции принадлежности нечетких термов и веса правил показаны на рис. 2 и в табл.2, соответственно. Поверхность "входы выход", соответствующая настроенной нечеткой модели типа Мамдани, показана на рис. 1c. Как видно из рисунка, настроенная нечеткая модель хорошо отражает поведение идентифицируемой зависимости, На это также указывает и малое значение средней квадратической невязки как на обучающей выборке 0.252, так и на контрольной выборке из 1024 точек, равное 4.61. Обратим внимание на то, обучающая выборка содержит всего 20 пар точек "входы выход", что меньше количества настраиваемых параметров (23). Несмотря на это, результаты настройки хорошие, что объясняется качественной базой знаний. Фактически, исходная нечеткая база знаний (табл. 1) уже является грубой моделью зависимости (5), и на этапе настройки модель лишь доучивается - значения её параметры незначительно изменяются. Таблица 2 Нечеткая база знаний для зависимости (5) после настройки x1 x2 y Низкий Низкий Высокий Низкий Средний Низкий 0,551 Низкий Высокий Высокий 0,927 0,992 Средний - Средний 0,498 Высокий Низкий Выше среднего 0,043 Высокий Средний Ниже среднего 0,142 Высокий Высокий Выше среднего 0,383 Рисунок 1 - Поверхности " входы-выход" a) исходной зависимости (5); b) ненастроенной нечеткой модели; c) нечеткой модели после настройки. Рисунок 2 - Функции принадлежности после настройки Литература 1. Ротштейн А.П. Интеллектуальные технологии идентификации: нечеткая логика, генетические алгоритмы, нейронные сети. - Винница: УНИВЕРСУМ-Винница, 1999. - 320 с 2. Rotshtein A. Desig and Tuning of Fuzzy Rule-Based System for Medical Diagnosis. In Fuzzy and Neuro-Fuzzy Systems in Medicine (Teodorescu N.H. (ed.)). CRC-Press.-1998.-pp.243-289. 3. Ротштейн А.П., Кательников Д.И. Идентификация нелинейных зависимостей нечеткими базами знаний // Кибернетика и системный анализ. 1998. - №5. - С. 53-61. 4. Ротштейн А.П., Штовба С.Д. Влияние методов дефаззификации на скорость настройки нечеткой модели // Кибернетика и системный анализ. 2002. №5. - С.169-176. 5. Штовба С.Д. Идентификация нелинейных зависимостей с помощью нечеткого логического вывода в пакете MATLAB // Exponenta Pro: Математика в приложениях. - 2003.- №2 (принято в печать). 6. Zimmermann H.-J. Fuzzy Set Theory and its Applications. 3rd ed.Dordrecht: Kluwer Academic Publishers.- 1996. 315p 7. Fuzzy Logic Toolbox. User's Guide, Version 2. The MathWorks, Inc., 1999. 8. Optimization Toolbox. User's Guide, Version 2. The MathWorks, Inc., 1999. 9. Синтез нечетких моделей с помощью субтрактивной кластеризации и ANFIS-алгоритма В этом разделе рассматривается двухэтапная процедура построения нечетких моделей типа Сугэно. На первом этапе синтезируются нечеткие правила из экспериментальных данных с использование субтрактивной кластеризации. На втором этапе настраиваются параметры нечеткой модели с помощью ANFISалгоритма. Субтрактивная кластеризация может использоваться как быстрый автономный метод синтеза нечетких правил из данных. Кроме того, этот метод может рассматриваться как своего рода препроцессинг для ANFIS-алгоритма синтезированная нечеткая модель является начальной точкой для обучения. Важным преимуществом применения кластеризации для синтеза нечеткой модели является то, что правила базы знаний получаются объектно-ориентированными. Это понижает возможность "комбинаторного взрыва" - катастрофического увеличения объема базы знаний при большом числе входных переменных. Изложение материала проводится на примере построения нечеткой модели зависимости количества автомобильных поездок из пригорода от его демографических показателей. Исходные данные для моделирования были собраны из 100 транспортных зон округа Ньюкасл (Делавэр). Необходимо узнать как зависит количество автомобильных поездок, заказанных из района, от пяти его демографических показателей: количество жителей; количество домов; количество автомобилей, средний уровень доходов на один дом; уровень занятости населения. Синтезируемая нечеткая модель будет иметь один выход и пять входов. Для загрузки данных необходимо напечатать команду tripdata . Сценарий tripdata создает в рабочей области несколько переменных. 75 из 100 пар данных "входы-выход" используются как обучающая выборка (переменные datin and datout). Для проверки генерализирующих свойств модели используется тестирующая выборка (переменные chkdatin и chkdatout), содержащая оставшиеся 25 пар данных. На рис. 9.1 приведена обучающая выборка. Эти графики построены командами: subplot(2,1,1), plot(datin); subplot(2,1,2), plot(datout); Рисунок 9.1 - Обучающая выборка: демографические показатели района (вверху) и количество автомобильных поездок (внизу) Функция genfis2 синтезирует нечеткую модель типа Сугэно с использование субтрактивной кластеризации. При вызове этой функции необходимо указать радиусы кластеров. Радиусы определяют насколько далеко от центра кластера могут быть его элементы. Значения радиусов должны находится в диапазоне [0, 1] в связи с тем, что при кластеризации исходные данные масштабируется на единичный гиперкуб. Обычно малые значения радиусов приводят к нахождению множества мелких кластеров, и, следовательно, к очень детализированной базе нечетких правил. Большие значения радиусов приводят к нахождению всего нескольких крупных кластеров и тем самым обеспечивают компактную базу знаний. Однако при этом можно упустить некоторые особенности моделируемой зависимости. Как правило, хорошие нечеткие базы знаний синтезируют при значениях радиусов из диапазона [0.2, 0.5]. Радиусы кластеров задаются третьим аргументом функции genfis2. Будем считать, что в кластерном анализе все координаты являются равноважными, поэтому значение этого аргумента можно задать скаляром. Следующая команда вызывает функцию genfis2 при значении радиусов кластера равных 0.5: fis=genfis2(datin,datout,0.5) . Используемый функцией genfis2 горный метод субтрактивной кластеризацией позволяет быстро экстрагировать нечеткие правила из данных. Это однопроходный метод, не использующий итерационных процедур оптимизации. В результате выполнения вышеприведенной команды синтезируется нечеткая модель Сугэно первого порядка с тремя правилами. Для вычисления ошибки моделирования на обучающей выборке вызовем следующие команды: fuzout=evalfis(datin,fis); trnRMSE=norm(fuzout-datout)/sqrt(length(fuzout)) В результате получим значение корня квадратного из средней квадратической невязки равное: trnRMSE = 0.5276. Теперь проверим как работает модель вне точек обучения - на тестирующей выборке. Для этого выполним аналогичные команды для тестирующей выборки: chkfuzout=evalfis(chkdatin,fis); chkRMSE=norm(chkfuzout-chkdatout)/sqrt(length(chkfuzout)) Значение ошибки на тестирующей выборке равно: chkRMSE = 0.6170. Неудивительно, что ошибка на тестирующей выборке больше, чем на обучающей. Сравним экспериментальные данные из тестирующей выборки с результатами нечеткого моделирования применяя команды: plot(chkdatout) hold on plot(chkfuzout,'o') hold off legend('экспериментальные данные', 'нечеткое моделирование') Результаты выполнения этих команд показаны на рис. 9-2. Видно, что нечеткая модель описывает тенденцию в данных. Однако, в отдельных случаях расхождения между экспериментальными данными и результатами моделирования значительные. Рисунок 9.2 - Тестирование нечеткой модели, синтезированной с помощью субтрактивной кластеризации Попытаемся улучшить модель с помощью ANFIS-обучения. Зададим относительно небольшое количество итераций обучения - 50. При обучении будем использовать только обучающую выборку с последующей проверкой настроенной нечеткой модели на тестирующей выборке. Обучение нечеткой модели осуществим командой fis2=anfis([datin datout],fis,[50 0 0.1]); . Рассчитаем ошибки моделирования на обучающей и тестирующей выборках после обучения: fuzout2=evalfis(datin,fis2); trnRMSE2=norm(fuzout2-datout)/sqrt(length(fuzout2)) chkfuzout2=evalfis(chkdatin,fis2); chkRMSE2=norm(chkfuzout2-chkdatout)/sqrt(length(chkfuzout2)) Значения ошибок равны: trnRMSE2 = 0.3407 и chkRMSE2 = 0.5836. Качество моделирования значительно возросло на обучающей выборке. В то же время адекватность модели на тестирующей выборке улучшилась несущественно. На это указывает и графики на рис. 9.3, построенные командами: plot(chkdatout) hold on plot(chkfuzout2,'o') legend('экспериментальные данные', 'нечеткое моделирование') hold off Рисунок 9.3 - Тестирование нечеткой модели после ANFIS-обучения Исследуем как зависит адекватность нечеткой модели от длительности обучения. Для этого вызовем функцию anfis в следующем формате: [fis3,trnErr,stepSize,fis4,chkErr]=anfis([datin datout],fis,[200 0 0.1],[], [chkdatin chkdatout]); Третий входной аргумент этой функции задает 200 итераций обучения. При обучении используется и тестирующая выборка, заданная четвертым входным аргументом функции anfis. Длинный список выходных аргументов возвращает протокол обучения модели: размер шага (stepSize), ошибки моделирования на обучающей (trnErr) и тестирующей (chkErr) выборках на каждой итерации алгоритма. После 200 итераций алгоритма минимальные ошибки на обучающей и тестирующих выборках равны 0.326566 и 0.582545, соответственно. На первый взгляд может показаться, что длительное обучение привело к хорошим результатам - предыдущие модели имели большие значения ошибок. Однако, указанные минимальные значения ошибок соответствует не одной и той же модели, а двум: fis3 - нечеткая модель с минимальной ошибкой на обучающей выборке и fis4 - нечеткая модель с минимальной ошибкой на тестирующей выборке. Посмотрим, на каких итерациях алгоритма обучения получены нечеткие модели с минимальными ошибками. Для этого выведем кривые обучения с помощью команд: plot(1:200, trnErr, 'r--', 1:200, chkErr, 'b-'); legend ('ошибка на обучающей выборке', 'ошибка на тестирующей выборке'); Из кривых обучения (рис. 9.4) видно, что ошибка на тестирующей выборке имеет тенденцию к уменьшению на протяжении около 50 итераций. Наименьшее значение этой ошибки достигается на 52-й итерации алгоритма обучения. После этого значение ошибки на тестирующей выборке начинает немного возрастать, хотя функция anfis продолжает минимизировать ошибку на обучающей выборке на протяжении всех 200 итераций. Начиная с 52-й итерации проявляется эффект переобучения, состоящий в потере генерализирующих свойств модели. Переобученная модель очень хорошо отражает реальность, репрезентированной обучающей выборкой. Вне точек обучения адекватность такой модели низкая результаты моделирования сильно отличаются от экспериментальных данных. Для недопущения переобучения обычно используют тактику "раннего останова" прекращение обучения при возрастании ошибки на тестирующей выборке. Рисунок 9.4 - Графики зависимости ошибок нечеткого моделирования от количества итераций обучения 10. Классификация на основе нечеткого логического вывода в MATLAB Задача классификации заключается в выполнении отображения вида: т.е. в отнесении объекта, заданного вектором информативных признаков X=(x1,x2,...,xn) , к одному из наперед определенных классов {d1,d2,...,dm} . Для проведения классификация на основе нечеткого логического вывода необходимы нечеткие системы с дискретным выходом, в которых выходная переменная принимает дно значение из множества {d1,d2,...,dm} . Пакет Fuzzy Logic Toolbox предлагает инструменты проектирования систем нечеткого логического вывода с непрерывным выходом, т.е. для случая, когда выходная переменная может принимать значения из диапазона . В настоящем разделе описывается программа fuz_classifer.m, выполняющая классификацию на основе нечеткого логического вывода. Программа разработана в Винницком государственном техническом университете доцентом Штовбой С.Д. В качестве нечеткого классификатора используется система нечеткого логического вывода типа Сугено. Классам решений соответствуют термы выходной переменной. Наименование класса задается как элемент терм-множества выходной переменной. Функция нечеткой классификации вызывается в формате: decision = fuz_classifer(x, fis, type) , где x - вектор информативных признаков объекта классификации; fis - система нечеткого логического вывода; type - тип возвращаемого функцией результата. Допустимые значения 'number' - порядковый номер класса и 'name' - имя класса. Значение по умолчанию - 'number'; decision - результат классификации для объекта x. Функция fuz_classifer вызывает функцию evalfis в формате: [a, b, c, d] = evalfis(x, fis) , что позволяет получить промежуточные результаты нечеткого логического вывода. Затем находятся правила с максимальной степенью выполнения. Если таких правил несколько и они для различных классов, тогда подсчитывается количество этих правилах для каждого класса решений. После этого выбирается решение, имеющее наибольшее количество правил с максимальной степенью выполнения. Функция нечеткой классификации может вызываться с двумя выходными аргументами: [decision mf_grades] = fuz_classifer(x, fis, type) , где mf_grades - вектор степеней принадлежности объекта, заданного вектором x, к классам решений. 11. Настройка моделей классификации на основе нечеткого логического вывода в MATLAB Задача классификации состоит в выполнении отображения вида: . Классификация на основе нечеткого логического вывода происходит по базе знаний вида: , Степени принадлежности объекта . классам рассчитываются так: (1) где - операция из s-нормы (t-нормы), т.е. из множества реализаций логической операций ИЛИ (И). Наиболее часто используются следующие реализации: для операции ИЛИ - нахождение максимума и для операции И нахождение минимума. В качестве решения выбирают класс с максимальной степенью принадлежности: Будем предполагать, что существует выборка экспериментальные данных, связывающая входы с выходом исследуемой зависимости: ,( ) где - вектор входов и - выход в r-ой паре выборки; - объем выборки. Выход нечеткой модели зависит от ее структуры - базы знаний, и параметров - функций принадлежностей и весов правил. Будем предполагать, что правила нечеткой базы знаний при настройке не меняются. В этом случае, настройка представляет собой нахождение параметров, минимизирующих расстояние между желаемым и действительным поведением нечеткой модели на обучающей выборке. Это расстояние можно определить по-разному. Первый способ заключается в выборе в качестве расстояния количества ошибок классификации на обучающей выборке. Это простой способ с ясной содержательной интерпретацией. Целевая функция задачи оптимизации, т.е. зависимость количества ошибок от параметров нечеткой модели, принимает дискретные значения 0, 1, 2,… Такой скачкообразный характер целевой функции затрудняет использование градиентных методов оптимизации. Особенно трудно настраивать нечеткую модель на небольших обучающих выборках, так как при этом возникают протяженные плато целевой функции, на которых "застревает" алгоритм оптимизации. Второй способ, предложенный профессором Ротштейном А.П. в [1, 2], основывается на фаззификации выходной переменной в обучающей выборке. Фаззификация происходит следующим образом: (2) Расстояние рассчитывается между векторами степеней принадлежности (1) и (2). Обозначим через - вектор параметров функций принадлежностей термов входных переменных, - вектор весов правил нечеткой базы знаний. Тогда настройка нечеткой модели сводится к следующей задачи оптимизации [1, 2]: найти такой вектор , чтобы: (3) где - степень принадлежности значения выходной переменной в r-ой пары обучающей выборке к решению в соответствии с (2); - степень принадлежности выхода нечеткой модели с параметрами к решению , определяемая по формуле (1) при значениях входов из r-ой пары обучающей выборке ( ). Целевая функция (3) не имеет протяженных плато, поэтому она пригодна к оптимизации градиентными методами. Однако, результаты оптимизации не всегда удовлетворительные. Полученная после оптимизации нечеткая модель обеспечивает минимальное значение функции (3), но не всегда обеспечивает минимум ошибок классификации. Это объясняется тем, что точки, близкие к границам разделения классов, вносят почти одинаковый вклад в значение целевой функции (3) как при правильной, так и при ошибочной классификации. Третий способ, который в этой работе предлагается впервые, наследует достоинства предыдущих способов. Идея заключается в том, чтобы расстояние по (3) увеличивать для ошибочно классифицированных объектов. Для этих объектов расстояние умножается на штрафной коэффициент. В результате целевая функция принимает вид: (4) где ; - результат классификации нечеткой модели с параметрами для объекта из в r-ой пары обучающей выборке ( ); - штрафной коэффициент ( ). Для настройки нечетких моделей с дискретным выходом предлагается воспользоваться функциями нелинейной оптимизации из матлабовского пакета Optimization Toolbox. Применение пакетов Fuzzy Logic Toolbox и Optimization Toolbox для настройки нечеткой модели классификации проиллюстрируем на следующем примере. Рассматривается объект с двумя входами x1,x2 и одним выходом y, который может принимать одно из трех дискретных значений в соответствии с решающими правилами: . Исходными данными для построения нечеткого классификатора является выборка данных, содержащая 80 пар "входы - выход". Обучающая выборка записана в файле tr_set_class.dat. Графическое изображения данных из выборки, а также разделяющие кривые показаны на рис. 1а. А) Б) Рисунок 1 - Классификация на основе нечеткого логического вывода б) обучающая выборка и разделяющие кривые; а) результаты нечеткой классификации до настройки. Входы нечеткой модели будем рассматривать как лингвистические переменные, значения которых определяются из следующих терм-множеств: {"Низкий", "Средний", "Высокий"} для , и {"Низкий", "Ниже Среднего", "Выше Среднего", "Высокий"} для . Формализацию термов осуществим с помощью симметричной гауссовской функции принадлежности (gaussmf). где , - элемент универсального множества, - параметр функции принадлежности - координата максимума; - параметр функции принадлежности - коэффициент концентрации. Коэффициенты концентраций для всех функций принадлежности выбирались равными 2. Координаты максимумов выбирались так, чтобы разбить интервал [0, 10] на три (для ) и на четыре (для ) равные части. По рис. 1а можно легко сгенерировать нечеткие правила классификации. Будем использовать 6 правил классификации, приведенные в табл. 1. Исходная нечеткая модель представлена файлом class_source.fis. Результаты классификации по этой модели, полученные с использованием функции fuz_classifer.m , показаны на рис.1б. Исходная нечеткая модель с шестью правилами лишь грубо отражает нелинейные разделяющие кривые. Таблица 1 Нечеткая база знаний для классификации (до настройки) Средний Низкий (после настройки) Класс 1 1 0.62 Средний Ниже Среднего Класс 1 1 0.43 Низкий Ниже Среднего Класс 2 1 0.76 Высокий Выше Среднего Класс 2 1 0.61 Низкий 0.55 Выше Среднего Класс 3 1 Средний Высокий Класс 3 1 0.64 Для настройки нечеткой модели будем использовать программу, приведенную в файле train_class.m. Это m-сценарий, вызывающий функцию нелинейной оптимизации constr и m-функцию ob_fun_class.m, вычисляющую значение целевой функции (4) на обучающей выборке. Значение штрафного коэффициента принято равным 10. Настраивается 16 параметров нечеткой модели: 3 координаты максимумов функций принадлежностей термов "Средний", "Ниже Среднего" и "Выше Среднего"; 7 коэффициентов концентраций функций принадлежностей термов входных переменных; 6 весовых коэффициентов правил базы знаний. После настройки получена новая нечеткая модель, записанная в файле class_trained.fis. Оптимальные функции принадлежности термов и веса правил показаны на рис. 2 и в табл.1, соответственно. Динамика настройки нечеткой модели в виде зависимости значения критерия обучения (4) от количества итераций алгоритма оптимизации показана на рис. 3. На этом же рисунке приведены результаты тестирования нечетких моделей во время обучения. Тестирование проводилось на выборке из 5000 точек. Ошибка обучения по критерию (4) и ошибка классификации убывают на протяжении настройки нечеткой модели, что свидетельствует об отсутствии эффекта переобучения. На рис. 4 показаны результаты классификации для нечеткой модели после 200 и 900 итераций алгоритма оптимизации. Видно, что после настройки нечеткая модель с шестью лингвистическими правилами хорошо описывает сложные, нелинейные правила классификации. Рисунок 2 - Оптимальные функции принадлежности Рисунок 3 - Динамика настройки нечеткой модели а) б) Рисунок 4 - Классификация по настроенной нечеткой модели а) нечеткая модель после 200 итераций алгоритма настройки; б) нечеткая модель после 900 итераций алгоритма настройки. Литература 1. Ротштейн А.П. Интеллектуальные технологии идентификации: нечеткая логика, генетические алгоритмы, нейронные сети. - Винница: УНИВЕРСУМ-Винница, 1999. - 320 с 2. Rotshtein A. Desig and Tuning of Fuzzy Rule-Based System for Medical Diagnosis. In Fuzzy and Neuro-Fuzzy Systems in Medicine (Teodorescu N.H. (ed.)). CRC-Press.-1998.-pp.243-289. 12. Нечеткая кластеризация Кластеризация - это объединение объектов в группы (кластеры) на основе схожести признаков для объектов одной группы и отличий между группами. Большинство алгоритмов кластеризации не опираются на традиционные для статистических методов допущения; они могут использоваться в условиях почти полного отсутствия информации о законах распределения данных. Кластеризацию проводят для объектов с количественными (числовыми), качественными или смешанными признаками. В этой работе рассматривается кластеризация только для объектов с количественными признаками. Исходной информацией для кластеризации является матрица наблюдений: , каждая строчка которой представляет собой значения n признаков одного из M объектов кластеризации. Задача кластеризации состоит в разбиении объектов из на несколько подмножеств (кластеров), в которых объекты более схожи между собой, чем с объектами из других кластеров. В метрическом пространстве "схожесть" обычно определяют через расстояние. Расстояние может рассчитываться как между исходными объектами (строчками матрицы ), так и от этих объектов к прототипу кластеров. Обычно координаты прототипов заранее неизвестны - они находятся одновременно с разбиением данных на кластеры. Существует множество методов кластеризации, которые можно классифицировать на четкие и нечеткие. Четкие методы кластеризации разбивают исходное множество объектов на несколько непересекающихся подмножеств. При этом любой объект из принадлежит только одному кластеру. Нечеткие методы кластеризации позволяют одному и тому же объекту принадлежать одновременно нескольким (или даже всем) кластерам, но с различной степенью. Нечеткая кластеризация во многих ситуациях более "естественна", чем четкая, например, для объектов, расположенных на границе кластеров. Методы кластеризации также классифицируются по тому, определено ли количество кластеров заранее или нет. В последнем случае количество кластеров определяется в ходе выполнения алгоритма на основе распределения исходных данных. В начале рассмотрим алгоритм c-средних, разбивающий данные на наперед заданное число кластеров, а затем алгоритм горной кластеризации, который не требует задания количества кластеров. 12.1 Кластеризация при заданном числе кластеров В начале рассмотрим ключевые идеи четкой кластеризации алгоритмом cсредних, затем базовый нечеткий алгоритм c-средних и в заключении основные пути улучшения нечеткой кластеризации. 12.1.1. Четкая кластеризация алгоритмом c-средних При кластеризации алгоритмом c-средних множество разбивается на подмножества , со следующими свойствами: (12.1) , , (12.2) , . (12.3) Условие (12.1) указывает, что все объекты должны быть распределены по кластерам. При этом, каждый объект должен принадлежать только одному кластеру (условие (12.2) ) и ни один из кластеров не может быть пустым или содержать все объекты (условие (12.3) ). Количество кластеров задается до начала работы алгоритма. Задачу кластеризации удобно формулировать использую характеристическую функцию. Характеристическая функция может принимать два значения: 0 - если элемент не принадлежит кластеру, и 1 - если элемент принадлежит кластеру. Используя характеристическую функцию, опишем кластеры следующей матрицей разбиения: , где k-ая строчка матрицы указывает на принадлежность объекта к кластерам . Матрица должна обладать следующими свойствами: (12.4) (12.5) Для оценки качества разбиения используется критерий разброса, показывающий сумму расстояний от объектов до центра своего кластера. Для евклидового пространства этот критерий записывается так [1]: где (12.6) - к-й объект кластеризации; - i-й кластер; - центр i-го кластера. Кластеризацию объектов можно сформулировать как следующую задачу оптимизации: найти матрицу , минимизирующую значение критерия (12.6). Дискретный характер четкого разбиения приводит к трудностям нахождения оптимальной кластеризации из-за негладкости целевой функции. 12.1.2. Базовый алгоритм нечетких c-средних Нечеткие кластера опишем следующей матрицей нечеткого разбиения: в которой k-ая строчка содержит степени принадлежности объекта к кластерам . Единственным отличием матриц и является то, что при нечетком разбиении степень принадлежности объекта к кластеру принимает значения из интервала [0, 1], а при четком - из двухэлементного множества {0, 1}. Аналогичные (12.4) - (12.5), условия для матрицы нечеткого разбиения записываются так [2]: (12.7) (12.8) Нечеткое разбиение позволяет просто решить проблему объектов, расположенных на границе двух кластеров - им назначают степени принадлежностей равные 0.5. Недостаток нечеткого разбиения проявляется при работе с объектами, удаленными от центров всех кластеров. Удаленные объекты имеют мало общего с любым из кластеров, поэтому интуитивно хочется назначить для них малые степени принадлежности. Однако, по условию (12.7) сумма их степеней принадлежностей такая же, как и для объектов, близких к центрам кластеров, т.е. равна единице. Для устранения этого недостатка можно использовать возможностное разбиение, которое требует, только чтобы произвольный объект из принадлежал хотя бы одному кластеру. Возможностное разбиение получается следующим ослаблением условия (12.7): . Для оценки качества нечеткого разбиения используется такой критерий разброса [2]: (12.9) где - центры нечетких кластеров; - экспоненциальный вес, определяющий нечеткость, размазаность кластеров. Предложено множество алгоритмов нечеткой кластеризации, основанных на минимизации критерия (12.9). Нахождение матрицы нечеткого разбиения с минимальным значение критерия (12.9) представляет собой задачу нелинейной оптимизации, которая может быть решена разными методами. Наиболее известный и часто применяемый метод решения этой задачи алгоритм нечетких c-средних, в основу которого положен метод неопределенных множителей Лагранжа. Он позволяет найти локальный оптимум, поэтому выполнение алгоритма из различных начальных точек может привести к разным результатам. Алгоритм нечетких c-средних [2] Шаг 1. Установить параметры алгоритма: c - количество кластеров; m экспоненциальный вес; - параметр останова алгоритма. Шаг 2. Случайным образом сгенерировать матрицу нечеткого разбиения , удовлетворяющую условия (12.7) - (12.8). Шаг 3. Рассчитать центры кластеров: , . Шаг 4. Рассчитать расстояния между объектами из и центрами кластеров: , , . Шаг 5. Пересчитать элементы матрицы нечеткого разбиения ( если : если : , ): ; , . Шаг 6. Проверить условие , где - матрица нечеткого разбиения на предыдущей итерации алгоритма. Если "да", то перейти к шагу 7, иначе - к шагу 3. Шаг 7. Конец. В приведенном алгоритме самым важным параметром является количество кластеров (c). Правильно выбрать количество кластеров для реальных задач без какой-либо априорной информации о структурах в данных достаточно сложно. Существует два формальных подхода к выбору числа кластеров. Первый подход основан на критерии компактности и разделимости полученных кластеров. Логично предположить, что при правильном выборе количества кластеров данные будут разбиты на компактные и хорошие отделимые друг от друга группы. В противном случае, кластеры, вероятно, не будут компактными и хорошо отделимыми. Существует несколько критериев оценки компактности кластеров, однако вопрос о том, как формально и достоверно определить правильность выбора количества кластеров для произвольного набора данных все еще остается открытым. Для алгоритма нечетких c-средних в [3] рекомендуется использовать индекс Хие-Бени, предложенный в [4]: . Второй подход предлагает начинать кластеризацию при достаточно большом числе кластеров, а затем последовательно объединять схожие смежные кластера. При этом используются различные формальные критерии схожести кластеров. Вторым параметром алгоритма кластеризации является экспоненциальный вес (m). Чем больше , тем конечная матрица нечеткого разбиения становится более "размазанной", и при она примет вид , что является очень плохим решением, т. к. все объекты принадлежат ко всем кластерам с одной и той же степенью. Кроме того, экспоненциальный вес позволяет при формировании координат центров кластеров усилить влияние объектов с большими значениями степеней принадлежности и уменьшить влияние объектов с малыми значениями степеней принадлежности. На сегодня не существует теоретически обоснованного правила выбора значения экспоненциального веса. Обычно устанавливают . 12.1.3. Обобщения алгоритма нечетких c-средних В базовом алгоритме нечетких c-средних расстояние между объектом и центром кластера рассчитывется через стандартную Евклидову норму: . В кластерном анализе применяются и другие нормы, среди которых часто используется диагональная норма и норма Махалонобиса. В общем виде норму можно задать через симметричную положительно определенную матрицу B размером следующим образом: , где T - операция транспонирования. Для Евклидовой нормы матрица B представляет собой единичную матрицу: . Евклидова норма позволяет выделять кластеры в виде гиперсфер. Для диагональной нормы матрица B задается следующим образом: . Элементы главной диагонали матрицы интерпретируются как веса координат. Диагональная норма позволяет выделять кластеры в виде гиперэллипсоидов, ориентированных вдоль координатных осей. Для нормы Махалонобиса матрица B рассчитывается через ковариационную матрицу от : , где - ковариационная матрица; - вектор средних значений данных. Норма Махаланобиса позволяет выделять кластеры в виде гиперэллипсоидов, оси которых могут быть ориентированы в произвольных направлениях. Примеры изолиний различных норм, показаны на рис. 11.1. На рис. 11.2 приведен пример нечеткой кластеризации методом нечетких c-средних при Евклидовом расстоянии. На левой части рисунка показаны данные для кластеризации. На правой части рисунка приведены результаты нечеткой кластеризации. Центры нечетких кластеров обозначены символами '+'. Восемь изолиний функций принадлежности нечетких кластеров построены для значений 0.67, 0.71, 0.75, 0.79, 0.83, 0.87, 0.91 и 0.95. Рисунок 11.1 - Изолинии различных норм Рисунок 11.2 - Нечеткая кластеризация при Евклидовой норме Для некоторых наборов данных "глазная кластеризация" позволяет выделить скопления данных в виде различных геометрических фигур: сферы, эллипсоиды разной ориентации, цепочки и т.п. В результате алгоритмов кластеризации с фиксированной нормой форма всех кластеров получается одинаковой. Алгоритмы кластеризации как-бы навязывают данным неприсущую им структуру, что приводит не только к неоптимальным, но иногда и к принципиально неправильным результатам, Для устранения этого недостатка предложено несколько методов, среди которых выделим алгоритм Густавсона-Кесселя (Gustafson-Kessel algorithm) [5]. Алгоритм Густавсона-Кесселя использует адаптивную норму для каждого кластера, т.е. для каждого i-го кластера существует своя норм-порождающая матрица . В этом алгоритме при кластеризации оптимизуруются не только координаты центров кластеров и матрица нечеткого разбиения, но также и нормпорождающие матрицы для всех кластеров. Это позволяет выделять кластера различной геометрической формы. Критерий оптимальности (11.9) линеен относительно относительно , поэтому для получения ненулевых решений, вводят некоторые ограничения на норм-пораждающие матрицы. В алгоритме ГуставсонаКесселя это ограничение на значение определителя норм-пораждающих матриц: . Оптимальное решение находится посредством метода неопределенных множителей Лагранжа. Алгоритм Густавсона-Кесселя, по сравнению с алгоритмом нечетких c-средних, обладает значительно большей вычислительной трудоемкостью. 12.1.4. Синтез нечетких правил по результатам нечеткой кластеризации Нечеткие правила можно синтезировать по результатам нечеткой кластеризации. Пусть объекты кластеризации имеют два признака ( ).Тогда результаты нечеткого разбиения можно представить трехмерным графиком: для каждого объекта отложить по осям абсцисс и ординат значения признаков, а по оси аппликат - степень принадлежности объекта нечеткому кластеру. Количество таких графиков будет равно числу кластеров (n). Пример А. Данные представлены следующей таблицей: k 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 1 1 3 3 3 5 7 9 11 11 11 13 13 13 1 4 7 2 4 6 4 4 4 2 4 6 1 4 7 Графическое изображение этих данных представляет собой "бабочку" хорошо известный в теории распознавания образов пример кластеризации. Установим такие параметры алгоритма нечетких c-средних: c=2, m=2 и . После 8-ми итераций получаем следующее нечеткое разбиение: k 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0.909 0.976 0.909 0.947 0.998 0.947 0.879 0.5 0.121 0.053 0.002 0.053 0.091 0.024 0.091 0.091 0.024 0.091 0.053 0.002 0.053 0.121 0.5 0.879 0.947 0.998 0.947 0.909 0.976 0.909 Значение критерия (12.9) для этого нечеткого разбиения равно 82.94. Трехмерные изображения нечетких кластеров приведены на рис. А. Рисунок А - Нечеткие кластера из примера А Функции принадлежности нечетких кластеров (рис. А) напоминают нечеткие отношения (см. рис.11). Следовательно, каждому кластеру можно поставить в соответствие одно нечеткое правило. По результатам нечеткой кластеризации можно синтезировать нечеткие правила различных баз знаний: синглтоной, Мамдани и Сугено. Функции принадлежности термов в посылках правила получаются проецированием степеней принадлежности соответствующего кластера (строчки матрицы нечеткого разбиения ) на входные переменные. Затем полученные множества степеней принадлежностей аппроксимируют подходящими параметрическими функциями принадлежности. В качестве заключения правила синглтоной базы знаний выбирают координату центра кластера. Заключения правил базы знаний Мамдани находят также как и функции принадлежности термов входных переменных. Заключения правил базы знаний Сугено находят по методу наименьших квадратов. При кластеризации с использованием нормы Махалонобиса в качестве заключений правил типа Сугено могут быть выбраны уравнения длинных осей гиперэллипсоидов. Пример Б. Данные для кластеризации изображены на рис. Б. На этом рисунке также показаны центры двух нечетких кластеров и изолинии для следующих значений функций принадлежности нечетким кластерам: 0.95, 0.9, 0.85, 0.8, 075, 0.7 и 0.65. Функции принадлежности нечетких кластеров также изображены двумя трехмерными поверхностями. Они интерпретируются следующими нечеткими правилами: Если x=низкий, то y=низкий, Если x= высокий, то y=высокий, с функциями принадлежности термов, показанными на рис. В. Функции принадлежности получены проецированием поверхностей с рис. Б на переменные x и y. Маркеры на графиках функций принадлежности соответствует одному объекту кластеризации. Рисунок Б - К примеру Б: экстракция нечетких правил через нечеткую кластеризацию Рисунок В - К примеру Б: функции принадлежности 12.2 Кластеризация без задания количества кластеров В начале раздела излагаются основные идеи метода горной кластеризации, который не требует задания количества кластеров. Метод предложен Р. Ягером и Д. Филевым в 1993 г. Кластеризация по горному методу не является нечеткой, однако, ее часто используют при синтезе нечетких правил из данных. Применение горной кластеризации при проектировании нечетких баз знаний описывается в конце параграфа. Изложение материала базируется на книге [6]. 12.2.1 Основные идеи метода горной кластеризации На первом шаге горной кластеризации определяют точки, которые могут быть центрами кластеров. На втором шаге для каждой такой точки рассчитывается значение потенциала, показывающего возможность формирования кластера в ее окрестности. Чем плотнее расположены объекты в окрестности потенциального центра кластера, тем выше значение его потенциала. После этого итерационно выбираются центры кластеров среди точек с максимальными потенциалами. На первом шаге необходимо сформировать потенциальные центры кластеров. Для алгоритма горной кластеризации число потенциальных центров кластеров (Q) должно быть конечным. Ими могут быть объекты кластеризации (строчки матрицы ), тогда . Второй способ выбора потенциальных центров кластеров состоит в дискретизации пространство входных признаков. Для этого диапазоны изменения входных признаков разбивают на несколько интервалов. Проводя через точки разбиения прямые, параллельные координатным осям, получаем "решеточный" гиперкуб. Узлы этой решетки и будут соответствовать центрам потенциальных кластеров. Обозначим через - количество значений, которые могут принимать центры кластеров по й координате ( ). Тогда количество возможных кластеров будет равно: . На втором шаге алгоритма рассчитывается потенциал центров кластеров по следующей формуле: , , где - потенциальный центр h-го кластера, ; - положительная константа - расстояние между потенциальным центром кластера ( ) и объектом кластеризации ( ). В евклидовом пространстве это расстояние рассчитывается по формуле: . В случае, когда объекты кластеризации заданы двумя признаками ( ), графическое изображение распределения потенциала будет представлять собой поверхность, напоминающую горный рельеф. Отсюда и название - горный метод кластеризации. На третьем шаге алгоритма в качестве центров кластеров выбирают координаты "горных" вершин. Для этого, центром первого кластера назначают точку с наибольшим потенциалом. Обычно, наивысшая вершина окружена несколькими достаточно высокими пиками. Поэтому назначение центром следующего кластера точки с максимальным потенциалом среди оставшихся вершин привело бы к выделению большого числа близко расположенных центров кластеров. Чтобы выбрать следующий центр кластера необходимо вначале исключить влияние только что найденного кластера. Для этого значения потенциала для оставшихся возможных центров кластеров пересчитывается следующим образом: от текущих значений потенциала вычитают вклад центра только что найденного кластера (поэтому кластеризацию по этому методу иногда называют субтрактивной). Перерасчет потенциала происходит по формуле: , где - потенциал на 1-й итерации; - потенциал на 2-й итерации; центр первого найденного кластера: ; - положительная константа. Центр второго кластера определяется обновленного потенциала: по максимальному значению . Затем снова пересчитывается значение потенциалов: . Итерационная процедура пересчета потенциалов и выделения центров кластеров продолжается до тех пор, пока максимальное значение потенциала превышает некоторый порог. 12.2.2 Синтез нечеткой базы знаний на основе горной кластеризации Обозначим через - центры кластеров, найденные в результате горной кластеризации. Для упрощения выкладок примем, что центры кластеров заданы двумя координатами: , . Задача состоит в синтезе нечетких правил, связывающих вход (x) с выходом (y). Центру кластера ( ) ставится в соответствие одно нечеткое правило: , в котором нечеткие термы интерпретируются так: и . Функции принадлежностей этих нечетких термов задаются гауссовской кривой: где , , , - параметр алгоритма горной кластеризации. Литература 1. Дуда Р., Харт П. Распознавание образов и анализ сцен. М.: Мир. 1976. - 511c. 2. Bezdek J.C. Pattern Recognition with Fuzzy Objective Function. New York: Plenum Press. - 1981. 3. Babuska R. Fuzzy Modeling for Control. Boston: Kluwer Academic Publishers. - 1998. 4. Xei X.L., Beni G.A. Validity Measure for Fuzzy Clustering // IEEE Trans. on Pattern Anal. and Machine Intell. 3 (8). - 1991. - P. 841 - 846. 5. Gustafson D.E., Kessel W.C. Fuzzy Clustering with a Fuzzy Covariance Matrix. Proc. of IEEE CDC, San-Diego, USA. - P.761 - 766. 6. Yager R., Filev D. Essentials of Fuzzy Modeling and Control. USA: John Wiley & Sons. - 1984. - 387p. 13. Построения функций принадлежности на основе экспертной информации Практическое использование теории нечетких множеств предполагает наличие функций принадлежностей, которыми описываются лингвистические термы "низкий", "средний", "высокий" и т.п. Задача построения функций принадлежности ставится следующим образом: даны два множества: множество термов и универсальное множество . Нечеткое множество , которым описывается лингвистический терм , , на универсальном множестве U представляется в виде: определить степени принадлежностей элементов множества . Необходимо к элементам из множества L, т.е. найти для всех и . В разделе рассматриваются два метода построения функций принадлежности. Первый метод основан на статистической обработке мнений группы экспертов. Второй метод базируется на парных сравнениях, выполняемых одним экспертом. Изложение первого метода базируется на книге [1], второго - на работах [1-5]. 13.1. Метод статистической обработки экспертной информации Каждый эксперт заполняет опросник, в котором указывает свое мнение о наличии у элементов ( имеет следующий вид: ) свойств нечеткого множества … … ( ). Опросник Введем следующие обозначения: K - количество экспертов; эксперта о наличии у элемента свойств нечеткого множества , . Будем считать, что экспертные оценки бинарные, т.е.: на наличие (отсутствие) у элемента - мнение k-го , , , где 1 (0) указывает свойств нечеткого множества . По результатам опроса экспертов, степени принадлежности нечеткому множеству ( ) рассчитываются следующим образом: , . (12.1) Пример 12.1. Построить функции принадлежности термов "низкий", "средний", "высокий", используемых для лингвистической оценки переменной "рост мужчины". Результаты опроса пяти экспертов приведены в табл. 12.1. Таблица 12.1 Результаты опроса экспертов k термы [160, 165) [165, 170) низкий 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 Эксперт средний 1 высокий низкий Эксперт средний 2 высокий низкий Эксперт средний 3 высокий низкий Эксперт средний 4 высокий низкий Эксперт средний 5 высокий [170, [175, [180, [185, [190, [195, 2 175) 180) 185) 190) 195) 00) Результаты обработки экспертных мнений представлены в таблице 12.2. Числа над пунктирной линией - это количество голосов, отданных экспертами за принадлежность нечеткому множеству соответствующего элемента универсального множества. Числа под пунктирной линией - степени принадлежности, рассчитанные по формуле (12.1). Графики функций принадлежностей показаны на рис. 12.1. Таблица 12.2 Результаты обработки мнений экспертов термы низкий средний высокий [160, [165, [170, [175, [180, [185, [190, [195, 165) 170) 175) 180) 185) 190) 195) 200) 5 4 3 0 0 0 0 0 1 0.8 0.6 0 0 0 0 0 0 2 4 5 3 2 0 0 0 0.4 0.8 1 0.6 0.4 0 0 0 0 0 1 2 4 5 5 0 0 0 0.2 0.4 0.8 1 1 Рисунок 12.1 - Функции принадлежности нечетких множеств из примера 12.1 Для автоматизации расчетов при построении функций принадлежности предлагается следующая программа: function mu=vote2mu(vote) %Построение функции принадлежности на основе статистической обработки %голосования экспертов. %Расчитывает степени принадлежности (mu) по количество голосов (vote), %отданных экспертами за наличие у элемента свойств нечеткого множества. %Размеры vote и mu: % количество_термов Х количество_элементов_универсального_множества. %Автор - Штовба С.Д., www.vinnitsa.com/shtovba %Винницкий национальный технический университет %Максимальное число голосов, отданных за принадлежность элемента к каждому %нечеткому множеству: max_vote=max(vote')'; [n1, n2]=size(vote); %Нормализованные степени принадлежности: mu=vote./repmat(max_vote, 1, n2); Для расчета степеней принадлежности для данных примера 12.1 необходимо напечатать: vote=[5 4 3 0 0 0 0 0; 0 2 4 5 3 2 0 0; 0 0 0 1 2 4 5 5]; mu=vote2mu(vote) В результате получаем: mu = 1 0.8 0.6 0 0 0 0 0 0 0.4 0.8 1 0.6 0.4 0 0 0 0 0 0.2 0.4 0.8 1 1 13.2. Построение функций принадлежности на основе парных сравнений Исходной информацией для построения функций принадлежности являются экспертные парные сравнения. Для каждой пары элементов универсального множества эксперт оценивает преимущество одного элемента над другим по отношению к свойству нечеткого множества. Парные сравнения удобно представлять следующей матрицей: , где - уровень преимущество элемента над ( ), определяемый по девятибальной шкале Саати: 1 - если отсутствует преимущество элемента над элементом ; 3 - если имеется слабое преимущество над ; 5 - если имеется существенное преимущество над ; 7 - если имеется явное преимущество над ; 9 - если имеется абсолютное преимущество над ; 2,4,6,8 - промежуточные сравнительные оценки. Матрица парных сравнений является диагональной ( ‚ ) и обратно симметричной ( , ). Степени принадлежности принимаются равными соответствующим координатам собственного вектора матрицы парных сравнений: , . (12.2) Собственный вектор находится из следующей системы уравнений: (12.3) где - максимальное собственное значение матрицы A. Пример 12.2. Построить функцию принадлежности нечеткого множества "высокий мужчина" на универсальном множестве {170, 175, 180, 185, 190, 195}. Парные сравнения зададим следующей матрицей: . Собственные значения этой матрицы парных сравнений равны: 6.2494; 0.0318 + 1.2230i; 0.0318 - 1.2230i; - 0.1567 + 0.2392i; - 0.1567 - 0.2392i; 0.0004. Следовательно, . Степени принадлежности, найденные по формулам (12.3) и (12.2), приведены в табл. 12.3. Нечеткое множество получилось субнормальным. Для нормализации разделим все степени принадлежности на максимальное значение, т.е. на 0.3494. Графики функций принадлежности субнормального и нормального нечеткого множества "высокий мужчина" приведены на рис. 12.2. Таблица 12.3 К примеру 12.2: функции принадлежности нечеткого множества "высокий мужчина" 170 175 180 185 190 195 0.0284 0.0399 0.0816 0.1754 0.3254 0.3494 (субнормальное нечеткое множество) 0.0813 0.1141 0.2335 0.5021 0.9314 1.0000 (нормальное нечеткое множество) Рисунок 12.2 - К примеру 12.2: функции принадлежности нечеткого множества "высокий мужчина" Отклонение от n может служить мерой несогласованности парных сравнений эксперта. В примере 12.2 , а . Следовательно, мера несогласованности равна 0.2494. При согласованных парных сравнениях процедура построения функций принадлежности значительно упрощается. При согласованных мнениях эксперта матрица парных сравнений обладает следующими свойствами: она диагональная‚ т. е. aii=1 ‚ i=1..n ; она обратно симметрична‚ т. е. элементы‚ симметричные относительно главной диагонали‚ связаны зависимостью aij=1/aji , i,j=1..n ; она транзитивна‚ т. е. aikakj=aij , i,j,k=1..n . Наличие этих свойств позволяет определить все элементы матрицы парных сравнений, если известны (n-1) недиагональных элементов. Например, если известна k-тая строка‚ т. е. элементы akj , i,j=1..n ‚ то произвольный элемент aij определяется так: (12.4) После определения всех элементов матрицы парных сравнений степени принадлежности‚ нечеткого множества вычисляются по формуле: (12.5) Формула (12.5), в отличие от формул (12.2) - (12.3) не требует выполнения трудоемких вычислительных процедур, связанных с нахождением собственного вектора матрицы A. Пример 12.3. Построить функцию принадлежности нечеткого множества "высокий мужчина" на универсальном множестве {170, 175, 180, 185, 190, 195}, если известны такие экспертные парные сравнения: абсолютное преимущество 195 над 170; явное преимущество 195 над 175; существенное преимущество 195 над 180; слабое преимущество 195 над 185; отсутствует преимущество 195 над 190. Приведенным экспертным высказываниям соответствует такая матрица парных сравнений: Полужирным шрифтом выделенные элементы, соответствующие парным сравнениям из условия примера. Остальные элементы найдены по формуле (12.4). Применяя формулы (12.5) находим степени принадлежности (табл. 12.4). Для нормализации нечеткого множества разделим все степени принадлежности на максимальное значение, т.е. на 0.3588. Графики функций принадлежности субнормального и нормального нечеткого множества "высокий мужчина" приведены на рис. 12.3. Таблица 12.4 К примеру 12.3: функции принадлежности нечеткого множества "высокий мужчина" ui 170 175 180 185 190 195 μ высокий мужчина (ui) 0.0399 0.0513 0.0718 0.1196 0.3588/td> 0.3588 (субнормальное нечеткое множество) μ высокий мужчина (ui) ((нормальное нечеткое множество) 0.1111 0.1429 0.2000 0.3333 1.0000 1.0000 Рисунок 12.3 - К примеру 12.3: функции принадлежности нечеткого множества "высокий мужчина" Для автоматизации расчетов при построении функций принадлежности предлагается пакет программ MFEB. Пакет содержит такие функции: a2mu - рассчитывает степени принадлежности из матрицы парных сравнений по методу собственного вектора; half2a - формирует матрицу парных сравнений из строк с парными сравнениями; half2mu - рассчитывает степени принадлежности по строкам с парными сравнениями; a2mu_r - рассчитывает степени принадлежностей из матрицы парных сравнений по методу Ротштейна А.П.; string2a_r - формирует матрицу парных сравнений по одной строке, которой сравнивается один элемент со всеми остальными(включая и себя). Расчет элементов матрицы осуществляется по методу Ротштейна А.П.; string2mu_r - рассчитывает по методу Ротштейна А.П. степени принадлежности по одной строке матрицы парных сравнений. Синтаксис вызова функций следующий: [norm_mu, mu]=a2mu(A); [A, warning]=half2a(half_matr): [norm_mu, mu, warning]=half2mu(half_matr); [norm_mu, mu]=a2mu_r(A); [A, warning]=string2a_r(comp_str); [norm_mu, mu, warning]=string2mu_r(comp_str); где A - матрица парных сравнений; mu - степени принадлежности; norm_mu - степени принадлежноcти нормализованного нечеткого множества; comp_str - одна строка матрицы парных сравнений, в которой один элемент сравнивается со всеми остальными (включая и себя). Сравнения осуществляют по шкале Саати, поэтому допустимыми значениями являются числа: 1/9, 1/8, 1/7, 1/6, 1/5, 1/4, 1/3, 1/2, 1, 2, 3, 4, 5, 6, 7, 8, 9; warning - предупреждение. Возможные значения: 0 - все в порядке; -1 - матрица парных сравнений содержит элементы <1/9; 1 - матрица парных сравнений содержит элементы >9; half_matr - строки с парными сравнениями, образующий треугольник матрицы парных сравнений, расположенный выше главной диагонали. Формат half_matr: {[2 3...N] [3 ...N] ... [N]}, где [2 3...N] сравнивается 1-й элемент со всеми остальными; [3...N] - сравнивается 2-й элемент с 3-м, 4-м и т.д.; [N] - сравнивается (N-1)-й элемент с N-м. Допустимые значения элементов half_matr: 1/9, 1/8, 1/7, 1/6, 1/5, 1/4, 1/3, 1/2, 1, 2, 3, 4, 5, 6, 7, 8, 9. Примеры использования функций пакета. Построим функции принадлежности для данных примера 12.2. Для этого напечатаем: half_matr={[1/2 1/4 1/6 1/8 1/9] [1/3 1/5 1/7 1/8] [1/4 1/4 1/5] [1/3 1/3] 1}; A=half2a(half_matr) [norm_mu, mu]=a2mu(A) В результате получим матрицу парных сравнений, а также степени принадлежности нечеткого множества после и до нормализации: A= 1.0000 0.5000 0.2500 0.1667 0.1250 0.1111 2.0000 1.0000 0.3333 0.2000 0.1429 0.1250 4.0000 3.0000 1.0000 0.2500 0.2500 0.2000 6.0000 5.0000 4.0000 1.0000 0.3333 0.3333 8.0000 7.0000 4.0000 3.0000 1.0000 1.0000 9.0000 8.0000 5.0000 3.0000 1.0000 1.0000 norm_mu = 0.0813 0.1141 0.2335 0.5021 0.9314 1.0000 mu = 0.0284 0.0399 0.0816 0.1754 0.3254 0.3494 Если информация о матрице парных сравнений не важна, тогда рассчитать степени принадлежности можно командой: [norm_mu, mu]=half2mu(half_matr). Построим функции принадлежности для данных примера 12.3. Для этого напечатаем: comp_str=[9 7 5 3 1 1]; A=string2a_r(comp_str) [norm_mu, mu]=a2mu_r(A) В результате получим матрицу парных сравнений, а также степени принадлежности нечеткого множества после и до нормализации: A= 1.0000 0.7778 0.5556 0.3333 0.1111 0.1111 1.2857 1.0000 0.7143 0.4286 0.1429 0.1429 1.8000 1.4000 1.0000 0.6000 0.2000 0.2000 3.0000 2.3333 1.6667 1.0000 0.3333 0.3333 9.0000 7.0000 5.0000 3.0000 1.0000 1.0000 9.0000 7.0000 5.0000 3.0000 1.0000 1.0000 norm_mu = 0.1111 0.1429 0.2000 0.3333 1.0000 1.0000 mu = 0.0399 0.0513 0.0718 0.1196 0.3588 0.3588 Если информация о матрице парных сравнений не важна, тогда рассчитать степени принадлежности можно командой: [norm_mu, mu]=string2mu_r(comp_str). Литература 1. Борисов А.Н., Крумберг О.А., Федоров И.П. принятие решений на основе нечетких моделей: примеры использования. Рига: Зинатне. 1990. 184 С. 2. Саати Т.Л. Взаимодействие в иерархических системах // Техническая кибернетика. 1979. №1. С. 68-84. 3. Rotshtein A.P. Modification of Saaty Method for the Construction of Fuzzy Set Membership Functions. Proc. of the International Conference "Fuzzy Logic and its Applications", Zichron, Israel, 1997. P. 125-130. 4. Ротштейн А.П., Штовба С.Д. Нечеткий многокритериальный анализ вариантов с применением парных сравнений // Известия РАН. Теория и системы управления.- 2001.- №3.- С.150-154. 5. Zimmerman H.-J. Fuzzy Set Theory and its Applications. Dordrecht: Kluwer Academic Publishers. 1996. 315p. 13.3. Построение функций принадлежности кластеризацией экспериментальных данных Введение Функции принадлежности традиционно строят по экспертной информации. Методом статистической обработки экспертной информации [1] строят функции принадлежности, которые усредняют мнения коллектива специалистов относительно распределения элементов по множествам. Методами парных сравнений [1, 2, 3] функции принадлежности строят на основе мнений одного эксперта, который указывает преимущество одного элемента над другим. Ограничением этих методов является использование субъективной информации и некоторых допущений при преобразовании ее в степени принадлежности нечетких множеств. Иной подход к построению функций принадлежности базируется на параметрической идентификации нечетких моделей по экспериментальным данным "входы - выход". При такой идентификации оптимизируют параметры функций принадлежности с целью минимизации отклонения между экспериментальными данными и результатами нечеткого моделирования. Особенности обучения нечетких моделей изложены в разделах 8, 11, 15 и в книгах [3, 4, 5, 6]. Использование такого оптимизационного подхода снимает субъективизм построения функций принадлежности, однако взамен требует обучающей выборки и нечеткой модели "входы - выход". Обратим внимание, что функции принадлежности одинаковых по смыслу нечетких множеств получаются разными в результате идентификации различных зависимостей "входы - выход". Таким образом, функция принадлежности становится чувствительной к обучающей выборке и структуре нечеткой модели, т.е. к базе знаний. В теории нечетких множеств почти не уделено внимания построению функций принадлежности по распределению результатов наблюдений. Эта задача аналогична построению функции распределения случайной величины по выборке экспериментальных данных. В статистике для этого используется метод гистограмм. Этиv же методом строят и функции принадлежности, рассматривая функцию плотности случайной величины как функцию принадлежности соответствующего субнормального нечеткого множества [7]. Ниже предлагается новый метод построения функций принадлежности по распределению экспериментальных данных, который, в отличие от метода гистограмм, не требует больших выборок. Основной идеей предлагаемого метода является использования кластеризации экспериментальных данных, с помощью которой синтезируют функции принадлежности при экстракции нечетких моделей [5, 6]. Постановка задачи Будем считать, что известны (измерены) следующие числовые значения некоторого показателя: (y1, y2, ..., yv). Рассматриваются две задачи построения функций принадлежности по этим данным. Первая задача - синтез нечетких множеств , функции принадлежности которых соответствуют скоплениям данных (y1, y2, ..., yv). С математической точки зрения эта задача соответствует отображению вида: где - степень принадлежности элемента нечеткому множеству . Вторая задача - синтез одного нечеткого множества , функция принадлежности которой соответствует распределению данных (y1, y2, ..., yv), что соответствует отображению вида: где - степень принадлежности элемента нечеткому множеству . Для решения первой задачи предлагается использование нечеткой кластеризации по методу нечетких c-средних [8], а для второй - потенциальной функции из горного метода кластеризации [5]. Построение функций принадлежности с помощью нечеткой кластеризации При нечеткой кластеризации каждый объект может принадлежать всем кластерам, но с разной степенью. Если объект описывается только одним признаком, тогда предлагается сопоставить нечеткий кластер нечеткому множеству. При этом функция принадлежности нечеткого кластера будет соответствовать искомой функции принадлежности нечеткого множества. По условиям задачи объекты задаются числовыми значениями, следовательно, нечеткое множество надо рассматривать как нечеткое число. Поэтому для обеспечения свойств нормальности и выпуклости найденные нечеткие множества нужно аппроксимировать желаемыми параметрическими функциями принадлежности. В пакете Fuzzy Logic Toolbox нечеткая кластеризация реализована функцией fcm. Ниже показывается как с ее помощью строить функции принадлежности по распределению экспериментальных данных. Пример. Данные 392 измерений времени разгона автомобиля "с места" до скорости 60 миль в час приведены в [9]. По распределению этих данным построить 3 функции принадлежности. Для этого предлагается следующая программа, использующая функцию fcm. %ПОСТРОЕНИЕ ФУНКЦИЙ ПРИНАДЛЕЖНОСТИ ВРЕМЕНИ РАЗГОНА ДО СКОРОСТИ 6О МИЛЬ В ЧАС %С ПОМОЩЬЮ НЕЧЕТКОЙ КЛАСТЕРИЗАЦИИ ДАНЫХ %Автор - Штовба С.Д. (www.vinnitsa.com/shtovba) %Винницкий национальный технический университет %28 Мая 2006г. %Загружаем экспериментальные данные: [data, input_name] = loadgas; %Время для развития скорости 60 миль в час h=data(:,5)'; h=sort(h); N=length(h); %Нечеткая кластеризация: [center,mu,obj_fcn] = fcm(h', 3); %3 кластера %Выводим распределение экспериментальных данных f(1:N)=0; for i=2:N if h(i-1)==h(i); f(i)=f(i-1)+0.015; end end subplot(2,1,1) plot(h, f, 'k.', 'markersize', 12) hold on %Рисуем функции принадлежности: plot(h, mu(1,:), '-b+', 'linewidth', 1.5) plot(h, mu(2,:), 'md--', 'linewidth', 1, 'markersize', 4) plot(h, mu(3,:), 'rs-', 'linewidth', 1.5, 'markersize', 3.5) xlabel('Время разгона, сек.') handle=ylabel('\mu'); set(handle, 'Rotation', 0); ylim([-.02, 1.05]) xlim(minmax(h)) legend('Экспериментальные данные', 'Первая функция принадлежности', 'Вторая функция принадлежности', 'Третья функция принадлежности') Результатом выполнения этой программы является рис. 1. Полученные нечеткие множества можно интерпретировать термами "Малое", "Среднее" и "Значительное" время разгона. Рисунок 1. Функции принадлежности из примера 1, построенные нечеткой кластеризацией экспериментальных данных Построение функций принадлежности с помощью метода потенциалов При построении функций принадлежности будем использовать понятие потенциала точки, на котором базируется горная кластеризация. Потенциал точки это число, показывающее насколько плотно в ее окрестности расположены экспериментальные данные. Чем выше потенциал точки, тем ближе она к центру кластера. Потенциал точки рассчитывается таким образом [5]: где α>0 - коэффициент, задающий степень компактности кластера. Перед применением этой формулы экспериментальные данные следует отмассштабировать на отрезок [0, 1]. Нами предлагается степени принадлежности нечеткому множеству рассчитывает из потенциалов таким образом: При необходимости найденное нечеткое множество можно аппроксимировать подходящей параметрической функцией принадлежности. Для расчета потенциалов предлагается функция eval_potential: function potVals = eval_potential(X, alpha) %РАСЧЕТ ПОТЕНЦИАЛОВ ЭКСПЕРИМЕНТАЛЬНЫХ ДАННЫХ НА ИДЕИ ГОРНОЙ КЛАСТЕРИЗАЦИИ %Автор - Штовба С.Д. (www.vinnitsa.com/shtovba) %Винницкий национальный технический университет %28 Мая 2006г. numPoints=length(X); %Массштабируем данные на интервал [0, 1]: minX = min(X); maxX = max(X); X=(X-minX)./(maxX-minX); X = min(max(X,0),1); %Рассчитываем потенциал: potVals = zeros(1,numPoints); temp=ones(size(X)); coef=-4*alpha.^2; for i=1:numPoints thePoint = X(i); delta=(X-thePoint*temp).^2; potVals(i)=sum(exp(coef*delta)); end Ниже предлагается программа построения функций принадлежности с помощью функции eval_potential для данных предыдущего примера: %ПОСТРОЕНИЕ ФУНКЦИИ ПРИНАДЛЕЖНОСТИ ВРЕМЕНИ РАЗГОНА ДО СКОРОСТИ 6О МИЛЬ В ЧАС %НА ОСНОВЕ ПОТЕНЦИАЛЬНОЙ ФУНКЦИИ ИЗ ГОРНОЙ КЛАСТЕРИЗАЦИИ %Автор - Штовба С.Д. (www.vinnitsa.com/shtovba) %Винницкий национальный технический университет %28 Мая 2006г. %Загружаем экспериментальные данные: [data, input_name] = loadgas; %Время для развития скорости 60 миль в час: h=data(:,5)'; h=sort(h); N=length(h); %Рассчитываем потенциал каждой точки: pot1=eval_potential(h, 1); %alpha=1; pot2=eval_potential(h, 2); %alpha=2; %Пересчитываем потенциал в степень принадлежности: mu1=pot1./max(pot1); mu2=pot2./max(pot2); %Выводим распределение экспериментальных данных f(1:N)=0; for i=2:N if h(i-1)==h(i); f(i)=f(i-1)+0.015; end end subplot(2,1,1) plot(h, f, 'k.', 'markersize', 12) hold on plot(h, mu1, '.-r') plot(h, mu2, 'o-b') legend('Экспериментальные данные', 'Функция принадлежности при \alpha=1', 'Функция принадлежности при \alpha=2') xlabel('Время разгона, сек.') handle=ylabel('\mu'); set(handle, 'Rotation', 0); ylim([-.02, 1.05]) xlim(minmax(h)) Результатом выполнения этой программы является рис. 2, на котором приведены функции принадлежности нечеткого множества "Время разгона автомобиля". Функции принадлежности построены на основе метода потенциалов при двух значениях коэффициента компактности. α = 1 и α = 2. Чем меньше этой коэффициент, тем нечеткое множество размазанее. Рисунок 2. Функции принадлежности нечеткого множества "Время разгона автомобиля до скорости 60 миль в час", построенные по методу потенциалов В отличие от метода гистограмм, предложенный метод хорошо работает и при небольшом числе экспериментальных данных. В качестве примера на рис. 3 приведены функции принадлежностей времени разгона автомобилей, с 3-, 4-, 5-, 6и 8-цилиндровыми двигателями. В базе данных было только 3 пятицилиндровых автомобиля, но и этого количества экспериментальных данных достаточно, чтобы построить функцию принадлежности по методу потенциалов. Рассчитанные степени принадлежности хорошо аппроксимируются двухсторонними гауссовыми функциями принадлежности. Визуально они согласуются с экспериментальными данными. Рисунок 3. Зависимость функции принадлежности нечетких множеств "Время разгона автомобиля до скорости 60 миль в час" от количества цилиндров двигателя Выводы Предложены два метода построения функций принадлежности на основе распределения экспериментальных данных. Описаны прототипы программ, реализующих эти методы в среде MATLAB. Основной идеей этих методов является использование кластеризации экспериментальных данных, на основе которой синтезируют функции принадлежности при экстракции нечетких моделей. Предложенные методы будут полезны для получения исходных данных для работы с обобщенными на нечеткий случай аналитическими моделями, например, при прогнозировании надежности алгоритмических процессов [10, 11]. Другим перспективным направлением использования предложенных методов построения функций принадлежности является формирование нечетких обучающих выборок для идентификации нелинейных зависимостей нечеткими базами знаний [12]. Литература 1. Борисов А.Н., Крумберг О.А., Федоров И.П. Принятие решений на основе нечетких моделей: примеры использования. Рига: Зинатне. 1990. 184 с. 2. Yager R.R. Fuzzy Decision Making Including Unequal Objectives // Fuzzy Sets and Systems. No.1. 1978. P. 87-95. 3. Ротштейн А.П. Интеллектуальные технологии идентификации: нечеткая логика, генетические алгоритмы, нейронные сети. Винница: УНІВЕРСУМ-Вінниця, 1999. 320 с. 4. Митюшкин Ю.И., Мокин Б.И., Ротштейн А.П. Soft-Computing: идентификация закономерностей нечеткими базами знаний. - Винница: УНIВЕРСУМ-Вiнниця, 2002.- 145 с. 5. Yager R., Filev D. Essentials of Fuzzy Modeling and Control. USA: John Wiley & Sons.- 1994.- 387p. 6. Babuska R. Fuzzy Modeling for Control. Boston: Kluwer Academic Publishers.- 1998. 7. Дюбуа Д., Прад А. Теория возможностей. Приложения к представлению знаний в информатике. - М: Радио и связь, 1990. - 288 с. 8. Bezdek J.C. Pattern Recognition with Fuzzy Objective Function. New York: Plenum Press. 1981. 9. MPG data base of UCI Machine Learning Repository. 10. Ротштейн А.П., Штовба С.Д. Нечеткая надежность алгоритмических процессов.- Винница: Континент - ПРИМ, 1997.- 142 с. 11. Ротштейн А.П., Штовба С.Д. Прогнозирование надежности алгоритмических процессов при нечетких исходных данных // Кибернетика и системный анализ. - 1998. - №4. - С.85-93. 12. Ротштейн А.П., Штовба С.Д. Идентификация нелинейной зависимости нечеткой базой знаний с нечеткой обучающей выборкой // Кибернетика и системный анализ. - 2006. - №2. - C. 17-24. 14. Принятие решений в нечетких условиях по схеме Беллмана - Заде В 1970 году Беллман и Заде опубликовали статью "Decision - Making in Fuzzy Environment" [1, русский перевод - 2], которая послужила отправной точкой для большинства работ по нечеткой теории принятия решений. В той статье рассматривается процесс принятия решений в условиях неопределенности, когда цели и ограничения заданы нечеткими множествами. Принятие решения - это выбор альтернативы, которая одновременно удовлетворяет и нечетким целям, и нечетким ограничениям. В этом смысле, цели и ограничения являются симметричными относительно решения, что стирает различия между ними и позволяет представить решение как слияние нечетких целей и ограничений. В настоящем разделе излагаются основы теории принятия решений в нечетких условиях по схеме Беллмана-Заде с примерами нечеткого многокритериального анализа вариантов при равновесных и неравновесных критериях. При написании разделы использованы источники [2-6]. 14.1.Нечеткие цели, ограничения и решения Пусть - множество альтернатив. Нечеткую цель будет отождествлять с нечетким множеством в X. Например, если альтернативами являются действительные числа, т.е. , а нечеткая цель сформулирована как "x должно быть около 10", то ее можно представить нечетким множеством с такой функцией принадлежности: (14.1) Аналогичным образом нечеткое ограничение определяется как некоторое нечеткое множество на универсальном множестве X. Например, нечеткое ограничение "x должно быть значительно больше 8" при можно представить нечетким множеством с такой функцией принадлежности: (14.2) Нечеткое решение также определяется как нечеткое множество на универсальном множестве альтернатив X. Функция принадлежности этого нечеткого множества показывает насколько хорошо решение удовлетворяет нечетким целям И ограничениям. Логической операции И, которая связывает цели и ограничения, соответствует операция пересечения нечетких множеств. Следовательно, решение - это пересечение нечеткой цели с нечетким ограничением: (14.3) Пример 14.1. Нечеткая цель и нечеткое ограничение сформулированы так: : "x должно быть около 10" и : "x должно быть значительно больше 8". Функции принадлежности нечетких множеств и заданы выражениями (14.1) и (14.2). Необходимо найти нечеткое решение . Нечеткое решение найдем по формуле (14.3). Учитывая, что пересечению нечетких множеств соответствует операция минимума над функций принадлежности, получаем: . Взаимосвязь между нечеткими целью, ограничением и решением показана на рис. 14.1. Цель и ограничения конфликтуют между собой, поэтому в нечетком множестве нет ни одного элемента со степенью принадлежности равной 1. Значит, не существует альтернативы, которая полностью удовлетворяет и цели, и ограничению. В качестве четкого решения в таких случаях обычно выбирают альтернативу с максимальной степенью принадлежности нечеткому множеству . Рис. 14.1 - К примеру 14.1: принятие решения по принципу Беллмана-Заде При принятии решений по схеме Беллмана-Заде не делается никакого различия между целью и ограничениями. Всякое разделение на цель и ограничения является условным: в формуле (14.3) можно поменять местами цель с ограничением, при этом решение не изменится. В традиционной теории принятия решений подобные замены функции предпочтения на ограничение недопустимы. Однако, и здесь прослеживается некоторое скрытое сходство между целями и ограничениями. Оно становится явным при использовании метода неопределенных множителей Лагранжа и штрафных функций, когда цель и ограничения объединяются в одну функцию. В общем случае, когда имеется n целей и m ограничений, результирующее решение по схеме Беллмана-Заде определяется пересечением всех целей и ограничений: , и соответственно . До сих пор предполагалось, что все цели и ограничения, входящие в , имеют одинаковую важность. Более привычная ситуация, в которой удовлетворение одним целям и (или) ограничениям, важнее чем другим. Обозначим через - коэффициент относительной важности i-ой цели, а через - коэффициент относительной важности j-го ограничения Тогда функцию принадлежности решения определяется так: . (14.4) Чем меньше коэффициент относительной важности, тем соответствующее нечеткое множество цели или ограничения становится более размазанным, и, следовательно, его роль в принятии решения снижается. На рис. 14.2 приведены нечеткие решения при различных коэффициентах важности цели и ограничения из примера 14.1. Рис. 14.2 - К примеру 14.1: принятие решений при разной важности цели и ограничения 14.2. Нечеткий многокритериальный анализ вариантов Будем считать известными: множество вариантов, которые подлежат многокритериальному анализу; - множество количественных и качественных критериев, которыми оцениваются варианты. Задача многокритериального анализа состоит в упорядочивании элементов множества X по критериям из множества G. Пусть - число в диапазоне [0,1], которое характеризирует уровень оценки варианта по критерию : чем больше число , тем выше оценка варианта по критерию , представить в виде нечеткого множества X: , . Тогда критерий можно на универсальном множестве вариантов (14.5) где - степень принадлежности элемента нечеткому множеству . Находить степени принадлежности нечеткого множества (14.5) удобно методом построения функций принадлежности на основе парных сравнений . При использовании этого метода необходимо сформировать матрицы парных сравнений вариантов по каждому критерию. Общее количество таких матриц совпадает с количеством критериев и равняется n. Наилучшим вариантом будем тот, который одновременно лучший по всем критериям. Нечеткое решение находится как пересечения частных критериев: (14.6) Согласно с полученным нечетким множеством ‚ наилучшим вариантом следует считать тот‚ для которого степень принадлежности является наибольшей. При неравновесных критериях формула (14.6) принимает вид: (14.7) где - коэффициент относительной важности критерия , . Показатель степень в формуле (14.7) свидетельствует о концентрации нечеткого множества в соответствии с мерой важности критерия . Коэффициенты относительной важности критериев могут быть определены различными методами, например, с помощью парных сравнений по шкале Саати. 14.3. Нечеткий многокритериальный анализ инновационных проектов В качестве примера принятия решений в нечетких условиях по схеме Беллмана - Заде рассмотрим сравнение технико-экономического уровня трех проектов ( ), направленных в инновационный фонд с целью получения финансирования [6]. Для оценки технико-экономического уровня проектов воспользуемся такими критериями: - масштаб проекта; - новизна проекта; - приоритетность направления; - степень проработки; - правовая защищенность; - экологический уровень. При экспертном сравнении проектов по критериям были получены лингвистические высказывания, показанные в табл. 14.1. Таблица 14.1 Парные сравнения проектов по шкале Саати Критерий Парные сравнения Отсутствие преимущества Суественное преимущество над над Почти существенное преимущество Слабое преимущество над Существенное преимущество Явное преимущество над Слабое преимущество над Почти слабое преимущество над над над Существенное преимущество над Почти явное преимущество над Почти существенное преимущество Почти слабое преимущество над над Этим экспертным высказываниям соответствуют следующие матрицы парных сравнений: ; ; ; ; ; . В этих матрицах полужирным шрифтом выделенные элементы, которые соответствуют парным сравнениям из табл. 14.1. Остальные элементы найдены в предположении о согласованости парных сравнений, т.е. с учетом того, что матрица парных сравнений является диагональной и обладает свойствами транзитивности и обратной симметричности (подробнее см. раздел 13 ). Применяя формулу (13.5) к матрицами парных сравнений‚ получаем следующие нечеткие множества: , , , , , . Теперь по формуле (14.6) получаем: , что свидетельствует о существенном преимуществе проекта над проектом , а также о слабом преимуществе проекта над проектом . Предположим, что критерии являются неравновесными. Для определения рангов критериев воспользуемся методом парных сравнений. Пусть заданы следующие лингвистические высказывания о важности критериев: почти существенное преимущество над ; явное преимущество над ; слабое преимущество над ; почти слабое преимущество над ; отсутствие преимущества над . Этим экспертным высказываниям соответствует следующая матрица парных сравнений: . Применяя формулу (13.5), определим ранги критериев : ; ; ; ; ; , что означает наибольшую важность приоритетности направления ( ) и степени проработки проекта ( ). По формуле (14.7) получаем такие нечеткие множества: ; ; ; ; ; . В результате пересечения нечетких множеств получаем: , что свидетельствует о существенном преимуществе проекта над проектами и , а также о слабом преимуществе проекта над проектом . Литература 1. Bellman R.E., Zadeh L.A. Decision-Making in Fuzzy Environment // Management Science. vol. 17. - 1970. -- №4. - P.141 - 160. 2. Беллман Р., Заде Л. Принятие решений в расплывчатых условиях. В кн.: Вопросы анализа и процедуры принятия решений. М.: Мир - 1976. С.172-215. 3. Орловский С.А. Проблемы принятия решений при нечеткой исходной информации. - М.: Радио и связь, 1981. - 286 с. 4. Zimmermann H.-J. Fuzzy Set Theory and its Applications. 3rd ed.Dordrecht: Kluwer Academic Publishers.- 1996. 315p. 5. Ротштейн А.П. Интеллектуальные технологии идентификации: нечеткая логика, генетические алгоритмы, нейронные сети. - Винница: УНИВЕРСУМ-Винница, 1999. - 320 с. 6. Ротштейн А.П., Штовба С.Д. Нечеткий многокритериальный анализ вариантов с применением парных сравнений // Известия РАН. Теория и системы управления.- 2001.- №3.- С.150-154. 7. 15. Идентификация зависимостей с помощью нечеткой базы знаний Сугено В этом разделе рассматриваются три метода идентификации нелинейной зависимости с помощью нечеткой базы знаний Сугено. Первый метод использует фильтр Калмана для настройки коэффициентов заключений нечетких правил. Этот метод предложен японскими учеными Такаги (Tomohiro Takagi) и Сугено (Michio Sugeno) в статье [1], идеи которой послужили основой построения теории нечеткой идентификации. Второй метод заключается настройке коэффициентов заключений нечетких правил по градиентному методу оптимизации. Третий метод позволяет одновременно настраивать функции принадлежности термов входных переменных и заключения правил. Он базируется на идеях обратного распространения ошибки в нейронных сетях. При подготовке настоящего раздела использовались источники [1, 2]. В начале рассмотрим применение фильтра Калмана для идентификации на основе нечеткой базы знаний Сугено. Задачу нечеткой идентификации будем рассматривать как нахождение таких коэффициентов в заключениях правил, которые обеспечивают минимальное отклонения между данными наблюдений и результатами логического вывода по нечеткой базе знаний Сугено. Предполагаются, что известны: 1) выборка экспериментальных данных , , где входной вектор в r-ой паре и - соответствующий выход; 2) правила нечеткой базы знаний Такаги-Сугено: . Необходимо найти такие значения коэффициентов заключений правил , которые обеспечивают минимум квадратичной невязки: (1) где - результат вывода по нечеткой базе знаний с параметрами B при значении входов из r-й строчки выборки ( ). Входному вектору соответствует такой результат нечеткого вывода: (2) где - заключение j-го правила; - степень выполнения заключения j-го правила. Обозначим через относительную степень выполнения заключения j-го правила для входного вектора . Тогда (2) можно переписать в виде: . Введем следующие обозначения: ; ; . Тогда задача (1) в матричной форме ставится следующим образом: найти вектор B, чтобы: (3) где . Минимальное значение квадратичной невязки E достигается при , что соответствует решению уравнения (4) Для реальных задач количество настраиваемых параметров меньше объема выборки данных , поэтому уравнение (4) не имеет точного решения. В этом случае решение можно найти, используя псевдоинверсию матрицы A: (5) Проблемы нахождения решения (5) связаны с возможной сингулярностью матрицы . В работе [1] вектор B находится с помощью фильтра Калмана по следующему итерационному алгоритму: , , , при начальных условиях: и , где w - большое положительное число, I - единичная матрица; <…> - число в угловых скобках показывает номер итерации. Количество итераций алгоритма идентификации равно объему выборки экспериментальных данных. На первом шаге алгоритма координаты вектора B настраиваются по первой строчке выборки экспериментальных данных. На второй итерации координаты вектора B подстраиваются под вторую пару "входы - выход" и т.д. Существуют различные алгоритмы нечеткой идентификации, в которых подстройка параметров нечеткой базы знаний Сугено также происходит итерационно по значению "мгновенной ошибки". Ниже рассматривается один такой алгоритм, основанный на градиентном методе оптимизации. Обозначим "мгновенную ошибку" для r-й строчки выборки данных через . Тогда, согласно градиентному методу Коши, новые значения управляемых переменных рассчитываются по формуле: , , (6) где - длина шага, которая задает скорость обучения. При малых значениях параметра обучение будет медленным. При больших значениях этого параметра возникает опасность переобучения, когда на каждой итерации алгоритма нечеткая модель будет настраиваться только на текущую пару "входы - выход", при этом забывая предыдущий опыт. Частная производная в (6) имеет простое аналитическое выражение: . С учетом этого перепишем правило обучения (6) в следующем виде: , , . (7) Идентификацию параметров нечеткой базы знаний с использованием правила (7) представим следующим алгоритмом: Шаг 1. Установить параметры алгоритма: E* - допустимая квадратическая невязка и z* - максимальное количество эпох обучения. Шаг 2. Рассчитать относительные степени выполнения заключений правил для каждой строчки обучающей выборки, , . Шаг 3. Установить счетчик итераций обучения и счетчик эпох обучения в единицы: r=1 и z=1. Шаг 4. Установить начальные значения настраиваемых параметров, например, , , . Шаг 5. Рассчитать значение "мгновенной ошибки" для r-й пары данных из выборки и пересчитать значения настраиваемых параметров по формуле (7). Шаг 6. Проверить условие " ?", если "да", то увеличить счетчик итераций r=r+1 и перейти к шагу 5. Шаг 7. Рассчитать значение квадратичной невязки на всей выборке данных на z-й эпохе обучение . Шаг 8. Проверить условие " ?", если "да" то перейти к шагу 10. Шаг 9. Проверить условие " ?", если "да", то увеличить счетчик эпох z=z+1, установить счетчик итераций обучения в единицу r=1 и перейти к шагу 5. Шаг 10. Конец. В приведенном алгоритме используется два критерия останова: первый - по достижению допустимой квадратичной невязки, второй - по превышению заданного количества эпох обучения. На протяжении одной эпохи осуществляется итерационная подстройка параметров по каждой паре "входы - выход" таким образом, шаг 5 алгоритма выполняется ровно M раз. Обучение можно также прекратить, если за одну эпоху настраиваемые параметры практически не изменяются или квадратическая невязка почти не уменьшается , где и - малые величины. До сих пор рассматривалась настройка только заключений правил. Если ввести некоторые ограничения на вид нечеткой базы знаний, тогда применяя идеи метода обратного распространения ошибки, можно получить достаточно простые правила настройки параметров посылок правил. Как это сделать, рассмотрим на примере вывода правил обучения функций принадлежности нечеткой базы знаний Сугено нулевого порядка. Предположим, что нечеткая база знаний Сугено задана в виде: , что соответствует синглтоной базе знаний (см. раздел 1.7.5.4.). Потребуем, чтобы каждый терм входной переменной использовался только в одном правиле. Чтобы получить дифференцируемые соотношения "входы - выход" будет использовать гауссовские функции принадлежности: , где - функция принадлежности нечеткого множества ; и - параметры функции принадлежности - координата максимума (ядро) и коэффициент концентрации. Входному вектору соответствует такой результат нечеткого вывода: где вектора . , - относительная степень выполнения j-го правила для входного При использовании в качестве t-нормы умножения относительная степень выполнения j-го правила рассчитывается так: . Настраиваемыми параметрами при идентификации будут коэффициенты в заключениях правил и параметры функций принадлежности нечетких термов: координаты максимумов и коэффициенты концентраций . Задача идентификации состоит в нахождении вектора , обеспечивающего выполнение (3). Находя частные производные "мгновенной ошибки" по управляемым переменным , и , получаем следующие правила обучения: (8) (9) (10) где ; ; . Для каждой пары данных "входы - выход" обучение происходит в два этапа. На первой этапе осуществляется нечеткий логический вывод для текущего входного вектора. На второй этапе вычисляется "мгновенная ошибка" - разница между полученным и ожидаемым значениями выхода, и модифицируются параметры нечеткой базы знаний. При представлении нечеткой модели в виде нейро-нечеткой сети первый этап обучения можно сопоставить с прямым распространением сигнала по сети, а второй этап - с обратным распространением ошибки. В правила обучения (8), (9) и (10) входят одни и те же множители, что позволяет быстро пересчитывать значения настраиваемых параметров. При использовании других типов функций принадлежности правила их обучения получаются не такими быстрыми. Обучение функций принадлежностей по формулам (8) - (10) по сравнению с настройкой заключений правил по формуле (7) является более трудоемкой вычислительной процедурой в связи с необходимостью пересчета относительных степеней выполнения правил после каждой итерации алгоритма обучения. Литература 1. Takagi T., Sugeno M. Fuzzy Identification of Systems and Its Applications to Modeling and Control // IEEE Trans. on Systems, Man, and Cybernetics. Vol. 15, № 1. - 1985. - P. 116 - 132. 2. Yager R., Filev D. Essentials of Fuzzy Modeling and Control. USA: John Wiley & Sons. - 1984. - 387p. 3. 16. Влияние методов дефаззификации на скорость обучения нечетких моделей типа мамдани Дефаззификация, т.е. преобразование нечеткого множества в четкое число, является необходимым элементом построения прикладных нечетких систем на базе нечеткой логики. Ниже описаны результаты компьютерных экспериментов, в которых изучалось влияние различных методов дефаззификации на скорость обучения нечетких моделей типа Мамдани. В экспериментах исследовались такие 3 метода дефаззификации: центр тяжести - centroid, медиана - bisector и средний из максимумов - MOM. Материал базируется на следующей статье: Ротштейн А.П., Штовба С.Д. Влияние методов дефаззификации на скорость настройки нечеткой модели // Кибернетика и системный анализ. -2002. - №5. - С.169-176. Для генерации нечетких баз знаний и обучающих выборок использовались три эталонных модели "два входа - один выход": линейная y=60+4x1-6x2, унимодальная y=0.25((1.7x1-5)2+(0.7x2-3)4), многоэкстремальная y=31+3x1+40sin(0.5x1)cos(x2), в которых переменные изменялись в следующих диапазонах: x 1 [0,10], x2 [0,10], y [0,100]. Трехмерные графики этих зависимостей приведены на рис. 1 - 3. Рисунок 1. Линейная зависимость Рисунок 2. Унимодальная зависимость Рисунок 3. Многоэкстремальная зависимость При построении нечетких баз знаний использовались термы: Н - низкий, нС ниже среднего, С - средний, вС - выше среднего, В - высокий. Эталонным зависимостям ставились в соответствие нечеткие базы знаний, представленные в табл. 1-3. Эти базы знаний определялись экспертно в результате наблюдения трехмерного изображения этих зависимостей (рис. 1 - 3). Таблица 1. База знаний для линейной зависимости Таблица 2. База знаний для унимодальной зависимости Таблица 3. База знаний для многоэкстремальной зависимости В ходе эксперимента функции принадлежности нечетких моделей настраивались для каждого из методов дефаззификации. При этом строились кривые обучения (рис. 7) в виде зависимостей точности настройки (RMSE) от времени обучения. Обучающая выборка для всех экспериментов составляла 100 пар "входы - выход". В результате проведенных экспериментов обнаружено, что наибольшие показатели скорости и точности настройки рассматриваемых нечетких моделей дает дефаззификация по методу центра тяжести. В качестве примера на рис. 5-7 приведены поверхности "входы - выход" настроенных нечетких моделей с дефаззификацией по методу центра тяжести. Рисунок 4. Динамика обучения нечетких моделей Рисунок 5. Нечеткая модель линейной зависимости Рисунок 6. Нечеткая модель унимодальной зависимости Рисунок 7. Нечеткая модель многоэкстремальной зависимости 17. Получение нечетких чисел по результатам нечеткого вывода В нашем случае нечеткая модель должна реализовывать некоторую нечеткую функцию, т.е. отображать четкие значения входов в нечеткое число на выходе: . Типовые нечеткие модели Мамдани выдают четкие значения (рис. 1). Рис. 1. Типовая нечеткая модель Мамдани Для получения на выходе модели нечеткого значения исключим из нее операцию дефаззификации. Тогда модель на основе базы знаний Мамдани будет выдавать нечеткое множество типа: где - функция принадлежности нечеткого множества на носителе Нечеткое множество (1) показано на рис. 2 залитой фигурой. . Рис. 2. Получение результирующего нечеткого значения по алгоритму Мамдани Обратим внимание, что нечеткое множество (1) не всегда эквивалентно нечеткому числу, так как может быть субнормальным или невыпуклым. Любое субнормальное нечеткое множество легко нормализовать делением всех степеней принадлежности на высоту. Задача исправления невыпуклости сложнее, поэтому рассмотрим ее подробнее. Типовые примеры невыпуклых нечетких множеств, полученных в результате логического вывода Мамдани (рис. 3), показывают, что на зоны невыпуклости может приходиться более половины носителя. Преобразовать невыпуклое нечеткое множество в выпуклое предлагается аппроксимацией параметрической функцией принадлежности по следующей постановке: где RMSE средняя квадратичная defuz - дефаззификация нечеткого множества по методу центра тяжести. невязка; Рис. 3. Эффект невыпуклости нечетких множеств, полученных по алгоритму Мамдани Невязку двух нечетких множеств и с функциями принадлежности на интервале предлагается рассчитывать следующим образом: Графики функций принадлежности с рис. 3 имеют несколько протяженных плато. Для учета этой особенности при аппроксимации невыпуклых нечетких множеств предлагаются модифицированные функции принадлежности (рис. 4 и табл. 1). Рис. 4. Модификация типовых Функций принадлежности для аппроксимации невыпуклых нечетких множеств Таблица Модифицированные функции принадлежности Название Связь с типовыми функциями принадлежности Треугольная с порогами Двухсторонняя порогами гауссова где trimf принадлежности. треугольная функция гауссова функция с где gaussmf принадлежности. - Двухсторонняя колокольная где bellmf - функция принадлежности. В качестве примера на рис. 5 сравниваются результаты аппроксимации трех невыпуклых нечетких множеств с рис. 3 известными и предложенными функциями принадлежности. Рис. 5 показывают, что добавление порогов в функции принадлежности значительно улучшает точность аппроксимации результатов нечеткого вывода. Рис. 5. Сравнение аппроксимаций невыпуклых нечетких множеств Для получение нечетких чисел по результатам нечеткого вывода Мамдани в системе MATLAB предлагается пакет Fuzzy_Out. Пакет содержит такие программы: fuz_evalfis - нечеткий логический вывод по базе знаний Мамдани без деффазификации; is_mf_convex - проверка нечеткого множества на выпуклость; my_gauss2mf - двухсторнняя гауссова функция принадлежности с порогами; my_gbellmf - двухсторнняя обобщенная колокольная функция принадлежности; my_trimf - треугольная функция принадлежности с порогами; fs2mf - поиск параметров функции принадлежности, которая наилучшим образом аппроксимирует нечеткое множество; ob_fun_fs2mf - целевая функция для программы оптимизации fs2mf; constr_fun_fs2mf - ограничения задачи оптимизации fs2mf. Выводы Одним из способов получения на выходе нечеткой модели нечетких значений состоит в исключении из нечеткой модели Мамдани операции дефаззификации с последующей аппроксимацией выходного нечеткого множества параметрической функцией принадлежности. Предложены пороговые функции принадлежности, которые по сравнению с типовыми обеспечивают более точную аппроксимацию невыпуклых нечетких множеств, полученных по алгоритму Мамдани. Для получение нечетких чисел по результатам нечеткого вывода Мамдани в системе MATLAB написан пакет Fuzzy_Out. 18. Cохранение прозрачности нечеткой модели Мамдани при обучении по экспериментальным данным Введение При нечетком моделировании чаще других используют базу знаний в формате Мамдани, в которой антецеденты и консеквенты правил заданы нечеткими множествами типа «Низкий», «Средний», «Высокий» и т.п. Нечеткие правила в таком формате предложены Заде в работе [1], на основе которой Мамдани и Ассилиан разработали первый нечеткий контроллер [2]. В противовес моделям типа «черный ящик», нечеткие модели Мамдани являются прозрачными – их структура содержательно интерпретируется в терминах, понятных не только разработчикам с высокой математической квалификацией, а и заказчикам – врачам, экономистам, менеджерам. Прозрачность нечетких моделей Мамдани является одним из главных преимуществ, благодаря которому нечеткие технологии успешно конкурируют с другими методами, особенно для тех прикладных задач, где возможность содержательной интерпретация важнее точности моделирования. Для повышения точности нечеткую модель обучают, т.е. итерационно изменяют ее параметры с целью минимизации отклонения результатов логического вывода от экспериментальных данных. Настраивают как веса правил, так и функции принадлежности нечетких термов. Обучение нечеткой модели Мамдани представляет собой задачу нелинейной оптимизации, исследованию которой посвящено огромное количество теоретических и прикладных работ. В них основной акцент делается на достижении максимальной точности обучения нечеткой модели. При этом настраиваемые параметры иногда изменяются настолько сильно, что возникают сложности содержательной интерпретации нечеткой модели. Таким образом, «погоня за точностью» приводит к потере важного конкурентного преимущества – прозрачности нечеткой модели. Если прозрачность модели второстепенна, тогда при идентификации зависимостей разумнее использовать другие (не нечеткие) методы, адекватность которых обычно лучше [3]. Ниже исследуется новый способ сохранения прозрачности нечеткой модели Мамдани и повышения ее точности при обучении по экспериментальным данным. Материал организован следующим образом. В начале описывается нечеткая модель Мамдани, формализуется обучение модели в виде задачи нелинейной оптимизации и анализируются способы повышения точности обучения. Затем формулируются требования прозрачности нечеткой модели Мамдани и анализируются основные методы ее сохранения. Для повышения точности модели Мамдани предлагается настраивать дополнительные параметры – границы носителя нечетких множеств в консеквентах правил, а для сохранения ее прозрачности – сокращается количество управляемых переменных и вводятся новые ограничения. Типовая и предложенная схемы обучения сравниваются на примере прогнозирования топливной эффективности автомобиля. 1. Нечеткая модель Мамдани Нечеткую базу знаний Мамдани запишем следующим образом [1, 2, 4, 5]: Если (1) где - нечеткий терм, которым оценивается переменная xi в j-ом правиле, i = 1,n; нечеткое заключение j-го правила; m – количество правил в базе знаний; wj ∈ [0,1] – весовой коэффициент, отражающий адекватность j-го правила. Базу знаний Мамдани можно трактовать как разбиение пространства влияющих факторов на зоны с размытыми границами, внутри которых функция отклика принимает нечеткое значение. Количество таких нечетких зон равно числу правил. Введем следующие обозначения, необходимые для дальнейшего изложения материала: μj(xi) – функция принадлежности входа xi ∈ нечеткому терму , т. е. ; μdj(y) – функция принадлежности выхода y ∈ нечеткому терму , т.е. . Степень выполнения посылки j-го правила для текущего входного вектора X* = (x*1, x*2, …, x*n) рассчитывают так: μj(X*) = wj (μj(x*1) ^ x*2) ^ … ^ x*n)), j = 1,m, где ^ обозначает t-норму, которую в нечетком выводе Мамдани обычно реализуют операцией минимума. В результате логического вывода по j-му правилу базы знаний получаем такое нечеткое значение выходной переменной y: (2) где imp – импликация, которая в нечетком выводе Мамдани реализуются операцией минимума, т.е. «срезанием» функции принадлежности μdj(y) по уровню μj(X*). Математически это записывается так: , Результирующее нечеткое множество множеств (2): получают объединением нечетких , что соответствует операции максимума над функциями принадлежности: μy*(y) = max(μd1*(y), μd2*(y), …, μdm*(y)). Четкое значение выхода y*, соответствующее входному вектору X*, определяется через дефаззификацию нечеткого множества применяется дефаззификация по методу центра тяжести . Наиболее часто , которая обеспечивает наилучшую динамику обучения нечеткой модели [6]. 2. Задача обучения нечеткой модели Мамдани Обучающую выборку, связывающую входы с выходом исследуемой зависимости, обозначим следующим образом: (Xr, yr), r = 1,M, (3) где Xr = (xr1, xr2, …, xrn) – входной вектор в r-ой паре данных и yr – соответствующий выход; M – объем выборки. Для математической постановки задачи обучения нечеткой модели по выборке (3) введем следующие обозначения: P – вектор параметров функций принадлежности термов входных и выходной переменных; W – вектор весовых коэффициентов правил базы знаний; F(P, W, Xr) – результат вывода по нечеткой базе знаний Мамдани с параметрами (P, W) при значении входов Xr. Согласно [4–8] обучение нечеткой модели состоит в отыскании такого вектора (P, W), чтобы: . (4) При настройке функций принадлежности применимы 5 способов, согласно которым координаты вектора P задают: 1) коэффициенты параметрической функции принадлежности каждого нечеткого терма [4–8]. Например, треугольная функция принадлежности задается тремя коэффициентами, которые соответствуют ядру и границам носителя нечеткого множества. Длина вектора P рассчитывается следующим образом: , где kU – количество коэффициентов функции принадлежности U -го нечеткого терма; N – количество нечетких термов в базе знаний (1); 2) границы α-сечений каждого нечеткого терма [7]. В этом случае , где hU – количество α -сечений U-го нечеткого терма. Например, для задания αсечений на уровнях 0, 0.5 и 1 необходимо 6 коэффициентов – (left0, right0, left0.5, right0.5, left1, right1). Смысл этих коэффициентов иллюстрирует рис. 1; 3) лингвистические квантификаторы типа «очень», «более-менее» и т.п. [9, 10]. В этом случае |P| = N . Квантификатор «очень» концентрирует нечеткое множество, а квантификатор «более-менее» размазывает его. Операции концентрации и размазывания нечетких множеств реализуются возведением функции принадлежности в степень 2 и ½ соответственно [1]; 4) коэффициенты сжатия-растяжения нечетких термов [9]. Эти коэффициенты соответствуют показателям степени, в которую возводят функцию принадлежности. Влияние этого коэффициента на график функции принадлежности иллюстрирует рис. 2. Значения 2 и ½ коэффициента сжатиярастяжения эквивалентны квантификаторам «очень» и «более-менее»; 5) коэффициенты функции принадлежности, лингвистический квантификатор и коэффициент сжатия-растяжения для каждого нечеткого терма [9]. Этот гибридный подход объединяет рассмотренные выше 1, 2 и 4 способы. В этом случае размерность задачи оптимизации (4) сильно возрастает, потому что число настраиваемых коэффициентов каждого нечеткого терма возрастает на 2 в сравнении с первым способом. Рис. 1. Представление нечеткого множества тремя α-сечениями Рис. 2. Изменение нечеткого множества с помощью коэффициента сжатиярастяжения (β) Сравнительный анализ способов настройки функций принадлежности сведен в табл. 1. Чаще других применяют первый способ настройки функций принадлежности из-за хорошего баланса между точностью и продолжительностью обучения нечеткой модели. Этот способ и будем использовать в дальнейшем. Таблица 1. Сравнение способов настройки функций принадлежности С пособ Преимущества Недостатки 1 Дифференцируемая функция. целевая Тип функции принадлежности настройки не может быть изменен. 2 Дифференцируемая целевая функция. Не требуется аналитическая модель функций принадлежности. Потенциально достижима высокая точность обучения. Большая размерность задачи оптимизации (4). Много ограничений на управляемые переменные, необходимых для обеспечения выпуклости нечетких множеств. 3 Минимальная размерность задачи оптимизации (4). Ядра нечетких множеств не настраиваются. Дискретная задача оптимизации с малым количеств альтернатив, что не позволяет настроить нечеткую модель точно. 4 Минимальная размерность задачи оптимизации (4). Дифференцируемая целевая функция. Ядра нечетких настраиваются. 5 Потенциально достижима высокая точность обучения. Смешанная дискретно-непрерывная задача оптимизации большой размерности. множеств при не 3. Прозрачность нечеткой модели Нечеткую модель Мамдани будем считать прозрачной при выполнении таких условий: 1) база знаний не является противоречивой или избыточной, т.е. не содержит правил с одинаковыми антецедентами; 2) база знаний согласована с количеством термов, т.е. каждый терм фигурирует хотя бы в одном нечетком правиле; 3) для произвольного входного вектора на выходе получается не пустое нечеткое множество; 4) по отдельности каждая функция принадлежности содержательно интерпретируется, т.е. соответствующее нечеткое множество является нормальным и выпуклым [11, 12]; 5) каждое терм-множество содержательно интерпретируется, т.е.: количество термов не слишком большое, чтобы эксперт каждому нечеткому множеству мог поставить в соответствие лингвистическую оценку [11 – 13]. Следуя работам [7, 14] целесообразно мощность терм-множества ограничить сверху «магическим» числом 7±2 [15]; нечеткие множества разных термов не должны быть эквивалентными или почти эквивалентными [11–13]. Следовательно, графики функций принадлежности соседних термов, например, “Низкий” и “Ниже среднего”, должны различаться визуально; не должна нарушаться линейная упорядоченность нечетких множеств. Обозначим через – нечеткий терм с порядковым номером i в упорядоченном по принципу от меньшего к большему терм–множестве, i = 1,N. Тогда условие линейной упорядоченности терм-множества переменной x на интервале запишем так: (5) где μi(x) и μj(x) – функции принадлежности термов и , i<j; core – ядро нечеткого множества; Кроме этого, желательно чтобы база знаний была компактной, т.е. содержала минимальное (или близкое к нему) количество правил, необходимых для адекватного моделирования исследуемой зависимости. При большом числе входных переменных компактность базы знаний обеспечивает иерархическое представление правил [7, 14]. После настройки функций принадлежности возникают следующие типовые нарушения прозрачности нечетких моделей (рис. 3): а) сильная схожесть функций принадлежности соседних нечетких множеств (“Низкий ” и “Ниже среднего ” на рис. 3), что может внести противоречия в базу знаний; б) потеря линейной упорядоченности терм-множества через разную размазаность функций принадлежностей – на интервале [65, 82] нечеткое множество “Средний” больше нечеткого множества “Выше среднего”, а на интервале [0, 3] нечеткое множество “Ниже среднего” больше нечеткого множества “Низкий”, хотя должно быть наоборот; в) неинтерпретабельность крайнего терма – уменьшения значений переменной x от 8 до 0 снижает степень принадлежности нечеткому терму “Низкий”, хотя должно быть наоборот. г) неполное накрытие нечеткими множествами интервала возможных значений входных переменных – числа из диапазона [82, 88] не принадлежат нечетким множествам. Рис. 3. Типовые нарушения прозрачности нечеткой модели 4. Способы защиты прозрачности нечеткой модели Первые 2 условия прозрачности нечеткой модели касаются базы знаний. Будет предполагать, что они удовлетворены при ее формировании и при обучении правила не изменяются. Третье условие можно выполнить используя нечеткие термы, носитель которых не уже диапазона изменения соответствующей входной переменной. Для этого проще всего использовать параметрические функции принадлежности с областью определения (-∞, ∞) , например, гауссову кривую: μ(x) = exp(-(x-b)² / 2c²), (6) где b – координата максимума; c>0 – коэффициент концентрации. Четвертое условие легко выполнить с помощью параметрических функции принадлежности, которые задают выпуклые и нормальные нечеткие множества. При этом надо ограничить ядра нечетких множеств диапазоном изменения соответствующей переменной. Например, для функции принадлежности (6) это ограничение записывается так: b ∈ . Для выполнения 5-го условия применяют три подхода, которые используют: 1) формальный критерий прозрачности; 2) лингвистические квантификаторы для модификации функций принадлежности; 3) семантические ограничения. По первому подходу синтезируют некоторый критерий прозрачности T(P) нечеткой модели и переходят от (4) к следующей задаче многокритериальной оптимизации [16]: найти вектор (P, W), чтобы: (7) Для решения задачи (7) типовыми методами оптимизации синтезируют интегральный критерий [12]. Можно также перевести один из критериев в ограничение, что преобразует (7) в задачу условной оптимизации. Расчет прозрачности нечеткой модели обычно осуществляют на основе следующего коэффициента схожести нечетких множеств [12, 13, 16]: (8) где и – нечеткие множества, для которых рассчитывается коэффициент схожести; supp – носитель нечеткого множества; | | – мощность множества. Значение коэффициента схожести равно 1, если нечеткие множества эквиваленты, и равно 0, если нечеткие множества не пересекаются. Формула (8) пригодна для расчета коэффициента схожести нечетких множеств с компактными носители. Если носителями нечетких множеств является (-∞, ∞), то формула (8) не работает. В этом случае ее можно модифицировать, заменив носители на α-сечения: где α<<1, например, α=0.01. В качестве показателя прозрачности выбирают величину, обратную к среднему или максимальному коэффициенту схожести по всех парам нечетких множеств из базы знаний. Использование коэффициента (8) защищает лишь от одного нарушения прозрачности нечеткой модели – схожести функций принадлежности нечетких термов. Поэтому его изолированное использование не сохраняет прозрачность нечеткой модели. По второму подходу функции принадлежности настраивают изменяя лингвистические квантификаторы нечетких множеств [9, 10]. При этом исходные функции принадлежности подбирают таким образом, чтобы любая комбинация квантификаторов не нарушала прозрачность терм-множеств. Недостатком этого подхода является низкая точность настройки нечеткой модели. По третьему подходу в (4) вводят следующие ограничения на значения управляемых переменных: нечеткие множества полностью накрывают интервал возможных значений входных переменных [11], т.е. для любое число из этого интервала принадлежит с ненулевой степенью хотя бы одному нечеткому множеству; (9) координаты максимумов функций принадлежности нечетких термов ограничены диапазонами изменения соответствующих переменных [5, 7, 11]; (10) пересекаются только функции принадлежности соседних нечетких термов [11]; (11) высота пересечения нечетких ограничена снизу и сверху [17]; (12) множеств соседних термов расстояние между координатами максимумов функций принадлежностей соседних термов ограничено снизу [5, 13]; (13) длина определенного α-сечения каждого нечеткого множества ограничена снизу и сверху [16]. (14) Ограничения (9) – (14) можно использовать совместно или изолировано. Однако даже при удовлетворении всем ограничениям возможны нарушения линейной упорядоченности терм-множества и потеря интерпретабельности функций принадлежностей крайних термов. Поэтому в работе [17] предлагается использовать новые ограничения, которые можно сформулировать как требования нечеткого разбиения Руспини (Ruspini)) интервала входных значений: где Vi – мощность терм-множества переменной xi, i = 1,n. При использовании разбиения Руспини совместно с треугольными функциями принадлежности настраивать можно только ядра некрайних нечетких множеств, т.к. остальные коэффициенты связаны с ними (рис. 4). Такое уменьшение настраиваемых коэффициентов снижает точность обучения нечетких моделей [9]. Кроме того, разбиение Руспини применимо только для нечетких множеств с компактными носителями, например, заданных треугольной или трапециевидной функциями принадлежности. Использование таких функций принадлежностей увеличивает объем базы знаний, т.к. для произвольного входного вектора должно существовать хотя одно правила с ненулевой степенью выполнения. В статье [9] совместно с (9)– (11) используется следующее ограничение: нижняя и верхняя границы ядра и носителя каждого нечеткого терма ограничены снизу и сверху. (15) По сравнению с условием нечеткого разбиения при этих ограничениях нечеткие модели получаются точнее. Однако при обучении интерпретабельность крайних термов не сохраняется. Еще одним недостатком, как и при использовании нечеткого разбиения, является большой объем базы знаний. Рис. 4. Треугольные функции принадлежности при нечетком разбиении Таким образом, жесткие ограничения в виде разбиения Руспини сохраняют прозрачность нечеткой модели при обучении, но существенно снижают точность. Проанализированные попытки смягчить эти ограничения повышают точность обучения, но приводят к различным нарушениям прозрачности. Ниже предлагаются новый подход к обучению функций принадлежности, повышающий точность нечеткой модели Мамдани не в ущерб прозрачности. 5. Повышение точности обучения модели Мамдани за счет расширения носителя нечетких множеств В большинстве нечетких моделях Мамдани дефаззификация выполняется по методу центра тяжести. Для таких нечетких моделей нами выявлен эффект сужения диапазона выходных значений (рис. 5а), который состоит в следующем. Минимальное значение на выходе нечеткой модели Мамдани будет, когда степень выполнения правила с консеквентом «Низкий» равна 1, а степени выполнения остальных правил равны 0. В этом случае результат логического вывода находиться посредством дефаззификации нечеткого множества «Низкий». Аналогично, максимальным выходным значением будет результат дефаззификации нечеткого множества «Высокий». Чем размазанее нечеткие множества «Низкий» и «Высокий», тем дальше результаты дефаззификации от координат максимумов функций принадлежности, и, соответственно, от требуемых границ выходных значений. Устранить эффект сужения диапазона выходных значений без ущерба для прозрачности можно расширив носитель нечетких множеств (рис. 5б). Таким образом, на точность обучения модели Мамдани кроме перечисленных в разделе 2 параметров влияют также границы носителя нечетких множеств выходной переменной. Поэтому имеет смысл попытаться повысить точность обучения нечеткой модели добавив эти 2 параметра в вектор управляемых переменных задачи оптимизации (4). Рис. 5. Сужение интервала выходных значений нечеткой модели Мамдани при дефаззификации по центру тяжести Пример 1. Рассматривается зависимость (рис. 6) топливной эффективности автомобиля (количество миль, которые можно проехать на одном галлоне топлива – y) от массы автомобиля ( x1 ) и года выпуска модели ( x2 ) [18]. Нечеткая модель Мамдани о зависимости y = f(x1, x2) приведена в табл. 2 и табл. 3. Используется гауссова функция принадлежности (6). Модель реализуем в Fuzzy Logic Toolbox. Рис. 6. Экспериментальные данные Таблица 2. Нечеткая база знаний № правила x 1 1 x y H ew N igh L ld O ow ld O A verage 2 L ight 2 H eavy 3 L ight Таблица 3. Параметры исходных функций принадлежности Нечетки й терм Light b c 1 1 613 Heavy 500 5 140 Old 1 500 7 6 8 3 Low 9 5 Average 3 5 4 5 0 New 2 0 High 6.6 Тестирование (рис. 7а) показывают, что нечеткая модель плохо работает для автомобилей с очень малой и очень высокой топливной эффективности. Расширение носителя нечетких множеств выходной переменной y существенно повышает точность моделирования (рис. 7б и рис. 8). а) исходная модель б) модель с расширенным носителем нечетких множеств выходной переменной Рис. 7. Тестирование нечетких моделей Рис. 8. Зависимость ошибки моделирования от границ носителя нечетких множеств выходной переменной 6. Новая схема сохранения прозрачности нечеткой модели Мамдани Для обеспечения небольшого объема базы знаний будем использовать нечеткие множества с некомпактным носителем, например, с гауссовой функцией принадлежности (6). Для предотвращения эффекта сужения диапазона выходных значений в вектор управляемых переменных задачи (4) включим границы носителя нечетких множеств выходной переменной. Для сохранения прозрачности нечеткой модели в задачу оптимизацию (4) введем ограничения (5), (9) и (13). Ограничения (5) и (9) проще всего реализовать подобрав диапазоны изменения коэффициентов концентраций (b) гауссовой функции принадлежности (6). Кроме этого, координаты максимумов крайних термов настраивать не будем, а установив их равными границам возможных значений переменных. Это защитит от потери неинтерпретабельности функций принадлежности крайних нечетких термов, а также сократит размерность задачи оптимизации (4). Весовые коэффициенты будем настраивать только для тех правил, адекватность которых вызывает сомнения. Значения остальных весовых коэффициентов приравняем к 1. Уменьшение количества настраиваемых параметров кроме сокращения времени оптимизации позволяет также снизить объем обучающей выборки экспериментальных данных. Пример 2. Сравним результаты обучения нечеткой модели из предыдущего примера по новой и типовой схеме. При типовой схеме обучения будет 17 управляемых переменных: 3 весовых коэффициента правил базы знаний; 7 коэффициентов концентраций функций принадлежности нечетких термов; 7 координат максимума функций принадлежности нечетких термов. Обучение проведем с ограничениями (9), (10) и (13). При новой схеме обучения будет 11 управляемых переменных: весовой коэффициент третьего правила базы знаний, т.к. адекватность первого и второго правила очевидна; левая и правая границы носителя нечетких множеств выходной переменной y; 7 коэффициентов концентраций функций принадлежности нечетких термов; координата максимума функции принадлежности нечеткого терма “Average”. В обучающую выборку включим автомобили с нечетными порядковыми номерами, а в тестовую – с четными. Обучение проведем c использование функции fmincon из Optimization Toolbox протяжении 15 итераций. Распределения ошибок на тестовой выборке (рис. 9) при оптимизации из разных начальных точек показывают, что обучение по новой схеме в среднем точнее. Функции принадлежности и весовые коэффициенты правил наилучших нечетких моделей, полученных обучением по обеим схемам, приведены на рис. 10 и в табл. 4. Ошибки на тестовой выборки стали: RMSE=2.930 – после обучения по типовой схеме и RMSE=2.884 – после обучения по новой схеме. Несмотря на меньшее количество настраиваемых параметров, обучение по новой схеме оказалась даже точнее. Что касается прозрачности, то использование типовой схемы обучения привело к неинтерпретабельности крайнего терма “Heavy” (рис. 10а). При новой схеме обучения нечеткая модель осталась прозрачной (рис. 10б). Рис. 9. Распределение ошибок на тестовой выборке (статистика 100 экспериментов) Рис. 10. Функции принадлежности наилучших нечетких моделей Таблица 4. Веса правил наилучших нечетких моделей № правила После обучения по типовой схеме После обучения по новой схеме 1 0.405 1 2 0.994 1 3 0.251 0.159 Выводы Сформулированы требования прозрачности нечеткой модели Мамдани. Выявлены типовые нарушения прозрачности нечеткой модели, которые возникают как побочный эффект обучения по экспериментальным данным. Установлено, что методы сохранения прозрачности нечетких моделей формируют жесткую систему ограничений, которая не позволяет достичь высокой точности обучения. Показано, что описанные в литературе способы повышения точности обучения за счет смягчения этих ограничений приводят к некоторым нарушениям прозрачности нечеткой модели. Предложена новая схема обучения нечеткой модели Мамдани, отличающаяся от известных: 1) расширением носителя нечетких множеств выходной переменной; 2) исключением из настраиваемых параметров координат максимумов функций принадлежности крайних термов; 3) введением ограничения на линейную упорядоченность нечетких множеств в рамках одного терммножества. Компьютерные эксперименты свидетельствуют, что обучение по новой схеме не приводит к нарушениям прозрачности нечеткой модели. При этом точность нечеткой модели получается не хуже, чем при типовом обучении. Благодаря возможности получения точных и прозрачных моделей предложенная схема обучения будет полезной при идентификации нелинейных зависимостей с помощью нечетких баз знаний в медицине, экономике, биологии, социологии и других в областях, где важны как адекватность модели, так и содержательная интерпретация ее параметров. Предложенную схему обучения нечетких моделей Мамдани можно реализовать в системе MATLAB, используя Fuzzy Logic Toolbox и Optimization Toolbox. Литература 1. Zadeh L. Outline of a New Approach to the Analysis of Complex Systems and Decision Processes // IEEE Trans. Syst. Man Cybernet. №3. – 1973. – P. 28-44. (Русский перевод: Заде Л. Основы нового подхода к анализу сложных систем и процессов принятия решений. В кн. «Математика сегодня». Пер. с англ. М.: Знание. – 1974. – С. 5-49). 2. Mamdani E.H., Assilian S. An Experiment in Linguistic Synthesis with Fuzzy Logic Controller // Int. J. Man-Machine Studies. – 1975. – Vol. 7. №1. – P.1–13. 3. Nauck D., Kruse R. Neuro-Fuzzy Systems for Function Approximation // Fuzzy Sets and Systems. – 1999. – Vol. 101, №2. – P. 261-271 4. Yager R., Filev D. Essentials of Fuzzy Modeling and Control. USA: John Wiley & Sons. – 1994. – 387p. 5. Штовба С.Д. Проектирование нечетких систем средствами MATLAB. М.: Горячая линия – Телеком. – 2007. – 288 с. 6. Ротштейн А.П., Штовба С.Д. Влияние методов дефаззификации на скорость настройки нечеткой модели // Кибернетика и системный анализ. –2002. – №5. – С.169–176. 7. Ротштейн А.П. Интеллектуальные технологии идентификации: нечеткая логика, генетические алгоритмы, нейронные сети. – Винница: УНІВЕРСУМ–Вінниця, 1999. – 320 с. 8. Ротштейн А.П., Кательников Д.И. Идентификация нелинейных зависимостей нечеткими базами знаний // Кибернетика и системный анализ. – 1998. – №5. – С. 53–61. 9. Casillas J., Cordon O., Jose del Jesus M., Herrera F. Genetic Tuning of Fuzzy Rule Deep Structures Preserving Interpretability and Its Interaction With Fuzzy Rule Set Reduction // IEEE Transactions on Fuzzy Systems. Vol. 13, №1. – 2005. – P. 13–29. 10. Alcala R., Alcala-Fdez J., Casillas J., Cordon O., Herrera F. Hybrid Learning Models to Get the Interpretability-Accuracy Trade-Off in Fuzzy Modeling // Soft Computing. – №10. – 2006. – P. 717–734. 11. Babuska R. Construction of Fuzzy Systems – Interplay between Precission and Transparency. In Proc. of European Symposium on Intelligent Techniques, Aachen (Germany). – 2000. – P. 445–452. 12. Roubos H., Setnes M., Abonyi J. Learning Fuzzy Classification Rules from Data. In “Developments in Soft Computing” (Eds.: John R. and Birkenhead R.). Berlin: Springer –Verlag. – 2001.– P. 108–115. 13. Paiva R.P., Dourado A. Merging and Constrained Learning for Interpretability in Neuro-Fuzzy Systems // In Proc. of European Symposium on Intelligent Technologies, Hybrid Systems and Their Implementation on Smart Adaptive Systems “EUNITE”. Tenerife (Spain). – 2001. – P. 17–21. 14. Rotshtein A. Design and Tuning of Fuzzy Rule–Based System for Medical Diagnosis. In “Fuzzy and Neuro–Fuzzy Systems in Medicine” (Eds.: Teodorescu N.H., Kandel A., and Jain L.C.). USA, Boca–Raton: CRC–Press.– 1998.– P. 243–289. 15. Miller G.A. The Magic Number Seven Plus or Minus Two: Some Limits on Our Capacity for Processing Information // Psychological Review. – 1956. – №63. – P. 81–97. 16. Jimhez F., Gomez-Skanneta A., Roubos H., Babuska R. A Multiobjective Evolutionary Algorithm for Fuzzy Modeling // In Proc. of International Fuzzy Systems Association and the North American Fuzzy Information Processing Society Joint Conference (IFSA/NAFIPS). Canada, Vancouver, 2001. – P. 1222– 1228. 17. Riid A. Transparent Fuzzy Systems: Modeling and Control. PhD Thesis. Tallinn Technical University: Department of Computer Control. Tallinn (Estonia). – 2002. – 227 p. (http://www.dcc.ttu.ee/andri/teosed/tfs-mac.pdf). 18. MPG data base of UCI Machine Learning Repository. Примечание: вышеизложенный материал базируется на статье Штовба С.Д. Обеспечение точности и прозрачности нечеткой модели Мамдани при обучении по экспериментальным данным // Проблемы управления и информатики. – 2007. – №4. – С. 102–114.