Книга
Книга
bhv®
Александр Леоненков
Нечеткое моделирование в среде MATLAB и fuzzyTECH
Основы теории нечетких множеств и нечеткой логики
Построение нечетких моделей в среде MATLAB Fuzzy Logic Toolbox
Создание проектов в пакете fuzzyTECH
МАСТЕР РЕШЕНИИ
Александр Леоненков
Нечеткое моделирование в среде MATLAB и fuzzyTECH
Санкт-Петербург«БХВ-Петербург»2005
УДК 681.3.068.
ББК 32.973.26-018.2
Л47
Леоненков А. В.
Л47 Нечеткое моделирование в среде MATLAB и fuzzyTECH. — СПб.: БХВ-Петербург, 2005. — 736 с.: ил.
ISBN 5-94157-087-2
В книге рассматриваются основы нечеткого моделирования — нового направления применения наукоемких технологий для решения практических задач. Подробно описываются базовые понятия теории нечетких множеств и нечеткой логики, необходимые для построения нечетких моделей систем в технике и экономике (в т. ч. бизнесе). Исследуются особенности нечеткого моделирования в средах MATLAB и fuzzyTECH. Изложение сопровождается примерами разработки отдельных нечетких моделей и иллюстрациями выполнения всех необходимых операций с нечеткими множествами.
Для системных аналитиков, программистов и студентов вузов
УДК 681.3.068
ББК 32.973.26-018.2
Группа подготовки издания:
Главный редактор Зав. редакцией Редактор Компьютерная верстка КорректорДизайн обложки Оформление серии Зав. производствомГлавный редактор Зав. редакцией Редактор Компьютерная верстка КорректорДизайн обложки Оформление серии Зав. производствомЕкатерина Кондукова Григорий Добин Анатолий Хрипов Натальи Смирновой Наталия Першакова Игоря Цырульникова Via DesignНиколай ТверскихЕкатерина Кондукова Григорий Добин Анатолий Хрипов Натальи Смирновой Наталия Першакова Игоря Цырульникова Via DesignНиколай Тверских
Главный редактор Зав. редакцией Редактор Компьютерная верстка Корректор
Дизайн обложки Оформление серии Зав. производством
Главный редактор Зав. редакцией Редактор Компьютерная верстка Корректор
Дизайн обложки Оформление серии Зав. производством
Екатерина Кондукова Григорий Добин Анатолий Хрипов Натальи Смирновой Наталия Першакова Игоря Цырульникова Via Design
Николай Тверских
Екатерина Кондукова Григорий Добин Анатолий Хрипов Натальи Смирновой Наталия Першакова Игоря Цырульникова Via Design
Николай Тверских
Лицензия ИД Ne 02429 от 24.07.00. Подписано в печать 26.04.05.
Формат 70x100Vie. Печать офсетная. Усл. печ. л. 59,34.
Доп. тираж 2000 экз. Заказ Ne 998
"БХВ-Петербург", 194354, Санкт-Петербург, ул. Есенина, 5Б.
Санитарно-эпидемиологическое заключение на продукцию Ne 77.99.02.953.Д.006421.11.04от 11.11.2004 г. выдано Федеральной службой по надзорув сфере защиты прав потребителей и благополучия человека.
Отпечатано с готовых диапозитивовв ГУП "Типография "Наука"199034, Санкт-Петербург, 9 линия, 12
ISBN 5-94157-087-2ISBN 5-94157-087-2© Леоненков А. В., 2003
ISBN 5-94157-087-2
ISBN 5-94157-087-2
© Оформление, издательство "БХВ-Петербург”, 2003
Содержание
Предисловие1
Структура книги3
Рекомендации по изучению материала книги5
Благодарностиб
Часть I. Основы теории нечетких множеств и нечеткой логики9
Глава 1. Введение 11
История развития теории и приложений нечетких множеств и нечеткой логики12
Первые промышленные приложения в Европе12
Япония — лидер в области промышленных приложений13
Европа и США преследуют Японию14
Методология системного моделирования15
Анализ проблемной ситуации19
Структуризация предметной области и построение модели20
Выполнение вычислительных экспериментов с моделью21
Применение результатов вычислительных экспериментов22
Коррекция или доработка модели._.23
Методология нечеткого моделирования24
Анализ нечеткого и вероятностного подходов к моделированию неопределенности26
Стохастическая неопределенность27
Лингвистическая неопределенность28
Моделирование лингвистической неопределенности29
Нечеткая логика в сравнении с теорией вероятностей30
Глава 2. Основные понятия теории нечетких множеств33
Определение нечеткого множества33
Основные характеристики нечетких множеств43
Основные типы функций принадлежности.....52
Кусочно-линейные функции принадлежности52
Z-образные и S-образные функции принадлежности54
/7-образные функции принадлежности60
Некоторые рекомендации по построению функций принадлежности нечетких множеств63
Прямые методы построения функций принадлежности64
Косвенные методы построения функций принадлежности65
Глава 3. Операций над нечеткими множествами67
Равенство и доминирование нечетких множеств68
Операции пересечения, объединения и разности нечетких множеств70
Альтернативные операции пересечения и объединения нечетких множеств79
Нечеткие операторы89
Некоторые дополнительные операции над нечеткими множествами93
Глава 4. Нечеткие отношения99
Нечеткое отношение и способы его задания„99
Способы задания нечетких отношений101
Основные характеристики нечетких отношений110
Операции над нечеткими отношениями114
Композиция бинарных нечетких отношений118
Нечеткое отображение124
Принцип обобщения в теории нечетких множеств125
Свойства бинарных нечетких отношений, заданных на одном универсуме126
Операция транзитивного замыкания бинарного нечеткого отношения128
Некоторые специальные виды нечетких бинарных отношений, заданных на одном базисном множестве131
Глава 5. Нечеткая и лингвистическая переменные. Нечеткие величины, числа и интервалы134
Определения нечеткой и лингвистической переменных134
Нечеткие величины, числа и интервалы137
Операции над нечеткими числами и интервалами139
Нечеткие числа и интервалы в форме (Г-Л)-функций141
Операции над нечеткими числами и интервалами (Г-Л)-типа145
Треугольные нечеткие числа и трапециевидные нечеткие интервалы148
Операции над треугольными нечеткими числами и трапециевидными нечеткими интервалами152
Глава 6. Основы нечеткой логики158
Понятие нечеткого высказывания и нечеткого предиката159
Нечеткие предикаты161
Основные логические операции с нечеткими высказываниями162
Логическое отрицание нечетких высказываний162
Логическая конъюнкция нечетких высказываний163
Логическая дизъюнкция нечетких высказываний164
Нечеткая импликация165
Нечеткая эквивалентность167
Правила нечезких продукций167
Прямой и обратный методы вывода заключений в системах нечетких продукций171
Глава 7. Системы нечеткого вывода178
Базовая архитектура систем нечеткого вывода178
Нечеткие лингвистические высказывания179
Правила нечетких продукций в системах нечеткого вывода181
Механизм или алгоритм вывода в системах нечеткого вывода185
Основные этапы нечеткого вывода185
Формирование базы правил систем нечеткого вывода187
Фаззификация (Fuzzification)189
Агрегирование (Aggregation)191
Активизация (Activation)192
Аккумуляция (Accumulation)195
Дефаззификация (Defuzzification)197
Метод центра тяжести197
Метод центра тяжести для одноточечных множеств198
Метод центра площади199
Метод левого модального значения200
Метод правого модального значения200
Основные алгоритмы нечеткого вывода201
Алгоритм Мамдани (Mamdani)202
Алгоритм Цукамото (Tsukamoto)202
Алгоритм Ларсена (Larsen)203
Алгоритм Сугено (Sugeno)204
Упрощенный алгоритм нечеткого вывода205
Примеры использования систем нечеткого вывода в задачах управления205
Нечеткая модель управления смесителем воды при принятии душа208
Содержательная постановка задачи208
Построение базы нечетких лингвистических правил209
Фаззификация входных переменных209
Нечеткая модель управления кондиционером воздуха в помещении212
Содержательная постановка задачи212
Построение базы нечетких лингвистических правил214
Фаззификация входных переменных215
Нечепсая модель управления контейнерным краном218
Содержательная постановка задачи218
Формирование базы правил систем нечеткого вывода219
Фаззификация входных переменных220
Глава 8. Язык нечеткого управления — FCL222
Концептуальные основы нечеткого управления:222
Интеграция программируемых контроллеров226
Перенос программ нечеткого управления228
История разработки и стандартизации языка FCL229
Базовая нотация языка нечеткого управления FCL230
Основные элементы языка FCL230
Нотация правил продукций230
Ключевые слова языка FCL232
Интерфейс функционального блока (Function Block interface)234
Фаззификация (Fuzzification)235
Дефаззификация (Defuzzification)237
Блок правил (Rule block)239
Простой пример записи модели нечеткого управления с использованием нотации языка FCL243
Необязательные параметры (Optional parameters)244
Согласованность классов языка FCL244
Список проверки данных248
Пример разработки и записи нечетких моделей на языке FCL250
Нечеткая модель управления смесителем воды при принятии душа250
Нечеткая модель управления кондиционером воздуха в помещении251
Нечеткая модель управления контейнерным краном253
Глава 9. Основы общей теории нечеткой меры256
Нечезкие меры и их основные свойства256
Общее определение нечеткой меры257
Меры доверия и правдоподобия258
Меры возможности, необходимости ивероятности259
Х-нечеткие меры261
Классификация пространств с нечеткими мерами262
Нечеткий интеграл и примеры еговычисления263
Глава 10. Нечеткие сети Петри267
Базовый формализм классических сетей Петри268
Свойства сетей Петри и задачи их анализа276
Основные подклассы нечетких сетей Петри280
Нечеткие сети Петри типа Vr280
Нечеткие сети Петри типа Сг286
Обобщенные нечеткие временные сети Петри типа Сртг291
Свойства нечетких сетей Петри298
Классификация нечетких сетей Петри300
Использование нечетких сетей Петри для представления правил нечетких продукций303
Часть II. Нечеткое моделирование в среде MATLAB309
Глава 11. Общая характеристика программы MATLAB311
Основные элементы системы MATLAB311
Особенности инсталляции системы MATLAB на компьютер пользователя312
Запуск системы MATLAB и элементы ее графического интерфейса313
Встроенная справочная система и документация, поставляемая с системой MATLAB319
Основные приемы работы в системе MATLAB321
Назначение операций главного меню322
Назначение операций панели инструментов326
Основные приемы работы в окне команд327
Графические возможности системы MATLAB334
Глава 12. Процесс нечеткого моделирования в среде MATLAB343
Процесс разработки системы нечеткого вывода в интерактивном режиме343
Редактор систем нечеткого вывода FIS344
Редактор функций принадлежности349
Редактор правил системы нечеткого вывода352
Программа просмотра правил системы нечеткого вывода354
Программа просмотра поверхности системы нечеткого вывода356
Пример разработки системы нечеткого вывода в интерактивном режиме358
Процесс разработки системы нечеткого вывода в режиме командной строки371
Глава 13. Нечеткая кластеризация в Fuzzy Logic Toolbox379
Общая характеристика задач кластерного анализа379
Задача нечеткой кластеризации и алгоритм ее решения380
Общая формальная постановка задачи нечеткого кластерного анализа381
Уточненная постановка задачи нечеткой кластеризации383
Алгоритм решения задачи нечеткой кластеризации методом нечетких с-средних385
Средства решения задачи нечеткой кластеризации в пакете Fuzzy Logic Toolbox387
Решение задачи нечеткой кластеризации в командном режиме387
Решение задачи нечеткой кластеризации с использованием средств графического интерфейса392
Решение задачи определения числа кластеров для нечеткой кластеризации в системе MATLAB395
Глава 14. Основы программирования в среде MATLAB399
Основы языка программирования системы MATLAB399
Операторы управления последовательностью выполнения команд404
Условный оператор if...elseif...else...end404
Оператор выбора switch...case...otherwise...end405
Оператор цикла for...end406
Оператор цикла while...end407
Оператор continue408
Оператор break408
Оператор return409
Защищенный блок try...catch...end410
Текстовые комментарии411
Основные приемы работы с редактором/отладчиком т-файлов411
Назначение операций главного меню413
Назначение операций панели инструментов418
Пример программы, расширяющей возможности пакета нечеткой логики Fuzzy Logic Toolbox420
Глава 15. Основы нечетких нейронных сетей426
Общая характеристика ANFIS — адаптивных систем нейро-нечеткого вывода427
Понятие нейронной сети и основные способы ее задания427
Гибридная сеть как адаптивная система нейро-нечеткого вывода432
Реализация ANFIS в среде MATLAB432
Пример решения задачи нейро-нечеткого вывода442
Глава 16. Примеры разработки нечетких моделей управления в среде MATLAB451
Нечеткая модель управления кондиционером воздуха в помещении451
Нечеткая модель управления контейнерным краном457
Глава 17. Примеры разработки нечетких моделей принятия решений в среде MATLAB464
Оценивание финансовой состоятельности клиентов при предоставлении банковских кредитов464
Содержательная постановка задачи оценивания финансовой состоятельности клиентов464
Описание входных и выходных переменных рассматриваемой задачи465
Нечеткая модель оценивания финансовой состоятельности клиентов468
Фаззификация входных и выходных переменных469
Формирование базы правил систем нечеткого вывода471
Построение нечеткой модели средствами Fuzzy Logic Toolbox и анализ полученных результатов473
. Анализ и прогнозирование валютных цен на финансовом рынке479
Часть III. Нечеткое моделирование в среде fuzzvTECH489
Глава 18. Общая характеристика программы fuzzyTECH491
Общая характеристика нечеткого проекта в среде fuzzyTECH492
Основные элементы рабочего интерфейса программы fuzzyTECH497
Встроенная справочная система программы fuzzyTECH503
Назначение операций главного меню и панели инструментов программы fuzzyTECH506
Назначение операций главного меню506
Назначение операций панели инструментов516
Графические средства визуализации результатов нечеткого вывода в программе fuzzyTECH518
Графическое окно просмотра поверхности нечеткого вывода на плоскости518
Графическое окно просмотра трехмерной поверхности нечеткого вывода521
Графическое окно просмотра временных графиков значений лингвистических переменных524
Глава 19. Процесс нечеткого моделирования в среде fuzzyTECH527
Основные средства редактирования и анализа систем нечеткого вывода в fuzzyTECH527
Графический редактор лингвистической переменной и функций принадлежности их термов528
Графические редакторы правил системы нечеткого вывода533
Графические средства анализа результатов нечеткого вывода539
Основные средства разработки проектов и компонентов систем нечеткого вывода в fuzzyTECH543
Мастер нечеткого проекта543
Мастер лингвистической переменной549
Мастер блока правил554
Глава 20. Примеры разработки и анализа нечетких моделей в среде fuzzyTECH559
Пример разработки системы нечеткого вывода для задачи «Чаевые в ресторане»559
Нечеткая модель управления контейнерным краном568
Нечеткая модель оценивания финансовой состоятельности клиентов при предоставлении банковских кредитов573
Часть IV. Приложения583
Приложение 1. Основы классической теории множеств и отношений585
Множество и способы его задания585
Основные теоретико-множественные операции593
Булеан или множество всех подмножеств 599
Мультимножество или комплект600
Отношения и способы их задания601
Операции над бинарными отношениями607
Отображение609
Свойства бинарных отношений, заданных на одном базисном множестве610
Некоторые специальные виды бинарных отношений, заданных на одном базисном множестве612
Отношение строгого частичного порядка613
Отношение толерантности613
Отношение эквивалентности614
Мультиотношение614
Приложение 2. Основы математической логики616
Классическая логика высказываний617
Основные понятия логики высказываний617
Основные логические операции над высказываниями619
Формальные теории624
Исчисление высказываний как формальная теория625
Логика предикатов628
Основные понятия логики предикатов первого порядка629
Логические операции над предикатами630
Кванторы логики предикатов631
Исчисление предикатов первого порядка как формальная теория632
Продукционные системы 635
Прямой и обратный методы вывода заключений в продукционных системах637
Приложение 3. Справочник функций пакета Fuzzy Logic Toolbox системы MATLAB641
Приложение 4. Пример файла проекта для программы fuzzyTECH705
Глоссарий713
Литература717
Предисловие
Книга посвящена рассмотрению теоретических основ и прикладных методов новой современной технологии — нечеткого моделирования — в контексте решения практических задач с использованием специализированных программных средств MATLAB и fuzzyTECH. Основная цель предлагаемого вниманию читателей учебного пособия — привлечь внимание студентов, аспирантов, преподавателей, инженеров, молодых научных сотрудников и программистов к нечеткой проблематике и дать доступное введение в одну из интереснейших и перспективных областей современных высоких технологий — нечеткое моделирование.
Чем же обусловлена актуальность этой новой технологии и в чем проявляется ее преимущество перед известными и ставшими уже классическими концепциями моделирования и управления?
Прежде всего — это тенденция увеличения сложности математических и формальных моделей реальных систем и процессов управления, связанная с желанием повысить их адекватность и учесть все большее число различных факторов, оказывающих влияние на процессы принятия решений.
С одной стороны, традиционные методы построения моделей не приводят к удовлетворительным результатам, когда исходное описание подлежащей решению проблемы заведомо является неточным или неполным. С другой стороны, стремление получить всю исчерпывающую информацию для построения точной математической модели сколь-нибудь сложной реальной ситуации может привести к потере времени и средств, поскольку это может быть в принципе невозможно.
В подобных случаях наиболее целесообразно воспользоваться такими методами, которые специально ориентированы на построение моделей, учитывающих неполноту и неточность исходных данных. Именно в таких ситуациях технология нечеткого моделирования оказывается наиболее конструктивной, поскольку за последнее десятилетие на ее основе были решены сотни практических задач управления и принятия решений.
Сейчас уже не вызывает сомнения тот факт, что важнейшей особенностью жизнеспособности той или иной теоретической концепции является ее реализация и поддержка в соответствующих программных инструментах. Появление и успешное развитие коммерческих программных средств, которые специально ориентированы на решение задач нечеткого моделирования, объективно свидетельствуют в пользу того, что теория нечетких множеств и нечеткая логика могут и должны быть эффективно использованы для решения широкого круга практических задач. При этом наиболее интересными программными средствами, в которых реализована технология нечеткого моделирования, по мнению автора, являются рассмотренные в книге система MATLAB и программа fuzzyTECH.
К сожалению, существующие издания по нечеткой проблематике либо излишне упрощены и поверхностны, что характерно, в первую очередь, для информации, представленной в Интернете, либо содержат абстрактное изложение отдельных, зачастую весьма узких аспектов теории нечетких множеств и различных ее направлений, что характерно для академических работ Последних трех десятилетий.
С одной стороны, упрощенное изложение теории нечетких множеств и нечеткой логики на уровне картинок создает несерьезное отношение к ней со стороны профессиональных математиков и программистов, препятствуя внедрению соответствующих идей в процесс их подготовки и обучения. С другой стороны, тенденция перевести все идеи современной математики на язык теории нечетких множеств привела к появлению целого ряда работ, содержащих абстрактное обобщение тех или иных математических конструкций, которые оказались оторванными от проблематики реальных практических задач системного моделирования. По целому ряду причин эта тенденция также не нашла широкого признания в среде математиков и программистов.
В настоящей книге представлен материал, который тщательно отобран из большого многообразия идей и работ, получивших развитие в последние три десятилетия. При отборе материала автор руководствовался, главным образом, возможностью конструктивного применения соответствующих идей на практике. При этом изложение материала не является поверхностным в ущерб математической строгости, ибо, по мнению автора, теория нечетких множеств продолжает оставаться разделом математики, а нечеткая логика — разделом математической логики. Нечеткая математика не может и не должна излагаться нечетким языком. С этой целью в книге приводится теоретический материал, который необходим для адекватного понимания всех основных идей нечеткого моделирования.
В то же время конструктивное восприятие идей нечеткого моделирования возможно посредством построения и анализа нечетких моделей конкретных практических задач. С этой целью в книге рассматривается достаточное количество прикладных задач, которые не только иллюстрируют особенности реализации тех или иных идей нечеткого моделирования, но и могут быть эффективно решены с использованием соответствующих программных инструментов — MATLAB и fuzzyTECH. При этом целый ряд представленных задач имеет оригинальный характер, в чем читатель сможет убедиться самостоятельно при чтении книги.
При изложении материала невольно возникает проблема унификации терминологии и обозначений, традиционно применяемых в различных работах по теории нечетких множеств. Как представляется автору, целый ряд таких обозначений не являются вполне удобными и не отражают внутреннюю логику рассматриваемых понятий, хотя исторически применялись в целом ряде оригинальных работ. Это относится, например, к использованию символов нижнего подчеркивания, суммы и интеграла для обозначения нечетких множеств. Поскольку эти обозначения способны привести к путанице и трудностям у начинающих читателей, они не используются в книге, а заменены на более привычные теоретико-множественные, которые наиболее точно отражают обобщенный характер нечетких понятий по сравнению с понятиями классической математики.
Структура книги
В основу книги положены две основные идеи. С одной стороны, познакомить читателя с теоретическими основами новой концепции нечеткого моделирования сложных систем, которая может быть конструктивно использована для построения нечетких моделей и без понимания которой вряд ли возможно адекватно использовать богатейший потенциал возможностей соответствующих программных инструментов.
С другой стороны, рассмотреть основные программные инструменты, которые за последние несколько лет оказались наиболее эффективными при решении практических задач с использованием технологии нечеткого моделирования.
Материал книги делится на три части. Первая часть знакомит с основными теоретическими понятиями, которые необходимы для правильного понимания базовой терминологии нечеткого моделирования и возможностей соответствующей технологии в контексте решения прикладных задач. Здесь представлен теоретический материал, необходимый для уяснения всех основных понятий теории нечетких множеств и нечеткой логики. При этом материал излагается независимо от программных инструментов, следуя логической и исторической традиции развития соответствующих научных направлений.
Вторая часть посвящена рассмотрению особенностей процесса нечеткого моделирования с использованием возможностей одной из наиболее мощных и универсальных систем компьютерной математики — системы MATLAB. Третья часть содержит описание особенностей процесса нечеткого моделирования с использованием специального программного инструментария — программы fuzzyTECH.
В главе I рассматриваются особенности современного состояния нечеткого моделирования в контексте общих концепций системного моделирования, приводится исторический обзор развития методологии нечеткого моделирования сложных систем. Здесь можно познакомиться с сущностью проблемы неопределенности и основными подходами ее количественного анализа.
В главе 2 рассматриваются основные понятия теории нечетких множеств и их связь с определением классического множества, описываются все основные типы функций принадлежности, их аналитическое и графическое представления, а также приводятся примеры различных нечетких множеств.
В главе 3 рассматриваются операции над нечеткими множествами и основные способы их определения в контексте классических теоретико-множественных операций. При этом результаты выполнения операций над нечеткими множествами иллюстрируются целым рядом примеров.
В главе 4 рассматриваются нечеткие отношения и операции над нечеткими отношениями, а также описывается ряд свойств нечетких отношений, которые позволяют определить нечеткое разбиение и нечеткий порядок. Приводятся примеры конкретных нечетких отношений, возникающих в экономике, бизнесе и в быту.
В главе 5 рассматриваются нечеткая и лингвистическая переменные, которые используются в дальнейшем при определении понятий нечеткой логики, а также описываются основные операции над нечеткими числами и интервалами, которые иллюстрируются различными примерами.
В главе 6 излагаются теоретические основы нечеткой логики, рассматриваются основные операции с нечеткими высказываниями в контексте классической логики, приводятся примеры нечетких высказываний и выполнения нечеткологических операций.
В главе 7 рассматриваются нечеткий вывод и системы нечеткого вывода, определяются различные способы вычисления степени истинности нечеткой импликации, приводятся примеры использования нечеткого вывода в системном моделировании.
В главе 8 приводится описание базовой нотации языка нечеткого управления FCL в соответствии со Стандартом IEC 1131-7. Здесь также рассматриваются основные понятия теории нечеткого управления и приводятся примеры записи нечетких моделей управления в нотации языка FCL.
В главе 9 рассматриваются основы теории возможностей, которая представляет одно из перспективных направлений развития технологии нечеткого моделирования. Приводится общее определение нечеткой меры и ее разновидностей — мер возможности, необходимости и вероятности в контексте адекватного представления неопределенности.
В главе 10 рассматривается аппарат нечетких сетей Петри, который также представляется перспективным направлением развития технологии нечеткого моделирования, описываются особенности формального и графического представлений, приводятся примеры задач и построение нечетких моделей систем с использованием формализма нечетких сетей Петри.
В главе 11 представлена общая характеристика системы компьютерной математики MATLAB и ее пакета расширения — Fuzzy Logic Toolbox, предназначенного для построения систем нечеткого вывода, а также рассматриваются графический интерфейс и основные функции режима команд системы MATLAB.
В главе 12 описывается процесс построения нечетких моделей в среде MATLAB и соответствующие графические средства пакета Fuzzy Logic Toolbox, приводятся простейшие примеры нечеткого моделирования.
В главе 13 рассматриваются теоретические основы нечеткой кластеризации и особенности реализации соответствующих алгоритмов в системе MATLAB, приводятся примеры решения задач нечеткой кластеризации в среде Fuzzy Logic Toolbox.
В главе 14 излагаются основы программирования в среде MATLAB с использованием языка разработки m-файлов, рассматривается синтаксис этого языка и его основные конструкции, приводится пример разработки m-файла для реализации операций с нечеткими множествами, который расширяет возможности системы MATLAB.
В главе 15 рассматривается новое направление нечеткого моделирования — адаптивные системы нейро-нечеткого вывода, приводится исходное определение нейронной сети и описываются особенности реализации адаптивных систем ANFIS в среде MATLAB.
В главах 16 и 17 приводятся конкретные примеры построения нечетких моделей в среде MATLAB, предназначенные для решения задач управления и принятия решений, среди которых — нечеткие модели управления кондиционером воздуха в помещении, управления контейнерным краном в порту, оценивания финансовой состоятельности клиентов при предоставлении банковских кредитов и прогнозирования валютных цен на финансовом рынке.
В главе 18 представлена общая характеристика программы fuzzyTECH, описаны особенности ее инсталляция и графического интерфейса, рассматриваются основные характеристики нечеткого проекта в среде fuzzyTECH.
В главе 19 рассматриваются все специальные средства программы fuzzyTECH, предназначенные для разработки и анализа нечетких моделей, а также даются рекомендации по выполнению отдельных этапов нечеткого моделирования в среде fuzzyTECH.
В главе 20 приводятся конкретные примеры построения нечетких моделей в среде fuzzyTECH, предназначенные для решения отдельных задач управления и принятия решений, среди которых — нечеткие модели поведения в ресторане, управления контейнерным краном в порту и оценивания финансовой состоятельности клиентов при предоставлении банковских кредитов.
В приложении 1 рассматриваются основы классической теории множеств, которые необходимы для понимания базовой концепции теории нечетких множеств, являющейся обобщением и дальнейшим развитием описываемых здесь понятий.
В приложении 2 рассматриваются основы математической логики, которые необходимы для понимания концепции систем нечеткого вывода, также являющейся обобщением и дальнейшим развитием описываемых здесь понятий.
В приложении 3 приводится справочник функций пакета Fuzzy Logic Toolbox системы MATLAB для выполнения различных операций с системами нечеткого вывода.
В приложении 4 приводится текст файла проекта системы нечеткого вывода в формате FTL для среды fuzzyTECH, который иллюстрирует дополнительные возможности спецификации нечетких проектов в среде fuzzyTECH.
Рекомендации
по изучению материала книги
Представленный в книге материал охватывает всю основную проблематику методологии нечеткого моделирования и технологии решения практических задач с использованием наиболее эффективных программных инструментов. В то же
время для всестороннего понимания особенностей разработки и применения нечетких моделей, как правило, недостаточно общей эрудиции и наличия того или иного программного инструментария. Как показывает практический опыт, для творческого овладения методологией нечеткого моделирования необходима определенная математическая подготовка и знание некоторых общих принципов моделирования и управления, разработанных в рамках прикладного системного анализа.
Читатели, впервые приступающие к изучению нечеткого моделирования и ставящие перед собой цель в совершенстве овладеть данным предметом, могут последовательно знакомиться с материалом отдельных глав, обращаясь к приложениям по мере необходимости. При этом теоретический материал, изложенный в первой части книги, используется в дальнейшем при изложении конкретных нечетких моделей. Те из читателей, кто знаком с понятиями и проблематикой теории нечетких множеств и нечеткой логики, могут сразу перейти к рассмотрению особенностей реализации нечетких моделей в средах MATLAB и fuzzyTECH, обращаясь к основному теоретическому материалу по мере необходимости. Наконец, читатели, которые интересуются прикладными аспектами отдельных направлений нечеткого моделирования, такими, как адаптивные системы нейро-нечеткого вывода или методы нечеткой кластеризации, могут выборочно обратиться к материалу соответствующих глав.
Материал книги может быть использован для постановки соответствующего учебного курса в вузах с целью подготовки специалистов математического, экономического и технического профиля. В этом случае автор надеется, что как студенты, так и преподаватели найдут в книге интересный для размышления материал, который позволит понять целый ряд особенностей и перспектив профессионального образования в области современных информационных технологий.
Благодарности
Автор искренне благодарит К. Н. Ильинского, Е. В. Кондукову, Е. В. Строганову, А. М. Коновалова и И. А. Корнеева за предоставленные в разное время материалы, которые были использованы при написании книги, а также доцента А. Н. Павлова за конструктивное обсуждение материала отдельных глав книги. Автор искренне признателен директору Школы ГТ-менеджмента АНХ при Правительстве РФ (www.itmane.ru) И. Ю. Прокиной, а также Л. А. Ермакову, В. А. Перекрестову и В. В. Фамильнову за оказанную поддержку в процессе работы над книгой. В предоставлении персональной лицензии и фирменной документации на систему MATLAB неоценимую помощь оказали Борис Манзон (SoftLine) и сотрудник компании MathWorks — Courtney Esposito.
Написание современной книги немыслимо без использования ресурсов Интернета. В этой связи хотелось бы выразить особую признательность директору Междисциплинарного Центра СПбГУ (www.icape.nw.ru) профессору Н. В. Борисову за предоставленную возможность электронной коммуникации.
В заключение следует специально отметить одно немаловажное обстоятельство, которое усложняет понимание и распространение идей нечеткого моделирования среди отечественных математиков, инженеров и программистов. Речь идет о неустановившейся терминологии в этой области и о неоднозначности перевода отдельных терминов, имеющих зачастую многозначное толкование в том или ином конкретном контексте. С этой целью названия наиболее важных понятий и их краткая характеристика отдельно приводятся в конце книги. В любом случае автор будет признателен за все отзывы и конструктивные предложения, связанные с содержанием книги и проблематикой нечеткого моделирования, которые можно отправлять по адресу: fuzzy@itmane.ru.
ЧАСТЬ I
Основы ТЕОРИИ НЕЧЕТКИХМНОЖЕСТВ И НЕЧЕТКОЙ ЛОГИКИ
Глава 1
Введение
Теория нечетких множеств, основные идеи которой были предложены американским математиком Лотфи Заде (Lotfi Zadeh) более 35 лет назад, позволяет описывать качественные, неточные понятия и наши знания об окружающем мире, а также оперировать этими знаниями с целью получения новой информации. Основанные на этой теории методы построения информационных моделей существенно расширяют традиционные области применения компьютеров и образуют самостоятельное направление научно-прикладных исследований, которое получило специальное название — нечеткое моделирование.
В последнее время нечеткое моделирование является одной из наиболее активных и перспективных направлений прикладных исследований в области управления и принятия решений. Нечеткое моделирование оказывается особенно полезным, когда в описании технических систем и бизнес-процессов присутствует неопределенность, которая затрудняет или даже исключает применение точных количественных методов и подходов.
В области управления техническими системами нечеткое моделирование позволяет получать более адекватные результаты по сравнению с результатами, которые основываются на использовании традиционных аналитических моделей и алгоритмов управления. Диапазон применения нечетких методов с каждым годом расширяется, охватывая такие области, как проектирование промышленных роботов и бытовых электроприборов, управление доменными печами и движением поездов метро, автоматическое распознавание речи и изображений.
Нечеткая логика, которая служит основой для реализации методов нечеткого управления, более естественно описывает характер человеческого мышления и ход его рассуждений, чем традиционные формально-логические системы. Именно поэтому изучение и использование математических средств для представления нечеткой исходной информации позволяет строить модели, которые наиболее адекватно отражают различные аспекты неопределенности, постоянно присутствующей в окружающей нас реальности.
История развития теории и приложений нечетких множеств и нечеткой логики
Первой публикацией по теории нечетких множеств принято считать работу профессора из Университета Беркли (шт. Калифорния, США) Лотфи Заде, которая относится к 1965 г. Понятие нечеткого множества в смысле Л. Заде положило начало новому импульсу в области математических и прикладных исследований, в рамках которых за короткий срок были предложены нечеткие обобщения всех основных теоретико-множественных и формально-логических понятий.
Наиболее значимыми из работ в этой области следует отметить публикации Л. Заде, Д. Дюбуа (D. Dubois) и А. Прада (Н. Prade) по теории нечеткой меры и меры возможности, М.Сугено (М. Sugeno) по нечеткому выводу и нечеткому интегралу, Дж. Беждека (J. Bezdek) по нечеткой кластеризации и распознаванию образов, Р. Ягера (R. R. Yager) по нечеткой логике.
Однако, несмотря на большое количество теоретических работ, прикладное значение нечетких моделей долгое время ставилось под сомнение. Даже сегодня, когда имеется информация о многих десятках успешных применений нечетких моделей, некоторые ученые все еще скептически относятся к возможностям нечеткого моделирования.
Первые промышленные приложения в Европе
Первые реализации нечетких моделей в промышленности относятся к середине 1970-х гг. Именно в этот период в Великобритании Эбрахим Мамдани (Ebrahim Mamdani) использовал нечеткую логику для управления парогенератором. Решение этой задачи обычными методами было сопряжено с целым рядом трудностей вычислительного характера. Предложенный Э. Мамдани алгоритм, основанный на нечетком логическом выводе, позволил избежать чрезмерно большого объема вычислений и был по достоинству оценен специалистами. В этот же период нечеткие модели были применены при управлении печью для обжига цемента. Тем не менее, эти немногие приложения, использовавшие нечеткую логику, по существу скрывали этот факт, поскольку в них нечеткая логика называлась "многозначной логикой" или "непрерывной логикой".
В начале 1980-х гг. нечеткая логика и теория нечетких множеств получили свое дальнейшее развитие в целом ряде программных средств поддержки принятия решений и в экспертных системах анализа данных. Хотя многие из этих программных инструментариев так и не вышли за пределы научно-исследовательских лабораторий и институтов, в ходе их разработки были получены важные эмпирические результаты по моделированию с помощью нечеткой логики процессов человеческих рассуждений и принятия решений.
Япония — лидер в области промышленных приложений
После первых промышленных приложений в Европе Япония за короткий период времени вышла на первое место в мире по количеству устройств и механизмов, в которых были реализованы нечеткие технологии. Появление микропроцессоров и микроконтроллеров инициировало резкое увеличение бытовых приборов и промышленных установок с алгоритмами управления на основе нечеткой логики. В настоящее время в Японии запатентовано более чем 3000 соответствующих устройств в этой области. Слово "фаззи" (fuzzy) стало символом популярности и коммерческого успеха новых промышленных изделий в этой стране.
Имеется целый ряд обстоятельств, которые объясняют причины столь впечатляющей популярности нечеткой логики в Японии. Во-первых, нечеткая логика поддерживает разработку быстрого прототипа технического устройства с последующим усложнением его функциональности, что характерно для стиля работы японских инженеров. Во-вторых, нечеткая логическая модель более проста для понимания, чем аналогичная математическая модель на основе дифференциальных или разностных уравнений. В-третьих, нечеткие модели оказываются более простыми для своей аппаратной реализации по сравнению с классическими алгоритмами управления техническими системами.
В результате этого нечеткие технологии нашли свое применение в самых различных технических устройствах и бытовых приборах, выпускаемых японскими фирмами. Фотоаппараты и видеокамеры используют нечеткую логику, чтобы реализовать опыт фотографа в управлении этими устройствами. Например, компании Fisher и Sanyo производят нечеткие логические видеокамеры, в которых применяется нечеткая фокусировка и стабилизация изображения.
Компания Matsushita выпускает стиральную машину, в которой используются датчики и микропроцессоры с нечеткими алгоритмами управления. Датчики определяют цвет и вид одежды, количество твердых частиц, степень загрязнения, а нечеткий микропроцессор выбирает наиболее подходящую программу стирки из 600 доступных комбинаций температуры воды, количества стирального порошка и времени производственного цикла быстрого или медленного вращения и промывки.
Компания Mitsubishi объявила о выпуске первого в мире автомобиля, где управление каждой системой основано на нечеткой логике. При этом Mitsubishi также производит "нечеткий" кондиционер, который управляет изменением температуры и влажности в помещении согласно человеческому восприятию степени комфорта. Компания Nissan разработала "нечеткую" автоматическую трансмиссию и "нечеткую" противоскользящую тормозную систему и реализовала их в одном из своих последних автомобилей повышенной комфортности.
Японский город Сендай имеет метрополитен с 16 станциями, который управляется нечетким компьютером. При этом нечеткий компьютер регулирует процессы ускорения и торможения поездов метро, делая на 70% меньше ошибок, чем соответствующий человек-оператор.
На фондовом рынке Токио используется несколько трейдерных систем, основанных на нечеткой логике, которые превосходят по скоростным и динамическим характеристикам традиционные информационные системы. В Японии имеются также "нечеткие" системы управления уличным движением, "нечеткие" тостеры, "нечеткие" рисовые печи, "нечеткие" пылесосы и многие другие бытовые и технические устройства.
Европа и США преследуют Японию
Только в начале 1990-х гг. ведущие европейские корпорации поняли, что они практически уступили Японии одну из ключевых современных технологий. С этого времени были предприняты серьезные усилия наверстать упущенные возможности в этой области. Именно в этот период в Европе появилось более 200 видов промышленных изделий и устройств, в которых были реализованы нечеткие модели. Это были, главным образом, бытовые приборы, которые характеризовались более эффективной экономией электроэнергии и водопотреб- ления без дополнительного увеличения цены изделия. Другие промышленные приложения относились к автоматизации производства, включая управление химическими и биологическими процессами, управление станками и сборочными конвейерами, а также различные интеллектуальные датчики.
Поскольку этим приложениям сопутствовал коммерческий успех, в настоящее время нечеткая логика рассматривается как стандартный метод проектирования и получила широкое признание среди инженеров и проектировщиков. К нечетким технологиям проявляют все больший интерес компании из США, особенно те из них, кто испытывает жесткую конкуренцию со стороны фирм из Азии и Европы. Тем не менее, для американских корпораций остались открытыми целые сегменты потребительского рынка.
Например, нечеткая логика оказалась превосходным инструментом для разработки систем управления внутренними компонентами персональных компьютеров, а также алгоритмов компрессии речи и видео. Так, например, в системной плате MSI К7Т Pro 266 Master-R используется система интеллектуального разгона микропроцессора Fuzzy Logic™3, которая автоматически выбирает частоту системной шины и процессора в зависимости от температуры и рабочей нагрузки базовых компонентов персонального компьютера.
Известны приложения из области теле- и радиосвязи, направленные на устранение влияния отраженных ТВ-сигналов и радиосигналов. Предложены и реализованы программные алгоритмы для сетевой маршрутизации и распознавания речи на основе нечеткой логики. Следует учитывать и другое важное обстоятельство — в настоящее время в США развернуты серьезные исследования по нейро-сетевым технологиям. Все эксперты соглашаются с тем, что комбинация нейронных сетей и нечеткой логики будет следующим серьезным шагом в дальнейшем прогрессе высоких технологий.
Сегодня количество технических изделий и программных средств, включая новые патенты, продолжает быстро расти. Поэтому, чтобы остаться конкурентоспособными, многие американские компании начинают свои собственные внут-
ренние нечеткие проекты. Хотя информации о подобных проектах недостаточно, можно отметить ассигнования Министерства обороны США на исследования в области построения систем управления вооружением и тренажеров для обучения пилотов истребителей на основе нечетких технологий. Национальное управление по аэронавтике и космонавтике (НАСА) предполагает использовать нечеткие модели для решения специальных задач в космосе.
Таким образом, можно сделать вывод, что область приложений теории нечетких множеств и нечеткой логики с каждым годом продолжает неуклонно расширяться. При этом процесс разработки и применения нечетких моделей тесно взаимосвязан с концепцией системного моделирования как наиболее общей методологией построения и использования информационных моделей сложных систем различной физической природы. Именно поэтому изложению методов нечеткого моделирования предшествует рассмотрение основных особенностей методологии системного моделирования, в контексте которой возможна разработка наиболее адекватных и эффективных информационных моделей сложных систем.
Методология
системного моделирования
Системный анализ и системное моделирование имеют более давнюю историю, чем теория нечетких множеств. Центральным понятием системного моделирования является само понятие система, под которой понимается совокупность объектов, компонентов или элементов произвольной природы, образующих некоторую целостность в том или ином контексте. Определяющим принципом рассмотрения некоторой совокупности объектов как системы является появление у нее новых свойств, которых не имеют составляющие ее элементы. Значимость этого принципа проявляется в том, что он получил даже специальное название — принцип эмерджентности (от англ, emergence — появление, выявление).
Системы различной физической природы окружают нас повсеместно— это и конкретные предметы и объекты: солнечная система, человек, персональный компьютер, автомобиль, самолет, аэропорт. Это и более абстрактные сущности, такие как компьютерная программа, естественный язык, коммерческая фирма, культура, политика, наука, экономика. Наиболее ортодоксальная точка зрения предполагает, что все окружающие нас предметы являются системами.
При рассмотрении той или иной системы исходным этапом ее изучения является определение ее границы. Речь идет о необходимости разделения всех элементов на два класса: принадлежащих и не принадлежащих системе. При этом те сущности или объекты, которые собственно принадлежат системе, и будут являться ее элементами. Напротив, не принадлежащие системе объекты, но оказывающие на нее то или иное влияние, образуют среду или внешнюю по отношению к системе предметную область. Традиционно одним из принципов системного анализа являлось предположение о том, что граница системы четко разделяет элементы системы и ее внешнюю среду (рис. 1.1).
Рис. 1.1. Общее представление системы и окружающей среды в контексте традиционного системного анализа
Важнейшими характеристиками любой системы являются ее структура и процесс функционирования. Под структурой системы понимают устойчивую во времени совокупность взаимосвязей между ее элементами или компонентами. Именно структура системы связывает воедино все элементы и препятствует распаду системы на отдельные компоненты. Структура системы может отражать самые различные взаимосвязи, в том числе, и вложенность элементов одной системы в другую. В этом случае принято называть более мелкую или вложенную систему подсистемой, а более крупную систему —метасистемой.
Процесс функционирования системы тесно связан с изменением свойств системы или отдельных ее элементов во времени. При этом важной характеристикой системы является ее состояние, под которым понимается совокупность свойств или признаков системы, которые в каждый момент времени отражают наиболее существенные особенности поведения системы.
Рассмотрим следующий пример. В качестве системы рассмотрим такой объект, как "Автомобиль". Границы этой системы четко ограничены теми компонентами, которые размещаются в корпусе отдельного автомобиля. При этом такой объект, как двигатель является элементом системы "Автомобиль". С другой стороны, двигатель сам является системой, которая состоит из отдельных компонентов, таких как блок цилиндров, свечи зажигания и др. Поэтому система "Двигатель" в свою очередь является подсистемой системы "Автомобиль". Система охлаждения двигателя и система электрооборудования также будут являться подсистемами "Автомобиль".
Структура системы может быть описана с разных точек зрения. Наиболее общее представление о структуре дает схема устройства той или иной системы. При этом взаимодействие элементов может носить не только механический, электрический или биологический характер, но и информационный, что характерно для современных организационно-технических систем. Состояние системы также можно рассматривать с различных точек зрения, наиболее общей из которых
является рассмотрение особенностей функционирования или эксплуатации той или иной системы.
Процесс функционирования системы отражает поведение системы во времени и может быть представлен как последовательное изменение ее состояний. Если система изменяет одно свое состояние на другое состояние, то принято говорить, что система переходит из одного состояния в другое. Совокупность признаков или условий изменения состояний системы в этом случае называется переходом. Для системы с дискретными состояниями процесс функционирования может быть представлен в виде последовательности состояний с соответствующими переходами.
При рассмотрении движущегося по трассе автомобиля можно выделить различные характеристики его состояния. Это, прежде всего, скорость движения автомобиля, угловое положение передних колес относительно продольной оси, температура охлаждающей жидкости, количество топлива в баке и другие. Изменение значений этих характеристик могут привести к изменению состояний автомобиля, в частности, к изменению его скорости и направления движения.
Методология системного моделирования служит концептуальной основой системно-ориентированной структуризации предметной области. В этом случае исходными компонентами концептуализации являются системы и взаимосвязи между ними. Результатом системного моделирования является построение некоторой модели системы и соответствующей предметной области, которая описывает важнейшие с точки зрения решаемой проблемы аспекты системы.
Под моделью будем понимать некоторое представление о системе, отражающее наиболее существенные закономерности ее структуры и процесса функционирования и зафиксированное на некотором языке или в некоторой форме. Применительно к теме нашего рассмотрения нас будут интересовать только такие аспекты построения моделей, которые связаны с информационным или логическим моделированием систем.
Примерами моделей являются не только известные физические модели (аэродинамическая модель гоночного автомобиля или проектируемого самолета), но и логические модели различных систем (математическая модель колебательной системы, аналитическая модель системы электроснабжения региона, информационная модель избирательной компании и др.).
Общим свойством всех моделей является их подобие некоторому реальному объекту или системе-оригиналу. Важность построения моделей заключается в возможности их использования для получения информации о свойствах или поведении системы-оригинала. При этом сам процесс построения и последующего применения моделей для получения информации о системе-оригинале является основным содержанием процесса системного моделирования.
Наиболее общей информационной моделью системы является так называемая модель "черного ящика". В этом случае система представляется в виде прямоугольника, внутреннее устройство которого скрыто от системного аналитика или вообще неизвестно. Однако система не является полностью изолированной от внешней среды, поскольку последняя оказывает на систему некоторые ин-
формационные или материальные воздействия. Такие воздействия получили название входных воздействий или входных параметров, входных переменных. Среди входных воздействий выделяют специальный класс— так называемых управляющих воздействий (переменных). Последние предназначены для того, чтобы оказывать на систему целенаправленное воздействие, предназначенное для достижения системой некоторой цели (целей) или желаемого поведения. В свою очередь система также оказывает на среду или другие системы определенные информационные или материальные воздействия, которые получили название выходных воздействий (параметров, переменных). Графически данная модель может быть изображена следующим образом (рис. 1.2).
Рис. 1.2. Графическое изображение модели системы в виде "черного ящика"
Ценность моделей, подобных модели "черного ящика", весьма условна. Основное ее назначение состоит в том, чтобы структурировать исходную информацию относительно самой системы и внешней по отношению к ней среды. Поэтому эта модель, прежде всего, фиксирует упоминавшиеся выше границы системы. В дополнение к этому, модель специфицирует воздействия, на которые реагирует система, и как проявляется эта реакция на окружающие объекты и системы. При этом в случае количественного описания входных (выходных) воздействий их иногда называют входными (выходными) переменными. В рамках системного моделирования разработаны определенные методологические средства, позволяющие выполнить дальнейшую структуризацию или концептуализацию этой наиболее общей модели системы.
В самом общем случае процесс системного моделирования может быть представлен в форме взаимосвязанных этапов, на каждом из которых выполняются определенные действия, направленные на построение и последующее использование информационно-логических моделей систем (рис. 1.3). Характерной особенностью данного процесса является его циклический или итеративный характер, который отражает современные требования к анализу и проектированию сложных систем.
Таким образом, отдельными этапами процесса системного моделирования являются:
Анализ проблемной ситуации.
Структуризация предметной области и построение модели.
Выполнение вычислительных экспериментов с моделью.
Применение результатов вычислительных экспериментов.
Коррекция или доработка модели.
Рис. 1.3. Общая концептуальная схема процесса системного моделирования
Ниже дается краткая характеристика каждого из этапов, конкретное содержание которых зависит от специфических особенностей решаемых задач в той или иной проблемной области. При этом каждый отдельный цикл процесса системного моделирования инициируется этапом анализа проблемной ситуации, в чем проявляется реализация требования проблемно-ориентированного подхода к построению и использованию информационно-логических моделей систем.
Анализ проблемной ситуации
Одним из основных принципов системного моделирования является проблемная ориентация процессов построения и использования моделей. Другими словами, та или иная модель конкретной системы строится в контексте решения некоторой проблемы или достижения некоторой цели. Главное назначение первого этапа — логическое осмысление решаемой проблемы в контексте методологии системного моделирования. При этом выполняется анализ всех доступных ресурсов (материальных, финансовых, информационных и др.), необходимых для построения модели, ее использования и реализации полученных результатов с целью решения имеющейся проблемы. В случае отсутствия требуемых ресурсов на данном
этапе может быть принято решение либо о сужении (уменьшении масштаба) решаемой проблемы, либо вообще об отказе от использования средств системного моделирования. На этом этапе также выполняется анализ требований, предъявляемых в той или иной форме к результату решения проблемы.
Первоначальный анализ решаемой проблемы и соответствующей проблемной области является наименее формализуемым с точки зрения применения известных аналитических подходов и средств. Поэтому на данном этапе рекомендуется применять так называемые эвристические или неформальные методы системного анализа. К ним относятся:
методы построения логистических сценариев на естественном языке для анализа возможных способов и альтернативных путей решения проблемы;
методы мозговой атаки (штурма) для генерации новых идей и нестандартных подходов к решению проблемы;
методы морфологического и концептуального анализа для достижения требуемой полноты рассмотрения исходной проблемы;
методы построения и анализа дерева целей и задач, которые позволяют разбить исходную проблему на ряд более частных или более простых подпроблем.
Структуризация предметной области и построение модели
Целью данного этапа является построение адекватной модели системы и соответствующей предметной области в наиболее общем контексте решения исходной проблемы. Структуризация проблемной области предполагает определение и последующее уточнение ее границ, а также установление границ и состава систем, которые потенциально могут участвовать в решении исходной проблемы. Соответствующая информация представляется в форме модели системы или проблемной области в целом на некотором формально-логическом языке.
Речь идет о том, что вся доступная информация о решении проблемы должна быть зафиксирована в виде некоторой информационно-логической модели системы. При этом модель должна удовлетворять принципу адекватности отражения основных особенностей системы-оригинала. Другими словами, модель не должна быть ни поверхностной (неполной), которая не учитывает существенные аспекты структуры или поведения системы-оригинала, ни излишне сложной или избыточной, в рамках которой разработчики пытаются учесть даже несущественные с точки зрения исходной проблемы детали системы-оригинала.
Данный этап построения информационно-логической модели предполагает выполнение следующей последовательности действий:
Построение концептуальной или информационной модели системы и проблемной области, которая содержит наиболее общую информацию и отражает структурные взаимосвязи ситемы-оригинала с другими объектами окружающей среды.
Построение аналитической или математической модели системы, которая детализирует отдельные аспекты структуры и поведения системы-оригинала в форме текста с использованием специальной математической нотации (символики).
Построение имитационной или программной модели системы, которая непосредственно реализует информационно-логическую модель в форме, специально предназначенной для ее исследования с использованием компьютеров.
Примечание
Один из принципов системного моделирования заключается в том, что для построения адекватной модели сложной системы может потребоваться не одна, а несколько моделей системы-оригинала. В этом случае каждая из подобных моделей будет являться отдельным представлением сложной системы, а полная модель системы будет состоять из комплекса взаимосвязанных моделей. Этот принцип получил специальное название— принцип многомодельности системного моделирования. С точки зрения системного аналитика все частные модели системы равноправны, поэтому корректно вести речь лишь об их адекватности. При этом выбор типа модели должен зависеть от характера решаемой проблемы, а не от профессиональной специализации прикладных математиков и системных аналитиков, участвующих в решении проблемы.
Процесс разработки адекватных моделей и их последующего конструктивного применения требует не только знания общей методологии системного анализа, но и наличия соответствующих изобразительных средств или языков для фиксации результатов моделирования и их документирования. Очевидно, что естественный язык не вполне подходит для этой цели, поскольку обладает неоднозначностью и неопределенностью. Поэтому для построения моделей используются формально-теоретические методы, основанные на дальнейшем развитии математических и логических средств моделирования. Для этой цели также предложены различные графические нотации и языки моделирования, в той или иной степени отражающие специфику решаемых задач на основе применения соответствующих программных инструментариев.
Выполнение вычислительных экспериментов с моделью
Модель системы разрабатывается для получения некоторой новой информации о системе-оригинале с целью решения исходной проблемы. В этом случае базовым объектом для получения такой информации является программная модель сложной системы, реализованная на одном из языков программирования или построенная с использованием соответствующих программных инструментариев.
Реализация данного этапа в контексте методологии системного моделирования означает выполнение серии экспериментов с программной моделью системы на той или иной вычислительной платформе. При этом возможна следующая по-
следовательность действий, отражающая содержание собственно процесса планирования экспериментов:
Формирование конкретных значений наборов исходных данных (входных переменных), которые характеризуют отдельный вычислительный эксперимент с программной моделью системы.
Выполнение расчетов или, в общем случае, выполнение отдельной итерации с имитационной моделью системы с целью получения конкретных значений выходных параметров (переменных) модели.
Оценка точности и верификация полученных результатов на основе проверки согласованности отдельных компонентов вычислительных расчетов с использованием аналитической модели.
Интерпретация полученных результатов в форме управляющих воздействий или альтернатив решения исходной проблемы.
Оценка потенциальной возможности реализации полученных результатов применительно к системе-оригиналу.
Применение результатов вычислительных экспериментов
Содержанием данного этапа является материальное или информационное воздействие на систему-оригинал с целью решения исходной проблемы. При этом может потребоваться планирование организационных мероприятий по реализации подобных воздействий и контроль их выполнения.
После реализации рекомендаций выполненных исследований, что оказывается возможным только после окончания этапа вычислительных экспериментов с моделью, вообще говоря, может сложиться одна из двух ситуаций.
О Исходная проблема полностью решена — тем самым цели системного моделирования достигнуты. В этом случае можно перейти к решению очередной проблемы из данной предметной области, что характеризует начало нового цикла системного моделирования.
О Исходная проблема не решена или решена не полностью — тем самым цели системного моделирования не достигнуты. В этом случае необходимо тщательно проанализировать сложившуюся ситуацию и причины неудачи. После этого можно перейти либо к коррекции исходной модели системы, либо вообще отказаться от построенной модели и реализовывать цикл системного моделирования заново.
Примечание
Следует заметить, что процесс системного моделирования при решении сложных проблем занимает достаточно продолжительное время, в течение которого, вообще говоря, может измениться как само содержание исходной проблемы, так и наличие необходимых для ее решения ресурсов. Эти особенности
зачастую не учитываются при реализации сложных проектов, что является источником их неудачного завершения. Именно для исключения или ослабления негативного влияния данных факторов на схеме системного моделирования должен быть предусмотрен отдельный этап — коррекция или доработка модели, который может начать выполняться с любого момента изменения исходной ситуации или в результате возникновения признаков неадекватности модели на любом из рассмотренных выше этапов.
Коррекция или доработка модели
Цель данного этапа неявно была уже сформулирована выше, а именно — внесение изменений в существующую модель, которые направлены на обеспечение ее адекватности решаемой проблеме. Речь может идти как о включении в состав исходной модели дополнительных компонентов, так и о радикальном изменении структуры и содержания модели. Важно отметить проблемно-ориентированный характер этих изменений, т. е. коррекция или доработка модели должны выполняться в непосредственном контексте с решаемой проблемой.
Упоминавшиеся выше сложные системы, исследование которых представляет наибольший интерес в рамках методологии системного моделирования, образуют отдельный подкласс систем. При этом сложность системы и, соответственно, ее модели могут быть рассмотрены с различных точек зрения. Прежде всего, можно выделить сложность структуры системы, которая характеризуется большим количеством элементов системы и различными типами взаимосвязей между этими элементами.
Так, например, если количество элементов системы превышает некоторое пороговое значение, которое, вообще говоря, не является строго фиксированным, то такая система может быть названа сложной. Например, если программная система управления базой данных насчитывает более 100 отдельных форм ввода и вывода информации, то многие программисты сочтут ее сложной. Транспортные и энергетические системы современных мегаполисов, макроэкономика государства или отдельных отраслей также могут служить примерами сложных систем, состоящих из десятков и сотен отдельных подсистем или элементов с нетривиальной структурой взаимосвязей между ними.
Вторым аспектом сложности является сложность процесса функционирования системы или отдельных ее подсистем. Это может быть связано как с непредсказуемым характером поведения системы, так и невозможностью формального представления правил преобразования входных воздействий в выходные. Этот важный аспект сложности системы может быть связан с наличием неопределенности в описании процесса поведения системы-оригинала.
Так, например, процесс поведения участников некоторого рынка товаров или услуг в определенной степени непредсказуем или характеризуется неопределенностью состояний своих элементов. Процесс функционирования современных операционных систем также характеризуется сложностью поведения, поскольку их надежность и безопасность не всегда удовлетворяют требованиям различных категорий пользователей.
При анализе структуры и поведения сложных систем, как правило, присутствуют различные факторы неопределенности, которые могут быть учтены и адекватно представлены в процессе построения информационно-логических моделей в рамках нового направления системного моделирования— нечеткого моделирования.
Методология
нечеткого моделирования
Прежде всего, следует заметить, что методология нечеткого моделирования не заменяет и не исключает рассмотренную выше методологию системного моделирования, а конкретизирует последнюю применительно к процессу построения и использования нечетких моделей сложных систем. Процесс нечеткого моделирования представляет аналогичную последовательность взаимосвязанных этапов, как и процесс системного моделирования (см. рис. 1.3). При этом каждый из этапов выполняется с целью построения и использования нечеткой модели системы для решения исходной проблемы.
В общем случае под нечеткой моделью понимается информационно-логическая модель системы, построенная на основе теории нечетких множеств и нечеткой логики.
Таким образом, отдельными этапами процесса нечеткого моделирования являются:
Анализ проблемной ситуации.
Структуризация предметной области и построение нечеткой модели.
Выполнение вычислительных экспериментов с нечеткой моделью.
Применение результатов вычислительных экспериментов.
Коррекция или доработка нечеткой модели.
Примечание
Поскольку к настоящему времени предложены нечеткие обобщения для самых различных разделов математики и логики, каждое из них потенциально может служить основой для построения соответствующей нечеткой модели. Однако чтобы исключить возможные противоречия при столь широком толковании нечеткой модели, ее содержание будет ограничено лишь рассмотренными в первой части книги нечеткими понятиями. Соответственно понятие нечеткой модели будет уточняться по мере изложения последующего материала.
Как было отмечено ранее, одним из характерных признаков сложности построения модели является неопределенность в представлении структуры или поведения системы-оригинала. При этом сама категория неопределенности может быть рассмотрена с различных точек зрения. В рамках современной методологии сис-
темного моделирования неопределенность может характеризовать следующие аспекты модельных представлений.
□ Неясность или нечеткость границы системы. Так, например, использование дихотомических признаков "высокий-низкий", "большой-маленький", "дорогой- дешевый", "молодой-старый", "опытный-неопытный", "быстрый-медленный" и подобных им для определения состава элементов системы сталкивается с принципиальной трудностью представления структуры модели системы. Характерный пример этого аспекта неопределенности — собственно класс сложных систем в контексте ответа на вопрос: "Какие системы следует считать сложными?" Другим примером может служить проблема распознавания рукописного текста компьютером, которая и сейчас не решена в полном объеме.
□ Неоднозначность семантики отдельных терминов, которые используются при построении концептуальных моделей систем. Речь идет о присущей естественным языкам полисемии или неоднозначности смысла понятий (модель прически и математическая модель, игральный автомат и автомат как стрелковое оружие, географическая карта местности и игральная карта, стрела башенного крана и стрела, пущенная из лука, замок двери и средневековый замоку
□ Неполнота модельных представлений о некоторой сложной системе, особенно в связи с решением слабо формализуемых проблем. В этом случае сама попытка построить адекватную модель сложной системы или предметной области сталкивается с принципиальной невозможностью учесть все релевантные особенности решаемой проблемы.
□ Противоречивость отдельных компонентов модельных представлений или требований, которым должна удовлетворять модель сложной системы. Так, например, требование решить проблему за минимальное время и с минимальными финансовыми затратами содержит в себе элемент противоречия. Элементы противоречий содержатся в законодательных актах и являются предметом юридической практики.
□ Неопределенность наступления тех или иных событий, относящихся к возможности нахождения системы-оригинала в том или ином состоянии в будущем. Речь идет о том, что анализ процесса поведения системы не дает оснований для однозначного ответа на вопрос: "Будет ли находиться система- оригинал в некотором состоянии в момент времени, который относится к ее будущему?" Этот аспект неопределенности часто называют стохастическим, поскольку он традиционно исследовался средствами теории вероятностей и математической статистики.
Возвращаясь к характеристике методологии нечеткого моделирования, следует отметить, что исходной предпосылкой ее развития являлась разработка адекватных модельных средств для представления первого аспекта неопределенности, связанного, прежде всего, с неясностью или нечеткостью описания границы системы или отдельных ее состояний. Тем не менее, появление и последующее развитие концепции нечеткой меры и теории возможностей позволяет утверждать то, что и другие аспекты неопределенности могут быть подвергнуты нечеткому анализу.
Таким образом, нечеткая модель системы-оригинала, или нечеткая система в первую очередь характеризуется неопределенностью типа неясности (нечеткости) границы системы, а также, возможно, отдельных ее состояний, входных и выходных воздействий. В этом случае исходная структуризация нечеткой системы может быть изображена графически в виде фигуры с расплывчатыми границами (рис. 1.4).
Рис. 1.4. Графическая иллюстрация нечеткой системы как системы с нечеткой границей
Как было отмечено выше, базовой методологией построения нечетких моделей являются собственно теория нечетких множеств и нечеткая логика, которые, в свою очередь, являются обобщением классической теории множеств и классической формальной логики. В связи с этим в приложениях 1 и 2 рассматриваются те из понятий классической теории множеств и формальной логики, которые в той или иной степени используются далее для соответствующего нечеткого обобщения. Читатели, которые знакомы с соответствующей терминологией, могут непосредственно перейти к рассмотрению теории нечетких множеств (см. главу 2), а к материалу приложений 1 и 2 обращаться по мере необходимости.
Анализ нечеткого и вероятностного подходов к моделированию неопределенности
В связи с рассмотренными выше различными аспектами неопределенности, перечень которых, в свою очередь, не претендует на полноту, следует отметить дискуссию, которая возникла по вопросу: "Является ли нечеткость разновидностью вероятности или она имеет некое самостоятельное содержание?" Эта дискуссия была инициирована адептами стохастического подхода к анализу неопределенности и время от времени дополняется новой аргументацией в пользу того, что.
по их мнению, нечеткость не вносит ничего нового в процесс анализа неопределенности. Хотя ниже будет строго математически показано, что концепция нечеткой меры включает как частный случай вероятностную меру, уже сейчас можно увидеть качественное отличие в рассмотренных выше аспектах неопределенности. Наличие других ее аспектов, таких как неуверенность, несогласованность, ненадежность, недостаточность, могут послужить предметом дальнейших размышлений заинтересованных читателей по данной проблематике.
Исторически изучением и разработкой моделей, учитывающих неопределенность того или иного вида, занимаются многие математические дисциплины, такие как теория вероятностей, теория информации, математическая статистика, теория игр, теория массового обслуживания и теория нечетких множеств. Один из способов показать различия нечеткого и стохастического подходов— классифицировать тип неопределенности, которая изучается этими дисциплинами. С этой целью рассмотрим два наиболее характерных типа неопределенности — стохастическую и лингвистическую неопределенности.
Стохастическая неопределенность
Стохастическая неопределенность имеет место в ситуациях, когда некоторое хорошо описанное событие может произойти, а может не произойти. При этом с течением времени степень неопределенности, связанная с этим событием, может измениться. Дополнительно необходимо принять некоторые предположения относительно условий, при которых рассматривается данное событие. Эти условия, как правило, характеризуют так называемый идеальный эксперимент.
Рассмотрим следующее высказывание: "Вероятность того, что при бросании монеты выпадет орел (герб), равна 0.5".
В этом высказывании неявно предполагается, что монета и поверхность идеально правильной формы, процесс бросания идеален с точки зрения субъектов эксперимента, а потенциальная возможность того, что монета окажется в вертикальном положении, исключается полностью. По прошествии некоторого времени неопределенность исчезает, поскольку после подбрасывания монеты она окажется в одном из двух возможных состояний: либо орлом сверху, либо решкой.
Таким образом, рассматриваемое высказывание имеет смысл только по отношению к событию в будущем. Изменение условий эксперимента может привести к изменению содержания этого высказывания. Поскольку обеспечить идеальные условия на практике не всегда возможно, вольно или невольно мы вынуждены считаться с некоторой потенциально присутствующей ошибкой в количественной оценке вероятности событий. Предельные теоремы теории вероятностей как раз и предназначены для оценки этой погрешности при частотной интерпретации вероятности события в длинной серии испытаний.
Исторически теория вероятностей была первой математической дисциплиной для представления неопределенности в математических моделях. По этой причине любая неопределенность долгое время считалась стохастической по своей
природе и наделялась, иногда искусственно, свойствами случайной неопределенности. Что касается вероятностного процесса, результат любой частной реализации которого является исключительно вопросом случая, предсказать последовательность событий просто невозможно. Для вероятностных процессов оказывается возможным лишь точное описание статистических оценок некоторых усредненных характеристик этого процесса.
Рассмотрим другое высказывание: "Вероятность того, что завтра пойдет дождь, равна 0.8".
В этом высказывании неявно предполагается, что событие "пойдет дождь" хорошо описано. Тем не менее, совершенно очевидно, что это событие недостаточно хорошо определено: не ясно, то ли дождь будет идти целый день, или дождь будет идти 80% от следующих по времени суток? Более того, следует ли считать дождем мелкий дождь или только ливень? Таким образом, при кажущейся очевидности этого высказывания при более детальном его анализе мы обнаруживаем некоторый другой тип неопределенности, который содержательно отличается от стохастического. Эта неопределенность скорее относится к лингвистическому описанию ситуации или события, а не к количественной оценке того, произойдет это событие в будущем или не произойдет.
Лингвистическая неопределенность
Реальный мир сложен, причем эта сложность зачастую проявляется как неопределенность в форме неоднозначности или неточности.
Этот тип неопределенности связан с неточностью обычного человеческого языка, с ним мы постоянно сталкиваемся в повседневной жизни. Достаточно рассмотреть фразы типа "высокие люди", "горячие пирожки", "красивое лицо", "хороший автомобиль", "устойчивая валюта", "дождливый день", "неважное самочувствие", "трудный день", чтобы понять, что вряд ли возможно дать им точные количественные определения.
Действительно, высокие и низкие люди будут иметь свои собственные представления о том, каких людей следует считать высокими. Более того, если мы формально установим считать высокими всех людей выше 180 см, будет ли человек с ростом 179.999 см высоким или нет? Контекст фраз тоже имеет значение, поскольку оценка высоких людей, находящихся на сцене театра и в зрительном зале, будет различной.
Для изучения подобных субъективных оценок предназначена отдельная наука — психолингвистика. В рамках этой науки принято считать, что в рассмотренных фразах люди используют слова в качестве некоторых субъективных категорий. Эти субъективные категории дают нам возможность классифицировать объекты, которые характеризуются такими свойствами, как "высота", "длина", "вес", "температура", "цвет". Даже при том, что большинство используемых категорий точно не определено, люди могут использовать их для весьма комплексных оценок и решений, которые основаны на учете многих различных факторов.
Рассмотрим высказывание: "Вероятно, мы будем иметь успешный финансовый год".
Это высказывание имеет существенные отличия от рассмотренных ранее высказываний. Во-первых, само событие точно не определено. Для некоторых компаний успешный финансовый год может означать, что им удастся избежать банкротства. Для других это может означать превышение прибыли за предшествующий год. Даже для отдельно взятой компании трудно предложить некоторое количественное значение прибыли, чтобы определить, будет ли для нее бюджетный год, как рассматривается, успешным или нет. Следовательно, понятие "успешный финансовый год" является субъективной категорией.
Другая особенность последнего высказывания заключается в определении выражения вероятности. В то время как в предыдущих двух высказываниях вероятность была выражена количественно, данное высказывание не определяет количество вероятности. Следовательно, выражение вероятности в последнем высказывании также является субъективной категорией так же, как "высокие люди" и "горячие пирожки".
Моделирование лингвистической неопределенности
Высказывания, аналогичные последнему высказыванию и использующие субъективные категории людей, играют важную роль в процессе повседневного принятия решения. Даже при том, что эти высказывания не имеют количественного содержания, люди успешно используют их для комплексных оценок. В некоторых случаях неопределенность, которая присутствует в значении тех или иных слов, сознательно используется нами в разговоре для придания ему дополнительной гибкости. Достаточно представить себе диалоги в ситуациях с поиском высокооплачиваемой работы или приобретением недвижимости.
Чтобы адекватно использовать логику, присутствующую в человеческих рассуждениях, для решения технических проблем необходимо разработать соответствующую математическую модель. Именно с этой целью была разработана нечеткая логика, которая позволяет представить процессы принятия решений и оценки ситуаций человеком в некоторой алгоритмической форме. Хотя возможности человеческого мышления и фантазии безграничны, пределы того, что позволяет моделировать нечеткая логика, существуют.
Каким образом люди могут рассуждать относительно реальных систем, когда законченное описание реальной системы часто требует более детальных данных, чем человек в состоянии получить и интерпретировать? Ответ состоит в том, что люди имеют способность рассуждать приблизительно, возможность, которой компьютеры в настоящее время не обладают. При общении людей использование фраз типа "высокий человек" и "высокооплачиваемая работа" не приводит к возникновению концептуальных проблем, поскольку передает семантически понятную информацию участвующим в разговоре личностям. При необходимости всегда можно уточнить используемые субъективные категории.
В то же время компьютеры или микропроцессоры используют в своей работе исключительно бинарную логику. Для понимания соответствующих фраз компьютером необходимо, чтобы конкретное значение высоты или заработной платы сравнилось с заданным пороговым значением для рассматриваемых формальных категорий "высокий человек" и "высокооплачиваемая работа". Основное достоинство теории нечетких множеств заключается в возможности использовать лингвистические переменные вместо количественных, нечеткую логику вместо бинарной логики для формального представления подобных неточных субъективных категорий.
При рассмотрении сложной системы люди рассуждают относительно ее структуры и поведения приблизительно или неточно. Тем самым достигается некоторое универсальное понимание содержания проблемы. К счастью, эта общность и неточность, приобретаемая в форме опыта с течением времени, зачастую оказываются достаточными для человеческого понимания сложных явлений и адекватного принятия решений в бытовых ситуациях. Именно в рамках теории нечетких множеств оказывается возможным включить в описание проблемы этот опыт и интуицию отдельного человека.
Нечеткая логика в сравнении с теорией вероятностей
Рассмотренные выше примеры высказываний иллюстрируют тот факт, что стохастическая и лингвистическая неопределенности имеют различный характер. Стохастическая неопределенность имеет дело с неопределенностью того, произойдет ли некоторое хорошо описанное событие в будущем, а теория вероятностей позволяет дать на этот вопрос тот или иной ответ.
Напротив, лингвистическая неопределенность связана с неточностью описания самой ситуации или события независимо от времени их рассмотрения. Теория вероятностей не может использоваться для решения подобных проблем, поскольку представления о субъективных категориях, присутствующих в процессах мышления человека, в полной мере не согласуются с ее аксиомами.
Тем не менее, некоторые из специалистов, интенсивно работающие с теорией вероятностей и математической статистикой, долгое время отрицали саму возможность применения нечеткой логики в приложениях. Эти специалисты зачастую утверждали, что все виды неопределенности могут быть выражены в понятиях теории вероятностей. В то же время даже из рассмотренных выше примеров становится очевидным, что как теорию вероятностей, так и теорию нечетких множеств целесообразно использовать для моделирования различных аспектов неопределенности, отличающихся по своей природе.
В заключение приведем еще один наглядный пример, который хорошо иллюстрирует семантическое различие между стохастической и лингвистической неоп- .ределенностью. Представим себе ситуацию, когда путник после длительного путешествия, испытывая чувство жажды, находит две бутылки с неизвестной жидкостью внутри каждой из них (рис. 1.5, я). Естественным желанием путника
является утолить свою жажду. Однако никаких этикеток с указанием напитка найденные бутылки не содержат (кроме, возможно, пометок А и Н).
ААааРис. 1.5. Пример с неизвестными напитками в бутылкахРис. 1.5. Пример с неизвестными напитками в бутылкахА — джин-тоник Б — уксус ^(Л) = 0.91р(5) = 0
А
А
а
а
Рис. 1.5. Пример с неизвестными напитками в бутылках
Рис. 1.5. Пример с неизвестными напитками в бутылках
Предположим, что дополнительно известна степень принадлежности содержимого бутылки А к жидкостям, пригодным для питья, и эта степень принадлежности равна 0.91. Известна также вероятность того, что содержимое бутылки Б пригодно для питья, и эта вероятность также равна 0.91. Если путник органичен в выборе напитков этими двумя бутылками, какую из них ему следует выбрать для утоления жажды?
Если путник знаком с теорией нечетких множеств и теорией вероятностей, то его выбор может основываться на следующем рассуждении. Анализируя информацию о содержимом бутылки А, он может предположить, что в ней находится не совсем пригодная для питья жидкость, например, болотная вода. При этом естественно считать, что чистая вода имела бы степень принадлежности равную I. В то же время в этой бутылке не может находиться ядовитая жидкость, скажем, серная кислота, поскольку в этом случае степень принадлежности содержимого бутылки А к жидкостям, пригодным для питья, была бы равна 0.
Анализируя информацию о содержимом бутылки Б, путник, естественно, будет апеллировать к частотной интерпретации вероятности содержащейся в ней жидкости. В этом случае резонно предположить, что если бы путник имел возможность многократного выбора бутылки Б, то приблизительно в 9 случаях из Ю он смог бы благополучно утолить свою жажду. При этом содержимое бутылки Б должно было бы быть по качеству близким к чистой воде. Что же должно произойти в том единственном случае из рассматриваемых Ю— остается непонятным. Возможно, результатом может оказаться самый печальный исход для путника или его серьезное недомогание. Очевидно, что это не может случиться, если в бутылке Б находится пиво или квас. Значит в одном случае из Ю в этой бутылке может находиться нечто совсем неприемлемое для питья, например, соляная кислота.
Вывод для путника напрашивается очевидный — при наличии только указанной информации выбрать содержимое бутылки А. Во всяком случае это позволит избежать серьезного отравления или летального исхода. Но этот выбор может измениться, если изменится информация о содержимом бутылок. Так, совсем не очевидно, какую из бутылок предпочесть, если степень принадлежности для бутылки А и вероятность для бутылки Б станут равными, скажем, 0.5.
Посмотрим, как изменятся эти количественные характеристики после того, как путнику станет известно, что в бутылке А содержится джин-тоник, а в бутылке Б— уксус (рис. 1.5, б). Очевидно, что обе ситуации возможны при рассмотренных исходных условиях. Степень принадлежности жидкости в бутылке А останется без изменений, если исключить явное предпочтение этого напитка перед всеми остальными. А вот апостериорная вероятность жидкости в бутылке Б станет равной 0, поскольку вряд ли уксус следует считать жидкостью, пригодной для питья без опасности печальных последствий. С другой стороны, если бы в бутылке Б оказался джин-тоник, то у нас были бы все основания считать соответствующую апостериорную вероятность равной 1.
Таким образом, понятие нечеткого множества способно обеспечить нас адекватной информацией относительно неточного описания тех или иных ситуаций. По существу, этот подход наиболее применим для решения таких проблем, в которых неопределенность характеризуется отсутствием хорошо определенных критериев, позволяющих однозначно судить о принадлежности элементов тому или иному классу. Именно в этом проявляется различие между нечеткостью и случайностью. В то же время нечеткие модели не являются заменой моделей, разработанных в теории вероятностей. Как будет видно из последующего изложения, каждое четкое множество является нечетким, но обратное утверждение не верно. Поэтому нечеткие модели обобщают традиционные и более знакомые нам математические модели. Иногда они работают лучше, а иногда нет. В конце концов, эффективность модели проявляется в ее способности адекватно решить ту или иную конкретную проблему.
Как правило, сложная проблема в той или иной степени связана с неопределенностью. Искусство и профессионализм системного аналитика как раз и проявляются в том, чтобы предложить для ее решения такую модель, которая наиболее адекватно учитывает тот или иной тип неопределенности. Достигнутые в последнее время впечатляющие успехи в приложении нечетких технологий для решения самых разнообразных практических задач позволяют утверждать, что нечеткое моделирование реальных сложных систем — эффективная альтернатива традиционным математическим моделям и методам.
Глава 2
Основные понятия теории нечетких множеств
Настоящая глава во многих отношениях является базовой, поскольку в ней представлены определения всех основных свойств нечетких множеств, которые используются на всем протяжении книги. Хотя из общих методологических рассуждений главы 1 может сложиться впечатление о неформальном характере теории нечетких множеств, это впечатление обманчиво. В действительности данная теория в математическом смысле является строго формализованной. К настоящему времени предложены самые разнообразные определения нечетких теоретико-множественных понятий. Однако в книгу вошел только тот материал, который непосредственно применяется для решения различных практических задач и в той или иной степени реализован в соответствующих инструментальных средствах.
Определение нечеткого множества
Нечеткое множество. Нечеткое множество (fuzzy set) представляет собой совокупность элементов произвольной природы, относительно которых нельзя с полной определенностью утверждать — принадлежит ли тот или иной элемент рассматриваемой совокупности данному множеству или нет. Другими словами, нечеткое множество отличается от обычного множества тем, что для всех или части его элементов не существует однозначного ответа на вопрос: "Принадлежит или не принадлежит тот или иной элемент рассматриваемому нечеткому множеству?" Можно этот вопрос задать и по-другому: "Обладают или нет его элементы некоторым характеристическим свойством, которое может быть использовано для задания этого' нечеткого множества?"
Для построения нечетких моделей систем само понятие нечеткого множества следует определить более строго, чтобы исключить неоднозначность толкования тех или иных его свойств. Оказалось, что существуют несколько вариантов формального определения нечеткого множества, которые по сути отличаются между собой способом задания характеристической функции данных множеств. Среди этих вариантов наиболее естественным и интуитивно понятным является задание области значений подобной функции как интервал действительных чисел, заключенных между 0 и 1 (включая и сами эти значения).
Математическое определение нечеткого множества. Формально нечеткое множество 54 определяется как множество упорядоченных пар или кортежей вида: <х, jWx)>, где а является элементом некоторого универсального множества или универсума X, а рл(х) —■ функция принадлежности, которая ставит в соответствие каждому из элементов хеХ некоторое действительное число из интервала [0,1], т. е. данная функция определяется в форме отображения:
^:Х->[0, 1].(2.1)
При этом значение ц^(х)=1 для некоторого хеХ означает, что элемент х определенно принадлежит нечеткому множеству 54, а значение ц^(х)=0 означает, что элемент а определенно не принадлежит нечеткому множеству 54.
Формально конечное нечеткое множество будем записывать в виде: 54={<xi, ця(Х1)>, <хг, ц^(а2)>,..., <х,„ Цл(а„)>}, а в общем случае— в виде: 54= (<х, ц^С^}.
Примечание
В литературе по теории нечетких множеств, которая исчисляется огромным количеством работ, можно встретить не только различные определения, но и разнообразные обозначения для нечетких множеств. Наиболее общие из определений нечеткого множества предполагают, что в качестве области значений функции принадлежности могут выступать другие нечеткие множества или произвольные вполне упорядоченные множества. Следует также отметить, что в ранних работах отечественных авторов по данной тематике нечеткие множества иногда назывались расплывчатыми. Кроме принятых нами обозначений конечные нечеткие множества часто записываются в форме: А = {(цдМ, хд, (цд(х2), х2)(цд(хп), Xn)}, А = {x7/^(x<) + Хг/цДхг) + ... + хп/цЛ(хп)} или А = {-^4^ + 2iils2 + ... + 2Li15l1i ПрИ этом косая и горизонтальная черта служат просто разделителем, а знак "+" обозначает не арифметическую сумму, а теоретико-множественное объединение отдельных элементов. Бесконечные нечеткие множества иногда записывают со знаком интеграла в виде: А = ]цд(х) /х. Все это скорее дань традиции, чем нечто имеющее содержательный смысл. Тем более, что сам знак интеграла может быть воспринят как нечеткий интеграл, чем он здесь никак не является. Желая подчеркнуть или явно указать, что множество А является нечетким, многие авторы часто записывают нечеткое множество со знаком тильда ”~" внизу или вверху, т. е. в форме: А или А.
Поскольку существующие различия в формах записи не имеют принципиального значения, в последующем тексте нечеткие множества для удобства будут обозначаться рукописными прописными буквами: 54, ‘В, С, D. С другой стороны, для записи классических (не нечетких, crisp) множеств будут по-прежнему использоваться общепринятые обозначения в форме: А, В, С, D (см. приложение 1). Что касается других определений и обозначений нечетких множеств или нечетких подмножеств, то заинтересованный читатель может познакомиться с ними, обратившись к дополнительной литературе, приводимому в конце книги.
Из всех нечетких множеств выделим два частных случая, которые по сути совпадают со своими классическими аналогами и используются в дальнейшем при определении других нечетких понятий.
Пустое нечеткое множество. В теории нечетких множеств сохраняют свой смысл некоторые специальные классические множества. Так, например, пустое нечеткое множество или множество, которое не содержит ни одного элемента, по-прежнему обозначается через 0 и формально определяется как такое нечеткое множество, функция принадлежности которого тождественно равна нулю для всех без исключения элементов: ц0 = 0. В этой связи уместно упомянуть о том, что характеристическая функция обычного пустого множества также тождественно равна нулю для каких бы то ни было элементов: Хо- 0 (см. приложение 1).
Универсум. Что касается другого специального множества, то так называемый универсум, обозначаемый через X, уже был использован выше в качестве обычного множества, содержащего в рамках некоторого контекста все возможные элементы. Формально удобно считать, что функция принадлежности универсума как нечеткого множества тождественно равна единице для всех без исключения элементов: цх = 1. При этом характеристическая функция обычного универсального множества также тождественно равна единице для каких бы то ни было элементов: %х= 1 (см. приложение 1).
Примечание
Как не трудно заметить, рассмотренные понятия пустого множества и универсума, используемые в теории нечетких множеств, по своему содержанию полностью идентичны соответствующим понятиям классической теории множеств. Поэтому говоря о них, мы не будем использовать определение "нечеткое", поскольку в произвольном контексте они всегда являются формально определенными.
Для того чтобы определить конечные и бесконечные нечеткие множества, необходимо ввести в рассмотрение одно из основных понятий, которое используется для характеристики произвольного нечеткого множества, а именно — понятие носителя нечеткого множества.
Носитель нечеткого множества. Носителем нечеткого множества 54 называется обычное множество AS1 которое содержит те и только те элементы универсума, для которых значения функции принадлежности соответствующего нечеткого множества отличны от нуля. Математически носитель нечеткого множества определяется следующим условием:
As = {xgX} [гДл^О} VxgX. (2.2)
Примечание j
Иногда носитель нечеткого множества обозначают через supp^), где supp — первые буквы английского слова support. Мы не будем использовать это обозначение, поскольку оно может быть ошибочно ассоциировано с обозначением рассматриваемой ниже функции sup(x).
Очевидно, пустое нечеткое множество имеет пустой носитель, поскольку ц0=О для любого его элемента. Носитель универсума, рассматриваемого как нечеткое множество, совпадает с самим универсумом. Для удобства и сокращения записи произвольного нечеткого множества часто указывают лишь значения его функции принадлежности для элементов носителя, неявно предполагая, что все остальные значения функции принадлежности равны нулю.
В зависимости от количества элементов в нечетком множестве по аналогии с обычными множествами можно определить конечные и бесконечные нечеткие множества.
Конечные нечеткие множества. Нечеткое множество называется конечным, если его носитель является конечным множеством. При этом вполне уместно говорить, что такое нечеткое множество имеет конечную мощность, которая численно равна количеству элементов его носителя как обычного множества (см. приложение 1). В этом случае для обозначения мощности произвольного нечеткого множества 5k можно также использовать символ card^Ry Удобно считать мощность пустого множества равной 0.'
Бесконечные нечеткие множества. Аналогичным образом можно определить и бесконечные нечеткие множества как такие нечеткие множества, носитель которых не является конечным множеством. При этом счетным нечетким множеством будем называть нечеткое множество со счетным носителем, т. е. носитель которого имеет счетную мощность Ко в обычном смысле (см. приложение 1). Несчетным нечетким множеством будем называть нечеткое множество с несчетным носителем, т. е. носитель которого имеет несчетную мощность или мощность континуума с (или К) в обычном смысле.
Очевидно, данное выше определение носителя нечеткого множеств корректно, поскольку как для конечных, так и для бесконечных нечетких множеств выражение (2.2) имеет смысл.
Чтобы привести некоторые примеры нечетких множеств и приступить к определению их основных свойств, следует рассмотреть основные способы, которыми формально могут быть заданы произвольные нечеткие множества.
Нечеткие множества могут быть заданы двумя основными способами:
В форме списка с явным перечислением всех элементов и соответствующих им значений функции принадлежности, образующих рассматриваемое нечеткое множество. При этом зачастую элементы с нулевыми значениями функции принадлежности просто не указываются в данном списке. Этот способ подходит для задания нечетких множеств с конечным дискретным носителем и небольшим числом элементов. В этом случае нечеткое множество удобно записывать в виде: 5k=V<x4 Ця(^|)>, <х^, р^Х2)>,..., <хп, ц^(ля)>}, где п— рассматриваемое число элементов нечеткого множества У1 (его носителя).
Например, возьмем в качестве универсума Х={1,2, 3,...) — множество натуральных чисел. Тогда нечеткое множество 5k, представляющее в некотором контексте "небольшое натуральное число", можно задать следующим образом: Я={<1, 1.0>, <2, 1.0>, <3, 0.9>, <4, 0.8>, <5,0.6>, <6, 0.5>, <7, 0.4>, <8,0.2>, <9, 0.1 >}. При этом элементы, для которых ц^х) = 0, отсутствуют в этом списке.
Аналитически в форме математического выражения для соответствующей функции принадлежности. Этот способ может быть использован для задания произвольных нечетких множеств как с конечным, так и с бесконечным носителем. В этом случае нечеткое множество удобно записывать в виде: Л=}<х, ц^(а;)>} или Я={х, p^WI, где Ня— некоторая функция, заданная аналитически в форме математического выражения Дх) или графически в форме некоторой кривой. Наиболее часто используемые виды функций принадлежности будут рассмотрены ниже в этой главе.
Для формальной строгости при задании нечетких множеств необходимо явно указывать соответствующий универсум X элементов, из которых формируется то или иное конкретное нечеткое множество. В общем случае никаких предположений относительно элементов этого множества не делается. Однако с практической точки зрения целесообразно ограничить универсум элементами рассматриваемой предметной области или решаемой задачи. Поскольку при построении нечетких моделей систем используются количественные переменные, то наиболее часто в качестве универсума X используется некоторое подмножество действительных чисел R, например, множество неотрицательных действительных чисел R+ или натуральных чисел /У.
Рассмотрим некоторые конкретные примеры нечетких множеств.
П р и м е р 2.1. Предположим, необходимо построить некоторое нечеткое множество, которое содержательно описывало бы выходные (нерабочие) дни обычной семидневной недели. В терминологии классических множеств ситуация тривиальная, а именно, дни недели с понедельника по пятницу являются рабочими, а суббота и воскресенье— выходными. Заметим, что речь идет о традиционной календарной неделе, а рабочие дни считаются без учета сменности и других особенностей трудозатрат. Таким образом, обычное не нечеткое множество выходных дней А состоит из двух элементов: А-}суббота, воскресенье}. Эта точка зрения является общепринятой для бухгалтерии при расчете заработной платы сотрудникам.
Что же касается определения соответствующего нечеткого множества Я, попытаемся субъективно оценить степень нашего эмоционального отношения к различным дням недели, рассматривая их с точки зрения выходных и психологии возможного отдыха. Для большинства из нас ситуация уже не будет казаться столь простой, как в предыдущем случае.
Что касается дней с понедельника по четверг, то отношение к ним как к рабочим дням вряд ли изменится. А вот пятница, особенно ее вечер,'для многих ассоциируется с полноценным отдыхом и высокой. степенью положительных эмоций. Суббота является безусловно выходным днем, в течение которого могут быть забыты все служебные заботы, особенно в субботу вечером, а для многих — и ночью. А вот что касается воскресенья, то ближе к вечеру ситуация меняется — нередко на ум приходит мысль: "Завтра нужно рано вставать и приступать к работе", и настроение уже нельзя считать столь безоблачным.
Таким образом, рассматриваемое нечеткое множество Я, описывающее выходные дни недели, может быть задано, например, в виде: SV= ^понедельник, 0>, <вторник, 0>, <среда, 0>, <четверг, 0>, <пятница, 0.5>, <суббота, 1.0>,
38 Часть I. Основы теории нечетких множеств и нечеткой логики воскресенье, 0.8>}. Здесь в качестве универсума выступают все дни недели: X- ^понедельник, вторник, среда, четверг, пятница, суббота, воскресенье}, а функция принадлежности задается перечислением своих значений. При этом чем ближе ее значение к 1, тем больше соответствует тот или иной день недели нашему отношению к нему как к выходному дню.
Попробуем представить это нечеткое множество графически. Очевидно, обычный способ изображения множеств с помощью диаграмм Венна (см. приложение 1) здесь не подходит, поскольку границы данного нечеткого множества не являются четко очерченными. Однако, помня, что каждое нечеткое множество вполне определяется своей функцией принадлежности, изобразим графически функцию принадлежности этого нечеткого множества. Для этого на горизонтальной оси отметим отдельные значения элементов универсума (в нашем случае — элементы множества Л), а на вертикальной оси — значения соответствующей функции принадлежности ^(х) (рис. 2.1).
Рис. 2.1. Графическое представление конечного нечеткого множества Я, описывающего выходные дни недели, в форме значений функции принадлежности этого нечеткого множества
Примечание
Даже этот простой пример показывает, что однозначно определить то или иное нечеткое множество не представляется возможным, а иногда — и принципиально невозможным. Если кто-то решит, что его субъективная оценка выходных дней отличается от рассмотренной выше, то он/она будут по-своему правы. Соответственно, в качестве нечеткого множества Я могли бы выступать множества: Я={<понедельник, 0>, <вторник, 0>, <среда, 0>, <четверг, 0.1>, <пятница, 0.6>, <суббота, 1.0>, <воскресенье, 0.7>} или ^^понедельник, 0>, <вторник, 0.1 >, <среда, 0>, <четверг, 0.1>, <пятница, 0.5>, <суббота, 0.9>, <воскресенье, 0.8>}. Важно представлять себе, что с формальной точки зрения все они должны удовлетворять лишь исходному определению нечеткого множества в форме (2.1).
Продолжим рассмотрение предыдущего примера с целью его расширения на случай бесконечного нечеткого множества. Поскольку наше отношение к выходным дням недели может изменяться в течение времени суток, а горизонталь-
ная ось на рис. 2.1 легко преобразуется к непрерывной оси времени, то и соответствующее нечеткое множество Я допускает естественное обобщение. А именно, каждый из дней недели будем представлять как отдельные сутки с переходом в 0 часов к следующему дню недели. Тогда функция принадлежности нечеткого множества 54 может быть задана аналитически в форме некоторой кривой, которая в максимальной степени соответствует нашему эмоциональному отношению к выходным дням в течение всех суток.
В простейшем случае мы могли бы аппроксимировать представленную ранее функцию принадлежности (рис. 2.1) некоторой кривой. Один из возможных вариантов такой функции принадлежности изображен на рис. 2.2, на котором горизонтальная ось соответствует посуточному представлению семидневной недели.
Рис. 2.2. Графическое представление бесконечного нечеткого множества Я, описывающего выходные дни недели, в форме кривой его функции принадлежности
Для сравнения рассмотрим представление обычного (не нечеткого) множества выходных дней недели А = \суббота, воскресенье^ в форме бесконечного множества. В этом случае характеристическая функция Хл(А) данного множества может быть записана в виде кусочно-непрерывной функции, принимающей только два значения — 0 и 1 на множестве значений универсума X (рис. 2.3).
1 1
11
11
11
11
11
1 i।
1
1
1 1!
1 '" 11
1
ii
11
1—
1 .J
понедельник вторник среда четверг пятница суббота воскресенье
Рис. 2.3. Графическое представление обычного множества выходных дней Ав форме значений соответствующей характеристической функции
Примечание
Поскольку изображенная на рис. 2.3 функция принадлежности имеет разрывы в точках смены суток с пятницы на субботу и с воскресенья на понедельник, то строго формально следует определить ее значение в данных точках. Эта неопределенность содержательно связана с неопределенностью соответствующих моментов времени на временной оси (24 часа в пятницу и 0 часов в субботу). Не ограничивая общности изложения, математически можно считать, что значения функции принадлежности в этих точках равны нулю (или единице) и соответствующим образом откорректировать рисунок. Поскольку в нашем контексте это не имеет принципиального значения, мы оставим данный рисунок без изменения.
Из рассмотрения данного примера видно, что характеристическую функцию %4 обычного множества А в том или ином контексте удобно считать специальным случаем функции принадлежности ця соответствующего нечеткого множества 54. Этот факт позволяет рассматривать произвольное нечеткое множество 54 как обобщение обычного множества А, а множество А — как сужение или частный случай соответствующего нечеткого множества 54.
Пример 2.2. В качестве второго примера рассмотрим типичную бытовую ситуацию, с которой сталкиваются многие из нас при попытке дать характеристику температуры того или иного напитка. Подобная характеристика обычно основывается исключительно на субъективных ощущениях, например, горячий кофе или чай, холодный квас или кола. Хотя в этом случае неявно используется некоторая шкала температуры, при этом, как правило, не применяется никаких измерительных инструментов.
Применительно к данной ситуации рассмотрим нечеткое множество 'В, которое будет характеризовать "горячий кофе". В этом случае в качестве универсума естественно взять шкалу температуры, измеренной в градусах Цельсия и заключенной в открытом интервале (О °C, 100 °C), т. е. X={x | 0 °C <х< 100 °C}. Выбор этого интервала вполне оправдан с физической точки зрения, поскольку именно в этом диапазоне температур кофе потенциально может существовать как напиток. Очевидно, что отдельная чашка кофе, скажем ла, с температурой 10 °C не может быть признана горячей, поэтому для нее значение функции принадлежности рассматриваемому множеству ‘В будет равно нулю, т. е. цв(х1)=0. С другой стороны, другая чашка кофе хг с температурой 90 °C вполне может быть признана горячей, поэтому для нее значение функции принадлежности рассматриваемому множеству В будет равно 1, т. е. цй(хг)=1.
Что касается значений температур, заключенных между этими крайними значениями, то ситуация представляется уже не столь однозначной. Более того, она по своей сути является исключительно субъективной и неопределенной, поскольку чашка кофе с температурой 55 °C для одного индивидуума может оказаться горячей, а для другого — не слишком горячей. Именно в этом и проявляется нечеткость задания соответствующего множества. Тем не менее, мы можем быть вполне уверены в общем виде функции принадлежности, а именно — в том, что
соответствующая функция принадлежности является монотонно возрастающей (или более строго — монотонно неубывающей).
Таким образом, в качестве множества J3={x, ^(х)}, описывающего горячий кофе, можно рассматривать, например, такое нечеткое множество, для которого функция принадлежности имеет следующий вид (см. рис. 2.4, а и/или 2.4, б).
Рис. 2.4. Графики вариантов функций принадлежности для нечеткого множества S, описывающего "горячий кофе"
Примечание
Рассмотренный пример допускает обобщение на другие ситуации, связанные с представлением аналогичной нечеткой информации. В частности, целый ряд свойств технических устройств, бытовых приборов и социальных явлений могут инициировать похожие нечеткие множества. Например, такие фразы, как "скоростной автомобиль", "высокооплачиваемая работа", "благоустроенная квартира", "щедрые чаевые", "престижный район", "вкусный ужий" порождают нечеткие множества, аналогичные рассмотренному в примере 2.2. При этом общий вид функций принадлежности таких множеств будет подобен изображенным на рис. 2.4, а, б.
Пример 2.3. Следующий пример связан с распознаванием букв некоторого алфавита и десятичных цифр, что является весьма актуальной задачей при сканировании текстовых документов. Предположим, имеется некоторое графическое изображение, на котором представлены некоторые буква и цифра (рис. 2.5).
Рис. 2.5. Графическое изображение некоторой буквы (а)и некоторой десятичной цифры (б)
Первое изображение порождает на множестве всех прописных букв (например, русского) алфавита Х= {А, Б, В,..., Я} некоторое конечное нечеткое множество С={<А, цс(А)>, <Б, цс(Б)>,..., <Я, Цс(Я)>}. Это нечеткое множество содержательно описывает соответствие изображения, представленного на рис. 2.5, а, той или иной букве русского алфавита. Таким множеством может быть, например следующее нечеткое множество: С={<А, 0>, <Б, 0>,...,<И, 1.0>, <Й, 0.9>, <К,0.4>, <Л,0>, <М, 1.0, <Н, 1.0>, <О, 0>,...,<Х, 0.3>,...,<Я, О}. Пропущенные элементы соответствуют нулевым значениям функции принадлежности для остальных букв алфавита.
Второе изображение порождает на множестве всех десятичных цифр Х={0, 1, 2, 3, 4, 5, 6, 7, 8, 9} конечное нечеткое множество ©={<0, Цю(О)>, <1, Цю(1)>,..., <9, цю(9)>}. Это нечеткое множество содержательно описывает соответствие изображения, представленного на рис. 2.5, б, той или иной десятичной цифре. В частном случае таким нечетким множеством может быть, например, следующее: С={<0, 0.8>, <1, 0>, <2, 0>, <3,0.9>, <4, 0>, <5, 0.2>, <6, 1.0>, <7, 0>, <8, 1.0>, <9, 0.9>}. Здесь указаны все значения функции принадлежности для элементов универсума.
Примечание
Рассмотренные выше примеры иллюстрируют характерные аспекты неопределенности, которые встречаются в практике нечеткого моделирования. Во- первых, каждое из нечетких множеств допускает в общем случае неоднозначное представление, что отражает субъективную точку зрения на моделирование соответствующих практических ситуаций. Другими словами, если кто-то не согласен с конкретным вариантом задания нечетких множеств Я, 55, и С, то он/она могут предложить свои варианты значений функций принадлежности. И формально все будут по-своему правы, поскольку адекватность этих представлений обуславливается их последующим практическим использованием для решения той или иной задачи. Во-вторых, эти примеры хорошо иллюстри-
руют концептуальное различие между теорией нечетких множеств и теорией вероятностей, поскольку рассмотренные варианты неопределенности имеют не стохастический характер. И, наконец, в-третьих, выбор аналитической функции или вида кривой для той или иной функции принадлежности с целью задания соответствующего нечеткого множества зачастую определяется соображениями удобства и простоты.
Перейдем к рассмотрению основных характеристик нечетких множеств, которые используются для их более детального описания и систематического изучения.
Основные характеристики нечетких множеств
Пусть 54= {х, ц^(х)} — произвольное нечеткое множество (конечное или бесконечное) с элементами из универсума X и функцией принадлежности р^х).
Множество a-у ровня. Обобщением носителя нечеткого множества является понятие множества а-уровня, под которым понимается обычное множество Аа, удовлетворяющее следующему условию: Ja={xgXI ц^х) > а}, где a— некоторое действительное число из интервала [0,1], т. е. ае[0, I].
Примечание
Иногда можно встретить также определение множества строгого а-уровня, которое отличается строгим неравенством в соответствующем условии: Аа ={хеХ | ЦлW >«}■ Очевидно, в этом случае носитель произвольного нечеткого множества есть его множество строгого 0-уровня, т. е. справедливо формальное равенство: Ло = Л$.
В качестве примера рассмотрим определенное выше нечеткое множество 54, представляющее в некотором контексте "небольшое натуральное число" и равное: 54={<1, 1.0>, <2, 1.0>, <3, 0.9>, <4,0.8>, <5, 0.6>, <6, 0.5>, <7,0.4>, <8,0.2>, <9, 0.1>}. Тогда некоторые из его множеств a-уровня равны: Ло.8~{1, 2, 3, 4}, ^о5={1,2,3,4, 5,6},>lo.i ={1, 2,3,4,5,6,7, 8,9}.
Графически множества a-уровня для конечного нечеткого множества удобно представить с помощью вложенных диаграмм Венна. В этом случае каждая из окружностей будет соответствовать отдельному множеству a-уровня, а элементы каждого из множеств a-уровня размещаются внутри соответствующей окружности (рис. 2.6).
В случае бесконечных нечетких множеств для построения множеств а-уровня можно поступить следующим образом. На графике соответствующей функции принадлежности следует провести прямую линию j=a. После чего выделить на оси X те точки или интервалы, для которых отдельные части графика расположены выше этой линии.
Рис. 2.6. Графическое изображение различных множеств а-уровня с помощью вложенных диаграмм Венна для конечного нечеткого множества "небольшое натуральное число”
Так, если в качестве примера рассмотреть бесконечное нечеткое множество 58, которое представляет "действительное число, приближенно равное нулю”, с функцией принадлежности, график которой изображен на рис. 2.7, а, то описанным выше способом можно получить, например, его множество 0.5-уровня (рис. 2.7, б). Как можно заметить, в данном случае Bo s = [-0.5,0.5].
Очевидно, для множеств a-уровня произвольного нечеткого множества 54 справедливо следующее свойство: если а| > а2, то Аа1 с Ла2.
Высота нечеткого м н о ж е с т в а. Величина h^ = sup(p^(x)}, где супремум берется по всем значениям функции принадлежности для хеХ, называется высотой нечеткого множества 54. Согласно этому определению, нечеткое множество 54 пусто, если его высота в точности равна 0, т. е. h^ = 0.
Например, высота конечного нечеткого множества 54 "небольшое натуральное число” равна 1 и соответствует двум элементам универсума: 1 и 2. Высота нечеткого множества В, которое представляет "действительное число, приближенно равное нулю”, также равна 1 и цДО)^ 1..
Рассмотрим в качестве еще одного примера бесконечное нечеткое множество С, которое представляет "большое действительное число", с функцией принадлежности, заданной следующим математическим выражением:
х — 1
цД.х) = 0 для хе[0,1) и рс(х) = для хе^?+\[0, 1). Высота этого нечеткого
множества также равна 1, однако среди элементов универсума X=R* отсутствуют числа, для которых Цс(х) =1 (рис. 2.8). Действительно, какое бы число мы не рассмотрели, соответствующее значение функции принадлежности всегда будет строго меньше 1.
Рис. 2.7. Графическое изображение функции принадлежности бесконечного нечеткого множества "действительное число, приближенно равное нулю" (а) и его множества 0.5-уровня (б)
Рис. 2.8. График функции принадлежности бесконечного нечеткого множества С, которое представляет "большое вещественное число”
Особенность определения высоты заключается в том, что высота нечеткогомножества всегда существует и равна некоторому действительному числу из ин-тервала [0, 1], которому может соответствовать несколько элементов универсу-ма. Действительно, для конечных нечетких множеств высота всегда равна мак-
симальному значению их функций принадлежности. Для бесконечных нечетких множеств область значений соответствующих функций принадлежности всегда является компактным множеством, т. к. является подмножеством интервала [О, 1]. А поскольку для произвольного компактного множества всегда существует наименьшая верхняя грань, то она и принимается по определению за высоту нечеткого множества.
Примечание
При определении высоты нечеткого множества использована специальная функция y=sup(f), которая получила свое название от латинского supremum — наивысшее и называется верхней гранью (или наименьшей верхней гранью). Как будет видно из дальнейших рассуждений, эта функция отличается от похожей на нее функции max(f). Формально функция y=sup(0 определяется для обычных множеств следующим образом. Рассмотрим произвольное отображение f: D^ К, где D— область определения этого отображения (D сХ). Отображение f называется ограниченным сверху (снизу) на множестве D, если существует конечное число kelR, такое что выполняется условие; f(x) < к (соответственно, f(x)>k) (VxeD). При этом отображение f(x) называется ограниченным на множестве D, если оно одновременно ограничено на D сверху и снизу. Далее рассмотрим некоторое ограниченное сверху отображение f(x), для которого D tiR, т. е. ограниченную сверху функцию f(x). В общем случае числовые значения ke!R, для которых выполняется условие: f(x) < к, VxeD, образуют некоторое числовое подмножество U с^, при этом очевидно, что U^. Если среди всех keU найдется некоторое наименьшее значение, обозначим его через ks, то оно называется наименьшей верхней гранью функции f(x) на множестве D eJR и обозначается через ks= sup(f) (читается "супремум f на множестве D"). Очевидно, если kselmf, то это значение одновременно является и максимумом функции f(x) на множестве D ^/R, т. е. ks= max(f) и тогда значения этих двух функций sup(f) и max(f) совпадают. С другой стороны, может оказаться, что в множестве Imt не существует такого к$, для которого выполнялось бы условие: f(x) < ks, VxeD, т е. kselmf. Введение в рассмотрение функции sup(/) всегда гарантирует существование такого ks в множестве действительных чисел 0?, поскольку последнее является непрерывным и вполне упорядоченным множеством. Следует также отметить, что функции sup(0 и тах(0 всегда можно определить на множестве значений рассматриваемых функций f, т. е. на Imr. Таким образом, поскольку область значений любой функции принадлежности ограничена интервалом [0, 1], высота произвольного нечеткого множества всегда существует и это числовое значение принадлежит интервалу [0, 1].
Приведем простой пример. Рассмотрим конкретную числовую функцию— параболу, которую запишем в традиционной нотации: у=х2, а в качестве области определения возьмем два интервала: замкнутый Di=[-1, 1] и открытый Ог= = (-1, 1). Очевидно, что sup(y) = 1 nsup(y) = 1, при этом max(y) - 1 (достига- xeDtxgD2xeD{
ется при xi = -1, Х2 =1 и эти x1-2gD-i), а шах(у) не существует. Действительно, ле D2
в открытом интервале (-1, 1) нет такого числа xeD2, для которого выполнялось бы равенство: х2 =1.
Нормальное нечеткое множество. Нечеткое множество 54 называется нормальным, если максимальное значение его функции принадлежности равно I. Формально это означает, что для нормального нечеткого множества необходимо выполнение следующего условия:
hX*)=1, (ЗхеХ) (2.3)
Например, нечеткое множество 54 "небольшое натуральное число" является нормальным, поскольку его высота равна 1 и соответствует двум его элементам: 1 и 2. Нечеткое множество ‘В "действительное число, приближенно равное нулю" также является нормальным, поскольку его высота равна 1 и ц®(0)=1. Напротив, нечеткое множество С "большое действительное число" не является нормальным.
Субнормальное нечеткое множество. Если высота нечеткого множества равна единице (^ = 1), но условие (2.3) не выполняется, то такое нечеткое множество будем называть субнормальным.
Очевидно, нечеткое множество С "большое действительное число" является субнормальным.
Другими словами, для субнормального нечеткого множества необходимо лишь, чтобы его высота была равна 1, т. е. выполнялось бы условие: й:л-\. Это определение корректно, поскольку в этом случае всякое нормальное нечеткое множество является субнормальным с дополнительным условием (2.3).
Примечание j
Ситуация с понятием нормального нечеткого множества не является столь однозначной, поскольку в литературе можно встретить и другие определения понятий нормального и субнормального нечеткого множества. Так, например, нормальным нечетким множеством иногда называют такое, для которого выполняется лишь условие: sup(p.;l(x))=1 (VxeX), а субнормальным нечетким множеством называют нечеткое множество, для которого выполняется условие: 8ир(|дл(х))<1 (VxeX). Как нетрудно заметить, для рассматриваемых нами нечетких множеств в смысле определения (2.1) нестрогая форма второго условия выполняется всегда, а значит, подобное определение субнормальности в какой-то мере теряет свой конструктивизм. С другой стороны, в большинстве работ, в которых рассматриваются нечеткие числа и интервалы, определение нормальности последних основано на выполнении условия: тах(цл(х))=1 (ЭхеХ). Поскольку это противоречит общему определению нормального нечеткого множества, было решено использовать более частное его определение в смысле (2.3).
Унимодальное нечеткое множество. Нечеткое множество 54 называется унимодальным (строго унимодальным), если его функция принадлежности ц^(х) является унимодальной (строго унимодальной).
В свою очередь произвольная функция принадлежности ц(л) называется унимодальной на интервале [a, Ь]с Я, если она непрерывна на [о, Ь], а также существует
некоторый непустой [с, d\c; [о, 6], такой что a <с <d <b и выполняются следующие условия:
функция р(х) строго монотонно возрастает на интервале [о, с] при а<с;
функция ц(х) строго монотонно убывает на интервале \d, b] при d<b;
функция ц(а) принимает свое максимальное значение на интервале [с, d), т. е. любая точка х„,е[с, d) является точкой максимума функции принадлежности относительно интервала [а, 6]:
x„,= arg max {ц(х)}.(2.4)
лсЕ[а, 6]
В этом случае любая точка х1иеЯ нечеткого множества 54, удовлетворяющая условию (2.4), называется модальным значением или модой нечеткого множества 54.
Если в этом определении интервал [с, d\ вырождается в точку, т. е. c=d, то соответствующая функция принадлежности называется строго унимодальной на интервале [а, 6].
Функция принадлежности ц^М называется унимодальной (строго унимодальной), если она унимодальна (строго унимодальна) на носителе соответствующего нечеткого множества 54.
Например, рассмотренное выше в примере 2.1 нечеткое множество 54 с функцией принадлежности, изображенной на рис. 2.2, является унимодальным, но не является строго унимодальным. Нечеткое множество 5В из примера 2.2 является унимодальным на интервале [25 °C, 99 °C], поскольку оно задано на универсуме X=Vx | О °C < х< 100 °C}, но не является строго унимодальным на этом интервале.
Что касается дискретного нечеткого множества С из примера 2.3, то относительно его унимодальности ничего сказать нельзя. Рассматриваемые ниже функции принадлежности трапециевидной формы являются унимодальными, а треугольной формы — строго унимодальными.
Примечание
Следует заметить, что рассмотренное выше определение унимодальности непрерывной функции может быть распространено на случай некоторой дискретной топологии. Действительно, если в качестве интервалов использовать вполне упорядоченные множества, то условие (2.4) остается справедливым. Поскольку это условие сохраняет свой смысл и в случае нечетких множеств с конечным числовым носителем, соответствующее определение унимодальности может быть применено к нечетким множествам, заданным на некотором конечном подмножестве действительных или целых чисел.
Ядро нечеткого множества. Ядром нечеткого множество 54 называется такое обычное множество А\, элементы которого удовлетворяют условию: ^^{xgzYIp^a) =1}.
Например, ядро нечеткого множества 54 "небольшое натуральное число" равно двухэлементному множеству Л|={1, 2}. Ядро нечеткого множества 5В "действа-
тельное число, приближенно равное нулю" равно одноэлементному множеству (singleton) Bi ={0}. Нечеткое множество С "большое действительное число" имеет пустое ядро.
Не трудно заметить, что если произвольное нечеткое множество не является нормальным, то ядро такого нечеткого множества будет пустым. Таким образом, имеет место следующая фундаментальная теорема. Для того чтобы некоторое нечеткое множество было нормальным, необходимо и достаточно, чтобы оно имело непустое ядро.
Поскольку, как было показано выше, высота нечеткого множества всегда существует, то произвольное непустое нечеткое множество 54 всегда можно преобразовать по меньшей мере к субнормальному нечеткому множеству 54 по следующей формуле:
Б/(х)^. (2.5)
А Ьд
Более того, если в исходном нечетком множестве 54 найдется хотя бы один элемент хе54, для которого значение функции принадлежности равно высоте этого нечеткого множества, т. е. ця€*)= h^u то полученное после преобразования (2.5) нечеткое множество 54 будет нормальным.
В частности, если исходное нечеткое множество 54 является нормальным или субнормальным, то преобразование (2.5) приводит к тривиальному результату. Рассмотрим случай, когда исходное нечеткое множество 54 не является пустым и субнормальным. Это означает, что его высота равна некоторому значению из открытого интервала (0, 1), т. е. Л^е(0, 1). При этом, если Ля=ця(х) для некоторого элемента хеХ, то для этого элемента хеХ значение функции принадлежности ц.я(х), рассчитанное по формуле (2.5), будет равно 1. Это означает, что нечеткое множество 54 будет нормальным.
Если же Лл>ц^(х) Для всех элементов хеХ, то значение функции принадлежности ЦугС^Х рассчитанное по формуле (2.5), всегда будет меньше 1. Однако, по свойству наименьшей верхней грани числового множества, высота результирующего нечеткого множества будет равна единице: h^-= sup{pjr(x)} = 1. А это означает, что нечеткое множество 54 будет субнормальным.
Границы нечеткого множества. Границами нечеткого множества называются такие элементы универсума, для которых значения функции принадлежности отличны от 0 и 1. Другими словами, границы нечеткого множества 54= {х, Ця(х)} включают те и только те элементы универсума хеХ, для которых выполняется условие: 0<рЛ(х)<1.
Точки перехода нечеткого множества. Элементы нечеткого множества >е54, для которых выполняется условие: p^^^O.S, называются точками перехода этого нечеткого множества 54.
В общем случае введенные в рассмотрение понятия можно проиллюстрировать графически следующим образом (рис. 2.9).
Рис. 2.9. Ядро, носитель и границы нечетких множеств, одно из которых является нормальным (а), а другое — не является нормальным (б)
В дополнение к этому рассмотренное в примере 2.1 конечное нечеткое множество Я выходных дней (см. рис. 2.1) имеет непустой носитель Л={/1ятнм^«, суббота, воскресенье^, является нормальным, поскольку ц^суббота^Х.
Рассмотренное в этом же примере 2.1 бесконечное нечеткое множество 54 выходных дней (см. рис. 2.2) имеет непустой носитель Л$, которому будет соответствовать открытый интервал действительных чисел, для которых график функции принадлежности лежит выше оси абсцисс. Оно также является нормальным, поскольку цяМ-1 -
Ближайшее четкое множество. Часто оказывается полезным понятие четкого множества А, ближайшего к нечеткому множеству 51. Характеристическая функция такого множества может быть определена следующим выражением:
О,О,Хл^) =Хл^) =1,О или 1,1,О или 1,если р j (х) < 0.5 если р^ (х) > 0.5 если р(х) = 0.5если р j (х) < 0.5 если р^ (х) > 0.5 если р(х) = 0.5(2-6)(2-6)
О,
О,
Хл^) =
Хл^) =
1,
О или 1,
1,
О или 1,
если р j (х) < 0.5 если р^ (х) > 0.5 если р(х) = 0.5
если р j (х) < 0.5 если р^ (х) > 0.5 если р(х) = 0.5
(2-6)
(2-6)
Для характеристики нечетких множеств используют также понятие выпуклости, которое ассоциируется с соответствующим графическим изображением функции принадлежности.
Выпуклое нечеткое множество. Нечеткое множество Я={х, р_я(х)} с универсумом X называют выпуклым, если его функция принадлежности Ря(х) хдовлетворяет следующему неравенству:
(2.7)(2.7)Кл№ minfp^o), ря(6)}
(2.7)
(2.7)
для любых значений х, а, ЬеХ, при которых а<х<Ь и а* Ь.
Рис. 2.10. Графики функций принадлежности выпуклого (а) и невыпуклого (б) нечеткого множестваРис. 2.10. Графики функций принадлежности выпуклого (а) и невыпуклого (б) нечеткого множества
Рис. 2.10. Графики функций принадлежности выпуклого (а) и невыпуклого (б) нечеткого множества
Рис. 2.10. Графики функций принадлежности выпуклого (а) и невыпуклого (б) нечеткого множества
Примечание
Определение выпуклости для нечетких множеств отличается от известного в анализе, поскольку имеет более общий математический контекст. Тем не менее, его весьма удобно использовать на практике, поскольку кроме непрерывных функций принадлежности оно применимо к конечным нечетким множествам, а также ко множествам, функция принадлежности которых не является непрерывной кривой.
На рис. 2.10 изображены графики двух функций принадлежности, первая из которых является выпуклой, а вторая — не является выпуклой. В связи с рассмотрением этого примера следует заметить, что первая функция принадлежности является строго унимодальной с модой х„ =5, а вторая — не является унимодальной и имеет две моды: х„=2 и х„ =4.
Основные типы функций принадлежности
Формальное определение нечеткого множества (2.1) не накладывает никаких ограничений на выбор конкретной функции принадлежности для его представления. Однако на практике удобно использовать те из них, которые допускают аналитическое представление в виде некоторой простой математической функции. Это упрощает не только соответствующие численные расчеты, но и сокращает вычислительные ресурсы, необходимые для хранения отдельных значений этих функций принадлежности. Необходимость типизации отдельных функций принадлежности также обусловлена наличием реализаций соответствующих функций в рассматриваемых далее инструментальных средствах.
Кусочно-линейные функции принадлежности
В качестве первого типа функций принадлежности рассмотрим функции, которые, как следует из их названия, состоят из отрезков прямых линий, образуя непрерывную или кусочно-непрерывную функцию. Наиболее характерным примером таких функций являются "треугольная" (рис. 2.11, о) и "трапециевидная" (рис. 2.11,б) функции принадлежности. В нашем случае каждая из этих функций задана на универсуме Л"=[0, 10], в качестве которого выбран замкнутый интервал действительных чисел. В общем случае выбор универсума может быть произвольным и не ограничен никакими правилами.
Рис. 2.11. Графики функций принадлежности треугольной (а) и трапециевидной (б) формыРис. 2.11. Графики функций принадлежности треугольной (а) и трапециевидной (б) формы
Рис. 2.11. Графики функций принадлежности треугольной (а) и трапециевидной (б) формы
Рис. 2.11. Графики функций принадлежности треугольной (а) и трапециевидной (б) формы
(2.8)(2.8)Первая из этих функций принадлежности в общем случае может быть задана аналитически следующим выражением:
(2.8)
(2.8)
0,х < а
х — а_ _,
, а<х<Ь Ь-а с-х ,„
,и < X < С с-Ь
0,с <х
/д(х;яДс) =
где а, Ь, с — некоторые числовые параметры, принимающие произвольные действительные значения и упорядоченные отношением: а< Ь< с.
Применительно к конкретной функции, изображенной на рис. 2.11, о, значения параметров равны: а=Х Ь=4, с=1. Как нетрудно заметить, параметры а и с характеризуют основание треугольника, а параметр b— его вершину. Как можно заметить, эта функция принадлежности порождает нормальное выпуклое унимодальное нечеткое множество с носителем — интервалом (а, с), границами (л, с)\{6}, ядром {6} и модой Ь.
Трапециевидная функция принадлежности в общем случае может быть задана аналитически следующим выражением:
' о,х<ах — аa<x<b/т^х; a,b,c,d) = ■Ь-а1,Ь<х<сd-х d-c’0,c<x<d d <х' о,х<ах — аa<x<b/т^х; a,b,c,d) = ■Ь-а1,Ь<х<сd-х d-c’0,c<x<d d <х(2.9)(2.9)
' о,
х<а
х — а
a<x<b
/т^х; a,b,c,d) = ■
Ь-а
1,
Ь<х<с
d-х d-c’
0,
c<x<d d <х
' о,
х<а
х — а
a<x<b
/т^х; a,b,c,d) = ■
Ь-а
1,
Ь<х<с
d-х d-c’
0,
c<x<d d <х
(2.9)
(2.9)
где а, Ь, с, d— некоторые числовые параметры, принимающие произвольные действительные значения и упорядоченные отношением: а< b< с< d.
Применительно к конкретной функции, изображенной на рис. 2.11, б, значения параметров равны: «=1, 6=3, с-5, d-%. Как нетрудно заметить, параметры and характеризуют нижнее основание трапеции, а параметры b и с— верхнее основание трапеции. При этом данная функция принадлежности порождает нормальное выпуклое нечеткое множество с носителем — интервалом (a, d), границами (a, b^vj^c, d) и ядром [6, с].
Эти функции используются для задания таких свойств множеств, которые характеризуют неопределенность типа: "приблизительно равно", "среднее значение", "расположен в интервале", "подобен объекту", "похож на предмет" и др. Они также служат для представления нечетких чисел и интервалов, которые будут рассмотрены в главе 5.
Z-образные и S-образные функции принадлежности
Эти функции принадлежности также получили свое название по виду кривых, которые представляют их графики. Первая из функций этой группы называется Z-образной кривой или сплайн-функцией и в общем случае может быть задана аналитически следующим выражением:
/z, te а, b) =/z, te а, b) =1, -^-^cost"1 л), 2 2 хЪ-а 'О,1, -^-^cost"1 л), 2 2 хЪ-а 'О,х<аа<х<Ьх>Ьх<аа<х<Ьх>Ь(2.Ю)(2.Ю)
/z, te а, b) =
/z, te а, b) =
1, -^-^cost"1 л), 2 2 хЪ-а '
О,
1, -^-^cost"1 л), 2 2 хЪ-а '
О,
х<а
а<х<Ьх>Ь
х<а
а<х<Ьх>Ь
(2.Ю)
(2.Ю)
где а, b— некоторые числовые параметры, принимающие произвольные действительные значения и упорядоченные отношением: а<Ь. График этой функции для некоторого нечеткого множества У! и универсума Х=[0, 10] изображен на
рис. 2.12, а, при этом значения параметров соответственно равны о=3, Ь=6.
Сплайн-функция может быть также задана другим выражением:
1,
/z2 (*; а> Ь) =/z2 (*; а> Ь) =1-2|I b — a I2| —I .I b — a IО,1-2|I b — a I2| —I .I b — a IО,а + Ь2а + Ь2а + Ь2а + Ь2(2.11)(2.11)
/z2 (*; а> Ь) =
/z2 (*; а> Ь) =
1-2|
I b — a I
2| —I .
I b — a I
О,
1-2|
I b — a I
2| —I .
I b — a I
О,
а + Ь
2
а + Ь
2
а + Ь
2
а + Ь
2
(2.11)
(2.11)
где а, b — некоторые числовые параметры, принимающие произвольные действительные значения и упорядоченные отношением: а<Ь. График этой функции для некоторого нечеткого множества Л и универсума А=[0, 10] изображен на рис. 2.12, б, при этом значения параметров соответственно равны «=3,6=6.
Рис. 2.12. Графики Z-образных функций принадлежности fzt и ^2ДЛя значений параметров а=3, Ь=6Рис. 2.12. Графики Z-образных функций принадлежности fzt и ^2ДЛя значений параметров а=3, Ь=6
Рис. 2.12. Графики Z-образных функций принадлежности fzt и ^2ДЛя значений параметров а=3, Ь=6
Рис. 2.12. Графики Z-образных функций принадлежности fzt и ^2ДЛя значений параметров а=3, Ь=6
' Примечание
Хотя на первый взгляд различие между этими функциями едва уловимо, тем не менее оно существует, в чем можно убедиться посредством совмещения их графиков на одном рисунке.
Данные функции принадлежности порождают нормальные выпуклые нечеткие множества с ядром (-со,«] и носителем (-со, Ь").
Эти функции используются для представления таких свойств нечетких множеств, которые характеризуются неопределенностью типа: • "малое количество", "небольшое значение", "незначительная величина", "низкая себестоимость продукции", "низкий уровень цен или доходов", "низкая процентная ставка" и многих других. Общим для всех таких ситуаций является слабая степень проявления того или иного качественного или количественного признака. Особенность нечеткого моделирования при этом заключается в представлении соответствующих нечетких множеств с помощью невозрастающих (монотонно убывающих) функций принадлежности.
Вторая из функций рассматриваемой группы называется S-образной кривой или сплайн-функцией и в общем случае может быть задана аналитически следующим выражением:
fsx (*; а,ь^=fsx (*; а,ь^=о,-L + lcos(7^7i),22 h~a1,о,-L + lcos(7^7i),22 h~a1,х< аа<х<Ьх>Ьх< аа<х<Ьх>Ь(2.12)(2.12)
fsx (*; а,ь^=
fsx (*; а,ь^=
о,
-L + lcos(7^7i),
22 h~a
1,
о,
-L + lcos(7^7i),
22 h~a
1,
х< а
а<х<Ь
х>Ь
х< а
а<х<Ь
х>Ь
(2.12)
(2.12)
где а, b— некоторые числовые параметры, принимающие произвольные действительные значения и упорядоченные отношением: а<Ь. График этой функции для некоторого нечеткого множества У! и универсума Х=[0, 10] изображен на рис. 2.13, а, при этом значения параметров соответственно равны <7=3, 6=6. Сплайн-функция может быть также задана другим выражением:
О,
fsT & а*^) =fsT & а*^) =I b-а ) yb — a I 1,I b-а ) yb — a I 1,а + Ь2а + Ь2а + Ь <х2Ь<ха + Ь <х2Ь<х(2.13)(2.13)
fsT & а*^) =
fsT & а*^) =
I b-а ) yb — a I 1,
I b-а ) yb — a I 1,
а + Ь
2
а + Ь
2
а + Ь <х
2
Ь<х
а + Ь <х
2
Ь<х
(2.13)
(2.13)
где а, b — некоторые числовые параметры, принимающие произвольные действительные значения и упорядоченные отношением: а<Ь. График этой функции для некоторого нечеткого множества У! и универсума Х=[0, 10] изображен на рис. 2.13, б, при этом значения параметров соответственно равны «=3,6=6.
Данные функции принадлежности порождают нормальные выпуклые нечеткие множества с ядром [6, +оо) и носителем («, +°о).
V-s^x)
ЦяМЦяМРис. 2.13. Графики S-образных функций принадлежности fsi и fs2 для значений параметров а=3, Ь=6Рис. 2.13. Графики S-образных функций принадлежности fsi и fs2 для значений параметров а=3, Ь=6
ЦяМ
ЦяМ
Рис. 2.13. Графики S-образных функций принадлежности fsi и fs2 для значений параметров а=3, Ь=6
Рис. 2.13. Графики S-образных функций принадлежности fsi и fs2 для значений параметров а=3, Ь=6
К типу S-образных и одновременно Z-образных функций принадлежности может быть отнесена так называемая сигмоидальная функция (сигмоид), которая в общем случае задается аналитически следующим выражением:
/с (х; а, Ь) =Vм»(2.14)
14-е-"^-^
здесь а, b— некоторые числовые параметры, принимающие произвольные действительные значения и упорядоченные отношением: а<Ь, а е— основание натуральных логарифмов, которое инициирует задание соответствующей экспоненциальной функции. При этом в случае п>0 может быть получена S-образная функция принадлежности, а в случае «<0 — Z-образная функция принадлежности.
Графики этой функции для некоторого нечеткого множества .Я и универсума Х=[0, 10] изображены на рис. 2.14. При этом S-образной функции принадлежности соответствуют значения параметров «=3, 6=6 (рис. 2.14, о), а Z-образной функции принадлежности соответствуют значения параметров а- -3, 6=6 (рис. 2.14, 6).
Данные функции принадлежности порождают субнормальные выпуклые нечеткие множества с носителем и границей 0?и точкой перехода 6.
Рис. 2.14. Графики сигмоидальной функции принадлежности fgs для значений параметров а=3, 6=6 (а) и а- -3, Ь-6 (б)Рис. 2.14. Графики сигмоидальной функции принадлежности fgs для значений параметров а=3, 6=6 (а) и а- -3, Ь-6 (б)
Рис. 2.14. Графики сигмоидальной функции принадлежности fgs для значений параметров а=3, 6=6 (а) и а- -3, Ь-6 (б)
Рис. 2.14. Графики сигмоидальной функции принадлежности fgs для значений параметров а=3, 6=6 (а) и а- -3, Ь-6 (б)
Рассмотренные S-образные функции используются для представления таких нечетких множеств, которые характеризуются неопределенностью типа: "большое количество", "большое значение", "значительная величина", "высокий уровень доходов и цен", "высокая норма прибыли", "высокое качество услуг", "высокий сервис обслуживания" и многих других. Общим для всех таких ситуаций является высокая степень проявления того или иного качественного или количественного признака. Особенность нечеткого моделирования при этом заключается в представлении соответствующих нечетких множеств с помощью неубывающих (монотонно возрастающих) функций принадлежности.
В качестве частных случаев Z- и S-образных кривых удобно рассматривать так называемую линейную Z-образную функцию (рис. 2.15, а) и линейную S-образную функцию (рис. 2.15, б). Первая из этих функций в общем случае может быть задана аналитически следующим выражением:
Д(х;а,6) =Д(х;а,6) =' 1,Ь — хЬ-а’О,' 1,Ь — хЬ-а’О,х< аа<х<Ьb<ixх< аа<х<Ьb<ix(2.15)(2.15)
Д(х;а,6) =
Д(х;а,6) =
' 1,Ь — хЬ-а’О,
' 1,Ь — хЬ-а’О,
х< а
а<х<Ь
b<ix
х< а
а<х<Ь
b<ix
(2.15)
(2.15)
где а, b— некоторые числовые параметры, принимающие произвольные действительные значения и упорядоченные отношением: а<Ь. График этой функции
для некоторого нечеткого множества 51 и универсума Л=[0,10] изображен на рис. 2.15, а, при этом значения параметров соответственно равны «=3, Ь=6.
Вторая из этих функций в общем случае может быть задана аналитически следующим выражением:
/\(х;а,Ь") =/\(х;а,Ь") =0,х-аЬ — а1,0,х-аЬ — а1,х<аа<х<ЬЬ<хх<аа<х<ЬЬ<х(2.16)(2.16)
/\(х;а,Ь") =
/\(х;а,Ь") =
0,х-аЬ — а
1,
0,х-аЬ — а
1,
х<аа<х<Ь
Ь<х
х<аа<х<Ь
Ь<х
(2.16)
(2.16)
где а, b — некоторые числовые параметры, принимающие произвольные действительные значения и упорядоченные отношением: а<Ь. График этой функции для некоторого нечеткого множества 51 и универсума Х=[0, 10] изображен на рис. 2.15, б, при этом значения параметров соответственно также равны «=3, Ь=6.
Рис. 2.15. Графики линейной Z-образной функции (а) и линейной S-образной функции (б) принадлежности для значений параметров а=3, Ь=6Рис. 2.15. Графики линейной Z-образной функции (а) и линейной S-образной функции (б) принадлежности для значений параметров а=3, Ь=6
Рис. 2.15. Графики линейной Z-образной функции (а) и линейной S-образной функции (б) принадлежности для значений параметров а=3, Ь=6
Рис. 2.15. Графики линейной Z-образной функции (а) и линейной S-образной функции (б) принадлежности для значений параметров а=3, Ь=6
Данные функции принадлежности порождают нормальные выпуклые нечеткие множества с границами (а, Ь).
Следует заметить, что данные линейные Z- и S-образные функции могут быть использованы для построения рассмотренных выше треугольной и трапециевид-
ной функций принадлежности (см. рис. 2.11). В частности треугольная функция принадлежности получается как композиция линейной Z-образной и линейной S-образной функций по следующей формуле:
f^x; a ,b ,с) = тт{/|(х; a, b), Д (x; b, c)},(2.17)
xeX
где a, b, c — некоторые числовые параметры, принимающие произвольные действительные значения и упорядоченные отношением: a<b<c. В выражении (2.17) используется операция взятия минимума (обозначенная знаком min) из всех значений, указанных в фигурных скобках через запятую. При этом если соответствующие функциональные значения зависят от некоторой независимой переменной (в нашем случае от х), то под знаком минимума явно указывается диапазон или множество значений этой переменной (в нашем случае — универсум).
Трапециевидная функция принадлежности получается как композиция двух линейных Z-образной и S-образной функций по следующей формуле:
/г(х; a ,b ,с, d) = min{/Y(x; a, b), Д (x; c, t/)},(2.18)
хеХ
где a, b, c, d— некоторые числовые параметры, принимающие произвольные действительные значения и упорядоченные отношением: a<b<c<d.
П-образные функции принадлежности
К данному типу функций принадлежности можно отнести целый класс кривых, которые по своей форме напоминают колокол, сглаженную трапецию или букву "П".
Первая из подобных функций так и называется — П-образноя функция, и в общем случае задается аналитически следующим выражением:
/п(х; а,Ь,с, d) = fs(х; а, Ь)• Д(х; с, d),(2.19)
где а, Ь, с, d— некоторые числовые параметры, принимающие произвольные действительные значения и упорядоченные отношением: a<b<c<d, а знак "•" обозначает обычное арифметическое произведение значений соответствующих функций.
При этом могут быть использованы любые из рассмотренных выше Z- и S- образных функций. В частности, если использовать функции/$1 и/zl, то получим /7-функцию Д,, график которой для некоторого нечеткого множества Я и универсума Х=[0, 10] изображен на рис. 2.16, а. При этом значения параметров для функции fsx равны «=1, Ь-4, а для функции /Zl— с=5, d=9. Если же использовать функции Д, и /z2, то получим /7-функцию /л2, график которой для некоторого нечеткого множества Я и универсума Х=[0, 10] изображен на рис. 2.16, б для тех же значений параметров.
Очевидно, этот тип функций принадлежности порождает нормальные выпуклые нечеткие множества с носителем (я, d> и ядром [6, с].
Рис. 2.16. Графики /7-образных функций принадлежности fni (а) и /пг(б) для значений параметров а=1, b=4, с=5, d=9Рис. 2.16. Графики /7-образных функций принадлежности fni (а) и /пг(б) для значений параметров а=1, b=4, с=5, d=9
Рис. 2.16. Графики /7-образных функций принадлежности fni (а) и /пг(б) для значений параметров а=1, b=4, с=5, d=9
Рис. 2.16. Графики /7-образных функций принадлежности fni (а) и /пг(б) для значений параметров а=1, b=4, с=5, d=9
(2.20)(2.20)Следующая функция этого типа П-образных функций определяется как произведение двух сигмоидальных функций и в общем случае может быть задана аналитически следующим выражением:
(2.20)
(2.20)
fn^ (x;a,b,c,d) = Д (х; а, Ь) • Д (х; с, d) ,
где а, Ь, с, d— некоторые числовые параметры, принимающие произвольные действительные значения, причем д>0, с<0, и упорядоченные отношением: «<6<|c|<d. Знак "•" обозначает арифметическое произведение значений соответствующих функций, а функция |х| — модуль действительного числа.
К /7-образным функциям относится также так называемая колоколообразная (bell-shaped) функция, которая в общем случае задается аналитически следующим выражением:
fn^x; а ,Ь ,с^ =—1 +fn^x; а ,Ь ,с^ =—1 +126 ’126 ’(2-21)(2-21)х-сах-са
fn^x; а ,Ь ,с^ =—
1 +
fn^x; а ,Ь ,с^ =—
1 +
1
26 ’
1
26 ’
(2-21)
(2-21)
х-са
х-са
где a,b,c— некоторые числовые параметры, принимающие произвольные действительные значения и упорядоченные отношением: a<b<c, причем параметр 6>0. Здесь функция |а| обозначает модуль действительного числа
Рис. 2.17. Графики /7-образных функций принадлежности /пз для значений параметров а=1, Ь=5, с=-7, с/=9 (а) и для значений параметров а=2, b=4, с=-5, d=9 (б)
Наконец, последней из рассматриваемых функций данного типа является хорошо известная в теории вероятностей функция плотности нормального распределения в предположении, что -^ло = 1, и которая в нашем случае задается аналитически следующим выражением:
Чх-с?
jns(x-,o,c) = e 2о2 .(2.22)
Здесь о и с — числовые параметры, при этом квадрат первого из них о2 в теории вероятностей называется дисперсией распределения, а второй параметр с— математическим ожиданием.
Очевидно, эти последние типы функций принадлежности порождают нормальные выпуклые нечеткие множества, при этом плотность нормального распределения обеспечивает унимодальность соответствующего нечеткого множества.
Рис. 2.18. Графики Г7-образных функций принадлежности ГП4 для значений параметров а=2, Ь=3, с=6 (а) и fn5 для значений параметров а=2, с=4 (б)
Некоторые рекомендации по построению функций.
принадлежности нечетких множеств
При построении функций принадлежности для нечетких множеств следует придерживаться некоторых правил, которые предопределяются характером неопределенности, имеющей место при построении конкретных нечетких моделей.
С практической точки зрения с каждым нечетким множеством удобно ассоциировать некоторое свойство, признак или атрибут, которые характеризуют рассматриваемую совокупность объектов универсума. При этом по аналогии с классическими множествами рассматриваемое свойство может порождать некоторый предикат (см. приложение 2), который вполне естественно назвать нечетким предикатом. Данный нечеткий предикат может принимать не одно из двух значений истинности (''истина" или "ложь"), а целый континуум значений истинности, которые для удобства выбираются из интервала [О, I]. При этом значению "истина" по-прежнему соответствует число I, а значению "ложь" — число 0. ,
Содержательно это означает следующее. Чем в большей степени элемент хеХ обладает рассматриваемым свойством, тем более близко к 1 должно быть значение истинности соответствующего нечеткого предиката. И наоборот, чем в меньшей степени элемент хеХ обладает рассматриваемым свойством, тем более близко к 0 должно быть значение истинности этого нечеткого предиката. Если элемент хеХ определенно не обладает рассматриваемым свойством, то соответствующий нечеткий предикат принимает значение "ложь" (или число 0). Если же элемент х&Х определенно обладает рассматриваемым свойством, то соответствующий нечеткий предикат принимает значение "истина" (или число 1).
Тогда в общем случае задание нечеткого множества с использованием специального свойства эквивалентно заданию такой функции принадлежности, которая содержательно представляет степень истинности соответствующего одноместного нечеткого предиката. Более подробно эта взаимосвязь нечетких множеств и нечеткой логики будет рассмотрена в главе 6.
Наибольшее распространение при построении функций принадлежности нечетких множеств получили прямые и косвенные методы.
Прямые методы построения функций принадлежности
В прямых методах эксперт либо группа экспертов просто задают для каждого хеХ значение функции принадлежности ря(х). Как правило, прямые методы построения функций принадлежности используются для таких свойств, которые могут быть измерены в некоторой количественной шкале. Например, такие физические величины, как скорость, время, расстояние, давление, температура и другие имеют соответствующие единицы и эталоны для своего измерения. При этом целесообразно ограничить рассмотрение только теми значениями величин, которые имеют физический смысл в контексте решаемой задачи.
При прямом построении функций принадлежности следует учитывать то обстоятельство, что теория нечетких множеств не требует абсолютно точного задания функций принадлежности. Зачастую бывает достаточно зафиксировать лишь наиболее характерные значения и вид (тип) функции принадлежности.
Так, например, если необходимо построить нечеткое множество, которое представляет свойство "скорость движения автомобиля около 50 км/ч", на начальном этапе может оказаться достаточным представить соответствующее нечеткое множество треугольной функцией принадлежности /д с параметрами а = 40 км/ч, b = 50 км/ч и с = 60 км/ч. Аналогично, в случае построения нечеткого множества для представления свойства "скорость движения автомобиля находится приблизительно в пределах 50—60 км/ч", на начальном этапе может оказаться достаточным представить соответствующее нечеткое множество трапециевидной функцией принадлежности /т с параметрами а = 45 км/ч, b = 50 км/ч, с = 60 км/ч и d = = 65 км/ч. В последующем функция принадлежности может быть уточнена опытным путем на основе анализа результатов решения конкретных задач.
Процесс построения или задания нечеткого множества на основе некоторого известного заранее количественного значения измеримого признака получил даже специальное название — фаззификация или приведение к нечеткости. Речь идет о том, что хотя иногда нам бывает известно некоторое значение измеримой величины, мы признаем тот факт, что это значение известно неточно, возможно с погрешностью или случайной ошибкой. При этом, чем меньше мы уверены в точности измерения признака, тем большим будет интервал носителя соответствующего нечеткого множества. Следует помнить, что в большинстве практических случаев абсолютная точность измерения является лишь удобной абстракцией для построения математических моделей.
Именно по этой причине фаззификация позволяет более адекватно представить объективно присутствующую неточность результатов физических измерений. Более подробно особенности этого процесса будут рассмотрены далее в главе 7.
Косвенные методы построения функций принадлежности
Как правило, косвенные методы определения значений функции принадлежности используются в тех случаях, когда отсутствуют очевидные измеримые свойства, которые могут быть использованы для построения нечетких моделей рассматриваемой предметной области.
Среди косвенных методов наиболее известен так называемый метод попарных сравнений. Этот метод используется для конечных нечетких множеств и основан на следующем предположении. Если бы значения искомой функции принадлежности были известны и равны значениям ц^(хЭ для /е{1, 2,..., л), то попарные сравнения соответствующих элементов носителя нечеткого множества 54 можно было бы представить в виде матрицы А с элементами аи, при этом элементы этой матрицы равны: «ц^^х^^^х^, где символ "/" обозначает операцию деления.
На практике бывает проще вначале построить матрицу А в предположении, что ее диагональные элементы должны быть равны 1, а симметричные относительно главной диагонали элементы должны быть взаимно обратными, т. е. а^—Ма^. Последнее условие означает, что если степень принадлежности одного из элементов оценивается в а раз сильнее степени принадлежности другого, то степень принадлежности второго элемента должна быть в \!а раз сильнее степени принадлежности первого элемента.
В этом случае задача построения функции принадлежности сводится к нахождению такого вектора w, который является решением следующего уравнения: А-и’ = = XmaxW, где Хтах — наибольшее собственное значение матрицы А. Поскольку все значения элементов матрицы А положительны по построению, решение данного уравнения существует и является положительным.
Собственно процесс попарного сравнения элементов может быть основан на субъективной интуиции или на выполнении некоторой последовательности алгоритмических или логических действий. При этом отдельные элементы универ-
сума могут использоваться в качестве эталонов или все элементы могут быть разделены на группы с последующим сравнением этих групп между собой.
Из алгоритмических процедур наибольшую известность получили методы итеративного уточнения значений функций принадлежности, основанные на нейронных сетях и генетических алгоритмах. Логические процедуры используют методы индуктивного обучения и построения нечетких метаправил. Иногда применяются методы обработки статистических данных, факторного и дискриминантного анализа с целью выделения значимых признаков для последующего сравнения элементов рассматриваемого универсума. Заинтересованный читатель более подробное изложение этих вопросов может найти в дополнительной литературе.
В заключение следует отметить, что в случае недостатка информации об особенностях функций принадлежности нечетких переменных рекомендуется начинать построение нечеткой модели с использования наиболее простых форм функции принадлежности, а именно— кусочно-линейных функций. В последствии их характер может быть уточнен и учтен на этапе коррекции нечеткой модели.
Глава 3
Операции
над нечеткими множествами
Прежде чем приступить к рассмотрению операций над нечеткими множествами следует привести некоторые важные соображения, которые необходимо принимать во внимание при определении нечетких аналогов обычных теоретикомножественных понятий.
Во-первых, следует иметь в виду, что то или иное нечеткое множество является обобщением классического множества. Поскольку в общем случае можно предложить самые различные варианты подобного обобщения, это приводит к принципиальной неоднозначности тех или иных определений, имеющих аналогию в классической теории множеств и представляющих практический интерес. Применительно к операциям над нечеткими множествами это означает, что любое определение той или иной операции должно быть справедливым в том частном случае, когда вместо нечетких множеств используются обычные множества. Другими словами, подобные определения должны превращаться в известные определения теоретико-множественных операций, если участвующие в них функции принадлежности заменить характеристическими функциями множеств.
Во-вторых, если при рассмотрении классических множеств (см. приложение I) понятие универсума можно мыслить в форме "все что угодно", то сравнение нечетких множеств и выполнение над ними различных операций становится возможным, только когда соответствующие нечеткие множества определены на одном и том же универсуме.
Наконец, в-третьих, поскольку каждое нечеткое множество вполне определяется своей функцией принадлежности, последнее понятие зачастую используется как синоним нечеткого множества. При этом следует помнить, что в общем случае одна и та же функция принадлежности может описывать качественно различные нечеткие множества. С другой стороны, хотя одно и то же нечеткое множество или точнее— то или иное свойство в форме нечеткого множества, может быть представлено различными функциями принадлежности, отражающими неоднозначность субъективных или иных представлений, с формальной точки зрения все из них следует различать и говорить о различных нечетких множествах.
Поэтому, говоря о соответствии нечетких множеств и функций принадлежности, мы будем понимать это соответствие в форме математического изоморфизма.
Именно наличие подобного изоморфизма нечетких множеств, заданных одной и той же функцией принадлежности, позволяет рассматривать формальные определений на требуемом уровне строгости.
Равенство и доминирование нечетких множеств
По аналогии с обычными множествами, прежде всего, определим два простейших обычных отношения, которые могут иметь место между двумя произвольными нечеткими множествами Я и S, заданными на одном и том же универсуме X. Первое из них — равенство двух нечетких множеств.
Равенство нечетких множеств. Два нечетких множества Я=(х, рХ^)} и 53= {х, ц®(х)} считаются равными, если их функции принадлежности принимают равные значения на всем универсуме X;
Ця(х)= ц®(х) для любого хеХ. (3.1)
Равенство множеств в данном случае записывается как J7l=S.
Примечание
Вообще говоря, с практической точки зрения не совсем корректно говорить о равенстве двух нечетких множеств в смысле выполнения только условия (3.1), если речь идет о содержательно различных множествах. Возможно, строго формально следовало бы говорить о математическом изоморфизме таких нечетких множеств. Тем не менее, далее понятие равенства нечетких множеств будет использоваться в смысле (3.1).
Следующим простейшим отношением является понятие нечеткого подмножества (или нечеткого доминирования) произвольных нечетких множеств. Формально это определение также записывается с помощью соответствующих функций принадлежности.
Нечеткое подмножество. Нечеткое множество Я={х, Ця(х)} является нечетким подмножеством нечеткого множества S={x, рв(х)} (записывается как и JTlcS) тогда и только тогда, когда значения функции принадлежности первого не превосходят соответствующих значений функции принадлежности второго, т. е. выполняется следующее условие:
|Ы*)< цв(х) (VxgX). (3.2)
Так же как и для обычных множеств, для обозначения нечеткого подмножества используется символ "с". При этом в случае JTlcS часто говорят, что нечеткое множество ‘В доминирует нечеткое множество Я, а нечеткое множество Я содержится в нечетком множестве В.
По аналогии с классическими множествами среди нечетких множеств можно различать два различных варианта доминирования. Рассмотренное выше опре-
деление характерно для так называемого несобственного подмножества, когда не исключается случай возможного равенства двух нечетких множеств Я и 35. Если же в определении нечеткого подмножества исключается равенство соответствующих нечетких множеств в форме (3.1), то в этом случае Я называется собственным нечетким подмножеством S и обозначается: Яс: В. При этом часто говорят, что нечеткое множество В строго доминирует нечеткое множество Я, а нечеткое множество Я строго содержится в нечетком множестве В.
Из определения нечеткого подмножества следует, что пустое множество является собственным подмножеством любого нечеткого множества, не являющегося в свою очередь пустым. Другими словами, для любого нечеткого множества Я, такого что Я*0, всегда справедливо утверждение: 0с Я, где знак "с " понимается в нечетком смысле, поскольку справа от него стоит нечеткое множество. Из этого определения также следует, что любое нечеткое множество, не являющееся в свою очередь универсумом, является собственным подмножеством универсума. То есть для любого нечеткого множества Я, такого что Я^Х, всегда справедливо утверждение: Яс X.
Если для двух нечетких множеств Я и В, заданных на одном универсуме, не выполняется ни отношение Я с В, ни отношение S с Я, то в этом случае говорят, что нечеткие множества Я и В несравнимые.
Так, например, для конечных нечетких множеств Я1 и Яг, каждое из которых представляет в некотором контексте "небольшое натуральное число", и равные: Я1={<1, 1.0>, <2, 1.0>, <3,0.9>, <4,0.8>, <5,0.6>, <6, 0.5>, <7,0.4>, <8,0.2>, <9,0.1>} и Яг={<1, 1.0>, <2,0.9>, <3, 0.8>, <4, 0.7>, <5, 0.5>, <6, 0.4>, <7, 0.3>, <8,0.2>, <9,0.1>}, справедливо следующее отношение доминирования: ЯгсЯь Нечеткое доминирование или факт включения элементов одного нечеткого множества в другое нечеткое множество можно изобразить графически в декартовой системе координат на плоскости. С этой целью изобразим прямоугольную систему координат, на оси абсцисс которой в том или ином порядке расположим элементы универсума X, а на оси ординат— соответствующие им значения функции принадлежности рассматриваемого нечеткого множества.
Примечание
Подобное графическое изображение уже было использовано нами в главе 2 при рассмотрении функций принадлежности нечетких множеств. Очевидно, этот способ наиболее удобен, когда в качестве универсума выступает некоторое подмножество действительных чисел R.
Для случая 5сЯ график функции принадлежности нечеткого множества В будет расположен по вертикальной оси не выше графика функции принадлежности нечеткого множества Я (рис. 3.1, а, б). Более того, как на рис. 3.1, а, так и на рис. 3.1, б, изображены случаи строгого доминирования Вс Я.
PstoPstoРис. 3.1. Различные варианты отношения доминирования Sc 54 двух нечетких множествРис. 3.1. Различные варианты отношения доминирования Sc 54 двух нечетких множеств
Psto
Psto
Рис. 3.1. Различные варианты отношения доминирования Sc 54 двух нечетких множеств
Рис. 3.1. Различные варианты отношения доминирования Sc 54 двух нечетких множеств
Операции пересечения, объединения и разности нечетких множеств
Пусть 54 и В— произвольные (конечные или бесконечные) нечеткие множества, заданные на одном и том же универсуме X.
(33)(33)Пересечение. Пересечением двух нечетких множеств Я и 8 будем называть некоторое третье нечеткое множество С, заданное на этом же универсуме X, функция принадлежности которого определяется по следующей формуле:
(33)
(33)
Mcto= min {p^to, Ив to) (VxeX).
Операция пересечения нечетких множеств по аналогии с обычными множествами обозначается знаком "п". В этом случае результат операции пересечения двух нечетких множеств записывается в виде: С=5ЧпУ.
В этом случае С={х|рс(х)} — нечеткое множество с функцией принадлежности рс(х), которая определяется по формуле (3.3). Как нетрудно заметить, пересечение .Яп£ есть наибольшее нечеткое подмножество С, которое содержится одновременно в нечетких множествах Я и S.
Операцию пересечения нечетких множеств в смысле (3.3) иногда называют min- пересечением или л-пересечением. Последнее обозначение связано с определением логической операции "И", которая в математической логике обозначается знаком "л" (см. приложение 2). Соответственно функция принадлежности пересечения Цс(х) в этом случае записывается в виде: Цс(х)=ря(х)лр8 (х) (VxeA). При этом знак "л" используется в качестве синонима операции нахождения минимального значения. Поскольку в практике нечеткого моделирования эта операция используется наиболее часто, в дальнейшем, говоря о пересечении нечетких множеств, если явно не указано другое, мы будем иметь в виду min-пересечение (л-пересечение).
Операция min-пересечения нечетких множеств корректна в том смысле, что она сохраняет свое определение для случая обычных множеств. А именно, если в качестве нечетких множеств Я и S взять обычные множества А и В как их частный случай, то определение операции пересечения (3.3) превратится в определение операции пересечения (П1.4) для характеристических функций последних.
В качестве примера рассмотрим конечное нечеткое множество Я, которое представляет в некотором контексте свойство "небольшое натуральное число”, и равно: ^={<1, 1.0>, <2, 1.0>, <3,0.9>, <4,0.8>, <5, 0.6>, <6, 0.5>, <7, 0.4>, <8, 0.2>, <9,0.1>}, и конечное нечеткое множество S, которое представляет свойство "натуральное число, приближенно равное двум", и равно: ‘В = {<1,0.5>, <2, 1.0>, <3,0.6>, <4, 0.4>, <5,0.2>, <6, 0>, <7, 0>, <8, 0>, <9, 0>}. Тогда нечеткое множество С как результат операции пересечения С=^г\В будет равно: С={<1,0.5>, <2, 1.0>, <3,0.6>, <4, 0.4>, <5,0.2>, <6, 0>, <7,0>, <8,0>, <9,0>}. Содержательно нечеткое множество С может представлять в этом же контексте "небольшое натуральное число, приближенно равное двум".
Результат операции пересечения двух и большего числа нечетких множеств, заданных на одном и том же универсуме X, также можно изобразить графически в декартовой системе координат на плоскости. Этот способ особенно удобен для визуализации операций с бесконечными нечеткими множествами. В данном случае каждое из нечетких множеств изображается соответствующей функцией принадлежности, а функция принадлежности результата операции пересечения изображается утолщенной линией. Для дополнительной наглядности область, расположенная ниже значений результирующей функции принадлежности, изображается затемненной.
Для случая пересечения двух нечетких множеств .ЯпВ, заданных различными функциями принадлежности, результат операции изображен на рис. 3.2, а, б. При этом линейные Z-образная и 5-образная функции принадлежности имеют параметры о=3, 6=6, а 77-образные функции принадлежности — о=1, 6=3, г=4, d=1 и а—З, b=6, с=1, d=9 соответственно.
Рис. 3.2. Графическое представление операции пересечения двух нечетких множеств гЯ ИЙ, заданных линейными Z-образной и S-образной функциями принадлежности (а) и /7-образными (б) функциями принадлежности
Для выпуклых нечетких множеств имеет место следующее свойство. Если нечеткие множества Л и S — выпуклые, что их пересечение ЯпЗ также является выпуклым нечетким множеством. Рис. 3.2 поясняет и данное свойство, поскольку изображенные на нем исходные нечеткие множества и результат операции пересечения являются выпуклыми.
Объединение. Объединением двух нечетких множеств .Я и 53 называется некоторое третье нечеткое множество D, заданное на этом же универсуме X, функция принадлежности которого определяется по следующей формуле:
Цо(х)=тах{^(л), рв(л)} (VxeA).(3.4)
Операция объединения нечетких множеств по аналогии с обычными множествами обозначается знаком "и". В этом случае результат операции объединения двух нечетких множеств записывается в виде: i)=^l’u53.
В этом случае ©^х^гХ-х)} — нечеткое множество с функцией принадлежности Цп(х), которая определяется по формуле (3.4). Как нетрудно заметить, объеди-
нение 5кл8 есть наименьшее нечеткое множество Ю, которое доминирует одновременно как Я, так и 8.
Операцию объединения нечетких множеств в смысле (3.4) иногда называют max- объединением или v-объединением. Последнее обозначение связано с определением логической операции "ИЛИ" (неисключающего ИЛИ), которая в математической логике обозначается знаком "v" (см. приложение 2). Соответственно функция принадлежности объединения ЦоМ в этом случае часто записывается в виде: PiX^^llHtovp^x) (>/хеХ). При этом знак V используется в качестве синонима операции максимума. Поскольку в практике нечеткого моделирования эта операция используется наиболее часто, в дальнейшем, говоря об объединении нечетких множеств, если явно не указано другое, мы будем иметь в виду их max-объединение (v-объединение).
Операция max-объединения нечетких множеств также корректна в том смысле, что она сохраняет свое определение для случая обычных множеств. А именно, если в качестве нечетких множеств «Я и 8 взять обычные множества А и В как их частный случай, то определение операции объединения (3.4) превратится в определение операции объединения (П1.5) для характеристических функций обычных множеств.
В качестве примера рассмотрим нечеткое множество Я, которое, как и выше, представляет в некотором контексте "небольшое натуральное число", и равно: Я={<1,1.0>, <2, 1.0>, <3,0.9>, <4,0.8>, <5, 0.6>, <6, 0.5>, <7, 0.4>, <8, 0.2>, <9,0.1>}, и нечеткое множество 8, которое представляет "натуральное число, приближенно равное двум", и равно: 8 = {<1,0.5>, <2, 1.0>, <3, 0.6>, <4, 0.4>, <5,0.2>, <6, 0>, <7,0>, <8,0>, <9, 0>}. Тогда нечеткое множество D как результат операции объединения D=5Vu8 будет равно: £)={<!, 1.0>, <2, 1.0>, <3, 0.9>, <4,0.8>, <5,0.6>, <6, 0.5>, <7,0.4>, <8,0.2>, <9,0.1>}. Содержательно нечеткое множество D может представлять в этом же контексте "небольшое натуральное число или натуральное число, приближенно равное двум".
Результат операции объединения двух и большего числа нечетких множеств, заданных на одном и том же универсуме X, можно изобразить графически в декартовой системе координат на плоскости. Для случая объединения двух нечетких множеств ^lkj8, заданных различными функциями принадлежности, результат операции изображен на рис. 3.3, а, б.
Разность. Разностью двух нечетких множеств Я и 8 называется некоторое третье нечеткое множество 5, заданное на этом же универсуме X, функция принадлежности которого определяется по следующей формуле:
(3.5)(3.5)ц6(х) = тах{ця(х) - ps(x), 0} (VxeA),
(3.5)
(3.5)
где под знаком максимума используется обычная операция арифметической разности двух чисел. Операция разности двух нечетких множеств по аналогии с обычными множествами обозначается знаком "V. В этом случае результат операции разности двух нечетких множеств можно записать в виде: 6=Я\5.
Так, если, как и выше, рассмотреть нечеткое множество Я, равное: Я={<1, 1.0>, <2,1.0>, <3, 0.9>, <4, 0.8>, <5, 0.6>, <6, 0.5>, <7,0.4>, <8, 0.2>, <9,0.1>}, и нечеткое множество В, равное: 'В = {<1,0.5>, <2, 1.0>, <3,0.б>, <4, 0.4>, <5, 0.2>, <6, 0>, <7,0>, <8,0>, <9,0>), то разность ^\‘В будет равна: Я\58={<1,0.5>, <2, 0>, <3, 0.3>, <4, 0.4>, <5, 0.4>, <6, 0.5>, <7, 0.4>, <8, 0.2>, <9, 0.1 >}. Содержательно нечеткое множество Я\В может представлять в том же контексте "небольшое натуральное число, не являющееся приближенно равным двум". Для этих двух нечетких множеств разность BVA будет равна пустому множеству, поскольку все значения функции принадлежности результата будут равны нулю. Содержательно нечеткое множество В \Я может представлять в том же контексте "натуральное число, приближенно равное двум и не являющееся небольшим".
Рис. 3.3. Графическое представление операции объединения двух нечетких множеств Я и 'В, заданных линейными Z-образной и S-образной функциями принадлежности (а) и /7-образными (б) функциями принадлежности
Результат операции разности двух нечетких множеств Я и В, заданных на одном и том же универсуме X различными функциями принадлежности, изображен на рис. 3.4, а, б.
Ця(х)Ub(x)
Р-Л\в(*)
Рис. 3.4. Графическое представление операции разности двух нечетких множеств сЯ\ В, заданных линейными Z-обраэной и S-образной функциями принадлежности (а) и /7-образными (б) функциями принадлежности
Симметрическая разность. Следует заметить, что операция разности двух нечетких множеств в отличие от операций v-объединения и л-пересечения не является коммутативной, т. е. в общем случае ЛМВ* SVI. По аналогии с обычными множествами иногда оказывается полезной операция симметрической разности двух нечетких множеств ^ и (В (будем обозначать ее через Я©В). По определению:
Ия©й(х)ЧМ*) —М*)1 (Vxe^O, (3.6)
где в правой части выражения применяется операция модуля (или вычисления абсолютного значения) числа. При этом оказывается справедливым следующее утверждение: Я<Э1В=(5МВ)к>>(В\Л), т. е. симметрическая разность двух нечетких множеств представляет собой объединение двух разностей нечетких множеств Я и S3.
Определенные выше операции разности и симметрической разности двух нечетких множеств корректны в том смысле, что они остаются справедливыми для случая обычных множеств. А именно, если в качестве нечетких множеств У1 и 23 взять обычные множества А и В как их частный случай, то определения опера-
ций разности (3.5) и симметрической разности (3.6) превратятся в соответствующие определения (П1.6) и (Ш.7) для характеристических функций последних.
Если, как и выше, рассмотреть нечеткое множество Я, равное: ,Я={<1, 1.0>, <2, 1.0>, <3,0.9>, <4,0.8>, <5,0.6>, <6, 0.5>, <7, 0.4>, <8, 0.2>, <9,0.1 >}, и нечеткое множество 23, равное: 23 ={<1,0.5>, <2, 1.0>, <3,0.6>, <4, 0.4>, <5,0.2>, <6, 0>, <7,0>, <8,0>, <9,0>}, то их симметрическая разность У1©28 будет равна: У(©^={<1, 0.5>, <2,0>, <3, 0.3>, <4,0.4>, <5,0.4>, <6, 0.5>, <7,0.4>, <8,0.2>, <9, 0.1>}. В данном случае результат совпадает с обычной разностью ^l\S.
Операция симметрической разности двух нечетких множеств Я и 23, заданных на одном и том же универсуме X различными функциями принадлежности, может быть проиллюстрирована графически (рис. 3.5). При этом результату операции симметрической разности нечетких множеств также соответствует более темная область на графике.
РяМЦ-в(х)РяМЦ-в(х)ааРис. 3.5. Графическое представление операции симметрической разности двух нечетких множеств Я иУ, заданных линейными 2-образной и S-образной функциями принадлежности (а) и /7-образными (б) функциями принадлежностиРис. 3.5. Графическое представление операции симметрической разности двух нечетких множеств Я иУ, заданных линейными 2-образной и S-образной функциями принадлежности (а) и /7-образными (б) функциями принадлежности
РяМЦ-в(х)
РяМЦ-в(х)
а
а
Рис. 3.5. Графическое представление операции симметрической разности двух нечетких множеств Я иУ, заданных линейными 2-образной и S-образной функциями принадлежности (а) и /7-образными (б) функциями принадлежности
Рис. 3.5. Графическое представление операции симметрической разности двух нечетких множеств Я иУ, заданных линейными 2-образной и S-образной функциями принадлежности (а) и /7-образными (б) функциями принадлежности
Дополнение. Специально следует остановиться на унарной операции дополнения нечеткого множества. Дополнение нечеткого множества 54 обозначается
через Я и определяется как нечеткое множество У1={х| р Мх)}, функция принадлежности которого р я (х) определяется по следующей формуле:
р^(х)=1 -р^х) (УхеЛ).(3.7)
Если, как и выше, рассмотреть нечеткое множество 54, равное: 54= {<1, 1.0>, <2, 1.0>, <3, 0.9>, <4, 0.8>, <5, 0.6>, <6, 0.5>, <7, 0.4>, <8,0.2>, <9, 0.1>}, и нечеткое множество 8, равное: 8 ={<1,0.5>, <2, 1.0>, <3, 0.6>, <4,0.4>, <5,0.2>, <6, 0>, <7, 0>, <8,0>, <9, 0>}, то их дополнения будут равны: 54={<1,0>, <2,0>, <3, 0.1>, <4,0.2>, <5, 0.4>, <6, 0.5>, <7, 0.6>, <8,0.8>, <9, 0.9>} и ^={<1,0.5>, <2,0>, <3, 0.4>, <4,0.6>, <5, 0.8>, <6, 1.0>, <7, 1.0>, <8, 1.0>, <9, 1.0>}. Содержательно нечеткое множество 54 может представлять в рассматриваемом контексте "натуральное число, не являющееся небольшим", а нечеткое множество 8 — "натуральное число, не равное приближенно двум".
Примечание
Следует обратить внимание, что в рассмотренном выше примере в качестве универсума фактически использовалось множество из первых 9 натуральных чисел. Если взять в качестве универсума все множество натуральных чисел, то результат дополнения нечеткого множества 54 будет иным. Соответственно при интерпретации дополнений более строго следует говорить: "натуральное число в пределах между 1 и 9, не являющееся небольшим", а нечеткое множество S — "натуральное число между 1 и 9, не равное приближенно двум".
Операция дополнения нечеткого множества 54 может быть проиллюстрирована графически (рис. 3.6). При этом результату операции дополнения У1 также соответствует более темная область на графике. Как нетрудно видеть, график функции принадлежности дополнения нечеткого множества симметричен графику функции принадлежности исходного нечеткого множества относительно линии: ^=0.5.
Рис. 3.6. Графическое представление операции дополнения нечеткого множества 54, которое задано линейной Z-образной (а) функцией принадлежности
Рис. 3.6. Графическое представление операции дополнения нечеткого множества Л, которое задано /7-образной (б) функцией принадлежности
Для рассмотренных операций над нечеткими множествами имеют место следующие фундаментальные свойства, аналогичные свойствам обычных теоретико-множественных операций.
Пусть .Я, 39 и С — произвольные (конечные или бесконечные) нечеткие множества, заданные на одном и том же универсуме X. Справедливы следующие утверждения.
Коммутативность операций объединения и пересечения нечетких множеств:
Яи39= ЗЗиЯ;3WB= ВглЗХ.(3.8)
Ассоциативность операций объединения и пересечения нечетких множеств:
.Яи(£иС) = C?M?)uC;Яп(^пС)= (Яп£)пС.(3.9)
Дистрибутивность операций объединения и пересечения нечетких множеств относительно друг друга:
Яи(39пС) = (ЯиЗЗ)п(ЯоС); Яп(39иС)= (Яг^М Яг>С).(3.10)
Идемпотентность операций объединения и пересечения нечетких множеств:
ЯиЯ=Я;ЯпЯ=Я.(3.11)
Поглощение одного из нечетких множеств при операциях объединения и пересечения:
УЦУИ) = Яп(Я^®) = Я.(3.12)
□ Универсальные верхняя и нижняя границы (единичные элементы) операций пересечения и объединения нечетких множеств:
Яи0=Я;
ЯпХ=Я;
JKjX^ X, Яп0=0.
(3.13)
(3.14)
□ Инволюция (двойное дополнение) нечеткого множества:
□ Законы де Моргана (1806—1871):
(3-15)
(Яо®)=Яп39;
(Яп39)=Яо39.
(3.16)
Особенность рассматриваемых операций над нечеткими множествами состоит в том, что для них не выполняются закон исключенного третьего и закон тождества (свойства дополняемости операций пересечения и объединения). А именно, в общем случае оказываются справедливыми неравенства:
(3.17)(3.18)(3.17)(3.18)ЯпМ;
(3.17)
(3.18)
(3.17)
(3.18)
Яи ^*А.
Доказательство отмеченных свойств непосредственно следует из свойств операций минимума и максимума, используемых в определениях соответствующих нечетких операций.
Примечание
Важность перечисленных свойств обусловливается тем обстоятельством, что они представляют собой аксиомы дистрибутивной решетки (структуры) с единственными единичными элементами относительно аддитивной и мультипликативной операций. Следует заметить, что аксиомы булевой алгебры включают в себя аксиомы дистрибутивной решетки с дополнениями. Если рассмотреть алгебру нечетких множеств (нечеткую алгебраическую систему): Z=<X и, о\ , 0, Х> с операциями, которые были определены выше, то она не будет являться булевой алгеброй, поскольку для нее имеют место неравенства (3.17)—(3.18). Таким образом, каждая булева алгебра является нечеткой алгеброй, но не наоборот.
Введенные в рассмотрение операции над нечеткими множествами, основанные на использовании операций тах(«) и min(»), получили наибольшее распространение при решении практических задач нечеткого моделирования. Эти операции обладают двумя основными достоинствами. Во-первых, они наиболее естественны для интуитивного представления неопределенности, связанной с использованием соответствующих им логических связок "И", "ИЛИ", "НЕ". Во-вторых, они удовлетворяют свойствам (3.8)—(3.18), что в максимальной степени приближает структуру нечетких множеств к булевой алгебре.
Тем не менее, операции min-пересечения и max-объединения нечетких множеств было бы неверно считать единственными, поскольку в общем случае, как будет видно из последующего изложения, возможны и другие альтернативные способы их определения. При этом большинство из подобных альтернативных операций также оказываются корректными в смысле соответствия обычным теоретикомножественным операциям.
Альтернативные операции пересечения и объединения нечетких множеств
Целесообразность применения альтернативных операций может быть обусловлена специфическими особенностями конкретных практических задач и желанием повысить адекватность интерпретации используемых нечетких моделей на
основе учета разнообразных смысловых оттенков соответствующих им логических связок "И" и "ИЛИ".
Пусть Я и 23— произвольные (конечные или бесконечные) нечеткие множества, заданные на одном и том же универсуме X.
Алгебраическое пересечение. Алгебраическим пересечением (или алгебраическим произведением") двух нечетких множеств .Я и 23 называется некоторое третье нечеткое множество С, заданное на этом же универсуме X, функция принадлежности которого определяется по следующей формуле:
Мс(х)= M^)-Psto (VxgA), (3.19) т. е. как результат обычного арифметического произведения соответствующих значений функций принадлежности.
Для альтернативных операций над нечеткими множествами также предложены специальные обозначения. В частности, алгебраическое пересечение двух нечетких множеств Я и 23 обозначается через С=5^«8, где С={х|цс(х)} — результат этой операции, функция принадлежности цс(х) которого определяется по формуле (3.19).
Все рассматриваемые в данном подразделе альтернативные операции будем иллюстрировать на следующем простом примере. Как и ранее, рассмотрим конечное нечеткое множество Я, которое представляет в некотором контексте "небольшое натуральное число", и равно: Я={<1,1.0>, <2, 1.0>, <3,0.9>, <4,0.8>, <5,0.6>, <6, 0.5>, <7,0.4>, <8,0.2>, <9,0.1>}, и конечное нечеткое множество 23, которое представляет "натуральное число, приближенно равное двум", и равно: 23 ={<1,0.5>, <2, 1.0>, <3,0.6>, <4, 0.4>, <5, 0.2>, <6, 0>, <7, 0>, <8, 0>, <9, 0>}. Тогда нечеткое множество С, как результат операции алгебраического пересечения С=Я*23, будет равно: С={<1,0.5>, <2, 1.0>, <3, 0.54>, <4,0.32>, <5,0.12>, <6,0>, <7,0>, <8,0>, <9,0>).
Операцию алгебраического пересечения двух бесконечных нечетких множеств, заданных на одном и том же универсуме X, можно проиллюстрировать графически в декартовой системе координат на плоскости. В этом случае, как и выше, результат операции алгебраического пересечения двух бесконечных нечетких множеств Я и 8. заданных различными функциями принадлежности, изображен затемненным n?i рис. 3.7, а, б.
Алгебраическое объединение. Алгебраическим объединением (или алгебраическим суммой) двух нечетких множеств Я и 28 называется нечеткое множество D, заданное на этом же универсуме X, функция принадлежности которого определяется по следующей формуле:
Мх)= ^(a^^x)-^^ (VxgA), (3.20)
где справа от знака равенства использованы обычные арифметические операции. Алгебраическое объединение двух нечетких множеств Я и 23 обозначается через 2)=Я+23, где Z>=(x|pD(x)} — результат этой операции с функцией принадлежности ps(x), которая определяется по формуле (3.20).
Рис. 3.7. Графическое представление операции алгебраического пересечения двух нечетких множеств Л«й, заданных линейными Z-образной и S-образной функциями принадлежности (а) и /7-образными (б) функциями принадлежности
Для рассматриваемого примера результат алгебраического объединения двух конечных нечетких множеств Я и S будет равен: 2)=Я+В={<1, 1>, <2,1>, <3,0.96>, <4, 0.88>, <5,0.68>, <6,0.5>, <7, 0.4>, <8, 0.2>, <9,0.1 >}.
Операцию алгебраического объединения двух бесконечных нечетких множеств, заданных на одном и том же универсуме X, можно проиллюстрировать графически в декартовой системе координат на плоскости. В этом случае, как и выше, результат операции алгебраического объединения двух бесконечных нечетких множеств 54 и В, заданных различными функциями принадлежности, изображен затемненным на рис. 3.8.
Как можно убедиться, для операций алгебраического пересечения и алгебраического объединения нечетких множеств имеют мисто лишь некоторые из свойств, аналогичные свойствам обычных теоретико-множественных операций.
Рис. 3.8. Графическое представление операции алгебраического объединения двух нечетких множеств №, заданных линейными Z-образной и S-образной функциями принадлежности (а) и Л-образными (б) функциями принадлежности
А именно, пусть 54, $ и С — произвольные (конечные или бесконечные) нечеткие множества, заданные на одном и том же универсуме X, а операция нечеткого дополнения определена по формуле (3.7). Тогда справедливы следующие утверждения.
Коммутативность операций алгебраического объединения и пересечения нечетких множеств:
54+$= $+54;Я»$= В»^.(3.21)
Ассоциативность операций алгебраического объединения и пересечения нечетких множеств:
54+($+С) = (54+$)+С; 54*($*С)= (54»$)»С.(3.22)
Универсальные верхняя и нижняя границы (единичные элементы) операций алгебраического пересечения и объединения нечетких множеств:
54+0=54;Я+Х= X;(3.23)
54*Х=54;Я»0=0.(3.24)
Законы де Моргана:
(яТё)=^е5;1^в)=^-^®.(3.25)
Однако в общем случае остальные свойства не выполняются.
Дистрибутивность операций алгебраического объединения и пересечения нечетких множеств относительно друг друга:
.я+ск?) * ся+ад.я+С); гя«(^+с) * ^•^^•С^-(3.26)
Идемпотентность операций алгебраического объединения и пересечения нечетких множеств:
гЯ+гЯ*Я;^Яе/Я^Я.(3.27)
Поглощение одного из нечетких множеств при операциях алгебраического объединения и пересечения:
^^•^ * ^Я;гЯ«(/Я+£) * 3V(3.28)
Закон исключенного третьего и закон тождества (свойства дополняемости операций алгебраического пересечения и объединения):
Я»^*0;(3.29)
Я + ^^Х.(3.30)
Доказательство выполнения свойств непосредственно следует из определения соответствующих операций и может служить в качестве упражнения. При этом следует помнить, что доказательством невыполнения свойств (3.26)—(3.30) может служить произвольный отрицательный пример.
Докажем, например, ассоциативность операции алгебраического объединения нечетких множеств. Для этого рассмотрим три произвольных нечетких множества: ^Я, S и С. Пусть для произвольного VxgX значения функций принадлежности этих нечетких множеств равны соответственно: а = ц^(л), b = ц®(х), с = pcW- Тогда по определению ^Я+(58+С) результирующее значение функции принадлежности будет равно: a+(b+c-bcy~a(b+c-bcy Раскрывая скобки, получим: а+Ь+с- -bc-ab-ac+abc. Выполнив простейшие преобразования, можно получить следующий результат: a+b+c-bc-ab-ac+abc=a+b-ab+c-bc-ac+abc=(a+b-ab)+c- ~c(aH)-ab)=(a+b-ab)+c-(a+ b-ab)c. Последнее выражение как раз и означает (Я+58)+С, что и доказывает свойство ассоциативности данной операции.
Аналогично можно доказать невыполнение свойства дистрибутивности операций алгебраического объединения и пересечения нечетких множеств относительно друг друга. Например, докажем, что .Я»(Й+С) * СЯ«33)+СЯ«С). В этом случае левая часть выражения с учетом введенных выше обозначений равна: a(b+c-bc)= =ab+ac-abc. Правая часть этого же выражения равна: ab+ac-(ab)(ac)=ab+ac- ~а2Ьс. Различие этих простейших выражений и доказывает данное неравенство.
Примечание j
Выполнение только части свойств, которые в совокупности определяют аксиомы дистрибутивной решетки, позволяют утверждать, что нечеткая алгебраическая система: Zi=<54, +, •, , 0, Х> не будет являться ни булевой алгеброй, ни алгебраической решеткой.
Граничное пересечение. Граничное пересечение двух нечетких множеств Э\и*В определяется как нечеткое множество С, заданное на этом же универсуме X, функция принадлежности которого определяется по следующей формуле:
PcW= maxIp^OO+psCv) -1,0} (X/хеХ), (3.31) где справа от знака равенства использованы обычные арифметические операции. Граничное пересечение нечетких множеств обозначается через С=ЯОВ, где С={х|рс(л)} — результат данной операции, функция принадлежности рс(л) которого определяется по формуле (3.31).
Рис. 3.9. Графическое представление операции граничного пересечения двух нечетких множеств 540®, заданных линейными Z-образной и S-образной функциями принадлежности (а) и /7-образными (б) функциями принадлежности
Для рассматриваемого примера результат граничного пересечения нечетких множеств Я и 53 будет равен: C=54OS={<1,0.5>, <2,1>, <3, 0.5>, <4,0.2>, <5,0>, <6,0>, <7,0>, <8,0>, <9, 0>}.
Результат операции граничного пересечения двух бесконечных нечетких множеств 54 и 53, заданных различными функциями принадлежности, изображен затемненным на рис. 3.9, а, б.
Граничное объединение. Граничное объединениедвухнечетких множеств 'А и ‘В определяется как нечеткое множество О, заданное на этом же универсуме X, функция принадлежности которого определяется по следующей формуле:
цв(л)= тт{ця(л)+цД.х), 1} (VxeA), (3.32) где справа от знака равенства использованы обычные арифметические операции. Граничное объединение двух нечетких множеств 54 и 53 обозначается через 2)=,ЯФВ, где ©={л|рю(х)} — результат этой операции с функцией принадлежности цо(х), которая определяется по формуле (3.32).
Рис. 3.10. Графическое представление операции граничного объединения двух нечетких множеств ЯФ®, заданных линейными Z-образной и S-образной функциями принадлежности (а) и /7-образными (б) функциями принадлежности
Для рассматриваемого примера результат граничного объединения нечетких множеств Я и5 будет равен: 5)=У(Ф58={<1, 1>, <2,1>, <3,1>, <4, 1>, <5,0.8>, <6,0.5>, <7,0.4>, <8,0.2>, <9,0.1>}. '
Результат операции граничного объединения двух бесконечных нечетких множеств Л и ‘В, заданных различными функциями принадлежности, изображен затемненным на рис. 3.10, а, б.
Драстическое пересечение. Драстическоепересечение (от англ. drastic— решительный, радикальный) двух нечетких множеств Я и ’В определяется как нечеткое множество С, заданное на этом же универсуме X, функция принадлежности которого определяется по следующей формуле:
Нв ^х\
HcW =
Ня^)»
если Ця(х) = 1, если Цй(х) = 1, в остальных случаях.
(Vxg2Q.
(3.33)
о,
Рис. 3.11. Графическое представление операции драстического пересечения двух нечетких множеств 3\МВ, заданных линейными Z-образной и S-образной функциями принадлежности (а) и П-образными (б) функциями принадлежности
Драстическое пересечение нечетких множеств обозначается через С=>ЯА^, где С={х|цс(а)} — результат данной операции, функция принадлежности pcU) которого определяется по формуле (3.33).
Для рассматриваемого примера результат драстического пересечения нечетких множеств Я и ’В будет равен: С=3\ fs={<l, 0.5>, <2,1>,<3,0>, <4, 0>, <5,0>, <6, 0>, <7, 0>, <8, 0>, <9, 0>).
Результат операции драстического пересечения двух бесконечных нечетких множеств 9\иВ, заданных различными функциями принадлежности, изображен затемненным на рис. 3.11, п, 6.
Драстическое объединение. Драстическое объединение двух нечетких множеств 3\ и В определяется как нечеткое множество 2), заданное на этом же универсуме X, функция принадлежности которого определяется по следующей формуле:
ЦюС^)ЦюС^)НвОО> М-.я 00’ 1,НвОО> М-.я 00’ 1,если ця (х) = О, если Цу (х) = О, в остальных случаях.если ця (х) = О, если Цу (х) = О, в остальных случаях.(VxeA).(VxeA).(3.34)(3.34)
ЦюС^)
ЦюС^)
НвОО> М-.я 00’ 1,
НвОО> М-.я 00’ 1,
если ця (х) = О, если Цу (х) = О, в остальных случаях.
если ця (х) = О, если Цу (х) = О, в остальных случаях.
(VxeA).
(VxeA).
(3.34)
(3.34)
Драстическое объединение двух нечетких множеств 51 и В обозначается через D=54VB, где 2)={x|pZ)(x)} — результат этой операции с функцией принадлежности цДх), которая определяется по формуле (3.34).
Для рассматриваемого примера результат драстического объединения нечетких множеств 51 и В будет равен: D=5VVB=V<L !>» <2, 1>, <3, 1>, <4, 1>, <5, 1>, <6, 0.5>, <7,0.4>, <8,0.2>, <9,0.1>}.
Результат операции драстического объединения двух бесконечных нечетких множеств 54 и В, заданных различными функциями принадлежности, изображен затемненным на рис. 3.12, а, б.
^ Примечание ^|
Для рассмотренных операций над нечеткими множествами имеет место выполнение только части свойств, аналогичных свойствам обычных теоретикомножественных операций. Поэтому соответствующие нечеткие алгебраические системы не будут являться алгебраическими решетками. Доказательство этих свойств оставляем заинтересованным читателям в качестве упражнения.
(3-35)(3-35)Операция Х-с уммы нечетких множеств. Для полноты изложения следует отметить еще операцию Х-суммы для двух нечетких множеств. Эта операция для нечетких множеств 54 и В обозначается через D = 5\. *ХВ, где 2)={х|цст(х)}. Функция принадлежности ц©(х) результата этой операции определяется по формуле:
(3-35)
(3-35)
Pd(x)= Х-ЦяОО+О-Х^М*) (VxcX),
где параметр Хе[0, 1].
Рис. 3.12. Графическое представление операции драстического объединения двух нечетких множеств 54V®, заданных линейными Z-образной и S-образной функциями принадлежности (а) и /7-образными (б) функциями принадлежности
Это среднее между двумя функциями принадлежности с весами X и I - X соответственно. При этом следует заметить, что операция Х-суммы по своему определению оказывается некорректной с точки зрения обычных множеств, поскольку значения характеристической функции ее результата применительно к обычным множествам могут не принадлежать двухэлементному множеству {0, 1}.
Однако все остальные альтернативные операции над нечеткими множествами, кроме Х-суммы, являются корректными в том смысле, что они сохраняют свое определение для случая обычных множеств. При этом оказывается справедливой следующая цепочка неравенств:
0с^ДЙсЯОйс5Ч*Йс5ЧглУс.Я +>Йс (3 36) с УЮ53 с 5Ч+Й с 51®S с ^V'B с X.
Эти неравенства следует понимать в том смысле, что для произвольных нечетких множеств 54 и 55 результат более левой операции всегда будет являться нечетким подмножеством результата более правой операции. Границами этих неравенств служат пустое множество и универсум.
Чтобы убедиться в справедливости этих неравенств, следует обратиться к более общему подходу к определению операций с нечеткими множествами, основанному на так называемых нечетких операторах.
Нечеткие операторы
Введенные в рассмотрение нечеткие теоретико-множественные операции не исчерпывают все возможные способы их задания, которые потенциально можно предложить в контексте общей теории нечетких множеств. Большой класс подобных операций, включая и уже рассмотренные операции пересечения и объединения нечетких множеств, допускает обобщенное представление на основе так называемых нечетких операторов. Эти операторы действуют на множествах значений функций принадлежности (в нашем случае— на интервалах [0, 1]) и поэтому могут быть непосредственно применены к функциям принадлежности произвольных нечетких множеств. Из многообразия нечетких операторов наибольший интерес представляют треугольные норма и конорма.
Треугольная норма (Т-норма, t-норма). Произвольная действительная функция от 2-х переменных Т : [0, 1]х[0, 1]—>[0, 1] называется треугольной нормой, если она удовлетворяет следующим свойствам, называемым аксиомами треугольной нормы-.
Т(л, 0) = 0;Т(х, 1) = х
(ограниченность);
(3.37)
Т(х,)0 = T(j,x)
(коммутативность);
(3.38)
Т(л , ТОд z)) =Т(Т(х, г), z)
(ассоциативность);
(3.39)
Т(л, JO <T(Z1,Z2),
(монотонность),
(3-40)
если одновременно х < zi и у < Z2.
Аксиома ограниченности обеспечивает выполнение граничных условий, которые должны выполняться для всех операций пересечения нечетких множеств, включая и обычные множества. Аксиомы коммутативности и ассоциативности обеспечивают выполнение соответствующих свойств у всех операций пересечения нечетких множеств. Аксиома монотонности гарантирует неизменность порядка величин значений функций принадлежности от каких бы то ни было значений других функций принадлежности. Типичной треугольной нормой является операция л-пересечения нечетких множеств.
Рассмотренные выше альтернативные операции пересечения нечетких множеств, которые определены по формулам (3.19), (3.31) и (3.33), также являются треугольными нормами. А именно, для алгебраического пересечения двух нечетких множеств Z?l*8, граничного пересечения J71055 и драстического пересечения J71A58 выполняются все аксиомы треугольной нормы (3.37)—(3.40), в чем можно убедиться непосредственной проверкой.
Треугольная конорма (Т-конорма, s-норма). Произвольная действительная функция от 2-х переменных S : [0, 1]х[0, 1]—>[0, 1] называется треугольной
конормой, если она удовлетворяет следующим свойствам, называемым аксиомами треугольной конормы.
S(x, 0)=х;S(x, l)=l
S(x, /) = SO, x)
S(x,SO, 0) = S(S(x, y),z)
S(X, y)<S(Z\,Z2),
(ограниченность);(3.41)
(коммутативность);(3.42)
(ассоциативность);(3.43)
(монотонность),(3.44)
если одновременно х< zi и у< zi.
Как можно видеть, аксиоматика этих двух норм практически одинакова, кроме первой аксиомы ограниченности конормы. Эта аксиома обеспечивает выполнение граничных условий, которые должны выполняться для всех операций объединения нечетких множеств, включая и обычные множества. Типичной треугольной конормой является операция max-объединения нечетких множеств.
Альтернативные операции объединения нечетких множеств, которые определяются по формулам (3.20), (3.32) и (3.34), также являются треугольными конорма- ми. А именно, для алгебраического объединения двух нечетких множеств 54+55, граничного объединения J7l©55 и драстического объединения 5RV55 выполняются все аксиомы треугольной конормы (3.41)—(3.44), в чем можно убедиться непосредственной проверкой.
Поскольку областью определения и областью значений треугольных норм и ко- норм является интервал [0, 1], то все рассмотренные ранее операции над нечеткими множествами могут быть проиллюстрированы графически с использованием так называемого трехмерного единичного куба. При этом результатам операций л- пересечения (0, алгебраического пересечения (0, граничного пересечения (в) и драстического пересечения (г) нечетких множеств соответствует более темная область на графике (рис. 3.13). Аналогично на рис. 3.14 представлены операции v- объединения (о), алгебраического объединения (0, граничного объединения (0 и драстического объединения (г) нечетких множеств в трехмерном пространстве.
Рис. 3.13. Графическое представление операций л-пересечения (а) нечетких множеств в трехмерном пространстве
х.у
хеу
х^у
Рис. 3.13. Графическое представление алгебраического пересечения (б), граничного пересечения (в) и драстического пересечения (г) нечетких множеств в трехмерном пространстве
х+у
х^у
Рис. 3.14. Графическое представление операций v-объединения (а), алгебраического объединения (б), граничного объединения (в) нечетких множеств в трехмерном пространстве
х^у
Рис. 3.14. Графическое представление драстического объединения (г) нечетких множеств в трехмерном пространстве
Некоторые дополнительные операции над нечеткими множествами
Среди дополнительных операций, которые находят применение при построении нечетких моделей сложных систем, следует отметить унарные операции умножения нечеткого множества на число и возведение нечеткого множества в степень.
Умножение нечеткого множества на число. Пусть Л={л\ ц^л)}— произвольное нечеткое множество, заданное на универсуме X; a— положительное действительное число (aeR*), такое, что a-h^<\ (напомним, что ИЛ — высота нечеткого множества /Я). Результат операции умножения нечеткого множества У! на число а определяется как нечеткое множество *В=\х, ц-в (а)} , заданное на этом же универсуме X, функция принадлежности которого определяется по формуле:
Рв(л)= «ря(х) (VxgX).Рв(л)= «ря(х) (VxgX).(3.45)(3.45)
Рв(л)= «ря(х) (VxgX).
Рв(л)= «ря(х) (VxgX).
(3.45)
(3.45)
Эту операцию в дальнейшем будем обозначать через а-Я.
Например, для конечного нечеткого множества У1={<1, 1.0>, <2, 1.0>, <3, 0.9>, <4, 0.8>, <5.0.6>, <6, 0.5>, <7, 0.4>, <8,0.2>, <9,0.1>} и числа а=0.7 нечеткое множество a-5V равно: п-У! = {<1,0.7>, <2, 0.7>, <3, 0.63>, <4,0.56>, <5, 0.42>, <6, 0.35>, <7, 0.28>, <8,0.14>, <9, 0.07>}.
Возведение в степень. Пусть У1={х, Ця(х)} — произвольное нечеткое множество, заданное на универсуме X; к — положительное действительное число UieRvy В этом случае чисто формально можно определить операцию возведения
нечеткого множества 54 в степень к как нечеткое множество 53= {х, ци(х)}, заданное на этом же универсуме X, функция принадлежности которого определяется по формуле:
М*) = ц^иУ' (VxgX).М*) = ц^иУ' (VxgX).(3.46)(3.46)
М*) = ц^иУ' (VxgX).
М*) = ц^иУ' (VxgX).
(3.46)
(3.46)
Эту операцию иногда обозначают через 54Л. Например, для конечного нечеткого множества 54= {<1, 1.0>, <2, 1.0>, <3, 0.9>, <4,0.8>, <5, 0.6>, <6, 0.5>, <7, 0.4>, <8, 0.2>, <9,0.1>) и числа <7=3 нечеткое множество 543 равно: 543 ={<1, 1.0>, <2, 1.0>, <3, 0.729>, <4,0.512>, <5,0.216>, <6, 0.125>, <7, 0.064>, <8, 0.008>, <9, 0.001>}.
Операции умножения бесконечного нечеткого множества на число и возведения бесконечного нечеткого множества в степень могут быть проиллюстрированы графически следующим образом (рис. 3.15).
Рис. 3.15. Графическое представление операций умножения нечеткого множества Я на число 2 (а) и возведения нечеткого множества Я в степени 0.25 и 3 (б) для П-образных функций принадлежности, первая из которых не является нормальнойРис. 3.15. Графическое представление операций умножения нечеткого множества Я на число 2 (а) и возведения нечеткого множества Я в степени 0.25 и 3 (б) для П-образных функций принадлежности, первая из которых не является нормальной
Рис. 3.15. Графическое представление операций умножения нечеткого множества Я на число 2 (а) и возведения нечеткого множества Я в степени 0.25 и 3 (б) для П-образных функций принадлежности, первая из которых не является нормальной
Рис. 3.15. Графическое представление операций умножения нечеткого множества Я на число 2 (а) и возведения нечеткого множества Я в степени 0.25 и 3 (б) для П-образных функций принадлежности, первая из которых не является нормальной
На основе операции возведения в степень определяются две специальные операции над нечеткими множествами: операция концентрирования и операция растяжения нечеткого множества.
Концентрирование. Пусть на универсуме X задано произвольное нечеткое множество Я={х, ^(х)}. Операция концентрирования, обозначаемая через CON(54), дает в результате нечеткое множество С={х, ^(х)}, функция принадлежности которого равна значениям функции принадлежности исходного нечеткого множества, возведенным в квадрат, т. е.
PcU) = MyiU)2 (VxgzY). (3.47)
Очевидно, в этом случае CON(/7i)=/7i2. Например, для конечного нечеткого множества 54={<l, 1.0>, <2, 1.0>, <3, 0.9>, <4, 0.8>, <5, 0.6>, <6, 0.5>, <7, 0.4>, <8, 0.2>, <9, 0.1>} его концентрирование равно: CON(54)=542 = {<1, 1.0>, <2, 1.0>, <3,0.81>, <4, 0.64>, <5,0.36>, <6, 0.25>, <7,0.16>, <8,0.04>, <9, 0.01>}.
Растяжение. Операция растяжения, обозначаемая через DIL(/7i), дает в результате нечеткое множество D=\x, р©(х)}, функция принадлежности которого равна значениям функции принадлежности исходного нечеткого множества, возведенным в степень 0.5, т. е.
цв(х) = цХЛ)°5 (VxeX). (3.48)
Очевидно, в этом случае CON(54)=540-5. Например, для конечного нечеткого множества 5Ч={<1, 1.0>, <2, 1.0>, <3, 0.9>, <4, 0.8>, <5, 0.6>, <6, 0.5>, <7, 0.4>, <8,0.2>, <9,0.1>} его растяжение равно: DIL(54)=54O5={<1,1.0>, <2, 1.0>, <3,0.949>, <4, 0.894>, <5, 0.775>, <6, 0.707>, <7, 0.632>, <8, 0.447>, <9, 0.316>}.
Операции концентрирования и растяжения нечеткого множества могут быть проиллюстрированы графически (см. рис. 3.16). Результатам этих операций соответствует более темная область на графике.
Рис. 3.16. Графическое представление операций концентрирования нечеткого множества (а) для /7-образных функций принадлежности
Р-ЫЦ-Я^) ЦХ*)
Рис. 3.16. Графическое представление операций растяжения нечеткого множества (б) для Г7-образных функций принадлежности
Примечание
Применение операции концентрирования к нечеткому множеству означает уменьшение нечеткости или неопределенности в задании этого множества. Зачастую это может быть следствием поступления дополнительной информации, которая уточняет некоторые аспекты соответствующей предметной области. Напротив, применение операции растяжения означает усиление неопределенности в задании нечеткого множества, что может быть следствием либо потери части информации, либо поступления информации о дополнительных факторах, не учитываемых в исходной нечеткой модели. Эти операции находят применение при оперировании лингвистическими переменными, которые рассматриваются далее в главе 5.
Обобщением операции к-суммы двух нечетких множеств является операция определения выпуклой комбинации произвольного конечного числа нечетких множеств. Пусть 54i, 542,..., 54„— нечеткие множества, заданные на универсуме X, a Xi, Ъ,..., К— неотрицательные действительные числа, сумма которых равна I.
Выпуклая комбинация нечетких множеств. Выпуклой комбинацией нечетких множеств Я,, 542,..., Яп называется нечеткое множество £>={х|цв(х)}, функция принадлежности которого определяется по формуле:
ри(х)= ХгцУ11(х)+Х2фл2(х)+...+Х„цЛ(х) (Vx&zY), (3.49)
при этом параметры X(g[0, 1] для всех /е{1,2,..., п^ и Xi+X2+...+X„=l.
Дизъюнктивная с у м м а. В завершение рассмотрения операций с нечеткими множествами определим так называемую дизъюнктивную сумму двух нечетких множеств 54 и S3, которая хотя и редко, но все же используется в практике нечеткого моделирования. Результатом этой операции называется некоторое
третье нечеткое множество О, заданное на этом же универсуме X, функция принадлежности которого определяется по следующей формуле:
(3.50)(3.50)Ро(х)= тах{тт{ця(х), l~M*)}> minfl-p^x), pB(x)}}
(3.50)
(3.50)
для любого хеХ, где операции maxQ и minQ справа от знака равенства выполняются над парами соответствующих значений функций принадлежности исходных нечетких множеств 54 и 53. Эквивалентная запись для определения операции дизъюнктивной суммы: D =(54 о S)u(54 п 53).
Для конечного нечеткого множества 54={<1, 1.0>, <2, 1.0>, <3. 0.9>, <4, 0.8>, <5,0.6>, <6, 0.5>, <7,0.4>, <8,0.2>, <9,0.1>} и нечеткого множества: 53={<1,0.5>, <2, 1.0>, <3, 0.6>, <4, 0.4>, <5, 0.2>, <6, 0>, <7, 0>. <8,0>, <9, 0>}, результат их дизъюнктивной суммы будет равен: О=(54п53)о( 54^53)={< 1,0.5>. <2, 0>, <3,0.4>, <4, 0.6>, <5, 0.6>, <6, 0.5>, <7, 0.4>, <8, 0.2>, <9, 0.1>}.
Рис. 3.17. Графическое представление операции дизъюнктивной суммы двух нечетких множеств Л иЙ, заданных линейными Z-образной и S-образной функциями принадлежности (а) и Л-образными (б) функциями принадлежностиРис. 3.17. Графическое представление операции дизъюнктивной суммы двух нечетких множеств Л иЙ, заданных линейными Z-образной и S-образной функциями принадлежности (а) и Л-образными (б) функциями принадлежности
Рис. 3.17. Графическое представление операции дизъюнктивной суммы двух нечетких множеств Л иЙ, заданных линейными Z-образной и S-образной функциями принадлежности (а) и Л-образными (б) функциями принадлежности
Рис. 3.17. Графическое представление операции дизъюнктивной суммы двух нечетких множеств Л иЙ, заданных линейными Z-образной и S-образной функциями принадлежности (а) и Л-образными (б) функциями принадлежности
Операция дизъюнктивной суммы двух бесконечных нечетких множеств 54 и 53, заданных на одном и том же универсуме X различными функциями принадлежности, может быть проиллюстрирована графически (рис. 3.17). При этом результату операции дизъюнктивной суммы нечетких множеств соответствует более темная область на графике.
В завершение этой главы следует отметить то обстоятельство, что все введенные в рассмотрение операции над нечеткими множествами образуют необходимый концептуальный базис, который будет использоваться на всем протяжении книги. При этом в процессе решения конкретных задач нечеткого моделирования будут отмечены дополнительные семантические особенности нечетких теоретико-множественных операций в том или ином контексте.
Глава 4
Нечеткие отношения
Понятие нечеткого отношения наряду с понятием самого нечеткого множества следует отнести к фундаментальным основам всей теории нечетких множеств. На основе нечетких отношений определяется целый ряд дополнительных понятий, используемых для построения нечетких моделей сложных систем. Нечеткое отношение обобщает понятие обычного отношения и часто заменяется терминами нечеткая связь, ассоциация, взаимосвязь или соотношение.
Нечеткое отношение и способы его задания
Содержательно нечеткое отношение определяется как любое нечеткое подмножество упорядоченных кортежей, построенных из элементов тех или иных базисных множеств, в качестве которых в данном случае используются универсумы. При этом под кортежем, так же как и в случае обычных множеств, понимается произвольный набор или список упорядоченных элементов.
Нечеткое отношение. В общем случае нечетким отношением или, более точно, нечетким k-арным отношением, заданным на множествах (универсумах) A'i, Хг,..., Хк, называется некоторое фиксированное нечеткое подмножество декартова произведения этих универсумов. Другими словами, если обозначить произвольное нечеткое отношение через Q, то по определению O={<xi,X2,..., хА>, Pa(<xi,X2,..., хА>)}, где pe(<xi,Х2,..., хА>)— функция принадлежности данного нечеткого отношения, которая определяется как отображение ра: A"ixX2x...xXa->[0, 1]. Здесь через <xi,X2,..., хк> обозначен кортеж из к элементов, каждый из которых выбирается из своего универсума: Х1еХ\,хгеХ2,...,хкеХк (см. Приложение 1).
Гак же как и в случае обычных множеств с целью характеризовать количество Универсальных множеств, на основе которых строится то или иное нечеткое отношение, принято называть нечеткое отношение между элементами из двух универсальных множеств — бинарным, между элементами трех множеств — тернарным, а в общем случае— к-арным отношением. При этом на форму и вид Функции принадлежности нечеткого отношения предварительно не накладывается никаких ограничений.
Примечание
Следует отметить, что существуют и другие способы определения нечетких отношений. Так, например, можно предварительно задать нечеткие базисные множества ^, ^2Як и определить нечеткое декартово произведение этих нечетких множеств в форме: T=^ix.,?l2x...x^, где цг(<Х1, х2|...,ха>)= =min{^(xi). ц.^хг),..., ц_.^ и х^еЯд, хгеЯз,..., ХкеЯк. После чего определить нечеткое отношение О как некоторое нечеткое подмножество этого нечеткого декартова произведения. Поскольку этот способ основан на использовании так называемого принципа обобщения, он будет рассмотрен ниже в этой главе.
Пустое нечеткое отношение. В теории нечетких отношений пустое нечеткое отношение определяется как отношение, которое не содержит ни одного кортежа. Это отношение по-прежнему обозначается через 0 и формально определяется как такое нечеткое отношение, функция принадлежности которого тождественно равна 0 на всем декартовом произведении его универсумов. Из этого определения также следует, что пустое нечеткое отношение совпадает с обычным пустым отношением.
Полное нечеткое отношение. Что касается другого крайнего случая, то так называемое полное нечеткое отношение по своей сути совпадает с обычным полным отношением, которое, в свою очередь, равно по определению декартову произведению соответствующих универсумов XixXix...xXk. Как его обозначать — из соображений удобства можно просто через X. Важно представлять себе, что функция принадлежности полного нечеткого отношения тождественно равна единице для всех без исключения кортежей, т. е. Цх(<Х I, Х2,..., Л*>) = 1.
Особое значение в нечетком моделировании имеют бинарные нечеткие отношения, для задания которых используется одно или разные базисные множества (универсумы). В связи с этим приведем их формальное определение.
Бинарное нечеткое отношение. В общем случае бинарное нечеткое отношение задается на базисных множествах Аз, Xi и определяется как нечеткое отношение (Q={<a„ х>, р<э(<Л/, х;>)}. Здесь ц0(<д„ х>^— функция принадлежности бинарного нечеткого отношения, которая определяется как отображение Pq: Х\хХг-Ц0, 1], а через <х„х> обозначен кортеж из двух элементов, при этом x,eXi и х^Хг.
Обратное нечеткое отношение. Применительно к бинарным нечетким отношениям определяется так называемое обратное нечеткое отношение. А именно, если задано бинарное нечеткое отношение О на декартовом произведении X\xXi, то обратным к нему нечетким отношением (обозначается через Q"1) называется такое бинарное нечеткое отношение, которое заданно на декартовом произведении ХгхХц а функция принадлежности которого определяется по следующей формуле:
B^-i(jcz,^y)-Pg(^y,^) Для любых x.gXz и XjeXi.(4.1)
Бинарное нечеткое отношение, заданное на одном универсуме. Бинарное нечеткое отношение, заданное на одном базисном множестве (универсуме) X, определяется как нечеткое отношение <2={<х„ х>, Цо(<х,., х)>)}, где pat*^, х;>) — функция принадлежности бинарного нечеткого отношения, которая определяется как отображение pQ: АхА'->[0, I]. Здесь через <х„х/> обозначен кортеж из двух элементов, при этом как х^Х, так и х^Х.
Способы задания нечетких отношений
Существуют различные способы, которыми в общем случае могут быть формально заданы те или иные нечеткие отношения. Наибольшее распространение из них получили следующие:
□ В форме списка с явным перечислением всех кортежей нечеткого отношения и соответствующих им значений функции принадлежности: Q ={(мп, Pq(h'i)), м’2, Ро(и’2)),..., (h’v, HqC^))}, где w,— i-й кортеж <xi,Х2,..., хА> элементов этого отношения, a q— рассматриваемое число кортежей нечеткого отношения Q. При этом для сокращения подобной записи кортежи с нулевыми значениями функции принадлежности не указываются в данном списке. Как нетрудно заметить, этот способ подходит только для задания нечетких отношений с конечным и небольшим числом кортежей q.
Аналитически в форме некоторого математического выражения для соответствующей функции принадлежности этого нечеткого отношения. Этот способ может быть использован для задания произвольных нечетких отношений как с конечным, так и с бесконечным числом кортежей. В этом случае нечеткое отношение записывается в виде: Q = {<xi, Х2,..., хЛ>, ^(cxi,хг,..., хА>)} или сокращенно: Q = {и>, Pq(h>)}, понимая под w общее обозначение кортежа длины к. Если в качестве универсумов используются числовые множества, то в этом случае удобно представить функцию принадлежности (^ аналитически в форме некоторой функции/(xi, хг,..., хА.) от к переменных, которая конкретизирует отображениеДх): Х1хХ1х...хХк -»[(), 1]. Некоторые примеры использования этого способа задания нечетких отношений будут рассмотрены ниже в этой главе.
В дополнение к этим способам бинарные нечеткие отношения также могут быть заданы следующим образом.
Графически в форме некоторой поверхности или совокупности отдельных точек в трехмерном пространстве. При этом две координаты (независимые переменные) будут соответствовать значениям универсумов Х\ и Хг, а третья координата — интервалу [0, 1]. Например, график математической функции: z=x2+y2 для х, j'g[-0.5, 0.5] может служить примером графического способа формального задания некоторого нечеткого отношения. Здесь функция z является представлением функции принадлежности соответствующего нечеткого отношения. Этот способ зачастую используется в дополнение к аналитиче-
скому для визуализации бинарных нечетких отношений с бесконечным числом кортежей.
□ В форме матрицы нечеткого отношения. Этот способ основан на представлении нечеткого бинарного отношения с конечным числом кортежей в форме матрицы Мб, строки которой соответствуют первым элементам кортежей, а столбцы — вторым элементам кортежей рассматриваемого нечеткого отношения. При этом элементами матрицы являются соответствующие значения функции принадлежности Цб данного отношения. Если бинарное нечеткое отношение задается на одном универсуме, то матрица такого отношения Мб является квадратной. Определенную таким образом матрицу называют матрицей бинарного нечеткого отношения и обозначают Мй. В этом контексте табличный способ может рассматриваться как разновидность матричного, поскольку конечная матрица всегда может быть представлена в форме таблицы. В случае счетного универсума можно использовать бесконечные матрицы, однако эти математические конструкции лежат за пределами тематики книги.
□ В форме так называемого нечеткого графа, который формально может быть задан в виде двух обычных конечных множеств и некоторой функции принадлежности. А именно, нечеткий граф, а точнее, ориентированный нечеткий граф, есть g=lV, Е, р^), где K={vi, У2,...,у„} — множество вершин нечеткого графа, E={ci, ег,..., е,„} — множество дуг нечеткого графа, рд— функция принадлежности дуг данному нечеткому графу, т. е. р@:Е->[0, 1]. При этом вершины нечеткого графа, как и в случае обычных графов, изображаются точками, дуги — отрезками прямых линий со стрелкой на одном из концов. Рядом с вершинами записываются условные обозначения соответствующих вершин, а рядом с каждой дугой — значение функции принадлежности для соответствующей дуги. Натуральное число п определяет общее количество вершин конкретного нечеткого графа, а натуральное число т — общее количество дуг нечеткого графа. При этом дуги с нулевой функцией принадлежности в нечетком графе обычно не изображаются.
Как нетрудно заметить, каждому ориентированному нечеткому графу g соответствует некоторое бинарное нечеткое отношение Од, состоящее из всех пар вида <v„ у/>, где vb у;е V. При этом для каждой пары <vb v> определено некоторое действительное число из интервала [0, 1], которое равно значению функции принадлежности ц^е*) для дуги ек&Е, которая соответствует этой паре вершин. И обратно, если вершины у, и ^соединяются в нечетком графе g некоторой дугой ек^Е со значением функции принадлежности yig(ek?) и направленной из вершины у, в вершину у,, то тем самым задается некоторое бинарное нечеткое отношение Од. При задании нечеткого отношения О с помощью ориентированного нечеткого графа g каждому элементу универсума х,еХ будет соответствовать отдельная вершина v^g этого нечеткого графа, а каждому кортежу нечеткого отношения <хьх>еО будет соответствовать дуга графа ek=<vb v> с началом в вершине vb концом в вершине у, и значением функции принадлежности ИбС^, ■*/>)•
Как и в случае обычных графов, можно определить различные типы нечетких графов. Кроме рассмотренных выше ориентированных нечетких графов, можно ввести в рассмотрение неориентированные нечеткие графы, т. е. такие графы, у которых соединяющие вершины ребра не имеют направления или ориентации. Неориентированные нечеткие графы также удобно считать частным случаем ориентированных, у которых каждая дуга одновременно имеет дугу противоположной ориентации. В случае счетного универсума можно использовать бесконечные графы, т. е. графы с бесконечным числом вершин. Бесконечные графы, хотя и рассматриваются в современной теории графов, но выходят за рамки тематики настоящей книги. Именно поэтому мы будем использовать нечеткие графы для задания бинарных нечетких отношений только в случае их конечного универсума.
Примечание
При рассмотрении обычных отношений иногда отмечают способ их задания на основе явного указания некоторого свойства, которым должны обладать все элементы данного отношения. Применительно к нечетким отношениям этот способ во многом аналогичен описанным выше, поскольку в этом случае необходимо ввести в рассмотрение некоторое характеристическое свойство, которое может быть записано в виде многоместного нечеткого предиката P(<xi, х2,..., хк>\ Данный нечеткий предикат P(<xi, х2,..., хк>) определяется на декартовом произведении универсумов Xi, Х2,..., Хк и может принимать значения истинности из некоторого вполне упорядоченного множества, в частности, из интервала [0,1]. При этом в отличие от случая обычных множеств возникает проблема задания самого нечеткого предиката или его функции принадлежности (см. приложение 2). Тем не менее, принято считать, что в общем случае нечеткое отношение Q может быть также задано с помощью нечеткого предиката следующим образом: (Э={<Х1, Х2xk>|Po(<x1, х21...,Хк>), x^Xi, х2еХ2хкеХк\
В зависимости от количества кортежей нечеткое отношение может быть конечным или бесконечным. Нечеткое отношение называется конечным, если его носитель является конечным отношением. При этом вполне уместно говорить, что такое нечеткое отношение имеет конечную мощность, которая численно равна количеству кортежей его носителя, рассматриваемого как обычное множество (см. приложение 1). В этом случае для обозначения мощности произвольного нечеткого отношения Q можно использовать общепринятое обозначение card(Q). Аналогично счетным нечетким отношением будем называть нечеткое отношение со счетным носителем, т. е. носитель которого имеет счетную мощность Л‘о в обычном смысле. Несчетным нечетким отношением называется нечеткое отношение с несчетным носителем, т. е. носитель которого имеет несчетную мощность или мощность континуума с (или А) в обычном смысле.
Для иллюстрации описанных способов задания отношений рассмотрим следующие примеры конкретных нечетких отношений.
Пример 4.1.В качестве первого примера рассмотрим конечное бинарное нечеткое отношение <21, заданное на одном универсуме X, в качестве которого возьмем подмножество первых 10 натуральных чисел: Х={1, 2, 3, 4, 5, 6, 7, 8, 9, 10}.
Пусть отношение Qi описывает свойство: "натуральное число х, приближенно равно натуральному числу х".
Конкретное бинарное нечеткое отношение <Qi может быть задано в форме списка следующим образом: Qi ={(<1, 1>, 10), (<1,2>,0.8), (<1,3>,0.5), (<1,4>,0.2), (<2, 1>,0.8), (<2, 2>, 1), (<2,3>, 0.8), (<2,4>, 0.5), (<2, 5>, 0.2), (<3, 1>, 0.5), (<3, 2^,0 8), (<3,3>, 1), (<3,4>, 0.8), (<3,5>, 0.5), (<3,6>,0.2), (<4, 1>,0.2), (<4, 2>, 0.5), (<4, 3>, 0.8), (<4,4>, 1), (<4, 5>, 0.8), (<4,6>,0.5), (<4,7>,0.2), (<5, 2>,0.2), (<5, 3>, 0.5), (<5, 4>, 0.8), (<5,5>,1), (<5,6>, 0.8), (<5,7>,0.5), (<5, 8>,0.2), (<6, 3>, 0.2), (<6,4>, 0.5), (<6,5>,0.8), (<6,6>. 1), (<6,7>,0.8), (<6,8>,0.5), (<6, 9>, 0.2), (<7, 4>, 0.2). (<7, 5>. 0.5), (<7, 6>, 0.8), (<7, 7>, 1), (<7, 8>,0.8), (<7,9>, 0.5), (<7, 10>, 0.2), (<8, 5>,0.2), (<8. 6>, 0.5), (<8, 7>, 0.8), (<8,8>, 1), (<8,9>,0.8), (<8, 10>,0.5), (<9,6>,0.2), (<9,7>,0.5), (<9,8>,0.8), (<9, 9>, 1), (<9, 10>, 0.8), (<10, 7>, 0.2), (<10, 8>, 0.5), (<10, 9>, 0.8), (< 10, 10>, 1)}.
В этом списке отсутствуют кортежи с нулевым значением функции принадлежности.
Это же бинарное нечеткое отношение может быть задано матрицей Moi:
* 1
0.8
0.5
0.2
0
0
0
0
0
0
0.8
1
0.8
0.5
0.2
0
0
0
0
0
0.5
0.8
1
0.8
0.5
0.2
0
0
0
0
0.2
0.5
0.8
1
0.8
0.5
0.2
0
0
0
0
0.2
0.5
0.8
I
0.8
0.5
0.2
0
0
MO1=
0
0
0.2
0.5
0.8
1
0.8
0.5
0.2
0
0
0
0
0.2
0.5
0.8
1
0.8
0.5
0.2
0
0
0
0
0.2
0.5
0.8
I
0.8
0.5
0
0
0
0
0
0.2
0.5
0.8
I
0.8
0
0
0
0
0
0
0.2
0.5
0.8
1
Данное нечеткое отношение можно также представить графически в форме совокупности точек в трехмерном пространстве и в форме нечеткого графа. Однако эти представления не совсем удобны для визуализации рассматриваемого нечеткого отношения и поэтому здесь не приводятся.
Пример 4.2. В качестве бесконечного бинарного нечеткого отношения рассмотрим нечеткое отношение Ch, которое задается на одном универсуме X— множестве неотрицательных действительных чисел R*. Содержательно отношение Й2 описывает свойство: "действительное число х, значительно больше действительного числа х”. Это нечеткое отношение удобно задать аналитически, например, в виде следующей функции принадлежности:
ииPa2(<^„ х>) = 0ца2(<х„ x,>) =1—"Xj -XjPa2(<^„ х>) = 0ца2(<х„ x,>) =1—"Xj -XjДЛЯ Х;< XjДЛЯ Xj> Xj (Vx„ XjGR+\ДЛЯ Х;< XjДЛЯ Xj> Xj (Vx„ XjGR+\(4.2)(4.2)
и
и
Pa2(<^„ х>) = 0
ца2(<х„ x,>) =1—
"Xj -Xj
Pa2(<^„ х>) = 0
ца2(<х„ x,>) =1—
"Xj -Xj
ДЛЯ Х;< Xj
ДЛЯ Xj> Xj (Vx„ XjGR+\
ДЛЯ Х;< Xj
ДЛЯ Xj> Xj (Vx„ XjGR+\
(4.2)
(4.2)
Фрагмент данного нечеткого отношения может быть изображен в форме графика этой функции в трехмерном пространстве (рис. 4.1).
Рис. 4.1. Графическое представление нечеткого отношения Ог в форме графика его функции принадлежности
Очевидно, данное бесконечное нечеткое отношение нельзя представить в матричной форме и в форме нечеткого графа.
Пример 4.3. Предположим, необходимо построить нечеткое отношение, которое содержательно описывает упрощенную ситуацию поиска неисправности в автомобиле. С этой целью в качестве первого универсума рассмотрим множество предпосылок или причин неисправности X={xi, хг, хз, Х4}, в котором xi— "неисправность аккумулятора", хг— "неисправность карбюратора", хз— "низкое качество бензина", Х4— "неисправность системы зажигания". В качестве второго универсума рассмотрим множество заключений или проявлений неисправности У={>’1,^2, ;;з}, где уч— "двигатель не запускается", у 2— "двигатель работает неустойчиво", уз— "двигатель не развивает полной мощности". При этом между каждым элементом множества предпосылок и каждым элементом множества следствий существует некоторая причинная взаимосвязь.
Особенность построения нечеткой модели для описываемой ситуации заключается в том, что рассматриваемая причинная взаимосвязь не является однозначной. Более того, исходя из субъективного опыта конкретного механика, марки автомобиля, условий его эксплуатации и учета других факторов эта причинная взаимосвязь наиболее адекватно может быть представлена в виде бинарного нечеткого отношения <Р=К<хьу>, цН<х,- J7>)}, заданного на базисных множествах X и У. В этом случае функция принадлежности р^>(<х„^>) этого бинарного нечеткого отношения количественно описывает степень уверенности в том, что та или иная причина неисправности может привести к тому или иному следствию.
Применительно к нашему примеру конкретное нечеткое отношение *Р может быть записано в форме списка следующим образом: ^={(<Х|, pi>, 1), (<xi,p2>,
0.1), (<Х1,уз>, 0.2), (<X2,pi>, 0.8), (<X2,yi>, 0.9), (<Х2, рз>, 1), (<хз,р|>, 0.7),
(<хз,р2>, 0.8), (<хз,рз>, 0.5), (<X4,pi>, 1), (<Х4, j'2>, 0.5), (<Х4,рз>, 0.2)}.
Поскольку нечеткое отношение *Р бинарное и конечное, оно может быть представлено в форме табл. 4.1, представленной ниже.
Таблица 4.1. Нечеткое отношение диагностики неисправности в автомобиле
л
У2
>’з
XI
I
0.1
0.2
Х2
0.8
0.9
I
Л'З
0.7
0.8
0.5
Х4
I
0.5
0.2
Эта таблица может быть легко преобразована в матрицу Мр нечеткого отношения, которая в данном конкретном случае имеет следующий вид:
I 0.II 0.Iмм0.80.70.80.70.90.80.90.80.2I0.50.20.2I0.50.2I 0.5I 0.5Рис. 4.2. Нечеткий граф отношения V (стрелки дуг, направленных от вершин х, к вершинам уу для удобства не указаны)Рис. 4.2. Нечеткий граф отношения V (стрелки дуг, направленных от вершин х, к вершинам уу для удобства не указаны)
I 0.I
I 0.I
м
м
0.8
0.7
0.8
0.7
0.9
0.8
0.9
0.8
0.2
I
0.5
0.2
0.2
I
0.5
0.2
I 0.5
I 0.5
Рис. 4.2. Нечеткий граф отношения V (стрелки дуг, направленных от вершин х, к вершинам уу для удобства не указаны)
Рис. 4.2. Нечеткий граф отношения V (стрелки дуг, направленных от вершин х, к вершинам уу для удобства не указаны)
Для того чтобы представить это нечеткое отношение в форме нечеткого графа, изобразим на плоскости его вершины, в качестве которых выступают элементы множеств X и У. Соединим эти вершины дугами, направленными от вершин, соответствующих элементам множества X, к вершинам, соответствующим элементам множества К Рядом с каждой из дуг запишем значение ее функции принадлежности. Тем самым получим нечеткий граф ^рассматриваемого отношения Ф* (рис. 4.2).
Что касается аналитического способа представления данного нечеткого отношения, то поскольку отсутствует математическое выражение для записи соответствующей функции принадлежности, использовать этот способ в данном случае не представляется возможным.
Пример 4.4. Модель "П р о ду кц и я/Ры н о к", используемая в стратегическом бизнес-планировании. Эта модель, известная также под названием матрица "иродукция/рынок" или "продукция/рыночная определенность", является классической моделью для разработки корпоративной стратегии.
Данная модель представляет собой практический инструмент для планирования выпускаемой продукции и рынков ее сбыта в зависимости от степени неопределенности перспектив продажи продукции или возможностей проникновения конкретной продукции на тот или иной рынок. Эта матрица строится исходя из субъективных оценок менеджеров с учетом того обстоятельства, что гораздо проще продать имеющимся покупателям уже известную продукцию, чем совершенно новую или мало известную. При этом под продукцией понимаются как товары, так и оказываемые услуги.
Исходя из практического опыта также известно, что продавать существующий ассортимент товаров или услуг категориям потребителей, близким к тем, которые уже приобретали их ранее, проще, чем осваивать совершенно новые рынки. Рассмотренные обстоятельства могут служить основой для задания бинарного нечеткого отношения ^={<х„ у>, ц«(<л„ _)’/>)}, заданного на базисных множествах X-{xi, Х2, хз} и Г={)л,^2,;;з}. При этом элементы базисных множеств имеют следующий содержательный смысл: х>— "имеющийся известный рынок", х?— "новый рынок, связанный с имеющимся", хз— "совершенно новый рынок", ri — "продукция, выпускаемая в настоящее время", у г — "новая продукция, связанная с выпускаемой", ^з — "совершенно новая продукция".
Функция принадлежности цЛ(<х„^>) рассматриваемого бинарного нечеткого отношения количественно описывает степень уверенности в успешной продаже различного типа продукции на том или ином рынке. При этом в стратегическом бизнес-планировании используется следующее конкретное нечеткое отношение 7?, записанное в форме списка: 7?={(<xi,>-i>, 0.9), (<Х1,уз>, 0.6). (<xi,p>, 0.3), (<x2,^i>, 0.6), (<Х2,у-1>, 0.4), (<Х2, рз>, 0.2), (<хз,;л>, 0.3), (<хз, j'2>, 0.2), (<хз, ^з>, 0.1)}.
Наиболее часто данная модель представляется в форме таблицы (табл. 4.2).
Таблица 4.2. Нечеткое отношение модели "Продукция/Рынок"
Продукция, выпускаемая в настоящее время
Новая продукция, связанная с выпускаемой
Совершенно новая продукция
Имеющийся известный рынок
0.9
0.6
0.3
Новый рынок, связанный с имеющимся
0.6
0.4
0.2
Совершенно новый рынок
0.3
0.2
0.1
Эта таблица легко преобразуется в матрицу нечеткого отношения
0.90.60.3
М« =М« =0.60.40.2
М« =
М« =
0.30.60.1
откуда и произошло название рассматриваемой модели.
Аналитический способ представления данного нечеткого отношения отсутствует, поскольку отсутствует компактное математическое выражение для записи соответствующей функции принадлежности. Очевидно, рассматриваемое нечеткое отношение можно также представить в форме нечеткого графа, что предлагается выполнить читателям в качестве упражнения.
Примечание
В качестве иллюстрации модели "Продукция/Рынок" рассмотрим практическую ситуацию, связанную с деятельностью менеджера по продаже престижных марок автомобилей бизнесменам. Задача менеджера состоит в том, чтобы обеспечить максимальный уровень продаж автомобилей, учитывая индивидуальные предпочтения клиентов. Эта ситуация соответствует левой верхней клетке в табл. 4.2. Если этот бизнес процветает, менеджер может принять решение о его расширении. Один из вариантов расширения может быть основан на решении организовать сеть станций технического обслуживания престижных марок автомобилей, проданных бизнесменам. Этот вариант будет соответствовать левой средней клетке таблицы. Другой вариант — начать продавать бизнесменам бытовую электронику (левая нижняя клетка в таблице).
Иная ситуация расширения может быть связана с решением продавать престижные автомобили не только бизнесменам, но и другим категориям покупателей, например, женам бизнесменов (второй столбец таблицы) или широким слоям населения (третий столбец таблицы). В этой ситуации модель "Продукция/Рынок" количественно характеризует успешность того или иного варианта расширения рассматриваемого бизнеса.
Пример 4.5. Рассмотрение примеров нечетких отношений завершим моделью изучения профилей бизнес-систем, которые используются для комплексного анализа текущего состояния последних. С этой целью в качестве первого универсума введем в рассмотрение множество качественных признаков: X={xi, Х2, хз, Х4, xs, хь, х?, хв, х», xjo}, элементы которого имеют следующий содержательный смысл: Xi— "качество выпускаемой продукции", Х2— "производственные мощности", хз— "финансовые возможности”, Х4— "конкурентоспособность", Х5— "общий уровень себестоимости продукции”, хь— "компетенция руководителей", xi — "наличие стабильных рынков сбыта”, хв — "наличие налоговых льгот", Х9 — "возможности выхода на международные рынки", хю — "наличие таможенных льгот". Очевидно, перечень признаков можно продолжить.
В качестве элементов второго базисного множества выступают бизнес-системы, которые подлежат комплексному анализу. Например, пусть это множество состоит из 3-х бизнес-систем: ^{^l^2, гз}. Тогда задача профилирования бизнес- систем заключается в формировании бинарного нечеткого отношения Т-{<хь yj>, рН<х„р>)}. Один из вариантов решения этой задачи может быть представлен в форме таблицы профилей бизнес-систем (табл. 4.3) и соответствующей матрицы нечеткого отношения
'0.6
0.5
0.7
0.5
0.8
0.8
0.7
0.4
0.9
0.2
0.6
0.6
0.5
0.6
0.8
М7 =
0.7
0.5
0.7
0.6
0.8
0.5
0.6
0.7
0.5
0.3
0.5
0.8
0.1
0.3
0.4
Таблица 4.3. Нечеткое отношение результата профилирования 3-х бизнес-систем
Бизнес-система
У1
Бизнес-система Уг
Бизнес-система Уз
Качество выпускаемой продукции
0.6
0.5
0.7
Производственные мощности
0.5
0.8
0.8
Финансовые возможности
0.7
0.4
0.9
Таблица 4.3 (окончание)
Бизнес-система
У1
Бизнес-система
Уг
Бизнес-система
Уз
Конкурентоспособность
0.2
0.6
0.6
Общий уровень себестоимости продукции
0.5
0.6
0.8
Компетенция руководителей
0.7
0.5
0.7
Наличие стабильных рынков сбыта
0.6
0.8
0.5
Наличие налоговых льгот
0.6
0.7
0.5
Возможности выхода на международные рынки
0.3
0.5
0.8
Наличие таможенных льгот
0.1
0.3
0.4
Примечание
Следует заметить, что дальнейшее использование матрицы профилей бизнес- систем является предметом теории принятия решений, в рамках которой разработаны различные модели многокритериальной оценки альтернатив. В этом контексте описанная нечеткая модель может рассматриваться как одна из наиболее конструктивных для многокритериального выбора наиболее предпочтительной бизнес-системы, например, с целью приобретения ее акций или инвестирования капитала.
Основные характеристики нечетких отношений
Пусть Q ={<xi,Х2,..., хк>, цо(<Х1,л-2,..., л\>)} — произвольное нечеткое /t-арное отношение с кортежами из декартова произведения соответствующих универсумов X\xXix...xXk и функцией принадлежности це(<Л1, Х2,...,лЛ>).
Носитель нечеткого отношения. Носителем нечеткого отношения Q называется обычное отношение Qs, которое формально определяется следующим образом:
Qs=V<x\,xi,..., хк> | М<Л1,Л'2,..., хА>)>0}
(V<X|, Х2,..., xk>^X\xXix...xXkY
Другими словами, носитель нечеткого отношения содержит те и только те кортежи, для которых значение соответствующей функции принадлежности отлично от-0. Очевидно, данное определение корректно, поскольку как для конечных, так и для бесконечных нечетких отношений выражение (4.3) имеет смысл. При этом пустое нечеткое отношение имеет пустой носитель, поскольку ц0=О для любого его кортежа, а носитель полного нечеткого отношения совпадает с этим полным отношением.
Например, носителем нечеткого отношения Qi, рассмотренного в примере 4.1, является отношение: Qsi = {<1, 1>, <1,2>, <1,3>, <1,4>, <2, 1>, <2, 2>, <2, 3>, <2, 4>, <2, 5>, <3, 1>, <3, 2>, <3, 3>, <3, 4>, <3, 5>, <3, 6>, <4, 1>, <4, 2>, <4, 3>, <4, 4>, <4, 5>, <4, 6>, <4, 7>, <5, 2>, <5, 3>, <5, 4>, <5, 5>, <5, 6>, <5, 7>, <5, 8>, <6, 3>, <6, 4>, <6, 5>, <6, 6>, <6, 7>, <6, 8>, <6, 9>, <7, 4>, <7, 5>, <7, 6>, <7, 7>, <7, 8>, <7, 9>, <7, 10>, <8, 5>, <8, 6>, <8, 7>, <8, 8>, <8, 9>, <8, 10>, <9, 6>, <9, 7>, <9, 8>, <9, 9>, <9, 10>, <10, 7>, <10, 8>, <10, 9>, <10, 10>}.
Отношение a-у ровня. Обобщением носителя нечеткого отношения является понятие отношения a-уровня, под которым понимается обычное отношение Qa, которое формально определяется следующим образом:
(4.4)(4.4)6а = {<Л|, Л-2,..., Хк> | Цо<Л1, Х2,--., ЛА>)> «}
(4.4)
(4.4)
(V <Л| ,Х2,..., Хк > G Aj ХХ2Х... хХк),
где a — некоторое действительное число из интервала [0, 1], т. е. ае[0, 1].
Примером отношений a-уровня для нечеткого отношения Qi, рассмотренного в примере 4.1, могут служить отношения: (2«-8 ={<Ь •>> <1,2>, <2, 1>, <2, 2>, <2, 3>, <3, 2>, <3, 3>, <3, 4>, <4, 3>, <4, 4>, <4, 5>, <5, 4>, <5, 5>, <5, 6>, <6, 5>, <6, 6>, <6, 7>, <7, 6>, <7, 7>, <7, 8>, <8, 7>, <8, 8>, <8, 9>, <9, 8>, <9, 9>, <9, 10>, <10, 9>, <10, 10>} и 5о.5 = {<1, 1>, <1, 2>, <1, 3>, <2, 1>, <2, 2>, <2, 3>, <2, 4>, <3, 1>, <3, 2>, <3, 3>, <3, 4>, <3, 5>, <4, 2>, <4, 3>, <4, 4>, <4, 5>, <4,6>, <5, 3>, <5, 4>, <5, 5>, <5,6>, <5, 7>, <6,4>, <6, 5>, <6, 6>, <6, 7>. <6, 8>, <7, 5>, <7,6>, <7, 7>, <7, 8>, <7, 9>, <8, 6>, <8, 7>, <8, 8>, <8, 9>, <8, 10>, <9, 7>, <9, 8>, <9,9>, <9, 10>, <10, 8>, <10, 9>, <10, 10>}.
Высота нечеткого отношения. Величина 11q= sup{po(<A'i, xi,..., А'Л>)}, где супремум берется по всем значениям функции принадлежности для кортежей <лт, xi,..., xk>&X\xX2x...xXk, называется высотой нечеткого отношения Q.
Например, высота конечного нечеткого отношения (21 (см. пример 4.1) равна 1 и соответствует элементам главной диагонали матрицы Moi этого отношения. Высота нечеткого отношения Q2, описывающего свойство "действительное число х, значительно больше действительного числа х" (см. пример 4.2), также равна 1. Однако среди элементов универсума lR+x!R+ отсутствуют числа, для которых бы Ц<22(<Л'„ х>^ = I (см. рис. 4.1). Действительно, какие бы числа мы не рассмотрели, соответствующее значение функции принадлежности всегда будет строго меньше 1.
Нормальное нечеткое отношение. Нечеткое отношение О называется нормальным, если максимальное значение его функции принадлежности равно 1. Формально это означает, что для нормального нечеткого отношения необходимо выполнение следующего условия:
М^'ь «,..., А/>)=1М^'ь «,..., А/>)=1(Э <ат, Х2,..., хк>бХ1хХ2х.,.хХк) .(4.5)
М^'ь «,..., А/>)=1
М^'ь «,..., А/>)=1
Нечеткое отношение (2i в примере 4.1 является нормальным, поскольку его высота равна 1 и соответствует элементам главной диагонали матрицы этого отношения. Напротив, нечеткое отношение К, представляющее модель "продукция/ рынок" (см. пример 4.4), и нечеткое отношение Т, представляющее модель профилирования бизнес-систем (см. пример 4.5), не являются нормальными.
Субнормальное нечеткое отношение. Если высота нечеткого отношения равна единице Utq = V), но условие (4.5) не выполняется, то такое нечеткое отношение будем называть субнормальным.
Произвольное непустое нечеткое отношение О можно сделать субнормальным, используя следующее преобразование:
(4.6)(4.6)РО(<Х|,Х2,...,ХА >)
(4.6)
(4.6)
р ■ (< х,, х2,..„ хА >) = -^-СhQ
Очевидно, нечеткое отношение Qi (см. пример 4.2) является субнормальным.
Мода нечеткого отношения. Некоторый кортеж w,„eXixX2x...xXk нечеткого отношения О называется модой, если этот кортеж является точкой локального максимума соответствующей функции принадлежности ц^слцхг,... ...,хл>), т. е. выполняется условие:
и’„ =arg max { pq(<at , х2,..., xk>Y$,(4.7)
где максимум рассматривается в некоторой локальной окрестности кортежа и',„ из области определения функции принадлежности.
Если произвольное нечеткое отношение имеет моду, совпадающую с его высотой, то преобразование (4.7) дает в результате нормальное нечеткое отношение.
Например, нечеткое отношение (2i (см. пример 4.1) имеет 10 мод, соответствующих элементам главной диагонали матрицы этого нечеткого отношения. Напротив, нечеткое отношение Qi (см. пример 4.2) не имеет ни одной моды.
Ядро нечеткого отношения. Ядром нечеткого отношения О называется обычное отношение Qi, которое определяется следующим образом:
2l={<AXX2,...,XA.>|pQ(<A-|,X2,...,AY^^
(4.0)
(<xi, Х2,..., хк>еХ\хХ2х...хХк).
Например, ядро нечеткого отношения V (см. пример 4.3) равно Pi = {<xi, j'i>, <хг, уУ>, <х4, Jl>}.
Ближайшее четкое отношение. Часто оказывается полезным понятие четкого отношения Q, ближайшего к нечеткому отношению О. Характери-
стическая функция такого отношения может быть определена следующим выражением:
Xq(< Х\, Х2,..., Хк >) =Xq(< Х\, Х2,..., Хк >) =(4.9)(4.9)О, если цо (< X], х2,..., хк >) < 0.5 1, если Ц@(< X], х2,—, хк >) > 0.5 0 или 1, если Ц^(< X], х2,..., хк >) = 0.5
Xq(< Х\, Х2,..., Хк >) =
Xq(< Х\, Х2,..., Хк >) =
(4.9)
(4.9)
Например, ближайшее к нечеткому отношению Г (см. пример 4.3) есть отношение: P={<X|,J4>, <Х2,у\>, <Х2,у1>, <Х2,уз>, <ХЗ,у\>, <X3,yi>, <Х4, >'!>}.
Границы, точки перехода, а также свойство выпуклости нечеткого отношения определяются аналогично нечетким множествам (см. главу 3).
Прежде чем приступить к определению операций, рассмотрим два простейших отношения между двумя нечеткими отношениями. Первое из них— равенство двух нечетких отношений.
Равенство нечетких отношений. Два нечетких отношения считаются равными, если они заданы на одних и тех же универсумах Х\, X?Хк, имеют одинаковую арность и их функции принадлежности принимают равные значения на всем декартовом произведении соответствующих универсумов.
Формально равенство двух нечетких множеств можно записать следующим образом. А именно, нечеткое отношение (2={<xi, Х2,..., хк>, pa(<xi, хз,..., лЛ>)} равно нечеткому отношению ^={<xi, хг,..., хк>, p«(<xi,хг,..., хл>)} (записывается как Q=fR) тогда и только тогда, когда значения функций принадлежности этих отношений равны на всем декартовом произведении их универсумов, т. е. выполняется следующее условие:
Рй(<х'1, Хг...., хл>)= цД<Х1, хг...., хл>)(4.10)
для любых кортежей <Х1,хг,..., хк>е Х\хХзх...хХк.
При этом следует отметить, что применительно к бинарным нечетким отношениям матрицы равных отношений и соо тветствующие им нечеткие графы равны, как это определено для соответствующих математических объектов.
Нечеткое доминирование. Говорят, что нечеткое отношение Q строго включает в себя (строго доминирует) нечеткое отношение R (записывается как^с(2), если значения функции принадлежности первого строго больше соответствующих значений функции принадлежности второго, т. е. выполняется следующее формальное условие:
Hq(<X1 , хг,..., хЛ>) > Ц«(<Х|, хг,..., хл>)(4.11)
для любых кортежей <xi, хг,..., хЛ>б Х\хХзх...хХк.
Здесь по аналогии с обычными множествами для обозначения строгого доминирования нечетких отношений используется символ "с". Если в данном определении в условии (4.11) вместо знака строгого неравенства записать знак нестрогого неравенства ">", то получим определение нестрогого включения нечетких отношений или нестрогого доминирования, которое обозначается как: Rc. Q. При этом
в случае Rc Q просто говорят, что нечеткое отношение Q доминирует нечеткое отношение R, а нечеткое отношение R содержится в нечетком отношении Q.
Если для двух нечетких отношений Q и R, заданных на одних и тех же базисных множествах, не выполняется ни отношение ^?с Q, ни отношение tic R, то в том случае говорят, что нечеткие отношения Qvi R несравнимые.
Как нетрудно заметить, любое нечеткое отношение, не являющееся пустым, строго включает в себя пустое отношение. Другими словами, для любого нечеткого отношения ti всегда справедливо утверждение: 0сQ, где знак "с " понимается в нечетком смысле, поскольку справа от него стоит нечеткое отношение. Из определения нечеткого доминирования также следует, что полное нечеткое отношение строго включает в себя любое нечеткое отношение этой же арности, не являющееся в свою очередь полным нечетким отношением. Другими словами, для любого нечеткого отношения ti всегда справедливо утверждение: tic X.
Операции
над нечеткими отношениями
Поскольку каждое нечеткое отношение представляет собой нечеткое множество, то применительно к нечетким отношениям оказываются справедливыми все операции, которые были определены выше в главе 3. В то же время при использовании нечетких отношений имеет место целый ряд дополнительных особенностей, которые следует учитывать при оперировании соответствующими понятиями.
Пусть ti и R— произвольные (конечные или бесконечные) Парные нечеткие отношения, заданные на одном и том же декартовом произведении универсумов: Х\хХ2х...хХк.
Пересечение. Пересечением двух нечетких отношений ti = {<xi, xi,..., хА>| IMq(<xi,хг,...,ха>)} uR=^<X\,X2,...,xk>\pR(<x\,X2,...,xk>y^ называется некоторое третье нечеткое отношение 3, заданное на этом же декартовом произведении универсумов XixX2x„.xXk, функция принадлежности которого определяется по следующей формуле:
ps(<xi,X2,...,xA>) = mintpa^xi,^,...,.^), ц.я(<Х|,Х2,...,^ (4.12)
(V<X1, Х2,..., Xk>G Х\хХ2Х...хХк).
В этом случае результат операции пересечения двух отношений записывается в виде: S=QofR, где S={<xi,X2,...,xA>|ps(<xi,X2,...,xA>)} с функцией принадлежности ps(<xi,X2,...,xA>), которая определяется по формуле (4.12). Операцию пересечения нечетких отношений в смысле (4.12) также называют min-пересечением или л-пересечением. Поэтому функция принадлежности пересечения двух нечет-
ких отношений, обозначаемая для краткости через PsOr), иногда записывается в виде: цХ’^-РаС^лряОО (X/weX\xX2X...xXky
Пример 4.6. Для иллюстрации операции пересечения нечетких отношений рассмотрим два бинарных нечетких отношения Q и *R, заданных на одном универсуме— числовом множестве А = {1, 2, 3, 4, 5}. Первое нечеткое отношение Q содержательно описывает условие: "натуральное число xf приближенно равно натуральному числу х", аналогично рассмотренному в примере 4.1. Второе нечеткое отношение fR содержательно описывает условие: "натуральное число х,- значительно превосходит натуральное число х". Пусть эти нечеткие отношения заданы следующими матрицами:
" 1
0.8
0.5
0.2
0 "
" 0
0
0
0
0"
0.8
1
0.8
0.5
0.2
0.2
0
0
0
0
MQ=
0.5
0.8
1
0.8
0.5
и М« =
0.5
0.2
0
0
0
. Тогда результат
0.2
0.5
0.8
1
0.8
0.7
0.5
0.2
0
0
0
0.2
0.5
0.8
1 _
0.9
0.7
0.5
0.2
0
пересечения этих нечетких отношений может быть представлен в виде матрицы:
' 0
0
0
0
0"
0.2
0
0
0
0
Mq^r —
0.5
0.2
0
0
0
, которая содержательно соответствует одновре-
0.2
0.5
0.2
0
0
0
0.2
0.5
0.2
0
менному выполнению двух условий: "натуральное число xf приближенно равно натуральному числу х" и "натуральное число х, значительно превосходит натуральное число х".
Объединение. Объединением двух нечетких отношений Q и R называется некоторое третье нечеткое отношение 'Ll, заданное на этом же декартовом произведении универсумов Х\хХ2х...хХк, функция принадлежности которого определяется по следующей формуле:
Wu(<x\,X2,...,xk>)= max{pQ(<xi,X2,...,xA>), p«(<xi, xi,..., xA>)} (4.13)
(V<n, X2,..., хк>еХ\хХ2х...хХк).
В этом случае результат операции объединения двух отношений можно записать в виде: Tl=Qu‘B, где 44-{<x\,X2,..., xA>|pTX<xi, Х2,..., хА>)} с функцией принадлежности ц^^ь Х2,..., хк>), которая определяется по формуле (4.13). Операцию объединения нечетких отношений в смысле (4.13) также называют max- объединением или v- объединением. Поэтому функция принадлежности объединения двух нечетких отношений, обозначаемая для краткости через ргЛи»), иногда записывается в виде: Рн(и')=ц<э(и’)уцк(и’) (Vm'gAjx.¥2x...xA'a).
Для рассмотренного выше примера 4.6 результат объединения соответствующих нечетких отношений может быть представлен в виде матрицы:
" 10.80.50.200.810.80.50.2М^к -0.50.810.80.50.70.50.810.80.90.70.50.81" 10.80.50.200.810.80.50.2М^к -0.50.810.80.50.70.50.810.80.90.70.50.81, которая содержательно соответствует выполне, которая содержательно соответствует выполне
" 1
0.8
0.5
0.2
0
0.8
1
0.8
0.5
0.2
М^к -
0.5
0.8
1
0.8
0.5
0.7
0.5
0.8
1
0.8
0.9
0.7
0.5
0.8
1
" 1
0.8
0.5
0.2
0
0.8
1
0.8
0.5
0.2
М^к -
0.5
0.8
1
0.8
0.5
0.7
0.5
0.8
1
0.8
0.9
0.7
0.5
0.8
1
, которая содержательно соответствует выполне
, которая содержательно соответствует выполне
нию двух условий: "натуральное число х, приближенно равно натуральному числу л)" или "натуральное число х^начителъно превосходит натуральное число х".
Разность. Разностью двух нечетких отношений Q и fR называется такое нечеткое отношение Т, заданное на этом же декартовом произведении универсумов Х\хХ2х.„хХк, функция принадлежности которого определяется по следующей формуле:
(4.14)(4.14)Цт(<Л-|, Х2,...,Хк>) = ЛШХ{ц<2(<Л'|,Х2,...,ЛА>)-Ця(<Х1,.Х2,...,^ 0}
(4.14)
(4.14)
(V<x\,X2,...,xk>eXixXix...xXk).
Здесь под знаком максимума применяется обычная операция арифметической разности. Операция разности двух нечетких отношений в смысле (4.14) по аналогии с обычными отношениями также обозначается знаком "\". В этом случае результат операции разности двух отношений можно записать в виде: T=QVR, где 7={<xi $ *^2,« • • j ^к^|Ц7<<)л, л’г,..., хА>)} с функцией принадлежности рД<Х|, Х2,..., хА>), которая определяется по формуле (4.14).
Для рассмотренного выше примера 4.6 результат разности QXR соответствующих нечетких отношений может быть представлен в виде матрицы:
‘ 1
0.8
0.5
0.2
0 "
0.6
1
0.8
0.5
0.2
Mq\« —
0
0.6
1
0.8
0.5
, которая содержательно соответствует выпол-
0
0
0.6
1 «
0.8
_ 0
0
0
0.6
1 _
нению двух условий: "натуральное число х, приближенно равно натуральному числу х" и одновременно "натуральное число х, не превосходит значительно натуральное число х".
Симметрическая разность. Операция симметрической разностидвух нечетких отношений Q и R (здесь мы будем обозначать ее через 0) по определению есть такое нечеткое отношение QO'R, функция принадлежности которого равна:
te«(<^!, X2,...,xk>)= |pa(<xi, хг,..., ЛА>) — p«(<Ai, лг,..., л"л>)1 (4.15)
(V<xi, Х2,..., х^^ХххХгх.-.хХ^.
Здесь в правой части выражения применяется операция модуля (или вычисления абсолютного значения) числа. При этом оказывается справедливым следующее
утверждение: QQR^QXRy^RAQ), т. е. симметрическая разность двух нечетких отношений представляет собой объединение двух разностей нечетких отношений (2 и К
Операции л-пересечения и v-объединения, а также операции разности и симметрической разности нечетких отношений сохраняют свои определения для случая обычных отношений. А именно, если в качестве нечетких отношений Q и К взять обычные отношения как их частный случай, то все определения нечетких операций будут справедливы и для характеристических функций этих обычных отношений.
Для рассмотренного выше примера 4.6 результат симметрической разности Q^R соответствующих нечетких отношений может быть представлен в виде матрицы:
" 1
0.8
0.5
0.2
0
0.6
1
0.8
0.5
0.2
Мепк —
0
0.6
1
0.8
0.5
0.5
0
0.6
1
0.8
.°-9
0.5
0
0.6
1
Дополнение. Унарная операция дополнения нечеткого отношения (2 обозначается через Q и определяется аналогично операции дополнения нечеткого множества. А именно, д={<Л|,л'2,...,лА>|це(<Л1,Х2,...,лА>)}, где функция принадлежности ц q(<xi, хг,..., хА>) определяется по следующей формуле:
И ^(^‘I, Л'2,-.., хА>)=1 -ро(<Х1, хг,..., хА>)(4.16)
(V<xi, хг,..., xk>eX\xX2X...xXk).
Для рассмотренного выше примера 4.6 дополнения соответствующих нечетких отношений могут быть представлены в виде матриц:
" 0
0.2
0.5
0.8
1 '
" 1
1
1
1
1 "
0.2
0
0.2
0.5
0.8
0.8
1
1
1
1
Мо-
0.5
0.2
0
0.2
0.5
и М ^ =
0.5
0.8
1
1
1
. Для сравнения
0.8
0.5
0.2
0
0.2
0.3
0.5
0.8
1
1
1
0.8
0.5
0.2
0
ол
0.3
0.5
0.8
1
приведем матрицы обратных нечетких отношений:
" 10.8 0.5 0.2 0 "
'0 0.2 0.5 0.7 0.9"
0.810.8 0.5 0.2
0 0 0.2 0.5 0.7
mq-i =
0.5 0.810.8 0.5
и Мк-1 =
0 00 0.2 0.5
. Как можно
0.2 0.5 0.8 10.8
0 000 0.2
0 0.2 0.50.8 1
0 000 0
заметить, Me = Mtia, но M« * Мк-1.
Для рассмотренных операций над нечеткими отношениями имеют место фундаментальные свойства, аналогичные свойствам нечетких теоретико-множест-
венных операций (3.8)—(3.18). Поэтому, если рассмотретьалгебру нечетких отношений (нечеткую алгебраическую систему): Z=< Q, и, п, , 0, А> с операциями, которые были определены выше, то она будет являться дистрибутивной решеткой (структурой) с единственными единичными элементами: 0 относительно операции нечеткого объединения и X относительно операции нечеткого пересечения.
Наряду с этим можно также рассматривать алгебру (алгебраическую систему) матриц нечетких отношений: M=<MQ, л, v, , Мо, Mi> с операциями л- пересечения и v-объединения матриц одинакового размера. Эти матричные операции могут быть определены поэлементно по формулам (4.12) и (4.13) соответственно. Операция дополнения для матрицы может быть определена согласно формуле (4.16). Что касается специальных матриц Мо и Mi, то элементы первой из них тождественно равны 0, а элементы второй — тождественно равны 1. Определенная таким способом алгебра матриц Л4 также будет являться дистрибутивной решеткой (структурой) с единственными единичными элементами: Мо относительно операции нечеткого v-объединения матриц и Mi относительно операции нечеткого л-пересечения.
Примечание
Для нечетких отношений сохраняют свой смысл альтернативные и дополнительные операции над нечеткими множествами. А именно, применительно к нечетким отношениям могут быть аналогично определены операции: алгебраическое пересечение (3.19), алгебраическое объединение (3.20), граничное пересечение (3.31), граничное объединение (3.32), драстическое пересечение (3.33), драстическое объединение (3.34), умножение нечеткого отношения на число (3.45), возведение нечеткого отношения в степень (3.46), концентрирование (3.47), растяжение (3.48), выпуклая комбинация (3.49) и дизъюнктивная сумма (3.50). Формальную запись соответствующих определений и проверку свойств альтернативных операций читателям предлагается выполнить самостоятельно в качестве упражнения.
Композиция бинарных нечетких отношений
Пусть Q и *R— конечные или бесконечные бинарные нечеткие отношения. Причем нечеткое отношение 0-^<хпх^, Mq^x,-, хА>)} задано на декартовом произведении универсумов XixXi, а нечеткое отношение *R=^<Xj,xk>, ц-я(<х?-, хА>)} — на декартовом произведении универсумов ХгхУз.
(4-17)(4-17)Композиция двух бинарных нечетких отношений. Нечеткое бинарное отношение, заданное на декартовом произведении Х\хХз и обозначаемое через Q 0 К, называется композицией бинарных нечетких отношений Q и У?, а его функция принадлежности определяется следующим выражением:
(4-17)
(4-17)
Pq®-/?(<x„ ха>) = max {minfi^x,, х>), М^л хА>)})
X ^G ^2
^<хьхк>е. Х\хХз\
Определенную таким образом композицию бинарных нечетких отношений называют иногда (max-min)-композицией или максиминной сверткой нечетких отношений.
Из определения данной операции композиции следует, что она ассоциативна, дистрибутивна относительно нечеткого объединения, но не дистрибутивна относительно нечеткого пересечения. Другими словами, для произвольных бинарных нечетких отношений Т*, Q и К, заданных на декартовых произведениях Ajx.Y2, ХгхАз и АзхАл соответственно, имеет место следующее свойство:
^®(Q®7?) = (P®Q)®^.(4.18)
Для бинарных нечетких отношений Р, (2 и К, заданных на декартовых произведениях ^1x^2, АххАз и ХзхХз соответственно, имеют место следующие свойства:
P®(<2uR) = (P®Q)u(P®R);(4.19)
*Р® (дп«)#(^®д)п(^®^).(4.20)
Кроме того, для (тах-пмп)-композиции произвольных бинарных нечетких отношений Р, Q и К, заданных на декартовых произведениях Х\хХц ХгхХз и ХтхХз соответственно, выполняется следующее свойство монотонности; если Q с Я, то (Р ® (2) сф ® К).
Пример 4.8. Рассмотрим типичную ситуацию, связанную с консалтингом в области выбора профессии для последующего обучения и получения соответствующей специальности. С этой целью построим нечеткую модель, основанную на двух бинарных нечетких отношениях 3 и Т. Первое из этих нечетких отношений строится на двух базисных множествах X и У, а второе— на двух базисных множествах У и Z. Здесь X описывает множество специальностей, по которым проводится набор на обучение, У — множество психо-физиологических характеристик, a Z— множество кандидатов на обучение. В интересуемом нас контексте нечеткое отношение 3 содержательно описывает психо-физиологическое профилирование специальностей, а Т — психо-физиологическое профилирование кандидатов на обучение.
Для конкретности, пусть X={xi,X2, хз,Х4, xs}, У^'ь уг, уз, у», ys, ye, р, ya, уч, >ло} и Z—{zi, 22, 23, 24}. Элементы универсумов имеют следующий содержательный смысл:
□ Xi — "менеджер", Х2 — "программист", хз — "водитель", х» — "секретарь-референт", xs — "переводчик";
□ yi — "быстрота и гибкость мышления", уг— "умение быстро принимать решения", уз— "устойчивость и концентрация внимания", >'4— "зрительная память", уз— "быстрота реакции", ув— "двигательная память", yi— "физическая выносливость", j?8— "координация движений", уч— "эмоциональноволевая устойчивость", j^io — "ответственность";
□ zi— "Петров", 22— "Иванов", Z3— "Сидоров", 24— "Васильева", zs— "Григорьева".
Конкретные значения функций принадлежности ps(<x,, у>) и ц-Н^Гр za>) рас-1 сматриваемых нечетких отношений представлены следующими таблицами (табл. 4.4 и 4.5).
Таблица 4.4. Нечеткое отношение S профилирования специальностей обучения
Быстрота и гибкость мышления
Умение быстро принимать решения
Устойчивость и концентрация внимания
Зрительная память
Быстрота реакции
Менеджер
0.9
0.9
0.8
0.4
0.5
Программист
0.8
0.5
0.9
0.3
0.1
Водитель
0.3
0.9
0.6
0.5
0.9
Секретарь
0.5
0.4
0.5
0.5
0.2
Переводчик
0.7
0.8
0.8
0.2
0.6
Двигательная память
Физическая выносливость
Координация движений
Эмоциональ но-волевая устойчивость
Ответственность
Менеджер
0.3
0.6
0.2
0.9
0.8
Программист
0.2
0.2
0.2
0.5
0.5
Водитель
0.8
0.9
0.8
0.6
0.3
Секретарь
0.2
0.3
0.3
0.9
0.8
Переводчик
0.2
0.2
0.3
0.3
0.2
Таблица 4.5. Нечеткое отношение Тпрофилирования кандидатов на обучение
Петров
Иванов
Сидоров
Васильева
Григорьева
Быстрота и гибкость мышления
0.9
0.8
0.7
0.9
1
Умение быстро принимать решения
0.6
0.4
0.8
0.5
0.6
Устойчивость и концентрация внимания
0.5
0.2
0.3
0.8
0.7
Зрительная память
0.5
0.9
0.5
0.8
0.4
Таблица 4.5 (окончание)
Петров
Иванов
Сидоров
Васильева
Григорьева
Быстрота реакции
1
0.6
0.5
0.7
0.4
Двигательная память
0.4
0.5
1
0.7
0.8
Физическая выносливость
0.5
0.8
0.9
0.5
0.4
Координация движений
0.5
0.6
0.7
0.6
0.5
Эмоционально-волевая устойчивость
0.8
1
0.2
0.5
0.6
Ответственность
0.3
0.5
0.9
0.6
0.8
'0.9 0.9 0.8
0.4
0.5
0.3
0.6
0.2
0.9
0.8'
0.8
0.5
0.9
0.3
0.1
0.2
0.2
0.2
0.5
0.5
0.3
0.9
0.6
0.5
0.9
0.8
0.9
0.8
0.6
0.3
0.5
0.4
0.5
0.5
0.2
0.2
0.3
0.3
0.9
0.8
0.7
0.8
0.8
0.2
0.6
0.2
0.2
0.3
0.3
0.2
0.9
0.8
0.7
0.9
1 '
0.6
0.4
0.8
0.5
0.6
0.5
0.2
0.3
0.8
0.7
0.5
0.9
0.5
0.8
0.4
1
0.6
0.5
0.7
0.4
М
«р —
0.4
0.5
1
0.7
0.8
0.5
0.8
0.9
0.5
0.4
0.5
0.6
0.7
0.6
0.5
0.8
1
0.2
0.5
0.6
0.3
0.5
0.9
0.6
0.8
Матрицы этих нечетких отношений имеют следующий вид:
М5 =
Поскольку рассматриваемые нечеткие отношения удовлетворяют формальным требованиям, необходимым для выполнения их нечеткой композиции согласно
(4.17), результат операции нечеткой композиции этих отношений может быть представлен в виде матрицы результирующего нечеткого отношения:
0.9 0.9 0.8 0.9 0.9"
0.80.8 0.7 0.8 0.8
Ms 07
0.90.80.90.70.8
0.80.90.80.60.8
0.70.70.80.80.7
Для наглядности преобразуем эту матрицу к табличной форме (табл. 4.6).
Таблица 4.6. Нечеткая композиция двух исходных отношений
Петров
Иванов
Сидоров
Васильева
Григорьева
Менеджер
0.9
0.9
0.8
0.9
0.9
Программист
0.8
0.8
0.7
0.8
0.8
Водитель
0.9
0.8
0.9
0.7
0.8
Секретарь
0.8
0.9
0.8
0.6
0.8
Переводчик
0.7
0.7
0.8
0.8
0.7
Рассмотрим, каким образом получается одно из значений функции принадлежности композиции, например, значение ц<2®к(<Л'1,>’1>) = 0.9. Вначале найдем минимальные значения функции принадлежности всех пар элементов первой строки табл. 4.4 и первого столбца табл. 4.5. А именно: min{0.9, 0.9} = 0.9, min{0.9, 0.8} = 0.8, min{0.8, 0.5} = 0.5, min{0.4, 0.5} = 0.4, min{0.5, 1} = 0.5, min{0.3, 0.4} = = 0.3, min{0.6, 0.5} = 0.5, min{0.2, 0.5} = 0.2, min{0.9, 0.8} = 0.8, min{0.8, 0.3} = = 0.3. После этого найдем максимальное из 10 полученных значений, которое и будет являться искомым значением функции принадлежности: Hq®r(<xi, ^i>) = = max{0.9, 0.8, 0.5, 0.4, 0.5, 0.3, 0.5, 0.2, 0.8, 0.3} = 0.9. Остальные значения функции принадлежности находятся аналогично.
Примечание
Операцию композиции нечетких отношений можно распространить на матрицы соответствующих нечетких отношений. В этом случае результатом композиции матрицы Mi размерности (лхт) и матрицы Мг размерности (mxk) будет матрица Мз размерности (лх/с), элементы которой получаются согласно формуле (4.17). Тем самым оказывается корректным следующее обозначение: Мз= Mi®M2, которое будет нами использоваться в дальнейшем.
Анализ табл. 4.6 показывает, что имеющимся кандидатам можно порекомендовать обучение по следующим специальностям (на основе максимальных значений функции принадлежности композиции рассматриваемых нечетких отноше-
ний): Петров — менеджер, водитель; Иванов — менеджер, секретарь; Сидоров— водитель; Васильева— менеджер, Григорьева— менеджер. С точки зрения подготовки рассматриваемых специалистов для обучения по специальности менеджер наиболее подходят кандидаты: Петров, Иванов, Васильева и Григорьева; по специальности программист— те же кандидаты; по специальности водитель — Сидоров; по специальности секретарь — Иванов; по специальности переводчик — Сидоров и Васильева.
Альтернативные операции композиции двух бинарных нечетких отношений. Нечеткое бинарное отношение, заданное на декартовом произведении А1хАз и обозначаемое через Q**R, называется (max-*)-композицией бинарных нечетких отношений Q и К, если его функция принадлежности определяется следующим выражением:
ц^.^х,, хЛ>) = max (pat^,-, х^)*^^,, хл>)} (V<x„x*>€ Х1х¥з) (4.21) x7gX2
В частности, если в выражении (4.21) вместо операции "*" использовать операцию алгебраического умножения, то получим определение (max-prod)-композиции.
Проиллюстрируем результат (тах-ргоф-композиции нечетких отношений из примера 4.8. Эти нечеткие отношения удовлетворяют формальным требованиям, необходимым для выполнения их нечеткой (max-ргоф-композиции согласно (4.21). Результат операции нечеткой композиции может быть представлен в виде следующей таблицы (табл. 4.7).
Таблица 4.7. Нечеткая (max-prod)-композициядвух исходных отношений
Петров
Иванов
Сидоров
Васильева
Григорьева
Менеджер
0.81
0.90
0.72
0.81
0.90
Программист
0.72
0.64
0.56
0.72
0.80
Водитель
0.90
0.72
0.81
0.63
0.64
Секретарь
0.72
0.90
0.72
0.48
0.64
Переводчик
0.63
0.56
0.64
0.64
0.70
Анализ табл. 4.7 показывает, что имеющимся кандидатам можно порекомендовать обучение по следующим специальностям (на основе максимальных значений функции принадлежности композиции рассматриваемых нечетких отношений): Петров — водитель; Иванов — менеджер, секретарь; Сидоров — водитель; Васильева— менеджер, Григорьева— менеджер. С точки зрения подготовки рассматриваемых специалистов для обучения по специальности менеджер наиболее подходят кандидаты: Иванов и Григорьева; по специальности программист— Григорьева; по специальности водитель— Петров; по специальности секретарь — Иванов; по специальности переводчик — Сидоров и Васильева.
Примечание
Следуя общим рекомендациям прикладного системного анализа относительно принципа многомодельности, можно сделать следующий вывод. Если при использовании различных моделей получены одинаковые результаты, то этот факт может свидетельствовать о наличии устойчивой связи или закономерности между отдельными элементами моделей. Применительно к рассматриваемым нечетким моделям совпадение результатов, полученных на основе операций (тах-т1п)-композиции и (тах-ргоф-композиции, дает основание для более уверенных выводов относительно выбора тех или иных специальностей для обучения кандидатов.
Нечеткое отображение
Давая определение нечеткого отображения, следует иметь в виду, что, с одной стороны, оно является обобщением обычного теоретико-множественного отображения, а с другой стороны, частным случаем бинарного нечеткого отношения.
Нечеткое отображение. Бинарное нечеткое отношение Т=^<х„ х>, рД<х„ х>)}, заданное на декартовом произведении АлхА^, называется нечетким отображением, если для любого г^еАл существует не более одного элемента а^еХгс отличным от нуля значением функции принадлежности рД<х„х)>). Другими словами, каждому из элементов о, универсума Xi нечеткое отображение Т ставит в соответствие не более одного элемента Qj из универсума Хг, такого что рД<х„ xz>)>0. В этом случае говорят, что отображение ^действует из универсума Xi в универсум Х2. Для формальной записи нечеткого отображения используется обозначение, аналогичное обозначению обычного отображения: Т* X] —>Хг, при этом не исключается случай, когда АГ1=АГ2.
Нечеткая функция. Если в качестве универсумов Х\ и Хг рассматривать числовые множества, то соответствующее нечеткое отображение естественно назвать нечеткой функцией. В этом случае можно использовать общепринятый способ обозначения функциональной зависимости малыми латинскими буквами в форме/: Xi ->Хг.
Понятие нечеткого отображения допускает обобщение на декартово произведение произвольного конечного числа универсумов слева от стрелки. Поэтому в общем случае нечеткое отображение может быть записано в виде Т\ Х\хХгх...хХк —>Х и ставит в соответствие каждому кортежу <xi, хг,..., хк>е еХ1хХ2х...хХкне более одного элемента х из универсума X, для которого выполняется условие:
рД<Х1, хг,..., хк, х>)>0. (4.22)
Нечеткая алгебраическая операция. Аналогичным образом можно ввести понятие нечеткой алгебраической операции, которая является частным случаем нечеткого отображения, когда все универсумы Xi, Хг,..., Xk тожде-
ственно равны X. В этом случае нечеткая операция, точнее, нечеткая к-местная операция, может быть записана в форме Т: ХхХх...хХ-»Х.
Примечание
Для дальнейшего анализа нечетких отображений можно ввести в рассмотрение специальные нечеткие множества, которые по аналогии с обычными отображениями характеризуют особенности структурного строения нечетких отображений. Речь идет об области определения нечеткого отображения и области значений нечеткого отображения Т. В этом случае эти области естественно определить как обычные подмножества соответствующих универсумов, которые являются носителями нечеткого отношения, индуцируемого рассматриваемым нечетким отображением. Поскольку эти понятия довольно редко используются на практике, их формальные определения оставим читателям в качестве упражнения.
Принцип обобщения
в теории нечетких множеств
Пусть задано обычное отображение/: Ал хА^х...хХк ->Х, где Ал, Хг,...,Хк,Х — обычные конечные или бесконечные множества. Предположим, что на основе каждого из множеств Xi, Хг,..., Хк, используемых в качестве универсумов, заданы некоторые нечеткие множества^4i={x, p^i(x)}, 542={х, ц^2(х)},..., 9кк=^.х, рж(х)}.
Принцип обобщения утверждает, что отображение / и совокупность нечетких множеств Я1, 9кг,..., 9кк однозначным образом порождают нечеткое отображение Т: Х\хХгх...хХк —>Х, функция принадлежности которого определяется по следующей формуле:
рХ^ь *2,..., хк, х>) = min{p^i(xi), ^(хг),..., lWxA)} (4.23) для всех кортежей <xi,хг,..., хк, х>еХ\хХгх...хХкхХ, таких что х =X<xi,хг,...,хк>\ Действительно, согласно определению обычного отображения /каждому кортежу <xi, хг,..., хк>еХ\хХгх...хХк соответствует единственный элемент хеХ, который становится (А'+1)-м элементом кортежа <xi,X2,...,x\, х>, используемого для определения нечеткого отношения Т. При этом для всех остальных элементов уеХ, таких что у*х, очевидно p^<xi, хг,..., хк,у>) = 0. Последнее условие является достаточным для того, чтобы нечеткое отношение Т удовлетворяло определению нечеткого отображения (4.22).
Принцип обобщения может быть использован не только для задания нечетких отображений, но и, что более важно,— для формального определения различных нечетких конструкций, обобщающих известные теоретико-множественные понятия. Так, например, на его основе можно дать определение нечеткого декартова произведения нечетких множеств 9li, 9кг,..., 9кк. А именно, нечетким декартовым произведением нечетких множеств 9li, 9кг,..., 9кк, заданных на универсумах
Xi, Xi,...,Xk соответственно, называется такое нечеткое отношение V, которое обозначается через 9k\xg\ix...xgkk, а функция принадлежности которого определяется по формуле:
(4-24)(4-24)М<Л|,Х2,...,.¥л>) = min{p^l(Xl), ^(Хг),..., Цял-(А'а)}
(4-24)
(4-24)
(V<xi, Х2,..., x1>'eX\xXix...xX^.
Принцип обобщения будет также использован для определения операций с нечеткими числами и интервалами далее в главе 5.
Свойства бинарных нечетких отношений, заданных на одном универсуме
В контексте нечеткого моделирования наибольший интерес представляют такие свойства бинарных нечетких отношений, которые обобщают известные свойства обычных отношений. Интересуемыми нас свойствами являются рефлексивность, симметричность и транзитивность, поскольку эти свойства используются в дальнейшем при определении некоторых специальных типов бинарных нечетких отношений.
Рефлексивность. Бинарное нечеткое отношение Q = {<х„ х>, р$(<*р х)>)}, заданное на декартовом произведении ХхХ, называется рефлексивным, если для любого из кортежей <х„ х> выполняется равенство:
^<^7. ^,>) = 1 (Vx.gX). (4.25)
Как нетрудно заметить, все элементы главной диагонали матрицы рефлексивного бинарного нечеткого отношения с конечным универсумом равны 1.
Возвращаясь к рассмотренным выше примерам, можно утверждать, что нечеткое отношение di из примера 4.1 является рефлексивным.
Антирефлексивность. Бинарное нечеткое отношение Q = {<х„х>, ц^(<х„х/>)}, заданное на декартовом произведении ХхХ, называется антиреф- лексивным, если для любого из кортежей <х„ х,> выполняется равенство:
Це^х',, х,>) = 0 ^/х^Х). (4.26)
Как нетрудно заметить, все элементы главной диагонали матрицы антирефлек- сивного бинарного нечеткого отношения с конечным универсумом равны 0. Поэтому нечеткое отношение 62 из примера 4.2 является антирефлексивным.
Симметричность. Бинарное нечеткое отношение Q=(<x„x/>, ц<э(<х„ х>)}, заданное на декартовом произведении ХхХ, называется симметричным, если для любого из кортежей <х„ х> выполняется равенство:
ц<9(<х„ х>) = цв(<х/, х,>) (V<x„ х^еХхА^. (4.27) Следует заметить, что матрица симметричного бинарного нечеткого отношения с конечным универсумом симметрична относительно главной диагонали. Это подтверждает нечеткое отношение Qi из примера 4.1, которое является симметричным.
Асимметричность. Бинарное нечеткое отношение 0={<х„х)>, to(<x,-, х>)}, заданное на декартовом произведении ХхХ, называется асимметричным, если выполняется следующее условие:
minfp^CXi, х>), Цй(<х/, х>)} = 0 (V<x,-, х>еХхХ). (4.28) Следует заметить, что все элементы главной диагонали матрицы асимметричного бинарного нечеткого отношения с конечным универсумом равны 0. В дополнение к этому один из двух (а может быть и оба) симметричных относительно главной диагонали элементов должен быть равен 0. Нечеткое отношение Qi из примера 4.2 является асимметричным, что непосредственно следует из определения его функции принадлежности.
Антисимметричность. Бинарное нечеткое отношение Q = {<х„ х;>, ^(сх,-, х>)}, заданное на декартовом произведении ХхХ, называется антисимметричным, если выполняется следующее условие:
(4-29)(4-29)minfp^x,., х>), ^«х,, х>)} = 0(V<x„ xj> еХхХ, причем х, *х^.
(4-29)
(4-29)
Как не трудно заметить, антисимметричность является более слабым свойством, чем асимметричность. Для выполнения этого свойства требуется лишь, чтобы один из двух (а может быть и оба) симметричных относительно главной диагонали элементов матрицы соответствующего бинарного нечеткого отношения был равен 0. Нечеткое отношение Ch из примера 4.2 также является и антисимметричным, что непосредственно следует из определения его функции принадлежности.
(430)(430)Транзитивность. Бинарное нечеткое отношение б ={<х/> xj>, ц^(<х„ х>)}, заданное на декартовом произведении ХхХ, называется транзитивным, если выполняется следующее условие:
(430)
(430)
Pq(<a-„ xk>)> max {min{M<x„ х;>), М^д хк>^} х,еХ
(Vx,-, Xj, xkeX).
(4.31)(4.31)Нечеткое отношение Ch из примера 4.2 также является транзитивным, поскольку его функция принадлежности монотонно возрастает относительно разности х.-ху Котранзитивность. Бинарное нечеткое отношение Q={<x„ х>, Pq(<x„ х>)}, заданное на декартовом произведении ХхХ, называется котранзи- тивным, если выполняется следующее условие:
(4.31)
(4.31)
р<9(<х„ хд>)< min {max {pQ(<x,, х>), ^(<хь хЛ>)}} х^Х
(Vx,, Xj, xteX\
Примечание
Непосредственная проверка свойств транзитивности и котранзитивности для конкретных нечетких отношений представляется довольно трудоемкой процедурой,
поскольку требует большого числа попарных сравнений вида (4.30) и (4.31). Более конструктивным представляется способ эмпирического установления данных свойств на основе выполнения операции нечеткого транзитивного замыкания соответствующего нечеткого отношения, о котором пойдет речь в завершение этого раздела.
Сильная полнота. Бинарное нечеткое отношение Q ={<х„х>, р^<хь х>^, заданное на декартовом произведении ХхХ, называется сильно полным, если выполняется следующее условие:
(4.32)(4.32)тах^^х/»), ца(<х/,х,>)} = I(V<x„ х>еХхХ).
(4.32)
(4.32)
Нечеткие отношения Qi из примера 4.1 и Ch из примера 4.2 не являются сильно полными, поскольку для первого из них только элементы главной диагонали матрицы этого отношения равны 1, а второе вообще является субнормальным.
Слабая полнота. Бинарное нечеткое отношение О = {<х,-, х>, Ца(<х,., х)>)}, заданное на декартовом произведении ХхХ, называется слабо полным (линейным или связным), если выполняется следующее условие:
(4.33)(4.33)тах{р<9(<х„ ху>), М<хЛ х>)}> 0(V<x„ х^еХхУ, причем х.^х,).
(4.33)
(4.33)
Нечеткое отношение Ch из примера 4.2 является слабо полным, поскольку для всех кортежей <х„х>еХхХ, таких что х;>х,, по определению функции принадлежности (4.2) pqi^x;, х,>)>0. Нечеткое отношение 61 из примера 4.1 не является слабо полным.
Операция транзитивного замыкания бинарного нечеткого отношения
Рассмотрим произвольное конечное бинарное нечеткое отношение Q={<x„x,>, Ho(<x„х,>)}, заданное на одном базисном множестве X. В основе операции транзитивного замыкания лежит определенная выше операция (max-min)-KOMno- зиции (4.17) произвольных бинарных нечетких отношений.
Транзитивное замыкание бинарного нечеткого отношения. Транзитивным замыканием бинарного нечеткого отношения Q, заданного на конечном универсуме X, называется такое бинарное нечеткое отношение QT={<х„ Х/>, ^Т(<х„ х^)}, которое задано на том же универсуме, а его функция принадлежности определяется следующим выражением:
РоТ(<хн xk>) = max (mining<х„ x,i>), ^(<^1, х/2>),..., ^Vp1?)}}
х/1,х/2,...,хм_1еХ
(4.34)(4.34)(V<x„ xk>g ХхХ, Vke {1, 2,..., л}, где л=саг<1(Л0).
(4.34)
(4.34)
Определенную таким образом операцию транзитивного замыкания бинарного нечеткого отношения также называют (max-min)-транзитивным замыканием (максиминным транзитивным замыканием).
Можно показать, что транзитивное замыкание произвольного конечного бинарного нечеткого отношения, заданного на одном универсуме, всегда обладает свойством транзитивности.
Для практического выполнения операции транзитивного замыкания бинарного нечеткого отношения удобно использовать представление данного отношения в форме матрицы М^. В этом случае результат операции транзитивного замыкания бинарного нечеткого отношения также представляется в форме соответствующей матрицы Mq^, которая может быть получена по следующей формуле:
Мот= MqvMq2vMq3v...Mq*...(4.35)
где через Mq*' обозначена k-степень композиции матрицы Му данного нечеткого отношения. При этом ^-степень матрицы бинарного нечеткого отношения определяется рекуррентно следующим выражением:
М^ =МО ОМ^"1(4.36)
для любого натурального /<>1.
При этом имеет место замечательное свойство, которое существенно упрощает численные расчеты, связанные с выполнением операций (4.35) и (4.36). А именно, для получения матрицы транзитивного замыкания бинарного нечеткого отношения Мудостаточно ограничиться выполнением одного из следующих условий:
если для некоторого натурального к при условии 1 < к < п, где п = card (А), выполнено равенство МОЛ =Мв*_|, то дальнейшие расчеты степеней композиции матрицы исходного нечеткого отношения можно прекратить, а матрица транзитивного замыкания рассматриваемого нечеткого отношения будет равна:
Мот= MyvM^vMy-V . ,Мак(4.37)
выражение (4.37) всегда имеет место при /с=н, где n=card(A).
Пример 4.9. В качестве примера использования операции транзитивного замыкания нечеткого отношения рассмотрим так называемую задачу анализа эффективности коммуникации, известную также как задача распространения слухов среди хорошо знакомых между собой людей.
С этой целью рассмотрим в качестве исходного универсума X={xi, хг, хз,..., х„} некоторую совокупность людей. Определим на этом универсуме бинарное нечеткое отношение 'Н, которое содержательно описывает условие: "человек х, хорошо знаком с человеком х". По определению есть все основания считать это нечеткое отношение рефлексивным и симметричным. Однако в общем случае данное нечеткое отношение не является транзитивным, поскольку факт знакомства имеет место в основном между парами людей. Предположим, нас интересует потенциальная возможность передачи информации или распространения слухов среди рассматриваемой совокупности людей. Оказывается, эта задача может быть решена применением операции нечеткого транзитивного замыкания данного нечеткого отношения.
" 10.8 0.40.2 0 "
0.8 10.1 0.70.2
следующей матрицей М-я= М =
0.40.110.60.5
0.20.70.610
00.20.501
Для простоты, пусть Х=^Х\, Х2, Хз, Х4, Л-5}
Для получения матрицы транзитивного замыкания
ношения последовательно найдем матрицы:
" 1
0.8
0.4
0.7
0.4"
0.8
1
0.6
0.7
0.2
0.4
0.6
1
0.6
0.5
М2=М®М =
0.7
0.7
0.6
1
0.5
0.4
0.2
0.5
0.5
1
" 1
0.8
0.6
0.7
0.4
0.8
1
0.6
0.7
0.5
0.6
0.6
1
0.6
0.5
М3= М ® М2 =
0.7
0.7
0.6
1
0.5
0.4
0.5
0.5
0.5
1
' 1
0.8
0.6
0.7
0.5"
0.8
1
0.6
0.7
0.5
М4=М®М3 =
0.6
0.6
1
0.6
0.5
0.7
0.7
0.6
1
0.5
0.5
0.5
0.5
0.5
1
" 1
0.8
0.6
0.7
0.5"
0.8
1
0.6
0.7
0.5
М5=М®М4 =
0.6
0.7
0.6
0.7
1
0.6
0.6
0.5
0.5
I
0.5
0.5
0.5
0.5
1
и нечеткое отношение 77 заданои нечеткое отношение 77 заданоэтого нечеткого отэтого нечеткого отНаконец, можно записать матрицу транзитивного замыкания нечеткого отношения *Н, которую получим с использованием выражения: Мт= Mv M2v M3vM4 (заметим, что М4= М5).
и нечеткое отношение 77 задано
и нечеткое отношение 77 задано
этого нечеткого от
этого нечеткого от
" 10.8 0.6 0.7 0.5'
0.8 10.6 0.7 0.5
мт=
0.60.610.60.5
0.70.70.610.5
0.50.50.50.51
Анализ этой матрицы показывает, что любой слух достаточно "быстро" распространится среди всех без исключения людей рассматриваемой совокупности. Следует отметить, что при этом некоторые из них могут быть даже не знакомы между собой (например, лз и xs).
Примечание ^
Наряду с максиминным транзитивным замыканием бинарного нечеткого отношения можно определить также (тах-ргоб)-транзитивное замыкание. В этом случае, как не трудно предположить, в качестве композиции используется (тах- ргос!)-композиция нечетких отношений, определяемая выражением (4.21). Проверку свойств (гпах-ргос!)-транзитивного замыкания бинарного нечеткого отношения, заданного на одном конечном универсуме, предоставляем заинтересованным читателям в качестве упражнения.
Некоторые специальные виды нечетких бинарных отношений, заданных на одном базисном множестве
Как и в случае обычных отношений, совместное наличие нескольких свойств может характеризовать общий вид того или иного бинарного нечеткого отношения.
Нечеткое отношение частичного строгого порядка. Бинарное нечеткое отношение 6 ={<х„ Лу>, Цй(<х„ ху>)}, заданное на декартовом произведении ХхХ, называется нечетким отношением частичного строгого порядка, если оно одновременно является антирефлексивным, асимметричным и транзитивным.
Нечеткое отношение линейного строгого порядк а. Нечеткое отношение частичного строгого порядка, которое дополнительно удовлетворяет условию слабой полноты, называется нечетким отношением линейного строгого порядка.
Например, нечеткое отношение Ch из примера 4.2 является отношением линейного строгого порядка, поскольку, как было отмечено выше, оно удовлетворяет условиям антирефлексивности, асимметричности, транзитивности и слабой полноты. Что касается нечеткого отношения Qi из примера 4.1, то оно не является нечетким отношением строгого порядка.
Нечеткое отношение толерантности. Бинарное нечеткое отношение 6 = {<%,, х>, РйС^о л)>)}, заданное на декартовом произведении ХхХ, называется отношением толерантности, если оно является рефлексивным и симметричным. Нечеткое отношение толерантности также называют отношением нечеткого сходства, поскольку оно используется для содержательного представления попарного подобия или похожести различных объектов между собой.
Иллюстрацией нечеткого отношения толерантности может служить нечеткое отношение *Н из примера 4.9, представляющее хорошо знакомых между собой людей.
Нечеткое отношение толерантности тесно связано с так называемым нечетким покрытием нечеткого множества.
Нечеткое покрытие нечеткого множества. Система нечетких подмножеств 3(Я)={ЯЛ.|ЯА.сЯ} нечеткого множества Я называется нечетким покрытием, если выполняется следующее условие:
(J 9Vk = 9k,(Я,еЗ),(4.38)
к
т. е. объединение всех (или части) подмножеств из 3(Я) совпадает (или "покрывает") с исходным нечетким множеством Я.
Примечание
Используя принцип обобщения теории нечетких множеств, можно показать, что нечеткое отношение толерантности порождает некоторое нечеткое покрытие 3(Я)=(Я/с| Я* с Я} нечеткого множества Я, если в качестве нечетких подмножеств Я* с Я взять двухэлементные нечеткие множества Яа={х,, ху}, совокупность всех кортежей которых удовлетворяет условиям нечеткой рефлексивности и симметричности.
Нечеткое отношение эквивалентности. Бинарное нечеткое отношение Q ={<х„ xz>, pQ(<x„ лу>)}, заданное на декартовом произведении ХхХ, называется нечетким отношением эквивалентности, если оно одновременно является рефлексивным, симметричным и транзитивным.
Иллюстрацией нечеткого отношения эквивалентности может служить транзитивное замыкание нечеткого отношения (Н из примера 4.9, представляющее хорошо знакомых между собой людей.
Нечеткое отношение эквивалентности тесно связано с так называемым нечетким разбиением нечеткого множества.
Нечеткое разбиение нечеткого множества. Система нечетких подмножеств 91(Я)=(ЯЛ.| Якс_ Я} нечеткого множества Я называется нечетким разбиением, если выполняются следующие условия:
U Я,= Я, (Я,еЖ); (4.39)
■ к
Нс<\, где С=Я/пЯ„„(УЯ/, Я„,е91). (4.40)
Другими словами, объединение всех (или части) нечетких подмножеств из Э?^) совпадает (или "покрывает") с исходным нечетким множеством 51, при этом высота попарного пересечения любых нечетких подмножеств нечеткого разбиения строго меньше единицы. Нетрудно заметить, что нечеткое разбиение является нечетким покрытием, которое дополнительно удовлетворяет свойству нечеткой транзитивности.
Примечание j
Используя принцип обобщения теории нечетких множеств, можно показать, что нечеткое отношение эквивалентности порождает некоторое нечеткое разбиение 91(51)={51л| 51л с 5Q нечеткого множества 51, если в качестве нечетких подмножеств 51лс51 взять нечеткие множества 51*. кортежи всех попарных элементов которых удовлетворяют условиям нечеткой рефлексивности, симметричности и транзитивности.
Дальнейшее рассмотрение концепций теории нечетких множеств связано с изучением специальных случаев нечетких множеств, которые представляют собой лингвистические переменные, а также нечеткие числа и интервалы. Эти понятия и их основные свойства будут рассмотрены в следующей главе.
Глава 5
Нечеткая и лингвистическая переменные. Нечеткие величины, числа и интервалы
Рассмотренное выше понятие нечеткого множества допускает различные уточнения, которые целесообразно использовать для более адекватного отражения семантики неопределенности при построении нечетких моделей сложных систем. Одним из таких уточнений является понятие лингвистической переменной, которое широко используется в нечетком управлении для представления входных и выходных переменных управляемой системы. В этой главе также будут рассмотрены нечеткие аналоги обычных чисел и интервалов, которые оказываются весьма удобным средством для численных расчетов значений соответствующих функции принадлежности при выполнении арифметических операций.
Определения нечеткой и лингвистической переменных
Нечеткая переменная. Нечеткая переменная определяется как кортеж: <а, X, ЗК>, где а — наименование или название нечеткой переменной; X — область ее определения (универсум); 51={х, ц^(х)}— нечеткое множество на X, описывающее возможные значения, которые может принимать нечеткая переменная а. Таким образом, говоря о нечеткой переменной а, мы всегда будем иметь в виду некоторое нечеткое множество 51, которое определяет ее возможные значения.
В качестве примера нечеткой переменной можно привести рассмотренное в главе 2 нечеткое множество S, которое характеризует "горячий кофе" (см. пример 2.2). В этом случае соответствующая нечеткая переменная может быть представлена следующим образом: <Горячий кофе, {х | О °C < х< 100 °C}, £>, где S={x, ц$(х)} — нечеткое множество с функцией принадлежности цв(х), которая может быть задана, в частности, графически (рис. 2.4, а или рис. 2.4, б).
Обобщением нечеткой переменной является так называемая лингвистическая переменная.
Лингвистическая переменная. Лингвистическая переменная также определяется как кортеж: <Р, Т, X, G, М>, где:
Р — наименование или название лингвистической переменной;
Т — базовое терм-множество лингвистической переменной или множество ее значений (термов), каждое из которых представляет собой наименование отдельной нечеткой переменной а;
X — область определения (универсум) нечетких переменных, которые входят в определение лингвистической переменной (3;
G — некоторая синтаксическая процедура, которая описывает процесс образования или генерирования из множества Т новых, осмысленных в рассматриваемом контексте значений для данной лингвистической переменной;
М— семантическая процедура, которая позволяет поставить в соответствие каждому новому значению данной лингвистической переменной, получаемому с помощью процедуры G, некоторое осмысленное содержание посредством формирования соответствующего нечеткого множества.
Пример 5.1.В качестве примера рассмотрим ситуацию со скоростью движения автомобильного транспорта в пределах городской черты. Хотя правила дорожного движения регламентируют величину этой скорости, однако многие автолюбители предпочитают давать собственную субъективную оценку своей скорости движения. При этом используются такие определения, как "малая скорость", "средняя скорость" и "высокая скорость" движения. Очевидно, что подобная практическая оценка скорости может относиться к диапазону скоростей в пределах интервала от 0 км/ч до некоторой величины, определяемой личными предпочтениями того или иного водителя. Пусть в нашем примере из соображений удобства это будет величина 100 км/ч.
Формализация субъективной оценки скорости движения может быть выполнена с помощью следующей лингвистической переменной <Рi, Т, X, G, М >, где
Pi — скорость движения автомобиля;
Т = {"малая скорость", "средняя скорость", "высокая скорость"};
□ Х=[0,100];
G — процедура образования новых термов с помощью связок логических связок "И", "ИЛИ" и модификаторов типа "очень", "НЕ", "слегка" и др. Например: "малая или средняя скорость", "очень высокая скорость" и др.;
М— процедура задания на А=[0, 100] нечетких переменных ш= "малая скорость", аг= "средняя скорость", аз = "высокая скорость", а также соответствующих нечетких множеств для термов из G(7) в соответствии с правилами трансляции нечетких связок и модификаторов "И", "ИЛИ", "НЕ", "очень", "слегка".
Примечание j
Конкретные процедуры G и М будут рассмотрены нами далее в главе 6, посвященной изложению основ нечеткой логики. Применительно к данному конкретному примеру можно ограничиться предположением об их тривиальном характере, т. е. никаких логических связок и модификаторов мы не будем использовать.
Для рассматриваемого примера нечеткие множества .Я,, Я2, .Яз, соответствующие нечетким переменным: си = "малая скорость", «2= "средняя скорость", «з= "высокая скорость", удобно задать графически с помощью кусочнолинейных функций принадлежности. Один из возможных конкретных вариантов этих нечетких множеств изображен на рис. 5.1.
Рис. 5.1. Графики функций принадлежности нечетких множеств Ль Лг, Лз, соответствующих нечетким переменным «1= "малая скорость" (а), аг = "средняя скорость" (б), аз= "высокая скорость" (в) для лингвистической переменной Рт (скорость движения автомобиля)
Иногда для наглядности графики функций принадлежности нескольких нечетких переменных, используемых для задания одной лингвистической переменной, изображают на одном рисунке. Применительно к примеру 5.1 все три графика представлены на рис. 5.2, что позволяет сравнивать значения функций принадлежности соответствующих нечетких переменных для различных значений универсума.
Рис. 5.2. Графики функций принадлежности нечетких множеств Я^ Лг, ^з, изображенные на одном рисунке
Примечание
Наряду с рассмотренными выше базовыми значениями лингвистической переменной "скорость движения автомобиля" (Г =^" малая скорость", "средняя скорость", "высокая скорость"}) возможны и другие значения этой же лингвистической переменной, зависящие от конкретной величины скорости движения. Например, могут быть определены такие дополнительные значения лингвистической переменной "скорость движения автомобиля", как "около 30 км/ч", "около 50 км/ч", "около 70 км/ч". Как будет видно из дальнейшего изложения, эти значения лингвистической переменной удобно моделировать с помощью нечетких чисел.
Нечеткие величины, числа и интервалы
Процесс нечеткого моделирования основывается на количественном представлении входных и выходных переменных системы в форме нечетких множеств. Такое представление связано с рассмотрением специальных нечетких множеств, которые задаются на множестве действительных чисел и обладают некоторыми дополнительными свойствами. Наиболее общим понятием в этом контексте является понятие нечеткой величины.
Нечеткая величина. Нечеткой величиной называется произвольное нечеткое множество 53= {х, ц^)}, заданное на множестве действительных чисел R, т. е. для которого универсумом X служит все множество 4?. Другими словами, функция принадлежности нечеткой величины есть отображение ^(л): #?—>[0,1]. Если в качестве универсума взять подмножество неотрицательных действительных чисел 0?+, то получим определение неотрицательной нечеткой величины ‘В*.
Примерами нечетких величин являются нечеткие множества, функции принадлежности которых изображены на рис. 2.11—2.18. Более того, все эти нечеткие величины являются неотрицательными. С другой стороны, рассмотренные в примерах 2.1 и 2.3 нечеткие множества не являются нечеткими величинами.
Наибольший интерес для нечеткого моделирования представляет конкретизация нечеткой величины в форме нечетких чисел и интервалов.
Нечеткий интервал. В общем случае нечетким интервалом называется нечеткая величина с выпуклой функцией принадлежности.
Примерами нечетких интервалов могут служить нечеткие множества с функциями принадлежности, изображенными на рис. 2.9, а, 2.10, а и 2.11, б, а также на рис. 2.12—2.16. С другой стороны, нечеткое множество с функцией принадлежности, изображенной на рис. 2.10, б, не является нечетким интервалом.
Примечание
В литературе нечеткий интервал иногда называют также толерантным нечетким числом.
Нечеткое ч и с л о. В общем случае нечетким числом называется такая нечеткая величина, функция принадлежности которой является выпуклой и унимодальной.
Примерами нечетких чисел могут служить нечеткие множества с функциями принадлежности, изображенными на рис. 2.10, а, 2.11, а и 2.18, б. С другой стороны, нечеткое множество с функцией принадлежности, изображенной на рис. 2.10, б, не является нечетким интервалом. Как видно из этих примеров, нечеткое число в общем случае является частным случаем нечеткого интервала, что полностью согласуется с обычными числами и интервалами на множестве действительных чисел.
Примечание
При общем определении нечеткого интервала и нечеткого числа не делается никаких предположений относительно нормальности соответствующих нечетких множеств. С другой стороны, функции принадлежности нечетких чисел и интервалов, вообще говоря, могут и не иметь аналитического представления. Все это затрудняет практическое использование этих общих понятий для решения конкретных задач нечеткого моделирования. По этой причине в дальнейшем рассматриваются некоторые способы уточнения данных понятий на основе использования типовых функций принадлежности.
Поскольку нечеткие числа и интервалы представляют собой нечеткие множества, то для них оказываются справедливыми все свойства и операции, определенные ранее для нечетких множеств. Это в полной мере относится к определению нормального нечеткого числа и нормального нечеткого интервала, носителя и ядра, а также свойств выпуклости и унимодальности нечетких чисел и нечетких интервалов, которые были использованы при их определении (см. главы 2 и 3).
Дополнительно нечеткие числа могут характеризоваться следующими свойствами.
Нечеткий нуль. Нечеткое число называется нечетким нулем, если его модальное значение (мода) равно 0.
Положительное (отрицательное) нечеткое число. Нечеткое число называется положительным (или отрицательным) нечетким числом, если оно имеет строго положительный (соответственно, строго отрицательный) носитель.
Операции над нечеткими числами и интервалами
Для нечетких чисел и интервалов в общем случае с использованием принципа обобщения (4.23) могут быть определены аналоги обычных арифметических операций. В этом случае расширенные бинарные арифметические операции (сложение, вычитание, умножение и деление) для нечетких чисел и интервалов определяются через соответствующие операции для обычных действительных чисел.
Пусть 51 и S— произвольные нечеткие числа (нечеткие интервалы) с функциями принадлежности Ця(х) и рв(р) соответственно.
Сложение. Операция сложения нечетких чисел (интервалов) обозначается через 51+28 = С ={z, Цс(г)}> гДе функция принадлежности результата pc(z) определяется по формуле:
Hc(z)= sup {шт{ця(х), цвО)}}.(5.1)
z=x+y
Вычитание. Операция вычитания нечетких чисел (интервалов) обозначается через 51-23 = C={z, ^^(z)}, где функция принадлежности результата p<-(z) определяется по формуле:
Мс(2)= sup {min{p^(x),ps(»}}.(5.2)
z=x-y
Умножение. Операция умножения нечетких чисел (интервалов) обозначается через 51*23= С = {z, Цс(2)}> гДе функция принадлежности результата Цс(2) определяется по формуле:
Деление. Операция деления нечетких чисел (интервалов) обозначается через J44-S = С = {z, pc(z)}, где функция принадлежности результата pc(z) определяется по формуле: ■
РсС0 = sup {min{g^U), ^(y)}}- ' (5.4) z=x-$-y
В выражениях (5.1)—(5.4) справа от знака равенства супремум берется по каждому из совокупности значений элементов универсума, которые в свою очередь являются результатом соответствующей обычной арифметической операции над численными значениями элементов универсума исходных нечетких чисел (интервалов).
Например, пусть задано нечеткое число — "нечеткая единица", которое описывается следующим конечным нечетким множеством: /"={<0, 0.2>, <1, 1.0>, <2,0.2>).
Рассмотрим выполнение нечеткой операции сложения— "нечеткая единица" плюс "нечеткая единица" с использованием формулы (5.1). Последовательно получим: J+ Z={<0,0.2>, <1,1.0>, <2,0.2>}+{<0,0.2>, <1,1.0>, <2,0.2>}={<0, min{0.2,0.2}>, <1, max (min (0.2,1.0}, min {1.0,0.2} }>, <2,max{min{0.2,0.2}, min{1.0,1.0}, min {0.2,0.2} }>, <3,max{min{1.0,0.2},min{0.2,1.0}}>, <4,min{0.2,0.2}>} ={<0,0.2>, <l,0.2>, <2,1.0>, <3,0.2>, <4,0.2>}.
Возможно, операция сложения нечетких чисел станет более понятной, если принять во внимание, что значения результата получаются как различные комбинации слагаемых обычной арифметической операции сложения: 0=0+0, 1 =0+1 = 1+0, 2=0+2= 1 +1 =2+0, 3=1+2=2+1, 4=2+2. Очевидно, что для конечных множеств вместо операции супремум можно использовать операцию максимум. Полученное в результате нечеткое число можно назвать "нечеткая двойка".
Аналогичным образом можно получить другое нечеткое число— "нечеткий нуль", как результат выполнения операции разности с использованием формулы (5.2). В этом случае получим: "нечеткий нуль" равен "нечеткая единица" минус "нечеткая единица" или I - J={<0,0.2>, <1, 1.0>, <2, 0.2>}-{<0, 0.2>, <1, 1.0>, <2,0.2>} = {<-2, min{0.2,0.2}>, <-1, max{min{0.2, 1.0}, min{1.0,0.2}}>, <0, max{min{0.2,0.2}, min{1.0,1.0}, min{0.2,0.2}}>, <1, max{min{1.0,0.2}, min{0.2,1.0}}>, <2, min{0.2, 0.2}>} = {<-2, 0.2>, <1,0.2>, <0, 1.0>, <1,0.2>, <2, 0.2>}.
Иногда могут представлять интерес операции расширенного максимума и расширенного минимума нечетких чисел (интервалов), которые определяются следующим образом.
Расширенный максимум. Операция расширенного максимума нечетких чисел (интервалов) обозначается через max{54,53} = С= {z, p<;(z)}, где функция принадлежности результата ЦсСО определяется по формуле:
. РсС0 = sup {min{^(A),ps(y)}}. (5.5) ;=тах{х, у^
(5:6)(5:6)Расширенный минимум. Операция расширенного минимума нечетких чисел (интервалов) обозначается через min{54, S} = С= ^ Pc(z)), где функция принадлежности результата pc(z) определяется по формуле:
(5:6)
(5:6)
Hc(z) = sup {тш{цяЮ, Ps(y)}L z=min{x, у}
Например, пусть задано два нечетких числа— "нечеткая единица" и "нечеткий нуль", которые описываются следующими конечными нечеткими множествами: /={<0, 0.2>, <1, 1.0>, <2, 0.2>} и О ={<—1,0.1>, <0, 1.0>, <1,0.1>}. Рассмотрим выполнение нечеткой операции расширенного максимума с использованием формулы (5.5). Последовательно получим: max{Z,(9} = {<0, max{min{0.2, 0.1}, min{0.2,1.0}}>, <1, max (min (1.0,0.1}, min{1.0,1.0}, min{1.0,0.1}, min{0.2,1.0}}>, <2,max{min{0.2, 0.1}, min{0.2,1.0}, min{0.2,0.1}}>} = {<0,0.2>, <1,1.0>, <2,0.2>}, т.е. результат равен "нечеткой единице".
При этом значения результата получаются как различные комбинации операции обычного максимума над парами значений исходных нечетких множеств: 0 = тах{0, -1} = тах{0, 0}, 1= тах{1, -1} = тах{1, 0} = max {1, 1} = тах{0, 1}, 2 = тах{2, -1}= тах{2, 0} = тах{2, 1}.
Аналогичным образом для этого примера можно выполнить нечеткую операцию расширенного минимума с использованием формулы (5.6). Последовательно получим: min{I,O} = {<-1, max{min{0.2, 0.1}, min{1.0, 0.1}, min{0.2, 0.1}}>, <0, max(min{0.2, 1.0},min{0.2,0.1}, min{0.2,1.0},min{1.0,1.0}}>, <l,max{min{1.0,0.1}, min{0.2,0.1}}>} = {<-1,0.1>, <0, 1.0>, <1,0.1>}, т. e. результат равен "нечеткому нулю".
Нечеткие числа и интервалы в форме (£-Я)-функций
Нечеткие числа и интервалы, которые наиболее часто используются для представления нечетких множеств в нечетком моделировании, являются нормальными. Однако данные выше определения нечеткого числа и нечеткого интервала слишком общие, что затрудняет их практическое использование. С вычислительной точки зрения удобно использовать более конкретные определения нечетких чисел и интервалов в форме аналитической аппроксимации с помощью так называемых (L-R)-функций. Получаемые в результате нечеткие числа и интервалы в форме (L-R) -функций позволяют охватить достаточно широкий класс конкретных функций принадлежности.
Функции L- т и п а и R- т и п а. Функция L-muna (а также и R-muna), в общем случае определяется как произвольная функция £: IR->[0,1] и R: №->[0, 1], заданная на множестве действительных чисел, невозрастающая на подмножестве неотрицательных чисел №и удовлетворяющая следующим дополнительным условиям:
(5-7)(5-7)L(-x)= Цх),R(-x)=R(x) — условие четности-.
(5-7)
(5-7)
£(0) = /?(0) = 1 —условие нормирования. (5.8)
Примечание
Иногда в литературе можно встретить еще одно условие, которому должны, по мнению некоторых авторов, удовлетворять функции (L-R)-Tnna: ЦТ) = R(1) = 0. Поскольку с одной стороны это условие существенно ограничивает класс функций (L-R)-Tnna, а с другой стороны, рассматриваемые ниже треугольные нечеткие числа и трапециевидные нечеткие интервалы согласуются с выполнением этого свойства, мы не будем его включать в определение функций (L-R)-™na.
Как нетрудно заметить, рассмотренные ранее в главе 2 треугольная функция принадлежности /д(х: а, Ь, с) при Ь- 0 и а = -с (2.8), трапециевидная функция принадлежности /т(х; a, b, с, d) при а = -d и с = -Ь (2.9), а также /7-образные функции принадлежности (2.19)—(2.22), симметричные относительно оси ординат, являются функциями (£-/?)-типа, поскольку удовлетворяют условиям определения (5.7)—(5.8).
Примерами £-функций и, соответственно, /?-функций являются также следующие функции, которые в общем случае могут быть заданы аналитически в виде:
/(х) = е 1 1 ;/(х) = е 1 1 ;/М =/М =(5-9)(5.Ю)(5-9)(5.Ю)
/(х) = е 1 1 ;
/(х) = е 1 1 ;
/М =
/М =
(5-9)
(5.Ю)
(5-9)
(5.Ю)
где р— некоторый параметр, который удовлетворяет условию: р>0. Графики функций этого вида для конкретного значения параметра р=2 изображены на рис. 5.3.
если х < а;если х < а;если х > а,если х > а,Нечеткое число (L-R)-t и п а. Нечетким числом (L-R)-muna будем называть нечеткую величину 53= (х, ^(х)}, функция принадлежности которой может быть представлена в форме композиции некоторой £-функции и некоторой R- функции в следующем виде:
если х < а;
если х < а;
если х > а,
если х > а,
(5.П)
где а>0 и р>0. При этом параметр а является модой или модальным значением нечеткого числа, а параметры аир являются левым и правым коэффициентами нечеткости соответственно. Как видно из этого определения, при задании нечетких чисел (£-/?)-типа могут использоваться, вообще говоря, две различные функции указанного вида, что существенно расширяет диапазон их возможных представлений.
Из данного определения следует, что нечеткое число (£-/?)-типа с функцией принадлежности цв(х) при фиксированных L и R функциях вполне определяется тройкой своих параметров <а, а, р>, что оказывается весьма удобным для выполнения операций с подобными числами. Чтобы отметить тот факт, что нечет-
кое число является (£-/?)-типа, будем его обозначать специальным образом: ^lr -<<i, а, Р>£Д. Расширением понятия нечеткого числа (£-/?)-типа является понятие нечеткого интервала (£-/?)-типа.
Рис. 5.3. Графики /.-функций и Я-функций, заданных формулами (5.9) (а) и (5.10) (б) соответственно, для значения параметра р=2Рис. 5.3. Графики /.-функций и Я-функций, заданных формулами (5.9) (а) и (5.10) (б) соответственно, для значения параметра р=2
Рис. 5.3. Графики /.-функций и Я-функций, заданных формулами (5.9) (а) и (5.10) (б) соответственно, для значения параметра р=2
Рис. 5.3. Графики /.-функций и Я-функций, заданных формулами (5.9) (а) и (5.10) (б) соответственно, для значения параметра р=2
Нечеткий интервал (£-/?)-т и п а. Нечетким интервалом (L-R)-muna будем называть нечеткую величину 58= {х, Цй(л)}, функция принадлежности которой может быть представлена в форме композиции некоторой £-функции и некоторой /^-функции в следующем виде:
если х<а;если х<а;ЦаС^-) —" LЦаС^-) —" Lесли а< х <Ь;если а< х <Ь;(5.12)(5.12)если х > Ь,если х > Ь,
если х<а;
если х<а;
ЦаС^-) —" L
ЦаС^-) —" L
если а< х <Ь;
если а< х <Ь;
(5.12)
(5.12)
если х > Ь,
если х > Ь,
где а>0 и р>0. При этом параметры а и b определяют ядро нечеткого интервала (« < 6) и называются соответственно нижним и верхним модальными значениями нечеткого интервала. Параметры аир по-прежнему называются левым и правым коэффициентами нечеткости соответственно. Следует отметить, что нечеткий интервал (£-/?)-типа часто называют толерантным нечетким числом (£-/?)-типа.
Функция принадлежности цв(х) нечеткого интервала (£-/?)-типа при фиксированных L и R функциях вполне определяется четверкой своих параметров <а, Ь, а, р>, что оказывается весьма удобным для выполнения операций с подобными интервалами. Чтобы отметить тот факт, что нечеткий интервал является (£- /?)-типа, будем его обозначать специальным образом: BLR=<a, b, а, р>£й.
Из определений (5.11) и (5.12) видно, что при задании нечетких чисел и интервалов (£-/?)-типа могут использоваться две различные функции указанного вида. При этом в случае равенства параметров а=Ь нечеткий интервал (£-/?)-типа превращается в нечеткое число (£-/?)-типа.
В качестве примеров введенных в рассмотрение понятий можно привести конкретное нечеткое число (£-/?)-типа ‘BLR=<1, \ ,1>LR и нечеткий интервал (L-Ry типа BLR=<\,3,2, 1>£й, где в качестве функции £-типа использована функция (5.9) со значением параметра р=2, а в качестве функции /?-типа использована функция (5.9) со значением параметра р=3. Графическое изображение этих нечеткого числа и нечеткого интервала (£-/?)-типов представлено на рис. 5.4.
Рис. 5.4. Графики нечеткого числа (£-Я)-типа $lr~<2, 1, 2>LR (а) и нечеткого интервала (£-Я)-типа SLR=<1, 3, 2, 1>Ln (б)
Операции над нечеткими числами и интервалами (£-Я)-типа
При определении операций над нечеткими числами и интервалами (£-/?)-тйпа следует исходить из следующих соображений. Результат арифметических операций сложения, вычитания, деления и умножения должен быть точно или приблизительно равен некоторому нечеткому числу или интервалу с теми же функциями £-типа и /?-типа, а параметры аир результата должны некоторым однозначным образом зависеть от аналогичных параметров исходных нечетких чисел и интервалов (£-/?)-типа.
С этой целью для определения аналогов обычных арифметических операций над нечеткими числами и нечеткими интервалами (£-/?)-типа целесообразно использовать принцип обобщения (4.23). Замечательным свойством определенных таким способом арифметических операций (сложение, вычитание, умножение и деление) является то, что они определяются на основе значений соответствующих параметров их (£-/?)-представлений.
Пусть 'ALR и ‘Blr — произвольные нечеткие числа (£-/?)-типа, заданные параметрически в виде: 9kLR =<m, ai’ Р1 -^z./? И ®LR ~<#2, &2, Рг>^л.
Сложение. Операция сложения нечетких чисел (£-/?)-типа обозначается через ^lr^lr = CLR = <a, а, Р>^д, где параметры о, а и р результата определяются следующим образом:
a = m+«2, a=ai+a2, P=Pi+P2.(5.13)
Вычитание. Операция вычитания нечетких чисел (£-/?)-типа обозначается через 5kLR -BLR = CLR = <а, a, р>ЛЙ, где параметры а, а и р результата определяются следующим образом:
« = «1-Я2, a=ai+P2, p=pi+a2.(5.14)
Операции умножения и деления нечетких чисел (£-/?)-типа могут быть определены при выполнении некоторых дополнительных условий.
Умножение положительных нечетких чисел (£-/?)-типа 1ALR и BLR, т. е. носители которых являются подмножествами R+, а модальные значения щ>0 и «2>0. Операция умножения таких нечетких чисел (£-/?)-типа обозначается через ^lr*®lr = CLR = <а, a, \V>LR, где параметры а, а и р результата определяются следующим образом:
а-ашт, a= ma2+raai, р= тРг+ toPi.(5.15)
Умножение нечетких чисел (£-/?)-типа 3\LR и BLR, для которых модальные значения разных знаков: щ<0 и ш>0. Операция умножения таких нечетких чисел (£-/?)-типа также обозначается через 5lLReSLR = CLR -<а, a, P>L/i, где параметры а, а и р результата определяются следующим образом:
а = a\ai, a= O2ai- П1Р2, Р= ^1-0102.(5.16)
Умножение нечетких чисел (£-/?)-типа 9\LR и BLR, для которых модальные значения отрицательные: щ<0 и дг<0. Операция умножения таких нечетких чисел
(L-КУтипа также обозначается через ^Lr«'BLr = CLR =<a, а, Р^, где параметры а, а и Р результата определяются следующим образом:
а = а\аг, а=-G2Pi-giP2, Р=-дгса-таг. (5.17)
Деление положительных нечетких чисел (£-/?)-типа 9kLR и BLR, т. е. носители которых являются подмножествами ^+, а модальные значения gi>0 и й2>0. Операция деления таких нечетких чисел (£-/?)-типа обозначается через Bl!RVBLR = CLR = <а, a, P>L/i, где параметры а, а и р результата определяются следующим образом:
a = a\!ai, ct= (тРг+ягсиУт2, р= (таг+огРО/ю2. (5.18) Обратное нечеткое число для положительного нечеткого числа (£- £)-типа 53 LR, т. е. носитель которого является подмножеством R*, а модальное значение щ>0. В этом случае обратное нечеткое число обозначается через CLr~' =<а, а, Р>1я, параметры которого а, а и Р определяются следующим образом:
a-\la\, ct= Pi/m2, Р=щ/й|2. (5.19)
В качестве примера выполнения операций с нечеткими числами (£-/?)-типа рассмотрим два конкретных нечетких числа:"нечеткая тройка" и "нечеткая двойка". Для удобства предположим, что эти нечеткие числа заданы с использованием одинаковой £-функции и /^-функции, в качестве которой возьмем уже известную нам функцию (5.9) со значением параметра р=2. Конкретные значения функций принадлежности этих нечетких чисел изображены на рис. 5.5, при этом значения параметров нечетких чисел следующие: m=3, ai=Pi=2,G2=2, а2=Рг=1.
Результаты выполнения операций сложения и вычитания этих нечетких чисел с использованием формул (5.13) и (5.14) изображены на рис. 5.6, а и рис. 5.6, б. Эти результаты можно назвать "нечеткая пятерка" и "нечеткая единица" соответственно. Результаты выполнения операций умножения и деления этих нечетких чисел с использованием формул (5.15) и (5.18) изображены на рис. 5.6, в и рис. 5.6, г. Эти результаты можно назвать "нечеткая шестерка" и "нечеткая дробь 3/2” соответственно. При этом следует заметить, что для удобства изображены лишь фрагменты графиков результирующих функций принадлежности вблизи их модальных значений.
Рис. 5.5. Графики двух нечетких чисел (Г-Я)-типа: "нечеткая тройка" (а)
Рис. 5.5. Графики двух нечетких чисел (Г-Я)-типа: "нечеткая двойка" (б)
Аналогичным образом можно определить операции над нечеткими интервалами (Л-/?)-типа, а также операции расширенного максимума и расширенного минимума нечетких чисел и интервалов (£-/?)-типа. Поскольку подобные операции характеризуются повышенной сложностью соответствующих численных расчетов. они не нашли широкого применения в практике нечеткого моделирования.
Рис. 5.6. Графики нечетких чисел (L-R)-Tnna: "нечеткая пятерка" (а) и "нечеткая единица" (б), которые являются результатами выполнения операций сложения, вычитания, умножения и деления нечетких чисел (L-RJ-типа: "нечеткая тройка" и "нечеткая двойка" соответственно
Рис. 5.6. Графики нечетких чисел (L-R)-TMna: "нечеткая шестерка" (в) и "нечеткая дробь 3/2" (г), которые являются результатами выполнения операций сложения, вычитания, умножения и деления нечетких чисел (L-R)-TMna: "нечеткая тройка" и "нечеткая двойка" соответственно
Наибольший интерес с практической точки зрения представляют аналоги арифметических операций, определенные для треугольных нечетких чисел и трапециевидных нечетких интервалов, который отличаются наглядностью и простотой интерпретации получаемых результатов. Эти понятия являются темой следующего раздела.
Треугольные нечеткие числа и трапециевидные нечеткие интервалы
При решении практических задач нечеткого моделирования наибольшее применение нашли простейшие частные случаи нечетких чисел и интервалов, получившие свое название по виду их функций принадлежности. Эти нечеткие числа и интервалы можно рассматривать как частный случай нечетких чисел и интервалов (£-/?)-типа, если в качестве соответствующих функций £-типа и /?-типа использовать их предельные случаи, а именно— линейные функции. При этом целесообразность использования трапециевидных нечетких интервалов и тре-
угольных нечетких чисел обусловливается не только простотой выполнения операций над ними, но и их наглядной графической интерпретацией.
Треугольное нечеткое число. Треугольным нечетким числом (сокращенно — ТНЧ) будем называть такое нормальное нечеткое число, функция принадлежности которого может быть задана треугольной функцией/д.
В этом случае ТНЧ удобно представить в виде кортежа из трех чисел: Лд= <а, а, р>д, где а — модальное значение ТНЧ; аир — левый и правый коэффициенты нечеткости ТНЧ. Поскольку, как было отмечено в главе 2, каждая треугольная функция принадлежности порождает нормальное унимодальное выпуклое нечеткое множество с непустым носителем— открытым интервалом (а-а, о+Р), то ТНЧ является частным случаем нечеткого числа (£-/?)-типа.
Примечание j
Напомним, что треугольная функция принадлежности f& характеризуется тремя параметрами и в общем случае с использованием выражения (2.8) может быть записана в виде £(х; а, Ь, с). При этом параметры ТНЧ Яд= <а, а, р>д однозначным образом связаны с параметрами треугольной функции принадлежности /д(х; а, Ь, с). А именно, модальное значение ТНЧ тождественно равно параметру b функции принадлежности f^x; a, b, с), т. е. a=b, а левый и правый коэффициенты нечеткости ТНЧ соответственно равны: u=b-a, р=с-6.
Пример конкретного ТНЧ <3, 1,2>д, которое соответствует "нечеткой тройке", изображен на рис. 5.7, а. Очевидно, примерами ТНЧ также могут служить нечеткие множества, функции принадлежности которых изображены на рис. 2.7, а, 2.11, а, а также на рис. 5.1,6.
Трапециевидный нечеткий интервал. Трапециевидным нечетким интервалом (сокращенно — ТНИ) будем называть нормальный нечеткий интервал, функция принадлежности которого может быть задана трапециевидной функцией /т.
В этом случае ТНИ удобно представить в виде кортежа из четырех чисел: Ят= <а, Ь, а, Р>т, где а и b — соответственно нижнее и верхнее модальные значения ТНИ; аир — левый и правый коэффициенты нечеткости ТНИ. Поскольку каждая трапециевидная функция принадлежности порождает нормальное выпуклое нечеткое множество с непустым носителем — открытым интервалом (о-а, й+Р), то ТНИ является частным случаем нечеткого интервала (£-/?)-типа. Как нетрудно заметить, треугольное нечеткое число Лд является частным случаем трапециевидного нечеткого интервала Ят= <а, Ь, а, р>т при а = Ь.
£ Примечание
Трапециевидная функция принадлежности h характеризуется четырьмя параметрами и в общем случае с использованием выражения (2.9) может быть записана в виде fdx\ a, b, с, d). При этом параметры ТНИ Ят= <а, Ь, а, р>т однозначным образом связаны с параметрами трапециевидной функции принадлежности fT(x; a, b, с, d). А именно, нижнее модальное значение ТНИ то-
ждественно равно параметру b функции принадлежности fr(x; a, b, с, d), верхнее модальное значение ТКИ тождественно равно параметру с функции принадлежности Ш; а, Ь, с, ф, т. е. Ь=с, а левый и правый коэффициенты нечеткости ТНЧ соответственно равны: a=b-a, ^=d-c.
Пример конкретного ТНИ <4,6,2, 1>т, которое соответствует "нечеткому интервалу от 4 до б”, изображен на рис. 5.7, б. Примерами ТНИ могут служить также нечеткие множества, функции принадлежности которых изображены на рис. 2.11, б, 2.15,5.1, а, в.
Рис. 5.7. Графическое представление ТНЧ Яд-<3, 1, 2>д (а) и ТНИ Ят=<4, 6, 2, 1>т (б)
^ Примечание ^J
Иногда могут оказаться полезными и другие альтернативные определения ТНЧ и ТНИ, в которых не требуется нормальность соответствующих нечетких мно-
жеств. Так, например, некоторые авторы треугольным нечетким числом называют нечеткую величину, которую с использованием двух линейных функций можно представить в виде кортежа из четырех чисел: *УД= <а, а, 0, h>, где а — модальное значение нечеткого числа; аир — левый и правый коэффициенты нечеткости; h — высота нечеткого числа. Соответственно, трапециевидным нечетким интервалом называют нечеткую величину, которую с использованием двух линейных функций можно представить в виде кортежа из пяти чисел: 14= <3, Ь, а, р, Ь>, где а и b — соответственно нижнее и верхнее модальные значения нечеткого интервала; аир — левый и правый коэффициенты нечеткости; h— высота нечеткого интервала. В этом случае треугольное нечеткое число *УД также является частным случаем трапециевидного нечеткого интервала *14 при а =Ь.
Как не трудно заметить, введенные ранее определения ТНЧ и ТНИ становятся частными случаями этих более общих понятий треугольного нечеткого числа и трапециевидного нечеткого интервала. А именно, ТНЧ есть не что иное как нормальное треугольное нечеткое число 14°= <а, а, р, 1>, а ТНИ есть нормальный трапециевидный нечеткий интервал *14° = <3, Ь, а, р, 1>. Рассмотренные понятия можно проиллюстрировать графически, где на рис. 5.8, а изображено треугольное нечеткое число Т4= <3, 2, 2, 0.8>, а на рис. 5.8, б изображен трапециевидный нечеткий интервал *14= <3, 6, 1, 3, 0.6>. В дальнейшем наше рассмотрение будет ограничено только нормальными ТНЧ Яд и нормальными ТНИ ^.
Для решения задач нечеткого моделирования необходимо определить некоторые простейшие операции над ТНИ и ТНЧ, аналогичные обычным арифметическим операциям над обычными числами и интервалами.
а=20=2
44= <3, 2, 2, 0.8>
Рис. 5.8. Графическое представление треугольного нечеткого числа Тд= <3, 2, 2, 0.8>, не являющегося нормальным (а)
Рис. 5.8. Графическое представление трапециевидного нечеткого интервала Тт= <3, 6, 1, 3, 0.6>, не являющегося нормальным (б)Рис. 5.8. Графическое представление трапециевидного нечеткого интервала Тт= <3, 6, 1, 3, 0.6>, не являющегося нормальным (б)бб
Рис. 5.8. Графическое представление трапециевидного нечеткого интервала Тт= <3, 6, 1, 3, 0.6>, не являющегося нормальным (б)
Рис. 5.8. Графическое представление трапециевидного нечеткого интервала Тт= <3, 6, 1, 3, 0.6>, не являющегося нормальным (б)
б
б
Операции над треугольными нечеткими числами
и трапециевидными нечеткими интервалами
Пусть Яд и 5Д— два произвольных треугольных нечетких числа, которые заданы параметрически в виде: Яд= <«i,ai, 01>д и 53д= <дг, аг, Рг>д. Для этих ТНЧ оказываются справедливыми аналоги обычных арифметических операций, введенных в рассмотрение выше в разд. 5.3 для треугольных нечетких чисел (L-R\ типа. А именно, операция сложения ТНЧ определяется выражением (5.13), операция вычитания ТНЧ— выражением (5.14), операция умножения ТНЧ— выражениями (5.15)—(5.17), операция деления— выражением (5.18), и, наконец, обратное ТНЧ — выражением (5.19).
Например, для конкретных ТНЧ Яд= <3, 1,2>д и 5ВД=<2, 2, 1>д результаты арифметических операций равны: Яд+58д = <5, 3,3>Л, ЯЛ-58Л = <1,2, 4>д, Яд^йд^ <6, 8, 7>Л, Ядч-^д = <1.5, 1.25, 2.5>Л. Графики результатов операций с этими ТНЧ изображены на рис. 5.9 (а—г) соответственно.
Перейдем к рассмотрению операций с ТНИ. Пусть Я и S — два произвольных трапециевидных нечетких интервала, которые заданы параметрически в виде: Ят = <а\, b\, ai, 0i> т и 58т = <аг, Ьг, аг, 0г> т.
Сложение. Операция сложения ТНИ обозначается через Ят+5Вт = Ст = <а, Ь, а, 0>т, где параметры a, b, а и р результата определяются следующим образом:
g = gi+«2, b = b\+bi, a=ai+a2, P=Pi+p2. (5.20)
Рис. 5.9. Графики ТНЧ: "нечеткая пятерка" (а) и "нечеткая единица" (б), "нечеткая шестерка" (в) и "нечеткая дробь 3/2" (г), которые являются результатами выполнения операций сложения, вычитания, умножения и деления ТНЧ: "нечеткая тройка" и "нечеткая двойка" соответственно
Вычитание. Операция вычитания ТНИ обозначается через .Ят-St = Ст = = <а, Ь, а, р>т, где параметры а, Ь, а и р результата определяются следующим образом:
а = ах-аг, Ь = Ьх-Ьг, a=«i+p2, Р=Р1+аг. (5.21) Умножение положительных ТНИ Ук и St, т. е. носители которых являются подмножествами №-, а все модальные значения положительные. Операция jw- ножения таких ТНИ обозначается через jRt*St = Ст = <а, Ь, а, р>т, где параметры а, Ь, а и Р результата определяются следующим образом:
а = ахаг, Ь-ЬхЬг, а= дюг+огац р= 61Р2+62Р1. (5.22) Деление положительных ТНИ Ят и St, т. е. носители которых являются подмножествами №., а все модальные значения положительные. Операция деления таких ТНИ обозначается через yir^-Sr = Ст = <а, Ь, а, р>т, где параметры а, Ь, а и р результата определяются следующим образом:
a-axthi, a-bxtai, сс= (щр2+ЬгесО/бг2, P=(bia2+«2Pi)/fl22. (5.23) Например, рассмотрим два конкретных ТНИ: 5Vv- <3,5, 1,2>т и St = <1, 2,1, 1>т. Первый из них соответствует "нечеткому интервалу от трех до пяти", а второй — "нечеткому интервалу от единицы до двух". Тогда результат их сложения с использованием формул (5.20) равен ТНИ JRt+St= <4, 7, 2, 3>т и соответствует "нечеткому интервалу от четырех до семи". Результат вычитания из первого ТНИ второго ТНИ с использованием формул (5.21) равен ТНИ: JRt-St = = <2, 3, 2, 3>т и соответствует "нечеткому интервалу от двух до трех". Графики соответствующих ТНИ представлены на рис. 5.10.
Примечание
Что касается операций с альтернативными определениями ТНЧ и ТНИ, которые не являются нормальными, то предложенные в этом случае способы определения результатов соответствующих операций уже не являются столь очевидными и наглядными. В частности, для двух трапециевидных нечетких интервалов (не являющихся нормальными): Тт= <ai, bi, сц, Pi, h\>, *Wt= <аг, b^ «2, P2, Ьг> параметры результата их сложения 7k= 'Vi+'Wi^a, b, a, р, h> рассчитываются последовательно по следующим формулам:
h=min(hil hi)',
(5.24)
a= h-(aVhi+a2/h2),
p= h(pVhi+p2/h2);
(5.25)
a = ai+a2-ai-a2+a,
b = 61+ Ьг+Рт+Рг-Р-
(526)
Данная операция сложения может быть проиллюстрирована графически (рис. 5.11), где на рис. 5.11, а изображен трапециевидный нечеткий интервал: Тт= <3, 5, 1, 2, 0.8>, на рис. 5.11,6 изображен трапециевидный нечеткий интервал: ЧГт= <1,2, 1, 1, 0.6>, а на рис. 5.11, е изображен результат их сложения 2/т= <3, 6, 1, 3, 0.6>, полученный с использованием формул (5.24)—(5.26).
Рис. 5.10. Графики ТНИ: "нечеткий интервал от трех до пяти" (а), "нечеткий интервал от единицы до двух” (б), а также результат их сложения (в) и вычитания (г)
Рис. 5.11. Графики двух трапециевидных нечетких интервалов, не являющихся нормальными (а, б), и результата их сложения (в)Рис. 5.11. Графики двух трапециевидных нечетких интервалов, не являющихся нормальными (а, б), и результата их сложения (в)
Рис. 5.11. Графики двух трапециевидных нечетких интервалов, не являющихся нормальными (а, б), и результата их сложения (в)
Рис. 5.11. Графики двух трапециевидных нечетких интервалов, не являющихся нормальными (а, б), и результата их сложения (в)
Для нас представляют интерес операции расширенного максимума и расширенного минимума ТНИ ,Ят = <ai,6i,ai, р!>т и St = <02,62, аг, рг>т (соответственно — ТНЧ), которые определяются следующим образом.
Расширенный максимум. Операция расширенного максимума ТНИ обозначается через тах^т, St} =Ст= <а, Ь, а, р>т, где параметры a, b, а ир результата определяются следующим образом:
а - max{oi, аг}, a= а - max {ai-ai, аг-аг},а - max{oi, аг}, a= а - max {ai-ai, аг-аг},b = тах{6|, Ьг}, р= тах{6|+р1,6г+р2}-6.b = тах{6|, Ьг}, р= тах{6|+р1,6г+р2}-6.(5.27)(5.27)
а - max{oi, аг}, a= а - max {ai-ai, аг-аг},
а - max{oi, аг}, a= а - max {ai-ai, аг-аг},
b = тах{6|, Ьг}, р= тах{6|+р1,6г+р2}-6.
b = тах{6|, Ьг}, р= тах{6|+р1,6г+р2}-6.
(5.27)
(5.27)
Расширенный минимум. Операция расширенного минимума ТНИ обозначается через min{5TT, St} =Ст= <a,b, а, р>т, где параметры а, Ь, а и р результата определяются следующим образом:
а = min{oi, аг),b = min{6i, Ьг),
a=a-min{ai-oci,a2-a2}, р= min{6i+pi,62+p2}-Z>.^' 8)
В заключение этой главы приведем некоторые рекомендации, которые целесообразно использовать в процессе представления различных термов тех или иных лингвистических переменных нечеткими числами и интервалами (£-Я)-типа, а также их более простыми частными случаями — ТНЧ и ТНИ (табл. 5.1).
Таблица 5.1. Рекомендации по представлению термов лингвистических переменных
Терм лингвистической переменной
(L-R)- представление
Представление в форме ТНЧ и ТНИ
Средний, около, приблизительно
<а, a, P>LR, где а<со, р<оо
<а, а, р>д, где а<оо, р<оо
Малый, низкий
<а, со, p>LR, где а=со, р<ао
<а, со, р>д, где а=оо, р<оо
Большой, высокий
<а, a, co>LR, где а<ао, р=со
<а, а, оо>д, где а<оо, р=оо
Приблизительно в диапазоне, в интервале (а, Ь), где а<оо и txa>
<а, b, a, P>lr, где а<ао, р<ао
<а, Ь, а, р>т, где а<оо, р<оо
Точно в диапазоне, в интервале [а, Ь], где а<оо и Ь<оо
<а, Ь, а, р>т, где а=0, р=0
Точно равен числу а, где а<оо
<а, а, р>д, где а=0, р=0
Не превышает значения Ь, где txco
<а, b, a, p>LR, где 3=00, а=ао, р<ао
<а, Ь, а, р>т, где а=оо, а=оо, р<ао
Не меньше, чем значение а, где а<оо
<а, b, a, P>LR, где Ь=оо, а<ао, р=со
<а, Ь, а, р>т, где Ь=оо, а<оо, р=оо
Подводя итог этой главы, заметим, что при решении практических задач нечеткого моделирования наиболее удобными оказываются ТНЧ и ТНИ. Именно они наиболее часто используются для представления входных и выходных переменных нечетких моделей систем управления, о которых пойдет речь в последующих главах.
Глава 6
Основы нечеткой логики
Нечеткая логика предназначена для формализации человеческих способностей к неточным или приближенным рассуждениям, которые позволяют более адекватно описывать ситуации с неопределенностью. Классическая логика по своей сути игнорирует проблему неопределенности, поскольку все высказывания и рассуждения в формальных логических системах могут иметь только значение "истина" (И, 1) или значение "ложь" (Л, 0). В отличие от этого в нечеткой логике истинность рассуждений оценивается в некоторой степени, которая может принимать и другие отличные {И, Л} значения.
Чтобы иметь возможность выражать неопределенные знания, необходима такая логическая сисвема, которая позволяет некоторому предложению иметь истинностное значение, отличающееся от бинарного И или Л. Один из подходов — расширить множество истинностных значений {И, Л} и позволить предложениям принимать некоторые дополнительные значения истинности. Одним из первых логиков, предложивших в 1930 г. вариант многозначной логической системы, отличающийся от классической бинарной логики, был польский математик Ян Лукасевич (1878—1956). В трехзначной логике Лукасевича используется 3 истинностных значения: (0, 0.5, 1}, где значение 0 интерпретируется как "ложь", 1 — как "истина”, а число 0.5— как "возможно". В каче.стве высказываний с истинностным значением "возможно" могут выступать такие, которые относятся к некоторому моменту времени в будущем.
Так, например, высказывание "Сборная России но футболу выйдет в 1/8 финала на предстоящем Чемпионате мира" до начала Чемпионата не может быть оценено ни как истинное, ни как ложное. Именно по этой причине более адекватным ответом на вопрос об его истинности будет использование трехзначной логики с соответствующей интерпретацией истинности в форме значения "возможно".
Наряду с понятием нечеткого множества, Л. Заде предложил обобщение классической логики на основе рассмотрения бесконечного множества значений истинности. Далее в этой главе изложены основы нечеткой логики, которая использует основные понятия теории нечетких множеств для формализации неточных знаний и выполнения приближенных рассуждений в той или иной проблемной области.
6.1. Понятие нечеткого высказывания
и нечеткого предиката
В предложенном Л. Заде варианте нечеткой логики множество истинностных значений высказываний обобщается до интервала действительных значений [О, I], что позволяет высказыванию принимать любое значение истинности из этого интервала. Это численное значение является количественной оценкой степени истинности высказывания, относительно которого нельзя с полной уверенностью заключить о его истинности или ложности. Использование в качестве множества истинностных значений интервала [О, I] позволяет построить логическую систему, в рамках которой оказалось возможным выполнять рассуждения с неопределенностью и оценивать истинность высказываний типа: "Скорость автомобиля довольно высокая", "Давление в системе весьма значительное", "Высота полета самолета предельно низкая" и др.
Исходным понятием нечеткой логики является понятие элементарного нечеткого высказывания.
Элементарное нечеткое высказывание. В общем случаеэлементарным нечетким высказыванием называется повествовательное предложение, выражающее законченную мысль, относительно которой мы можем судить об ее истинности или ложности только с некоторой степенью уверенности.
Элементарные нечеткие высказывания для удобства будем обозначать теми же буквами, что и нечеткие множества: 91, В, С, V, & (возможно, с индексами). Сами элементарные нечеткие высказывания иногда называют просто нечеткими высказываниями.
Главным отличием элементарного нечеткого высказывания от элементарного высказывания математической логики является следующий факт. Множество значений истинности элементарных высказываний классической математической логики состоит из двух элементов: ^"истина", "ложь"} ({И, Л} или {0, 1}), при этом значению "истина" соответствует цифра 1 или буква И, а значению "ложь" — цифра 0 или буква Л (см. приложение 2). В нечеткой логике степень истинности элементарного нечеткого высказывания принимает значение из замкнутого интервала [0, 1], причем 0 и 1 являются предельными значениями степени истинности и совпадают со значениями "ложь” и "истина" соответственно.
Примечание
Следует обратить внимание на то обстоятельство, что использование интервала [0, 1] в качестве множества значений истинности нечетких высказываний естественным образом порождает бинарное отношение нестрогого порядка на декартовом произведении произвольного множества нечетких высказываний. Хотя измерение степени истинности нечеткого высказывания выполняется в шкале интервалов, допустимые преобразования этой шкалы являются избыточными и могут оказаться неадекватными содержательным аспектам той или иной практической задачи. Это следует помнить при построении нечетких мо-
делей реальных систем. Детальный анализ семантических особенностей измерения степени истинности нечетких высказываний возможен на основе рассмотрения теории нечеткой меры, основы которой излагаются далее в главе 9.
П р и м е р 6.1. Ниже приводится несколько примеров элементарных нечетких высказываний:
О. Бендер имеет довольно высокий рост.
Завтра будет пасмурная погода.
3 — малое число.
ВАЗ 2110 является скоростным автомобилем.
Возможно, нам подадут горячий кофе.
Содержательно неопределенность нечетких высказываний может иметь различную природу. Так, например, неопределенность оценки истинности в высказывании (1) связана с нечеткостью определения понятия "высокий рост", которое является нечеткой переменной (см. главу 5). Аналогичный характер неопределенности имеют нечеткие высказывания (3) и (4), связанные с определением нечетких переменных "малое число" и "скоростной автомобиль" соответственно. Что касается высказываний (2) и (5), то здесь кроме определения нечетких переменных "пасмурная погода" и "горячий кофе" следует оценить их истинность относительного некоторого момента времени в будущем. Общим для всех этих высказываний является то обстоятельство, что относительно их истинности мы можем судить лишь с некоторой степенью, количественно оцениваемой действительным числом из интервала [0, 1].
Примечание
Конечно, наиболее строгие из читателей могут дополнить содержательный анализ истинности рассмотренных выше высказываний. В частности, можно заметить, что точное измерение роста О. Бендера как литературного персонажа вряд ли возможно и в свою очередь может быть основано лишь на приближенных визуальных оценках тех или иных экранизаций или субъективном анализе контекста соответствующего художественного произведения. Поскольку эти тонкие семантические нюансы лежат за пределами собственно нечеткой логики, мы оставляем их рассмотрение за указанной категорией читателей.
Для оценки степени истинности произвольного нечеткого высказывания удобно ввести в рассмотрение специальное отображение Т, которое действует из множества рассматриваемых нечетких высказываний 41 в интервал [0, 1], т. е. Т: *Z/-^[0, 1]. Это отображение будем называть отображением истинности нечетких высказываний. В этом случае значение истинности некоторого нечеткого высказывания 51 е 7/ будем обозначать через Т(^1). Так, если обозначить нечеткое высказывание (1) из примера 6.1 через 54i, то его истинность формально может быть записана как T(54i), а количественно равна, например, 0.7, т. е. T(54i) = 0.7.
Нечеткие предикаты
Как было отмечено ранее в главе 5 при описании способов задания нечетких отношений, в общем случае можно ввести в рассмотрение некоторое характеристическое свойство, которое может быть записано в виде многоместного нечеткого предиката P(<xi , хг,..., х^.
Нечеткий предикат. Нечеткий предикат P(<xi, хг,..., хк>) или, более строго, k-местный нечеткий предикат, формально определяется как некоторое отображение из декартова произведения универсумов Х\,Хг,...,Хк в некоторое вполне упорядоченное множество значений истинности, в частности, в интервал [О, I], т. е. Р:XixXix...xXk.—>[0, 1]. По аналогии с обычными предикатами, переменные xi, Х2,..., хк называются предметными переменными нечеткого предиката P(<xi, Х2,..., хк>^, а декартово произведение универсумов Х\хХгх...хХк — его предметной областью.
Примечание
Следует заметить, что это определение с точностью до обозначений соответствует определению нечеткого отношения (9={<xi, х2,.... х*>| hq(<xi, х2,..., х^, x-teXi, х2еХ2,..., хкеХ^ (см. главу 4). Этот факт подчеркивает формальную и содержательную взаимосвязь функции принадлежности произвольного нечеткого отношения Цй(<Х1,хгхл>)} с соответствующим нечетким предикатом Pq(<xi, х2хк>\ который, возможно неявно, выражает некоторое характеристическое свойство этого нечеткого отношения.
Таким образом, анализ семантических особенностей нечетких предикатов P(<xi, хг,..., хк>) в общем случае тесно взаимосвязан с анализом соответствующих нечетких отношений Q={<xi, х2,...,хЛ>| hq(<xi, хг,..., хк>), х\еХ\, xieXi,..., хкеХк^, которые были рассмотрены ранее в главе 4. Верно и обратное заключение. Эта связь функции принадлежности нечеткого отношения и соответствующего ему нечеткого предиката играет важную роль при установлении взаимосвязей между теорией нечетких множеств и нечеткой логикой, поскольку изучение нечетких предикатов может быть выполнено с помощью анализа рассмотренных выше свойств нечетких отношений.
В свою очередь взаимосвязь между нечеткими высказываниями и нечеткими предикатами устанавливается с помощью процесса так называемого означивания нечеткого предиката P(<xi, хг,..., хЛ>), под которым понимается подстановка вместо предикатных переменных х\,х2,...,хк конкретных значений из соответствующих универсумов: aieXi, aieXi,..., акеХк. В этом случае нечеткий предикат P(<xi, хг,..., хЛ.>) превращается в некоторое нечеткое высказывание 4\ которое принимает конкретное значение истинности, равное числу из интервала [0, 1].
Нечеткое обобщение логики предикатов первого порядка, так же как и соответствующие ей нечеткие исчисления, не нашли широкого применения при решении прикладных задач. Наиболее конструктивным направлением в нечеткой логике оказалось нечеткое обобщение правил продукций, использующих нечеткие вы-
сказывания в форме означивания лингвистических переменных. В этом случае нечеткие высказывания могут комбинироваться с помощью нечетких логических операций или связок, которые и рассматриваются ниже.
Основные логические операции с нечеткими высказываниями
Пусть ЯЛ — некоторое множество элементарных нечетких высказываний, а Т : ЯЛ—>[0, 1] — отображение истинности высказываний.
Логическое отрицание нечетких высказываний
Логическое отрицание. Отрицанием нечеткого высказывания УК (записывается как: ->УК и читается— "не УК", "неверно, что 54") называется унарная логическая операция, результат которой является нечетким высказыванием, истинность которого по определению принимает значение:
ТЬ^)=1-Т(гЯ).(6.1)
Очевидно, что принятый в математической логике способ определять логические операции с помощью таблиц истинности не может быть использован в нечеткой логике. Причина этого заключается в континуальной мощности множества истинностных значений [0, 1]. Именно поэтому центральную роль в определении логических операций в нечеткой логике приобретает отображение истинности Т, которое имеет вспомогательное значение в классической математической логике (см. приложение 2).
Примером применения операции логического отрицания к нечеткому высказыванию "О. Бендер имеет довольно высокий рост" будет высказывание "Неверно, что О. Бендер имеет довольно высокий рост", степень истинности которого с учетом ранее определенного значения для T(J7h) равна 0.3. Отрицанием высказывания "Завтра будет пасмурная погода" будет высказывание "Завтра будет не пасмурная погода", степень истинности которого, если принять Т(54г) = 0.2, принимает значение 0.8.
Примечание j
Говоря об логических операциях с нечеткими высказываниями, нельзя не сказать о наличии большого числа альтернативных способов их определения. Особенно это относится к нечеткой импликации, которая занимает центральное место в системах нечеткого вывода.
Логическая конъюнкция нечетких высказываний
Логическая конъюнкция. Конъюнкцией нечетких высказываний 3\и В (записывается как: 5клВ и читается — ”51 и В") называется бинарная логическая операция, результат которой является нечетким высказыванием, истинность которого определяется по формуле:
TX5WB) = min (Т(гЯ), Т(£)}.(6.2)
Логическую конъюнкцию нечетких высказываний также называют нечетким логическим "И", нечеткой конъюнкцией или min-конъюнкцией и иногда записывают также в форме 51 AND В. При этом исторически принято считать формулу (6.2) основной для определения степени истинности ее результата.
По аналогии с операциями над нечеткими множествами, рассмотренными в главе 3, для определения степени истинности конъюнкции нечетких высказываний могут быть использованы следующие альтернативные формулы.
Алгебраическое произведение степеней истинности нечетких высказываний:
ТСЯлЗЗ) = Т(.Я)Т(£).(6.3)
Граничное произведение степеней истинности нечетких высказываний:
ТСЯлЗЗ) = max(T(^)+T(S) -1,0}.(6.4)
П Драстическое произведение степеней истинности нечетких высказываний:
№),№),т^лВ^^туГ),т^лВ^^туГ),о,о,если T(5V) = 1;если Т(В^ = 1;в остальных случаях.если T(5V) = 1;если Т(В^ = 1;в остальных случаях.(6.5)(6.5)
№),
№),
т^лВ^^туГ),
т^лВ^^туГ),
о,
о,
если T(5V) = 1;
если Т(В^ = 1;
в остальных случаях.
если T(5V) = 1;
если Т(В^ = 1;
в остальных случаях.
(6.5)
(6.5)
Для этих альтернативных способов определения истинности логической конъюнкции нечетких высказываний могут быть использованы обозначения, аналогичные соответствующим обозначениям операций над нечеткими множествами. Так нечеткая конъюнкция, рассчитываемая по формуле (или методом алгебраического произведения, обозначается через 54»®, методом граничного произведения — через 5ЮВ, методом драстического произведения — через 51ДВ.
Пример 6.2. Рассмотрим составное нечеткое высказывание, состоящее из двух элементарных: "О. Бендер имеет довольно высокий рост и завтра будет пасмурная погода" и предположим, что истинность первого из них равна T(J4i) = 0.7, а истинность второго — Т^Яг) = 0.2. Тогда истинность логической конъюнкции этих нечетких высказываний, вычисленная по основной формуле (6.2), равна: Т(5Ч|лУ12) = 0.2. Значения истинности этой же конъюнкции, рассчитанные по остальным формулам, равны: Т^Я^-Яг) = 0.14, ТСЯ1СХЯ2) = 0, Т(Я1ЛЯ2) = 0.
Логическая дизъюнкция нечетких высказываний
Логическая дизъюнкция. Дизъюнкцией нечетких высказываний Я и В (записывается как: 9WB и читается — "Я или В") называется бинарная логическая операция, результат которой является нечетким высказыванием, истинность которого по определению принимает значение:
(6.6)(6.6)T(54vS) = max{T(54), Т(28)}.
(6.6)
(6.6)
Логическую также называют логическим неисключающим "ИЛИ".
Логическую дизъюнкцию нечетких высказываний также называют нечетким неисключающим логическим "ИЛИ", нечеткой дизъюнкцией или шах-дизъюнкцией и иногда записывают также в форме 54 OR В. При этом исторически принято считать формулу (6.6) основной для определения степени истинности ее результата.
По аналогии с операциями над нечеткими множествами, рассмотренными в главе 3, для определения степени истинности дизъюнкции нечетких высказываний могут быть использованы следующие альтернативные формулы.
Алгебраическая сумма степеней истинности нечетких высказываний:
T(54v23) = Т(54)+Т(23) -Т(51)Т(23)(6.7)
Граничная сумма степеней истинности нечетких высказываний:
T(5lvS) = min {ТСЯ)+Т(£), 1}(6.8)
Драстическая сумма степеней истинности нечетких высказываний:
[7(5),[7(5),7(54 v В) = 7(54),7(54 v В) = 7(54),1,1,если 7(54) = 0;если Т(В) = 0;в остальных случаях.если 7(54) = 0;если Т(В) = 0;в остальных случаях.(6-9)(6-9)
[7(5),
[7(5),
7(54 v В) = 7(54),
7(54 v В) = 7(54),
1,
1,
если 7(54) = 0;
если Т(В) = 0;
в остальных случаях.
если 7(54) = 0;
если Т(В) = 0;
в остальных случаях.
(6-9)
(6-9)
Для этих альтернативных способов определения истинности логической дизъюнкции нечетких высказываний могут быть использованы обозначения, аналогичные соответствующим обозначениям операций над нечеткими множествами. Так, нечеткая дизъюнкция, рассчитываемая по формуле (6.7) или методом алгебраической суммы, обозначается через 51+23, методом граничной суммы— через 54®23, методом драстической суммы — через 51V23. При этом алгебраическую сумму (6.7) часто называют также вероятностной суммой.
Пример 6.3. Как и выше, рассмотрим составное нечеткое высказывание: "О. Бендер имеет довольно высокий рост или завтра будет пасмурная погода” и предположим, что истинность входящих в него элементарных нечетких высказываний по-прежнему равна T(54i) = 0.7 и Т(54г) = 0.2. Тогда истинность логической дизъюнкции этих нечетких высказываний, вычисленная по основной формуле (6.6), равна: T(54iv5h) = 0.7. Значения истинности этой же дизъюнкции, рассчитанные по остальным формулам, равны: Т(54|+54г) = 0.76, Т(54|®54г) = 0.9, T(5(iV5b) = I.
Примечание
В общем случае для определения истинности результатов нечеткой конъюнкции и нечеткой дизъюнкции могут быть предложены и другие расчетные формулы, основанные на рассмотрении треугольных норм (3.37)—(3.40) и конорм (3.41)— (3.44). Подобное рассмотрение базируется на содержательной взаимосвязи между операциями над нечеткими множествами и логическими операциями с нечеткими высказываниями. Как будет видно далее, эта взаимосвязь становится еще более очевидной в случае нечетких лингвистических высказываний.
Нечеткая импликация
Нечеткая импликация. Нечеткой импликацией или просто — импликацией нечетких высказываний 51 и S3 (записывается как: З^оВ и читается — "из 3\ следует S3", "ЕСЛИ 54, ТО 53") называется бинарная логическая операция, результат которой является нечетким высказыванием, истинность которого может принимать значение, определяемое по одной из следующих формул.
Классическая нечеткая импликация, предложенная Л. Заде:
Т(54о53) = max{min{T(5l), Т(53)}, 1-Т(54)}.(6.10)
Эту форму нечеткой импликации называют также нечеткой импликацией Заде.
Классическая нечеткая импликация для случаяТ(51)>Т(53):
Т(5Ь53) = шах{Т(-<71), Т(53)} = шах{1-Т(54), Т(53)}.(6.11)
Эту форму нечеткой импликации иногда называют нечеткой импликацией Гёделя.
Нечеткая импликация, предложенная Э. Мамдани:
Т(5Ь53) = min {Т(У1), Т(53)}.(6.12)
Эту форму нечеткой импликации также называют нечеткой импликацией Мамдани или нечеткой импликацией минимума корреляции. Можно заметить, что в случае Т(51)^0.5 и Т(53)>0.5 классическая нечеткая импликация превращается в нечеткую импликацию Мамдани.
Нечеткая импликация, предложенная Я. Лукасевичем:
ОД^53) = min{ 1, 1-Т(51)+Т(53)}.(6.13)
Эту форму нечеткой импликации также называют нечеткой импликацией Лу- касевича.
Нечеткая импликация, предложенная Дж. Гогеном:
Т(5Ь53) = min {1, Т(53) /Т(54)}, где Т(51)>0.(6.14)
Эту форму нечеткой импликации также называют нечеткой импликацией Гогена.
Нечеткая импликация по формуле граничной суммы:
T№53) = min{l,T(54)+T(53)}.(6.15)
Нечеткая импликация по формуле произведения: Т(.7Ы8) = Т(54)-Т(58)}.
Нечеткая импликация, предложенная Н. Вади: T(5!d8) = /иах{Т(54)-Т(^), l-T(54)}.
(6.16)(6.16)(6.17)(6.17)Т№£1 =Т№£1 =1, если Т(54)<Т(53);Т(В), в противном случае.1, если Т(54)<Т(53);Т(В), в противном случае.(6.18)(6.18)Нечеткая импликация Брауэра:
(6.16)
(6.16)
(6.17)
(6.17)
Т№£1 =
Т№£1 =
1, если Т(54)<Т(53);
Т(В), в противном случае.
1, если Т(54)<Т(53);
Т(В), в противном случае.
(6.18)
(6.18)
Эта форма нечеткой импликации получила свое название в честь голландского логика Л. Брауэра (1881—1966), основоположника математического интуиционизма.
Нечеткая импликация стандартной логики последовательностей (R-SEQ):
TCTbS) =TCTbS) =1,если Т(54)<Т(58);О,в противном случае.1,если Т(54)<Т(58);О,в противном случае.(6.19)(6.19)
TCTbS) =
TCTbS) =
1,если Т(54)<Т(58);
О,в противном случае.
1,если Т(54)<Т(58);
О,в противном случае.
(6.19)
(6.19)
Нечеткая импликация играет важную роль в процессе нечетких логических рассуждений. Так же, как и в математической логике первый ее операнд (нечеткое высказывание) называется посылкой или антецедентом, а второй — заключением или консеквентом.
Хотя классическая нечеткая импликация находит наибольшее применение при решении прикладных задач и она остается справедливой в случае обычных высказываний классической логики, остальные способы вычисления нечеткой импликации в отдельных ситуациях оказываются более эффективными с вычислительной точки зрения.
Примечание
Рассмотренные выше формулы для определения истинности результата нечеткой импликации можно считать основными и далеко не исчерпывающими все предложенные для этой цели способы. По некоторым оценкам число таких способов приближается к 100. Одно из наиболее известных исследований различных определений нечеткой импликации было выполнено японскими математиками Мидзумото, Танака и Фуками, а также в работах Кицки, Кочански и Сливински. Интерес к изучению различных вариантов нечеткой импликации основан на том обстоятельстве, что нечеткая импликация занимает центральное место в той или иной системе нечеткого вывода в качестве метода активации или композиции. Назначение и особенности различных этапов нечеткого вывода рассматриваются в следующей главе.
Пример 6.4. Рассмотрим составное нечеткое высказывание в форме нечеткой импликации: "Если О. Бендер имеет довольно высокий рост, то завтра будет пасмурная погода", при этом истинность входящих в него элементарных нечетких высказываний по-прежнему равна T(54i) = 0.7 и Т(54г) = 0.2. Тогда истинность этой нечеткой импликации, вычисленная по основной формуле (6.10), равна Т(54|554г) = 0.3, по формуле (6.12) — T(54izx7h) = 0.2, по формуле (6.13) —
Т(Я|^Я2) = 0.5,Т(Я|=>Я2) = 0.9,Т(Я1=хЯ2) = 0.3, Т(Я|=хЯ2) = 0.Т(Я|^Я2) = 0.5,Т(Я|=>Я2) = 0.9,Т(Я1=хЯ2) = 0.3, Т(Я|=хЯ2) = 0.по формуле (6.14) — Т(ЯоЯ2)*0.29, по формуле (6.15) — по формуле (6.16) — Т(54оУ12) = 0.14, по формуле (6.17) — по формуле (6.18) — Т(54ю542) = 0.2, по формуле (6.19) —
Т(Я|^Я2) = 0.5,
Т(Я|=>Я2) = 0.9,
Т(Я1=хЯ2) = 0.3, Т(Я|=хЯ2) = 0.
Т(Я|^Я2) = 0.5,
Т(Я|=>Я2) = 0.9,
Т(Я1=хЯ2) = 0.3, Т(Я|=хЯ2) = 0.
Нечеткая эквивалентность
Нечеткая эквивалентность. Эквивалентностью нечетких высказываний 54 и 58 или просто нечеткой эквивалентностью (записывается как: 54=58 и читается— "54 эквивалентно В") называется бинарная логическая операция, результат которой является нечетким высказыванием, истинность которого определяется по следующей формуле:
Т(54=5В) =min{max{T(-154), Т(5В)}, тах{Т(54), Т(-,5В)}}. (6.20)
Примером логической эквивалентности может служить составное нечеткое высказывание: "О. Бендер имеет довольно высокий рост эквивалентно тому, что завтра будет пасмурная погода", истинность которого принимает значение 0.3.
Так же, как в классической математической логике, в нечеткой логике с помощью рассмотренных логических связок могут быть образованы достаточно сложные нечеткие высказывания. При этом для явного указания порядка их следования используются круглые скобки, а иногда— и приоритет соответствующих нечетких логических операций.
Так, например, составное высказывание: (54i o542)z>(-i542z>-i54i) в случае T(54i) = = 0.7 и Т(542) = 0.2 имеет значение истинности, равное: max{l-max{l-T(54i), Т(542)}}, max{l-T(-i542), T(-i54i)}} = max(l-max{ 1-0.7, 0.2}}, max{l-0.8, 0.3}} = = max{0.7, 0.3} = 0.7. '
Следует отметить, что обязательным условием корректности определения истинности составных нечетких высказываний является требование одновременной подстановки вместо одинаковых букв одних и тех же нечетких высказываний. Кроме рассмотренных логических операций могут быть определены и другие бинарные логические операции с нечеткими высказываниями. Более детально познакомиться с ними можно в специальной литературе.
Правила нечетких продукций
Продукционные системы были разработаны в рамках исследований по методам искусственного интеллекта и нашли широкое применение для представления знаний и вывода заключений в экспертных системах, основанных на правилах. Поскольку нечеткий вывод реализуется на основе нечетких продукционных правил, рассмотрение базового формализма нечетких продукционных моделей приобретает самостоятельное значение. При этом нечеткие правила продукций не только во многом близки к логическим моделям, но и, что наиболее важно, по-
зволяют адекватно представить практические знания экспертов в той или иной проблемной области.
Правило нечеткой продукции. В общем случае под правилом нечеткой продукции или просто — нечеткой продукцией понимается выражение следующего вида:
(0 : 0; Р; 54 => В; S, F, N, (6.21) где (0— имя нечеткой продукции; Q— сфера применения нечеткой продукции; Р— условие применимости ядра нечеткой продукции; 54=>S— ядро нечеткой продукции, в котором 54 — условие ядра (или антецедент); В — заключение ядра (или консеквент); "=>" — знак логической секвенции (или следования); S' — метод или способ определения количественного значения степени истинности заключения ядра; F— коэффициент определенности или уверенности нечеткой продукции; N— постусловия продукции.
По аналогии с обычным правилом продукции, в качестве имени (0 нечеткой продукции может выступать та или иная совокупность букв или символов, позволяющая однозначным образом идентифицировать нечеткую продукцию в системе нечеткого вывода или базе нечетких правил. В качестве имени нечеткой продукции может использоваться ее номер в системе.
Сфера применения нечеткой продукции Q, условие применимости ядра нечеткой продукции Р и постусловие нечеткой продукции N определяются аналогично обычной не нечеткой продукции (см. приложение 2).
Аналогично обычным правилам продукций ядро 54=>S также является центральным компонентом нечеткой продукции. Ядро продукции записывается в более привычной форме: "ЕСЛИ 54, ТО ‘В" или в наиболее распространенном виде: "IF 54, THEN 53", где 54 и S3— некоторые выражения нечеткой логики, которые наиболее часто представляются в форме нечетких высказываний. При этом секвенция интерпретируется в обычном логическом смысле как знак логического следования заключения В из условия Я. В качестве выражений 54 и В могут использоваться составные логические нечеткие высказывания, т. е. элементарные нечеткие высказывания, соединенные нечеткими логические связками, такими как нечеткое отрицание, нечеткая конъюнкция и нечеткая дизъюнкция.
S' — метод или способ определения количественного значения степени истинности заключения В на основе известного значения степени истинности условия Я. Данный способ в общем случае определяет так называемую схему или алгоритм нечеткого вывода в продукционных нечетких системах и называется также методом композиции или методом активации согласно Стандарту IEC 1131-7 (см. главу 8). В настоящее время для этой цели предложено несколько способов, основные из которых рассматриваются ниже в настоящем разделе.
F— коэффициент определенности или уверенности выражает количественную оценку степени истинности или относительный вес нечеткой продукции. Коэффициент уверенности принимает свое значение из интервала [0, 1] и часто называется весовым коэффициентом нечеткого правила продукции.
Примечание
Наряду с обычной формой ядра нечеткого правила продукции рассматривается так называемая расширенная форма в виде: "ЕСЛИ Л, ТО В, ИНАЧЕ С" или в эквивалентной записи: "IF 54 THEN В ELSE С". С точки зрения нечеткой логики эта форма нечеткого правила продукции по определению эквивалентна двум нечетким правилам продукции: "ЕСЛИ 54, ТО S" и "ЕСЛИ НЕ 54, ТО С", где связка "НЕ" используется в смысле операции нечеткого отрицания.
Продукционная нечеткая система. Продукционная нечеткая система или система нечетких правил продукций представляет собой некоторое согласованное множество отдельных нечетких продукций или правил нечетких продукций в форме "ЕСЛИ 54, ТО В" (или в виде: "IF 54 THEN В”, как определено в Стандарте IEC 1131-7). Далее обе эти формы записи будут использоваться как эквивалентные в зависимости от удобства в том или ином контексте.
Основная проблема приближенных рассуждений с использованием нечетких правил продукций заключается в том, чтобы на основе некоторых нечетких высказываний с известной степенью истинности, которые являются условиями нечетких правил продукций, оценить степень истинности других нечетких высказываний, являющимися заключениями соответствующих нечетких правил продукций.
Чтобы иметь возможность решить эту проблему, необходимо ответить на более частный вопрос: Чему должна быть равна степень истинности заключения отдельного нечеткого правила продукции, если известна степень истинности условия этого правила? Таким образом, в системах нечетких продукций центральное место занимает способ или метод определения истинности заключений в нечетком правиле продукции.
Нетрудно заметить, что взаимосвязь между условием и заключением в нечетком правиле продукции в общем случае представляет собой некоторое бинарное нечеткое отношение на декартовом произведении универсумов соответствующих нечетких высказываний. Этот подход и будет использоваться в дальнейшем для определения различных схем или методов нечеткого вывода на основе продукционных нечетких систем.
В общем случае для формального определения различных методов нечеткого вывода применительно к нечеткому правилу продукции рассмотрим два нечетких множества 54 и В, заданных соответственно на универсумах X и У. При этом нечеткое множество 54 интерпретируется как условие некоторого нечеткого правила продукции, а нечеткое множество В — как заключение этого же правила.
Основная идея заключается в том, что нечеткое множество 54 можно рассматривать как унарное отношение на универсуме X, а нечеткое множество В можно рассматривать как унарное отношение на универсуме У. В этом случае первое отношение определяется функцией принадлежности ЦяМ> а второе отношение— функцией принадлежности ЦвОО.
Теперь предположим, что некоторым образом определено бинарное нечеткое отношение на декартовом произведении универсумов: Q={<x,^>, pq^x,^)},
где хеХи yeY. Если дополнительно известна функция принадлежности Ця(л) первого множества, то функция принадлежности ц^ОО второго множества может быть определена в результате нечеткой композиции соответствующих нечетких отношений с использованием, например, формулы (4.17) для максиминной нечеткой композиции.
Кроме максиминной нечеткой композиции, рассмотренной в главе 4, предложены и другие способы для определения результата композиции нечетких отношений. Таким образом, для определения функции принадлежности нечеткого множества ’В можно использовать следующие методы, основанные на различных расчетных формулах для определения функции принадлежности результата.
Max-min-композиция или максиминная нечеткая свертка:
ЦвОО = max {min{(.^(л), цй(<х, >>)}}.
(6.22)
хеХ
□
Max-prod-композиция:
ЦвО) =тах {цу((л) цй(<л-, J’>)}.
(6.23)
□
леЛ'
Min-max-композиция:
Ив(у) =min {тах{ця(л), ца(<х, j’>)}}.
(6.24)
□
хеХ
Мах-тах-композиция:
PsO’) = max {maxf^U), pQ(<x, j»)}}.
(6.25)
□
хеХ
Min-min-композиция:
PsO’) = min {minfp^x), Рй(<х, .)’>)}}.
(6.26)
□
.x&X
Max- average-ко мп оз и ция:
Рв(у) =0.5- max {^(л^+ц^О’J'>)}- xgX
(6.27)
Sum-prod-композиция:
ЦвОО =/(Х(^(л)-^^, j >))). (6.28)
где/— некоторая логистическая функция типа сигмоидной, которая ограничивает значения функции числом из интервала [0, 1]. Этот метод композиции применяется в приложениях искусственных нейронных сетей для установления взаимосвязей между параллельными слоями в многослойных сетях.
В системах нечеткого вывода, которые рассматриваются в следующей главе, наиболее часто применяются методы max-min-композиции (6.22) и max-prod- композиции (6.23). Первый из них был предложен JI. Заде в одной из его первых работ по приближенным рассуждениям с использованием естественного языка и правил продукций.
Прямой и обратный методы вывода заключений в системах нечетких продукций
По аналогии с обычными продукционными системами важным компонентом систем нечетких продукций является так называемый метод или схема вывода заключений на основе нечетких условий в базе правил нечетких продукций. Наиболее известными являются два таких метода вывода заключений: прямой и обратный, особенности которых рассматриваются ниже.
Прямой метод вывода заключений в системах нечетких продукций, называемый также методом нечеткого восходящего вывода или методом прямой нечеткой цепочки рассуждений (fuzzy forward-chaining reasoning), основан на использовании нечеткого обобщения правила вывода модус поненс— FMP (fuzzy modus ponens, нечеткий модус поненс). Согласно Л. Заде, суть нечеткого модус поненс заключается в следующем. Классическая импликация Л~эВ в правиле вывода МР заменяется на правило нечеткой продукции: "ЕСЛИ х есть Я, ТО у есть 5В", где Л и 5В — нечеткие множества, а само правило нечеткой продукции представляет некоторое нечеткое отношение между переменными х и у, при этом хеХ и уе У. Что касается посылки А правила МР, то она заменяется на нечеткое условие ”х есть ^Ч'", где 3V — нечеткое множество, отражающее знания о реальном значении переменной х. Объединение правила нечеткой продукции и нечеткого условия позволяет получить новую информацию о значении переменной у в форме: "у есть 5В'". При этом заключение по правилу FMP получается как функция принадлежности нечеткого множества В на основе функции принадлежности условия 5V и функции принадлежности нечеткой импликации как соответствующего нечеткого отношения с использованием одного из методов нечеткой композиции (6.22)—(6.27).
Применительно к системам нечетких продукций прямой метод вывода реализуется посредством преобразования отдельных фактов проблемной области в конкретные значения функций принадлежности условий нечетких продукций. После этого преобразования по одному из методов нечеткой композиции находятся значения функций принадлежности заключений правых частей по каждому из правил нечетких продукций. Эти значения функций принадлежности либо являются искомым результатом вывода, либо могут быть использованы в качестве дополнительных условий в рассматриваемой базе правил нечетких продукций. При этом правила, которые могут быть использованы для выполнения нечеткой композиции, также называют активными.
Процесс вывода прямым методом в системах нечетких продукций в общем случае может иметь рекурсивный (итеративный) характер. Он может быть остановлен либо в случае отсутствия активных правил нечетких продукций, либо в случае получения функции принадлежности заключения, которое является целевым в контексте решения исходной проблемы. В этом случае функция принадлежности заключения характеризует успех процесса вывода в системах нечетких продукций и решение поставленной проблемы.
Обратный метод вывода в продукционных системах, называемый также методом нечеткого нисходящего вывода или методом обратной нечеткой цепочки рассуждений (fuzzy backward-chaining reasoning), основан на использовании нечеткого обобщения правила вывода модус толленс— FMT (fuzzy modus tollens, нечеткий модус толленс). Суть нечеткого модус толленс заключается в следующем. Классическая импликация А^эВ в правиле вывода МТ заменяется на правило нечеткой продукции: "ЕСЛИ х есть 5k, ТО у есть S", где 5k и В — нечеткие множества, а правило нечеткой продукции представляет некоторое нечеткое отношение между переменными х и ^, при этом хеХ и у eV, как и в методе FMP. Заключение В заменяется нечетким заключением в форме "является ли у S'?" или "у есть В’Т. При этом нечеткое множество ‘В’ не равно нечеткому множеству ’В, используемому в заключении правила нечеткой продукции. Целью вывода методом обратной нечеткой цепочки рассуждений является установление истинности условия правила нечеткой продукции в форме: "является ли х 5к*Т или "х есть 5ХТ. В этом случае заключение по правилу FMT получается как функция принадлежности нечеткого множества 5V на основе функции принадлежности заключения ‘В* и функции принадлежности нечеткой импликации как соответствующего нечеткого отношения с использованием одного из методов нечеткой композиции (6.22)—(6.27).
Принципиальное различие между обратными методами вывода заключений в нечетких и обычных системах продукций заключается в том, что применительно к системам нечетких продукций функции принадлежности условий неизвестны и должны быть как-то заданы. Процесс обратного вывода в системах нечетких продукций начинается с подстановки отдельных интересующих нас значений функции принадлежности заключений в правые части соответствующих правил нечетких продукций, которые в этом случае становятся активными. После анализа каждого из активных правил находятся функции принадлежности условий, которые используются в этих правилах. Эти функции принадлежности условий принимаются в качестве подцелей, которые могут быть использованы в качестве функций принадлежности новых заключений в рассматриваемой базе правил нечетких продукций.
Процесс вывода обратным методом также имеет рекурсивный (итеративный) характер. Он может быть остановлен либо в случае отсутствия новых активных правил, либо в случае получения значений функций принадлежности условий, которые подтверждаются фактами проблемной области. Подобное подтверждение условий характеризует успех процесса вывода и справедливость значений функции принадлежности исходных заключений.
Примечание
Изложенные здесь особенности методов вывода заключений в системах нечетких продукций представлены в схематичном виде. Более детально эти методы рассматриваются в главе 7, где представлены конкретные алгоритмы нечеткого вывода в системах нечетких продукций.
Пример 6.5. В качестве примера нахождения заключений прямым методом вывода в системах нечетких продукций рассмотрим использование модифицированной базы правил для проблемной области, связанной к проверкой граждан на таможенном пункте контроля с целью исключения возможности провоза наркотиков (см. пример П2.8).
В качестве системы нечетких продукций рассмотрим следующее множество правил нечетких продукций, которое более адекватно представляет ситуацию таможенного досмотра граждан при пересечении границы, чем в примере П2.8.
ПРАВИЛО_1: ЕСЛИ "Гражданин не является высокопоставленным чиновником", ТО "он подвергается таможенному досмотру" (Fi=1.0).
ПРАВИЛО_2: ЕСЛИ "Гражданин является высокопоставленным чиновником", ТО "он не подвергается таможенному досмотру" (/г=0.9).
ПРАВИЛО_3: ЕСЛИ "Гражданин не подвергается таможенному досмотру", ТО "не исключается возможность провоза наркотиков" (/з=0.8).
ПРАВИЛО_,4: ЕСЛИ "Количество граждан, проходящих таможенный осмотр, велико", ТО "контролер испытывает чувство усталости" (/4=0.6).
ПРАВИЛО_5: ЕСЛИ "Контролер испытывает чувство усталости", ТО "не исключается возможность провоза наркотиков" (/5=0.7).
ПРАВИЛО_6: ЕСЛИ "Гражданин подвергается таможенному досмотру" И "в отношении этого гражданина имеется агентурная информация", ТО "исключается возможность провоза наркотиков" (/б=0.95).
ПРАВИЛО_7: ЕСЛИ "Гражданин подвергается таможенному досмотру" И "контролер использует новейшие технические средства", ТО "исключается возможность провоза наркотиков" (/7=0.95).
При этом каждое из правил нечетких продукций имеет некоторый вес или коэффициент определенности Fb который определяет значимость правила или уверенность в степени истинности заключения, получаемого по отдельному нечеткому правилу. В качестве условий и заключений каждого из правил используются нечеткие высказывания.
Предположим, что на таможенном пункте контроля сложилась следующая текущая ситуация. Среди граждан, въезжающих в страну, находятся высокопоставленные чиновники (Т=0.2). Количество граждан, проходящих таможенный осмотр, невелико (Т=0.1). Таможенный пункт контроля оснащен новейшими техническими средствами (Т=0.8). Какая-либо предварительная информация о наличии наркотиков у отдельных граждан отсутствует (Т=0.9). Здесь в скобках указаны степени истинности соответствующих нечетких высказываний.
Проблема заключается в оценке истинности нечеткого заключения об исключении возможности провоза наркотиков через данный пункт контроля.
Рассмотрим один из возможных способов решения данной проблемы с использованием прямого метода вывода, правила max-min-композиции и нечеткой операции max-дизъюнкции для оценки одинаковых заключений. С этой целью последовательно рассмотрим все правила для получения соответствующих нечетких заключений.
Правило 1 позволяет получить нечеткое заключение о том, что "граждане будут подвергнуты таможенному досмотру". Степень истинности этого нечеткого высказывания равна: T=min{ 1-0.2, 1.0} = 0.8.
Правило 2 позволяет получить нечеткое заключение о том, что "граждане не будут подвергнуты таможенному досмотру". Степень истинности этого нечеткого высказывания равна: T=min{0.2, 0.9}= 0.2.
Правило 3 позволяет получить нечеткое заключение о том, что "не исключается возможность провоза наркотиков". Степень истинности этого нечеткого высказывания равна: T=min{0.2, 0.8}= 0.2.
Правило 4 позволяет получить нечеткое заключение о том, что "контролер испытывает чувство усталости". Степень истинности этого нечеткого высказывания равна: T=min{ 1-0.1, 0.6}= 0.6.
Правило 5 позволяет получить нечеткое заключение о том, что "не исключается возможность провоза наркотиков". Степень истинности этого нечеткого высказывания равна: T=min{0.6, 0.7}= 0.6.
Правило 6 позволяет получить нечеткое заключение о том, что "исключается возможность провоза наркотиков". Степень истинности этого нечеткого высказывания равна: T=min{min{0.8, 0.8}, 0.95}= 0.1.
Правило 7 позволяет получить нечеткое заключение о том, что "исключается возможность провоза наркотиков". Степень истинности этого нечеткого высказывания равна: T=min{min{0.8, 0.8}, 0.95}= 0.8.
Интересующее нас нечеткое высказывание является нечетким следствием правил 6 и 7. Объединяя степени истинности нечетких заключений, полученных с помощью этих правил, получим искомое значение истинности нечеткого высказывания о том, что для рассматриваемой ситуации "исключается возможность провоза наркотиков". Это значение равно: T=max{0.1, 0.8}= 0.8. Дополнительно можно получить степень истинности нечеткого высказывания о том, что "не исключается возможность провоза наркотиков". Это значение равно: Т=тах{0.6, 0.2}= 0.6 (см. правила 3 и 5).
Анализ этих значений истинности показывает, что сложившаяся ситуация на таможенном пункте контроля характеризуется высоким уровнем неопределенности и может потребовать от руководства принятия дополнительных мер. Одно из таких решений может быть связано со своевременной заменой контролеров с целью предотвращения их усталости. Это решение основано на том обстоятельстве, что относительно высокая степень истинности заключения "не исключается возможность провоза наркотиков" получается при использовании правила 5, условием которого является "контролер испытывает чувство усталости".
Примечание j
Рассмотренная система правил нечетких продукций не претендует на законченность и служит лишь иллюстрацией применения основных идей нечеткой логики. В этой связи следует отметить, что реальные экспертные системы, основанные на правилах нечетких продукций, могут содержать сотни отдельных правил. В этом случае собственно процесс получение нечетких заключе-
ний может превратиться в серьезную проблему, имеющую самостоятельное значение и требующую дополнительных средств для своего конструктивного решения.
Тем не менее, даже этот простой пример показывает, что системы правил нечетких продукций позволяют не только получить более адекватное решение проблемы, но и менее строго относиться к противоречивости и полноте исходных правил. Действительно, наличие совокупности правил, которая приводит в обычной ситуации к взаимно исключающим заключениям, в нечеткой продукционной системе еще не служит признаком ее противоречивости. Безусловно, это является одним из достоинств правил нечетких продукций.
Примечание j
Можно предложить в качестве упражнения получить нечеткие заключения для системы правил нечетких продукций из примера 6.5 с использованием других методов нечеткой композиции (6.23)—(6.28), а полученные результаты сравнить.
Пример 6.6. В заключение этой главы рассмотрим процесс получения заключений на основе непосредственного использования нечеткого отношения, которое было построено в примере 4.3. Этот пример характерен для задач технической диагностики и иллюстрирует два важных аспекта: особенности решения нечетких уравнений и неравенств, а также метод получения заключений с использованием посылок.
Напомним, что в примере 4.3 рассматривалось нечеткое отношение, которое содержательно описывает упрощенную ситуацию поиска неисправности в автомобиле. С этой целью в качестве предпосылок или причин неисправности рассматривалось множество X={xi, Х2, хз, хд}, в котором xi— "неисправность аккумулятора”, Х2— "неисправность карбюратора”, хз— "низкое качество бензина", Х4— "неисправность системы зажигания". В качестве второго универсума рассмотрим множество заключений или проявлений неисправности У={у|,у2,/з}, где yi— "двигатель не запускается”, уг— "двигатель работает неустойчиво". уз— "двигатель не развивает полной мощности”.
" 1
0.1
0.2’
0.8
0.9
1
0.7
0.8
0.5
1
0.5
0.2
Причинная взаимосвязь между множеством предпосылок и множеством следствий представлена в виде бинарного нечеткого отношения Р=\<хьур*, уь^.<х„ у>)^, за
данного в форме матрицы МР этого нечеткого отношения: МР =
Если результаты осмотра конкретного автомобиля показывают, что двигатель не запускается, хотя и работает устойчиво и развивает полную мощность, то эта информации может быть представлена в форме нечеткого множества, например, $={<yi, 0.9>, <j’2, 0.1>, <уз, 0.2>}. Задача состоит в том, чтобы определить воз-
можные причины неустойчивой работы двигателя, используя для этого экспертную информацию в форме нечеткого отношения V.
Другими словами, в этой задаче, характерной для задач технической диагностики, необходимо найти такое нечеткое множество ^1={<Л|, ця(л|)>, <хг, ц^(хг)>, <лз, Ця(хз)>, <Л4, Ця(%4)>}, которое соответствовало бы нечеткому множеству ‘В. С этой целью представим нечеткое множество В в форме вектора 6 = (0.9 0.1 0.2), компоненты которого равны значениям функции принадлежности соответствующих элементов. Нечеткое множество Я также представим в форме вектора a = = (ai, аг, аз, ад), компоненты которого неизвестны и требуется определить. Базовой предпосылкой для решения этой задачи является предположение о том, что компоненты вектора а должны удовлетворять следующему условию:
а ® Мр = Ь,(6.29)
где "®" — знак композиции, соответствующий одному из методов (6.22)—(6.28). Если в качестве метода нечеткой композиции использовать max-min-компо- зицию (6.22), то выражение (6.29) преобразуется в следующую систему так называемых нечетких уравнений".
(1 a«i)v(0.8a«2)v(0.7a«3)v(I а«4) = 0.9;(6.30)
(0.1a<7j)v(0.9a«2)v(0.8a<73)v(0.5a<74) = 0.1;(6.31)
(0.2a<7i)v(1a«2)v(0.5a«3)v(0.2a<74) = 0.2.(6.32)
Здесь связка "v" используется для сокращения записи операции max, а связка "а" — для сокращения записи операции min. Необходимо решить эту систему уравнений, т. е. найти такие значения ai, аг, аз, 04, которые бы удовлетворяли соотношениям (6.30)—(6.32).
Прежде всего, следует отметить, что в первом уравнении (6.30) второй и третий компоненты не оказывают влияния на результат правой части. Откуда следует, что (Iaoi) v(1a«4) = 0.9 или aiva4 = 0.9. Это приводит к необходимости рассмотреть два случая: <71=0.9 и а4 = 0.9. Оба эти случая удовлетворяют (6.32).
В то же время первый случай <71=0.9 удовлетворяет (6.31), а второй «4=0.9— не удовлетворяет (6.31), откуда следует, что «4<0.1. Из (6.31) также следует, что: «2<0.1 и «з<0.1. Эти неравенства и являются решением поставленной задачи.
Таким образом, решением задачи диагностики является произвольный вектор значений функций принадлежности а = (ai, аг, аз, 04), компоненты которого удовлетворяют условиям: <71=0.9, аг<0.1, «з<0.1, «4<0.1. Для рассматриваемой ситуации этого может оказаться и достаточно, поскольку первое значение p^(xi) = = 0.9 явно указывает на неисправность аккумулятора.
Примечание
В качестве упражнения предлагается решить аналогичную задачу, используя другие методы композиции (6.23)—(6.28) и другие начальные условия осмотра
автомобиля. Полученные результаты сравнить. При необходимости можно дополнить экспертные знания, расширив рассматриваемое нечеткое отношение на большее число элементов базисных универсумов X и У. В качестве еще одного упражнения можно предложить преобразовать нечеткое отношение из примера 6.6 в совокупность правил нечетких продукций и выполнить вывод заключений для аналогичных исходных данных.
Не исключая возможности практического использования рассмотренных здесь нечетких продукционных систем и нечетких отношений, следует отметить, что наибольшее практическое применение нашли так называемые системы нечеткого вывода, в которых сделаны некоторые дополнительные предположения о форме нечетких высказываний, используемых в качестве условий и заключений в правилах нечетких продукций. Именно эти системы нечеткого вывода, рассмотрению которых посвящена следующая глава, оказываются наиболее адекватным средством формализации экспертных знаний в самых различных проблемных областях и вывода соответствующих заключений.
Глава 7
Системы нечеткого вывода
Нечеткий вывод занимает центральное место в нечеткой логике и системах нечеткого управления. Процесс нечеткого вывода представляет собой некоторую процедуру или алгоритм получения нечетких заключений на основе нечетких условий или предпосылок с использованием рассмотренных выше понятий нечеткой логики. Этот процесс соединяет в себе все основные концепции теории нечетких множеств: функции принадлежности, лингвистические переменные, нечеткие логические операции, методы нечеткой импликации и нечеткой композиции.
Системы нечеткого вывода предназначены для реализации процесса нечеткого вывода и служат концептуальным базисом всей современной нечеткой логики. Достигнутые успехи в применении этих систем для решения широкого класса задач управления послужили основой становления нечеткой логики как прикладной науки с богатым спектром приложений. Системы нечеткого вывода позволяют решать задачи автоматического управления, классификации данных, распознавания образов, принятия решений, машинного обучения и многие другие.
Поскольку разработка и применение систем нечеткого вывода имеет междисциплинарный характер, данная проблематика исследований тесно взаимосвязана с целым рядом других научно-прикладных направлений, таких как: нечеткое моделирование, нечеткие экспертные системы, нечеткая ассоциативная память, нечеткие логические контроллеры, нечеткие регуляторы и просто нечеткие системы.
Базовая архитектура систем нечеткого вывода
Рассматриваемые в настоящей главе системы нечеткого вывода являются частным случаем продукционных нечетких систем или систем нечетких правил продукций, в которых условия и заключения отдельных правил формулируются в форме нечетких высказываний относительно значений тех или иных лингвистических переменных. Поскольку нечеткие лингвистические высказывания имеют фундаментальное значение в контексте современной нечеткой логики, изучение систем нечеткого вывода начнем именно с них.
Нечеткие лингвистические высказывания
Нечеткое лингвистическое высказывание. Нечетким лингвистическим высказыванием будем называть высказывания следующих видов.
Высказывание "Р есть а", где р— наименование лингвистической переменной, а— ее значение, которому соответствует отдельный лингвистический терм из базового терм-множества Тлингвистической переменной р.
Высказывание "Р есть Va", где V — модификатор, соответствующий таким словам, как: "ОЧЕНЬ", "БОЛЕЕ ИЛИ МЕНЕЕ", "МНОГО БОЛЬШЕ" и другим, которые могут быть получены с использованием процедур G и М данной лингвистической переменной.■
Составные высказывания, образованные из высказываний видов I и 2 и нечетких логических операций в форме связок: "И", "ИЛИ", "ЕСЛИ-TO", "НЕ".
Поскольку в системах нечеткого вывода нечеткие лингвистические высказывания занимают центральное место, далее будем их называть просто нечеткими высказываниями.
П р и м е р 7.1. Рассмотрим некоторые примеры нечетких высказываний. Первое из них — "скорость автомобиля высокая” представляет собой нечеткое высказывание первого вида, в рамках которого лингвистической переменной "скорость автомобиля” присваивается значение "высокая”. При этом предполагается, что на универсальном множестве X переменной "скорость автомобиля” определен соответствующий лингвистический терм "высокая", который задается в форме функции принадлежности некоторого нечеткого множества (например, рис. 5.2).
Нечеткое высказывание второго вида "скорость автомобиля очень высокая" означает, что лингвистической переменной "скорость автомобиля” присваивается значение "высокая" с модификатором "ОЧЕНЬ", который изменяет значение соответствующего лингвистического терма "высокая" на основе использования некоторой расчетной формулы, например (3.47) для операции концентрации CON(54) нечеткого множества 54 для терма "высокая".
Нечеткое высказывание второго вида "скорость автомобиля более или .менее высокая" означает, что лингвистической переменной "скорость автомобиля" присваивается значение "высокая" с модификатором "БОЛЕЕ ИЛИ МЕНЕЕ", который изменяет значение соответствующего лингвистического терма "высокая” на основе использования некоторой расчетной формулы, например (3.48) для операции растяжения DILC54) нечеткого множества 54 для терма "высокая".
Ниже на рис. 7.1. изображен пример функции принадлежности терм-множества "средняя" лингвистической переменной "скорость автомобиля" (а) и определение значений функций принадлежности этого же терм-множества для модификаторов "ОЧЕНЬ" (б) и "БОЛЕЕ МЕНЕЕ" (в).
Примечание
Поскольку в настоящее время отсутствует единая точка зрения на применение других модификаторов, соответствующие расчетные формулы в случае их ис-
пользования в конкретных системах нечеткого вывода принято указывать явно в рамках процедур G и М соответствующей лингвистической переменной. Несмотря на это, в рассматриваемых ниже правилах нечетких продукций стараются избегать употребления модификаторов даже на этапе их построения.
Рис. 7.1. Применение модификаторов "ОЧЕНЬ" (б) и "БОЛЕЕ МЕНЕЕ" (в) к терму "средняя скорость" (а)
Наконец, нечеткое высказывание третьего вида "скорость автомобиля высокая м расстояние до перекрестка близкое" означает, что одной лингвистической пере-
менной "скорость автомобиля" присваивается значение ’’высокая", а другой лингвистической переменной "расстояние до перекрестка" присваивается значение "близкое". Эти нечеткие высказывания первого вида соединены логической операцией нечеткая конъюнкция (операцией нечеткое "И").
Примечание
При записи нечетких высказываний в форме структурируемого текста на языке FCL используется специальная связка "IS". В этом случае нечеткое высказывание "давление большое" может быть представлено в виде "давление IS большое", что может оказаться более удобным для последующей интерпретации.
Правила нечетких продукций в системах нечеткого вывода
Как уже отмечалось в начале этой главы, рассматриваемые здесь системы нечеткого вывода являются частным случаем продукционных нечетких систем или систем нечетких правил продукций вида (6.21), определение которых было дано ранее в главе 6. Основная особенность нечетких правил, используемых в системах нечеткого вывода,— условия и заключения отдельных нечетких правил формулируются в форме нечетких высказываний вида 1—3 относительно значений тех или иных лингвистических переменных.
Таким образом, всюду далее под правилом нечеткой продукции или просто — нечеткой продукцией будем понимать выражение следующего вида: (/) : Q; Р; А=>В; S, F, N, в котором все компоненты определены согласно (6.21), за исключением того, что условие ядра (антецедент) Я и заключение ядра (консеквент) ‘В представляют собой нечеткие лингвистические высказывания вида 1—3.
Простейший вариант правила нечеткой продукции, который наиболее часто используется в системах нечеткого вывода, может быть записан в форме:
ПРАВИЛО <#>: ЕСЛИ "Р। есть а'", ТО "02 есть а"".(7.1)
Здесь нечеткое высказывание "01 есть а'" представляет собой условие данного правила нечеткой продукции, а нечеткое высказывание "02 есть а."" — нечеткое заключение данного правила. При этом считается, что 01*02.
Примечание
Запись простейшего варианта правила нечеткой продукции в англоязычной транскрипции: RULE <#>: IF "01 IS a'", THEN "02 IS a"" считается эквивалентной записи (7.1), если не оговорено обратное. Использование той или иной записи определяется соображениями удобства или необходимости следования некоторым стандартным нотациям.
Система нечетких правил продукций. Система нечетких правил продукций или продукционная нечеткая система представляет собой некого-
рое согласованное множество отдельных нечетких продукций или правил нечетких продукций в форме "ЕСЛИ Я, ТО S" (или в виде: "IF Я THEN S"), где Я и ‘В— нечеткие лингвистические высказывания вида 1, 2 или 3. Два последних случая нечетких высказываний требуют дополнительного пояснения.
Рассмотрим вариант использования в качестве условия или заключения в некотором правиле нечеткой продукции нечеткого высказывания вида 2, т. е. вида: "Р есть Va", где V — модификатор, определяемый процедурами G и М лингвистической переменной р. Пусть терму а соответствует нечеткое множество Я. В этом случае исходное нечеткое высказывание "Р есть Va" можно преобразовать к виду 1 в форме нечеткого высказывание "Р есть а'", где терм а' получается на основе применения определенной процедурами G и М операции к нечеткому множеству JV Полученное в результате подобной операции нечеткое множество ЗМ принимается за значение терм-множества а'.
Если в качестве условия или заключения используются составные нечеткие высказывания, т. е. образованные из высказываний видов 1 и 2 и нечетких логических операций в форме связок: "И", "ИЛИ", "ЕСЛИ-TO", "НЕ", то ситуация несколько усложняется. Поскольку вариант использования нечетких высказываний вида 2 сводится к нечетким высказываниям вида 1, то достаточно рассмотреть сложные высказывания, в которых нечеткими логическими операциями соединены только нечеткие высказывания вида 1.
Эта ситуация может соответствовать простейшему случаю, когда нечеткими логическими операциями соединены нечеткие высказывания, относящиеся к одной и той же лингвистической переменной, т. е. в форме: "Р есть а'" ОП "р есть а"", где ОП — некоторая из бинарных операций нечеткой конъюнкции "И" или нечеткой дизъюнкции "ИЛИ".
£ Примечание
Поскольку нечеткая импликация и нечеткая эквивалентность могут быть выражены через операции нечеткой конъюнкции и нечеткой дизъюнкции, а нечеткое отрицание в данном контексте является по сути модификатором, ограничимся рассмотрением только двух указанных выше нечетких операций.
Очевидно, в этом простейшем случае нечеткое высказывание "Р есть а'" И "Р есть а"" эквивалентно нечеткому высказыванию "Р есть а*", где терм-мно- жеству а* соответствует нечеткое множество Я*, равное пересечению нечетких множеств .Я' и Я", которые соответствуют термам а' и а". При этом операция пересечения определяется одним из ранее рассмотренных способов (3.3), (3.19), (3.31), (3.33), (3.35).
Соответственно, нечеткое высказывание "р есть а'" ИЛИ "Р есть а"" эквивалентно нечеткому высказыванию "Р есть а*", где терм-множеству а* соответствует нечеткое множество Я*, равное объединению нечетких множеств 5V и Я”, которые соответствуют термам а' и а". При этом операция объединения определяется одним из ранее рассмотренных способов (3.4), (3.20), (3.32), (3.34), (3.35).
Пример 7.2. Рассмотрим составное нечеткое высказывание вида 3: "скорость автомобиля средняя и скорость автомобиля высокая". Ему соответствуют два нечетких высказывания первого вида, соединенные логической операцией нечеткой конъюнкции. Тогда исходное нечеткое высказывание эквивалентно нечеткому высказыванию первого вида: "скорость автомобиля средняя и высокая". Функция принадлежности терма "средняя и высокая” изображена на рис. 7.2, б более темным фоном, при этом результат нечеткой конъюнкции определялся по формуле (3.3).
Рассмотрим аналогичное составное нечеткое высказывание вида 3: "скорость автомобиля средняя или скорость автомобиля высокая". Ему также соответствуют два нечетких высказывания первого вида, соединенные логической операцией нечеткой дизъюнкции. Тогда исходное нечеткое высказывание эквивалентно нечеткому высказыванию первого вида: "скорость автомобиля средняя или высокая". Функция принадлежности терма "средняя или высокая" изображена на рис. 7.2, в более темным фоном, при этом результат нечеткой дизъюнкции определялся по формуле (3.4).
Во-вторых, ситуация может соответствовать более сложному случаю, когда нечеткими логическими операциями соединены нечеткие высказывания, относящиеся к разным лингвистическим переменным в условии правила нечеткой продукции, т. е. в форме: "Pi есть а'" ОП "Рг есть а"", где ОП — некоторая из бинарных операций нечеткой конъюнкции "И" или нечеткой дизъюнкции "ИЛИ", a Pi и Рг—различные лингвистические переменные.
Этот вариант правил нечетких продукций может быть записан в следующей общей форме:
ПРАВИЛО <#>: ЕСЛИ "Pi есть а'" И "Рг есть а"" ТО "Рз есть v" или (7.2)
ПРАВИЛО <#>: ЕСЛИ "Pi есть а'" ИЛИ "Рг есть а"" ТО "Рз есть v".
Здесь нечеткие высказывания: "Pi есть а'" И "Рг есть а"", "Pi есть а'" ИЛИ "Рг есть а""представляют собой условия правил нечетких продукций, а нечеткое высказывание "Рз есть v" — заключение правил. При этом считается, что Р1*Рг*Рз, а каждое из нечетких высказываний "Pi есть а'", "Рг есть а"" называют подусловиями данных правил нечетких продукций.
В случае правил нечетких продукций в форме (7.2) необходимо использовать один из методов агрегирования условий в левой части этих правил. Соответствующие методы агрегирования рассматриваются ниже при описании этапа агрегирования.
Наконец, нечеткими логическими операциями могут быть соединены нечеткие высказывания, относящиеся к разным лингвистическим переменным в заключении правила нечеткой продукции, т. е. в форме: "Pi есть а'" ОП "Рг есть а"", где ОП — некоторая из бинарных операций нечеткой конъюнкции "И" или нечеткой дизъюнкции "ИЛИ", a Pi и рг—различные лингвистические переменные.
ббРис. 7.2. Преобразование составных нечетких высказываний, относящихся к одной и той же лингвистической переменнойРис. 7.2. Преобразование составных нечетких высказываний, относящихся к одной и той же лингвистической переменной
б
б
Рис. 7.2. Преобразование составных нечетких высказываний, относящихся к одной и той же лингвистической переменной
Рис. 7.2. Преобразование составных нечетких высказываний, относящихся к одной и той же лингвистической переменной
Этот вариант правил нечетких продукций может быть записан в следующей общей форме:
ПРАВИЛО <#>: ЕСЛИ "р, есть а'" ТО "р2 есть а"" И "рз есть V*
ИЛИ ПРАВИЛО <#>: ЕСЛИ "pi есть а'" ТО "р2 есть а"" ИЛИ "рз есть v". И
Здесь нечеткое высказывание "Pi есть а'" представляет собой условие правил нечетких продукций, а нечеткие высказывания: "р2 есть а"" И "рз есть v", "Рг есть а"" ИЛИ "рз есть v" — заключения данных правил. При этом считается, что Р1*р2*Рз, а каждое из нечетких высказываний "р2 есть а"", "Рз есть v" называют подзаключениями данного правила нечеткой продукции.
В случае правил нечетких продукций в форме (7.3) необходимо использовать один из методов аккумуляции заключений в правилах нечетких продукций. Эти методы также рассматриваются ниже при описании этапа аккумуляции.
Примечание
Следует отметить, что если использование правил нечетких продукций в форме (7.2) является широко распространенным, то записи правил нечетких продукций в форме (7.2) стараются избегать, преобразуя их к форме (7.1) или (7.2) на этапе построения базы правил нечетких продукций. Примеры конкретных правил представлены в разд. 7.4 настоящей главы.
Механизм или алгоритм вывода в системах нечеткого вывода
Механизм или алгоритм вывода является следующей важной частью базовой архитектуры систем нечеткого вывода. Применительно к системам нечеткого вывода механизм вывода представляет собой конкретизацию рассмотренных ранее методов прямого и обратного вывода заключений в системах нечетких продукций (см. главу 6). В данном случае алгоритм вывода оперирует правилами нечетких продукций, в которых условия и заключения записаны.в форме нечетких лингвистических переменных.
Для получения заключений в системах нечеткого вывода предложены несколько алгоритмов, характерные особенности и примеры применения которых изложены ниже в настоящей главе. Описание этих алгоритмов базируется на разделении процесса вывода на ряд последовательных этапов, которые рассматриваются в следующем разделе. Тем самым оказывается возможным не только достичь определенной систематизации понятий нечеткой логики, но и получить некоторую общую схему, которая позволяет формировать и другие алгоритмы нечеткого вывода.
Основные этапы нечеткого вывода
Говоря о нечеткой логике, чаще всего имеют в виду системы нечеткого вывода, которые широко используются для управления техническими устройствами и процессами. Разработка и применение систем нечеткого вывода включают в себя ряд этапов, реализация которых выполняется с помощью рассмотренных ранее основных положений нечеткой логики.
Информацией, которая поступает на вход системы нечеткого вывода, являются измеренные некоторым образом входные переменные. Эти переменные соответствуют реальным переменным процесса управления. Информация, которая формируется на выходе системы нечеткого вывода, соответствует выходным переменным, которыми являются управляющие переменные процесса управления.
Системы нечеткого вывода предназначены для преобразования значений входных переменных процесса управления в выходные переменные на основе использования нечетких правил продукций. Для этого системы нечеткого вывода должны содержать базу правил нечетких продукций и реализовывать нечеткий вывод заключений на основе посылок или условий, представленных в форме нечетких лингвистических высказываний.
Таким образом, основными этапами нечеткого вывода являются (рис. 7.3).
Формирование базы правил систем нечеткого вывода.
Фаззификация входных переменных.
Агрегирование подусловий в нечетких правилах продукций.
Рис. 7.3. Диаграмма деятельности процесса нечеткого вывода в форме диаграммы деятельности языка UML
Активизация или композиция подзаключений в нечетких правилах продукций.
Аккумулирование заключений нечетких правил продукций.
Ниже рассматриваются основные особенности каждого из этих этапов и приводятся простые примеры их выполнения.
Формирование базы правил систем нечеткого вывода
База правил систем нечеткого вывода предназначена для формального представления эмпирических знаний или знаний экспертов в той или иной проблемной области. В системах нечеткого вывода используются правила нечетких продукций, в которых условия и заключения сформулированы в терминах нечетких лингвистических высказываний рассмотренных выше видов. Совокупность таких правил будем далее называть базами правил нечетких продукций.
База правил нечетких продукций. База правил нечетких продукций представляет собой конечное множество правил нечетких продукций, согласованных относительно используемых в них лингвистических переменных. Наиболее часто база правил представляется в форме структурированного текста:
ПРАВИЛО!: ЕСЛИ "Условие_1" ТО "Заключение!" (Fi) ПРАВИЛО_2: ЕСЛИ "Условие_2" ТО "Заключение_2" (F>)
...(7.4)
ПРАВИЛО_л: ЕСЛИ "Уcлoвиes" ТО "Заключение^?" (F„)
или в эквивалентной форме:
RULE_1: IF Condition_l THEN Conclusion_l (Fi)
RULE_2: IF Condition_2 THEN Conclusion_2 ^F^
...(7.5)
RULEs: IF Conditions THEN Conclusions (F„)
Здесь через F, (ze{l, 2,..., п}) обозначены коэффициенты определенности или весовые коэффициенты соответствующих правил. Эти коэффициенты могут принимать значения из интервала [0, 1]. В случае, если эти весовые коэффициенты отсутствуют, удобно принять, что их значения равны 1.
Согласованность правил относительно используемых лингвистических переменных означает, что в качестве условий и заключений правил могут использоваться только нечеткие лингвистические высказывания вида (7.2) и (7.3), при этом в каждом из нечетких высказываний должны быть определены функции принадлежности значений терм-множества для каждой из лингвистических переменных.
Входные и выходные лингвистические переменные. В системах нечеткого вывода лингвистические переменные, которые используются в нечетких высказываниях подусловий правил нечетких продукций, часто называют входными лингвистическими переменными, а переменные, которые ис-
пользуются в нечетких высказываниях подзаключений правил нечетких продукций, часто называют выходными лингвистическими переменными.
Таким образом, при задании или формировании базы правил нечетких продукций необходимо определить: множество правил нечетких продукций: P={/?i, /?2,..., R^ в форме (7.5), множество входных лингвистических переменных: K={pi, Рг,..., Р,„} и множество выходных лингвистических переменных: FK={©i, сог,..., о,}. Тем самым база правил нечетких продукций считается заданной, если заданы множества Р, V, W.
Напомним, что входная р,е V или выходная (OyG W лингвистическая переменная считается заданной или определенной, если для нее определено базовое терм- множество с соответствующими функциями принадлежности каждого терма, а также две процедуры G и М. Наиболее распространенным случаем является использование в качестве функций принадлежности термов треугольных или трапециевидных функций принадлежности, рассмотренных в главе 2. При этом для удобства записи применяют специальные сокращения для наименования отдельных термов входных и выходных лингвистических переменных (табл. 7.1).
Таблица 7.1. Общепринятые сокращения для значений основных термов лингвистических переменных в системах нечеткого вывода
Символическое обозначение
Англоязычная нотация
Русскоязычная нотация
NB
Negative Big
Отрицательное большое
NM
Negative Middle
Отрицательное среднее
NS
Negative Small
Отрицательное малое
ZN
Zero Negative
Отрицательное близкое к нулю
Z
Zero
Нуль, близкое к нулю
ZP
Zero Positive
Положительное близкое к нулю
PS
Positive Small
Положительное малое
РМ
Positive Middle
Положительное среднее
РВ
Positive Big
Положительное большое
На формирование базы правил систем нечеткого вывода часто оказывают влияние некоторые дополнительные факторы, которые определяются спецификой решаемой задачи или используемого алгоритма нечеткого вывода. Эти специфические особенности и соответствующие им требования, предъявляемые к базе правил, будут отмечены ниже при рассмотрении алгоритмов вывода и примеров систем нечеткого управления в разд. 7.4.
Примечание ^
Изложенные здесь понятия базы правил нечетких продукций в максимальной степени соответствуют алгоритму вывода Мамдани, который в настоящее время получил наибольшее практическое применение в задачах нечеткого моделирования.
Фаззификация (Fuzzification)
В контексте нечеткой логики под фаззификацией понимается не только отдельный этап выполнения нечеткого вывода, но и собственно процесс или процедура нахождения значений функций принадлежности нечетких множеств (термов) на основе обычных (не нечетких) исходных данных. Фаззификацию еще называют введением нечеткости.
Целью этапа фаззификации является установление соответствия между конкретным (обычно — численным) значением отдельной входной переменной системы нечеткого вывода и значением функции принадлежности соответствующего ей терма входной лингвистической переменной. После завершения этого этапа для всех входных переменных должны быть определены конкретные значения функций принадлежности по каждому из лингвистических термов, которые используются в подусловиях базы правил системы нечеткого вывода.
Формально процедура фаззификации выполняется следующим образом. До начала этого этапа предполагаются известными конкретные значения всех входных переменных системы нечеткого вывода, т. е. множество значений l/l={ai, аг,..., о,,,}. В общем случае каждое а^Х,, где X,— универсум лингвистической переменной Р,-. Эти значения могут быть получены либо от датчиков, либо некоторым другим, внешним по отношению к системе нечеткого вывода способом.
Далее рассматривается каждое из подусловий вида "Р, есть а'" правил системы нечеткого вывода, где а' — некоторый терм с известной функцией принадлежности ц(х). При этом значение «,- используется в качестве аргумента ц(а), тем самым находится количественное значение д/^ц^). Это значение и является результатом фаззификации подусловия "Р, есть а'".
Этап фаззификации считается законченным, когда будут найдены все значения Ь'=у^а,) для каждого из подусловий всех правил, входящих в рассматриваемую базу правил системы нечеткого вывода. Это множество значений обозначим через S={6/}. При этом если некоторый терм а" лингвистической переменной Р, не присутствует ни в одном из нечетких высказываний, то соответствующее ему значение функции принадлежности не находится в процессе фаззификации.
Примечание
Если в некотором подусловии встречается терм с модификатором, то процедура фаззификации выполняется аналогичным образом применительно к функции принадлежности терма после выполнения операции, соответствующей данному модификатору.
Пример 7.3. Для иллюстрации выполнения этого этапа рассмотрим пример процесса фаззификации трех нечетких высказываний: "скорость автомобиля малая”, "скорость автомобиля средняя", "скорость автомобиля высокая" для входной лингвистической переменной Pi — скорость движения автомобиля (см. пример 5.1). Им соответствуют нечеткие высказывания первого вида: "Pi есть он", "Pi есть «2", "Pi есть аз". Предположим, что текущая скорость автомобиля равна 55 км/ч, т. е. а\ = 55 км/ч.
Рис. 7.4. Пример фаззификации входной лингвистической переменной "скорость автомобиля" для трех нечетких высказываний
Тогда фаззификация первого нечеткого высказывания дает в результате число О, которое означает его степень истинности и получается подстановкой значения 01= 55 км/ч в качестве аргумента функции принадлежности терма он (рис. 7.4, а). Фаззификация второго нечеткого высказывания дает в результате число 0.67 (приближенное значение), которое означает его степень истинности и получается подстановкой значения ai= 55 км/ч в качестве аргумента функции принадлежности терма аг (рис. 7.4, б). Фаззификация третьего нечеткого высказывания дает в результате число 0, которое означает его степень истинности и получается подстановкой значения а\ = 55 км/ч в качестве аргумента функции принадлежности терма оз (рис. 7.4, в).
Агрегирование (Aggregation)
Агрегирование представляет собой процедуру определения степени истинности условий по каждому из правил системы нечеткого вывода.
Формально процедура агрегирования выполняется следующим образом. До начала этого этапа предполагаются известными значения истинности всех подусловий системы нечеткого вывода, т. е. множество значений ^= {/>/}. Далее рассматривается каждое из условий правил системы нечеткого вывода. Если условие правила представляет собой нечеткое высказывание вида 1 или 2, то степень его истинности равна соответствующему значению Ь-.
Если же условие состоит из нескольких подусловий вида (7.2), причем лингвистические переменные в подусловиях попарно не равны друг другу, то определяется степень истинности сложного высказывания на основе известных значений истинности подусловий. При этом для определения результата нечеткой конъюнкции или связки "И" может быть использована одна из формул (6.2)—(6.5), а для определения результата нечеткой дизъюнкции или связки "ИЛИ" может быть использована одна из формул (6.6)—(6.9). При этом значения Ь* используются в качестве аргументов соответствующих логических операций. Тем самым находятся количественные значения истинности всех условий правил системы нечеткого вывода.
Этап агрегирования считается законченным, когда будут найдены все значения Ь" для каждого из правил Rk, входящих в рассматриваемую базу правил Р системы нечеткого вывода. Это множество значений обозначим через В"=\Ь\", bi",...,b„"V
Примечание j
Следует отметить, что при использовании расчетных формул для определения результатов нечеткой конъюнкции и нечеткой дизъюнкции целесообразно применять попарно согласованные методы расчета для всех правил системы нечетких продукций. Так, например, если в некоторой системе нечеткого вывода результат нечеткой конъюнкции определяется по формуле алгебраического произведения (6.3), то для определения результата нечеткой дизъюнкции предпочтительно использовать алгебраическую сумму (6.7).
Пример 7.4. Для иллюстрации выполнения этого этапа рассмотрим пример процесса агрегирования двух нечетких высказываний: "скорость автомобиля средняя" И "кофе горячий" и "скорость автомобиля средняя" ИЛИ "кофе горячий" для входной лингвистической переменной Pi — скорость движения автомобиля и Рг — температура кофе. Предположим, что текущая скорость автомобиля равна 55 км/ч, т. е. ai= 55 км/ч, а температура кофе равна ш=70 °C.
Тогда агрегирование первого нечеткого высказывания с использованием операции нечеткой конъюнкции (6.2) дает в результате число 6i"= 0.67 (приближенное значение), которое означает его степень истинности и получается как минимальное из значений 0.67 и 0.8 (рис. 7.5, а). Агрегирование второго нечеткого высказывания с использованием операции нечеткой дизъюнкции (6.6) дает в результате число 6i"= 0.8, которое означает его степень истинности и получается как максимальное из значений 0.67 и 0.8 (рис. 7.5, б).
а1а1ббРис. 7.5. Примеры агрегирования подусловий для двух нечетких высказываний "скорость автомобиля средняя" И "температура кофе высокая" (а) и "скорость автомобиля средняя" ИЛИ "температура кофе высокая" (б)Рис. 7.5. Примеры агрегирования подусловий для двух нечетких высказываний "скорость автомобиля средняя" И "температура кофе высокая" (а) и "скорость автомобиля средняя" ИЛИ "температура кофе высокая" (б)
а1
а1
б
б
Рис. 7.5. Примеры агрегирования подусловий для двух нечетких высказываний "скорость автомобиля средняя" И "температура кофе высокая" (а) и "скорость автомобиля средняя" ИЛИ "температура кофе высокая" (б)
Рис. 7.5. Примеры агрегирования подусловий для двух нечетких высказываний "скорость автомобиля средняя" И "температура кофе высокая" (а) и "скорость автомобиля средняя" ИЛИ "температура кофе высокая" (б)
Активизация (Activation)
Активизация в системах нечеткого вывода представляет собой процедуру или процесс нахождения степени истинности каждого из подзаключений правил нечетких продукций. Активизация в общем случае во многом аналогична компо-
зиции нечетких отношений, но не тождественна ей. Поскольку в системах нечеткого вывода используются лингвистические переменные, то формулы (6.22)— (6.28) для нечеткой композиции теряют свое значение. В действительности при формировании базы правил системы нечеткого вывода задаются весовые коэфг фициенты Fj для каждого правила (по умолчанию предполагается, если весовой коэффициент не задан явно, то его значение равно 1).
Формально процедура активизации выполняется следующим образом. До начала этого этапа предполагаются известными значения истинности всех условий системы нечеткого вывода, т. е. множество значений B"=Vb\", Ьг",..., Ьп"А и значения весовых коэффициентов Ft для каждого правила. Далее рассматривается каждое из заключений правил системы нечеткого вывода. Если заключение правила представляет собой нечеткое высказывание вида 1 или 2, то степень его истинности равна алгебраическому произведению соответствующего значения Ь" на весовой коэффициент F^
Если же заключение состоит из нескольких подзаключений вида (7.3), причем лингвистические переменные в подзаключениях попарно не равны друг другу, то степень истинности каждого из подзаключений равна алгебраическому произведению соответствующего значения Ь" на весовой коэффициент F;. Таким образом, находятся все значения ск степеней истинности подзаключений для каждого из правил Rk, входящих в рассматриваемую базу правил Р системы нечеткого вывода. Это множество значений обозначим через C={ci, сг,..., с^, где q— общее количество подзаключений в базе правил.
Примечание
При этом не исключается случай, когда весовой коэффициент Е, может быть задан индивидуально для отдельных подзаключений. При этом процедура активизации остается прежней.
После нахождения множества С={а, сг,..., с^ определяются функции принадлежности каждого из подзаключений для рассматриваемых выходных лингвистических переменных. Для этой цели можно использовать один из методов, являющихся модификацией того или иного метода нечеткой композиции:
min-активизация:
Р'О) = min{c,-, цС)};(7-6)
prod-активизация:
m'CO^g-мОО;(7.7)
average-активизация:
ц'О) = O-S-fc+nO')),(7.8)
где ц(у) — функция принадлежности терма, который является значением некоторой выходной переменной со,, заданной на универсуме У.
Этап активизации считается законченным, когда для каждой из выходных лингвистических переменных, входящих в отдельные подзаключения правил нечет-
ких продукций, будут определены функции принадлежности нечетких множеств их значений, т. е. совокупность нечетких множеств: Ci, Ci,...,Cq, где q—общее количество подзаключений в базе правил системы нечеткого вывода.
Примечание
Следует отметить, что кроме методов (7.6)—(7.8) для выполнения активизации могут быть предложены и другие способы, основанные на модификации различных операций нечеткой композиции. Здесь приводятся лишь те из них, которые нашли наибольшее практическое применение в задачах нечеткого моделирования.
Пример 7.5. Для иллюстрации выполнения этого этапа рассмотрим пример процесса активизации заключения в следующем правиле нечеткой продукции (это правило вряд ли имеет целевое применение и используется формальным образом):
ЕСЛИ "скорость автомобиля средняя" ТО "кофе горячий"
Входной лингвистической переменной в этом правиле является Pi — скорость движения автомобиля, а выходной переменной является Рг—температура кофе. Предположим, что текущая скорость автомобиля равна 55 км/ч, т. е. а\= 55 км/ч.
Рис. 7.6. Пример активизации заключения для правила нечеткой продукции
Поскольку агрегирование условия этого правила дает в результате Ь\”= 0.67, а весовой коэффициент равен 1 (по умолчанию), то значение 0.67 будет использоваться в качестве ci для получения результата активизации. Результат, полученный методом min-активизации (7.6), изображен на рис. 7.6, а более темным цве-
том, а результат, полученный методом prod-активизации (7.7), изображен на рис. 7.6, б более темным цветом. Следует помнить, что в этом примере в отличие от предыдущего "температура кофе" — выходная лингвистическая переменная.
Аккумуляция (Accumulation)
Аккумуляция или аккумулирование в системах нечеткого вывода представляет собой процедуру или процесс нахождения функции принадлежности для каждой из выходных лингвистических переменных множества И^ан, сиз,..., <в,}.
Цель аккумуляции заключается в том, чтобы объединить или аккумулировать все степени истинности заключений (подзаключений) для получения функции принадлежности каждой из выходных переменных. Причина необходимости выполнения этого этапа состоит в том, что подзаключения, относящиеся к одной и той же выходной лингвистической переменной, принадлежат различным правилам системы нечеткого вывода.
Формально процедура аккумуляции выполняется следующим образом. До начала этого этапа предполагаются известными значения истинности всех подзаключений для каждого из правил Rk, входящих в рассматриваемую базу правил Р системы нечеткого вывода, в форме совокупности нечетких множеств: Ci, Сг,...,Су, где q — общее количество подзаключений в базе правил. Далее последовательно рассматривается каждая из выходных лингвистических переменных с^е W и относящиеся к ней нечеткие множества: C,i, Cp.,...,Cjq. Результат аккумуляции для выходной лингвистической переменной со, определяется как объединение нечетких множеств Ср, Cji,...,Cjq по одной из формул (3.4), (3.20), (3.32), (3.34), (3.35).
Этап аккумуляции считается законченным, когда для каждой из выходных лингвистических переменных будут определены итоговые функции принадлежности нечетких множеств их значений, т. е. совокупность нечетких множеств: СУ, СУ,.-,С/, где л— общее количество выходных лингвистических переменных в базе правил системы нечеткого вывода.
Примечание
Следует отметить, что кроме методов (3.4), (3.20), (3.32), (3.34), (3.35) для выполнения аккумуляции могут быть предложены и другие способы, основанные на модификации различных операций объединения нечетких множеств. Выбор того или иного метода определяется спецификой задачи нечеткого моделирования.
Пример 7.6. Для иллюстрации выполнения этого этапа рассмотрим пример процесса аккумуляции заключений для трех нечетких множеств Си, Св, Св, полученных в результате выполнения процедуры активизации для выходной лингвистической переменной "скорость движения автомобиля" в некоторой системе нечеткого вывода. Предположим, что функции принадлежности этих нечетких множеств изображены на рис. 7.7, а, б, в соответственно.
Аккумуляция этих функций принадлежности методом max-объединения нечетких множеств Си, Св, Св по формуле (3.4) позволяет получить в результате функцию принадлежности выходной лингвистической переменной "скорость
движения автомобиля", которая представлена на рис. 7.7, г. Эта функция принадлежности соответствует нечеткому множеству CV, если принять, что рассматриваемая выходная лингвистическая переменная есть оси.
О 102030405060708090100
в
Рис. 7.7. Пример аккумуляции заключения для выходной лингвистической переменной "скорость движения автомобиля"
Дефаззификация (Defuzzification)
Дефаззификация в системах нечеткого вывода представляет собой процедуру или процесс нахождения обычного (не нечеткого) значения для каждой из выходных лингвистических переменных множества ^={0)1, 0)2,..., ю$}.
Цель дефаззификации заключается в том, чтобы, используя результаты аккумуляции всех выходных лингвистических переменных, получить обычное количественное значение (crisp value) каждой из выходных переменных, которое может быть использовано специальными устройствами, внешними по отношению к системе нечеткого вывода.
Действительно, применяемые в современных системах управления устройства и механизмы способны воспринимать традиционные команды в форме количественных значений соответствующих управляющих переменных. Именно по этой причине необходимо преобразовать нечеткие множества в некоторые конкретные значения переменных. Поэтому дефаззификацию называют также приведением к четкости.
Формально процедура дефаззификации выполняется следующим образом. До начала этого этапа предполагаются известными функции принадлежности всех выходных лингвистических переменных в форме нечетких множеств: Ci', С2',..., С/, где 5— общее количество выходных лингвистических переменных в базе правил системы нечеткого вывода. Далее последовательно рассматривается каждая из выходных лингвистических переменных о>;е W и относящееся к ней нечеткое множество С/. Результат дефаззификации для выходной лингвистической переменной соу определяется в виде количественного значения y^R, получаемого по одной из рассматриваемых ниже формул.
Этап дефаззификации считается законченным, когда для каждой из выходных лингвистических переменных будут определены итоговые количественные значения в форме некоторого действительного числа, т. е. в виде yi, уг,..., у,, где 5 — общее количество выходных лингвистических переменных в базе правил системы нечеткого вывода.
Для выполнения численных расчетов на этапе дефаззификации могут быть использованы следующие формулы, получившие название методов дефаззификации.
Метод центра тяжести
Центр тяжести (CoG, COG, Centre of Gravity) или центроид площади рассчитывается по формуле:
Мах
Jx Ц(х) dx
,(7.9)
J Ц(х) dx
Min
В формуле используются следующие обозначения: у — результат дефаззифика- ции; х— переменная, соответствующая выходной лингвистической переменной о; р(х)— функция принадлежности нечеткого множества, соответствующего выходной переменной со после этапа аккумуляции; Min и Мах— левая и правая точки интервала носителя нечеткого множества рассматриваемой выходной переменной со.
При дефаззификации методом центра тяжести обычное (не нечеткое) значение выходной переменной равно абсциссе центра тяжести площади, ограниченной графиком кривой функции принадлежности соответствующей выходной переменной.
Пример дефаззификации методом центра тяжести функции принадлежности выходной лингвистической переменной "скорость движения автомобиля" изображен на рис. 7.8. В этом случаеyi=40 км/ч (приближенное значение).
Рис. 7.8. Пример дефаззификации выходной лингвистической переменной "скорость движения автомобиля" методом центра тяжести
Метод центра тяжести для одноточечных множеств
Центр тяжести (COGS, Centre of Gravity for Singletons) для одноточечных множеств рассчитывается по формуле:
п
5Х *)
' и—,(7.10)
п Ём(^) /=1
где и — число одноточечных (одноэлементных) нечетких множеств, каждое из которых характеризует единственное значение рассматриваемой выходной лингвистической переменной.
Пример дефаззификации методом центра тяжести для одноточечных множеств функции принадлежности выходной лингвистической переменной "скорость движения автомобиля" изображен на рис. 7.9. В этом случае >3=41 км/ч (приближенное значение).
10.80.60.40.2010.80.60.40.200102030405060708090100>1= 41 км/ч0102030405060708090100>1= 41 км/чРис. 7.9. Пример дефаззификации выходной лингвистической переменной "скорость движения автомобиля" методом центра тяжести для одноточечных множествРис. 7.9. Пример дефаззификации выходной лингвистической переменной "скорость движения автомобиля" методом центра тяжести для одноточечных множеств
1
0.8
0.6
0.4
0.2
0
1
0.8
0.6
0.4
0.2
0
0102030405060708090100
>1= 41 км/ч
0102030405060708090100
>1= 41 км/ч
Рис. 7.9. Пример дефаззификации выходной лингвистической переменной "скорость движения автомобиля" методом центра тяжести для одноточечных множеств
Рис. 7.9. Пример дефаззификации выходной лингвистической переменной "скорость движения автомобиля" методом центра тяжести для одноточечных множеств
иМахJp(x) dx = jp(x) dx ,MinииМахJp(x) dx = jp(x) dx ,Minи
иМах
Jp(x) dx = jp(x) dx ,
Minи
иМах
Jp(x) dx = jp(x) dx ,
Minи
Метод центра площади
Центр площади (СоА, СОА, Centre of Area, Bisector of Area) равен у = и, где значение и определяется из уравнения:
(7.П)
>1= 35 км/ч
Рис. 7.10. Пример дефаззификации выходной лингвистической переменной"скорость движения автомобиля" методом центра площади
Другими словами, центр площади равен абсциссе, которая делит площадь, ограниченную графиком кривой функции принадлежности соответствующей выходной переменной, на две равные части. Иногда центр площади называют биссектрисой площади. Этот метод не может быть использован в случае одноточечных множеств.
Пример дефаззификации методом центра площади функции принадлежности выходной лингвистической переменной "скорость движения автомобиля" изображен на рис. 7.10. В этом случае у\=35 км/ч (приближенное значение).
Метод левого модального значения
Левое модальное значение (LM, Left Most Maximum) рассчитывается по формуле: y = min{x„,},(7.12)
где хт— модальное значение (мода) нечеткого множества, соответствующего выходной переменной со после аккумуляции, рассчитываемое по формуле (2.4). Другими словами, значение выходной переменной определяется как мода нечеткого множества для соответствующей выходной переменной или наименьшая из мод (самая левая), если нечеткое множество имеет несколько модальных значений. Пример дефаззификации методом левого модального значения функции принадлежности выходной лингвистической переменной "скорость движения автомобиля" изображен на рис. 7.11. В этом случае j/i= 24 км/ч (приближенное значение).
Рис. 7.11. Пример дефаззификации выходной лингвистической переменной "скорость движения автомобиля" методом левого модального значения
Метод правого модального значения
Правое модальное значение (RM, Right Most Maximum) рассчитывается по формуле:
y = max{xm},(7.13)
где х,„ — модальное значение (мода) нечеткого множества для выходной переменной со после аккумуляции, рассчитываемое по формуле (2.4).
В этом случае значение выходной переменной также определяется как мода нечеткого множества для соответствующей выходной переменной или наибольшая из мод (самая правая), если нечеткое множество имеет несколько модальных значений.
Примечание
Нетрудно заметить, что в случае строго унимодального нечеткого множества левое и правое модальные значения совпадают, а расчеты по формулам (7.12) и (7.13) приводят к одинаковому результату.
Пример дефаззификации функции принадлежности выходной лингвистической переменной "скорость движения автомобиля" изображен на рис. 7.12. В этом случае^i=54 км/ч (приближенное значение) методом правого модального значения изображен на рис. 7.12.
Рис. 7.12. Пример дефаззификации выходной лингвистической переменной "скорость движения автомобиля" методом правого модального значения
Примечание
Следует отметить, что кроме методов (7.9)—(7.13) для выполнения дефаззификации могут быть предложены и другие расчетные формулы. Здесь приводятся лишь те из них, которые нашли наибольшее практическое применение в задачах нечеткого моделирования и стали в некотором смысле традиционными для систем нечеткого вывода.
Основные алгоритмы нечеткого вывода
Рассмотренные выше этапы нечеткого вывода могут быть реализованы неоднозначным образом, поскольку включают в себя отдельные параметры, которые должны быть фиксированы или специфицированы. Тем самым выбор конкрет-
ных вариантов параметров каждого из этапов определяет некоторый алгоритм, который в полном объеме реализует нечеткий вывод в системах правил нечетких продукций. К настоящему времени предложено несколько алгоритмов нечеткого вывода. Те из них, которые получили наибольшее применение в системах нечеткого вывода, рассматриваются ниже.
Алгоритм Мамдани (Mamdani)
Алгоритм Мамдани является одним из первых, который нашел применение в системах нечеткого вывода. Он был предложен в 1975 г. английским математиком Е. Мамдани (Ebrahim Mamdani) в качестве метода для управления паровым двигателем. По своей сути этот алгоритм порождает рассмотренные выше этапы, поскольку в наибольшей степени соответствует их параметрам.
Формально алгоритм Мамдани может быть определен следующим образом.
Формирование базы правил систем нечеткого вывода. Особенности формирования базы правил совпадают с рассмотренными выше при описании данного этапа.
Фаззификация входных переменных. Особенности фаззификации совпадают с рассмотренными выше при описании данного этапа.
Агрегирование подусловий в нечетких правилах продукций. Для нахождения степени истинности условий каждого из правил нечетких продукций используются парные нечеткие логические операции. Те правила, степень истинности условий которых отлична от нуля, считаются активными и используются для дальнейших расчетов.
Активизация подзаключений в нечетких правилах продукций. Осуществляется по формуле (7.6), при этом для сокращения времени вывода учитываются только активные правила нечетких продукций.
Аккумуляция заключений нечетких правил продукций. Осуществляется по формуле (3.4) для объединения нечетких множеств, соответствующих термам подзаключений, относящихся к одним и тем же выходным лингвистическим переменным.
Дефаззификация выходных переменных. Традиционно используется метод центра тяжести в форме (7.9)—(7.10) или метод центра площади (7.11).
Алгоритм Цукамото (Tsukamoto)
Формально алгоритм Цукамото может быть определен следующим образом.
Формирование базы правил систем нечеткого вывода. Особенности формирования базы правил совпадают с рассмотренными выше при описании данного этапа.
Фаззификация входных переменных. Особенности фаззификации совпадают с рассмотренными выше при описании данного этапа.
Агрегирование подусловий в нечетких правилах продукций. Для нахождения степени истинности условий всех правил нечетких продукций используются парные нечеткие логические операции. Те правила, степень истинности условий которых отлична от нуля, считаются активными и используются для дальнейших расчетов.
Активизация подзаключений в нечетких правилах продукций. Осуществляется аналогично алгоритму Мамдани по формуле (7.6), после чего находятся обычные (не нечеткие) значения всех выходных лингвистических переменных в каждом из подзаключений активных правил нечетких продукций. В этом случае значение выходной лингвистической переменной Wj в каждом из подзаключений находится как решение уравнения:
G = M(^)(Vzg{1,2,..., g}),(7.14)
где q — общее количество подзаключений в базе правил.
Аккумуляция заключений нечетких правил продукций. Фактически отсутствует, поскольку расчеты осуществляются с обычными действительными числами Wj.
Дефаззификация выходных переменных. Используется модифицированный вариант в форме метода центра тяжести для одноточечных множеств:
л
Та •w.
У = ^,(7-15)
Та
/=1
где п -— общее количество активных правил нечетких продукций, в подзаключениях которых присутствует выходная лингвистическая переменная со,.
Алгоритм Ларсена (Larsen)
Формально алгоритм Ларсена может быть определен следующим образом.
Формирование базы правил систем нечеткого вывода. Особенности формирования базы правил совпадают с рассмотренными выше при описании данного этапа.
Фаззификация входных переменных. Особенности фаззификации также совпадают с рассмотренными выше при описании данного этапа.
Агрегирование подусловий в нечетких правилах продукций. Используются парные нечеткие логические операции для нахождения степени истинности условий всех правил нечетких продукций (как правило, max-дизъюнкция и min-конъюнкция). Те правила, степень истинности условий которых отлична от нуля, считаются активными и используются для дальнейших расчетов.
Активизация подзаключений в нечетких правилах продукций. Осуществляется использованием формулы (7.7), посредством чего находится совокупность нечетких множеств: Ci, C2,...,Cq, где q — общее количество подзаключений в базе правил.
Аккумуляция заключений нечетких правил продукций. Осуществляется по формуле (3.4) для объединения нечетких множеств, соответствующих термам подзаключений, относящихся к одним и тем же выходным лингвистическим переменным.
Дефаззификация выходных переменных. Может использоваться любой из рассмотренных выше методов дефаззификации.
Алгоритм Сугено (Sugeno)
Формально алгоритм Сугено, предложенный Сугено и Такаги, может быть определен следующим образом.
Формирование базы правил систем нечеткого вывода. В базе правил используются только правила нечетких продукций в форме:
ПРАВИЛО <#>: ЕСЛИ "pi есть а'" И "Рг есть а"" ТО "и^а-аз+й-аг”. (7.16) Здесь е\, а—некоторые весовые коэффициенты. При этом значение выходной переменной и1 в заключении определяется как некоторое действительное число.
Фаззификация входных переменных. Особенности фаззификации совпадают с рассмотренными выше при описании данного этапа.
Агрегирование подусловий в нечетких правилах продукций. Для нахождения степени истинности условий всех правил нечетких продукций, как правило, используется логическая операция min-конъюнкции. Те правила, степень истинности условий которых отлична от нуля, считаются активными и используются для дальнейших расчетов.
Активизация подзаключений в нечетких правилах продукций. Во-первых, с использованием метода (7.6) находятся значения степеней истинности всех заключений правил нечетких продукций. Во-вторых, осуществляется расчет обычных (не нечетких) значений выходных переменных каждого правила. Это выполняется с использованием формулы для заключения (7.16), в которую вместо а\ и аг подставляются значения входных переменных до этапа фаззификации. Тем самым определяются множество значений С={п, сг,..., с„} и множество значений выходных переменных W^wi, wi,..., и’„}, где п — общее количество правил в базе правил.
Аккумуляция заключений нечетких правил продукций. Фактически отсутствует, поскольку расчеты осуществляются с обычными действительными числами Wj.
Дефаззификация выходных переменных. Используется модифицированный вариант в форме метода центра тяжести для одноточечных множеств (7.15).
Упрощенный алгоритм нечеткого вывода
Формально упрощенный алгоритм может быть определен следующим образом.
Формирование базы правил систем нечеткого вывода. В базе правил используются только правила нечетких продукций в форме:
ПРАВИЛО <#>: ЕСЛИ "01 есть а"' И "р2 есть а"" ТО "и^е".(7.17)
Здесь е —некоторое действительное число.
Фаззификация входных переменных. Особенности фаззификации совпадают с рассмотренными выше при описании данного этапа.
Агрегирование подусловий в нечетких правилах продукций. Для нахождения степени истинности условий всех правил нечетких продукций, как правило, используется логическая операция — min-конъюнкция. Те правила, степень истинности условий которых отлична от нуля, считаются активными и используются для дальнейших расчетов.
Активизация подзаключений в нечетких правилах продукций. Осуществляется с использованием метода (7.6), посредством чего находятся значения степеней истинности всех заключений правил нечетких продукций С={а, сг,..., с„^, где п — общее количество правил в базе правил.
Аккумуляция заключений нечетких правил продукций. Фактически отсутствует, поскольку расчеты осуществляются с обычными действительными числами Cj.
Дефаззификация выходных переменных. Используется модифицированный вариант в форме метода центра тяжести для одноточечных множеств (7.15).
При решении практических задач нечеткого моделирования могут одновременно использоваться несколько алгоритмов нечеткого вывода с целью получения наиболее адекватных результатов. Ниже рассматриваются примеры применения некоторых из этих алгоритмов в задачах нечеткого управления.
Примеры использования систем нечеткого вывода в задачах управления
Одним из основных направлений практического использования систем нечеткого вывода является решение задач управления различными объектами или процессами. В этом случае построение нечеткой модели основывается на формальном представлении характеристик исследуемой системы в терминах лингвистических переменных. Поскольку кроме алгоритма управления, основными понятиями систем управления являются входные и выходные переменные, то именно они рассматриваются как лингвистические переменные при формировании базы правил в системах нечеткого вывода.
В общем случае цель управления заключается в том, чтобы на основе анализа текущего состояния объекта управления определить значения управляющих пе-
ременных, реализация которых позволяет обеспечить желаемое поведение или состояние объекта управления. В настоящее время для решения соответствующих задач используется общая теория управления, в рамках которой разработаны различные алгоритмы нахождения оптимальных законов управления объектами различной физической природы.
Не вдаваясь в детальное обсуждение концепций классической теории управления, рассмотрим лишь основные определения, необходимые для понимания особенностей и места систем нечеткого вывода при решении задач управления.
Базовая архитектура или модель классической теории управления основывается на представлении объекта и процесса управления в форме некоторых систем (рис. 7.13). При этом объект управления характеризуется некоторым конечным множеством входных параметров и конечным множеством выходных параметров. На вход системы управления поступают некоторые входные переменные, которые формируются с помощью конечного множества датчиков. На выходе системы управления с использованием некоторого алгоритма управления формируется множество значений выходных переменных, которые еще называют управляющими переменными или переменными процесса управления. Значения этих выходных переменных поступают на вход объекта управления и, комбинируясь со значениями входных параметров объекта управления, изменяют его поведение в желаемом направлении.
Рис. 7.13. Архитектура компонентов процесса управления с обратной связью
Рассмотренная архитектура называется процессом управления с обратной связью, а используемые для управления техническими объектами системы управления — контроллерами.
Наиболее типичным примером рассмотренной модели управления является так называемый интегрально-дифференцирующий контроллер или PID-контроллер
(proportional-integral-derivative controller). Алгоритм его управления основан на сравнении выходных параметров объекта управления с некоторыми заданными параметрами и определении величины расхождения между ними или ошибки. После этого рассчитываются величины выходных переменных в форме аддитивной суммы величины этой ошибки, значения интеграла и производной по времени в течение некоторого промежутка времени.
Один из недостатков PID-контроллеров заключается в предположении о линейном характере зависимости входных и выходных переменных процесса управления, что существенно снижает адекватность этой модели при решении отдельных практических задач. Другой недостаток модели связан со сложностью выполнения соответствующих расчетов, что может привести к недопустимым задержкам в реализации управляющих воздействий при оперативном управлении объектами с высокой динамикой изменения выходных параметров.
Архитектура или модель нечеткого управления основана на замене классической системы управления системой нечеткого управления, в качестве которой используются системы нечеткого вывода. В этом случае модель нечеткого управления (рис. 7.14) строится с учетом необходимости реализации всех этапов нечеткого вывода, а сам процесс вывода реализуется на основе одного из рассмотренных выше алгоритмов нечеткого вывода.
Рис. 7.14. Архитектура компонентов процесса нечеткого управления
Далее рассматриваются особенности построения некоторых моделей систем нечеткого управления с целью решения практических задач по управлению конкретными объектами.
Нечеткая модель управления смесителем воды при принятии душа
В качестве первого примера использования систем нечеткого вывода в задачах управления рассматривается задача управления смесителем воды при принятии душа. Эта задача является одной из наиболее простых, которая может быть решена методами нечеткого моделирования. Для определенности предположим, что в качестве алгоритма нечеткого вывода будет использоваться алгоритм Мамдани.
Содержательная постановка задачи
При принятии душа на вход смесителя подается холодная и горячая вода по соответствующим магистральным трубопроводам. Наиболее комфортные условия для душа создаются при наличии на выходе смесителя теплой воды постоянной температуры. Поскольку во время принятия душа может наблюдаться неравномерный расход воды, температура воды на выходе смесителя будет колебаться, приводя к необходимости ручного изменения подачи холодной или горячей воды. Задача состоит в том, чтобы сделать регулировку температуры воды автоматической, обеспечивая постоянную температуру воды на выходе смесителя (рис. 7.15).
холодная горячая
Рис. 7.15. Иллюстрация модели нечеткогоуправления смесителем воды при принятии душа
Опыт принятия душа позволяет сформулировать несколько эвристических правил, которые мы применяем в случае регулирования температуры воды на выходе смесителя:
Если вода горячая, то следует повернуть вентиль крана горячей воды на большой угол вправо.
Если вода не очень горячая, то следует повернуть вентиль крана горячей воды на небольшой угол вправо.
Если вода теплая, то оставить вентиль крана горячей воды без воздействия.
Если вода прохладная, то следует повернуть вентиль крана горячей воды на небольшой угол влево.
Если вода холодная, то следует повернуть вентиль крана горячей воды на большой угол влево.
Эта информация будет использоваться при построении базы правил системы нечеткого вывода, которая позволяет реализовать данную модель нечеткого управления.
Построение базы нечетких лингвистических правил
Для формирования базы правил систем нечеткого вывода необходимо предварительно определить входные и выходные лингвистические переменные. Очевидно, в качестве входной лингвистической переменной следует использовать температуру воды на выходе смесителя или формально: Pi — "температура воды". В качестве выходной лингвистической переменной будем использовать угол поворота вентиля крана горячей воды или формально: Рг — "угол поворота".
В этом случае система нечеткого вывода будет содержать 5 правил нечетких продукций следующего вида:
ПРАВИЛО_1: ЕСЛИ "вода горячая" ТО "повернуть вентиль крана горячей воды на большой угол вправо"
ПРАВИЛО_2: ЕСЛИ "вода не очень горячая" ТО "повернуть вентиль крана горячей воды на небольшой угол вправо"
ПРАВИЛО_3: ЕСЛИ "вода теплая" ТО "оставить угол поворота крана горячей воды без изменения"
ПРАВИЛО_4: ЕСЛИ "вода прохладная" ТО "повернуть вентиль крана горячей воды на небольшой угол влево"
ПРАВИЛО_5: ЕСЛИ "вода холодная" ТО "повернуть вентиль крана горячей воды на большой угол влево"
Фаззификация входных переменных
В качестве терм-множества первой лингвистической переменной будем использовать множество Ti=V'горячая", "не очень горячая", "теплая", "прохладная”, "холодная"^ с функциями принадлежности, изображенными на рис. 7.16, а.
В качестве терм-множества второй лингвистической переменной будем использовать множество Г2= {"большой угол вправо", "небольшой угол вправо", "нуль", "небольшой угол влево", "большой угол влево"} с кусочно-линейными функциями принадлежности, изображенными на рис. 7.16, б.
прохладная не очень горячая
нуль
оольшон небольшой небольшой большой
Угол поворота вентиля [град]
Рис. 7.16. Графики функций принадлежности для термов лингвистической переменной "Температура воды" (а) и лингвистической переменной "Угол поворота вентиля крана" (б)
При этом температура воды измеряется в градусах Цельсия, а угол поворота — в угловых градусах. В последнем случае поворот вправо означает положительное направление отсчета, а поворот влево — отрицательное.
Используя в качестве алгоритма вывода алгоритм Мамдани, рассмотрим пример его выполнения для случая, когда текущая температура воды на выходе смесителя равна 55 °C. В этом случае фаззификация входной лингвистической переменной приводит к значениям степеней истинности 0.5 для правил нечетких продукций с номерами 2 и 3. Эти правила считаются активными и используются в текущем процессе нечеткого вывода.
Поскольку все условия в правилах 1—5 заданы в форме нечетких лингвистических высказываний первого вида, этап их агрегирования тривиален и оставляет степени истинности 0.5 без изменения.
Следующим этапом нечеткого вывода является активизация заключений в нечетких правилах продукций. Поскольку все заключения правил 1—5 заданы в форме нечетких лингвистических высказываний первого вида, а весовые коэффициенты правил по умолчанию равны 1, то активизация правил 2 и 3 приводит к нечетким множествам, функции принадлежности которых изображены на рис. 7.17, а.
Аккумулирование заключений нечетких правил продукций с использованием операции max-дизъюнкции для правил 2 и 3 приводит в результате к нечеткому множеству, функция принадлежности которого изображена на рис. 7.17, б.
небольшой н)ль угол вправо
Угол поворота вентиля [град]
Угол поворота вентиля [град]
Рис. 7.17. Графики функции принадлежности для двух термов выходной лингвистической переменной "Угол поворота вентиля крана" (а) и функции принадлежности после аккумуляции (б)
Дефаззификация выходной лингвистической переменной "Угол поворота вентиля крана” методом центра тяжести для значений функции принадлежности, изображенной на рис. 7.17, приводит к значению управляющей переменной, равному повороту вентиля крана вправо на 16° (приближенное значение). Это значение и
является результатом решения задачи нечеткого вывода для текущего значения входной лингвистической переменной " Температура воды".
Для реализации этого алгоритма нечеткого управления необходимо организовать периодическое измерение температуры воды на выходе смесителя в некоторые дискретные моменты времени. При этом, чем меньше интервал измерения этой температуры, тем выше оказывается точность регулирования температуры воды.
Что касается реализации собственно процедуры нечеткого управления, то для этой цели необходимо использовать соответствующие программные или аппаратные средства, специально предназначенные для выполнения всех этапов нечеткого вывода. В частности, для этой цели могут быть применены специальные программируемые нечеткие контроллеры, которые обладают возможностью реализовывать программу нечеткого вывода, записанную, например, на языке нечеткого управления или языка FCL. Более подробно эти аспекты реализации алгоритмов нечеткого управления изложены в главе 8.
Нечеткая модель управления кондиционером воздуха в помещении
В качестве второго примера использования систем нечеткого вывода в задачах управления рассматривается задача управления кондиционером воздуха в помещении. Эта задача иллюстрирует процесс стабилизации температуры воздуха в помещении, в котором установлен бытовой кондиционер. Для определенности также предположим, что в качестве алгоритма нечеткого вывода будет использоваться алгоритм Мамдани.
Содержательная постановка задачи
В помещении установлен бытовой кондиционер, который позволяет охлаждать или нагревать воздух в этом помещении. Наиболее комфортные условия в помещении создаются при некоторой стабильной температуре воздуха. Поскольку температура окружающей среды вне помещения изменяется в течение суток и в большой степени зависит от внешних погодных условий, все это дестабилизирует температуру воздуха в помещении и приводит к необходимости ручной регулировки режима работы бытового кондиционера. Задача состоит в том, чтобы сделать регулировку кондиционера автоматической, обеспечивая постоянную температуру воздуха в помещении (рис. 7.18).
Опыт использования бытовых кондиционеров показывает, что процесс охлаждения или нагревания воздуха в помещении обладает некоторой инерционностью. А именно, после включения режима "холод" происходит нагнетание холодного воздуха, в связи с чем температура воздуха в помещении постепенно падает. При этом в момент отключения этого режима температура продолжает падать в течение небольшого, но1 конечного промежутка времени. Аналогичная картина наблюдается при включении и отключении режима "тепло". Предположим, что в рассматриваемой модели кондиционера включение режима "холод"
осуществляется поворотом регулятора влево, включение режима "тепло" осуществляется поворотом регулятора вправо относительно некоторой точки, в которой кондиционер выключен.
Рис. 7.18. Иллюстрация модели нечеткого управления кондиционером воздуха в помещении
Чтобы учесть эту особенность процесса управления кондиционером и исключить дополнительные затраты, связанные с частым включением и выключением указанных режимов, необходимо рассматривать в качестве выходного параметра не только температуру воздуха в помещении, но и скорость ее изменения. В этом случае эмпирические знания о рассматриваемой проблемной области могут быть представлены в форме эвристических правил, которые применяются в случае ручного регулирования температуры воздуха в помещении с кондиционером:
Если температура воздуха в помещении очень теплая, а скорость изменения температуры положительная, то следует включить режим "холод", повернув регулятор кондиционера на очень большой угол влево.
Если температура воздуха в помещении очень теплая, а скорость изменения температуры отрицательная, то следует включить режим "холод", повернув регулятор кондиционера на небольшой угол влево.
Если температура воздуха в помещении теплая, а скорость изменения температуры положительная, то следует включить режим "холод", повернув регулятор кондиционера на большой угол влево.
Если температура воздуха в помещении теплая, а скорость изменения температуры отрицательная, то кондиционер следует выключить.
Если температура воздуха в помещении очень холодная, а скорость изменения температуры отрицательная, то следует включить режим "тепло", повернув регулятор кондиционера на очень большой угол вправо.
Если температура воздуха в помещении очень холодная, а скорость изменения температуры положительная, то следует включить режим "тепло", повернув регулятор кондиционера на небольшой угол вправо.
Если температура воздуха в помещении холодная, а скорость изменения температуры отрицательная, то следует включить режим "тепло", повернув регулятор кондиционера на большой угол вправо.
Если температура воздуха в помещении холодная, а скорость изменения температуры положительная, то кондиционер следует выключить.
Если температура воздуха в помещении очень теплая, а скорость изменения температуры равна нулю, то следует включить режим "холод", повернув регулятор кондиционера на большой угол влево.
Если температура воздуха в помещении теплая, а скорость изменения температуры равна нулю, то следует включить режим "холод", повернув регулятор кондиционера на небольшой угол влево.
Если температура воздуха в помещении очень холодная, а скорость изменения температуры равна нулю, то следует включить режим "тепло", повернув регулятор кондиционера на большой угол вправо.
Если температура воздуха в помещении холодная, а скорость изменения температуры равна нулю, то следует включить режим "тепло", повернув регулятор кондиционера на небольшой угол вправо.
Если температура воздуха в помещении в пределах нормы, а скорость изменения температуры положительная, то следует включить режим "холод", повернув регулятор кондиционера на небольшой угол влево.
Если температура воздуха в помещении в пределах нормы, а скорость изменения температуры отрицательная, то следует включить режим "тепло", повернув регулятор кондиционера на небольшой угол вправо.
Если температура воздуха в помещении в пределах нормы, а скорость изменения температуры равна нулю, то кондиционер следует выключить.
Эта информация будет использоваться при построении базы правил системы нечеткого вывода, которая позволяет реализовать данную модель нечеткого управления.
Построение базы нечетких лингвистических правил
Для формирования базы правил систем нечеткого вывода необходимо предварительно определить входные и выходные лингвистические переменные. Очевидно, в качестве одной из входных лингвистических переменных следует использовать
температуру воздуха в помещении: Pi — "температура воздуха", а в качестве второй входной лингвистической переменной р2— "скорость изменения температура воздуха". В качестве выходной лингвистической переменной будем использовать угол поворота регулятора включения режимов "холод" и "тепло" кондиционера: Рз— "угол поворота регулятора". Для сокращения записи правил будем использовать рассмотренные символические обозначения (см. табл. 7.1), при этом модификатор ОЧЕНЬ преобразован к значению отдельного терма.
В этом случае система нечеткого вывода будет содержать 15 правил нечетких продукций следующего вида:
ПРАВИЛО_1: ЕСЛИ "Pi есть РВ" И "р2 есть PS" ТО "Рзесть NB"
ПРАВИЛО_2: ЕСЛИ "Pi есть РВ" И "^есть NS" ТО "^зестъ NS"
ПРАВИЛО_3: ЕСЛИ "pt есть PS" И "р2ес/нь PS" ТО "рзелпь NM"
ПРАВИЛО_4: ЕСЛИ "pi есть PS" И "р2ес/»ь NS" ТО "^зесть Z"
ПРАВИЛО_5: ЕСЛИ "pi есть NB" И "р2ес/пб NS" ТО "рзесть РВ"
ПРАВИЛО_6: ЕСЛИ "Pi есть NB" И "^гесть PS" ТО "Рзесть PS"
' ПРАВИЛО_7: ЕСЛИ "pi есть NS" И "р2есть NS" ТО "рзесть РМ"
ПРАВИЛО_8: ЕСЛИ "pi есть NS" И "^есть PS" ТО "^зесть Z"
ПРАВИЛО_9: ЕСЛИ "pi есть РВ" И "р2еаиь Z" ТО "^зесть NM" ПРАВИЛО_10: ЕСЛИ "р! есть PS" И "^естъ Z" ТО "рзесть NS" ПРАВИЛО_11: ЕСЛИ "pi есть NB" И "р2 есть Z" ТО "рзес/нь РМ" ПРАВИЛО_12: ЕСЛИ "pi есть NS" И "р2есшь Z" ТО "рзесть PS" ПРАВИЛО_13: ЕСЛИ "pi есть Z" И ир2 есть PS" ТО "^зесть NS" ПРАВИЛО_14: ЕСЛИ "pi есть Z" И "р2 есть NS" ТО "рз есть PS" ПРАВИЛО_15: ЕСЛИ "Pi есть Z" И "р2есть Z" ТО "Рз есть Z"
Фаззификация входных переменных
В качестве терм-множества первой лингвистической переменной будем использовать множество Л={"очень холодная", "холодная", "в пределах нормы", "теплая", "очень теплая"} или в символическом виде Ti={NB, NS, Z, PS, РВ} с функциями принадлежности, изображенными на рис. 7.19. В качестве терм-множества второй лингвистической переменной будем использовать множество 72={"отрицательная", "равна нулю", "положительная"} или в символическом виде T2={NS, Z, PS} с функциями принадлежности, изображенными на рис. 7.20. В качестве терм- множества выходной лингвистической переменной будем использовать множество 7з=("очень большой угол влево", "большой угол влево", "небольшой угол влево", "выключить кондиционер", "небольшой угол вправо", "большой угол вправо", "очень большой угол вправо"} или в символическом виде 73={NB, NM, NS, Z, PS, PM, PB} с функциями принадлежности, изображенными на рис. 7.21.
Рис. 7.19. Графики функций принадлежности для термов входной лингвистической переменной "Температура воздуха"
Рис. 7.20. Графики функций принадлежности для термов входной лингвистической переменной "Скорость изменения температуры"
Рис. 7.21. Графики функций принадлежности для термов выходной лингвистической переменной "Угол поворота регулятора"
При этом температура воздуха измеряется в градусах Цельсия, скорость изменения температуры воздуха — в градусах Цельсия в минуту, а угол поворота — в угловых градусах. В последнем случае поворот регулятора вправо означает включение режима "тепло" и положительное направление отсчета, а поворот влево — включение режима "холод" и отрицательное направление отсчета.
Используя в качестве алгоритма вывода алгоритм Мамдани, рассмотрим пример его выполнения для случая, когда текущая температура воздуха равна 20 °C, а скорость ее изменения положительная и равна 0.2 °С/мин.
В этом случае фаззификация первой входной лингвистической переменной приводит к значению степени истинности 0.15 для терма PS, а фаззификация второй нечеткой переменной приводит к значению истинности 0.5 для терма Z и значению 0.2 для терма PS. Соответствующие подусловия используются в правилах нечетких продукций с номерами 3 и 10. Эти правила считаются активными и используются в текущем процессе нечеткого вывода.
Агрегирование подусловий правила 3 дает в результате число 0.15, агрегирование подусловий правила 10— также число 0.15. Следующим этапом нечеткого вывода является активизация заключений в нечетких правилах продукций. Поскольку все заключения правил 1—5 заданы в форме нечетких лингвистических высказываний первого вида, а весовые коэффициенты правил по умолчанию равны 1, то активизация правил 3 и 10 приводит к двум нечетким множествам.
Аккумулирование заключений нечетких правил продукций с использованием операции max-дизъюнкции для правил 3 и 10 приводит в результате к нечеткому множеству, функция принадлежности которого изображена на рис. 7.22.
Рис. 7.22. График функции принадлежности двух термов выходной лингвистической переменной "Угол поворота регулятора" после аккумуляции
Дефаззификация выходной лингвистической переменной "Угол поворота регулятора" методом центра площади для значений функции принадлежности, изображенной на рис. 7.22, приводит к значению управляющей переменной, равному повороту регулятора кондиционера влево на угол 34° (приближенное
значение). Это значение соответствует включению режима "холод" на треть своей мощности и является результатом решения задачи нечеткого вывода.
Примечание
Следует отметить, что дефаззификация другим методом приводит к результатам, которые могут существенно отличаться от полученных. Это может потребовать дополнительных исследований по настройке используемых алгоритмов нечеткого вывода.
Нечеткая модель управления контейнерным краном
В заключение этой главы рассматривается пример разработки модели системы нечеткого управления контейнерным краном, который предназначен для транспортировки моноблочных контейнеров при выполнении разгрузочных работ морских судов.
Содержательная постановка задачи
Контейнерные краны используются при выполнении погрузочно-разгрузочных работ в портах. Они соединяются с моноблочным контейнером гибким тросом и поднимают контейнер к кабине крана. Кабина крана вместе с контейнером может перемещается в горизонтальном направлении по направляющим типа рельсов. Когда контейнер поднимается к кабине, а кран приходит в движение, контейнер начинает раскачиваться и отклоняться от строго вертикального положения под кабиной крана. Эта ситуация иллюстрируется на рис. 7.23.
Рис. 7.23. Иллюстрация примера с контейнерным краном
Проблема заключается в том, что пока контейнер раскачивается в ходе своей транспортировки и отклоняется от вертикали, он не может быть опущен на основание цели перемещения, в качестве которой используются железнодорожные платформы или другие транспортные средства.
Анализ действий крановщиков-операторов, выполняющих управление краном, показывает, что они в своей работе применяют следующие эвристические правила:
Начинать движение следует со средней мощностью.
Если движение уже началось и кабина находится далеко от цели, отрегулировать мощность двигателя таким образом, чтрбы контейнер оказался несколько впереди кабины крана.
Если кабина находится близко над целью, уменьшить скорость таким образом, чтобы контейнер находился несколько впереди кабины крана.
Когда контейнер находится очень близко от позиции цели, следует выключить мощность двигателя.
Когда контейнер находится прямо над позицией цели, следует остановить двигатель.
Формирование базы правил систем нечеткого вывода
Следующим этапом построения модели является построение базы правил. С этой целью преобразуем рассмотренные выше 5 эвристических правил в 6 правил нечетких продукций:
ПРАВИЛО_1: ЕСЛИ "расстояние далекое" И "угол равен нулю"
ТО "мощность положительная средняя"
ПРАВИЛО_2: ЕСЛИ "расстояние далекое" И "угол отрицательный малый"
ТО "мощность положительная большая"
ПРАВИЛО_3: ЕСЛИ "расстояние далекое" И "угол отрицательный большой"
ТО"мощность положительная средняя"
ПРАВИЛО_4: ЕСЛИ "расстояние среднее" И "угол отрицательный малый"
ТО "мощность отрицательная средняя"
ПРАВИЛО_5: ЕСЛИ "расстояние близкое" И "угол положительный малый"
ТО "мощность положительная средняя"
ПРАВИЛО_6: ЕСЛИ "расстояние ноль" И "угол равен нулю"
ТО "мощность равна нулю"
Примечание
Следует заметить, что правило 2 разделено на два отдельных правила, чтобы использовать простой формат ЕСЛИ-TO. При этом расстояние становится отрицательным в том случае, когда кабина крана находится справа от положения цели.
Фаззификация входных переменных
Чтобы иметь возможность автоматически управлять таким краном, необходимо использовать датчики для измерения горизонтального положения кабины крана ^'Расстояние") и измерения угла раскачивания контейнера ("Угол"). Выходом в этом случае является мощность мотора.
Для построения модели системы нечеткого управления контейнерным краном в первую очередь следует для всех переменных определить соответствующие лингвистические переменные. В нашем случае таких лингвистических переменных три — это расстояние, угол и мощность мотора. Каждая из них будет включать в себя 5 термов. При этом будем использовать функции принадлежности типа кусочно-линейных функций, а также функции принадлежности для одноточечных множеств. Ниже приводятся графики конкретных функций принадлежности для отдельных лингвистических термов соответствующих лингвистических переменных (рис. 7.24—7.26). Названия отдельных термов сокращены: "отр" — отрицательный, "пол" — положительный.
Рис. 7.24. Г рафики функций принадлежности для термов лингвистической переменной "Расстояние", измеряемое от кабины крана до положения цели
Рис. 7.25. Г рафики функций принадлежности для термов лингвистической переменной "Угол”, измеряемый между положением контейнера и кабиной крана
Рис. 7.26. Графики функций принадлежности для термов лингвистической переменной "Мощность" двигателя
Далее необходимо определить методы агрегирования подусловий. Поскольку во всех правилах 1—6 в качестве логической связки для подусловий применяется только нечеткая конъюнкция (операция "И"), то в качестве метода агрегирования будем использовать операцию min-конъюнкции. В качестве схемы нечеткого вывода будем использовать метод Мамдани, поэтому методом активизации будет MIN, который рассчитывается по формуле (7.6). Для аккумуляции заключений правил будем использовать метод max-дизъюнкции, который также применяется в случае схемы нечеткого вывода методом Мамдани. Наконец, в качестве метода дефаззификации будем использовать метод центра тяжести для одноэлементных множеств (7.10), который можно также записать в виде ключевого слова COGS.
Рассмотрим пример выполнения нечеткого вывода для этой модели в случае, когда текущее расстояние до цели равно 7.5 м, а угол между контейнером и кабиной крана равен 10°.
В этом случае фаззификация первой входной лингвистической переменной приводит к значениям степени истинности: 0.5 для терма "близкое" и 0.5 для терма "среднее", а фаззификация второй нечеткой переменной приводит к значениям истинности: 0.1 для терма "пол_большой" и 0.9 для терма "пол_малый". Соответствующие подусловия совместно используются только в правиле нечеткой продукции с номером 5. Это единственное правило считается активным и используется в текущем процессе нечеткого вывода.
Агрегирование подусловий правила 5 дает в результате число 0.5. Следующим этапом нечеткого вывода является активизация заключения в правиле 5 нечеткой продукции. Поскольку это заключение единственное и задано в форме одноточечного множества, то активизация тривиальна и дает в результате степень принадлежности 0.5. Аккумулирование и дефаззификация также тривиальны и дают в результате, что мощность двигателя равна 12 киловатт.
В заключение следует отметить, что рассмотренные примеры будут использоваться далее в качестве тестовых задач в частях II и III.
Глава 8
Язык нечеткого управления — FCL
Язык нечеткого управления FCL (Fuzzy Control Language) описан в Стандарте IEC 1131-7. в котором определяются цели разработки этого языка, его базовая нотация и приводятся примеры записи моделей нечеткого управления с использованием нотации языка FCL. В настоящей главе рассматриваются элементы языка FCL в соответствии с указанным Стандартом.
Язык FCL разработан для представления нечетких моделей систем управления, в частности, моделей так называемых программируемых контроллеров (Programmable Controllers) или программируемых логических контроллеров (ПЛК) в форме структурируемого текста, который может быть интерпретирован как программа на языке высокого уровня. Хотя Стандарт IEC 1131-7 не определяет требования к вычислительным средам и устройствам, которые могут реализовывать трансляцию, компиляцию и выполнение программ на языке FCL, описанная в нем нотация основных компонентов систем нечеткого вывода позволяет достичь формального уровня строгости, необходимого для последующей разработки соответствующих инструментальных средств.
Изложению нотации языка предшествует краткое введение в специальную область прикладных исследований, которая получила название нечеткого управления. После этого рассматриваются элементы базовой нотации языка FCL. В заключение этой главы подробно рассматривается конкретный пример разработки нечеткой модели системы управления подъемным краном и запись этой модели в нотации языка FCL.
Концептуальные основы нечеткого управления
Под нечетким управлением (Fuzzy Control) понимается область применения общей методологии теории нечетких множеств и нечеткой логики для решения практических задач управления. Нечеткое управление возникло как технология, способная расширить возможности автоматизации производства и предназначенная для решения прикладных задач в области управления, которые в общем случае могут быть реализованы с помощью программируемых контроллеров.
Нечеткое управление базируется на использовании не столько аналитических или теоретических моделей, сколько на практическом применении знаний, которые можно представить в форме так называемых лингвистических баз правил. Нечеткое управление может использоваться в том случае, когда существует определенный опыт экспертов и его можно записать некоторым формальным образом. Все это позволяет воспользоваться доступными знаниями с целью улучшить процессы управления и решить ряд задач, например:
управление (с обратной или без обратной связи, с одной или со многими переменными, для линейных или нелинейных систем);
установка параметров систем управления в автономном режиме или в режиме реального времени;
классификация и распознавание образов;
оперативное принятие решения (Послать этот продукт на обработку устройством А или В?);
помощь операторам в принятии решений или настройке параметров;
определение и диагностика неисправностей в системах.
Широкий диапазон приложений и естественность подхода, основанного на опыте специалистов, делает нечеткое управление основным средством, которое в качестве стандарта должно стать доступным для всех пользователей программируемых контроллеров. Нечеткое управление может также непосредственно комбинироваться с классическими методами управления.
Применение нечеткого управления может быть наиболее эффективным в тех случаях, когда отсутствует явная модель процесса и аналитическая модель является слишком сложной для представления (например, системы с несколькими входами и несколькими выходами) или для получения решений в реальном масштабе времени.
Другое достоинство нечеткого управления заключается в непосредственном объединении опыта нескольких специалистов. При этом вовсе не нужно моделировать целиком весь контроллер с помощью нечеткого управления — иногда нечеткое управление может только интерполировать серию локально линейных моделей или динамически адаптировать параметры некоторого линейного регулятора. Тем самым становится возможным не только оперировать нелинейными моделями, но и сосредоточить внимание на рассмотрении тех параметров существующих регуляторов, которые следует улучшить.
Нечеткое управление, являясь многозначным управлением, больше ограничивается значениями высказываний "истина" или "ложь". Эта особенность делает нечеткое управление адекватным средством для моделирования эмпирического опыта экспертов, оперируя теми понятиями, в терминах которых формулируются управляющие воздействия на заданном множестве входов.
Ниже дается краткое введение в теорию нечеткого управления, насколько это необходимо для понимания нотации языка FCL. Поскольку используемая в нечетком управлении терминология вынесена в глоссарий, здесь рассматриваются
только основные особенности интеграции приложений нечеткого управления и их представления в форме диаграмм.
С точки зрения информационных технологий системы нечеткого управления являются продукционными экспертными системами. С точки зрения теории систем управления системы нечеткого управления являются контроллерами с нелинейными параметрами регулирования. При этом текущие значения выходных переменных зависят только от текущих значений входных переменных и не зависят от предыстории этих значений за исключением случаев, когда отсутствуют активные правила и не определены значения переменных по умолчанию. Если же контроллер должен быть реализован как динамическая система, то соответствующие динамические функции представляют собой внешние элементы для нечеткого функционального блока.
В системах автоматического регулирования обычно используются дифференцирующие и интегрирующие элементы (звенья) первого порядка. Выходные переменные таких элементов являются дополнительными входными переменными для системы нечеткого управления. Такими переменными также могут быть переменные, описывающие значения отклонения управляемых параметров от установленных значений.
Напротив, выходные переменные систем нечеткого управления могут использоваться операторами для выполнения коррекции управляемых параметров в различных системах управления.
Общая структура систем с нечетким управлением изображена на рис. 8.1, а, пример реализации системы нечеткого управления изображен на рис. 8.1, б. В примере в качестве входной переменной используется разность х между заданным и реальным значениями контролируемого параметра. Эта разность совместно с ее производной по времени и интегралом по заданному интервалу времени передаются в собственно систему нечеткого управления как три входные переменные, не зависящие от своей предыстории. В то же время переменная для коррекции контролируемого параметра получается на основе интегрирования по заданному интервалу времени выходной переменной системы нечеткого управления.
Область применения нечеткого управления достаточно широка— от небольших и простых приложений до комплексных и сложных проектов. Чтобы охватить все возможные случаи, следует использовать Правила согласованности классов систем нечеткого управления, которые дополняют и расширяют базовую нотацию языка FCL. При этом Базовый Класс определяет минимальное множество требований, которым должны удовлетворять все согласованные системы, что обеспечивает переносимость программ нечеткого управления.
Существующая теория и системы, реализованные в области нечеткого управления, отличаются между собой по используемой терминологии, функциональным возможностям и особенностям реализации в инструментальных средствах.
Цель Стандарта IEC 1131-7 состоит в том, чтобы, с одной стороны, предоставить разработчикам и пользователям однозначные и доступные для понимания базовые средства для интеграции приложений нечеткого управления, которые могут быть записаны в нотации языков программируемых контроллеров, а, с
Глава 8. Язык нечеткого управления — FCL 225 другой стороны, обеспечить возможность переносимости мобильных программ нечеткого управления между различными системами программирования.
б
Рис. 8.1. Общая структура систем нечеткого управления
Необязательные средства языка FCL определены в Классе Расширения. Программы нечеткого управления, использующие эти средства, могут переноситься с одной системы на другую только в том случае, если эти системы реализуют одинаковое множество этих средств. В противном случае может оказаться возможным лишь частичный перенос программ. Стандарт не требует, чтобы все согласованные системы реализовывали средства Класса Расширения в полном объеме. Хотя и допускается возможность частичного переноса, следует избегать использования нестандартных средств. Поэтому согласованная система не должна содержать нестандартные средства, которые не могут быть адекватно реализованы с использованием стандартных средств Базового Класса и Класса Расширения.
Чтобы не исключать из рассмотрения системы, использующие свои собственные и достаточно сложные средства, и не препятствовать процессу дальнейшего развития, Стандарт разрешает использование дополнительных нестандартных средств, которые не вошли в ни Базовый Класс, нив Класс Расширения. Однако все такие средства должны быть перечислены стандартным способом, чтобы можно было бы легко установить их нестандартный характер.
Переносимость приложений нечеткого управления зависит от особенностей как систем программирования, так и от характеристик систем управления. Все эти
особенности указываются в Списке Проверки Данных, который разрабатывается производителями систем.
Интеграция программируемых контроллеров
Приложения нечеткого управления, разработанные в форме программ на языке FCL согласно Стандарту IEC1131-7, должны быть инкапсулированы в Функциональные Блоки (или Программы) на основе Стандарта IEC1131-3, который определяет использование языков программирования в программируемых контроллерах. Поэтому здесь будут использоваться понятия Типа Функционального Блока и Экземпляра Функционального Блока, которые определяются в Стандарте IEC 1131-3.
Примечание
Стандарт IEC 1131-3 (полное название— International standard IEC 1131-3. Programmable controllers. Part 3. Programming languages, 1993) заслуживает того, чтобы остановиться на нем более подробно. Этот Стандарт определяет синтаксис и семантику пяти языков программирования программируемых контроллеров: Ladder diagram (LD), Sequential Function Charts (SFC), Function Block Diagram (FBD), Structured Text (ST), Instruction List (IL). Оставляя в стороне дискуссию о достоинствах и недостатках этих языков и Стандарта в целом, ниже дается лишь краткая характеристика этих языков.
Язык LD представляет собой некоторый графический язык программирования, являющийся стандартизованным вариантом класса языков релейноконтактных схем. Логические выражения на этом языке описываются в виде реле, которые широко применялись в области автоматизации в 1960-х годах.
Язык SFC представляет собой графический язык, используемый для описания алгоритма в виде набора связанных пар: шаг (step) и переход (transition). Шаг представляет собой набор операций над переменными. Переход — набор логических условных выражений, определяющий передачу управления к следующей паре шаг-переход. По внешнему виду описание на языке SFC напоминает хорошо известные логические блок-схемы алгоритмов. SFC имеет возможность распараллеливания алгоритма. Однако SFC не имеет средств для описания шагов и переходов, которые могут быть выражены только средствами других языков стандарта.
Язык FBD представляет собой графический язык, по своей сути похожий на LD. Вместо реле в этом языке используются функциональные блоки, по внешнему виду— микросхемы. Алгоритм работы некоторого устройства на этом языке выглядит как функциональная схема электронного устройства: элементы типа "логическое И", "логическое ИЛИ" и т. п., соединенные линиями.
Язык ST представляет собой текстовый высокоуровневый язык общего назначения, по синтаксису ориентированный на Паскаль. Самостоятельного значения не имеет, используется только совместно с языком SFC.
Язык IL представляет собой текстовый язык низкого уровня. Выглядит как типичный язык Ассемблера, что объясняется его происхождением: для
некоторых моделей ПЛК фирмы Siemens является языком Ассемблера. В рамках стандарта IEC 1131-3 к архитектуре конкретного процессора не привязан. Самостоятельного значения не имеет, используется только совместно с SFC.
Перечисленные языки IEC 1131-3 используются ведущими фирмами изготовителями ПЛК, имеют длительную историю применения, достаточно распространены и известны пользователям по тем или иным модификациям. Несмотря на то, что во многих случаях такие модификации несущественны, это влечет определенные неудобства при работе с ПЛК различных фирм-изготовителей. С этой точки зрения, стандарт IEC 1131-3 несомненно прогрессивен, поскольку позволяет привести бесчисленное число различных вариантов и интерпретаций языков ПЛК к единому знаменателю.
Tun Функционального Блока, определяемый в языке FCL, задается входными и выходными параметрами, специальными правилами и объявлениями нечеткого управления. Соответствующие Экземпляры Функционального Блока должны содержать значения данных конкретных приложений нечеткого управления.
Функциональные Блоки, записанные на языке FCL, могут быть использованы в программах и Функциональных Блоках, записанных на любом из языков Стандарта IEC 1131-3. При этом типы данных входных и выходных параметров Функционального Блока или программы на языке FCL должны соответствовать аналогичным параметрам данной среды реализации, как это показано на рис. 8.2.
Управляющпй_Кпапан_1
Рис. 8.2. Пример Функционального Блока нечеткого управления в форме диаграммы языка FBD
В этом примере Управляюгций_Клапан_1 использует конкретный экземпляр Функционального Блока, инстанцируемый от Типа Функционального Блока Нечеткий_ФБ. Тип Функционального Блока Нечеткий_ФБ может быть записан в форме программы на языке FCL в соответствии с его базовой нотацией, определенной в Стандарте IEC1131-7. Этот Функциональный Блок Нечеткий_ФБ может быть использован как в некоторой программе, так и в другом Функцио-
нальном Блоке, представленном в форме диаграммы на графическом языке FBD (Function Block Diagram, диаграммы функциональных блоков).
Перенос программ нечеткого управления
Определение нотации языка FCL базируется на определениях языков программирования Стандарта IEC1131-3. При этом взаимодействие алгоритма нечеткого управления со средой программирования должно быть скрыто от соответствующих программ. Именно поэтому алгоритм нечеткого управления следует представлять в форме Функционального Блока. При этом для представления собственно лингвистических аспектов Функциональных Блоков нечеткого управления оказываются необходимыми и такие элементы, как функции принадлежности, правила, операции и методы, которые и определяются в Стандарте IEC1131-7.
Стандартизация элементов языка FCL выполнена с целью достижения единого представления данных для обеспечения переноса программ между системами нечеткого управления различных производителей, как это изображено на рис. 8.3.
Рис. 8.3. Переносимость программ, написанных на языке FCL
Использование такого единого представления разработчиками программируемых контроллеров позволяет каждому из них иметь собственное аппаратное
обеспечение, редакторы и компиляторы программ. Разработчику достаточно лишь реализовать интерфейс данных для своего собственного редактора. В свою очередь заказчики и потребители получают возможность переноса соответствующих проектов нечеткого управления между различными разработчиками.
История разработки
и стандартизации языка FCL
Необходимость унификации и стандартизации подходов к рассмотрению методологии нечеткого управления стоила осознаваться в первой половине 1990-х гг. в связи с широкой разработкой и производством промышленных и бытовых устройств, реализованных на основе алгоритмов нечеткого управления.
С целью стандартизации методологии программирования, средств и функциональных характеристик нечеткого управления в области программируемых контроллеров в 1993 г. в США была организована специальная рабочая группа по рассмотрению соответствующих предложений (NWIP, New Working Item Proposal). В результате широкого международного обсуждения предложений была одобрена и принята в рамках Международной электротехнической комиссии IEC рабочая программа с названием "Стандартизация Нечеткого Управления".
Поскольку уже тогда предполагалось, что находившаяся на стадии становления технология будет включена в проектируемые программируемые контроллеры, разработка этого проекта была поручена в рамках подкомитета IEC SC65B (Устройства) специальной рабочей группе IEC 65B/WG7 (Программируемые контроллеры).
В декабре 1996 г. международным отделением TF8 рабочей группы IEC/65B/WG7 во Франкфурте, Германия был подготовлен проект Стандарта, получивший номер 1.0. По плану он должен стать частью 7 Международного Стандарта IEC 1131 "Программируемые контроллеры". Полное название этого Стандарта — Стандарт IEC 1131-7 CD 1-2- IEC TC65/WG 7/TF8 Part 7 — Fuzzy Control Language (Release 19, Januar 1997). Для удобства будем использовать его сокращенное название: IEC 1131-7.
Основное назначение Стандарта IEC 1131-7 — определить язык-FCL, предназначенный для программирования приложений нечеткого управления, которые могут быть использованы в программируемых контроллерах.
Этот Стандарт ссылается на другие стандартные документы, которые также утверждены в качестве Стандартов Международной организацией по стандартизации ISO по предложению Международной электротехнической комиссии. Ниже следует перечень этих документов:
IEC 1-1581-FDIS 1996, International Electrotechnical Vocabulary, clause 351: Automatic Control
IEC 1131 Part 1: 1992, General information
IEC 1131 Part 2: 1992, Equipment requirements and tests
IEC 1131 Part 3: 1993, Programming languages
IEC 1131 Technical Report, Guidelines for users and implementers of IEC 1131-3
8.2. Базовая нотация языка нечеткого управления FCL
В настоящем разделе рассматриваются элементы языка FCL, их синтаксис и правила использования в нечетких моделях систем управления. Описание этих элементов занимает центральное место в Стандарте IEC 1131-7.
Основные элементы языка FCL
Метод спецификации текстового описания программируемых контроллеров приводится в Приложении А Стандарта IEC 1131-3 (IEC 1131 Part 3: 1993, Programming languages). Этот же метод спецификации используется при описании языка FCL.
Формальная спецификация элементов языка для текстовых языков программирования описывается в Приложении В Стандарта IEC 1131-3. Для языка FCL следует использовать следующее подмножество этих элементов языка:
Буквы, цифры, идентификаторы
Константы
Типы данных
Переменные
Нотация правил продукций
В дополнение к перечисленным выше элементам языка Части 3 Стандарта IEC 1131 для записи правил продукций следует использовать следующие элементы языка FCL:
объявление_функционального_блока ::= ’FUNCTION_BLOCK' имя_функционального_блока
{объявления_вх_вых_переменных_ФБ}
{объявления_других_переменных_ФБ}
тело_функционального_блока
'END_FUNCTION_BLOCK’
объявления_вх_вых_переменных_ФБ ::= объявления_входа | объявления_выхода
объявления_других_переменных_ФБ ::= объявления_переменных
тело_функционального_блока ::= {блок_фаззификации}
{блок_дефаззификации}
{блок_правил}
{необязательный_блок}
блок_фаззификации ::= ’FUZZIFY' имя_переменной [лингвистический_терм) 'END_FUZZIFY блок_дефаззификации ::= 'DEFUZZIFY' имя_нечеткой_переменной {лингвистический_терм} метод_дефаззификации значение_по_умолчанию [интервал] 'END_FUZZIFY'
блок_правил ::='RULEBLOCK’ имя_блока_правил
определение_операции [метод_активизации] метод_аккумуляции {правило} 'END_RULEBLOCK* необязательный_блок ::='OPTION'
любой параметр спецификации модели 'END_OPTION'
лингвистический_терм ::= 'TERM’ имя_терма ': =' функция_принадлежности';' функция_принадлежности ::= одноэлементное_множество | точки одноэлементное_множество ::= число I имя_переменной точки ::= {*('число | имя_переменной',' число') '} метод_дефаззификации : : = 'METHOD' ':' 'COG' | 'COGS' | 'СОА' | 'LM' | 'RM'
значение_по_умолчанию ::= 'DEFAULT' ': =' число | 'NC' '; ' интервал ::= 'RANGE' ':=' '('число'..'число')’ ’;'
определение_операции ::=('OR' ':' 'MAX' | 'ASUM' | 'BSUM') |
('AND* ':' 'MIN' | 'PROD' | 'BDIF') ';' метод_активизации ::='ACT' ':' 'PROD' | 'MIN' ';'
метод_аккумуляции ::='ACCU' ':' 'MAX' | 'BSUM' | 'NSUM' ';'
правило ::='RULE' целое_число':'
'IF' условие 'THEN' заключение [WITH весовой_коэффициент] ';' условие ::= (подусловие I имя_переменной) {AND' | 'OR' (подусловие | имя_переменной)] подусловие ::=('NOT' '('имя_переменной 'IS' ['NOT']) имя_терма')') I
(имя_переменной 'IS' ['NOT'] имя_терма)
заключение ::={(имя_переменной | (имя_переменной ’IS' имя_терма))
', '}“ *
(имя_переменной | имя_переменной 'IS' имя__терма) весовой_коэффициент ::= переменная | число имя_функционального_блока ::= идентификатор имя_блока_правил ::= идентификатор имя_терма ::= идентификатор имя_нечеткой_переменной ::= идентификатор имя_ переменной ::= идентификатор число ::= целое_число | действительное_число объявления_входа ::= see IEC' 1131-3 Annex В объявления_выхода ::= see IEC 1131-3 Annex В объявлениЯ—Переменных ::= see IEC 1131-3 Annex В идентификатор ::= see IEC 1131-3 Annex В
Ключевые слова языка FCL
В табл. 8.1 приводится перечень ключевых слов языка FCL, которые разрешается использовать только в том значении, как оно определено в нотации языка FCL.
Таблица 8.1. Зарезервированные ключевые слова языка FCL
Ключевое слово
Описание ключевого слова
О
Скобки в условии, терме, интервале
ACCU
Метод аккумуляции
ACT
Метод активизации
AND
Операция логической конъюнкции (логическое "И")
AS UM
Операция логического "ИЛИ" по формуле алгебраической суммы
BDIF
Операция логического "И" по формуле ограниченной разности
BSUM
Метод аккумуляции по формуле ограниченной суммы
COA
Метод дефаззификации по формуле центра площади
COG
Метод дефаззификации по формуле центра тяжести
COGS
Метод дефаззификации по формуле центра тяжести для одноэлементных множеств
DEFAULT
Значение выхода по умолчанию в случае отсутствия активных правил
Таблица 8.1 (продолжение)
Ключевое слово
Описание ключевого слова
DEFUZZIFY
Дефаззификация выходной переменной
END_DEFUZZIFY
Конец спецификации дефаззификации
END_FUNCTION_BLOCK
Конец спецификации функционального блока
END_FUZZIFY
Конец спецификации фаззификации
END_OPTIONS
Конец спецификации дополнительных параметров
END_RULEBLOCK
Конец спецификации блока правил
END_VAR
Конец определения входных/выходных переменных
FUNCTION_BLOCK
Начало спецификации функционального блока
FUZZIFY
Фаззификация входной переменной
IF
Начало правила, после которого следует его условие
IS
Связка для значения лингвистической переменной в условии или заключении
LM
Метод дефаззификации по формуле левого модального значения
MAX
Метод аккумуляции по формуле максимума
METHOD
Метод дефаззификации
MIN
Минимум в качестве логической операции "И"
NC
Значение выходной переменной остается без изменения (No Change) в случае отсутствия активных правил
NOT
Операция логического отрицания (логическое "НЕ")
NSUM
Метод аккумуляции по формуле нормализованной суммы
OPTIONS
Начало спецификации дополнительных параметров
OR
Операция логической дизъюнкции (логическое "ИЛИ")
PROD
Произведение в качестве логической операции "И"
RANGE
Интервал переменной для шкалирования функции принадлежности
RM
Метод дефаззификации по формуле правого модального значения
RULE
Начало спецификации нечеткого правила
RULEBLOCK
Начало спецификации блока правил
Таблица 8.1 (окончание)
Ключевое слово
Описание ключевого слова
TERM
Определение лингвистического терма (функции принадлежности) для лингвистической переменной
THEN
Разделитель условия и заключения в нечетком правиле
VAR
Определение локальной переменной (переменных)
VAR_INPUT
Определение входной переменной (переменных)
VAR_OUTPUT
Определение выходной переменной (переменных)
WITH
Определение весового коэффициента
Интерфейс функционального блока (Function Block interface)
Согласно Стандарту IEC 1131-7, внешнее представление Нечеткого Функционального Блока требует использования следующих элементов языка FCL:
FUNCTION_BLOCK имя_функционального_блока {Функциональный блок}
VAR INPUTVAR INPUT{Объявление входных параметров}
VAR INPUT
VAR INPUT
имя-переменной: тип_данных;
END_VAR
VAR_OUTPUT(Объявление выходных параметров]
имя-переменной: тип_данных;
END_VAR
VAR(Локальные переменные]
имя-переменной: тип_данных;
END_VAR
END_FUNCTION_BLOCK
Эти элементы языка FCL позволяют описать интерфейс функционального блока. Интерфейс функционального блока определяется совместно с параметрами, которые могут использоваться внутри и вне этого функционального блока. Типы данных этих параметров должны быть определены в соответствии с требованиями Стандарта языка FCL. Ниже приводится пример объявления функционального блока на языке структурированного текста (ST, Structured Text), а на
рис. 8.4. изображен этот же функциональный блок на языке диаграмм функциональных блоков.
FUNCTION_BLOCK Нечеткий_ФБ
VAR_INPUT
Температура : REAL;
Давление : REAL;
END_VAR
VAR_OUTPUT
Клапан : REAL;
END_VAR
END FUNCTION BLOCK
Рис. 8.4. Пример объявления интерфейса функционального блока на языке FBD
Фаззификация (Fuzzification)
Как было сказано в главе 7, цель фаззификации заключается в преобразовании числовых значений входных переменных в функции принадлежности, определенные для лингвистических значений соответствующих переменных. Это преобразование в языке FCL описывается между ключевыми словами: fuzzify и end_fuzzify следующим образом:
FUZZIFY имя_переменной
TERM имя_терма := функции_принадлежности;
END_FUZZIFY
После ключевого слова fuzzify должно быть записано имя переменной, которая используется для фаззификации. Это имя переменной предварительно должно быть определено в секции var input. Соответствующая лингвистиче-
ская переменная должна быть описана одним или несколькими лингвистическими термами.
Лингвистические термы определяются после ключевого слова term и описываются посредством функций принадлежности, которые фаззифицируют эту переменную. В качестве функции принадлежности может использоваться некоторая кусочно-линейная функция. Эта функция задается таблицей своих точек в форме:
функция_принадлежности ::= (точка 1), (точка J), . . .
Каждая точка в списке представляет собой пару значений, разделенных запятой. Первое из них— количественное значение переменной, а второе— значение функции принадлежности для этого значения переменной. Эти пары значений заключаются в скобки и отделяются друг от друга запятыми:
точка i ::= значение входа i I имя_переменной на входе i, значение функции принадлежности i
Таким способом могут быть определены все простые элементы, такие как наклонная прямая и треугольная функция принадлежности. Точки должны записываться в возрастающем порядке значений переменной. Функция принадлежности между последовательными точками является линейной. Остальные значения функции принадлежности для произвольного значения входа вычисляются посредством линейной интерполяции значений функции принадлежности для двух соседних точек.
Число точек может изменяться, но их максимальное количество ограничено согласно правилу 6 классов согласованности.
Ниже приводится пример функции принадлежности с 3 точками для лингвистического терма "теплый":
TERM теплый := (10°С, 0.0), (50°С, 1.0), (90°, 0.0);
Если значение лингвистической переменной меньше, чем первая базовая точка в таблице задания функции принадлежности, то соответствующее значение функции принадлежности принимается равным значению для этой первой точки в таблице. Если значение лингвистической переменной больше, чем последняя базовая точка в таблице задания функции принадлежности, то соответствующее значение функции принадлежности принимаете^ равным значению для этой последней точки в таблице.
Примеры определения линейной Z-образной функции и линейной S-образной функции принадлежности:
FUZZIFY температура;
TERM холодный := (~10°С, 1), (10°С, 0);
TERM теплый := (10°С, 0.0), (50°С, 1.0);
END_FUZZIFY
Чтобы адаптировать модель нечеткого управления на этапе ее реализации, базовые точки функций принадлежности могут быть модифицированы. Это можно
сделать посредством определения дополнительных переменных, которые описываются как входные в функциональном блоке. Эти переменные необходимо объявить в секции var_INPUT функционального блока.
Примечание
Значения отдельных точек функций принадлежности во время выполнения программы могут выходить за пределы последовательности.
Ниже представлен пример задания точек функции принадлежности
VAR_INPUT
температура : REAL; (* этот вход должен быть фаззифицирован *)
давление : REAL; (*этот вход должен быть фаззифицирован *)
bp_warml, bp_warm2 : REAL; (* эти входы предназначены для интерактивной адаптации *)
END_VAR
FUZZIFY температура
TERM теплый := (bp_warml, 0.0), (40°С, 1.0), (bp_warm2, 0.0);
END_FUZZIFY
Дефаззификация (Defuzzification)
Лингвистическая переменная должна быть преобразована в количественное значение. Это преобразование описывается между ключевыми словами defuzzify и END_DEFUZZIFY.
Переменная, которая используется для дефаззификации, должна быть записана после ключевого слова defuzzify. Имя этой переменной должно быть объявлено ранее в секции var_output.
DEFUZZIFY имя_переменной
TERM имя_терма := функция_принадлежности;
метод_дефаззификации;
значение_по_умолчанию;
[интервал;]
END_DE FUZZIFY
Определение лингвистических термов задается в секции фаззификации. С целью упрощения дефаззификации выходов могут быть использованы специальные функции принадлежности в форме значения для одноэлементного множества. Подобные функции принадлежности описываются посредством единственного значения для лингвистического терма.
Ниже приводится пример определения таких термов. DEFUZZIFY клапан
TERM открыт_на_слив := -100;
TERM закрыт := 0;
TERM открыт_на_наполнение := 100;
END_DEFUZZIFY
Метод дефаззификации должен быть определен посредством элемента языка метод после ключевого слова method.
METHOD : метод_дефаззификации;
В качестве метода дефаззификации могут быть использованы следующие методы (табл. 8.2)
Таблица 8.2. Методы дефаззификации
Ключевое слово
Описание
Формула расчета
COG
Центр тяжести (Centre of Gravity)
(7.9)
COGC
Центр тяжести для одноточечных множеств (Centre of Gravity for Singletons)
(7.10)
СОА
Центр площади (Centre of Area)
(7.11)
LM
Левое модальное значение (Left Most Maximum)
(7.12)
RM
Правое модальное значение (Right Most Maximum)
(7.13)
Если значение функции принадлежности равно 0 для всех лингвистических термов некоторой выходной переменной, то это означает отсутствие активных правил для этой переменной. В этом случае дефаззификация не позволит получить адекватный результат. Именно по этой причине целесообразно определить для такой переменной некоторое значение по умолчанию. Это значение будет назначено выходной переменной только в случае отсутствия активных правил. Значение по умолчанию задается после ключевого слова default.
DEFAULT := значение I NC;
После ключевого слова default может быть указано значение по умолчанию или ключевое слово nc (no change). Последнее применяется для того, чтобы явно указать, что выход остается без изменения в случае, если отсутствуют активные правила.
Интервал определяется заданием после ключевого слова range некоторых минимального и максимального значений, которые разделяются двумя точками.
RANGE := (minimum value., maximum value);
Интервал используется для спецификации минимального и максимального значений некоторой выходной переменной. Если функции принадлежности термов выходной переменной заданы в форме одноэлементных множеств, то подобный интервал не может быть задан. В остальных случаях range используется для ограничения каждой функции принадлежности интервалом по каждой из выходных переменных. Этот интервал следует явно определять, чтобы избежать непредсказуемых значений выходных переменных.
Если этот интервал не задан, то принимается интервал по умолчанию для типа данных соответствующей переменной, как это определено в части 3 Стандарта IEC 1131-3. ‘
Блок правил (Rule block)
Для определения механизма нечеткого вывода используется один или несколько блоков правил. С целью удобства и предоставления возможности декомпозиции базы правил на отдельные модули разрешается использовать несколько блоков правил. При этом каждый блок правил должен иметь уникальное имя.
Правила должны быть определены между ключевыми словами ruleblock и end_ruleblock следующим образом.
RULEBLOCK имя_блока_правил
определение_операции;
[ метод_активизации;]
метод_аккумуляции;
правила;
END_RULEBLOCK
Внутри блока правил используются нечеткие операции
определение_операции ::= операция : алгоритм
Чтобы соответствовать законам Де Моргана следует использовать парные алгоритмы для операторов and и or, например, если для оператора AND используется алгоритм min, то для оператора OR следует использовать алгоритм мах. Соответствующие парные алгоритмы определены в табл. 8.3.
Таблица 8.3. Парные алгоритмы для операций
Оператор OR (логическое "ИЛИ")
Оператор AND (логическое "И")
Ключевое слово для алгоритма
Алгоритм
Ключевое слово для алгоритма
Алгоритм
МАХ
тах^М, ц2(х)}
MIN
т1п{щ(х), р2(х)}
ASUM
Pi(x)+ ц2(х) - щ(х)-ц2(х)
PROD
Hi(x)p2(x)
BSUM
min{1, m(x) + р2(х)}
BDIF
max{0, piW+n2W-1}
Ниже представлен пример записи блоков правил:
RULEBLOCK первый
AND : MIN;
END_RULEBLOCK
RULEBLOCK второй
AND : PROD;
END_RULEBLOCK
Метод активизации определяется после ключевого слова act следующим образом: ACT : метод_активизации;
Методы активизации, которые допустимы в языке FCL, определены в табл. 8.4. При этом следует помнить, что метод активизации не применим для одноэлементного множества.
Таблица 8.4. Методы активизации
Название метода
Ключевое слово для метода активизации
Алгоритм
Произведение
PROD
PtM-p^x)
Минимум
MIN
minlp^x), ц2(х)}
Метод аккумуляции определяется после ключевого слова ACCU следующим образом:
ACCU : метод_аккумуляции;
Методы аккумуляции, которые допустимы в языке FCL, определены в табл. 8.5.
Таблица 8.5. Методы аккумуляции
Название метода
Ключевое слово для метода аккумуляции
Формула
Максимум
МАХ
maxfoM ц2М}
Ограниченная сумма
BSUM
min{1, щ(х) + ц2(х)}
Нормализованная сумма
NSUM
Ц1(х) + р2(х).
тах{1, max{ц,(>■)+ Р2(>’)}} уеХ
Входами блока правил являются лингвистические переменные со своими множествами лингвистических термов. Каждый из термов имеет соответствующие значения функции принадлежности.
Правила определяются внутри блока правил. Каждое правило должно иметь в качестве своего имени уникальный номер внутри блока. Этот номер записывается после ключевого слова rule и заканчивается двоеточием.
RULE номер_правила : IF условие THEN заключение [WITH весовой_коэффициент];
Само правило должно начинаться ключевым словом if, после которого записывается условие правила. После условия должно следовать заключение, которое записывается после ключевого слова then.
В одном правиле допускается использовать несколько отдельных подусловий и входных переменных, чтобы иметь возможность оперировать различными нечеткими степенями принадлежности, которые могут быть включены в нечеткий функциональный блок FFB. Все такие подусловия должны быть записаны между ключевыми словами if и then и соединены логическими операциями с ключевыми Словами AND, OR, NOT.
Приоритет этих логических операций определяется согласно табл. 8.6.
Таблица 8.6. Приоритет логических операций
Приоритет
Операция
Приоритет
Операция
1
Скобки ()
3
AND (И)
2
NOT (НЕ)
4
OR (ИЛИ)
Ниже приводится простой пример записи некоторого правила:
RULE 1 : IF подусловие! AND переменная! OR переменная2 THEN заключение;
В соответствии с Базовым Уровнем согласованности операция or в условии некоторого правила может быть заменена определением двух отдельных правил. Например, правило
RULE 3 : IF подусловие! OR подусловие2 THEN заключение;
можно заменить на правила:
RULE За : IF условие! THEN заключение;
RULE 3b : IF условие2 THEN заключение;
Подусловия начинаются с имени некоторой лингвистической переменной, после которого следует ключевое слово is с необязательным ключевым словом not. После этих ключевых слов записывается один лингвистический терм для лингвистической переменной, которая определяется в соответствующем условии:
подусловие := лингвистическая_переменная IS [NOT] лингвистический_терм
Примечание
Используемые в условии лингвистические термы должны соответствовать лингвистической переменной в том же условии. При этом используемый терм должен быть заранее определен с ключевым словом term.
Ниже приводятся примеры записи подусловий в форме структурируемого текста:
температура IS горячая
температура IS NOT горячая
Допускается использование ключевого слова not перед записью подусловия. В этом случае следует применять круглые скобки, например:
IF NOT (температура IS горячий) THEN...
Заключение может быть разделено на несколько подзаключений и выходные переменные. Подзаключения начинаются с имени некоторой лингвистической переменной, после которого следует ключевое слово is с одним лингвистическим термом для этой лингвистической переменной:
подзаключение := лингвистическая_переменная IS лингвистический_терм
Ниже приводится пример нескольких подзаключений, записанных в одну строку:
IF температура IS холодная AND давление IS низкое THEN переменная!, клапан! IS открыт_на_наполнение, клапан2 IS закрыт;
или в несколько строк:
IF температура IS холодная AND давление IS низкое
THEN переменная!,
клапан! IS открыт_на_наполнение,
клапан2 IS закрыт;
При необходимости, но не обязательно, для каждого подзаключения можно задать весовой коэффициент, который представляет собой некоторое число типа данных real и со значением из интервала [0, 1]. Это число записывается после ключевого слова with:
IF условие THEN подзаключение! [WITH весовой_коэффициент], подзаключение2;
Выражение предназначено для уменьшения степени принадлежности (значения функции принадлежности) подзаключения посредством умножения результата подзаключения на этот весовой коэффициент.
Чтобы иметь возможность внешнего изменения параметров приложений нечеткого управления, весовой коэффициент может быть задан как переменная. При этом соответствующая переменная должна быть объявлена в секции var_input. Это предоставит возможность изменить весовой коэффициент в ходе выполнения программы и тем самым адаптировать программу нечеткого управления к особенностям решаемой задачи.
Если подзаключение не имеет записи с ключевым словом with, то используется значение весового коэффициента по умолчанию, которое равно 1. Ниже приводится пример записи постоянного весового коэффициента:
IF температура IS холодная AND давление IS низкое
THEN клапан! IS открыт_на_наполнение WITH 0.5, клапан2 IS закрыт;
Пример записи переменного весового коэффициента:
VAR_INPUT
вес_правила1 : REAL := 0.8;
END_VAR
RULEBLOCK правило_для_температуры
RULE 1: IF температура IS холодная AND давление IS низкое
THEN клапан! IS открыт_на_наполнение WITH вес_правила1,
END_RULEBLOCK
Простой пример записи модели нечеткого управления с использованием нотации языка FCL
FUNCTION_BLOCK Нечеткий_ФБ
VAR_INPUT температура : REAL; давление : REAL;
END_VAR
VAR_OUTPUT клапан : REAL;
END_VAR
FUZZIFY температура
TERM холодная := (-10°C, 1.0) (10°C, 0.0);
TERM горячая := (20°C, 0.0) (70°C, 1.0);
END_FUZZIFY
FUZZIFY давление
TERM низкое := (55, 1.0) (95, 0.0);
TERM высокое ;= (55, 0.0) (95, 1.0);
END_FUZZIFY DEFUZZIFY клапан
TERM открыт_на_слив := -100;
TERM закрыт := 0;
TERM открыт_на_наполнение := 100;
ACCU : МАХ;
METHOD : COGS;
DEFAULT := 0;
END_DEFUZZIFY
RULE_BLOCK номер_1
AND :
: MIN ;
RULE
THEN
1 : IF температура IS холодная AND давление IS низкое клапан IS открыт_на_слив
RULE
THEN
2 : IF температура IS холодная AND давление IS высокое клапан IS закрыт WITH 0.8;
RULE
THEN
3 : IF температура IS горячая AND давление IS низкое клапан IS закрыт;
RULE
THEN
4 : IF температура IS горячая AND давление IS высокое клапан IS открыт_на_наполнение;
END_RULEBLOCK
END_FUNCTION_BLOCK
Необязательные параметры (Optional parameters)
При построении нечетких моделей может возникнуть необходимость определить некоторую дополнительную информацию для той или иной системы, чтобы иметь возможность наиболее адекватного преобразования приложений нечеткого управления. Такая дополнительная информация может относиться к соответствующему элементу языка FCL и помещаться между ключевыми словами options и end_options следующим образом.
OPTIONS
параметры_спецификации_приложения
END_OPTIONS
Соответствующие элементы языка FCL должны удовлетворять правилам согласованности классов открытого уровня (правило 6).
Согласованность классов языка FCL
Модели систем управления, записанные в нотации языка FCL, должны быть согласованными по так называемым уровням согласованности классов. Эти уровни согласованности изображены на рис. 8.5 в форме так называемой диаграммы па-
кетов в нотации языка UML. Эта диаграмма представляет данные уровни в качестве основных подпакетов языка FCL, между которыми имеются зависимости, изображенные пунктирными линиями со стрелками.
Рис. 8.5. Уровни согласованности классов языка FCL
Примечание
В Стандарте IEC 1131-7 уровни согласованности классов изображены иным способом, хотя по своей сути они отражают структуру языка FCL в форме именно пакетов, как они определяются в нотации унифицированного языка моделирования UML. Желание более точно отобразить эту структуру и семантику зависимостей между пакетами послужило основной причиной для представления иерархии уровней согласованности в более адекватном виде— в форме диаграммы пакетов.
Согласно Стандарту IEC 1131-7, уровни согласованности классов представляют собой иерархию из трех уровней.
Базовый Уровень, включающий в себя определения функционального блока и типы данных.
Уровень Расширения, включающий в себя необязательные параметры.
Открытый Уровень, включающий в себя дополнительные параметры.
Модель системы управления, записанная в нотации языка FCL, должна соответствовать настоящим требованиям Стандарта, которые представлены в форме следующих Правил согласованности-.
Для реализации функциональности в модели нечеткого управления следует использовать Функциональный Блок, как он определен в настоящем Стандарте. Поэтому определения Функциональных Блоков и Типов Данных для входных и выходных параметров функционального блока должны согласовываться с базовой нотацией языка FCL.
Все параметры функциональности модели нечеткого управления, определенные в табл. 8.7, должны быть заданы в соответствии с базовой нотацией языка FCL. Указанная таблица определяет множество элементов Базового Уровня, которые должны содержать в общем случае все модели стандартных систем.
Подмножество элементов Уровня Расширения, определенных в табл. 8.8, составляет дополнительные элементы, которые можно использовать в необязательном порядке. Модели систем в нотации языка FCL должны в точности отвечать соответствующим требованиям Стандарта IEC 1131-7. Все необязательные параметры должны относиться к Уровню Расширения, а перечень используемых необязательных параметров в форме табл. 8.8 должен стать частью документации на модель системы.
Другие параметры, выходящие за пределы Базового Уровня и Уровня Расширения, допускается использовать в модели таким образом, чтобы эти параметры не имели таких же или аналогичных параметров среди стандартных элементов функциональности языка FCL. Тем самым должны быть исключены любые возможные недоразумения. Эти дополнительные параметры должны относиться к Открытому Уровню, а перечень используемых дополнительных параметров в форме табл. 8.9 должен стать частью документации на модель системы.
Перенос прикладных программ между различными системами нечеткого управления следует осуществлять в текстовой форме в соответствии с нотацией языка FCL, определенной в Стандарте IEC 1131-7. При этом все системы нечеткой логики, претендующие на соответствие этому Стандарту, должны обязательно использовать в качестве своего входного и выходного формата нотацию Базового Уровня языка FCL (см. табл. 8.7), включая определение Функционального Блока и Типов Данных из Стандарта IEC 1131-3, а также Уровень Расширения с дополнительными средствами (см. табл. 8.8) и Открытый Уровень с необязательными средствами (см. табл. 8.9).
Таблица 8.7. Элементы языка FCL Базового Уровня (обязательные)
Элемент языка FCL
Ключевое слово
Примечание
Объявление функ-
VAR_INPUT,
Содержит входные и выходные пе-
ционального блока
VAR_OUTPUT
ременные
Функция при над-
Входная
Максимум — 3 точки (координата
лежности
переменная: term
степени принадлежности равна 0 или 1)
Выходная переменная: term
Только одноэлементное множество
Агрегирование условий
Оператор: and
Алгоритм: min
Таблица 8.7 (окончание)
Элемент языка FCL
Ключевое словоПримечание
Активизация
—Не применяется в случае использо
вания только одноэлементных множеств
Аккумуляция (результат агрегирования)
Оператор : ACCUАлгоритм : мах
Дефаззификация
METHODАлгоритм : COGS
Значение по умолчанию
Чтобы использовать этот параметр, в Базовом Классе должны быть подготовлены предварительные определения
Условие
IF... IS .../V подусловий
Заключение
Весовой коэффициент
THENТолько одно подзаключение
WITHТолько значение
Элементы, представленные в табл. 8.8, расширяют множество параметров, которые являются необязательными для представления в стандартной модели нечеткого управлении (например, для логической операции "И" может быть использован алгоритм prod или bdif).
Таблица 8.8. Элементы языка FCL Уровня Расширения (необязательные)
Элемент языка FCL
Ключевое слово
Примечание
Объявление функционального блока
VAR
Содержит локальные переменные
Функция принадлежности
Входная переменная:term
Максимум — 4 точки (координата степени принадлежности равна 0 или 1) '
Выходная переменная:term
Максимум — 4 точки (координата степени принадлежности равна 0 или 1)
Агрегирование условий
Оператор: and
Алгоритм: PROD, BDIF
Оператор: OR
Алгоритм: asum, bsum
Оператор: NOT
1 — {аргумент}
Таблица 8.8 (окончание)
Элемент языка FCL
Ключевое слово
Примечание
Скобки
О
Активизация
Оператор: ACT
Алгоритм: min, prod
Аккумуляция
Оператор: ACCU
Алгоритм: bsum, nsum
Метод дефаззифи- кации
Оператор: method
Алгоритм: COG, COA, LM, RM
Значение по умолчанию
DEFAULT
nc, значение
Условие
IF
п подусловий, /V входных переменных
Заключение
THEN
п подзаключений, N выходных переменных
Весовой коэффициент
WITH
Значение назначается переменной в секции объявления
VAR_INPUT...END_VAR
В табл. 8.9 представлен пример списка элементов языка FCL Открытого Уровня. Этот список также должен быть частью документации на систему.
Таблица 8.9. Пример списка элементов языка FCL Открытого Уровня
Произвольные функции принадлежности для входов/выходов (например, функция Гаусса, экспоненциальная функция)
Более чем 4 точки для функции принадлежности
Координата значения функции принадлежности от 0 до 1
Произвольные элементы, заданные программистом
Список проверки данных
Этот список проверки данных должен прилагаться к технической документации. В этом списке разработчик программных контроллеров, средств нечеткого программирования и' прикладных программ должен описать специальные параметры реализации своей системы нечеткого управления. Чтобы обеспечить передачу приложений нечеткого управления между системами различных производителей, необходимо представить следующий Список проверки данных (табл. 8.10), который является средством установления правильности возможного переноса программ.
Таблица 8.10. Список проверки данных
Технические данные
Значения, установленные разработчиком (примеры)'
Типы данных входов и выходов функционального блока
REAL, INT
Строки комментариев в программах на языке FCL
YES, NO
Длина идентификаторов (например, имена переменных, блоков правил, термов)
6, 8
Максимальное число входных переменных для фаззифи- кации
6, 8
Максимальное число функций принадлежности термов для входной переменной
5, 7
Максимальное общее число функций принадлежности термов для всех входных переменных
30, 56
Максимальное число точек функции принадлежности для каждого из термов входных переменных
3, 4, 10
Максимальное общее число точек функции принадлежности для всех термов входных переменных
90, 224
Максимальное число выходных переменных для дефаззи- фикации
6, 8
Максимальное число функций принадлежности термов для выходной переменной
5, 7
Максимальное общее число функций принадлежности термов для всех выходных переменных
30, 56
Максимальное число точек функции принадлежности для каждого из термов выходных переменных
1, 4, 10
Максимальное общее число точек функции принадлежности для всех термов выходных переменных
90, 224
Максимальное число блоков правил
1, ю
Максимальное число правил в блоке
10
Максимальное число подусловий в правиле
4, 10
Максимальное число всех правил
15
Максимальное число подзаключений в правиле
4
Глубина вложенности скобок “ ()"
1, з
8.3. Пример разработки
и записи нечетких моделей на языке FCL
Нечеткая модель управления смесителем воды при принятии душа
Соответствующий пример был рассмотрен ранее в главе 7. Если в качестве алгоритма нечеткого вывода используется алгоритм Мамдани, то методом активизации будет min, который рассчитывается по формуле (7.6). Для аккумуляции заключений правил будем использовать метод мах, который наиболее часто применяется в случае схемы нечеткого вывода методом Мамдани. Наконец, в качестве метода дефаззификации будем использовать метод центра тяжести, который задается с помощью ключевого слова cog.
Таким образом, нечеткая модель управления смесителем воды может быть записана в нотации языка FCL следующим образом:
FUNCTION_BLOCK смеситель_воды
VAR_INPUT
температура: REAL;
END_VAR
VAR_OUTPUT
угол: REAL;
END_VAR
FUZZIFY температура
TERM холодная := (10, 1) (30, 0) ;
TERM прохладная := (20, 0) (35, 1) (50, 0);
TERM теплая := (40, 0) (50, 1) (60, 0);
TERM не_очень_горячая := (50, 0) (60, 1) (70, 0);
TERM горячая := (60, 0) (70, 1);
END_FUZZIFY
DEFUZZIFY угол
TERM большой_влево := (-72, 1) (-36, 0) ;
TERM небольшой_влево := (-54, 0) (-27, 1) (0, 0);
TERM нуль := (-18, 0) (0, 1) (18, 0) ;
TERM небольшой_вправо := (0, 0) (27, 1) (54, 0);
TERM большой_вправо := (36, 0) (72, 1);
ACCU: MAX;
METHOD : COG
DEFAULT := О
END_DEFUZZIFY
RULEBLOCK Номер_1
AND : MIN;
RULE 1: IF температура IS горячая THEN угол IS большой_вправо;
RULE 2: IF температура IS не_очень_горячая THEN угол IS неболь- шой_вправо;
RULE 3: IF температура IS теплая THEN угол IS нуль;
RULE 4: IF температура IS прохладная THEN угол IS небольшой— влево"
RULE 5: IF температура IS холодная THEN угол IS большой— влево;
END_RULEBLOCK
END_FUNCTION_BLOCK
Нечеткая модель управления кондиционером воздуха в помещении
Соответствующий пример был рассмотрен ранее в главе 7. Если в качестве алгоритма нечеткого вывода используется алгоритм Мамдани, то методом активизации будет min, который рассчитывается по формуле (7.6). Для аккумуляции заключений правил будем использовать метод мах, который наиболее часто применяется в случае схемы нечеткого вывода методом Мамдани. Наконец, в качестве метода дефаззификации будем использовать метод центра площади, который задается с помощью ключевого слова соа.
Таким образом, нечеткая модель управления кондиционером может быть записана в нотации языка FCL следующим образом:
FUNCTION_BLOCK кондиционер
VAR_INPUT
температура: REAL;
скорость_изм: REAL;
END_VAR
VAR_OUTPUT
угол: REAL;
END-VAR
FUZZIFY температура
TERM NB : = (5, 1) (10, 0) ;
TERM NS := (5, 0) (10, 1) (16, 0) ;
TERM Z :=
(15, 0)
(17.5,
1)
(20, 0);
TERM PS :=
(19, 0)
(25,
1)
(30, 0);
TERM PB :=
(25, 0)
(30,
1);
END_FUZZIFY
FUZZIFY скорость_изм
TERM NS := (-1, 1)
(0, 0);
TERM Z :=
(-0.5, 0
) (0,
1)
(0.5, 0);
TERM PS :=
(0, 0)
(1, 1)
END_FUZZIFY
DEFUZZIFY угол
TERM NB := (-67.5,
1) (-45,
0);
TERM NM := (-67.5,
0) (-45,
1) (-22.5, 0)
TERM NS := (-45, 0
) ("22.5,
1) (0, 0);
TERM Z := (-10, 0)
(0, 1) (10, 0);
TERM PS := (0, 0)
(22.5, 1)
(45, 0);
TERM PM := (22.5,
0) (45, 1)
(67.5, 0);
TERM PB := (45, 0)
(67.5, 1)
ACCU: МАХ;
METHOD : СОА
DEFAULT := О
END_DEFUZZIFY
RULEBLOCK Номер_1
AND : MIN;
RULE 1: IF температура IS PB AND скорость_изм IS PS THEN угол IS NB;
RULE
_2: IF температура
IS
PB AND скорость_изм IS NS
THEN
RULE
угол IS NS:
_3: IF температура
IS
PS AND скорость_изм IS PS
THEN
RULE
угол IS NM;
_4: IF температура
IS
PS AND скорость_изм IS NS
THEN
RULE
угол IS Z;
_5: IF температура
IS
NB AND скорость_изм IS NS
THEN
RULE
угол IS PB;
_6: IF температура
IS
NB AND скорость_изм IS PS
THEN
RULE
угол IS PS;
7: IF температура
IS
NS AND скорость изм IS NS
THEN угол IS РМ;
RULE _8: IF температура IS NS AND скорость_изм IS PS THEN угол IS Z;
RULE _9: IF температура IS PB AND скорость_изм IS Z THEN угол IS NM;
RULE _10: IF температура IS PS AND скорость_изм IS Z THEN угол IS NS;
RULE _11: IF температура IS NB AND скорость_изм IS Z THEN угол IS PM;
RULE _12: IF температура IS NS AND скорость_изм IS Z THEN угол IS PS;
RULE 13: IF температура IS Z AND скорость_изм IS PS THEN угол IS NS;
RULE _14: IF температура IS Z AND скорость_изм IS NS THEN угол IS PS;
RULE _15: IF температура IS Z AND скорость_изм IS Z THEN угол IS Z;
END_RULEBLOCK
END_FUNCTION_BLOCK
Нечеткая модель управления контейнерным краном
Соответствующий пример был рассмотрен ранее в главе 7. Если в качестве алгоритма нечеткого вывода используется алгоритм Мамдани, то методом активизации будет min, который рассчитывается по формуле (7.6). Для аккумуляции заключений правил будем использовать метод мах, который наиболее часто применяется в случае схемы нечеткого вывода методом Мамдани. Наконец, в качестве метода дефаззификации будем использовать метод центра тяжести для одноэлементных множеств, который задается с помощью ключевого слова COGS.
Таким образом, нечеткая модель управления контейнерным краном может быть записана в нотации языка FCL следующим образом:
FUNCTION_BLOCK контейнерный_кран
VAR_INPUT
расстояние: REAL;
угол: REAL;
END_VAR
VAR_OUTPUT
мощность: REAL;
END_VAR
FUZZIFY расстояние
TERM очень_далекое :
= (-5,
1) (0, 0);
TERM нуль := (-5, 0)
(0, 1)
(5, 0);
TERM близкое := (0,
0) (5,
1) (10, 0);
TERM среднее := (5,
0) (10,
1) (22, 0);
TERM далекое := (10,
0) (22
, 1);
END_FUZZIFY
FUZZIFY угол
TERM
отр_большой :
:= (-50
, 1) (-
5, 0) ;
TERM
отр_малый :=
(-50,
0) (-5,
1) (0, 0);
TERM
нуль := (-5,
0) (0,
1) (5,
0) ;
TERM
пол_малый :=
(0, 0)
(5, 1)
(50, 0) ;
TERM
пол_большой :
:= (5,
0) (50,
1);
END FUZZIFY
DEFUZZIFY мощность
TERM отр_высокая := -27;
TERM отр_средняя := -12;
TERM нуль := 0;
TERM пол_средняя := 12;
TERM пол_высокая := 27; ACCU: MAX;
METHOD : COGS
DEFAULT := 0
END_DEFUZZIFY
RULEBLOCK Номер_1 AND : MIN;
RULE
1: IF расстояние IS далекое AND угол IS
НОЛЬ
THEN
мощность IS пол_средняя;
RULE
THEN
2: IF расстояние IS далекое AND угол IS мощность IS пол_большая;
отр_малый
RULE
THEN
3: IF расстояние IS далекое AND угол IS мощность IS полусредняя;
отр^большой
RULE 4: IF расстояние IS среднее AND угол IS отр_малый THEN мощность IS отр_средняя;
RULE 5: IF расстояние IS близкое AND угол IS пол_малый THEN мощность IS пол_средняя;
RULE 6: IF расстояние IS ноль AND угол IS ноль
THEN мощность IS ноль;
END_RULEBLOCK
END FUNCTION BLOCK
Поскольку этот функциональный блок записан в нотации языка FCL, который является языком программирования высокого уровня, то рассмотренная программа по своей структуре полностью соответствует некоторой процедуре. Формальными параметрами такой процедуры являются входные переменные блока правил, а возвращаемыми значениями — значения выходных переменных после дефаззификации.
Вызов такой процедуры в некоторой внешней программе может быть реализован, например, следующим образом:
контейнерный_кран (расстояние :=12, угол :=15°);
varP := контейнерный_кран.мощность;
В этом случае переменной с именем varP присваивается значение нечеткого вывода для блока правил, определенного в Функциональном Блоке контейнер- ный_кран, при конкретных значениях входных переменных: 12 м для расстояния и 15° для угла.
Особенности реализации систем нечеткого вывода и выполнение соответствующих расчетов для конкретных значений входных переменных и параметров функциональных блоков в инструментальных средах MATLAB и fuzzyTECH будут рассмотрены далее в частях II и III книги.
Глава 9
Основы общей теории нечеткой меры
В начале книги рассматривалось несколько содержательных примеров, которые иллюстрировали особенности нечеткого представления знаний и различия в нечетком и вероятностном описании различных явлений и объектов. В настоящей главе излагаются основы теории нечеткой меры, которая позволяет с единых концептуальных позиций рассматривать широкий класс задач нечеткого моделирования, устанавливая при этом взаимосвязь между теорией нечетких множеств, теорией вероятностей и теорией свидетельств.
Необходимость введения в рассмотрение и изучение различных вариантов нечетких мер обуславливается наличием различных аспектов неопределенности, которые встречаются при решении задач нечеткого моделирования. В этом случае построение адекватных нечетких моделей оказывается возможным на основе анализа доступной информации с точки зрения общей концепции нечеткой меры и представления ее в виде, в наибольшей степени соответствующем получению достоверного решения задачи.
Нечеткие меры и их основные свойства
Нечеткие меры предназначены для представления неточной или неясной информации относительно принадлежности тех или иных элементов одному или нескольким обычным множествам. Чтобы пояснить эту идею, рассмотрим следующий простой пример.
П р и м е р 9.1. Предположим, имеется два утверждения в форме обычных высказываний: "Движущийся по автостраде автомобиль белого или серого цвета" и "Движущийся по автостраде автомобиль белого или серебристого цвета", принадлежащие двум различным наблюдателям. Вопрос заключается в том, чтобы по возможности точно определить цвет движущегося по автостраде автомобиля.
Если предположить, что оба эти высказывания истинны, то достаточно преобразовать эти высказывания, представив их в форме некоторого предиката Р(х), который бы описывал каждое из них. В этом случае обозначим множество авто-
мобилей белого цвета через Аз, множество автомобилей серого цвета через Аг, а множество автомобилей серебристого цвета через Аз. Пусть предикат Р(х) описывает цвет автомобиля таким образом, что он принимает значение "истина" в случае, когда автомобиль х принадлежит одному из введенных в рассмотрение множеств. А именно, если цвет автомобиля белый, то Р(х) принимает значение "истина" только при xgJi, если цвет автомобиля серый, то Р(х) принимает значение "истина" только при хеАг и, наконец, если цвет автомобиля серебристый, то Р(х) принимает значение "истина" только при хеАз.
Тогда истинность первого высказывания будет соответствовать истинности данного предиката Р(х) при хеАзиАг, истинность второго из высказываний будет соответствовать истинности данного предиката Р(х) при хеАзиАз. Что касается поставленного вопроса, то истинность соответствующего высказывания определяется множеством: (Л|иЛ2)п(Л|иЛз), которое равно Аз в случае, когда три множества Аз, Аг, Аз взаимно не пересекаются. Таким образом, ответом на поставленный вопрос будет утверждение о том, что "Движущийся по автостраде автомобиль белого цвета”.
Ситуация существенно усложняется в ситуации, когда исходные высказывания сформулированы в форме нечетких высказываний. Именно в этом случае наиболее адекватный ответ позволяет дать теория нечеткой меры. Рассмотрение основ этой теории начнем с формального определения аксиоматики нечеткой меры, которая впоследствии конкретизируется с целью систематизации отдельных мер возможности и необходимости, доверия и правдоподобия, а также классической вероятности.
Общее определение нечеткой меры
Формальное определение нечеткой меры основывается на рассмотрении некоторого произвольного универсума X и множества всех его подмножеств (булеана) В(А).
Нечеткая мера. Нечеткой мерой или квазимерой называется произвольное отображение G: В(А)->[0, 1], удовлетворяющее следующим условиям (аксиомам нечеткой меры) -.
G(0)=O,G(A)=1, (ограниченность) (9.1)
если А, ВеВ(Л) и АаВ, то
G(A) < G(B),(монотонность) (9.2)
если F,gB(A) и {Г,},е/у является монотонной относительно включения последовательностью множеств, то
lim G(Fj) = G(lim Fj)(непрерывность) (9.3)
/^“,-_>=='
Примечание
Формальное определение нечеткой меры в форме аксиом (9.1)—(9.3) не удовлетворяет строгим критериям конструктивности, принятым в некоторых школах
математики. С этой целью вместо булеана В(Х) необходимо использовать более "хорошую" конструкцию — так называемую о-алгебру или Борелевское поле подмножеств X. Хотя булеан является более общим понятием, чем о- алгебра подмножеств, его использование для ограниченных или компактных универсумов не приводит к концептуальным противоречиям.
По аналогии с вероятностным пространством общее определение нечеткой меры позволяет определить математическую структуру, соответствующую пространству с нечеткой мерой.
Пространством с нечеткой мерой называется математическая структура вида (X, 3, G), где X— базовое множество (универсум); 3 — о-алгебра на X; G— некоторая нечеткая мера, т. е. функция множества, удовлетворяющая аксиомам (9.1)—(9.3).'
С учетом сделанного выше примечания и с целью систематизации последующего изложения будем использовать конкретизацию булеана в форме о-алгебры 3 на X. Эти обозначения будут применяться и далее.
Математическая структура пространства с нечеткой мерой (X, 3, G) является слишком абстрактной для своего использования и допускает различные конкретизации на основе введения дополнительных аксиом, усиливающих отдельные свойства функции G. Получаемые в результате математические структуры являются порожденными от математической структуры пространства с нечеткой мерой и наследуют все характерные свойства последней.
Меры доверия и правдоподобия
Конкретизацией общего понятия нечеткой меры являются мера доверия (от англ. belief) и мера правдоподобия (от англ, plausibility).
Мера доверия. Мерой доверия называется такая нечеткая мера G*, для которой вместо аксиомы (9.3) используется более сильная аксиома:
если А и Аг,..., А„еЗ, то
G*^ иЛ2 kJ...vjAn)>^G»(Ai)-^G»(Air^Aj) + ...(9.4)
/=1kj
... + <-\)п+1С4АхГ\А2 ru..r>An).
Меру доверия иногда называют также нижней вероятностью и обозначают через Ь(А) или bel(A).
Пространством с мерой доверия называется математическая структура fX, 3, G*), функция нечеткой меры G* которого удовлетворяет аксиомам (9.1), (9.2) и (9.4).
В случае 2-х множеств (и=2) формула (9.4) превращается в формулу: G*(A\xjA2) > G*(A 1) + G*(Ai) — G*(A icaAi).
Мера правдоподобия. Мерой правдоподобия называется такая нечеткая мера G*, для которой вместо аксиомы (9.3) используется более сильная аксиома:
если АцАг,..., А„еЗ, то
СЧА^А2Г>...Г>АП)<^СЧА^-^СЧА^А,) + ...(9.5)
1=1i<j
... + (—1)”+1G* (Л] U^2 u.-.u^) .
Меру правдоподобия иногда называют также верхней вероятностью и обозначают через pl{A).
Пространством с мерой правдоподобия называется математическая структура (X, 3, G*), функция нечеткой меры G* которой удовлетворяет условиям (9.1), (9.2) и (9.5)."""
В случае 2-х множеств (и=2) формула (9.5) превращается в формулу: G*(A 10Л2) < G*(/4i) + G*(Ai) — G*(AikJAi).
Эти две меры удовлетворяют свойству обратного дополнения: G*(/l)=l - G*( А) и G<4)=1 -G\A).
Аксиоматика пространств с мерой доверия и мерой правдоподобия остается все еще слишком бедной для их практического использования в задачах нечеткого моделирования. Наибольшее применение при построении нечетких моделей находят меры возможности, необходимости и вероятности, определения которых приводятся далее в этой главе.
Меры возможности, необходимости и вероятности
Мера возможности. Мерой возможности называется такая нечеткая мера G0, для которой вместо аксиомы (9.3) используется более сильная аксиома:
если Ai,A2,...,Ab...G3, то G°(Ai<jA2<3..ajA,„.) = sup G°(At)(9.6)
'' teN ' '
Пространством с мерой возможности называется математическая структура (X, 3, G0), функция нечеткой меры G0 которой удовлетворяет условиям (9.1), (9.2) и (9.6).
Мера возможности в некотором контексте отражает физические или иные ограничения на значения, которые может принимать та или иная переменная. Так, например, если рассмотреть число пассажиров, которые могут поместиться в обычном легковом автомобиле, то с каждым натуральным числом не ГО можно связать число из интервала [0, 1], которое содержательно будет соответствовать возможности размещения п пассажиров (не считая водителя) в салоне обычного легкового автомобиля.
Если обозначить эту функцию через g(x), то очевидно, g(l) = 1, g(2) = 1, g(3) = 1, g(4) = I, g(5) = 0.9 (бывает ведь и так), g(6) = 0.5 (вспомним свою юность), g(l) = 0.2 (случалось один раз в салоне ГАЗ 21), g(8) = g(9) =...= 0. (Впрочем, кто- нибудь из читателей может не согласиться и будет по своему прав, поскольку оценка возможности — процедура субъективная).
Это распределение возможности может быть использовано для некоторых количественных оценок. Например, если имеется свидетельство, что в проехавшем легковом автомобиле находилось несколько пассажиров, то тем самым нечеткое множество, описывающее свойство "несколько", сопоставляется с рассмотренным распределением возможностей. Это сопоставление может быть выполнено с помощью так называемого нечеткого интеграла, определение которого приводится далее в разд. 9.2.
Для меры возможности справедливо следующее свойство: G°(^)+G°( А )>1.
Мера необходимости. Мерой необходимости называется такая нечеткая мера Go, для которой вместо аксиомы (9.3) используется более сильная аксиома:
если At, Ai,..., А„...еЗ, то Go(AtnAio...nA,:..) = inf Go(A,). (9.7) ieN '
Меру необходимости иногда называют согласованной мерой доверия.
Для меры необходимости справедливы следующие свойства: Go(/i)+Go( А )<1, а также: G°(/4)=1-Go (А) и Go (Л)=1- G° ( А ). Если Go(^)>O, то G%A)=l. Напротив, если G%4)<\, то Go(/l)=O.
Пространством с мерой необходимости называется математическая структура (X, 3, Go), функция нечеткой меры Go которого удовлетворяет условиям (9.1), (9.2) и (9.7).
Вероятностная мера. Вероятностной мерой называется такая нечеткая мера Р, для которой вместо аксиомы (9.3) используется более сильная аксиома:
если At, Ai,..., Aj,...e3 иА,гА =OQ^j), то Р(А1иА2и...иА;...) = £ P(Af). (9.8) ' ieN
Пространством с вероятностной мерой или вероятностным пространством называется математическая структура (X, 3, Р), функция нечеткой меры Р которого удовлетворяет условиям (9.1), (9.2) и (9.8).
Вероятностное пространство обладает наиболее сильной аксиоматикой, обусловленной необходимостью выполнения условия счетной аддитивности (9.8). С одной стороны это способствовало становлению и развитию самостоятельной математической дисциплины — теории вероятностей с весьма обширной областью приложений и глубиной полученных теоретических результатов. Познакомиться с предметом этой дисциплины и методами соответствующих исследований можно, обратившись к специальной литературе.
В контексте нечеткого моделирования следует помнить, что аксиома счетной аддитивности требует, чтобы исследуемый объект или процесс удовлетворял целому ряду требований, в частности, некоторому закону распределения вероятностей. В отдельных случаях, особенно при отсутствии прецедентов или другой
достоверной информации о свойствах исследуемых объектов или систем, подобные предположения могут привести к построению неадекватных математических моделей.
Именно по этой причине необходимо с большой осторожностью подходить к высказываниям типа: "Предположим, что случайная величина подчиняется равномерному закону распределения". Подобные утверждения, особенно при недостатке информации относительно полного пространства событий, могут оказаться причиной получения необоснованных результатов с использованием вероятностных моделей.
С точки зрения прикладного системного анализа в подобных ситуациях при недостатке статистической информации или при отсутствии предпосылок выполнения аксиом вероятностного пространства, целесообразно использовать более слабую аксиоматику пространств с мерой возможности и необходимости. Построенные на их основе нечеткие модели могут оказаться более конструктивными для решения широкого класса практических задач.
Х-нечеткие меры
В завершение рассмотрения нечетких мер приводится их параметрическое представление, которое оказывается очень удобным в случае построения и использования так называемых адаптивных нечетких моделей, в которых некоторые модели обладают возможностью итеративного уточнения либо в ходе предварительного обучения или итеративной настройки. Примером подобных моделей являются нечеткие нейронные сети, которые рассматриваются далее в главе 15. Здесь приводится лишь формальное определение Х-нечеткой меры, которое необходимо для общей систематизации пространств с нечеткой мерой.
Х-н е ч е т к а я мера. Х-нечеткой мерой называется такая нечеткая мера Р, для которой вместо аксиомы (9.3) используется более сильная аксиома:
если А, ВеЗ и АглВ=0, то Gx(AvjB)=:Gx(A)+Gx(B)+XGx(A)Gx(B), (9.9)
где число Хе(-1,+оо) называется параметром нормировки.
Пространством с Х-нечеткой мерой называется математическая структура (X, 3, Gx\ функция нечеткой меры Gx которого удовлетворяет условиям (9.1), (9.2) и (9.9).
Пространство с Х-нечеткой мерой (X, 3, Gx) в свою очередь допускает несколько конкретизаций в зависимости от значения параметра X. Наиболее важными с точки зрения классификации пространств с нечеткой мерой являются случаи Хе(-1, 0), Х=1 и Хе(0,+оо), для которых получаются конкретизации введенных в рассмотрение пространств с нечеткой мерой.
Пространством с Х-нечеткоймерой доверия называется математическая структура (X, 3, G*x), функция нечеткой меры G*x которого удовлетворяет условиям (9.1), (9.2) и дополнительному условию (9.9) при Хе(0,+оо).
Пространством с Х-нечеткой мерой правдоподобия называется математическая структура (X, 3, G\), функция нечеткой меры G\ которого удовлетворяет условиям (9.1), (9.2) и дополнительному условию (9.9) при Хе(-1,0).
Следует заметить, что вероятностное пространство (X, 3, Р) является также пространством с Х-нечеткой мерой при Х=0.
Классификация пространств с нечеткими мерами
Рассмотренные выше пространства с различными вариантами нечетких мер представляют собой математические структуры, каждую из которых можно считать некоторым абстрактным классом. Важной особенностью подобной точки зрения является определенная взаимосвязь классов пространств с неопределенностью, основанная на их конкретизации посредством усиления соответствующих аксиом.
Рис. 9.1. Диаграмма классов математических структур пространств с нечеткой мерой в нотации языка UML
Таким образом, может быть получена классификация различных классов пространств с нечеткой мерой, которая представлена на рис. 9.1 в форме диаграммы классов языка UML. На этой диаграмме базовая математическая структура пространства с нечеткой мерой может использоваться в качестве своеобразного шаблона, параметрами которого являются аксиомы рассмотренных нечетких мер. При этом отношение обобщения соответствует усилению отдельных аксиом.
Если между двумя математическими структурами пространств с нечеткой мерой имеется отношение обобщения, то математическая структура нижнего уровня является конкретизацией соответствующей математической структуры верхнего уровня. При этом все математические структуры нижних уровней наследуют аксиоматику соответствующих математических структур верхних уровней.
Так, например, математическая структура пространства с мерой необходимости является конкретизацией или частным случаем математической структуры пространства с мерой доверия. Математическая структура вероятностного пространства является конкретизацией как математической структуры пространства с мерой доверия, так и математической структуры пространства с мерой правдоподобия, тем самым реализуется так называемое множественное наследование. Указанные взаимосвязи имеют существенное значение при рассмотрении математических структур пространств с нечеткой мерой.
Теория нечеткой меры находит также применение при определении нечеткого интеграла, который успешно используется для решения задач нечеткого моделирования.
Нечеткий интеграл и примеры его вычисления
Пусть (У, 3, g) — некоторое пространство с нечеткой мерой, для которого X— базовое множество (универсум); 3 — о-алгебра на X; g — некоторая нечеткая мера, т. е. функция множества, удовлетворяющая аксиомам (9.1)—(9.3). Рассмотрим некоторую измеримую на 3 функцию А: Х-»[0, 1].
Нечеткий интеграл. Нечетким интегралом от функции h на множестве АеЗ по нечеткой мере g называется выражение следующего вида:
(9.Ю)(9.Ю)^A(x)}«g = sup {min{a,g(^n//a}}, A<хе[0,1]
(9.Ю)
(9.Ю)
где На= {х | А(х)>а}. Нечеткий интеграл также называют нечетким ожиданием (FEV, Fuzzy Expected Value). Наибольший интерес при решении практических задач нечеткого моделирования приобретает обобщение этого понятия на случай, когда вместо множества А используется нечеткое множество 5V
Нечетким интегралом от функции h на нечетком множестве 54={<х, ц^(х)>}, заданного на универсуме X, по нечеткой мере g называется выражение следующего вида:
^^{^(х), A(x)}*g, (9.11)
х
где интегрирование осуществляется по всем значениям универсума X, а знак нечеткого интеграла здесь обозначен в форме обычного интеграла.
Пример 9.2. В качестве примера рассмотрим использование нечеткого интеграла для оценки модели проезжающих по автостраде автомобилей.
С этой целью определим некоторую функцию нечеткой меры g(x), которая содержательно описывает распределения возможности достижения предельной скорости на автостраде некоторой моделью автомобиля, для определенности, предположим ВАЗ 2110. При этом в качестве универсума X будем рассматривать диапазон скоростей в интервале [30 км/ч, 180 км/ч]. Функция нечеткой меры g(x) задается исходя из физической возможности данной модели автомобиля развить максимальную скорость движения по автостраде. График этой функции изображен на рис. 9.2, а.
Если в качестве автомагистрали рассматривается автобан, то каждый из автомобилей стремится двигаться по ней с высокой скоростью. Поэтому в качестве функции h^ возьмем некоторую функцию, описывающую высокую скорость движения автомобилей по автомагистрали. Эта функция может быть определена на основе анализа скоростей проезжающих автомобилей. График этой функции изображен на рис. 9.2, б.
б
Рис. 9.2. Г рафики функции распределения возможностей (а) и функции высокой скорости движения автомобилей (6)
Далее предположим, что мимо пункта наблюдения проехало два автомобиля, один со скоростью около 90 км/ч, а другой — со скоростью около 120 км/ч. При этом скорость движения определяется визуально наблюдателем без технических приборов. Этим значениям скоростей соответствуют два нечетких множества 3\ и 3, функции принадлежности которых изображены на рис. 9.3, а. Требуется выполнить оценку скорости и определить возможность проезда мимо пункта контроля автомобиля марки ВАЗ 2110.
Для решения этой задачи используем определенное ранее понятие нечеткого интеграла. Для этого необходимо найти два его значения: одно — для функции А(л) на нечетком множестве 271 по нечеткой мере g(x), а второе — для функции Н^ на нечетком множестве ‘В по нечеткой мере g(x). Выполнив соответствующие расчеты, получим следующие значения: для первого автомобиля — 0.27, для второго автомобиля — 0.55 (значения приближенные). Процесс решения задачи иллюстрируется графиками на рис. 9.3, б.
б
Рис. 9.3. Графики функций принадлежности нечетких множеств Я и 13 (а) и результатов вычисления нечеткого интеграла (б)
Таким образом, возможность того, что первым проехал мимо пункта наблюдения автомобиль модели ВАЗ 2110 равна 0.27, а возможность того, что автомобиль модели ВАЗ 2110 был вторым равна 0.55. Если же есть дополнительная ин-
формация о том, что один из двух автомобилей есть модель ВАЗ 2110, то результат решения задачи явно свидетельствует в пользу второго автомобиля.
Данная нечеткая модель может быть модифицирована на основе установления более точного вида функции оценки скорости движения по автомагистрали только для моделей интересуемого нас класса. В этом случае результат решения задачи будет соответствовать более высоким значениям величин возможности при установлении модели автомобиля.
Примечание
В качестве упражнения предлагается построить аналогичную нечеткую модель для другой марки автомобиля, например. Ford Escort 4W, а результаты сравнить. Впрочем, большинство из читателей могут это сделать и без построения нечеткой модели.
В настоящее время теория нечетких мер находит применение для многокритериальной оценки альтернатив в нечетких моделях принятия решений. Хотя теоретические исследования в этой области показали высокую адекватность нечетких моделей при решении отдельных задач, реализация соответствующих алгоритмов в коммерческих программных средствах и инструментариях пока еще оставляет надежды на будущее.
Глава 10
Нечеткие сети Петри
Сети Петри (СП) и их многочисленные модификации являются одним из классов моделей, неоспоримым достоинством которых является возможность адекватного представления не только структуры сложных организационно-технологических систем и комплексов, но также и логико-временных особенностей процессов их функционирования. Сети Петри представляют собой математическую модель для представления структуры и анализа динамики функционирования систем в терминах "условие-событие”. Эта модель может быть успешно использована для описания так называемых динамических дискретных систем различных классов, таких как: вычислительные процессы и программы, технологические процессы, информационные, экономические, биологические, социальные и технические системы.
Модели сетей Петри позволяют исследовать работоспособность моделируемых систем, оптимальность их структуры, эффективность процесса их функционирования, а также возможность достижения в процессе функционирования определенных состояний. Сети Петри и их обобщения являются удобным и мощным средством моделирования асинхронных, параллельных распределенных и недетерминированных процессов, позволяют наглядно представить динамику функционирования систем и составляющих их элементов. Свойство иерархического вложения сетей Петри позволяет рассматривать модели различной степени детализации, обеспечивая тем самым необходимую декомпозицию сложных систем и процессов.
К настоящему времени известно большое количество разновидностей и обобщений классического формализма сетей Петри, к которым, в первую очередь, следует отнести временные СП, СП с разноцветными маркерами и дугами, алгебраические СП, Е-сети. Данные классы моделей позволяют представить структуру и динамику функционирования моделируемых систем в условиях отсутствия влияния тех или иных факторов неопределенности. Указанное предположение о детерминированном характере структурных взаимосвязей и динамики функционирования СП существенно ограничивает возможности практического использования моделей данных классов и не отражает адекватным образом отдельные аспекты знаний о предметной области.
Включение описания неопределенности в различные детерминированные разновидности и обобщения СП может быть осуществлено, вообще говоря, различным образом по каждому из основных компонентов исходного формализма со-
ответствующего класса СП. Поскольку при этом можно рассматривать различные формы неопределенности (стохастическая, нечеткая, комбинированная), то, следуя по этому пути, можно получить чрезвычайно большое количество вариантов формализма соответствующих классов СП с неопределенностью. В настоящей главе рассмотрены только основные из известных подклассов нечетких СП, которые имеют непосредственное отношение к тематике нечеткого моделирования и находят наибольшее применение при решении прикладных задач.
Базовый формализм классических сетей Петри
Сети Петри получили свое название в честь немецкого математика Карла А. Петри (С. A. Petri), который в 1962 г. опубликовал свою работу с описанием нового класса сетей, использованных им в своей диссертации. В середине 1980-х гг. произошел буквально всплеск активности в области разработки новых классов сетей Петри и формального анализа их свойств, следствием чего стали ежегодные международные конференции и семинары, посвященные данной тематике. Хотя сетям Петри и их многочисленным разновидностям присущ серьезный недостаток, связанный с отсутствием эффективных алгоритмов решения так называемой проблемы достижимости, этот формализм представляет и сейчас важное направление прикладных исследований в области системного моделирования.
Формально СП представляет собой граф специального вида (см. приложение 1) с дополнительными правилами, которые определяют динамику процесса функционирования СП. Ниже приводится определение сетей Петри, представляющее собой базовый формализм СП, на основе которого строятся различные обобщения и расширения СП. При этом следует помнить, что тот или иной класс СП определяется не только своим формальным или графическим представлением, но также и правилами функционирования СП.
Обобщенная маркированная СП. Обобщенная маркированная сеть Петри (или кратко сеть Петри) — это пятерка С = (Р, Т, I, О, то), где:
Р-^р\,pi,-;Р^ — конечное множество позиций СП;
Т={п, /2,..., t„) — конечное множество переходов СП;
I— входная функция переходов, которая определяется как отображение /: РхТ-^;
О — выходная функция переходов, которая определяется как отображение О; ТхР-»М;
1ио=(Щ|°, m20,..., т„°)— вектор начальной маркировки СП, при этом нфе№(1 (V/e(l, 2,..., п)) и тР — компонент вектора начальной маркировки СП, соответствующий позиции pneiP.
Здесь и далее через /% будет обозначаться множество натуральных чисел и ноль, т. е.^={0, 1,2,3,...}.
В определении сети Петри часто выделяют первые четыре компонента, которые задают структуру СП: N=(P, Т, I, О). В этом случае СП может быть записана в эквивалентной форме: С = (N, то).
Примечание
Эквивалентное определение обобщенной маркированной сети Петри С = (Р, Т, I, О, то), а, точнее, структуры СП может быть дано с использованием понятия мультимножества или комплекта, являющегося, в свою очередь, обобщением понятия множества (см. приложение 1). В этом случае входная и выходная функции переходов СП определяются как /: Р-^>®*(Т) и О: Т-^В^Р) соответственно. Здесь через ®*(Т) и В*(Р) обозначены множества всех комплектов, построенных на универсумах, в качестве которых используются множества переходов Т и позиций Р соответственно.
Более простым случаем обобщенной маркированной сети Петри является так называемая ординарная маркированная сеть Петри, которая также определяется как пятерка (Р, Т, I, О, то), где в качестве входной функции переходов / и выходной функции переходов О используются отображения I: ТхР->(й, 1}и О-. TxP-^\Q, 1} соответственно.
Графически ординарная маркированная сеть Петри изображается ориентированным двудольным графом специального вида, а обобщенная маркированная сеть Петри — ориентированным двудольным мультиграфом специального вида. Множество вершин графа или мультиграфа СП есть V-PvjT, а множество дуг определяется входной и выходной функциями переходов. Особенностью графического представления сети Петри является изображение позиций в виде кружочков, а переходов — в виде черточек (узких прямоугольников). Дуги графа или мультиграфа соединяют переходы только с позициями, а позиции — только с переходами, поэтому граф или мультиграф является двудольным. Начальная маркировка изображается точками или натуральным числом внутри кружочков, соответствующих отдельным позициям СП. Количество таких точек, получивших название маркеров, в позициях СП равно значению соответствующего компонента вектора начальной маркировки.
П р и м е р 10.1. Изображенная на рис. 10.1, а ординарная маркированная сеть Петри имеет: множество позиций Р=(р\, рз, рз, р4, рз), множество переходов Т ={zi, и, 1з, /4}, значения входной функции переходов I(p\, fi)=l, 1(р\, Гг)=1, I(pi, /2)=!, Црз, 1з)=1, 1(р4, /з)=1, 1(р4, /4)=1, остальные 1(рь 0=0; значения выходной функции переходов О(П,рз)=\, О(!1,рГр\, О(1з,рз)=1, O(<4,ps)=l, остальные значения O(i„ р^О; вектор начальной маркировки /?ю=(1, 1,0, 0,0). Маркеры в позициях этой СП изображены точками, при этом отсутствие точки в позиции означает отсутствие в ней маркера.
Изображенная на рис. 10.1, б обобщенная маркированная сеть Петри имеет: множество позиций Р-(р\,рг, рз, р4), множество переходов Т ={/i, ti, /з,/4}, значения входной функции переходов Цр\, /з)=3,Црз, /0=1,Црз, /з)=1,Цр4, /0=2, остальные Црь t)=0; значения выходной функции переходов О(Г1,/л)=1, О(1з,рз)=\, 0^12,р4)=1, О(1з, pi)-V, О(1з, р4) = 1, О(и, р\) = 1, остальные значения O(l,, р) = 0;
вектор начальной маркировки /ио=(3, 0, 0, 1). Количество маркеров в позициях этой СП изображено цифрами.
Рис. 10.1. Графическое изображение ординарной (а) и обобщенной (б) маркированных сетей Петри
Позиции, дуги из которых ведут в переход ЦеТ СП, называются входными позициями перехода tj, аналогично, позиции, в которые ведут дуги из перехода t^T, называются выходными позициями этого перехода. Значения входной и выходной функций переходов в этом случае удобно представлять в виде соответствующих матрицы входных позиций I и матрицы выходных позиций О. Для СП, изображенной на рис. 10.1, а, матрицы входных и выходных позиций соответственно равны:
1 =
‘1 10 0"
0 10 0
0 010
0 011
0 0 0 0
,о =
"00100"
00010
00100
00001
Для СП, изображенной на рис. Ю.1, б, матрицы входных и выходных позиций соответственно равны:
1 =
"0 3 0 0"
10 0 0
0 0 10
0 0 0 2
,о =
‘1 0 0 0"
0 0 11
0 10 1
1 0 0 0
Примечание j
Как можно заметить, структура N маркированной сети Петри (как ординарной, так и обобщенной) полностью определяется матрицами входных и выходных позиций переходов. Ниже обобщенная маркированная сеть Петри, если не возникает неоднозначности понимания, будет сокращенно именоваться сетью Петри (СП). При этом все утверждения, справедливые для обобщенных сетей Петри, естественным образом оказываются справедливыми и для ординарных СП, но не наоборот.
Наибольшее значение с прикладной точки зрения, во многом обусловившей интерес к развитию исследований в области СП, имеет динамика изменения начальной и последующих маркировок СП. При этом сам процесс изменения маркировок СП происходит в результате запуска переходов, который определяется условием активности и правилом срабатывания переходов.
Динамика изменения начальной и последующих маркировок СП после момента ее запуска подчиняется следующим Правилом ЦС).
□ (Pi) Правило определения текущего состояния СП. Любое состояние СП С = = (Р, Т, I, О, то) определяется некоторой маркировкой СП, которая представляет собой вектор »i=(??7i, та,..., т^. При этом т, является компонентом вектора маркировки СП, соответствующим позиции рпеР, где т^^,,(V/e{l, 2,..., «}). Очевидно, начальное состояние СП, т. е. состояние сети Петри до момента ее запуска или начала процесса функционирования, определяется вектором начальной марКИрОВКИ 7710.
(Рг) Правило (условие) активности переходов. Переход 1,е Т СП С = (Р, Т, I, О, то) называется активным (разрешенным или возбужденным) при некоторой маркировке т=(рц, тг,..., тп), если выполнено следующее условие:
т, > 1^1 3, р)(УР^ Р).(10.1)
Другими словами, некоторый переход СП является активным, если в каждой из его входных позиций имеется такое количество маркеров, которое больше или равно количеству дуг, соединяющих соответствующую входную позицию сданным переходом.
(Рз) Правило срабатывания перехода. Если некоторый переход 1,е ГСП С = (Р, Т, I, О, то) активен при маркировке т=(т\, тг,..., тп), т. е. для данного перехода выполнено условие (10.1), то срабатывание этого перехода, осуществляемое мгновенным образом, приводит к новой маркировке т^тх', тг,..., т,), компоненты вектора которой определяются по следующей формуле:
Ш; ^тДООрР,) - I(Pi,t)(Ур^Р).(10.2)
Другими словами, срабатывание некоторого активного перехода СП "перемещает" маркеры из входных позиций данного перехода в его выходные позиции таким образом, что во всех его входных позициях "исчезает" столько маркеров, сколько дуг соединяет эту входную позицию с данным переходом. Соответственно, во всех его выходных позициях "появляется" столько маркеров, сколько дуг соединяет данный переход с соответствующей выходной позицией. При этом срабатывание перехода считается неделимым актом," т. е. предполагается, что изъятие маркеров из всех входных позиций и их перемещение во все выходные позиции осуществляется мгновенно, с нулевой задержкой.
Проиллюстрируем применение описанных Правил Р(0 изменения начальной маркировки то СП С = (Р, Т, I, О, то) для СП из примера 10.1. Так, для СП, изображенной на рис. 10.1, а, при данной начальной маркировке /ио=(1, 1,0, 0,0) согласно правилу Рг активными являются сразу два перехода: h, Гг, поскольку для каждого из них выполнено условие (10.1). Для СП, изображенной на рис. 10.1, б, активным при начальной маркировке 7ио=(3, 0,0, 1) является единст-
венный переход ti, т. к. только для него выполнено условие (10.1). Для остальных переходов этих СП условие (10.1) не выполняется, следовательно, они не являются активными при соответствующих начальных маркировках.
Процесс запуска или функционирования СП начинается с определения активных переходов при начальной маркировке и их срабатывания. При этом срабатывание активного перехода t\ для СП, изображенной на рис. 10.1, а, приводит к новой маркировке /«v=(0,1, 1,0, 0), компоненты вектора которой определяются по правилу Рз следующим образом: ли*-1+0-1=0, ma'-l+0-0=1, ли1 =0+1-0=1, «74 =0+0-0=0, /7751—0+0—0=0. Срабатывание активного перехода 72 этой же СП приводит к новой маркировке т»-=(0, 0, 0, 1,0), компоненты вектора которой определяются по правилу Рз следующим образом: тГ' = 1+0-1=0, m2"-1+0-1=0, тз"=0+0—0=0, т4'-0+1-0= 1, т5"=0+0-0=0.
Примечание j
Следует заметить, что наличие в СП двух и более активных при некоторой маркировке переходов приводит к конфликту, суть которого заключается в том, что срабатывание одного из активных переходов может превратить другие переходы в неактивные. Следствием этого является альтернативное ветвление последовательности достижимых маркировок. Желание исключить подобные конфликты переходов приводит к необходимости дополнительного определения последовательности или задания приоритета их срабатывания. Поскольку в базовом формализме СП и Правилах Р(С) ничего не сказано о способе разрешения этого конфликта, все активные переходы следует считать равноправными с точки зрения возможности их срабатывания.
Срабатывание единственного активного перехода h для СП, изображенной на рис. 10.1, а, приводит к новой маркировке т«=(0, 0, 1,2), компоненты вектора которой определяются по правилу Рз следующим образом: Л771‘=3+О—3=0, т2*-0+0-0=0, тз'-0+1-0=1, т4,=1 +1-0=2. Ординарная сеть Петри, полученная в результате срабатывания активного перехода 71, изображена на рис. 10.2, а, а обобщенная сеть Петри, полученная в результате срабатывания активного перехода /2, изображена на рис. 10.2, б.
Рис. 10.2. Графическое изображение СП после срабатывания перехода fi для СП, изображенной на рис. 10.1, а, и после срабатывания перехода t2 для СП, изображенной на рис. 10.1, бРис. 10.2. Графическое изображение СП после срабатывания перехода fi для СП, изображенной на рис. 10.1, а, и после срабатывания перехода t2 для СП, изображенной на рис. 10.1, б
Рис. 10.2. Графическое изображение СП после срабатывания перехода fi для СП, изображенной на рис. 10.1, а, и после срабатывания перехода t2 для СП, изображенной на рис. 10.1, б
Рис. 10.2. Графическое изображение СП после срабатывания перехода fi для СП, изображенной на рис. 10.1, а, и после срабатывания перехода t2 для СП, изображенной на рис. 10.1, б
Непосредственная достижимость маркировок. Маркировка т» СП С = (Р, Т, I, О, то) непосредственно достижима из маркировки т (непосредственно следует за маркировкой т) этой же СП, если маркировка т, получается в результате срабатывания некоторого перехода z,e Т, активного при маркировке т. Тем самым определяется отношение непосредственной достижимости маркировок, которое будем обозначать: in-(ti)-J>mv.
Очевидно, отношение непосредственной достижимости маркировок является бинарным транзитивным отношением на декартовом произведении множества всех возможных маркировок фиксированной СП. Что касается свойств рефлексивности и симметричности, то в общем случае нельзя сделать никаких утверждений относительно их наличия или отсутствия для той или иной СП.
Достижимость маркировок. Маркировка т* СП С = (Р, Т, I, О, то) называется достижимой из маркировки т этой же СП, если существует конечная упорядоченная последовательность маркировок Mk~<m\, mi,..., тч>, в которой пп-т и тч-т», и соответствующая ей конечная упорядоченная последовательность переходов H/=<Zi, ti,..., tq-\>, такие, что любая пара соседних маркировок в Мк удовлетворяет отношению непосредственной достижимости: mrAt^-^mj*! (V/e{l, 2,..., q-1)). Отношение достижимости маркировок СП будем обозначать: т-(к,)—>т«.
Отношение достижимости маркировок также является бинарным транзитивным отношением на декартовом произведении множества всех возможных маркировок фиксированной СП. Более того, данное отношение является транзитивным замыканием (см. приложение 1) отношения непосредственной достижимости маркировок, в чем читателю предлагается убедиться самостоятельно.
Примечание
Следует заметить, что при достижимости маркировки mw из маркировки т для заданной СП может, вообще говоря, существовать несколько последовательностей маркировок Мк и, соответственно, последовательностей переходов л/. Более того, даже для фиксированной последовательности Мк может существовать несколько последовательностей переходов л/, удовлетворяющих условию определения достижимости маркировок. Данное обстоятельство существенно усложняет анализ отношения достижимости маркировок в СП, который, как следует из дальнейшего изложения, является центральной задачей при исследовании характеристик конкретных СП.
Обозначим через D(ni) множество маркировок, достижимых из некоторой фиксированной маркировки т для заданной СП С = (Р, Т, I, О, то), т. е. D(m) = = {»»hJ(3 л,): щ-(л,)->т»}. В действительности, это множество определяется конструктивным образом, поскольку для его построения может быть использован рекурсивный алгоритм построения отношения достижимости для маркировки т и СП С = (Р, Т, I, О, то), основанный на определении отношения достижимости: 7и-(л/)—^mw.
Множество достижимых маркировок С П. Множество D(mo) будем называть множеством достижимых маркировок для СП С = ^Р, Т, I, О, то) или просто — множеством достижимости СП.
Поскольку в прикладных исследованиях формализм сети Петри используется в качестве модели дискретных динамических систем, то каждую маркировку СП можно рассматривать в качестве отдельного состояния такой системы (Правило Pi). В этом случае для рассматриваемой СП особый интерес представляет множество достижимых маркировок D(mo), которое соответствует пространству достижимых состояний некоторой дискретной динамической системы. При этом мощность множества достижимых маркировок card(D(mo)) может быть конечной или счетной. В случае конечного множества DQno) теоретически может быть получено его конструктивное представление в форме перечисления всех последовательностей Мк и л,, удовлетворяющих определению отношения достижимости. Если же множество D(mo) счетное, то возникают принципиальные трудности его конструктивного определения и представления.
Для наглядного представления множества D(md) в случае его конечной мощности используется графическое изображение в виде специального графа в форме так называемого дерева достижимых маркировок или кратко — дерева достижимости СП. Дерево достижимых маркировок представляет собой ориентированный граф, вершины которого соответствуют достижимым маркировкам, а дуги— отношению непосредственного следования маркировок, причем каждая дуга помечается тем переходом, срабатывание которого привело к смене данных маркировок: тЦ^-ып». Корнем дерева является вершина, соответствующая начальной маркировке.
Примечание
При графическом представлении множества достижимости D(mo) в дереве достижимости предполагается, что равные маркировки mv, которым соответствуют различные последовательности переходов л/, изображаются различными вершинами на дереве. В этом случае в каждую вершину дерева будет вести единственный ориентированный путь от корневой вершины то, которому соответствует единственная последовательность переходов л,. Если же с целью удобства и сокращения геометрических размеров дерева достижимости равным маркировкам ставить в соответствие одну вершину, то полученный в результате граф получил название диаграммы достижимых маркировок СП или диаграммы состояний СП. В последнем случае от корневой вершины диаграммы то в каждую из ее вершин может вести несколько ориентированных путей, каждому из которых будет соответствовать своя последовательность переходов л,. Для нахождения множества достижимости D(mo) и его представления в форме дерева или диаграммы достижимости предложены два основных алгоритма, один из которых основан на процедуре исчерпывающего поиска в ширину, а другой — на процедуре исчерпывающего поиска в глубину. Эти алгоритмы позволяют сформировать все множество достижимых маркировок и отличаются лишь последовательностью выбора маркировок для анализа: по ширине или глубине дерева. С этими алгоритмами можно познакомиться в соответствующей литературе.
Примеры двух диаграмм достижимости, построенных для сетей Петри из примера 10.1, представлены на рис. 10.3. Данные диаграммы изображены в форме так называемых диаграмм деятельности в нотации унифицированного языка моде-
лирования, с основами которого можно познакомиться по одному из специальных руководств.
б
Рис. 10.3. Диаграммы достижимости для СП, изображенной на рис. 10.1, а (а), и для СП, изображенной на рис. 10.1, б (б)
Замечательным свойством СП является тот факт, что структура и начальная маркировка СП С = (Р, Т, I, О, то) вполне однозначным образом порождают или определяют множество достижимости £>(/ио). Именно это обстоятельство, сближая некоторым образом СП с теорией конечных автоматов и теорией формальных грамматик, позволяет строить наглядные модели, адекватно интегрирующие структурные и функциональные аспекты моделируемых систем и объектов.
Свойства сетей Петри и задачи их анализа
Проведение исследований с использованием сетей Петри предполагает установление целого ряда конкретных свойств моделей с последующей интерпретацией полученных результатов применительно к решаемой задаче и проблемной области. При этом сети Петри могут различаться не только своей структурой, но даже при одинаковой структуре, но различными начальными маркировками — множеством достижимых маркировок. Поэтому исследование моделей СП предполагает анализ не только статических (структурных) характеристик, но и целого ряда динамических характеристик.
Что касается структурных или статических свойств СП, их анализ предполагает рассмотрение СП с точки зрения теории графов. Поскольку при исследовании моделей СП на первый план выдвигаются задачи анализа таких свойств сетей Петри, как безопасность, ограниченность, сохраняемость, живость и достижимость маркировок, наибольший интерес представляют функциональные или динамические характеристики СП. Именно наличие или отсутствие этих свойств у конкретной модели СП позволяет сформулировать некоторые требования по выбору рациональной структуры исследуемой системы или процесса. Ниже приводятся определения основных динамических свойств СП, имеющих непосредственное отношение к процессу функционирования или запуска СП.
Ограниченность позиций и СП. Позиция р,еР СП С =(Р, Т, I, О, то) называется к-ограниченпой, если для любой достижимой маркировки 1ие£>(лю) выполняется условие т.^к для некоторого фиксированного значения £е{1,2, 3,...}. Или, другими словами, количество маркеров в данной позиции не превосходит натурального числа к для всех маркировок, достижимых из начальной маркировки то. СП С = (Р, Т, I, О, то) называется к-ограниченной, если все позиции множества Р являются /с-ограниченными.
Безопасность позиций и СП. 1-ограниченная позиция СП называется безопасной позицией. 1-ограниченная СП называется безопасной СП.
Сохраняемость СП. СП С = (Р, Т, I, О, то) называется сохраняющей, если существует вектор w =(и’1, и'2,..., и„) с неотрицательными вещественными компонентами, такой, что выполняется условие:
п
X и^г- тщ = const(XfmeD(mo)).(10.3)
z=l
Если данное условие выполняется при и’,=1 (Vzg{1, 2,..., л}), то соответствующая СП называется строго сохраняющей или консервативной.
Устойчивость переходов и С П. Переход t,СП С = (Р, Т, I, О, то) называется устойчивым, если выполнено следующее логическое условие:
((/л> (I(pi, 1Д Црг, 1),...Д(рп, 1,))л(т> (Др\. к), Црг, tr),..., I(p„, tr))) zd
3 (/Л> №l, О+Црх, tr), ДР2, ti)+I(p2, к)»—» КР», Q+КРп, к)))(10.4)
(ХДеТХ^к), XfmeD(mo)
Другими словами, если переход t, является активным при маркировке /ие£>(/ио), то никакой другой переход tn тоже активный при маркировке /и, не может, сработав, сделать переход ц неактивным, т. е. лишить его возможности срабатывания. СП С = (Р, Т, I, О, то) называется устойчивой, если все ее переходы являются устойчивыми.
Примечание
По содержанию логическое условие (10.4) представляет собой некоторый двухместный предикат P(t, т), который записан в традиционной математической форме, т. е. с постфиксной записью кванторов общности. Так же как и в случае инфиксной записи кванторов, истинность предиката P(t, т) эквивалентна истинности импликации для любых переходов tr и достижимых маркировок т, входящих в область действия квантора общности (см. приложение 2).
Уровни активности переходов СП. Пусть задана СП С = (Р, Т, I, О, то).*'
Переход z,e Тобладает активностью уровня 0 и называется пассивным или мертвым, если не существует ни одной достижимой маркировки meD(mo), при которой этот переход был бы активным.
Переход Z,g Т обладает активностью уровня 1 и называется потенциально активным или живым, если существует достижимая в СП маркировка теП(то), при которой этот переход является активным.
Переход t^Tобладает активностью уровня 2, если для любого натурального sg/Vb СП существует последовательность срабатываемых переходов лЛ, в которой ц присутствует по крайней мере s раз.
Переход це Т обладает активностью уровня 3, если существует последовательность срабатываемых переходов лА, в которой переход z, присутствует неограниченное число раз.
Переход цеТ обладает активностью уровня 4 и называется активным или живым, если для любой достижимой в СП маркировки meD(mo) существует последовательность срабатываемых переходов лА., так что Z; является активным при некоторой маркировке nueD(m), получаемой в результате последовательного срабатывания переходов из лА.
Переход z,e Т называется потенциально мертвым, если существует некоторая достижимая маркировка meD(mo), такая, что при любой достижимой из т маркировке mweD(m) переход Z, не является активным.
СП С = (Р, Т, I, О, то) обладает активностью уровня к, где ке (0,1,2,3,4}, если все ее переходы обладают активностью уровня к.
Тупиковая маркировка. Достижимая в СП маркировка теЦто) называется ц-тупиковой (цеТ), если переход z, потенциально мертвый для маркировки т. Если достижимая маркировка т zf-тупиковая для всех переходов 1,еТ, то она называется тупиковой.
Рассмотрим использование введенных определений для СП из примера 10.1. Так, для СП, изображенной на рис. 10.1, а, все позиции являются 1-ограниченными, а значит и вся сеть Петри является 1-ограниченной или безопасной. Переход t4 является устойчивым, а переходы л и h устойчивыми не являются, следовательно, данная СП не является устойчивой. Переходы л, ли л обладают активностью уровня 1, а переход Л является мертвым. Следовательно, данная СП обладает активностью уровня 0. Достижимые маркировки mi=(0, 1, 1,0, 0) и /из= = (0, 0, 0,0, 1) являются тупиковыми, поскольку ни один из переходов СП не является активным при данных маркировках.
Так, для СП, изображенной на рис. 10.1, б, все позиция р\ и р* являются 3-огр- ниченными, позиции pi и рз являются 1-ограниченными, а значит и вся сеть Петри является 1-ограниченной или безопасной. Все переходы этой СП являются устойчивыми, следовательно, данная СП является устойчивой. Все переходы СП обладают активностью уровня 1. Следовательно, данная СП обладает активностью уровня 1. Достижимая маркировка тб=(2,0,0, 1) является тупиковой, поскольку при данной маркировке ни один из переходов СП не является активным. При моделировании процессов функционирования дискретных динамических систем одно из центральных мест занимает установление рассмотренных выше свойств СП. В общем случае исследование характеристик СП предполагает решение следующих задач:
Задача достижимости маркировки. Для заданной СП С = (Р, Т, I, О, то) и заданной некоторой тг установить выполнение условия: mreD^mo). Или, другими словами, достижима ли маркировка т, из начальной маркировки то для заданной СП?
Задача достижимости подмаркировки. Для заданной СП С = (Р, Т, I, О, то) и заданной маркировки тг и подмножества позиций Pt Р определить: существует ли достижимая маркировка mHeD(mo), такая что т[ = m* (Х/р.-бР)? Другими словами, существует ли достижимая маркировка тг, компоненты вектора которой с номерами позиций из подмножества Р* равны соответствующим компонентам вектора маркировки тД Остальные компоненты вектора тг могут принимать произвольные значения.
Задача покрываемости маркировки. Для заданной СП С = (Р, Т, I, О, то) и заданной маркировки тг определить, существует ли достижимая маркировка т„.еВ(то), такая что mw > тД
Задача достижимости нуля. Для заданной СП С = (Р, Т, I, О, то) определить, достижима ли нулевая маркировка /и =(0,0,..., 0) из начальной маркировки то, т. е. выполняется ли условие: теВ(то)1
Задача достижимости нуля в одной позиции. Для заданной СП С = (Р, Т, I, О, то) и некоторой фиксированной позиции р,еР определить, су
- ществует ли достижимая маркировка теВ(то), в которой т,— 0 (/-ый компонент вектора маркировки равен нулю)?
Задача равенства. Для двух СП С' = (Р' Т', Г, О', то) и С" = (Р" Т", I" О" то"), таких что Р- Р" определить, равны ли соответствующие им множества достижимых маркировок D(mo') = D(mo")?
Задача подмножества. Для двух СП С' = (Р', Т', Г, О', то') и С" = = (Р" Т", I", О", то") определить, является ли одно из множеств достижимых маркировок подмножеством другого, т. е. выполняется ли отношение D(mo') с D(mo") или отношение D(mo") cJD(mo')?
Задача k-ограниченности позиций и СП в целом. Для заданной СП С = (Р, Т, I, О, то) и фиксированной позиции р^Р определить, существует ли натуральное число к, для которого позиция р, является ^-ограниченной (является ли СП в целом ^-ограниченной)?
Задача безопасности позиций и СП в целом. Для заданной СП С = (Р, Т, I, О, то) и фиксированной позиции Pi&P определить, является ли позиция р; безопасной (является ли безопасной СП в целом)?
Задача устойчивости переходов. Для заданной СП С = (Р, Т, I, О, то) и заданного подмножества переходов Т'^Топределить, являются ли переходы из подмножества ^'устойчивыми?
Задача активности переходов. Для заданной СП С = (Р, Т, I, О, то) и заданного подмножества переходов Т'^Т определить уровни активности переходов подмножества Т'.
Задача сохраняемости СП. Для заданной СП С = (Р, Т, I, О, то) определить, является ли она сохраняющей?
Задача строгой сохраняемости (консервативности) СП. Для заданной СП С = (Р, Т, I, О, то) определить, является ли она строго сохраняющей (консервативной)?
При изучении данных задач оказалось, что они определенным образом взаимосвязаны между собой. Так, например, решение задачи достижимости (1) предопределяет решение задачи достижимости нулевой маркировки (4), а решение задачи достижимости подмаркировки (2) предопределяет решение задачи достижимости нуля в одной позиции (5). Решение задачи /^-ограниченности позиции (8) предопределяет решение задачи безопасности позиций (9), а решение задачи сохраняемости (12) предопределяет решение задачи консервативности (13).
Таким образом, исчерпывающая информация о решении указанных задач содержится в дереве или диаграмме достижимых маркировок СП. Поэтому одной из основных проблем в рамках классического формализма СП является построение диаграммы достижимых маркировок и ее анализ для конкретных СП. Решение этой проблемы позволяет дать ответ на решение всех перечисленных выше задач (1-13) и установить все основные свойства СП, содержательная интерпретация которых зависит от проблемной области и рассматриваемых моделей прикладных систем.
Основные подклассы нечетких сетей Петри
Нечеткие сети Петри (НСП), являясь разновидностью СП с неопределенностью, позволяют конструктивно решать задачи нечеткого моделирования и нечеткого управления, в которых неопределенность имеет нестохастический или субъективный характер. В данной главе внимание сосредоточено на рассмотрении только трех подклассов НСП, являющихся естественной конкретизацией базовой математической структуры СП с неопределенностью, которая может быть построена на основе использования общей концепции нечеткой меры (см. главу 9).
Нечеткие сети Петри типа Vf
Первый из рассматриваемых ниже подклассов НСП, называемый в дальнейшем НСП типа Vf или кратко — НСП Vf, получается в результате введения описания неопределенности нечеткого характера в начальную маркировку и правила изменения маркировок базового формализма классических СП.
Нечеткая сеть Петри типа Vf. Нечеткая сеть Петри типа Vf (НСП Vr) определяется как Vf = (TV, Мо), где:.
N = (Р, Т, I, О) — структура НСП Vr, в которой: Р = \РьР2»—»Р^ — конечное множество позиций; Т= {л, и,..., г„)— конечное множество переходов; /: РхГ->/%— входная функция переходов; О: ТхР-^Ии— выходная функция переходов;
Мо—матрица начальной маркировки, размерность которой равна (nx(d+l')). Каждый элемент ту° этой матрицы равен значению функции принадлежности наличия у—1 числа маркеров в позиции р; НСП на момент начала ее запуска. По определению функции принадлежности элементы матрицы начальной маркировки должны удовлетворять следующему условию:
т,у°е[0, 1](V/g{1, 2,...,/г}, V/gJ).(10.5)
Здесь, как и ранее, Ан={0, 1,2, 3,...} обозначает множество натуральных чисел и ноль. Множество J определяется как: / = {1,...,</,</+1}с/%, т. е. как некоторое конечное подмножество /Уо, состоящее из d+1 первых натуральных чисел. При этом общее количество столбцов матрицы начальной маркировки определяется максимальным количеством вводимых в рассмотрение маркеров в позициях НСП Vr, которое в общем случае принимается равным d.
Примечание j
В определении НСП Vf каждая строка матрицы Мо может рассматриваться как значения функции принадлежности нечеткого множества маркеров для соответствующей позиции НСП Vf. Характерным свойством указанного нечеткого множества является его дискретный характер, что позволяет задать его конечным множеством положительных значений функции принадлежности для носи-
теля данного множества. В этом случае базовый формализм классических СП может быть получен в качестве частного случая НСП Vf, если в определении НСП Vf условие (10.5) заменить на обычное условие для допустимых значений компонентов начальной маркировки СП: m^efO, 1}(V/g{1, 2,..., n}, V/gJ) и j+i'
£m® < 1 (V/e{1, 2,..., n}). С другой стороны, вводя дополнительно к (10.5) усло- ./=1 '
вие: ^т° =1 (V/e{1,2л}), получим определение стохастических СП типа 7=1 '
Vs. Таким образом, НСП Vf являются обобщением не только обычных СП, но и обобщением стохастических СП Vs.
Из определения введенного в рассмотрение подкласса НСП Vr можно видеть, что структура N НСП Vf полностью идентична структуре базового формализма классических СП. Поэтому НСП Vr графически также изображаются ориентированным двудольным мультиграфом аналогично обычным СП.
Пример 10.2. Структура изображенной на рис. 10.4 НСП типа Vr, имеет множество позиций Р= {/л,pi,рз,р^ и множество переходов 7^{Г1, н, 1з, uV Начальная маркировка для этой НСП Vr может быть задана, например, следующей матрицей:
"0.1 0.2 0.6 0.8'
0.6 0.5 00
Строки матрицы начальной маркировки образованы из векторов mf° = = (m,i°, т,2°, т^^ т^, (Vzg {1, 2,..., л}), компоненты которых определяют степени принадлежности т^°=рК/-1) нечеткого наличия j-\ количества маркеров в позиции р, данной НСП. При этом общее количество вводимых в рассмотрение маркеров равно d=3. Так, для позиции р\ значение тц°= 0.1 означает, что степень принадлежности нечеткого отсутствия маркеров в данной позиции для начальной маркировки равна 0.1. Значение т^= 0.2 означает, что степень принадлежности нечеткого наличия одного маркера в позиции р\ для начальной маркировки равно 0.2. Значение /шз0 = 0.6 означает степень принадлежности нечеткого наличия двух, а значение пш° = 0,8 — степень принадлежности нечеткого наличия трех маркеров в позиции р\ данной НСП для начальной маркировки. Значения /72|5° = пш° =...= 0 в матрице Мо не приводятся.
Другими словами, в матрице начальной маркировки Мо указываются лишь значения степеней принадлежности для носителя нечеткого множества количества маркеров в позициях НСП Vr.
Динамика изменения начальной и последующих маркировок НСП Vf после момента ее запуска подчиняется следующим Правилам P(Vf):
(Pi) Правило определения текущей маркировки. Любое текущее состояние НСП Vrопределяется некоторой матрицей М размерности (px(d+\y), элемен-
ты которой удовлетворяют условию (10.5) и интерпретируются как значения степеней принадлежности нечеткого наличия (0, 1, 2,..., </} маркеров в соответствующих позициях р^Р НСП Vr. Начальное состояние НСП определяется матрицей начальной маркировки Мо.
Рис. 10.4. Графическое изображение структуры НСП типа VfРис. 10.4. Графическое изображение структуры НСП типа Vf
Рис. 10.4. Графическое изображение структуры НСП типа Vf
Рис. 10.4. Графическое изображение структуры НСП типа Vf
(Рг) Правило (условие) активности перехода. Переход ^еГНСП Vr называется активным (разрешенным, возбужденным) при некоторой текущей маркировке М, если выполнено следующее условие:
а > №i, /Д Др2, /,),..., Црп, Q),(Ю.6)
где компоненты вектора о = (ся, 02,..., ал) определяются по формуле:
о,= max {у"}-1 (Vp,eP),(10.7)
*(уеУ)л(м,?>0)'
т. е. значение о,- равно максимальному индексу отличной от нуля степени принадлежности нечеткого наличия маркеров в позициях НСП Vf. Другими словами, некоторый переход tke ГНСП Vf является активным или разрешенным, если для текущей маркировки М во всех его входных позициях имеется нечеткое количество маркеров, которое больше или равно количеству дуг, соединяющих соответствующие входные позиции с рассматриваемым переходом.
(Рз) Правило срабатывания перехода. Если переход /*бТНСП Vr является активным при некоторой текущей маркировке М (т. е. выполнено условие (10.6)), то срабатывание данного перехода, осуществляемое мгновенным образом, приводит к новой маркировке М> элементы которой определяются следующим образом:
для каждой из входных позиций р^Р, для которых I(ph ^)*0, по формулам:
(10.8)(10.8)т^ max {^„};
(10.8)
(10.8)
(уе{1,2,..., 1^, 4)+!}) 7
тМ = тм^Р1^тМ = тм^Р1^№J\wy№J\wy(10-9)(10-9)
тМ = тм^Р1^
тМ = тм^Р1^
№J\wy
№J\wy
(10-9)
(10-9)
для каждой из выходных позицийр^Р, такой что: O(tk,р^О по формулам: m^min^yj-qk}(V/g{1, 2,..., O(tk,p^y,(10.10)
/H/=max{min{m,yJ-^},min{m,y_O(/^^^(10.11)
(\/jeJ)A(j>O(tk,p^
где qk—степень принадлежности или мера возможности нечеткого срабатывания (запуска) перехода tke Т, рассчитываемая по формуле:
qk = min { max {w»}} (VtkeT). (10.12) (ie{l, 2„., „}) (уЕ^)л(У>/(й,/а) J
Если некоторые из позиций р^Р являются одновременно входными и выходными для разрешенного перехода tkeT, то для них элементы матрицы новой маркировки М, рассчитываются последовательно, вначале по формулам (10.8)(10.9), а затем — по формулам (10.10)—(10.11).
Проиллюстрируем применение описанных Правил P(Vf) на примере изменения начальной маркировки Мо НСП Vr, изображенной на рис. 10.4. Согласно правилу Рг, при данной маркировке Мо разрешенным является единственный переход ti, поскольку только для него выполнено условие (10.6): (3, 0, 0, 1) > (3, 0, 0, 0). Срабатывание данного перехода приводит к новой маркировке Mi, элементы матрицы которой определяются по правилу Рз следующим образом:
для позиции р\, являющейся входной для перехода <2 со значением I(p\, ti) = = 3, с использованием соотношений (10.8)—(10.9): л/ц'= тах{0.1,0.2,0.6, 0.8} = = 0.8, /П|2|= /»1з' = л/14*= 0;
для позиций рз и р^ являющимися выходными для перехода 1г со значениями О(/2,рз)=1 и O(ti, р^ = 1, с использованием соотношений (10.10)—(10.11), при этом степень принадлежности нечеткого срабатывания перехода 1г равна qi- 0.8: /пз1'= minimi0, 1-0.8} = min{0.7, 0.2} = 0.2; тзг|= max{min{«i32°, 1-0.8}, тт{/лз1°, 0.8}} = max {m/л {0, 0.2}, min{0.7, 0.8}} =0.7; шзз1=лгз4| = = 0, m4i'= min{m4i°, 1-0.8} = min{0.6, 0.2}} = 0.2, m42’= тах{пип{л142°, 1-0.8}, min {лш0,0.8}} = max{min{0.5,0.2}, min{0.6,0.8}} = 0.6, лт4з1= max{min{/m30,1-0.8}, min{m42°, 0.8}} = max{min{0, 0.2}, min{0.5, 0.8}} = 0.5, Ш44'=0;
для позиции pi, не являющейся для перехода /2 ни входной, ни выходной, компоненты новой маркировки Mi будут равны компонентам исходной маркировки Мо, т. е. пи = (0.8, 0, 0,0).
Таким образом, после нечеткого срабатывания перехода и начальная маркировка Мо НСП Vf изменится на маркировку Mi, матрица которой равна:
Mi =Mi =0.80.80.20.80.80.2000.7000.7о о оо о о000000. Полученная маркировка Mi разрешает переходы 1з и ?4, в. Полученная маркировка Mi разрешает переходы 1з и ?4, в
Mi =
Mi =
0.8
0.8
0.2
0.8
0.8
0.2
0
0
0.7
0
0
0.7
о о о
о о о
0
0
0
0
0
0
. Полученная маркировка Mi разрешает переходы 1з и ?4, в
. Полученная маркировка Mi разрешает переходы 1з и ?4, в
0.2 0.6 0.5 0
чем можно убедиться, используя правило Рг. Поэтому процесс изменения марки-
ровок для данной НСП Vf может быть продолжен, что предлагается выполнить самостоятельно в качестве упражнения.
Поскольку процесс изменения маркировок НСП Vf во многом аналогичен соответствующему процессу для базового формализма классических СП с такой же структурой, хотелось бы представить динамику изменения маркировок НСП Vf также в виде дерева или диаграммы достижимых маркировок. Строгое определение диаграммы достижимых маркировок НСП Vr базируется на отношениях непосредственного следования и достижимости маркировок, определения которых приводятся ниже.
Непосредственная достижимость маркировок. Маркировка Mi- НСП Vr= (TV, Мо) непосредственно достижима из маркировки М (непосредственно следует за маркировкой М) этой же НСП, если маркировка М, получается в результате срабатывания некоторого разрешенного при М перехода tkeT. Отношение непосредственного следования маркировок НСП Vf будем обозначать через: М-(0->М₽, где М и М,—матрицы соответствующих маркировок.
Очевидно, отношение непосредственной достижимости маркировок НСП Vr является бинарным транзитивным отношением на декартовом произведении множества всех возможных маркировок фиксированной НСП Vr. Что касается свойств рефлексивности и симметричности, то в общем случае нельзя сделать никаких утверждений относительно их наличия или отсутствия для той или иной НСП Vr.
Достижимость маркировок. Маркировка Ми- НСП Vr = (V, Мо) называется достижимой из маркировки М этой же НСП, если существует конечная упорядоченная последовательность маркировок Mk= <Mi, М2,..., Mv>, где Mi=M, Ме=М,м и соответствующая ей конечная упорядоченная последовательность переходов л^с^, /2,..., 1С\> такие, что любая пара соседних маркировок в Мк удовлетворяет отношению непосредственного следования маркировок: M^r^-^My+i (V/€{1, 2,..., <?-!}). Отношение достижимости для НСП Vr будем обозначать через M-(nJ->Mw.
Отношение достижимости маркировок НСП Vr также является бинарным транзитивным отношением на декартовом произведении множества всех возможных маркировок фиксированной НСП. Более того, данное отношение является транзитивным замыканием (см. приложение 1) отношения непосредственной достижимости маркировок, в чем читателю предлагается убедиться самостоятельно.
Обозначим через £)(М) множество маркировок, достижимых из некоторой фиксированной маркировки М для заданной НСП Vr = (N, Мо), т. е. £>(М) = = {Мн-1 (3 л,) М-(л,)—>Мн-}.
Множество достижимых маркировок НСП Vr. Множество £>(Мо) будем называть множеством достижимых маркировок для НСП Vf = (N, Мо) или просто —множеством достижимости НСП Vf.
Диаграммой достижимых маркировок (графом достижимости) НСП Vr будем называть ориентированный мультиграф D(V, Е, у), где ^{и, гг,...,^} — множест-
во вершин мультиграфа, которое соответствует множеству достижимых маркировок £>(Мо); Е=^е^ (Vv,., v^e р)} — в общем случае мультимножество (комплект) дуг, которое соответствует отношению непосредственной достижимости маркировок НСП Vf; у: Е-^Т— отображение, помечающее каждую дугу мультиграфа переходом, срабатывание которого обеспечивает выполнение соответствующего отношения непосредственной достижимости для рассматриваемой пары маркировок.
Диаграмма достижимых маркировок, построенная для НСП из примера 10.2 в форме диаграммы деятельности нотации UML, представлена на рис. 10.5.
Рис. 10.5. Диаграмма достижимых маркировок для НСП Vf из примера 10.2
Для наглядности значения матриц всех достижимых маркировок записаны отдельно от диаграммы:
0.8
0
0
0"
0.8
0
0 0"
0.5
0.5
0
0"
0.8
0
0
0
0.3
0.7
0 0
0.8
0
0
0
Ml =
М2 =
Мз =
0.2
0.7
0
0
0.7
0
0 0
0.2
0.7
0
0
0.2
0.6
0.5
0
_0-2
0.3
0.6 0
0.6
0
0
0
"0.3
0.7
0
0
0.4
0.6
0 0"
"0.5
0.5
0
0"
0.7
0
0
0
0.3
0.7
0 0
0.3
0.7
0
0
M4 =
Ms =
Мб =
0.7
0
0
0
0.7
0
0 0
0.7
0
0
0
0.2
0.3
0.6
0.5
0.6
0.5
0 °.
0.3
0.6
0
0
0.3
0.4
0.6
О'
'0.3
0.5
0.5
0"
0.7
0
0
0
0.7
0
0
0
M7 =
м8=
0.7
0
0
0
0.7
0
0
0
0.6
0.5
0
0
0.3
0.6
0
0
Как показывает анализ данной диаграммы достижимости (см. рис. 10.5), для рассматриваемой НСП Vf справедливы следующие отношения: Mo-(/2)->Mi, Mi- —(Гз)—>Mi, Mi—(/4)—>Мз и Мо—(</2, /з>)—>Mz.
Для НСП Vr могут быть введены в рассмотрение свойства, соответствующие приведенным выше свойствам классических СП. В этом случае при решении задач системного моделирования с использованием рассматриваемых моделей НСП Vr основной интерес также представляют множества £)(Мо) и соответствующие им диаграммы достижимости, которые содержат исчерпывающую информацию об соответствующих свойствах НСП Vr.
Нечеткие сети Петри типа Cf
Второй из рассматриваемых подклассов НСП, называемый в дальнейшем НСП типа Сг или кратко — НСП Cf, получается в результате введения нечеткости в начальную маркировку и правила срабатывания переходов формализма ординарных СП.
Нечеткая сеть Петри т и п а Сг. Нечеткая сеть Петри типа Сг (НСП Сг) определяется как Сг = (N,f, X, то), где:
N = (Р, Т,1,О)— структура НСП Сг, которая аналогична структуре ординарных СП и для которой Г. РхТ—>{0, 1} и О-. 7хР—>{0, 1} — входная и выходная функции переходов соответственно;
/= (/i,/2,..., /,)—вектор значений функции принадлежности нечеткого срабатывания переходов, при этом/е[0, 1] (V/e {1,2,..., и});
Х= (Xi, Хг,..., Х„) — вектор значений порога срабатывания переходов, при этом X,e[0,l](V/e{l,2„.„M});
wo= Qm°, m20,..., m„°) — вектор начальной маркировки, каждая компонента которого определяется значением функции принадлежности нечеткого наличия одного маркера в соответствующей позиции данной НСП Сг, при этом m^efO, 1] (Vzg{1,2,..., л}).
Примечание
Определение для НСП Ct несколько отличается от известных в литературе определений НСП, т. к. последние дополнительно содержат в своем определении некоторое множество высказываний D = {di, d2d,^ и биективное отображение a: D-^P. Поскольку дополнительные компоненты (D, а) подобных определений отражают специфику моделируемой предметной области и не оказывают принципиального влияния на математические аспекты анализа свойств НСП Cf, в нашем определении они не используются, что не влечет потери в строгости всех последующих рассуждений. Из методических соображений следует отметить, что ординарные СП можно считать конкретизацией НСП Cf при фиксации следующих ограничений на компоненты в определении НСП Ct: fj=1, \=0 (V/e{1, 2,..., и}) и т°е{0,1} (V/e{1, 2,..., п}). Данное обстоятельство делает данное определение НСП С# корректным в плане нечеткого обобщения классических СП.
Структура N введенного в рассмотрение подкласса НСП Сг также имеет обычный (не нечеткий) вид, определяемый матрицами входных I и выходных О позиций. Поэтому графически НСП Сг изображаются ориентированным двудольным графом аналогично ординарным СП.
Пример 10.3. Изображенная на рис. 10.6 НСП Сг имеет множество позиций Р =Крх>Р1>Р^Р*1Р^ и множество переходов Т= {л, ti, 1з, U\, ниже каждого из которых (V/)g7) указываются значение функции принадлежности нечеткого срабатывания fr С целью удобства вектор значений порогов нечеткого срабатывания переходов X = (0.6,0.5,0.4,0.5) и вектор начальной маркировки то=(0.95,0.9,0,0,0) указаны отдельно.
Рис. 10.6. Графическое изображение НСП Cf с начальной маркировкой то=(0.95, 0.9, 0, 0, 0) и вектором значений порога нечеткого срабатывания X = (0.6, 0.5, 0.4, 0.5)
Динамика изменения начальной и последующих маркировок НСП Сг после момента ее запуска подчиняется следующим Правилам 1Р(Сг):
□ (Pi) Правило определения текущей маркировки. Любое текущее состояние НСП Сг определяется вектором т = (пи, гт,...,™,), компоненты которого (m,-6[0, 1]) интерпретируются как значения функции принадлежности нечеткого наличия одного маркера в соответствующих позициях р,&Р НСП Сг. Начальное состояние НСП определяется вектором начальной маркировки то.
□ (IP?) Правило (условие) активности перехода. Переход ГдбГНСП Сг называется активным (разрешенным, возбужденным) при некоторой текущей маркировке т, если выполнено следующее условие:
min {/и,}>Х^,(10.13)
0е{1,2,..., и})л(7(р,, га)>0)
где ХА.— значения порога срабатывания перехода tkeT. Другими словами, переход ike Т НСП Сг является активным, если во всех его входных позициях имеются ненулевые значения компонентов вектора текущей маркировки, а минимальное из них — не меньше порога срабатывания рассматриваемого перехода.
□ (Рз) Правило нечеткого срабатывания перехода. Если переход tk&T НСП Сг является активным при некоторой текущей маркировке т, (т. е. для него выполнено условие (10.13)), то нечеткое срабатывание данного перехода, осуществляемое мгновенным образом, приводит к новой маркировке т^(тх\ im\..., т„), компоненты вектора которой определяются по следующим формулам:
для каждой из входных позиций р,еР, для которых I(ph tk)>Q:
т^= 0,№еР) л №, 7А)>0);(10.14)
для каждой из выходных позиций р^Р, для которых O^tk, р,)>0:
т^=тах{тр тт^.Д} }(Х//?уеР)л(О(гА.,/?/)>0),(10.15)
'(fe{l,2,...,»})A(/(p„/A)>0)'
где fk— значение функции принадлежности или мера возможности нечеткого срабатывания (запуска) перехода tk&T, которое задается при определении конкретной НСП Сг.
Если некоторые из позиций р,еР являются одновременно входными и выходными для разрешенного перехода tkeT, то для них компоненты вектора новой маркировки рассчитываются последовательно, вначале по формуле (10.14), а затем — по формуле (10.15).
Рассмотрим применение описанных Правил Р(Ст) на примере изменения начальной и последующих маркировок НСП Сг, изображенной на рис. 10.6.
При начальной маркировке то= (0.95, 0.9, 0, 0, 0) активными являются два перехода: /| и /?, поскольку для каждого из них выполненоусловие (10.13), т. е.
0.95>0.6 и min{0.95, 0.9}= 0.9>0.5, где Х,= 0.6 и Хз= 0.5— значения порогов срабатывания переходов it и ti соответственно. Других разрешенных переходов при данной начальной маркировке нет.
Нечеткое срабатывание перехода Л приводит к новой маркировке mi, компоненты вектора которой определяются по формулам (10.14)—(10.15) следующим образом. Поскольку позиция р\&Р является входной для данного перехода, то для нее: /ш|=0. Для позиции рз, которая является выходной для перехода tv. /ml = max{0, min{0.95, 0.8}} =0.8, где /i= 0.8. Значения mix=nvp, nu'= nu°, msx= m^ остаются без изменения, поскольку позиции pi, р», ps не является ни входными, ни выходными для рассматриваемого активного перехода t\. Таким образом, нечеткое срабатывание перехода h приводит к изменению начальной маркировки то на новую маркировку пи= (0,0.9,0.8,0,0).
Нечеткое срабатывание перехода h приводит к новой маркировке mi, компоненты вектора которой определяются по формулам (10.14)—(10.15) следующим образом. Поскольку позициир\,рг&Р являются входными для данного перехода, то для них: mi2=0 и тг2=0. Для выходной позиции ри компонент новой маркировки равен: /ш2=тах{0, min{0.95, 0.9, 0.85}} =0.85. Значения /из2=ли2=0 остаются без изменения, поскольку позиции рз и ps не являются ни входными, ни выходными для рассматриваемого активного перехода ti. Таким образом, нечеткое срабатывание перехода ti приводит к изменению начальной маркировки то на новую маркировку лй=(0, 0, 0,0.85,0).
Примечание
Следует заметить, что нечеткое срабатывание перехода ti делает неактивным переход ti, а нечеткое срабатывание перехода t^ в свою очередь делает неактивным переход ti. Таким образом, данные переходы являются конфликтными, что приводит к их альтернативному срабатыванию.
При текущей маркировке mi нет активных переходов, а при маркировке mi активным является переход UeT, поскольку для него выполнено условие (10.13): 0.85>0.5, где Х4= 0.5. Нечеткое срабатывание перехода tn изменит маркировку пи на новую маркировку /из=(0,0, 0, 0, 0.75), где значение ms3= 0.75 получается с использованием формулы (10.15). При полученной в результате маркировке тз нет активных переходов, поэтому рассмотрение этого примера можно закончить.
Строгое определение диаграммы достижимых маркировок НСП Сг базируется на отношениях непосредственного следования и достижимости маркировок, определения которых приводятся ниже.
Непосредственная достижимость маркировок. Маркировка пи НСП Cf= (TV, тб) непосредственно достижима из маркировки т (непосредственно следует за маркировкой т) этой же НСП, если маркировка пи получается в результате нечеткого срабатывания некоторого активного при т перехода
t^T. Отношение непосредственного следования маркировок НСП Сгбудем обозначать через: тЦ^-^т.,, где т и т,—векторы соответствующих маркировок.
Очевидно, отношение непосредственной достижимости маркировок НСП Сг является бинарным транзитивным отношением на декартовом произведении множества всех возможных маркировок фиксированной НСП Сг.
Достижимость маркировок. Маркировкаmw НСП Сг = (N, то) называется достижимой из маркировки т этой же НСП, если существует конечная упорядоченная последовательность маркировок Мк= <т\,т2,...,тч>, где пн=т, m4=mxv, и соответствующая ей конечная упорядоченная последовательность переходов л,=<л,t2,..., 1чл> такие, что любая пара соседних маркировок в Мк удовлетворяет отношению непосредственного следования маркировок: тН^У-ницл (Vje {1, 2,..., q-1}). Отношение достижимости для НСП Сг будем обозначать через т-(л0-^т№.
Отношение достижимости маркировок НСП Сг также является бинарным транзитивным отношением на декартовом произведении множества всех возможных маркировок фиксированной НСП. Как и в случае классических СП, данное отношение является транзитивным замыканием отношения непосредственной достижимости маркировок, в чем читателю предлагается убедиться самостоятельно.
Для НСП Сг (см. рис. 10.6) справедливы соотношения: m»-(/i)->mi, то-(12)^пи, тг-(и)^тз и то (<?2,и>)>тз.
Как и ранее, через D(m) будем обозначать множество маркировок, достижимых из некоторой фиксированной маркировки т для заданной НСП Сг = (N, то), т. е. D(m) = {mH-1 (3 л,) т-^ид—ыпн^ •
Множество достижимых маркировок НСП Сг. Множество D(mo) будем называть множеством достижимых маркировок для НСП Сг = (М то) или просто —множеством достижимости НСП Сг.
Диаграммой достижимых маркировок (графом достижимости) НСП Сг будем называть ориентированный граф D^V, Е, у), где И={и, V2,...,v,} — множество вершин графа, которое соответствует множеству достижимых маркировок D(mo); Е={е,;} (Vv„ ^gP)} — множество дуг, которое соответствует отношению непосредственной достижимости маркировок НСП Сг; у: Е^>Т отображение, помечающее каждую дугу данного графа переходом, нечеткое срабатывание которого обеспечивает выполнение соответствующего отношения непосредственной достижимости для рассматриваемой пары маркировок.
Диаграмма достижимых маркировок, построенная для НСП Сгиз примера 10.3 в форме диаграммы деятельности нотации UML, представлена на рис. 10.7. На этой диаграмме срабатывание переходов понимается в смысле нечеткого срабатывания, как это определяется правилом Рз.
Некоторые примеры построения нечетких моделей продукционных систем с использованием нечетких сетей Петри типа Сгприводятся в разд. 10.4.
Рис. 10.7. Диаграмма достижимых маркировок . для НСП Cf из примера 10.3
Обобщенные нечеткие временные сети Петри типа CPTf
Третий и наиболее общий подкласс НСП, называемый здесь обобщенными нечеткими временными СП типа Сртг или кратко— ОНВСП Сртг, может быть получен введением описания неопределенности нечеткого характера в формализм обобщенных временных СП типа Срт, что также позволяет сформулировать определения различных более конкретных подклассов ОНВСП в качестве частных случаев. Однако более детальное рассмотрение последних выходит за рамки данной книги и может служить предметом специальных исследований.
Обобщенная нечеткая временная сеть Петри типа Сртг (ОНВСП Cpi1)- Обобщенная нечеткая временная сеть Петри тина Сртг может быть определена как Сртг = (N, nio(co), z(co), s(co)), где:
□ N = (Р, Т, I, О) — структура ОНВСП Сртг, которая аналогична структуре обычных СП и для которой Г. РхТ-^%— входная функция переходов; О; Т*Р-+№„ — выходная функция переходов;
□ то(ю)= (mi°, m20,..., m„°)— вектор начальной маркировки, с каждым компонентом тР которого связано некоторое пространство с нечеткой мерой (nAQ(v»€{i,2,..,fl});
□ z(o) = (zi, Z2,..., z„) — вектор параметров временных задержек маркеров в позициях ОНВСП Сртг, с каждым компонентом Z; которого связано некоторое пространство с нечеткой мерой (О/, 3/, (7/) (Vie {1,2,..., л});
□ s(co) = (51, 52,..., 5„)— вектор параметров времен срабатывания активных переходов, с каждым компонентом 5, которого также связано некоторое пространство с нечеткой мерой (О/', 3/', G"^ ^/je {1,2,..., w}).
Данное определение ОНВСП Сртг является слишком общим и абстрактным, что затрудняет практическое использование соответствующих моделей при решении прикладных задач нечеткого моделирования. Однако математическая структура данного класса Сртг допускает различные конкретизации на основе рассмотрения конкретных способов задания нечетких мер. Наиболее перспективным и интересным в контексте нечеткого моделирования представляется рассматриваемый ниже подкласс ОНВСП Сртг, который получается на основе задания параметров векторов z и s в виде нечетких величин (см. главу 5).
Нечеткая временная сеть Петри типа Cptv (НВСП Срт'). Нечеткой временной сетью Петри типа Cptv будем называть подкласс ОНВСП Сртг, который определяется как Cptv =(N, go, z^ sv), где:
□ N =(Р, Т, I, О) — структура НВСП Cptv, которая аналогична структуре ординарных СП и для которой Z: РхГ->{0, 1}— входная функция переходов; О: ТхР^{0, 1} —выходная функция переходов;
mo= (т\°, m20,..., т°) — вектор начальной маркировки, каждый компонент т° которого представляет собой некоторую неотрицательную нечеткую величину;
zv- (^1 \ Z2r,..., z/) — вектор параметров временных задержек маркеров в позициях НВСП Cptv, каждый компонент z/которого представляет собой некоторую неотрицательную нечеткую величину;
5v=(5i\ 52\..., s,,*)— вектор параметров времен срабатывания разрешенных переходов НВСП Cptv, каждый компонент $(' которого также представляет собой некоторую неотрицательную нечеткую величину.
Примечание
Напомним, что используемое в данном определении понятие неотрицательной нечеткой величины представляет собой нечеткое множество В=\х, цв(х)}, заданное на множестве неотрицательных действительных чисел IR+, т. е. для которого универсумом X служит множество №+. Другими словами, функции принадлежности компонентов векторов mo, zv и s, определяются как цт: <7?+->[0, 1], pz: ^+->[0, 1] и ц$: ^+->[0,1] соответственно.
Поскольку понятие нечеткой величины допускает конкретизацию в виде нечеткого интервала и нечеткого числа, которые наиболее удобно с вычислительной точки зрения использовать в форме (£-7?)-представления, то рассматриваемый подкласс НВСП Cptv также может быть конкретизирован применительно к указанной форме представления mo, zv и $у Следуя в этом направлении, можно определить наиболее удобный с вычислительной точки зрения подкласс НВСП, основанный на задании указанных векторов в форме трапециевидных нечетких интервалов (ТНИ) и треугольных нечетких чисел (ТНЧ), которые были определены в главе 5.
Нечеткая временная сеть Петри типа Сртт (НВСП Сртт). Нечеткой временной сетью Петри типа Сртт будем называть подкласс НВСП Cptv, который определяется как Сртт = (/V, /ио, zt, st), где:
^ = (Р, Т, I, О) — структура НВСП Сртт, которая аналогична структуре ординарных СП и для которой Г. РхТ—>{0, 1} — входная функция переходов; О: 7хР—>{0, 1} — выходная функция переходов;
то = (mi0, /га0,..., т”) — вектор начальной маркировки, каждый компонент т^ которого представляет собой ТНИ Мц = <ah bb а„ р,>т (Vzg {1, 2,..., л});
zt= (zi, Z2,..., z„)— вектор параметров временных задержек маркеров в позициях НВСП Сртт, каждый компонент z, которого представляет собой ТНИ Zt, = <аь bh a„ Р,>т (Vzg {1,2,..., л});
st= (si,S2,..., sj— вектор параметров времен срабатывания разрешенных переходов НВСП Сртт, каждый компонент $j которого также представляет собой ТНИ 5ту = <а}, bh ay, р>т (V/g {1,2,..., и^.
£ Примечание
Если в данном определении НВСП СртТ все ТНИ в векторах то, zt, st заменить на ТНЧ Мц= <Эь а,, р,>д, Z^- <3,, а,, р,>д и 5^= <3,, а>, ру>д соответственно, то получим определение НВСП СРтА = (А/, m0, z^, зд), которая является частным случаем НВСП СРтт. На основе НВСП СРтт и СРТЛ могут быть также получены определения отдельных подклассов НВСП СРТ, СРА и НВСП Стт и СтА путем исключения нечеткости из рассмотрения векторов st, sA и zt, z^ соответственно, что предлагается выполнить читателям самостоятельно в качестве упражнения. В то же время полное исключение неопределенности при задании векторов St, 5д, zt, гд приводит к определению обычных временных СП. В случае частичного исключения неопределенности при задании векторов st, sa и zt, za, т. е. при задании их компонентов в виде неотрицательных целых или действительных чисел, могут быть получены определения комбинированных НВСП, рассмотрение которых выходит за рамки настоящей книги.
Графически НВСП Сртт и СртА представляются в виде ориентированного двудольного графа, аналогично классическим ординарным СП.
Пример 10.4. Изображенная на рис. 10.8 НВСП Срттимеет множество позиций Р = VP'^P^P^P^P5^ и множество переходов Т- {Zi, /2, /з,}. Для каждой из пози-
ций дополнительно следует указать времена задержек маркеров в виде ТНИ: zi=^ti=<2, 3,1, 1>т, Z2,=^T2=<3,5,1,1>т, z3=2St3=<1, 2,0,0>т, Z4=-2St4=<2, 4,1, 1>т, Z5=^T5=<0, 0, 0, 0>т. Так, например, ziT= <2, 3, 1, 1>т означает, что временная задержка маркера в позиции р\еР представляет собой ТНИ ^ti, для которого: а=2, Ь=3, а=1, р=1. Для каждого из переходов дополнительно следует указать времена срабатывания активных переходов в виде ТНИ: si=Sti=<1,2, 0, 1>т, S2=St2=<0, 1,0, 1>т, 5з=5тз=<2, 3, 1,0>т. Так, например, я= <1, 2, О, 1>т означает, что время срабатывания перехода НеТв случае его активности представляет собой ТНИ .Stu для которого: о=1,6=2, а=0, Р=1.
Начальная маркировка для этой НВСП также должна быть задана в виде вектора с компонентами в форме ТНИ: mi°=AlTi=<l, 2, 1, 1>т, т2°= Л1т2=<2, 3, 0, 1>т, /7?з°=Л1тз=<0, 0, 0, 0>т, 7Н4°=Л1т4=<0, 0, 0, 0>т, /Д5°=Л1т5=<0, 0, 0, 0>т. Так, например, ш\° — <1,2, 1, 1>т означает, что возможность наличия одного маркера в начальной маркировке то в позиции р\&Р представляет собой ТНИ Мп, для которого: а=1, 6=2, а=1, р=1. Остальные компоненты векторов mo, zt, st интерпретируются аналогичным образом.
5тГ<1.2.0, 1>т
STy<0, 1,0, 1>т
Zti=<3, 3.1. 1>тZh=<2, 4,1, 1>т
Рис. 10.8. Графическое изображение НВСП Ср/ с начальной маркировкой т!°=>МТ1=<1, 2, 1, 1>т, т2°=Л1Т2=<2, 3, О, 1>т, т3°=Л(Тз=<0, 0, 0, 0>т, т4°=Л1Т4=<0, 0, 0, 0>т, т5°=Л1Т5=<0, 0, 0, 0>т
Примечание
Изображенная на рис. 10.8 структура НВСП Ср/ может представлять собой пример НВСП Ср/ в случае задания компонентов векторов m0, zT, st в виде ТНЧ 5\ь= <а, а, р>д. Так, например, если вместо векторов m0, zT, St задать вектора т0, гь sL в виде: Zi=Zai=<2, 1, 1>д, z2=Za2=<3, 1, 2>д, z3=Za3=<1, О, 1>д, z4=Za4=<2, 1, 1>д, z5=Za5=<0, о, 0>д, S1=SA1=<1, О, 1>д, $2=5д2=<1, О, 2>д, 5з=5дз=<2, 1, 1>д и начальной маркировкой, например, т1°=Л4Д1=<1, 1, 1>д, т2°=Л1Д2=<2| 2, 1>д, тз°=Л1дз=<0, 0, 0>д, т4°=Л4д4=<0, 0, 0>д, т5°=Л1Д5=<0, 0, 0>д, то получим пример НВСП Ср/ со структурой Л/ из примера 10.4. В этом случае значение Zi=<2, 1, 1>д означает, что временная задержка маркера в позиции рдеР представляет собой ТНЧ ZAi, для которого а=2, а=1, р=1. Значение
Si=<1, О, 1>д означает, что время срабатывания перехода ЬеТ в случае его активности представляет собой ТНЧ 3Д1, для которого: а=1, а=0, 0=1. Остальные компоненты векторов то, гд, sA интерпретируются аналогичным образом.
Для описания процесса изменения начальной и последующих маркировок ОНВСП Сртг можно использовать различные правила, определяющие конкретные условия активности и правила срабатывания переходов, аналогично правилам P(Cf) и P(Vr). Однако, поскольку данный класс ОНВСП Cpi1’ является наиболее общим и абстрактным среди всех ранее рассмотренных, ниже приводится конкретизация данных правил только применительно для его подкласса безопасных НВСП Сртт. При этом безопасность НВСП понимается в смысле возможности наличия в каждой из позиций сети не более одного маркера, задаваемого соответствующим ТНИ.
Динамика изменения начальной и последующих маркировок безопасных НВСП Сртт (далее просто— НВСП Сртт) после момента их запуска подчиняется следующим Правилом Р(Сртт).
□ (Pi) Правило определения текущей маркировки. Любое текущее, в том числе и начальное состояние НВСП Сртт определяется вектором т = (/щ, тт,...,тпУ компоненты которого т, представляют собой ТНИ УИт,-- <а„ Ь„ а,., 0>т (Vi€{l, 2,..., и}) и интерпретируются как значения функции принадлежности нечеткого наличия одного маркера в соответствующих позициях р^Р относительно времени, отсчитываемого от момента запуска данной НВСП Сргт. Начальное состояние НВСП Сртт определяется вектором начальной маркировки то.
□ (Р2) Правило (условие) активности перехода. Переход /Ае7 НВСП Сртт называется активным (разрешенным, возбужденным) при некоторой доступной маркировке т, если выполнено следующее условие:
Мг, > 0(Vp.eP) л (I(ph tk)>0),(10.16)
т. е. во всех входных позициях рассматриваемого перехода на момент времени т должны быть доступные маркеры, представленные отличными от нуля НТНИ. При этом неравенство (10.16) следует понимать применительно к функции принадлежности соответствующего ТНИ для аргумента те^?+. Доступность маркеров в позициях НВСП определяется согласно правилу Р».
□ (Рз) Правило нечеткого срабатывания перехода. Если переход ^еГНВСП Сртт активен при некоторой доступной маркировке т, т. е. для него выполнено условие (10.16), то нечеткое срабатывание данного перехода, осуществляемое за время sk= 8тк, приводит к новой маркировке т», компоненты вектора которой определяются следующим образом:
для каждой из входных позиций р^Р^ для которых I(p„ О>0. по формуле:
т- = <0, 0, 0, 0>т (Vp,ePyH(Pb lk)> 0);(10.17)
е для каждой из выходных позиций р^Р, для которых O^tk,p^>0, по формуле:
(10.18)(10.18)mv. =min{ max(m,} + si, тЛ
(10.18)
(10.18)
7(М1.2,->П})л(/(Л,4)>0)J
(V^gP)a(O(/a,^)>0) л(Мгу*<0, О, 0, 0>т),
где "max" — расширенная операция максимума для ТНИ, определяемая по формуле (5.27), "min" — расширенная операция минимума для ТНИ, определяемая по формуле (5.28), а "+" — операция сложения ТНИ, определяемая по формуле (5.20);
для каждой позиции р.&Р, не являющейся ни входной, ни выходной, по формуле:
т^- т,^р^Р^лХИРп h№) (O(tk,p)=Q).(10.19)
Если некоторые из позиций р,еР являются одновременно входными и выходными для активного перехода t^T, то для них компоненты вектора новой маркировки рассчитываются последовательно, вначале по формуле (10.17), а затем — по формуле (10.18).
□ (Р4) Правило нечеткой задержки маркеров в позициях. После нечеткого срабатывания активного перехода согласно правилу Рз маркеры в выходных позициях для новой маркировки т» в общем случае являются недоступными. На них начинают действовать временные задержки в соответствующих выходных позициях сработавшего перехода, определяемые вектором zT. Соответствующие маркеры становятся доступными только после окончания действия временных задержек, которые определяют доступную маркировку т. по формуле:
Мт/=М^+^т,(УруеР)л(О(^,ру)>0)А(Л1т,.*<0,0, 0, 0>т) ,(10.20)
где операция сложения понимается как сложение ТНИ по формуле (5.20). Для выходных позиций pj перехода tk с Л1т; =<0,0,0,0>т по определению Л1ту-<0,0,0,0>т.1'
Примечание
Указанные правила Р(СРтт) могут быть расширены на общий случай небезопасных НВСП Сртт. Однако возможность наличия в позициях НВСП СРТТ нескольких маркеров приведет к необходимости рассмотрения в качестве текущей маркировки некоторой матрицы, элементами которой будут ТНИ. Интерпретация последних будет соответствовать значениям функции принадлежности нечеткого наличия соответствующего количества маркеров в позициях данного подкласса НВСП для определенных моментов времени. Данное обстоятельство существенно усложняет процесс анализа свойств небезопасных НВСП СРтт, поэтому в дальнейшем наше внимание будет ограничено рассмотрением только безопасных НВСП СРуТ и СРтА. Следует также отметить, что если в правилах Р(СРтТ) всюду заменить ТНИ на ТНЧ, то получим соответствующие правила Р(Срта), которые описывают динамику изменения начальной и последующих маркировок безопасных НВСП СРтА.
Проиллюстрируем применение описанных правил Р(Сртт) на примере изменения начальной маркировки НВСП Сртт, изображенной на рис. 10.8.
Согласно правилу Pi начальное состояние данной НВСП Сртт определяется вектором то= (/И|°, m20, тз0, nu°, т#\ компоненты которого являются ТНИ: т|°=уМт1=<1, 2, 1, 1>т, m20—Л1т2=<2, 3,0, 1>т, /из°=Л1тз=<0,0,0,0>т, т4°=уМт4= = <0,0,0, 0>т, тз°=Л1т5=<0, 0, 0, 0>т. Согласно правилу Р4 на начальную маркировку то начинают действовать временные задержки маркеров в позициях данной НВСП. Поэтому доступной начальной маркировкой будет вектор то, компоненты которого равны: /и/=Л1т1=<3, 5, 2, 2>т, т2 =Мг2=<5, 8, 1,2>т, тз = =Л1тз=<0,0, 0, 0>т, /Н4=Л1т4=<0,0, 0,0>т, ms =A1ts=<0, 0, 0, 0>т. Согласно правилу Рг для доступной маркировки /ио активными будут переходы л и /2, поскольку для них выполнено условие (10.16).
Нечеткое срабатывание перехода tv приводит к новой маркировке т», компоненты вектора которой определяются согласно правилу Рз и равны соответственно: т|'-Л1т1=<0, 0, 0, 0>т, поскольку позиция р\еР является входной для данного перехода; m2'- Л1т2=<5, 8, 1, 2>т, поскольку позиция pi не является выходной для рассматриваемого активного перехода /г, тз‘-Л1тз=<3,5, 2, 2>т+<1,2,0,1>т= =<4, 7, 2, 3>т, поскольку позиция рз является выходной для перехода tv, т4г-Л1т4=<3, 5, 2, 2>т+<1, 2, 0, 1>т=<4, 7, 2, 3>т, поскольку позиция ри также является выходной для перехода л; т5*-Л1т5=<0, 0, 0, 0>т, поскольку позиция рзеР не является выходной для рассматриваемого разрешенного перехода t\.
Нечеткое срабатывание перехода л, также активного при маркировке то приводит к новой маркировке т». Компоненты вектора этой маркировки определяются по правилу Рз и равны соответственно: т1*=Мп=<0,0,0,0>т, т2**-Л1т2=<0,0,0,0>т, т. к. позиции pv и pi — входные для перехода ti-, т4”-Л4т4=тах{<3, 5, 2, 2>т, <5,8,1,2>т} + <0, 1,0, 1>т=<5,8,1, 2>т +<0, 1,0, 1>т= =<5,9, 1,3>т, т. к. позиция рд — выходная для перехода л; тз"-Л1тз= =<0, 0, 0, 0>т, т5°=Л1т5=<0, 0, 0,0>т остаются без изменения, т. к. рз, рз^Р не являются выходными для перехода ti.
После нечеткого срабатывания переходов /1 и ti маркировки т. и т» являются недоступными, поскольку на маркеры в выходных позициях рз и ^4 действуют временные задержки. Согласно правилу Р4, доступными будут маркировки т/и т», компоненты которых равны соответственно: mir =<0,0,0,0>т, m21' = =<5,8,1, 2>т, тз' =<5,9, 2,3>т, т4*'=<6,11,3,4>т, ms' = <0,0,0,0>т и mv“=<0,0,0,0>т, mi"=<0, 0,0, 0>т, тз"'=<0, 0, 0, 0>т, т^=<1, 13, 2, 4>т, тз* = <0, 0, 0, 0>т.
Рассматривая маркировки т, и т« в качестве доступных, можно заметить, что при маркировке т» активным будет единственный переход 1з, а при маркировке т№ активных переходов в данной НВСП нет. Закончить рассмотрение этого примера изменения маркировок предлагается читателям самостоятельно в качестве упражнения.
Анализ данного примера показывает, что для НВСП Сртт можно определить отношения непосредственной достижимости и достижимости маркировок.
Непосредственная достижимость маркировок. Маркировка пн НВСП Сртт= (TV, пю, zt, st) непосредственно достижима из маркировки т (непосредственно следует за маркировкой т) этой же НСП, если маркировка пи получается в результате нечеткого срабатывания некоторого активного при т перехода tke Т и является доступной для активности других переходов. Отношение непосредственного следования маркировок НВСП Сртт будем обозначать через: m-Q^->mv, гдет и т,— векторы соответствующих маркировок.
Достижимость маркировок. Маркировкат» НВСП Cptt= (N, пю, zt, st) называется достижимой из маркировки т этой же НСП, если существует конечная упорядоченная последовательность маркировок Мк= <пп, тг,..., тч>, где пи=т, т^т,,., и соответствующая ей конечная упорядоченная последовательность переходов nz=<Zi, /2,..., tq-i>, такие, что любая пара соседних маркировок в Мк удовлетворяет отношению непосредственного следования маркировок: mj-Vt^-^mj*! (V/e{l, 2,..., <7—1}). Отношение достижимости для НВСП Сртт будем обозначать через /и-(л,)->/»»,.
Для НВСП Сртт (рис. 10.8) справедливы соотношения: /??о(п)>пи и пю-Дт^-ып*.
Как и ранее, через /Д/н) будем обозначать множество маркировок, достижимых из некоторой фиксированной маркировки т для заданной НВСП Сртт = = (7V, пю, zt, st), т. е. /Д/л) = ^и | (3 л,) /и-(л,)-»/ин.}.
Множество достижимых маркировок НВСП Сртт. Множество D(mo) будем называть множеством достижимых маркировок для НСП Сг = ЦЧ, то) или просто — множеством достижимости НСП Сь
Диаграммой достижимых маркировок (графом достижимости) НВСП Сртт будем называть ориентированный граф D^V, Е, у), где K={vi, V2,...,r9} — множество вершин графа, которое соответствует множеству достижимых маркировок D(/«o); Е=^еу) (Vvf, VjG Г)} — множество дуг, которое соответствует отношению непосредственной достижимости маркировок НВСП Сртт; у: Е->Т — отображение, помечающее каждую дугу данного графа переходом, нечеткое срабатывание которого обеспечивает выполнение соответствующего отношения непосредственной достижимости для рассматриваемой пары маркировок.
Свойства нечетких сетей Петри
Проведение исследований с использованием нечетких сетей Петри также предполагает установление целого ряда конкретных свойств моделей с последующей интерпретацией полученных результатов применительно к решаемой задаче и проблемной области. Ниже приводятся определения только тех из основных динамических свойств НСП рассмотренных подклассов, которые допускают обобщение аналогичных свойств базового формализма классических СП.
Ограниченность позиций. Позицияр^РНСП Vr = (W.Mo) называется k-ограниченной, если для любой достижимой маркировки Ме£)(Мо) выполняется
условие: max {/nJ /?/у>0}<^-1 для некоторого фиксированного значения Л^е{1, 2, 3,...}. Здесь максимум берется по всем компонентам вектора пи, соответствующего /-ый строке матрицы достижимой маркировки М.
НСП Vr = (N, Мо) называется k-ограниченной, если все позиции множества Р являются ^-ограниченными.
Безопасность позиций. 1-ограниченная позиция НСП Vf = (У, Мо) называется безопасной позицией. 1-ограниченная НСП Vf = ^N, Мо) называется безопасной НСП.
Устойчивость переходов. Переход tj НСП Vr (а также НСПСги НВСП Сртт) называется устойчивым, если этот переход ^ остается активным при срабатывании любого другого активного при этой же маркировке перехода tr НСП называется устойчивой, если все ее переходы являются устойчивыми.
Уровни активности переходов НСП. Пусть задана НСП Vr (НСП Cf или НВСП Срт1).
□ Переход ?,е ^обладает активностью уровня 0 и называется пассивным или мертвым, если не существует ни одной достижимой в этой НСП маркировки, при которой этот переход был бы активным.
□ Переход 1;е Тобладает активностью уровня 1 и называется потенциально активным или живым, если существует достижимая в этой НСП маркировка, при которой этот переход является активным.
□ Переход t^Tобладает активностью уровня 2, если для любого натурального 5е/Ув этой НСП существует последовательность срабатываемых переходов лА, в которой /, присутствует по крайней мере s раз.
□ Переход t^T обладает активностью уровня 3, если в этой НСП существует последовательность срабатываемых переходов лА., в которой переход t, присутствует неограниченное число раз.
□ Переход t^T обладает активностью уровня 4 и называется активным или живым, если для любой достижимой в этой НСП маркировки существует последовательность срабатываемых переходов лд, так что /, является активным при некоторой другой достижимой в этой НСП маркировке, получаемой в результате последовательного срабатывания переходов из лА.
□ Переход /,е Т называется потенциально мертвым, если существует некоторая достижимая в этой НСП маркировка, такая что при любой достижимой из данной маркировки переход /, не является активным.
Рассматриваемая НСП обладает активностью уровня к, где к^ {0,1,2.3,4], если все ее переходы обладают активностью уровня к.
Тупиковая маркировка. Достижимая в НСП маркировка называется I,-тупиковой G,gT), если переход t, потенциально мертвый для данной маркировки. Если рассматриваемая достижимая в этой НСП маркировка /,-тупиковая для всех переходов z, g Т, то она называется тупиковой.
При моделировании процессов функционирования дискретных динамических систем с использованием НСП рассмотренных подклассов также могут быть сформулированы некоторые задачи, аналогичные задачам базового формализма СП. Так, например, задача достижимости маркировки в НСП состоит в установлении отношения достижимости некоторой заданной маркировки из начальной маркировки для рассматриваемой НСП.
Классификация нечетких сетей Петри
Ниже представлены основы теории математических структур СП с неопределенностью и схема порождения конкретных подклассов НСП, использующие понятие математической структуры пространств с нечеткой мерой. Дополнительное включение в схему порождения классов математических структур СП с неопределенностью концепции нечеткой меры позволяет существенно обогатить получаемые при этом модели НСП, увеличить их моделирующие способности и повысить их адекватность при решении практических задач. Полученная в результате классификация НСП фиксирует основные компоненты соответствующих моделей и позволяет систематизировать представление достаточно широкого класса математических структур НСП на базе единой аксиоматики.
При этом в основу систематизации классов СП с неопределенностью, включая НСП и НВСП, положена концепция порождения конкретных математических структур детерминированных СП путем введения в их компоненты различных видов неопределенности.
Для иллюстрации этой идеи рассмотрим схему порождения различных классов СП с неопределенностью, образуемых из базовой математической структуры класса временных СП (ВСП), которая определяется как <Срт, Р>. Здесь Срт = ^N, то, z, s) — базовый формализм ВСП, в котором:
N = (Р, Т, I, О) — структура ВСП Срт, которая аналогична структуре обобщенных СП и для которой Г. РхТ->/%— входная функция переходов; О: ТхР->/%— выходная функция переходов;
то= (пи°, т2°,...,т„°)— вектор начальной маркировки, каждый компонент тр которого представляет собой целое неотрицательное число: т^^о (V/e {1,2,..., л});'
О z = (zi, Z2,.„, z^— вектор временных задержек маркеров в позициях ВСП Срт, каждый компонент г, которого представляет собой целое неотрицательное число: z,ez% (V/g{1, 2,..., и}) (Vze{l, 2,..., zz});
s= (51,52,..., 5„)— вектор времен срабатывания разрешенных переходов ВСП Срт, каждый компонент S; которого также представляет собой целое неотрицательное число: SjeRi0 (V/e {1,2,..., u).
Р — совокупность Правил Р(Срт), определяющих процесс запуска и функционирования ВСП, которые включают в себя условия активности и срабатывания
переходов, доступности маркеров в позициях ВСП, изменения начальной и последующих маркировок, а также, возможно, другие условия.
В общем случае введение неопределенности в описание исходной математической структуры ВСП Срт = (N, mo, z, s) предполагает задание одной или нескольких структур с неопределенностью S(cd), которая может отражать стохастический, нечеткий или комбинированный характер ее проявления. Последовательно вводя описание неопределенности S(o) в отдельные компоненты базовой математической структуры (МС) <Срт, Р> можно получить следующие обобщенные классы ВСП Срт = (N, то, z, v) с неопределенностью согласно следующей Схеме порождения:
<N^to),mo, z, s, Р'>— МС ВСП с неопределенностью задания структуры (Р, Т, I, О)ЮВСП Срт, при этом Р' обозначает модификацию исходных Правил функционирования ВСП Р, отражающих содержательный смысл вводимой неопределенности в структуру ВСП;
<N, mdLto\ z, s, P’> — МС ВСП с неопределенностью задания начальной маркировки /ио. Конкретизацией данной МС являются рассмотренные выше ПСП Vr при z= 0, s= 0, где S(co) определяется аксиоматикой нечеткой меры;
<N, то, z(&), s(o), Р’> — МС ВСП с неопределенностью задания времен задержки маркеров в позициях и времен срабатывания активных переходов. Данная МС представляет собой определенный выше класс ОНВСП Сртг, применительно к которому 8(ю) определяется аксиоматикой пространства с нечеткой мерой (П, 3, G);
<N, то, z, $, Р'(со)> — МС ВСП с неопределенностью в задании Правил Р, определяющих процесс функционирования сети. Конкретизацией этой МС являются различные разновидности ВСП и СП, например, с заданием вероятностных или нечетких мер на множествах конфликтных переходов с целью исключения альтернативного ветвления на диаграмме достижимых маркировок.
Если в рассмотренной схеме порождения МС СП с неопределенностью под §(ю) понимать математическую структуру с аксиомами нечеткой математики, то полученные подобным образом обобщения базового формализма классических МС естественно принять за определения соответствующих подклассов нечетких СП, что вполне согласуется с известными в литературе формальными определениями последних.
И, наконец, рассматривая различные комбинации совместного введения описания неопределенности $(ю) в отдельные компоненты базовой МС ВСП и МС других классов детерминированных СП (например, в МС СП с разноцветными маркерами и дугами, в МС сетей предикат-переход), а также используя различные структуры $(ю) стохастической, нечеткой или комбинированной природы, можно получить определение весьма богатых в математическом отношении МС СП различных классов, анализ свойств которых далеко выходит за рамки тематики книги и может служить предметом самостоятельных исследований.
Взаимосвязь различных подклассов нечетких сетей Петри, которые могут быть получены с использованием предложенной выше схемы порождения МС СП с неопределенностью, представлена на рис. 10.9 в форме диаграммы классов языка UML. На этой диаграмме базовая математическая структура временных СП используется в качестве своеобразного шаблона, параметрами которого являются те ее компоненты, в которые вводится описание неопределенности согласно рассмотренной выше схеме порождения подклассов СП.
Рис. 10.9. Диаграмма классов нечетких сетей Петри, полученная на основе схемы порождения математических структур сетей Петри с неопределенностью
При изучении подклассов ПСП основное внимание уделяется не столько теоретическому анализу отмеченных свойств НСП, сколько анализу конкретных нечетких моделей, построенных на их основе. Ниже рассматриваются некоторые конкретные особенности построения нечетких моделей на основе подклассов НСП и интерпретация их свойств с учетом специфики той или иной проблемной области.
Использование нечетких сетей Петри для представления правил нечетких продукций
При решении прикладных задач нечеткого моделирования и выполнения процесса приближенных рассуждений используются модифицированные НСП Ct = = (N,J,k, mo), для которых правила РцРг такие же, как и рассмотренные выше для P(Cf), а правило Рз модифицировано и принимает следующий вид:
(Рз') При расчете компонентов вектора новой маркировки m как для входных, так и для выходных позиций используется единая формула (10.15).
Это правило обусловлено тем обстоятельством, что НСП Сг используют для интерпретации маркеров в позициях понятие нечеткой истинности высказывания. Значение последнего не становится равным нулю для высказываний в левой части правил продукций после их выполнения при данной интерпретации.
Одним из наиболее известных приложений НСП является их использование для наглядного представления правил нечетких продукций и выполнения на их основе вывода нечетких заключений.
В этом случае используется следующая интерпретация позиций и переходов НСП. Правило нечеткой продукции вида "ПРАВИЛО i: ЕСЛИ JR, ТО В" представляется как некоторый переход /,еТНСП (N,f, X, mo), при этом условию JR этого правила соответствует входная позиция р^Р этого перехода 1Ь а заключению — выходная позиция рк^Р этого перехода t; (рис. 10.10, а).
Если условие правила нечеткой продукции состоит из нескольких подусловий, соединенных операцией нечеткой конъюнкции: JR= jRiajR2a...aJR,, то все эти подусловия представляются как входные позиции соответствующего перехода (рис. 10.10, б для случая /=3).
Если заключение правила нечеткой продукции состоит из нескольких подзаключений, соединенных операцией нечеткой конъюнкции: В- В^аВта-лВ,, то все эти подзаключения также представляются как выходные позиции соответствующего перехода (рис. 10.10, в для случая /=3).
Более сложный случай соответствует дизъюнкции подусловий и подзаключений. Так, если условие правила нечеткой продукции состоит из нескольких подусловий, соединенных операцией нечеткой дизъюнкции: JR= jRivjR2V...vjR7, то все эти подусловия представляются как входные позиции отдельных переходов /, для zg{1,2,...,/} (рис. 10.10, г для случая /=3).
Если же заключение правила нечеткой продукции состоит из нескольких подзаключений, соединенных операцией нечеткой дизъюнкции: В= BwBiv...vBh то все эти подзаключения представляются как выходные позиции отдельных переходов z7 дл.т zg {1, 2,...,/} (рис. 10.10, д для случая /=3).
Рис. 10.10. Фрагменты нечетких сетей Петри для представления различных вариантов правил нечетких продукций
Таким образом, любое правило нечеткой продукции может быть представлено в виде фрагмента НСП. При этом веса или коэффициенты определенности F, правил нечетких продукций преобразуются в вектор/ = (/i,/?,..., /,) значений функции принадлежности нечеткого срабатывания переходов, а степеням истинности подусловий правил соответствуют значения компонентов начальной маркировки лю=(/«1°, /м20,..., т„°), которая в этом случае описывает текущую ситуацию моделируемой проблемной области.
Примечание
Следует заметить, что в дополнение к базовому формализму правил нечетких продукций в НСП можно учесть возможность активизации каждого из правил заданием вектора X=(Xi, Х2,-., Хи), компоненты которого определяют значения порога срабатывания переходов.
Пример 10.4. Представим базу правил нечетких продукций из примера 6.5 в форме модифицированной НСП Сг = (2V,/, X, то) и рассмотрим пример вывода заключений с ее использованием на основе Правил P(Cf'). Напомним, что в качестве системы нечетких продукций используется следующее множество правил нечетких продукций:
□ ПРАВИЛО_1: ЕСЛИ "Гражданин не является высокопоставленным чиновником", ТО "он подвергается таможенному досмотру" (Fi=1.0)
ПРАВИЛО_2: ЕСЛИ "Гражданин является высокопоставленным чиновником", ТО "он не подвергается таможенному досмотру" (Гг=0.9)
ПРАВИЛО_3: ЕСЛИ "Гражданин не подвергается таможенному досмотру", ТО "не исключается возможность провоза наркотиков" (Гз=0.8)
ПРАВИЛО_4: ЕСЛИ "Количество граждан, проходящих таможенный досмотр, велико", ТО "контролер испытывает чувство усталости" (F4=0.6)
ПРАВИЛО_5: ЕСЛИ "Контролер испытывает чувство усталости", ТО "не исключается возможность провоза наркотиков" (Fs=0.7)
ПРАВИЛО_6: ЕСЛИ "Гражданин подвергается таможенному досмотру" И "в отношении этого гражданина имеется агентурная информация", ТО "исключается возможность провоза наркотиков" (Гб=0.95)
ПРАВИЛО_7: ЕСЛИ "Гражданин подвергается таможенному досмотру" И "контролер использует новейшие технические средства", ТО "исключается возможность провоза наркотиков" (F?=0.95)
Этой системе правил нечетких продукций соответствует НСП Сг ~{N,f, X, /ио), структура которой изображена на рис. 10.11. При этом все компоненты вектора X принимаются равными нулю.
Рис. 10.11. Структура нечеткой сети Петри для представления базы правил нечетких продукций примера 10.4
Для удобства визуализации этой НСП принята следующая интерпретация позиций, каждая из которых соответствует отдельному нечеткому высказыванию:
pi — "В отношении гражданина имеется агентурная информация";
pi— "Гражданин не является высокопоставленным чиновником";
рз — "Контролер использует новейшие технические средства";
рц — "Гражданин является высокопоставленным чиновником";
ps — "Количество граждан, проходящих таможенный досмотр, велико"
рь — "Гражданин подвергается таможенному досмотру";
pi — "Гражданин не подвергается таможенному досмотру";
ре — "Контролер испытывает чувство усталости";
/29 — "Исключается возможность провоза наркотиков";
рю — "Не исключается возможность провоза наркотиков".
При этом каждый из переходов соответствует отдельному правилу нечеткой продукции: h — правилу 1, /2 — правилу 2, /з — правилу 4, /4 — правилу 6, ts — правилу 7, /6 — правилу 3,1т — правилу 5.
Как и ранее, предположим, что на таможенном пункте контроля сложилась следующая текущая ситуация. Среди граждан, въезжающих в страну, находятся высокопоставленные чиновники (Т=0.2). Количество граждан, проходящих таможенный досмотр, невелико (Т=0.1). Таможенный пункт контроля оснащен новейшими техническими средствами (Т=0.8). Какая-либо предварительная информация о наличии наркотиков у отдельных граждан отсутствует (Т=0.9). Здесь в скобках указаны степени истинности соответствующих нечетких высказываний. Тем самым задается вектор начальной маркировки: /»о=(0.1,0.8, 0.8, 0.2, 0.9, 0, 0, 0, 0, 0). Этой ситуации соответствует НСП, изображенная на рис. 10.12.
Рис. 10.12. Нечеткая сеть Петри, представляющая рассматриваемую текущую ситуацию на таможенном пункте контроля
Формально задача заключается в том, чтобы, используя построенную НСП и модифицированные Правила ее функционирования P(Cf'), оценить наличие одного маркера в позицияхрч и рю.
С этой целью последовательно рассмотрим все активные переходы и результаты их нечеткого срабатывания. На первом шаге решения этой задачи следует определить активные переходы в НСП.
Срабатывание активного при начальной маркировке перехода h приводит к изменению маркировки в позиции рь, которая становится равной /Пб=0.8. Сраба-
тывание активного при начальной маркировке перехода /2 приводит к изменению маркировки в позиции pi, которая становится равной mi=0.1. Срабатывание активного при начальной маркировке перехода 1з приводит к изменению маркировки в позиции рв, которая становится равной »i8=0.6.
Новые значения маркеров в этих позициях приводят к активности переходов tt-h. При этом срабатывание активного перехода 14 приводит к изменению маркировки в позиции рч, которая становится равной №9=0.1. Срабатывание активного перехода 1$ приводит к новому изменению маркировки в позиции рч, которая становится равной №9=0.8.
Срабатывание активного перехода tt> приводит к изменению маркировки в позиции р\о, которая становится равной №ю=0.2. Наконец, срабатывание активного перехода /б приводит к новому изменению маркировки в позиции рю, которая становится равной №ю=0.6. Поскольку дальнейшие срабатывания активных переходов не изменяют маркировку: №=(0.1,0.8, 0.8, 0.2, 0.9, 0.8, 0.2, 0.6, 0.8, 0.6), то на этом процесс анализа функционирования данной НСП можно закончить.
Таким образом, для рассматриваемой ситуации степень истинности нечеткого высказывания "исключается возможность провоза наркотиков" равна значению №9=0.8, а степень истинности нечеткого высказывания "не исключается возможность провоза наркотиков" равна значению №ю= 0.6.
Анализ этих значений истинности показывает, что они в точности совпадают со значениями степеней истинности соответствующих высказываний, полученных при решении задачи методом прямого вывода заключений в примере 6.5. Несомненным достоинством представления базы правил в форме НСП и последующее решение задач вывода заключений на их основе является наглядность и визуализация всех промежуточных результатов.
Примечание
Можно предложить в качестве упражнения получить нечеткие заключения для НСП с той же структурой, но с использованием измененных Правил функционирования НСП, отражающих возможность применения других методов нечеткой композиции (6.23)—(6.28), а полученные результаты сравнить.
В заключение следует отметить, что решение практических задач нечеткого вывода в системах нечетких продукций характеризуется высокой трудоемкостью выполнения численных расчетов. Поэтому в таких случаях не вызывает сомнения необходимость использования для этой цели специальных программных инструментариев и программных средств, позволяющих существенно упростить создание и анализ соответствующих нечетких моделей. Далее, в частях II и III, детально рассматриваются особенности разработки и выполнения исследований с нечеткими моделями в двух программных средах— MATLAB и fuzzyTECH, которые обладают всеми необходимыми возможностями реализации систем нечеткого вывода и визуализации результатов нечеткого моделирования.
ЧАСТЬ II
Нечеткое моделированиев СРЕДЕ MATLAB
Система MATLAB, разработанная и постоянно обновляемая компанией MathWorks Inc. (США), является одной из наиболее известных систем компьютерной математики. К последним принято относить специализированные компьютерные программы, которые предназначены для решения широкого класса задач, связанных с тем или иным разделом теоретической или прикладной математики. При этом отдельные классы задач, которые позволяет решать система MATLAB, имеют весьма условное отношение к классической математике, поскольку в настоящее время представляют собой узко специализированные области научных и прикладных исследований.
Использование системы MATLAB и связанных с ней методик моделирования и процедур выполнения численных расчетов стало стандартом de facto для широчайшего круга специалистов из самых различных областей науки, техники, экономики и образования. Содержащая специальные средства нечеткого моделирования, система MATLAB позволяет выполнять весь комплекс исследований по разработке и применению нечетких моделей. Именно по этим причинам система MATLAB была выбрана в качестве одного из программных средств, в рамках которых можно реализовать рассмотренные ранее теоретические концепции нечетких множеств и процедуры нечеткого вывода.
Глава 11
Общая характеристика программы MATLAB
Система MATLAB (сокращение от англ. MATrix LABoratory— матричная лаборатория) представляет собой интегрированную программную среду для выполнения численных расчетов, компьютерного моделирования и вычислительных экспериментов, охватывающих в том или ином объеме различные области классической и современной математики, а также широчайший спектр инженерных приложений. Архитектурно система MATLAB состоит из базовой программы и нескольких десятков так называемых пакетов расширения, которые в своей совокупности обеспечивают исключительно широкий диапазон решаемых задач. Интеграция всех этих средств в единой рабочей среде обеспечивает необходимую гибкость использования сотен встроенных функций, реализующих разнообразные математические процедуры и вычислительные алгоритмы.
Нечеткое моделирование в среде MATLAB осуществляется с использованием пакета расширения Fuzzy Logic Toolbox, в котором реализованы десятки функций нечеткой логики и нечеткого вывода. Перечень этих функций с их краткой характеристикой и примерами использования приводится в приложении 3.
Примечание
В настоящей книге рассматривается система MATLAB версии 6.1 (Release 12.1), которая является последней на момент написания книги. Практически вся информация о нечетком моделировании с использованием пакета Fuzzy Logic Toolbox оказывается справедливой для предыдущих версий системы MATLAB 6.0 (Release 12) и 5.3 (Release 11).
Основные элементы системы MATLAB
Прежде всего, необходимо сказать несколько слов о системных требованиях к компьютеру. Компьютер, на который предполагается установить систему MATLAB 6.1, должен удовлетворять следующим системным требованиям.
Процессор Pentium, Pentium Pro, Pentium II, Pentium III, Pentium IV или AMD Athlon.
Операционная система MS Windows 95/98/МЕ, MS Windows 4.0 (SP 5/6a) MS Windows 2000 (для ОС UNIX/Linux имеется специальный дистрибутив, который здесь не рассматривается).
Оперативная память (RAM) минимум 64 Мбайт, рекомендуется 128 Мбайт.
О Дисковод компакт-дисков CD-ROM (необходим для инсталляции).
Свободное место на жестком диске, необходимое для установки системы MATLAB 6.1, определяется количеством устанавливаемых пакетов расширений и документацией. Вариант установки всех пакетов и полной документации к ним может потребовать до 1.5 Гбайт. В процессе инсталляции при выборе пакетов расширений пользователю выдается информация о необходимом свободном месте на жестком диске.
О 8-битовый графический адаптер и монитор, поддерживающий не менее 256 цветов.
Один из браузеров Интернета для просмотра документации в формате HTML и доступа к сайту компании MathWorks по адресу: www.mathworks.com.
О Программа Adobe Acrobat Reader для просмотра документации в формате PDF.'
При установке отдельных пакетов расширений могут потребоваться следующие дополнительные средства.
Графический адаптер с ускорителем и звуковая карта.
Текстовый процессор MS Word из MS Office 95/97/2000 для работы с пакетом расширения MATLAB Notebook.
О Поддержка протокола TCP/IP для работы в сети.
Для программирования в среде MATLAB и разработки собственных МЕХ- файлов могут оказаться необходимыми следующие среды разработки программ:
Compaq Visual Fortran 5.0/6.1
MS Visual C++5.0/6.0
Borland C/C++5.0/5.02
О Borland C++ Builder 3.0/4.0/5.0
О Lee 2.4 (поставляется c MATLAB)
Особенности инсталляции системы MATLAB
на компьютер пользователя
Для инсталляции системы MATLAB 6.1 необходимо использовать 2 компактдиска, первый из которых содержит дистрибутив с программами и пакетами расширения, а второй— обширную документацию по всем разделам системы MATLAB в форматах HTML и PDF.
Процесс инсталляции системы MATLAB достаточно традиционен для ОС MS Windows 9л/2000 и включает в себя следующие этапы:
Установить компакт-диск с дистрибутивом программы в привод CD-ROM и выполнить щелчок на кнопке с предложением начать инсталляцию.
Ввести пароль персональной лицензии (PLP, Personal License Password).
Ознакомиться с Соглашением о лицензировании данного программного обеспечения.
Ввести свое имя и название компании.
Выбрать устанавливаемые компоненты, пакеты расширения и состав документации из числа доступных для данной лицензии.
После выполнения последнего этапа начинается собственно установка системы MATLAB и документации на компьютер пользователя. При установке документации необходимо вставить второй компакт-диск в привод CD-ROM, что будет предложено сделать пользователю после окончания инсталляции исполняемых модулей программы. Установка всей системы MATLAB и документации осуществляется в отдельную папку (каталог) на жестком диске (по умолчанию — C:\MATLAB6pl).'
Примечание
Имеются сообщения о том, что версии MATLAB 6.0 и ниже не работают на ПК с процессором Intel Pentium IV. Автор склонен не согласиться с этими мнениями, поскольку все описанные в книге операции и действия проверялись, в том числе, для системы MATLAB версии 5.3, установленной на ПК с процессором Intel Pentium IV. Возможно эта проблема может быть связана с установкой на один ПК нескольких версий MATLAB. В последнем случае для корректной работы каждой из них необходимо использовать отдельный файл autoexec.bat, в котором должны быть прописаны пути запускаемой версии MATLAB (либо вручную отредактировать этот файл до перезагрузки ОС MS Windows).
Запуск системы MATLAB и элементы ее графического интерфейса
После инсталляции в главном меню ОС MS Windows 9л72000 появляется новая программная группа с именем MATLAB 6.I. Для запуска системы MATLAB 6.1 необходимо в этой программной группе выбрать название программы "MATLAB 6.1", в результате чего на экране монитора появится рабочий интерфейс программы MATLAB 6.1 (рис. 11.1). При этом каждый отдельный запуск системы MATLAB называется сеансом или сессией работы с ней.
В верхней части окна MATLAB расположена строка заголовка, в которой указывается название системы. В правой части строки заголовка находятся стандартные кнопки управления графическим окном программы.
Рис. 11.1. Общий вид графического интерфейса системы MATLAB 6.1
Под строкой заголовка находится строка главного меню системы MATLAB и строка панели инструментов (рис. 11.2). Выбор той или иной операции меню выполняется стандартным для всех приложений MS Windows образом. Панель инструментов содержит кнопки, позволяющие осуществить доступ к наиболее часто используемым командам и операциям.
gle ■ Edit yiew We& Window це!р .'" . * * 7‘Л'
□ »j, ш © NT Гн j'*W^^^J<QB||p»et*yr|C:WATLAB6p1\work3?Й
Рис. 11.2. Главное меню и панель инструментов системы MATLAB 6.1
Эсновную часть окна системы MATLAB занимает окно команд (рис. 11.3), кото- эое предназначено для взаимодействия с системой в режиме командной строки. В последних версиях MATLAB 6.0/6.1 режим командной строки (режим команд) тродолжает оставаться основным для многих практических задач. Однако сле- хует признать, что с каждой новой версией увеличивается количество специаль- чых графических средств, позволяющих реализовать интерактивное взаимодей- :твие пользователя с программой в более удобной и наглядной форме.
Окно команд можно "открепить" от остальных окон программы, нажав соответствующую кнопку справа вверху.
Рис. 11.3. Окно команд системы MATLAB 6.1
Окно команд используется для ввода команд и функций с необходимыми аргументами, задания значений переменным и отображения результатов выполненных расчетов. По своему назначению окно команд аналогично режиму командной строки операционных систем UNIX/Linux, поскольку обладает возможностями прямого вызова огромного числа функций MATLAB. Этот факт отражает историю появления первых версий системы MATLAB, в которых окно команд было единственным средством взаимодействия с системой.
С появлением новых версий MATLAB были разработаны специальные графические интерфейсы пользователя (GUI — Graphic User Interface), ориентированные на решение отдельных классов задач. Не является исключением и пакет Fuzzy Logic Toolbox, который сейчас содержит около 10 самостоятельных GUI. Тем не менее, окно команд продолжает играть ключевую роль при работе с системой MATLAB, поскольку обеспечивает полный контроль над процессом решения тех или иных задач. Более того, все простейшие операции по заданию исходных зна-
чений расчетных переменных и выполнению большого числа специальных математических функций по-прежнему осуществляются в окне команд.
Для гибкого и полного использования возможностей системы MATLAB следует знать функциональные возможности окна команд. Говоря о процессе работы в данном окне, будем называть этот режим — режимом командной строки или сокращенно — режимом команд. Напротив, использование специальных графических интерфейсов GUI для решения отдельных классов задач будем называть графическим или интерактивным режимом работы.
Продолжая знакомство с рабочим интерфейсом системы MATLAB, отметим две вкладки, расположенные в левой части главного окна системы MATLAB. Одна из них представляет собой панель доступа к компонентам системы (Launch Pad), а другая — окно просмотра рабочей области системы (Workspace).
Панель доступа к компонентам системы (рис. Н.4) организована в стиле обычного Проводника и предназначена для быстрого вызова справки по выбранному разделу MATLAB, демонстрационных примеров, специальных графических средств и получения дополнительной информации из Интернета. Выбор необходимого действия осуществляется после нажатия правой кнопки мыши, установленной на том или ином компоненте системы. При этом можно также выбрать режим редактирования исходных файлов компонентов или режим их обновления через Интернет.
Launch Pad
^ ^ MATL AB j
SH^l Fuzzy Logic Toolbox
d-t^X Neural Network Toolbox
ф- ^ Simulink
Й-1^ SystenBuild to Simulink Translate
f: Ж Staunch Pati> [Л^^s?: acef: Ж Staunch Pati> [Л^^s?: ace
f: Ж Staunch Pati> [Л^^s?: ace
f: Ж Staunch Pati> [Л^^s?: ace
Рис. 11.4. Окно доступа к компонентам системы MATLAB
Окно просмотра рабочей области системы MATLAB (рис. II.5) позволяет визуализировать содержимое рабочей области и, что не менее важно, редактировать значения отдельных переменных (элементов массивов и структур). При этом следует помнить о важнейшей особенности системы MATLAB — все объявленные и заданные переменные система рассматривает как матрицы или
массивы. Поэтому в окне просмотра рабочей области указывается не только имя переменной, но и ее размерность как матрицы, занимаемый ею размер в байтах и тип этой переменной.
Рис. 11.5. Окно просмотра рабочей области системы MATLAB
Для редактирования значений переменных необходимо дважды щелкнуть на строке с выделенной переменной, в результате чего будет открыто диалоговое окно со значениями этой переменной в отдельных ячейках. Окно просмотра рабочей области позволяет также выполнять целый ряд других операций: удалить выбранную переменную из рабочей области, очистить всю рабочую область, загрузить переменные в рабочую область из внешнего файла или сохранить значения переменных рабочей области во внешнем файле. Все эти операции становятся доступными в контекстном меню, которое может быть вызвано нажатием правой кнопки мыши, установленной на выделенной переменной в этом окне.
В правой нижней части главного окна системы MATLAB расположены две вкладки, одна из которых содержит окно истории команд (Command History), а другая — окно текущего каталога или папки системы (Current Directory).
Окно истории команд (рис. 11.6) позволяет визуализировать все команды, которые были введены пользователем не только в текущем сеансе работы с системой, но и в предшествующих сеансах. Если необходимо выполнить одну из ранее введенных команд, то для этого достаточно дважды щелкнуть на ее имени в активном окне истории команд. После этого выбранная команда последует на исполнение.
В случае необходимости предварительно отредактировать одну из введенных ранее команд можно скопировать в буфер выбранную в окне истории команду и потом вставить ее в окно команд, используя для этой цели правую кнопку мыши. Аналогичный результат может быть достигнут и простым "перетаскиванием" с помощью мыши выбранной команды в окно команд.
Рис. 11.6. Окно истории команд системы MATLAB
Заметим, что просмотреть ранее выполненные команды можно находясь в окне команд. Для этого достаточно использовать клавиши клавиатуры со стрелками <?> и <i>.
Рис. 11.7. Окно текущего каталога системы MATLAB
Окно текущего каталога (рис. I L7) отображает файлы выбранного каталога системы MATLAB, который при необходимости можно изменить. При этом следует помнить, что файлы с расширением m, dat, fis являются обычными текстовыми файлами, которые можно просматривать и редактировать в любом ASCII-
редакторе. Однако более удобным для этой цели является встроенный редактор системы MATLAB, так называемый редактор-отладчик m-файлов. Этот редактор открывается после двойного щелчка на имени любого m-файла, при этом в него оказывается загруженным выбранный файл. Более подробно работа с редактором m-файлов рассматривается в главе 14.
В состав системы MATLAB входит встроенная справочная система и обширная документация в форматах HTML и PDF, которые содержат необходимую информацию по системе в целом, ее отдельным функциям и многочисленным пакетам расширения.
Встроенная справочная система и документация, поставляемая с системой MATLAB
Для просмотра документации по системе MATLAB (в случае ее инсталляции) необходимо нажать кнопку ? панели инструментов или выбрать команду меню: Help>MATLAB Help. В результате выполнения этой команды на экране появится дополнительное окно с программой просмотра справочной системы MATLAB (рис. 11.8).
Рис. 11.8. Окно справочной системы MATLAB
В левой части этого окна содержится панель навигации с несколькими вкладками, которые позволяют просматривать различные разделы документации, осуществлять поиск информации по ключевым словам и запоминать ранее просмотренные разделы. Следует отметить, что информация здесь организована по иерархическому принципу.
В правой части окна справочной системы MATLAB расположено основное окно просмотра документации, организованное по технологии гипертекста. Соответствующие ссылки на другие разделы выделены традиционным образом: синим цветом и подчеркнуты. При необходимости здесь можно выбрать вариант документации в формате PDF или распечатать интересуемый раздел справки на принтере. История просмотра документации сохраняется, для ее анализа можно воспользоваться соответствующими кнопками.
Весьма удобной является вкладка Index, которая позволяет осуществлять поиск информации по ключевым словам (рис. 11.9). Для этого следует ввести ключевое слово в поле ввода Search index for. В процессе ввода символов ключевого слова система MATLAB переходит к справке по первому подходящему слову, которое следует в алфавитном порядке после введенных символов.
Рис. 11.9. Окно справочной системы MATLAB с открытой вкладкой поиска по ключевым словам
В Дополнение к документации практически все функции системы MATLAB оснащены собственной справочной информацией. Если необходимо получить такую справочную информацию по отдельной функции, имя которой известно, то
в окне команд достаточно набрать слово "help" с именем этой функции. После выполнения этой команды в окне команд отобразится справочная информация по выбранной функции (рис. 11.10).
Рис. 11.10. Окно команд со справочной информацией по выбранной функции fem
В окне команд также доступна справочная информация по функциям целого раздела или пакета расширения системы MATLAB. Для этого следует после имени команды help набрать имя интересующего раздела или пакета расширения, установленного в системе MATLAB. После выполнения этой команды в окне команд отобразится краткая информация о составе и назначении всех функций выбранного раздела.
Основные приемы работы в системе MATLAB
Прежде всего рассмотрим операции главного меню системы MATLAB и назначение отдельных кнопок панели инструментов. После этого остановимся на основных командах, которые могут оказаться необходимыми в процессе работы в режиме командной строки.
Назначение операций главного меню
fvHjleEigure «• Model fiUI ■■fvHjleEigure «• Model fiUI ■■Окно системы MATLAB имеет главное меню, которое позволяет пользователю вызывать другие графические средства работы с системой MATLAB, загружать и сохранять информацию во внешних файлах, изменять внешний вид элементов графического интерфейса, вызывать справочную информацию и т. д. Рассмотрим назначение отдельных пунктов главного меню системы MATLAB.
fvHjle
Eigure «• Model fiUI ■■
fvHjle
Eigure «• Model fiUI ■■
5peruе Drl+O
Close Command Window Ctrt+W
Import Data
Sweiyprkspacr As n ." Ctri+S
Set Рав,.•; у.-
Preferences... ,
Bnnt- ’,
Print Selection . :-.
^CtV-zzy^uzzy^antiscb.m - 2 C:\. B8p 'wcr^crane.fis S^y^zz^adtK/aUL^m 4 5^ ork\condi4cner.fis *
Exit MAT! ABCtrl*O
Рис. 11.11. Операции пункта меню File главного меню
О Пункт меню File (Файл) главного меню содержит следующие операции (рис. I l.l I):
New— позволяет выбрать тип нового объекта системы MATLAB и содержит дополнительное вложенное подменю с подпунктами: M-file— вызов редактора-отладчика m-файлов; Figure— открытие пустого окна графиков функций; Model— открытие пустого окна для создания новой Simulink-модели; GUI — вызов редактора для разработки элементов графического интерфеса пользователя. При этом новые объекты по умолчанию имеют имя Untitled;
Open... — вызывает стандартное диалоговое окно открытия внешнего файла с диска. Если выбирается некоторый текстовый файл (например, т- файл), то выбранный файл загружается в редактор-отладчик т-файлов. Если выбирается файл Simulink-модели (файл с расширением mdl), то выбранный файл загружается в окно системы моделирования Simulink;
Close Command Window — закрывает окно команд системы MATLAB. После выполнения этой операции вместо нее появляется операция с предложением закрыть следующее окно доступа к компонентам системы: Close Launch Pad и т. д.;
Import Data... — позволяет импортировать информацию из внешних файлов различных форматов, включая графические, звуковые и мультимедиа. При этом вызывается мастер импорта данных, выполняющий предварительный просмотр изображений;
Save Workspace As...— позволяет сохранить рабочую область системы MATLAB во внешнем файле с расширением mat на диске. При этом вызывается стандартное диалоговое окно сохранения файла на диске с предложением задать имя соответствующего файла;
Set Path... — вызывает окно задания путей доступа к файлам системы MATLAB. Как правило, значения путей, установленные по умолчанию, следует изменять только в случае крайней необходимости;
Preferences... — вызывает окно настройки системы MATLAB, которое позволяет изменить шрифт и цвет отображения данных в различных окнах, а также изменить некоторые другие характеристики элементов рабочего интерфейса;
Print... — позволяет распечатать на принтере информацию о текущем документе системы MATLAB. В этом случае вызывается стандартное диалоговое окно настройки свойств печати на подключенном к данному компьютеру принтеру;
Print Selection... — позволяет распечатать на принтере информацию о выделенной части текущего документа системы MATLAB. При этом также вызывается стандартное диалоговое окно настройки свойств печати на подключенном к данному компьютеру принтеру;
секция с именами последних файлов, с которыми осуществлялась работа в системе MATLAB;
Exit MATLAB — закрывает систему MATLAB, при этом содержимое рабочей области оказывается не сохраненным, если предварительно не была выполнена соответствующая операция.
□ Пункт меню Edit (Редактирование) содержит следующие операции (рис. 11.12):
Undo — отменяет выполнение последнего действия;
Redo — отменяет выполнение последней операции Undo;
Cut— вырезает выделенный фрагмент из текущей строки окна команд и помещает его в буфер обмена;
Сору — копирует выделенный фрагмент из окна команд и помещает его в буфер обмена;
Paste — вставляет фрагмент в текущую строку окна команд из буфера обмена;
Paste Special... — вызывает мастер импорта данных, который позволяет выполнить предварительный просмотр информации, хранящейся в буфере обмена;
Select АП — позволяет выделить всю информацию окна команд текущего сеанса работы;
Delete — удаляет выделенный объект (бывает активной весьма редко);
Clear Command Window — очищает окно команд от информации текущего сеанса работы;
Clear Command History — очищает окно истории команд от информации о введенных ранее командах;
Clear Workspace— очищает рабочее пространство системы MATLAB от всей имеющейся в ней информации о переменных.
' ctri-z' ctri-zCtrl*XCtrl+'C №Ctrl+V;Ctrl*XCtrl+'C №Ctrl+V;№№
' ctri-z
' ctri-z
Ctrl*X
Ctrl+'C №Ctrl+V;
Ctrl*X
Ctrl+'C №Ctrl+V;
' Ди; ‘-
&£6РУ y;: '<':.
Baste
.Paste: Spaci&L.
^ SelectAll Qelete .
^ЙвдгСё^^
Дее/ Cbrrune nd bistoiyClear Workspace
Рис. 11.12. Операции пункта меню Edit главного меню
Пункт меню View (Вид) позволяет отображать на экране различные компоненты системы и содержит следующие операции (рис. 11.13):
Desktop Layout— позволяет настроить внешний вид графического интерфейса системы MATLAB и содержит дополнительные подпункты: Default — располагает все окна системы MATLAB по умолчанию (рис. 11.1); Command Window Only — устанавливает интерфейс для системы MATLAB, состоящий только из окна команд; Simple — устанавливает упрощенный интерфейс для системы MATLAB, состоящий из окна команд и окна истории команд; Short History — устанавливает узкое окно истории команд; Tall History— устанавливает широкое окно истории команд; Five Panel — делает видимыми на экране все 5 основных окон системы MATLAB;
Undock Command Window — позволяет открепить и сделать "плавающим" окно команд системы MATLAB;
Command Window — делает видимым/невидимым окно команд;
Command History — делает видимым/невидимым окно истории команд;
Current Directory — делает видимым/невидимым окно текущего каталога;
Workspace — делает видимым/невидимым окно просмотра рабочей области;
Launch Pad— делает видимым/невидимым окно доступа к компонентам системы MATLAB;
Help — вызывавет браузер справочной системы MATLAB;
Current Directory Filter — позволяет установить фильтры для отображения файлов текущего каталога;
Workspace View Options— позволяет отображать отдельные свойства переменных рабочей области и сортировать их по различным параметрам.
^^ZZZ^ZZZ^rJI BOS^^-"feS&do.d№igM^j^^^ZZZ^ZZZ^rJI BOS^^-"feS&do.d№igM^j^\ Desktop Layout\ Desktop Layout^^п&яи чи*., , ^Й&У Woiksp&e^^ . h: v Launch Pacd / 'T ?*’,'^^п&яи чи*., , ^Й&У Woiksp&e^^ . h: v Launch Pacd / 'T ?*’,'B^4B^4ч:.^p№ispM»1view Options «l^urrenf Djrectory Filter APч:.^p№ispM»1view Options «l^urrenf Djrectory Filter AP\ Simple\ SimpleS3S3Short History-jell History; Bve Panel -iShort History-jell History; Bve Panel -i
^^ZZZ^ZZZ^rJI BOS^^-"
feS&do.d№igM^j^
^^ZZZ^ZZZ^rJI BOS^^-"
feS&do.d№igM^j^
\ Desktop Layout
\ Desktop Layout
^^п&яи чи*., , ^Й&
У Woiksp&e^^ . h
: v Launch Pacd / 'T ?*’,'
^^п&яи чи*., , ^Й&
У Woiksp&e^^ . h
: v Launch Pacd / 'T ?*’,'
B^4
B^4
ч:.^p№ispM»1view Options «l^urrenf Djrectory Filter AP
ч:.^p№ispM»1view Options «l^urrenf Djrectory Filter AP
\ Simple
\ Simple
S3
S3
Short History-jell History; Bve Panel -i
Short History-jell History; Bve Panel -i
Рис. 11.13. Операции пункта меню View главного меню
Пункт меню Web (Интернет) вызывает установленный в операционной системе по умолчанию браузер Интернета и делает попытку соединиться с Web- сайтом компании MathWorks (в случае наличия доступа в Интернет). Выбор отдельной операции этого пункта меню определяет загрузку той или иной Web-страницы компании, предназначенной для выполнения специальных действий по дополнительной поддержке системы MATLAB или загрузке имеющихся обновлений.
□ Пункт меню Window (Окно) содержит операцию Close АП, которая позволяет закрыть все дополнительные окна с графиками, графическими редакторами и другими компонентами системы MATLAB, открытыми в текущем сеансе работы. Если дополнительные окна отсутствуют, то эта операция является недоступной. Если открыты дополнительные окна, то в этом пункте меню появляется новая строка с именем каждого из дополнительных окон, выбрав которую, можно сразу перейти в нужное окно.
Пункт меню Help (Справка) содержит следующие операции (рис. 11.14):
Full Product Family Help— вызывает браузер (программу просмотра) справочной системы, установленный на начало знакомства с MATLAB (см. рис. 11.8);
MATLAB Help — вызывает браузер справочной системы, установленный на раздел общей справки о MATLAB;
Using the Desktop— вызывает браузер справочной системы, установленный на раздел справки об элементах и окнах рабочего интерфейса системы MATLAB;
Using the Command Window— вызывает браузер справочной системы, установленный на раздел справки об окне команд системы MATLAB;
Demos— вызывает окно с демонстрационными примерами, поставляемыми с системой MATLAB;
About MATLAB — отображает информацию о текущей рабочей версии системы MATLAB.
Full Product Family Help
MATIAS Help «
Using the .Desktop
Using the Command Window
Demps
AboutMATLAE
Рис. 11.14. Операции пункта меню Help главного меню
Назначение операций панели инструментов
Панель инструментов содержит набор кнопок, которые дублируют наиболее часто выполняемые операции главного меню. Рассмотрим назначение отдельных кнопок панели инструментов (табл. 11.1).
Таблица 11.1. Назначение кнопок панели инструментов
Графическое Всплывающая Назначение кнопки изображение подсказка
0^0^New M-FileNew M-FileOpen FileOpen FileВызывает редактор-отладчик m-файлов с пустым окном редактирования и именем файла Untitled, заданным по умолчанию
0^
0^
New M-File
New M-File
Open File
Open File
Вызывает стандартное диалоговое окно открытия внешнего файла с диска. Если выбирается некоторый текстовый файл (например, m-файл), то выбранный файл загружается в редактор-отладчик т- файлов. Если выбирается файл Simulink-модели (файл с расширением mdl), то выбранный файл загружается в окно системы моделирования Simulink
Таблица 11.1 (окончание)
Графическое Всплывающая Назначение кнопки изображение подсказка
Cut
Вырезает выделенный фрагмент из текущей строки окна команд и помещает его в буфер обмена
Copy
Копирует выделенный фрагмент из окна команд и помещает его в буфер обмена
ж
Paste
Вставляет фрагмент в текущую строку окна команд из буфера обмена
Undo
Отменяет выполнение последнего действия
<*
Redo
Отменяет выполнение последней операции Undo
Simulink
Вызывает окно библиотеки системы моделирования Simulink
Help
Вызывает окно справочной системы MATLAB
Current Directory
Current Directory
Позволяет установить текущий каталог (папку), содержимое которого будет отображаться в диалоговых окнах открытия и сохранения файлов на диске
Основные приемы работы в окне команд
Как уже отмечалось ранее, окно команд (см. рис. 11.3) используется для ввода команд и функций с необходимыми аргументами, задания значений отдельным переменным и отображения результатов выполненных расчетов.
При этом используются следующие основные правила работы. Ввод команды осуществляется набором соответствующих символов команды в отдельной строке активного окна команд после символов приглашения ». Запуск команды на исполнение после ее набора осуществляется нажатием клавиши <Enter>. Аналогично набираются и отдельные значения переменных, при этом после имени переменной необходимо указать знак равенства =, который в системе MATLAB играет роль знака присваивания.
Следует отметить, что символы верхнего и нижнего регистров воспринимаются системой MATLAB как различные. При вводе произвольной комбинации символов система MATLAB вначале пытается сопоставить эти символы с именем одной из переменных рабочей области. Если переменной с подобным именем в рабочем пространстве нет, то система MATLAB сопоставляет символы с именем одной из встроенных функций. Если и функция с таким именем отсутствует, то в окно команд будет выведено сообщение об ошибке.
Примечание
Окно команд системы MATLAB воспринимает ввод символов с клавиатуры в основной кодировке ASCII (англоязычный регистр или латиница). Что же касается использования символов дополнительной кодировки (кириллицы), то при попытке ввести русскоязычные символы в качестве строк или комментариев могут возникнуть проблемы, зависящие от версии MATLAB и операционной системы. В частности, версия MATLAB 6.1, установленная в среде MS Windows 98, не воспринимает строчную букву "я", а при вводе в окно команд строчной буквы "с" происходит самопроизвольный переход к следующей строке без выполнения набранного фрагмента и без его сохранения. В то же время в версии MATLAB 5.3 эти проблемы отсутствуют. Наконец, на диаграммах и графиках может неверно отображаться символ подчеркивания "_" и некоторые другие символы, набранные в русскоязычном регистре. Во всех подобных случаях следует помнить, что система MATLAB не является локализованной программой, и поэтому было бы странным требовать от нее корректного восприятия кириллицы.
Если имя команды или значения слишком длинное, то следует использовать символ продолжения ввода— ... (три точки). В этом случае все набранные в новой строке символы считаются продолжением символов предыдущей строки. Если после набора имени команды или задания значений переменной поставлен символ ; (точка с запятой), то после исполнения данной команды результат ее выполнения в окне команд не отображается. В противном случае (завершение набора команды без символа ;) происходит отображение результата ее выполнения, что может перегружать окно команд излишней информацией.
Если результат выполнения отдельной команды имеет некоторое значение, которое не назначено никакой переменной, то в системе для этой цели предусмотрена переменная по умолчанию— переменная с именем ans. Переменная с этим именем может появиться и в рабочей области, важно помнить, что ее значение может изменяться по мере выполнения отдельных команд.
При задании значений переменным в системе MATLAB задавать тип самих переменных нет необходимости, т. к. тип каждой переменной определяется самим задаваемым значением. Так, например, если справа от имени переменной записано целое число без разделительной точки, то тип этой переменной будет целочисленный. Более того, как уже отмечалось ранее, система MATLAB каждый объект рассматривает как матрицу. При этом обычное число или символ считается матрицей размерности 1x1, а массив из нескольких элементов— матрицей размерности lx/?. В этом заключается одна из ключевых особенностей системы, которая обеспечивает высокую производительность вычислений и удобство работы пользователя.
Поскольку во всех численных расчетах система MATLAB оперирует матрицами, для задания значений их элементов используются специальные символы: [ —для начала и ] — для окончания отдельной матрицы. При этом матрицы записываются по строкам в возрастающем порядке. Каждый элемент матрицы отделяется от другого элемента пробелом, строки отделяются друг от друга символом ;. После задания значений переменных (матриц) все они запоминаются и хранятся
в так называемой рабочей области (workspace) системы MATLAB. При задании матриц размерности 1x1 (обычных скаляров) знаки начала и окончания матрицы можно не указывать.
Например, если необходимо задать переменной с именем а некоторое количественное значение, скажем 10, то, находясь в окне команд (мигающий курсор после знака приглашения), следует ввести следующую строку:
» х=10
После нажатия клавиши <Enter> в окне команд появится следующая информация:
х =
10
Аналогично можно задать значение строки некоторой переменной с именем Ь:
» b='String'
b =
String
При этом сама строка текста заключается в апострофы. Чтобы задать матрицу, например, матрицу МР нечеткого отношения из примера 4.3 (напомним, что она равна
' 1 0.1 0.2"
0.8 0.9 1
0.7 0.8 0.5
I 0.5 0.2
следует ввести ее значения по строкам следующим образом:
» m=[l 0.1
0.2; 0.8
0.9 1; 0.7 0.8 0.5; 1 0.5 0.2]
m =
1.0000
0.1000
0.2000
0.8000
0.9000
1.0000
0.7000
0.8000
0.5000
1.0000
0.5000
0.2000
Далее для этой матрицы могут быть применены различные унарные функции (функции с единственным аргументом), например, транспонирования и нахождения обратной матрицы, нахождения минимальных и максимальных элементов в каждом из столбцов матрицы и др. Например, для нахождения минимальных элементов в каждом из столбцов матрицы m следует воспользоваться встроенной функций min: » min(m)
ans =
0.70000.70000.10000.10000.20000.2000
0.7000
0.7000
0.1000
0.1000
0.2000
0.2000
Основные алгебраические операции матричной арифметики приводятся в табл. 11.2. При этом следует отметить двойственность этих операций, поскольку наряду с символами операций для их выполнения можно использовать и встроенные функции. Так, например, для сложения двух матриц А и В одинаковой размерности можно ввести: А+в или plus (А, в), что совершенно эквивалентно.
Таблица 11.2. Основные алгебраические операции системы MATLAB
Символ операции
Имя функции
Название
Примечание
+
plus
Сложение
Применяется для матриц и скаляров. В случае сложения двух матриц они должны быть одной размерности
minus
Вычитание
Применяется для матриц и скаляров. В случае разности двух матриц они должны быть одной размерности
times
Умножение
Поэлементное умножение двух матриц, при этом матрицы должны быть одной размерности
J
rdivide
Правое деление
Поэлементное деление первой матрицы на вторую. В случае деления двух матриц они должны быть одной размерности
Л
Idivide
Левое деление
Поэлементное деление второй матрицы на первую. В случае деления двух матриц они должны быть одной размерности
+
uplus
Унарный плюс
Применяется для матриц и скаляров
-
uminus
Унарный минус
Применяется для матриц и скаляров
power
Возведение в степень
Возведение в степень каждого из элементов матрицы
transpose
Транспонирование
Обычное транспонирование матрицы, при котором ее строки и столбцы меняются местами
ctranspose
Транспонирование с комплексным сопряжением
В дополнение к обычному транспонированию матрицы выполняется комплексное сопряжение ее элементов
mtimes
Умножение матриц
Умножение двух матриц (строка на столбец), при котором размерности матриц должны быть согласованными
/
mrdivide
Правое деление матриц
Эквивалентно умножению первой матрицы на обратную второй матрицы
Таблица 11.2 (окончание)
Символ операции
Имя функции
Название
Примечание
\
mldivide
Левое деление матриц
Эквивалентно умножению обратной первой матрицы на вторую матрицу
mpower
Возведение в степень матрицы
Применяется только для квадратных матриц
Для обращения к отдельным элементам матрицы следует после имени матрицы указать в круглых скобках индексы соответствующего элемента, разделенные запятой. Например, для обращения к элементу первой строки и второго столбца матрицы m следует ввести:
» ш(1,2) ans =
0.1000
В некоторых случаях для задания значений элементам массивов и матриц весьма удобным оказывается использование оператора двоеточие (:), действие которого аналогично присваиванию значений переменной в цикле типа for. При этом достаточно указать значение первого элемента массива, затем после двоеточия— шаг изменения элементов и, наконец, после двоеточия— значение последнего элемента массива. Если значение шага отрицательное, то элементы массива будут следовать в убывающем порядке. Например, для изображения графиков функций одной переменной необходимо определить диапазон значений соответствующей независимой переменной. Это удобно сделать с помощью рассмотренного оператора следующим образом:
» х=0:0.1:10;
В результате ввода этой строки будет определен массив х, состоящий из 101 элемента, первым из которых является число 0, а последним — число 10.
Для задания некоторых специальных матриц в системе MATLAB предусмотрены отдельные функции. Так, например, для того, чтобы определить матрицу размерности 3x4, состоящую из нулей, в окне команд достаточно ввести имя соответствующей функции и ее параметры в круглых скобках:
» z=zeros(3, 4) z =
0000
0000
0000
Для задания специальных матриц можно воспользоваться специальными функциями, простейшие из которых приводятся в табл. 11.3. С другими аналогичными функциями можно познакомиться по справочной системе MATLAB.
Таблица 11.3. Простейшие функции для задания специальных матриц
Имя функции
НазначениеПримечание
zeros
Задание матрицы, состоящей изВ качестве аргументов указывается
нулейразмерность матрицы
ones
Задание матрицы, состоящей изВ качестве аргументов указывается
единицразмерность матрицы
rand
Задание матрицы, элементы кото- В качестве аргументов указывается рой распределены по равномер-размерность матрицы
ному закону в интервале [0,1]
randn
Задание матрицы, элементы кото- В качестве аргументов указывается рой распределены по нормальному размерность матрицы закону
eye
Задание единичной матрицы, глав- В качестве аргументов указывается ная диагональ которой состоит из размерность матрицы единиц
magic
Задание "магической" матрицы,В качестве единственного аргу-
сумма элементов которой по стро- мента указывается размерность кам, по столбцам и по диагоналям квадратной матрицы одинаковая
В процессе работы в системе MATLAB следует знать о системных переменных, используемых для хранения и представления отдельных значений переменных или специальных математических констант. Одной из подобных системных переменных является рассмотренная ранее переменная ans. Общий перечень системных переменных представлен в табл. 11.4.
Таблица 11.4. Системные переменные MATLAB
Имя переменной
НазначениеПримечание
ans
Результат выполнения последней операции
i или j
Мнимая единица, используе- Определяется как мая при задании комплексных sqrt(-l) чисел
computer
Тип операционной системы компьютера, на котором используется система MATLAB
[str, maxsize]=computer
Первый аргумент слева — тип операционной системы, второй аргумент — максимально допустимое число элементов в задаваемых матрицах
Таблица 11.4 (окончание)
Имя переменной
НазначениеПримечание
eps
Значение порога для функций, Определяется как 2Л (-52) реализующих приближенные итеративные процедуры вычислений
Inf
Положительная бесконечность Это значение возвраща- для численных расчетовется при делении на 0
NaN
Неопределенное значениеЭто значение возвраща-
(Not a Number)ется, например, при вы
полнении деления 0 на 0
nargin
Число входных аргументов вызываемой функции
narout
Число выходных аргументов вызываемой функции
Pi
Транспонирование с ком-В дополнение к обычному
плексным сопряжениемтранспонированию мат
рицы выполняется комплексное сопряжение ее элементов
realmax
Наибольшее положительноеПоложительная беско-
действительное число для one- нечность по своей вели- раций машинной арифметикичине превышает это зна
чение
realmin
Наименьшее положительноеЗначение порога по своей
действительное число для one- величине превышает это раций машинной арифметикизначение
Примечание
Следует отметить, что указанным в табл. 11.4 системным переменным можно присвоить произвольные значения, при этом система MATLAB не выдаст даже предупреждения. Аналогично, в качестве имен переменных можно использовать и имена встроенных функций MATLAB (sin, cos, abs и т. д.), однако в этом случае соответствующие функции окажутся недоступными.
Информация о всех функциях системы MATLAB содержится в справочной системе. При этом операции сравнения и логические операции рассматриваются в главе 14. Для работы в режиме командной строки с пакетом Fuzzy Logic Toolbox могут быть использованы специальные функции, общий перечень которых с описанием их назначения и примерами задания представлен в приложении 3.
11.3. Графические возможности системы MATLAB
Система MATLAB обладает удобными, гибкими и мощными средствами визуализации и графического представления самых разнообразных математических объектов типа кривых, поверхностей и диаграмм на плоскости и в 3-мерном пространстве. При этом используются различные системы координат, стили и способы цветового выделения изображений, что обеспечивает наглядность получаемых рисунков. Построенные графики функциональных зависимостей можно экспортировать в большинство известных графических форматов. Подчеркивая достоинства графических возможностей системы MATLAB, следует отметить, что большинство изображенных в книге графиков получены с помощью системы MATLAB.
Детально рассмотреть все графические средства системы MATLAB, включая такие как средства анимации, объекты дескрипторной графики и собственный графический редактор пакета расширения Images, не представляется возможным, поскольку этой теме посвящены отдельные тома документации. В настоящей книге преследуется более скромная цель— познакомиться с основными функциями системы MATLAB, которые могут быть использованы для визуализации их отдельных свойств нечетких моделей и конечных результатов нечеткого моделирования.
Для построения простейшего графика функции одной переменной прежде всего необходимо определить множество (массив) значений независимой переменной и соответствующее множество значений зависимой (функциональной) переменной. После этого можно воспользоваться функцией системы MATLAB plot для изображения графика заданной функциональной зависимости. При этом задание значений независимой переменной удобно выполнить с помощью рассмотренной выше операции :. Ниже приводится последовательность команд для построения графика функции у = sin(x):
» х = -10:0.1:10;
» у = sin(x);
» plot(х, у)
После выполнения данной последовательности команд возникнет новое окно с графиком этой функции (рис. 11.15). Это окно имеет собственное главное меню и панель команд. Соответствующие команды меню позволяют выполнить редактирование свойств изображенного графика, такие как: внести дополнительный текст (легенду), изменить цвет, тип линий и масштаб изображения, а также выполнить вращение изображения в любом из направлений.
Наиболее полный контроль и форматирование изображений графиков позволяет выполнить редактор свойств, состоящий из отдельных диалоговых окон. Так, редактор свойств осей (Property Editor - Axes), вызываемый двойным щелчком мыши на изображении осей или командой меню Edit> Axes Properties (рис. 11.16), представляет собой самостоятельное диалоговое окно с набором вкладок, обеспечивающих доступ к отдельным осям графического изображения.
Рис. 11.15. Окно с построенным графиком функции у = sin(x)
Рис. 11.16. Окно редактора свойств построенного графика с открытой вкладкой Scale для осей
Первая из вкладок Scale (Шкалирование) предназначена для форматирования осей графика. Здесь можно редактировать пределы изменения переменных осей, интервалы изображения меток переменных, а также указать линейный (по умол-
чанию) или логарифмический масштаб для отдельных из осей. При необходимости можно сделать видимой сетку для отдельных переменных осей, а также изменить направление оси на противоположное.
Вторая вкладка предназначена для редактирования стиля изображения осей (рис. 11.17). Здесь можно изменить заданные по умолчанию толщину и цвет линий отдельных осей, свойства шрифтов для записи легенд осей, а также геометрическое расположение линий осей относительно графика.
Рис. 11.17. Окно редактора свойств построенного графика с открытой вкладкой Style для осей
Остальные вкладки этого окна позволяют редактировать дополнительные свойства осей, связанные с пространственной перспективой и освещенностью графиков. Назначение меню команд этих вкладок вполне очевидно, поэтому подробно они рассматриваться не будут.
Редактор свойств линий (Property Editor - Lines), вызываемый двойным щелчком мыши на изображении линии графика или из редактора свойств осей выбором соответствующего пункта (line:) раскрывающегося списка Edit Properties for (рис. 11.18), представляет собой самостоятельное диалоговое окно с набором вкладок, обеспечивающих доступ к отдельным свойствам линии.
Здесь на вкладке Style (Стиль) можно изменить стиль изображения кривой, для чего следует выбрать необходимый пункт списка Color. На этой же вкладке
аналогичным образом можно изменить толщину и цвет изображения кривой (рис. 11.19). Следует отметить, что указанные свойства характерны для интерактивного форматирования элементов так называемой дескрипторной графики системы MATLAB, более подробно познакомиться с которой можно с помощью отдельных разделов справочной документации.
Рис. 11.18. Окно редактора свойств линии построенного графика с открытой вкладкой Style для выбора стиля изображения кривой
Для построения графиков нескольких функций одной переменной в одном окне можно также воспользоваться функцией системы MATLAB plot. Ниже приводится последовательность команд для построения графиков двух функций у = sin(x) и у = cos(.x) в одном окне:
» х = -10:0.1:10;
» у = sin(х);
» z = cos(х);
» plot (х, у, х, z) ;
После выполнения данной последовательности команд появится окно с графиками этих функций (рис. 11.20). Используя вкладки свойств осей и линий, можно задать отображение сетки, изменить цвет кривых и добавить надписи (легенду) к этим кривым.
Рис. 11.19. Окно редактора свойств линии построенного графика с открытой вкладкой Style для выбора цвета изображения кривой
Рис. 11.20. Окно с построенными графиками функций у = sin(x) и у = cos(x)
Для построения графиков 3-мерных поверхностей и кривых, представляющих собой функции двух переменных, также необходимо определить множество (массив) значений независимых переменных и соответствующее множество зна-
чений зависимой (функциональной) переменной. После этого для изображения графика заданной функциональной зависимости можно воспользоваться несколькими функциями системы MATLAB:
plot3 — функция построения изображений 3-мерных поверхностей линиями;
mesh— функция построения изображений 3-мерных поверхностей с функциональной окраской образующих линий контурной сетки;
surf — функция построения изображений 3-мерных поверхностей с функциональной закраской ячеек контурной сетки.
Задание значений независимых переменных удобно выполнить с помощью функции meshgrid. Ниже приводится последовательность команд для построения графика поверхности z — min(x, у) с помощью функции plot3, которая позволяет изображать графики кривых в перспективной проекции:
» [х,у] = meshgrid([-1:0.1:1]) ;
» z = min (х, у) ;
» plot3(х,у,z)
После выполнения данной последовательности команд появится новое окно с графиком поверхности этой функции (рис. 11.21).
Рис. 11.21. Окно с построенной поверхностью z = min(x, у) с помощью функции plot3
Для сравнения ниже приводится последовательность команд для построения графика этой же поверхности z = min(x, ]J с помощью функции mesh:
» [х,у] = meshgrid([-1:0.1:1]);
» z = min (х, у);
» mesh (х, у, z)
После выполнения данной последовательности команд появится новое окно с графиком этой функции (рис. 11.22) в форме сетчатой поверхности.
Рис. 11.22. Окно с построенной поверхностью z = min(x, у) с помощью функции mesh
Знакомство с функциями построения графиков в 3-мерном пространстве завершим еще одним примером визуализации рассматриваемой поверхности. Ниже приводится последовательность команд для построения графика поверхности у = min(x, у) с помощью функции surf ():
» [х,у] = meshgrid([-1:0.1:!]);
» z = min (х, у);
» surf(х,у,z)
После выполнения данной последовательности команд появится новое окно с графиком этой функции (рис. 11.23) в форме расцвеченной поверхности.
Рис. 11.23. Поверхность z = min(x, у), построенная с помощью функции surf
Рис. 11.24. Демонстрационный обучающий пример для ознакомления с графическими возможностями системы MATLAB
Для построения графиков кривых и поверхностей также могут быть использованы функции meshc, meshz, surfc, surfl и целый ряд других. Для построения столбиковых диаграмм можно использовать функция bar, barb, hist. Для построения плоской круговой диаграммы предназначена функция pie, а для построения 3-мерной круговой диаграммы — функция pie3.
Для дополнительного знакомства с графическими возможностями системы MATLAB могут оказаться полезными два обучающих мультипликационных примера. Первый из них, который вызвается из окна с демо-примерами операцией Graphics>Overviw of features (playback), иллюстрирует процесс настройки свойств графического окна (рис. 11.24).
Второй обучающий пример, который можно вызвать из окна с демо-примерами операцией Graphics>Plotting and printing (playback), иллюстрирует процесс настройки свойств изображений для печати в системе MATLAB (рис. 11.25).
В последующих главах приводятся другие варианты графических изображений, построенные с помощью средств MATLAB, а также рассматриваются способы построения нескольких графиков в одном графическом окне.
Рис. 11.25. Демонстрационный обучающий пример для ознакомления с возможностями настройки изображений для печати в системе MATLAB
Глава 12
Процесс нечеткого моделирования в среде MATLAB
Для реализации процесса нечеткого моделирования в среде MATLAB предназначен специальный пакет расширения Fuzzy Logic Toolbox. В рамках этого пакета, который расположен в папке C:\MATLAB6pl\toolbox\fuzzy (если система MATLAB установлена по умолчанию на диске С:), пользователь может выполнять необходимые действия по разработке и использованию нечетких моделей в одном из следующих режимов:
в интерактивном режиме с помощью графических средств редактирования и визуализации всех компонентов систем нечеткого вывода;
в режиме команд с помощью ввода имен соответствующих функций с необходимыми аргументами непосредственно в окно команд системы MATLAB
Ниже рассматриваются особенности разработки систем нечеткого вывода в каждом их этих режимов и даются рекомендации по выполнению необходимой последовательности действий.
Процесс разработки системы нечеткого вывода в интерактивном режиме
Для разработки и дальнейшего применения систем нечеткого вывода в интерактивном режиме могут быть использованы следующие графические средства, входящие в состав пакета Fuzzy Logic Toolbox.
Редактор систем нечеткого вывода FIS (FIS Editor) или сокращенно — редактор FIS.
Редактор функций принадлежности системы нечеткого вывода (Membership Function Editor) или сокращенно — редактор функций принадлежности.
Редактор правил системы нечеткого вывода (Rule Editor) или сокращенно — редактор правил.
Программа просмотра правил системы нечеткого вывода (Rule Viewer) или сокращенно — просмотрщик правил вывода.
Программа просмотра поверхности системы нечеткого вывода (Surface Viewer) или сокращенно — просмотрщик поверхности вывода.
Кроме этих графических средств в состав пакета Fuzzy Logic Toolbox также входят следующие специальные программы.
Редактор адаптивных систем нейро-нечеткого вывода (Adaptive Neuro-Fuzzy Inference System Editor) или сокращенно — редактор гибридных сетей или редактор ANFIS.
Программа нечеткой кластеризации методом нечетких с-средних (fuzzy с- means clustering).'
В табл. 12.1 представлены функции MATLAB, которые могут быть использованы для вызова соответствующих графических средств. Более подробно особенности работы с редактором гибридных сетей ANFIS изложены в главе 15, а особенности работы с программой нечеткой кластеризации — в главе 13.
Таблица 12.1. Функции графического интерфейса пользователя
Функция
Назначение
anfisedit
Редактор гибридных сетей ANFIS
findcluster
Программа нечеткой кластеризации
fuzzy
Редактор системы нечеткого вывода FIS
mfedit
Редактор функций принадлежности
ruleedit
Редактор правил нечеткого вывода
ruleview
Программа просмотра правил и диаграммы нечеткого вывода
surfview
Программа просмотра поверхности нечеткого вывода
Рассмотрим особенности каждого из графических средств, которые следует использовать для разработки и исследования систем нечеткого вывода в среде MATLAB.
Редактор систем нечеткого вывода FIS
Редактор систем нечеткого вывода FIS (или просто редактор FIS) является основным средством, которое используется для создания или редактирования систем нечеткого вывода в графическом режиме. Редактор FIS может быть открыт с помощью ввода функции fuzzy или fuzzy (' fismat') в окне команд. Эта функция предоставляет пользователю возможность задавать и редактировать на высоком уровне свойства системы нечеткого вывода, такие как число входных и выходных переменных, тип системы нечеткого вывода, используемый метод де- фаззификации и т. д.
Если функция fuzzy вызывается без аргументов, то редактор FIS вызывается для вновь создаваемой системы нечеткого вывода с именем Untitled по умолчанию (рис. 12.1). При этом по умолчанию также задается целый ряд параметров, таких как тип системы нечеткого вывода (Мамдани), нечеткие логические операции, методы импликации, агрегирования и дефаззификации и некоторые другие. Пользователь может согласиться с этими значениями или изменить их.
Рис. 12.1. Графический интерфейс редактора FIS, вызываемый функцией fuzzy
Если функция fuzzy вызывается с аргументом в форме fuzzy ('fismat'), где fismat — имя внешнего файла с расширением fis с уже разработанной системой нечеткого вывода, то редактор вызывается с уже загруженной системой FIS с именем fismat (рис. 12.2).
Примечание
Возможен также вызов редактора FIS с помощью этой же функции в формате fuzzy (fismat), где fismat — имя структуры FIS В рабочей области MATLAB. В этом случае соответствующая структура нечеткого вывода должна быть предварительно создана (например, средствами командного режима) либо загружена в рабочую область с помощью функции readfis (' fismat'), где
f ismat — имя внешнего fis-файла с разработанной ранее системой нечеткого вывода. В частности, вызов редактора функцией fuzzy (' tipper') загружает в него систему нечеткого вывода для демонстрационного примера "Чаевые е ресторане", который более подробно будет рассмотрен ниже в качестве примера 12.1.
Рис. 12.2. Графический интерфейс редактора FIS, вызываемый функцией fuzzy (' tipper')
Редактор FIS обладает графическим интерфейсом и позволяет вызывать все другие редакторы и программы просмотра систем нечеткого вывода. Графический интерфейс этого редактора обладает максимальным удобством и гибкостью, необходимой для интерактивной работы с отдельными компонентами системы нечеткого вывода.
В верхней части рабочего интерфейса редактора FIS изображается диаграмма, представляющая в визуальной форме входы и выходы системы нечеткого вывода, в центре которых находится так называемый процессор нечетких правил. Щелчок на прямоугольнике с изображением входа или выхода выделяет соответствующую переменную и делает ее текущей. Прямоугольник текущей переменной при этом выделяется красным цветом.
Двойной щелчок на прямоугольнике с изображением входной или выходной переменной вызывает редактор функций принадлежности с загруженной в него соответствующей переменной. Двойной щелчок на изображении процессора нечетких правил вызывает редактор правил для соответствующей системы нечеткого вывода. Если некоторая переменная существует в системе нечеткого вывода, но не используется в правилах вывода, то связь ее с процессором нечетких правил изображается не сплошной, а пунктирной линией.
Редактор FIS имеет главное меню, которое позволяет пользователю вызывать другие графические средства работы с системой нечеткого вывода FIS. загружать и сохранять структуру FIS во внешних файлах и т. д. Рассмотрим назначение пунктов меню редактора FIS.
Пункт меню File (Файл) редактора FIS содержит следующие операции:
New FIS... — позволяет выбрать тип задаваемой новой системы нечеткого вывода: Mamdani — типа Мамдани или Sugeno — типа Сугено. При этом задаваемая система нечеткого вывода не имеет ни входных, ни выходных переменных, а ее имя задается по умолчанию как Untitled;
Import — позволяет загрузить в редактор FIS существующую систему нечеткого вывода одним из следующих способов: From Workspace... — из рабочего пространства программы MATLAB или From Disk... — из внешнего файла. В последнем случае вызывается стандартное диалоговое окно открытия внешнего файла с диска;
Export — позволяет сохранить редактируемую систему нечеткого вывода одним из следующих способов: То Workspace... — в рабочем пространстве программы MATLAB или То Disk... — во внешнем файле. В последнем случае вызывается стандартное диалоговое окно сохранения файла на диске;
Print — позволяет распечатать на принтере редактируемую систему нечеткого вывода. В этом случае вызывается стандартное диалоговое окно настройки свойств печати на подключенном к данному компьютеру принтере;
Close— закрывает редактор FIS, при этом вызывается диалоговое окно с предложениями сохранить или отказаться от сохранения редактируемой системы нечеткого вывода.
Пункт меню Edit (Редактирование) содержит следующие операции:
Undo — отменяет выполнение последнего действия;
Add Variable... — позволяет добавить в редактируемую систему нечеткого вывода переменную одного из следующих типов: Input — входную переменную или Output — выходную переменную;
Remove Selected Variable— удаляет выбранную переменную из редактируемой системы нечеткого вывода;
х Membership Functions... — вызывает редактор функций принадлежности;
Rules — вызывает редактор правил нечеткого вывода.
Пункт меню View (Вид) содержит следующие операции:
Rules — вызывает программу просмотра правил нечеткого вывода;
Surface — вызывает программу просмотра поверхности нечеткого вывода. В левой нижней части рабочего интерфейса редактора FIS имеется 5 всплывающих меню:
□ And method (Метод логической конъюнкции) — позволяет задать один из следующих методов для выполнения логической конъюнкции в условиях нечетких правил:
min — метод минимального значения (6.2);
prod — метод алгебраического произведения (6.3);
Custom — метод, определенный пользователем.
□ Or method (Метод логической дизъюнкции) — позволяет задать один из следующих методов для выполнения логической дизъюнкции в условиях нечетких правил:
max — метод максимального значения (6.6);
probor — метод алгебраической суммы (6.7);
Custom — метод, определенный пользователем.
Implication method (Метод вывода заключения) — позволяет задать один из следующих методов для выполнения (активизации) логического заключения в каждом из нечетких правил:
min — метод минимального значения (7.6);
prod — метод алгебраического произведения (7.7);
Custom — метод, определенный пользователем. Это меню не используется для систем нечеткого вывода типа Сугено.
Aggregation method (Метод агрегирования) — позволяет задать один из следующих методов для агрегирования значений функции принадлежности каждой из выходных переменных в заключениях нечетких правил:
max — метод максимального значения (6.6);
sum — метод граничной суммы (6.8);
probor — метод алгебраической суммы (6.7).
Custom— метод, определенный пользователем. Это меню не используется для систем нечеткого вывода типа Сугено.
Defuzzification method (Метод дефаззификации) — позволяет задать один из следующих методов для выполнения дефаззификации выходных переменных в системе нечеткого вывода типа Мамдани:
centroid— метод центра тяжести для дискретного множества значений функции принадлежности (7.10);
bisector — метод центра площади (модификация (7.11));
mom (middle of maximum) — метод среднего максимума, определяемый как среднее арифметическое левого и правого модальных значений;
som (smallest of maximum) — метод наименьшего (левого) модального значения (7.12);
lorn (largest of maximum) — метод наибольшего (правого) модального значения (7.13);
Custom — метод, определенный самим пользователем.
Для систем нечеткого вывода типа Сугено можно выбрать один из следующих методов дефаззификации:
wtaver (weighted average) — метод взвешенного среднего (7.15);
wtsum (weighted sum) — метод взвешенной суммы (7.16).
Примечание
Методы, определенные пользователем, должны быть заданы либо в существующих m-файлах, либо в форме разработанных пользователем отдельных т-файлов, размещенных в папке C:\MATLAB6p1\toolbox\fuzzy или в папке C:\MATLAB6p1X work (если система MATLAB установлена по умолчанию на диске С). Поскольку особенности написания и редактирования m-файлов относятся к области программирования, эта тематика будет рассмотрена далее в главе 14.
В правом нижнем углу находятся кнопка вызова встроенной справочной системы MATLAB (Help) и кнопка закрытия редактора FIS (Close).
Редактор функций принадлежности
Редактор функций принадлежности, как следует из его названия, предназначен для задания и редактирования функций принадлежности отдельных термов системы нечеткого вывода в графическом режиме. Редактор функций принадлежности может быть открыт с помощью ввода функции mfedit, а также mfedit(’а') или mfedit (а), в окне команд либо с помощью главного меню редактора FIS (командой меню Edit>Membership Functions... или нажатием клавиш <Ctrl>+<2>).
Эта функция, записанная в формате mfedit, просто вызывает редактор функций принадлежности без загрузки какой бы то ни было системы нечеткого вывода. Функция в формате mfedit ('а*) вызывает редактор функций принадлежности, который позволяет пользователю в графическом режиме анализировать и модифицировать все функции принадлежности некоторой структуры FIS, сохраненной во внешнем файле с именем a.fis. Функция в формате mfedit (а) работает с переменной рабочего пространства MATLAB, соответствующей структуре FIS с именем а. Для каждой функции принадлежности можно изменить ее имя, тип и параметры. Редактор предоставляет пользователю не только возможность вы-
брать любую из 11 встроенных функций принадлежности, но и задать собственную функцию принадлежности.
Результат вызова редактора функций принадлежности с помощью функции mfedit (* tipper') изображен на рис. 12.3.
Рис. 12.3. Редактор функций принадлежности, вызываемый функцией mf edit (* tipper')
Для отображения графиков функций принадлежности следует выбрать необходимую переменную в левой части графического интерфейса редактора под заголовком FIS Variables (Переменные FIS). Чтобы выбрать нужную функцию принадлежности, следует щелкнуть на ней или ее метке в основном окне с графиками функций принадлежности.
Редактор функций принадлежности имеет главное меню программы, которое позволяет пользователю вызывать другие графические средства работы с системой нечеткого вывода FIS, загружать и сохранять структуру FIS во внешних файлах и т. д.
Пункт меню File (Файл) редактора функций принадлежности содержит такие же операции, что и соответствующий пункт меню редактора FIS.
Пункт меню Edit (Редактирование) содержит следующие операции:
Undo — отменяет выполнение последнего действия;
Add MF... — позволяет добавить встроенную функцию принадлежности термов для выбранной переменной;
Add Custom MF... — позволяет добавить пользовательскую функцию принадлежности для отдельной переменной;
Remove Current MF — позволяет удалить отдельную функцию принадлежности;
Remove All MFs— позволяет удалить все функции принадлежности для отдельной переменной;
FIS Properties... — вызывает редактор FIS;
Rules... — вызывает редактор правил нечеткого вывода.
Пункт меню View (Вид) содержит следующие операции:
Rules — вызывает программу просмотра правил нечеткого вывода;
Surface — вызывает программу просмотра поверхности нечеткого вывода.
Раскрывающийся список типов функций принадлежности позволяет выбрать одну из 11 встроенных функции принадлежности. Используя соответствующие поля ввода, можно изменить имена термов выбранной переменной в поле ввода Name, модифицировать параметры встроенных функций принадлежности в поле ввода Params.
Примечание
Поскольку данный редактор не позволяет задать функцию принадлежности, определенную пользователем, в случае подобной необходимости следует воспользоваться соответствующими функциями командного режима. Тем не менее, встроенных типов функций принадлежности оказывается вполне достаточно для большинства практических приложений.
Изменить вид функции принадлежности можно также с помощью мыши. Для этого следует выделить изменяемую функцию принадлежности на графике (она будет изображена красным цветом) и, не отпуская нажатую левую кнопку мыши, перемещать маркер в нужную сторону. При этом будут изменяться график соответствующей функции принадлежности и ее параметры. Этой возможностью следует пользоваться с осторожностью, поскольку выполненные изменения функции принадлежности уже не удастся отменить. В правом нижнем углу находятся кнопка вызова встроенной справочной системы MATLAB (Help) и кнопка закрытия редактора функций принадлежности (Close).
Редактор правил системы нечеткого вывода
Редактор правил системы нечеткого вывода, как следует из его названия, предназначен для задания и редактирования отдельных правил системы нечеткого вывода в графическом режиме. Редактор правил может быть открыт с помощью ввода функции ruleedit (' а') или ruleedit (а) в окне команд либо с помощью главного меню редактора FIS (командой меню Edit>RuIes... или нажатием клавиш <Ctrl>+<3>).
Эта функция, записанная в формате ruleedit ('а'), вызывает редактор правил, который позволяет пользователю в графическом режиме анализировать и модифицировать правила продукций системы нечеткого вывода FIS, сохраненной во внешнем файле с именем a.fis. Эта функция позволяет также выполнять грамматический анализ правил, которые используются в некоторой системе нечеткого вывода FIS.
Чтобы использовать данный редактор для создания правил, необходимо предварительно определить все входные и выходные переменные, для чего можно воспользоваться редактором системы нечеткого вывода FIS и редактором функций принадлежности. При этом задать правила можно с помощью выбора соответствующих значений термов входных и выходных переменных.
Результат вызова функции ruleedit ('tipper') изображен на рис. 12.4.
Рис. 12.4. Редактор правил, вызываемый функцией ruleedit ('tipper')
Функция в формате ruleedit (а) вызывает редактор правил для переменной рабочего пространства MATLAB, соответствующей структуре FIS с именем а.
Редактор правил имеет главное меню, которое позволяет пользователю вызывать другие графические средства работы с системой нечеткого вывода FIS, загружать и сохранять структуру FIS во внешних файлах и т. д.
Пункт меню File (Файл) редактора правил содержит такие же операции, что и соответствующий пункт меню редактора FIS.
Пункт меню Edit (Редактирование) содержит следующие операции:
Undo — отменяет выполнение последнего действия;
FIS Properties... — вызывает редактор FIS;
Membership Functions... — вызывает редактор функций принадлежности.
Пункт меню View (Вид) содержит следующие операции:
Rules — вызывает программу просмотра правил;
Surface — вызывает программу просмотра поверхности вывода.
Пункт меню Options (Сервис) содержит следующие операции:
Language— позволяет выбрать язык для записи правил в форме текста: English (английский), Deutsch (немецкий) или Francais (французский);
Format— позволяет выбрать формат записи правил системы нечеткого вывода: Verbose (в форме текста), Symbolic (в символической форме) или Indexed (в цифровой форме).
При записи правил в форме текста для создания законченных предложений используются служебные слова "if, "then", "is", "AND", "OR" и т. д. При записи правил в символической форме эти служебные слова заменяются символами соответствующих операций. Например, правило "if (A is М) and (В is В) then (С is С)" преобразуется к виду: "(А = = 54) & (В = = В) => (С = = С)". Правила нечеткого вывода, записанные в цифровой форме, соответствуют формату их представления в структуре FIS, который рассматривается в разд. 12.3.
Поля ввода в средней части графического интерфейса редактора правил позволяют задать новое правило в системе нечеткого вывода. Для этого необходимо выделить имя терма соответствующей переменной, которая должна быть предварительно определена с помощью редактора функций принадлежности. Если некоторый терм не входит в правило, то для него следует выбрать значение "попе". Если в условии правила используется логическое отрицание некоторого терма, то для этого терма следует отметить соответствующий флажок с меткой "not" ("выставить галочку").
Редактор правил позволяет также задать логические связки для подусловий правила (переключатель Connection) и вес правила (поле ввода Weight). Кнопки в нижней части графического интерфейса редактора правил, как следует из их названий, служат для удаления выделенного в окне правила (Delete rule), добавления созданного правила в систему (Add rule) и внесения изменений в выделенное
в окне правило (Change rule). В правом нижнем углу находятся кнопки вызова встроенной справочной системы MATLAB (Help) и кнопка закрытия редактора правил (Close).
Программа просмотра правил системы нечеткого вывода
Главное назначение программы просмотра правил заключается в возможности визуализировать результаты нечеткого вывода и получать значения выходных переменных в зависимости от исходных значений входных переменных. Графический интерфейс программы просмотра правил может быть открыт с помощью ввода функции ruleview('а') или ruleview(a) в окне команд либо с помощью главного меню редактора FIS, редактора функций принадлежности или редактора правил (командой меню View>Rules или нажатием клавиш <Ctrl>+<5>).
Функция, записанная в формате ruleview (' а'), вызывает программу просмотра правил, которая изображает диаграмму нечеткого вывода для структуры FIS, сохраненной во внешнем файле с именем a.fis. Функция в формате ruleview (а) вызывает программу просмотра правил для переменной рабочего пространства MATLAB, соответствующей структуре FIS с именем а.
Программа просмотра правил не позволяет редактировать правила и функции принадлежности термов переменных и используется после разработки системы нечеткого вывода на этапе ее анализа и оценки. Функцию также целесообразно использовать в том случае, когда необходимо визуально представить весь процесс нечеткого вывода от начала до конца. При этом пользователь имеет возможность оценить значения выходных переменных нечеткой модели и влияние каждого из правил на результат нечеткого вывода посредством изменения значений входных переменных.
Графический интерфейс программы просмотра правил изображен на рис. 12.5.
Программа просмотра правил имеет главное меню, которое позволяет пользователю вызывать другие графические средства работы с системой нечеткого вывода FIS, загружать и сохранять структуру FIS во внешних файлах и т. д.
Пункт меню File (Файл) редактора правил содержит такие же операции, что и соответствующий пункт меню редактора FIS.
Пункт меню Edit (Редактирование) содержит следующие операции:
Undo — отменяет выполнение последнего действия;
FIS Properties... — вызывает редактор FIS;
Membership Functions... — вызывает редактор функций принадлежности;
Rules... — вызывает программу редактирования правил.
Пункт меню View (Вид) содержит следующие операции:
• Surface — вызывает программу просмотра поверхности вывода.
Рис. 12.5. Программа просмотра правил, вызванная функцией ruleview ('tipper')
Пункт меню Options (Сервис) содержит следующие операции:
Format— позволяет выбрать формат записи правил системы нечеткого вывода: Verbose (в форме текста), Symbolic (в символической форме) или Indexed (в цифровой форме).
В центральной части графического интерфейса программы просмотра правил расположены прямоугольники, соответствующие отдельным входным переменным (функции принадлежности желтого цвета) и выходным переменным (функции принадлежности синего цвета) правил нечеткого вывода. При этом каждому правилу соответствует отдельная строка из этих прямоугольников. Номера правил указаны в левой части графического интерфейса.
В правой нижней части графического интерфейса расположен прямоугольник, изображающий дефаззификацию выходной переменной после аккумулирования всех заключений правил нечеткого вывода. Полученное в результате дефаззифи- кации значение выходной переменной указывается в верхней части столбца с именем этой выходной переменной (tip=15 на рис. 12.5).
Прямоугольники входных переменных пересекает вертикальная прямая красного цвета, положение которой соответствует конкретному значению входной не-
ременной соответствующего столбца. Задать конкретные значения входных переменных можно либо с помощью их записи в поле ввода Input, либо с помощью мыши, перемещая вертикальные прямые в нужном направлении. В последнем случае можно щелкнуть на той или иной вертикальной прямой и, удерживая нажатой левую кнопку мыши, переместить прямую вправо или влево, либо просто щелкнуть в необходимой точке внутри прямоугольника соответствующей входной переменной.
Полученные после изменения значения входных переменных непосредственно отображаются в верхней части прямоугольников после имени входных переменных и в поле ввода с меткой Input. Более того, система MATLAB реагирует на каждое изменение значения отдельной входной переменной выполнением процедуры нечеткого вывода, получением и отображением соответствующих результирующих значений выходных переменных.
Программа просмотра поверхности системы нечеткого вывода
Программа просмотра поверхности системы нечеткого вывода позволяет просматривать поверхность системы нечеткого вывода и визуализировать графики зависимости выходных переменных от отдельных входных переменных. Графический интерфейс программы просмотра правил может быть открыт с помощью ввода функции surfview ('а*)" или surfview (а) в окне команд либо с помощью главного меню редактора FIS, редактора функций принадлежности или редактора правил (командой меню View>Surface или нажатием клавиш <Ctrl>+<6>).
Функция, записанная в формате surf view (' а'), вызывает программу просмотра поверхности, которая изображает поверхность нечеткого вывода для структуры FIS, сохраненной во внешнем файле с именем a.fis, для любой одной или двух из ее входных переменных. Функция в формате surfview (а) вызывает программу просмотра поверхности вывода для переменной рабочего пространства MATLAB, соответствующей структуре FIS с именем а.
Графический интерфейс программы просмотра поверхности изображен на рис. 12.6.
Программа просмотра поверхности вывода имеет главное меню, которое позволяет пользователю вызывать другие графические средства работы с системой нечеткого вывода FIS, загружать и сохранять структуру FIS во внешних файлах и т. д.
Пункт меню File (Файл) редактора правил содержит такие же операции, что и соответствующий пункт меню редактора FIS.
Пункт меню Edit (Редактирование) содержит следующие операции:
Undo — отменяет выполнение последнего действия;
FIS Properties... — вызывает редактор FIS;
Membership Functions... — вызывает редактор функций принадлежности;
Rules... — вызывает программу редактирования правил.
Рис. 12.6. Программа просмотра поверхности вывода, вызываемая функцией surfview (' tipper')
Пункт меню View (Вид) содержит следующие операции:
• Rules — вызывает программу просмотра правил.
Пункт меню Options (Сервис) содержит следующие операции:
Plot — позволяет выбрать один из 8 стилей изображения графика поверхности вывода;
Color Мар— позволяет выбрать одну из 4 цветовых схем изображения графика поверхности вывода;
Always evaluate — пометка галочкой этого пункта вложенного меню приводит к автоматическому формированию новой поверхности вывода всякий раз, когда вносятся изменения в систему нечеткого вывода, влияющие на форму графика поверхности вывода (такие как изменение количества точек сетки графика). Это значение принято по умолчанию. Чтобы его отменить, необходимо снять галочку у этого пункта вложенного меню, щелкнув на этой позиции меню.
Программа просмотра поверхности вывода не позволяет вносить изменения в систему нечеткого вывода и соответствующую ей структуру FIS. Используя
главное меню программы, пользователь может выбрать входные переменные и соответствующие им горизонтальные оси системы координат (X и Y), а также выходную переменную, которой соответствует вертикальная ось системы координат (Z).
Щелкнув и удерживая левую кнопку мыши на осях графика поверхности, посредством последующего перемещения курсора мыши в том или ином направлении можно изменить угол просмотра поверхности вывода. Если рассматривается система нечеткого вывода с более чем двумя входными переменными, то для не- визуализируемых входных переменных следует задать некоторые постоянные значения (константы).
Далее в этой главе описываются конкретные приемы и операции с рассмотренными средствами пакета Fuzzy Logic Toolbox, используя которые, пользователь может разработать и выполнить анализ системы нечеткого вывода в графическом режиме.
12.2. Пример разработки системы нечеткого вывода в интерактивном режиме
В качестве примера разработки системы нечеткого вывода в интерактивном режиме с помощью графических средств пакета Fuzzy Logic Toolbox рассмотрим следующую нечеткую модель, которая входит в число демонстрационных примеров системы MATLAB.
П р и м е р 12.1. "Чаевые в ресторане". Рассмотрим ситуацию в ресторане, при которой, согласно принятым в США традициям, после окончания обслуживания посетителя принято оставлять официанту чаевые. Основываясь на устоявшихся в этой стране обычаях и интуитивных представлениях посетителей ресторанов величина суммы чаевых не является постоянной и зависит, например, от качества обслуживания и качества приготовления заказанных блюд.
Задача состоит в том, чтобы разработать некоторую экспертную систему, которая была бы реализована в виде системы нечеткого вывода и позволяла бы определять величину чаевых на основе субъективных оценок посетителей качества обслуживания и качества приготовления заказанных блюд.
Эмпирические знания о рассматриваемой проблемной области могут быть представлены в форме следующих эвристических правил продукций:
Если обслуживание плохое или ужин подгоревший, то чаевые — малые.
Если обслуживание хорошее, то чаевые — средние.
Если обслуживание отличное или ужин превосходный, то чаевые ■— щедрые.
Примечание
Приведенные выше правила действительно субъективны и не свободны от критики. В частности, для многих посетителей наших ресторанов может показаться
странным правило 1, согласно которому следует оставлять чаевые в случае плохого обслуживания или подгоревшего ужина, и правило 2, согласно которому следует оставлять средние чаевые даже в случае подгоревшего ужина. Возможно, некоторые из наших читателей сочтут возможным вообще отказаться от оставления чаевых в подобных ситуациях и будут по своему правы. Тем не менее, поскольку данный пример широко используется в литературе для демонстрации возможностей системы MATLAB, он приводится здесь без изменения в своем оригинальном виде.
В качестве входных параметров системы нечеткого вывода будем рассматривать 2 нечеткие лингвистические переменные: "качество обслуживания" и "качество приготовления заказанных блюд" (или сокращенно — "качество ужина"), а в качестве выходных параметров — нечеткую лингвистическую переменную "величина чаевых".
В качестве терм-множества первой лингвистической переменной "качество обслуживания" будем использовать множество Т\-}" плохое", "хорошее", "отличное"}, а в качестве терм-множества второй лингвистической переменной "качество ужина" будем использовать множество Ti—\" подгоревший", "превосходный"}. В качестве терм-множества выходной лингвистической переменной "величина чаевых" будем использовать множество Тз=}"малые", "средние", "щедрые"}. При этом каждый из термов первой и второй входной переменной (качество обслуживания и приготовления заказанных блюд) будем оценивать по 10-балльной порядковой шкале, при которой цифре 0 соответствует наихудшая оценка, а цифре 10 — наилучшая оценка. Что касается термов выходной переменной, то будем предполагать, что малые чаевые составляют около 5% от стоимости заказанных блюд, средние чаевые — около 15%, а щедрые чаевые — около 25%.
С учетом сделанных уточнений, рассмотренная субъективная информация о величине чаевых может быть представлена в форме 3-х правил нечетких продукций следующего вида (система нечеткого вывода типа Мамдани):
ПРАВИЛО_1: ЕСЛИ "качество обслуживания плохое" ИЛИ "ужин подгоревший"
ТО "величина чаевых малая"
ПРАВИЛО_2: ЕСЛИ "качество обслуживания хорошее"
ТО "величина чаевых средняя"
ПРАВИЛО_3: ЕСЛИ "качество обслуживания отличное" ИЛИ "ужин превосходный"
ТО "величина чаевых щедрая"
Примечание
Заканчивая содержательное описание демонстрационного примера "Чаевые в ресторане", следует отметить, что соответствующая ему система нечеткого вывода хранится во внешнем файле с именем tipper.fis в папке C:\MATLAB6p1\ toolbox\fuzzy\fuzdemos, если система MATLAB установлена на диске С:.
Процесс разработки системы нечеткого вывода в интерактивном режиме для рассмотренного выше примера "Чаевые в ресторане" состоит в выполнении следующей последовательности действий:
Вызвать редактор систем нечеткого вывода FIS, для чего в окне команд набрать имя соответствующей функции fuzzy. После выполнения этой команды на экране появится графический интерфейс редактора FIS с именем системы нечеткого вывода Untitled и типом системы нечеткого вывода (Мамдани), предложенными по умолчанию (см. рис. 12.1).
Поскольку в примере 12.1 рассматривается система нечеткого вывода с двумя входами, необходимо добавить в разрабатываемую систему F1S еще одну входную переменную. Для этого следует выполнить команду меню Edit>Add Variable... >Input В результате выполнения этой команды на диаграмме системы нечеткого вывода появится новый желтый прямоугольник с именем второй входной переменной: input2 (рис. 12.7).
Рис. 12.7. Вид редактора FIS после добавления второй входной переменной
Изменим имена входных и выходных переменных, предложенных системой MATLAB по умолчанию. Для этого необходимо выделить прямоугольник с именем соответствующей переменной, выполнив щелчок на его изображении
на диаграмме (стороны выделенного прямоугольника имеют красный цвет). После чего следует набрать новое имя переменной в поле ввода Name в правой части редактора FIS. Результат изменения имен переменных системы нечеткого вывода изображен на рис. 12.8.
Рис. 12.8. Вид редактора FIS после изменения имен переменных, предложенных системой MATLAB по умолчанию
Примечание
Чтобы избежать проблем с корректным отображением символов кириллицы, следует давать такие имена переменным, которые состоят из одного слова без дополнительных служебных символов. Более того, в версиях MATLAB 6.0/6.1 имеется ряд проблем с кириллицей в названиях переменных и термов (символы "с" и "я"). Как это ни парадоксально, эти проблемы отсутствуют в предыдущей версии MATLAB 5.3.1. Именно по этой причине вторая переменная в примере 12.1 получила название "ужин".
Изменим имя системы нечеткого вывода (Untitled), предложенное по умолчанию. Для этого сохраним создаваемую структуру FIS во внешнем файле с именем mytip. f is, выполнив команду меню File>Export>To Disk.... При этом
будет вызвано стандартное диалоговое окно сохранения файла, в котором пользователю предлагается ввести имя соответствующего файла (расширение файла приписывается автоматически). Оставим без изменения предложенные системой MATLAB по умолчанию: метод нечеткого логического И (And method)— значение "min", метод нечеткого логического ИЛИ (Or method) — значение "max", метод импликации (Implication) — значение "min", метод агрегирования (Aggregation) — значение "max" ' и метод дефаззификации (Defuzzification)— значение "centroid". Очевидно, эти значения могут быть изменены пользователем.
Теперь необходимо определить термы и их функции принадлежности для входных и выходных переменных нашей системы нечеткого вывода. Для этой цели следует воспользоваться редактором функций принадлежности, который может быть вызван одним из следующих способов:
двойным щелчком на значке прямоугольника с именем соответствующей переменной;
Рис. 12.9. Вид редактора функций принадлежности после его вызова с функциями принадлежности для термов переменной "обслуживание", предложенных системой MATLAB по умолчанию
командой меню Edit>Membership Functions... (предварительно должен быть выделен прямоугольник с именем соответствующей переменной);
нажатием клавиш <Ctrl>+<2> (предварительно также должен быть выделен прямоугольник с именем соответствующей переменной).
После вызова редактора функций принадлежности каждой из переменных по умолчанию предлагается 3 терма с треугольными функции принадлежности (рис. 12.9).
Вначале изменим диапазон определения значений входных переменных, для чего в полях ввода Range и Display Range изменим верхнее значение с 1 на 10 (баллов). Аналогично выполняются изменения соответствующих диапазонов для выходной переменной "чаевые", при этом верхнее значение 1 следует заменить на 30 (%). Изменения подтверждаются нажатием на клавишу <Enter> на клавиатуре.
Рис. 12.10. Вид редактора функций принадлежности после изменения названия термов и типа их функций принадлежности для первой входной переменной "обслуживание”
Далее изменим названия термов первой входной переменной "обслуживание”, предложенные системой MATLAB по умолчанию (mf 1, mf2, mf3) на "плохое", "хорошее", "отличное” соответственно. После чего изменим тип функций принадлежности первой переменной, предложенный по умолчанию, на функции типа Гаусса (gaussmf), выбрав соответствующий пункт в поле Туре. Параметры вновь заданных функций принадлежности оставим без изменения. Вид редактора функций принадлежности после внесенных изменений для первой из входных переменных изображен на рис. 12.10.
Аналогичным образом изменим названия термов второй входной переменной "ужин" и удалим один из термов с соответствующей функцией принадлежности. Для удаления терма следует выделить удаляемую функцию принадлежности и нажать клавишу <DeIete> на клавиатуре. Переход к редактированию переменной осуществляется щелчком на изображении прямоугольника с именем необходимой переменной. Для переменной "ужин" изменим тип функций принадлежности ее термов на трапециевидные функции (trapmf) и их параметры следующим образом: для терма "подгоревший” зададим параметры [0 0 1 3], а для терма "превосходный" — [7 9 10 10].
Вид редактора функций принадлежности после внесенных изменений для второй входной переменной изображен на рис. 12.11.
Рис. 12.11. Вид редактора функций принадлежности после изменения названия термов и типа их функций принадлежности для второй входной переменной "ужин"
Наконец, изменим названия термов и параметры функций принадлежности для выходной переменной "чаевые", оставив без изменения треугольный тип функций принадлежности, предложенный системой MATLAB. Для терма "малые" зададим параметры [О 5 10], а для терма "средние"— [10 15 20], для терма "щедрые" — [20 25 30]. Вид редактора функций принадлежности после сделанных изменений для выходной переменной "чаевые" изображен на рис. 12.12.
Рис. 12.12. Вид редактора функций принадлежности после изменения названия термов и типа их функций принадлежности для входной переменной "обслуживание"
Теперь настала очередь определить правила нечеткого вывода для разрабатываемой экспертной системы. Для этой цели следует воспользоваться редактором правил, который может быть вызван одним из следующих способов:
двойным щелчком на значке квадрата в центре с именем создаваемой системы нечеткого вывода (myfis);
командой меню Edit>RuIes...;
нажатием клавиш <Ctrl>+<3>.
Поскольку первоначально база правил нечеткого вывода пуста, то после вызова редактора правил центральное многострочное поле ввода не содержит
никаких правил. Для их определения следует использовать поля меню и переключатели в нижней части графического интерфейса редактора правил. Для задания первого правила следует оставить выделенные по умолчанию поле с именем терма "плохое" для первой входной переменной, поле с именем терма "подгоревший" для второй входной переменной и поле с именем терма "малые" для выходной переменной. Далее следует переключатель Connection поставить в положение or (логическое ИЛИ) и нажать на кнопку Add rule. После этого первое правило с символами кириллицы отобразится в верхнем окне.
Аналогичным образом задается второе правило, для которого следует выделить имена термов "хорошее", "попе" и "средние", и третье правило с именами термов "отличное", "превосходный" и "щедрые" для соответствующих переменных. Вид редактора правил после их определения для разрабатываемой экспертной системы изображен на рис. 12.13.
Заметим, что в поле ввода Weight отображается вес каждого правила, который можно изменять в пределах интервала [0, 1] (оставим без изменения его значение по умолчанию, равное 1 для всех правил). Этот же вес правил записывается в круглых скобках в окне правил после каждого из правил нечеткого вывода.
Рис. 12.13. Вид редактора правил нечеткого вывода после их определения
После задания правил нечеткого вывода оказывается возможным получить результат нечеткого вывода (значение выходной переменной) для конкретных значений входных переменных. С этой целью необходимо открыть программу просмотра правил одним из следующих способов:
командой меню View>Rules редактора FIS;
командой меню View>RuIes редактора функций принадлежности;
командой меню View>RuIes редактора правил;
нажатием клавиш <Ctrl>+<5>.
После вызова программы просмотра правил для нашей системы нечеткого вывода по умолчанию для входных переменных предложены средние значения из интервала их допустимых значений (значения [5 5] в поле ввода Input). Это означает, что посетитель ресторана оценивает качество обслуживания в 5 баллов и качество ужина также в 5 баллов. Этим значениям входных переменных соответствует значение чаевых в 15%, которое отображается выше прямоугольников правил в правой части окна программы просмотра.
Изменим значения входных переменных для другого случая, которому соответствует качество обслуживания в 0 баллов ("хуже некуда") и качество ужина в 10 баллов ("лучше не бывает"). Для этого курсор мыши переместим в поле ввода Input и введем соответствующие значения входных переменных: [0 10]. Система MATLAB оставит значение чаевых без изменения (15%), однако на диаграмме правил можно заметить результаты выполненных изменений (рис. 12.14).
Поскольку процесс нечеткого моделирования предполагает анализ результатов нечеткого вывода при различных значениях входных переменных с целью установления адекватности разработанной нечеткой модели (в данном случае— экспертной системы), рассмотрим и другие случаи. Предположим, что качество обслуживания оценивается в 10 баллов ("лучше не бывает"), а качество ужина— в 2 балла ("бывает и хуже, но реже"). Введем соответствующие значения переменных аналогичным способом. В этом случае разработанная система нечеткого вывода рекомендует нам оставить чаевые в размере 16.4%.
Если же предположить, что качество обслуживания по прежнему отличное (10 баллов), а качество ужина несколько улучшилось и оценивается в 3 балла, то величина чаевых существенно изменится и станет равной 24.7%. Более того, дальнейшее увеличение качества ужина не оказывает изменения величины чаевых. В частности, для значений входных переменных [10 10] величина чаевых составит по-прежнему 24.7%. Если некоторым из посетителей такая экспертная система покажется неадекватной (в частности, для случая значений входных переменных [10 10] можно бы оставить максимальные чаевые в 30%), то разработанная система нечеткого вывода потребует модификации. Данная модификация может потребовать изменения существующих правил или добавления новых, а также изменения параметров функций принадлежности
входных и выходной переменных. Более тонкая настройка модели может быть связана с увеличением количества термов для каждой из входных и выходных переменных, что, в свою очередь, приведет к увеличению количества правил в системе нечеткого вывода и общему усложнению модели. Все это предлагается выполнить читателям самостоятельно в качестве упражнения.
Рис. 12.14. Вид программы просмотра правил нечеткого вывода после изменения значений входных переменных на [0 10]
Для окончательного анализа разработанной нечеткой модели может оказаться полезной программа просмотра поверхности нечеткого вывода, которая может быть вызвана одним из следующих способов:
командой меню View>Surface редактора FIS;
командой меню View>Surface редактора функций принадлежности;
командой меню View>Surface редактора правил;
командой меню View>Surface программы просмотра правил;
нажатием клавиш <Ctrl>+<6>.
Графический интерфейс программы просмотра поверхности нечеткого вывода для разработанной нечеткой модели изображен на рис. 12.15.
Рис. 12.15. Вид программы просмотра поверхности нечеткого вывода для разработанной нечеткой модели
Эта программа служит для общего анализа адекватности нечеткой модели, позволяя оценить влияние изменения значений входных нечетких переменных на значение одной из выходных нечетких переменных. В случае необходимости можно получить график зависимости выходной переменной от одной из входных переменных. Для этого необходимо выбрать нужную переменную в раскрывающемся списке X (input), а в раскрывающемся списке Y (input) выбрать значение -попе-. Полученный график зависимости изображен на рис. 12.16.
Полученный график зависимости соответствует среднему значению второй входной переменной ("качество ужина") в 5 баллов. Это значение может быть изменено пользователем, для чего следует ввести нужное значение в поле ввода Ref. Input:. Заметим, что значение NaN для первой входной переменной соответствует ее изменению во всем интервале определения [0, 10].
Заканчивая рассмотрение процесса разработки простейшей системы нечеткого вывода в интерактивном режиме, следует заметить, что наиболее эффективным этот способ оказывается для сложных нечетких моделей с большим числом переменных и правил нечеткого вывода. В этом случае задание переменных и функций принадлежности их термов в графическом режиме, а также визуализация правил позволяют существенно уменьшить трудоемкость разработки нечеткой модели, снизить количество возможных ошибок и сократить общее время нечеткого моделирования.
Рис. 12.16. График зависимости выходной переменной от первой из входных переменных для разработанной нечеткой модели
В то же время следует помнить, что количество переменных и правил в нечеткой модели, которые могут быть визуализированы, ограничено. В частности, если число входных переменных превышает 10, то их отображение в соответствующих графических редакторах происходит с искажениями.
Процесс разработки системы нечеткого вывода в режиме команд может дополнить, а в отдельных случаях, и заменить процесс разработки в интерактивном режиме, предоставляя пользователю полный контроль над всеми переменными рабочей области системы MATLAB.
Процесс разработки системы нечеткого вывода в режиме командной строки
Процесс разработки системы нечеткого вывода в режиме команд реализуется с помощью функций, входящих в состав пакета Fuzzy Logic Toolbox. В системе MATLAB реализованы следующие основные группы функций нечеткой логики: □ 11 встроенных функций принадлежности для термов нечетких переменных (табл. 12.2);
функции управления структурой данных системы нечеткого вывода FIS (табл. 12.3);
функции дополнительных методов и взаимодействия с пакетом Simulink (табл. 12.4).
Подробное описание функций пакета Fuzzy Logic Toolbox приводится в приложении 3.
Таблица 12.2. Функции принадлежности пакета Fuzzy Logic Toolbox
Функция
Назначение
dsigmf
Разность двух сигмоидальных функций принадлежности
gauss2mf
Функция принадлежности типа двухсторонней кривой Гаусса
gaussmf
Функции принадлежности типа кривой Гаусса
gbellmf
Обобщенная функция принадлежности типа колоколообразной кривой
pimf
Л-образная функция принадлежности
psigmf
Произведение двух сигмоидальных функций принадлежности
smf
S-образная функция принадлежности
sigmf
Сигмоидальная функция принадлежности
trapmf
Трапециевидная функция принадлежности
trimf
Треугольная функция принадлежности
zmf
Z-образная функция принадлежности
Таблица 12.3. Функции управления структурой данных системы нечеткого вывода
Функция
Назначение
addmf
Добавляет функцию принадлежности в систему нечеткого вывода FIS
addrule
Добавляет правило в систему нечеткого вывода FIS
Таблица 12.3 (окончание)
Функция
Назначение
addvar
Добавляет переменную в систему нечеткого вывода FIS
defuzz
Дефаззификация функции принадлежности
evalfis
Выполняет нечеткий вывод в FIS
evalmf
Выполняет оценку функции принадлежности
gensurf
Генерирует поверхность вывода FIS
getfis
Выводит свойства нечеткой системы
mf 2mf
Преобразует параметры двух функций принадлежности
newfis
Создает новую систему нечеткого вывода FIS
parsrule
Проверяет правильность правил вывода
plotfis
Отображает структуру входа/выхода системы нечеткого вывода FIS
plotmf
Изображает графики всех функций принадлежности соответствующей лингвистической переменной
readfis
Загружает систему нечеткого вывода FIS с диска
rmmf
Удаляет функцию принадлежности из системы нечеткого вывода FIS
rmvar
Удаляет переменную из системы нечеткого вывода FIS
setfis
Задает свойства нечеткой системы
showfis
Отображает обозначения FIS
shcwrule
Отображает правила системы нечеткого вывода FIS
writefis
Сохраняет систему нечеткого вывода FIS на диске
Таблица 12.4. Функции дополнительных методов
Функция
Назначение
anfis
Программа обучения системы нечеткого вывода FIS типа Сугено (только МЕХ)
fem
Программа нахождения кластеров для алгоритма нечетких с-средних FCM
fuzarith
Выполнение операций нечеткой арифметики
fuzblock
Библиотека нечеткой логики пакета Simulink
genfisl
Генерирует матрицу системы нечеткого вывода FIS с использованием "жадного" алгоритма grid
Таблица 12.4 (окончание)
Функция Назначение
genfis2 Генерирует матрицу системы нечеткого вывода FIS с использованием субтрактивной кластеризации (subtractive clustering)
s f f isS-функция нечеткого вывода для пакета Simulink
subciust Программа нахождения кластеров для алгоритма субтрактивной кластеризации
При разработке системы нечеткого вывода в режиме команд необходимо знать, что нечеткая модель в рабочей области системы MATLAB представляется в форме так называемой структуры.
Примечание
Понятие структуры в общем случае является разновидностью типа данных языка программирования типа C/C++, для записи которого используется специальное ключевое слово struct.
В системе MATLAB структура представляет собой тип данных, которая состоит из полей и возможно других структур. В свою очередь, поле представляет собой простейший тип данных (число или строка). В рабочей области MATLAB структура представляется в форме массива и обозначается ключевым словом struct array.
Каждая система нечеткого вывода в MATLAB представляется в форме специальной структуры, которая может быть графически представлена с использованием нотации языка UML в форме диаграммы классов (рис. 12.17).
Для представления собственно правил в рабочей области MATLAB используется специальный цифровой формат. При этом все правила системы нечеткого вывода представляются в форме матрицы, содержащей одну или несколько строк. Каждой строке соответствует отдельное правило. Если система нечеткого вывода имеет т входных переменных и п выходных переменных, то соответствующая матрица должна иметь в точности т + п + 2 столбцов.
Первые т столбцов относятся к входным переменным системы. При этом номер столбца должен соответствовать номеру терма для конкретной входной переменной. Следующие п столбцов относятся к выходным переменным системы вывода. При этом каждый столбец также имеет номер, который должен соответствовать номеру функции принадлежности для выходной переменной.
Столбец с номером т + п + I содержит вес, с которым применяется данное правило. Вес может принимать любое значение между нулем и единицей. В общем случае целесообразно задавать вес равным 1 (задается по умолчанию).
Столбец с номером т + п + 2 содержит число 1, если для подусловий данного правила используется нечеткий оператор and (нечеткое И). Этот столбец содер-
жит число 2, если для подусловий данного правила используется нечеткий оператор он (нечеткое ИЛИ).
Так, например, для демонстрационного примера "Чаевые в ресторане", который хранится во внешнем файле с именем tipper.fis и может быть загружен в рабочую область командой readf is (' tipper'), правила в рабочей области MATLAB будут представлены в форме следующей матрицы:
[11112
2 0 2 1 1
3 2 3 1 2 ]
Рис. 12.17. Диаграмма классов структур системы нечеткого вывода MATLAB в нотации языка UML
Для данного примера первая строка этой матрицы может быть интерпретирована в форме следующего правила нечеткого вывода: "Если первая входная переменная принимает значение первого терма (функция принадлежности с номером 1) ИЛИ вторая входная переменная принимает значение первого терма (функция принадлежности с номером 1), то выходная переменная принимает значение первого терма (функция принадлежности с номером 1)". При этом вес данного правила равен 1. Если на месте некоторого терма расположена цифра 0, то это означает, что соответствующая входная переменная не используется в правиле нечеткого вывода с номером строки данной матрицы.
Таким образом, процесс разработки системы нечеткого вывода в командном режиме представляет собой последовательность функций, которые в фиксированном порядке определяют все элементы (поля и вложенные структуры) исходной структуры системы MATLAB. Ниже приводится последовательность команд, которые позволя'ют разработать систему нечеткого вывода для примера 12.1. При вводе соответствующих функций в окно команд результаты их выполнения можно контролировать либо с помощью окна просмотра рабочей области, либо непосредственно в окне команд, для чего имена всех функций следует набирать без завершающей точки с запятой. Напомним, что последний символ блокирует или запрещает отображение информации в окне команд после выполнения соответствующих функций.
Примечание
При разработке системы нечеткого вывода в режиме команд рекомендуется отказаться от символов кириллицы в записи имен переменных и их термов. В противном случае могут возникнуть проблемы с корректным функционированием системы MATLAB. Следует также заметить, что для задания полей исходной структуры с именем а и вложенных в нее структур в качестве разделителя используется принятый в некоторых языках программирования символ точки.
|gs$^*"^s8W^^
ij^^lp-^функций разработки системы нечеткого ^"^
1 «имера^гл "Чаевые в рАртсране"
a=newfis('mytip');
а.input(1) .name=’service1;
a.input(1).range=[0 10];
a.input(1).mf (1).name='poor';
a.input(l).mf(1).type=*gaussmf';
a.input(1).mf(1).params=[1.5 0];
a.input(1) .mf(2).name='good';
a.input(1).mf(2).type=*gaussmf';
a.input(1).mf(2).params=[1.5 5] ;
a.input(1) .mf(3).name=1 excellent'; a.input(1).mf(3).type=*gaussmf*;
а.input(1).mf (3).params=[1.5 10 ];
а.input(2) .name='food*;
a. input (2) . ranges0 10];
a.input(2).mf(l),name='rancid';
a.input(2) .mf(1).type='trapmf';
a. input (2) .mf (1) .paramsS~2 0 1 3];
a.input(2).mf(2).name='delicious';
a.input(2). mf (2).type='trapmf1;
a.input(2).mf (2),params=[7 9 10 12];
a.output(l).name='tip';
a. output (1). ranges 0 30];
a.output(1).mf(1).name='cheap1;
a.output(1).mf(1).type='trimf *;
a.output(1).mf(1).params=[0 5 10];
a.output(1).mf(2).name='average';
a.output(1).mf(2).type='trimf';
a.output(1).mf(2).params=[10 15 20];
a.output(1).mf(3).name='generous';
a.output(1). mf (3).type='trimf';
a.output(1).mf (3).params=[20 25 30];
a.rule(1).antecedent=[1 1];
a.rule(1) .consequent=[1];
a.rule(1) .weight=l;
a.rule(1).connections;
a.rule(2) .antecedents 2 0];
a.rule(2).consequent=[2];
a.rule(2).weights;
a. rule (2) .connections;
a.rule(3).antecedent=[3 2 ];
a.rule(3).consequent=[3];
a.rule(3) . weights;
a.rule(3) .connections;
showfis(a)
В результате выполнения этой последовательности функций в окне команд отобразится информация о созданной структуре нечеткого вывода (рис. 12.18).
Дальнейший анализ разработанной нечеткой модели можно выполнить либо с использованием графических средств программы просмотра правил описанным ранее способом, либо непосредственно с помощью функции командной строки
evaifis. Так, например, если после задания одним из рассмотренных выше способов структуры нечеткого вывода с именем а ввести команду evaifis ([ 10 0], а), то в окне команд получим результат нечеткого вывода для значения первой входной переменной 10 и второй входной переменной 0 в форме: ans = 15.0000.
Рис. 12.18. Результат отображения созданной структуры нечеткого вывода в режиме команд
Примечание j
Чтобы исключить ввод каждой из функций рассмотренной выше последовательности команд, можно скопировать приведенный листинг в буфер обмена и сохранить его во внешнем файле в папке C:\MATLAB6p1\toolbox\fuzzy или в
папке C:\MATLAB6p1\work (если система MATLAB установлена по умолчанию на диске С:) с произвольным именем и расширением гл. Для этой цели можно использовать встроенный редактор m-файлов системы MATLAB, вызываемый командой edit, либо любой другой ASCII-редактор. Заметим, что текстовый процессор MS Word из пакета MS Office не вполне подходит для этой цели. Если после сохранения созданного подобным образом m-файла на диске ввести его имя в окне команд, то получим результат, аналогичный последовательному вводу этих команд с клавиатуры. В данном случае мы познакомились с одним из простейших приемов программирования в системе MATLAB, особенности которого будут рассмотрены в главе 14.
В данной главе изложены лишь основные приемы разработки систем нечеТкого вывода в среде MATLAB. В последующих главах рассматриваются другие особенности и дополнительные возможности, которые предоставляет пользователям система MATLAB. Что касается выбора наиболее удобного режима разработки и исследования нечетких моделей, то оставим этот вопрос на усмотрение читателей.
В заключение следует заметить, что режим команд служил основным в первых версиях системы MATLAB. В последних ее версиях все большее число задач может быть решено с помощью соответствующих графических средств, что представляется более удобным с точки зрения наглядности и трудоемкости.
Глава 13
Нечеткая кластеризация в Fuzzy Logic Toolbox
Общая характеристика задач кластерного анализа
Термином кластерный анализ принято обозначать совокупность методов, подходов и процедур, разработанных для решения проблемы формирования однородных классов в произвольной проблемной области.
Необходимость анализа больших объемов объективной и субъективной информации, связанных с неформализуемыми и плохо формализуемыми задачами различной физической природы, потребовала интенсивного развития новых научных направлений, среди которых важную роль играют прикладная статистика и методы анализа данных.
Методология применения методов прикладной статистики основывается на предположении о вероятностной интерпретации анализируемой информации и получении в результате применения этих методов закономерностей, имеющих стохастический характер.
Методы анализа данных, составной частью которых являются методы кластерного анализа, напротив, не используют априорных предположений о вероятностной природе исходной информации и руководствуются только эвристическими соображениями о характере и особенностях исследуемой совокупности объектов. Разработанные в рамках данного направления методы и алгоритмы приобретают в последнее время новое содержание в связи с исследованиями по теории возможностей. В основе данной теории лежит нечетко-возможностная интерпретация неопределенности, что в значительной степени согласуется с исходными установками методологии анализа данных.
Кластерный анализ (или автоматическая классификация, распознавание образов без учителя, численная таксономия, кластер-анализ) занимает одно из центральных мест среди методов анализа данных и представляет собой совокупность подходов, методов и алгоритмов, предназначенных для нахождения некоторого разбиения исследуемой совокупности объектов на подмножества относительно сходных, похожих между собой объектов. При этом исходным допущением для выделения таких подмножеств, получивших специальное название кластеров.
которые иногда называют также таксонами или просто классами, служит лишь неформальное предположение о том, что объекты, относимые к одному кластеру, должны иметь большее сходство между собой, чем с объектами из других кластеров.
Таким образом, выявление или нахождение кластеров в множестве данных исследуемой совокупности должно удовлетворять следующим требованиям:
каждый кластер должен представлять собой концептуально однородную категорию и содержать похожие объекты с близкими значениями свойств или признаков;
совокупность всех кластеров должна быть исчерпывающей, т. е. охватывать все объекты исследуемой совокупности;
□ кластеры должны быть взаимно исключающими, т. е. ни один из объектов исследуемой совокупности не должен одновременно принадлежать двум различным кластерам.
Формально под задачей кластерного анализа заданного множества объектов понимается задача нахождения некоторого теоретико-множественного разбиения (группировки, покрытия) этого исходного множества объектов на непересе- кающиеся подмножества таким образом, чтобы элементы, относимые к одному подмножеству, отличались между собой в значительно меньшей степени, чем элементы из разных подмножеств. Обладающие подобным свойством подмножества также называются кластерами.
Возможность использования различных подходов к формальному определению кластеров послужила исходной причиной разработки большого многообразия методов и алгоритмов кластеризации. Методы и алгоритмы кластерного анализа как инструмент предварительного или разведочного анализа данных незаменимы при поиске закономерностей в больших наборах многомерных данных, таких как хранилища данных. При этом проблема кластер-анализа приобретает самостоятельное значение в контексте интеллектуального анализа данных (Data Mining).
Задача нечеткой кластеризации и алгоритм ее решения
Концептуальная взаимосвязь между кластерным анализом и теорией нечетких множеств основана на том обстоятельстве, что при решении задач структуризации сложных систем большинство формируемых классов объектов размыты по своей природе. Эта размытость состоит в том, что переход от принадлежности к непринадлежности элементов к данным классам скорее постепенен, чем скачкообразен. Поэтому наиболее адекватный ответ в подобного рода случаях следует искать не на вопрос: "Принадлежит ли рассматриваемый элемент тому или иному классу или нет?", а на вопрос: "В какой степени данный элемент принадлежит рассматриваемому классу?".
Требование нахождения однозначной кластеризации элементов исследуемой проблемной области является достаточно грубым и жестким, особенно при решении плохо или слабо структурируемых задач системного анализа. Методы нечеткой кластеризации ослабляют это требование. Ослабление требования осуществляется за счет введения в рассмотрение нечетких кластеров и соответствующих им функций принадлежности, принимающих значения из интервала [0, 1].
Таким образом, в общем случае задачей нечеткой кластеризации является нахождение нечеткого разбиения или нечеткого покрытия множества элементов исследуемой совокупности, которые образуют структуру нечетких кластеров, присутствующих в рассматриваемых данных. Эта задача сводится к нахождению степеней принадлежности элементов универсума искомым нечетким кластерам, которые в совокупности и определяют нечеткое разбиение или нечеткое покрытие исходного множества рассматриваемых элементов. Ниже приводится формальная постановка задачи нечеткой кластеризации и описание одного из наиболее конструктивных алгоритмов ее решения.
Общая формальная постановка задачи нечеткого кластерного анализа
Пусть исследуемая совокупность данных представляет собой конечное множество элементов Я={щ, ai,..., a„}, которое получило название множество объектов кластеризации. В рассмотрение также вводится конечное множество признаков или атрибутов Р=\р\,рг,...,рч^, каждый из которых количественно представляет некоторое свойство или характеристику элементов рассматриваемой проблемной области. При этом натуральное п определяет общее количество объектов данных, а натуральное q— общее количество измеримых признаков объектов.
Далее предполагается, что для каждого из объектов кластеризации некоторым образом измерены все признаки множества Р в некоторой количественной шкале. Тем самым каждому из элементов а^А поставлен в соответствие некоторый вектор xt = (xi', хг',..., х^, где х-— количественное значение признака р^Р для объекта данных а^А. Для определенности будем полагать, что все х] принимают некоторые действительные значения, т. е. x-^!R.
Вообще говоря, проблема измерения свойств или признаков у объектов данных является нетривиальной и имеет самостоятельное значение. В частности, процесс измерения свойств может быть реализован в различных шкалах, каждая из которых характеризуется допустимым преобразованием данных. В связи с этим для уточнения особенностей процесса измерений различают несколько типов шкал измерений. Ниже дается их краткая характеристика.
Шкала наименований или номинальная шкала. Является наиболее простой из всех шкал измерений, поскольку может быть использована для установления отношения эквивалентности элементов относительно рассматриваемого признака. В данном случае в процессе измерения некоторого признака объекту ставится в соответствие некоторый символ или номер, который лишь отлича-
ет одно значение признака от другого. Допустимым преобразованием в шкалах наименований, которое не искажает результаты измерения признаков в этой шкале, является биективное или взаимно однозначное отображение между двумя множествами значений признаков. Бинарная шкала, которая состоит из двух элементов, обозначаемых произвольными символами, например: {0, 1} или {+,-}, удобно считать частным случаем шкалы наименований. Примеры признаков, измеряемых в шкалах наименований,— пол человека, марка автомобиля, название улиц, городов и других объектов.
Порядковая шкала или шкала порядка. В дополнение к различию элементов по значениям признаков позволяет установить отношение порядка элементов относительно рассматриваемого признака. В этом случае в процессе измерения признака объекту ставится в соответствие, как правило, некоторое натуральное или целое число, которое может быть интерпретировано как значение признака в баллах. Допустимым преобразованием в шкалах порядка, которое не искажает результаты измерения признаков в этой шкале, является произвольное монотонно возрастающее отображение или функция между двумя множествами значений признаков. Примеры признаков, измеряемых в порядковых шкалах, — баллы или оценки на экзаменах, баллы за выступления в некоторых видах спорта.
Интервальная шкала или шкала интервалов. В дополнение к порядку элементов по значениям признаков позволяет установить равенство интервалов значений рассматриваемого признака. В этом случае в процессе измерения признака объекту ставится в соответствие, как правило, некоторое действительное число, равное значению этого признака. Допустимым преобразованием в шкалах интервалов является произвольная линейная возрастающая функция между двумя множествами значений признаков. Характерным свойством этой шкалы является отсутствие абсолютного нуля. Пример признака, измеряемого в интервальной шкале, — температура в шкалах Цельсия и Фаренгейта.
Шкала отношений. В дополнение к равенству интервалов элементов по значениям признаков позволяет установить равенство отношений значений рассматриваемого признака. В этом случае в процессе измерения признака объекту ставится в соответствие также некоторое действительное число, равное значению этого признака. Допустимым преобразованием в шкалах отношений является произвольная линейная возрастающая функция, проходящая через нуль. Характерным свойством этой шкалы является наличие абсолютного нуля. Примеры признаков, измеряемых в шкале отношений, — расстояние в метрах и футах, масса в килограммах и фунтах, скорость в км/ч и узлах.
Возвращаясь к измерению признаков у объектов кластеризации, само множество признаков следует выбирать таким образом, чтобы все х] были измерены в шкале отношений или шкале интервалов. Именно в этом случае результаты нечеткой кластеризации имеют содержательную интерпретацию, адекватную проблеме нахождения нечетких кластеров.
Векторы значений признаков х,= (xV, Х21,..., хд') удобно представить в виде так называемой матрицы данных D размерности (лху), каждая строка которой равна значению вектора xt.
Задача нечеткого кластерного анализа формулируется следующим образом: на основе исходных данных D определить такое нечеткое разбиение 91(54)= {>ЯЛ. | 51кс ^ (4.39)—(4.40) или нечеткое покрытие 3(51)={51Л | 54A.cz 54} (4.38) множества 54=А на заданное число с нечетких кластеров Лк (ке {2,..., с}), которое доставляет экстремум некоторой целевой функции /(91(54)) среди всех нечетких разбиений или экстремум целевой функции/(3(54)) среди всех нечетких покрытий.
Сформулированная здесь задача нечеткого кластерного анализа является слишком общей. Для ее решения требуется дополнительно уточнить вид целевой функции и тип искомых нечетких кластеров (поиск нечеткого разбиения или покрытия).
Уточненная постановка задачи нечеткой кластеризации
Один из вариантов конкретизации задачи нечеткого кластерного анализа, для решения которой может быть использована специальная функция fem системы MATLAB, основан на алгоритме ее решения методом нечетких с-средних.
Для уточнения вида целевой функции /(3(Я)) в рассмотрение вводятся некоторые дополнительные понятия. Прежде всего предполагается, что искомые нечеткие кластеры представляют собой нечеткие множества Як, образующие нечеткое покрытие исходного множества объектов кластеризации Я=А, для которого условие (4.38) принимает следующий вид:
5>ла("‘)=1 №^v (13J)
где с — общее количество нечетких кластеров 5^ (ке (2,..., с}), которое считается предварительно заданным (cg/Уи с>1).
Примечание
Необходимость условия (13.1) обуславливается тем обстоятельством, что искомое нечеткое покрытие должно "покрывать" обычное не нечеткое множество объектов кластеризации А, которое в то же время является нечетким множеством 54, для которого значения функций принадлежности каждого из элементов равны 1. Иногда нечеткое покрытие, которое удовлетворяет условию (13.1), называют нечетким разбиением в смысле Заде.
Далее для каждого нечеткого кластера вводятся в рассмотрение так называемые типичные представители или центры vk искомых нечетких кластеров 51к
(ke{2,...,c^, которые рассчитываются для каждого из нечетких кластеров и по каждому из признаков по следующей формуЛе:
п
1>дДа^т -^j
vj=—„ (V^g{2,...,c},VpvgP),(13.2)
1^лД<# /=1
где т — некоторый параметр, называемый экспоненциальным весом и равный некоторому действительному числу (т>\\ Каждый из центров кластеров представляет собой вектор у*=(А, /2,..., /,) в некотором g-мерном нормированном пространстве, изоморфном №, т. е. v^lR1, если все признаки измерены в шкале отношений.
Наконец, в качестве целевой функции будем рассматривать сумму квадратов взвешенных отклонений координат объектов кластеризации от центров искомых нечетких кластеров:
, п сq
fUk. v)) = Ё ЁОЧ ka^T-v^)2,(13.3)
r=U=ly=l
где m— экспоненциальный вес нечеткой кластеризации (wg#?, /?/>!), значение которого задается в зависимости от количества элементов (мощности) множества А. Чем больше элементов содержит множество А, тем меньшее значение выбирается для т.
Задача нечеткой кластеризации. Задача нечеткой кластеризации может быть сформулирована следующим образом: для заданных матрицы данных D, количества нечетких кластеров с (cg/Уи с>1), параметра т определить матрицу U значений функций принадлежности объектов кластеризации а^А нечетким кластерам Як (&g{2,..., с}), которые доставляют минимум целевой функции (13.3) и удовлетворяют ограничениям (13.1), (13.2), а также дополнительным ограничениям (13.4) и (13.5):
^д,^^0 (У£е{2,...,с});(13.4)
(=1
р^(«,)>0(V&g{2,..., г}, Х/а,еАу(13.5)
Условие (13.4) исключает появление пустых нечетких кластеров в искомой нечеткой кластеризации. Последнее условие (13.5) имеет чисто формальный характер, поскольку непосредственно следует из определения функции принадлежности нечетких множеств. В этом случае минимизация целевой функции (13.3) минимизирует отклонение всех объектов кластеризации от центров нечетких кластеров пропорционально значениям функций принадлежности этих объектов соответствующим нечетким кластерам.
Поскольку целевая функция (13.2) не является выпуклой, а ограничения (13.1), (13.2), (13.4), (13.5) в своей совокупности формируют невыпуклое множество допустимых альтернатив, то в общем случае задача нечеткой кластеризации относится к многоэкстремальным задачам нелинейного программирования.
Достоинством постановки задачи нечеткой кластеризации в виде (13.1)—(13.5) является естественная интерпретация как искомых нечетких кластеров, определяемых функциями принадлежности (13.5), так и их типичных представителей или центров (13.2), которые также определяются в результате решения поставленной задачи.
Недостатком данной постановки задачи нечеткой кластеризации является необходимость априорного задания общего числа нечетких кластеров с (се^и с>1), которое в отдельных случаях может быть неизвестно. Это обстоятельство может потребовать привлечения дополнительных процедур для его определения либо решения поставленной задачи для нескольких значений с с последующим выбором наиболее адекватного результата нечеткой кластеризации.
Алгоритм решения задачи нечеткой кластеризации методом нечетких с-средних
Основные идеи алгоритма для решения сформулированной задачи нечеткой кластеризации были предложены Дж. К. Данном (J. С. Dunn) в 1974 г. Этот алгоритм первоначально получил название нечеткого алгоритма ISODATA (fuzzy ISODATA или F-ISODATA). В 1980 г. Дж. К. Беждек (J. С. Bezdek) теоретически доказал сходимость этого алгоритма. Позже в 1981 г. Дж. Беждек обобщил алгоритм FISODATA на случай произвольных нечетких многообразий и предложил для этого алгоритма название нечетких с-средних (FCM, Fuzzy C-Means). Именно под таким названием .алгоритм сейчас наиболее известен и реализован в системе MATLAB.
Алгоритм FCM для решения задачи нечеткой кластеризации в виде (13.1)—(13.5) имеет итеративный характер последовательного улучшения некоторого исходного нечеткого разбиения 9$(.Я)={.ЯА| .Я^с^Я}, которое задается пользователем или формируется автоматически по некоторому эвристическому правилу. На каждой из итераций рекуррентно пересчитываются значения функций принадлежности нечетких кластеров и их типичные представители.
Алгоритм FCM закончит работу в случае, когда произойдет выполнение заданного априори некоторого конечного числа итераций, либо когда минимальная абсолютная разность между значениями функций принадлежности на двух последовательных итерациях не станет меньше некоторого априори заданного значения.
Формально алгоритм FCM определяется в форме итеративного выполнения следующей последовательности шагов:
Предварительно необходимо задать следующие значения: количество искомых нечетких кластеров с (се/^и с>1), максимальное количество итераций алгорит-
ма л (se/^, параметр сходимости алгоритма е (ee/AV), а также экспоненциальный вес расчета целевой функции и центров кластеров m (как правило, т=2). В качестве текущего нечеткого разбиения на первой итерации алгоритма для матрицы данных D задать некоторое исходное нечеткое разбиение 9$(.54)={^A| ^ЯдС^} на с непустых нечетких кластеров, которые описываются совокупностью функций принадлежности pk(at) (Vke{2,..., с}, Х/щеА).
Для исходного текущего нечеткого разбиения ^рЧ)={.54А | .54Ас .54} по формуле (13.2) рассчитать центры нечетких кластеров г/ (V/ce{2,..., с}, Vp^F) и значение целевой функции ДЛк, v/) по формуле (13.3). Количество выполненных итераций положить равным 1.
Сформировать новое нечеткое разбиение <И'(Я)={Як1 Якс Я} исходного множества объектов кластеризации А на с непустых нечетких кластеров, характеризуемых совокупностью функций принадлежности ц'А(«,) (V&e{2,..., с}, УщеА), которые определяются по формуле:
(V/ce{2„(V/ce{2„с}, Х/щеА).с}, Х/щеА).(13.6)(13.6)
(V/ce{2„
(V/ce{2„
с}, Х/щеА).
с}, Х/щеА).
(13.6)
(13.6)
При этом если для некоторого &е{2,..., с} и некоторого щеА значе- q , -
ние ^(т^ ~ Ту ) =0, то для соответствующего нечеткого кластера Як полага
ем ц'А.(я,)=1, а для остальных j/l, (V7e{2,:.., с}, Ы^ полагаем ц'/(«,)=0. Если же таких ке {2,..., с} для некоторого о^А окажется несколько, т. е. для них зна-
q .
чение ^(xj ~ v* ) = 0, то эвристически для меньшего из к полагаем ц'А(«,)= 1, а 7=1
для остальных /е{2,..., с}, Uk полагаем ц'/^^О.
Для нового нечеткого разбиения 9?'(J7l)={J7lA.| J?lA.c J71} по формуле (13.2) рассчитать центры нечетких кластеров v/ (V/ce{2,..., с}, Х/р^Р) и значение целевой функцииfX-^k, >/) по формуле (13.3).
Если количество выполненных итераций превышает заданное число s или же модуль разности l№, vf)-A^, vhUe, т.е. не превышает значения параметра сходимости алгоритма е, то в качестве искомого результата нечеткой кластеризации принять нечеткое разбиение 9Г(7?0 = {^а I ^к£ ^} и закончить выполнение алгоритма. В противном случае считать текущим нечетким разбиением 94(^54) = 9Г(У1) и перейти на шаг 3 алгоритма, увеличив на 1 количество выполненных итераций.
Алгоритм FCM по своему характеру относится к приближенным алгоритмам поиска экстремума для целевой функции (13.3) при наличии ограничений: (13.1), (13.2), (13.4), (13.5). Поэтому в результате выполнения данного алгоритма определяется, вообще говоря, локально-оптимальное нечеткое разбиение ЯГ^). которое описывается совокупностью функций принадлежности у^а) (VA:g{2,..., с), Ча.еА'), а также центры или типичные представители каждого из нечетких кластеров у/ (V£e{2,..., с}, XJpj^PY
Примечание
Иногда возникает необходимость представить результаты нечеткой кластеризации в форме обычного не нечеткого разбиения. С этой целью можно использовать один из рассмотренных ранее методов дефаззификации (см. главу 7) для конечного множества значений функции принадлежности или любой другой метод приведения к четкости. Поскольку все функции принадлежности искомого нечеткого разбиения цл(а,) (V/cg{2,..., с}, Va,e/1) нормированы условием (13.1), в качестве метода дефаззификации можно использовать метод максимального значения функции принадлежности.
Опыт решения прикладных задач нечеткой кластеризации показывает, что наиболее эффективный путь получения адекватных результатов заключается в многократном выполнении алгоритма FCM для различных исходных нечетких разбиений и, если не известно количество нечетких кластеров, для различных значений с (се№ и с>1). Полученные результаты для одинаковых значений с сравниваются по значениям целевой функции полученных нечетких разбиений с целью принятия окончательного решения об искомой нечеткой кластеризации.
Средства решения задачи нечеткой кластеризации в пакете Fuzzy Logic Toolbox
В системе MATLAB для решения задачи нечеткой кластеризации на основе алгоритма FCM может быть использована специальная функция командной строки fem или специальный графический интерфейс кластеризации, вызываемый функцией findcluster. Рассмотрим более подробно особенности применения этих средств.
Решение задачи нечеткой кластеризации в командном режиме
Функция командной строки fem предназначена для решения задачи нечеткой кластеризации с использованием алгоритма FCM. Она может быть вызвана в одном из следующих форматов:
[center, U, obj_fcn] = fcm(data, cluster_n)
или
[center, U, obj_fcn] = fcm(data, cluster_n, options)
Входными аргументами этой функции являются:
data: матрица исходных данных D кластеризации, z-строка которой представляет информацию об одном объекте нечеткой кластеризации а^А в форме вектора х«= (xi', xj х^, где х-— количественное значение признака Pj&P для объекта данных а^А;
cluster_n: число искомых нечетких кластеров с (с&№н с>1).
Выходными аргументами этой функции являются:
center: матрица центров искомых нечетких кластеров у/ (V&g {2,..., с), Mpje.P\ каждая строка которой представляет координаты центра одного из нечетких кластеров в форме вектора Vk (V£e{2,..., с});
и: матрица значений функций принадлежности искомого нечеткого разбиения цА.(я,) (V^e{2,..., с}, Va.eA);
obj fcn: значения целевой функции j{3lk, v/) на каждой из итераций работы алгоритма.
Функция fcm(data, cluster_n, options) может быть вызвана с дополнительными аргументами options, которые предназначены для управления процессом нечеткой кластеризации, а также для изменения критерия остановки работы алгоритма и/или отображения информации на экране монитора.
Эти дополнительные аргументы имеют следующие значения:
options (1) : экспоненциальный вес m для расчета матрицы нечеткого разбиения и (по умолчанию это значение равно т=2);
options (2): максимальное число итераций 5 (по умолчанию это значение равно s= 100);
options (3): параметр сходимости алгоритма 8 (по умолчанию это значение равно 8=0.00001);
options (4): информация о текущей итерации, отображаемая на экране монитора (по умолчанию это значение равно 1).
Если любое из значений дополнительных аргументов равно NaN (не число), то для этого аргумента используется значение по умолчанию. Функция fem заканчивает свою работу, когда алгоритм FCM выполнит максимальное количество итераций s, или когда разность между значениями целевых функций на двух последовательных итерациях будет меньше заданного априори значения параметра сходимости алгоритма е.
Примечание j
Функция fem реализована в виде m-файла и использует, в свою очередь, три другие функции: функцию initfem для формирования матрицы исходного разбиения некоторым случайным образом, функцию distfem для расчета матрицы расстояний между точками данных и центрами кластеров и функцию stepfem для значений
целевой функции и функций принадлежности объектов нечетким кластерам на каждой итерации работы алгоритма FCM. Все эти функции также реализованы в виде m-файлов и находятся в папке C:\MATI_AB6p1\toolbox\fuzzy\fuzzy.
Пример! 3.1.В качестве примера рассмотрим множество данных, содержащихся в системе MATLAB и использующихся в качестве тестовой совокупности объектов нечеткой кластеризации. Эти данные представляют собой матрицу данных D размерности (140x2), которые содержатся в файле fcmdata.dat, поставляемом вместе с системой MATLAB. В этом случае матрица данных D соответствует 140 объектам, для каждого из которых выполнены измерения по двум признакам, что является удобным для визуализации исходных данных и результатов нечеткой кластеризации в двумерном пространстве на плоскости. График координат точек на плоскости, соответствующих объектам нечеткой кластеризации, изображен на рис. 13.1.
1
0.90.90.80.80.7 ■0.7 ■0.60.60.50.50.40.40.3 -0.3 -0.2 -0.2 -0.1 ■0.1 ■%%^°о°о о <^°о°о о <оо %оо %'Л°>'Л°>о^оо^о0.20.2ооооо оо оо °оо °о0.40.4оо° о о% < ОЙ° О°° о о% < ОЙ° О°О° Ооо о @ о ° <6° сО° Ооо о @ о ° <6° с°C.о хз> ОоО л о°C.о хз> ОоО л о°°°0= 6»°°°0= 6»о° ОО% ^ °Ооо<£ Оо° ОО% ^ °Ооо<£ О0.60.60808о ооо оо11
0.9
0.9
0.8
0.8
0.7 ■
0.7 ■
0.6
0.6
0.5
0.5
0.4
0.4
0.3 -
0.3 -
0.2 -
0.2 -
0.1 ■
0.1 ■
%
%
^°о°о о <
^°о°о о <
оо %
оо %
'Л°>
'Л°>
о^о
о^о
0.2
0.2
о
о
о
о
о о
о о
о °о
о °о
0.4
0.4
о
о
° о о% < ОЙ° О°
° о о% < ОЙ° О°
О° Ооо о @ о ° <6° с
О° Ооо о @ о ° <6° с
°C.
о хз> Оо
О л о
°C.
о хз> Оо
О л о
°°°0
= 6»
°°°0
= 6»
о° ОО% ^ °Ооо<£ О
о° ОО% ^ °Ооо<£ О
0.6
0.6
08
08
о о
о
о о
о
1
1
Рис. 13.1. Множество объектов нечеткой кластеризации,соответствующих матрице данных из файла fcmdata.dat
В листинге 13.1 приводится последовательность команд, которые обеспечивают решение задачи нечеткой кластеризации множества данных D и визуализацию полученных результатов. В этом примере используется первый формат записи функции fem.
; Пйфгинг^!. Пример решения задачи нечеткой кластеризаций с помощью • функции fem с использованием первого формата ее записи
load fcmdata.dat
plot(femdata(:,1),femdata(:,2),1 o',1 color1,'k') [center,U,obj_fcn] = fcm(fcmdata, 2);
maxU = max(U);
indexl = find(U(l, :)== maxU);
index2 = find(U(2, :)== maxU);
line(femdata(indexl,1), femdata(indexl, 2), 'linestyle', 'none',... 'marker', 'o','color', 'g');
line(femdata(index2,1), femdata(index2, 2), 'linestyle', 'none',... 'marker', 'x','color', 'r');
hold on
plot(center(1,1),center(1,2),'ко','markersize', 10, 'Linewidth', 2) plot(center(2,1),center(2,2),'ко','markersize', 10, 'Linewidth', 2)
Результат решения задачи нечеткой кластерйзации для 2-х нечетких кластеров с использованием указанной последовательности команд может быть визуализирован (рис. 13.2).
Рис. 13.2. Результат решения задачи нечеткой кластеризации для матрицы данных из файла fcmdata.dat
Если после записи функции fem в третьей строке не указывать точку с запятой (;), то в окне команд будут отображены значения координат центров нечетких кластеров, значения функций принадлежности объектов нечетким кластерам и значения целевой функции на каждой из итераций работы алгоритма FCM (рис. 13.3).
Теперь выполним небольшой эксперимент и изменим параметры функции fem, заданные по умолчанию. Для этого будем использовать второй формат ее записи с дополнительными значениями аргументов (листинг 13.2).
Рис. 13.3. Результаты решения задачи нечеткой кластеризации в окне команд системы MATLABРис. 13.3. Результаты решения задачи нечеткой кластеризации в окне команд системы MATLABM0№№WBi «fee.CiMcns 1ьзованиемM0№№WBi «fee.CiMcns 1ьзованиемВй^^^ШйУ!Вй^^^ШйУ!
Рис. 13.3. Результаты решения задачи нечеткой кластеризации в окне команд системы MATLAB
Рис. 13.3. Результаты решения задачи нечеткой кластеризации в окне команд системы MATLAB
M0№№WB
i «fee.CiMcns 1ьзованием
M0№№WB
i «fee.CiMcns 1ьзованием
Вй^^^ШйУ!
Вй^^^ШйУ!
load fcmdata.dat
center,U,obj_fcn] = fcm(fcmdata, 2, [2.5 1000 0.0000001 1]);
maxU = max (U) ;
indexl = find(U(1,:)== maxU);
index2 = find(U(2, :)== maxU);
line(femdata(indexl,1), femdata(indexl, 2), 'linestyle', 'none',... •marker', 'o','color', 'g');
line(femdata(index2,1), femdata(index2, 2), 'linestyle', 'none',... 'marker', 'x','color', 'r');
hold on
plot(center(1,1),center(1,2),'ko','markersize', 10, 'Linewidth', 2) plot(center(2,1),center(2,2),'ko','markersize', 10, 'Linewidth', 2)
Результат решения задачи нечеткой кластеризации для 2-х нечетких кластеров с использованием указанной последовательности команд визуализирован (рис. 13.4). В этом случае экспоненциальный вес /и=2.5, максимальное количество итераций 5=1000, параметр сходимости алгоритма £=0.0000001. Как можно увидеть, столь высокая точность расчетов практически не нужна, поскольку алгоритм заканчивает свою работу после выполнения 16 итераций.
Рис. 13.4. Результат решения задачи нечеткой кластеризации с дополнительными параметрами функции fem
Анализ графиков, изображенных рис. 13.2 и рис. 13.4, показывает их практическую идентичность, что позволяет сделать вывод о согласованности полученных результатов нечеткой кластеризации.
Решение задачи нечеткой кластеризации с использованием средств графического интерфейса
Функция findcluster предназначена для вызова графического интерфейса программы нечеткой кластеризации для метода нечетких с-средних и метода субтрактивной кластеризации (subtractive clustering). Она может быть вызвана в одном из следующих форматов: findcluster или findcluster (’ file. dat').
В первом случае функция findcluster вызывает графический интерфейс GUI программы для выполнения нечеткой кластеризации алгоритмом FCM и/или нечеткой субтрактивной кластеризации. При этом необходимо загрузить в рабочую область исходные данные из внешнего файла с помощью кнопки Load Data (рис. 13.5).
Рис. 13.5. Выбор внешнего файла для загрузки исходных данных в рабочую область
Выбор метода нечеткой кластеризации осуществляется с помощью раскрывающегося списка Methods. Для каждого из методов нечеткой кластеризации в соответствующих строках ввода установлены значения параметров алгоритмов по умолчанию. Эти значения могут быть изменены пользователем. Для этого необходимо установить курсор ввода в соответствующее поле и набрать нужные цифры с учетом допустимых значений параметров. Назначение этих параметров для алгоритма FCM описано ранее при рассмотрении функции fem. Назначение этих параметров для алгоритма субтрактивной кластеризации будет описано ниже при рассмотрении функции subclust.
Во втором случае функция findcluster ('file.dat') вызывает графический интерфейс, а в рабочую обрасть автоматически загружаются данные кластеризации из внешнего файла file.dat. При этом на графике отображаются значения матрицы данных для первых двух признаков.
После нажатия на кнопку Start начинает работу соответствующий алгоритм нечеткой кластеризации с параметрами, установленными по умолчанию или измененными пользователем. Результаты работы алгоритма отображаются на графике (рис. 13.7). Найденные центры кластеров изображены черными кругами и их координаты можно сохранить во внешнем файле с целью последующего анализа.
Иногда число нечетких кластеров, необходимых для работы алгоритма FCM, априори является неизвестным. В этом случае целесообразно использовать реализованный в системе MATLAB так называемый алгоритм субтрактивной кластеризации.
Рис. 13.6. Результат вызова графического интерфейса нечеткой кластеризации с уже загруженными исходными данными из внешнего файла fcmdata.dat
Рис. 13.7. Результат решения задачи нечеткой кластеризации алгоритмом FCM с помощью графического интерфейса для множества данных из внешнего файла fcmdata.dat
Решение задачи определения числа кластеров для нечеткой кластеризации в системе MATLAB
В случае отсутствия каких-либо априорных предположений относительно количества нечетких кластеров в системе MATLAB можно использовать функцию командной строки subciust или метод субтрактивной нечеткой кластеризации, реализованный в графическом интерфейсе кластеризации.
Идея метода субтрактивной кластеризации состоит в том, что каждая точка данных предполагается в качестве центра потенциального кластера, после чего следует вычислить некоторую меру способности каждой точки данных представлять центр кластера. Эта количественная мера основана на оценке плотности точек данных вокруг соответствующего центра кластера.
Данный алгоритм, который является обобщением метода кластеризации Р. Ягера (R. Yager), основан на выполнении следующих действий:
Выбрать точку данных с максимальным потенциалом для представления центра первого кластера.
Удалить все точки данных в окрестности центра первого кластера, величина которой задается параметром radii, чтобы определить следующий нечеткий кластер и координаты его центра.
Эти две процедуры повторяются до тех пор, пока все точки данных не окажутся внутри окрестностей радиуса radii искомых центров кластеров.
Функция командной строки subciust находит центры кластеров методом субтрактивной кластеризации. Она используется в следующем формате:
[C,S] = subciust(X, radii, xBounds, options)
При этом матрица х содержит данные кластеризации, каждая строка которой соответствует координатам отдельной точки данных. Параметр radii представляет собой вектор, компоненты которого принимают значения из интервала [0. 1] и задают диапазон расчета центров кластеров по каждому из признаков измерений. При этом делается предположение, что все данные содержатся в некотором единичном гиперкубе. В общем случае малые значения параметра radii приводят к нахождению малого числа больших по количеству точек кластеров. Наилучшие результаты получаются при значениях radii между 0.2 и 0.5.
Аргумент xBounds представляет собой матрицу размерности (2xq), которая определяет способ отображения матрицы данных х в некотором единичном гиперкубе. Здесь q— количество рассматриваемых признаков в множестве данных. Этот аргумент является необязательным, если матрица х уже нормализована. Первая строка этой матрицы содержит минимальные значения интервала измерения каждого из признаков, а вторая строка — максимальные значения измерения каждого из признаков.
Для изменения заданных по умолчанию параметров алгоритма кластеризации может быть использован дополнительный вектор options. Компоненты этого вектора могут принимать следующие значения:
options (1) = quashFactor— параметр, используемый в качестве коэффициента для умножения значений radii, которые определяют окрестность центра кластера. Это осуществляется с целью уменьшения влияния потенциала граничных точек, рассматриваемых как часть нечеткого кластера (по умолчанию это значение равно 1.25);
options (2) = acceptRatio— параметр, устанавливающий потенциал как часть потенциала центра первого кластера, выше которого другая точка данных может рассматриваться в качестве центра другого кластера (по умолчанию это значение равно 0.5);
options (3) = rejectRatio— параметр, устанавливающий потенциал как часть потенциала центра первого кластера, ниже которого другая точка данных не может рассматриваться в качестве центра другого кластера (по умолчанию это значение равно 0.15);
options (4) = verbose — если значение этого параметра не равно нулю, то на экран монитора выводится информация о выполнении процесса кластеризации (по умолчанию это значение равно 0).
Функция subclust возвращает матрицу с значений координат центров нечетких кластеров. При этом каждая строка этой матрицы содержит координаты одного центра кластера. Эта функция также возвращает вектор S, компоненты которого представляют a-значения, которые определяют диапазон влияния центра кластера по каждому из рассматриваемых признаков. При этом все центры кластеров обладают одинаковым множеством а-значений.
При м е р 13.2. Рассмотрим решение задачи определения количества кластеров для множества исходных данных из примера 13.1. Напомним, что эти данные представляют собой матрицу данных D размерности (140x2), которые содержатся в файле fcmdata.dat. В этом случае вызов функции субтрактивной кластеризации может быть реализован следующим образом:
load fcmdata.dat
[C,S] = subclust(femdata,[0.5 0.5],[],[1.25 0.5 0.15 1])
Поскольку для множества данных из примера 13.1 используется 2 признака (матрица datin имеет 5 столбцов), то по каждому из признаков задаются радиусы окрестностей 0.5 и 0.5 соответственно. Коэффициенты шкалирования для отображения множества данных в единичный гиперкуб получаются на основе минимального и максимального значений данных.
Аргумент squashFactor = 1.25 указывает на то, что необходимо определить кластеры, недалеко расположенные друг от друга. Аргумент acceptRatio = 0.5 указывает на то, что для нахождения центров кластеров очень высокий потенциал не является необходимым. Аргумент rejectRatio = 0.15 не исключает из рассмотрения точки данных, не обладающих высоким потенциалом. Наконец,
последний аргумент verbose = 1 разрешает вывод информации о выполнении процесса кластеризации на экран монитора.
В результате выполнения этого фрагмента команд будут получены следующие значения матрицы центров кластеров и вектора о-значений (рис. 13.8). Как можно заметить, для указанных значений аргументов рассматриваемая функция субтрактивной кластеризации находит три нечетких кластера и отображает координаты их центров в командном окне системы MATLAB.
Рис. 13.8. Результат решения задачи нечеткой субтрактивной кластеризации с помощью функции командной строки для множества данных из внешнего файла fcmdata.dat
Для решения задачи субтрактивной кластеризации может быть также использован рассмотренный выше графический интерфейс нечеткой кластеризации, который вызывается функцией findcluster. Вызов этой функции может быть осуществлен в одном из следующих форматов: findcluster или findcluster (' file.dat'), особенности которых были изложены ранее и иллюстрированы на рис. 13.5—13.7.
Пример 13.3. Рассмотрим решение задачи определения количества кластеров для множества исходных данных из примера 13.1 с использованием графического интерфейса кластеризации. Для этого загрузим исходные данные из внешнего файла командой findcluster('fcmdata.dat•), выберем метод кластеризации subtractive в раскрывающемся списке Methods и нажмем кнопку Start. Остальные параметры оставим предложенными по умолчанию. Результат решения задачи субтрактивной кластеризации изображен на рис. 13.9 и также содержит 3 нечетких кластера.
Рис. 13.9. Результат решения задачи нечеткой субтрактивной кластеризации с помощью графического интерфейса кластеризации для множества данных из внешнего файла fcmdata.dat
Таким образом, система MATLAB позволяет решать задачи нечеткой кластеризации двумя способами: с помощью функций командной строки и с помощью графического интерфейса кластеризации. Первый из них является более трудоемким, но обладает большей гибкостью и возможностью отображения в окне команд значений матриц центров нечетких кластеров, функций принадлежности и целевой функции. Второй способ представляется наиболее удобным для выполнения некоторой серии расчетов для различных значений входных параметров с целью визуального анализа полученных результатов.
В заключение этой главы следует отметить, что результаты нечеткой кластеризации имеют приближенный характер и могут служить лишь для предварительной структуризации информации, содержащейся в множестве исходных данных. Решая задачи нечеткой кластеризации, нужно помнить об особенностях и ограничениях процесса измерения признаков у совокупности объектов кластеризации. Поскольку нечеткие кластеры формируются на основе евклидовой метрики, соответствующее пространство признаков должно удовлетворять аксиомам метрического пространства. В то же время для поиска закономерностей в проблемной области, имеющих неметрический характер, необходимо использовать специальные средства и инструментарий, разработанные для интеллектуального анализа данных (Data Mining).
Глава 14
Основы программирования в среде MATLAB
Гибкость и популярность системы MATLAB во многом основана на возможности создания, редактирования и выполнения в ее среде программ, написанных пользователями. Эти программы могут расширять функциональные возможности системы или модифицировать отдельные ее функции желательным для пользователей образом. При этом используется собственный язык программирования MATLAB, который по форме хотя и напоминает отдельные конструкции языка C/C++, но имеет синтаксические отличия. Именно по этой причине ниже рассматриваются основные элементы языка программирования системы MATLAB.
4.1. Основы языка программирования системы MATLAB
Достоинством системы MATLAB является то обстоятельство, что практически все специальные функции реализованы в виде так называемых m-файлов, которые представляют собой обычные текстовые файлы, содержащие конструкции языка программирования MATLAB. При желании понять способ реализации той или иной функции можно всегда обратиться к исходному тексту соответствующего файла. Чтобы отметить этот факт, иногда говорят, что система MATLAB распространяется вместе с исходными текстами программ, имея в виду соответствующие т-файлы.
Примечание
Сравните этот факт с одним из наиболее часто употребляемых сторонниками Linux аргументов, когда, говоря о достоинствах этой ОС, специально и неоднократно подчеркивается, что она распространяется в своих исходных кодах.
М-файлы системы MATLAB могут быть двух видов: так называемые скрипты, которые содержат последовательность некоторых команд, и функции, которые предполагают использование некоторых аргументов и возвращают определенное значение. В обоих случаях используется один и тот же язык программирова-
ния MATLAB, который также применяется и при работе в окне команд. Эта унификация языка представляет собой исключительное удобство для пользователей, поскольку достаточно изучить только один язык программирования для всестороннего и глубокого использования возможностей системы MATLAB.
Как следствие этой унификации все операции и команды, рассмотренные ранее, могут быть использованы в тексте m-файлов. В системе MATLAB выполнение команд и операций реализовано в форме интерпретации, т. е. все команды т- файла выполняются в линейной последовательности без компиляции исходного текстового файла. Некоторые особенности выполнения действий с переменными были рассмотрены ранее при знакомстве с основными приемами работы в окне команд (см. главу ///В дополнение к основным алгебраическим операциям системы MATLAB (табл. 11.2) в логических выражениях могут быть использованы также операции сравнения (табл. 14.1) и логические операции (табл. 14.2).
Таблица 14.1. Операции сравнения
Символ операции
Имя функции
Название
Пример
<
It
Меньше
i < 10
<=
1е
Меньше или равно
5 <= р!л2
>
gt
Больше
pi > 1
>=
де
Больше или равно
а >= Ь
= =
eq
Равно
'String'=='string
~=
ne
Не равно
Result~=0
Таблица 14.2. Логические операции
Символ операции
Имя функции
Название
Пример
&
and
Логическое И
А&В
1
or
Логическое неисключающее ИЛИ
А|В
not
Логическое НЕ
'А
xor
Логическое исключающее ИЛИ
хог(А, В)
Центральным понятием языка программирования системы MATLAB является математическое выражение, которое состоит из имен отдельных переменных, имен функций и операций. Имя переменной должно начинаться с буквы и может содержать произвольное количество букв, цифр и символов подчеркивания. В то
же время система MATLAB различает переменные только по первым 31 символам их имен, а также с учетом их регистра (большие и маленькие буквы различаются).
Как уже упоминалось ранее, каждая переменная имеет внутреннее представление в форме матрицы или массива. При этом скалярная переменная рассматривается как массив размерности 1x1. С другой стороны, каждая переменная имеет свой тип, который определяет допустимые операции над значениями этой переменной. В системе MATLAB предусмотрены 14 фундаментальных типов данных, которые представляют собой отдельные классы (рис. 14.1).
Рис. 14.1. Диаграмма классов фундаментальных типов данных системы MATLAB (в нотации языка UML)
Примечание
Тип данных user class определяется пользователем и не является формально определенным в языке программирования системы MATLAB. Классы Array и Numeric являются абстрактными, поэтому их имена записаны курсивом согласно нотации языка UML.
Краткая характеристика указанных фундаментальных типов данных и их примеры приводятся в табл. 14.3.
Таблица 14.3. Характеристика фундаментальных типов данных MATLAB
Тип данных Пример
Описание
int8, intlo, int (magic (3) ) int32
Целое число co знаком 8, 16 32 бит длины соответственно. Используются для представления целых чисел в памяти с целью более эффективных преобразований. Этот тип данных непосредственно не может быть использован в математических вычислениях
uint8,uint(magic(3))
uintl6,
uint32
Целое число без знака 8, 16 32 бит длины соответственно. Также используются для представления целых чисел в памяти с целью более эффективных преобразований. Этот тип данных непосредственно не может быть использован в математических вычислениях
double3*10,'300
Произвольное число со знаком двойной точно-
5+6i
сти. Основной тип данных во всех математических вычислениях и расчетах. Используется по умолчанию при задании произвольной числовой переменной
sparesspeye(5)
Разреженная числовая матрица размерности (2x2) с элементами двойной точности. Используется для более компактного представления в памяти матриц с большим количеством нулевых элементов. Для разреженных матриц определены специальные операции
single3*10л38
Произвольное число со знаком одинарной точности. Используется для более компактного представления чисел в памяти. Этот тип данных непосредственно не может быть использован в математических вычислениях
char’Hello'
Произвольный символ в кодировке Unicode. Массив данных типа char используется для представления строк произвольной длины. Для символьных строк определены специальные операции
cell{17 'hello'
eye(2)}
Ячейка с произвольным элементом. Массивы ячеек могут содержать элементы, представляющие различные типы данных, включая и другие массивы ячеек
structure a.day=12
Структура представляет собой массив полей и,
a.color-'red*
возможно, других структур. Обращение к отдельным полям структуры осуществляется обычным для языка программирования способом — с помощью оператора "точка"
Таблица 14.3 (окончание)
Тип данных
ПримерОписание
function handle
@humpsДескриптор функции. Используется для подста
новки одних функций в качестве аргументов других функций
java class
java, awt. Frame Класс языка программирования Java. Применяется в случае использования классов, определенных в библиотеке Java, для программирования графических интерфейсов
user class
inline ('sin (х)') Тип данных, определяемый пользователем. Используется при написании программ в стиле объектно-ориентированного программирования
По умолчанию система MATLAB рассматривает каждую переменную как произвольное число со знаком (double), однако формат ее отображения в окне команд может различаться и зависит от настроек системы. При этом доступ ко всем переменным текущего сеанса работы осуществляется с помощью браузера рабочей области.
При разработке m-файлов следует различать два основных типа этих файлов:
т-файл-сценарий, который может быть использован для определения значений переменных в рабочей области или их изменения. Этот тип т-файлов аналогичен записи команд в окне команд в текущем сеансе работы с программой. Например, последовательность функций для задания системы нечеткого вывода примера 12.1 "Чаевые в ресторане", сохраненная во внешнем текстовом файле с расширением т, представляет собой файл-сценарий;
т-файл-функция, который реализует выполнение некоторой функции или процедуры и возвращает некоторое значение. Пример разработки файла- функции, который расширяет функциональность системы MATLAB, приводится далее в разд. 14.3.
Наибольший интерес в контексте программирования в системе MATLAB имеют m-файлы второго типа, которые записываются в специальном формате и могут содержать математические выражения, операторы управления последовательностью команд и текстовые комментарии.
Каждый m-файл-функция должен иметь специальную структуру. А именно — начинаться с ключевого слова function, после которого следует имя выходной переменной, имя функции и список ее входных параметров (аргументов). Завершаться текст m-файла может произвольным оператором, комментарием или выражением (ключевое слово end в этом случае не используется). При этом имя т- файла должно совпадать с именем функции.
Вызов реализованной в m-файле функции осуществляется аналогично обычной функции в окне команд. При этом указывается имя функции и список конкретных значений параметров (аргументов). В этом случае соответствующий т-файл
автоматически исполняется системой MATLAB, в результате чего реализованной в нем функцией будет возвращено конкретное значение.
Следует заметить, что все используемые в тексте m-файла переменные по своему характеру являются локальными, т. е. не оказывают побочного влияния на значения переменных с аналогичными именами из рабочей области. В тексте т- файла в случае необходимости могут быть использованы имена других функций системы MATLAB.
В общем случае последовательность выполнения команд и операторов т-файла является линейной, что типично для процедурного стиля написания программ. Для изменения линейной последовательности команд могут быть использованы специальные операторы управления, которые рассматриваются далее.
Операторы управления последовательностью выполнения команд
Операторами языка программирования MATLAB являются специальные синтаксические конструкции языка, предназначенные для выполнения определенных функциональных задач.
Условный оператор if...elseif...else...end
Условный оператор предназначен для реализации последовательного бинарного ветвления в программе на основе проверки определенных логических условий.
Полный синтаксис этого оператора:
i f логическое. условие.!, выражения.1; е 1 s е i f логическое, условие„2, выражения.2; else выражения^; end
Условный оператор выполняется следующим образом. Вначале проверяется логическое условие.!. Если оно принимает значение "истина", то последовательно выполняются выражения.!, после чего управление передается на конец условного оператора— end. Если логическое условие.! принимает значение "ложь", то выражения.! не выполняются и происходит переход к проверке логического усло- вия_2. Если оно в свою очередь принимает значение "истина", то последовательно выполняются выражения_2, после чего управление передается на конец условного оператора — end. Если логическое условие_2 принимает значение "ложь", то выражения_2 не выполняются, а выполняются выражения.З, после чего выполнение условного оператора заканчивается.
Возможно использование более простого синтаксиса этого оператора в форме:
if логическое.условие.!, выражения.!; else выражения.2; end или в простейшей форме:
i f логическое, условие, выражения; е nd
Наряду с этим возможны и более сложные варианты этого оператора с вложенными условиями elseif. Для записи логических выражений могут быть использова-
ны операции сравнения (см. табл. 14.1) и логические операции (см. табл. 14.2). Важно помнить, что в системе MATLAB в случае истинности логическое выражение принимает значение 1, а в случае ложности — значение 0.
Я. г*^име|> использования условного ошоато
6 i 4^1 SsVtofW^)*.Avi^v*»* ^мЧУ.Ч^еtwi W№?i&* 1 «^4 w
n = 1;
s = -10:10;
if (s(15)>=0)&(n>0), n =s(16) + 1;
end
С примером использования условного оператора в полном варианте его синтаксиса можно познакомиться, просмотрев текст m-файла defuzz.т, который реализует различные методы дефаззификации в системе MATLAB.
Оператор выбора switch...case...otherwise...end
Оператор выбора предназначен для реализации параллельного ветвления в программе для выполнения различных вариантов выражений.
Полный синтаксис этого оператора:
switch исходное „выражение
case значение_1, выражения _1;
case значение_2, выражения_2;
otherwise выражения_0;
end
Оператор выбора выполняется следующим образом. Исходное_выражение должно быть определено как некоторый скаляр (число или символ) или как строка текста. Если оно равно значению_1, то последовательно выполняются вы- ражения_1, после чего управление передается на конец оператора выбора— end. Если исходное „выражение не равно значению_1, то выражения_1 не выполняются, а управление передается на следующий по порядку вариант case. Если исход- ное_выражение равно значению_2, то последовательно выполняются выраже- ния_2, после чего управление также передается на конец оператора выбора -— end. Если исходное „выражение не равно значению_2, то выражения_2 не выполняются, а управление передается на следующий по порядку вариант case. Вы- ражения_0 выполняются только в том случае, если исходное_выражение не равно ни одному из вариантов значений.
Возможно использование более простого синтаксиса этого оператора без секции otherwise выражения_0. Оператор выбора варианта целесообразно использо-
вать в качестве альтернативы условному оператору, чтобы избежать вложенности при проверке логических условий.
; Листинг14,2. Примериспользоваи^я оператора выбора варианта• ]
г = 1;
switch г
case 5, з = 10;
case 10, s = 15;
otherwise s = 20;
end
Если окажется, что значение исходного_выражения равно нескольким значениям вариантов case, то в этом случае будет выполнен первый по порядку вариант последовательности выражений.
Оператор цикла for...end
Этот оператор предназначен для выполнения группы выражений языка фиксированное число раз, причем соответствующее число повторений заранее известно и задается до начала выполнения выражений цикла.
Синтаксис этого оператора:
for переменная=начальное_значение : приращение : конечное_значение, выражения; end
Если приращение отсутствует, то по умолчанию оно принимается равным 1. Цикл типа for выполняется следующим образом. В начале цикла переменной цикла присваивается началъное_значение, и последовательно выполняются выражения тела цикла (итерация), после чего управление снова передается на его начало. Переменной цикла присваивается следующее значение, определяемое значением приращения. Если новое значение переменной цикла не превышает ко- нечного_значения переменной, то выполняется очередная итерация цикла. Выполнения выражений цикла заканчивается, когда значение переменной цикла превысит ее конечное_значение. В этом случае выражения цикла не выполняются и происходит переход к выполнению следующего за end выражения.
; Листин t^&Ill^MapSi^^ ^еаНйй,оператора цикла типа foe
’ для подсчетад^м£^^^ш сел "S
s = 0;
for п = 1:100,
s = s + п;
end
Циклы типа for могут быть вложенными. В качестве значений переменной цикла могут выступать элементы некоторого массива или матрицы. Ниже приводится вариант предыдущего примера, в котором переменная цикла принимает значения из заранее определенного массива.
; JlW^N'i^оператора имела типа?<№М
i$llt8;;.8dneMiyi^wi^^й$г$
А = 1:100;
s = 0;
for n = А,
s = s + n;
end
В случае использования в качестве значений переменной цикла элементов некоторой матрицы следует помнить, что элементы матрицы упорядочены по столбцам.
Оператор цикла while...end
Этот оператор предназначен для выполнения группы выражений языка несколько раз, причем соответствующее число повторений заранее неизвестно и определяется проверкой некоторого условия внутри цикла.
Синтаксис этого оператора:
while логическое-условие, выражения-, end
Цикл типа while выполняется следующим образом. Вначале цикла проверяется логическое_условие. Если оно принимает значение ’’истина", то последовательно выполняются выражения тела цикла, после чего управление снова передается на его начало. Если логическое„условие принимает значение "ложь", то выражения не выполняются и происходит переход к выполнению следующего за end выражения.
,...., .у^,,„. , ^^^..y^t.^t^^i,.^.^ ,^j^t ^^ V"-1”'"^”!”^^^^^V? Ч?'1"'-М ' Tf^iw*^^1*^.*-<*? ТУ^ * • S'”*?*j**’,y ■ "г у’Ayy* •*' УА‘У-У’У^УУ-УУ^у.*"^»^» ^ ' •
ЬЛиокнг [^йрлш^. мбпбпь-э^аания оп^4^ i
= 1Й&М»1р1||^^^ HstrypahbHbiX чиеел г kА'". К-«./Х,^
&»еУ«»е:^"Л^ё1ё«^Л’8^^ьэ£Л^*^1«хЯеё:<1&у;«<ё»А-*ёЙ^Л'*У|«.ч^Л<^<еёеЛ^#Л'<ьё"«№«^ЛЧ^ёМ1Ъе14"ё«ё<'4.&^
n = 1;
s=0;
while п<=100,
з = з + п;
n = n + 1;
end
Следует отметить, что невнимательное использование цикла типа while может служить источником ошибок и даже зависания системы MATLAB в случае выполнения бесконечного цикла.
Оператор continue
Этот оператор используется в теле операторов цикла for или while, чтобы закончить выполнение выражений текущей итерации. При вложенных циклах оператор continue передает управление на окончание итерации содержащего этот оператор цикла.
s = 0;
for n = 1:100,
if rem(n,2)==0, continue;
end;
s = s + n;
end
Заметим, что в приведенном фрагменте программы использована специальная
функция rem (х, у), которая возвращает остаток от деления х на у.
Оператор break
Этот оператор используется в теле операторов цикла for или while, чтобы закончить выполнение выражений всего цикла. После выполнения этого оператора управление передается следующему за end выражению. При вложенных циклах оператор break передает управление на окончание только того цикла, в котором находится этот оператор.
з = 0;к = 0;for п = 1:100,з = 0;к = 0;for п = 1:100,
з = 0;
к = 0;
for п = 1:100,
з = 0;
к = 0;
for п = 1:100,
if rem(n,2)==0,
continue;
end;
s=s+n;
к=к+1;
if к == 10, break;
end;
end
Оператор return
Этот оператор используется, как правило, в теле функций, чтобы закончить выполнение любых оставшихся выражений и возвратить управление в вызвавшую эту функцию программу или в окно команд текущего сеанса работы MATLAB.
function out = sumodd (k,n)
if k>=n,
error('k должно быть меньше чем n ! ') ; end
out = 0;
j = 0;
for i = l:n,
if rerr.(i, 2) ==0,
continue;
end;
out=out+i;
j=j+l;
if j==k,
return;
end;
end
Для того чтобы данную функцию можно было бы использовать в системе MATLAB, необходимо сохранить текст данной программы во внешнем файле с именем sumodd.т, а сам файл поместить в один из рабочих каталогов системы MATLAB, например, в каталог C:\MATLAB6pl\work. После этого созданная нами функция подсчета суммы первых к нечетных натуральных чисел в интервале от 1 до л становится доступной в любой программе и в сеансе работы
MATLAB. Для использования этой функции ее необходимо вызвать с заданными значениями двух ее аргументов. Например, если в окне команд набрать
» х = sumodd(5,100)
то получим значение:
X =
25
Рассмотренный пример иллюстрирует процесс написания программ в системе MATLAB и оформления их в форме функций. Далее в разд. 14.3 приводится пример программы, расширяющей возможности пакета нечеткой логики системы MATLAB.
Защищенный блок try...catch...end
Защищенный блок предназначен для изменения последовательности выполнения выражений, если во время их выполнения обнаруживается некоторая ошибка.
Синтаксис защищенного блока следующий:
try, выражения- 1;
catch, выражения_2;
end
Система MATLAB при исполнении защищенного блока делает попытку выполнить последовательность выражений-1. Если при выполнении хотя бы одного из выражений этой последовательности происходит ошибка, то выполнение всей последовательности выражений-1 аннулируется. После этого происходит передача управления на выполнение выражений-2. Если же при выполнении выражений-1 ошибки не происходит, то выражения_1 не выполняются, и происходит передача управления на конец блока. В случае наличия ошибки при выполнении выражений_2 система прерывает работу программы и сообщает о характере происшедшей ошибки.
;^M^i&T£9^j^защищенного блока.
^(значение cenf никак не определено) .. у. & ’
try,
k=0;
s=renf;
catch,
s=7;
k=l;
end
При выполнении данного фрагмента программы в окно команд не будет выведено сообщение об ошибке "??? Undefined function or variable 'renf", поскольку соответствующий оператор присваивания помещен в защищенный блок. После выполнения защищенного блока в рабочей области будут помещены следующие значения переменных: 5=7 и А:=1.
Следует заметить, что все операторы управления последовательностью выполнения команд должны заканчиваться словом end, которое указывает на конец соответствующего управляющего блока.
Текстовые комментарии
Текстовые комментарии используются в m-файлах для пояснения основных идей реализации процедур, а также отображения справочной информации при вызове справки по соответствующей функции m-файла. При этом текстовый комментарий может вставляться в любое место m-файла после символа начала комментария: %.
Для разработки и отладки m-файлов в системе MATLAB предназначен специальный редактор/отладчик. Ниже рассматривается назначение операций главного меню и панели инструментов редактора/отладчика, а также основные приемы работы с ним.
Основные приемы работы с редактором/отладчиком т-файлов
Для создания, редактирования и отладки m-файлов в системе MATLAB предназначен специальный отладчик m-файлов. Хотя m-файлы являются основными объектами программирования, редактор-отладчик позволяет открывать и редактировать любые типы файлов, включая обычные текстовые файлы (с расширением txt, dat и др.), файлы с текстами программ на различных языках программирования (с расширением с, срр, h, html и другими), а также файлы моделей отдельных пакетов расширений системы MATLAB (с расширением mdl, fis, rtw и др.).
Открыть редактор-отладчик можно несколькими способами, например, нажав соответствующую кнопку (самую левую) на панели инструментов системы MATLAB. В результате откроется рабочее окно редактора-отладчика с предложенным системой именем нового m-файла по умолчанию (рис. 14.2).
Если необходимо редактировать существующий m-файл или любой другой текстовый файл, имеющийся на диске, то редактор-отладчик можно открыть, нажав соответствующую кнопку (вторую слева) на панели инструментов системы MATLAB. В этом случае будет вызвано стандартное диалоговое окно открытия файла, а после выбора файла — появится окно редактора-отладчика с загруженным в него файлом (рис. 14.3).
Рис. 14.2. Окно редактора-отладчика при создании нового т-файла
Рис. 14.3. Окно редактора-отладчика с открытым существующим m-файлом
Заметим, что открыть редактор-отладчик можно и без запуска системы MATLAB, для чего следует воспользоваться главным меню ОС MS Windows (Пуск> Программы>МАТЬАВ 6.1>M-file Editor) или просто набрав в системном меню Выполнить команду meditor. Последний случай может быть использован для работы с редактором-отладчиком как обычным Windows-приложением. В этом случае в редакторе-отладчике доступен только режим редактирования файлов без возможности их отладки (соответствующие пункты меню будут недоступны).
Примечание
Открыть редактор-отладчик можно из окна команд, введя команду edit для создания нового m-файла или команду edit <имя файла> для открытия существующего файла.
Рабочий интерфейс редактора-отладчика представляет собой стандартное окно в стиле MS Windows, которое содержит собственное главное меню и панель инструментов. Основную область занимает окно редактирования файлов, в котором отображается текст создаваемого или выбранного файла. При этом каждая строка файла имеет собственный порядковый номер, а слова текста выделяются различным цветом. Служебные или ключевые слова программ выделяются синим цветом, комментарии в программах — зеленым, строки как элементы программ — красным, остальные элементы текста — черным.
Прежде всего, рассмотрим операции главного меню системы MATLAB и назначение отдельных кнопок панели инструментов. После этого остановимся на основных командах, которые могут оказаться необходимыми в процессе работы в режиме командной строки.
Назначение операций главного меню
Окно редактора-отладчика системы MATLAB имеет главное меню (рис. 14.4), которое позволяет пользователю выполнять отладку m-файлов, открывать и сохранять редактируемые файлы, изменять внешний вид элементов графического интерфейса, вызывать справочную информацию и т. д. Рассмотрим назначение отдельных пунктов главного меню редактора-отладчика.
Mew ; 7'’ 1Т'* 7'7 7 &
2р^$йг Й-7кШCtrt*&
’ '.р^п ^й$^ к-. : РЦ7№ .
& L « ипЙ'РсУ - .. "Ctrt*W
ЙСИг > • ■ .G№8
..Says^ „ •;£ z:
Checkin... >,>CheckS&t ]^аед^^Checkin... >,>CheckS&t ]^аед^^Source Control
Checkin... >,
>CheckS&t ]^аед^^
Checkin... >,
>CheckS&t ]^аед^^
^j^DMc^//-
£. Snve^o^i^^Ais^
- SetPe^. ^"
Preferences..Preferences..
Preferences..
Preferences..
^£ri$№-Ctr№
‘ LRV, ?$^*>Mrtiscb.rn
.2 -"'V3&rt^workfcjMe3$ s^
i|Jti3i»^t!№ £'
|sj$^»ite^№^^
$ Ejgi.MAMB - ^A sMri*Q
Рис. 14.4. Операции пункта меню Fileглавного меню редактора-отладчика
□ Пункт меню File (Файл) главного меню содержит следующие операции:
New— позволяет выбрать тип создаваемого нового объекта системы MATLAB и полностью совпадает с соответствующим пунктом меню рабочего интерфейса системы MATLAB, если редактор-отладчик вызван из сеанса работы с системой. Новый m-файл по умолчанию имеет имя Untitled. Если ранее в редакторе-отладчике был открыт некоторый т- файл, то при создании нового m-файла он не закрывается, а помещается в отдельное окно редактирования. Это окно можно восстановить с использованием соответствующих вкладок в нижней части рабочего интерфейса;
Open... — вызывает стандартное диалоговое окно открытия внешнего файла с диска. В этом окне можно выбрать нужный фильтр для отображения отдельных типов файлов системы MATLAB;
Open Selection — позволяет открыть внешний m-файл, предварительно выделив его имя в тексте редактируемого файла. Если файла с выбранным именем не существует, то будет выдано сообщение об ошибке;
Close <имя файла> — закрывает окно редактирования файла с соответствующим именем;
Save — сохраняет редактируемый файл под своим именем;
Save As... — вызывает диалоговое окно сохранения файла на диске с возможностью задать файлу новое имя;
Save АП — сохраняет все открытые для редактирования файлы под своими именами;
Source Control — позволяет осуществлять контроль версий файлов при совместном использовании дополнительных средств конфигурационного управления (например, средства Rational ClearCase). Содержит дополнительное вложенное подменю с подпунктами: Check In... — установить контрольный комментарий в редактируемый файл, Check Out... — проверить последнюю версию файла, Undo Check Out... — отменить проверку последней версии файла.
Остальные операции этого пункта меню совпадают с соответствующими операциями пункта меню File (Файл) рабочего интерфейса системы MATLAB (см. рис. Н.П), поэтому здесь не рассматриваются.
Пункт меню Edit (Редактирование) редактора-отладчика расширен по сравнению с этим же пунктом главного меню системы MATLAB и содержит следующие операции (рис. 14.5):
Undo — отменяет выполнение последнего действия;
Redo — отменяет выполнение последней операции Undo;
Cut — вырезает выделенный фрагмент текста из редактируемого файла и помещает его в буфер обмена;
Сору — копирует выделенный фрагмент текста из редактируемого файла и помещает его в буфер обмена;
Undo.CtrlZ
■ Bedo ;^Йв^'^. ctri-A
.ctri+x'
SopyCtrl+C
Paste A^Ass,Ctrl*V*5
Ras a Spgael ...
Clear
Select All У?? „Jtri*A
Delete.>
Find and Replace..CtrHFA ai
^Fitd&axi : ’"F3
And SelectionA- Orl^
^0 to Line..-.; * '" "^^'^ Ctri>Gs^ ! SeyClear BookmarkOtrl*F2 --
,4'NextBoox.me* ifr$A’ 4 F2,
Prey Bookmark ' ’ Shift+F2
A X*r;<&mpi.aiiA -; ' /Л'Л'. Clear Gom$and;ti story A AA
Clear Workspace " :и" *|:9^<A
Рис. 14.5. Операции пункта меню Editредактора-отладчика
Set/Clear Bookmark — позволяет задать/отменить закладку в тексте редактируемого файла для ее использования в следующих операциях;
Next Bookmark — осуществляет переход к следующей по порядку закладке в редактируемом файле;
Prev Bookmark — осуществляет переход к предыдущей по порядку закладке в редактируемом файле;
Clear Command Window — очищает окно команд от информации текущего сеанса работы;
Clear Command History — очищает окно истории команд от информации о введенных ранее командах;
Gear Workspace — очищает рабочее пространство системы MATLAB от всей имеющейся в ней информации о переменных.
Пункты меню View (Вид), Web (Интернет), Window (Окно) и Help (Справка) практически идентичны соответствующим пунктам главного меню системы MATLAB, за исключением последнего, который содержит справочную информацию по разделу работы с редактором-отладчиком. Поскольку эти пункты меню были рассмотрены ранее в главе 11, далее описываются лишь новые пункты редактора-отладчика, отсутствующие в главном меню системы MATLAB.
'j/^Eyttiu^Stie^prii.
Eormat Selecteq Comments Comment . ;,Ctfi^R^
Uncomment ;_ >\ Chi+T ;
^Щесгевеэ Ind it £ ” ctrl*[..■^n^iase Indent 'ЙД'УЖЯ Ctrl#] ^
^Sfolance Delimiters "-Ctrl+E;
J-§hart Indent ^^й 4; ■Otrl*l
Рис. 14.6. Операции пункта меню Text редактора-отладчика
Пункт меню Text (Текст) содержит следующие операции (рис. 14.6):
Evaluate Selection — выполнение выделенного фрагмента текста программы;
Format Selected Comment — автоматическое форматирование выделенного фрагмента или строки комментария;
Comment— преобразование строки программы или выделенного фрагмента в комментарий посредством добавления слева символа %;
Decrease Indent— сдвиг строки программы или выделенного фрагмента влево на установленный интервал;
Increase Indent— сдвиг строки программы или выделенного фрагмента вправо на установленный интервал;
Balance Delimiters— выделение текста выражения между двумя парными разделителями (скобками);
Smart Indent — автоматическое форматирование строки программы или выделенного фрагмента на установленный интервал отступа.
При работе с текстом редактируемого файла слева от каждой строки указывается ее порядковый номер. Пустой строке также присваивается отдельный номер. При отображении текста программы используется цветовое выделение различных по назначению слов. Ключевые слова, такие как операторы if/elseif/else, for/while/end, выделяются голубым цветом, комментарии— зеленым, имена переменных— черным, законченные значения строковых переменных— красным, точнее— каштановым (marron), а незаконченные, т. е. без завершающего знака— пурпурным (purple).
При записи математических выражений также оказываются полезными следующие возможности редактора-отладчика. Если в тексте встречаются произвольные скобки, то для согласования количества открывающих и закрывающих скобок используется специальных маркер. Для этого достаточно установить курсор справа от одной из скобок. В этом случае будут выделены пара соответствующих скобок. В дополнение к этому двойной щелчок на произвольном символе выделяет весь текст внутри соответствующей пары скобок, что позволяет контролировать правильность задания сложных расчетных формул.
При наборе текста программы в редакторе-отладчике для визуализации циклов и условных управляющих конструкций автоматически используются отступы. В этом случае тело каждой соответствующей конструкции сдвигается вправо на установленный интервал.
■■S*epF10..:,.
У Stepan-Fi tУ
^Mi^tSHifrFH
Continue, ,;^Й ^-
>■ Gu Until Cursor ExfrDeoug Moae
Рис. 14.7. Операции пункта меню Debugредактора-отладчика
□ Пункт меню Debug (Отладка) содержит следующие операции (рис. 14.7):
Step — выполнение одного шага построчной трассировки;
Step In — пошаговая трассировка с заходом в вызываемые т-файлы;
Step Out — пошаговая трассировка без захода в вызываемые т-файлы;
Continue — продолжить выполнение до следующей точки останова;
Go Until Cursor — продолжить выполнение до строки с установленным курсором;
Exit Debug Mode ■— завершить отладку программы.
ЙеУйевг Breakpoint Fl 2 ■ Clear Д11 Breakpoints Stop Й Error* ./ ‘
' Stop И Warning;
Stoptonbi;Orfnt! ■ Stop К All Error
Рис. 14.8. Операции пункта меню Breakpointsредактора-отладчика
□ Пункт меню Breakpoints (Точки останова) содержит следующие операции (рис. 14.8):
Set/Clear Breakpoint — установить/отменить точку останова (прерывания);
Clear All Breakpoints — отменить все точки останова;
Stop If Error— прекратить отладку программы в случае обнаружения ошибки;
Stop If Warning— прекратить отладку программы в случае обнаружения предупреждения;
Stop If NaN Or Inf— прекратить отладку программы в случае обнаружения нечислового или бесконечного значения у какой-либо из переменных;
Stop If All Error— прекратить отладку программы в случае обнаружения любой из перечисленных выше ситуаций.
Назначение операций панели инструментов
Панель инструментов редактора-отладчика содержит набор кнопок, которые дублируют наиболее часто выполняемые операции главного меню. Рассмотрим назначение отдельных кнопок панели инструментов редактора-отладчика (табл. 14.4).
Таблица 14.4. Назначение кнопок панели инструментов редактора-отладчика
Графическое изображение
Всплывающая подсказка
Назначение кнопки
New M-File
Создает новую вкладку с пустым окном редактирования и именем файла Untitled, заданным по умолчанию
Open File
Вызывает стандартное диалоговое окно открытия внешнего текстового файла с диска. При этом выбранный текстовый файл (например, m-файл), загружается в новую вкладку редактора-отладчика т-файлов
Save
Сохраняет изменения в редактируемом файле
Cut
Вырезает вьщеленный фрагмент из окна редактирования и помещает его в буфер обмена
Copy
Копирует выделенный фрагмент из окна редактирования и помещает его в буфер обмена
S
Paste
Вставляет фрагмент в позицию ввода окна редактирования из буфера обмена
м)
Undo
Отменяет выполнение последнего действия
Гк
Redo
Отменяет выполнение последней операции Undo
Выводит на печать редактируемый файл
Д;
Find text
Вызывает окно справочной системы MATLAB
Show function
Позволяет установить текущий каталог (папку), содержимое которого будет отображаться в диалоговых окнах открытия и сохранения файлов на диске
£
Set/clear breakpoint
Установить/отменить точку останова
Clear all breakpoints
Отменить все точки останова
g
Step
Выполнение одного шага трассировки
Step in
Пошаговая трассировка с заходом в вызываемые m-файлы
g
Step out
Пошаговая трассировка без захода в вызываемые т-файлы
Таблица 14.4 (окончание)
Графическое изображение
Всплывающая подсказка
Назначение кнопки
В
Run
Начать отладку или выполнение программы
#
Exit Debug Mode
Завершить отладку программы
/Stid^Jmytip *]'
Stack
Стек функции
Кроме m-файлов, в системе MATLAB могут быть также использованы так называемые p-файлы и МЕХ-файлы. Первый тип файлов применяется для сокращения времени выполнения m-файлов посредством их предварительной компиляции в специальный бинарный формат. Второй тип файлов предназначен для компиляции внешних файлов программ пользователя, написанных на языках программирования C/C++ и Fortran. В обоих случаях применяются собственные средства системы MATLAB, которые здесь не рассматриваются.
14.3. Пример программы, расширяющей возможности пакета нечеткой логики
Fuzzy Logic Toolbox
Пакет расширения Fuzzy Logic Toolbox содержит большое число функций, предназначенных для выполнения самых различных действий (см. приложение 3). Анализ этих функций показывает, что среди них имеется специальная функция fuzarith для выполнения операций нечеткой арифметики с нечеткими числами и интервалами (см. главу 5). В то же время отсутствует функция, которая позволяла бы выполнять базовые теоретико-множественные операции с нечеткими множествами (см. главу 3).
Поэтому в качестве примера разработки m-файла рассмотрим следующий текст программы, в которой реализована функция fuzoper, предназначенная для выполнения теоретико-множественных операций с нечеткими множествами и расширяющая возможности системы MATLAB в этом контексте. Для работы с данной программой ее текст следует набрать в редакторе-отладчике и сохранить в рабочем каталоге пакета Fuzzy Logic Toolbox: C:\MATLAB6pl\toolbox\ fuzzyVuzzy (если система MATLAB установлена на диске С:) в файле с именем fuzoper.m.
12345678910111213141516171819202122232425262728293031323334351234567891011121314151617181920212223242526272829303132333435function out = fuzoper(x, A, В, operator)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
% FUZOPER Нечеткие операции
% С = FUZOPER(x, A, B, OPERATOR) возвращает нечеткое множество С
% как результат применения операции OPERATOR для нечетких множеств А % и В на универсуме х.
% А, В,и х должны быть векторами одинаковой размерности.
% OPERATOR должен быть одной из следующих строк: 'miin', 'maun',
% 'alin', 'alun','bein', 'boun', 'drin', или 'drun'.
% Возвращаемое нечеткое множество С является вектором той же
% размерности, что А и В.
%Например:
%х = 0:0.1:10;
%А = trapmf(х,[1235]);%трапециевидноенечеткоемноже-
%ство А
%В = gaussmf(x,[25]);%нечеткоемножествосГауссовой
%функцией принадлежности В
%Cl = fuzoper(x, А, В, 'miin');
%subplot(2,2,1) ;
%plot(x, А,'у—',х, В,'m: ', х, С1,'с');
%title('min-пересечение нечетких множеств А и В');
%С2 = fuzoper(x, А, В, 'maun');
%subplot(2,2,2);
%plot(x, А,'у—',х, В,'ш:', х, С2,'с');
% title('max-объединение нечетких множеств А и В');
%СЗ = fuzoper(x, А, В, 'alin');
%subplot(2,2,3);
% plot(х, А, 'у—', х, В, 'т:', х, СЗ, 'с');
% title('алгебраическое пересечение нечетких множеств А и В *) ;
% С4 = fuzoper(x, А, В, 'alun');
% subplot(2,2, 4);
% plot (х, А, 'у—', х, В, 'ш:', х, С4, 'с');
% title('алгебраическое объединение нечетких множеств А и В');
%Copyright (с) А.В.Леоненков, 2003
%Текст этого комментария адаптирует текст из комментария
%файлаfuzarith.m
%
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
xright=length(х);
if strcmp(operator, 'miin'), out = min(A,B);
elseif
out
strcmp (operator, = max (A, B) ;
'maun'),
elseif
strcmp(operator.
'alin'),
out
= A.*B;
elseif
strcmp(operator,
'alun'),
out
= A+B-A.*B;
elseif
strcmp(operator.
'bein'),
out
= max(A+B-l, 0) ;
elseif
strcmp(operator,
'boun'),
out
= min(A+B, 1) ;
elseif
strcmp(operator,
'drin'),
for
i=l:xright
if A(i)=1.0, out(i) = В(i);
elseif B(i)"1.0, out(i) = A(i) ; else out(i)=0.0;
end end elseif strcmp(operator, 'drun'), for i=l:xright
if A(i)=0.0, out(i) = В (i) ;
elseif B(i)==0.0, out(i) = A(i); else out(i)=1.0;
end end else
error('Это неизвестная операция!'); end
Приведем некоторые пояснения к тексту данной программы. Первая строка программы объявляет функцию fuzoper(x, а, в, operator), которая должна быть вызвана для выполнения операций над нечеткими множествами. При этом переменная х предназначена для задания области определения соответствующих нечетких множеств див. Исходные нечеткие множества див могут быть опре-
делены произвольными функциями принадлежности, значения которых представляются в виде числовых массивов одинаковой размерности с х.
Для указания типа нечеткой операции предназначен параметр operator. При этом данный параметр может принимать одно из следующих строковых значений (сокращение от первых двух букв названия на английском):
'miin' — пересечение двух нечетких множеств Я и S по формуле minintersection (3.3);
'maun' — объединение двух нечетких множеств Я и 23 по формуле max-union (3.4);''
'alin* — алгебраическое пересечение двух нечетких множеств Я и 25 по формуле algebraic-intersection (3.19);
' alun' — алгебраическое объединение двух нечетких множеств Я и S по формуле algebraic-union (3.20);
'bein' — граничное пересечение двух нечетких множеств Я и 25 по формуле bound-intersection (3.31);
' boun' — граничное объединение двух нечетких множеств Я и 25 по формуле bound-union (3.32);
' drin' — драстическое пересечение двух нечетких множеств Я и 23 по формуле drastic-intersection (3.33);
■drun' — драстическое объединение двух нечетких множеств Я и 23 по формуле drastic-union (3.34).
Примечание
Если пользователь укажет другое значение параметра operator, отличное от перечисленных выше, то в окне команд будет выдано сообщение об ошибке: "Unknown fuzzy set operator!" (Неизвестный оператор для нечетких множеств). Для этой цели предназначен отдельный оператор (строка 66). Сообщение об ошибке будет выдано и в том случае, если одна из букв (или несколько) будут набраны в верхнем регистре.
Строки 2—35 являются комментарием к тексту программы и отображаются в окне команд при вызове справки по данной функции командой help fuzoper (до первой строки собственно тела программы).
Проверить работу этой функции можно следующим простым способом. Скопировать строки 11—31 в буфер обмена, открыть редактор-отладчик и вставить выделенный фрагмент во вновь открытом файле. После чего следует убрать символ комментария у всех строк и, сохранив данный текст во внешнем файле с расширением .т в одном из рабочих каталогов системы MATLAB, нажать кнопку Run (Выполнить) на панели инструментов редактора-отладчика. Вместо последней операции альтернативно можно ввести имя этого файла в окне команд.
Примечание
Данный способ тестирования функций может быть рекомендован для всех стандартных m-файлов, большинство из которых содержат примеры аналогично рассматриваемому примеру.
Результат выполнения данного тестового примера изображен на рис. 14.9. Следует заметить, что предварительно в рабочий каталог C:\MATLAB6pl\toolbox\ fuzzy\ fuzzy должен быть помещен m-файл fuzoper.m с текстом рассматриваемой программы.
Рис. 14.9. Результат выполнения тестового примера рассматриваемой программой fuzoper.m
Собственно тело программы состоит из строк 36—69. При этом переменная с именем xright служит для указания общей размерности массива переменной х. Далее следует последовательная проверка условий на значения параметра operator, который определяет математическое выражение для вычисления результата соответствующей операции с нечеткими множествами. При этом для проверки совпадения двух строк используется функция strcmp, которая возвра-
щает значение "истина" или 1, если сравниваемые строки идентичны (с учетом регистра), и значение "ложь" или 0 — в противном случае.
Примечание
В качестве упражнения можно рекомендовать дополнить указанную программу реализацией бинарных операций разности и симметрической разности нечетких множеств (см. главу 3).
Таким образом, рассмотренный пример иллюстрирует одну из наиболее мощных и гибких возможностей системы MATLAB по расширению своей базовой функциональности за счет дополнительной разработки и включения в ее состав специальных m-файлов. Более того, представлением результатов научных и прикладных исследований в форме m-файлов достигается необходимая унификация в понимании этих результатов другими специалистами.
Именно по этой причине язык программирования m-файлов системы MATLAB приобретает растущую популярность в качестве независимого от вычислительной платформы, компиляторов и библиотек средства разработки и документирования вычислительных алгоритмов и процедур в различных областях теоретической и прикладной математики.
Глава 15
Основы нечетких нейронных сетей
Основным компонентом рассмотренных ранее средств системы MATLAB в рамках пакета Fuzzy Logic Toolbox является база правил нечетких продукций, которая занимает центральное место в процедурах нечеткого вывода. В то же время существуют целые классы прикладных задач, в которых выявление и построение правил нечетких продукций невозможно или связано с серьезными трудностями концептуального характера. К таким задачам относятся задачи распознавания образов, экстраполяции и интерполяции функциональных зависимостей, классификации и прогнозирования, нелинейного и ситуационного управления, а также интеллектуального анализа данных (Data Mining).
Общей особенностью подобных задач является существование некоторой зависимости или отношения, связывающего входные и выходные переменные модели системы, представляемой в форме так называемого "черного ящика" (см. главу 1). При этом выявление и определение данной зависимости в явном теоретикомножественном или аналитическом виде не представляется возможным либо по причине недостатка информации о моделируемой проблемной области, либо сложности учета многообразия факторов, оказывающих влияние на характер данной взаимосвязи.
Для конструктивного решения подобных задач разработан специальный математический аппарат, получивший название нейронных сетей. Достоинством моделей, построенных на основе нейронных сетей, является возможность получения новой информации о проблемной области в форме некоторого прогноза. При этом построение и настройка нейронных сетей осуществляется посредством их обучения на основе имеющейся и доступной информации.
Недостатком нейронных сетей является представление знаний о проблемной области в специальном виде, которое может существенно отличаться от возможной содержательной интерпретации существующих взаимосвязей и отношений.
Нечеткие нейронные сети или гибридные сети по замыслу их разработчиков призваны объединить в себе достоинства нейронных сетей и систем нечеткого вывода. С одной стороны, они позволяют разрабатывать и представлять модели систем в форме правил нечетких продукций, которые обладают наглядностью и простотой содержательной интерпретации. С другой стороны, для построения правил нечетких продукций используются методы нейронных сетей, что является
более удобным и менее трудоемким процессом для системных аналитиков. В последнее время аппарат гибридных сетей повсеместно признается специалистами как один из наиболее перспективных для решения слабо или плохо структурированных задач прикладного системного анализа.
В настоящей главе рассматриваются основные понятия гибридных сетей, а также средства их разработки, предоставляемые системой MATLAB. В заключение приводятся примеры задач, решаемых с помощью моделей адаптивных систем нейро-нечеткого вывода (ANFTS, Adaptive Neuro-Fuzzy Inference System) в среде MATLAB. '
Общая характеристика ANFIS-адаптивных систем нейро-нечеткого вывода
История исследований в области нейронных сетей берет свое начало с 1943 г., когда У. Маккалох (W. McCulloch) и У. Питтс (W. Pitts) предложили первую модель нейрона и сформулировали основные принципы функционирования головного мозга человека. Первые результаты в теории нейронных сетей связывают с появлением в период 1960-1970 гг. различных моделей искусственных нейронных сетей, которые были предложены в работах В.Уидроу (W. Widrow). К. Штайнбуха (К. Steinbuch), М. Минского (М. Minsky) и С. Пейперта (S. Papert). Однако началом современного этапа развития нейронных сетей принято считать 1982 г., когда американским математиком Дж. Хопфилдом (J. Hopfield) был разработан специальный класс нейронных сетей и предложены методы их обучения.
Рост популярности нейронных сетей связан с появлением первых коммерческих программных средств, позволяющих осуществлять построение соответствующих моделей для решения различных прикладных задач. Не является исключением и система MATLAB, в состав которой входит специальный пакет расширения Neural Network Toolbox. Этот пакет содержит средства, предназначенные для проектирования, моделирования, обучения и использования различных вариантов искусственных нейронных сетей, начиная с простейшей модели персептрона и заканчивая моделями ассоциативных и самоорганизующихся сетей.
Поскольку рассмотрение возможностей этого пакета является самостоятельной темой и выходит за рамки тематики настоящей книги, ниже описываются только особенности построения и использования гибридных сетей, реализованные в пакете Fuzzy Logic Toolbox.
Понятие нейронной сети и основные способы ее задания
К настоящему времени предложено и изучено большое количество вариантов и разновидностей нейронных сетей. Для рассмотрения моделей гибридных сетей необходимо дать некоторое общее определение нейронной сети (более точно —
искусственной нейронной сети), которое послужит основой для последующего определения модели нейро-нечеткого вывода. При этом с особенностями функционального представления биологических нейронов и общей проблематикой теории нейронных сетей можно более подробно ознакомиться в специальной литературе, которая приводится в конце книги.
Концептуальной основой и составной частью искусственных нейронных сетей является так называемый искусственный нейрон, который имеет определенную внутреннюю структуру (рис. 15.1) и правила преобразования сигналов.
Рис. 15.1. Структура искусственного нейронаРис. 15.1. Структура искусственного нейрона
Рис. 15.1. Структура искусственного нейрона
Рис. 15.1. Структура искусственного нейрона
Искусственный нейрон (далее просто — нейрон) состоит из умножителей (синапсов), сумматора и нелинейного преобразователя. Синапсы, изображаемые перечеркнутым кружком, предназначены для связи нейронов между собой и умножают входной сигнал х; на некоторое постоянное число. Это число и-’,-, называемое весом синапса, характеризует силу этой связи. Сумматор выполняет сложение всех сигналов, поступающих на вход нейрона от других нейронов, и внешних входных сигналов. Нелинейный преобразователь предназначен для нелинейного изменения выходного значения сумматора согласно некоторой функции от одного аргумента. Эта функция называется функцией активации или передаточной функцией нейрона.
Правила преобразования сигналов определяются математической моделью нейрона, которая может быть записана в форме следующих аналитических выражений:
(15.1)(15.2)(15.1)(15.2)s = ^Wj -Xj+b;i=\
(15.1)
(15.2)
(15.1)
(15.2)
у-т
где. it,— вес синапса (ze{l,2,...,«}); b— значение смещения; 5— результат суммирования; х,-— компонент вектора входа или входного сигнала (/е{1,2,...,/г}); у — выходной сигнал нейрона; п — число входов нейрона; / — функция актива-
ции (передаточная функция) нейрона, представляющее собой некоторое нелинейное преобразование. В общем случае: wbxb Ь^К(1&{\,2,...,п}).
Синаптические связи с положительными весами Wj6R+ (/е{1,2,...,я}) называются возбуждающими, а с отрицательными весами и,е^?- (ie {1,2,..., /?}) — тормозящими. Таким образом, отдельно взятый искусственный нейрон полностью описывается своей структурой (см. рис. 15.1) и математической моделью (15.1)—(15.2). Получив вектор входного сигнала х, нейрон выдает некоторое число у на своем выходе. В качестве функции активации нейрона могут быть использованы различные нелинейные преобразования (табл. 15.1).
Таблица 15.1. Основные виды функций активации нейронов
Название
Формула
Область значений
Линейная
/(5) = к ■ S
R
Полулинейная
/М =
0, если 5 < 0 к • s, если .s' > 0
!R+
Пороговая
№ = •
0, если s <T L еслиs> T
{0,1}
Модульная
Знаковая (сигнатурная)
-1, если s<T
1, если s >T
{-1, 1}
Квадратичная
Экспоненциальная
№-e-as
R+
Синусоидальная
№ = sin(5)
[-1,11
Логистическая
(сигмоидальная)
/(») =—5—
Не a"s
(0, 1)
Рациональная (сигмоидальная)
а+1 s I
(-1,1)
Гиперболический тангенс (сигмоидальная)
а-s _ -as f^ = - eas + e a"s
(-1,1)
Таблица 15.1 (окончание)
Название
Формула
Область значений
Линейная с насыщением (шаговая)
-I, еслих<-1
s, если -1 < 5 < 1
1,если х > 1
[-1,11
Полулинейная с насыщением
№ =
0, если х < 0
з, если 0 < s < 1
1, если х > 1
[0,1]
Треугольная
1—|з|, если|х|<1
0,если | х |> 1
[0,1]
Радиальная базисная (Гауссова)
№=е-$г
(0, 1]
Нейронная сеть представляет собой совокупность отдельных нейронов, взаимосвязанных между собой некоторым фиксированным образом. При этом взаимосвязь нейронов определяется или задается структурой (топологией) нейронной сети. С точки зрения топологии нейронные сети могут быть полносвязными, многослойными и слабосвязными. В общем случае структура многослойной или многоуровневой нейронной сети может быть изображена следующим образом (рис. 15.2).
Вход Уровень 1Уровень 2Уровень 3
Рис. 15.2. Структура многоуровневой (трехуровневой) нейронной сети
Каждый из уровней нейронной сети называется ее слоем. При этом слой входного уровня называется входным слоем, слой уровня 1 и 2 — скрытыми слоями, а слой уровня 3 — выходным слоем.
В свою очередь многослойные нейронные сети могут быть следующих типов.
Монотонные — каждый слой (кроме выходного) дополнительно разбивается на 2 блока: возбуждающий и тормозящий. Аналогично разбиваются и связи между блоками: на возбуждающие и тормозящие. При этом в качестве функций активации могут быть использованы только монотонные функции (см. табл. 15.1).
Нейронные сети с обратными связями — информация с последующих слоев может передаваться на нейроны предыдущих слоев.
Нейронные сети без обратных связей — информация с последующих слоев не может передаваться на нейроны предыдущих слоев. Классическим вариантом многослойной нейронной сети является полносвязная сеть прямого распространения (см. рис. 15.2).
Процесс построения и использования нейро-сетевых моделей состоит из следующих этапов:
Выбор типа и структуры нейронной сети для решения поставленной проблемы (синтез структуры нейронной сети).
Обучение нейронной сети (определение численных значений весов каждого из нейронов) на основе имеющейся информации о решении данной задачи экспертом или данных о решении задачи в прошлом.
Проверка нейронной сети на основе использования некоторого контрольного примера (необязательный этап).
Использование обученной нейронной сети для решения поставленной проблемы.
В настоящее время предложены различные схемы классификации нейронных сетей и соответствующие алгоритмы их обучения. Одним из самых распространенных алгоритмов обучения является так называемый алгоритм обратного распространения ошибки (back propagation). Этот алгоритм представляет собой итеративный градиентный алгоритм минимизации среднеквадратичного отклонения значений выхода от желаемых значений (минимизации ошибки) в многослойных нейронных сетях.
Выбор вида и структуры нейронной сети предопределяется спецификой решаемой задачи. При этом для решения отдельных типов практических задач разработаны оптимальные конфигурации нейронных сетей, которые наиболее адекватно отражают особенности соответствующей проблемной области. Дальнейшим развитием нейронных сетей являются так называемые гибридные сети, которые реализованы в пакете Fuzzy Logic Toolbox системы MATLAB.
Гибридная сеть как адаптивная система нейро-нечеткого вывода
Гибридная сеть представляет собой многослойную нейронную сеть специальной структуры без обратных связей, в которой используются обычные (не нечеткие) сигналы, веса и функции активации, а выполнение операции суммирования (15.1) основано на использовании фиксированной Т-нормы, Т-конормы или некоторой другой непрерывной операции. При этом значения входов, выходов и весов гибридной нейронной сети представляют собой вещественные числа из отрезка [0, 1].
Основная идея, положенная в основу модели гибридных сетей, заключается в том, чтобы использовать существующую выборку данных для определения параметров функций принадлежности, которые лучше всего соответствуют некоторой системе нечеткого вывода. При этом для нахождения параметров функций принадлежности используются известные процедуры обучения нейронных сетей. В пакете Fuzzy Logic Toolbox системы MATLAB гибридные сети реализованы в форме так называемой адаптивной системы нейро-нечеткого вывода ANFIS. С одной стороны, гибридная сеть ANFIS представляет собой нейронную сеть с единственным выходом и несколькими входами, которые представляют собой нечеткие лингвистические переменные. При этом термы входных лингвистических переменных описываются стандартными для системы MATLAB функциями принадлежности, а термы выходной переменной представляются линейной или постоянной функцией принадлежности.
С другой стороны, гибридная сеть ANFIS представляет собой систему нечеткого вывода FIS типа Сугено нулевого или первого порядка, в которой каждое из правил нечетких продукций имеет постоянный вес, равный 1. В системе MATLAB пользователь имеет возможность редактировать и настраивать гибридные сети ANFIS аналогично системам нечеткого вывода, используя все рассмотренные ранее средства пакета Fuzzy Logic Toolbox.
Реализация ANFIS в среде MATLAB
В пакете Fuzzy Logic Toolbox системы MATLAB гибридные сети реализованы в форме адаптивных систем нейро-нечеткого вывода ANFIS. При этом разработка и исследование гибридных сетей оказывается возможной:
в интерактивном режиме с помощью специального графического редактора адаптивных сетей, получившего название редактора ANFIS;
в режиме командной строки с помощью ввода имен соответствующих функций с необходимыми аргументами непосредственно в окно команд системы MATLAB. Для работы в режиме командной строки предназначены специальные функции (см. приложение 3).
Редактор ANFIS позволяет создавать или загружать конкретную модель адаптивной системы нейро-нечеткого вывода, выполнять ее обучение, визуализиро-
вать ее структуру, изменять и настраивать ее параметры, а также использовать настроенную сеть для получение результатов нечеткого вывода.
Графический интерфейс редактора ANFIS вызывается функцией anfisedit из командной строки (рис. 15.3).
Рис. 15.3. Графический интерфейс редактора ANFIS, вызываемый функцией anfisedit
Главное меню редактора ANFIS достаточно простое и предназначено для работы с предварительно созданной системой нечеткого вывода. Основную часть графического интерфейса занимает окно визуализации данных, которое расположено ниже главного меню. Для вновь создаваемой гибридной сети это окно не содержит никаких данных.
Для создания гибридной сети необходимо загрузить данные. Для этой цели следует воспользоваться кнопкой Load Data в левой нижней части графического окна. При этом данные могут быть загружены из внешнего файла (disk) или из рабочей области (worksp.). В первом случае необходимо предварительно создать файл с исходными данными (файл с расширением .dat), который представляет собой обычный текстовый файл. При этом исходные данные представляют со-
бой обычную числовую матрицу размерности шх(„+1), в которой количество строк m соответствует объему выборки, первые п столбцов — значениям входных переменных модели, а последний столбец — значению выходной переменной. Согласно правилам системы MATLAB отдельные значения матрицы отделяются пробелами, а каждая строка матрицы завершается символом "перевод каретки" (клавиша <Enter>).
Примечание
Хотя по количеству строк матрицы исходных данных не существует формальных рекомендаций, принято считать, что качество обучения гибридной сети, а, следовательно, и точность получаемых результатов пропорционально зависит от объема обучающей выборки. Что касается количества столбцов матрицы исходных данных, то следует отметить возможные проблемы с работоспособностью системы MATLAB, если количество входных переменных превышает 5—6.
Загружаемые исходные данные могут быть одного из следующих типов:
обучающие данные (Training) — обязательные данные, которые используются для построения гибридной сети;
тестовые данные (Testing) — необязательные данные, которые используются для тестирования построенной гибридной сети с целью проверки качества функционирования построенной гибридной сети;
проверочные данные (Checking) — необязательные данные, которые используются для проверки построенной гибридной сети с целью выяснения факта переобучения сети;
демонстрационные данные (Demo) — позволяют загрузить один из демонстрационных примеров гибридной сети.
Так, например, в папке C:\MATLAB6pl\toolbox\fuzzy\fuzdemos имеется два файла fuzexltrnData.dat и fuzexlchkData.dat, которые могут быть использованы для иллюстрации приемов разработки гибридных сетей с помощью редактора ANFIS. Первый из этих файлов содержит обучающие данные, для редактирования которых может быть использован любой текстовый редактор, например, блокнот (рис. 15.4) или редактор-отладчик m-файлов системы MATLAB.
После загрузки обучающих данных из файла fuzexltrnData.dat их структура будет отображена в рабочем окне редактора ANFIS (рис. 15.5).
При этом каждой строке данных соответствует отдельная точка графика, которая для обучающих данных изображается кружком. На горизонтальной оси указываются порядковый номер (индекс) отдельной строки данных, а вертикальная ось служит для указания значений выходной переменной. В случае рассматриваемого примера используется 25 точек обучающих данных.
Второй из файлов содержит проверочные данные, для редактирования которых также может быть использован любой текстовый редактор. Поскольку тестовые данные для данного примера отсутствуют, то в редактор ANFIS следует загрузить проверочные данные из файла fuzexlchkData.dat. Для этого необходимо
изменить тип загружаемых данных (Checking) и выбрать имя указанного файла при загрузке данных. В результате проверочные данные будут загружены в редактор ANFIS и изображены в рабочем окне (рис. 15.6).
^ fuzex1trnData.dat - Блокнот
$айл Правка Поиск Справка 1 .г <
-8.80000000000000006-001 -7.2743983BQ0QQQQQ1е~001 -8.00006600000000046-001 -7.13564679999999956-001 -7.19999999999999976-001 -3.53069140000000006-001 -6.4000000000000001е-001 -3.15912210000000036-001
-5.60000000000000056-001 -4.79999999999999986-001 -4.0G0000G0000000G26-001 -3.2000000000000001 е-001 -2.39999999999999996-001 -1.60000000000000006-001 -8.00000000000000026-0020.00000000000000006+000 8.00000000000000026-002 1.60000000000000006-0012.39999999999999996-001 3.2000000000000001е-0014.00000000000000026-001 4.79999999999999986-0015.6000000000О00005е-0016.4000000000000001 е-001 7.19999999999999976-001 8.00000000000000046-0018.80000000000000006-001 9.59999999999999966-001-5.60000000000000056-001 -4.79999999999999986-001 -4.0G0000G0000000G26-001 -3.2000000000000001 е-001 -2.39999999999999996-001 -1.60000000000000006-001 -8.00000000000000026-0020.00000000000000006+000 8.00000000000000026-002 1.60000000000000006-0012.39999999999999996-001 3.2000000000000001е-0014.00000000000000026-001 4.79999999999999986-0015.6000000000О00005е-0016.4000000000000001 е-001 7.19999999999999976-001 8.00000000000000046-0018.80000000000000006-001 9.59999999999999966-001-4.34934959999999986-001 -5.31513169999999986-001 -3.37817270000000006-001 -3.1435045000О00000е-001 -5.03989780000000056-001 -8.1419370000000002е-001 -5.72475709999999976-001 -1.94816870000000006-0015.99824110000000026-001 5.80476780000000036-001 5.74978430000000046-001 4.95454540000000006-001 4.40951629999999986-001 4.03296720000000006-0014.0093566000ОО0О03е-001 5.96191790000000006-001 4.3882866999999998е-0О1 4.90068769999999996-001 7.0864086000000004е-001 4.98663719999999996-002-4.34934959999999986-001 -5.31513169999999986-001 -3.37817270000000006-001 -3.1435045000О00000е-001 -5.03989780000000056-001 -8.1419370000000002е-001 -5.72475709999999976-001 -1.94816870000000006-0015.99824110000000026-001 5.80476780000000036-001 5.74978430000000046-001 4.95454540000000006-001 4.40951629999999986-001 4.03296720000000006-0014.0093566000ОО0О03е-001 5.96191790000000006-001 4.3882866999999998е-0О1 4.90068769999999996-001 7.0864086000000004е-001 4.98663719999999996-002
-5.60000000000000056-001 -4.79999999999999986-001 -4.0G0000G0000000G26-001 -3.2000000000000001 е-001 -2.39999999999999996-001 -1.60000000000000006-001 -8.00000000000000026-002
0.00000000000000006+000 8.00000000000000026-002 1.60000000000000006-001
2.39999999999999996-001 3.2000000000000001е-001
4.00000000000000026-001 4.79999999999999986-001
5.6000000000О00005е-001
6.4000000000000001 е-001 7.19999999999999976-001 8.00000000000000046-001
8.80000000000000006-001 9.59999999999999966-001
-5.60000000000000056-001 -4.79999999999999986-001 -4.0G0000G0000000G26-001 -3.2000000000000001 е-001 -2.39999999999999996-001 -1.60000000000000006-001 -8.00000000000000026-002
0.00000000000000006+000 8.00000000000000026-002 1.60000000000000006-001
2.39999999999999996-001 3.2000000000000001е-001
4.00000000000000026-001 4.79999999999999986-001
5.6000000000О00005е-001
6.4000000000000001 е-001 7.19999999999999976-001 8.00000000000000046-001
8.80000000000000006-001 9.59999999999999966-001
-4.34934959999999986-001 -5.31513169999999986-001 -3.37817270000000006-001 -3.1435045000О00000е-001 -5.03989780000000056-001 -8.1419370000000002е-001 -5.72475709999999976-001 -1.94816870000000006-001
5.99824110000000026-001 5.80476780000000036-001 5.74978430000000046-001 4.95454540000000006-001 4.40951629999999986-001 4.03296720000000006-001
4.0093566000ОО0О03е-001 5.96191790000000006-001 4.3882866999999998е-0О1 4.90068769999999996-001 7.0864086000000004е-001 4.98663719999999996-002
-4.34934959999999986-001 -5.31513169999999986-001 -3.37817270000000006-001 -3.1435045000О00000е-001 -5.03989780000000056-001 -8.1419370000000002е-001 -5.72475709999999976-001 -1.94816870000000006-001
5.99824110000000026-001 5.80476780000000036-001 5.74978430000000046-001 4.95454540000000006-001 4.40951629999999986-001 4.03296720000000006-001
4.0093566000ОО0О03е-001 5.96191790000000006-001 4.3882866999999998е-0О1 4.90068769999999996-001 7.0864086000000004е-001 4.98663719999999996-002
Рис. 15.4. Обучающие данные для демонстрации возможностейобучения гибридной сети ANFIS
В этом случае исходный график будет дополнен 26 точками проверочных данных, каждой строке которых также соответствует отдельная точка графика, изображаемая плюсом. На горизонтальной оси указываются порядковый номер (индекс) отдельной строки данных, а вертикальная ось служит для указания значений выходной переменной. В случае рассматриваемого примера используется 25 точек обучающих данных.
После подготовки и загрузки обучающих данных можно сгенерировать структуру системы нечеткого вывода FIS типа Сугено, которая является моделью гибридной сети в системе MATLAB. Для этой цели следует воспользоваться кнопкой Generate FIS в нижней части рабочего окна редактора. При этом две первые опции относятся к предварительно созданной структуре гибридной сети, а две последних — к форме разбиения входных переменных модели.
Рис. 15.5. Графический интерфейс редактора ANFIS после загрузки файла с обучающими данными fuzex1trnData.dat
Загрузить структуру уже созданной FIS можно либо с диска (Load from disk), либо из рабочей области (Load from worksp.). При создании структуры новой FIS можно независимо разбить все входные переменные на области их значений (Grid partition) или воспользоваться процедурой субтрактивной кластеризации для предварительного разбиения значений входных переменных на кластеры близких значений (Sub. clustering).
После нажатия кнопки Generate FIS вызывается диалоговое окно с указанием числа и типа функций принадлежности для отдельных термов входных переменных и выходной переменной (рис. 15.7). В этом случае можно выбрать любой тип функций принадлежности из реализованных в системе MATLAB и рассмотренных ранее (см. главу 12).
После генерации структуры гибридной сети можно визуализировать ее структуру, для чего следует нажать кнопку Structure в правой части графического окна. Структура полученной в результате системы нечеткого вывода FIS отображается в отдельном окне и достаточно тривиальна по своему виду (рис. 15.8).
Для рассматриваемого примера система нечеткого вывода содержит одну входную переменную с 4 термами, 4 правила нечетких продукций, одну выходную переменную с 4 термами. Компоненты системы FIS изображаются узлами соответствующего цвета. При этом узел с нормализующим коэффициентом для правил на рис. 15.8 не указан.
Рис. 15.6. Графический интерфейс редактора ANFIS после загрузки файла с проверочными данными fuzex1chkData.dat
Рис. 15.7. Диалоговое окно для задания количества и типа функций принадлежности
Рис. 15.8. Структура сгенерированной системы нечеткого вывода
Перед обучением гибридной сети необходимо задать параметры обучения, для чего следует воспользоваться следующей группой опций в правой нижней части рабочего окна:
Выбрать метод обучения гибридной сети — обратного распространения (backpropo) или гибридный (hybrid), представляющий собой комбинацию метода наименьших квадратов и метода убывания обратного градиента.
Установить уровень ошибки обучения (Error Tolerance) — по умолчанию значение 0 (изменять не рекомендуется).
Задать количество циклов обучения (Epochs) — по умолчанию значение 3 (рекомендуется увеличить и для рассматриваемого примера задать его значение равным 40).
Для обучения сети следует нажать кнопку Train Now. При этом ход процесса обучения иллюстрируется в окне визуализации в форме графика зависимости ошибки от количества циклов обучения (рис. 15.9).
В этом случае на верхнем графике изображена зависимость ошибки проверки от количества циклов обучения, а на нижнем графике— зависимость ошибки обучения от количества циклов обучения (знаком "*").
Аналогично могут быть выполнены дополнительные этапы тестирования и проверки гибридной сети, для которых необходимо предварительно загрузить соответствующие данные.
Рис. 15.9. График зависимости ошибок обучения и проверки от количества циклов обучения
Дальнейшая настройка параметров построенной и обученной гибридной сети может быть выполнена с помощью рассмотренных ранее стандартных графических средств пакета Fuzzy Logic Toolbox (cal главу 12). Для этого рекомендуется сохранить созданную систему нечеткого вывода во внешнем файле с расширением fis, после чего следует загрузить этот файл в редактор систем нечеткого вывода FIS (рис. 15.10). ' '
При этом также становятся доступными редактор функций принадлежности системы нечеткого вывода (Membership Function Editor), редактор правил системы нечеткого вывода (Rule Editor), программа просмотра правил системы нечеткого вывода (Rule Viewer) и программа просмотра поверхности системы нечеткого вывода (Surface Viewer).
Примечание
В последних версиях системы MATLAB вызов графических средств редактирования и просмотра моделей FIS возможен непосредственно из главного меню редактора ANFIS.
Для исследования построенной модели гибридной сети можно воспользоваться программой просмотра правил (Rule Viewer). Для получения интересующего значения выходной переменной необходимо задать конкретное значение входной пе-
ременной (например, 0.5) аналогично общим рекомендациям систем нечеткого вывода. При этом на графике функций принадлежности выходной переменной будет указано искомое значение выходной переменной — 0.451 (рис. 15.11).
Рис. 15.10. Графический интерфейс редактора FIS для сгенерированной системы нечеткого вывода
В дополнение к этому можно выполнить визуальный анализ поверхности вывода для построенной гибридной сети, которая также позволяет оценить значения выходной переменной. Выполнить анализ обученной и настроенной гибридной сети можно посредством визуализации поверхности нечеткого вывода. Для этой цели следует воспользоваться программой просмотра поверхности системы нечеткого вывода (рис. 15.12).
Изображенная поверхность вывода может быть интерпретирована как график функциональной зависимости выходной переменной от входной для рассматриваемого примера табличного задания соответствующих пар значений. Как можно заключить из анализа данного графика, эта зависимость характеризует некоторый тренд.
Более подробно содержание отдельных этапов построения, обучения и настройки гибридных сетей ANFIS будет описано далее при рассмотрении примера построения адаптивной системы нейро-нечеткого вывода для решения задачи прогнозирования на финансовом рынке.
Рис. 15.11. Графический интерфейс просмотра правил сгенерированной системы нечеткого вывода
Рис. 15.12. Графический интерфейс просмотра поверхности сгенерированной системы нечеткого вывода
Пример решения задачи нейро-нечеткого вывода
Для иллюстрации процесса разработки гибридной сети в системе MATLAB рассмотрим задачу построения адаптивной системы нейро-нечеткого вывода для аппроксимации некоторой зависимости, которая описывается математической функцией j,=x3. Этот пример позволяет не только уточнить содержание и последовательность этапов разработки, но и оценить точность полученной нечеткой модели посредством сравнения прогнозируемых модельных значений с известными заранее значениями соответствующей функции.
Общая последовательность процесса разработки модели гибридной сети может быть представлена в следующем виде.
Для начала с помощью редактора-отладчика m-файлов подготовим обучающие данные, которые содержат 9 строк пар "значение входной переменной — значение выходной переменной" следующего вида (рис. 15.13). Сохраним обучающие данные во внешнем файле с именем function.dat.
Рис. 15.13. Обучающие данные для примера построения гибридной сети ANFIS, представляющей функцию у=^
Далее загрузим этот файл с обучающими данными в редактор ANFIS (рис. 15.14). В рабочем окне редактора будет изображен график, форма которого аналогична исходной математической функции.
Поскольку в данном случае отсутствуют тестовые и проверочные данные, можно сразу приступить к генерации структуры системы нечеткого вывода FIS. Установив параметры генерации аналогично ранее рассмотренному демонстрационному примеру (рис. 15.7), получим структуру FIS, вид которой также совпадает с изображенной на рис. 15.8.
Теперь можно перейти к обучению сгенерированной системы нечеткого вывода. Для этого оставим без изменения предложенные системой MATLAB по умолчанию метод обучения (гибридный) и уровень ошибки (0), а количество циклов обучения изменим на 40. После обучения сети в рабочем окне редак-
тора ANFIS будет изображен график изменения ошибки в ходе выполнения отдельных циклов обучения (рис. 15.15).
Рис. 15.14. Графический интерфейс редактора ANFIS после загрузки файла function.dat с обучающими данными
Выполнить анализ точности построенной нечеткой модели гибридной сети можно с помощью просмотра поверхности соответствующей системы нечеткого вывода (рис. 15.16).
Визуальный анализ изображенного графика с точным графиком функции j'=.x3 позволяет судить о достаточно высокой степени их совпадения, что может свидетельствовать об адекватности построенной нечеткой модели гибридной сети.
Анализ адекватности построенной модели можно выполнить с помощью просмотра правил соответствующей системы нечеткого вывода (рис. 15.17).
Проверка построенной модели гибридной сети может быть выполнена для нескольких значений выходной переменной. С этой целью необходимо ввести конкретное значение в поле ввода Input (например, значение 1.1), после нажатия клавиши <Enter> с помощью построенной модели будет получено соответствующее значение выходной переменной (в данном случае значение 1.23). Сравнивая полученное значение с точным значением функции 1.331), получим относительную ошибку порядка 8%.
Рис. 15.15. График зависимости ошибки обучения от количества циклов обучения
Рис. 15.16. Графический интерфейс просмотра поверхности сгенерированной системы нечеткого вывода
Рис. 15.17. Графический интерфейс просмотра правил сгенерированной системы нечеткого вывода
Менее удачной оказывается проверка для значения входной переменной 0.1, для которого построенная модель предлагает отрицательное значение -0.148. Очевидно, данный факт свидетельствует не в пользу адекватности построенной нечеткой модели и требует ее дополнительной настройки.
В общем случае дополнительная настройка модели может быть выполнена несколькими возможными способами. Наиболее приемлемыми из них представляются следующие.
Подготовка и загрузка большего по объему выборки файла с обучающими исходными данными.
Подготовка и загрузка дополнительного файла с проверочными исходными данными, сформированными для пар значений рассматриваемой математической функции, отсутствующих в выборке обучающих данных.
Редактирование типов и значений параметров функций принадлежности термов входной и выходной переменных с помощью редактора функций принадлежности системы MATLAB.
Проиллюстрируем третий способ дополнительной настройки построенной нечеткой модели гибридной сети. На первый взгляд он представляется наиболее естественным с точки зрения возможности визуального контроля выполняемых изменений параметров. С этой целью откроем редактор функций принадлежности и методом подбора изменим количественные значения параметров второй и третьей функции принадлежности входной переменной, поскольку именно они
"работают" при получении некорректного значения выходной переменной: -0.148 для значения входной переменной 0.2. (рис. 15.18).
Рис. 15.18. Графический интерфейс редактора функций принадлежности построенной системы нечеткого вывода
После изменения параметров в поле Params для второй функции принадлежности на значения [0.55 2 -0.437] и для третьей функции принадлежности на значения [0.65 1.9 0.667] получим практически точное значение выходной переменной для исходного значения входной переменной 0.2 (рис. 15.19).
Примечание
Данный способ редактирования параметров функций принадлежности не всегда приводит к желаемому результату, поскольку оказывает влияние на другие, возможно правильные, значения выходной переменной. В этом можно убедиться, введя значение входной переменной, равное 0.1. Поэтому разработанная нечеткая модель не может быть признана адекватной и требует дополнительной модификации.
Более эффективным способом настройки, а точнее— модификации, данной нечеткой модели оказывается первый. С этой целью увеличим объем обучающей выборки до 17 пар значений, который сохраним в новом файле с именем function2.dat (рис. 15.20).
Рис. 15.19. Результат ручной настройки параметров функций принадлежности входной переменной для рассматриваемой системы нечеткого вывода
Рис. 15.20. Обучающие данные увеличенного объема для построения гибридной сети ANFIS, представляющей функцию у=№
После удаления всех ранее загруженных данных кнопкой Clear Data загрузим новый файл с обучающей выборкой. При генерации структуры новой FIS увеличим количество термов и, соответственно, количество функций принадлежности входной переменной до 5, оставив их тип без изменения (gbellmf). Процесс обучения выполним аналогично ранее рассмотренному. В результате будет получена новая система нечеткого вывода FIS, анализ которой показывает, что по сравнению с первым вариантом нечеткой модели она более точно описывает исходную математическую функцию (рис. 15.21).
Рис. 15.21. Результат построения новой модели рассматриваемой системы нечеткого вывода
Действительно, для значений входной переменной 0.1, 0.2 и 0.3 с помощью данной модели будут получены значения выходной переменной, равные 0.0425, 0.0769 и 0.0956 соответственно. Для сравнения точные значения выходной переменной для указанных значений входной переменной равны 0.001, 0.008 и 0.027 соответственно. В некоторой степени улучшение качества вновь построенной нечеткой модели иллюстрируется графиком поверхности (рис. 15.22). который более точно по сравнению с ранее полученным графиком (рис. 15.16) соответствует исходной математической функции.
Рис. 15.22. График поверхности вновь сгенерированной и обученной системы нечеткого вывода
Хотя полученные значения все еще отличаются от точных значений исходной математической функции, выполненная модификация нечеткой модели позволила исключить явно ошибочные значения выходной переменной, связанные со знаком. Очевидно, проверка адекватности нечеткой модели для значений в интервалах (-0.4, 0) и (0, 0.4) заведомо обречена на возможные проблемы, поскольку в этих интервалах отсутствуют значения среди обучающих данных.
Исключение подобных пропусков в обучающих данных может служить основой для генерации новой нечеткой модели, которую предлагается читателям выполнить самостоятельно в качестве упражнения.
В заключение следует отметить, что даже простейшие рассмотренные примеры отражают творческий характер процесса построения и анализа моделей гибридных сетей. При этом выбор того или иного способа дополнительной настройки нечетких моделей зависит не только от специфики решаемой задачи, но и от объема доступной выборки обучающих и проверочных данных.
В случае недостаточной информации обучающих данных использование гибридных сетей может оказаться вообще нецелесообразным, поскольку получить адекватную нечеткую модель, а значит— и точный прогноз значений выходной переменной не представляется возможным.
Именно по этим причинам необходим предварительный анализ всех возможностей применяемых нечетких моделей для решения конкретных задач в той или иной проблемной области. Подобный анализ необходимо выполнять с системной точки зрения и с учетом всех складывающихся на данный момент обстоятельств. Только всесторонняя и полная оценка проблемной ситуации позволит разработать адекватную модель решения той или иной конкретной задачи нечеткого управления или принятия решений.
Глава 16
Примеры разработки нечетких моделей управления в среде MATLAB
Настоящая глава посвящена рассмотрению двух конкретных примеров систем нечеткого вывода в задачах управления и построению соответствующих нечетких моделей с использованием средств MATLAB. При этом в качестве первого примера используется задача управления кондиционером в помещении, а в качестве второго— задача управления контейнерным краном. Содержательные постановки этих задач были сформулированы ранее в главе 7.
Нечеткая модель управления кондиционером воздуха в помещении
Напомним, что эта задача связана с процессом управления температурой воздуха в помещении, в котором установлен бытовой кондиционер. Суть задачи состоит в том, чтобы сделать регулировку кондиционера автоматической, обеспечивая постоянную температуру воздуха в помещении.
Для решения этой задачи в разд. 7.4 была построена база правил соответствующей системы нечеткого вывода, которая содержит 15 правил нечетких продукций следующего вида:
ПРАВИЛО_1: ЕСЛИ "pi есть РВ" И "р2еть PS" ТО "рзесть NB"
ПРАВИЛО_2: ЕСЛИ "pi есть РВ" И "р2есшь NS" ТО "рзссшь NS" ПРАВИЛО_3: ЕСЛИ "Pi есть PS" И "^есть PS" ТО "^зесть NM" ПРАВИЛО_4: ЕСЛИ "pi есть PS" И пр2 есть NS" ТО "рз есть Z" ПРАВИЛО_5: ЕСЛИ "pi есть NB" И "^есть NS" ТО "рзесшь РВ" ПРАВИЛО_6: ЕСЛИ "pi есть NB" И "ргес/иь PS" ТО "рзесшь PS" ПРАВИЛО_7: ЕСЛИ "Pi есть NS" И "р2есшь NS" ТО "Рзесшь РМ" ПРАВИЛО_8: ЕСЛИ "pi есть NS" И "р2есть PS" ТО "Рз есть 7"
ПРАВИЛО_9: ЕСЛИ "pi есть РВ" И "^есть Z" ТО "^есть NM" ПРАВИЛО_Ю: ЕСЛИ "Pi есть PS" И "р2т»ь Z" ТО "Рэ есть NS" ПРАВИЛЕН1: ЕСЛИ "01 есть NB" И "р2 есть Z" ТО "рз есть РМ" ПРАВИЛО_12: ЕСЛИ "pi есть NS" И "р2 есть Z" ТО "рз есть PS" ПРАВИЛЕН 3: ЕСЛИ "pi есть Z" И "р2есть PS" ТО "рзесть NS" ПРАВИЛО_14: ЕСЛИ "Р> есть Z" И "р2есть NS" ТО "^зесть PS" ПРАВИЛЕН 5: ЕСЛИ "Pi есть Z" И "р2есть Z" ТО "рзесть Z"
Для сокращенной записи правил используются следующие обозначения: Pi — первая входная лингвистическая переменная с именем "температура воздуха", р2 — вторая входная лингвистическая переменная с именем "скорость изменения температуры воздуха", Рз— выходная лингвистическая переменная с именем "угол поворота регулятора". Для сокращения записи правил использованы также символические обозначения значений отдельных термов переменных (см. табл. 7.1).
В качестве терм-множества первой лингвистической переменной используется множество Т\=Vочень холодная", "холодная", "в пределах нормы", "теплая", "очень теплая"}, которое записывается в символическом виде: Ti={NB, NS, Z, PS, РВ}. В качестве терм-множества второй лингвистической переменной используется множество Тг= V"отрицательная", "равна нулю", "положительная"}, которое записывается в символическом виде: 72={NS, Z, PS}. В качестве терм-множества выходной лингвистической переменной используется множество 7з={"очень большой угол влево”, "большой угол влево", "небольшой угол влево", "выключить кондиционер", "небольшой угол вправо", "большой угол вправо", "очень большой угол вправо"}, которое записывается в символическом виде: 7з={МВ, NM, NS, Z, PS, РМ, РВ}. При этом функции принадлежности термов из Т\ изображены на рис. 7.19, функции принадлежности термов из Тг изображены на рис. 7.20, а функции принадлежности термов из 7з изображены на рис. 7.21.
Разработку нечеткой модели (назовем ее conditioner) будем выполнять с использованием графических средств системы MATLAB. С этой целью откроем редактор FIS и определим 2 входные переменные с именами "температура" (Pi) и "скорость" (р2) и одну выходную переменную с именем "угол" (Рз). Вид графического интерфейса редактора FIS для этих переменных изображен на рис. 16.1.
Поскольку мы используем систему нечеткого вывода типа Мамдани, оставим без изменения тип, предложенный системой MATLAB по умолчанию. Нет необходимости изменять и другие параметры разрабатываемой нечеткой модели, предложенные системой MATLAB по умолчанию, такие как логические операции (min— для нечеткого логического И, шах— для нечеткого логического ИЛИ), методы импликации (min), агрегирования (max) и дефаззификации (centroid).
Далее следует определить функции принадлежности термов для каждой из переменных системы нечеткого вывода. Для этой цели воспользуемся редактором функций принадлежности системы MATLAB. Для первой входной переменной следует добавить два дополнительных терма к трем, заданным по умолчанию, и определить параметры соответствующих функций принадлежности. Численные
Гпава 16. Примеры разработки нечетких моделей управления в среде MATLAB 453 значения этих параметров можно взять из записи этой нечеткой модели на языке FCL (см. главу 8). Вид графического интерфейса редактора функций принадлежности после задания первой входной переменной изображен на рис. 16.2.
Рис. 16.1. Графический интерфейс редактора FIS после определения входных и выходных переменных разрабатываемой системы нечеткого вывода
Для второй входной переменной следует оставить 3 терма, заданные по умолчанию, и изменить только тип и параметры функций принадлежности. Для выходной переменной следует добавить 4 терма к трем, заданным по умолчанию, и задать параметры соответствующих функций принадлежности. Численные значения этих параметров также берутся из записи этой нечеткой модели на языке FCL (см. главу 8). Вид графического интерфейса редактора функций принадлежности после задания выходной переменной изображен на рис. 16.3.
Примечание
Выполнение операции добавления термов переменных в редакторе функций принадлежности MATLAB версии 6.1 может привести к нестабильной работе системы. В этом случае для определения дополнительных функций принадлежности входных и выходных переменных следует воспользоваться функциями командной строки, которые были рассмотрены ранее в главе 12 для примера разработки нечеткой модели в командном режиме.
Рис. 16.2. Графический интерфейс редактора функций принадлежности после задания первой входной переменной "температура" для системы нечеткого вывода conditioner
Рис. 16.3. Графический интерфейс редактора функций принадлежности после задания выходной переменной "угол" для системы нечеткого вывода conditioner
Теперь зададим 15 правил для разрабатываемой системы нечеткого вывода. Для этой цели воспользуемся редактором правил системы MATLAB. Вид графического интерфейса редактора правил после задания всех 15 правил нечеткого вывода изображен на рис. 16.4.
Рис. 16.4. Графический интерфейс редактора правил после задания базы правил для системы нечеткого вывода conditioner
Теперь можно выполнить оценку построенной системы нечеткого вывода для задачи автоматического управления кондиционером в помещении. С этой целью откроем программу просмотра правил системы MATLAB и введем значения входных переменных для частного случая, когда текущая температура воздуха в помещении равна 20 °C, а скорость ее изменения положительная и составляет 0.2 °С/мин. Процедура нечеткого вывода, выполненная системой MATLAB для разработанной нечеткой модели, выдает в результате значение выходной переменной "угол", равное -33.8° (рис. 16.5).
Данное значение соответствует включению режима "холод" кондиционера на треть своей мощности. Сравнение результатов нечеткого вывода для этих значений входных переменных, полученные на основе численных расчетов в главе 7 («34° влево) и с помощью разработанной нечеткой модели MATLAB, показывает хорошую согласованность модели и подтверждает ее адекватность в рамках рассматриваемой модели.
Рис. 16.5. Графический интерфейс программы просмотра правил после выполнения процедуры нечеткого вывода для значений входных переменных [20 0.2]
Процесс анализа и исследования построенной нечеткой модели включает в себя выполнение нечетких выводов для различных значений входных переменных и оценки полученных результатов с целью установления адекватности модели и внесения в нее необходимых изменений в случае несогласованности отдельных результатов. Проверка нечеткой модели для других значений входных переменных, например, 10 °C и 0.2 °С/мин приводит к результату 19.7°, что также подтверждает ее адекватность.
Примечание
Для более тонкой настройки построенной нечеткой модели необходимо знать технические характеристики конкретного кондиционера, установленного в помещении. В частности, значения параметров функций принадлежности отдельных термов могут зависеть от мощности кондиционера и зависимости мощности от угла поворота регулятора.
Для общего анализа разработанной нечеткой модели может оказаться полезной визуализация соответствующей поверхности нечеткого вывода (рис. 16.6).
Рис. 16.6. Визуализация поверхности нечеткого вывода для системы нечеткого вывода conditioner
Данная поверхность нечеткого вывода позволяет установить зависимость значений выходной переменной от значений входных переменных нечеткой модели системы управления кондиционером. Эта зависимость может послужить основой для программирования контроллера или аппаратной реализации соответствующего нечеткого алгоритма управления в форме таблицы решений. В дополнение к этому установление данной зависимости является по сути решением задачи, известной в классической теории управления как задача синтеза управляющих воздействий. При этом для решения данной задачи были использованы средства нечеткой логики и теории нечетких множеств.
Нечеткая модель управления контейнерным краном
Напомним, что эта задача связана с процессом управления контейнерным краном, который используется для транспортировки моноблочных контейнеров при выполнении разгрузочных работ морских судов. Суть задачи состоит в том, чтобы разработать модель, позволяющую автоматически управлять процессом горизонтального перемещения контейнерного крана, исключив раскачивание контейнеров.
Для решения этой задачи в разд. 7.4 была построена база правил соответствующей системы нечеткого вывода, которая содержит 6 правил нечетких продукций следующего вида:
ПРАВИЛО-1: ЕСЛИ "pi есть РВ" И "р2 есть Z" ТО "р3 есть РМ"
ПРАВИЛО_2ПРАВИЛО_2ПРАВИЛО_3ПРАВИЛО_3ПРАВИЛО_4ПРАВИЛО_4ПРАВИЛОМПРАВИЛОМПРАВИЛО_6ПРАВИЛО_6ЕСЛИ "pi есть РВ" И "р2 есть NS" ТО "р3 есть РВ"
ПРАВИЛО_2
ПРАВИЛО_2
ПРАВИЛО_3
ПРАВИЛО_3
ПРАВИЛО_4
ПРАВИЛО_4
ПРАВИЛОМ
ПРАВИЛОМ
ПРАВИЛО_6
ПРАВИЛО_6
ЕСЛИ "pi есть РВ" И "р2 есть NB" "рз есть РМ"
ЕСЛИ "р। есть РМ" И "р2 есть NS" ТО "рз есть NM"
ЕСЛИ "Pi есть PS" И "р2 есть PS" ТО "Рз есть РМ"
ЕСЛИ "Pi есть 72' И "р2 есть 72' ТО "р3 есть Z"
Для сокращенной записи правил используются следующие обозначения: Pi — первая входная лингвистическая переменная с именем "расстояние", р2 — вторая входная лингвистическая переменная с именем "угол", р3 — выходная лингвистическая переменная с именем "мощность".
В качестве терм-множества первой лингвистической переменной используется множество Т\= {"нуль", "близкое", "среднее", "далекое"^, которое записывается в символическом виде: Ti = {Z, PS, РМ, РВ). В качестве терм-множества второй лингвистической переменной используется множество Тг= {"отрицательный большой", "отрицательный малый", "нуль”, "положительный малый"{, которое записывается в символическом виде: T2={NB, NS, Z, PS). В качестве терм- множества выходной лингвистической переменной используется множество Гз= {"отрицательная средняя", "нуль", "положительная средняя", "положительная большая"^, которое записывается в символическом виде: 73={NM, Z, РМ, РВ). Графики функций принадлежности термов из Ti изображены на рис. 7.24, функции принадлежности термов из Г2 изображены на рис. 7.25, а функции принадлежности термов из 7з изображены на рис. 7.26.
Примечание
Рассматриваемая база правил нечеткой модели управления краном несколько отличается от построенной базы правил в разд. 7.4. В частности, для сокращения избыточности исключены не используемые в правилах нечеткого вывода термы, а их имена записаны в типовых обозначениях.
Разработку нечеткой модели (назовем ее crane) также будем выполнять с использованием графических средств системы MATLAB. С этой целью откроем редактор FIS и определим 2 входные переменные с именами "расстояние" (Pi) и "угол" (р2) и одну выходную переменную с именем "мощность" (р3). Вид графического интерфейса редактора FIS для этих переменных изображен на рис. 16.7.
Оставим без изменения тип системы нечеткого вывода, предложенный системой MATLAB по умолчанию, поскольку будем использовать систему нечеткого вывода типа Мамдани. Нет необходимости изменять и другие параметры разрабатываемой нечеткой модели, предложенные системой MATLAB по умолчанию, такие как логические операции (min — для нечеткого логического И, max — для
нечеткого логического ИЛИ), методы импликации (min), агрегирования (max) и метода дефаззификации (centroid).
Рис. 16.7. Графический интерфейс редактора FIS после определения входных и выходных переменных для системы нечеткого вывода crane
Далее следует определить функции принадлежности термов для каждой из переменных системы нечеткого вывода. Для этой цели воспользуемся редактором функций принадлежности системы MATLAB. Для первой входной переменной следует добавить один дополнительный терм к трем, заданным по умолчанию, и определить параметры соответствующих функций принадлежности. Численные значения этих параметров можно взять из записи этой нечеткой модели на языке FCL (см. главу 8). Вид графического интерфейса редактора функций принадлежности после задания первой входной переменной изображен на рис. 16.8.
Для второй входной переменной "угол" также следует определить 4 терма, изменив диапазон значений переменной и параметры треугольных функций принадлежности термов. Для выходной переменной "мощность" следуеч определить 4 терма, изменить диапазон значений переменной и определить соответствующие функции принадлежности термов.
Поскольку функции принадлежности термов выходной переменной равны постоянным значениям, как это определено в записи этой нечеткой модели на языке FCL (см. главу 8), а среди встроенных функций принадлежности системы
MATLAB отсутствуют одноточечные функции принадлежности, то в качестве функции принадлежности термов возьмем треугольные функции принадлежности с подходящими значениями параметров. Вид графического интерфейса редактора функций принадлежности после задания выходной переменной изображен на рис. 16.9.
Рис. 16.8. Графический интерфейс редактора функций принадлежности после задания первой входной переменной "расстояние" для системы нечеткого вывода crane
Примечание
При задании треугольных функций принадлежности для термов выходной переменной исходная нечеткая модель для задачи управления краном несколько модифицируется с учетом возможностей среды реализации MATLAB. Если эту модель реализовывать в точности, то следует воспользоваться функциями командной строки, которые были рассмотрены ранее в главе 12 для примера разработки нечеткой модели в командном режиме.
Теперь зададим 6 правил для разрабатываемой системы нечеткого вывода. Для этой цели воспользуемся редактором правил системы MATLAB. Вид графического интерфейса редактора правил после задания всех 6 правил нечеткого вывода изображен на рис. 16.10.
Рис. 16.9. Графический интерфейс редактора функций принадлежности после задания выходной переменной "мощность" для системы нечеткого вывода craneРис. 16.9. Графический интерфейс редактора функций принадлежности после задания выходной переменной "мощность" для системы нечеткого вывода crane♦Д Rule Editor crane♦Д Rule Editor craneFile Edit View. OptionsFile Edit View. Options1 M (рвсст-ние is PB) and (угол is Z) then (мощность is PM) (1)1 M (рвсст-ние is PB) and (угол is Z) then (мощность is PM) (1)2. И (расст-ние is PB) and (угол is NS) then (мощность is PB) (1) 3 If (расст-ние is PB) and (угол is NB) then (мощность is PM) (1) 4. If (расст-ние is PM) and (угол is NS) then (мощность is NM) (1)2. И (расст-ние is PB) and (угол is NS) then (мощность is PB) (1) 3 If (расст-ние is PB) and (угол is NB) then (мощность is PM) (1) 4. If (расст-ние is PM) and (угол is NS) then (мощность is NM) (1)Г notГ notГ notГ notV Connection ^ Weight torV Connection ^ Weight torГ notГ notChange ruleChange ruleAdd ruleAdd rule22PMPBPMPBмощность isNMмощность isNMThe щ!е is added :
Рис. 16.9. Графический интерфейс редактора функций принадлежности после задания выходной переменной "мощность" для системы нечеткого вывода crane
Рис. 16.9. Графический интерфейс редактора функций принадлежности после задания выходной переменной "мощность" для системы нечеткого вывода crane
♦Д Rule Editor crane
♦Д Rule Editor crane
File Edit View. Options
File Edit View. Options
1 M (рвсст-ние is PB) and (угол is Z) then (мощность is PM) (1)
1 M (рвсст-ние is PB) and (угол is Z) then (мощность is PM) (1)
2. И (расст-ние is PB) and (угол is NS) then (мощность is PB) (1) 3 If (расст-ние is PB) and (угол is NB) then (мощность is PM) (1) 4. If (расст-ние is PM) and (угол is NS) then (мощность is NM) (1)
2. И (расст-ние is PB) and (угол is NS) then (мощность is PB) (1) 3 If (расст-ние is PB) and (угол is NB) then (мощность is PM) (1) 4. If (расст-ние is PM) and (угол is NS) then (мощность is NM) (1)
Г notГ not
Г notГ not
V Connection ^ Weight tor
V Connection ^ Weight tor
Г not
Г not
Change rule
Change rule
Add rule
Add rule
2
2
PM
PB
PM
PB
мощность is
NM
мощность is
NM
Рис. 16.10. Графический интерфейс редактора правил после заданиябазы правил для системы нечеткого вывода crane
Теперь можно выполнить оценку построенной системы нечеткого вывода для задачи автоматического управления портовым краном. С этой целью откроем программу просмотра правил системы MATLAB и введем значения входных переменных для частного случая, когда текущее расстояние до цели равно 7.5 м, а угол между контейнером и кабиной крана равен 10°. Процедура нечеткого вывода, выполненная системой MATLAB для разработанной нечеткой модели, выдает в результате значение выходной переменной "мощность”, равное 12 киловатт (рис. 16.11).
Рис. 16.11. Графический интерфейс программы просмотра правил после выполнения процедуры нечеткого вывода для значений входных переменных [7.5 10]
Данное значение соответствует включению двигателя крана для движения вправо (в положительном направлении), при этом сама мощность равна 12 киловатт. В данном случае сравнение результатов нечеткого вывода для этих значений входных переменных, полученных на основе численных расчетов в главе 7 и с помощью разработанной нечеткой модели MATLAB, также показывает согласованность модели и подтверждает ее адекватность.
Примечание
Для более тонкой настройки построенной нечеткой модели также необходимо знать технические характеристики конкретного крана в том или ином в порту.
В частности, значения параметров функций принадлежности отдельных термов могут зависеть от мощности двигателей отдельных кранов, габаритов контейнеров и размещения целевых площадок для погрузки контейнеров. При этом может потребоваться увеличение количества правил для модифицированной нечеткой модели.
Для общего анализа разработанной нечеткой модели также может оказаться полезной визуализация соответствующей поверхности нечеткого вывода (рис. 16.12).
Рис. 16.12. Визуализация поверхности нечеткого вывода для системы нечеткого вывода crane
Данная поверхность нечеткого вывода позволяет установить зависимость значений выходной переменной от значений входных переменных нечеткой модели системы управления краном. Эта зависимость может послужить основой для программирования контроллера или аппаратной реализации соответствующего нечеткого алгоритма управления в форме соответствующей таблицы решений.
Рассмотренные примеры иллюстрируют все практические действия, которые необходимо выполнить для разработки и использования нечетких моделей в форме систем нечеткого вывода. При этом соответствующие графические средства системы MATLAB позволяют реализовать все этапы процесса нечеткого моделирования в удобной для пользователя форме.
Глава 17
Примеры разработки нечетких моделей принятия решений в среде MATLAB
В качестве иллюстрации практического применения системы MATLAB рассматриваются две практические задачи нечеткого моделирования. Первая из них возникает при оценивании финансовой состоятельности клиентов со стороны банков при выдаче долгосрочных кредитов (ссуд) на строительство недвижимости под залог. Вторая задача является типичной в практике анализа и прогнозирования цен на финансовом рынке валюты или ценных бумаг.
.1 Оценивание финансовой состоятельности клиентов при предоставлении банковских кредитов
Данная задача была сформулирована и решена в рамках исследования, выполненного фирмой INFORM GmbH, являющейся разработчиком программного средства fuzzyTECH, которое рассматривается в части III. Этот пример позволяет не только познакомиться с особенностями разработки реальных приложений, но и может служить в качестве тестового при выполнении сравнительного анализа различных программных средств нечеткого моделирования.
Содержательная постановка задачи оценивания финансовой состоятельности клиентов
Суть рассматриваемой задачи заключается в следующем. При выдаче долгосрочных кредитов на строительство зданий или коттеджей под залог недвижимости для оценки состоятельности клиентов банками традиционно используется метод экспертных оценок. При этом целью банков является получение максимальной прибыли от заключенных сделок по предоставлению кредитов и исключение возможности финансовых потерь. Поэтому интересы банков сосредо-
Глава 17. Примеры разработки нечетких моделей принятия решений в среде MATLAB 465 точены, с одной стороны, на увеличении количества успешных сделок, а с другой стороны, на избежании неудачных сделок, когда клиент не возвращает выданный кредит или возвращает его не вовремя.
Традиционно основанием для принятия решений по предоставлению кредитов в будущем служит опыт успешных сделок, совершенных в прошлом. Руководство банка Home&Savings Bank, в интересах которого выполнялось соответствующее исследование, хотело бы обобщить правила предоставления кредитов с целью максимально полно использовать опыт экспертов. При этом необходимо исключить возможные ошибки субъективного характера со стороны отдельных менеджеров в случае неадекватного оценивания финансовой состоятельности клиентов.
Анализ стратегии предоставления кредитов на строительство зданий показывает, что для оценивания финансовой состоятельности клиентов могут быть использованы различные характеристики, такие как месторасположение строящегося здания, качество предполагаемого выполнения отделочных работ, оценка активов потенциального клиента, оценка дохода потенциального клиента за вычетом фиксированных расходов, величина подлежащих уплате процентов по кредиту. При этом собственно финансовая состоятельность клиента оценивается его кредитоспособностью.
Одной из первых формальных моделей, предложенных для решения данной задачи, являлась статистическая модель, основанная на вероятностной интерпретации количественной оценки положительного решения о предоставлении кредита. Однако более детальный анализ этой модели со временем показал ее неадекватность, связанную с недостаточным объемом статистической выборки и изменяющимися с течением времени условиями предоставления кредитов.
Именно по этой причине была предложена идея разработки нечеткой модели для оценивания финансовой состоятельности клиентов с целью принятия решений о предоставлении долгосрочных кредитов. При этом в качестве нечеткой модели используется система нечеткого вывода со следующими входными и выходными переменными.
Описание входных и выходных переменных рассматриваемой задачи
Содержательная интерпретация нечеткой модели предполагает выбор и спецификацию входных и выходных переменных соответствующей системы нечеткого вывода. При этом в нечеткой модели предполагается использовать 5 входных переменных и I выходную переменную.
В качестве первой входной переменной используется оценка месторасположения строящегося здания, которая непосредственно оценивает проект строящегося здания, принимая во внимание размещение здания в том или ином конкретном районе города или регионе пригорода. Очевидно, чем выше эта оценка, тем более ликвидным представляется проект в случае его реализации на рынке недвижимости.
В качестве второй входной переменной используется качество предполагаемого выполнения отделочных работ согласно архитектурному проекту строящегося здания. Эта переменная вносит дополнительный элемент в оценку стоимости строящегося здания.
В качестве третьей входной переменной используется оценка активов, которая используется для оценки имущества или авуаров в случае несостоятельности потенциального клиента при невозвращении им взятого кредита. Действительно, величина предоставляемого кредита должна основываться не только на учете стоимости строящегося здания, но и на собственной капитализации клиента.
В качестве четвертой входной переменной используется оценка дохода потенциального клиента за вычетом фиксированных расходов, которая также используется в случае несостоятельности потенциального клиента при невозвращении им взятого кредита. Чем выше значение этой переменной, тем более успешным представляется предоставление кредита клиенту.
В качестве пятой входной переменной используется величина подлежащих уплате процентов согласно предполагаемому плану выплат по взятому кредиту. Эта переменная связана со сроком предоставления кредита и его величиной, позволяя объединить в себе соответствующие характеристики кредита. Чем выше величина выплат по процентам, тем более высокими должны быть значения активов и доходов для положительного решения о предоставлении кредита потенциальному клиенту.
В качестве выходной переменной используется оценка кредитоспособности, которая является основой для принятия решения руководством банка по предоставлению кредита потенциальным клиентам. При этом решение о предоставлении кредита руководством банка принимается только в случае высокой оценки этой выходной переменной.
Анализ предоставления кредитов на строительство зданий показывает, что для анализа финансовой состоятельности потенциальных клиентов руководство банков применяет следующие эвристические правила:
Если величина дохода низкая и величина выплат средняя, то кредитоспособность очень низкая.
Если величина дохода низкая и величина выплат высокая, то кредитоспособность очень низкая.
Если величина дохода средняя и величина выплат высокая, то кредитоспособность очень низкая.
Если активы низкие и величина дохода низкая, то кредитоспособность очень низкая.
Если активы низкие и величина дохода средняя, то кредитоспособность очень низкая.
Если активы средние и величина дохода низкая, то кредитоспособность очень низкая.
Если качество отделки плохое, активы низкие и величина дохода высокая, то кредитоспособность очень низкая.
Если качество отделки плохое, активы средние и величина дохода средняя, то кредитоспособность очень низкая.
Если качество отделки плохое, активы высокие и величина дохода низкая, то кредитоспособность очень низкая.
Если качество отделки плохое, активы высокие и величина дохода средняя, то кредитоспособность очень низкая.
Если местоположение непрестижное, качество отделки хорошее, активы низкие и величина дохода высокая, то кредитоспособность средняя.
Если местоположение непрестижное, качество отделки прекрасное, активы низкие и величина дохода высокая, то кредитоспособность средняя.
Если местоположение престижное, качество отделки хорошее, активы низкие и величина дохода высокая, то кредитоспособность средняя.
Если местоположение очень престижное, качество отделки хорошее, активы низкие и величина дохода высокая, то кредитоспособность средняя.
Если местоположение непрестижное, качество отделки хорошее, активы средние и величина дохода средняя, то кредитоспособность средняя.
Если местоположение непрестижное, качество отделки прекрасное, активы средние и величина дохода средняя, то кредитоспособность средняя.
Если местоположение престижное, качество отделки хорошее, активы средние и величина дохода средняя, то кредитоспособность средняя.
Если местоположение очень престижное, качество отделки хорошее, активы средние и величина дохода средняя, то кредитоспособность средняя.
Если местоположение непрестижное, качество отделки хорошее, активы высокие и величина дохода низкая, то кредитоспособность средняя.
Если местоположение непрестижное, качество отделки прекрасное, активы высокие и величина дохода низкая, то кредитоспособность средняя.
Если местоположение престижное, качество отделки хорошее, активы высокие и величина дохода низкая, то кредитоспособность средняя.
Если местоположение очень престижное, качество отделки хорошее, активы высокие и величина дохода низкая, то кредитоспособность средняя.
Если местоположение непрестижное, качество отделки хорошее, активы высокие и величина дохода средняя, то кредитоспособность средняя.
Если местоположение непрестижное, качество отделки прекрасное, активы высокие и величина дохода средняя, то кредитоспособность средняя.
Если местоположение престижное, качество отделки хорошее, активы высокие и величина дохода средняя, то кредитоспособность средняя.
Если местоположение очень престижное, качество отделки хорошее, активы высокие и величина дохода средняя, то кредитоспособность средняя.
Если местоположение престижное, качество отделки прекрасное, активы средние и величина дохода высокая, то кредитоспособность очень высокая.
Если местоположение престижное, качество отделки прекрасное, активы высокие и величина дохода высокая, то кредитоспособность очень высокая.
Если местоположение очень престижное, качество отделки прекрасное, активы средние и величина дохода высокая, то кредитоспособность очень высокая.
Если местоположение очень престижное, качество отделки прекрасное, активы высокие и величина дохода высокая, то кредитоспособность очень высокая.
Если местоположение непрестижное, качество отделки хорошее, активы средние и величина дохода высокая, то кредитоспособность высокая.
Если местоположение непрестижное, качество отделки прекрасное, активы средние и величина дохода высокая, то кредитоспособность высокая.
Если местоположение престижное, качество отделки хорошее, активы средние и величина дохода высокая, то кредитоспособность высокая.
Если местоположение очень престижное, качество отделки хорошее, активы средние и величина дохода высокая, то кредитоспособность высокая.
Если местоположение непрестижное, качество отделки хорошее, активы высокие и величина дохода высокая, то кредитоспособность высокая.
Если местоположение непрестижное, качество отделки прекрасное, активы высокие и величина дохода высокая, то кредитоспособность высокая.
Если местоположение престижное, качество отделки хорошее, активы высокие и величина дохода высокая, то кредитоспособность высокая.
Если местоположение очень престижное, качество отделки хорошее, активы высокие и величина дохода высокая, то кредитоспособность высокая.
Если местоположение престижное, качество отделки прекрасное, то кредитоспособность высокая.
Если местоположение очень престижное, качество отделки прекрасное, то кредитоспособность высокая.
После рассмотрения содержательной постановки задачи можно приступить к построению ее нечеткой модели в форме соответствующей системы нечеткого вывода. Для этой цели воспользуемся рассмотренными ранее графическими средствами пакета Fuzzy Logic Toolbox системы MATLAB.
Нечеткая модель оценивания финансовой состоятельности клиентов
При построении нечеткой модели оценки финансовой состоятельности потенциальных клиентов было сделано предположение о том, что все рассматриваемые переменные измеряются в баллах в интервале действительных чисел от 0 до 10.
При этом самая низкая оценка значения каждой из переменных является 0, а самой высокой — 10. Этот подход аналогичен рассмотренному ранее примеру 12.1 "Чаевые в ресторане".
Фаззификация входных и выходных переменных
В качестве терм-множества первой входной переменной "Местоположение" (Location) будем использовать множество Т\-}" непрестижное", "престижное", "очень престижное"} или в символическом виде Ti^fPS, PM, РВ} с функциями принадлежности термов, изображенными на рис. 17.1, а.
В качестве терм-множества второй входной переменной "Отделка" (Workmanship) будем использовать аналогичное множество Т1=\"шюхая", "хорошая", "прекрасная"} или в символическом виде 7з={Р8, PM, РВ} с функциями принадлежности термов, изображенными на рис. 17.1, б.
Рис. 17.1. Графики функций принадлежности для термов лингвистических переменных "Местоположение" и "Отделка"Рис. 17.1. Графики функций принадлежности для термов лингвистических переменных "Местоположение" и "Отделка"бб
Рис. 17.1. Графики функций принадлежности для термов лингвистических переменных "Местоположение" и "Отделка"
Рис. 17.1. Графики функций принадлежности для термов лингвистических переменных "Местоположение" и "Отделка"
б
б
В качестве терм-множества третьей лингвистической переменной "Активы" (Asset) будем использовать множество Тз={" низкие", "средние", "высокие"} или в символическом виде 7з={Р8, PM, РВ} с функциями принадлежности термов, изображенными на рис. 17.2, а.
В качестве терм-множества четвертой лингвистической переменной "Доход" (Income) будем использовать аналогичное множество Т4-\"низкий", "средний", "высокий”} или в символическом виде 74={PS, PM, РВ} с функциями принадлежности термов, изображенными на рис. 17.2, 6.
Рис. 17.2. Графики функций принадлежности для термов лингвистических переменных "Активы" и "Доход", измеряемых в баллах
В качестве терм-множества пятой лингвистической переменной "Выплаты" (Interest) будем использовать аналогичное множество Т5=}"низкие", "средние", "высокие"} или в символическом виде Ts={PS, РМ, РВ} с функциями принадлежности термов, изображенными на рис. 17.3, а.
В качестве терм-множества выходной лингвистической переменной "Кредитоспособность" (Credit) будем использовать множество Тв=\" очень низкая", "низкая", "средняя", "высокая", "очень высокая"} или в символическом виде
7e={NB, NS, Z, PS, PB} с функциями принадлежности термов, изображенными на рис. 17.3, б.
а
Рис. 17.3. Графики функций принадлежности для термов лингвистических переменных "Выплаты" и "Кредитоспособность”, измеряемых в баллах
Формирование базы правил систем нечеткого вывода
Следующим этапом построения модели является построение базы правил. Для этой цели будем использовать 40 правил нечетких продукций, которые удобно представить в виде следующей таблицы (табл. 17.1).
Таблица 17.1. Правила нечетких продукций для рассматриваемой системы нечеткого вывода
Номер правила
Местоположение
Отделка
Активы
Доход
Выплаты
Кредитоспособность
1
PS
РМ
NB
2
PS
РВ
NB
Таблица 17.1 (продолжение)
Номер
Местополо-
Отделка
Активы
Доход Выплаты
Кредите-
правила
жение
способность
3
РМРВ
NB
4
PS
PS
NB
5
PS
РМ
NB
6
РМ
PS
NB
7
PS
PS
РВ
NB
8
PS
РМ
РМ
NB
9
PS
РВ
PS
NB
10
PS
РВ
РМ
Z
11
PS
РМ
PS
РВ
Z
12
PS
РВ
PS
РВ
Z
13
РМ
РМ
PS
РВ
Z
14
РВ
РМ
PS
РВ
Z
15
PS
РМ
РМ
РМ
Z
16
PS
РВ
РМ
РМ
Z
17
РМ
РМ
РМ
РМ
Z
18
РВ
РМ
РМ
РМ
Z
19
PS
РМ
РВ
PS
Z
20
PS
РВ
РВ
PS
Z
21
РМ
РМ
РВ
PS
Z
22
РВ
РМ
РВ
PS
Z
23
PS
РМ
РВ
РМ
Z
24
PS
РВ
РВ
РМ
Z
25
РМ
РМ
РВ
РМ
Z
26
РВ
РМ
РВ
РМ
Z
27
РМ
РВ
РМ
РВ
РВ
28
РМ
РВ
РВ
РВ
РВ
29
РВ
РВ
РМ
РВ
РВ
30
РВ
РВ
РВ
РВ
РВ
31
PS
РМ
РМ
РВ
PS
Таблица 17.1 (окончание)
Номер правила
Местоположение
Отделка
Активы
Доход
Выплаты
Кредитоспособность
32
PS
РВ
РМ
РВ
PS
33
РМ
РМ
РМ
РВ
PS
34
РВ
РМ
РМ
РВ
PS
35
PS
РМ
РВ
РВ
PS
36
PS
РВ
РВ
РВ
PS
37
РМ
РМ
РВ
РВ
PS
38
РВ
РМ
РВ
РВ
PS
39
РМ
РВ
PS
40
РВ
РВ
PS
В качестве схемы нечеткого вывода будем использовать метод Мамдани, поэтому методом активации будет MIN, который рассчитывается по формуле (7.6). Далее необходимо определить методы агрегирования подусловий. Поскольку во всех правилах I—40 в качестве логической связки для подусловий применяется только нечеткая конъюнкция (операция "И"), то в качестве метода агрегирования будем использовать операцию min-конъюнкции. Для аккумуляции заключений правил будем использовать метод max-дизъюнкции, который также применяется в случае схемы нечеткого вывода методом Мамдани. Наконец, в качестве метода дефаззи- фикации будем использовать метод центра тяжести (см. (7.9)).
Построение нечеткой модели средствами Fuzzy Logic Toolbox и анализ полученных результатов.
Разработку нечеткой модели (назовем ее mortgage) будем выполнять с использованием графических средств системы MATLAB. С этой целью в редакторе FIS определим 5 входных переменных с именами "местоположение" (Pi), "отделка" (0г), "активы" (Рз), "доход" (04), "выплаты" (Ps) и одну выходную переменную с именем "кредитоспособность" (0б). Вид графического интерфейса редактора FIS для этих переменных изображен на рис. 17.4.
Для решения поставленной задачи нечеткого моделирования будем использовать систему нечеткого вывода типа Мамдани. Оставим без изменения параметры разрабатываемой нечеткой модели, предложенные системой MATLAB по умолчанию, а именно, логические операции (min — для нечеткого логического И, max — для нечеткого логического ИЛИ), метод импликации (min), метод агрегирования (max) и метод дефаззификации (centroid).
Рис. 17.4. Графический интерфейс редактора FIS после определения входных и выходной переменных системы нечеткого вывода mortgage
Далее следует определить функции принадлежности термов для каждой из 5 входных и единственной выходной переменных рассматриваемой системы нечеткого вывода. Для этой цели воспользуемся редактором функций принадлежности системы MATLAB. Будем использовать типы функций принадлежности и соответствующие численные значения их параметров, которые изображены на рис. 17.1—17.3. Графический интерфейс редактора функций принадлежности для выходной переменной "кредитоспособность" изображен на рис. 17.5.
Далее зададим 40 правил для разрабатываемой системы нечеткого вывода (табл. 17.1). Для этой цели воспользуемся редактором правил системы MATLAB. Вид графического интерфейса редактора правил после задания всех 40 правил нечеткого вывода изображен на рис. 17.6. Поскольку в рабочем окне отображаются не все переменные нечеткой модели, для управления режимом отображения переменных правил следует воспользоваться специальными кнопками » и «, расположенными в нижней правой части редактора правил.
Рис. 17.5. Графический интерфейс редактора функций принадлежности для выходной переменной "кредитоспособность”
Теперь можно выполнить анализ построенной системы нечеткого вывода для рассматриваемой задачи оценки финансовой состоятельности клиентов. С этой целью откроем окно просмотра правил системы MATLAB и введем значения входных переменных для частного случая, когда значение входной переменной "местоположение" оценивается в 8 баллов, значение входной переменной "отделка" также оценивается в 8 баллов, значение входной переменной "активы" оценивается в 9 баллов, значение входной переменной "доход" оценивается в 9 баллов, и, наконец, значение входной переменной "выплаты" оценивается в 5 баллов. Это достаточно высокие оценки входных переменных, которые даже на интуитивном уровне свидетельствуют в пользу соответствующего клиента.
Процедура нечеткого вывода, выполненная системой MATLAB для разработанной нечеткой модели, выдает в результате значение выходной переменной "кредитоспособность", равное 7.75 балла (рис. 17.7). Это достаточно высокая оценка финансовой состоятельности потенциального клиента, которое может служить основанием для положительного решения со стороны банка о предоставлении кредита под залог. Как можно заключить, данный вывод полностью согласуется с ранее высказанными интуитивными соображениями.
Рис. 17.6. Графический интерфейс редактора правил после задания базы правил системы нечеткого вывода mortgage
Далее выполним анализ построенной системы нечеткого вывода для второго варианта исходных данных с более низкими оценками значений входных переменных. С этой целью изменим значения входных переменных: значение входной переменной "местоположение" оценим в 3 балла, значение входной переменной "отделка” оценим в 5 балла, значение входной переменной "активы" оценим в 4 балла, значение входной переменной "доход” оценим в 4 балла, и, наконец, значение входной переменной "выплаты" оценим в 2 балла.
Процедура нечеткого вывода, выполненная системой MATLAB, выдает в результате значение выходной переменной "кредитоспособность", равное 3.42 балла (рис. 17.8). Это достаточно низкая оценка финансовой состоятельности потенциального клиента, которое может служить основанием для отрицательного решения со стороны банка о предоставлении кредита под залог. Как можно заключить в этом случае, данный вывод также согласуется с интуитивными соображениями на этот счет.
Сравнение результатов нечеткого вывода для двух рассмотренных вариантов значений входных переменных показывает, что граничное значение выходной переменной "кредитоспособность", которое влияет на решение о предоставлении кредита, может быть выбрано в пределах 5 баллов.
Рис. 17.7. Графический интерфейс программы просмотра правил после выполнения процедуры нечеткого вывода для первого варианта значений входных переменных
Рис. 17.8. Графический интерфейс программы просмотра правил после выполнения процедуры нечеткого вывода для второго варианта значений входных переменных
Примечание j
Для более тонкой настройки построенной нечеткой модели необходимо дополнить ее конкретными методиками балльной оценки отдельных количественных значений входных и выходных лингвистических переменных. Поскольку такие методики в значительной степени зависят от рассматриваемой проблемной области, от сложившейся на данный момент рыночной конъюнктуры и имеют частный характер для конкретного банка, здесь они не рассматриваются.
Для общего анализа разработанной нечеткой модели также может оказаться полезной визуализация соответствующей поверхности нечеткого вывода (рис. 17.9).
Данная поверхность нечеткого вывода позволяет установить зависимость значений выходной переменной от значений отдельных входных переменных нечеткой модели. Анализ этих зависимостей может служить основанием для изменения функций принадлежности входных переменных или нечетких правил с целью повышения адекватности системы нечеткого вывода для конкретных стратегий банков.
Рис. 17.9. Визуализация поверхности нечеткого вывода рассматриваемой модели для входных переменных "местоположение" и "отделка"
Следует отметить также то обстоятельство, что разработчики данной нечеткой модели отмечают ее несколько упрощенный характер по сравнению с реально используемой в процессе принятия решений руководством банка. В то же время рассмотренная нечеткая модель обладает достаточно высокой адекватностью, что обуславливает ее успешное применение в практике финансовых операций банка Home&Savings Bank.
В заключение этого примера следует отметить, что реализация данной нечеткой модели в среде MATLAB отличается от оригинальной модели в среде fuzzyTECH. Более подробно особенности построения соответствующей нечеткой модели средствами системы fuzzyTECH рассматриваются в главе 20.
17.2. Анализ и прогнозирование валютных цен на финансовом рынке
В качестве второго примера построения и использования адаптивной системы нейро-нечеткого вывода рассмотрим процесс разработки нечеткой модели гибридной сети для решения задачи прогнозирования валютных цен на финансовом рынке.
Суть данной задачи состоит в том, чтобы, зная динамику изменения курсовой стоимости продажи некоторой валюты за фиксированный интервал времени, предсказать значение ее курсовой стоимости на определенный момент времени в будущем. При этом характерной особенностью динамики изменения курса (тренда) является наличие двух основных тенденций в колебаниях соответствующих цен.
С одной стороны, наблюдается общее долгосрочное повышение курсовой стоимости, связанное с величиной инфляции. С другой стороны, наблюдается краткосрочное колебание цен, связанное с целым рядом случайных факторов, адекватное представление которых в той или иной формальной модели вряд ли возможно. v
Традиционно для решения данной задачи применяются различные модели технического анализа, основанные на использовании различных индикаторов. В то же время наличие неявных тенденций в динамике изменения курсовой стоимости валют позволяет применить модель адаптивных нейро-нечетких сетей.
В качестве исходных данных можно воспользоваться информацией о динамике курса ЦБ РФ по валюте "Доллар США" (USD) за некоторый временной интервал, которая доступна в Интернете по адресу: www.finmarket.ru. Для конкретности возьмем значения курсовой стоимости USD за 1 единицу в период с I октября 2002 г. по 10 декабря 2002 г. Данную информацию для удобства дальнейшей работы представим в табличной форме (табл. 17.2).
Таблица 17.2. Динамика курса иностранной валюты (USD) в период с 1.10.02 по 10.12.02
Дата
Курс USD
Дата
Курс USD
Дата
Курс USD
01.10.02
31.6827
01.11.02
31.7701
03.12.02
31.8547
02.10.02
31.6919
02.11.02
31.7646
04.12.02
31.8584
03.10.02
31.6982
05.11.02
31.7744
05.12.02
31.8596
04.10.02
31.6809
06.11.02
31.7909
06.12.02
31.8578
05.10.02
31.68
07.11.02
31.7756
07.12.02
31.86
08.10.02
31.6795
11.11.02
31.7756
10.12.02
31.8597
09.10.02
31.6799
12.11.02
31.7756
10.10^.02
31.6803
13.11.02
31.8226
11.10.02
31.6685
14.11.02
31.8157
12.10.02
31.6703
15.11.02
31.8203
15.10.02
31.6703
16.11.02
31.8225
16.10.02
31.6762
19.11.02
31.8231
17.10.02
31.6767
20.11.02
31.8224
18.10.02
31.6761
21.11.02
31.823
19.10.02
31.6727
22.11.02
31.8248
22.10.02
31.6973
23.11.02
31.8222
23.10.02
31.7272
26.11.02
31.8416
24.10.02
31.7159
27.11.02
31.8382
25.10.02
31.7109
28.11.02
31.84
26.10.02
31.7314
29.11.02
31.84
29.10.02
31.7411
30.11.02
31.8424
30.10.02
31.6977
31.10.02
31.7408
Предположим, что нечеткая модель гибридной сети будет содержать 4 входных переменных. При этом первая входная переменная будет соответствовать курсу USD на текущий банковский день, вторая — курсу USD на предыдущий банковский день, т. е. на день (/-1), где через i обозначен текущий банковский день. Тогда третья входная переменная будет соответствовать курсу USD на (г-2) банковский день, а четвертая — курсу USD на (/-3) банковский день.
Соответствующие обучающие данные могут быть сведены в отдельную таблицу. Объем полученной таким образом обучающей выборки равен 40 (табл. 17.3), что
Глава 17. Примеры разработки нечетких моделей принятия решений в среде МА TLAB 481 соответствует динамике курса USD в период с 4 октября 2002 г. по 29 ноября 2002 г. При этом данные за декабрь 2002 г. не вошли в состав обучающей выборки и могут быть использованы для проверки адекватности построенной нечеткой модели.
Таблица 17.3. Обучающие данные для построения модели гибридной сети
Первая входная переменная
Вторая входная переменная
Третья входная переменная
Четвертая входная переменная
Выходная переменная
31.6809
31.6982
31.6919
31.6827
31.68
31.68
31.6809
31.6982
31.6919
31.6795
31.6795
31.68
31.6809
31.6982
31.6799
31.6799
31.6795
31.68
31.6809
31.6803
31.6803
31.6799
31.6795
31.68
31.6685
31.6685
31.6803
31.6799
31.6795
31.6703
31.6703
31.6685
31.6803
31.6799
31.6703
31.6703
31.6703
31.6685
31.6803
31.6762
31.6762
31.6703
31.6703
31.6685
31.6767
31.6767
31.6762
31.6703
31.6703
31.6761
31.6761
31.6767
31.6762
31.6703
31.6727
31.6727
31.6761
31.6767
31.6762
31.6973
31.6973
31.6727
31.6761
31.6767
31.7272
31.7272
31.6973
31.6727
31.6761
31.7159
31.7159
31.7272
31.6973
31.6727
31.7109
31.7109
31.7159
31.7272
31.6973
31.7314
31.7314
^1.7109
31.7159
31.7272
31.7411
31.7411
31.7314
31.7109
31.7159
31.6977
31.6977
31.7411
31.7314
31.7109
31.7408
31.7408
31.6977
31.7411
31.7314
31.7701
31.7701
31.7408
31.6977
31.7411
31.7646
31.7646
31.7701
31.7408
31.6977
31.7744
31.7744
31.7646
31.7701
31.7408
31.7909
31.7909
31.7744
31.7646
31.7701
31.7756
31.7756
31.7909
31.7744
31.7646
31.7756
Таблица 17.3 (окончание)
Первая входная переменная
ВтораяТретьяЧетвертаяВыходная
входнаявходнаявходнаяпеременная
переменнаяпеременнаяпеременная
31.7756
31.775631.790931.774431.7756
31.7756
31.775631.775631.790931.8226
31.8226
31.775631.775631.775631.8157
31.8157
31.822631.775631.775631.8203
31.8203
31.815731.822631.775631.8225
31.8225
31.820331.815731.822631.8231
31.8231
31.822531.820331.815731.8224
31.8224
31.823131.822531.820331.823
31.823
31.822431.823131.822531.8248
31.8248
31.82331.822431.823131.8222
31.8222
31.824831.82331.822431.8416
31.8416
31.822231.824831.82331.8382
31.8382
31.841631.822231.824831.84
31.84
31.838231.841631.822231.84
31.84
31.8431.838231.841631.8424
Примечание
Для большего удобства подготовки соответствующего файла с обучающими данными целесообразно воспользоваться редактором электронных таблиц MS Excel, обладающим возможностью копирования содержимого ряда ячеек.
Сохраним обучающую выборку во внешнем файле под именем priceUSD.dat. После этого откроем редактор ANFIS, в который загрузим этот файл с обучающими данными. Внешний вид редактора ANFIS с загруженными обучающими данными изображен на рис. 17.10.
Перед генерацией структуры системы нечеткого вывода типа Сугено после вызова диалогового окна свойств зададим для каждой из входных переменных по 3 лингвистических терма, а в качестве типа их функций принадлежности выберем треугольные функции (установленные системой MATLAB по умолчанию). В качестве типа функции принадлежности выходной переменной зададим линейную функцию (рис. 17.11).
Рис. 17.10. Графический интерфейс редактора ANFIS после загрузки обучающих данных
Рис. 17.11. Диалоговое окно для задания количества и типа функций принадлежности
Для обучения гибридной сети воспользуемся гибридным методом обучения с уровнем ошибки 0, а количество циклов обучения зададим равным 10. После окончания обучения данной гибридной сети может быть выполнен анализ графика ошибки обучения (рис. 17.12), который показывает, что обучение практически закончилось после 3-го цикла.
Рис. 17.12. График зависимости ошибки обучения от количества циклов обучения
После обучения гибридной сети можно визуально оценить структуру построенной нечеткой модели (рис. 17.13). Очевидно, графическая наглядность данной модели оставляет желать лучшего, поскольку общее количество правил в разработанной адаптивной системе нейро-нечеткого вывода равно 81, что затрудняет их визуальный контроль и оценку.
С помощью графических средств системы MATLAB можно выполнить контроль и настройку параметров функций принадлежности входных переменных и правил нечетких продукций. Для выполнения соответствующих операций можно воспользоваться редактором функций принадлежности (рис. 17.14). Однако до проверки адекватности построенной нечеткой модели оставим все параметры функций принадлежности без изменений.
Рис. 17,13. Структура сгенерированной системы нечеткого вывода
Выполним проверку адекватности построенной нечеткой модели гибридной сети. Для этой цели сделаем ретроспективный прогноз значения курсовой стоимости USD на следующий банковский день, например, на 3 декабря 2002 г., считая для этого случая текущим банковским днем — 30 ноября 2002 г.
Поскольку точность количественных значений, обеспечиваемая графическими средствами пакета Fuzzy Logic Toolbox, является недостаточной для решения данной задачи, воспользуемся функцией командной строки evaifis. В качестве аргументов этой функции (см. приложение 3) укажем вектор значений курсовой стоимости USD на текущий и 3 предшествующих банковских дня. Полный формат вызова этой функции будет следующим:
out=evalfis([31.8424 31.84 31.84 31.8382], priceUSD)
где out — условное имя выходной переменной; 31.8424 — значение курсовой стоимости USD на 30.11.02; 31.84— значение курсовой стоимости USD на 29.11.02; 31.84— значение курсовой стоимости USD на 28.11.02; 31.8382 — значение курсовой стоимости USD на 27.11.02; priceUSD— имя структуры FIS, предварительно загруженной в рабочую область системы MATLAB.
Рис. 17.14. Графический интерфейс редактора функций принадлежности построенной системы нечеткого вывода для проверки первой входной переменнойРис. 17.14. Графический интерфейс редактора функций принадлежности построенной системы нечеткого вывода для проверки первой входной переменной—^ Command Window—^ Command WindowRig Edit View Web yvindow Help
Рис. 17.14. Графический интерфейс редактора функций принадлежности построенной системы нечеткого вывода для проверки первой входной переменной
Рис. 17.14. Графический интерфейс редактора функций принадлежности построенной системы нечеткого вывода для проверки первой входной переменной
—^ Command Window
—^ Command Window
374.
375.
376.
377.
378.
379.
380.
381.
» out=evalfls([31.8424 31.84 31.84 31.8382],prlceUSD)
Warning: Implication method should be ’’prod" for Sugeno systems.
In C:\MATLAB6P5\toolbox\fuzzy\fuzzy\evalfis.m at line 54
Warning: Some input values are outside of the specified input range.
In C:\MATLAB6P5\toolbox\fuzzy\fuzzy\evalfis.ii at line 73
31.8547
Рис. 17.15. Окно команд с отображением результата оценкипостроенной нечеткой модели гибридной сети
После выполнения этой команды с помощью разработанной нечеткой модели будет получено значение выходной переменной для 3.12.02, равное 31.8547 (рис. 17.15). Сравнивая полученное значение с соответствующим значением из табл. 17.2, можно констатировать абсолютное совпадение этих значений (!), несмотря на два предупреждения при выполнении команды нечеткого вывода системой MATLAB.
Таким образом, проверка построенной нечеткой модели гибридной сети показывает достаточно высокую степень ее адекватности реальным исходным данным, что позволяет сделать вывод о возможности ее практического использования для прогнозирования курсовой стоимости USD на финансовом рынке валют. В этом случае нечеткие модели адаптивных систем нейро-нечеткого вывода могут считаться новым и конструктивным инструментом технического анализа финансовых рынков.
Рассмотренный подход является перспективным направлением для построения и использования соответствующих нечетких моделей прогнозирования цен других финансовых инструментов, таких как курсы других валют, акций компаний, фьючерсов и опционов. Действительно, общим для всех этих инструментов с позиций технического анализа является отсутствие априорных предположений о динамике колебаний соответствующих курсов цен, что вполне согласуется с исходными предпосылками построения нечетких моделей адаптивных систем нейро-нечеткого вывода.
ЧАСТЬ III
Нечеткое моделированиеВ СРЕДЕ fUZZYTECH
Программа fuzzyTECH, разработанная и постоянно обновляемая компанией INFORM GmbH (Inform Software Corporation, Германия), предназначена для решения различных задач нечеткого моделирования. В отличие от системы MATLAB, программа fuzzyTECH является специализированным средством, которое позволяет разрабатывать и исследовать разнообразные нечеткие модели в графическом режиме, а также преобразовывать их в программный код на одном из языков программирования с возможностью последующей реализации в программируемых микроконтроллерах.
Программа fuzzyTECH обладает возможностью использования ее в качестве сервера или клиента при нечетком управлении удаленными объектами. Интересной особенностью программы fuzzyTECH, которую также следует обязательно отметить, является возможность автоматической генерации документации по нечетким моделям в виде текста с иллюстрациями в формате RTF.
Глава 18
Общая характеристика программы fuzzyTECH
В настоящей книге рассматривается демонстрационная версия программы fuzzyTECH 5.52 (далее — просто fuzzyTECH), которая доступна в Интернете по адресу: www.fuzzytech.com. Дистрибутив программы в форме самораспаковы- вающегося архивного файла занимает около 16 Мбайт. Основными ограничениями демонстрационной версии программы fuzzyTECH являются отсутствие возможности сохранения проекта и генерации программного кода на том или ином языке программирования.
Системные требования, которым должен удовлетворять компьютер пользователя для инсталляции программы fuzzyTECH, следующие.
Процессор 486 и выше (для лучшей производительности рекомендуется Pentium I).
Операционная система MS Windows 9х, MS Windows 4.0 или выше.
Оперативная память (RAM) как минимум 16 Мбайт.
Свободное место на жестком диске, необходимое для установки программы fuzzyTECH, как минимум 25 Мбайт.
Графический адаптер как минимум VGA (256 цветов при разрешении 800x600) и монитор, поддерживающий не менее 256 цветов.
Один из браузеров Интернета для просмотра документации в формате HTML и доступа к сайту компании INFORM GmbH по адресу: www.fuzzytech.com.
Программа Adobe Acrobat Reader для просмотра документации в формате PDF.
Процесс инсталляции программы достаточно традиционен и предполагает ввод установочного пароля. Для получения установочного пароля на сайте компании INFORM GmbH необходимо заполнить регистрационную карту, после чего пароль высылается пользователю по e-mail.
Общая характеристика нечеткого проекта в среде fuzzyTECH
Каждая система нечеткого вывода в программе fuzzyTECH представляется в форме отдельного проекта (Project). При этом следует заметить, что в программе fuzzyTECH проекты называются нечетко-логическими системами или системами нечеткой логики (Fuzzy Logic Systems, сокращенно — ELS).
Примечание
С целью унификации терминологии и обозначений в части III нечетко-логические системы в контексте программы fuzzyTECH обозначаются общим для всех подобных систем термином — системы нечеткого вывода. В то же время сокращение FIS, принятое в системе MATLAB для систем нечеткого вывода, чтобы избежать возможной путаницы, здесь использоваться не будет, поскольку является специфичным для нечетких моделей пакета Fuzzy Logic Toolbox.
Хотя программа fuzzyTECH и система MATLAB используют единые принципы нечеткого моделирования, существует несколько принципиальных отличий в реализации систем нечеткого вывода FLS в программе fuzzyTECH от ранее рассмотренных систем FIS в пакете Fuzzy Logic Toolbox. Главные из них изложены ниже.
Проект системы нечеткого вывода в fuzzyTECH может иметь несколько блоков правил (Rule Blocks) нечетких продукций, каждый из которых может содержать собственные входные и выходные лингвистические переменные. При этом отдельные блоки правил могут соединяться между собой последовательным или параллельным образом.
Кроме входных (Inputs) и выходных (Outputs) лингвистических переменных проекты fuzzyTECH могут иметь так называемые промежуточные (Intermediates) лингвистические переменные. Эти переменные появляются в тех случаях, когда блоки правил соединяются последовательно, т. е. выход одного блока правил соединяется с входом другого блока правил.
Все операции по разработке, редактированию, отладке и анализу проектов в программе fuzzyTECH выполняются в графическом интерактивном режиме, при этом для создания прототипов проектов и спецификации их отдельных компонентов могут быть использованы различные мастера (Wizards).
На основе разработанного и отлаженного проекта программой fuzzyTECH может быть сгенерирован программный код реализации системы нечеткого вывода на одном из языков программирования (С, Java, MS Visual C++, MS Visual Basic, MS VBA, COBOL, Assembler, язык m-файлов системы MATLAB). В дальнейшем полученные подобным образом листинги программного кода могут быть откомпилированы для той или иной вычислительной платформы и использованы независимо от программы fuzzyTECH для реализации в нечетких микроконтроллерах.
Примечание
Хотя система MATLAB также позволяет в отдельных случаях преобразовывать m-файлы в программный код на языке С, однако программа fuzzyTECH специально ориентирована на более тесную интеграцию с аппаратной реализацией нечетких моделей управления в нечетких микроконтроллерах. Поэтому кроме рассматриваемой версии программы fuzzyTECH 5.5 Professional существуют также и другие варианты этой программы, а именно: fuzzyTECH Online IA-S5, Fuzzy-166, MCU-C, MCU-96, MCU-166, MCU-320, MCU-51, MCU-374, MCU-ST6, MCU-MP, MCU-HC11/12, MCU-HC05/08, которые специально ориентированы на тот или иной тип микропроцессора и позволяют генерировать код на языке Ассемблера. Так, например, релизы MCU-HC11/12 и MCU-HC05/08 предназначены для использования с нечеткими микроконтроллерами компании Motorola. Кроме этого, указанные релизы могут отличаться функциональностью модуля (RTRCD, Real Time Remote Control Debug).
Разработчики программы fuzzyTECH явно указывают ограничения на размерность проектов систем нечеткого вывода, которые могут быть реализованы в ее среде. Рассматриваемая версия программы fuzzyTECH 5.5 Professional имеет следующие количественные ограничения на отдельные компоненты разрабатываемых проектов:
общее количество лингвистических переменных проекта не должно превышать 255, из них входных — 255 и выходных — 32;
каждая из лингвистических переменных может иметь не более 32 нечетких термов или не более 255 обычных (Categorical), т. е. не нечетких значений. При этом общее количество термов у всех переменных не должно превышать 65 535;
общее количество блоков правил нечетких продукций проекта не должно превышать 32. При этом у каждого блока правил может быть не более 11 входных и 11 выходных лингвистических переменных.
Использование в программе fuzzyTECH технологии динамического обмена данными (Dynamic Data Exchange или сокращенно — DDE) позволяет совместно использовать разработанные нечеткие модели с другими программами и инструментами, такими как MS Access, MS Excel, MATLAB. При этом программа fuzzyTECH может выступать как в роли сервера, так и в роли клиента, что существенно расширяет диапазон возможных приложений разрабатываемых нечетких моделей. В последнем случае для нечеткого управления удаленными объектами необходимо использовать тот или иной протокол передачи данных (TCP/IP, IPX/SPX) и дополнительные интерфейсы (последовательный интерфейс RS232, SDI 5, SFS, FTOCC).
Все проекты в среде fuzzyTECH сохраняются в отдельных файлах проектов формата FTL (Fuzzy Technology Language), которые имеют расширение ftl. Они представляют собой обычные текстовые файлы, которые можно просматривать и редактировать любым ASCII-редактором (например, MS Notebook). Формат FTL был специально разработан компаниями Intel Corp, и Inform Software Corp, в 1991 г. для представления систем нечеткого вывода
в форме структурируемого текста. Этот формат поддерживают все ведущие разработчики программных и аппаратных решений, основанных на использовании систем нечеткой логики, позволяя осуществить их перенос на различные платформы.
Примечание j
Файлы формата FTL по своей структуре аналогичны записи системы нечеткого вывода на языке FCL (см. главу 8). Последнее отнюдь не случайно, поскольку программа fuzzyTECH поддерживает стандарт IEC 1131-7. В то же время нельзя не заметить, что файлы проектов формата FTL также напоминают распространенные ранее файлы конфигурации оборудования, имевшие, как правило, расширение ini. Пример файла формата FTL с характеристикой его структуры приводится в приложении 4.
□ Кроме формата FTL, файлы проектов могут быть представлены в формате FTR (fuzzyTECH Runtime), соответственно, с расширением ftr. Файлы формата FTR, в отличие от формата FTL, представляют проекты в бинарном виде. При этом форма представления зависит от используемой версии программы fuzzyTECH. Файл формата FTR содержит всю информацию о проекте и может быть использован для преобразования в соответствующий файл проекта формата FTL.
□ В нечетких проектах fuzzyTECH могут быть использованы различные типы и формы функций принадлежности термов лингвистических переменных. Что касается типов функций принадлежности, то пользователь может выбрать один из вариантов, приведенных ниже.
Стандартный вариант функции принадлежности (Standard MBFs), который иногда называют "4-точечным" вариантом, поскольку основан на использовании 4 характеристических точек или параметров для задания соответствующей функции принадлежности.
Произвольный вариант функции принадлежности (Arbitrary MBFs), в рамках которого можно использовать до 16 характеристических точек или параметров для задания или аппроксимации соответствующей функции принадлежности.
Инверсный вариант функции принадлежности (Inverse MBFs), который может оказаться полезным при определении правил нечетких продукций с отрицанием существующих в проекте термов (inverse terms) для отдельных лингвистических переменных.
□ Каждый из типов функции принадлежности может иметь одну из форм, приведенных ниже.
Линейную (L-shape), которая предполагает представление функции принадлежности в форме треугольной, трапециевидной функции или их некоторой комбинации.
S-образную (S-shape), которая предполагает представление функции принадлежности в форме некоторой З-ообразной, Z-образной или 77-образной кривой (см. главу 2).
В программе fuzzyTECH могут быть различные методы фаззификации входных переменных. При этом пользователь может выбрать один из следующих вариантов фаззификации.
Стандартный метод фаззификации (Compute MBF) предполагает использование функций принадлежности стандартного типа — треугольных, трапециевидных и кусочно-линейных кривых.
Нечеткий вход (Fuzzy Input) указывает, что все термы соответствующей лингвистической переменной представляются в форме вектора значений функции принадлежности. Этот вариант более эффективен при реализации систем нечеткого вывода на конкретной аппаратной платформе.
Нечеткий вход в форме таблицы (Look-up-MBF) указывает, что нечеткие значения соответствующей лингвистической переменной вычисляются с помощью некоторого алгоритма и представляются в форме таблицы. Этот вариант может быть использован для увеличения скорости вычислений на некоторых типах микроконтроллеров и нечетких микропроцессоров.
Быстрый метод фаззификации (Fast Computation of MBF) является разновидностью стандартного метода применительно к некоторым конкретным типам микроконтроллеров. Этот вариант обладает наибольшей эффективностью при использовании конкретной аппаратной платформы.
Обычный вход (Categorical) указывает, что все термы соответствующей лингвистической переменной представляются в форме обычного вектора значений.
□ В нечетких проектах fuzzyTECH могут быть также использованы различные методы агрегирования, композиции, аккумуляции и дефаззификации полученных результатов нечеткого вывода. Для агрегирования подусловий правил нечетких продукций разработчик может воспользоваться одним из следующих вариантов:
min-max — для логического нечеткого И используется операция минимума (6.2), для логического нечеткого ИЛИ — операция максимума (6.6), для логического отрицания НЕ — операция разности (6.1). При этом может быть использован дополнительный параметр компенсации Хе[0, 1] для получения окончательного значения результата агрегирования подусловий в соответствии со следующей формулой:
4=0-М- min W/W + X- max {p(az)};(18.1)
/е{1,2,..., m}/е{1,2,..„ т}V 7
min-avg — для логического нечеткого И используется операция минимума
(6.2), для логического нечеткого ИЛИ — арифметическое среднее, для логического отрицания НЕ — операция разности (6.1). При этом может быть использован дополнительный параметр компенсации Хе [0, 1] для получе-
ния окончательного значения результата агрегирования подусловий в соответствии со следующей формулой:
^=(1-^)' min {g(aj)} + ^-X^^;(18.2)
/е{1,2,..,т}“i ™
• gamma — для агрегирования подусловий правил нечетких продукций используется следующая формула:
mm
bk ^П^Я’^-ПО-^Ж(18.3)
7=17=1
где у — количественный параметр компенсации, задаваемый разработчиком из некоторых эвристических соображений (уе[0, 1]).
□ Для композиции заключений правил нечетких продукций пользователь может воспользоваться одним из следующих вариантов задания весовых коэффициентов правил (при этом используется метод prod-активизации, определяемый в соответствии с формулой (7.7)).
Стандартный (Standard), при котором значение весового коэффициента для каждого правила предполагается неизменным и равным 1.
£ Примечание
Следует заметить, что хотя в программе fuzzyTECH весовой коэффициент правила нечеткой продукции получил название степени поддержки (Degree of Support или сокращенно — DoS), из соображений унификации терминологии для DoS будет использоваться более традиционный термин — весовой коэффициент.
Определяемый пользователем (Fuzzy Associative Maps или сокращенно — FAM), при котором значение весового коэффициента DoS для каждого правила можно изменять в пределах интервала [0, 1].
Для аккумуляции заключений правил нечетких продукций пользователь может воспользоваться одним из следующих методов:
обычным (max), при котором результат нечеткого вывода в блоке правил нечетких продукций определяется как объединение нечетких множеств по формуле (6.6);
граничной суммы (bsum), при котором результат нечеткого вывода в блоке правил нечетких продукций определяется как объединение нечетких множеств по формуле (6.8).
В проектах fuzzyTECH могут быть использованы различные методы дефаз- зификации выходных переменных. При этом пользователю предоставляется возможность выбора одного из следующих методов дефаззификации.
Стандартный метод (Center-of-Maximum или сокращенно — СоМ), который, по мнению разработчиков, представляется методом наилучшего
компромисса для получения окончательного значения выходных перемен-
ных. В программе fuzzyTECH метод дефаззификации СоМ работает аналогично методу центра тяжести CoG, определяемому по формуле (7.9).
Метод центра площади (Centre-of-Area или сокращенно — СоА), который определяется по формуле (7.11).
Метод среднего максимума (Mean-of-Maximum или сокращенно — МоМ), который, по мнению разработчиков, представляется наиболее гибким методом и определяется как арифметическое среднее между левым (7.12) и (7.13) правым модальными значениями, при этом в качестве моды нечеткого множества рассматривается максимальное значение ее функции принадлежности.
Метод гиперцентра максимума (Hyper Center-of-Maximum или сокращенно — НурегСоМ), который может быть использован только в дополнительных модулях программы fuzzyTECH. Этот метод позволяет учитывать положительные и отрицательные результаты нечетких выводов и в соответствии с этим формирует некоторое оптимальное значение для выходных переменных.
Примечание
Как можно заметить, используемые в программе fuzzyTECH сокращения СоМ и МоМ для методов дефаззификации отсутствуют в описании языка FCL (см. главу 8). Этот факт представляется по меньшей мере странным, поскольку компания INFORM GmbH не только объявила о поддержке в программе fuzzyTECH стандарта IEC 1131-7, но, по всей видимости, была в числе разработчиков последнего
18.2. Основные элементы рабочего интерфейса программы fuzzyTECH
После инсталляции в главном меню MS Windows появляется новая программная группа с именем: fuzzyTECH 5.5. Для запуска программы следует выбрать соответствующий пункт меню в этой программной группе (Пуск>Программы> fuzzyTECH 5.5>fuzzyTECH 5.5 Professional Edition). После запуска программы fuzzyTECH на экране появится рабочий интерфейс (главное окно) программы с пустым проектом (рис. 18.1).
Если уже имеется разработанный ранее нечеткий проект, то его можно выбрать и загрузить в программу fuzzyTECH одним из следующих способов:
через программную группу Пуск>Программы>Л1ггуТЕСН 5.5>Examples;
с использованием пункта главного меню File>Open... (Файл>Открыть);
с использованием кнопки панели инструментов Open (Открыть).
После загрузки имеющегося проекта рабочий интерфейс программы fuzzyTECH изменится и будет отображать информацию о соответствующем проекте (рис. 18.2).
Рис. 18.1. Общий вид графического интерфейса программы fuzzyTECH 5.52 для нового проекта
Примечание j
Следует обратить внимание на тот факт, что дистрибутив Demo-версии программы fuzzyTECH поставляется с примерами разработанных компанией INFORM GmbH проектов систем нечеткого вывода, которые удобно использовать для изучения особенностей процесса нечеткого моделирования в среде fuzzyTECH.
В верхней части графического интерфейса программы fuzzyTECH расположена строка заголовка, в которой указывается название и версия программы, а также имя разрабатываемого или загруженного проекта. В правой части строки заголовка находятся стандартные кнопки управления графическим окном программы.
Под строкой заголовка находится строка главного меню программы fuzzyTECH и строка панели инструментов (рис. 18.3). Выбор той или иной операции меню выполняется стандартным для всех приложений MS Windows образом. Панель инструментов содержит кнопки, позволяющие осуществить доступ к наиболее часто используемым командам и операциям. Назначение отдельных кнопок панели инструментов приводится в табл. 18.3.
Рис. 18.2. Общий вид графического интерфейса программы fuzzyTECH 5.52 для разработанного проекта
Elle rE&t «/few Qebug Analyzer Ipofe' Window Help
D.^W&;M £>Д $ ^ 1.^ Й te B*i Й*. ^ ] Я a -^ № , iH ?
Рис. 18.3. Главное меню и панель инструментов программы fuzzyTECH
В центре графического интерфейса находится окно редактора проекта (Project Editor), в котором отображается структура системы нечеткого вывода в форме прямоугольников переменных и блоков правил (рис. 18.4). Редактор проекта является основным средством, которое используется для визуализации общей структуры и быстрого доступа к различным инструментам редактирования свойств систем нечеткого вывода в графическом режиме.
Редактор проекта программы fuzzyTECH позволяет визуализировать структуру всего проекта и графически представить отношения между компонентами проекта. Двойной щелчок на изображении того или иного прямоугольника позволяет открыть окно редактирования свойств соответствующего компонента системы нечеткого вывода.
Рис. 18.4. Окно редактора проекта программы fuzzyTECHРис. 18.4. Окно редактора проекта программы fuzzyTECHОтдельные компоненты системы нечеткого вывода в графическом окне редактора проекта представляются в форме прямоугольников или пиктограмм. При этом внешний вид используемых пиктограмм характеризует некоторые особенности или свойства отдельных компонентов проекта. Так, например, входные лингвистические переменные системы нечеткого вывода изображаются в виде прямоугольников, которые имеют дополнительный значок для визуализации метода фаззификации лингвистической переменной (табл. 18.1).
Рис. 18.4. Окно редактора проекта программы fuzzyTECH
Рис. 18.4. Окно редактора проекта программы fuzzyTECH
Таблица 18.1. Графические пиктограммы методов фаззификации лингвистических переменных
Графическое изображение пиктограммыГрафическое изображение пиктограммыНазначение дополнительного значка пиктограммы
Графическое изображение пиктограммы
Графическое изображение пиктограммы
Стандартный метод фаззификации лингвистической переменной (Compute MBF)
Нечеткий вход для лингвистической переменной (Fuzzy Input)
Отсутствие фаззификации для лингвистической переменной (Categorical)
Фаззификация лингвистической переменной с помощью дополнительного интерфейса, определяемая разработчиком
Выходные лингвистические переменные системы нечеткого вывода также изображаются в виде прямоугольников, которые имеют дополнительный значок для визуализации метода дефаззификации лингвистической переменной (табл. 18.2).
Таблица 18.2. Графические пиктограммы методов дефаззификации лингвистических переменных
Графическое изображение пиктограммы
Назначение дополнительного значка пиктограммы
|Out_Var1№1
Метод центра максимума (Center-of-Maximum или сокращенно — СоМ)
|Out_Var2^Jgt^M
Метод среднего максимума (Mean-of-Maximum или сокращенно — МоМ)
| OuLVar3CJ£M|
Метод центра площади (Centre-of-Area или сокращенно — СоА)
| OuLVaHMM]
Метод гиперцентра максимума (Hyper Center-of-Maximum или сокращенно — НурегСоМ)
|Out_Var5|,||
Отсутствие дефаззификации выходной переменной (нечеткая лингвистическая переменная)
| Out_Var6rijr—|
Дефаззификация лингвистической переменной в окне анализа результатов нечеткого вывода
Каждый из компонентов системы нечеткого вывода может иметь свое имя, которое в разрабатываемом проекте специфицируется с помощью отдельного текстового объекта (Text Object) или блока текста. Для задания текстового объекта предназначено отдельное диалоговое окно, которое может быть вызвано с помощью команды меню Edit>New Text... или с помощью соответствующей кнопки панели инструментов (см. табл. 18.3). После вызова окна свойств текста можно не только определить собственно текстовый блок, но и свойства шрифта этого текста (рис. 18.5).
Примечание
В связи с заданием текста следует заметить, что в окне свойств текста доступны все шрифты, установленные в операционной системе MS Windows. Поэтому программа fuzzyTECH корректно отображает символы кириллицы в текстовых блоках в окне редактора разрабатываемого проекта.
Слева от окна редактора проекта расположено окно просмотра структуры проекта (Treeview), которое представляет разрабатываемый проект в форме иерархической структуры или дерева (рис. 18.6). Окно просмотра структуры проекта содержит перечень всех компонентов проекта. Щелчок на изображении знака "+" группы компонентов позволяет раскрыть соответствующую вложенную структуру этой группы. В этом окне также можно получить быстрый доступ к инструментам редактирования отдельных компонентов или проекта в целом. А именно, двойной щелчок на имени выбранного компонента проекта позволяет открыть окно редактирования свойств данного компонента системы нечеткого вывода.
reset Pb'freset Pb'flext ■ --lext ■ --[блок правил[блок правил4 -Lil^ „;.^ г Preview™4 -Lil^ „;.^ г Preview™БлокБлокправ»:прав»:окок
reset Pb'f
reset Pb'f
lext ■ --
lext ■ --
[блок правил
[блок правил
4 -Lil^ „;.^ г Preview™
4 -Lil^ „;.^ г Preview™
Блок
Блок
прав»:
прав»:
ок
ок
Рис. 18.5. Диалоговое окно задания текста и определения свойств его шрифта
Ни одно из этих двух окон не может быть закрыто в программе fuzzyTECH. Однако окно редактора проекта можно минимизировать с помощью соответствующей кнопки управления окном. Окно просмотра структуры проекта можно скрыть (сделать невидимым), нажав соответствующую кнопку на панели инструментов, которая расположена слева от кнопки Справка (см. табл. 18.3).
Строка главного меню программы fuzzyTECH содержит всплывающее меню с большим количеством различных операций некоторые из них содержат вложенные меню или вызовы диалоговых окон. При этом не все операции могут быть доступны в программе. Некоторые из них являются неактивными и требуют перехода в интерактивный режим отладки проекта.
Все пункты главного меню имеют комбинацию клавиш быстрого доступа, для чего необходимо одновременно нажать клавишу <Alt> и подчеркнутую букву соответствующего пункта меню. При этом в качестве рабочего языка в системе используется английский.
Примечание
Вообще говоря, программа fuzzyTECH в качестве рабочего языка может использовать как английский, так и немецкий. Что касается использования символов кириллицы, то программа позволяет вводить на русском лишь текстовые блоки и комментарии.
В нижней части графического интерфейса программы fuzzyTECH расположена строка состояния, в левой части которой дублируется название отдельных кнопок панелей инструментов, а в правой части указывается текущий режим работы программы.
в за: В В Variable Groups ' : В В InputsB^B_DI_PL»■ И low ;-~@ medium: :0 highВ ^ C_DI_MIN : 0 tow с Q medium ■ ;0 highВ ^ D_ADX . .' -0 low■0 medium : ■ . .-0 high№ ^I lnt_Rate .№ *^ Trade_FeeВ В OutputsВ $f Stock I--0 sell ’ 0 hold "0 buy В-Щ Intermediates ffl Q Direction .|j] Q Environ' Ei SI Rule Blocks■ Э Hl RB1В Ш RB Inputs' i- B_DI_PL : .' fcj C_DI_MINВ Й RB Outputs ■|<H Direction$ @ RB2 ■ : $ 3 RB3 № T Text' ®§ Online Connectionsв за: В В Variable Groups ' : В В InputsB^B_DI_PL»■ И low ;-~@ medium: :0 highВ ^ C_DI_MIN : 0 tow с Q medium ■ ;0 highВ ^ D_ADX . .' -0 low■0 medium : ■ . .-0 high№ ^I lnt_Rate .№ *^ Trade_FeeВ В OutputsВ $f Stock I--0 sell ’ 0 hold "0 buy В-Щ Intermediates ffl Q Direction .|j] Q Environ' Ei SI Rule Blocks■ Э Hl RB1В Ш RB Inputs' i- B_DI_PL : .' fcj C_DI_MINВ Й RB Outputs ■|<H Direction$ @ RB2 ■ : $ 3 RB3 № T Text' ®§ Online ConnectionsSTOCKSTOCKИмя проектаВходные переменные проектаИмя лингвистической переменнойИмена термов лингвистической переменнойИмя проектаВходные переменные проектаИмя лингвистической переменнойИмена термов лингвистической переменнойИмя лингвистической переменнойИменатермов лингвистической переменнойИмя лингвистической переменнойИменатермов лингвистической переменнойИмя лингвистической переменнойИменатермов лингвистической переменнойИмя лингвистической переменнойИменатермов лингвистической переменнойВыходные переменные проектаИмя лингвистической переменнойИмена термов лингвистической переменнойВыходные переменные проектаИмя лингвистической переменнойИмена термов лингвистической переменнойПромежуточные переменные проектаПромежуточные переменные проектаБлоки правил проектаИмена блоков правил проекта Входные переменные блока правил Имя лингвистической переменнойВыходные переменные блока правил Имя лингвистической переменнойТекстовые блоки проектаБлоки правил проектаИмена блоков правил проекта Входные переменные блока правил Имя лингвистической переменнойВыходные переменные блока правил Имя лингвистической переменнойТекстовые блоки проекта
в за
: В В Variable Groups ' : В В Inputs
B^B_DI_PL
»■ И low ;-~@ medium
: :0 high
В ^ C_DI_MIN : 0 tow с Q medium ■ ;0 high
В ^ D_ADX . .' -0 low
■0 medium : ■ . .-0 high
№ ^I lnt_Rate .№ *^ Trade_Fee
В В Outputs
В $f Stock I--0 sell ’ 0 hold "0 buy В-Щ Intermediates ffl Q Direction .|j] Q Environ
' Ei SI Rule Blocks
■ Э Hl RB1
В Ш RB Inputs
' i- B_DI_PL : .' fcj C_DI_MIN
В Й RB Outputs ■|<H Direction
$ @ RB2 ■ : $ 3 RB3 № T Text
' ®§ Online Connections
в за
: В В Variable Groups ' : В В Inputs
B^B_DI_PL
»■ И low ;-~@ medium
: :0 high
В ^ C_DI_MIN : 0 tow с Q medium ■ ;0 high
В ^ D_ADX . .' -0 low
■0 medium : ■ . .-0 high
№ ^I lnt_Rate .№ *^ Trade_Fee
В В Outputs
В $f Stock I--0 sell ’ 0 hold "0 buy В-Щ Intermediates ffl Q Direction .|j] Q Environ
' Ei SI Rule Blocks
■ Э Hl RB1
В Ш RB Inputs
' i- B_DI_PL : .' fcj C_DI_MIN
В Й RB Outputs ■|<H Direction
$ @ RB2 ■ : $ 3 RB3 № T Text
' ®§ Online Connections
STOCK
STOCK
Имя проекта
Входные переменные проекта
Имя лингвистической переменной
Имена термов лингвистической переменной
Имя проекта
Входные переменные проекта
Имя лингвистической переменной
Имена термов лингвистической переменной
Имя лингвистической переменной
Именатермов лингвистической переменной
Имя лингвистической переменной
Именатермов лингвистической переменной
Имя лингвистической переменной
Именатермов лингвистической переменной
Имя лингвистической переменной
Именатермов лингвистической переменной
Выходные переменные проекта
Имя лингвистической переменной
Имена термов лингвистической переменной
Выходные переменные проекта
Имя лингвистической переменной
Имена термов лингвистической переменной
Промежуточные переменные проекта
Промежуточные переменные проекта
Блоки правил проекта
Имена блоков правил проекта Входные переменные блока правил Имя лингвистической переменной
Выходные переменные блока правил Имя лингвистической переменной
Текстовые блоки проекта
Блоки правил проекта
Имена блоков правил проекта Входные переменные блока правил Имя лингвистической переменной
Выходные переменные блока правил Имя лингвистической переменной
Текстовые блоки проекта
Рис. 18.6. Окно просмотра структуры проекта программы fuzzyTECH
В состав программы fuzzyTECH кроме демонстрационных примеров также входит встроенная справочная система и документация в формате PDF, которые содержат необходимую информацию по отдельным компонентам программы и процессу нечеткого моделирования в среде fuzzyTECH.
Встроенная справочная система программы fuzzyTECH
Для просмотра справочной информации в программе fuzzyTECH следует воспользоваться соответствующим пунктом главного меню Help (Справка). Далее можно выбрать один из вариантов справочной системы.
Первый из них — так называемый быстрый старт (Help>Quick Help). В результате выполнения этой операции на экране появится дополнительное окно с программой просмотра информации по изучению одного из демонстрационных
примеров системы нечеткого вывода в форме стандартной справки Microsoft (рис. 18.7). При этом все варианты справочной информации организованы в форме гипертекста с возможностью поиска раздела справки по ключевому слову.
<> fuzzyTECH Quick Helpгяп
$айп /Драйка Закладка параметры, 5фввка:'*
' То get started with fuzzyTECH for Business, follow these »d. t; ‘ ^. t
) Open the file CREDIT4 FTL located in the \SAMPLES\BUSINESS\CREDIT\ subdirectory This file contains a module for evaluating the financial background of bank customers as part of a risk assessment system The example is explained in detail in the book „Fuzzy Logic and NeuroFuzzy in Business and Finance", Prentice Hall 1996
) The "Project Editor" window displays the system structure There are three input variables for "Continuity". „ lnc_Exp“, and "Security", and two output variables for "Liquidity" and „Finsnciaf The variables are connected by two rule blocks Double-click each rule block to open a Spreadsheet rule editor for the respective rule block The rule blocks define the risk assessment policy through fuzzy rules
) The Treeview window at the left lists all linguistic variables in the system Double-click on each listed variable "* to open a Variable Editor for "Continuity" „lnc_Exp”, "Security", "Liquidity" and „Financial*
Рис. 18.7. Окно справочной системы fuzzyTECH с описанием одногоиз демонстрационных примеров
Второй вариант отображения справочной информации, предлагаемый программой fuzzyTECH, это справка по ее отдельным компонентам (Help>fuzzyTECH Help или Fl). В результате выполнения этой операции на экране появится дополнительное окно с возможностью выбора информации по тому или иному компоненту программы fuzzyTECH. В этом случае информация также организована в форме стандартной справки Microsoft (рис. 18.8).
Третий вариант отображения справочной информации, предлагаемый программой fuzzyTECH, это также справка по ее отдельным компонентам, начиная с редактора проекта (Help>Help on topic или <Ctrl>+<Fl>). В результате выполнения этой операции на экране также появится дополнительное окно со справочной информацией по редактору проектов (рис. 18.9).
Наконец, можно воспользоваться одним из разделов справочной системы, доступной через соответствующее меню в программной группе fuzzyTECH: Пуск>Программы>ГиггуТЕСН 5.5>Help. Хотя эти разделы повторяют справочную информацию основного меню программы, их можно просматривать независимо от программы fuzzyTECH без ее запуска.
Рис. 18.8. Окно основной справочной системы fuzzyTECHРис. 18.8. Окно основной справочной системы fuzzyTECH
Рис. 18.8. Окно основной справочной системы fuzzyTECH
Рис. 18.8. Окно основной справочной системы fuzzyTECH
> fuzzyTECH Help
geflA1 Дрб« » Земмй ПёрнмВИвы Справке■" । V " "■Уи^У^-^-уЯ,;,
Х^г^кТ7/7-т:"¥‘^7^'"ТТ"1*^7577Г^^Г^г^Т'^:^,::-^,1гг,^,^,^Т^т^^>^,:^тт,^7^7^
^деруеяиеI;:-Указатель t Назад < Лв^ •
Project Editor'
System structure is displayed graphically in the Treeview and Project Editor window This window is
created upon start-up of fuzzyTECH and may only be iconized and not closed. Three object types are used >n the window
Text
To make a fuzzy logic system structure more transparent, text can be inserted at every place in the worksheet Text objects can be printed in different font sizes, styles and colors
Variables
Each input or output variable of the system is linked with an interface Interfaces are displayed as small boxes showing a vanable name and an icon representing the chosen computation method Input interfaces show the icon on the left side and output interfaces on the nght The number of interfaces in a project depends on the fuzzyTECH Edition Please refer to the Appendix of the User's Manual for an overview
Intermediate Variables are not linked with an interface and occur thus only in the rule block they belong to
Rule Blocks
In fuzzyTECH. individual rules are confined into rule blocks to build the system structure The number of rule blocks that can be defined in a project depends on the fuzzyTECH Edition Please refer to the Appendix of the User's Manual for an overview.
Рис. 18.9. Окно справочной системы fuzzyTECHс описанием возможностей редактора проектов
Назначение операций главного меню и панели инструментов программы fuzzyTECH
Программа fuzzyTECH имеет развитую систему операций главного меню с несколькими уровнями вложенности отдельных операций. Некоторые из наиболее часто используемых операций главного меню представлены в форме соответствующих кнопок на панели инструментов. Поэтому прежде чем приступить к изучению особенностей процесса нечеткого моделирования в среде fuzzyTECH, рассмотрим операции главного меню и назначение отдельных кнопок панели инструментов. После этого остановимся на некоторых особенностях нечетких проектов в среде fuzzyTECH.
Назначение операций главного меню
Окно программы fuzzyTECH имеет главное меню, которое позволяет пользователю вызывать другие графические средства работы с проектом, загружать и сохранять информацию во внешних файлах, изменять внешний вид элементов графического интерфейса, вызывать справочную информацию и т. д. Рассмотрим назначение отдельных операций главного меню программы fuzzyTECH.
Пункт File (Файл) главного меню содержит следующие операции (рис. 18.10):
New — вызывает диалоговое окно быстрого создания прототипа нового проекта (Generate Project), которое позволяет задать входные и выходные лингвистические переменные, их термы и блоки правил системы нечеткого вывода. При этом новый проект по умолчанию имеет имя Untitled;
Fuzzy Design Wizard... — вызывает мастер нечеткого проекта (Fuzzy Design Wizard), который позволяет более детально задать не только структуру, но и характеристики прототипа нового проекта. Более подробно мастер нечеткого проекта рассматривается в главе 19\
Open... — вызывает стандартное диалоговое окно открытия внешнего файла с диска. Если загружается файл проекта, то он должен иметь расширение ftl или ftr. При этом могут быть использованы следующие фильтры: *.FTL — формат файлов проектов в программе fuzzyTECH версии 3.x и более поздних, *.CFG — формат файлов конфигурации проектов, *.FTP — формат файлов проектов версии 2.x и более ранних, *.REV — формат файлов системы контроля версий (Revision Control System);
Close — закрывает редактируемый проект системы нечеткого вывода. Следует отметить, что одновременно в программе fuzzyTECH может быть открыт для редактирования только один проект;
£jewCtrl+N
Euzzy Design Wizard, r1^ <2pen. i^„....O»*0
0058 ^ - iii , .. On*F4 „
Savev " ctrl*S =■■-*
Bau® &s.., . .-Л. Fl 2 -T
■ @Ojeqi Irforrhetioh,. ,;;>,’:; Betijsion Contrgi ^У"" ConjmentatiOn.., .. . Pattern generator Rule F,[<port., W
View FTL File
'Леу* Rie
Pnn| Window.■'■'«■
sCo^^indgw..
ЕУ* .Ли-»
Рис. 18.10. Операции пункта Fileглавного меню
Save— позволяет сохранить редактируемый проект во внешнем файле на диске под текущим именем и с расширением ftl. Следует отметить, что в демонстрационной версии программы эта операция недоступна;
Save As... — позволяет сохранить редактируемый проект во внешнем файле на диске и изменить при необходимости его имя. Следует также напомнить, что в демонстрационной версии программы эта операция недоступна;
Project Information... — вызывает окно с информацией о редактируемом проекте, которое позволяет редактировать имя и автора проекта, а также комментарии к проекту;
Revision Control... — вызывает окно настройки системы контроля версий программы fuzzyTECH, которое позволяет загрузить, сохранить или удалить файлы проектов согласно их текущему статусу. В рамках системы контроля версий файлы проектов сохраняются как бинарные файлы и могут быть защищены паролем. Система контроля версий позволяет сохранять все важные изменения, внесенные разработчиком в проект, включая дату и имя автора соответствующих изменений;
Documentation... — вызывает диалоговое окно задания свойств для автоматической генерации документации по разработанному проекту системы нечеткого вывода в формате RTF на английском языке. При генерации документации она сохраняется во внешнем файле с расширением rtf. Имя файла документации может быть задано пользователем либо оставлено без изменения предложенное программой (по умолчанию — имя проекта). После генерации документации ее можно просмотреть и отредактировать в текстовом процессоре MS Word;
Примечание
При генерации документации по проекту вся информация о разрабатываемой системе нечеткого вывода по умолчанию группируется в следующие разделы: Общая информация (General Information), Описание проекта (Project Description), Структура системы (System Structure), Лингвистические переменные (Linguistic Variables), Блоки правил (Rule Blocks), Настройки проекта (Settings).
Pattern Generator... — вызывает диалоговое окно генерации паттерна или шаблона проекта (Pattern Generator), которое позволяет автоматически сгенерировать некоторый шаблон входных данных разрабатываемой системы нечеткого вывода для анализа производительности соответствующей нечеткой модели. Сгенерированный шаблон сохраняется во внешнем файле с расширением csv;
Rule Export... — вызывает диалоговое окно экспорта правил нечетких продукций (в демонстрационной версии программы эта операция недоступна);
View FTL File — открывает файл текущего проекта в текстовом редакторе. По умолчанию файл с расширением ftl открывается в Блокноте (MS Notepad);
View File... — вызывает стандартное диалоговое окно открытия файла проекта в текстовом редакторе. По умолчанию файлы с расширением ftl открываются в Блокноте (MS Notepad);
Print Window... — позволяет распечатать на принтере одно из графических окон, открытых в программе fuzzyTECH. В этом случае вызывается диалоговое окно выбора объекта для печати на подключенном к данному компьютеру принтеру;
Copy Window... — позволяет скопировать в буфер обмена MS Windows одно из графических окон, открытых в программе fuzzyTECH. В этом случае вызывается диалоговое окно выбора объекта для копирования в буфер обмена;
секция с именами последних файлов проектов, с которыми осуществлялась работа в программе fuzzyTECH. Количество запоминаемых файлов проектов устанавливается в настройках программы fuzzyTECH;
Exit — закрывает программу fuzzyTECH.
□ Пункт меню Edit (Редактирование) содержит следующие операции (рис. 18.11):
Undo — отменяет выполнение последнего действия. Последовательно разработчик проекта может отменить 16 последних внесенных изменений. Аналогичным образом отменить выполненные действия можно последовательно нажимая клавиши: <Alt>+<Backspace>. В режиме отладки эта операция недоступна;
New Variable... —вызывает мастер новой лингвистической переменной (Linguistic Variables Wizard). Более подробно мастер лингвистической переменной рассматривается в главе 19;
■ irtindpi. ^„^?^‘ л< sNroisckepeea
New Variable:. 6 Ctrl*V . ,\ ’ Duplicate Variable.. Ctrk^ ‘ ^
NewBuleBlock... v CtrbR
», Duplicate । Rule filock... Cul+8
NewTe^t;. ^ Ctrl*X : DuplicateТr®iU Д^ dtri*^
DDB Un^''.V- • 4k i ’■ •£
Рис. 18.11. Операции пункта Edit главного меню
Duplicate Variable... — позволяет дублировать выделенную лингвистическую переменную проекта. При этом открывается мастер для новой лингвистической переменной, имя которой по умолчанию принимается как имя выделенной переменной с добавленным к нему справа символом подчеркивания "_";
New Rule Block... -—вызывает мастер нового блока правил (Rule Block Wizard). Более подробно мастер блока правил рассматривается в главе 19;
Duplicate Rule Block... — позволяет дублировать выделенный блок правил проекта. При этом открывается мастер нового блока правил, имя которого должно отличаться от имен существующих блоков правил в проекте и должно быть задано разработчиком;
New Text... — вызывает окно задания блока текста в редакторе проекта. Это окно позволяет не только ввести собственно текст, но и выбрать свойства шрифта;
Duplicate Text... — позволяет дублировать выделенный блок текста в разрабатываемом проекте. При этом открывается окно свойств текста, в котором можно изменить не только текст, но и свойства шрифта;
DDE Links... —вызывает диалоговое окно настройки связей DDE для конфигурации программы fuzzyTECH в качестве клиента.
□ Пункт меню View (Вид) позволяет отображать на экране различные компоненты программы и разрабатываемого проекта и содержит следующие операции (рис. 18.12):
Toolbars — позволяет настроить внешний вид графического интерфейса отдельных компонентов программы fuzzyTECH и содержит дополнительные подпункты: Show all — отображает панели инструментов всех графических окон программы fuzzyTECH; Show none — скрывает панели инструментов всех графических окон программы fuzzyTECH; Main Window — отображает/скрывает панель инструментов главного окна программы fuzzyTECH; Variable Editor — отображает/скрывает панель инструментов редактора лингвистических переменных; Spreadsheet Rule Editor — отображает/скрывает панель инструментов табличного редактора правил;
Matrix Rule Editor — отображает/скрывает панель инструментов матричного редактора правил; Watch Window — отображает/скрывает панель инструментов окна интерактивного режима отладки вывода; Transfer Plot — отображает/скрывает панель инструментов окна просмотра графиков на плоскости; 3D Plot — отображает/скрывает панель инструментов окна просмотра трехмерных графиков; Time Plot — отображает/скрывает панель инструментов окна просмотра временных графиков; Rule Analyzer — отображает/скрывает панель инструментов анализатора правил;
ToolbarsToolbarsJJtaWblirZoom ProjedEditor ' > §ridlthesTerm-List Box►Elot Beckground►Lines*Qbjed CommentsTree-rev/ ■ №tlJJtaWblirZoom ProjedEditor ' > §ridlthesTerm-List Box►Elot Beckground►Lines*Qbjed CommentsTree-rev/ ■ №tlShowsllShownone :,k'. - '* yeinWindrw* Variable Editor* Spreadsheet RuleEditor4 Matrix Bule Editorv ^btch Windowv Xr^nster Fietv 2D Plot 'v Time Plot ..v Ryle AnalyzerShowsllShownone :,k'. - '* yeinWindrw* Variable Editor* Spreadsheet RuleEditor4 Matrix Bule Editorv ^btch Windowv Xr^nster Fietv 2D Plot 'v Time Plot ..v Ryle Analyzer
Toolbars
Toolbars
JJtaWblir
Zoom ProjedEditor ' > §ridlthes
Term-List Box►
Elot Beckground►
Lines*
Qbjed Comments
Tree-rev/ ■ №tl
JJtaWblir
Zoom ProjedEditor ' > §ridlthes
Term-List Box►
Elot Beckground►
Lines*
Qbjed Comments
Tree-rev/ ■ №tl
Showsll
Shownone :,k'. - '
* yeinWindrw
* Variable Editor
* Spreadsheet RuleEditor
4 Matrix Bule Editor
v ^btch Window
v Xr^nster Fiet
v 2D Plot '
v Time Plot ..
v Ryle Analyzer
Showsll
Shownone :,k'. - '
* yeinWindrw
* Variable Editor
* Spreadsheet RuleEditor
4 Matrix Bule Editor
v ^btch Window
v Xr^nster Fiet
v 2D Plot '
v Time Plot ..
v Ryle Analyzer
Рис. 18.12. Операции пункта View главного меню
Statusbar — отображает/скрывает строку состояния программы fuzzyTECH;
Zoom Project Editor — позволяет выбрать масштаб изображения системы нечеткого вывода в окне редактора проекта. Содержит дополнительные подпункты: 100%, 75% и 50%, выбор которых изменяет размеры отображаемых компонентов проекта соответствующим образом;
Gridlines — делает видимым/невидимым координатную сетку в редакторе лингвистических переменных и в окне просмотра временных графиков. Разрешение координатной сетки устанавливается автоматически;
Term List Box — делает видимым/невидимым окно термов в редакторе лингвистической переменной. Более подробно редактор лингвистической переменной рассматривается в главе 19;
Plot Background — устанавливает белый/черный фон в окнах просмотра трехмерных и временных графиков;
Lines — позволяет изменять толщину кривых в редакторе лингвистической переменной при отображении функций принадлежности отдельных термов и в окне просмотра временных графиков;
Object Comments — выбор этой опции позволяет отображать в форме всплывающей подсказки комментарий объекта при задержке на его изображении курсора мыши в редакторе проекта;
Treeview — делает видимым/невидимым окно просмотра структуры проекта.
□ Пункт меню Debug (Отладка) обеспечивает доступ к различным инструментам режима отладки разрабатываемого проекта и содержит следующие операции (рис. 18.13):
Interactive — включает режим интерактивной отладки проекта и вызывает соответствующее окно интерактивного режима отладки. Более подробно интерактивный режим отладки проекта рассматривается в главе 19;
Serial Link — включает режим отладки проекта совместно с другими приложениями с использованием некоторого последовательного интерфейса персонального компьютера. При использовании данного режима предполагается, что программа fuzzyTECH функционирует на компьютере 1, а в качестве компьютера 2 может использоваться любое аппаратное устройство или программа. При этом соединение компьютеров 1 и 2 осуществляется с помощью последовательного интерфейса;
snterecuve
Serial Link" File Recordei fietcrr- 1J «
'Online,-Ma liter . : . .Qhline - Monitor & Modify
Рис. 18.13. Операции пункта Debug главного меню
File Recorder — включает режим отладки проекта с записью файлов. При использовании данного режима предполагается, что имеются предварительно созданные внешние файлы с некоторой выборкой данных или файл сгенерированного шаблона (паттерна);
Batch — включает режим отладки проекта с использованием внешнего текстового файла. При использовании данного режима предполагается, что имеется предварительно созданный текстовый файл в кодировке ASCII со значениями входных лингвистических переменных. После выполнения процедуры нечеткого вывода программой fuzzyTECH результаты записываются во внешний файл, который можно просмотреть и проанализировать в текстовом редакторе;
Online-Monitor — включает режим отладки проекта с использованием некоторой дополнительной программы реального времени (fuzzy runtime system). Применяется для реализации систем нечеткого вывода при управлении внешними объектами в реальном времени. В этом режиме используемая дополнительная программа реального времени защищается от возможных изменений;
Online-Monitor & Modify — включает режим отладки проекта с использованием некоторой дополнительной программы реального времени (fuzzy runtime system). В этом режиме разработчик имеет возможность вносить изменения в используемую дополнительную программу реального времени.
□ Пункт меню Analyzer (Анализатор) позволяет отображать на экране различные инструменты анализа результатов нечеткого вывода для текущего проекта, становится доступным только при включении режима отладки проекта и содержит следующие операции (рис. 18.14):
New Transfer Plot... — создает новое окно просмотра графиков поверхности вывода на плоскости;
New 3D Plot... — создает новое окно просмотра трехмерных графиков поверхности вывода;
New Time Plot... — создает новое окно просмотра временных графиков системы нечеткого вывода;
New Rule Analyzer... — создает новое окно анализатора правил системы нечеткого вывода для первой выходной лингвистической переменной;
Statistics — включает/отключает в табличный редактор правил дополнительный столбец с информацией о количестве циклов активизации каждого из правил;
Trace... — включает режим записи значений входных лингвистических переменных при использовании внешних программ реального времени в некотором внешнем файле с расширением trc.
New Transfer Plot . N^iQPtot New Time Plot Ne^Rule^^zer,.
^iat sties T[ace.
Рис. 18.14. Операции пункта Analyzer главного меню
□ Пункт меню Tools (Средства) обеспечивает доступ к различным дополнительным инструментам программы fuzzyTECH, к ее настройкам, свойствам проекта и содержит следующие операции (рис. 18.15):
Compile to — позволяет сгенерировать для текущего проекта программный код на одном из языков программирования и для рассматриваемой версии программы fuzzyTECH содержит дополнительные подпункты: С... — вызывает окно задания имени файла с текстом исходного кода программы на языке С; Java... — вызывает окно задания имени файла с текстом исходного кода программы на языке Java; М... — вызывает окно задания имени m-файла с текстом исходного кода проекта для системы MATLAB; FlR... — вызывает окно задания имени бинарного файла формата FTR для текущего проекта; FTR+Wrapper Class for Visual C++/MFC... — кроме файла проекта в формате FTR позволяет сгенерировать описание класса для среды MS Visual C++ в форме приложения MFC; FTR+Wrapper Class for
JeveJeveРис. 18.15. Операции пункта Tools главного менюРис. 18.15. Операции пункта Tools главного менюVisual Basic... — кроме файла проекта в формате FTR позволяет сгенерировать модуль класса для среды MS Visual Basic в форме файла с расширением cis; FTR+Wrapper Class for VBA... — кроме файла проекта в формате FTR позволяет сгенерировать модуль класса для языка программирования MS Visual Basic for Applications в форме файла с расширением cis. Следует напомнить, что в демонстрационной версии программы эта операция главного меню недоступна;
Jeve
Jeve
Рис. 18.15. Операции пункта Tools главного меню
Рис. 18.15. Операции пункта Tools главного меню
wrapper Class 1рДгеиЦл>*/МкС. ' wrapper Qass fcyMstifllfiasJ^, > pepper Class far VBA.,* Q A*^
Neuro — позволяет использовать дополнительный модуль нейро- нечеткого вывода для улучшения и оптимизации характеристик разрабатываемого проекта и содержит два подпункта: Configuration — вызывает диалоговое окно задания свойств конфигурации модуля нейро-нечеткого вывода; Learning — вызывает диалоговое окно открытия файла с обучающей выборкой с целью последующего использования этого файла для обучения системы нейро-нечеткого вывода;
Cluster — позволяет использовать дополнительный модуль кластеризации для оптимизации процесса обучения системы нейро-нечеткого вывода разрабатываемого проекта и содержит два подпункта: IsodataCluster — вызывает диалоговое окно открытия файла с исходной выборкой данных для последующей кластеризации методом ISODATA: FuzzyCluster — вызывает диалоговое окно открытия файла с исходной выборкой данных для последующей кластеризации методом нечеткой кластеризации;
Project Options... — вызывает диалоговое окно с тремя вкладками для задания свойств разрабатываемого проекта, которые сохраняются в соответствующем файле проекта формата FTL;
FuzzyTECH Preferences... — вызывает диалоговое окно с шестью вкладками для настройки рабочего интерфейса программы fuzzyTECH в соответствии с индивидуальными пожеланиями разработчика, при этом все настройки сохраняются;
Edition — позволяет запустить другие версии программы fuzzyTECH, установленные на данном компьютере;
Language — позволяет изменить язык меню и диалоговых окон программы fuzzyTECH.
□ Пункт меню Window (Окно) позволяет отображать на экране графические окна различных компонентов программы fuzzyTECH и содержит следующие операции (рис. 18.16):
Open all Variable Editors of Variable Group — позволяет открыть дополнительные графические окна редакторов для отдельных лингвистических переменных текущего проекта системы нечеткого вывода и содержит следующие подпункты: All Variables — открывает окна редакторов для всех лингвистических переменных проекта; Input — открывает окна редакторов только входных лингвистических переменных проекта; Output — открывает окна редакторов только выходных лингвистических переменных проекта; Intermediates — открывает окна редакторов только промежуточных лингвистических переменных проекта;
AJiyWiablesInput k Qutput ,. Inlet mediatesAJiyWiablesInput k Qutput ,. Inlet mediatesРис. 18.16. Операции пункта Window главного менюРис. 18.16. Операции пункта Window главного меню
AJiyWiables
Input k Qutput ,. Inlet mediates
AJiyWiables
Input k Qutput ,. Inlet mediates
Рис. 18.16. Операции пункта Window главного меню
Рис. 18.16. Операции пункта Window главного меню
Open all Spreadsheet Rule Editors — позволяет открыть дополнительные графические окна табличных редакторов всех блоков правил разрабатываемого проекта;
Close all Variable Editors — позволяет закрыть все открытые ранее графические окна редакторов лингвистических переменных текущего проекта системы нечеткого вывода;
Close all Spreadsheet Rule Editors — позволяет закрыть все открытые ранее графические окна табличных редакторов блоков правил текущего проекта системы нечеткого вывода;
Arrange — позволяет отобразить в окне редактора проекта все открытые графические окна различных компонентов проекта, автоматически настраивая их геометрические размеры и выравнивая расположение;
Tile — позволяет отобразить в окне редактора проекта все открытые графические окна различных компонентов проекта, автоматически упорядочивая их по именам;
Cascade — позволяет отобразить в окне редактора проекта все открытые графические окна различных компонентов проекта в каскадной форме, автоматически выравнивая их геометрические размеры;
Arrange Icons — позволяет упорядочить пиктограммы свернутых графических окон всех открытых компонентов текущего проекта в нижней части окна редактора проекта;
секция с номерами и именами открытых графических окон в программе для быстрого переключения между ними.
□ Пункт меню Help (Справка) содержит следующие операции (рис. 18.17):
Quick Help — вызывает раздел быстрого старта справочной системы программы fuzzyTECH (рис. 18.7);
FuzzyTECH Help —вызывает основной раздел справочной системы программы fuzzyTECH (рис. 18.8);
Help on topic — вызывает раздел справочной системы программы fuzzyTECH, который соответствует текущему активному окну компонента разрабатываемого проекта, т. е. имеющему в текущий момент фокус редактирования;
Help on Neuro — вызывает окно справочной системы с разделом справки о модуле нейро-нечеткого вывода программы fuzzyTECH;
Help on Cluster — вызывает окно справочной системы с разделом справки о модуле кластеризации программы fuzzyTECH;
Fuzzy Primer — вызывает окно справочной системы с разделом общей информации о нечеткой логике;
Shortkey Overview — вызывает окно справочной системы с описанием клавиш быстрого доступа к различным компонентам программы fuzzyTECH;
FuzzyTECH on WWW — вызывает браузер Интернета, установленный на компьютере разработчика по умолчанию, для доступа к дополнительной информации по программе fuzzyTECH, предоставляемой компанией INFORM GmbH;
About... — отображает информацию о текущей рабочей версии программы fuzzyTECH и ее компонентах.
Quick Help
TuzzyT^CH Help F1
Help jjn topic * CtrkFl t
Help on tieuro
Help or yuster
FuzzyPrimer
Shortkey Xerview
fuzzyTECH on W/AV ►
AGCUt..
Рис. 18.17. Операции пункта Helpглавного меню
Назначение операций панели инструментов
Панель инструментов главного окна программы fuzzyTECH располагается ниже строки главного меню и содержит набор кнопок, которые дублируют наиболее часто выполняемые операции главного меню и обеспечивают быстрый доступ к выполнению соответствующих операций (табл. 18.3):
Таблица 18.3. Назначение кнопок панели инструментов программы fuzzyTECH
Графическое изображение
Всплывающая подсказка
Назначение кнопки
New
Вызывает диалоговое окно генерации нового проекта (Generate Project)
Design Wizard
Вызывает диалоговое окно мастера нечеткого проекта (Fuzzy Design Wizard)
Open
Вызывает стандартное диалоговое окно открытия внешнего файла с расширениями ftl, cfg, ftp, rev с диска
и
Save
Сохраняет текущий проект во внешнем файле с расширением ftl или cfg
Documentation
Вызывает диалоговое окно задания свойств для автоматической генерации документации по разработанному проекту системы нечеткого вывода в формате RTF на английском языке
Revision Control
Вызывает окно настройки системы контроля версий программы fuzzyTECH
S
Undo
Отменяет выполнение последнего действия
ж
Interactive
Включает режим интерактивной отладки проекта и вызывает окно анализа результатов нечеткого вывода
>
Monitor
Включает режим отладки проекта с использованием некоторой дополнительной программы реального времени без возможности внесения изменений в используемую дополнительную программу
у
Monitor&Modify
Включает режим отладки проекта с использованием некоторой дополнительной программы реального времени с возможностью внесения изменений в используемую дополнительную программу
Таблица 18.3 (окончание)
Графическое изображение
Всплывающая подсказка
Назначение кнопки
в
Transfer Plot
Создает новое окно просмотра графиков поверхности вывода на плоскости
3D Plot
Создает новое окно просмотра трехмерных графиков поверхности вывода
Time Plot
Создает новое окно просмотра временных графиков поверхности вывода
в
Rule Analyzer
Открывает окно анализатора правил разрабатываемой системы нечеткого вывода
5
Statistics
Включает/отключает в табличном редакторе правил дополнительный столбец с информацией о количестве циклов активизации каждого из правил
5
Options
Вызывает диалоговое окно для задания свойств разрабатываемого проекта
ж
Neuro Learning
Вызывает диалоговое окно открытия файла с обучающей выборкой с целью его последующего применения для обучения системы нейро- нечеткого вывода
Variable
Вызывает мастер новой лингвистической переменной (Linguistic Variables Wizard)
Rule
Вызывает мастер нового блока правил (Rule Block Wizard)
Text
Вызывает окно задания блока текста в редакторе проекта
g
Properties
Вызывает диалоговое окно для индивидуальной настройки рабочего интерфейса программы fuzzyTECH
й
Tree view
Отображает/скрывает окно просмотра структуры проекта (см. рис. 18.6)
т
Help
Вызывает окно справочной системы программы fuzzyTECH'
Указанные операции панели инструментов главного окна используются в дальнейшем при рассмотрении способов вызова различных графических инструментов программы fuzzyTECH.
Графические средства визуализации результатов нечеткого вывода в программе fuzzyTECH
Программа fuzzyTECH обладает встроенными средствами визуализации и графического представления результатов нечеткого вывода для разработанных проектов в форме кривых и поверхностей на плоскости и в 3-мерном пространстве. При этом могут быть использованы различные способы и стили их цветового представления, что обеспечивает наглядность получаемых изображений.
В процессе разработки и последующего анализа систем нечеткого вывода в интерактивном режиме могут быть использованы следующие специальные графические средства визуализации результатов нечеткого вывода, входящие в состав программы fuzzyTECH:
графическое окно просмотра поверхности нечеткого вывода на плоскости;
графическое окно просмотра трехмерной поверхности нечеткого вывода;
графическое окно просмотра временных графиков значений лингвистических переменных.
Ниже рассматриваются особенности представления поверхностей нечеткого вывода с помощью указанных графических окон.
Графическое окно просмотра поверхности нечеткого вывода на плоскости
Графическое окно просмотра поверхности нечеткого вывода на плоскости (Transfer Plot Window) может быть открыто только в интерактивном режиме отладки проекта с помощью операции главного меню Analyzer>New Transfer Plot... или с помощью соответствующей кнопки панели инструментов главного окна (см. табл. 18.3).
После выполнения данной операции возникнет графическое окно с изображением поверхности нечеткого вывода на плоскости (рис. 18.18).
Графическое окно просмотра поверхности нечеткого вывода на плоскости ниже стандартной строки заголовка и кнопок управления окном имеет собственную панель инструментов и вложенные списки с именами лингвистических переменных проекта. Отобразить или скрыть эти списки можно с помощью соответствующей кнопки панели инструментов (табл. 18.4).
Основную часть графического окна занимают секции визуализации поверхности по каждой из входных лингвистических переменных и секция визуализации собственно поверхности нечеткого вывода на плоскости. В первых двух секциях, расположенных выше и правее секции визуализации поверхности нечеткого вывода, изображаются вертикальные срезы или сечения поверхности вывода по текущему значению первой и, соответственно, второй входной лингвистической
переменной. Отобразить или скрыть эти секции можно с помощью соответствующей кнопки панели инструментов (см. табл. 18.4).
Рис. 18.18. Графическое окно просмотра поверхности нечеткого вывода на плоскости
Поверхность нечеткого вывода графически представляет функциональную зависимость выходной лингвистической переменной от двух входных лингвистических переменных в форме изменения оттенка и насыщенности некоторого цвета (по умолчанию — диапазона цветовой гаммы от желтого до коричневого).
Панель инструментов окна просмотра поверхности нечеткого вывода на плоскости содержит набор кнопок, которые позволяют изменять внешний вид данного графического окна и выполнять некоторые дополнительные операции. Назначение отдельных кнопок панели инструментов приводится в табл. 18.4.
Таблица 18.4. Назначение кнопок панели инструментов окна просмотра поверхности нечеткого вывода на плоскости
Графическое изображение
Всплывающая подсказка
Назначение кнопки
%
Cross Section View
Отображает/скрывает секции визуализации значений входных лингвистических переменных
Variable Box
Отображает/скрывает секции задания имен входных и выходных лингвистических переменных
Repaint
Перерисовывает график поверхности нечеткого вывода после внесенных изменений в проект
Trace
Включает/выключает режим отображения значений входных лингвистических переменных при их записи с использованием внешних программ реального времени
Таблица 18.4 (окончание)
Графическое изображение
Всплывающая подсказка
Назначение кнопки
I*:
Reset Trace
Обновляет отображение значений входных лингвистических переменных при их записи с использованием внешних программ реального времени
Л
Help
Вызывает раздел справочной системы, посвященный окну просмотра поверхности нечеткого вывода на плоскости
Выбор двух входных лингвистических переменных для построения соответствующей поверхности нечеткого вывода осуществляется с помощью раскрывающихся списков, расположенных справа от панели инструментов. Третий раскрывающийся список предназначен для выбора выходной лингвистической переменной проекта в том случае, когда в нечетком проекте используется несколько выходных переменных. Справа от списка выходных переменных находится небольшое окно со списком значений коэффициента аппроксимации (Zoom Factor) графика поверхности. Чем меньше значение данного коэффициента, тем более точно изображается поверхность нечеткого вывода.
Собственно поверхность нечеткого вывода изображается аналогично изображению рельефа земной поверхности на географической карте. При этом меньшим значениям выходной лингвистической переменной соответствуют боже светлые оттенки цвета, а большим значениям — более темные оттенки цвета. Весь диапазон цветовых оттенков значений выходной лингвистической переменной изображен в нижней части графического окна. Здесь указывается также количественное значение выходной переменной как результат нечеткого вывода для текущих значений входных переменных.
Текущие значения входных лингвистических переменных визуализируются с помощью вертикальной (для первой) и горизонтальной (для второй) линий на графике поверхности. Щелкнув и удерживая левую кнопку мыши на этих линиях, посредством последующего перемещения курсора мыши в том или ином направлении можно изменить текущие значения входных лингвистических переменных. К аналогичному результату приводит однократный щелчок левой кнопки мыши в произвольной точке графика поверхности.
Анализ поверхности нечеткого вывода для разработанного проекта заключается в контроле или проверке адекватности влияния изменения текущих значений входных лингвистических переменных на выходную лингвистическую переменную. Для этого могут быть использованы различные значения этих переменных из всего диапазона возможных значений. Для более полного и всестороннего анализа нечеткого проекта следует воспользоваться дополнительными графическими окнами просмотра трехмерных поверхностей и временных графиков нечеткого вывода, которые рассматриваются ниже.
Закрыть активное графическое окно просмотра поверхности нечеткого вывода на плоскости можно с помощью соответствующей кнопки управления окном. При выходе из режима интерактивной отладки проекта все открытые ранее графические окна просмотра поверхности нечеткого вывода автоматически закрываются.
Графическое окно просмотра трехмерной поверхности нечеткого вывода
Графическое окно просмотра трехмерной поверхности нечеткого вывода (3D Plot Window) может быть открыто только в интерактивном режиме отладки проекта с помощью операции главного меню Analyzer>New 3D Plot... или с помощью соответствующей кнопки панели инструментов главного окна программы fuzzyTECH (табл. 18.3).
После выполнения данной операции появится графическое окно с изображением поверхности нечеткого вывода в пространстве трех измерений (рис. 18.19).
Рис. 18.19. Графическое окно просмотра трехмерной поверхности нечеткого вывода
Графическое окно просмотра трехмерной поверхности нечеткого вывода ниже стандартной строки заголовка и кнопок управления окном имеет собственную панель инструментов и вложенные списки с именами лингвистических переменных проекта. Отобразить или скрыть эти списки можно с помощью соответствующей кнопки панели инструментов (табл. 18.5).
Основную часть графического окна занимает секция визуализации трехмерной поверхности нечеткого вывода. При этом поверхность нечеткого вывода графически представляется в трехмерном пространстве, в котором первым двум координатным осям соответствуют входные лингвистические переменные, а вертикальная ось координат соответствует выходной лингвистической переменной.
Панель инструментов окна просмотра трехмерной поверхности нечеткого вывода содержит набор кнопок, которые позволяют изменять внешний вид данного графического окна и выполнять некоторые дополнительные операции. Назначение отдельных кнопок панели инструментов приводится в табл. 18.5.
Таблица 18.5. Назначение кнопок панели инструментов окна просмотра трехмерной поверхности нечеткого вывода
Графическое изображение
Всплывающая подсказка
Назначение кнопки
<£
Left
Поворачивает график трехмерной поверхности вывода на 10°влево
Ф
Right
Поворачивает график трехмерной поверхности вывода на 10° вправо
А
V"'
Up
Поворачивает график трехмерной поверхности вывода на 10°вверх
Down
Поворачивает график трехмерной поверхности вывода на 10° вниз
Stop
Останавливает непрерывное вращение графика трехмерной поверхности вывода, инициированное одним из способов поворота
1 ?Q
Vertical
Изменяет направление осей входных лингвистических переменных на противоположное
Variable Box
Отображает/скрывает секции задания имен входных и выходных лингвистических переменных
-к-
Cricp Values
Отображает/скрывает текущие значения лингвистических переменных, выделяемые с помощью красных стрелок
Color Palette
Изменяет цвет графика трехмерной поверхности вывода
Repaint
Включает режим отладки проекта с использованием некоторой дополнительной программы реального времени с возможностью внесения изменений в используемую дополнительную программу
Hide Plot Drawing
Включает/выключает режим последовательного вычерчивания фрагментов графика трехмерной поверхности вывода
Trace
Включает/выключает режим отображения значений входных лингвистических переменных при их записи с использованием внешних программ реального времени
Таблица 18.5 (окончание)
Графическое изображение
Всплывающая подсказка
Назначение кнопки
g
Reset Trace
Обновляет отображение значений входных лингвистических переменных при их записи с использованием внешних программ реального времени
Help
Вызывает раздел справочной системы, посвященный окну просмотра трехмерной поверхности нечеткого вывода
Выбор двух входных лингвистических переменных и выходной лингвистической переменной проекта для построения соответствующей трехмерной поверхности нечеткого вывода осуществляется с помощью вложенных списков, расположенных ниже панели инструментов. Справа от этих списков находится небольшое окно со списком значений коэффициента аппроксимации (Zoom Factor) трехмерного графика поверхности. Чем меньше значение данного коэффициента, тем более точно изображается поверхность нечеткого вывода.
Трехмерная поверхность нечеткого вывода изображается аналогично изображению графиков поверхностей в декартовой системе координат. Для более наглядного восприятия формы поверхности используются оттенки некоторого цвета, при этом меньшим значениям выходной лингвистической переменной соответствуют более светлые оттенки цвета, а большим значениям -— более темные оттенки цвета. Изменить базовый цвет изображения поверхности можно с помощью соответствующей кнопки панели инструментов (см. табл. 18.5).
Текущие значения входных лингвистических переменных визуализируются с помощью красных стрелок на координатных осях графика поверхности в случае, если данный режим включен с помощью кнопки панели инструментов (см. табл. 18.5). Щелкнув и удерживая левую кнопку мыши на одной из этих линий, посредством последующего перемещения курсора мыши в том или ином направлении можно изменить текущее значение соответствующей входной лингвистической переменной.
Анализ поверхности нечеткого вывода для разработанного проекта заключается в визуальной проверке адекватности формы поверхности нечеткого вывода. Для этого можно использовать различные углы просмотра трехмерной поверхности и изменение направления координатных осей.
Закрыть активное графическое окно просмотра трехмерной поверхности нечеткого вывода можно с помощью соответствующей кнопки управления окном. При выходе из режима интерактивной отладки проекта все открытые ранее графические окна просмотра поверхности нечеткого вывода автоматически закрываются.
Графическое окно просмотра временных графиков значений лингвистических переменных
Графическое окно просмотра временных графиков значений лингвистических переменных нечеткого вывода (Time Plot Window) может быть открыто только в интерактивном режиме отладки проекта с помощью операции главного меню Analyzer>New Time Plot... или с помощью соответствующей кнопки панели инструментов главного окна программы fuzzyTECH (см. табл. 18.3).
После выполнения данной операции возникнет пустое графическое окно, которое после выполнения определенных насгроек и выполнения серии изменений значений входных лингвистических переменных будет содержать временные графики соответствующих значений этих лингвистических переменных (рис. 18.20).
Рис. 18.20. Графическое окно просмотра временных графиков значений лингвистических переменных системы нечеткого вывода
Графическое окно просмотра временных графиков значений лингвистических переменных ниже стандартной строки заголовка и кнопок управления окном имеет собственную панель инструментов. Основную часть графического окна занимает секция визуализации временных графиков значений лингвистических переменных, справа от которой находится секция имен лингвистических переменных. При этом временные графики значений лингвистических переменных графически представляются в двумерной декартовой системе координат, в которой горизонтальной координате соответствует ось времени, а вертикальной — значения отдельных лингвистических переменных.
Панель инструментов окна просмотра временных графиков значений лингвистических переменных содержит набор кнопок, которые позволяют изменять внешний вид данного графического окна и выполнять некоторые дополнительные операции. Назначение отдельных кнопок панели инструментов приводится в табл. 18.6.
Таблица 18.6. Назначение кнопок панели инструментов окна просмотра временных графиков значений лингвистических переменных
Графическое Всплывающая изображение подсказка
Назначение кнопки
и
Configuration
Открывает диалоговое окно задания свойств конфигурации окна временных графиков, которое позволяет выбрать лингвистические переменные для построения соответствующих графиков
Zoom Factor
Вложенный список из фиксированного набора значений для выбора коэффициента масштаба изображения графиков по горизонтальной оси времени
^
Zoom In
Увеличивает значение коэффициента масштаба изображения графиков по горизонтальной оси на одно значение из вложенного списка времени
Zoom Out
Уменьшает значение коэффициента масштаба изображения графиков по горизонтальной оси времени на одно значение из вложенного списка
в
Reset
Очищает секцию изображения временных графиков
Freeze
Останавливает/продолжает изображение временных графиков
и
List Box
Отображает/скрывает секцию имен входных и выходных лингвистических переменных
®
Add Input Variables
Добавляет все входные лингвистические переменные для построения соответствующих временных графиков
Add Output Variables
Добавляет все выходные лингвистические переменные для построения соответствующих временных графиков
Help
Вызывает раздел справочной системы, посвященный окну просмотра временных графиков нечеткого вывода
Выбор входных и выходных лингвистических переменных для построения соответствующих временных графиков нечеткого вывода можно выполнить либо при задании конфигурации этого графического окна, либо с помощью кнопок панели инструментов. На панели инструментов также имеется небольшое поле со списком значений коэффициента масштаба (Zoom Factor) для представления оси
времени. Чем меньше значение данного коэффициента, тем более мелкой представляется координатная сетка по горизонтальной оси времени.
Временные графики нечеткого вывода служат для изображения всех последовательных изменений текущих значений входных и выходных лингвистических переменных в обычной декартовой системе координат. Для более наглядного восприятия графиков каждой из лингвистических переменных используются различные цвета. Изменить цвет изображения некоторого временного графика можно с помощью изменения цвета представления соответствующей лингвистической переменной, что удобно выполнять с помощью операции Color... (Цвет) контекстного меню.
Анализ временных графиков нечеткого вывода для разработанного проекта заключается в визуальной проверке адекватности последовательных результатов нечеткого вывода. Для этого можно использовать различный цвет фона (белый или черный) временных графиков.
Закрыть активное графическое окно просмотра временных графиков нечеткого вывода можно с помощью соответствующей кнопки управления окном. При выходе из режима интерактивной отладки проекта все открытые ранее графические окна просмотра временных графиков автоматически закрываются.
Примеры изображений, построенные с помощью различных средств графической визуализации результатов нечеткого вывода программы fuzzyTECH для некоторых задач управления и принятия решений, приводятся в главе 20.
Глава 19
Процесс нечеткого моделирования в среде fuzzyTECH
Процесс нечеткого моделирования в среде fuzzyTECH осуществляется в интерактивном режиме с помощью специальных графических средств, предназначенных для редактирования и визуализации компонентов систем нечеткого вывода. В дополнение к ним также могут быть использованы специальные средства или мастера вновь разрабатываемых или модифицируемых систем нечеткого вывода. Ниже рассматриваются особенности разработки и редактирования систем нечеткого вывода с использованием соответствующих графических средств и даются рекомендации по применению мастеров. Примеры разработки нечетких моделей с помощью графических средств в среде fuzzyTECH для некоторых задач управления и принятия решений приводятся в главе 20.
Основные средства редактирования и анализа систем нечеткого вывода в fuzzyTECH
Для редактирования и последующего анализа систем нечеткого вывода в интерактивном режиме могут быть использованы следующие графические средства, входящие в состав программы fuzzyTECH.
О Графический редактор проекта системы нечеткого вывода (Project Editor).
О Графический редактор лингвистической переменной и функций принадлежности ее термов (Variable Editor).
О Графические редакторы правил системы нечеткого вывода (Spreadsheet Rule Editor, Matrix Rule Editor).
□ Графические средства анализа результатов нечеткого вывода (Watch Window, Rule Analyzer).
О Графические средства просмотра поверхности системы нечеткого вывода (Transfer Plot Window, 3D Plot Window, Time Plot Window).
Вызов этих средств (кроме редактора проекта, который всегда открыт) возможен через операции главного меню, а также с помощью кнопок панели инструментов (см. табл. 18.3) или двойного щелчка мыши на графическом изображении отдельных компонентов системы нечеткого вывода в графическом окне редактора проекта.
Редактор проекта и графические средства просмотра поверхности системы нечеткого вывода были рассмотрены ранее в главе 18. В настоящей главе излагаются особенности графических средств, которые могут быть использованы для разработки и исследования широкого класса систем нечеткого вывода в среде fuzzyTECH.
Графический редактор лингвистической переменной и функций принадлежности их термов
Редактор лингвистической переменной и функций принадлежности ее термов (далее сокращенно — редактор лингвистической переменной), как следует из его названия, предназначен для спецификации термов отдельной лингвистической переменной проекта и редактирования ее функций принадлежности в графическом режиме.
Графическое окно редактора лингвистических переменных может быть открыто двойным щелчком мыши на изображении прямоугольника соответствующей лингвистической переменной в окне редактора проекта или двойным щелчком мыши на имени соответствующей лингвистической переменной в окне просмотра структуры проекта. Открыть окна редакторов для всех лингвистических переменных проекта можно с помощью соответствующей операции главного меню: Window>Open all Variable Editors of variable Group>All Variables.
Результат вызова редактора лингвистической переменной для некоторой переменной с именем Variablel, которая имеет три терма с именами: low, medium и high, изображен на рис. 19.1.
Графическое окно редактора лингвистической переменной ниже стандартной строки заголовка и кнопок управления окном имеет собственную панель инструментов и две секции: секцию имен термов, расположенную слева, и секцию графиков функций принадлежности термов, расположенную справа. Внешний вид этих секций зависит от общего количества термов у редактируемой лингвистической переменной.
В секции графиков функций принадлежности изображаются две координатные оси, первая из них (горизонтальная) представляет весь диапазон значений редактируемой лингвистической переменной, а вторая (вертикальная) — интервал значений функции принадлежности, т. е. интервал [0, 1]. Ниже горизонтальной оси указываются единицы измерения значений редактируемой лингвистической переменной (по умолчанию — Units).
Рис. 19.1. Графическое окно редактора лингвистической переменной с именем Variable 1
Результат вызова редактора лингвистической переменной для некоторой переменной с именем Variable 2, которая имеет 5 термов с именами: veryjow, low, medium, high и very_high, изображен на рис. 19.2.
Рис. 19.2. Графическое окно редактора лингвистической переменной с именем Variable2
Для редактируемой лингвистической переменной один из термов в редакторе всегда выделен фоном цвета этого терма в секции имен термов. Для удобства визуального представления все термы редактируемой лингвистической переменной изображаются различными цветами. Изменить цвет отдельного терма можно с помощью операции редактирования цвета в окне свойств контекстного меню (рис. 19.3).
Выделенному терму в окне функций принадлежности соответствует график этого же цвета с характерными маленькими квадратами или маркерами в местах пересечения кривой с горизонтальными линиями, соответствующими значениям функции принадлежности 0 и 1. Указанные маркеры могут быть использованы разработчиком для изменения вида и значений функции принадлежности. Для этого следует позиционировать курсор мыши на нужном маркере, нажать левую кнопку мыши и, не отпуская ее, переместить маркер в нужном направлении. Изменение функции принадлежности можно контролировать визуально с помощью изменения соответствующего графика в секции функций принадлежности редактора.
При перемещении курсора в окне секции функций принадлежности появляется всплывающая подсказка с координатами указателя мыши на плоскости, при этом первое число соответствует горизонтальной координате (значению редактируемой лингвистической переменной), а второе число — вертикальной координате (значению функции принадлежности).
Выделить нужный терм в секции имен можно последовательным нажатием клавиш <^> и <Т> на клавиатуре или щелчком левой кнопки мыши на имени терма в этой секции. При этом происходит выделение соответствующей кривой в секции функций принадлежности редактора.
Выделенный терм редактируемой лингвистической переменной можно удалить, для чего достаточно нажать клавишу <Delete> на клавиатуре или воспользоваться соответствующей операцией контекстного меню (см. рис. 19.3). Для добавления новых термов к редактируемой лингвистической переменной следует воспользоваться соответствующей кнопкой панели инструментов редактора или операцией контекстного меню (см. рис. 19.3).
Панель инструментов редактора содержит набор кнопок, которые позволяют выполнить отдельные операции по редактированию лингвистической переменной. Назначение отдельных кнопок панели инструментов приводится в табл. 19.1.
Таблица 19.1. Назначение кнопок панели инструментов редактора лингвистической переменной
Графическое изображение
Всплывающая подсказка
Назначение кнопки
Next Term
Осуществляет переход к следующему терму редактируемой лингвистической переменной
New Term
Открывает окно задания нового терма для редактируемой лингвистической переменной, при этом можно задать имя нового терма и форму его функции принадлежности
Inverse Term
Создает новый терм для редактируемой лингвистической переменной, функция принадлежности которого симметрична функции принадлежности выделенного терма относительно горизонтальной линии на уровне 0.5
Таблица 19.1 (окончание)
Графическое изображение
Всплывающая подсказка
Назначение кнопки
Му
Sort Terms
Упорядочивает множество термов редактируемой лингвистической переменной по максимальным значениям их функций принадлежности, при этом вначале располагаются положительные термы, а затем отрицательные термы
Grid
Открывает диалоговое окно свойств редактора лингвистической переменной с предложением изменить величину координатной сетки
Base Variable
Открывает диалоговое окно свойств редактора лингвистической переменной с предложением изменить диапазон ее возможных значений
Ж
Standard MBF
Преобразует функции принадлежности всех термов редактируемой лингвистической переменной к стандартной форме
Variables Wizard
Вызывает третье по счету окно мастера лингвистической переменной (Linguistic Variables Wizard) с предложением изменить форму функций принадлежности отдельных термов
Term List Box
Отображает/скрывает секцию с именами термов редактируемой лингвистической переменной
*t ^ ^
Hyperdefuzzification
Отображает/скрывает результаты дефаззифика- ции (всех/положительных/отрицательных) значений выходной лингвистической переменной. Эта кнопка может изменять свой внешний вид, при этом она становится активной только в режиме отладки проекта и при выборе соответствующего метода дефаззификации — Hyper СоМ
Learn MBFs
Включает/отключает режим обучения для спецификации функций принадлежности термов редактируемой лингвистической переменной
Т
Help
Вызывает раздел справочной системы, посвященный редактору лингвистической переменной
Кроме панели инструментов, операции редактора лингвистической переменной доступны через контекстное меню, которое может быть вызвано с помощью нажатия правой кнопки мыши при позиционировании курсора в пределах графического окна редактора (рис. 19.3).
Learn til M8F$
» Variables Ий tard v Show Term ЦМ Box
Рис. 19.3. Контекстное меню редактора лингвистической переменной
Контекстное меню редактора лингвистической переменной содержит следующие операции:
Properties... (Свойства) — открывает окно свойств выделенного терма для их редактирования;
Learning... (Обучение) — открывает окно свойств процедуры обучения функции принадлежности для выделенного терма;
Delete (Удалить) — удаляет выделенный терм у редактируемой лингвистической переменной;
New Term... (Новый терм) — открывает окно задания нового терма для редактируемой лингвистической переменной, при этом можно задать имя нового терма и форму его функции принадлежности;
New Inverse Term (Новый инверсный терм) — создает новый терм для редактируемой лингвистической переменной, функция принадлежности которого симметрична функции принадлежности исходного выделенного терма относительно горизонтальной линии на уровне 0.5;
Sort Terms (Сортировка термов) — упорядочивает множество термов редактируемой лингвистической переменной по максимальным значениям их функций принадлежности, при этом вначале располагаются положительные термы, а затем отрицательные термы;
Grid... (Сетка) — открывает диалоговое окно свойств редактируемой лингвистической переменной с предложением изменить величину отображения координатной сетки;
Base Variable... — открывает диалоговое окно свойств редактируемой лингвистической переменной с предложением изменить диапазон ее возможных значений;
О Standard MBF — преобразует функции принадлежности всех термов редактируемой лингвистической переменной к стандартной форме;
Learn all MBFs... — включает/отключает режим обучения для спецификации функций принадлежности всех термов редактируемой лингвистической переменной;
Variables Wizard... — вызывает третье по счету окно мастера лингвистической переменной (Linguistic Variables Wizard) с предложением изменить форму функций принадлежности отдельных термов;
Show Term List Box — отображает/скрывает секцию с именами термов редактируемой лингвистической переменной.
Закрыть активный редактор лингвистической переменной можно с помощью соответствующей кнопки управления окном. Закрыть все открытые редакторы лингвистических переменных можно с помощью операции главного меню: Window>Close all Variable Editors.
При закрытии редактора лингвистических переменных все внесенные изменения автоматически сохраняются в текущем проекте (но не во внешнем файле проекта). При необходимости можно отменить внесенные изменения с помощью соответствующей кнопки панели инструментов программы fuzzyTECH (см. табл. 18.3) или операции главного меню.
Графические редакторы правил системы нечеткого вывода
Редакторы правил системы нечеткого вывода (далее сокращенно — редакторы правил), как следует из их названия, предназначены для редактирования правил нечетких продукций, используемых в различных блоках правил проекта. В программе fuzzyTECH редакторы правил могут иметь одну из графических форм, приведенных ниже.
Табличный редактор правил (Spreadsheet Rule Editor).
Матричный редактор правил (Matrix Rule Editor).
Графическое окно табличного редактора правил может быть открыто двойным щелчком мыши на изображении соответствующего блока правил в окне редактора проекта или двойным щелчком мыши на имени соответствующего блока правил в окне просмотра структуры проекта.
Примечание
Открытие табличного или матричного редактора правил по двойному щелчку мыши можно задать на вкладке General (Общие) диалогового окна командой операцию главного меню Tools>FuzzyTECH Preferences.... Если установить флажок Open Matrix Rule Editor by Double-clicking Rule Block, то по двойному щелчку мыши будет открываться матричный редактор правил, если этот флажок снять — то табличный редактор правил (установлен по умолчанию).
Открыть окна табличных редакторов для всех блоков правил проекта можно также с помощью соответствующей операции главного меню Window>Open all Spreadsheet Rule Editors.
Результат вызова табличного редактора правил для блока правил с именем RB1, который имеет 9 правил нечетких продукций, изображен на рис. 19.4.
Рис. 19.4. Графическое окно табличного редактора правил нечетких продукций
Графическое окно табличного редактора правил ниже стандартной строки заголовка и кнопок управления окном имеет собственную панель инструментов и секцию правил нечетких продукций, которая занимает основную часть графического окна редактора. При этом правила в этой секции представляются в форме таблицы, что и предопределило название данного редактора.
Каждому правилу нечетких продукций редактируемого блока правил соответствует отдельная строка секции. Слева от правила указывается порядковый номер этого правила. Далее следуют имена термов входных лингвистических переменных, которые формируют отдельные подусловия правил нечетких продукций. После них указывается значение весового коэффициента правила (Degree of Support или сокращенно — DoS). Далее следуют имена термов выходных лингвистических переменных, которые формируют отдельные заключения правил нечетких продукций. Имена входных и выходных переменных редактируемого блока правил указываются вверху соответствующего столбца таблицы.
Панель инструментов табличного редактора правил содержит набор кнопок, которые позволяют выполнить некоторые операции по редактированию правил отдельного блока. Назначение кнопок панели инструментов приводится в табл. 19.2.
Таблица 19.2. Назначение кнопок панели инструментов табличного редактора правил
Графическое изображение
Всплывающая подсказка
Назначение кнопки
W
Matrix Editor
Переключает режим представления табличного редактора в режим представления матричного редактора для редактируемого блока правил
^
Rule Block Wizard
Вызывает третье по счету окно мастера блока правил с предложением изменить степень влияния входных переменных на выходные переменные редактируемого блока правил
ж
Delete All Rules
Удаляет все правила у редактируемого блока правил
ж
Set DoS
Открывает окно задания значения весового коэффициента для правил редактируемого блока, при этом данному коэффициенту можно задать произвольное значение
а
Partial Rule Block
Удаляет все правила редактируемого блока и формирует новую базу правил из всех возможных комбинаций термов входных лингвистических переменных. При этом столбцы значений выходных переменных остаются пустыми, а значения всех весовых коэффициентов правил (DoS) принимаются равными 1
Ж
Full Rule Block
Удаляет все правила у редактируемого блока и формирует новую базу правил из всех возможных комбинаций термов как входных, так и выходных лингвистических переменных. При этом значения всех весовых коэффициентов правил (DoS) принимаются равными 1
▼
Fuzzy Operators
Открывает окно задания параметров нечетких операций для правил редактируемого блока (рис. 19.22) '
Е
Sort Rules
Открывает окно задания параметров упорядочения правил нечетких продукций для редактируемого блока правил
з
Compressed Rule Table
Открывает окно представления правил редактируемого блока в сокращенном (сжатом) формате
Show Absolute Statistics
Добавляет к таблице правил редактируемого блока новый столбец с указанием абсолютного количества активизации правил в течение заданного интервала моделирования. Кнопка доступна только при включении анализатора статистики
Таблица 19.2 (окончание)
Графическое изображение
Всплывающая подсказка
Назначение кнопки
to
Show Relative Statistics
Добавляет к таблице правил редактируемого блока новый столбец с указанием относительного (в %) количества активизации правил в течение заданного интервала моделирования. Кнопка доступна только при включении анализатора статистики
to
Reset Statistics Counter
Сбрасывает (обнуляет) Количественные значения активизации правил. Кнопка доступна только при включении анализатора статистики
^
Learn DoS
Открывает диалоговое окно параметров обучения для определения значений весовых коэффициентов (DoS) правил редактируемого блока
Ж
Help
Вызывает раздел справочной системы, посвященный табличному редактору правил нечетких продукций
Кроме панели инструментов, некоторые операции редактирования правил доступны через контекстное меню редактора, которое может быть вызвано с помощью нажатия правой кнопки мыши при позиционировании курсора в пределах графического окна редактора правил. Если контекстное меню открывается в области значения отдельного терма, то в контекстном меню появляются все возможные значения термов соответствующей лингвистической переменной, при этом выбор некоторого из этих значений изменяет подусловие редактируемого правила. Если контекстное меню открывается в области значения отдельного весового коэффициента, то в контекстном меню появляются все возможные значения весовых коэффициентов правил, при этом выбор некоторого из этих значений изменяет весовой коэффициент DoS редактируемого правила.
Графическое окно матричного редактора правил может быть открыто с помощью кнопки переключения окон редакторов (см. табл. 19.2). В дополнение к этому способу матричный редактор правил можно открыть двойным щелчком мыши на изображении соответствующего блока правил в окне редактора проекта или двойным щелчком мыши на имени соответствующего блока правил в окне просмотра структуры проекта, если в настройках программы fuzzyTECH установлен флажок у соответствующего свойства.
Результат вызова табличного редактора правил для блока правил с именем RB1, который имеет 9 правил нечетких продукций, изображен на рис. 19.5.
Графическое окно матричного редактора правил ниже стандартной строки заголовка и кнопок управления окном имеет собственную панель инструментов. Основную часть окна редактора занимает секция правил нечетких продукций. Правила в этой секции представляются в форме матрицы, что и предопределило
название данного редактора. Внешний вид этой секции зависит от общего количества правил редактируемого блока и выбора режима цветового представления заключений правил.
Рис. 19.5. Графическое окно матричного редактора правил нечетких продукций
Каждому правилу нечетких продукций редактируемого блока правил соответствует отдельная ячейка или клетка матрицы. Слева от матрицы правил указываются имена термов первой входной лингвистической переменной, внизу матрицы указываются имена термов второй входной лингвистической переменной. В соответствующей ячейке матрицы указывается сокращенное имя терма выходной лингвистической переменной, которое соответствует заключению отдельного правила нечетких продукций.
Значение весового коэффициента правила изображается оттенком цвета от белого (DoS = I) до темно-серого (DoS = 0), если включен режим отображения в ячейках весовых коэффициентов правил. Имена входных переменных редактируемого блока правил указываются слева и снизу матрицы правил, а имя выходной лингвистической переменной указывается выше списка вложенного меню с именами значений ее термов.
При перемещении курсора в секции правил редактора появляется всплывающая подсказка с текстом соответствующего правила нечеткой продукции (рис. 19.5). Данная подсказка позволяет контролировать правильность записи отдельных правил в редактируемом блоке правил.
Панель инструментов матричного редактора правил содержит набор кнопок, которые позволяют выполнить отдельные операции по редактированию блока правил. Назначение отдельных кнопок панели инструментов приводится в табл. 19.3.
Таблица 19.3. Назначение кнопок панели инструментов матричного редактора правил
Графическое изображение
Всплывающая подсказка
Назначение кнопки
В
Spreadsheet Rule Editor
Переключает режим представления матричного редактора в режим представления табличного редактора для редактируемого блока правил
ж'
Fuzzy Operators
Открывает окно задания параметров нечетких операций для правил редактируемого блока правил (см. рис. 19.22)
в
FuzzyTECH Preferences... Matrix Rule Editor
Открывает диалоговое окно настроек рабочего интерфейса программы fuzzyTECH на вкладке свойств матричного редактора правил
#
Swap Row and Column
Транспонирует матрицу правил редактируемого блока, меняя местами входные лингвистические переменные
в
Display Gray Scale
Отображает значения весовых коэффициентов (DoS) в секции правил нечетких продукций в оттенках серого цвета
в
Display Term Colors
Термы выходной лингвистической переменной в секции правил нечетких продукций отображаются в оттенках цвета этого терма, определенного в редакторе лингвистической переменной
н
Display False Colors
Термы выходной лингвистической переменной в секции правил нечетких продукций отображаются в оттенках зеленого (для положительных значений терма) и красного цвета (для отрицательных значений терма)
Display Input
В ячейках матрицы секции правил отображаются
Aggregation
промежуточные результаты вывода после агрегирования входных лингвистических переменных. Эта кнопка становится доступной только в режиме отладки проекта
КН
Display Degree
В ячейках матрицы секции правил отображаются
of Support (DoS)
значения весовых коэффициентов правил. Эта кнопка всегда нажата (по умолчанию) в режиме редактирования проекта
♦о*
Display Composition with Degree of Support (DoS)
В ячейках матрицы секции правил отображается промежуточный результат вывода после композиции выходных лингвистических переменных. Эта кнопка становится доступной только в режиме отладки проекта
Таблица 19.3 (окончание)
Графическое изображениеГрафическое изображениеВсплывающая Назначение кнопки подсказка
Графическое изображение
Графическое изображение
HelpВызывает раздел справочной системы, посвя
щенный матричному редактору правил нечетких продукций
Закрыть активный матричный редактор правил можно с помощью соответствующей кнопки управления окном. Закрыть все открытые табличные и матричные редакторы правил, как уже отмечалось ранее, можно с помощью операции главного меню Window>Close all Spreadsheet Rule Editors.
При закрытии редактора правил все внесенные изменения автоматически сохраняются в текущем проекте (но не во внешнем файле проекта). При необходимости можно отменить внесенные изменения с помощью соответствующей кнопки панели инструментов программы fuzzyTECH (см. табл. 18.3) или операции главного меню.
Графические средства анализа результатов нечеткого вывода
В качестве графических средств анализа результатов нечеткого вывода в программе fuzzyTECH используются специальные графические окна режима отладки проекта (Watch Window) и анализатора правил нечетких продукций (Rule Analyzer).
Режим отладки (Debug Mode) нечеткого проекта является основным способом получения информации о результатах нечеткого вывода в рамках разрабатываемой системы нечеткого вывода. Главное назначение этого режима — контроль значений выходных и промежуточных лингвистических переменных разработанной системы нечеткого вывода для различных значений входных лингвистических переменных. При этом основным средством контроля является графическое окно режима отладки проекта, а вспомогательным — графическое окно анализатора правил нечетких продукций.
Перейти из режима разработки проекта в интерактивный режим отладки можно с помощью операции главного меню Debug>Interactive или с помощью соответствующей кнопки панели инструментов программы fuzzyTECH (см. табл. 18.3).
Графическое окно режима отладки проекта (Watch Window) открывается автоматически при переходе в режим отладки проекта и остается открытым постоянно до выхода из этого режима (рис. 19.6).
Графическое окно режима отладки проекта ниже стандартной строки заголовка и кнопок управления окном имеет собственную панель инструментов и две (рис. 19.6, а) или три (рис. 19.6, б) секции. В первом случае — секцию имен и значений входных лингвистических переменных, расположенную слева, и секцию
имен и значений выходных лингвистических переменных, расположенную справа. Во втором случае в дополнение к указанным секциям справа добавляется секция имен и значений промежуточных лингвистических переменных, если они присутствуют в проекте. Внешний вид этих секций зависит от общего количества лингвистических переменных в текущем нечетком проекте. В нижней части графического окна режима отладки проекта расположен регулятор выбора значений входных лингвистических переменных.
Рис. 19.6. Графические окна режима отладки проекта системы нечеткого вывода
Для удобства графического восприятия каждая из лингвистических переменных проекта имеет собственный цвет, который служит для выделения входных переменных фоном соответствующего цвета в секции имен входных лингвистических переменных. При необходимости можно отменить режим цветного изображения переменных с помощью операции панели инструментов (табл. 19.4). Выделить нужную входную лингвистическую переменную в секции имен можно последовательным нажатием клавиш <>L> и <Т> на клавиатуре или щелчком левой кнопки мыши на имени лингвистической переменной в этой секции.
Выделенной входной лингвистической переменной всегда соответствует некоторое количественное значение, которое отображается в небольшом окне справа от панели инструментов. Изменить это значение можно непосредственным изменением значения в этом окне либо с помощью перемещения движка регулятора значений в ту или иную сторону. После изменения отдельных значений входных лингвистических переменных происходит соответствующее изменение значения выходной лингвистической переменной, которое отображается в секции имен выходных лингвистических переменных справа.
Панель инструментов графического окна режима отладки содержит набор кнопок, которые позволяют выполнить отдельные операции в режиме отладки. Назначение отдельных кнопок панели инструментов приводится в табл. 19.4.
Таблица 19.4. Назначение кнопок панели инструментов окна режима отладки
Графическое изображение
Всплывающая подсказка
Назначение кнопки
Ж
FuzzyTECH Preferences - Watch Window
Открывает диалоговое окно настроек рабочего интерфейса программы fuzzyTECH на вкладке свойств окна режима отладки
Colored
Включает/отключает режим цветового выделения лингвистических переменных проекта
Intermediate Variables
Отображает/скрывает дополнительную секцию имен и значений промежуточных лингвистических переменных проекта. Кнопка недоступна в случае отсутствия в проекте промежуточных переменных
J>№
Default Values
Устанавливает значения всех входных лингвистических переменных проекта, заданные по умолчанию
<
Reinitialize DDE Links
Обновляет все связи динамического обмена данными, используемыми совместно с другими программами в рамках технологии DDE
Help
Вызывает раздел справочной системы, посвященный графическому окну режима отладки проекта
Анализатор правил нечетких продукций (Rule Analyzer) можно вызвать с помощью операции главного меню Analyzer>New Rule Analyzer... или с помощью соответствующей кнопки панели инструментов программы fuzzyTECH (см. табл. 18.3). Напомним, что в последнем случае кнопка анализатора правил становится доступной только в режиме отладки проекта.
В результате вызова анализатора правил нечетких продукций будет открыто соответствующее графическое окно (рис. 19.7).
Рис. 19.7. Графическое окно анализатора правил нечетких продукций
Графическое окно анализатора правил ниже стандартной строки заголовка и кнопок управления окном имеет собственную панель инструментов. Центральную часть графического интерфейса анализатора правил занимает секция с именами и значениями термов выходной лингвистической переменной. Выбор выходной лингвистической переменной для анализа ее значений осуществляется с помощью поля списка, расположенного слева от панели инструментов
Панель инструментов окна анализатора правил режима отладки содержит всего лишь 4 кнопки, которые позволяют выполнить отдельные операции. Назначение кнопок панели инструментов приводится в табл. 19.5.
Таблица 19.5. Назначение кнопок панели инструментов окна анализатора правил нечетких продукций
Графическое изображение
Всплывающая подсказка
Назначение кнопки
н
Sort Aggregation
Упорядочивает правила согласно значениям до агрегирования их подусловий
Sort Result - Aggregation
Упорядочивает правила согласно значениям после агрегирования их подусловий
Freeze
Останавливает процесс нечеткого вывода заключений для анализируемых правил проекта
Help
Вызывает раздел справочной системы, посвященный графическому окну анализатора правил проекта
Закрыть графическое окно анализатора правил нечеткого вывода можно с помощью соответствующей кнопки управления окном либо автоматически при выходе из режима интерактивной отладки. Как указывалось ранее, для выхода из режима отладки проекта следует убрать отметку у операции главного меню Debug>Interactive или отжать ранее нажатую кнопку панели инструментов программы fuzzyTECH.
Основные средства разработки проектов и компонентов систем нечеткого вывода в fuzzyTECH
Для быстрой разработки прототипов проектов и задания отдельных компонентов систем нечеткого вывода в интерактивном режиме могут быть использованы специальные средства или мастера, входящие в состав программы fuzzyTECH, перечисленные далее.
Мастер нечеткого проекта (FDW, Fuzzy Design Wizard).
Мастер лингвистической переменной (Linguistic Variables Wizard).
Мастер блока правил (Rule Block Wizard).
Мастер нечетких систем реального времени (Online Wizard for Fuzzy Runtime System).
Далее в этой главе приводится характеристика этих мастеров и рассматриваются особенности создания новых проектов и компонентов систем нечеткого вывода с их помощью.
Мастер нечеткого проекта
Мастер нечеткого проекта предназначен для создания базовой структуры или прототипа системы нечеткого вывода и позволяет специфицировать все ее основные компоненты. Мастер нечеткого проекта реализован в форме последовательности диалоговых окон, каждое из которых служит для спецификации отдельных свойств компонентов создаваемого проекта.
Мастер нечеткого проекта может быть вызван с помощью операции главного меню File>Fuzzy Design Wizard... или с помощью соответствующей кнопки панели инструментов программы fuzzyTECH (см. табл. 18.3).
В результате вызова мастера нечеткого проекта будет открыто первое окно из последовательности диалоговых окон спецификации свойств отдельных компонентов создаваемого прототипа проекта (рис. 19.8).
В первом диалоговом окне разработчику предлагается согласиться с выбором варианта создания новой системы нечеткого вывода (Create New System — по умолчанию) или изменить его на вариант добавления системы нечеткого вывода к существующему проекту (Append to Existing System). При необходимости можно воспользоваться возможностью использования внешнего файла формата (CSV, Comma Separated Values) с некоторой выборкой данных для спецификации компонентов создаваемого проекта.
После этого с помощью нажатия кнопки Next можно перейти ко второму диалоговому окну мастера нечеткого проекта (рис. 19.9) для задания количества входных, выходных и промежуточных лингвистических переменных проекта и общего количества их термов.
Рис. 19.8. Первое диалоговое окно мастера нечеткого проекта FDW
Рис. 19.9. Второе диалоговое окно мастера нечеткого проекта FDW
Во втором диалоговом окне мастера нечеткого проекта можно задать количество входных (Input LVs), выходных (Output LVs) и промежуточных (Intermediate LVs) лингвистических переменных проекта, а также общее количество термов входных (Input Terms/LV), выходных (Output Terms/LV) и промежуточных (Interm. Terms/LV) переменных.
После задания общего количества лингвистических переменных с помощью нажатия кнопки Next можно перейти к следующим диалоговым окнам мастера нечеткого проекта для спецификации параметров или свойств отдельных входных лингвистических переменных. При этом для каждой из входных переменных будет открыто отдельное диалоговое окно (рис. 19.10).
Рис. 19.10. Диалоговое окно мастера нечеткого проекта FDW для спецификации входных лингвистических переменных
В диалоговом окне спецификации свойств входных лингвистических переменных можно изменить следующие параметры, предложенные программой fuzzyTECH по умолчанию: имя лингвистической переменной (Name — ini), диапазон изменения значений лингвистической переменной (Range From), количество термов лингвистической переменной (Number of Terms), а также выбрать имена этих термов (Term Names) из предложенного мастером списка.
Примечание
Следует заметить, что количество вариантов имен термов и сами эти имена в списке зависят от заданного общего количества термов у соответствующей лингвистической переменной.
После спецификации свойств отдельных входных лингвистических переменных с помощью нажатия кнопки Next можно перейти к аналогичным диалоговым окнам мастера нечеткого проекта для спецификации параметров или свойств отдельных выходных и промежуточных лингвистических переменных. При этом для каждой из выходных переменных также будет открыто отдельное диалоговое окно (рис. 19.11).
Рис. 19.11. Диалоговое окно мастера нечеткого проекта FDW для спецификации выходных лингвистических переменных
После спецификации свойств всех лингвистических переменных с помощью нажатия кнопки Next можно перейти к диалоговому окну для спецификации метода дефаззификации создаваемого прототипа системы нечеткого вывода (рис. 19.12).
Рис. 19.12. Диалоговое окно мастера нечеткого проекта FDW для спецификации метода дефаззификации
В диалоговом окне спецификации метода дефаззификации можно либо согласиться с методом центра максимума (Best Compromize (СоМ: uesd in most control applications)), предлагаемым мастером по умолчанию для большинства приложений нечеткого управления, либо изменить его на метод среднего максимума (Most Plausible Result (МоМ: used in recognition applications)), который рекомендуется использовать в приложениях распознавания образов.
После выбора метода дефаззификации с помощью нажатия кнопки Next можно перейти к последнему диалоговому окну мастера нечеткого проекта для спецификации блоков правил нечетких продукций (рис. 19.13).
Рис. 19.13. Диалоговое окно мастера нечеткого проекта FDW для спецификации блока правил проекта
В диалоговом окне спецификации блоков правил можно задать общее количество блоков правил (Rule Blocks), сгенерировать полное множество правил на основе комбинации всех термов лингвистических переменных проекта (оставить флажок Create Rule Base). Здесь также можно задать значение весовых коэффициентов правил (User-defined DoS Value) либо выбрать вариант случайного задания их значений (Random DoS Value).
После спецификации блоков правил нечетких продукций создаваемого проекта с помощью нажатия кнопки Next и подтверждения будет создан прототип системы нечеткого вывода, структура которого будет изображена в окне редактора проекта (рис. 19.14).
Для быстрого создания стандартного прототипа нового проекта системы нечеткого вывода можно воспользоваться упрощенным вариантом мастера нечеткого проекта, который может быть вызван с помощью операции главного ме-
ню File>New или с помощью соответствующей кнопки панели инструментов программы fuzzyTECH (см. табл. 18.3).
Рис. 19.14. Графический вид редактора проекта с новой системой нечеткого вывода, созданной с помощью мастера нечеткого проекта FDW
При вызове упрощенного мастера быстрого создания прототипа нечеткого проекта будет открыто единственное диалоговое окно спецификации общих свойств создаваемого нечеткого проекта (рис. 19.15).
Рис. 19.15. Диалоговое окно быстрого создания стандартного прототипа нового нечеткого проекта
В диалоговом окне быстрого создания стандартного прототипа нечеткого проекта можно задать количество входных и выходных лингвистических переменных проекта, количество блоков правил, а также общее количество термов входных и выходных переменных. При необходимости можно использовать внешний файл с некоторой выборкой данных для спецификации функций принадлежности термов лингвистических переменных.
После спецификации общих свойств создаваемого нечеткого проекта и нажатия кнопки ОК будет создан прототип системы нечеткого вывода, структура которой будет изображена в окне редактора проекта аналогично структуре, изображенной на рис. 19.14. После создания прототипов систем нечеткого вывода при необходимости редактирования свойств их отдельных компонентов можно воспользоваться рассмотренными ранее графическими средствами редактирования.
В завершение рассмотрения особенностей мастера нечеткого проекта следует заметить, что нажатие кнопки End в любом из диалоговых окон этого мастера закрывает данный мастер и завершает процесс создания прототипа нового нечеткого проекта. При этом все свойства на оставшихся не рассмотренными диалоговых окнах мастера для нового проекта принимаются равными предложенным программой fuzzyTECH по умолчанию.
В свою очередь нажатие кнопки Previous в любом из диалоговых окон (кроме первого) возвращает к предыдущему диалоговому окну данного мастера. Нажатие кнопки Help в любом из диалоговых окон открывает раздел справочной системы, посвященный соответствующему диалоговому окну, а нажатие кнопки Cancel закрывает мастер нечеткого проекта, отказываясь от создания соответствующего прототипа.
Мастер лингвистической переменной
Мастер лингвистической переменной предназначен для быстрого создания новой лингвистической переменной и позволяет специфицировать все ее основные свойства или параметры. Мастер лингвистической переменной реализован в форме последовательности диалоговых окон, каждое из которых служит для спецификации отдельных свойств вновь создаваемой лингвистической переменной.
Мастер лингвистической переменной может быть вызван с помощью операции главного меню EdiONew Variable..., а также с помощью соответствующей операции контекстного меню редактора проекта или одновременным нажатием клавиш <Ctrl>+<V> на клавиатуре.
В результате вызова мастера лингвистической переменной будет открыто первое окно из последовательности диалоговых окон спецификации свойств новой лингвистической переменной (рис. 19.16).
В первом диалоговом окне разработчику предлагается изменить имя вновь создаваемой лингвистической переменной, предложенное мастером по умолчанию (в поле Name) и выбрать тип этой переменной: входная (Input Interface), выходная (Output Interface) или промежуточная (Intermediate). Секция справа служит для спецификации метода фаззификации вновь создаваемой переменной. При
необходимости можно выбрать любой из 4 методов либо остановиться на стандартном (Compute MBF), предложенное мастером по умолчанию. Кнопка Color служит для задания цвета отображения создаваемой переменной, который используется в графическом окне режима отладки.
Рис. 19.16. Первое диалоговое окно мастера лингвистической переменной
После спецификации свойств лингвистической переменной в первом диалоговом окне мастера с помощью нажатия кнопки Next можно перейти ко второму диалоговому окну мастера лингвистической переменной (рис. 19.17).
Во втором диалоговом окне разработчику предлагается задать диапазон изменения значений создаваемой лингвистической переменной: ее минимальное значение (Min), максимальное значение (Мах), и значение, принимаемое по умолчанию в режиме отладки (Default). В поле Unit можно ввести наименование единиц измерения данной лингвистической переменной (только на английском).
После этого с помощью нажатия кнопки Next можно перейти к третьему диалоговому окну мастера лингвистической переменной (рис. 19.18) для спецификации общих свойств функций принадлежности ее термов.
В третьем диалоговом окне разработчику предлагается задать общее количество термов новой лингвистической переменная (Number) и выбрать их стандартные имена из вложенного списка (Names). В этом окне разработчик может также уточнить общую форму функций принадлежности термов создаваемой лингвистической переменной. Для этого можно выбрать вариант задания функций при-
надлежности термов с равенством 1 (High Shoulder — рекомендуется для входных переменных) либо 0 (Low Shoulder — рекомендуется для выходных переменных) для всех наименьших и наибольших значений лингвистической переменной. При этом можно изменить положение мод отдельных функций принадлежности относительно ширины диапазона значений лингвистической переменной (Width), для чего удобно воспользоваться расположенным ниже регулятором.
Рис. 19.17. Второе диалоговое окно мастера лингвистической переменной
В дополнение к этому можно изменить симметричность линейных функций принадлежности относительно их модальных значений (Symmetric/Asymmetrical). При выборе первого варианта функции принадлежности термов являются симметричными относительно центра интервала значений лингвистической переменной. Дополнительно можно изменить положение мод отдельных функций принадлежности относительно ширины диапазона значений лингвистической переменной, задавая необходимое значение коэффициента (Factor) в интервале значений [0, 500]. При этом значению Factor = 0 соответствует симметричная форма кусочно-линейных кривых, а положительные значения Factor > 0 приближают моды функций принадлежности к оси симметрии.
Для случая выбора асимметричных функций принадлежности можно задать необходимое значение коэффициента (Factor) в интервале значений -500, 500]. При этом значению Factor = 0 по-прежнему соответствует симметричная форма кусочно-линейных кривых, положительные значения Factor > 0 смещают моды функций принадлежности вправо, а отрицательные значения Factor < 0 смещают
моды функций принадлежности вправо. Для изменения значений этого коэффициента также удобно воспользоваться расположенным ниже регулятором.
Рис. 19.18. Третье диалоговое окно мастера лингвистической переменной
Контроль настройки общей формы функций принадлежности создаваемой лингвистической переменной осуществляется с помощью графиков соответствующих кривых в окне предварительного просмотра (Preview).
После задания общей формы функций принадлежности с помощью нажатия кнопки Next можно перейти к четвертому и последнему диалоговому окну мастера лингвистической переменной (рис. 19.19).
В этом диалоговом окне разработчику предлагается ввести текстовое описание имени переменной (Variable Name Explanation) и комментарий (Comment) вновь создаваемой лингвистической переменной. При этом возможен ввод символов кириллицы, которые корректно отображаются аналогично тексту на английском в форме всплывающей подсказки при выделении соответствующей лингвистической переменной в окне просмотра структуры проекта после добавления этой переменной к разрабатываемому проекту.
После спецификации блоков правил нечетких продукций создаваемого проекта с помощью нажатия кнопки Next или End будет создана новая лингвистическая переменная и добавлена к системе нечеткого вывода в окне редактора проекта (рис. 19.20). Для дальнейшего использования созданной лингвистической переменной следует воспользоваться мастером блока правил или окном свойств соответствующего блока правил.
Рис. 19.19. Четвертое диалоговое окно мастера лингвистической переменной
Рис. 19.20. Графический вид редактора проекта с добавленной к нему новой лингвистической переменной
В завершение рассмотрения особенностей мастера лингвистической переменной следует заметить, что нажатие кнопки End в любом из диалоговых окон этого мастера закрывает данный мастер и завершает процесс создания новой переменной. При этом все свойства на оставшихся не рассмотренными диалоговых ок-
нах мастера этой лингвистической переменной принимаются по умолчанию, предложенные программой fuzzyTECH.
В свою очередь нажатие кнопки Previous в любом из диалоговых окон (кроме первого) возвращает к предыдущему диалоговому окну данного мастера. Нажатие кнопки Help в любом из диалоговых окон открывает раздел справочной системы, посвященный соответствующему диалоговому окну, нажатие кнопки Cancel закрывает мастер лингвистической переменной.
Мастер блока правил
Мастер блока правил предназначен для создания нового блока правил и позволяет специфицировать все его основные свойства или параметры. Мастер блока правил также реализован в форме последовательности диалоговых окон, каждое из которых служит для спецификации отдельных свойств компонентов создаваемого блока правил.
Мастер блока правил может быть вызван с помощью операции главного меню Edit>New Rule Block..., а также с помощью соответствующей операции контекстного меню редактора проекта или одновременным нажатием клавиш <Ctrl>+<R> на клавиатуре.
В результате вызова мастера блока правил будет открыто первое окно из последовательности диалоговых окон спецификации свойств нового блока правил (рис. 19.21).
Рис. 19.21. Первое диалоговое окно мастера блока правил
В первом диалоговом окне разработчику предлагается определить в поле Rule Block Name имя вновь создаваемого блока правил или оставить без изменения предложенное мастером по умолчанию (RB2), а также определить входные и выходные лингвистические переменные создаваемого блока правил. Для этой цели следует выделить имя лингвистической переменной в секции слева и нажать кнопку >Input> для спецификации этой переменной в качестве входной или кнопку >Output> для спецификации этой переменной в качестве выходной. После нажатия одной из этих кнопок имя выделенной лингвистической переменной переносится в соответствующую секцию имен входных или выходных переменных справа.
Если оставить флажок Create Rule Base установленным, то мастер блока правил сгенерирует полное множество правил на основе комбинации всех термов лингвистических переменных этого блока правил. В противном случае для создаваемого блока правил будет определено пустое множество правил нечетких продукций.
После спецификации входных и выходных лингвистических переменных создаваемого блока правил в первом диалоговом окне мастера с помощью нажатия кнопки Next можно перейти ко второму диалоговому окну данного мастера (рис. 19.22).
Рис. 19.22. Второе диалоговое окно мастера блока правил
Во втором диалоговом окне разработчику предлагается специфицировать операции агрегирования подусловий для всех правил создаваемого блока правил.
В первом случае (Min) для операции агрегирования используется формула (18.1). Если при этом параметр компенсации Х=0, то подусловия соединяются с помощью нечеткой операции И, если же параметр компенсации 2 = 1, то подусловия соединяются с помощью нечеткой операции ИЛИ.
Во втором случае (Min Avg) для операции агрегирования используется формула (18.2). Если при этом параметр компенсации 2 = 1, то для вычисления результата агрегирования подусловий используется операция арифметического среднего.
Наконец, в третьем случае (Gamma) для операции агрегирования используется формула (18.3). Если при этом параметр компенсации у=0, то для вычисления результата агрегирования подусловий используется операция алгебраического произведения. При этом можно изменять значения параметров компенсации 2. и у, для чего удобно воспользоваться расположенным ниже регулятором.
Контроль настройки операций агрегирования создаваемого блока правил осуществляется с помощью графиков соответствующих кривых операций в окне просмотра (Operator Plot).
Нижняя часть этого диалогового окна предназначена для спецификации результата агрегирования (Result Aggregation) или композиции правил для получения окончательных значений функции принадлежности термов заключений. В первом случае (Мах) для операции композиции используется операция максимума, а во втором случае (BSum) — операция ограниченной суммы.
После этого с помощью нажатия кнопки Next можно перейти к третьему диалоговому окну мастера лингвистической переменной (рис. 19.23) для задания количественных значений степени влияния отдельных входных лингвистических переменных на выходные лингвистические переменные.
В диалоговом окне спецификации степени влияния каждой из входных лингвистических переменных на выходную переменную блока правил разработчику предлагается выбор из следующего множества значений: Very Negative, Negative, Not at All, Positive, Very Positive. При необходимости можно вовсе исключить влияние указанной входной лингвистической переменной на выходную, сбросив флажок <inl> has an influence on <outl>.
После спецификации степени влияния всех входных переменных на выходные переменные создаваемого блока правил с помощью нажатия кнопки Next можно перейти к последнему диалоговому окну мастера блока правил (рис. 19.24).
В этом диалоговом окне разработчику предлагается ввести текстовый комментарий (Comment for Rule Block) для вноьь создаваемого блока правил. При этом также возможен ввод символов кириллицы, которые корректно отображаются аналогично тексту на английском в форме всплывающей подсказки при выделении соответствующего блока правил в окне просмотра структуры проекта после добавления этого блока правил к разрабатываемому проекту.
После спецификации всех свойств нового блока правил нечетких продукций с помощью нажатия кнопки Next или End будет создан новый блок правил и добавлен к системе нечеткого вывода в окне редактора проекта (рис. 19.25).
Рис. 19.23. Диалоговое окно спецификации степени влияния каждой из входных лингвистических переменных на выходную переменную блока правил
Рис. 19.25. Графический вид редактора проекта с добавленным к нему новым блоком правил
В завершение рассмотрения особенностей мастера блока правил следует заметить, что нажатие кнопки End в любом из диалоговых окон этого мастера закрывает данный мастер и завершает процесс создания нового блока правил. При этом все свойства на оставшихся не рассмотренными диалоговых окнах мастера для нового блока правил принимаются равными по умолчанию, предложенными программой fuzzyTECH.
В свою очередь нажатие кнопки Previous в любом из диалоговых окон (кроме первого) возвращает к предыдущему диалоговому окну данного мастера. Нажатие кнопки Help в любом из диалоговых окон открывает раздел справочной системы, посвященный соответствующему диалоговому окну, а нажатие кнопки Cancel закрывает мастер блока правил.
Примеры использования графических средств создания, редактирования и анализа разработанных проектов систем нечеткого вывода в среде fuzzyTECH для некоторых задач управления и принятия решений приводятся в главе 20.
Глава 20
Примеры разработки и анализа нечетких моделей в среде fuzzyTECH
В настоящей главе рассматриваются примеры нечетких моделей, которые иллюстрируют особенности практического применения различных инструментов программы fuzzyTECH.
Первый из примеров нечетких моделей, известный под именем "Чаевые в ресторане", стал уже в некоторой степени классическим, поскольку довольно часто используется в литературе для иллюстрации общих свойств систем нечеткого вывода. В дополнение к этому построенная средствами fuzzyTECH соответствующая нечеткая модель может быть использована для сравнительного анализа возможностей системы MATLAB и программы fuzzyTECH.
Второй прием также традиционно используется для демонстрации особенностей задач нечеткого управления. Речь идет о построении в среде fuzzyTECH нечеткой модели управления контейнерным краном. Соответствующая нечеткая модель также может быть использована для сравнительного анализа возможностей системы MATLAB и программы fuzzyTECH.
Наконец, третий пример представляет собой оригинальную нечеткую модель, разработанную компанией INFORM GmbH для решения проблемы оценивания финансовой состоятельности клиентов со стороны банков при выдаче долгосрочных кредитов на строительство недвижимости под залог. Содержательная постановка и нечеткая модель этой задачи для среды MATLAB были рассмотрены ранее.
.1. Пример разработки системы нечеткого вывода для задачи " Чаевые в ресторане11
В качестве первого примера разработки системы нечеткого вывода в интерактивном режиме с помощью графических средств программы fuzzyTECH рас-
смотрим построение нечеткой модели для примера 12.1 "Чаевые в ресторане". Выбор примера сделан исключительно из методических соображений с целью сравнения возможностей программных сред нечеткого моделирования fuzzyTECH и MATLAB, поскольку соответствующая нечеткая модель входит в число демонстрационных примеров системы MATLAB. Содержательная постановка данной задачи и соответствующая нечеткая модель были рассмотрены в главе 12.
В качестве входных переменных системы нечеткого вывода будем рассматривать 2 нечеткие лингвистические переменные: "Service" (качество обслуживания) и "Food' (качество приготовления заказанных блюд или сокращенно — качество ужина), а в качестве выходной переменной — нечеткую лингвистическую переменную "Tip" (величина чаевых).
Примечание
Поскольку программа fuzzyTECH не позволяет задавать русскоязычные имена компонентам нечеткой модели, здесь используются соответствующие имена из оригинального демонстрационного примера системы MATLAB.
В качестве терм-множества первой лингвистической переменной "Service" используется множество Tv=("poor” (плохое), "good' (хорошее), "excellent" (отличное)}, а в качестве терм-множества второй лингвистической переменной "Food' используется множество Т2=(” rancid’ (подгоревший), "delicious" (превосходный)}. В качестве терм-множества выходной лингвистической переменной "Tip" используется множество Тз=(” cheap" (малые), "average” (средние), "generous" (щедрые)}.
Как и ранее, каждый из термов первой и второй входной переменной (качество обслуживания и приготовления заказанных блюд) будем оценивать по 10балльной порядковой шкале, при которой цифре 0 соответствует наихудшая оценка, а цифре 10 — наилучшая оценка. Что касается термов выходной переменной, то как и ранее будем предполагать, что малые чаевые составляют около 5% от стоимости заказанных блюд, средние чаевые — около 15%, а щедрые чаевые — около 25%.
Субъективная информация о величине чаевых представляется в форме следующих трех правил нечетких продукций (система нечеткого вывода типа Мамдани):
ПРАВИЛО_1: IF {'Service is poor") OR ("Food is rancid'} THEN ("Tip is cheap"}
ПРАВИЛО_2: IF (’’Service is good'} THEN ("Tip is average"}
ПРАВИЛО-3: IF {’Service is excellent"} OR ("FooJ is delicious"} THEN {'Tip is generous”} Процесс разработки системы нечеткого вывода в среде fuzzyTECH для примера "Чаевые в ресторане" состоит в выполнении следующей последовательности действий:
Откроем мастер нечеткого проекта FDW (Fuzzy Design Wizard). Для этого можно воспользоваться специальной кнопкой на панели инструментов программы fuzzyTECH (см. табл. 18.3). В первом окне мастера нечеткого проекта
согласимся с предложенным по умолчанию вариантом создания новой системы нечеткого вывода (Create New System) и перейдем ко второму диалоговому окну мастера.
Во втором диалоговом окне мастера проекта зададим количество входных (Input LVs = 2), выходных (Output LVs = I) и промежуточных (Intermediate LVs = 0) лингвистических переменных проекта, а также общее количество термов входных (Input Terms/LV = 3), выходных (Output Terms/LV = 3) и промежуточных (Interm. Terms/LV = 0) переменных (рис. 20.1). После этого перейдем к следующему диалоговому окну.
Рис. 20.1. Второе окно мастера нечеткого проекта
В следующих диалоговых окнах мастера нечеткого проекта изменим имена входных и выходной лингвистических переменных, предлагаемые программой fuzzyTECH по умолчанию, и диапазоны изменения их значений. Результат изменения имени первой входной лингвистической переменной и диапазона ее значений для создаваемого проекта изображен на рис. 20.2.
В последующих диалоговых окнах оставим без изменения свойства, предложенные программой fuzzyTECH по умолчанию: метод дефаззификации — центр максимума (Best Compromize, СоМ) и количество блоков правил, равное I. После окончания работы с мастером нечеткого проекта будет создан прототип системы нечеткого вывода. Структура системы нечеткого вывода с измененными значениями текстовых блоков изображена на рис. 20.3.
Далее необходимо более точно специфицировать термы и их функции принадлежности для входных и выходной лингвистических переменных разрабатываемой системы нечеткого вывода, для чего следует воспользоваться редактором лингвистической переменной. Для первой входной лингвистической
переменной изменим имена заданных ранее по умолчанию термов. Новые имена термов вводятся в окне свойств терма, которое может быть открыто с помощью соответствующей операции контекстного меню.
Вид редактора лингвистической переменной в процессе изменения имени первого терма для первой из входных переменных изображен на рис. 20.4.
Рис. 20.2. Вид диалогового окна мастера нечеткого проекта для первой из входных лингвистических переменныхРис. 20.2. Вид диалогового окна мастера нечеткого проекта для первой из входных лингвистических переменныхк Project Editorк Project EditorЧаевые в ресторанеЧаевые в ресторанеВходные переменныеВходные переменныеБлок правилБлок правилRB1RB1ServiceServiceServiceService(выходная переменная](выходная переменная]TipMin/MsATipMin/MsA■{Tip■{Tip
Рис. 20.2. Вид диалогового окна мастера нечеткого проекта для первой из входных лингвистических переменных
Рис. 20.2. Вид диалогового окна мастера нечеткого проекта для первой из входных лингвистических переменных
к Project Editor
к Project Editor
Чаевые в ресторане
Чаевые в ресторане
Входные переменные
Входные переменные
Блок правил
Блок правил
RB1
RB1
Service
Service
Service
Service
(выходная переменная]
(выходная переменная]
Tip
Min/MsA
Tip
Min/MsA
■{Tip
■{Tip
Рис. 20.3. Вид редактора проекта после создания прототипа системынечеткого вывода с помощью мастера нечеткого проекта
Рис. 20.4. Окно свойств термов первой из входных лингвистических переменных
Далее изменим форму и значения функций принадлежности термов первой входной лингвистической переменной. Для этого следует выбрать 5-образную форму кривых в окне свойств каждого терма и задать коэффициент кривизны кривой равным 0.8.
Вид редактора функций принадлежности после внесенных изменений для первой входной лингвистической переменной изображен на рис. 20.5.
Рис. 20.5. Вид редактора лингвистической переменной после изменения названия термов и типа их функций принадлежности для первой входной переменной "Service"
Аналогичным образом изменим названия термов второй входной переменной "Food" и удалим один из термов с соответствующей функцией принадлежности. Для удаления терма следует выделить удаляемую функцию принадлежности и нажать клавишу <Delete> на клавиатуре. Вид редактора лингвистической переменной после внесенных изменений для второй входной лингвистической переменной изображен на рис. 20.6.
Рис. 20.6. Вид редактора лингвистических переменных после изменения названия термов и типа их функций принадлежности для второй входной переменной "Food”
Наконец, изменим названия термов и вид функций принадлежности для выходной переменной "Tip", оставив без изменения треугольный тип функций принадлежности, предложенный программой fuzzyTECH. Вид редактора лингвистической переменной после сделанных изменений для выходной переменной "Tip" изображен на рис. 20.7.
Теперь можно определить базу правил для разрабатываемой системы нечеткого вывода. Для этой цели можно воспользоваться табличным редактором блока правил. Поскольку первоначально база правил нечеткого вывода пуста, то после вызова табличного редактора правил центральное окно этого редактора не содержит никаких правил. Для их определения следует использовать кнопку Full Rule Block панели инструментов, после нажатия на которую будет сгенерирована база из 18 правил нечетких продукций. Удалим избыточные правила и один из термов подусловий для лингвистической переменной "Food".
Вид табличного редактора блока правил после его определения для разрабатываемой системы нечеткого вывода изображен на рис. 20.8.
Поскольку процесс нечеткого моделирования предполагает анализ результатов нечеткого вывода при различных значениях входных переменных с целью установления адекватности разработанной нечеткой модели, перейдем в
интерактивный режим отладки. После появления графического окна режима отладки откроем также окна редакторов всех лингвистических переменных проекта и графическое окно анализатора правил.
Внешний вид рабочего интерфейса программы fuzzyTECH в режиме отладки проекта "Чаевые в ресторане" изображен на рис. 20.9.
Рис. 20.7. Вид редактора лингвистической переменной после изменения названия термов и типа их функций принадлежности для выходной переменной "Tip"
Рис. 20.8. Вид редактора правил нечетких продукций после внесения изменений в блок правил проекта
Для окончательного анализа разработанной нечеткой модели можно воспользоваться графическим окном просмотра поверхности нечеткого вывода на плоскости (рис. 20.10, o') и графическим окном просмотра трехмерной поверхности нечеткого вывода (рис. 20.10, б).
Эти графические окна могут служить для общего анализа адекватности нечеткой модели, позволяя оценить влияние изменения значений входных нечетких переменных на значение одной из выходных нечетких переменных.
Рис. 20.9. Вид рабочего интерфейса программы fuzzyTECH в режиме отладки проекта "Чаевые в ресторане"
Изображенные графики поверхности нечеткого вывода и эксперименты с разработанной нечеткой моделью показывают, что ее точность оставляет желать лучшего. Действительно, существуют такие области значений входных лингвистических переменных, в которых малые изменения значений входных переменных модели приводят к большим (скачкообразным) изменениям значений выходной лингвистической переменной. Указанный факт свидетельствует о недостаточной устойчивости (робастности) разработанной нечеткой модели. Одним из путей повышения устойчивости и адекватности модели в целом может быть увеличение базы правил нечеткого вывода и уточнение функций принадлежности отдельных термов, что предлагается выполнить читателям самостоятельно в качестве упражнения.
Заканчивая рассмотрение процесса разработки простейшей нечеткой модели для примера 12.1 "Чаевые в ресторане", следует отметить, что в демонстрационной версии невозможно сохранить разработанный проект во внешнем файле на диске. Однако тот факт, что программа fuzzyTECH сохраняет нечеткие проекты в обычных текстовых файлах формата FTL, подсказывает идею, как можно сохранить нечеткий проект, разработанный в среде fuzzyTECH.
Идея заключается в том, чтобы разработку прототипа системы нечеткого вывода проводить в форме создания соответствующего текстового файла нечеткого проекта. Для этого можно воспользоваться одним из текстовых ASCII-
редакторов. Что касается языка формата FTL, используемого для задания параметров нечеткого проекта в среде fuzzyTECH, то этот язык очень похож на язык нечеткого управления FCL (см. главу 7).
Рис. 20.10. Вид поверхности нечеткого вывода на плоскости (а) трехмерной поверхности (б) для разработанной нечеткой модели в интерактивном режиме отладки
Примечание ^J
В случае примера "Чаевые в ресторане" текст соответствующего файла проекта системы нечеткого вывода в формате FTL приводится в приложении 4.
Этот файл можно загрузить в демонстрационную версию программы fuzzyTECH и использовать для выполнения всех необходимых расчетов. Аналогичным образом можно поступить при решении других задач нечеткого моделирования, однако трудоемкость процесса разработки нечетких проектов в этом случае существенно возрастает.
Нечеткая модель управления контейнерным краном
Напомним, что эта задача связана с процессом управления контейнерным краном, который используется для транспортировки моноблочных контейнеров при выполнении разгрузочных работ морских судов в порту. Суть задачи состоит в том, чтобы разработать модель, позволяющую автоматически управлять процессом горизонтального перемещения контейнерного крана, исключив или добившись минимального раскачивания транспортируемых контейнеров при подобном перемещении.
Содержательная постановка этой задачи была рассмотрена в разд. 7.4, а нечеткая модель для среды MATLAB была построена в разд. 16.2.
Для анализа этой модели в среде fuzzyTECH целесообразно воспользоваться соответствующим примером, поставляемым вместе с демонстрационной версией программы. С этой целью в редактор проекта необходимо загрузить файл соответствующего проекта: Crane.ftl, который расположен в папке C:\Program Files\ fuzzyTECH 5.5\Dde\VB5 (если программа fuzzyTECH установлена на диске С:).
Вид графического окна редактора проекта для этой нечеткой модели изображен на рис. 20.11.
Рис. 20.11. Графическое окно редактора проекта для системы нечеткого вывода управления контейнерным краном в порту
В качестве первой входной лингвистической переменной данной нечеткой модели используется лингвистическая переменная "Angle" (угол), в качестве второй входной лингвистической переменной используется лингвистическая переменная "Distance" (расстояние). В качестве выходной лингвистической переменной данной нечеткой модели используется лингвистическая переменная "Power” (мощность).
В качестве терм-множества первой лингвистической переменной используется множество Т\= V’neg_big", "neg_small", "zero", "pos_small" , "posjbig"}. Графики функций принадлежности термов из Т\ изображены на рис. 20.12, а. В качестве терм-множества второй лингвистической переменной используется множество Ti= {"neg_close", "zero", "close", "medium" , "far"}. Графики функций принадлежности термов из 7г изображены на рис. 20.12, б.
Рис. 20.12. Вид редактора лингвистических переменных для первой входной переменной "Angle" и второй входной переменной "Distance"
В качестве терм-множества выходной лингвистической переменной используется множество Ts^'neg-high", "negjnedium", "zero", "pos_medium" , "posjugh"}. Графики функций принадлежности термов из 7з изображены на рис. 20.13.
Рис. 20.13. Вид редактора лингвистических переменных для выходной переменной "Power"
Блок правил рассматриваемой системы нечеткого вывода содержит 9 правил нечетких продукций. Вид графического окна табличного редактора блока правил системы нечеткого вывода управления контейнерным краном изображен на рис. 20.14.
Рис. 20.14. Графический интерфейс редактора блока правил системы нечеткого вывода управления контейнерным краном
Теперь можно выполнить анализ данной системы нечеткого вывода для задачи управления контейнерным краном в порту. С этой целью перейдем в интерактивный режим отладки и дополнительно откроем окно анализатора правил. Внешний вид рабочего интерфейса программы fuzzyTECH в режиме отладки проекта "Управление контейнерным краном" изображен на рис. 20.15.
Рис. 20.15. Вид рабочего интерфейса программы fuzzyTECH в режиме отладки проекта "Управление контейнерным краном"
Для общего анализа рассматриваемой нечеткой модели можно воспользоваться графическим окном просмотра поверхности нечеткого вывода на плоскости (рис. 20.16, а) и графическим окном просмотра трехмерной поверхности нечеткого вывода (рис. 20.16, б).
Данная поверхность нечеткого вывода позволяет установить зависимость значений выходной переменной от значении входных переменных нечеткой модели системы управления краном. Эта зависимость может послужить основой для программирования контроллера или аппаратной реализации соответствующего нечеткого алгоритма управления в форме соответствующей таблицы решений.
Сравнительный анализ нечетких моделей управления контейнерным краном, построенных в средах MATLAB (см. главу 16) и fuzzyTECH, показывает, что увеличение правил нечетких продукций с 6 до 9 не приводит к заметному увели-
чению адекватности модели. С другой стороны, наличие разрывов на поверхности нечеткого вывода (рис. 20.16, б) может служить причиной неустойчивости данной нечеткой модели fuzzyTECH, на что необходимо обратить внимание пользователей и разработчиков соответствующих систем управления.
Рис. 20.16. Вид поверхности нечеткого вывода на плоскости (а) трехмерной поверхности (б) в интерактивном режиме отладки для разработанной нечеткой модели "Управление контейнерным краном"
Нечеткая модель оценивания финансовой состоятельности клиентов при предоставлении банковских кредитов
Данная задача была сформулирована и решена в рамках исследования, выполненного фирмой.INFORM GmbH. Содержательная постановка этой задачи была рассмотрена ранее в разд. 17.1. Там же была построена модель соответствующей системы нечеткого вывода в среде MATLAB. Аналогичная нечеткая модель в среде fuzzyTECH может служить примером использования нескольких блоков правил и промежуточных лингвистических переменных. В то же время непосредственная реализация нечетких моделей с несколькими блоками правил в среде MATLAB без использования средств пакета моделирования Simulink не представляется возможной.
Для анализа этой модели в среде fuzzyTECH целесообразно воспользоваться соответствующим оригинальным примером, поставляемым вместе с демонстрационной версией программы. С этой целью в редактор проекта необходимо загрузить файл соответствующего проекта: Realest.ftl, который расположен в папке C:\Program Files\fuzzyTECH 5.5\SAMPLES\BUSINESS\REALEST (если программа fuzzyTECH установлена на диске С:).
Вид графического окна редактора проекта для этой нечеткой модели изображен на рис. 20.17.
Рис. 20.17. Графическое окно редактора проекта для системы нечеткого вывода принятия решений по предоставлению кредитов
В качестве первой входной лингвистической переменной данной нечеткой модели используется лингвистическая переменная "Location” (местоположение), в качестве второй входной лингвистической переменной используется лингвистическая переменная "Workmanship" (отделка). В качестве третьей входной лингвистической переменной используется лингвистическая переменная "Asset" (активы), в качестве четвертой входной лингвистической переменной используется лингвистическая переменная "Income" (доход) и, наконец, в качестве пятой входной лингвистической переменной используется лингвистическая переменная "Interest" (выплаты).
В качестве выходной лингвистической переменной данной нечеткой модели используется лингвистическая переменная "Credit" (кредитоспособность).
В качестве терм-множества первой входной лингвистической переменной "Location" используется множество T\-}"bad", "fair", "best"} с функциями принадлежности термов, изображенными на рис. 20.18, а.
В качестве терм-множества второй входной лингвистической переменной "Workmanship” используется множество Ti=\"i°usy" •> "fair", "pretty_good”} с функциями принадлежности термов, изображенными на рис. 20.18, б.
В качестве терм-множества третьей входной лингвистической переменной "Asset” используется множество Тз=}"км", "medium”, "high”} с функциями принадлежности термов, изображенными на рис. 20.19, а.
В качестве терм-множества четвертой входной лингвистической переменной "Income” используется множество T4=}"low", "medium", "high”} с функциями принадлежности термов, изображенными на рис. 20.19, б.
Рис. 20.18. Графики функций принадлежности для термов лингвистической переменной "Location" (а)
Рис. 20.18. Графики функций принадлежности для термов лингвистической переменной "Workmanship'’ (6)
В качестве терм-множества пятой входной лингвистической переменной "Interest" используется множество Г5={"/щт", "medium", "high"} с функциями принадлежности термов, изображенными на рис. 20.20, а.
В качестве терм-множества выходной лингвистической переменной "Credit” используется множество Tb=}"very_low", "low", "medium", "high", "veryjdgh"} c функциями принадлежности термов, изображенными на рис. 20.20, б.
Рассматриваемая нечеткая модель содержит 4 блока правил, 2 из которых имеют промежуточные лингвистические переменные с именами соответствующих блоков правил.
Рис. 20.19. Графики функций принадлежности для термов лингвистической переменной "Asset" (а)
Рис. 20.19. Графики функций принадлежности для термов лингвистической переменной "Income" (б)
Первый блок правил с именем "Building" используется для промежуточной оценки общего качества местоположения и отделки и для рассматриваемой системы нечеткого вывода содержит 7 правил нечетких продукций. Входными лингвистическими переменными этого блока правил являются первые две входные лингвистические переменные проекта, а выходной лингвистической переменной этого блока правил является промежуточная переменная данного проекта с именем "Building".
Вид графического окна табличного редактора для этого блока правил изображен на рис. 20.21.
Рис. 20.20. Графики функций принадлежности для термов лингвистической переменной "Interest" (а)
Рис. 20.20. Графики функций принадлежности для термов лингвистической переменной "Credit" (б)
Рис. 20.21. Графическое окно табличного редактора первого блока правил с именем "Building"
Второй блок правил с именем "Applicant’s Assessment" используется для промежуточной оценки общего количества активов и доходов и для рассматриваемой системы нечеткого вывода содержит 9 правил нечетких продукций. Входными лингвистическими переменными этого блока правил являются третья и четвертая входные лингвистические переменные проекта, а выходной лингвистической переменной этого блока правил является промежуточная переменная данного проекта с именем "Applicant".
Вид графического окна табличного редактора для этого блока правил изображен на рис. 20.22.
Третий блок правил с именем "Evaluation of Credit Worthiness" используется для частичной итоговой оценки кредитоспособности потенциальных клиентов и для
рассматриваемой системы нечеткого вывода содержит 6 правил нечетких продукций. Входными лингвистическими переменными этого блока правил являются промежуточные лингвистические переменные проекта, а выходной переменной этого блока правил — выходная лингвистическая переменная проекта с именем "Credit".
Рис. 20.22. Графическое окно табличного редактора второго блока правил с именем "Applicant"
Вид графического окна табличного редактора для этого блока правил изображен на рис. 20.23.
Рис. 20.23. Графическое окно табличного редактора третьего блока правил с именем "Creditworthiness"
Наконец, четвертый блок правил с именем "Killer Criteria" используется для отрицательной оценки кредитоспособности потенциальных клиентов, когда выдача кредита клиенту практически исключается. Для рассматриваемой системы
нечеткого вывода этот блок правил содержит 3 правила нечетких продукций. Входными лингвистическими переменными этого блока правил являются промежуточные лингвистические переменные проекта, а выходной переменной этого блока правил — выходная лингвистическая переменная проекта с именем '’Credit”.
Вид графического окна табличного редактора для этого блока правил изображен на рис. 20.24.
Рис. 20.24. Графическое окно табличного редактора четвертого блока правил с именем "KillerCriteria"Рис. 20.24. Графическое окно табличного редактора четвертого блока правил с именем "KillerCriteria". . fuzzyTECH 5 52 Professional Demo - REALEST FTL. . fuzzyTECH 5 52 Professional Demo - REALEST FTL&6 '£dit V^w Debug Analyzer joofe. Window -ti^P:Q^SQ ^^-*tH| &0.EEJJi ^ tip^S:» $&6 '£dit V^w Debug Analyzer joofe. Window -ti^P:Q^SQ ^^-*tH| &0.EEJJi ^ tip^S:» $JehslJehsli Watch: Interactive Debug Mode 'i Watch: Interactive Debug Mode '50.6800 Units50.6800 Units50.0000 Units;50.0000 Units;50.0000 Units50.0000 Units60.0000 Units60.0000 Units37.50 OQ Units37.50 OQ UnitsSOODOCUnhsSOODOCUnhsmedium high ^ ix^jhtghmedium high ^ ix^jhtghЫ J? Ш <^*£ til*Ы J? Ш <^*£ til*[Credn§ ^ ’* * , 1 Й лCredfl ■ 37 5Units"Term " TS | IF | Agcjr. | DoS[Credn§ ^ ’* * , 1 Й лCredfl ■ 37 5Units"Term " TS | IF | Agcjr. | DoSvery_low - 0 33334 KillerCnt Income -Interest - ht 0 3331 00low = 0 00000 medium- 0 99986 Creditwo Applicant -Building -0 9991 00high - 0 00012 Creditwo Applicant -"Building -0 0001 00very_high - 0 000very_low - 0 33334 KillerCnt Income -Interest - ht 0 3331 00low = 0 00000 medium- 0 99986 Creditwo Applicant -Building -0 9991 00high - 0 00012 Creditwo Applicant -"Building -0 0001 00very_high - 0 000
Рис. 20.24. Графическое окно табличного редактора четвертого блока правил с именем "KillerCriteria"
Рис. 20.24. Графическое окно табличного редактора четвертого блока правил с именем "KillerCriteria"
. . fuzzyTECH 5 52 Professional Demo - REALEST FTL
. . fuzzyTECH 5 52 Professional Demo - REALEST FTL
&6 '£dit V^w Debug Analyzer joofe. Window -ti^P:
Q^SQ ^^-*tH| &0.EEJJi ^ tip^S:» $
&6 '£dit V^w Debug Analyzer joofe. Window -ti^P:
Q^SQ ^^-*tH| &0.EEJJi ^ tip^S:» $
Jehsl
Jehsl
i Watch: Interactive Debug Mode '
i Watch: Interactive Debug Mode '
50.6800 Units
50.6800 Units
50.0000 Units;
50.0000 Units;
50.0000 Units
50.0000 Units
60.0000 Units
60.0000 Units
37.50 OQ Units
37.50 OQ Units
SOODOCUnhs
SOODOCUnhs
medium high ^ ix^jhtgh
medium high ^ ix^jhtgh
Ы J? Ш <^*£ til*
Ы J? Ш <^*£ til*
[Credn§ ^ ’* * , 1 Й л
Credfl ■ 37 5Units"
Term " TS | IF | Agcjr. | DoS
[Credn§ ^ ’* * , 1 Й л
Credfl ■ 37 5Units"
Term " TS | IF | Agcjr. | DoS
very_low - 0 33334 KillerCnt Income -
Interest - ht 0 3331 00
low = 0 00000 medium- 0 99986 Creditwo Applicant -
Building -0 9991 00
high - 0 00012 Creditwo Applicant -
"Building -0 0001 00
very_high - 0 000
very_low - 0 33334 KillerCnt Income -
Interest - ht 0 3331 00
low = 0 00000 medium- 0 99986 Creditwo Applicant -
Building -0 9991 00
high - 0 00012 Creditwo Applicant -
"Building -0 0001 00
very_high - 0 000
Рис. 20.25. Вид рабочего интерфейса программы fuzzyTECHв режиме отладки проекта "Оценка кредитоспособности клиентов"
Для выполнения анализа данной системы нечеткого вывода перейдем в интерактивный режим отладки и дополнительно откроем окно анализатора правил. Внешний вид рабочего интерфейса программы fuzzyTECH в режиме отладки "Оценка кредитоспособности клиентов" изображен на рис. 20.25.
Для общего анализа рассматриваемой нечеткой модели можно воспользоваться графическими окнами просмотра поверхности нечеткого вывода на плоскости (рис. 20.26, а и 20.27, а) и графическими окнами просмотра трехмерной поверхности нечеткого вывода (рис. 20.26, б и 20.27, б).
Рис. 20.26. Вид поверхности нечеткого вывода на плоскости (а) трехмерной поверхности (б) в интерактивном режиме отладки для входных лингвистических переменных первого блока правил
Данные поверхности нечеткого вывода позволяют установить зависимость значений выходной переменной от значений отдельных входных переменных нечеткой модели. Анализ этих зависимостей может служить основанием для изменения функций принадлежности входных переменных или нечетких правил с целью повышения адекватности системы нечеткого вывода для конкретных стратегий банков.
Рис. 20.27. Вид поверхности нечеткого вывода на плоскости (а) трехмерной поверхности (б) в интерактивном режиме отладки для входных лингвистических переменных второго блока правил
Сравнительный анализ нечетких моделей оценки кредитоспособности клиентов, построенных в средах MATLAB (см. главу 17) и fuzzyTECH, показывает, что обе эти модели обладают одинаковой степенью адекватности, поскольку графики поверхностей нечеткого вывода соответствующих лингвистических переменных хорошо согласуются между собой. Отсутствие разрывов на поверхности нечеткого вывода может свидетельствовать об устойчивом характере данных нечетких моделей, что является одним из веских аргументов в пользу применения этих моделей в практике принятия решений при оценке кредитоспособности клиентов.
ЧАСТЬ IV
Приложения
Приложение 1
Основы классической теории множеств и отношений
Основы классической теории множеств как специального раздела математики были разработаны немецким математиком Георгом Кантором (1845—1918) в серии его работ в период 1871—1883 гг. Поскольку теория нечетких множеств является обобщением и дальнейшим развитием обычных множеств и отношений, в настоящем приложении рассматриваются основные теоретико-множественные понятия и обозначения, необходимые для понимания соответствующих конструкций теории нечетких множеств. При этом следует отметить, что сама теоретико-множественная терминология имеет непосредственное отношение не только к современным концепциям естествознания и методологии математических исследований, но и к адекватному описанию базовых концепций системного моделирования.
Множество и способы его задания
Исходным понятием теории множеств является само понятие множество, под которым принято понимать некоторую совокупность объектов, хорошо различимых нашей мыслью или интуицией. При этом не делается никаких априорных предположений ни о природе этих объектов, ни о способе их включения в данную совокупность. Отдельные объекты, составляющие то или иное множество, называют элементами данного множества. В классической теории множеств природа элементов, из которых состоят множества, не имеет принципиального значения. Предметом данной теории является изучение таких свойств множеств, которые не зависят от природы составляющих их элементов.
Вопрос "Почему мы рассматриваем ту или иную совокупность элементов как множество?" в классической теории множеств не требует ответа, поскольку в общее определение множества не входит никаких дополнительных условий на включение отдельных элементов в множество. Если нам хочется, например, рассмотреть множество, состоящее из трех элементов: "солнце, море, апельсин", то никто и ничто не сможет запретить это сделать. В то же время неявно предполагается, что границы множества должны быть четко определены, т. е. относительно любого элемента можно с полной определенностью сказать: принадлежит
ли он рассматриваемому множеству или нет. Именно этот аспект в определении множества послужил исходной предпосылкой для введения в рассмотрение нечетких множеств.
Можно привести много примеров конкретных множеств. Это множество квартир жилого дома, множество натуральных чисел, множество планет Солнечной системы, множество сотрудников коммерческой фирмы, множество субъектов Российской Федерации. Совокупность компьютеров в офисе тоже представляет собой множество, хотя, возможно, они и не соединены между собою в сеть. Множество живущих на планете людей, так же как и множество звезд на небосводе, тоже может служить примером множеств. В дальнейшем перечень примеров множеств будет продолжен по мере рассмотрения их отдельных свойств.
Примечание
Создается впечатление, что ситуация с заданием множеств более или менее очевидна. Но это впечатление обманчиво. Даже не говоря об известных парадоксах теории множеств, как быть с "множеством" мыслей отдельного человека? Или множеством всех красок, которые встречаются в природе? Именно такой нетрадиционный взгляд на неопределенность самого способа определения состава того или иного множества будет интересовать нас на всем протяжении книги. Вернее, наше внимание будет сосредоточено на таких ситуациях, когда идентификация состава отдельных множеств превращается в самостоятельную проблему. Как было отмечено выше, процесс нечеткого моделирования сопряжен с преодолением именно подобного рода трудностей.
Для записи множеств, их свойств и операций используются специальные обозначения. В общем случае сами множества принято обозначать прописными буквами латинского алфавита. При этом отдельные элементы множества, которые могут иметь различную природу, обозначаются строчными буквами, иногда с индексами, которые хотя и вносят некоторую упорядоченность в последовательность рассмотрения этих элементов, но не являются необходимым атрибутом их задания. Важно понимать, что какой бы то ни было порядок, вообще говоря, не входит в исходное определение множества, а может быть установлен на основе аксиоматизации свойств отношений.
П р и м е р П1.1. Рассмотрим в качестве простого примера множество квартир некоторого 100-квартирного жилого дома. В нашем контексте совершенно безразличны архитектурные особенности этого дома, район его месторасположения и планировка отдельных квартир. Именно в этом и проявляется абстрагирование теоретико-множественного подхода при построении концептуальных моделей той или иной предметной области. Это множество с использованием специальных обозначений можно записать следующим образом: Л={а1, т, аз,..., аюо}. Здесь фигурные скобки служат обозначением совокупности элементов, каждый из которых имеет свой уникальный числовой индекс. Важно понимать, что для данного конкретного множества элемент аю обозначает отдельную квартиру в рассматриваемом жилом доме. При этом вовсе не обязательно, чтобы номер этой квартиры был равен 10, хотя с точки зрения удобства — это было бы желательно.
Принято называть элементы отдельного множества принадлежащими данному множеству. Данный факт записывается с использованием специального символа "е", который так и называется— символом принадлежности. Например, запись пюеЛ означает тот простой факт, что отдельная квартира (возможно с номером 10) принадлежит рассматриваемому множеству квартир некоторого жилого дома. Если через оно обозначить квартиру с номером 110, то применительно к данному примеру она не входит в множество А, или, говоря более строго, не принадлежит этому множеству (рис. П1.1). Формально это записывается как аио^А, где символ "g" означает отрицание принадлежности элемента множеству. По определению кроме указанных квартир ь множество А не входят никакие другие объекты. Например, такие элементы, как дача и автомобиль, по определению не принадлежат множеству А.
Рис. П1.1. Условное изображение границы и элементов множества квартир А рассматриваемого примераРис. П1.1. Условное изображение границы и элементов множества квартир А рассматриваемого примера
Рис. П1.1. Условное изображение границы и элементов множества квартир А рассматриваемого примера
Рис. П1.1. Условное изображение границы и элементов множества квартир А рассматриваемого примера
Как следствие вышесказанного, с любым множеством можно связать или ассоциировать некоторую функцию, которая принимает значение I для каждого из элементов данного множества, и значение 0 — для всех остальных элементов, не входящих в рассматриваемое множество. Такая функция получила название характеристической функции множества. С использованием специальных обозначений характеристическая функция множества А, обозначаемая через Ха и формально заданная на некотором универсуме X, определяется следующим образом:
1,0,1,0,если хе А(для любого хел). если х£ Аесли хе А(для любого хел). если х£ А(П1.1)(П1.1)
1,
0,
1,
0,
если хе А
(для любого хел). если х£ А
если хе А
(для любого хел). если х£ А
(П1.1)
(П1.1)
Можно сказать, что задание любого конкретного множества неявно определяет соответствующую характеристическую функцию и наоборот. Обычно в классической теории множеств характеристическая функция % редко используется и играет второстепенную роль. Однако в теории нечетких множеств обобщение этой функции имеет фундаментальное значение, поскольку именно с этой конструкцией связано базовое определение нечеткого множества.
Применительно к рассматриваемому примеру характеристическую функцию множества Хл можно изобразить графически в форме графика. Для этого на горизонтальной оси X отметим точками обозначения квартир— а\, аз, аз,..., ат, а\о\, ат и, возможно, других интересующих нас объектов. На вертикальной оси У рассмотрим только два числовых значения: 0 и 1. Тогда график соответствующей характеристической функции будет состоять из отдельных изолированных точек, что предопределено конечным числом элементов множества А, причем только для 100 элементов значение Ха будет равно 1, а для всех остальных — О (рис. П1.2).
Т 7Т 7I II I°99 ^lOO а101а102 X°99 ^lOO а101а102 X
Т 7
Т 7
I I
I I
°99 ^lOO а101а102 X
°99 ^lOO а101а102 X
Рис. П1.2. График характеристической функции Хдрассматриваемого множества квартир А
Между множествами могут иметь место различные отношения, простейшим из которых является равенство двух множеств. Два множества считаются равными, если они состоят из одних и тех же элементов. При этом порядок следования элементов в этих множествах не имеет значения. Формально равенство двух множеств можно записать с помощью характеристических функций этих множеств. А именно, множество А равно множеству В (записывается как А=В) тогда и только тогда, когда их характеристические функции равны, т. е. выполняется следующее условие:
Х^ОО^ХлОО (для любого хе А),(П1.2)
где Хя(^)» Хв(х) — характеристические функции множеств А и В соответственно. Для иллюстрации различных теоретико-множественных операций традиционно используются не характеристические функции, а специальные графические конструкции — диаграммы Венна. Последние получили свое название в честь английского логика Джона Венна (1834—1923), который предложил эти обозначения для наглядной интерпретации множеств. Тот факт, что некоторая совокупность элементов образует множество, на диаграмме Венна обозначается графически в форме круга. В этом случае окружность приобретает содержательный смысл или, выражаясь более точным языком, семантику границы данного
множества. В этом случае равенство двух множеств можно изобразить графически следующим образом (рис. П1.3).
Рис. П1.3. Диаграмма Веннадля равенства двух множеств А и В
Следующим важным понятием, которое служит прототипом для многих других терминов системного и нечеткого моделирования,'является понятие подмножества. Интуитивно ситуация достаточно прозрачна. Если есть некоторая совокупность, рассматриваемая как множество, то любая ее часть и будет являться подмножеством этого множества. Так, например, совокупность квартир на первом этаже жилого дома есть ничто иное, как подмножество множества квартир рассматриваемого нами примера. Для обозначения подмножества используется специальный символ "с". Если утверждается, что множество А является подмножеством множества В, то это записывается как: Ас В.
Примечание j
Строго говоря, следует различать два различных варианта подмножества. Рассмотренное выше определение характерно для так называемого собственного подмножества, когда исключается случай возможного равенства двух множеств А=В. Если же при определении подмножества допускается равенство двух множеств, то оно называется несобственным подмножеством и имеет обозначение АсВ.
Формально это отношение можно записать и с помощью характеристических функций этих множеств. А именно, множество А является подмножеством (собственным подмножеством) множества В тогда и только тогда, когда справедливо следующее неравенство:
ХяМ < хДх) (соответственно, Хя(*)<Хв(*))(П13)
(для любого хеХ).
Здесь ХаМ, XsOO — характеристические функции множеств А и В соответственно.
Подмножество или факт включения элементов одного множества в другое множество можно изобразить графически следующим образом (рис. П1.4). На этом рисунке большему множеству В соответствует внешний круг, а меньшему множеству (подмножеству) А — внутренний круг.
Рис. П1.4. Диаграмма Веннадля строгого включения двух множеств АсВ
В теории множеств некоторые специальные множества играют особую роль. Одним из таких множеств является так называемое пустое множество или множество, которое не содержит ни одного элемента. Это множество имеет специальное обозначение: 0. Из этого определения следует, что пустое множество является собственным подмножеством любого множества, не являющегося в свою очередь пустым. То есть для любого множества А всегда справедливо утверждение: 0аА. Очевидно, что характеристическая функция пустого множества тождественно равна нулю для каких бы то ни было элементов: хо = 0.
Другим специальным множеством является так называемый универсум или множество, содержащее все возможные элементы. Это множество также имеет специальное обозначение: X. Из определения универсума следует, что любое множество, не являющееся в свою очередь универсумом, является собственным подмножеством универсума. То есть для любого множества А всегда справедливо утверждение: АсХ. Очевидно, что характеристическая функция универсума тождественно равна единице для каких бы то ни было элементов: X-v ” I -
В зависимости от количества элементов множества бывают конечные и бесконечные. Множество называется конечным, если оно содержит конечное число элементов. Про такое множество еще говорят, что оно имеет конечную мощность, которая численно равна количеству элементов этого множества. Для обозначения мощности произвольного множества А используется специальный символ card(^).
Примечание
В литературе для обозначения мощности множества А также используются и другие символы, как, например: |Д| или ЗГ. Последний из символов может ввести в заблуждение, поскольку, как будет видно из последующего изложения, совпадает по внешнему виду с символом двойного дополнения. По этой причине в дальнейшем мы не будем его использовать.
Возвращаясь к примеру с множеством квартир жилого дома, можно сказать, что его мощность равна 100. Множество всех возможных комбинаций из 8 символов, которые могут служить для ввода некоторого пароля с клавиатуры компьютера,
конечное, хотя и достаточно большое. Или, говоря строгим языком, это множество имеет конечную мощность.
Ситуация усложняется, когда рассматриваются бесконечные множества, т. е. множества, не являющиеся конечными. Эта сложность связана с тем, что бесконечные множества могут быть счетными и несчетными. Счетным множеством принято называть множество, содержащее бесконечное число элементов, которые, однако, можно перенумеровать натуральными числами 1, 2, 3 и т. д. При этом важно иметь в виду, что достичь последнего элемента при такой нумерации принципиально невозможно, иначе множество окажется конечным. Про такие множества говорят, что они имеют счетную мощность, которая обозначается ЛЛо (читается — "алеф нуль”). Есть все основания считать множество всех звезд бесконечным, хотя многие из звезд имеют свое уникальное название. Именно по этой причине данное множество может быть отнесено к категории счетных.
Несчетным множеством принято называть множество, содержащее бесконечное число элементов, которые принципиально нельзя перенумеровать натуральными числами. Г. Кантор доказал, что множество всех действительных чисел несчетно. В этой связи иногда говорят, что данное множество имеет несчетную мощность или мощность континуума (обозначается символами с или Л).
Примечание
Проблема бесконечного могла бы показаться отвлеченной и имеющей некоторый философский оттенок, если бы не ее связь с системным моделированием. Так, при рассмотрении некоторой предметной области с целью построения ее концептуальной модели приходится выделять конечное число сущностей или объектов, образующих определенный "скелет" будущей модели. Это при том, что реальность окружающих нас предметов допускает бесконечное рассмотрение их свойств, атрибутов и взаимосвязей.
Множества могут быть заданы двумя основными способами.
Явным перечислением или указанием всех элементов, входящих в рассматриваемое множество. Очевидно, этот способ подходит только для задания конечных множеств с небольшим числом элементов. Например, множество из пяти первых натуральных чисел или множество планет Солнечной системы.
Указанием некоторого свойства, которым обладает каждый из элементов рассматриваемого множества и не обладает всякий другой элемент, не входящий в рассматриваемое множество. Этот способ может быть использован для задания как конечных, так, что наиболее важно, и бесконечных множеств. Например, только таким способом можно определить множество всех четных натуральных чисел или множество действительных чисел, строго больших 10.
В первом случае множество символически записывается в виде: A={ai, аг,..., аД, где п— общее число элементов множества А. Другими словами, множество А имеет конечную мощность n=card(A).
Во втором случае вводят в рассмотрение некоторое характеристическое свойство, которое может быть записано в виде одноместного предиката P(xY Для фор-
мальной строгости предикат Р(х) определяется на универсуме X элементов, из которых формируется множество А. Предполагается, что в качестве универсума X в каждом конкретном случае используется такая совокупность объектов, для которых рассматриваемое свойство имеет содержательный смысл или, другими словами, означивание соответствующего предиката семантически корректно. При этом предикат может принимать одно из двух значений истинности: "истина" или "ложь". Если элемент хеХ обладает рассматриваемым свойством, то соответствующий предикат Р(х) принимает значение "истина". Если же элемент хеХ не обладает рассматриваемым свойством, то соответствующий предикат Р(х) принимает значение "ложь". Тогда в общем случае задание множества А с использованием специального свойства, выраженного в форме одноместного предиката Fix'), может быть записано в виде: А={а1 Р(а), аеХ}.
Примечание
Вообще говоря, понятие предиката и значения истинности относятся к математической логике, основы которой изложены в приложении 2. Однако для полноты представления основ теории множеств необходимо уже сейчас использовать указанные конструкции.
Например, множество неотрицательных действительных чисел, которое имеет специальное обозначение R* или [0, +оо), может быть задано в виде: ^={х| xe/R, х > 0}. В этом случае предикат Р(х) определяется в форме некоторого составного высказывания "х является действительным числом и, одновременно, х больше или равно 0", которое допускает подстановку вместо х любого числа (т. е. X=tR, где R— множество всех действительных чисел). Другим интересным для нас множеством, которое также может быть задано вторым способом, является замкнутый интервал действительных чисел, заключенных между 0 и I, включая сами эти числа. Этот интервал, который традиционно обозначается как Ir или [0, 1], определяется следующим образом: /я={х| xe/R, 0< х< 1}. Эти множества также могут быть определены на основе задания соответствующих характеристических функций yjo.+^n Х1°- П» графики которых представлены на рис. П1.5.
Рис. ГП .5. Графики характеристических функций Х[о,+^) (а) и Х[о. ц (б)
Примечание j
В связи с рассмотрением последнего примера следует обратить внимание на различие множеств {0, 1} и [0, 1]. Первое из них является конечным множеством, которое состоит только из двух элементов: чисел 0 и 1. Второе является бесконечным множеством и, более того, имеет мощность континуума. Тем не менее, справедливо включение: {0,1} с [0, 1].
Как нетрудно заметить, в общем случае для произвольного множества А существует формальная взаимосвязь между характеристической функцией множества Хд^ и некоторым предикатом РДх), который, возможно неявно, выражает некоторое характеристическое свойство этого множества. А именно, если элемент аеХ обладает свойством РД(Х), т. е. Рл(о)— "истинно", то х^(°)=1- Если же элемент оеХ не обладает свойством Рл(х), т. е. РДс^ — "ложно", то XaV^^* Верно и обратное заключение. Эта связь характеристической функции множества и соответствующего ей предиката играет важную роль при установлении взаимосвязей между теорией нечетких множеств и нечеткой логикой.
Основные
теоретико-множественные операции
Пусть А и В— произвольные (конечные или бесконечные) множества. Пересечением двух множеств А и В называется некоторое третье множество С, которое состоит из тех и только тех элементов двух исходных множеств, которые одновременно принадлежат и множеству А, и множеству В. Для этой операции имеется специальное обозначение: "п". Тогда результат операции пересечения двух множеств можно записать в виде: С=Аг>В, где С={х|хеЛ и одновременно xeBY
Примечание
При этом важно обратить внимание на тот факт, что характеристическая функция хс множества С=АпВ зависит некоторым образом от характеристических функций исходных множеств ха и xs. А именно, значение функции хс(х) для любого хеХ может быть получено как минимальное из двух значений: хаМ и хв(х). Это свойство может быть положено в основу определения операции пересечения множеств. Формально же оно записывается в следующем виде:
XcW=min(x?i(x), хв(х)} (для любого хеХ). (П1.4)
Например, если в качестве множества А рассмотреть множество сотрудников некоторой фирмы, а в качестве множества В— множество всех мужчин, то нетрудно догадаться, что множество С как результат операции пересечения АгВ будет состоять из элементов — всех сотрудников мужского пола данной фирмы. Операция пересечения множеств может быть проиллюстрирована с использованием диаграмм Венна (рис. П 1.6). На этом рисунке условно изображены два множества А и В, затемненной области как раз и соответствует множество С, являющееся пересечением множеств А и В.
Рис. П1.6. Диаграмма Венна для пересечения двух множеств А и В
Под объединением двух множеств А и В понимается некоторое третье множество, которое обозначим как D, состоящее из тех и только тех элементов, которые принадлежат или А, или В, или им обоим одновременно. Для этой операции также существует специальное обозначение: £>= AvjB, где £>={х|хеЛ или хеВ).
Примечание
При этом важно заметить, что характеристическая функция хо множества О=А^В также зависит некоторым образом от характеристических функций исходных множеств хд и хв- А именно, значение функции хоМ для любого хеХ может быть получено как максимальное из двух значений: уаМ и Хв(Ху Это свойство может быть положено в основу определения операции объединения множеств. Формально же оно записывается в следующем виде:
Хо(х)=шах{хДх), xs(x)} для любого хеХ. (П1.5)
Так, например, если в качестве множества А рассмотреть множество, состоящее из клавиатуры и мыши, а в качестве множества В— множество, состоящее из системного блока и монитора, то нетрудно догадаться, что их объединение, т. е. множество D=AuB будет сдержать все основные компоненты персонального компьютера. Операция объединения множеств также может быть проиллюстрирована с использованием диаграмм Венна (рис. П1.7). На этом рисунке объединению двух исходных множеств также соответствует затемненная область, только размеры и форма ее отличаются от случая пересечения двух множеств.
Разностью двух множеств А и В называется некоторое третье множество Е (обозначается Е=А\В, которое состоит из тех и только тех элементов, которые принадлежат множеству А и не принадлежат множеству В, т. е. Е={х|хеЛ и одновременно х^ВУ Если множества А и В не пересекаются (т. е. Аг>В=0У то А\В=А. Из определения этой операции также следует, что: А\А=0 и А\0=А. Формально справедливо следующее утверждение:
Х£(х)=шах{хл(х)-Хв(х), 0} для всех хеХ, (П1.6) где под знаком максимума применяется обычная операция арифметической разности двух чисел. Это свойство в свою очередь может быть использовано для исходного определения операции разности множеств.
Рис. П1.7. Диаграмма Венна для объединения двух множеств А и В
Так, например, если в качестве множества А рассмотреть множество, состоящее из студентов некоторой группы, а в качестве множества В— множество студентов, получивших неудовлетворительные оценки на сессии или не аттестованных вовсе, то их теоретико-множественная разность Е=А\В— множество студентов группы, успешно сдавших сессию. Операция разности множеств также может быть проиллюстрирована с использованием диаграмм Венна (рис. П1.8). На этом рисунке разности двух исходных множеств также соответствует затемненная область.
Рис. П1.8. Диаграмма Венна для разности двух множеств А и В
Следует заметить, что операция разности множеств в отличие от операций объединения и пересечения не является симметричной, т. е. в общем случае А\В * В\А. Поэтому иногда удобно рассматривать так называемую симметрическую разность двух множеств А и В (обозначается через ?1Д5). По определению JAB=(/i\B)cj(£V4), т. е. симметрическая разность двух множеств представляет собой объединение двух разностей множеств А и В. При этом оказывается справедливым следующее утверждение:
Хлдл(х)="юМ1Хл(Л')-Хв(*)1,0} для всех хеХ, (П1.7) где под знаком максимума применяется операция модуля (или вычисления абсолютного значения) числа. Это свойство также может быть использовано для исходного определения операции симметрической разности множеств.
Операция симметрической разности множеств иллюстрируется с помощью диаграмм Венна следующим образом (рис. П1.9). На этом рисунке симметрической разности двух исходных множеств соответствует затемненная область. Можно показать, что для операции симметрической разности имеет место следующее свойство: ДДД=(ЛиВ)\(Лп£).
Рис. П1.9. Диаграмма Венна для симметрической разности двух множеств А и ВРис. П1.9. Диаграмма Венна для симметрической разности двух множеств А и В
Рис. П1.9. Диаграмма Венна для симметрической разности двух множеств А и В
Рис. П1.9. Диаграмма Венна для симметрической разности двух множеств А и В
В целом ряде случаев оказывается полезной унарная операция дополнения множества. Дополнение множества А обозначается через Т и определяется следующим образом: A ={х|хеХ'и одновременно хе А) или Л" =Х\А, где множество X — универсум. Легко проверяется следующее свойство характеристической функции для дополнения множества:
(П1.8)(П1.8)X А =!-Х а для всех х<=Х.
(П1.8)
(П1.8)
Операция дополнения множества иллюстрируется с помощью диаграмм Венна следующим образом (рис. ШЛО). На этом рисунке дополнению множества А соответствует затемненная область.
Рис. П1.10. Диаграмма Венна для дополнения множества А
ПримерП1.2. Рассмотрим два числовых множества: А={1,3, 5, 7, 8, 9} и В={2,4,6, 7, 8, 10}. Для этих множеств результаты выполнения рассмотренных
выше теоретико-множественных операций будут следующими: Дп5={7, 8}, A<jB=VI,2, 3, 4, 5,6, 7, 8, 9, 10}, ЛW={ 1, 3, 5, 9}, ЛД5={1, 2, 3, 4, 5, 6, 9, 10}. Если в качестве универсума X взять множество натуральных чисел /У, то Л ={2,4, б, 10,11,12,13, ...}и ~В= {1,3,5, 9, 11, 12, 13,...}.
Для теоретико-множественных операций имеют место следующие свойства, часть из которых непосредственно следует из их определения, а доказательство других может служить в качестве упражнения:
Z7 Коммутативность операций объединения и пересечения:
AvjB=BvjA;АпВ^ВглА.(П1.9)
Ассоциативность операций объединения и пересечения: Аи(ВиС) = (AwB)ljC;An(BnQ= (АпВ)пС.(П1.10)
Дистрибутивность операций объединения и пересечения относительно друг друга:
A^BkjC^ (АпВ)и(АпС); Аи(ВпС) = (AuB)n(A^Q. (П1.11)
Идемпотентность операций объединения и пересечения:
AvjA=A; Аг\А=А.(П1.12)
Поглощение пустого множества и универсума при операциях объединения и пересечения соответственно:
Ло0=Л;АпХ^А.(П1.13)
Универсальные границы (верхняя и нижняя):
AvjX-Х\Агл№3.(П1.14)
Дополняемость (или дополнительность):
ЛпЛ=0;А иА =Х.(П1.15)
Инволюция или двойное дополнение:
Л=Л.(П1.16)
Законы де Моргана:
(Ли5) = Лп5;(Лп5) = Ли5.(П1.17)
Перечисленные свойства получили название аксиом булевой алгебры в честь английского логика Дж. Буля (1815—1864), отмечая тем самым его вклад в разработку основ математической логики.
Формула (П1.9) означает, что теоретико-множественные операции объединения и пересечения конечного числа множеств не зависят от порядка следования отдельных множеств при выполнении этих операций. Формула (П1.10) означает, что эти операции не зависят от того, выполняем ли мы их в некоторой очередности или разбиваем на отдельные группы с последующим выполнением соответствующих операций над этими группами. Первый из законов дистрибутивности (ПЕН) полностью аналогичен закону дистрибутивности операции умножения относительно сложения в арифметике. Как и в арифметике, из этого закона еле-
дует, что для того, чтобы найти пересечение двух групп множеств, каждая из которых представляет собой объединение конечного числа множеств, следует найти пересечение каждого из множеств первой группы с каждым из множеств второй группы, а к полученным результатам применить операцию объединения. Например, (AkjBkjCkjDyXEkjfViG) = (АпЕ)<э(АпРКХАг>С)кАВглЕ)к^ u'(Z)n£)u(Z)n7;)u(Z)nG). Идемпотентность операций объединения и пересечения не имеет аналогии в арифметике, поскольку в результате их применения к одному и тому же множеству всегда получается исходное множество. Свойства поглощения и универсальных границ аналогичны наличию единицы для операции умножения и нуля для операции сложения в арифметике (кроме первой формулы (П 1.14), которая не имеет аналогии).
Первая формула дополняемости (П1.15) имеет аналогию в формальной логике в виде так называемого закона противоречия. Этот закон утверждает, что в процессе рассуждения о каком-либо определенном предмете или явлении нельзя одновременно утверждать и отрицать что-либо в одном и том же отношении, в противном случае оба суждения не могут быть одновременно истинными. Действительно, если мы утверждаем, что некоторый элемент о,-принадлежит множеству А, то тем самым мы исключаем противоположное утверждение, что этот же элемент о,-не принадлежит множеству А. И наоборот, истинность утверждения "элемент а, не принадлежит множеству А" влечет ложность противоположного утверждения "элемент «у принадлежит множеству А". Например, утверждая, что квартира с номером 100 одновременно принадлежит и не принадлежит множеству А рассмотренного выше примера П1.1, мы неизменно приходим к противоречию, поскольку в данном примере по определению возможен только один случай. а именно: тооеА
Вторая формула дополняемости (П1.15) также имеет аналогию в формальной логике в виде так называемого закона исключенного третьего. Этот закон утверждает, что в процессе рассуждения о каком-либо определенном предмете или явлении необходимо доводить дело до некоторого законченного утверждения или его отрицания. При этом, если одно из таких утверждений истинно, то другое должно быть обязательно ложно, и наоборот. Третьего в этом отношении быть не может: либо истина, либо ложь. Действительно, можно сформулировать только два утверждения относительно принадлежности того или иного элемента множеству: "элемент п, принадлежит множеству А” и "элемент а; не принадлежит множеству А". Третьего утверждения в классической теории множеств быть не может. Например, относительно квартиры с номером 100 можно утверждать только следующее: "квартира <7юо принадлежит множеству А" или "квартира moo не принадлежит множеству А". В этом контексте важно понимать, что нельзя сформулировать какое бы то ни было третье утверждение относительно принадлежности данной квартиры рассматриваемому множеству А.
Что касается инволюции или двойного дополнения, то это свойство легко доказывается, если обозначить А=В. Тогда, если некоторый элемент а^А, то тем самым а^ А и, следовательно, а^В или а^В. Таким образом, А = В или, вводя операцию двойного дополнения, А = А. В обратную сторону доказательство фор-
мулы (П1.16) аналогично. Предположим, что а,еВ. Это означает, что а^В или, с учетом введенных обозначений, а^ А. Последнее утверждение в свою очередь влечет а^А. Поскольку В по определению равно А , то тем самым А = А, что и завершает доказательство данного свойства.
В заключение докажем справедливость первого из законов, получивших свое название в честь шотландского математика и логика Огастеса де Моргана (De Morgan Augustus, 1806—1871): (Л US) = Ar>B. Для этого обозначим AvjB через С, т. е. С = АоВ. Предположим, что некоторый элемент а^ С или а^С. Тем самым справедливо а^А, поскольку ЛсС, и одновременно а^В, поскольку также и BclC. С другой стороны, это означает, что а^ А и одновременно «,е В. Последнее означает ни что иное как: а^ А п В. Это доказывает первую часть закона. Теперь докажем рассматриваемое равенство в обратную сторону. Если предположить, что некоторый элемент а,^А и одновременно а^В, то это будет означать, что a^AvjB. Действительно, если существует такой элемент ар для которого справедливо условие: а^АоВ, то тем самым исключается одновременное выполнение условий: а^А и в то же время а^В. Помня, что С= AxjB, условие a^AvjB будет означать а,еС, а значит а^ С. Поскольку а^А означает а^ Л, а а^В означает а^с В, одновременное выполнение этих условий означает ни что иное, как: а,с Аг>В. Поскольку мы начали рассуждения с последнего утверждения, а пришли к утверждению «;Е С = Ли В , то тем самым получили доказательство первого закона де Моргана в обратную сторону. Второй закон доказывается аналогично и предоставляется выполнить читателю в качестве самостоятельного упражнения.
Булеан или множество всех подмножеств
Как можно заметить, в определении множества присутствует некоторая двойственность, которая касается входящих в множество элементов. С одной стороны, между элементом и множеством имеет место отношение принадлежности а,сА, которое устанавливает исходный состав множества A={ai, аг,..., o„..-V С другой стороны, каждый из элементов множества А можно рассматривать как одноэлементное подмножество {о,}, и тогда имеет место отношение включения между каждым из этих одноэлементных подмножеств и исходным множеством: ^а^с;А. При этом оказывается справедливым следующее утверждение: ^{й,} = Л, где операция объединения выполняется по всем одноэлементным подмножествам, соответствующим элементам множества Л.
Именно последний аспект рассмотрения множеств послужил исходной идеей для введения специальной конструкции, которая играет особую роль при определении целого ряда других понятий. Речь идет о множестве всех подмножеств (булеане или степенном множестве), элементами которого по определению яв-
ляются все без исключения подмножества некоторого фиксированного множества А. А именно, формально булеан определяется как ®(А)={А,\ А^А}. По этому определению пустое множество 0 и само множество А входят в булеан или являются его элементами. Если исходное множество А конечное, т. е. имеет конечную мощность n=card(J), то булеан также будет являться конечным множеством, а его мощность будет равна сагд(ДЛ))=2" (доказывается методом индукции по количеству элементов множества /4).
Таким образом, имеет место следующее утверждение: cardt®^))^™^-4). По аналогии с конечными множествами это свойство распространяют и на бесконечные множества, допуская при этом некоторую вольность, поскольку показатель степени в этом случае не является числом.
Мультимножество или комплект
Одним из обобщений понятия множества является так называемое мультимножество, в качестве синонима которого часто применяется термин комплект. Это понятие иногда используется для формального определения математических конструкций, в которых допускается повторение одинаковых элементов или экземпляров некоторого класса.
Мультимножество. Содержательно мультимножество можно определить как такое множество, в котором те или иные элементы могут повторяться или встречаться несколько раз. Формально мультимножество определяется как множество кортежей: /4*={<т. си>, <«2, а2>,.... <а„, а„>}, где а,-— элемент мультимножества, а,-— количество повторений элемента ап в этом мультимножестве А*. Как видно из этого определения, мультимножества будем обозначать так же, как и обычные множества, но с дополнительным знаком "*". Очевидно, порядок следования кортежей в записи мультимножества не имеет никакого значения.
П р и м ерП1.3. Для иллюстрации данного понятия рассмотрим два абстрактных мультимножества: J*={<oi,2>, <«2, 1>, <дз, 2>, <<74, l>, <as, 3>} и В*=^<ач 1>, <<?2, 2>, <<7з, 3>, <04, 1>, <05, 2>} и два числовых мультимножества: С*={<1, 1>, <2, 2>, <3, 1>, <4, 2>, <5, 3>} и £)*={<!, 1>, <2, 2>, <3, 3>, <4, 4>, <5, 5>}. Они могут быть также записаны в альтернативной форме как: A*={ai, 01, 02, оз, оз, 04, os, os, os} и S*={oi, 02, 02, оз, оз, оз, 04, os, os}, а также: С*={1, 2, 2, 3, 4, 4, 5, 5, 5} и D*={1,2, 2, 3. 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5}.
Примечание
Следует заметить, что в альтернативной форме записи порядок следования элементов в записи мультимножества не имеет значения. Другими словами, записи {1, 2, 5, 2, 4, 5, 3, 5, 4} и {2, 1, 2, 5, 3, 4, 5, 4, 5} соответствуют одному и тому же мультимножеству, а именно, С*. Очевидно, что для мультимножеств с достаточно большим числом элементов эта форма записи не совсем удобна, поскольку затрудняет визуальное установление подобного факта.
Более строгое определение мультимножества может быть дано на основе предварительного рассмотрения некоторого универсума X, как правило, имеющего конечную мощность, и некоторого отображения а: А'->^о, ставящего в соответствие каждому элементу универсума неотрицательное целое число, равное количеству его включений в мультимножество. При этом элементы универсума, для которых значение этого отображения равно нулю, не записываются в состав данного мультимножества. Здесь и далее через Rio будет обозначаться множество натуральных чисел и ноль,т. е. /%={0, I, 2, 3,...}.
Как и в случае обычных множеств, с любым мультимножеством А* можно связать некоторую обобщенную характеристическую функцию ^-(х), которая принимает значение а(х,) для каждого из элементов Xj данного мультимножества. С использованием этой обобщенной характеристической функции для мультимножеств могут быть определены отношения равенства и включения, аналоги теоретико-множественных операций и другие понятия, соответствующие случаю обычных множеств.
В общем случае два мультимножества А* и В* считаются равными по определению, если равны множества соответствующих им кортежей. Другими словами, равные мультимножества не только состоят из одинаковых элементов универсума X, но и количество повторений каждого из элементов в этих мультимножествах также равно. Это эквивалентно выполнению условия (П1.2) для соответствующих обобщенных характеристических функций этих мультимножеств. В противном случае мультимножества считаются неравными. Равные мультимножества записываются в виде: А*=В*.
Таким же образом можно ввести определения отношения включения мультимножеств на основе выполнения условия (П1.3), операции пересечения мультимножеств на основе выполнения условия (П1.4), операции объединения мультимножеств на основе выполнения условия (П1.5), операции разности мультимножеств на основе выполнения условия (П1.6) и операции симметрической разности мультимножеств на основе выполнения условия (П1.7) для соответствующих обобщенных характеристических функций этих мультимножеств.
Так, например, для мультимножеств из примера ГП.З справедливы записи А**В*, A*r>B*={<ai. l>, <ai, 1>, <пз, 2>, <ш, 1>, <</5, 2>}, А*к_)В*=^<а\, 2>, <аг,2>, <пз, 2>, <04, 1>, <os,3>}, А* \ 5*={<r?i, 1>, <а$, 1>}, А*Д В*={<аи 1>, <02, 1>, <03, 1>, <05, 1>}.
Примечание
На основе обобщенных характеристических функций для мультимножеств могут быть определены некоторые дополнительные операции, аналогичные арифметическим операциям.
Отношения и способы их задания
Понятие отношения наряду с понятием самого множества является фундаментальным не только в теории множеств, но и в других теоретических и приклад-
ных дисциплинах. Следует помнить, что это понятие часто заменяется терминами связь, ассоциация, взаимосвязь или соотношение. В общем случае отношение определяется как любое подмножество упорядоченных кортежей, построенных из элементов некоторых исходных множеств. При этом под кортежем понимается просто набор или список упорядоченных элементов.
Хотя и существует некоторая неоднозначность в принятых обозначениях, кортеж из двух элементов удобно обозначать как <щ, аг>, из трех элементов — <а\, аг, оз> и т. д. Кортеж из к элементов будем обозначать через <т, ат,..., ак> и говорить, что он имеет длину к, где к— некоторое натуральное число. При этом отдельные элементы кортежа могут принадлежать как одному множеству, raj< и различным множествам. Важно иметь в виду, что порядок выбора элементов для построения кортежей строго фиксирован для каждого конкретного случая. Речь идет о том, что первый элемент всегда выбирается из первого множества, второй — из второго и т. д.
Совокупность всех кортежей длины 2, образованных из элементов двух произвольных (конечных или бесконечных) множеств А и В, образует множество, которое получило специальное название— декартово произведение двух множеств. Данное произведение названо в честь известного французского философа и математика Рене Декарта (1596—1650). Формально декартово произведение определяется как: АхВ-^а^ Ь>\ а^А, Ь(еВ^. Поскольку декартово произведение является множеством в обычном смысле, то для него справедливы все теоретикомножественные свойства и операции. В частности, мощность декартова произведения двух конечных множеств А={т, аг,..., п„} и B=^bt, Ьг,..., Ьт\ равна произведению (арифметическому) мощностей этих множеств: cardG4x5)=v? т. Этот факт непосредственно следует из простого подсчета всех кортежей, составленных из элементов этих множеств.
Декартово произведение может быть расширено на случай произвольного конечного числа множеств: А1хАгх...хАк. на основе рассмотрения всех кортежей длины к, составленных из элементов этих множеств. С другой стороны, в качестве множеств декартова произведения может выступать и одно множество А. Соответствующее декартово произведение примет вид: АхА или АхАх...хА {к раз). к
В последнем случае иногда используется запись: А
В общем случае отношением, заданным на множествах Ai, Аг,..., Ак (иногда говорят— над множествами), называется некоторое подмножество декартова произведения этих множеств. Другими словами, если обозначить произвольное отношение через Q, то по определению Q ^ А\хА2х...хАк. При этом не исключается случай равенства отношения самому д’екартову произведению множеств.
Чтобы характеризовать количество множеств, на основе которых строится то или иное отношение, принято называть отношение между двумя множествами — бинарным, между тремя множествами — тернарным, а в общем случае — к-арным отношением. В каждом конкретном случае рассматриваемое отношение неявно предопределяет некоторый способ или семантику выбора отдельных элементов
из одного или нескольких множеств для образования соответствующего множества кортежей.
Поскольку отношение по своей сути является множеством, то каждому отношению будет соответствовать некоторая характеристическая функция этого отношения хо, заданная на декартовом произведении исходных множеств данного отношения. При этом, если кортеж <ai, аг,..., Эк> входит или принадлежит отношению Q, то значение характеристической функции этого отношения ха для данного кортежа равно 1, и 0 — в противном случае.
Существуют различные способы, которыми могут быть заданы те или иные конкретные отношения. Наибольшее распространение из них получили следующие.
Непосредственное перечисление кортежей отношения. Как и для случая одного множества, этот способ может быть использован только для задания конечных отношений произвольной арности с небольшим количеством кортежей.
Матричный способ. Основан на представлении отношения в форме матрицы, строки которой соответствуют одному из множеств отношения, а столбцы — другому множеству. При этом элементы матрицы принимают одно из двух значений: 1 или 0, в зависимости от того, принадлежит или не принадлежит соответствующий кортеж данному отношению. Как не трудно представить, данный способ может быть использован только для задания конечных бинарных отношений. Иногда определенную таким образом матрицу называют матрицей бинарного отношения, которую будем обозначать через Mq.
Табличный способ, с одной стороны, может рассматриваться как разновидность матричного, поскольку конечная матрица всегда может быть представлена в форме таблицы. С другой стороны, при представлении отношений (не обязательно бинарных) в форме таблиц удобно указывать только те кортежи, которые принадлежат рассматриваемому отношению. Вообще говоря, таблицы отношений являются центральным объектом теории и практики реляционных баз данных. Данная тематика, в рамках которой разработаны специальные средства манипулирования данными (реляционная алгебра, правила нормализации, язык SQL, коммерческие базы данных и пр.) выходит за рамки настоящей книги.
Графический способ. В общем случае основан на представлении отношения с использованием некоторой графической нотации или системы специальных обозначений. Наиболее распространены две разновидности этого способа, которые подходят для задания бинарных отношений.
Представление отношения в виде некоторой геометрической фигуры (кривой или совокупности отдельных точек) на плоскости или в пространстве. При этом могут использоваться различные системы координат. График математической функции, такой как, например, парабола р=х2. является примером этого способа задания отношения. Здесь функция рассматривается как частный случай отношения, о чем будет сказано ниже. Этот способ зачастую является единственно возможным для визуализации бесконечных отношений.
Представление отношения в виде ориентированного (направленного) графа. Хотя основные понятия теории графов получили свое развитие задолго до появления теории множеств как самостоятельной научной дисциплины, формальное определение графа удобно представить в теоретикомножественных терминах. Рассмотрим этот способ более подробно.
Ориентированным графом называется совокупность двух множеств: множества точек или вершин и множества соединяющих их линий или дуг. Формально граф задается в виде двух конечных множеств: G=(K, Е), где ^{и, V2,..., v„} — множество вершин графа, E={ei, ei,..., е„} — множество дуг графа. Вершины графа изображаются точками, а дуги — отрезками прямых линий со стрелкой на одном из концов. Рядом с вершинами и дугами записываются условные обозначения соответствующих вершин и дуг, что позволяет идентифицировать их однозначным образом. Натуральное число п определяет общее количество вершин конкретного графа, а натуральное число т — общее количество дуг- графа.
Следует заметить, что в общем случае не все вершины в графе могут соединяться между собой. Именно этот факт ставит в соответствие каждому ориентированному графу некоторое бинарное отношение QG, состоящее из всех пар вида <г„ v>, где р„ v,g V. При этом пара <г„ v8> принадлежит соответствующему отношению Qg в том и только в том случае, если вершины г, и v7 соединяются в графе G некоторой дугой е^Е, направленной из вершины у, в вершину vf. При графическом задании отношения Qc.AxA каждому элементу множества а^А будет соответствовать отдельная вершина p,gG графа этого отношения, а каждому кортежу отношения <а„ a>cQ будет соответствовать дуга графа <г„ v>gE с началом в вершине р, и концом в вершине v(.
Примечание j
Вообще говоря, графы бывают различных типов. Кроме рассмотренных выше ориентированных графов, в теории графов рассматриваются неориентированные графы, т. е. такие графы, у которых соединяющие вершины ребра не имеют направления или ориентации. Неориентированные графы удобно считать частным случаем ориентированных, у которых каждая дуга имеет дугу противоположной ориентации. В современной теории графов рассматриваются также и бесконечные графы, т. е. графы с бесконечным числом вершин. Бесконечные графы выходят за рамки тематики настоящей книги. Именно поэтому задание отношения с помощью графа используется только для конечных отношений. В общем случае графы широко используются для представления информации о структуре систем и процессов. Примерами подобных графических моделей могут служить: схемы автомобильных дорог региона, которые соединяют отдельные населенные пункты; схемы телекоммуникаций, используемых для передачи информации между отдельными узлами системы; схемы программ, на которых указываются варианты ветвления вычислительного процесса. Общей для всех подобных моделей является возможность представления информации в графическом виде. Достоинством данного способа является наглядность представления отношений и возможность их визуализации. При этом отдельные модели могут обладать дополнительной семантикой и специальными обозначениями, характерными для той или иной предметной области.
Задание отношения на основе явного указания некоторого свойства, которым должны обладать все элементы рассматриваемого отношения. Этот способ аналогичен описанному ранее способу для множеств и подходит для задания как конечных, так бесконечных отношений. В этом случае вводится в рассмотрение некоторое характеристическое свойство, которое может быть записано в виде многоместного предиката P(<xi, Х2,..., хк>). Данный предикат P(<xi, хз,..., хк>) определяется на декартовом произведении А\хАзх...хАк. При этом предикат может принимать одно из двух значений истинности: "истина" или "ложь”. Если кортеж <ai, аз,..., ак> принадлежит рассматриваемому отношению Q, то соответствующий предикат Ру^ах, аз,..., ак>} принимает значение "истина". Если же кортеж <ai, аз,..., ак> не принадлежит отношению Q, то соответствующий предикат Pe(<Gi, аз,..., ак>) принимает значение "ложь". Тогда в общем случае отношение Q может быть записано в виде: 2={<и7|, аз,..., ак> | Pp(<<7i, аз,..., ак>), <а\, аз,..., ак>е А\хАзх...хАк}.
П р и м е р П1.4. Для иллюстрации различных способов задания отношений рассмотрим в качестве примера фрагмент расписания международных авиарейсов аэропорта Пулково-2 (Санкт-Петербург, 2001 г.). Для простоты ограничим наше внимание только номерами авиарейсов, аэропортами назначения и типами самолетов. С этой целью рассмотрим следующие базисные множества: множество номеров авиарейсов >4={LH6370, МА232, Z8221, Z8229, Z8257, Z8277, Z8285}, множество аэропортов назначения В=^Амстердам, Афины, Барселона, Каир, Нью-Йорк, Париж, Хельсинки}, множество типов самолетов С={Боинг-737, Боинг-747, Ил-86, Ту-134, Ту-154}. Одним из бинарных отношений Qi сАхВ является отношение, устанавливающее соответствие между каждым номером авиарейса и аэропортом назначения. Другим отношением Qi^AxC является отношение между номерами авиарейсов и типом самолета, осуществляющим перелет по соответствующему маршруту.
Традиционно подобная информация записывается в форме таблиц, которые являются исходными объектами представления информации в реляционных базах данных. В нашем простом случае эти таблицы имеют следующий вид (табл. П1.1 и П1.2), что соответствует табличному способу задания этих отношений.
Таблица ГН.1. Авиарейсы и аэропорты назначения
Номер авиарейса
Аэропорт назначения
Z8277
Амстердам
МА232
Афины
Z8221
Барселона
Z8285
Каир
LH6370
Нью-Йорк
Z8257
Париж
Z8229
Хельсинки
Таблица П1.2. Авиарейсы и типы самолетов
Номер авиарейса
Тип самолета
Z8277
Ту-154
МА232
Боинг-737
Z8221
Ту-134
Z8285
Ту-134
LH6370
Боинг-747
Z8257
Ил-86
Z8229
Ту-154
Первый из указанных выше способов задания отношений — непосредственное перечисление кортежей. В этом случае рассматриваемые отношения могут быть записаны в следующем виде: Qi={<Z8277, Амстердаму <МА232, Афины>, <Z8221, Барселона>, <Z8285, Kaup>, <LH6370, Нью-Йорк>, <Z8257, Парижу <Z8229, Хельсинки^; Q2-{<Z8277, Ту-154>, <МА232, Боинг-737>, <Z8221, Ту- 134>, <Z8285, Ту-134>, <LH6370, Боинг-747>, <Z8257, Ил-86>, <Z8229, Ту- 154>}.
Второй из способов — матричный, с использованием которого эти отношения могут быть заданы в виде двух матриц Mi и Мг, первая из которых соответствует отношению Q\, а вторая — отношению Qi. При этом неявно предполагается, что на исходных базисных множествах введено естественное отношение порядка, которое соответствует перечислению элементов в множествах А, В, С.
"0
0
0
0
1
0
о'
"о
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
Mi =
0
0
0
0
0
0
1
,М2 =
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
Примечание j
Напомним, что при задании отношений матричным способом строки матрицы соответствуют элементам первого множества, а столбцы матрицы — элементам второго множества. В этом случае каждый из элементов матрицы может принимать одно из двух возможных значений: 0 или 1 в зависимости от того, принадлежит или нет соответствующий кортеж исходному отношению. Как нетрудно заметить, количество единиц в матрице отношения в точности равно количеству различных кортежей, из которых состоит то или иное отношение.
Третий из способов задания отношений (табличный) был использован для исходной записи рассматриваемых отношений.
Рассмотрим четвертый способ задания отношений — графический. В этом случае отношения Q\ и Qi могут быть заданы в виде двух ориентированных графов: Gi=(Ki, Ei), G2~(E2, Ei). При этом множество вершин У\ графа G\ должно соответствовать объединению множеств AvjB, а множество вершин Vi графа Gi— объединению множеств AvjC. Соответствующие графы отношений представлены на рис. П1.11.
Рис. П1.11. Графы отношений Oi и О2
Что касается пятого способа задания отношений, то применительно к рассматриваемому примеру для кортежей отношений Q\ и Qi нельзя выявить общие свойства или характеристические признаки. Поскольку в этом случае для задания самих предикатов Pi(<ai, xi>) и Pii<x\, xi>) отношений Q\ и Qi необходимо использовать один из способов задания соответствующих отношений, этот способ из соображений конструктивности здесь не приводится.
Операции над бинарными отношениями
Поскольку отношения являются некоторыми специальным образом определенными множествами, то для них в полной мере применимы все теоретикомножественные операции: пересечение, объединение, разность, симметрическая разность и дополнение. В то же время для отношений могут быть определены дополнительные операции, не имеющие аналогов среди множеств в общем случае. Ограничив наше внимание бинарными отношениями, рассмотрим унарную операцию "обратное отношение" и бинарную операцию композиции отношений.
Обратное отношение. Пусть задано некоторое бинарное отношения QcAxB. Обратным отношением Q"1 к отношению Q называется такое бинарное отношение, заданное на декартовом произведении ВхА, которое содержит кортеж элементов <bj,a> (bjeB, л,еА) тогда и только тогда, когда <apb>&Q. Другими словами: Q^-^bp о,>| <ah b>eQ, а^А, Ь,еВУ
В качестве примера рассмотрим обратное отношение 2з"1 к отношению QicAxC из примера П1.4. В этом случае бг’с СхА и может быть задано матричным способом в виде:
0 10 0 0 0 0
1 0 0 0 0 0 0
Qi'Qi'0 0 0 0 10 0
Qi'
Qi'
0 0 10 0 0 1
0 0 0 10 10
Примечание
Как нетрудно заметить, матрица обратного отношения может быть получена транспонированием матрицы исходного бинарного отношения, а граф обратного отношения может быть получен обращением стрелок (изменением их ориентации на противоположную) графа исходного отношения и возможно перемещением некоторых его вершин для большей наглядности.
Композиция отношений. Пусть задано два бинарных отношения 01 сАхВ и Qi^BxC (правое базисное множество отношения Qi должно быть обязательно равно левому базисному множеству отношения Qi). Композицией бинарных отношений Qi и 0 (обозначается 0\»0i) называется такое бинарное отношение Q, которое заданно на декартовом произведении АхС и содержит кортеж элементов <ah ск> (а,еА, скеС) тогда и только тогда, когда существует элемент bj&B, такой что одновременно <а„ bj>&Q, и <br ck>eQi. Операцию композиции бинарных отношений иногда называют произведением отношений.
В качестве примера рассмотрим композицию конечных отношений Q21 и Qi. где Qi"'— обратное к отношению Qi^AxC из примера П1.3. В этом случае Q2~'c СхА, Qi ^АхВ, что обеспечивает выполнение формального условия, необходимого для этой операции. Результат композиции этих отношений, который содержательно устанавливает соответствие между типами самолетов и аэропортами назначения, может быть представлен в матричном виде следующим образом:
0 1 0 0 0 0 0
0 0 0 0 10 0
п = 0 0 0 0 0 I 0
V2 *V1
0 0 110 0 0
10 0 0 0 0 1
Для наглядности представим этот же результат в форме таблицы (табл. П1.3).
Таблица П1.3. Типы самолетов и аэропорты назначения
Тип самолета
Аэропорт назначения
Боинг-737
Афины
Боинг-747
Нью-Йорк
Ил-86
Париж
Ту-134
Барселона, Каир
Ту-154
Амстердам, Хельсинки
Примечание
Как нетрудно заметить, матрица композиции бинарных отношений может быть получена произведением матрицы первого бинарного отношения на матрицу второго бинарного отношения. Равенство правого базисного множества первого отношения и левого базисного множества второго отношения гарантирует согласование размерности соответствующих матриц. Однако при выполнении операции сложения над элементами матриц следует придерживаться следующих правил: 0+0=0, 0+1=1+0=1, 1+1=1. Операция умножения выполняется обычным образом: 0 0=0, 0-1=10=0, 1-1=1. Очевидно, эти бинарные операции эквивалентны операциям max и min, что устанавливает концептуальную связь с операцией композиции нечетких отношений, рассматриваемой в главе 4.
Отображение
Бинарное отношение F, заданное на декартовом произведении АхВ, называется отображением, если из одновременного выполнения условий <«,, a>eF и <ц„ a>eF всегда следует равенство вторых элементов этих кортежей, а именно, aj=av Другими словами, каждому из элементов множества А отображение вставит в соответствие не более одного элемента множества В. В этом случае говорят, что отображение F действует из множества А в множество В. Для формальной записи отображения используется следующее обозначение F\A—>B, при этом не исключается случай, когда А =В.
С точки зрения теории множеств известное в математике понятие функции является частным случаем отображения, когда множества А и В являются числовыми. Общепринятый способ обозначения функциональной зависимости малыми латинскими буквами часто используется и в теории множеств. В этом случае отображение может быть записано в форме f\A->B или более привычной у-Д-xY что, если не указано дополнительно, не имеет принципиального значения. Обе эти формы записи отображений (функций) будут использоваться далее как эквивалентные.
Понятие отображения допускает обобщение на декартово произведение произвольного конечного числа множеств слева от стрелки. Поэтому в общем случае отображение записывается в виде /:А\хАгх...хАк—>В и ставит в соответствие каждому кортежу <a\, аг,..., ак>еА\хАгх...хАк некоторый единственный элемент b из множества В. Известное в алгебре понятие операция является частным случаем такого отображения, когда все множества А\, Аг,..., Ак и В равны. В этом случае операция, точнее, к-месшная операция, может быть записана в форме /: АхАх...хА—>А или более привычной у-х\хг...хк. Так, например, арифметическая операция сложения есть не что иное, как бинарная операция +: Rx(R-^>!R, где через R обозначено множество всех действительных чисел.
При анализе отображений часто вводят в рассмотрение два отдельных множества, которые характеризуют особенности структурного строения отображений. Во-первых, отображение /может быть задано не на всем множестве А, а только на некотором его подмножестве D^A. В этом случае множество ^называется областью (множеством) определения отображения f Если же D( -A. то отображение / (соответственно, функцию) называют всюду определенным. Во-вторых, подмножество 1т, с В, определяемое как 1т,-\Дх)\ xgD,), получило название области (множества) значений отображения /. Здесь можно отметить тот случай, когда множество обозначено двумя буквами (сокращение от англ, image).
Имеются некоторые дополнительные понятия, связанные с произвольным отображением /:А—>В. Зафиксируем произвольный элемент a&D,. По определению этому элементу а отображение/ставит в соответствие некоторый единственный элемент belm,. При этом элемент b называется образом элемента а при отображении / а сам элемент а — прообразом элемента b при отображении/.
Примечание
Как нетрудно заметить, характеристическая функция множества по определению является отображением ха : Х->{0, 1}, которое задается выражением (П1.1). Здесь в качестве области определения отображения используется некоторый универсум X, а в качестве области значений — двухэлементное множество {0, 1}. Важно понимать, что задание в качестве области значений множества {0, 1} гарантирует, что никаких других значений, кроме 0 и 1, данная функция принимать не может.
Свойства бинарных отношений, заданных на одном базисном множестве
Как уже было упомянуто выше, в теории множеств физическая природа элементов, из которых могут быть образованы множества и отношения, не имеет принципиального значения. Предметом исследования являются такие особенности множеств и отношений, которые характеризуют отдельные абстрактные свойства их структуры. В контексте нечеткого моделирования наибольший интерес представляют такие общие свойства бинарных отношений, заданных на одном
множестве, как рефлексивность, симметричность и транзитивность. Эти свойства играют важную роль при определении некоторых специальных отношений. Наш интерес к этим отношениям обусловлен тем обстоятельством, что эти свойства допускают естественное нечеткое обобщение, что широко используется в нечетком моделировании.
Бинарное отношение Q, заданное на декартовом произведении АхА, называется рефлексивным, если каждый из кортежей <a„a> принадлежит отношению Q. Формально это можно записать в следующем виде: Q — рефлексивно тогда и только тогда, когда <ab a>eQ, Va,eA. Следует заметить, что главная диагональ матрицы рефлексивного отношения состоит из одних I.
Примечание
В определении рефлексивного отношения использован специальный символ "V", который называется квантором общности и читается "для любого, для каждого, для всех" (этот символ ассоциируется с перевернутой первой буквой английского А1Г). Квантор общности широко применяется в различных логических исчислениях, включая нечеткую логику. Здесь его употребление обусловливается соображениями удобства и сокращением формальных записей.
Кроме квантора общности V, имеется двойственный ему квантор существования, который обозначается символом "3" (этот символ ассоциирован с первой буквой англ. Exist). В математических и логических выражениях он читается как "существует, найдется хотя бы один". При этом не исключается случай, когда искомых элементов может оказаться несколько, а в предельном случае— даже все. Важно понимать, что применение квантора существования гарантирует наличие хотя бы одного элемента, удовлетворяющего заданному логическому условию. Более подробно семантика использования этих кванторов рассмотрена в приложении 2.
Примечание
При использовании квантора существования ничего не говорится о способе определения указанного элемента (или элементов, которых, вообще говоря, может быть несколько). Данное обстоятельство послужило источником критики классической теории множеств и целых разделов математики, особенно теорем существования, со стороны так называемого конструктивного направления. Однако эти аспекты теории множеств лежат за пределами тематики настоящей книги.
Бинарное отношение Q, заданное на декартовом произведении АхА, называется антирефлексивным, если ни один из кортежей <aha> не принадлежит отношению Q. Формально это можно записать в следующем виде: Q — антирефлексивно тогда и только тогда, когда <ab a>tQ, Va,GA. Следует заметить, что главная диагональ матрицы антирефлексивного отношения состоит из одних 0.
Бинарное отношение Q, заданное на декартовом произведении АхА, называется симметричным, если наряду с каждым кортежем <аь а>, принадлежащим отно-
шению Q, этому отношению принадлежит и кортеж <ага>, в котором элементы ah OjgA взяты в обратном порядке. Формально это можно записать в следующем виде: Q— симметрично тогда и только тогда, когда <apa>gQ и <Oj,aj>GQ одновременно. Следует заметить, что матрица симметричного отношения симметрична относительно главной диагонали.
Бинарное отношение Q, заданное на декартовом произведении АхА, называется асимметричным, если из двух кортежей <аь и> и <ар а> по меньшей мере один не принадлежит отношению Q (а может быть и оба). Формально это можно записать в следующем виде: Q — асимметрично тогда и только тогда, когда условия <ab 0>gQ и <ар u>gQ не могут выполняться одновременно.
Бинарное отношение Q, заданное на декартовом произведении АхА, называется антисимметричным, если оба кортежа <а„ а> и <ар а> могут принадлежать отношению Q только в одном случае, а именно, когда ара,. Формально это можно записать в следующем виде: Q — антисимметрично тогда и только тогда, когда условия <ab a>eQ и <ар a>eQ могут выполняться одновременно только при а^Р
Бинарное отношение Q, заданное на декартовом произведении АхА, называется транзитивным, если из условия принадлежности двух кортежей <а„ а> и <ар а> всегда следует, что данному отношению принадлежит и кортеж <с?„а>. Формально это можно записать в следующем виде: Q — транзитивно тогда и только тогда, когда из условий <а„ g>gQ и <ар u>gQ всегда следует выполнение условия: <а„ as>GQ.
Проиллюстрируем свойства отношений на следующем примере.
При м е р П1.5. Каждая бизнес-система имеет некоторую структуру подчинения своих сотрудников согласно занимаемым ими должностям. Рассмотрим подобное отношение "субординации" на множестве сотрудников в общем случае. Данное отношение антирефлексивно (сотрудник не может быть подчинен самому себе); асимметрично (если сотрудник а, подчинен сотруднику ар то сотрудник а, не может быть подчинен сотруднику ад и транзитивным (если сотрудник а, подчинен сотруднику ар а сотрудник <7, подчинен сотруднику а„ то сотрудник о, подчинен сотруднику ад-
Рассмотренный пример иллюстрирует тот важный факт, что те или иные отношения, рассматриваемые в самом общем контексте, могут одновременно обладать несколькими из введенных в рассмотрение свойств.
Некоторые специальные виды бинарных отношений, заданных на одном базисном множестве
Совместное наличие нескольких свойств у тех или иных бинарных отношений позволяет выполнить их дальнейшую специализацию с целью получения более конструктивных результатов относительно наличия целого ряда дополнительных свойств и уточнения характера взаимосвязей элементов этих бинарных отношений.
Отношение строгого частичного порядка
Бинарное отношение Q, заданное на одном базисном множестве QczAxA, называется отношением строгого частичного порядка, если оно одновременно является антирефлексивным, асимметричным и транзитивным. Если дополнительно отношение удовлетворяет условию: для любой пары элементов <аь а>, где аь а^А, справедливо либо <a„a>GQ, либо <а^a^eQ, то такое отношение называется отношением строгого линейного порядка.
Примерами отношений строгого частичного порядка могут служить отношение субординации на множестве сотрудников некоторой бизнес-системы (пример П1.4), а также отношение включения на множестве всех подмножеств (булеане) некоторого базисного множества. Примерами отношений строгого линейного порядка могут служить отношение "строго больше” на множестве действительных чисел, а также отношения типа "быть выше ростом", "иметь более высокую скорость движения" на соответствующих базисных множествах.
Отношение толерантности
Бинарное отношение Q, заданное на одном базисном множестве QcAxA, называется отношением толерантности, если оно является рефлексивным и симметричным.
Отношение толерантности иногда называют отношением покрытия или сходства, поскольку оно связано с определением соответствующей системы множеств. А именно, система подмножеств 3(Л) = {Лл. | Акс А} множества А называется покрытием, если выполняется следующее условие:
IM-^, Uk^, (П1.18)
к
т. е. объединение всех или части подмножеств из 3(Л) совпадает с исходным множеством А (или "покрывает" исходное множество Л).
Примером отношения толерантности может служить факт знакомства среди некоторого множества субъектов. Для конкретности рассмотрим в качестве исходного множества A={ai, аг, аз,..., а„} совокупность сотрудников некоторой достаточно крупной бизнес-системы. Сформируем бинарное отношение Q на этом множестве, включив в него такие пары элементов <о„ aj>, где аь а^ А, для которых выполняется условие: "сотрудник а, знаком с сотрудником а". Легко проверить, что это отношение является симметричным, поскольку если "сотрудник а,- знаком с сотрудником а", то определенно и "сотрудник а, знаком с сотрудником а”. Свойство рефлексивности также выполняется, поскольку по определению будем считать, что каждый из сотрудников знаком с самим собой.
С другой стороны, это же отношение порождает некоторое покрытие 3(А)={А,Д АксА} множества А, если в качестве подмножеств Акс,А взять указанные выше пары элементов А^^а,, а,} — знакомых между собой сотрудников.
Отношение эквивалентности
Бинарное отношение Q, заданное на одном базисном множестве QcAxA, называется отношением эквивалентности, если оно одновременно является рефлексивным, симметричным и транзитивным.
Отношение эквивалентности также называют отношением разбиения, поскольку оно связано с определением соответствующей системы множеств. А именно, система подмножеств ^(А^ = {ЛЛ | Ак с А} множества А называется разбиением, если выполняются следующие условия:
и^=^.к4ГИ=0-и^=^.к4ГИ=0-(Л,£91),(V^„^„,e91),(Л,£91),(V^„^„,e91),(П1.19)(П1.20)(П1.19)(П1.20)
и^=^.
к
4ГИ=0-
и^=^.
к
4ГИ=0-
(Л,£91),
(V^„^„,e91),
(Л,£91),
(V^„^„,e91),
(П1.19)
(П1.20)
(П1.19)
(П1.20)
т. е. объединение всех или части подмножеств из 9? (Я) совпадает с исходным множеством А (или "покрывает" исходное множество А), при этом подмножества разбиения попарно не пересекаются между собой. В этом случае отдельные множества АкеЗД разбиения получили специальное название — классы разбиения.
Нетрудно заметить, что каждое разбиение является в то же время и покрытием, которое дополнительно удовлетворяет свойству (П1.20). Вообще говоря, это свойство существенно обогащает структуру соответствующих отношений эквивалентности, позволяя утверждать, что каждый из элементов исходного множества А может принадлежать не более одному из классов разбиения. Свойство (П1.19) гарантирует наличие такого класса Ак для каждого элемента а^А.
Примерами отношений эквивалентности могут служить отношение "быть родственником", "иметь одинаковый рост", "иметь одинаковую цену", "обладать равным доходом" и многие другие. В общем случае с отношением эквивалентности связаны логические правила "хорошей" классификации, которые используются в системном моделировании для концептуальной структуризации предметной области при построении моделей сложных систем.
Мультиотношение
В общем случае мультиотношением, заданным на множествах А\, Аг,..., Ак (иногда гбворят— над множествами), называется некоторое мультимножество кортежей элементов этих множеств.
Другими словами, если обозначить произвольное мультиотношение через Q*, то по определению: С*={<п, сц>, <п, аг>,..., <гп, а,,>,...}, где г, кортеж длины к из элементов <ад,аг*,.„, ак*>, при этом: ni'e^i, аг*еАг,..., ак'еАк, а,— количество повторений кортежа п в этом мультиотношении Q*.
Поскольку мультиотношение является, с одной стороны, мультимножеством, а с другой стороны, обобщением обычного отношения, для него оказываются справедливыми операции, определенные выше для мультимножеств. В общем случае
мультиотношения могут быть заданы перечислением кортежей мультимножества, матрицей мультиотношения, а также с помощью так называемого мультиграфа.
Ориентированным мультиграфом называется совокупность двух множеств: множества точек или вершин и мультимножества соединяющих их линий или дуг.
Формально мультиграф задается в виде двух конечных множеств: G-(К, £*), где E={vi, i’2,...,v„}— множество вершин графа, Е*={<щ, m>, <ег, а2>,.... <е„„ а,„>} — мультимножество дуг мультиграфа.
Вершины мультиграфа изображаются течками, аналогично обычным графам, а дуги— отрезками прямых линий со стрелкой на одном из концов. Рядом с вершинами и дугами записываются условные обозначения соответствующих вершин и дуг. Натуральное число п определяет общее количество вершин конкретного мультиграфа, а натуральное число т — общее количество дуг мультиграфа. Следует заметить, что в общем случае при графическом задании бинарного мультиотношения Q* каждому элементу множества а,еЛ будет соответствовать отдельная вершина v^G мультиграфа этого отношения, а каждому кортежу мультиотношения rkeQ* будет соответствовать а, количество дуг мультиграфа с началом в вершине у, и концом в вершине vr
Понятие мультиграфа используется при графическом представлении структуры сетей Петри и их обобщений в главе 10.
Приложение 2
Основы математической логики
Логика как наука об особенностях и формах мышления имеет весьма древнюю историю, истоки которой берут начало с творчества таких античных философов, как Аристотель (384—322 до н. э.). Зенон (336—264 до н. э.), Демокрит (460—370 до н. э.). Изучая структуру и формы человеческой мысли, логика отвлекается от конкретного содержания, которое могут заключать в себе те или иные формы мысли. Тем самым логика абстрагируется от реальных объектов, предметов и явлений, которые являются элементами мыслительного процесса.
Начиная с античных философов, предметом логики принято считать изучение структуры и взаимосвязей форм, в рамках которых реализуется процесс человеческого мышления. Именно в этом аспекте логику называют также формальной логикой.
Разработка формально-логических средств для анализа логических основ математики привела к появлению математической логики. Идея построения универсального символического языка для математики и формализации на его основе процесса математического доказательства теорем принадлежит немецкому математику и философу Г. Лейбницу (1646—1716). Важный вклад в начальный этап разработки аппарата математической логики внесли Дж. Буль (1815—1864), Г. Фреге (1948— 1925), Дж. Пеано (1858—1932), Б. Рассел (1872—1070), А. Уайтхед (1061—1947), Н. И. Лобачевский (1792—1856). Именно в этот период были сформулированы принципы аксиоматического метода в математике, а также разработаны основы логики высказываний и логики предикатов.
Важнейшим событием не только в истории логики, но и в науке в целом, стала программа обоснования математики на базе математической логики, с которой выступил на II Математическом Конгрессе математиков в 1900 г. немецкий математик Д. Гильберт (1862—1943). Сформулированные им проблемы математики на несколько десятилетий определили развитие некоторых направлений фундаментальной математики и математической логики. Именно этот период принято считать началом современного этапа развития математической логики, характерной особенностью которого является применение строгих математических средств для изучении формальных аксиоматических теорий. Наибольший вклад в разработку математической логики на этом этапе внесли К. Гёдель (1906—1978), А. Чёрч (1903—1995), А. М. Тьюринг (1912—1954), Г. Ген цен (1909—1945), П. С. Новиков (1901—1975), А. И. Мальцев (1909—1967), А. А. Марков (1903—1979).
Отличие современной формальной логики от классической заключается не в предмете исследования, а в применяемых методах, которые основаны на математических средствах аксиоматизации и формализации точных рассуждений. Именно эти методы способствовали интенсивному развитию математической логики, в рамках которой были решены многие проблемы, такие как установление или доказательство полноты, непротиворечивости и разрешимости различных формально-логических теорий.
На развитие математической логики в последние десятилетия оказали влияние две основные тенденции.
С одной стороны, инженерная разработка вычислительных устройств потребовала развития математических средств моделирования и проектирования соответствующих технических устройств, что послужило стимулом к исследованию различных логико-алгебраических систем.
С другой стороны, интенсивное развитие проблематики искусственного интеллекта привело не только к разработке логико-лингвистических моделей представления знаний и появлению основанных на правилах экспертных систем (продукционных экспертных систем), но и созданию неклассических логик, которые специально предназначены для моделирования тех или иных аспектов человеческого мышления. В этом контексте нечеткая логика представляет собой вариант неклассической логики.
В контексте нечеткого моделирования наибольший интерес представляют три раздела математической логики, а именно: логика высказываний, логика предикатов (логика предикатов первого порядка) и продукционные системы (системы, основанные на правилах). Выбор этих тем определяется исключительно возможностью использования соответствующих базовых логических конструкций для обобщения в рамках нечеткой логики и нечеткого логического вывода.
Классическая логика высказываний
Хотя исторически тремя базовыми конструкциями формальной логики являются понятие, суждение и умозаключение, в математической логике главным образом исследуются формы взаимосвязей между логическими высказываниями или предложениями. Важное значение при этом имеют используемые для этих целей символические обозначения или синтаксис формально-логических теорий, а также логические формулы, которые могут быть построены на основе высказываний, предикатных и функциональных символов, логических связок и кванторов.
Основные понятия логики высказываний
Высказывание. Высказыванием (элементарным высказыванием) в математической логике называется повествовательное предложение, выражающее законченную мысль, относительно которой мы можем судить истинна она или ложна, но не то и другое одновременно.
Важной особенностью логики высказываний является то, что само элементарное высказывание не подлежит какому-либо синтаксическому или лингвистическому анализу. Другими словами, ответ на вопрос: "Почему то или иное элементарное высказывание является истинным или ложным?" лежит за пределами логики и может служить предметом специальных исследований.
Пример П2.1. Ниже приводятся примеры элементарных высказываний:
Москва — столица Российской Федерации.
Сегодня пасмурная погода.
4 является корнем уравнения-. у2= 16.
4>10.
10 делится на 5 без остатка.
Элементарные высказывания будем обозначать заглавными буквами: А, В, С, D (возможно, с индексами). По определению множество значений истинности высказываний состоит из двух элементов: ристина", "ложь"}. Традиционно эти значения истинности обозначают буквами {И, Л}, при этом значению "истина" соответствует буква И, а значению "ложь" — буква Л.
Примечание
Иногда значения истинности обозначают цифрами {0, 1}, при этом значению "истина” соответствует цифра 1, а значению "ложь" — цифра 0. В общем случае то или иное обозначение значений истинности в математической логике не имеет принципиального значения, поскольку отражает лишь синтаксический аспект логических исчислений. Однако в контексте нечеткого моделирования для нас будет удобным использовать значения {0, 1}, которые в нечеткой логике естественным образом обобщаются до интервала [0, 1].
Применительно к рассмотренным выше примерам высказываний истинными являются высказывания; 1, 3, 5; а высказывание 4 является ложным. Относительно высказывания 2 ситуация представляется не столь тривиальной, поскольку его истинность зависит от того, какая в действительности погода на текущий день. Специфический характер подобного рода высказываний послужил основой для рассмотрения так называемых переменных высказываний, т. е. элементарных высказываний, которые в том или ином контексте могут принимать одно из двух значений истинности.
Примечание
Для оценки истинности произвольного элементарного высказывания можно ввести в рассмотрение специальное отображение Т, которое действует из множества рассматриваемых элементарных высказываний U в двухэлементное множество: {И, Л} или {0, 1}, т. е. Т : U-» {И, Л} или Т : U-^{0, 1}. В этом случае значение истинности некоторого элементарного высказывания АеС/ будем обозначать через Т(А). Так, если обозначить элементарное высказывание (1) из примера П2.1 через Ai, то его истинность формально может быть записана как T(Ai), а количественно равна 1, т. е. T(Ai) = 1.
В логике высказываний представляют интерес более сложные высказывания, которые состоят из элементарных, соединенных логическими связками или операциями.
Основные логические операции над высказываниями
Логическое отрицание. Это унарная логическая операция над элементарным высказыванием, результат которой является также высказыванием и принимает значение "истина", если исходное высказывание ложно и значение "ложь", если исходное высказывание истинно.
Используя символические обозначения и обозначив произвольное элементарное высказывание, например, через А, его отрицание записывается как: -.А (читается как "не А", "неверно, что Л").
Примечание
Кроме указанного обозначения в литературе можно встретить и другие обозначения отрицания, например." —, ~, not, не.
В математической логике принято определять логические операции с помощью так называемых таблиц истинности, которые определяют истинность результата рассматриваемой операции для каждого из значений истинности исходного или исходных высказываний. Так операция логического отрицания полностью определяется своей таблицей истинности (табл. П2.1).
Таблица П2.1. Таблица истинности логического отрицания
А^А
А-,А
ИЛ
ЛИ
Примером применения операции логического отрицания к высказыванию "Москва— столица Российской Федерации" будет высказывание "Неверно, что Москва — столица Российской Федерации", которое принимает значение "ложь". Отрицанием высказывания "4>10" будет высказывание "4<10", которое принимает значение "истина".
Логическая конъюнкция (обозначается через "АлВ"). Это бинарная операция над двумя высказываниями, результат которой равен значению "истина", если истинны оба высказывания одновременно и значение "ложь" во всех остальных случаях.
Высказывание: АлВ читается — "А и В”. Логическую конъюнкцию также называют логическим "И". Эта операция может быть определена соответствующей таблицей истинности (3-й столбец в табл. П2.2).
Примечание
Кроме указанного обозначения в литературе можно встретить и другие обозначения для конъюнкции, например: &, •, and, и.
Примером логической конъюнкции может служить составное высказывание: "Москва — столица Российской Федерации и 4 является корнем уравнения-. у2=16", которое принимает значение "истина". Результат логической конъюнкции высказываний "4>10 и 10 делится на 5 без остатка" принимает значение "ложь".
Логическая дизъюнкция (обозначается через "AvB"). Это бинарная операция над двумя высказываниями, результат которой равен значению "ложь", если ложны оба высказывания одновременно и значение "истина" во всех остальных случаях.
Высказывание: AvB читается — "Л или В". Логическую дизъюнкцию также называют логическим неисключающим "ИЛИ". Эта операция также может быть определена соответствующей таблицей истинности (4-й столбец в табл. П2.2).
Примечание
Кроме указанного обозначения в литературе можно встретить и другие обозначения для дизъюнкции, например. |, or, или.
Примером логической дизъюнкции может служить составное высказывание: "Москва — столица Российской Федерации или 4 является корнем уравнения-. j2=16", которое принимает значение "истина". Результат логической дизъюнкции высказываний "4>10 или 10 делится на 5 без остатка" также принимает значение "истина".
Таблица П2.2. Таблица истинности основных бинарных логических операций
АВАлВAvBА =>ВА=В
ИИИИ
ии
ИЛЛИ
лл
лили
ил
лллл
ии
Логическая импликация (обозначается через "Ат>В"). Бинарная операция над двумя высказываниями, результат которой принимает значение "ложь" в случае истинности высказывания А и ложности высказывания В и значение "истина" во всех остальных случаях.
Высказывание: АгэВ читается — "А влечет В", "из А следует В", "если А, то В". Последнее прочтение для импликации использовать не целесообразно, чтобы отличать ее от правила продукции. Логическая импликация может быть определена соответствующей таблицей истинности (5-й столбец в табл. П2.2).
^ Примечание
Кроме указанного обозначения в литературе можно встретить и другие обозначения для импликации, например: =>, -». Что касается условных конструкций типа if.. . then (если.. . то), которые используются в различных языках программирования, то, как будет видно из последующего изложения, они применяются для обозначения правил продукций. Как будет показано далее, операцию импликации высказываний в общем случае следует отличать от правила продукции.
Примером логической импликации может служить составное высказывание: "Если Москва — столица Российской ФеОерации, то 4 является корнем уравнения: j2=16", которое принимает значение "истина". Результат логической импликации высказываний "Если 4>10, то 10 делится на 5 без остатка" также принимает значение "истина”. С другой стороны, составное высказывание: "Если Москва — столица Российской Федерации, то 4>10" принимает значение "ложь".
Импликация играет особую роль в процессе логических рассуждений. Первый ее операнд (высказывание) называется посылкой (или антецедентом), а второй — заключением (или консеквентом). Из таблицы истинности импликации можно заметить, что если посылка истинна, то импликация принимает значение истинности заключения. У тех, кто впервые сталкивается с этой логической связкой, может вызвать недоумение тот факт, что импликация может быть истинной даже тогда, когда ее посылка ложна (3-я и 4-я строки в 5-м столбце табл. П2.2). Тем не менее, в логике принято считать, что при импликации из лжи может следовать все, что угодно, а из истины — только истина. Следует также отметить, что в отличие от дизъюнкции и конъюнкции, импликация является некоммутативной логической связкой.
Примечание
Говоря о логической импликации, следует отметить, что она не заключает в себе никакой причины, временной или иной взаимосвязи между посылкой и заключением. Чтобы явно отметить этот факт, определенную подобным образом импликацию еще называют материальной импликацией. Эта связка является основной в математических рассуждениях, поскольку соединяет условие Р и утверждение Q в теоремах. Однако в общем случае запись P^Q может оказаться некорректной, поскольку в качестве посылки и заключения могут использоваться произвольные высказывания, в том числе и не принадлежащие тому или иному логическому формализму. Именно по этой причине для обозначения логического следования в математических теоремах используется другое обозначение: P=>Q.
Логическая эквивалентность (обозначается через "="). Это бинарная операция над двумя высказываниями, которая принимает значение "истина" в случае истинности или ложности обоих высказываний одновременно и значение "ложь" во всех остальных случаях.
Высказывание: А^В читается — "Л эквивалентно В", которая может быть определена соответствующей таблицей истинности (б-й столбец в табл. П2.2).
Примечание
Кроме указанного обозначения в литературе можно встретить и другие обозначения для эквивалентности, например: ■», <->, *.
Примером логической эквивалентности может служить составное высказывание: "Москва — столица Российской Федерации эквивалентно тому, что 4 является корнем уравнения-. у2=1б", которое принимает значение "истина”. С другой стороны, результат логической эквивалентности высказываний "4>10 эквивалентно тому, что 10 делится на 5 без остатка” принимает значение "ложь".
Поскольку с помощью рассмотренных логических связок могут быть образованы достаточно сложные логические высказывания, для явного указания порядка их применения по аналогии с арифметическими операциями используются круглые скобки. Так, например, составное высказывание: (PidQ) id (-.Q id -iP) остается истинным при любых конкретных высказываниях, которые можно подставить вместо букв Р и Q. В этом случае обязательным условием корректности логических рассуждений является требование одновременной подстановки вместо одинаковых букв одних и тех же высказываний.
Примечание
Кроме рассмотренных логических связок существуют и другие бинарные логические операции. Поскольку каждая бинарная связка может быть задана своей таблицей истинности, которая имеет 4 строки, а каждая строка может содержать одно из двух значений истинности {И, Л), то общее количество различных бинарных связок равно: 24=16. С другими логическими связками можно познакомиться в дополнительной литературе по математической логике.
Истинность произвольного высказывания может быть установлена с помощью построения так называемой таблицы истинности. Таблицей истинности высказывания называется специальным образом построенная таблица, содержащая значения истинности всех элементарных высказываний и результатов выполнения логических операций, входящих в состав данной составного высказывания.
Правило (алгоритм) построения таблицы истинности для произвольного высказывания следующее:
Определить все элементарные высказывания, входящие в состав рассматриваемого составного высказывания. Пусть число различных элементарных высказываний в составном высказывании равно к.
Определить последовательность выполнения логических операций в данном составном высказывании, при необходимости расставив для наглядности скобки. Пусть общее количество логических операций, которые используются с различными операндами, равно т.
Изобразить таблицу, содержащую 1к +1 строк (первая из которых используется в качестве заголовка) и к+т столбцов.
Первые к столбцов таблицы должны содержать все комбинации значений истинности элементарных высказываний, входящих в состав составного высказывания.
Оставшиеся столбцы заполняются слева направо в последовательности выполнения логических операций в составном высказывании, при этом каждой операции соответствует свой столбец таблицы. Тогда последний правый столбец построенной таким образом таблицы содержит искомые значения истинности рассматриваемого составного высказывания.
Пример П2.2. В качестве примера рассмотрим процесс построения таблицы истинности для следующего составного высказывания: ((PzdQ) а (Q=>R)) 2) (Pz)R). Для начала определим общее число различных элементарных высказываний: к=3 и общее число логических операций, которые используются с различными операндами: т=5. Далее изобразим таблицу, содержащую 23+1=9 строк и 3+5=8 столбцов. В данной таблице (табл. П2.3) первые три столбца содержат все комбинации значений истинности элементарных высказываний данной формулы. Следующие четыре столбца таблицы содержат значения истинности отдельных частных высказываний рассматриваемого составного высказывания. Наконец последний столбец таблицы содержит значения истинности всего составного высказывания в целом.
Как нетрудно заметить, рассмотренное в примере П2.2 составное высказывание принимает значение "истина" для всех возможных значений истинности элементарных высказываний, входящих в состав этого составного высказывания. Последнее получило даже специальное название — закон силлогизма.
Таблица П2.3. Таблица истинности формулы исчисления высказываний из примера П2.2
р
Q
R
PzdQ
QzdR
(Р:эО)а(СЬР)
P^R
((P^Q)A(Q^R)b(PzDQ )
и
И
И
И
И
И
И
И
и
и
л
и
л
л
л
и
и
л
и
л
и
л
и
и
и
л
л
л
и
л
л
и
л
и
и
и
и
и
и
и
л
и
л
и
л
л
и
и
л
л
и
и
и
и
и
и
л
л
л
и
и
и
и
и
Формальные теории
Более общий и строгий подход к установлению истинности произвольного высказывания основывается на рассмотрении формальных теорий, которые позволяют изучать высказывания с помощью так называемого аксиоматического метода.
В общем случае формальная или аксиоматическая теория Т считается определенной, если выполнены следующие условия:
Задан некоторый алфавит А в виде не более чем счетного множества символов теории Т. При этом произвольная конечная последовательность символов теории называется выражением или словом теории Т. Множество всех выражений или слов теории Тобозначим через /4(7).
Определено подмножество выражений теории рсА(Т), называемых формулами или правильно построенными выражениями теории Т.
Среди формул множества Е выделено некоторое подмножество формул НсЕ, которые называются аксиомами теории Т.
Задано некоторое конечное число отношений R\, Ri, ..., R„ между формулами, которые называются правилами вывода. Совокупность этих отношений обозначим черезR.
Формальную теорию будем обозначать принятым в математике способом для обозначения математических объектов, а именно — в форме кортежа составляющих ее конструкций: Т=<А, Е, Я, R>. При этом слово "формальная" для краткости опускают.
В общем случае формула Сер формальной теории Т называется непосредственным следствием формул Fi, Fi,..., FkeF по правилу R, этой же формальной теории, если формулы Fi, F2,..., Fk. G удовлетворяют отношению RP Выводом в формальной теории Тназывается всякая упорядоченная последовательность формул или кортеж произвольной длины < Fi, F2,..., Fk >, такая, что любая из формул последовательности является или аксиомой теории, или непосредственным следствием каких-либо предыдущих формул этой последовательности.
Формула Сер формальной теории Т называется теоремой этой теории, если в Т существует такой вывод, в котором последней формулой является С. Такой вывод называется выводом теоремы (формулы) С.
Одной из центральных проблем изучения формальных теорий является решение вопроса о том, является ли некоторая формула теории теоремой или нет. Наиболее конструктивным ответом на поставленный вопрос служит нахождение такой процедуры или алгоритма, с помощью которого для любой произвольной формулы теории можно установить, существует ли ее вывод в этой теории или нет.
Формула, для которой такая процедура существует, называется разрешимой в этой теории, в противном случае— неразрешимой. Другими словами, для неразрешимых формул отсутствует алгоритм выяснения свойства формулы быть теоремой в данной теории.
Исчисление высказываний как формальная теория
Как было отмечено выше, математическая логика изучает структуру логических рассуждений с формальной точки зрения, абстрагируясь от содержания фраз естественного языка, которыми могут быть выражены те или иные конкретные высказывания. Формальная теория, в основе которой лежит логика высказываний, получила называние исчисления высказываний.
Исчисление высказываний представляет собой формальную теорию, в рамках которой составные высказывания являются формулами исчисления высказываний, а правила образования таких высказываний строго определяются некоторым рекурсивным образом.
Таким образом, алфавит исчисления высказываний содержит три группы символов:
А, В, С, Р, Q,... — элементарные высказывания или атомы (буквы).
-л, v, л, о, s — символы логических операций или связок.
( , ) — вспомогательные символы (скобки).
Формулой исчисления высказываний называется выражение, составленное из символов алфавита и удовлетворяющее следующим правилам построения".
Всякое элементарное высказывание является формулой исчисления высказываний (базис).
Если Р, Q — формулы исчисления высказываний, то выражения: -.Р, -.Q, (PvQ), (PaQ), (PzdQ), (P=Q) являются формулами исчисления высказываний (индукционный таг).
Формулой исчисления высказываний является любое выражение, которое может быть получено с помощью правил (1) и (2) (ограничение).
Если при построении некоторой формулы другая формула используется как элемент в индуктивном шаге (2), то последняя называется подформулой исходной формулы.
Правила построения формул исчисления высказываний (I)—(3) позволяют строить формулы какой угодно сложности. Например, выражение: ((-.PvQ) => о ((PaQ) = Q)) является формулой исчисления высказываний. Напротив, выражение: ((-.PvQ) zd ((aQ) -.Р)) не является формулой исчисления высказываний, поскольку подвыражения (aQ) и (aQ) -.Р), входящие в его состав, не удовлетворяют второму из правил построения формул.
Множество формул исчисления высказываний является подмножеством множества всех выражений, составленных из алфавита исчисления высказываний. Поскольку последнее множество является счетным (можно установить взаимно однозначное соответствие между этим множеством и множеством натуральных чисел), следовательно, множество формул исчисления высказываний, являясь бесконечным, также является счетным.
Порядок применения логических операций в формулах исчисления высказываний устанавливается аналогично принятому в алгебре — слева направо. Иногда в дополнение к этому задается приоритет логических операций. Для исключения неоднозначности или изменения порядка выполнения операций используются вспомогательные символы —- круглые скобки.
Примечание
Выше было показано, что в логике высказываний существует общая процедура, которая позволяет установить истинность произвольной формулы на основе построения ее таблицы истинности. Поскольку число всех возможных интерпретаций той или иной формулы является конечным, то методом полного перебора мы всегда можем установить выполнимость (общезначимость, противоречивость) любой формулы. Говоря более строго, проблема выявления общезначимости или выполнимости формулы исчисления высказываний является NP-полной. Это означает, что не существует (возможно, пока) эффективного алгоритма с полиномиальной оценкой трудоемкости, который бы позволил конструктивно решить указанную проблему. Тем не менее наличие рассмотренной выше процедуры построения таблиц истинности для формул позволяет говорить об алгоритмической разрешимости исчисления высказываний, что имеет важное значение в математической логике.
Приписывание конкретных значений истинности для входящих в некоторую формулу элементарных высказываний называется интерпретацией данной формулы. Другими словами, если задана некоторая формула исчисления высказываний G, в состав которой входят элементарные высказывания: Ai, А2, Аз,..., А,„ то интерпретацией этой формулы является приписывание некоторой фиксированной комбинации значений истинности для этих элементарных высказываний, при которой каждому из А, поставлено в соответствие либо значение "И", либо значение "Л", но не оба значения одновременно. Очевидно, подобная формула будет иметь 2" возможных интерпретаций. Нетрудно заметить, что каждая строка таблицы истинности некоторой формулы представляет собой некоторую ее интерпретацию.
Если произвольная формула G исчисления высказываний истинна при некоторой интерпретации, то говорят, что эта формула выполнима в этой интерпретации или данная интерпретация удовлетворяет рассматриваемой формуле G. Моделью формулы G называется произвольная ее интерпретация, которая удовлетворяет этой формуле. Таким образом, семантическая выполнимость некоторой формулы означает существование для нее хотя бы одной модели.
Формула исчисления высказываний, которая принимает значение "истина" для всех возможных значений истинности входящих в состав этой формулы элементарных высказываний называется тождественно истинной.
Формула исчисления высказываний, которая принимает значение "ложь" для всех возможных значений истинности входящих в состав этой формулы элементарных высказываний называется тождественно ложной или невыполнимой формулой. Наконец, формула исчисления высказываний, которая принимает значение "истина" хотя бы для одной комбинации значений истинности входя-
Приложение 2. Основы математической логики 627 щих в состав этой формулы элементарных высказываний, называется семантически выполнимой формулой или просто выполнимой.
Пример П2.3. Примерами тождественно истинных формул, которые играют особую роль не только в исчислении высказываний, но и в математической логике в целом, являются следующие формулы:
(P^^bQ^P)— закон контрапозиции.
(-,Р^)а(-,Р^9) о Р — закон доказательства от противного.
-i(-iP) s Р — закон двойного отрицания.
-i(PvQ) = (-iPa-,Q) — закон отрицания дизъюнкции.
->(PaQ) = (->Pv-iQ) — закон отрицания конъюнкции.
Примерами тождественно ложных формул являются следующие формулы:
Pa-iP — закон противоречия.
((P=3Q)a(P=>,Q))SP.
Примерами выполнимых формул являются следующие формулы:
(P^Q)a(P^Q).
(PaQ)vR.
Примечание
Доказательство этих утверждений с помощью построения таблиц истинности для соответствующих формул предлагается выполнить читателям самостоятельно в качестве упражнения.
Вернемся к формальному определению исчисления высказываний как формальной логической системы, для чего необходимо определить систему или множество аксиом и правила вывода.
В качестве системы аксиом исчисления высказываний могут быть использованы следующие формулы:
Азз(ВоА).
(Azd(Bt)C))zd((Az>B)zd(Az>C)).
АаВ г>А.
АаВ zdB.
(Az)B) j((A =)C)zd(A d(BaC))).
ArxAvB.
BoAvB.
(Л^С^аВоС^аЛ^ВЬС))).
(А^В)т>ЬВ^А).
A r>(-i->A).
lL(-.-.A)^A.
Примечание
Поскольку вместо формул А, В, С могут быть подставлены произвольные формулы исчисления высказываний, аксиомы (1—11), строго говоря, представляют собой схемы аксиом. В этом случае множество аксиом исчисления высказываний является бесконечным. Эта система аксиом предложена П. С. Новиковым.
Правилами вывода исчисления высказываний являются следующие правила:
Правгию заключения или так называемое правило MP (modus ponens— читается, как "модус нонене"). Если А и А:эВ произвольные выводимые формулы исчисления высказываний, то В — также выводимая формула. Символически А, А з В
это записывается в виде: .
Правило подстановки. Пусть F — выводимая в исчислении высказываний фор- ■мула, которая содержит символ некоторого элементарного высказывания А, а G — произвольная формула исчисления высказываний. Тогда формула В, которая получается из F заменой всех вхождений элементарного высказывания А на формулу G, также является выводимой в исчислении высказываний.
Пример П2.4. В качестве примера вывода в исчислении высказываний рассмотрим вывод простой формулы: AzdA, т. е. докажем, что эта формула является теоремой исчисления высказываний. С этой целью рассмотрим следующую последовательность формул:
■— аксиома (1).— правило подстановки.■— аксиома (2).— правило подстановки.— правило вывода МР (2, 4).— правило подстановки.— правило вывода МР (6, 5).■— аксиома (1).— правило подстановки.■— аксиома (2).— правило подстановки.— правило вывода МР (2, 4).— правило подстановки.— правило вывода МР (6, 5).Azd(BzdA)
■— аксиома (1).
— правило подстановки.
■— аксиома (2).
— правило подстановки.
— правило вывода МР (2, 4).
— правило подстановки.
— правило вывода МР (6, 5).
■— аксиома (1).
— правило подстановки.
■— аксиома (2).
— правило подстановки.
— правило вывода МР (2, 4).
— правило подстановки.
— правило вывода МР (6, 5).
Azj((Az?A)oA)
(A3(BzdC))3((A^B)zd(AzdC))
(A=>((A3A)zdA))3((Azd(A=)A))zd(AzdA))
(A^(AhA))d(AjA)
Azd(AzdA)
AzdA
Тем самым доказано исходное утверждение о том, что формула АоА является теоремой исчисления высказываний.
Логика предикатов
Рассматриваемые в исчислении высказываний элементарные высказывания и формулы позволяют формализовать лишь незначительную часть логических рассуждений. Причина этого заключается в том, что высказывания представляют собой неделимый объект, не имеющий своей внутренней структуры. В то же время очевидно, что такие высказывания, как: "Все автомобили имеют белый цвет" и "Некоторые автомобили имеют белый цвет" имеют различные значения истинности в силу различия их внутренней структуры. Более сложная ситуация
связана с невозможностью в рамках исчисления высказываний формализовать логические рассуждения, представленные ниже.
Все государства имеют свою столицу. Российская Федерация — государство. Следовательно, Российская Федерация имеет свою столицу.
Российская Федерация имеет морские границы. Российская Федерация — государство. Следовательно, некоторые государства имеют морские границы.
Все натуральные числа, которые делятся на 4 без остатка, являются четными. Следовательно, некоторые из четных чисел делятся на 4 без остатка.
Формализация подобных семантических аспектов логических рассуждений оказалась возможной на основе введения в рассмотрение специальных объектов, которые получили название предикатов.
Основные понятия логики предикатов первого порядка
Предикат. Предикатом называется некоторое высказывание относительно некоторых внутренних переменных и принимающее значение "истина" или "ложь" только при подстановке вместо этих переменных тех или иных конкретных объектов.
Более строгое определение основано на введении в рассмотрение некоторого множества A = {ai, аз,..., а,,...} и переменных х, у, z,..., которые могут принимать значения из этого множества, т. е. х, у, zeA. Каждая из таких переменных получила название предметной переменной, а само множество А допустимых значений предметных переменных называется предметной областью. То или иное высказывание об элементах множества А будем обозначать через P(oi), 0^1, «2), R(ai, аз, аз) и т. д. При этом каждое такое высказывание может принимать одно из множества значений истинности {И, Л), но не оба одновременно.
Если вместо элементов сп, аз, аз в высказывания Р(рп), Q(a\. аз) и R(ai, аг, аз) подставить предметные переменные: х, у, zeA, то получим предикаты: Р(х), Q(x, ^) и R(x, у, z). При этом Р^х) называется одноместным предикатом, Q^x, р) — двуместным предикатом, R(x, у, z) — трехместным предикатом и т. д.
Пример П2.5. Примерами предикатов могут служить следующие переменные высказывания:
Рассмотрим в качестве предметной области множество натуральных чисел, а в качестве предиката Р(х)— высказывание: "х— простое число". Тогда для значения х = 7 предикат Р(7) принимает значение "истина", а для значения х = = б предикат Р(6) принимает значение "ложь".
Для той же предметной области рассмотрим предикат 0х, у), семантика которого выражается переменным высказыванием: "х делится на у без остатка". Тогда высказывания: 04. 2) и 010, 5) принимают значение "истина", а высказывания: 09, 2) и 010, 3) — значения "ложь".
□ Рассмотрим в качестве предметной области декартово произведение множества авиарейсов: Л={ЬН6370, МА232, Z8221, Z8229, Z8257, Z8277, Z8285} и множества городов из примера П1.3: В-{Амстердам, Афины. Барселона, Каир, Нью-Йорк, Париж, Хельсинки}. Тогда двухместный предикат Р{х, )■) будет описывать бинарное отношение Qi сАуВ, устанавливающее соответствие между каждым номером авиарейса и аэропортом назначения. В этом случае высказывание P(Z8277, Амстердам) принимает значение "истина", а высказывание Р(МА232, Хельсинки) — значение "ложь".
Примечание
Как было отмечено в приложении 1, в общем случае для произвольного множества А с элементами из универсума X существует формальная взаимосвязь между характеристической функцией этого множества 7_д{х) и некоторым одноместным предикатом Рд{х), который, возможно неявно, выражает какое-нибудь характеристическое свойство этого множества. А именно, если элемент универсума аеХ обладает рассматриваемым характеристическим свойством, т. е. значение предиката Рд{а) — ’’истина”, то %д(а)=1 и аеА. Если же элемент аеХ не обладает этим свойством, т. е. значение предиката Рд{а)— "ложь", то хд{а)=0 и а^А. Верно и обратное заключение. Эта связь характеристической функции множества и соответствующего ей предиката играет важную роль при установлении взаимосвязей между теорией нечетких множеств и нечеткой логикой.
Логические операции над предикатами
Поскольку предикаты являются переменными высказываниями, то применительно к ним могут быть обобщены все рассмотренные выше логические операции: {-1, л, v, п, =}. При этом результатом выполнения соответствующих операций будет то значение истинности, которое получается при одновременной подстановке вместо предметных переменных конкретных значений элементов из предметной области.
Пример П2.6. Будем использовать в качестве предметной области множество натуральных чисел. Рассмотрим два предиката: Р{х) — "х — четное число" и Q{x, j) — "х строго больше у". Тогда переменное высказывание: "х — четное число и х строго больше У формально может быть записано с помощью логической конъюнкции исходных предикатов: P{x)aQ{x, у). По определению конъюнкции составное высказывание P(4)aQ(4, 3) принимает значение "истина", а высказывание P(5)a0(7, 4) — значение "ложь". Аналогичным образом может быть установлена истинность высказываний P(4)vg(3, 4), Р(3)о^(8, 3), P(5)=Q(5, 7) и ложность высказываний P(3)vQ(3, 6), P(4)z)Q(3, 6), P(5)~Q(1, 5).
Кванторы логики предикатов
В логике предикатов нашли применение так называемые кванторы, которые также рассматриваются в приложении 1. Применительно к предикатам используются эти же кванторы и их обозначения: знак "V" для квантора общности и знак "Э" для квантора существования. Каждый из кванторов может быть применен только к отдельной предметной переменной, входящей в состав того или иного предиката.
Семантика этих предикатов следующая. Пусть А — предметная область, на которой определен некоторый предикат Р(х). Тогда выражение Vx, Р(х) означает: "Для всякого (любого, каждого) х из предметной области А имеет место (справедливо, истинно) высказывание Р^хУ’. Выражение Эх, Р(х) в свою очередь означает: "Существует (найдется хотя бы один) элемент х из предметной области А, для которого имеет место (справедливо, истинно) высказывание Р(хУ.
Применение этих кванторов естественным образом расширяется на многоместные предикаты. При этом вхождение предметной переменной в предикат называется связанным, если эта переменная используется с одним из кванторов или находится в области действия применяемого к этому предикату квантора. В противном случае вхождение предметной переменной в рассматриваемый предикат называется свободным. Если все вхождения предметных переменных в некоторый предикат связанные, то такой предикат становится обычным высказыванием.
Пример П2.7. Для простоты будем по-прежнему использовать в качестве предметной области множество натуральных чисел. Рассмотрим два предиката: Р(х) — "х — четное число” и Q(x,у) — "х строго больше р". Тогда высказывание: "Любое х — четное число" формально может быть записано с помощью квантора общности следующим образом: Vx, Р(х). Очевидно, это высказывание принимает значение "ложь". Напротив, высказывание: "Существует натуральное х, которое является четным числом” формально может быть записано с помощью квантора существования следующим образом: Эх, Р(х). Очевидно так же, что это высказывание принимает значение "истина". Более сложный случай применения кванторов— выражение: 3xVp, (P(x)aQ(x, р)), которое является высказыванием со значением истинности "ложь".
В общем случае предикат P(xi, хг,..., х,„) от предметных переменных х>, хз,..., х,„ называется тождественно истинным, если он принимает значение "истина" при любой подстановке элементов из предметной области вместо предметных переменных, входящих в состав этого предиката. Предикат P(xi, хз,..., х„д от предметных переменных xi, хз,..., хт называется тождественно ложным, если он принимает значение "ложь" при любой подстановке элементов из предметной области вместо предметных переменных, входящих в состав этого предиката. Наконец, предикат P(xi, хз,..., х,„) называется выполнимым, если он принимает значение "истина" хотя бы для одной из подстановок элементов из предметной области вместо предметных переменных, входящих в состав этого предиката.
Исходя из определения кванторов, предикат Р(х\, хз,..., хт) — тождественно истинный, если высказывание VxiVx2...Vx„„ P(xi, хг,..., х,„) принимает значение
"истина". С другой стороны, предикат P(xi, хг,..., х,„)— тождественно ложный, если высказывание 3xi3x2...3x„„ P(xi, хг,..., хт) принимает значение "ложь".
Исчисление предикатов первого порядка как формальная теория
Формально-логический анализ рассуждений в логике предикатов безотносительно к содержанию отдельных предикатов приводит к определению соответствующей формальной системы — исчислению предикатов первого порядка. По аналогии с исчислением высказываний в этом случае также можно определить строгий логический формализм, который позволяет рассматривать формулы, построенные с помощью введенных выше понятий и обозначений.
Алфавит исчисления предикатов первого порядка (далее — просто исчисления предикатов) содержит следующие группы символов:
Не более чем счетное множество предметных переменных: {xi, хг,..., х,,...}.
Не более чем счетное (возможно, пустое) множество предметных констант или элементов предметной области: А-\а\,и^...,аГ..Д.
Не более чем счетное (возможно, пустое) множество функциональных символов (букв): {/i./z,-•-, Л,--}-
Не более чем счетное множество предикатных символов (букв): {Pi, Pi,..., Рп„„Д.
Символы логических операций (связок): {-1, v, л, z>, s}.
Символы логических кванторов: {3, V).
Вспомогательные символы (скобки): (,) и запятая.
Из этих групп символов пояснения требуют лишь множество функциональных символов (букв): \J\,Ji,..., fk,...}, каждый из которых представляет собой некоторое отображение из предметной области А (в случае одноместного функционального символа) или декартова произведения АхАх...хА (в случае многоместного функционального символа) в эту же предметную область А. Другими словами, Jk'.A—>А или Jk; АхАх...хА—>А. При этом их часто записывают в виде: Л(л) ИЛИ /А(Х| , хг,..., х„), где натуральное п обозначает количество аргументов функционального символа или его местность. Примерами двухместных функциональных символов могут служить обычные арифметические операции, а также бинарные операции максимума и минимума на множестве всех действительных чисел.
Прежде чем определить собственно формулы исчисления предикатов, необходимо предварительно определить некоторые дополнительные понятия — термы и атомы. Термы в исчислении предикатов определяются рекурсивно следующим образом:
Всякая предметная переменная или предметная константа является термом.
Если/t— некоторый «-местный функциональный символ, a Л, ti,..., lk— термы, то/Дл, ti,.... ZJ является термом.
Других правил образования термов нет.
Например, если х, у — термы, a max и min — двухместные функциональные символы, то max(x, у) и min(x. j) — также термы.
Атомы в исчислении предикатов определяются рекурсивно следующим образом:
Если Рт— некоторый «-местный предикатный символ, a h, ti,..., t„— термы, то PmU', U,..., t^ является атомом.
Если Zi, Z2— некоторые термы, то выражение Zi=Z2, где знак "=" — равенство, является атомом.
Других правил образования атомов нет.
Примерами атомов могут служить выражения: Р(х+^), Q(max(x, у), z), R(x, f(x,y)Y
Формулой исчисления предикатов первого порядка называется выражение, составленное из символов алфавита и удовлетворяющее следующим правилом построения-.
Всякий атом является формулой исчисления предикатов (базис).
Если Р, Q— формулы исчисления предикатов, ах— предметная переменная, то выражения: -.Р; -iQ; (Pv0; (PaQ); ^PnQy, (P=Qy. \/x, P; Vx, Q; Bx, P; Bx, Q; являются формулами исчисления предикатов (индукционный шаг).
Формулой исчисления предикатов является любое выражение, которое может быть получено с помощью правил (1) и (2) (ограничение).
Если при построении некоторой формулы другая формула используется как элемент в индуктивном шаге (2), то последняя называется подформулой исходной формулы.
Порядок применения логических операций и кванторов в формулах исчисления предикатов также устанавливается слева направо. Для исключения неоднозначности или изменения этого порядка могут быть использованы скобки.
В качестве системы аксиом исчисления предикатов могут быть использованы следующие формулы:
P^QpPY
(P^(g^0)^((P^0^(P^Q).
PaQ^P.
PaQ^Q.
(PoQY^PzdQt^P^QaQ
PtdPvQ.
Q^PvQ.
(P2>0^((^CH(Pv0^0)).
<Pt>Q)^Q^PY
P^-^P).
И. М^Р
(Va, Р(л)ЬРО).
Р^^Зх, Р(х)).
В аксиомах (12) и (13) предполагается, что терм у свободен по переменной х в формуле Р.
Примечание
Поскольку вместо формул Р, Q могут быть подставлены произвольные формулы исчисления предикатов, аксиомы (1—13) также представляют собой схемы аксиом. В этом случае множество аксиом исчисления предикатов является бесконечным.
Правилами вывода исчисления высказываний являются следующие правила:
Правило заключения или так называемое правило MP (modusponens — читается, как "модус поненс"). Если Р и P^Q произвольные выводимые формулы исчисления высказываний, то Q— также выводимая формула. Символически Р, Р D О"
это записывается в виде: — .
Q
р
Правило обобщения: , где Р— произвольная формула, в которой не-
Vx, Р(х)'
который терм заменяется предикатной переменной х.
р ZD О(хА
Первое правило Бернайса*. ■— , где формула Q(x) содержит свобод-
‘*P^(Vx,Q(x))"
ное вхождение переменной х, а формула Р — не содержит.
/Чх) ID О
Второе правило Бернайса: ———, где формула Р(х) содержит свобод-
(Зх, Р(х^ z> Q'
ное вхождение переменной х, а формула Q — не содержит.
Установление истинности произвольной формулы исчисления предикатов может быть связано с серьезными трудностями, имеющими принципиальный характер. Действительно, в общем случае отсутствует конструктивный алгоритм, который бы за конечное, хотя и возможно большое число шагов, позволил бы установить тождественную истинность или ложность произвольной формулы. Хотя, казалось бы, используемый для аналогичной цели в исчислении высказываний алгоритм построения таблицы истинности может быть обобщен для формулы исчисления предикатов, тем не менее, он совершенно не годится в случае предметной области с более чем счетной мощностью. Действительно, в этом случае потребовалось бы построить таблицу с бесконечным числом строк, что уже в принципе не позволит установить истинность произвольной формулы для подобной предметной области.
Поиск выхода из создавшегося положения послужил движущей силой развития математической логики в XX столетии. Были предложены различные формаль-
ные системы, в рамках которых удалось разработать алгоритмы (например, метод резолюций или обратный метод С. Ю. Маслова), предназначенные для поиска доказательств общезначимости формул исчисления предикатов первого порядка. Однако данная проблематика выходит за рамки настоящей книги.
Продукционные системы
Продукционные системы были разработаны в рамках исследований по методам искусственного интеллекта и нашли широкое применение для представления знаний и вывода заключений в так называемых экспертных системах, основанных на правилах (rule-based expert systems, продукционные ЭС). Поскольку нечеткий вывод реализован в форме нечетких правил продукций, рассмотрение базового формализма продукционных моделей приобретает самостоятельное значение. При этом продукционные системы не только во многом близки к логическим моделям, но и, что наиболее важно, позволяют наглядно представить практические знания экспертов в той или иной проблемной области.
Продукционная система или система правил продукций представляет собой некоторое согласованное множество отдельных продукций (или правил продукций в форме "ЕСЛИ А, ТО В"). v
В общем виде под продукцией понимается выражение следующего вида:
(О : Q\ Р; А=>В- N,
где (z)— имя продукции; Q— сфера применения продукции; Р— условие применимости ядра продукции; А=>В— ядро продукции, в котором А — условие ядра (или антецедент); В — заключение ядра (или консеквент); "=>" — знак логической секвенции (или следования); N— постусловия продукции.
Дадим краткую характеристику компонентам продукции. В качестве имени (z) продукции может выступать та или иная совокупность букв или символов, позволяющая однозначным образом идентифицировать продукцию в системе. Наиболее часто продукции хранятся в системе со своим уникальным номером.
Сфера применения продукции Q описывает явно или неявно предметную область знания, которую представляет отдельная продукция. При этом декомпозиция предметной области на отдельные независимые области может существенно повысить эффективность рассуждений в продукционной системе. Именно этот аспект при необходимости может описывать данный элемент продукции.
Условие применимости ядра продукции Р представляет собой логическое выражение (как правило, предикат). Если оно присутствует в продукции, то активизация ядра продукции становится возможной только в случае истинности этого условия. Во многих случаях этот элемент продукции может быть опущен или введен в ядро продукции.
Ядро продукции А=>В, как следует уже из его названия, является центральным компонентом продукции. Наиболее часто ядро продукции читается как "ЕСЛИ А, ТО В”, где А и В— некоторые логические выражения, которые в том или
ином контексте могут принимать значения "истина" или "ложь". При этом секвенция интерпретируется в обычном логическом смысле как знак логического следования В из истинного А. Другими словами, если истинно выражение А, то истинным следует считать и выражение В. В остальных случаях, когда А не является истинным, об истинности В ничего сказать нельзя. Во многих случаях в качестве выражения А могут использоваться сложные логические выражения, т. е. выражения, содержащие основные логические связки, такие как отрицание, конъюнкцию или дизъюнкцию.
Наконец, постусловие продукции N описывает действия и процедуры, которые необходимо выполнить в случае реализации ядра продукции, т. е. получения информации об истинности В. Характер этих действий может быть самым различным и отражать вычислительный или иной аспект продукционной системы.
Примечание
Рассмотренная выше общая форма продукции характерна для так называемых детерминированных ядер продукции. В недетерминированных продукционных системах каждая из продукций может дополнительно содержать количественную оценку степени истинности правила.
Системы продукций нашли широкое практическое применение при построении экспертных систем, которые формализуют опыт экспертов в некоторой проблемной области. Как оказалось, принимая решение, многие специалисты оперируют знаниями именно в форме правил вида "ЕСЛИ "некоторое условие" ТО "заключение". При этом в качестве условий выступают известные факты, отражающие конкретно сложившуюся ситуацию в проблемной области на текущий момент времени. Что касается заключения, то его вывод или подтверждение оказывает непосредственное влияние на процедуру принятия решения по изменению сложившейся ситуации в необходимом направлении.
Таким образом, система правил продукций представляет собой некоторое согласованное множество отдельных правил продукций, которое представляет знания экспертов в той или иной проблемной области. Такая система служит составной частью систем управления в случае их реализации в форме продукционных экспертных систем. В этом случае построение системы правил продукций или базы правил является важным этапом разработки соответствующих систем, который должен быть выполнен до начала их применения по целевому назначению.
Пример П2.7. В качестве системы продукций рассмотрим следующее множество правил продукций (базу правил), которое упрощенно представляет ситуацию таможенного досмотра граждан при пересечении границы:
ПРАВИЛО_1: ЕСЛИ "Гражданин не является высокопоставленным чиновником", ТО "он подвергается таможенному досмотру"
ПРАВИЛО_2: ЕСЛИ "Гражданин является высокопоставленным чиновником", ТО "он не подвергается таможенному досмотру"
ПРАВИЛО_3: ЕСЛИ "Гражданин не подвергается таможенному досмотру". ТО "не исключается возможность провоза наркотиков"
□ ПРАВИЛО_4: ЕСЛИ "Количество граждан, проходящих таможенный досмотр, велико", ТО "контролер испытывает чувство усталости"
□ ПРАВИЛО_5: ЕСЛИ "Контролер испытывает чувство усталости", ТО "не исключается возможность провоза наркотиков"
ПРАВИЛО_6: ЕСЛИ "Гражданин подвергается таможенному досмотру" И "в отношении этого гражданина имеется агентурная информация", ТО "исключается возможность провоза наркотиков"
ПРАВИЛО-?: ЕСЛИ "Гражданин подвергается таможенному досмотру" И "контролер использует новейшие технические средства", ТО "исключается возможность провоза наркотиков"
Примечание
Конечно, рассмотренная база правил не претендует на полноту и построена на основе лишь здравого смысла. Тем не менее, даже этот простой пример характеризует нетривиальный характер возможности реального использования подобной базы правил, которое должно быть дополнено механизмами исключения возможных конфликтов и противоречий, о которых будет сказано ниже. Более адекватный пример системы нечетких продукций был рассмотрен в главе 6.
Прямой и обратный методы вывода заключений в продукционных системах
Следующим важным компонентом продукционных систем является так называемый метод (или схема) вывода заключений на основе известных значений условий в базе правил продукций. Наиболее известными являются два таких метода вывода заключений: прямой и обратный.
О Прямой метод вывода заключений в продукционных системах, называемый также методом восходящего вывода или методом прямой цепочки рассуждений (classic forward-chaining reasoning), основан на использовании правила вывода МР. А именно, если это правило позволяет определить истинность заключения правила продукции при известной истинности его условия. Действительно, дедукция по правилу МР позволяет заключить следующее: если утверждается, что обе формулы Р и P^>Q принимают значение "истина", то значение "истина" принимает и формула Q.
Применительно к системам правил продукций прямой метод вывода реализуется посредством преобразования отдельных фактов проблемной области в конкретные значения истинности условий правил продукций. После этого преобразования те из правил продукций, для которых становятся истинными соответствующие условия, генерируют заключения своих правых частей. Эти заключения принимаются как истинные и становятся новыми фактами, которые могут быть использованы в качестве условий в рассматриваемой базе правил. При этом правила, для которых имеются истинные условия, часто называют активными.
Процесс вывода прямым методом имеет рекурсивный характер и может быть остановлен либо в случае отсутствия новых активных правил, либо в случае получения заключения, которое является целевым в контексте решения исходной проблемы. Подобное подтверждение целевого заключения характеризует успех процесса вывода, поскольку только в этом случае использование - системы продукций характеризует решение поставленной проблемы.
О Обратный метод вывода в продукционных системах, называемый также методом нисходящего вывода или методом обратной цепочки рассуждений (classic backward-chaining reasoning), основан использовании правила вывода, известного как правило вывода МТ (modus tollens, читается как "модус тол- ленс"). Это правило также является правилом заключения, которое символически записывается в виде: ^--^^ @ , где Q и P^Q— произвольные выводимые формулы исчисления высказываний. В случае применения этого правила становится справедливым заключение о том, что Р — также выводимая формула. Тем самым это правило позволяет определить ложность условия правила продукции при известной ложности его заключения.
Применительно к системам правил продукций обратный метод вывода реализуется в несколько модифицированном виде посредством исследования возможности применения правил для подтверждения некоторых заранее заданных заключений. А именно, форма импликации Pt>Q остается без изменения, а отрицание заключения Q заменяется вопросом о его истинности. В этом случае ставится вопрос об истинности условия Р . Символически это Q4,P^Q _
записывается в виде: —. Содержательно это означает, что в случае
истинности импликации "Р влечет Q" достаточным условием истинности формулы Q является истинность формулы Р. Таким образом, если целью вывода является доказательство истинности заключения Q, то для этого достаточно доказать истинность условия Р, рассматриваемого как подцель. Поэтому обратный метод служит обоснованием достаточных условий для истинности заключений правил продукций. Именно в этом проявляется различие между классическим методом заключения МТ и обратным методом вывода в продукционных ЭС.
Применительно к системам правил продукций процесс обратного вывода начинается с подстановки отдельных интересующих нас заключений в правые части соответствующих правил, которые в этом случае становятся активными. После анализа каждого из активных правил фиксируются условия, которые подтверждают эти правила. Эти условия принимаются как истинные и становятся новыми фактами, которые могут быть использованы в качестве новых целевых заключений в рассматриваемой базе правил.
Процесс вывода обратным методом также имеет рекурсивный характер и может быть остановлен либо в случае отсутствия новых активных правил, либо в случае получения подтверждения условий, которые являются истинными или известными фактами проблемной области. Подобное подтвержде-
ние условий характеризует успех процесса вывода и подтверждение исходных заключений.
Примечание
Рассмотренные методы вывода лишь упрощенно представляют основные идеи, лежащие в их основе. Конкретные реализации механизмов вывода в системах правил продукций должны обладать целым рядом дополнительных особенностей, позволяющих эффективно управлять процессом вывода на каждой из рекурсивных итераций. Обсуждение этих механизмов управления выводом выходит за рамки книги.
Пример П2.8. Рассмотрим использование базы правил, построенной в предыдущем примере П2.7, для получения выводов в двух конкретных ситуациях.
Предположим, что текущая ситуация на таможенном пункте контроля сложилась таким образом, что среди граждан, въезжающих в страну, находятся высокопоставленные чиновники. Количество граждан, проходящих таможенный досмотр, невелико, а таможенный пункт контроля не оснащен новейшими техническими средствами. Какая-либо предварительная информация о наличии наркотиков у отдельных граждан отсутствует.
Проблема заключается в оценке истинности заключения об исключении возможности провоза наркотиков через данный пункт контроля. Рассмотрим возможный способ решения данной проблемы с использованием прямого метода вывода.
При прямом методе вывода на первом этапе активными является правило 2, которое позволяет получить заключение о том, что "некоторые из граждан не будут подвергнуты таможенному досмотру". В свою очередь это условие активизирует правило 3, которое позволяет получить заключение о том, что в сложившейся ситуации "не исключается возможность провоза наркотиков". Поскольку другие активные правила в системе отсутствуют, то данное заключение принимается в качестве результата вывода в рассматриваемой базе правил для заданной исходной ситуации. Тем самым исходное целевое заключение об исключении возможности провоза наркотиков через данный пункт контроля не п одтверждается.
Примечание
Обычные продукционные системы оставляют открытым вопрос о том, как учитывать тот факт, что подтверждение некоторого заключения может следовать на основе сразу нескольких правил продукций. Одним из достоинств систем нечеткого вывода является то, что они позволяют аккумулировать факты, свидетельствующие в пользу тех или иных заключений (см. главу 7).
Пример П2.9. Предположим, другая ситуация на таможенном пункте контроля характеризуется тем, что среди граждан, въезжающих в страну, отсутствуют высокопоставленные чиновники. Количество граждан, проходящих таможенный досмотр, велико, но таможенный пункт контроля оснащен новейшими техниче-
сними средствами и имеется предварительная информация о наличии наркотиков у одного из граждан.
Проблема заключается в оценке истинности заключения об исключении возможности провоза наркотиков через данный пункт контроля. Рассмотрим возможный способ решения данной проблемы с использованием обратного метода вывода.
Очевидно, в этом случае правило б сразу дает ответ на поставленный вопрос, поскольку его условием является известный факт текущей ситуации проблемной области. Продолжая процесс обратного вывода, можно активизировать также правило 7, после чего— правило 1, которые в совокупности также свидетельствуют в пользу заключения об исключении возможности провоза наркотиков через данный пункт контроля.
Попытка найти решение для последней ситуации методом прямого вывода сталкивается с противоречием, суть которого в том, что активизация нескольких правил приводит к взаимно исключающим заключениям. Еще одним достоинством систем нечеткого вывода является то, что они позволяют без внесения дополнительных механизмов исключать противоречивость на основе оперирования степенью истинности заключений, отличной от бинарных значений "истина" и "ложь” (см. главу 7). Хотя некоторые из читателей могут поставить под сомнение целесообразность практического применения противоречивых баз правил, подобных рассмотренной выше, тем не менее, практически интересным проблемным областям присущи свойства противоречивости и неполноты. Именно по этой причине системы нечеткого вывода оказываются наиболее адекватным средством формализации экспертных знаний в таких проблемных областях и решения задач вывода в нечетких продукционных системах.
Приложение 3
Справочник функций пакета Fuzzy Logic Toolbox системы MATLAB
Настоящее приложение содержит описание всех функций Fuzzy Logic Toolbox MATLAB, предназначенных для работы с нечеткими множествами, создания и редактирования систем нечеткого вывода, а также выполнения процедур нечеткого вывода. Функции перечислены в алфавитном порядке, некоторые из них снабжены рисунками и примерами. По каждой из функций указывается ее назначение, приводится описание общего синтаксиса и всех формальных параметров, используемых в качестве аргументов.
addmf
Назначение. Добавляет новую функцию принадлежности к системе нечеткого вывода FIS.
Синтаксис. а - addmf(a, 'varType', varlndex, 'mfName', 'mfType', mfParams)
Описание. Функция принадлежности может быть добавлена только к существующей переменной FIS для текущей рабочей области MATLAB. При этом номера или индексы функциям принадлежности назначаются в том порядке, в котором они добавляются. Таким образом, первая добавленная к переменной функция принадлежности будет всегда являться для этой переменной функцией принадлежности с номером 1. Если в FIS определена только одна входная переменная, то добавить функцию принадлежности для любой другой входной переменной с номером 2 нельзя.
Функция использует б аргументов (входных параметров) в следующем порядке:
а — имя переменной структуры FIS в рабочей области MATLAB.
'varType' — строка, представляющая пит переменной, к которой добавляется функция принадлежности. Может принимать одно из двух значений: 'input' или 'output*.
varlndex — индекс переменной, к которой добавляется функция принадлежности.
'mfName' — строка, представляющая имя новой функции принадлежности.
'mfType' — строка, представляющая тип новой функции принадлежности.
mf Params — вектор параметров, которые специфицируют добавляемую функцию принадлежности.
: Пример .добавлений трех функций принадлежностк . для одной входной переменной, ^ ^
a=newfis('tipper1) ;
a=addvar(a,'input',1 service', [ 0 10 ]);
a=addmf(a,* input *,1,*poor','gaussmf',[1.5 0 ]);
a=addmf (a,'input',1,'good','gaussmf,[1.5 5 ]);
a=addmf(a,'input',1,'excellent', 'gaussmf , [1.5 10]) ;
plotmf(a,'input',1)
Результат этого примера изображен на рис. П3.1.
Рис. П3.1. Результат добавления трех функций принадлежности для одной входной переменной системы нечеткого вывода
Ои. также-, addrule, addvar, plotmf, rmmf, rmvar.
addrule
Назначение. Добавляет новое правило к системе нечеткого вывода FIS. Синтаксис. а = addrule (a, ruleList)
Описание. Функция addrule имеет два аргумента. Первый аргумент— имя переменной FIS в рабочей области MATLAB. Второй аргумент ruieList — матрица, содержащая одну или несколько строк, каждая из которых представляет данное правило. Следует помнить, что для представления этой матрицы используется специальный формат. Если система вывода имеет m входных переменных и п выходных переменных, то соответствующая матрица ruieList должна иметь в точности m + п + 2 столбцов.
Первые m столбцов относятся к входным переменным системы. При этом номер столбца должен соответствовать индексу функции принадлежности для конкретной входной переменной. Следующие п столбцов относятся к выходным переменным системы вывода. При этом каждый столбец также имеет номер, который должен соответствовать индексу функции принадлежности для выходной переменной.
Столбец с номером m + п + 1 содержит вес, с которым применяется данное правило. Вес может принимать любое значение между нулем и единицей. В общем случае целесообразно задавать вес равным 1.
Столбец с номером m + п + 2 содержит число 1, если для подзаключений данного правила используется нечеткий оператор and (нечеткое И). Этот столбец содержит число 2, если для подусловий данного правила используется нечеткий оператор он (нечеткое ИЛИ).
i Пример для системы вывода - двумя входными переменными и одной выходной переменной ,
ruleList=[ 11111
12211];
а = addrule(a,ruieList);
Для данного примера добавляемое правило может быть интерпретировано следующим образом: "Если входная переменная 1 имеет функцию принадлежности 1 и входная переменная 2 имеет функцию принадлежности 1, то выходная переменная 1 имеет функцию принадлежности 1".
См. также-, addmf, addvar, rnunf, rmvar, parsrule, showrule.
addvar
Назначение. Добавляет новую переменную к системе нечеткого вывода FIS.
Синтаксис. а = addvar(a, 'varType', 'varName', varBounds)
Описание. Функция использует 4 аргумента в следующем порядке:
а — имя структуры FIS в рабочей области MATLAB.
'varType' — строка, представляющая тип добавляемой переменной. Может принимать одно из двух значений: ' input' или ' output'.
' varName ’ — строка, представляющая имя добавляемой переменной.
varBounds — вектор, задающий границы области определения добавляемой переменной.
Номера или индексы переменным назначаются в том порядке, в котором они добавляются. Таким образом, первая добавленная переменная будет всегда являться переменной с номером 1. Нумерация входных и выходных переменных производится независимо друг от друга.
; Пример добавлений одной входи- й перемен! >й с именем * service' >
a=newfis(’tipper');
a=addvar(a,'input*,’service',[0 10]);
getfis(a,'input',1)
В результате выполнения этой последовательности функций в окне команд поя
вится следующий результат:
Name =NumMFs =MFLabels =Range =Name =NumMFs =MFLabels =Range =service
Name =
NumMFs =
MFLabels =
Range =
Name =
NumMFs =
MFLabels =
Range =
0
[0 10]
См. также; addmf, addrule, rmmf, rmvar.
anfis
Назначение. Программа обучения для системы нечеткого вывода FIS типа Суге- но (только МЕХ).
Синтаксис. [fismat, errorl, stepsize] = anfis(trnData)
[fismat, errorl, stepsize] = anfis(trnData, fismat)
[fismatl, errorl, stepsize] = ...
anfis(trnData, fismat, trnOpt, dispOpt)
[fismatl, errorl, stepsize, fismat2, error2] = ...
anfis(trnData, trnOpt, dispOpt, chkData)
[fismatl, errorl, stepsize, fismat2, error2] = ...
anfis(trnData, trnOpt, dispOpt, chkData, optMethod)
Описание. Это основная программа обучения для адаптивных систем нейро- нечеткого вывода ANFIS. Функция anfis использует алгоритм гибридного обучения для определения параметров систем нечеткого вывода типа Сугено. Этот алгоритм представляет собой комбинацию метода наименьших квадратов и метода убывания обратного градиента для обучения параметров функции принадлежности FIS с целью воспроизведения заданного множества обучающей выборки.
Функция anfis может также вызываться с необязательным аргументом с целью проверки правильности нечеткой модели. Типом проверки модели, который применяется в этом случае, является проверка совпадения данных модели, а аргумент представляет собой некоторое множество данных, которое называется множеством проверочных данных.
Функция anfis может быть использована со следующими аргументами:
О trnData — имя обучающей выборки. Представляет собой матрицу, все столбцы которой, кроме последнего, содержат входные данные. Последний столбец матрицы представляет собой обычный вектор выходных данных;
fismat — имя системы нечеткого вывода FIS, используемой для того, чтобы предоставить функции anfis некоторое исходное множество функций принадлежности для обучения. Без этого аргумента функция anfis будет использовать по умолчанию функцию genfisl для задания некоторой системы нечеткого вывода FIS для выполнения последующего обучения. Эта система нечеткого вывода FIS, задаваемая по умолчанию, будет иметь 2 функции принадлежности типа функции Гаусса, в то время как функция anfis вызывается только с одним аргументом. Если fismat представляет собой некоторое число (или вектор), то этот аргумент принимается равным номеру функции принадлежности (или вектору, компоненты которого представляют номера функций принадлежности соответствующих входных переменных). В этом случае оба эти аргумента функции anfis используются функцией genfisl для задания некоторой "правильной" структуры FIS до начала процесса обучения;
trnOpt — вектор параметров обучения. Если любой из параметров обучения вводится как NaN, то будут использованы соответствующие параметры по умолчанию. Эти параметры обучения следующие:
trnOpt (1) —количество циклов (эпох) обучения (по умолчанию: 10);
trnOpt (2) — целевой уровень ошибки обучения (по умолчанию: 0);
trnOpt (3) — величина исходного шага алгоритма обучения (по умолчанию: 0.01);
trnOpt (4) — коэффициент уменьшения величины шага (по умолчанию: 0.9);
trnOpt (5) — коэффициент увеличения величины шага (по умолчанию: 1.1);
dispOpt — вектор параметров отображения информации, которые определяют характер сообщений, выводимых в окно команд системы MATLAB в ходе процесса обучения. По умолчанию значение любого из этих параметров равно 1, что означает отображение соответствующей информации. В случае, если значение некоторого параметра равно 0, то соответствующая информации не отображается. Когда какой-либо из параметров отображения принимает значение NaN, то для этого параметра используется значение по умолчанию. Эти параметры отображения следующие:
dispOpt (1) — ANFIS-информация, такая как число входных и выходных функций принадлежности и т. д. (по умолчанию: 1);
dispOpt(2) —ошибка обучения (по умолчанию: 1);
dispopt(3) — величина шага обновления по каждому из параметров (по умолчанию: 1);
dispopt(4) —конечные результаты (по умолчанию: 1);
chkData — имя необязательного множества проверочных данных для проверки правильности модели. Представляет собой матрицу, формат которой совпадает с форматом матрицы обучающей выборки;
optMethod — применение необязательного метода оптимизации для обучения параметров функций принадлежности. Этот параметр может принимать одно из следующих значений: 1 — гибридный алгоритм, 0— алгоритм обратного распространения ошибки. Гибридный алгоритм представляет собой комбинацию метода наименьших квадратов и метода обратного распространения ошибки. Гибридный алгоритм используется по умолчанию и вызывается всякий раз, когда соответствующий параметр принимает любое отличное от О значение.
Процесс обучения сети заканчивается, когда выполнено заданное число циклов обучения или достигнут целевой уровень ошибки обучения.
В случае если функция anfis вызывается с двумя или большим числом аргументов, а любой из необязательных аргументов задан в форме NaN или равен пустой матрице, то этот параметр принимает значение по умолчанию. Значения параметров по умолчанию могут быть изменены непосредственной модификацией файла nfis.m. Если пользователь не желает специфицировать некоторые из параметров, но желает специфицировать следующие за ними параметры, то на месте первых из них необходимо указать значение NaN или пустую матрицу.
Функция anfis имеет следующие выходные параметры:
fismatl — имя структуры FIS, параметры которой представляют собой множество, полученное согласно критерию минимизации ошибки обучения;
errorl — массив (вектор) значений ошибок для обучающей выборки;
еггог2 — массив (вектор) значений ошибок для проверочной выборки;
stepsize — массив значений величины шага в алгоритме обучения. Эти значения следуют в убывающем порядке, если мера ошибки подвергается двум чередующимся комбинациям увеличения и уменьшения. Величины шага следуют в возрастающем порядке, если мера ошибки подвергается четырем последовательным уменьшениям;
fismat2 — имя структуры FIS, параметры которой представляют собой множество, полученное согласно критерию минимизации ошибки для проверочной выборки.
»•»»•■■ VлIV»»-.’.’.’ёч^»»»"”/»? »д»■ »м V».»••»•».♦• .»«»,»iw»»»»«»■
^мм$д<|д^^р тремя аргументами
х = (0:0.1:10) ';
у = sin(2*х)./ехр(х/5);
trnData = [x у] ;
numMFs = 5;
mfType = 'gbellmf;
epoch_n = 20;
in_fismat = genfisl(trnData, numMFs, mfType); out_fismat = anfis(trnData, in_fismat, 20); plot(x, y, x, evalfis(x, out_fismat)) ;
legend('Training Data','ANFIS Output');
Результат выполнения этой последовательности команд приведет к созданию и обучению гибридной сети ANFIS, графики обучающей выборки и выхода которой изображены на рис. П3.2.
Рис. П3.2. Графики обучающей выборкии выхода гибридной сети с архитектурой ANFIS
См. также', genfisl, anfisedit.
anfisedit
Назначение. Открывает редактор гибридных сетей ANFIS.
Синтаксис. anfisedit (' а')
anfisedit(а)
anfisedit
Описание. Функция anfisedit вызывает графический интерфейс редактора ANFIS, который позволяет пользователю загрузить некоторое множество дан-
ных и обучить гибридную сеть ANFIS. Эта функция в формате anfisedit ('а') вызывает редактор с загруженной структурой FIS, которая хранится во внешнем файле с именем a.fis. Если функция используется в формате anfisedit (а), то она вызывает редактор с загруженной структурой FIS, которая представляет собой переменную типа структуры с именем а в рабочей области MATLAB. Функция в формате anfisedit вызывает редактор без загруженной структуры FIS. Более подробно особенности работы с редактором гибридных сетей ANFIS изложены в главе 15.
Редактор ANFIS имеет главное меню, которое позволяет пользователю вызывать другие графические средства работы с системой нечеткого вывода FIS, загружать и сохранять структуру FIS во внешних файлах и т. д.
Пункт меню File (Файл) редактора правил содержит такие же операции, что и соответствующий пункт меню редактора FIS.
Пункт меню Edit (Редактирование) содержит следующие операции:
Undo — отменяет выполнение последнего действия;
FIS Properties... — вызывает графический интерфейс редактора FIS;
Membership Functions... — вызывает графический интерфейс редактора функций принадлежности;
Rules— вызывает графический интерфейс редактора правил системы нечеткого вывода;
Anfis... — вызывает графический интерфейс редактора ANFIS.
Пункт меню View (Вид) содержит следующие операции:
Rules — вызывает программу просмотра правил системы нечеткого вывода;
Surface — вызывает программу просмотра поверхности системы нечеткого вывода.
Пример вызова графического интерфейса редактора ANFIS:
с исходными данными из рабочей области^<« • -' --;
anfisedit(out_fismat)
Результат вызова графического интерфейса редактора ANFIS с исходными данными из рабочей области изображен на рис. ПЗ.З.
См. также', fuzzy, mfedit, ruleedit, ruleview, surfview.
Рис. ПЗ.З. Результат вызова графического интерфейса редактора ANFIS с загруженными исходными даннымиРис. ПЗ.З. Результат вызова графического интерфейса редактора ANFIS с загруженными исходными данными
Рис. ПЗ.З. Результат вызова графического интерфейса редактора ANFIS с загруженными исходными данными
Рис. ПЗ.З. Результат вызова графического интерфейса редактора ANFIS с загруженными исходными данными
convertfis
Назначение. Преобразует матрицу FIS Fuzzy Logic Toolbox версии 1.0 в структуру FIS версии 2.0.
Синтаксис.Синтаксис.fis_new=convertfis(fis_old)
Синтаксис.
Синтаксис.
Описание. Функция convertfis использует в качестве аргумента матрицу FIS версии 1.0 и преобразует ее в структуру FIS версии 2.0.
defuzz
Назначение. Выполняет дефаззификацию функции принадлежности.
Синтаксис. out = defuzz (х, inf, type)
Описание. Функция defuzz(х, mf, type) позволяет получить число, которое является результатом дефаззификации функции принадлежности mf для соответствующей переменной х. При этом может быть использован один из методов
дефаззификации, который определяется аргументом type. Этот аргумент может принимать одно из следующих значений:
' centroid' — метод центра тяжести для дискретного множества значений функции принадлежности (7.10);
1 bisector' — метод центра площади (модификация (7.11);
'som' — метод левого модального значения (7.12);
' lorn' — метод правого модального значения (7.13);
'mom' — метод среднего максимума, определяемый как среднее арифметическое левого и правого модальных значений.
Примечание
Метод среднего максимума выдает корректный результат только в случае унимодального нечеткого множества. В противном случае результат может оказаться даже не модальным значением соответствующего нечеткого множества.
Если для аргумента type не указано ни одно из перечисленных выше значений, то предполагается использование метода дефаззификации, который определен самим пользователем. Это можно сделать посредством добавления в т-файл этой функции defuzz.m соответствующих операторов, реализующих дополнительный метод дефаззификации.
5 Пример использования метода центра тяжести
Г для дефаззиф! акации функции принадлежности-£Л^!,ч^ ч
х = —10:0.1:10;
mf = trapmf(x,[-10 -8 -4 7]);
хх = defuzz(x,mf,'centroid');
p Lot (x,mf)
line(xx, 0, 'linestyle','none','marker','*','color','r');
В результате выполнения данной последовательности команд будет получено следующее изображение (рис. П3.4).
dsigmf
Назначение. Встроенная 77-образная функция принадлежности, которая является разностью двух сигмоидальных функций.
Синтаксис. у = dsigmf (х, [al cl а2 с2])
Описание. Используемая в MATLAB сигмоидальная функция принадлежности зависит от двух параметров а и b и аналитически задается следующим выраже-
нием (2.14). Функция принадлежности dsigmf зависит от 4 параметров: al. cl, а2, с2 и представляет собой разность двух сигмоидальных функций:
№;ax,cx)- /2(х;а2ъс2\
Рис. П3.4. График трапециевидной функции принадлежностии результат ее дефаззификации методом центроида ("*")
Рис. П3.5. График разности двух сигмоидальных функций
Следует обратить внимание на правильную запись параметров, которые должны следовать вначале для первой функции, а потом для второй: [al cl а2 с2 ].
х=0:0.1:10;
y=dsigmf(х, [5 2 5 7]);
plot(х,у)
xlabel(1dsigmf, Р=[5 2 5 7]')
График соответствующей функции принадлежности изображен на рис. П3.5.
См. также; gaussmf, gauss2mf, gbellmf, evalmf, mf2mf, pimf, psigmf, sigmf, smf, trapmf, trimf, zmf.
evalfis
Назначение. Выполняет нечеткий вывод в системе FIS.
Синтаксис. output^ evalfis(input, fismat)
output= evalfis(input, fismat, numPts)
[output, IRR, ORR, ARR] = evalfis(input, fismat)
[output, IRR, ORR, ARR] = evalfis(input, fismat, numPts)
Описание. Функция evalfis имеет следующие аргументы:
□ input — число или матрица, которая определяет входные переменные. Если input является матрицей порядка (щх/?), где п— число входных переменных, то функция evalfis воспринимает каждую строку input как вектор, соответствующий отдельному набору значений входных переменных. Функция возвращает матрицу порядка 0/?х/), в которой каждая строка соответствует вектору значений выходных переменных, где /— число всех выходных переменных системы;
□ fismat — имя структуры FIS, для которой выполняется нечеткий вывод;
□ numPts — необязательный аргумент, задающий общее число выбранных точек, в которых оцениваются функции принадлежности в областях определения входных и выходных переменных. Если этот аргумент не указан, то по умолчанию используется значение 101.
Функция evalfis возвращает значения, которые имеют следующий смысл:
□ output — матрица выходов размерности (/их/), где т равно числу определенных ранее значений входных переменных, а / — числу выходных переменных системы нечеткого вывода FIS.
Следующие выходные значения функции являются необязательными и возвращаются функцией evalfis только в том случае, когда указан один набор значений входов (/?/=!):
□ IRR — результат вычисления значений функций принадлежности для соответствующих входных переменных. Представляет собой матрицу размерности QiumRulesxn), где numRules— общее количество правил в системе FIS, а п — число входных переменных;
□ ORR — результат вычисления значений функций принадлежности для соответствующих выходных переменных. Представляет собой матрицу размерно-
сти (numPts х numRules* I), где numRules — общее количество правил в системе FIS, а /— число выходных переменных. Первые numRules столбцов этой матрицы соответствуют первой выходной переменной, следующие numRules столбцов этой матрицы соответствуют второй выходной переменной и т. д.;
□ ARR — матрица размерности (numPlsxl) агрегированных значений в области задания каждой выходной переменной.
Если функция вызывается для одного набора значений входных переменных, то в качестве результата возвращается вектор значений выходных переменных. Если в структуре FIS определена одна выходная переменная, то возвращается скалярное значение этой выходной переменной после ее дефаззификации.
^оимерислользования функций evalfis для двух^аборов значений f \ ^входных переменных-\ *-, -/-.
^•^«•«"«^«•^■•^••'^««'««•liV'^l.Vre.'X.ix'j-.'xl.Vlx J-xV.i.'^ix^X^dV^-V* «Vi■ «•*<»S»"5iV«*.•«*»!«. .-« .wax• •*♦.> vx..£«»<»...x.-<»'.<X«... •*»'• **'«<.»'.xi"xxV..x«»*«xL<V*»»« «•.*•!«■»•-««*» ••'.;«..*>-.*..•'•.• .-**■ •••* fismat = readfis('tipper');
out = evalfis([2 1; 4 9],fismat)
Выполнение функции evalfis в этом случае приведет к получению следующего результата в окне команд: out =
7.0169
19.6810
См. также'. ruleview, gensurf.
evalmf
Назначение. Задает одну из встроенных функций принадлежности.
Синтаксис. у = evalmf (х, mfparams, mfType)
Описание. Функция evalmf позволяет задать любую из имеющихся в системе MATLAB функций принадлежности, тип которой устанавливается строкой mfType. При этом значение аргумента х устанавливает область определения задаваемой функции принадлежности (универсум) и должна быть предварительно определена. Строка mfType должна соответствовать имени m-файла, в котором определена задаваемая функция принадлежности. Второй аргумент mfparams представляет собой вектор параметров, определяющих задаваемую функцию принадлежности.
При необходимости пользователь может задать собственную функцию принадлежности. Для этого ее следует определить в отдельном m-файле как функцию и использовать имя этого файла в качестве третьего аргумента функции evalmf. При этом второй аргумент mfParams должен соответствовать параметрам этой функции принадлежности.
^Пример I .СПСЛЬЗОВанЙя функции eval mf-
х=0:0.1:10;
y^evalmf(х, [4.5 1.5],'tri2mf') ;
plot(х,у)
Результат выполнения этой последовательности команд приведет к заданию треугольной функции принадлежности, график которой изображен на рис. П3.6.
Рис. П3.6. График треугольной функции принадлежности, заданной с использованием функции evalmf
См. также; dsigmf, gaussmf, gauss2mf, gbellmf, mf2mf, pimf, psigmf, sigmf, smf, trapmf, trimf, zmf.
fem
Назначение. Кластеризация методом нечетких с-средних (алгоритм FCM).
Синтаксис. [center, U, obj_fcn] = fem(data, cluster_n)
[center, U, obj_fcn] = fcm(data, cluster_n, options)
Описание. Функция fem (data, clustern) реализует нахождение нечеткой кластеризации заданного множества объектов алгоритмом FCM, который, рассмотрен в главе 13.
Входными аргументами этой функции являются:
data — матрица исходных данных кластеризации, каждая строка которой представляет информацию об одном объекте нечеткой кластеризации;
cluster n — число искомых нечетких кластеров (должно быть больше единицы).
Выходными аргументами этой функции являются:
center — матрица центров искомых нечетких кластеров, каждая строка которой представляет координаты центра одного из нечетких кластеров;
и — матрица функций принадлежности искомого нечеткого разбиения;
obj_fcn — значения целевой функции на каждой из итераций работы алгоритма.
Функция fem (data, cluster_n, options) использует переменную дополнительных аргументов options для управления процессом нечеткой кластеризации, для изменения критерия остановки работы алгоритма и/или отображения информации на экране монитора.
Эти дополнительные аргументы имеют следующее значение:
options (1) — экспоненциальный вес для расчета матрицы нечеткого разбиения и (по умолчанию это значение равно 2);
□ options (2) — максимальное число итераций (по умолчанию это значение равно 100);
□ options (3) — параметр сходимости алгоритма (по умолчанию это значение равно 0.00001);
options(4): информация о текущей итерации, отображаемая на экране монитора (по умолчанию это значение равно 1).
Если любое из значений дополнительных аргументов равно NaN, то для этого аргумента используется значение по умолчанию. Функция fem заканчивает свою работу, когда алгоритм FCM выполнит максимальное количество итераций, или когда разность между значениями целевых функций на двух последовательных итерациях будет меньше заданного априори значения параметра сходимости алгоритма.
?•*■<""■ "**»y<^yi"*yV-t***-Vy”y^'",“'*;,',fc“1,***,Ve*£:*'H^"^,,7'^^ ..х.л.*л««.у*»1»л*м.евАмже.« «»««#»..». ^.e.-..л-л «у.^. eye.,,.. j.,..,..^^ ^Пример решения задачи нечеткой кластеризации "■ .' ■/ /V i^i.^
; с помощью функции fem. .:J s
data = rand(100, 2);
[center,U,obj_fcn] = fcm(data, 2);
plot(data(:,1), data(:,2),’o’);
maxU = max(U);
indexl = find(U(1,:)== maxU);
index2 = find(U(2, :)== maxU);
line(data(indexl,1), data(indexl, 2), ’linestyle', 'none',...
’marker', '*','color', 'g');
line(data(index2,1), data(index2, 2), 'linestyle', 'none',...
'marker', '*','color', 'r');
Выполнение этой последовательности команд приведет к графическому представлению результата нечеткой кластеризации, график которой изображен на рис. П3.7.
Рис. П3.7. Результат нечеткой кластеризации множества с использованием функции fem
findcluster
Назначение. Вызывает графический интерфейс для интерактивной кластеризации методами нечетких с-средних и субтрактивной кластеризации.
Синтаксис. find cluster
findcluster('file.dat')
Описание. Функция findcluster вызывает графический интерфейс GUI для выполнения нечеткой кластеризации алгоритмом FCM и/или субтрактивной (subtractive) кластеризации. Выбор метода нечеткой кластеризации осуществляется с помощью раскрывающегося списка Methods. Исходные данные загружаются в рабочую область из внешнего файла с помощью кнопки Load Data.
Для каждого из методов нечеткой кластеризации в соответствующих строках ввода установлены значения параметров алгоритмов по умолчанию. Эти значения могут быть изменены пользователем. Для этого необходимо установить курсор ввода в соответствующее поле и набрать нужные цифры с учетом допустимых значений параметров. Назначение этих параметров для алгоритма FCM описано при рассмотрении функции fem. Назначение этих параметров для алгоритма субтрактивной кластеризации описано при рассмотрении функции subclust.
Хотя графический интерфейс нечеткой кластеризации позволяет работать с многомерными исходными данными, он визуализирует данные измерений только по 2-м признакам. Выбор признаков осуществляется с помощью раскрывающихся
списков X-axis и Y-axis в нижней части интерфейса. Например, для исходных данных из внешнего файла clusterdemo.dat можно изобразить 2 из 3-х признаков, выбрав в полях меню data_l, data_2 или data_3. Нажатие на кнопку Start приводит к началу работы соответствующего алгоритма, после окончания его работы результаты отображаются на графике. Найденные центры кластеров можно сохранить во внешнем файле с целью их последующего анализа.
Если функция используется в виде findcluster ('file.dat'), то при вызове графического интерфейса в рабочую область автоматически загружаются данные кластеризации из внешнего файла file.dat, а на графике отображаются значения матрицы данных для первых двух признаков.
t^^T;ef?-,.?!'.:§S}?>X??$Y:.'e’•"•’'•'''^^•^’^«’•""^“^"•ЖтГЛГр^’^Г^Г;^'^;;::^^
^Пример вызова графического интерфейса нечеткойкластеризации '. i Расходными йанйым^файла clustenfemoMat1
findcluster(1clusterdemo.dat')
Результат вызова графического интерфейса нечеткой кластеризации для этого случая изображен на рис. П3.8.
Рис. П3.8. Результат вызова графического интерфейса нечеткой кластеризации с использованием функции findcluster
См. также-, fem, subclust.
fuzarith
Назначение. Выполнение операций нечеткой арифметики.
Синтаксис. С = fuzarith (X, А, В, operator)
Описание. Используя операции с нечеткими интервалами (см. главу 5), функция с = fuzarith (X, а, в, operator) возвращает нечеткое множество с в качестве результата выполнения бинарной операции, определяемой строкой operator, над выпуклыми нечеткими множествами айв. При этом нечеткие множества А и в предварительно должны быть заданы выпуклыми функциями принадлежности на универсуме х.
Аргументами этой функции являются:
а, в, х — векторы одинаковой размерности;
operator — строка, принимающая одно из следующих значений: 'sum', 'sub', 'prod', 'div'.
В качестве результата функция возвращает с — вектор-столбец той же размерности, что и вектор универсума х.
Примечание
Нечеткое сложение может генерировать сообщение "деление на нуль” ('divide by zero'), но это сообщение не влияет на правильность выполнения этой операции.
Пример использовании функции fuzarith
point_n = 1001; % определяет количество точек функции принадлежности min_x = -20; max_x = 20;% универсум нечеткого множества [min_x, max_x] х = 1inspace(min_x, max_x, point_n)1;
A = trapmf (x, [-2 -1 1 3] ) ; % A — трапециевидный нечеткий интервал
В = trimf(х, [235]); % В — треугольное нечеткое число
Cl = fuzarith(х, А, В, 'sum');
plot (х. А, х, В, х, С1) ;
title('нечеткое сложение А+В');
С2 = fuzarith(х, А, В, 'sub');
plot(x, А, х. В, х, С2);
title('нечеткое вычитание А-В');
СЗ = fuzarith(x, А, В, 'prod');
plot(x, А, х, В, х, СЗ) ;
title('нечеткое умножение А-В');
С4 = fuzarith(х, А, В, 'div');
plot(x, А, х, В, х, С4) ;
title('нечеткое деление А/В');
Результат выполнения этой последовательности команд изображен на рис. ИЗ.9.
нечеткое сложение А+Внечеткое сложение А+Внечеткое вычитание А-Внечеткое вычитание А-В-5.4-3-2-1012.345678910-5.4-3-2-1012.345678910
нечеткое сложение А+В
нечеткое сложение А+В
нечеткое вычитание А-В
нечеткое вычитание А-В
-5.4-3-2-1012.345678910
-5.4-3-2-1012.345678910
Рис. П3.9. Результаты выполнения операцийс нечетким интервалом А и нечетким числом в
fuzblock
Назначение. Блоки нечеткой логики из пакета Simulink.
Синтаксис. fuzblock
Описание. Эта функция вызывает систему Simulink, в которой кроме демонстрационных примеров, содержатся три специальных блока.
Контроллер нечеткой логики (Fuzzy Logic Controller).
Контроллер нечеткой логики с окном просмотра правил (Fuzzy Logic Controller with Rule Viewer).
Блок функций принадлежности MF (рис. П3.10).
Последний из блоков позволяет просматривать правила в ходе моделирования, выполняемого в системе Simulink. После двойного щелчка левой кнопкой мыши на блоке контроллера нечеткой логики открывается диалоговое окно свойств этого блока. Это окно содержит имя структуры FIS, которая находится в рабочей области системы MATLAB и которую предполагается моделировать в системе Simulink.
Рис. П3.10. Графический интерфейс блоков нечеткой логики системы Simulink
Чтобы открыть диалоговое окно свойств контроллера нечеткой логики с окном просмотра правил, необходимо:
Выполнить двойной щелчок левой кнопкой мыши на этом блоке, в результате чего откроется диалоговое окно свойств контроллера нечеткой логики.
Выполнить двойной щелчок левой кнопкой мыши на втором блоке контроллера нечеткой логики.
Если система нечеткого вывода имеет несколько входов, эти входы должны быть соединены вместе до размещения их в блоке контроллера нечеткой логики или в блоке контроллера нечеткой логики с окном просмотра правил. Аналогично.
если система нечеткого вывода имеет несколько выходов, эти выходы должны быть соединены вместе до размещения их в блоке контроллера нечеткой логики или в блоке контроллера нечеткой логики с окном просмотра правил.
См. также; sffis, ruleview.
fuzdemos
Назначение. Список всех демонстрационных примеров в пакете Fuzzy Logic Toolbox.
Синтаксис. fuzdemos
Описание. Эта функция вызывает графический интерфейс, который позволяет выбрать для анализа любой из демонстрационных примеров, поставляемых с пакетом Fuzzy Logic Toolbox. С демонстрационными примерами можно также познакомиться с использованием следующих функций командной строки:
defuzzdm— пример методов дефаззификации;
femdemo — пример кластеризации точек на плоскости методом нечетких с- средних FCM;
gasdemo — пример применения системы для эффективного управления топливом с использованием метода субтрактивной кластеризации;
juggler — пример просмотра правил для задачи жонглирования мяча;
invkine — пример инверсной кинематики захвата механической руки робота:
iris fem — пример кластеризации точек в четырехмерном пространстве методом нечетких с-средних FCM;
noisedm — пример адаптивного устранения шума;
slbb — пример управления движением мяча на качающейся балке с помощью средств пакета Simulink;
slop— пример управления инвертированным маятником с помощью средств пакета Simulink;
sltank— пример управления уровнем воды с помощью средств пакета Simulink;
sltankrule — пример управления уровнем воды с использованием программы просмотра правил с помощью средств пакета Simulink;
sitbu — пример нечеткого управления движением грузового автомобиля (только Simulink).
fuzzy
Назначение. Вызывает редактор систем нечеткого вывода FIS.
Синтаксис. fuzzy
fuzzy(fismat)
Описание. Эта функция предоставляет пользователю возможность редактировать на высоком уровне свойства системы нечеткого вывода, такие как число входных и выходных переменных, используемый метод дефаззификации и т. д.
Редактор систем нечеткого вывода FIS (или просто редактор FIS) обладает графическим интерфейсом и позволяет вызывать все другие редакторы и программы просмотра систем нечеткого вывода. Графический интерфейс этого редактора обладает максимальным удобством и гибкостью, необходимой для интерактивной работы с отдельными компонентами системы нечеткого вывода.
В верхней части рабочего интерфейса редактора FIS изображается диаграмма, представляющая в визуальной форме входы и выходы системы нечеткого вывода, в центре которых находится процессор нечетких правил. Щелчок на прямоугольнике с изображением входа или выхода выделяет соответствующую переменную и делает ее текущей. Прямоугольник текущей переменной при этом выделяется красным цветом.
Двойной щелчок на прямоугольнике с изображением входной или выходной переменной вызывает редактор функций принадлежности с загруженной в него соответствующей переменной. Двойной щелчок на изображении процессора нечетких правил вызывает редактор правил для соответствующей системы нечеткого вывода. Если некоторая переменная существует в системе нечеткого вывода, но не используется в правилах вывода, то связь ее с процессором нечетких правил изображается не сплошной, а пунктирной линией.
Редактор FIS имеет главное меню, которое позволяет пользователю вызывать другие графические средства работы с системой нечеткого вывода FIS, загружать и сохранять структуру FIS во внешних файлах и т. д.
Пункт меню File (Файл) редактора FIS содержит следующие операции:
New FIS... — позволяет выбрать тип задаваемой новой системы нечеткого вывода: Mamdani — типа Мамдани или Sugeno — типа Сугено. При этом задаваемая система нечеткого вывода не имеет ни входных, ни выходных переменных, а ее имя задается по умолчанию как Untitled;
Import — позволяет загрузить в редактор FIS существующую систему нечеткого вывода одним из следующих способов: From Workspace... — из рабочего пространства программы MATLAB или From Disk... — из внешнего файла. В последнем случае вызывается стандартное диалоговое окно открытия файла;
Export — позволяет сохранить редактируемую систему нечеткого вывода одним из следующих способов: То Workspace... — в рабочем пространстве программы MATLAB или То Disk... — во внешнем файле. В последнем случае вызывается стандартное диалоговое окно сохранения файла;
Print — позволяет распечатать на принтере редактируемую систему нечеткого вывода. В этом случае вызывается стандартное диалоговое окно настройки свойств печати на подключенном к данному компьютеру принтере;
Close— закрывает редактор FIS, при этом вызывается диалоговое окно с предложениями сохранить или отказаться от сохранения редактируемой системы нечеткого вывода.
Пункт меню Edit (Редактирование) содержит следующие операции:
Undo — отменяет выполнение последнего действия;
Add Variable... — позволяет добавить в редактируемую систему нечеткого вывода переменную одного из следующих типов: Input — входную переменную или Output — выходную переменную;
Remove Selected Variable— удаляет выбранную переменную из редактируемой системы нечеткого вывода;
Membership Functions... — вызывает редактор функций принадлежности;
Rules — вызывает программу редактирования правил.
Пункт меню View (Вид) содержит следующие операции:
Rules — вызывает программу просмотра правил;
Surface — вызывает программу просмотра поверхности вывода.
В левой нижней части рабочего интерфейса редактора FIS имеется 5 раскрывающихся меню:
□ And method (Метод логической конъюнкции) — позволяет задать один из следующих методов для выполнения логической конъюнкции в условиях нечетких правил:
min — метод минимального значения (6.2);
prod — метод алгебраического произведения (6.3);
Custom — метод, определенный самим пользователем.
Or method (Метод логической дизъюнкции) — позволяет задать один из следующих методов для выполнения логической дизъюнкции в условиях нечетких правил:
max — метод максимального значения (6.6);
probor — метод алгебраической суммы (6.7);
Custom — метод, определенный самим пользователем.
Implication method (Метод вывода заключения) — позволяет задать один из следующих методов для выполнения (активизации) логического заключения в каждом из нечетких правил:
min — метод минимального значения (7.6);
prod — метод алгебраического произведения (7.7);
Custom— метод, определенный пользователем. Это меню не используется для систем нечеткого вывода типа Сугено.
□ Aggregation method (Метод агрегирования) — позволяет задать один из следующих методов для агрегирования значений функции принадлежности каждой из выходных переменных в заключениях нечетких правил:
• max — метод максимального значения (6.6);
sum — метод граничной суммы (6.8);
probor — метод алгебраической суммы (6.7);
Custom — метод, определенный пользователем.
Это меню не используется для систем нечеткого вывода типа Сугено.
Defuzzification method (Метод дефаззификации) — позволяет задать один из следующих методов для выполнения дефаззификации выходных переменных в системе нечеткого вывода типа Мамдани:
centroid — метод центра тяжести для дискретного множества значений функции принадлежности (7.10);
bisector — метод центра площади (модификация (7.11));
mom (middle of maximum) — метод среднего максимума, определяемый как среднее арифметическое левого и правого модальных значений;
som (smallest of maximum) — метод левого модального значения (7.12);
lorn (largest of maximum) — метод правого модального значения (7.13);
Custom — метод, определенный самим пользователем.
Для систем нечеткого вывода типа Сугено можно выбрать один из следующих методов дефаззификации:
wtaver (weighted average) — метод взвешенного среднего (7.15);
wtsum (weighted sum) — метод взвешенной суммы (7.16).
Рис. П3.11. Графический интерфейс редактора FIS, вызываемый функцией fuzzy ( ' tipper *)
Более подробно особенности работы с редактором FIS были изложены в главе 12.
^Пример использования функции fuzzy ' %'» '^‘ ' v ^/V" *
fuzzy('tipper')
Результат выполнения функции fuzzy изображен на рис. П3.11.
См. также", mfedit, ruleedit, ruleview, surfview, anfisedit.
gauss2mf
Назначение. Встроенная /7-образная функция принадлежности, которая является комбинацией двух функций Гаусса.
Синтаксис. у = gauss2mf(х, [sigl cl sig2 с2])
Описание. Функция Гаусса описывает плотность нормального распределения, определяется выражением (2.22) и зависит от двух параметров sig (или о) и с. Функция gauss2mf является комбинацией двух таких функций. Первая функция Гаусса задается параметрами sigl и cl и определяет форму кривой функции принадлежности слева от модального значения. Вторая функция Гаусса задается параметрами sig2 и с2 и определяет форму кривой функции принадлежности справа от модального значения.
Если выполняется неравенство с1<с2, то функция gauss2mf достигает своего максимального значения, равного 1. В противном случае ее максимальное значение меньше 1. Параметры должны быть указаны в следующем порядке: [sigl cl sig2 с2] .
Пример задания функции принадлежности gauss2mf
х = 0:0.1:10;
yl =gauss2mf(х,[2418]);
у2 =gauss2mf(х,[251"7]);
уЗ =gauss2mf (х,[2616]);
у4 =gauss2mf(x,[27151);
у5 =gauss2mf (х,[2814]);
plot (х, yl, х, у2, х, уЗ, х, у4, х, у5)
Графики соответствующих функций принадлежности, полученные в результате выполнения указанной последовательности команд, изображены на рис. П3.12.
Рис. П3.12. Графики нескольких функций принадлежности, являющихся комбинацией двух функций Гаусса
См. также-, dsigmf, gauss2mf, gbellmf, evalmf, mf2mf, pimf, psigmf, sigmf, smf, trapmf, trimf, zmf.
gaussmf
Назначение. Встроенная /7-образная функция принадлежности типа функции Гаусса.
Синтаксис. у = gaussmf (х, [sig с])
Описание. Симметричная функция Гаусса описывает плотность нормального распределения и определяется выражением (2.22). Эта функция имеет два параметра: sig (или о) и с, которые задаются в форме вектора [sig с].
i Пример задания функции принадлежности igausemf х=0:0.1:10;
y=gaussmf(х, [2 4]) ;
plot(х,у)
График этой функции принадлежности изображен на рис. 2.18, б.
См. также-, dsigmf, gauss2mf, gbellmf, evalmf, mf2mf, pimf, psigmf, sigmf, smf, trapmf, trimf, zmf.
gbellmf
Назначение. Встроенная 77-образная функция принадлежности типа колоколообразной кривой.
Синтаксис. у = gbellmf(х, params)
Описание. Данная обобщенная функция принадлежности типа колоколообразной кривой (/7-образная функция принадлежности) определяется выражением (2.21) и зависит от трех параметров: а, Ь, с, при этом параметр ь должен быть обязательно положительным. Эти параметры являются вторым аргументом функции и задаются в форме вектора params, компоненты которого записываются в следующем порядке: [а Ь с].
Пример задания ФУНКЦИИ RF^'iaB-TVy Н^гги gbeilmf
х=0:0.1:10;
y=gbellmf(х,[2 3 6]); plot(х,у)
График этой функции принадлежности изображен на рис. 2.18, а.
См. также-, dsigmf, gaussmf, gauss2mf, evalmf, mf2mf, pimf, psigmf, sigmf, smf, trapmf, trimf, zmf.
genfisl
Назначение. Генерирует структуру системы нечеткого вывода FIS на основе экспериментальных данных без кластеризации этих данных.
Синтаксис. fismat = genfisl (data)
fismat = genfisl(data,numMFs,inmftype, outmftype)
Описание. Функция genfisl генерирует систему нечеткого вывода FIS типа Сугено, которая может быть использована в качестве исходной структуры для инициализации параметров функций принадлежности в процессе обучения гибридной сети anfis. Эта функция в формате genfisl (data, numMFs, inmftype, outmftype) генерирует структуру FIS на основе некоторой обучающей выборки с именем data с использованием некоторого сеточного разбиения этих данных без их кластеризации.
Аргументами этой функции являются:
data — матрица данных (обучающая выборка), последний столбец которой соответствует единственной выходной переменной, а остальные столбцы соответствуют входным переменным;
numMFs — вектор, компоненты которого определяют количество функций принадлежности у каждой из входных переменных. Если пользователю необходимо задать одинаковое количество функций принадлежности для всех входных переменных, то для этого достаточно задать аргумент numMFs как обычное число (скаляр);
inmftype — массив строковых значений, каждое из которых специфицирует тип функции принадлежности для соответствующей входной переменной. Аналогично, если пользователю необходимо определить один и тот же тип
функции принадлежности для всех входных переменных, то для этого достаточно задать этот аргумент как простую строку;
outmftype — строка, которая специфицирует тип функции принадлежности выходной переменной. Поскольку используется система нечеткого вывода типа Сугено, то существует только одна выходная переменная. Тип функции принадлежности выходной переменной может быть или линейным, или константой.
Количество функций принадлежности для выходной переменной должно быть равно количеству правил, генерируемых функцией genfisi. По умолчанию значение аргумента numMFs равно 2, а тип функций принадлежности входных и выходной переменных равен ’gbellmf*. Эти значения используются всякий раз, когда функция genfisi вызывается без последних трех аргументов.
Рис. П3.13. Результат выполнения функции genfisiРис. П3.13. Результат выполнения функции genfisiЩ|Нм^;1!$^Щ|Нм^;1!$^
Рис. П3.13. Результат выполнения функции genfisi
Рис. П3.13. Результат выполнения функции genfisi
Щ|Нм^;1!$^
Щ|Нм^;1!$^
data = [rand(10,l) 10*rand(10,1)-5 rand(10,l)];
numMFs = [3 7 ] ;
mfType = str2mat(*pimf*, *trimf');
fismat = genfisi(data,numMFs,mfType);
[x,mf] = plotmf(fismat,'input1,1);
subplot (2,1,1), plot(x,mf);
xlabel('input 1 (pimf)1);
[x,mf] = plotmf(fismat,1 input', 2) ;
subplot (2,1,2), plot(x,mf.;
xlabel(’input 2 (trimf)1);
Результат выполнения функции genfisl изображен на рис. П3.13.
См. также: anfis.
genfis2
Назначение. Генерирует структуру системы нечеткого вывода FIS с использованием метода субтрактивной кластеризации.
Синтаксис. fismat = genfis2 (Xin,Xout, radii)
fismat = genfis2(Xin,Xout,radii,xBounds)
fismat = genfis2(Xin,Xout,radii,xBounds,options)
Описание. Функция genfis2 генерирует структуру системы нечеткого вывода FIS методом субтрактивной кластеризации на основе экспериментальных данных, заданных в виде двух отдельных множеств входных и выходных данных. Если задана только одна выходная переменная, функция genfisl может быть использована для генерации структуры адаптивной системы нейро-нечеткого вывода (FIS типа Сугено) с целью ее последующего обучения на основе предварительной субтрактивной кластеризации экспериментальных данных.
Функция genfis2 выполняет генерацию структуры посредством спецификации множества правил, которые соответствуют исходному множеству данных. При формирования правил нечетких продукций для определения количества правил и функций принадлежности их условий на первом этапе используется функция subclust. На втором этапе методом наименьших квадратов определяются заключения правил нечетких продукций. В итоге функция genfis2 возвращает структуру системы нечеткого вывода FIS, база правил которой охватывает все пространство экспериментальных данных.
Аргументами этой функции являются:
xin — матрица, каждая строка которой представляет исходные значения входных переменных;
Xout — матрица, каждая строка которой представляет исходные значения выходных переменных;
radii — вектор, который задает интервал (радиус) влияния центров кластеров по каждой координате векторов исходных данных в предположении, что все данные находятся внутри некоторого единичного гиперкуба;
Например, если используются 3-мерные исходные данные, т. е. матрица xin имеет 2 столбца, а матрица xout —1 столбец, то значения radii = [0.5 0.4 0.3]
задают относительные интервалы влияния в пределах рассматриваемого гиперкуба по каждой из трех переменных: по первой входной переменной 0.5, по второй входной переменной — 0.4, и по выходной переменной — 0.3. Если параметр radii является скаляром, то соответствующее значение относится к каждой из переменных нечеткой модели, т. е. центр каждого кластера будет иметь сферическую окрестность влияния заданного радиуса;
xBounds — необязательная матрица размерности (2хн), специфицирующая диапазоны значений по каждой из входных и выходных переменных нечеткой модели (здесь п — общее количество входных и выходных переменных). Эта спецификация необходима для преобразования исходных значений в значения единичного гиперкуба. Первая строка матрицы xBounds задает минимальные значения диапазона значений по каждой из осей многомерных данных, а вторая строка — дает максимальные значения диапазона значений по каждой их осей многомерных данных.
Например, значения матрицы xBounds = [-10 0 -1; 10 50 1] определяют, что исходные данные по первой оси нормализуются в интервале [-10, 10], исходные данные по второй оси — в интервале [0, 1] и исходные данные по третьей оси нормализуются в интервале [-1, 1]. Если матрица xBounds не задана, то диапазоны нормализации значений определяются по умолчанию — как минимальные и максимальные значения каждой их переменных нечеткой модели, присутствующие в исходных данных;
options — необязательный вектор, который специфицирует параметры алгоритма генерации структуры FIS аналогично параметрам функции subclust. Более подробно эти функции рассматриваются в главе 13.
; Пример использования функции genfis2
?р минимальным Числом аргументЬв ’.;
fismat - genfis2(Xin,Xout,0.5);
Пример использования функции genf £s2 с нормализацией, исход t *х данных ;,
fismat = genfis2(Xin,Xout,0.5,[-10 -5 0; 10 5 20]);
В данном случае задается параметр нормализации для преобразования значений матриц Xin и Xout в значения единичного гиперкуба, т. е. в интервал [0, 1] по каждой из переменных. Поскольку для рассматриваемого примера матрица Xin имеет 2 столбца, а матрица Xout — 1 столбец, то выполняется шкалирование по каждой их переменных. При этом значения первой входной переменной нормализуются в интервале [-10, 10], второй входной переменной — в интервале [-5, 5], а выходной переменной — в интервале [0, 20].
См. также: subclust.
gensurf
Назначение. Генерирует поверхность нечеткого вывода FIS.
Синтаксис. gensurf (fis)
gensurf(fis, inputs, output)
gensurf(fis, inputs, output, grids)
gensurf(fis, inputs, output, grids, refinput)
Описание. Функция gensurf (fis) позволяет получить изображение поверхности нечеткого вывода для одной из выходных переменных структуры системы нечеткого вывода FIS с именем fis. В этом формате для построения поверхности вывода используются первые две входные переменные и первая выходная переменная структуры fis.
Функция gensurf (fis, inputs, output) во втором формате позволяет получить изображение поверхности нечеткого вывода для одной или двух входных переменных, номера которых задаются вектором inputs, и одной выходной переменной с номером output для структуры системы нечеткого вывода FIS с именем fis.
Функция gensurf (fis, inputs, output, grids) в третьем формате позволяет получить изображение сетки на рисунке поверхности нечеткого вывода для первой горизонтальной переменной и второй вертикальной входной переменной. При этом номера переменных задаются вектором grids.
Функция gensurf(fis, inputs, output, grids, refinput) в четвертом формате позволяет получить изображение поверхности нечеткого вывода для более чем двух выходных переменных. В этом случае вектор refinput задает номера входных переменных, которые рассматриваются как неизменяющиеся.
Функция может быть также вызвана в формате [х, у, z]=gensurf(...). В этом случае она возвращает значения переменных, которые определяют поверхность вывода и могут быть использованы для изображения этой поверхности средствами графики MATLAB.
Пример использования функции gensurf' .
KiV.X* 4 •• ..^ i^i.iii^vZUVsi'ii^viieeV.Vei'ttitiVitieiV-i^iiWtrt**^ .ч5*»^« *^-iwiieiVlVVfftV/ilV.VZeM *«V««.V.;VeiVe&eVi&Vie^V**'*** .*••*#..!#i*Vi*»*ii «41 i.. ...< »^i.-< «eV»* 1.1 iiVeVl
a = readfis(* tipper1);
gensurf(a)
График полученной поверхности нечеткого вывода изображен на рис. П3.14.
См. также: evalfis, surfview.
о о
Рис. П3.14. График поверхности нечеткого вывода, полученный с помощью функции gensurf
getfis
Назначение. Позволяет отобразить различные свойства системы нечеткого вывода FIS.
Синтаксис.ge t f i s (a)
getfis(a, 'fisprop')
getfis(a, 'vartype', varindex, 'varprop')
getfis (a, 'vartype', varindex, 'mf, mfindex)
getfis(a, 'vartype', varindex, 'mf',mfindex, 'mfprop')
Описание. Это основная функция, предназначенная для отображения в окне команд отдельных свойств структуры системы нечеткого вывода FIS. Функция getfis может использоваться в одном из 5 указанных форматов со следующими аргументами:
а — имя структуры FIS в рабочей области MATLAB;
'vartype* — строка с указанием типа отображаемой переменной (input или output);
varindex— целое число, соответствующее номеру отображаемой переменной (например, I для первой из входных переменных);
'mf' — строка, указывающая на отображение информации о функции принадлежности;
mfindex — целое число, соответствующее номеру отображаемой функции принадлежности (например, 1 для первой из функций принадлежности).
^pi^fiP «сН^Удейанк; фуНйци^ getf is СШним аргумент гс 'МS^tiSS^S&r;
3s№iW.£fc^;2.r.; *5^,ь21-,2ай..^г415£Кгг;1.;^.я;*Л^-^*^Л;яА^;^>; 4^.txwi;-.V.i';;L..V«£2;*2i.2.^^^^
а = readfis('tipper'); getfis(a)
В этом случае в окно команд будет выведена следующая информация:
Name =tipper
Type =mamdani
Numinputs =2
InLabels = service food
NumOutputs =1
OutLabels = tip NumRules =3
AndMethod =min
OrMethod =max
ImpMethod =min
AggMethod =max
DefuzzMethod = centroid ans = tipper
Пример использовании функции getfis с двумя аргументами
getfis(а, ’type *)
В этом случае в окно команд будет выведена следующая информация:
ans =
mamdani
Пример использование функций getf is с тремя аргументами
getfis(а,1 input',1)
В этом случае в окно команд будет выведена следующая информация:
Name =NumMFs =Name =NumMFs =service3service3
Name =
NumMFs =
Name =
NumMFs =
service
3
service
3
MFLabels =
Range ans =
poor
good excellent
=[0 10]
[ J
1 Прий
1ерШпорЙ^ВЙНИЯ ФИКЦИИ getfie с ч
етырьмя аргументами
getfis(а,'input*,1,'name*)
В этом случае в окно команд будет выведена следующая информация: ans =
service
; np»«ppwфункции gestfxs с пятью аргументами
getfis(а,* input*,1,*mf*,2)
В этом случае в окно команд будет выведена следующая информация: Name = good Type = gaussmf Params =[1.5 5] ans = [ ]
= Пример исполь прения функции getf is с шестью аргументами
getfis(а,* input *,1,*mf', 2,’name*)
В этом случае в окно команд будет выведена следующая информация: ans =
good
См. также-, setfis, showfis.
mam2sug
Назначение. Преобразует систему нечеткого вывода FIS типа Мамдани в систему нечеткого вывода FIS типа Сугено.
Синтаксис.Синтаксис.sug_fis=mam2sug(mam_fis)sug_fis=mam2sug(mam_fis)
Синтаксис.
Синтаксис.
sug_fis=mam2sug(mam_fis)
sug_fis=mam2sug(mam_fis)
Описание. Функция mam2sug преобразует структуру FIS типа Мамдани с именем mam fis (не обязательно с единственным выходом) в структуру FIS типа Сугено с именем sug_fis. Получаемая в результате система нечеткого вывода типа Сугено имеет функции принадлежности, каждая из которых имеет некоторое постоянное значение. Эти константы определяются методом центроида для соответствующих функций исходной системы нечеткого вывода типа Мамдани. При этом условия правил нечеткого вывода остаются без изменений.
^Пример использования функции mam2 a ug для преобразования структуры RSd^ Г тала Мамдани из внешнего гЬайла tipper.fis в структуру Я$ тапа Сугено - . < 5 N^№^ve^.^&4VjbiXi6.^ii^ri^i*»eV.»*wi'»«i^Ma;.4il|*&M-iAk*iiw***-.-««;(e>toV»«e^M»:to,.w^v?iV£^<.:ii.»i^^
mam_fismat = readfis(* tipper.fis*);
sug_fismat = mam2sug (mam_f ismat);
subplot(2,2,1);
gensurf (mam_f ismat, [12], 1);
title(1 Система нечеткого вывода типа Мамдани1);
subplot(2,2,2);
gensurf(sug_fismat, [1 2], 1);
title(’Система нечеткого вывода типа Сугено’);
Результат выполнения этой последовательности команд изображен на рис. ПЗ. 15.
Рис. П3.15. Преобразование системы нечеткого вывода типа Мамданив систему нечеткого вывода типа Сугено
mf2mf
Назначение. Преобразует параметры двух функций принадлежности.
Синтаксис. outParams = mf2mf(inParams, inType, outType)
Описание. Эта функция преобразует одну из встроенных функций принадлежности в любую другую встроенную функцию принадлежности. При этом подобное преобразование выполняется на уровне параметров соответствующих функций принадлежности. В принципе функция mf 2mf сохраняет точки симметрии старой и новой функций принадлежности. Однако результат выполнения преобразования может привести к потере информации при выполнении обратного преобразования новой функции принадлежности в функцию принадлежности исходного типа. В этом случае преобразованная функция принадлежности может по своему виду отличаться от первоначальной функции принадлежности.
Функция mf2mf имеет следующие входные аргументы:
inParams — параметры исходной функции принадлежности, которая подлежит преобразованию;
inType — строка с именем типа исходной функции принадлежности, которая подлежит преобразованию;
outType — строка с именем типа новой функции принадлежности, в который преобразуется исходная функция принадлежности.
уд^мёр^йсполмрв^^ функции mf2mf для преобразования структур^FIS
:Типа Мамдани из внешнего файла tipper.fis в структуру FIS типа Сугенг, ^: к5 1
х=0:0.1:5;
mfpl = [1 2 3];
mfp2 = mf2mf (mfpl, 'gbellmf, 'trimf) ;
plot (x, gbellmf (x,mfpl), x, trimf (x,mfp2) )
Результат выполнения этой последовательности команд изображен на рис. ПЗ. 16.
Рис. П3.16. Графики Л-образной исходной функции принадлежности и треугольной функции принадлежности, полученной в результате преобразования с помощью функции mf 2mf
См. также", dsigmf, gaussmf, gauss2mf, gbellmf, evalmf, pimf, psigmf, sigmf, smf, trapmf, trimf, zmf.
mfedit
Назначение. Вызывает графический интерфейс редактора функций принадлежности системы нечеткого вывода FIS.
Синтаксис. mfedit (' а')
mfedit(а)
mfedit
Описание. Эта функция, записанная в формате mfedit (' а'), вызывает редактор функций принадлежности, который позволяет пользователю в графическом режиме анализировать и модифицировать все функции принадлежности некоторой структуры FIS, сохраненной во внешнем файле с именем a.fis. Функция в формате mfedit (а) работает с переменной рабочего пространства MATLAB, соответствующей структуре FIS с именем а.
Функция в формате mfedit просто вызывает редактор функций принадлежности без загрузки какой бы то ни было структуры FIS. Для каждой функции принадлежности можно изменить ее имя, тип и параметры. Редактор предоставляет пользователю не только возможность выбрать любую из 11 встроенных функций принадлежности, но и задать собственную функцию принадлежности.
Для отображения графиков функций принадлежности следует выбрать необходимую переменную в левой части графического интерфейса редактора (под заголовком FIS Variables (Переменные FIS). Чтобы выбрать нужную функцию принадлежности, следует щелкнуть на ней или ее метке.
Редактор функций принадлежности имеет главное меню программы, которое позволяет пользователю вызывать другие графические средства работы с системой нечеткого вывода FIS, загружать и сохранять структуру FIS во внешних файлах и т. д.
Пункт меню File (Файл) редактора функций принадлежности содержит такие же операции, что и соответствующий пункт меню редактора FIS.
Пункт меню Edit (Редактирование) содержит следующиеоперации:
Undo — отменяет выполнение последнего действия;
Add MF...— позволяет добавить встроенную функции принадлежности термов для выбранной переменной;
Add Custom MF... —- позволяет добавить пользовательскую функцию принадлежности для отдельной переменной;
Remove Current MF — позволяет удалить отдельную функцию принадлежности;
Remove АП MFs— позволяет удалить все функции принадлежности для отдельной переменной;
FIS Properties... — вызывает графический интерфейс редактора FIS;
Rules... — вызывает графический интерфейс редактора правил FIS.
Пункт меню View (Вид) содержит следующие операции:
Rules — вызывает программу просмотра правил FIS;
Surface — вызывает программу просмотра поверхности вывода FIS.
Раскрывающееся меню типов функций принадлежности позволяет выбрать одну из 11 встроенных функций принадлежности. При этом можно также модифицировать существующие функции принадлежности или определить пользовательские функции принадлежности.
Пример использования функции mfedit
mfedit(* tipper')
Результат выполнения функции mfedit ('tipper') изображен на рис. П3.17.
Рис. П3.17. Редактор функций принадлежности, вызванный функцией mfedit ('tipper')
Более подробно особенности работы с редактором функций принадлежности изложены в главе 12.
См. также", fuzzy, ruleedit, ruleview, surfview.
newfis
Назначение. Создает новую систему нечеткого вывода FIS.
Синтаксис. a=newf.L.s (fisName, fisType, andMethod, orMethod
impMethod, ... aggMethod, defuzzMethod)
Описание. Эта функция предназначена для создания новых структур систем нечеткого вывода FIS. Функция newfis имеет 7 аргументов и возвращает единственное значение — структуру FIS с именем а. Аргументами функции являются:
О fisName — строка с именем создаваемой структуры FIS, при этом также создается файл с именем fisName.fis;
fisType — тип системы нечеткого вывода FIS;
О andMethod, orMethod, impMethod, aggMethod, defuzzMethod — соответственно задают методы для выполнения нечетких логических операций and, or, импликации, агрегирования и дефаззификации. Если эти аргументы не указаны, то задаются соответствующие им значения по умолчанию.
уприйержщольэовании функции п^^"
i принятыми по умолчанию•?Д"'Г' "'^'г" ", 1
Wiie«4.^4.i*.-*<iV6»-.s‘<vwi«^4b4*t*«i-^»Ve««.i4N.4.S*S»6r«»V.2iKWi4S'.iV..4xi;v54X..i*..b...*.^Viieril4^-V«l.^«kw6Y««»»i»8Wiiv;-i&W-i..-«i«.-4>.e<Y-.-u-«S'/N;.'ie«**»t«W«sVi.t.li»V.-.....^e.".^tf«..K"*..»
a=newfis('newsys') ;
getfis(a)
В этом случае в окно команд будет выведена следующая информация:
Name -newsys
Type =mamdani
Numinputs =0
InLabels =
NumOutputs =0
OutLabeIs =
NumRules =0
AndMethod =min
OrMethod =max
ImpMethod =min
AggMethod =max
DefuzzMethod =centroid
ans =
newsуз
См. также*, readfis, writefis.
parsrule
Назначение. Осуществляет грамматический анализ нечетких правил.
Синтаксис. fis2 = parsrule(fis,txtRuleList)
fis2 = parsrule(fis,txtRuleList,ruleFormat)
fis2 = parsrule(fis,txtRuleList,ruleFormat,lang)
Описание. Эта функция выполняет грамматическую проверку текста в правилах нечетких продукций для структуры нечеткого вывода в рабочей области системы MATLAB. Функция может иметь следующие аргументы:
fis — имя структуры системы нечеткого вывода в рабочей области;
txtRuleList — строка текста, которая определяет некоторое правило нечеткой продукции;
ruleFormat — строка, определяющая формат представления правил нечетких продукций, которая может принимать одно из следующих значений:
' verbose * — текстовый формат (по умолчанию);
' symbolic' — символический формат;
* indexed' — цифровой формат;
lang — строка, определяющая язык записи правил нечетких продукций, которая может принимать одно из следующих значений:
'english' —английский язык;
' f rancais ' — французский язык;
'deutsch' — немецкий язык.
Пример йсл<>АЬ9«*йййий^Н1й4иир^^^i
*<*AV»e»-£w'.:1l^,:»V6^e;^2v«»y*wV4ivK*«7V£<^«.:ti^KV;^;i»:r<*I^^^^hi^«'*J^«^»I:vf<;rMli^Vi*"^yvw«M»-l»iVi-vi.. .*Cv^
а = readfis('tipper');
ruleTxt = 'if service is poor then tip is generous';
a2 = parsrule(a,ruleTxt,'verbose');
showrule(a2)
В этом случае в окно команд будет выведена следующая информация: апз =
1. If (service is poor) then (tip is generous) (1) См. также; addrule, ruleedit, showrule.
pimf
Назначение. Встроенная /7-образная функция принадлежности.
Синтаксис. у = pimf (х, [а b с d] )
Описание. Эта функция принадлежности определяется как алгебраическое произведение двух сплайн-фуикций (2.19): Z-образной функции вида (2.11) и S-образной функции вида (2.13). Вторым аргументом этой функции является вектор параметров [abed]. При этом параметры а и b характеризуют Z-образную кривую, а параметры cud характеризуют S-образную кривую.
Ж^^^М^ИЯФУМ&ии-прмн^е^носткр^^
х=0:0.1:10;
y=pimf(x,[1 4 5 9]); plot(х,у)
График этой функции принадлежности изображен на рис. 2.16, б.
См. также", dsigmf, gaussmf, gauss2mf, gbellmf, evalmf, mf2mf, psigmf, sigmf, smf, trapmf, trimf, zmf.
plotfis
Назначение. Изображает диаграмму системы нечеткого вывода FIS.
Синтаксис. plotfis (fismat)
Описание. Эта функция изображает диаграмму верхнего уровня системы нечеткого вывода FIS с именем fismat. Входные переменные и их функции принадлежности располагаются слева от структурных характеристик FIS, в то время как выходные переменные и их функции принадлежности располагаются справа.
Пример использования функции plotfis
а = readfis('tipper') plotfis(а)
Результат этого вызова функции plotfis изображен на рис. П3.18. См. также", plotf is, evalmf.
Рис. П3.18. Результат использования функции plotf is для изображения диаграммы системы нечеткого вывода FIS
plotmf
Назначение. Изображает графики всех функций принадлежности для заданной переменной.
Синтаксис. plotmf(fismat, varType, varlndex)
Описание. Эта функция изображает графики всех функций принадлежности для некоторой переменной из системы нечеткого вывода FIS с именем fismat, которое является первым аргументом этой функции. Вторым и третьим аргументами являются тип и номер соответствующей переменной: varType ('input' или 'output') и varlndex. Эта функция также может быть использована с функцией subplot.
ПрИМ ИСПОЛЬЗОВаНИи функции plotmf
^i^S^eeeZweeVAiSnev^ trvl'<^ee<6«?i;'< ^^етТ*»*»* «**»'.'& ■*<in#<<iL>tl'i«’»» «а ш« «в <iMevS-<»T<*vJeVi«it«b»v««
а = readfis('tipper'); plotmf(a, 'input', 1)
Результат этого вызова функции plotmf изображен на рис. П3.19.
См. также-, evalmf, plotf is.
Рис. П3.19. Результат использования функции plotmf для изображения функций принадлежности первой из входных переменных системы нечеткого вывода FIS
psigmf
Назначение. Встроенная 77-образная функция принадлежности, являющаяся произведением двух сигмоидальных функций.
Синтаксис. у = psigmf (х, [abed])
Описание. Эта функция принадлежности определяется как алгебраическое произведение двух сигмоидальных функций (2.20), каждая из которых задается как функция вида (2.14). Вторым аргументом этой функции является вектор параметров [abed]. При этом параметры а и b характеризуют первую сигмоидальную функцию, а параметры с и d — вторую сигмоидальную функцию.
^.Пример задания функций принадлежности psigmf
х=0:0.1:10;
y=psigmf(х, [2 4 -5 9]) ; plot(х,у)
График этой функции принадлежности изображен на рис. 2.17, б.
См. также', dsigmf, gaussmf, gauss2mf, gbellmf, evalmf, mf2mf, pimf, sigmf, smf, trapmf, trimf, zmf.
readfis
Назначение. Загружает систему нечеткого вывода FIS из внешнего файла.
Синтаксис.Синтаксис.fismat = readfis(*filename *)
Синтаксис.
Синтаксис.
Описание. Эта функция считывает систему нечеткого вывода из внешнего файла с именем filename, имеющего расширение fis, и загружает его данные в рабочую область. Если данная функция вызывается без аргумента, то открывается стандартное диалоговое окно открытия файла.
• Приме*» м^о/|&г^йМЙ ФУНКЦИЙ readfis г
fismat = readfis(* tipper*); getfis(fismat)
В этом случае в окне команд будет выведена следующая информация:
Name =tipper
Type =mamdani
Numinputs =2
InLabels = service food
NumOutputs =1
OutLabeIs = tip
NumRules =3
AndMethod =min
OrMethod =max
ImpMethod =min
AggMethod =max
DefuzzMethod = centroid ans =
tipper
См. также", writefis.
rmmf
Назначение. Удаляет функцию принадлежности из системы нечеткого вывода FIS.'*
Синтаксис. fis = rmmf (fis, 'varType*, varlndex, 'mf, mflndex)
Описание. Функция командной строки fis = rmmfffis, varType, varindex, 'mf', mfindex) удаляет функцию принадлежности с номером mf Index для типа переменной varType ('input* или 'output') и номером переменной varindex из системы нечеткого вывода FIS, ассоциированной со структурой с именем fis. Структура fis должна находиться в рабочей области системы MATLAB. При этом требуется еще один аргумент 'mf' — строка, указывающая тип удаляемой функции принадлежности.
- Tipi мер использования функции z им*v- ' ' ^. Н
а = newfis('mysys');
а = addvar(a,'input','temperature', fO 100]);
a = addmf(a, 'input', 1,'cold', 'trimf', f0 30 60]) ;
getfis(a,'input', 1)
В этом случае в окно команд будет выведена следующая информация:
Name =NumMFs =MFLabels =coldRange =Name =NumMFs =MFLabels =coldRange =temperature1temperature1[0 100][0 100]
Name =
NumMFs =
MFLabels =
cold
Range =
Name =
NumMFs =
MFLabels =
cold
Range =
temperature
1
temperature
1
[0 100]
[0 100]
^Пример использования функции rmmf(продолжение)
b = rmmf(a,'input', 1, 'mf', 1) ;
getfis(b,'input', 1)
В этом случае в окно команд будет выведена следующая информация:
Name =temperature
NumMFs =0
MFLabels =
Range =[0 100]
См. также", addmf, addrule, addvar, plotmf, rmvar.
rmvar
Назначение. Удаляет переменные из системы нечеткого вывода FIS.
Синтаксис. [fis2, errorStr] = rmvar(fis, 'varType', varindex) fis2 = rmvar(fis, 'varType', varindex)
Описание. Функция командной строки fis2 = rmvar(fis, 'varType', varlndex) удаляет переменную типа 'varType' ('input' или ' output') с номером varlndex из системы нечеткого вывода FIS, ассоциированной со структурой fis. Эта структура должна находиться в рабочей области системы MATLAB. При этом происходит автоматическое изменение списка правил с целью согласования с новым числом переменных.
До удаления переменной из системы нечеткого вывода необходимо удалить все правила, в которых используется удаляемая переменная. Нельзя удалить переменную, которая присутствует в списке правил. При наличии ошибки функция возвращает сообщение об ошибке в строке с именем errorstr.
: Пример использования функции rmvar
а = newfis('mysys');
а = addvar(а,'input','temperature',[0 100]); getfis(a)
В этом случае в окно команд будет выведена следующая информация:
Name =mysys
Type =mamdani
Numinputs =1
InLabels = temperature
NumOutputs =0
OutLabeIs = NumRules =0
AndMethod = min OrMethod =max
ImpMethod =min
AggMethod =max
DefuzzMethod =centroid
ans =
mysys
—;•—-i".-
^Пример использования функции rmvar (продолжение)/
»iee:.«*e»a».ti1#.»;4«i4«;.*«-.«i6'e«^».i?.*V<«V*O^4ib.»*»l?i««iV.*w««.W-W<-»*e.«vvi^V*..*SHh.'^4. •1Л...;4Л4<.->;й*.«*'1.4«. алл »et,4.»4eV«evi?66i6v#«i*v4.««.
b = rmvar(a,'input',1);
getfisfb)
В этом случае в окно команд будет выведена следующая информация:
Name =mysys
Type =mamdani
Numinputs =0
InLabels = NumOutputs =0
OutLabels = NumRules =0
AndMethod =min
OrMethod =max
ImpMethod =min
AggMethod =max
DefuzzMethod = centroid ans =
mysys
Cai. также', addmf, addrule, addvar, rmmf.
ruleedit
Назначение. Вызывает графический интерфейс редактора правил системы нечеткого вывода.
Синтаксис. ruleedit (' а')
ruleedit(а)
Описание. Эта функция, записанная в формате ruleedit ('а*), вызывает редактор правил, который позволяет пользователю в графическом режиме анализировать и модифицировать правила продукций системы нечеткого вывода FIS, сохраненной во внешнем файле с именем a.fis. Эта функция позволяет также выполнять грамматический анализ правил, которые используются в некоторой системе нечеткого вывода FIS.
Чтобы использовать данный редактор для создания правил, необходимо предварительно определить все входные и выходные переменные, для чего можно воспользоваться редактором системы нечеткого вывода FIS. При этом задать правила можно с помощью выбора соответствующих значений термов входных и выходных переменных.
Функция в формате ruleedit (а) вызывает редактор правил для переменной рабочего пространства MATLAB, которая соответствует структуре FIS с именем а.
Редактор правил имеет главное меню, которое позволяет пользователю вызывать другие графические средства работы с системой нечеткого вывода FIS, загружать и сохранять структуру FIS во внешних файлах и т. д.
Пункт меню File (Файл) редактора правил содержит такие же операции, что и соответствующий пункт меню редактора FIS.
Пункт меню Edit (Редактирование) содержит следующие операции:
Undo — отменяет выполнение последнего действия;
FIS Properties... — вызывает редактор FIS;
Membership Functions... — вызывает редактор функций принадлежности.
Пункт меню View (Вид) содержит следующие операции:
Rules — вызывает программу просмотра правил;
Surface — вызывает программу просмотра поверхности вывода.
Пункт меню Options (Сервис) содержит следующие операции:
Language— позволяет выбрать язык для записи правил в форме текста: English (английский), Deutsch (немецкий) или Francais (французский);
Format— позволяет выбрать формат записи правил системы нечеткого вывода: Verbose (в форме текста), Symbolic (в символической форме) или Indexed (в цифровой форме).
Рис. П3.20. Редактор правил нечетких продукций, вызываемый функцией ruleedit (' tipper' )
При записи правил в форме текста для создания законченных предложений используются служебные слова "if, "then", "AND", "OR" и т. д. При записи правил
в символической форме эти служебные слова заменяются символами соответствующих операций. Например, правило "if A AND В then С" преобразуется к виду: "А & В => С". Правила, записанные в цифровой форме, соответствуют формату их представления в структуре FIS. Более подробно особенности работы с редактором правил изложены в главе 12.
ruleedit(’tipper1)
Результат выполнения функции ruleedit (* tipper') изображен на рис. П3.20.
См. также*, addrule, fuzzy, mfedit, parsrule, ruleview, showrule, surfview.
ruleview
Назначение. Вызывает графический интерфейс программы просмотра правил системы нечеткого вывода FIS.
Синтаксис. ruleview (1 а ' )
ruleview(а)
Описание. Эта функция, записанная в формате ruleview(1 а'), вызывает программу просмотра правил, которая изображает диаграмму нечеткого вывода для структуры FIS, сохраненной во внешнем файле с именем a.fis. Функцию целесообразно использовать в том случае, когда необходимо визуально представить весь процесс нечеткого вывода от начала до конца. При этом пользователь имеет возможность оценить влияние каждого из правил на результат нечеткого вывода посредством изменения значений входных переменных.
Функция в формате ruleview (а) вызывает программу просмотра правил для переменной рабочего пространства MATLAB, соответствующей структуре FIS с именем а.
Программа просмотра правил имеет главное меню, которое позволяет пользователю вызывать другие графические средства работы с системой нечеткого вывода FIS, загружать и сохранять структуру FIS во внешних файлах и т. д.
Пункт меню File (Файл) редактора правил содержит такие же операции, что и соответствующий пункт меню редактора FIS.
Пункт меню Edit (Редактирование) содержит следующие операции:
Undo — отменяет выполнение последнего действия;
FIS Properties... — вызывает редактор FIS;
Membership Functions... — вызывает редактор функций принадлежности;
Rules— вызывает программу редактирования правил.
□ Пункт меню View (Вид) содержит следующие операции:
• Surface — вызывает программу просмотра поверхности вывода.
□ Пункт меню Options (Сервис) содержит следующие операции:
• Format— позволяет выбрать формат записи правил системы нечеткого вывода: Verbose (в форме текста), Symbolic (в символической форме) или Indexed (в цифровой форме).
Если щелкнуть на номере правила в левой части диаграммы нечеткого вывода, то соответствующее правило появится в строке состояния в нижней части графического интерфейса программы просмотра правил в том формате, который выбран операцией Options>Format. Более подробно особенности работы с программой просмотра правил изложены в главе 12.
ruleview(* tipper')
Результат выполнения функции ruleview (• tipper') изображен на рис. П3.21. См. также-, fuzzy, mfedit, ruleedit, surfview.
Рис. П3.21. Программа просмотра правил нечетких продукций, вызываемая функцией rule view (' tipper')
setfis
Назначение. Задает свойства системы нечеткого вывода FIS.
Синтаксис. а = setfis (а, *f ispropname ', 'newfisprop') а = setfis(a, 'vartype', varindex, 'varpropname', 1newvarprop’) a = setfis(a, ’vartype*, varindex, 'mf, mfindex, ... 'mfpropname *, 'newmfprop')
Описание. Функция setfis может быть вызвана с тремя, пятью или семью аргументами в зависимости от того, необходимо ли задать структуру FIS в целом, только переменную структуры FIS или отдельную функцию принадлежности для одной из переменных структуры FIS. Аргументы функции имеют следующие значения:
а — имя структуры FIS в рабочей области MATLAB;
* vartype * — строка с указанием типа переменной (input или output);
varindex — номер входной или выходной переменной;
'mf * — строка, необходимая для вызова функции с пятью или семью аргументами, с указанием на то, что функция setfis задает функцию принадлежности для некоторой переменнаой;
mfindex — • номер функции принадлежности для выбранной переменной;
’ f ispropname * — строка с указанием свойства поля структуры FIS, которая может принимать следующие значения: name, type, andmethod, ormethod, impmethod, aggmethod, defuzzmethod;
'newfisprop' — строка с указанием имени свойства FIS или метода, который задается данной функцией;
'varpropname' — строка с указанием имени поля структуры FIS, которая задается данной функцией (name или range);
'newvarprop* — строка с указанием имени задаваемой переменной (для name) или диапазона изменения ее значений (для range);
'mfpropname* — строка с указанием имени поля задаваемой функции принадлежности (name, type или params);
’newmfprop’ — строка с указанием имени или типа поля задаваемой функции принадлежности (для name или type) или вектор с указанием параметров задаваемой функции принадлежности (params).
а = readfis(* tipper');
а2 = setfis(a, 'name', 'eating'); getfis(a2, 'name')
В этом случае в окне команд будет выведена следующая информация: out -
eating ans =
eating
a2 = setfis(a, "input", 1,'name','help*); getfis(a2,1 input1,1, 1 name’}
В этом случае в окне команд будет выведена следующая информация:
ans =
help
а2 = setfis(а,'input',1,’mf",2,"name",'wretched*); getfis(a2, 'input', 1,'mf*,2,"name1)
В этом случае в окне команд будет выведена следующая информация:
ans =
wretched
См. также-, getfis
sffis
Назначение. S-функция нечеткого вывода из пакета Simulink.
Синтаксис. output = sffis(t, х, u, flag, fismat)
Описание. Для выполнения расчетов, выполняемых обычно функцией evalfis. в системе Simulink используется собственный МЕХ-файл. Этот файл специально оптимизирован для работы в среде Simulink. Это означает, кроме всего прочего, что функция sffis создает некоторую структуру данных в рабочей области в ходе выполнения фазы инициализации моделирования в системе Simulink и продолжает ее использовать до завершения процесса моделирования.
Аргументы t, х и flag являются стандартными параметрами S-функции пакета Simulink. Аргумент и является входом в структуру системы нечеткого вывода FIS с именем fismat в рабочей области MATLAB. Например, если структура fismat имеет две входных переменных, то и представляет собой вектор с двумя компонентами.
Си. также; evalfis, fuzblock.
showfis
Назначение. Отображает структуру указываемой системы нечеткого вывода FIS.
Синтаксис.Синтаксис.showfis(fismat)showfis(fismat)
Синтаксис.
Синтаксис.
showfis(fismat)
showfis(fismat)
Описание. Функция showfis (fismat) выводит в окне команд системы MATLAB значения всех полей структуры fismat, которая определяет систему нечеткого вывода FIS и должна находиться в рабочей области.
а = readfis(1 tipper*); showfis(a)
В этом случае в окне команд будет выведена следующая информация:
1. Name
tipper
Туре
Inputs/Outputs
NumlnputMFs
'NumOutputMFs
NumRules
mamdani
[2 1]
[3 2]
3
3
7. AndMethod
min
8. OrMethod
max
ImpMethod
AggMethod
DefuzzMethod
min
max
centroid
12. InLabels
service
13.
food
14. OutLabels
tip
InRange
[0 10]
[0 10]
OutRange
InMFLabels
(0 30] poor
19.
good
20.
excellent
21.
rancid
22.
delicious
23. OutMFLabels
cheap
24 .
average
25.
generous
26. InMFTypes
gaussmf
27.
gaussmf
28.
gaussmf
29.
trapmf
30.
trapmf
31. OutMFTypes
trimf
32.
trimf
33.
trimf
34. InMFParams
[1.5 000]
35.
[1.5 500]
36.
[1.5 10 0 0]
37.
[0013]
38.
[7 9 10 10]
39. OutMFParams
[0 5 10 0]
40.
[10 15 20 0]
41.
[20 25 30 0]
42. Rule Antecedent
[1 1]
43.
[2 0]
44.
[3 2]
42. Rule Consequent
1
43.
2
44.
3
42. Rule Weigth
1
43.
1
44 .
1
4 2. Rule Connection
2
43.
1
44.
2
См. также: getf is.
showrule
Синтаксис,Синтаксис,Назначение. Отображает правила системы нечеткого вывода FIS.
Синтаксис,
Синтаксис,
showrule(fis)
showrule(fis, indexList)
showrule(fis, indexList, format)
showrule(fis, indexList, format, Lang)
Описание. Эта функция используется для визуализации правил системы нечеткого вывода FIS. Она может быть вызвана с различным числом аргументов: от 1 до 4.
fis — обязательный аргумент, который должен соответствовать имени структуры системы нечеткого вывода FIS в рабочей области MATLAB;
indexList — необязательный аргумент, который представляет собой вектор номеров правил, которые требуется отобразить в окне команд;
format — необязательный аргумент, который представляет собой строку формата, в котором требуется отобразить правила. Эта строка может принимать одно из следующих значений: 'verbose' (значение по умолчанию, которое соответствует отображению правил в форме текста на английском языке), 'symbolic* (соответствует отображению правил в символической форме), 'indexed* (соответствует отображению правил в цифровой форме, при этом указываются только номера правил);
Lang — необязательный аргумент, который представляет собой строку с указанием языка отображения правил в окне команд в случае использования формата verbose. Эта строка может принимать одно из следующих значений: 'english*, *francais*,ИЛИ 'deutsch'.
йДример wenoj
а = readfis(1 tipper'); showrule(a,1)
В результате выполнения этой последовательности функций в окне команд появится следующий результат: ans -
1. If (service is poor) or (food is rancid) -then (tip is cheap) (1)
showrule(a,[3 1], * symbolic')
В результате выполнения этой функции в окне команд появится следующий результат: ans = 3. (service” ^excellent) I (food= =delicious) => (tip=generous) (1) 1. (service” =poor) | (food= =rancid) => (tip=cheap) (1)
showrule(a,1:3,* indexed*)
В результате выполнения этой функции в окне команд появится следующий результат: ans =
1 1, 1 (1) : 2 2 0, 2 (1) : 1 3 2, 3 (1) : 2
См также; parsrule, ruleedit, addrule.
sigmf
Назначение. Встроенная сигмоидальная функция принадлежности.
Синтаксис. у = sigmf (х, [а Ь])
Описание. Сигмоидальная функция принадлежности определяется выражением (2.14). Вторым аргументом этой функции является вектор параметров [а ь], которые принимают произвольные действительные значения и упорядочены отношением: а<Ь. При этом в случае п>0 может быть получена S-образная функция принадлежности, а в случае а<0 — Z-образная функция принадлежности.
И
б|55И|М
.....
1Ы «И WASH/ иг #V#WTUIV»"
ЙййЖййЙЙййЙй'ЙЙ^^
х=0:0.
1:10;
y=sigmf(х,[3 б]); plot(х,у)
График этой функции принадлежности изображен на рис. 2.14, а.
См. также; dsigmf, gaussmf, gauss2mf, gbellmf, evalmf, mf2mf, pimf, psigmf, smf, trapmf, trimf, zmf.,
smf
Назначение. Встроенная S-образная функция принадлежности.
Синтаксис. у = smf(x, [а Ь])
Описание. Эта функция принадлежности является сплайн-функцией и определяется выражением (2.13). Вторым аргументом этой функции является вектор параметров [а Ь], которые принимают произвольные действительные значения и упорядочены отношением: а<Ь. Эти параметры характеризуют наклонную часть соответствующей кривой.
х=0:0.1:10;
y=smf(x, [3 6]); plot(х,у)
График этой функции принадлежности изображен на рис. 2.13, б.
См. также-, dsigmf, gaussinf, gauss2mf, gbellmf, evalmf, mf2mf, pimf, psigmf, sigmf, trapmf, trimf, zmf.
subclust
Назначение. Находит центры кластеров методом субтрактивной кластеризации.
Синтаксис. [C,S] = subclust (X, radii, xBounds, options)
Описание. Эта функция предназначена для нахождения центров нечетких кластеров в множестве данных методом субтрактивной кластеризации. Метод субтрактивной кластеризации предполагает, что каждая точка данных является центром потенциального кластера и рассчитывает меру подобия каждой точки данных представлять центр кластера. При этом мера подобия основана на оценке плотности точек данных вокруг соответствующего центра кластера.
Данный алгоритм, который является обобщением метода кластеризации Р. Ягера (R. Yager), позволяет:
выбрать точку данных с максимальным потенциалом для представления центра первого кластера;
удалить все точки данных в окрестности центра первого кластера, величина которой задается параметром radii, чтобы определить следующий нечеткий кластер и координаты его центра.
Эти две процедуры повторяются до тех пор, пока все точки данных не окажутся внутри окрестностей радиуса radii некоторого центра кластера.
Матрица х содержит данные кластеризации, каждая строка которой соответствует координатам отдельной точки данных. Параметр radii представляет собой вектор, компоненты которого принимают значения из интервала [0, 1] и задают диапазон расчета центров кластеров по каждому из признаков измерений. При этом делается предположение, что все данные содержатся в некотором единичном гиперкубе. В общем случае небольшие значения параметра radii приводят к нахождению малого числа точек кластеров. Наилучшие результаты получаются при значениях radii между 0.2 и 0.5.
Например, для двух признаков измерения (матрица х содержит 2 столбца) значения параметра radii = [0.5 0.25] задает диапазон расчета по первому признаку равным 0.5 ширины пространства данных, а по второму признаку
равным 0.25 ширины пространства данных. Если параметр radii задан в форме скаляра, то это значение относится к каждому признаку, т. е. центр каждого из кластеров имеет сферическую окрестность указанного радиуса для расчета значений своих координат.
Аргумент xBounds представляет собой матрицу размерности (2ху), которая определяет способ отображения матрицы данных х в некотором единичном гиперкубе. Здесь q— количество рассматриваемых признаков в множестве данных. Этот аргумент является необязательным, если матрица х уже нормализована. Первая строка этой матрицы содержит минимальные значения интервала измерения каждого из признаков, а вторая строка — максимальные значения измерения каждого из признаков. Например, xBounds = [-10 -5; 10 5] определяет диапазон измерения первого признака в интервале [-10 +10], а диапазон измерения второго признака в интервале [-5 +5]. Если значения этой матрицы не указаны, то по умолчанию диапазон измерения признаков полагается равным интервалу от наименьшего значения до наибольшего значения по каждому из признаков в матрице данных.
Для изменения заданных по умолчанию параметров алгоритма кластеризации может быть использован дополнительный вектор options. Компоненты этого вектора могут принимать следующие значения:
options (1) = quashFactor —параметр, используемый в качестве коэффициента для умножения значений radii, которые определяют окрестность центра кластера. Это осуществляется с целью уменьшения влияния потенциала граничных точек, рассматриваемых как часть нечеткого кластера (по умолчанию это значение равно 1.25);
options (2) = acceptRatio— параметр, устанавливающий потенциал как часть потенциала центра первого кластера, выше которого другая точка данных может рассматриваться в качестве центра другого кластера (по умолчанию это значение равно 0.5);
options (3) = rejectRatio— параметр, устанавливающий потенциал как часть потенциала центра первого кластера, ниже которого другая точка данных не может рассматриваться в качестве центра другого кластера (по умолчанию это значение равно 0.15);
options (4) = verbose — если значение этого параметра не равно нулю, то на экран монитора выводится информация о выполнении процесса кластеризации (по умолчанию это значение равно 0).
Функция subclust возвращает матрицу с значений координат центров нечетких кластеров. При этом каждая строка этой матрицы содержит координаты одного центра кластера. Эта функция также возвращает вектор S, компоненты которого представляют a-значения, которые определяют диапазон влияния центра кластера по каждому из рассматриваемых признаков. При этом все центры кластеров обладают одинаковым множеством о-значений.
Лпммее ax v^a ^жчкции4#йЬсШ^^
[C,S] = subclust(X, 0.5)
В этом случае для всех признаков множества данных задается один диапазон влияния 0.5.
[C,S] = subclust(X,[0.5 0.25 0.3],[],[2.0 0.8 0.7])
В этом случае для множества данных используется 3 признака (матрица X имеет 3 столбца) с радиусами окрестностей 0.5, 0.25, 0.3 по первому, второму и третьему признакам соответственно. Коэффициенты шкалирования для отображения множества данных в единичный гиперкуб получаются на основе минимального и максимального значений данных. Аргумент squashFactor, равный 2.0, указывает на то, что необходимо определить кластеры, далеко расположенные друг от друга. Аргумент acceptRatio равный 0.8, указывает на то, что для нахождения центров кластеров будет нужен очень высокий потенциал. Наконец, аргумент rejectRatio равен 0.7, что указывает на необходимость исключения из рассмотрения всех точек данных, не обладающих высоким потенциалом.
См. также; genfis2.
surfview
Назначение. Вызывает графический интерфейс программы просмотра поверхности системы нечеткого вывода.
Синтаксис.surf view (’ а1)
surfview(а)
Описание. Эта функция, записанная в формате surfview (' а'), вызывает программу просмотра поверхности, которая изображает поверхность нечеткого вывода для структуры FIS, сохраненной во внешнем файле с именем a.fis, для любой одной или двух из ее входных переменных. Эта программа не позволяет вносить изменения в систему нечеткого вывода и соответствующую ей структуру FIS. Используя главное меню программы, пользователь может выбрать входные переменные и соответствующие им горизонтальные оси системы координат (х и Y), а также выходную переменную, которой соответствует вертикальная ось системы координат (z). Функция в формате surfview (а) вызывает программу просмотра поверхности вывода для переменной рабочего пространства MATLAB, соответствующей структуре FIS с именем а.
Щелкнув и задержав левую кнопку мыши, посредством последующего перемещения курсора мыши в том или ином направлении можно изменить угол просмотра поверхности вывода. Если рассматривается система нечеткого вывода с более чем двумя входными переменными, то для невизуализируемых входных переменных следует задать некоторые постоянные значения (константы).
Программа просмотра поверхности вывода имеет главное меню, которое позволяет пользователю вызывать другие графические средства работы с системой нечеткого вывода FIS, загружать и сохранять структуру FIS во внешних файлах и т. д.
Пункт меню File (Файл) редактора правил содержит такие же операции, что и соответствующий пункт меню редактора FIS.
Пункт меню Edit (Редактирование) содержит следующие операции:
Undo — отменяет выполнение последнего действия;
FIS Properties... — вызывает редактор FIS;
Membership Functions... — вызывает редактор функций принадлежности;
Rules — вызывает программу редактирования правил.
О Пункт меню View (Вид) содержит следующие операции:
Rules — вызывает программу просмотра правил.
Пункт меню Options (Сервис) содержит следующие операции:
Plot — позволяет выбрать один из 8 стилей изображения графика поверхности вывода;
Color Мар— позволяет выбрать одну из 4 цветовых схем изображения графика поверхности вывода;
Always evaluate — пометка галочкой, этого пункта вложенного меню приводит к автоматическому формированию новой поверхности вывода всякий раз, когда вносятся изменения в систему нечеткого вывода, влияющие на форму графика поверхности вывода (такие, как изменение количества точек сетки графика). Это значение принято по умолчанию. Чтобы его отменить, необходимо снять галочку у этого пункта вложенного меню, щелкнув на этой позиции меню.
Более подробно особенности работы с программой просмотра поверхности вывода изложены в главе 12.
surfview('tipper1)
Результат выполнения функции surfview (• tipper*) изображен на рис. П3.22.
См. также: anfisedit, fuzzy, gensurf, mfedit, ruleedit, ruleview.
Рис. П3.22. Программа просмотра поверхности вывода, вызываемая функцией surfview('tipper')
trapmf
Назначение. Встроенная трапециевидная функция принадлежности.
Синтаксис. у = trapmf (х, [a b с d])
Описание. Эта функция используется для задания трапециевидных функций принадлежности вида (2.9). Функция trapmf использует четыре аргумента: а, Ь, с и d, в качестве некоторых числовых параметров, принимающих произвольные действительные значения и упорядоченные отношением: a<b<c<d. При этом значения а и d задают носитель соответствующего нечеткого множества, а значения b ис — ядро этого нечеткого множества.
х=0:0.1:10;
y=trapmf(х,[1 3 5 8]); plot(х,у)
График полученной в этом случае функции принадлежности изображен на рис. 2.11,б.
См. также*, dsigmf, gaussmf, gauss2mf, gbellmf, evalmf, mf2mf, pimf, psigmf, sigmf, smf, trimf, zmf.
trimf
Назначение. Встроенная треугольная функция принадлежности.
Синтаксис. у = trimf(х, [а Ь с])
Описание. Эта функция используется для задания треугольных функций принадлежности вида (2.8). Функция trimf использует три аргумента: а, b и с— некоторые числовые параметры, принимающие произвольные действительные значения и упорядоченные отношением: а<Ь< с. При этом значения а и с определяют носитель соответствующего нечеткого множества, а значение b— модальное значение этого нечеткого множества.
х—0:0.1:10;
y=trimf(х,[3 4 7] ); plot(х,у)
График полученной в этом случае функции принадлежности изображен на рис. 2.11, а.
См. также; dsigmf, gaussmf, gauss2mf, gbellmf, evalmf, mf2mf, pimf, psigmf, sigmf, smf, trapmf.
writefis
Назначение. Сохраняет систему нечеткого вывода FIS во внешнем файле.
Синтаксис. writefis(fismat)
writefis(fismat, 'filename') writefis(fismat, 'filename*, ’dialog*)
Описание. Функция writefis сохраняет структуру системы нечеткого вывода FIS с именем fismat, находящуюся в рабочей области системы MATLAB, во внешнем файле с расширением fis. Вызов этой функции в формате writefis (fismat) открывает стандартное диалоговое окно сохранения файла. Использование функции в формате writefis (fismat, 1 filename1) записывает структуру системы нечеткого вывода FIS с именем fismat, находящуюся в рабочей области системы MATLAB, во внешнем файле с расширением fis и именем
filename. При этом диалоговое окно сохранения файла не открывается, а файл сохраняется в текущем каталоге на диске.
Вызов функции в формате writefis (fismat, 'filename', 'dialog') открывает диалоговое окно сохранения файла, при этом запись будет производиться в файл с именем filename.fis. В том случае, если расширение fis не содержится в имени файла, оно будет добавлено автоматически.
а = newfis('tipper*);
а = addvar(a,'input*,'service*,[О 10]);
a = addmf(a,'input',1,"poor','gaussmf', [1.5 0]);
a = addmf(a,*input', 1, 'good','gaussmf',[1.5 5 ]) ;
a = addmf (a,'input',1,'excellent*,'gaussmf',[1.5 10]); writefis(a,*my_file*)
См. также: readfis.
zmf
Назначение. Z-образная функция принадлежности.
Синтаксис. у = zmf(x, [а b])
Описание. Эта функция используется для задания Z-образных функций принадлежности вида сплайн-функции (2.11). Функция zmf использует два аргумента: а и b — некоторые числовые параметры, принимающие произвольные действительные значения и упорядоченные отношением: а<Ь.
х=0:0.1:10;
y=zmf (х, [3 6]) ;
plot(х,у)
График полученной в этом случае функции принадлежности изображен на рис. 2.12, а.
См. также; dsigmf, gaussmf, gauss2mf, gbellmf, evalmf, mf2mf, pimf, psigmf, sigmf, smf, trapmf, trimf.
Пакет Fuzzy Logic Toolbox также содержит ряд демонстрационных примеров, которые могут быть использованы для самостоятельного изучения соответствующих нечетких моделей, их модификации и исследования. Эти демонстрационные примеры можно открыть как функцией demo, которая позволяет познако-
миться со всеми примерами, доступными в системе MATLAB, так и с помощью соответствующих функций в командном режиме. Поскольку некоторые из этих функций (например, femdemo) рассматриваются в тексте книги, а другие тесно интегрированы с пакетом расширения Simulink, здесь лишь указывается их назначение (табл. П3.1).
Таблица ПЗ. 1. Функции вызова демонстрационных примеров
Функция
Назначение
defuzzdm
Примеры методов дефаззификации
femdemo
Пример кластеризации точек на плоскости методом нечетких с- средних FCM
fuzdemos
Примеры графического интерфейса пользователя в пакете Fuzzy Logic Toolbox
gasdemo
Пример применения системы для эффективного управления топливом на основе метода субтрактивной кластеризации
juggler
Пример просмотра правил для задачи жонглирования мяча
invkine
Пример инверсной кинематики захвата механической руки робота
irisfem
Пример кластеризации точек в четырехмерном пространстве методом нечетких с-средних FCM
noisedin
Пример адаптивного устранения шума
slbb
Пример управления движением мяча на качающейся балке с использованием средств пакета Simulink
slap
Пример управления инвертированным маятником с использованием средств пакета Simulink
sltank
Пример управления уровнем воды с использованием средств пакета Simulink
sltankrule
Пример управления уровнем воды с использованием программы просмотра правил средствами пакета Simulink
sltbu
Пример нечеткого управления движением грузового автомобиля с использованием средств пакета Simulink
Приложение 4
Пример файла проекта для программы fuzzyTECH
PROJECT {NAME=TIPPER.FTL;TITLE = TIPPER;AUTHOR = A. Leonenkoff;DATEFORMAT = YYYY.DD.MM;LASTCHANGE = 2003.19.01;CREATED = 2003.06.01;PROJECT {NAME=TIPPER.FTL;TITLE = TIPPER;AUTHOR = A. Leonenkoff;DATEFORMAT = YYYY.DD.MM;LASTCHANGE = 2003.19.01;CREATED = 2003.06.01;В настоящем приложении приводится текст файла проекта системы нечеткого вывода в формате FTL среды fuzzyTECH для примера "Чаевые в ресторане". Как нетрудно заметить, запись системы нечеткого вывода в формате FTL, используемом для спецификации всех параметров нечеткого проекта в среде fuzzyTECH, очень похожа на спецификацию системы нечеткого вывода на языке нечеткого управления FCL (см. главу 8).
PROJECT {
NAME=TIPPER.FTL;
TITLE = TIPPER;
AUTHOR = A. Leonenkoff;
DATEFORMAT = YYYY.DD.MM;
LASTCHANGE = 2003.19.01;
CREATED = 2003.06.01;
PROJECT {
NAME=TIPPER.FTL;
TITLE = TIPPER;
AUTHOR = A. Leonenkoff;
DATEFORMAT = YYYY.DD.MM;
LASTCHANGE = 2003.19.01;
CREATED = 2003.06.01;
SHELLOPTIONS {
ONLINE REFRESHTIME
= 55;
ONLINE_TIMEOUTCOUNT = 1100;
ONLINE CODE
= ON;
ONLINE__TRACE_BUFFER = (ON, PAR(1024));
COMMENTS
= ON;
FTL_BUFFER
= (OFF, PAR(l));
PASSWORD
= OFF;
PUBLIC_IO
= ON;
FAST_CMBF
= OFF;
FAST COA
= ON;
BTYPE= DOUBLE;
C_TYPE= ANSI;
} /* SHELLOPTIONS */
MODEL {
VARIABLE_SECTION (
LVAR {
NAME= Service;
BASEVAR= degree;
LVRANGE= MIN(0.000000),MAX(10.000000),
MINDEF(O), MAXDEF(65535) , DEFAULT_OUTPUT(0.0);
RESOLUTION = XGRID(1.0), YGRID(1.0), SHOWGRID (ON), SNAPTOGRID(ON);
COLOR=RED (255),GREEN (0), BLUE (0);
INPUT=CMBF;
POS=-225, 30;
TERM {
TERMNAME = poor;
POINTS = (0.0, 1.0), (5.0, 0.0), (10.0, 0.0);
SHAPE = (S_SHAPE, PAR (0.800000));
COLOR = RED (255), GREEN (0), BLUE (0) ; } TERM {
TERMNAME = good;
POINTS = (0.0, 0.0), (5.0, 1.0), (10.0, 0.0);
SHAPE = (S_SHAPE, PAR (0.800000));
COLOR = RED (0), GREEN (0), BLUE (255); } TERM {
TERMNAME = excellent;
POINTS = (0.0, 0.0), (5.0, 0.0), (10.0, 1.0);
SHAPE = (S_SHAPE, PAR (0.800000));
COLOR = RED (0), GREEN (255), BLUE (0) ;
}/* LVAR j
V
LVAR (
NAME
= Food;
BASEVAR
= degree;
LVRANGE
=MIN(0.00), MAX(IO.OO),
MINDEF(O), MAXDEF(65535),
DEFAULT_OUTPUT(0.0);
RESOLUTION
=XGRID(0.2), YGRID(l.O),
SHOWGRID (ON), SNAPTOGRID(ON);
COLOR
= RED (0), GREEN (255), BLUE (0)
INPUT
= CMBF;
POS
= -225, -35;
TERM {
TERMNAME
= rancid;
POINTS
= (0.0, 1.0),
(1.0, 1.0),
(3.0, 0.0),
(30.0, 0.0);
SHAPE
= LINEAR;
COLOR
= RED (255), GREEN (0), BLUE (0)
)
TERM {
TERMNAME = delicious;
POINTS = (0.0, 0.0),
(7.0, 0.0),
(9.0, 1.0), (10.0, 1.0);
SHAPE= LINEAR;
COLOR= RED (0), GREEN (0), BLUE (255);
}
}/* LVAR */
LVAR (
NAME
= Tip;
BASEVAR
= percentage;
LVRANGE
= MIN(0.000000), MAX(30.000000), MINDEF(O), MAXDEF(65535), DEFAULT OUTPUT(0.0);
RESOLUTION = XGRID(0.25), YGRID(l.O), SHOWGRID(ON),SNAPTOGRID(ON);
COLOR=RED (0),GREEN(0) ,BLUE(255);
OUTPUT=COM;
POS-75, 0;
TERM {
TERMNAME = cheap;
POINTS = (0.0, 0.0), (5.0, 1.0), (10.0, 0.0), (30.0, 0.0);
SHAPE = LINEAR;
COLOR — RED (255), GREEN (0), BLUE (0) ; } TERM {
TERMNAME = average; POINTS = (0.0, 0.0), (10.0, 0.0), (15.0, 1.0), (20.0, 0.0), (30.0, 0.0);
SHAPE = LINEAR;
COLOR = RED (0), GREEN (0), BLUE (255);
}
TERM {
TERMNAME
= generous;
POINTS
= (0.0, 0.0),
(20.0, 0.0),
(25.0, 1.0),
(30.0, 0.0);
SHAPE
= LINEAR;
COLOR
= RED (0) , GREEN (255) , BLUE (0) ;
}
}/* LVAR */
}/* VARIABLE_SECTION */
OBJECT_SECTION {
REMARK {
TEXT = Чаевые в ресторане;
POS = -175, -135; , FONTSPEC = 36, 0, 0, 0, 0, 16, 0; FONTNAME =Times New Roman Cyr;
COLOR = RED (161), GREEN (0) , BLUE (160); } RULEBLOCK {
NAME=RBI;
INPUT=Service, Food;
OUTPUT=Tip;
AGGREGATION =(MINJMAX, PAR (0.0));
RESULT_AGGR = MAX;
POS= -80, -35;
RULES {
IF Service = poor AND Food = rancid
THEN Tip = cheap WITH 1.000;
IF Service = good
THEN Tip = average WITH 1.000;
IF Service = excellent AND Food = delicious
THEN Tip = generous WITH 1.000;
)/* RULES */
}/* RULEBLOCK */
REMARK [
TEXT = Блок Правил;
POS = -40, -70;
FONTSPEC = 18, 0, 0, 0, 0, 16, 0;
FONTNAME -Times New Roman Cyr;
COLOR = RED (0), GREEN (112), BLUE (80); ) REMARK {
TEXT = Входные Переменные;
POS = -205, -70;
FONTSPEC = 18, 0, 0, 0, 0, 16, 0;
FONTNAME —Times New Roman Cyr;
COLOR - RED (0), GREEN (80), BLUE (80);
}'
REMARK {
TEXT = Выходные Переменные;
POS = 90, -70;
FONTSPEC = 18, 0, 0, 0, 0, 16, 0;
FONTNAME =Times New Roman Cyr;
COLOR = RED (0), GREEN (80), BLUE (80); } }/* OBJECT_SECTION */
}/* MODEL */
} /* PROJECT */
ONLINE {
TIMESTAMP = 20010119143151UT;
}/* ONLINE */
NEUROFUZZY {
LEARNRULE =RandomMethod;
STEPWIDTHDOS = 0.100000;
STEPWIDTHTERM = 1.000000;
MAXDEVIATION = (50.000000, 1.000000, 0.750000);
AVGDEVIATION = 0.100000;
MAXSTEPS = 100;
NEURONS= 1;
DATASEQUENCE = RANDOM;
UPDATEDBGWIN = OFF;
}/* NEUROFUZZY */
Прокомментируем отдельные фрагменты текста приведенного файла нечеткого проекта. Описание проекта начинается после ключевого слова project и заключается внутри соответствующих фигурных скобок. Система нечеткого вывода описывается после ключевого слова model и содержит секцию лингвистических переменных variable_section и секцию объектов object_section.
Описание каждой лингвистической переменной заключается в блок lvar, в котором задается имя переменной после ключевого слова name, единицы измерения ее значений после слова basevar и диапазон возможных значений после слова lvrange. Для входных лингвистических переменных после ключевого слова input указывается метод фаззификации значений этой переменной, а для выходных лингвистических переменных после ключевого слова output указывается метод дефаззификации значений этой переменной.
Описание каждого терма лингвистических переменных заключается в блок term, в котором задается имя терма после ключевого слова termname, перечисляются пары значений терма и его функции принадлежности в некоторых характеристических точках, а также указывается форма ее функции принадлежности после ключевого слова shape.
Секция объектов object section содержит описания блоков текста remark и описание блока правил ruleblock. Заметим, что в блоках текста можно использовать символы кириллицы при установке имени шрифта: fontname =Times New Roman (Cyr). Ключевое слово pos используется для задания координат отображения блока текста или других объектов, а после ключевого слова COLOR можно определить цвет в трехцветной модели RGB (красный/зеленый/синий) изображения текста в окне редактора проекта.
В секции блока правил ruleblock после ключевого слова rules специфицируются все правила соответствующего блока в виде структурируемого текста: "IF <Имя терма = Значение терма> AND <Имя терма = Значение терма> THEN <Имя терма = Значение терма> WITH <3начение DoS>". В блоке правил должны быть определены все необходимые методы для агрегирования и композиции результатов нечетких выводов, аналогично рассмотренным в языке FCL.
Блоки online и NEUROFUZZY предназначены для использования дополнительных модулей программы fuzzyTECH, и их смысл в данной модели не имеет принципиального значения. После загрузки данного файла в редакторе проекта будет изображена структура соответствующей системы нечеткого вывода, которая обладает полной функциональностью в контексте ее дальнейшего редактирования и отладки.
Настоящий глоссарий поясняет содержательный смысл основных понятий теории нечетких множеств, нечеткой логики и нечеткого управления, которые используются для построения нечетких моделей систем. Некоторые из терминов имеют статус рекомендованного стандарта IEC 1131-7, другие традиционно применяются в нечеткой математике. Все термины расположены в алфавитном порядке, в скобках приводится англоязычный эквивалент каждого из терминов.
Агрегирование (aggregation) — этап нечеткого вывода, представляющий собой процедуру определения степени истинности условия каждого правила системы нечеткого вывода.
Аккумуляция (accumulation) — этап нечеткого вывода, представляющий собой процедуру или процесс нахождения функции принадлежности каждой из выходных лингвистических переменных множества правил нечетких продукций. Синоним — композиция.
Активизация (activation) — этап нечеткого вывода, представляющий собой процедуру или процесс нахождения степени истинности каждого из подзаключений правил нечетких продукций.
Антецедент — см. Условие.
База правил (rule base) — совокупность или множество правил нечетких продукций, согласованных относительно использования входных и выходных лингвистических переменных.
Весовой коэффициент (weighting factor, DoS) — количественное значение из интервала [0, 1], которое определяет степень влияния условия правила нечеткой продукции на степень истинности заключения этого правила или степень уверенности в достоверности получаемого результата.
Входная переменная (input variable) — лингвистическая переменная, которая используется в формировании условий правил нечетких продукций.
Вывод, нечеткий вывод (inference) — применение лингвистических правил к значениям входных переменных с целью получения значений выходных переменных.
Выходная переменная (output variable) — лингвистическая переменная, которая используется в формировании заключений правил нечетких продукций.
Дефаззификация (defuzzification) — в общем случае преобразование некоторого нечеткого множества в четкое множество. В контексте нечеткого управления имеет более узкий смысл, означающий получение для заданной функции принадлежности выходной лингвистической переменной единственного количественного значения. Синоним — приведение к четкости.
Заключение (conclusion) — в общем случае правая часть правила продукции. В контексте правил нечеткой продукции означает нечеткое лингвистическое высказывание, следующее после связки THEN (ТО). Синонимы — консеквент,
следствие.
Композиция — ель Аккумуляция.
Консеквент — си. Заключение.
Лингвистическая переменная (linguistic variable) — переменная, которая принимает свои значения из множества лингвистических термов.
Лингвистический терм (linguistic term) — некоторое фиксированное значение, которое может принимать лингвистическая переменная. Как правило, является нечетким множеством с соответствующей функцией принадлежности.
Лингвистическое правило (linguistic rule) — правило продукции вида ЕСЛИ-ТО (IF-THEN) с условием и заключением, которые являются нечеткими лингвистическими высказываниями в форме лингвистических переменных. Синоним — правило нечеткой продукции.
Множество обычное, не нечеткое множество (crisp set) — специальный случай нечеткого множества, функция принадлежности которого для каждого из элементов принимает значение 0 или 1. Это понятие соответствует классическому определению множества в смысле Г. Кантора.
Нечеткая логика (fuzzy logic) — одна из разновидностей неклассических логик, в которой допускается непрерывное множество значений истинности высказываний и применяются специальные логические операции или связки.
Нечеткая операция (fuzzy operator) — операция, используемая в теории нечетких множеств или в нечеткой логике. Синоним — нечеткий оператор.
Нечеткая сеть Петри (fuzzy Petri net ) — разновидность сетей Петри, в которых правила функционирования определяются на основе концепции теории нечетких множеств.
Нечеткий вывод (fuzzy inference) — процедура установления истинности заключения на основании известных значений истинности условий.
Нечеткое множество (fuzzy set) —■ совокупность элементов произвольной природы, относительно которых нельзя с полной определенностью утверждать — принадлежит ли тот или иной элемент данной совокупности или нет. Математически нечеткое множество определяется как множество упорядоченных пар вида: <х, р(х)>, где х является элементом универсума X, а ц(а) — функция принадлежности, которая ставит в соответствие каждому из элементов хсХ некоторое действительное число из интервала [0,1].
Нечеткое управление (fuzzy control) — специальный раздел теории управления, при котором алгоритмы управления основываются на концепции теории нечетких множеств и нечеткой логики.
Обратная цепочка рассуждений (fuzzy backward-chaining reasoning) — метод установления истинности заключений правил, который основан на последовательной активизации правил нечетких продукций в порядке проверки предварительно заданного заключения.
Одноэлементное множество (singleton) — специальный случай нечеткого множества, состоящего только из одного элемента, значение функции принадлежности которого равно 1. Для всех остальных элементов универсума функция принадлежности этого множества равна 0.
Программируемый логический контроллер (programmable logic controller) — электронное устройство, содержащее в своем составе программно-аппаратные компоненты, такие как один или несколько микропроцессоров, модули памяти, порты ввода/вывода, и предназначенное для сбора данных о состоянии технологического процесса, а также для автоматического управления им.
Прямая цепочка рассуждений (fuzzy forward-chaining reasoning) — метод установления истинности заключений правил, который основан на последовательной активизации правил нечетких продукций с целью проверки всех условий правил с наибольшей степенью истинности.
Степень принадлежности (degree of membership) — отдельное значение функции принадлежности для фиксированного элемента нечеткого множества.
Условие (condition) — в общем случае левая часть правила продукции. В системах нечеткого вывода — совокупность лингвистических термов, записанных между ключевыми словами ЕСЛИ и ТО (IF-THEN) нечеткого правила продукции. Синоним — антецедент.
Фаззификация (fuzzification) — преобразование некоторого четкого множества в нечеткое множество. Применительно к нечеткому управлению имеет более узкий смысл, означающий получение для конкретного значения входной переменной значений функций принадлежности, определенных для лингвистических термов данной входной переменной. Синоним — приведение к нечеткости.
Функция принадлежности (membership function) — математическая функция, определяющая степень или уверенность, с которой элементы некоторого множества принадлежат заданному нечеткому множеству. Данная функция ставит в соответствие каждому элементу нечеткого множества действительное число из интервала [0, 1]. Задать конкретное нечеткое множество означает определить соответствующую ему функцию принадлежности.
Ниже приводится список используемых в книге сокращений с кратким пояснением их смысла.
ANFIS (Adaptive Neuro-Fuzzy Inference System) — адаптивная система нейро- нечеткого вывода.
CF (certainty factor) — фактор уверенности или весовой коэффициент правила нечетких продукций.
СоА, СОА (Centre of Area) — метод дефаззификации по формуле центра площади.
CoG, COG (Centre of Gravity) — метод дефаззификации по формуле центра тяжести.
CoGS, COGS (Centre of Gravity for Singletons) — метод дефаззификации по формуле центра тяжести для одноточечных множеств.
DoS (Degree of Support) — весовой коэффициент правила нечеткой продукции в среде fuzzyTECH.
DDE (Dynamic Data Exchange) — технология, которая позволяет нескольким программам обмениваться данными в среде MS Windows.
FB (Function Block) — функциональный блок в языке FCL.
FBD (Function Block Diagram) — диаграмма функционального блока на графическом языке управления.
FC (Fuzzy Control) — нечеткое управление.
FCL (Fuzzy Control Language) — язык нечеткого управления.
FDCL (Fuzzy Dependency and Command Language) — язык нечетких зависимостей и команд.
FIS (Fuzzy Inference System) — система нечеткого вывода в среде MATLAB.
FL (Fuzzy Logic) — нечеткая логика.
FMP (fuzzy modus ponens) — нечеткий модус поненс.
FMT (fuzzy modus tollens) — нечеткий модус толленс.
FTL (Fuzzy Technology Language) —- специальный текстовый формат для сохранения файла нечеткого проекта в среде fuzzyTECH.
FTR (fuzzyTECH Runtime) — специальный бинарный формат для сохранения файла нечеткого проекта в среде fuzzyTECH.
GAMMA — коэффициент компенсации для агрегирования в среде fuzzyTECH.
IEC (International Electrotechnical Commission) — Международная электротехническая комиссия, комиссия по электротехнике.
IL (Instruction List) — список инструкций.
ISO (International Standardization Organisation) — Международная организация по стандартизации.
LM (Left Most Maximum) — метод дефаззификации по формуле левого модального значения.
LV (Linguistic Variable) — лингвистическая переменная.
MAX (Maximum operator)— операция максимизации произвольного количества аргументов.
MBF/MF (Membership Function) — функции принадлежности.
MFLIPS (Million Fuzzy Logic Inferences per Second) — миллион нечетких логических выводов в секунду.
MIN (Minimum operator) — операция минимизации произвольного количества аргументов.
PC/PLC (Programmable/Logic Controller) — программируемый/логический контроллер.
PROD (Product operator) — операция произведения произвольного количества аргументов.
RB (Rule Block) — блок правил нечетких продукций.
RM (Right Most Maximum) — метод дефаззификации по формуле правого модального значения.
SOFCL (Self-Organising Fuzzy Logic Controllers) — самоорганизующиеся кон- гроллеры с нечеткой логикой.
ST (Structured Text) — структурируемый текст.
Литература
Ансофф И. Новая корпоративная стратегия. — СПб: Питер, 1999. —416 с.
Дьяконов В. MATLAB: учебный курс. — СПб: Питер, 2001. — 560 с.
Дьяконов В., Круглов В. Математические пакеты расширения MATLAB. Специальный справочник. — СПб: Питер, 2001. — 480 с.
Дюбуа Д., Прад А. Теория возможностей. Приложение к представлению знаний в информатике. — М.: Радио и связь, 1990. — 288 с.
Городецкий В. И. Прикладная алгебра и дискретная математика. Часть 3. Формальные системы логического типа. — МО СССР, 1987. — 177 с.
Гультяев А. Визуальное моделирование в среде MATHLAB: учебный курс. — СПб: Питер, 2000. — 432 с.'
Искусственный интеллект. — Кн. 2. Модели и методы: Справочник / Под ред. Д. А.Поспелова. — М.: Радио и связь, 1990. — 304 с.
Карлоф Б. Деловая стратегия. — М.: Экономика, 1991. ■— 239 с.
Классификация и кластер /Под. ред. Дж. Вэн Райзина. — М.: Мир, 1980. — 392 с.
Клини С. Математическая логика. — М.: Мир, 1973. —- 480 с.
Ковальски Р. Логика в решении проблем. —■ М.: Наука, 1990. — 280 с.
Котов В. Е. Сети Петри. — М.: Наука, 1984. — 432 с.
Кофман А. Введение в теорию нечетких множеств. — М.: Радио и связь, 1982,—432 с.
Круглов В. В., Борисов Н. Н. Искусственные нейронные сети. Теория и практика. — М.: Горячая линия — Телеком, 2001. — 382 с.
Кузьмин В. Б. Построение групповых решений в пространствах четких и нечетких бинарных отношений. — М.: Наука, 1982. -— 168 с.
Куратовский К., Мостовский А. Теория множеств. — М.: Мир, 1970. — 416 с.
Леоненков А. В. Самоучитель LJML. — БХВ-Петербург, 2001. — 304 с.
Леоненков А. В. Алгоритм нечеткого кластерного анализа в задачах структуризации сложных систем. — Сборник алгоритмов и программ типовых задач. Вып. II. — МО РФ, 1993, с. 74—79.
Лескин А. А., Мальцев П. А., Спиридонов А. М. Сети Петри в моделировании и управлении. —Л.: Наука, 1989. — 136 с.
Логический подход к искусственному интеллекту: от классической логики к логическому программированию. — М.: Мир, 1990. — 432 с.
Мандель Н. Д. Кластерный анализ. — М.: Финансы и статистика, 1988. — 176 с.
Мелихов А. Н., Бернштейн Л. С., Коровин С. Я. Ситуационные советующие системы с нечеткой логикой. — М.; Наука, 1990. — 272 с.
Методы анализа данных / Под. ред. Э. Дидэ и др. — М.: Финансы и статистика, 1985. — 360 с.
Нечеткие множества в моделях управления и искусственного интеллекта/ Под. ред. Д. А. Поспелова. — М.: Наука, 1986. — 312 с.
Нечеткие множества и теория возможностей / Под. ред. Р. Р. Ягера. — М.: Радио и связь, 1986. — 408 с.
Новиков П. С. Элементы математической логики. — М.: Наука,1973. — 400 с.
Борисов А. Н. и др. Обработка нечеткой информации в системах принятия решений. — М.: Радио и связь, 1989. — 304 с.
Орловский С. А. Проблемы принятия решений при нечеткой исходной информации. — М.: Наука, 1981. ■— 208 с.
Питерсон Дж. Теория сетей Петри и моделирование систем. — М.: Мир, 1984, —230 с.
Прикладные нечеткие системы / Под ред. Т. Тэрано, К. Асаи, М. Сугено. —- М.: Мир, 1993. — 368 с.’
Резников Б. А. Системный анализ и методы системотехники (Методология системных исследований). Часть 1. — МО СССР, 1990. — 522 с.
Сети Петри и их реализация на ЭВМ. Вып. 1 / Леоненков А. В. — МО СССР. 1990. —61 с.
Сети Петри и их реализация на ЭВМ. Вып. 2. Временные сети Петри / Леоненков А. В. — СПб., ВИКА, 1996. — 87 с.
Сети Петри и их реализация на ЭВМ. Вып. 3. Стохастические сети Петри/ Леоненков А. В. — МО РФ, 1995. — 63 с.
Arnould Т., Tano S. Interval-valued fuzzy backward reasoning. — IEEE Transactions on Fuzzy Systems, vol. 3, no. 4, 1995, pp. 425—437.
Bezdek J. C. A convergence theorem for the fuzzy ISODATA clustering algorithm. — IEEE Transactions on Pattern Analysis and Mashine Intelligence, vol. 2. no. 1, 1980, pp. 1—8.
Bezdek J.C. Some recent applications of fuzzy c-means in pattern recognition and image processing. — IEEE Workshop Lang. Autom, 1983, pp. 247—252.
Chen S. M„ Ke J. S., Chang J. F. Knowledge representation using fuzzy Petri nets. — IEEE Transactions on Knowledge and Data Engineering, vol. 2, no. 3, 1990, pp. 311—319.
Dunn J. C. A fuzzy relative of the ISODATA process and its use in detecting compact well-separated clusters. — Journal on Cybernetics, vol. 3, no. 3. 1974, pp. 32—37
Fukami S., Mizumoto M., Tanaka, K. Some considerations of fuzzy conditional inference. — Fuzzy Sets and Systems, vol. 4, 1980, pp. 243—273.
Kiszka J. В., Kochanska М. Е., Siiwinska D. S. The influence of some fuzzy implication operators on the accuracy of a fuzzy model. — Fuzzy Sets and Systems, vol. 15, 1985,pp. Ill — 128; 223 — 240.‘'
Konar A., Mandal A. K. Uncertainty management in expert systems using fuzzy Petri nets. — IEEE Transactions on Knowledge and Data Engneering, vol. 8, no. 1,1996, pp. 96—104.
Looney C. G. Fuzzy Petri nets for rule-based decision making. — IEEE Transactions on Systems, Man, and Cybernetics, v. 18, no. 1, 1988, pp. 178—183.
Mamdani E. H. Application of fuzzy logic to approximate reasoning using linguistic synthesis. — IEEE Transactions on Computers, vol. 26, no. 12, 1977, pp. 1182—1191.
Mamdani E. H., Assilian S. An experiment in linguistic yn thesis with a fuzzy logic controller. — International Journal of Man-Machine Studies, vol. 7, no. 1, 1975, pp. 1—13.
Mamdani E. H. Advances in the linguistic synthesis of fuzzy controllers. — International Journal of Man-Machine Studies, vol. 8, 1976. pp. 669—678.
Mamdani E. H. Applications of fuzzy logic to approximate reasoning using linguistic synthesis. — IEEE Transactions on Computers, vol. 26, no. 12, 1977, pp. 1182—1191.
Murata T. Petri nets: properties, analysis and applications. — Proceedings of the IEEE, vol. 77, no. 4, 1989, pp. 541—580.
Pedrycz W., Gomide F. A generalized fuzzy Petri net model. — IEEE Transactions on Fuzzy Systems, vol. 2, no. 4, 1994, pp. 295—301.
Ross T. J. Fuzzy logic with engineering applications. — McGraw-Hill, 1995. — 600 p.
Sugeno M. Fuzzy measures and fuzzy integrals: a survey, (in M. M. Gupta, G. N. Saridis, and B. R. Gaines, editors) Fuzzy Automata and Decision Processes, pp. 89—102, North-Holland, New York, 1977.
Takagi T., Sugeno M. Fuzzy identification of systems and its applications to modeling and control. — IEEE Transactions on Systems, Man, and Cybernetics, vol. 15, no. I, 1985, pp. 116—132.
Windham M. P. Cluster validity for the fuzzy c-means clustering algorithm. — IEEE Transactions on Pattern Analysis and Mashine Intelligence, vol. 4, no. 4, 1982,pp. 357—363.“
Windham M. P. Cluster validity for the fuzzy c-means clustering algorithm. — Fuzzy Sets and Systems, vol. 10, no. 3, 1983, pp. 271—279.
Zadeh L. A. Fuzzy sets. — Information and Control, vol. 8, 1965, pp. 338—353.
Zadeh L. A. The concept of a linguistic variable and its application to approximate reasoning. — Information Sciences, vol. 8, 1975, pp. 43—80.
Zadeh L. A. Fuzzy logic. — IEEE Transactions on Computers, vol. 21, no. 4. 1988, pp. 83—93."
Александр Леоненков
Нечеткое моделирование в среде MATLAB и fuzzyTECH
Цель книги - помочь системным аналитикам и программистам освоить принципы новой методологии нечеткого моделирования, чтобы в дальнейшем с успехом решать конкретные практические задачи, используя рассмотренные в книге инструментальные средства.
Язык нечеткого управления - FCL
Стандарты IEC-1131 (Part 7) и Fuzzy Control Language
Нечеткие сети Петри
Основы нечетких нейронных сетей ANFIS
SBM 5-94157-087-2
785941 570874