Томский государственный университет систем управления и

advertisement
Томский государственный университет систем управления
и радиоэлектроники
На правах рукописи
Горбунов Иван Викторович
АЛГОРИТМЫ И ПРОГРАММНЫЕ СРЕДСТВА ИДЕНТИФИКАЦИИ ПАРЕТО–
ОПТИМАЛЬНЫХ НЕЧЕТКИХ СИСТЕМ НА ОСНОВЕ МЕТАЭВРИСТИЧЕСКИХ МЕТОДОВ
05.13.18 — Математическое моделирование, численные методы и комплексы программ
Диссертация на соискание ученой степени
кандидата технических наук
Научный руководитель —
доктор технических наук, профессор
Ходашинский И.А.
Томск – 2014
2
СОДЕРЖАНИЕ
Введение .................................................................................................................................................. 5
Глава 1. Обзор состояния проблемы исследования. Постановка задачи ........................................ 12
1.1 Нечеткие системы ...................................................................................................................... 12
1.2 Идентификация нечетких систем............................................................................................. 16
1.3 Критерии оптимизации нечетких систем ................................................................................ 30
1.4 Постановка задачи ..................................................................................................................... 33
Выводы ............................................................................................................................................. 36
Глава 2. Методика и алгоритмы построения Парето–оптимальных нечетких систем ................. 37
2.1 Методика построения трехкритериальных Парето–оптимальных нечетких систем ......... 37
2.1.1 Комплексный критерий интерпретируемости нечетких систем ................................... 38
2.1.2 Алгоритм усечения базы правил нечеткой системы ...................................................... 41
2.1.3 Алгоритм исключения терма из базы правил нечеткой системы ................................. 42
2.1.4 Алгоритм объединения термов......................................................................................... 43
2.1.5 Алгоритм исключения пересечения наиболее лингвистически отдаленных термов.. 44
2.2 Гибридный численный метод структурной и параметрической оптимизации нечетких
систем ............................................................................................................................................... 45
2.2.1 Алгоритмы пчелиной колонии ......................................................................................... 45
2.2.2 Алгоритм адаптивной эволюционной стратегии ............................................................ 48
2.2.3. Гибридный численный метод идентификации структуры и параметров на основе
островной модели ....................................................................................................................... 54
2.3 Алгоритм генерации нечетких классификаторов на основе экстремумов таблицы
наблюдений ...................................................................................................................................... 55
Выводы ............................................................................................................................................. 57
Глава 3. Программный комплекс ........................................................................................................ 57
3.1 Формализация предметной области ........................................................................................ 58
3.2 Проектирование программного комплекса ............................................................................. 58
3.3 Выбор средств разработки ........................................................................................................ 64
3.4 Описание и структура программного комплекса MixCore.................................................... 65
3.5 Диспетчер параллельных вычислений .................................................................................... 69
3.5.1 Схемы параллельного расчета ошибки нечеткой системы ............................................ 70
3.5.2 Схемы параллельной реализации алгоритма пчелиной колонии для генерации правил
нечеткой системы........................................................................................................................ 74
3
3.5.3 Схемы параллельной реализации алгоритма пчелиной колонии для идентификации
параметров нечеткой системы ................................................................................................... 81
3.5.4 Схемы параллельной реализации алгоритма адаптивной эволюционной стратегии для
идентификации параметров нечеткой системы ....................................................................... 83
3.5.5 Схемы параллельной реализации алгоритма, реализующего методику построения
трехкритериальных Парето-оптимальных нечетких систем .................................................. 85
3.5.6 Диспетчер многопоточных вычислений .......................................................................... 87
3.6 Представление нечетких систем в стандарте PMML v4.2 ..................................................... 87
3.6.1 Представление функций принадлежности в PMML ...................................................... 89
3.6.2 Представление нечетких правил в PMML ....................................................................... 91
3.6.3 Представление нечетких систем в PMML ....................................................................... 93
Выводы ............................................................................................................................................. 95
Глава 4. Исследование методики, метода, алгоритма и программного комплекса ....................... 95
4.1 Апробация методики построения трехкритериальных Парето–оптимальных нечетких
систем ............................................................................................................................................... 97
4.1.1 Апробация методики при построении трехкритериальных Парето-оптимальных
систем синглтон в задаче аппроксимации ................................................................................ 97
4.1.2 Апробация методики при построении трехкритериальных Парето-оптимальных
питтсбугских классификаторов ............................................................................................... 105
4.2 Исследование гибридного метода структурной и параметрической оптимизации
нечетких систем ............................................................................................................................. 113
4.2.1 Исследование алгоритма пчелиной колонии для идентификации параметров
нечеткой системы...................................................................................................................... 113
4.2.2 Исследование алгоритма адаптивной эволюционной стратегии для идентификации
параметров нечеткой системы ................................................................................................. 121
4.2.3 Исследование параметров гибридного метода структурной и параметрической
оптимизации нечетких систем ................................................................................................. 127
4.3 Исследование алгоритма генерации нечетких классификаторов на основе экстремумов
таблицы наблюдений..................................................................................................................... 133
4.4 Исследование параллельной архитектуры разработанного программого комплекса ...... 134
Выводы ........................................................................................................................................... 139
Глава 5. Описание внедрения разработанных программных комплексов.................................... 140
5.1
Рекомендательная система для НИИКФ ........................................................................... 140
5.1.1 Постановка задачи ........................................................................................................... 140
5.1.2 Отбор информативных признаков ................................................................................. 141
5.1.3 Рекомендательная система .............................................................................................. 144
5.2 Аутентификация пользователей по клавиатурному почерку.............................................. 148
4
5.2.1 Задача повышения точности аутентификации .............................................................. 149
5.2.2 Программная реализация и оценка эффективности ..................................................... 150
Выводы ........................................................................................................................................... 152
ЗАКЛЮЧЕНИЕ .................................................................................................................................. 153
СПИСОК СОКРАЩЕНИЙ И УСЛОВНЫХ ОБОЗНАЧЕНИЙ ..................................................... 155
СПИСОК ЛИТЕРАТУРЫ .................................................................................................................. 157
ПРИЛОЖЕНИЕ А .............................................................................................................................. 169
ПРИЛОЖЕНИЕ Б ............................................................................................................................... 174
ПРИЛОЖЕНИЕ В .............................................................................................................................. 186
ПРИЛОЖЕНИЕ Г ............................................................................................................................... 188
ПРИЛОЖЕНИЕ Д .............................................................................................................................. 188
ПРИЛОЖЕНИЕ Е............................................................................................................................... 190
5
Введение
Актуальность исследования. Нечеткие системы давно и успешно применяются в таких
проблемных областях, как классификация, аппроксимация, интеллектуальный анализ данных,
распознавание образов, прогнозирование и управление, в задачах принятия решений. Они
встроены в огромное количество промышленных изделий, начиная с роботов и систем
управления электропоездами, и заканчивая такими потребительскими товарами, как фото и
видеокамеры, кондиционеры, стиральные машины и др. Достоинствами нечетких систем
является
невысокая
стоимость
разработки,
гибкость,
интуитивно
понятная
логика
функционирования.
Концепция нечеткого моделирования заключается в введении степени принадлежности
объекта к множеству, которая является эффективным средством описания поведения плохо
формализованных объектов, систем и процессов. Нечеткое моделирование возможно на основе
таблицы наблюдений, а также с использованием априорного знания и опыта.
Раннее проектирование нечетких систем было основано на экспертных знаниях, поэтому
такие системы легко поддавались интерпретации, то есть нечеткие множества соотвествовали
принятой терминологии и знанию об объектах. Однако указанный подход не приемлем при
моделировании плохо изученных систем с большим числом входных переменных.
Основополагающие результаты в области нечеткого моделирования получили А.Н.
Аверкин, А.А. Башлыков, И.З. Батыршин, Л.С. Берштейн, А.П. Еремеев, Ю.Н. Золотухин, С.М.
Ковалев, Л.Г. Комарцова, Ю.И. Кудинов, А.О. Недосекин, Ф.Ф. Пащенко, Пытьев Ю.П.,
В.Б.Тарасов, А.В. Язенин, Н.Г. Ярушкина, , M. Akaiwa, C. Altrock, P. Angelov L. H. Arita, R.
Babuska, A. Bastian, J.C. Bezdek, J. Casillas, J.L. Castro, O. Cordon, D. Dubois, D. Filev, J. González,
S. Guillaume, F. Herrera, H. Ishibuchi, W. G. Jacoby, U. Kaymak, S. Kageyama, Y. Kitamura, , B.
Kosko, R. Krishnapuram, R. Kruse, E.H. Mamdani, J. M. Mendel, S. Oh, W. Pedrycz, H. Prade, H.
Sugiura, M. Sugeno, T. Takagi, H. Tanaka, I. B. Turksen, R.R. Yager, T.Yasukawa, L. X.Wang, L.
Zadeh.
На смену чисто экспертному подходу пришли методы нечеткого моделирования,
основанного на наблюдаемых данных. Тогда для исследователей стала актуальна тема
идентификации нечетких систем, то есть подбор параметров нечеткой системы по известным
соотношениями входов – выходов моделируемого объекта. Главным достоинством применения
алгоритмов идентификации в нечетких системах явилось увеличение точности моделирования
без повышения вычислительной сложности нечеткой системы на этапе эксплуатации. Выявлено
два основных подхода: алгоритмы на основе производных и метаэвристические алгоритмы
поиска глобального экстремума нелинейной функции. К метаэвристическим алгоритмам
6
относятся генетические и эволюционные алгоритмы; алгоритмы муравьиной и пчелиной
колонии; алгоритмы роящихся частиц, алгоритм “светляков”, алгоритм “кукушкиного поиска”,
алгоритм ориентации летучих мышей.
Пчелиные алгоритмы идентификации нечетких систем представлены в трудах D. Karaboga,
B. Akay, D.T. Pham, A. H. Darwish, E.E. Eldukhri, S. Otri, D. Teodorović, M. Dell, D. Chaudhary, S.
Nakrani, C. Tovey, L. P. Wong, Y. H. Low, C. S. Chong, L. V. Thanh, B. Lu1, L. Özbakır, P. Tapkan,
S. P. Babu1, N. T. Rao.
Алгоритмы адаптивной эволюционной стратегии для идентификации нечетких систем
представлены в трудах П. Афонина, A. Ashish, J. Brownlee,J. Dhiraj, V. A. Dirk, B. Hans–Georg, D.
Kalyanmoy , A. Nabout.
В последнее время нечеткие методы моделирования сконцентрированы на проблемах
улучшения интерпретируемости нечетких систем без потери точности. Интерпретируемость
является важным свойством модели, так как позволяет преобразовать данные в знания. Поиск
компромисса между точностью и интерпретируемостью является в настоящее время одним из
наиболее актуальных направлений исследований в нечетком моделировании.
Основной вклад в исследование критериев интерпретируемости нечетких систем и методов
ее достижения внесли R. Alcala, J.Alonso, J.M. Andújar, R. Cannone, G. Castellano, M. Gacto, A.M.
Fanelli, Gan J.Q., G. Gonzalez–Rodriguez, S. Guillaume, F. Herrera, H. Ishibuchi, Y. Jin, H. Koivisto,
L. Magdalena, Mencar C., D.D. Nauck, Y. Nojima, J. V. Oliveira, W. Pedrycz, P. Pulkkinen, S. Romero,
O. Sánchez, M.A. Vélez, H. Wang, T. Yamamoto, Y. Zhang, S. M. Zhou.
Анализ
литературных
источников
показал,
что
существующие
критерии
интерпретируемости нечетких систем имеют ряд недостатков и ограничений. Кроме того,
отсутствуют
прикладные
программы,
реализующие
апостериорный
подход
к
многокритериальной оптимизации, позволяющие за один запуск получить Парето-фронт из
множества сгенерированных нечетких систем. Следовательно, для разрешения данной ситуации
необходимо разработать методики и методы, прикладные программные средства, позволяющие
достичь компромисса при построении нечетких систем с низкой сложностью, высокой точнотью
(низкой ошибкой) и интерпретируемостью, кроме того разработке подлежит комплексный
критерий интепретируемости нечетких систем.
Целью диссертационной работы является разработка алгоритмов и программных средств
идентификации Парето-оптимальных нечетких систем на основе метаэвристических методов для
достижения компромисса между точностью, сложностью и интерпретируемостью нечетких
систем.
Для достижения поставленной цели решены следующие основные задачи:
7
1) обзор существующих методик и методов построения многоцелевых Паретооптимальных нечетких систем и критериев, используемых для оценки их интерпретируемости;
2) разработка методики построения многоцелевых Парето-оптимальных нечетких систем
на основе метаэвристических методов с применением оригинального комплексного критерия
интерпретируемости нечетких систем;
3) разработка гибридного численного метода идентификации структуры и параметров
нечеткой системы, основанного на группе алгоритмов пчелиной колонии и адаптивном
алгоритме эволюционной стратегии;
4) разработка программных средств, реализующих предложенную методику и гибридный
численный метод в многопоточном режиме, позволяющих экспортировать нечеткие системы в
представление, совместимое с языком разметки прогнозного моделирования (PMML);
5) исследование разработанных алгоритмов, численных методов и предложенной
методики на контрольных примерах и сравнении с аналогами.
Объектом
исследований
является
процесс
структурной
и
параметрической
идентификации нечетких систем.
Предметом исследований является гибридные алгоритмы и программы идентификации
структуры
и
параметров
Парето-оптимальных
нечетких
систем,
а
также
критерий
интерпретируемости.
Методы исследования. В диссертационной работе применялись методы искусственного
интеллекта, теории нечетких множеств, математической статистики, линейной алгебры,
объектно-ориентированного и рефлексивно-ориентированного программирования.
Достоверность результатов. обеспечивается строгостью применения математических
методов, результатами проведенных численных экспериментов, которые сопоставимы с
данными, полученными другими исследователями.
Научная новизна полученных результатов. В диссертации получены следующие новые
научные результаты.
1. Разработана
оптимальных
оригинальная
нечетких
моделей.
трехкритериальная
Методика
отличается
методика
от
построения
аналогов
Парето-
использованием
элементарных гиперпараллепипедов задаваемых размеров, динамически изменяющихся во
время работы по каждому из критериев, и использованием однокритериальных алгоритмов
идентификации параметров и структуры нечеткой системы.
2. Впервые разработан гибридный численный метод идентификации структуры и
параметров нечетких систем, основанный на группе алгоритмов пчелиной колонии и адаптивном
алгоритме эволюционной стратегии с применением метода наименьших квадратов и схемы
островов.
8
3. Разработан алгоритм генерации нечетких классификаторов на основе экстремумов
таблицы наблюдений. Алгоритм отличается тем, что позволяет уменьшить количество правил
нечеткого классификатора не менее чем в 2 раза по сравнению с методами равномерного
разбиения при сравнимой точности и повысить точность классификации более чем на 10% по
сравнению с методами, основанными на нечетких c-средних, при сохранении сопоставимого
количества правил.
Теоретическая значимость работы заключается в развитии технологии построения
Парето-оптимальных нечетких систем при апостериорном подходе. Разработанный гибридный
метод может использоваться не только для идентификации параметров нечетких систем, но и как
метод глобальной параметрической оптимизации.
Практическая значимость работы подтверждается использованием полученных в ней
результатов для решения практических задач:
 создание рекомендательной системы немедикаментозного восстано-вительного лечения
участников вооруженных конфликтов и чрезвычайных ситуаций при назначении комплексов
реабилитации пациентам с посттравма-тическими стрессовыми расстройствами, внедренной в
НИИ курортологии и физиотерапии ФМБА России (НИИ КиФ);
 разработка программного модуля, служащего для повышения каче-ства распознавания
клавиатурного почерка при двухфакторной аутентифи-кации для предоставления доступа по
протоколу RDP, внедренного в ОАО «Особая экономическая зона технико-внедренческого типа
г. Томск» (ОАО ОЭЗ ТВТ).
Разработанные алгоритмы и программные средства использованы при выполнении
следующих проектов:
 грант РФФИ 09–07–99008 «Исследование и разработка технологии идентификации
нечетких моделей на базе метаэвристик и методов, основанных на производных» 2009–2010г.;
 грант РФФИ 12–07–00055 «Методы построения Парето-оптимальных нечетких систем
на основе гибридного подхода» 2012–2014г.;
 грант
РГНФ
12–06–12008
«Программный
комплекс
для
прогнозирования
эффективности реабилитации лиц опасных профессий с наиболее распространенными социально
значимыми неинфекционными заболеваниями» 2012–2013г.;
 проект УМНИК 2014 «Разработка облачного менеджера паролей с двухфакторной
аутентификацией на основе клавиатурного почерка».
На защиту выносятся приведенные ниже положения.
1. Трехкритериальная методика построения Парето-оптимальных нечетких моделей
позволяет достичь равномерного распределения решений вдоль Парето-фронта по каждому из
9
трех критериев: интерпретируемость, сложность и точность нечеткой системы. Кроме того,
данная методика позволяет использовать однокритериальные алгоритмы идентификации
параметров и структуры нечеткой системы без изменения самой методики и алгоритмов, а также
позволяет регулировать соотношение скорости поиска и дистанции приближения к
гипотетическому (идеальному) Парето-фронту по каждому критерию.
Соответствует пункту 1 паспорта специальности: Разработка новых математических
методов моделирования объектов и явлений.
2. Численный метод идентификации структуры и параметров нечеткой системы,
основанный на группе алгоритмов пчелиной колонии и адаптивном алгоритме эволюционной
стратегии с применением метода наименьших квадратов и схемы островов, позволяет повысить
точность вывода нечеткой системы не менее чем в 1,36 раза на обучающих выборках по
сравнению с численными методами, применяемыми другими исследователями в аналогичных
задачах.
Соответствует пункту 3 паспорта специальности: Разработка, обоснование и тестирование
эффективных
вычислительных методов с применением современных компьютерных
технологий.
3.
Алгоритм генерации нечетких классификаторов на основе экстремумов таблицы
наблюдений.
Соответствует пункту 3 паспорта специальности: Разработка, обоснование и тестирование
эффективных
вычислительных методов с применением современных компьютерных
технологий.
4.
Многопоточная архитектура программного комплекса для построения Парето-
оптимальных нечетких систем реализует предложенные алгоритмы и методику, использует
оригинальное расширение формата PMML для экспорта-импорта нечетких систем с глобально
определенными термами.
Соответствует пункту 4 паспорта специальности: Реализация эффективных численных
методов и алгоритмов в виде комплексов проблемно–ориентированных программ для проведения
вычислительного эксперимента.
Внедрение результатов диссертационного исследования. Результаты исследовательской
работы вошли в качестве программных компонентов в рекомендательную систему для
немедикаментозного восстановительного лечения участников вооруженных конфликтов и
чрезвычайных
ситуаций
при
назначении
комплексов
реабилитации
пациентам
с
посттравматическими стрессовыми расстройствами, используемый в НИР НИИ КиФ.
Результаты работы вошли в качестве программных компонентов в разработанный
программный комплекс, предназначенный для повышения защищенности доступа по RDP с
10
помощью внедрения дополнительного фактора аутентификации по клавиатурному почерку со
сниженными по сравнению с аналогами ошибками первого и второго рода, используемый в ОАО
ОЭЗ ТВТ.
Разработанные алгоритмы идентификации нечетких систем используются при изучении
дисциплины «Базы данных и экспертные системы», а также в рамках группового проектного
обучения на кафедре комплексной информационной безопасности электронно-вычислительных
систем ТУСУР.
Апробация работы. Основные положения работы докладывались и обсуждались на
следующих конференциях, семинарах, выставках:
 Всероссийской научно-технической конференции студентов, аспирантов и молодых
ученых «Научная сессия ТУСУР», г. Томск, 2009–2014 г.;
 Всероссийской конференции «Проведение научных исследований в области обработки,
хранения, передачи и защиты информации», г. Ульяновск, 2009 г.;
 Международной научной конференции «Системный анализ в медицине» (CАМ 2011), г.
Благовещенск, 2011 г.;
 Всероссийской конференции с международным участием “Знания – Онтологии – Теории”
(ЗОНТ–2011), г. Новосибирск, 2011 г.;
 Международной заочной научно-практической конференции “Наука, образование,
общество: тенденция и перспективы”, г. Москва, 2013 г.;
 VII-ой Международной научно-практической конференции “Интегрированные модели и
мягкие вычисления в искусственном интеллекте”, г. Коломна, 2013 г.;
 Всероссийской конференции с международным участием «Современные системы
искусственного интеллекта и их приложения в науке», г. Казань, 2013 г.;
 Международной научно-практической конференции «Электронные средства и системы
управления», г. Томск, 2013 г.;
 XII Всероссийском совещании по проблемам управления Россия, г. Москва, ИПУ РАН,
2014 г.;
 Открытой выставке научных достижений молодых ученых (РОСТ UP-2013), г. Томск,
2013 г.;
 Всероссийском конкурсе-конференции по информационной безопасности SIBINFO 2014,
г. Томск, 2014г.;
 Томском IEEE семинаре «Интеллектуальные системы моделирования, проектирования и
управления» г. Томск, 2012-2014 г.
11
Публикации по теме диссертации. По результатам исследований опубликовано 24
печатные работы, из которых в рекомендованных ВАК РФ периодических изданиях – 7. Были
получены 3 свидетельства о государственной регистрации программ для ЭВМ (номера
свидетельств: №2013610783, № 2014610816, № 2014610817).
Личный вклад автора. Постановка цели научного исследования и подготовка материалов
к печати велась совместно с научным руководителем. Основные научные результаты получены
лично автором. Автором самостоятельно разработан численный метод, предложенные
алгоритмы, оригинальная методика и оригинальная архитектура для программного комплекса
построения Парето-оптимальных нечетких систем.
Структура и объем работы. Диссертационная работа состоит из введения, пяти глав
основной части, заключения списка литературы из 140 наименований и шести приложений.
Основная часть работы содержит 167 страниц, в том числе 75 рисунков и 31 таблицу.
Во введении обосновывается актуальность темы исследования, формулируется цель работы,
излагаются полученные автором основные результаты проведенных исследований, показывается
их научная новизна, теоретическая и практическая значимость, отражаются основные
положения, выносимые на защиту.
В первой главе производится обзор проблемы исследования. Описываются виды нечетких
систем, приводится обзор методов идентификации структуры и параметров нечеткой системы по
одному и нескольким критериям. Производится постановка задачи диссертационной работы.
Во второй главе описывается разработанная методика и алгоритм построения Паретооптимальных нечетких моделей; комлпексный критерий интерпретируемости нечетких систем;
разработанные алгоритмы однокритериальной оптимизации: алгоритм пчелиной колонии для
генерации правил нечеткой системы, алгоритм пчелиной колонии для идентификация
параметров
нечеткой
системы,
алгоритм
адаптивной
эволюционной
стратегии
для
идентификации параметров нечеткой системы; гибридный численный метод, использующий
алгоритмы однокритериальной оптимизации, алгоритм генерации нечетких классификаторов на
основе экстремумов таблицы наблюдений.
В третьей главе представлены следующие разделы: UML-описание области исследования;
построение многопоточной архитектуры; реализация программного комплекса построения
Парето-оптимальных
нечетких
моделей;
классы
программного
комплекса,
схема
их
взаимодействия и параллельного выполнения. Описано PMML-представление нечеткой системы
в виде XML документа.
Четвертая глава содержит описание тестовых данных тестовых данных, результаты и
анализ проведенных экспериментов по генерации нечетких систем и параметрической
идентификации
алгоритмами,
реализованными
в
работе.
Даются
рекомендации
по
12
использованию разработанных алгоритмов генерации нечетких систем, структурной и
параметрической идентификации нечетких систем и алгоритмов, входящих в методику
построения Парето–оптимальных нечетких систем. Приводится сравнения разработанного
гибридного численного метода с алгоритмами, предложенными другими авторами.
В пятой главе рассмотрено применение разработанных гибридных алгоритмов для
назначения комплексов реабилитации пациентам с посттравматическими стрессовыми
расстройствами, внедренных в НИИ КиФ, и особенности использования, модификации
нечеткого классификатора, предложенного алгоритма для повышения точности распознавания
клавиатурного почерка внедренного в ОАО
«Особая экономическая зона технико–
внедренческого типа г.Томск».
Диссертант выражает искреннюю благодарность за ценные замечания, рекомендации
научному руководителю д.т.н. Илье Александровичу Ходашинскому, к.т.н. Евсютину Олегу
Олеговичу, к.т.н. Дмитрию Сергеевичу Синькову.
Глава 1. Обзор состояния проблемы исследования. Постановка задачи
1.1 Нечеткие системы
Нечеткая система – это структура, представляющая собой расширение классической
продукционной системы, антецеденты и консеквенты которой содержат нечеткие утверждения,
связанные между собой операцией нечеткой импликации [87].
Нечеткие системы являются хорошим инструментом для идентификации [77, 101].
Использование нечетких систем, основанных на правилах, можно рассматривать как
моделирование с применением языка описания на основе нечеткой логики.
Подход к моделированию в терминах нечеткой логики позволяет автоматически создавать
различные виды нечетких моделей, на основе данных вида вход-выход о моделируемом объекте,
включать экспертные знания в общую схему моделирования и объединять численные и
символьные способы обработки данных. До появления нечетких систем точность была главной
целью разработчиков моделей, так как вопрос интерпретируемости традиционных моделей
практически и не стоял в силу специфичности языка представления модели [59].
Нечеткие системы давно и успешно применяются в таких различных областях, как
классификация, аппроксимация, интеллектуальный анализ данных, распознавание образов,
прогнозирование и управление.
Ранее проектирование нечетких систем было основано на экспертных знаниях, поэтому
такие системы легко поддавались интерпретации. Примеры таких систем известны с 80–ых годов
прошлого века [37]:
13

в 1980 году была внедрена нечеткая система управления производством на цементном
заводе в Дании разработанная F. L. Smidth;

в июле 1987 году в Японии в г. Сендай была внедрена нечеткая система управления
движением поездов метрополитена линии Нанбоку.

в 1988 году в Японии в г. Сагамихара внедрена нечеткая система управления и контроля
процессом хлорирования для очистки воды городской сети водоснабжения.
На сегодняшний момент нечеткая логика и нечеткие системы используются практически во
всех направлениях науки и сферах жизнедеятельности человека: здравоохранении и образовании,
банковском секторе и промышленности, в военных и бытовых системах. Среди компаний
активно использующих нечеткую логику и нечеткие системы можно выделить: Sony (нечеткая
логика в видеокамерах), Porsche, Peugeot, Hyundai (коробка передач с нечетким контролером) и
многие другие.
Инструментарий нечеткой логики дает большие возможности людям, не владеющим
серьезным математическим аппаратом, проектировать системы различной сложности, не
отвлекаясь от сути исследования или решаемых задач. Исследователь при создании модели
системы оперирует понятиями знакомой ему предметной области, а не громоздкими
математическими формулами. В итоге сложные технические системы проектируются при
помощи простых лингвистических описаний на естественном языке.
При создании системы на основе нечеткого моделирования, разработчик описывает
предметную область при помощи лингвистических переменных (ЛП), описанных на множестве
термов с соответствующими функциями принадлежностей (ФП), и базы правил (БП) на
естественном языке.
Главное назначение нечетких множеств – дать характеристику, описать поведение ЛП на
заданной области определения. Совокупность лингвистических описаний предметной области в
терминах ЛП и нечетких множеств составляет базу правил.
Основной конструкцией, используемой для описания предметной области является
нечеткое высказывание вида [31, 99]:
xi есть Ai или xi = Ai ,
где xi – описываемая величина; Ai – элемент множества термов лингвистической переменной
описываемой предметной области.
По назначению системы с нечеткими правилами можно разделить на аппроксиматоры и
классификаторы. Аппроксиматоры применяются при решении задач моделирования и
управления, в задачах где выходная переменная является непрерывной. У аппроксиматоров в
зависимости от входа каждое правило вносит свой вклад в результирующее решение. В задачах
14
классификации выходная переменная является не числом, а меткой. Алгоритмы вывода
классификаторов обычно построены не на сотрудничестве, а на конкуренции правил; здесь
действует принцип «победитель получает всё».
Типы нечетких систем аппроксимации. Выделены следующие виды нечетких систем для
аппроксимации по виду правил: системы типа синглтон, Такаги–Сугено и Мамдани.
Правило j в нечеткой системе типа синглтон задается следующим образом:
ЕСЛИ x1 = А1j И x2 = А2j И … И xm = Аmj ТО r = aj,
где x  [ x1,..., xm ]T  m , aj – действительное число, Аij – нечеткая область определения i–ой
входной переменной, на рисунке 1.1 приведен пример равномерного нечеткого разделения
области определения переменной x1 пятью треугольными термами.
μ(x1) A11
1
A12
A13
A14
A15
0,5
x1
Рис. 1.1. Равномерное нечеткое разделение
Вывод в нечеткой системе типа синглтон определяется отображением F[116]:
n
F (x ) 

j 1
A1 j
( x1 )   A2 j ( x2 )  ...   Amj ( xm )  a j
,
n

j 1
A1 j
(1.1)
( x1 )   A2 j ( x2 )  ...   Amj ( xm )
где n – количество правил; m – количество входных переменных;  Aij – функция принадлежности
нечеткой области Аij.
Система типа Такаги–Сугено имеет правила следующего вида:
ЕСЛИ x1 = А1j И x2 = А2j И … И xm = Аmj ТО r = fj(x1,… xm) ,
где
fj – линейная функция, определенная на переменных x1, …, xm.
Отображение F для модели типа Такаги–Сугено определяется формулой:
n
F (x) 

j 1
A1 j
( x1 )   A2 j ( x2 )  ...   Amj ( xm )  ( a0i  a1 j x1  ...  amj xm )

j 1
Нечеткие
модели
.
n
типа
A1 j
( x1 )   A2 j ( x2 )  ...   Amj ( xm )
Такаги–Сугено
обладают
способностью
представлять
моделируемую систему с достаточно высокой точностью, при проектировании таких систем
стоит задача повышения интерпретируемости.
15
Система типа Мамдани задается правилами следующего вида:
ЕСЛИ x1 = А1j И x2 = А2j И … И xm = Аmj ТО r = Bj,
где Bj – терм выходной лингвистической переменной.
Для описания отображения входного вектора x в выходное значение r в моделях типа
Мамдани используются такие методы как аппроксимация Мамдани или метод, основанный на
формальном логическое доказательстве. Нечеткие модели типа Мамдани легко поддаются
интерпретации, при их проектировании стоит задача обеспечения заданной точности. [40, 75]
Типы нечетких систем классификации. По виду структуры и виду правил нечеткие системы
для классификации делятся следующим образом: Питтсбургский классификатор, Мичиганский
классификатор, Zeroth Level Classifier Systems (ZCS), Classifier Fitness Based on Accuracy(XCS).
Питтсбугский классификатор создан для обеспечения возможности периодичного
обучения классификатора с целью повышения точности [118]. Правило данного классификатора
имеет следующий вил:
Rij: ЕСЛИ x1 = А1j И x2 = А2j И … И xm = Аmj ТО class=ci, w=CFij,
(1.2)
где ci – идентификатор i–того класса, i [1, с]; CFij – вес правила или уровень доверия ij–тому
правилу, CFij  [0, 1].
Точность достигается путем совместной работы правил, относящих к одному классу, и
выражено это степенью принадлежности классу, вычисляемой следующим образом:
m
 j (x)    A ( xl )  CFi , j  1, 2,..., c
Rij
l 1
li
Тогда выход классификатора, определяется следующим образом:
class  c j* , j*  arg max  j .
1 j c
Данная архитектура классификатора имеет большую точность по сравнению с аналогами
при таком же количестве правил. Классификатор может быть адаптирован к изменениям
значений входных переменных, благодаря генетической подстройке на каждой итерации
обучения. Данная архитектура классификатора не применима для обучения в реальном времени
[36, 54].
Наиболее традиционным подходом к классификации с применением нечеткой логики
является Мичиганский классификатор основанный на конкуренции входящих в него нечетких
правил [78]. Его правила имеют такой же вид, как и у Питтсбурского (1.2), а вывод
классификатора отличается.
Степень принадлежности правилу Rij вычисляется по формуле:
16
m
aij (x)    Ali ( xl )  CFi , j  1, 2,..., c .
l 1
Выходом классификатора является класс, определяемый следующим образом:
class  c j* , j*  arg max aij .
1i  n
1 j  c
Появился данный тип классификатора, когда появилась необходимость обучать
классификатор в режиме реального времени на имеющихся в 1985 году вычислительных
ресурсах. Методика обучения не предполагает адаптацию к значительным изменениям значений
входных переменных [54]
Более современными видами Мичиганского классификатора являются система, Zeroth
Level Classifier Systems (ZCS)[129] и Classifier Fitness Based on Accuracy (XCS)[128].
ZCS использует те же правила (формула (1.2)) и способ вывода, что и в мичиганском
классификаторе, но отказавшись от настройки параметров антецедентов по входящим
наблюдениям, сконцентрировав обучение на весах по текущему входящему воздействию,
используя для этого алгоритм Q–обучения на основе алгоритма пожарной команды (Q-bucket
brigade) [129]. Такое изменение позволило еще больше сконцентрироваться на обучении в
реальном времени, достигнув режима жесткого реального времени.
В XCS используются правила вида (1.2) и формула вывода, что и в Мичиганском
классификаторе. Работает XCS классификатор только в режиме мягкого реального времени.
Правила классификатора группируются по близости входных переменных. Идентификация
параметров антецедентов проводится генетическим алгоритмом отдельно для каждой группы
правил. Для обучения весов используется адаптивный алгоритм Q–обучения [129].
1.2 Идентификация нечетких систем
В общем случае построение нечетких систем состоит из следующих этапов:
 выбор типа нечеткой системы, вида функции принадлежности на основе ограничений
решаемой задачи и экспертного опыта;
 структурная и параметрическая идентификация;
 проверка адекватности построенной нечеткой модели.
Важнейшим этапом при создании нечеткой системы является ее идентификация. Под
идентификацией понимается процесс нахождения взаимосвязей между входными и выходными
параметрами моделируемой системы. Идентификация структуры нечеткой системы – это
определение количества и состава входных и выходных переменных, а также количества термов
для каждой переменной. К задачам идентификации параметров относятся нахождение
17
оптимальных значений параметров антецедентов и консеквентов правил нечеткой системы [38,
135].
Ранее проектирование нечетких систем было основано на экспертных знаниях, поэтому
такие системы легко поддавались интерпретации. Однако указанный подход неприемлем при
моделировании плохо изученных систем с большим числом входных переменных. На смену
чисто экспертному подходу пришли методы нечеткого моделирования, основанного на
наблюдаемых данных [74, 76, 98].
Обобщенная структура системы с нечеткими правилами приведена на рисунке 1.2. В
указанной структуре выделяют собственно базу правил и базу данных, содержащую описания
функций принадлежностей.
ЕСЛИ x1=A11 И x2=A21 И … И
xm=Am1 ТО y = r1
…………………………………
ЕСЛИ x1=A1n И x2=A2n И … И
xm=Amn ТО y = rn
μ
Ai1
Ai2
Ai3
Ai4
xi
База правил
База данных
данных
x1… xm
Фаззификация
y
Машина вывода
Дефаззификация
Рис. 1.2. Обобщенная структура системы с нечеткими правилами
Компоненты нечеткой системы можно разделить на следующие категории: логические,
структурные и эксплуатационные [108, 129]. К логическим относятся тип системы и способы
нечеткого вывода, например, для системы типа Мамдани – аппроксимация Мамдани либо
формально логический вывод [39, 75]; нечеткие логические операторы (t–нормальные функции);
типы функций принадлежности; метод дефаззификации. Логические компоненты задаются на
первом этапе построения системы [38, 108].
18
Структурные характеристики, такие как релевантные переменные, количество функций
принадлежности, количество правил, определяются на этапе предобработки и на этапе
структурной идентификации. Информация о структуре нечеткой системы хранится в базе правил.
Эксплуатационные характеристики – это значения параметров функций принадлежности и
параметров консеквентов. Эксплуатационные параметры определяются на этапе идентификации
параметров. Эксплуатационные характеристики хранятся в базе данных.
Как правило, пространство поиска и, следовательно, вычислительные затраты, растут
экспоненциально
с
ростом
числа
параметров.
Компромисс
между
точностью
и
интерпретируемостью обычно выражается в виде набора ограничений на значения параметров,
что усложняет сам алгоритм поиска.
Идентификация структуры производится на этапе генерации нечеткой системы, но может
происходить итеративно, последовательно с идентификацией параметров. Основные способы
генерации базы данных строятся на методах разделения входных переменных.
Разбиение входного пространства определяет функции принадлежности, существенно
влияет на выбор нечетких правил и, в конечном итоге, влияет на интерпретируемость и точность
нечеткой системы.
Нечеткое
разбиение
интервала
[a,
b]
определяется
парой
( , ),
 {a  x1  x2  ...  xn1  xn  b} – разложение на подинтервалы [xk–1, xk],
где
k=2,...,n;
 {A1, A2 ,..., An1, An } – семейство базовых функций, Ak :[a, b]  [0, 1], Ak ( xk )  1, причем для
k=2,...,n–1 Ak на [a, xk] не убывает, а на [xk, b] не возрастает; A1 не возрастает и An не убывает на
[a, b].
Рассмотрим три наиболее часто используемых способа разбиения [58, 81, 89].
В разбиении на основе сетки (grid partition) каждая входная переменная разделена на
заданное число интервалов, каждый из которых описывается своим нечетким термом. База
правил формируется на основе декартова произведения множеств входных нечетких термов.
Достоинство – простота идентификации и интерпретации нечеткой системы; основной
недостаток – экспоненциальный рост числа правил с увеличением числа входных переменных.
19
x2
A23
A22
A21
μ
μ
A11
A12
A13
x1
Рис. 1.3. Нечеткое покрытие на основе сетки
Частным случаем разбиения на основе сетки является равномерное нечеткое разделение
(рис. 1.3.).
В разбиении на основе дерева решений (tree partition) пространство входных переменных
итерационо разбивается на непересекающиеся гиперпрямоугольники, ортогональные осям
координат. В центре каждого прямоугольника помещается центр функции принадлежности
нечеткого терма, размах функции принадлежности (альфа–срез) пропорционален размеру
гиперпрямоугольника. Достоинство алгоритма заключается в хорошем разделении функций
принадлежности. Недостаток состоит в том, что разбиение входного пространства ортогонально
осям может требовать весьма большого количества правил для аппроксимации функций со
сложным рельефом. Пример такого разделения в двухмерном пространстве входов для задачи
классификации приведен на рисунке 1.4.
– класс 1
– класс 2
– класс 3
Рис. 1.4. Разделение в 2–D пространстве на основе дерева
Разделение с перекрытием (scatter partition) отличается от предыдущего способа тем, что
области разделения могут иметь формы, отличные от гиперпрямоугольника и эти области могут
пересекаться. В зависимости от формы выделяют два типа разделения: гиперпараллелепипед и
эллипсоид. Достоинством данного подхода является меньшее число генерируемых правил,
недостатком – сложность процедур реализации.
Частным случаем такого разбиения являются разбиения, построенные с помощью методов
кластеризации, например, нечетких c-средних. При большом количестве данных эти методы
20
одни из немногих, позволяют построить нечеткие множества без привлечения экспертных
знаний. Однако частым недостатком такого подхода является низкая точность вывода
построенной нечеткой системы относительно других рассмотренных подходов. А так же
нарушение принципа определенности, когда сформированные из кластеров нечеткие множества
не имеют пересечения. Поэтому приходится использовать корректировки параметров нечеткой
системы [59, 107].
Разбиение входной переменной xj называется строгим разбиением [84, 114] или разбиением
Ruspini, если x j  x,   Aji ( x j )  1 .
i
Графическое представление такого разделения приведено на рисунке 1.5.
μ(x) A11
1
A12
A13
A14
A15
0,5
x1
Рис.1.5. Строгое нечеткое разделение
Достоинством строгого нечеткого разделения является меньшая размерность входного
вектора при его представлении в алгоритмах идентификации.
Идентификация параметров нечеткой системы может быть как однокритериальной, тогда
рассматривают критерий точности вывода нечеткой системы, или многокритериальной, когда
кроме точности рассматривают критерии сложности и/или интерпретируемости. Рассмотрим
каждый из подходов идентификации параметров отдельно.
Одномерную идентификацию параметров нечеткой системы выполняют, используя методы
нелинейной оптимизации, адаптированные к особенностям нечеткой системы. Методы бывают
основанными на производных и метаэврическими.
Наиболее популярными методами и алгоритмами, основанными на производных, являются
метод наименьших квадратов [40, 75, 124], Левенберга–Марквардта, фильтр Калмана [35, 57, 104,
117], градиентный метод [56, 81]. Основные проблемы при их применении – это высокие
временные затраты, застрявание в локальных минимумах и резкое увеличение трудоемкости при
увеличении числа входных переменных, называемое «проклятием размерности». Однако их
использование позволяет добиться высокой скорости сходимости к экстремуму (локальному или
глобальному) на одну итерацию. Кроме того, эти методы часто используют матричные
вычисления, которые вводят дополнительные ограничения при реализации на вычислительных
системах именно в задаче оптимизации параметров нечетких систем. Возникают эти ограничения
при перемножении десятков–сотен значений меньших единицы, например, в задаче определения
21
детерминанта матрицы, так как именно такими являются степени принадлежности значений
входных переменных термам. Использование сингулярного разложения матриц или других
методов позволяет снять эти ограничения, но лишает уверенности, что результаты такой
оптимизации не ухудшат текущий результат.
Метаэвристические методы являются субоптимальными
итеративными
методами,
основанными на простых правилах – эвристиках. Их использование позволяет устранить часть
недостатков методов нелинейной оптимизации, основанных на производных.
На современном этапе метаэвристические методы можно разделить на два больших
подтипа. Это методы, основанные на генетических, эволюционных алгоритмах и эволюционном
программирования и методах роящегося интеллекта. Первый подтип является имитацией
процесса эволюции и оценки приспособленности особей, второй подход основан на поведении
стай животных при решении повседневных задач.
Генетические методы и алгоритм эволюционной стратегии возникли независимо друг от
друга, они характеризуются рядом важных общих свойств. Для любого из них формируется
исходная популяция особей, которая в последующем подвергается селекции и воздействию
различных генетических операторов (чаще всего скрещиванию и/или мутации), что позволяет
находить более хорошие решения [1, 34, 54, 82].
Существует особая категория, эволюционных методов  это методы с адаптацией
параметров и статистическими операторами, такими как матрица ковариации, позволяющими
добиться большей скорости сходимости, если гипотеза наличия взаимосвязей среди входных
данных верна. Одним из наиболее ярких представителей этой группы алгоритмов является
адаптивная эволюционная стратегия с матрицей ковариации. В отличие от классического
генетического алгоритма в этом алгоритме используются два понятия фенотип и генотип.
Параметры нечеткой системы представлены в виде хромосомы и существуют только на уровне
генотипа, фенотип включает в себя генотип и характеристики алгоритма эволюционной
стратегии такие как шаг мутации и угол ротации. Шаг мутации – это адаптивный коэффициент,
изменяемый самим алгоритмом от итерации к итерации. Эти параметры характеризуют величину
шага оптимизации для каждой входной переменной отдельно. Угол ротации исследует
взаимосвязи между входными переменными на основе матрицы ковариации и рассчитывается
после каждой итерации. Применение угла ротации позволяет избежать большинства промахов,
связанных со слишком большим шагом мутации для группы входных переменных [73, 93, 105]
Использование этого алгоритма из-за сложной комбинации эвристик вычислительно
затратнее аналогов, но позволяет добиться более устойчивых результатов и во многих случаях
22
более точного вывода по сравнению как с генетическим алгоритмом, так и с классическим
алгоритмом эволюционной стратегии.
Следующий подтип – алгоритмы, основанные на поведении роевого интеллекта.
Алгоритмы муравьиной колонии [69, 70]– алгоритмы, изначально созданные для решения
комбинаторных задач в дискретном пространстве, являются алгоритмами ограниченного
перебора, впоследствии перенесенные на оптимизацию в непрерывном пространстве вводя
отдельных ответственных муравьев на каждом признаке в алгоритме CACO [51] или используя
гауссово ядро DACO [119]. В основе большинства алгоритмов данной группы лежит
коммуникация муравьев с помощью ферамона, концентрация ферамона пропорциональна
качеству решения [132].
Алгоритмы роящихся частиц [96]– это алгоритмы основанные, на обобщенной концепции
поведения косяков рыб или стай птиц. Эти алгоритмы реализуют стохастический метод поиска,
основанный на итеративном взаимодействии частиц, образующих рой. Перемещение частицы в
пространстве поиска определяют три фактора: инерция, память, сотрудничество. Инерция
подразумевает, что частица не может мгновенно изменить свое направление движения. Каждая
частица имеет память и хранит свою лучшую позицию в пространстве поиска и позицию лучшей
частицы в рое. Зная эти две позиции, частица динамически изменяет скорость согласно ее
собственному опыту и опыту полета других частиц. Таким образом, движение каждой частицы
задается ее лучшей позицией, ее текущей скоростью, ускорением, заданным предыдущей
позицией, и ускорением, заданным лучшей частицей в рое. Существуют модификаций,
детерминирующие или перерассчитывающие значение каждого из коэффициентов инерции,
доверия своему лучшему решению (память), и коэффициента сотрудничества[96]. Если
проводить аналогии с генетическими алгоритмами, то присутствует мутация в виде поиска
прототипа в пространстве и элитарная селекция. Однако роль лучшей не так однозначна, как в
эволюционных подходах, изменяя коэффициент доверия ее решению, можно выбирать между
лучшим исследованием всего пространства поиска и эффективностью поиска точного значения
локального экстремума на текущей итерации [132].
Алгоритмы пчелиной колонии [53, 94, 110, 122] – это группа алгоритмов оптимизации,
использующая разное поведение пчел. Оптимизация выполняется различным образом для
каждого вида пчел. Разведчики осуществляют глобальный поиск, рабочие пчелы оптимизируют
лучшие решения на данной итерации, используя локальный поиск, и наблюдатели которые,
оптимизируют лучшие решения за всю историю имитации. Если проводить параллели между
этими и популяционными алгоритмами, то в пчелинных алгоритмах нет аналога кроссовера, для
каждого вида пчел своя мутация и общий для всех пчел вероятностный процесс отбора решения
[132].
23
Алгоритм светляков [130] – алгоритм, основанный на освещении и поведении тропических
светляков. Достаточно просто выражаемый в виде математической формулы и поэтому
применим во многих аппаратных решениях. Использует комбинацию поиска в сторону лучшего
и случайного поиска с использованием гауссого распределения. В вырожденных случаях он
сводиться к алгоритму дифференциальной эволюции; алгоритму имитации отжига, одному из
подвидов алгоритма роящихся частиц в зависимости от значения варьируемых коэффицентов
[132].
Алгоритм «кукушкин поиск» [131] – алгоритм, основанный на подкидывании своих яйц
другим птицам. Данный алгоритм представляет собой сбалансированный поиск, состоящий из
глобального поиска и локального поиска. При определенных значениях коэффицентов
деградирует до ускоренного алгоритма роящихся частиц. Основной положительный момент 
автоматическое увеличение масштаба (уменьшения шагов поиска) в окрестностях локальных
экстремумов, более того при нахождение нового локального минимума уже на следующей
итерации туда будет направлено значительное количество «кукушек» [132].
Алгоритм ориентации летучих мышей [133] – алгоритм, основанный на эхолокации при
поиске направления и определения расстояния до цели летучих мышей в природе. Во многом
схож с алгоритмом роящихся частиц, но вместо коэффициентов доверия себе или социального
коэффициента используется частотная модуляция. Благодаря частотной модуляции наблюдается
эффект уменьшения шага поиска при приближении к экстремумам [132].
Более подробно остановимся на высокопроизводительных алгоритмах пчелиной колонии
[94]. Пчелиный рой обладает следующими преимуществами: автономность, распределение
функций и самоорганизация.
Автономность.
Каждый
отдельный
рой
может
справиться
с
задачей
без
дополнительных внешних взаимодействий с другими.
Распределение функций. Пчёлы, заготавливающие пищу, делятся на три категории:
1) фуражиры – пчелы, которые ведут сбор с закрепленного за ними источника пищи;
2) наблюдатели – пчелы, выбирающие один из источников;
3) разведчики – пчелы, задачей которых является поиск новых источников пищи.
Самоорганизация.
Медоносные пчёлы, как и другие общественные насекомые,
демонстрируют примеры коллективного поведения. Они эффективно подстраиваются под
изменяющиеся потребности колонии: защита, забота о выводке, добыча продовольствия и т.д.
Поведение
пчелиной
централизованного
колонии
управления.
скоординировано
Эта
коллективная
без
указаний
организация
лидера,
является
плана
или
результатом
последовательных взаимодействий между многими пчёлами, действующими независимо и
24
инстинктивно.
Это
называется
самоорганизацией.
Медоносных
пчёлы
имеет
смысл
рассматривать как «суперорганизмы», отдельные особи которых не могут выжить или
воспроизводиться вне группы [94, 121].
Исследования и моделирование колоний насекомых, такие как пчёлы показали, что роевые
методы хорошо решают сложные проблемы [94]. Пчёлы живут в «ульях» подобно муравьям, они
должны исследовать среду, чтобы найти источники пищи. Но сходство между пчёлами и
муравьями на этом заканчивается: механизм коммуникации, между пчёлами отличается от
муравьиного аналога. Коммуникация между пчёлами основана на танцах. Прежде чем начать
добывать пищу, пчёлы наблюдают за другими пчёлами, танцующими на «площадке для танцев».
Танец это их способ описать, где пища. У этого подхода есть множество различий с
использованием феромонов муравьями. Благодаря феромонам «разговор» различных муравьёв
представлен как количественное увеличение или уменьшение феромона на выбранном пути.
Увидеть решение конкретного муравья невозможно, так как оно смешивается с другими. С
другой стороны, на танцевальной дорожке представлены различные решения, которые актуальны
только в момент танца.
Рой в целом отвечает следующим критериям [95].
 Каждая пчела в рое должна учитывать расстояние и время полёта между роем и
источником пищи (принцип близости).
 Пчёлы должны оценивать как количество и качество пищи в источнике, так и
безопасность добычи нектара (принцип качества).
 Пчёлы не должны распределяться между всеми источниками пищи равномерно, всегда
должен оставаться некий процент незанятых пчёл, также не следует большинству пчёл добывать
из небольшого источника, если доступен источник, содержащий больше пищи (принцип
различной реакции).
 Большая часть роя не должна моментально реагировать на каждое изменение
окружающей среды (принцип стабильности).
 Пчёлы должны перераспределяться по мере истощения источников пищи (принцип
адаптивности).
Можно выделить четыре вида поведения, на которых основаны пчелиные алгоритмы:
добыча нектара, процесс спаривания, распределение труда среди пчел и поиск места
расположения нового улья. В параметрической оптимизации наиболее часто используются
алгоритмы, основанные на добыче нектара.
Группа процессов, выполняемых рабочими пчёлами: разведка, добыча и танцы во время
сбора нектара  дали основу множеству алгоритмов.
25
Добыча нектара. Первый алгоритм, предложенный Сато и Хагивара (1997), был
улучшением генетического алгоритма, где процесс случайного формирования хромосом и
мутации были заменены аналогом на основе добычи нектара, то есть сочетанием случайного и
локального поиска из ранее найденных лучших решений. Оператор кроссовера заменен
вероятностным аналогом пчелиных танцев.
Затем появилась целая плеяда самостоятельных алгоритмов, быстро завоевавших
популярность в виду своей гибкости. Они нашли применение во многих прикладных задачах,
получили десятки модификаций.
Пчёлы представлены как минимум в двух специализациях: пчелы–разведчики,
выполняющие случайный поиск, пчёлы–фуражиры, выполняющие специальный поиск. Цель
пчёл  найти как можно лучший источник нектара. Во время добычи нектара, пчёлы
уравновешивают эксплуатацию известных источников пищи и поиск новых в динамической
окружающей среде при помощи танцев [95].
Также алгоритмы отличаются составом участников. В некоторых вариантах встречаются
пчёлы–наблюдатели, которые могут помогать любому разведчику или фуражиру в течение одной
или нескольких итерации. В таких алгоритмах есть механизмы и обратного превращения пчёл–
фуражиров и пчел–разведчиков в пчел–наблюдателей. Различаются алгоритмы возможностью
перехода пчёл в другой тип, и критериями переквалификации.
Алгоритмы этой группы множество раз показывали свою состоятельность, «показывая»
лучшие результаты среди аналогов. Алгоритмы представлены следующими видами: Discrete bee
dance algorithm [122]; Virtual bee algorithm (VBA) [134]; Artificial Bee Colony (ABC) [94]; Bees
Algorithm (BA) [110]; Bee colony optimization (BCO) [122]; Interactive ABC (IABC) [100].
Распределение труда в улье. Для задач, где необходимо адаптивное распределение
вычислительных и сетевых мощностей было создано несколько алгоритмов под общим
названием алгоритм медоносной пчёлы (Honey bee). Подобно распределению рабочих пчёл,
которые должны выбирать между строительством и охраной улья, добычей и хранением нектара,
удалением мусора для вычислительных систем необходимо распределить приоритеты
выполнения между различными задачами. Распределение должно основываться как на
приспособленности конкретного объекта для решения данной задачи, так и на основе приоритета
задачи в текущий момент времени. Именно такое поведение у рабочих пчёл в улье, и это
распределение носит вероятностный характер. Эти алгоритмы показывают лучший результат по
адекватности распределения, чём статистические и жадные методы, но чаще изменяют
приоритеты задач. В данной группе представлены следующие алгоритмы: Honey bee waggle
26
dance protocol; honey bee teamwork strategy; A swarm intelligence Based framework for network
(Swan) [95].
Выбор местоположения улья. С 1996 года были попытки применить выбор расположения
следующего улья на основе поведения пчёл в природе. Особенность такого поведения 
безконфликтность выбора. Достигается это тем, что разведчики, нашедшие новое возможное
расположение обязаны также побывать у текущего решения, рекламируемого другими пчелами
на месте для танцев. И только в случае превосходства нового решения над текущим вариантом,
он начинает рекламировать своё решение. А разведчик, рекламировавший решение, отправляется
на поиски нового возможного положения. Особого распространения эти алгоритмы не получили,
так как во многом повторяют принципы динамического программирования, и существенных
преимуществ выявлено не было. В данной группе существуют следующие алгоритмы: Ecological
algorithm for optimal ordering used by collective honey bee behavior; Systems biology of group
decision making; Multiagent–based fault tolerance management for robustness [95].
Спаривание и репродукция. Поисковая система, состоящая из двух этапов, основанных на
развитии улья от модели «в улье одна матка и несколько трутней», к модели «множества маток
и большого количества трутней». Первый этап основан на поиске новых маток, второй – на
локальной оптимизации, производимой подобно процессу спаривания трутнями матки. Решение
данной задачи происходит в n–мерном пространстве, где необходимо найти один из
экстремумов, представленный маткой. Притом матке соответствует не точка, а некоторая
область. На следующем этапе часть трутней спаривается с найденной маткой, производя
локальный поиск в окрестности, остальные ищут новые матки, то есть новые экстремумы. На
каждой итерации найденные решения постоянно улучшаются, и происходит поиск новых
экстремумы [102].
Существуют модификации, изменяющие на каждой итерации начальное положение
трутней, также ограничивающие количество маток в пространстве на основе алгоритмов
кластеризации. Группа представлена следующими алгоритмами: Marriage in honey bees
optimisation (MBO) [H.A. Abbass, 2001)]; Honey–bee mating optimization algorithm (HBMO) [53],
A honeybee–mating approach for cluster analysis [M. Fathian, B. Amiri, 2008].
Количество публикаций по алгоритмам, основанным на поведении пчёл, возрастает
экспоненциально, при этом количество принципиально новых алгоритмов растёт медленно, в
отличие от количества статей с модификациями и новыми применениями уже известных
алгоритмов.
Пчелиные алгоритмы получили широкое практическое применение:
 настройка таблиц маршрутизации c учетом близких подсетей и далеких узлов [95];
27
 транспортная задача в реальном времени [121];
 балансировка нагрузки на веб–сервера [95]
 построение экспертной системы по выращиванию чеснока [95];
 эффективная система хранения и распределения водных ресурсов на основе алгоритма
спаривания пчелиной матки [53].
Ключевой
особенностью,
позволившей
добиться
популярности
некоторым
из
предложенных алгоритмов, явилась скорость оптимизации при достижении той же точности. В
статье [94] показано превосходство в производительности алгоритма ABC над генетическим
алгоритмом и алгоритмом роящихся частиц, при этом точность достигнутого результата у ABC
выше, чем у генетических алгоритмов среди всех рассмотренных задач, и сопоставима (в
некоторых случаях превосходит) с решениями алгоритма роящихся частиц в задаче
классификации. В работах [50, 100, 109] показано превосходство в производительности
современных модификаций алгоритма ABC над современными модификациями алгоритма
роящихся частиц при большей или сопоставимой точности в задачах аппроксимации нелинейных
функций.
Использование методов, основанных на производных в дополнении к метаэвристическим,
позволяет добиться лучших результатов, но требует еще больше времени выполнения. А также
требует большого мастерства от программиста для объединения последовательных и
параллельных вычислений [40].
При решения задач многокритериальной оптимизации существует три различных подхода
построения Парето-фронта [62]:
1)
интерактивный, когда на каждом шаге алгоритмов оптимизации требуется
привлечение эксперта, который укажет дальнейшее направление оптимизации, изменив
ограничения, накладываемые на решение;
2)
априорный, когда на
область
возможного
решения накладываются
все
ограничения, сформулированные математически или в виде правил. Использование данного
подхода позволяет получить ни одного, одно или несколько решений, полностью
удовлетворяющее эксперта. Если не найдено ни одного решения подход сводится, к
интерактивному путем ослабления ограничений.
3)
апостериорный, когда на область решения накладываются только самые
существенные ограничения. Самый популярный подход, не требует формализации всех
требований, накладываемых на область решения, применим там, где заранее неизвестно
достижимы ли желаемые решения. Из всех полученных решений отбираются недоминируемые
решения по Парето, то есть формируется Парето–фронт.
28
Однако при построении Парето-фронтов на реальных данных часто неизвестно, где должен
проходить
идеальный
Парето-фронт.
Парето-фронт,
полученный
любым
алгоритмом
апостериорной многоцелевой оптимизации, условно принимается как идеальный, пока не будет
получен другой доминирующий над полученным [63-66, 123].
Форма Парето–фронта в практических задачах зачастую не является непрерывной линией,
она может быть выпуклой, точечной или кусочной [86, 115, 120, 139].
Алгоритмы многокритериальной оптимизации на модельных тестах сравнивают по трем
основным критериям [66, 139]:
1) близость построенного Парето–фронта к идеальному (на тестовых выборках он заранее
известен);
2) распределение точек решений вдоль всего Парето–фронта;
3) производительность, отношение общего количества сгенерированных решений к
количеству решений на Парето–фронте или затраты времени в секундах.
Самыми часто используемыми на практике алгоритмами для многокритериальной Парето–
оптимизации стали алгоритмы из группы многоцелевых эволюционных алгоритмов(MOEA). К
этим алгоритмам относятся три различных алгоритма: Strength Pareto Evolutionary Algorithm
(SPEA) предложенный в статье [139], modified non–dominated sorting genetic algorithm (NSGA–II)
[66], Pareto envelope based selection algorithm (PESA) [60]. Эти алгоритмы во многом похожи так
как являются популяционными и основанными на эволюции. Описываются эти алгоритмы
схемой из трех этапов: отбор кандидатов на то, чтобы быть родителями; порождение потомка
(мутация и кроссовер); включение потомка в популяцию.
Модели мутации и кроссовера для этих алгоритмов идентичны, главное отличие − это
принцип включения потомства в популяцию. Входом этих алгоритмов является объединенная
популяция из родителей и потомков, а также размер популяции (N).
В алгоритме SPEA на каждой итерации выполняется объединение в кластеры наиболее
близких недоминируемых решений до тех пор, пока количество оставшихся решений и
количество кластеров будет равно размеру популяции. Если все решения попали в кластеры, а
количество кластеров все еще больше чем размер популяции, то происходит объединение
кластеров. В этом случае из каждого кластера выбирается средина, остальные решения,
попавшие в кластер отсеиваются. Данный алгоритм дает одно из лучших распределений вдоль
Парето-фронта, однако он один из самых неэффективных по производительности, так как в
результате кластеризации трудоемкость одной итерации данного алгоритма пропорциональна N
3
[67]. Позже был разработан более быстрый вариант данного алгоритма SPEA2, где попарная
кластеризация заменена схемой k–средних[140].
29
В противоположность ему один из самых быстрых алгоритмов NGSA–II. Этот алгоритм
сортирует все решения по всем критериям и отсевает все доминируемые решения. После чего
оценивает расстояние между решениями как сумму нормализованных значений критериев. Для
пары самых близких по этому расстоянию критериев одно из решений отсеивается, другое
остается. Вычислительная сложность одной итерации алгоритма пропорциональна N*log(N).
Однако качество распределения вдоль Парето–фронта для данного алгоритма приемлемо только
в двухмерном случае [67]. Сluster NGSA – II (c–NGSA–II) – улучшенная в плане распределения
вдоль Парето–фронта решений версия NGSA–II, она использует попарную кластеризацию по
близости в нормированном эвклидовом пространстве критериев (аналогично SPEA) и отбирает
только решения близкие к центрам кластеров [66].
В алгоритме PESA используется разделение пространства поиска на заранее заданное
количество элементарных гиперпаралелипипедов (ЭГ). Каждое из решений относится к своему
ЭГ. Потом происходит подсчет решение в самом заполненном ЭГ, если потомок относится к ЭГ
с меньшим заполнением, его включают в популяцию, а из максимально заполненного ЭГ
удаляется случайное решение. После заполнения всех недоминируемых ЭГ одинаковым
количеством решений, происходит деление ЭГ в два раза по каждому из критериев.
В работе [67] показан положительный эффект на производительность и распределение
решений вдоль Парето–фронта. Для этого авторы ввели понятие архива решений в дополнение к
популяции и применили понятие порогов несравнимости к решениям, помещаемым в архив.
Фактически является гибридом NGSA–II и PESA с отличием в том, что ЭГ не изменяются в
размере, и в каждом ЭГ имеется только одно решение.
В работе [91] показан положительный эффект от использования коэволюции на
распределение
решений
вдоль
Парето-фронта
в
двухмерных
задачах.
Задача
многокритериальной оптимизации сведена к однокритериальной, применив в качестве критерия
сумму взвешенных нормированных значений критериев. Но в каждой субпопуляции веса в сумме
у каждого критерия различны.
Многокритериальная Парето-оптимизация не ограничивается только эволюционными
подходами. В работе [136] предложен алгоритм автономной пчелиной колонии для
многокритериальной оптимизации (Autonomous Bee Colony Optimization for Multiobjective
Function). Особенность данного алгоритма  описание отбора и принятие новых решений через
механизм танца, отказ от кроссовера в сторону глобального поиска пчелами разведчиками, а
мутация описывается как локальный поиск пчелами фуражирами, но данный алгоритм является
сравнимым как по производительности, так и по качеству расположения решений вдоль Парето–
30
фронта с NGSA–II, и превосходит по близости к идеальному–Парето фронту на некоторых
тестовых задачах.
В приложении к нечетким системам методы Парето-оптимизации активно начали
применяться
с
2011
года.
Как
правило,
авторами
предлагается
свой
критерий
интерпретируемости и используется один из готовых методов Парето-оптимизации, возможно с
небольшими
изменениями.
Классификация
подходов
по
используемому
алгоритму
многокритериальной оптимизации приведена ниже:
 использующие NGSA-II [90, 103, 106, 112];
 использующие SPEA 2 [79];
 использующие собственный многоэтапный алгоритм, основанный на принципах
коэволюции [114].
Заметный вклад в многокритериальную оптимизацию по точности, сложности,
интерпретируемости внесла работа [90], где авторами показана эффективность использования
именно многокритериальной оптимизации вместо случаев сведения к одному критерию, а также
преимущества использования всех трех критериев, вместо попарных подходов. Совместное
использование критериев позволяет добиться большей оптимальности решений по каждому из
критериев, благодаря их взаимосвязи.
Отдельного
упоминания
заслуживает
отличающийся
от
стандартных
подходов
многоэтапный алгоритм основанный на принципах коэволюции [138]. В работе используется
предобработка данных отбором информативных признаков на основе прибыли. Затем на каждой
итерации однокритериальному алгоритму эволюционной стратегии позволяется включать и
выключать правила, оптимизируя двоичную хромосому правил, на следующем этапе
однокритериальный алгоритм подбирает термы, которые должны быть в антецедентах правил,
манипулируя их номерами. Третий этап состоит в оптимизация параметров термов, оставшихся
невыключенными на предыдущих этапах. В качестве критериев оптимизации выступает процент
правильной классификации, количество правил и термов.
1.3 Критерии оптимизации нечетких систем
Параметры нечеткой системы настраиваются согласно критерию оптимальности, который
задается исследователем.
Самый распространённый критерий оптимальности  это точность вывода нечеткой
системы. Введем общие обозначения для представления этого критерия. Точность – это
способность адекватно представить реальную систему. Общепринятой мерой точности является
31
среднеквадратическая
ошибка
для
задач
аппроксимации
или
процент
правильно
классифицированных наблюдений для задач классификации.
Интерпретируемость можно трактовать, как возможность представить поведение
моделируемой системы в понятной форме. Интерпретируемость является желательным
свойством для всех типов приложений, но это свойство является особенно важным требованием
для систем, основанных на знаниях, с человеко–машинным взаимодействием, например, систем
поддержки принятия решений. Базы знаний таких систем должны быть понятны пользователям
для повышения доверия к этим системам, к их советам и предложениям.
Термин «интерпретируемость» используется в различных научных и технических областях,
но не имеет общепринятого толкования. Еще более сложной является проблема оценки
интерпретируемости.
Интерпретируемость является важным свойством модели, так как позволяет преобразовать
данные в знания. Поиск компромисса между точностью и интерпретируемостью является в
настоящее время одним из наиболее активных направлений исследований в нечетком
моделировании. В работе [47] отмечается экспоненциальный рост количества работ, связанных
с интерпретируемостью, за последние несколько лет.
Благодаря своей семантической выразительности и близости к естественному языку,
нечеткая логика может использоваться для построения моделей реальных сложных систем,
понятных человеку. Однако сама по себе нечеткая логика не может гарантировать
интерпретируемость
разработанной модели. Для достижения этой цели в процессе
проектирования требуется наложить такие ограничения на элементы системы, чтобы каждый из
этих элементов был понятен человеку. Если же этого не сделать, то нечеткая система может
превратиться в черный ящик [47].
Не существует единственно верного определения интерпретируемости нечетких систем, но
неотъемлемыми являются следующие характеристики [76, 137]:
1) количество входных переменных и правил: многомерные нечеткие системы трудно
интерпретировать; нечеткая система должна по возможности иметь как можно меньше входных
переменных; нечеткую систему с большой базой правил интерпретировать труднее, чем систему,
содержащую только несколько правил;
2) нечеткие правила: каждое правило должно содержать как можно меньше нечетких
термов; число термов, которыми описывается каждая входная переменная, находится в разумных
пределах; в базе нет правил, у которых одинаковые антецеденты, но различные консеквенты; как
минимум одно нечеткое правило должно сработать для каждого объекта из таблицы наблюдений;
3) функции принадлежности: функции принадлежности (ФП) нечетких термов выпуклы и
нормализованы; смежные функции принадлежности должны перекрываться, а величина
32
перекрытия не может быть слишком большой или слишком маленькой; как правило, 0.5 является
хорошим решением для треугольных функций принадлежности; область определения полностью
покрыта функциями принадлежности, т.е. по крайней мере, одна ФП получает значение, не
равное нулю в любой точке области определения; используются глобально определенные
функции принадлежности, это означает, что определенные один раз функции принадлежности
используются во всех правилах.
Положения 1 и 2 сформулированы достаточно определенно и используются в работах
большинства исследователей алгоритмов при построении нечетких систем и идентификации
параметров. Также широко используется количество отобранных входных переменных.
Интерпретируемость ФП не однозначна, поэтому используется несколько различных подходов к
ее оценке.
Ограничимся критериями интерпретируемости, применимыми для нечетких систем типа
синглтон (нечеткая система Такаги–Сугено нулевого порядка) [116], так как в этой нечеткой
системе достаточно простые консеквенты и не требуются дополнительные оценки их
интерпретируемости. Основной упор будет сделан на критериях интерпретируемости
антецедентов правил.
В работе [79] критерий интерпретируемости строится на понятии сильного распределения
(рис. 1.4), то есть изначально разбиение входных признаков производится равномерно, а
предложенный критерий оценивает ухудшение интерпретируемости после оптимизации.
Данная характеристика включает три компонента:
 изменение расположения пика терма относительно его позиции до оптимизации;
 степень сжатия (расширения) терма оценивается по изменению позиции его границ,
относительно состояния до оптимизации;
 отношение площади терма после оптимизации к площади терма до оптимизации.
Данный критерий достаточно эффективен в своей задаче, однако для общей оценки
интерпретируемости не подходит так как имеет следующие недостатки:
 не применим к задаче оценки интерпретируемости нечетких систем, построенных
методами кластеризации или на основе гиперфигур [81, 89];
 слишком идеализирует сильное разбиение, предполагая, что любое изменение ведет к
потере интерпретируемости;
 экстремально оценивает интерпретируемость, так как каждая компонента оценивается для
пары термов, для которых эта компонента минимальна.
Следующим подходом является оценка площадей перекрытия термов, когда наступает
превышение пороговой величины критерий интерпретируемости уменьшается. Подход наиболее
33
хорошо представлен в статье [138]. Однако оценка только площади пересечения термов
недостаточно учитывает факт сильного различия площадей пересекающихся термов, то есть для
оценки интерпретируемости пересечения малого по площади и большого по площади термов не
подходит. Кроме того, сам принцип расчета, принятый исследователями на основе количества
точек, входящих в область пересечения термов к количеству точек в области объединения, не
эффективен для наборов данных, в которых область расположения термов может содержать
слишком мало наблюдений. На точность такая ситуация почти не влияет, а на
интерпретируемости скажется.
Оригинальный подход оценки интерпретируемости предложен в работе [33]. Авторами
предложено считать, что в нечеткой системе уровень пересечения каждой пары термов не должен
быть выше определенного порога от 0,25 до 0,75 по уровню принадлежности, в противном случае
рейтинг интерпретируемости снижается. Использование этого критерия отдельно не
подразумевает, что пересечение обоих границ терма хоть и на допустимом уровне негативно
сказывается
на
интерпретируемости
нечеткой
системы.
Применение
этой
метрики
рекомендуется как часть комплексного показателя.
Все указанные ранее подходы отвечали за семантическую различимость нечетких
множеств, описанных функциями принадлежности. Далее будет рассмотрен подход, основанный
на том, что нечетким множествам дается лингвистическое толкование. Такое толкование
помогает в читабельности модели, однако оно нарушается, когда пересекаются термы, которым
даны несвязанные лингвистические описания. В работах [46, 52] предлагается кроме некоторых
из ранее описанных мер снижать оценку интерпретируемости за факты пересечения, наиболее
отдаленных в лингвистическом смысле пар термов по каждой входной переменной.
1.4 Постановка задачи
В работе для решения задачи аппроксимации использована нечеткая система типа синглтон,
j-тое правило которой имеет следующий вид:
ЕСЛИ x1 = А1j И x2 = А2j И … И xm = Аmj ТО y = aj,
T
m
где x  [ x1,..., xm ]   , aj – действительное число, Аij – нечеткая область определения i–ой
входной переменной. Вывод нечеткой системы типа синглтон описан формулой:
n
F (x ) 

j 1
A1 j
( x1 )   A2 j ( x2 )  ...   Amj ( xm )  a j
,
n

j 1
A1 j
( x1 )   A2 j ( x2 )  ...   Amj ( xm )
(1.1)
34
где n – количество правил; m – количество входных переменных;  Aij – функция принадлежности
нечеткой области Аij.
Нечеткая система типа синглтон может быть представлен как y = F(x, θ), где y – скалярный
m
выход аппроксиматора, θ = ||θ1,…, θN|| – вектор оптимизируемых параметров, N   t *b i  n , t –
i 1
число параметров, описывающих одну функцию принадлежности, bi – число термов,
описывающих i–тую входную переменную. Пусть дано множество обучающих данных (таблица
наблюдений) {(xp; tp), p = 1, ..., l}, тогда среднеквадратическая функция ошибки (RMSE) является
численным критерием точности модели и вычисляется по следующей формуле:
E (θ) 
1
m
 t
l
p 1
 F (x p , θ)  .
2
p
(1.3)
В работе для решения задачи классификации использован питтсбургский тип
классификатора[13], i-ое правило которого, описывающее принадлежность к j-ому классу,
имеет следующий вид:
Rij: ЕСЛИ x1 = А1j И x2 = А2j И … И xm = Аmj ТО class=ck, где ck – идентификатор k–
того класса, k [1, с].
Выход питтсбурского классификатора без весов правил определяется следующим образом:
class  c j* , j*  arg max  j ,
1 j c
где
m
 j (x p )    A ( x pl ) –
Ri j l 1
li
степень
принадлежности
наблюдения xp к j –тому классу.
Нечеткий классификатор описывается функцией
f : m  [0,1]c , которая относит
классифицируемый объект к каждому классу с определенной степенью принадлежности. Тогда
нечеткий классификатор может быть представлен как функция: class 
f (x, θ) ,
m
c
i 1
j 1
где θ = ||θ1,…, θN|| – вектор оптимизируемых параметров, N   t *bi   k j , t – число
параметров, описывающих одну функцию принадлежности, bi – число термов, описывающих i–
тую входную переменную, kj – число правил относящихся к j-тому классу.
Пусть дано множество обучающих данных (таблица наблюдений) {(xp; tp), p = 1, ..., z},
определим следующую единичную функцию:
1, если с p  f (x p , θ), p  1.. z
delta( p, θ)  
0, иначе
35
Тогда численный критерий точности системы классификации может быть выражен
следующим образом:
z
Pr (θ) 
 delta( p, θ)
p 1
(1.8)
z
Проблема идентификации сводится к проблеме поиска максимума заданной функции в
многомерном пространстве, координаты которого соответствуют параметрам нечеткой системы
[13].
В качестве критерия сложности нечетких систем используется общее количество правил в
базе правил NR, так как этот критерий используется во всех современных работах и позволяет
сравнивать результаты по этому критерию с аналогами.
В качестве критерия интерпретируемости нечеткой системы I( θ ) предложен оригинальный
критерий (подробнее представлен в разделе 2.1.1), так как применяемые другими авторами
критерии фрагментарны и сосредотачиваются только на количественных характеристиках
термов или только на геометрической различимости термов или на слабо обоснованных
представлениях об идеальном распределении с точки зрения интерпретируемости.
Решение проблемы построения Парето-оптимальных нечетких моделей типа синглтонов и
классификаторов питтсбургского типа с разными соотношениями между значениями их
интерпретируемости, точности (ошибки) вывода и сложности основано на оптимизации
заданных целевых функций в многомерном пространстве, координаты которого соответствуют
параметрам нечетких систем:
min( E (θ))
для нечеткой системы типа синглтон


max(Pr(θ))
для питтсбургского классификатора


max( I (θ))

min( NR)


θ min  θ  θ max ,
при ограничениях:

E (θ), I (θ)  ,

NR  {2,3,..., NRmax },


 xU 1i  n Ai ( x)  0,

где E(θ) — ошибка вывода нечеткой системы типа синглтон, Pr(θ) — процент правильной
классификации
питтсбургского
классификатором,
I( θ )—
значение
критерия
интерпретируемости нечеткой системы, NR — количество правил в нечеткой системе, NRmax—
максимально предусмотренное число правил; θmin, θmax — нижняя и верхняя границы параметров
решения соответственно; U — универсум, на котором определена переменная x.
36
Выводы
1. Задача аппроксимации решается системой типа синглтон, которая за счет своих простых
консеквентов более интерпретируема, чем остальные представленные системы, и не требует
сложной процедуры дефаззификации, в отличии от сравнимой по интерпретируемости нечеткой
системы типа Мамдани.
2. В качестве классификатора следует использовать питтсбургский классификатор, так как
он при той же классической структуре правил позволяет добиться большей точности за счет
принципа командной работы. Однако, с точки зрения интерпретируемости веса правил слабо
поддаются интерпретации, поэтому для решения задачи построения Парето-оптимальных
нечетких систем от весов следует отказаться.
3. Среди современных алгоритмов идентификации параметров с точки зрения сочетания
скорости схождения к оптимальному решению и точности убедительно выглядит преимущество
группы алгоритмов пчелиной колонии. Достигается этот эффект благодаря специализации
особей, для решения различных подзадач. В зависимости от требований по скорости/точности
можно подобрать требуемую модификацию.
4. Использование гибридных алгоритмов, сочетающих роевые метаэвристические методы,
статистические операторы с популяционными подходами, и подходы, основанные на
производных, является действенным компромиссом между скоростью сходимости и точностью
найденного результата, для широкого диапазона решаемых задач.
5. Современные подходы построений Парето-оптимальных нечетких систем основаны на
эволюционных и генетических подходах, ими же и ограничены, а существующие альтернативы
среди роевых методов, являются сравнимыми с эволюционными. В это время методы
однокритериальной идентификации параметров активно развиваются, следовательно, разработка
методики сочетающий лучшие стороны многокритериальных эволюционных подходов с
современными однокритериальными методами идентификации параметров может дать результат
превосходящий каждый из подходов в отдельности при решении задачи многокритериальной
оптимизации.
6. Использованные другими авторами критерии интерпретируемости нечетких систем
фрагментарны и сосредотачиваются или на количественных характеристиках термов, или на
геометрической различимости термов на малообоснованных представлениях об идеальном
распределении с точки зрения интерпретируемости. Следует разработать комплексный критерий
интерпретируемости, основанный на положительных свойствах ранее предложенных критериев.
37
Глава 2. Методика и алгоритмы построения Парето–оптимальных нечетких систем
2.1 Методика построения трехкритериальных Парето–оптимальных нечетких систем
Описание методики построения Парето-оптимальных нечетких систем в трех критериях,
позволяющая получить Парето-фронт из нечетких систем представлена ниже.
При формировании методики построения Парето-оптимальных нечетких моделей приняты
соглашения и допущения:
1) каждому решению (нечеткой модели) ставится в соответствие точка в пространстве
изменения значения критериев;
2) множество новых решений генерируется из одного выбранного решения-предка;
3) выбор текущего предка осуществляется на основе меры, значение которой меняется от
одной точки пространства к другой и рассчитывается как алгебраическая сумма приращений
количества элементарных гиперпараллелепипедов (ЭГ) по каждому критерию;
4) формирование новых решений выполняется однокритериальными алгоритмами
генерации структуры и оптимизации параметров нечетких моделей.
Пошаговое описание методики приведено ниже.
Вход. Максимальное заполнение ЭГ; максимальное количество выборов решения в
качестве предка; начальное значение размера ЭГ по каждому критерию; количество итераций.
Выход. Парето-фронт построенных нечетких систем.
Шаг 1. Сформировать ЭГ в пространстве изменения значения критериев.
Шаг 2. Инициализировать решение-предок.
Шаг 3. Создать каждым алгоритмом генерации структуры и оптимизации параметров нечеткой
системы множество решений и поместить их в архив.
Шаг 4. Сформировать список кандидатов на роль текущего предка, выбрав из архива решения,
находящиеся в тех ЭГ, которые не заполнены до максимального значения и у которых не
превышен порог количества выборов в качестве предка.
Шаг 5. Если список кандидатов пуст, то уменьшить размеры ЭГ; обнулить все счетчики,
отвечающие за подсчет количества выборов решений в качестве предка; перейти на шаг 4.
Шаг 6. Выбрать текущего предка по максимальному значению меры суммы приращений
количества ЭГ по каждому критерию; увеличить на единицу счетчик числа выборов у
выбранного предка.
Шаг 7. Если не выполнено заданное число итераций, то перейти на шаг 3.
Шаг 8. Сформировать из архива найденных решений Парето-фронт.
38
Формальное представленние алгоритма, реализующего методику построения Парето–
оптимальных нечетких систем (АРМПОС) в нотации UML представлено в разделе 3.2.
По результатам сравнения алгритмов идентификации параметров нечетких систем,
передставленных в предыдущей главе, в методике и алгоритмах основной упор сделан на роевые
алгоритмы пчелинной колонии ввиду высокой скорости сходимости и сравнимой с аналогами
ошибки вывода полученных нечетких систем. В качестве дополнения используется алгоритмы
адаптивной эволюционной стратегии которые показывают более быструю сходимость в случае
наличии корреляции во входных данных. Для идентификации консеквентов используется метод
наименьших кадратов в виду точности получаемых нечетких системы. Эти и другие алгоритмы,
используемые на третьем шаге методики представлены ниже.

Для идентификации параметров нечетких систем используются следующие алгоритмы,
гарантированно снижающие ошибку: алгоритм адаптивной эволюционной стратегии
(ААЭС) [22], представлен в разделе 2.2.2; метод наименьших квадратов (МНК)[40];
алгоритм пчелиной колонии для идентификации параметров(АПКИП) [4, 5, 6, 7, 11, 13, 14,
15, 25], представлен в разделе 2.2.1.
 Алгоритм пчелиной колонии для генерации правил нечеткой системы используется для
структурной адаптации, указанный алгоритм гарантированно повышает сложность и понижает
ошибку (АПКГП)[13], представлен в разделе 2.2.1.
 Алгоритмы для упрощения базы правил, которые уменьшают сложность, повышают
интерпретируемость и могут как увеличивать ошибку, так и ее уменьшать: алгоритм исключения
терма из базы правил нечеткой системы (АИТ) [17, 18, 83], представлен в разделе 2.1.3; алгоритм
усечения базы правил нечеткой системы (АУБП) [17, 19, 83], представлен в разделе 2.1.2;
алгоритм объединения термов (АОТ) [21, 26, 83], представлен в разделе 2.1.4.
 Алгоритм исключения пересечения наиболее семантически отдаленных термов (АИПТ)
[19, 26, 83], повышающий семантическую интерпретируемость, может увеличивать ошибку,
представлен в разделе 2.1.5.
Используемый в методике критерий интерпретируемости представлен в разделе 2.1.1.
2.1.1 Комплексный критерий интерпретируемости нечетких систем
Кроме количественных характеристик, выраженных в понятии сложность нечеткой
системы, простота восприятия нечеткой системы зависит от разделимости термов, то есть
возможности отличить понятия, присутствующие в правилах нечеткой системы типа синглтон.
Критерии такого типа оценивают геометрическое и лингвистическое разделение термов. Ниже
приведено описание критерия.
39
Геометрический критерий интерпретируемости выражается формулой:
k  v ( j ),l  v ( j )

1 n 
1
I g (θ)    
  GI 3( A kj , Alj ) 
n j 1  v( j )*  v( j )  1 / 2 k 1,l k 1

где n – количество входных переменных; v(j) – количество термов, описывающих j–ю входную
переменную; GI 3( A kj , Alj ) – критерий геометрической различимости двух термов Akj , Alj; Akj – k–
ый терм в j–ой входной переменной.
Остановимся на критерии геометрической различимости термов:
GI 3( A kj , A lj )  3 GIS ( A kj , A lj )  GIC ( A kj , A lj )  GIB ( A kj , A lj )
где
GIS ( A kj , Alj )
– индекс различимости термов на основе площади пересечения,


1, если A kj Alj  

GIS ( A kj , Alj )  1, если S(A kj Alj )< S(A kj

 S(A kj Alj )*gp 
, иначе
 S(A
A
)
kj
lj

где
S(A kj
A lj )
– площадь области пересечения термов;
Alj )*gp 
S(A kj
A lj )
– площадь области
объединения термов; gp – разрешенная доля пересечения по площади, далее в работе gp = 0.4.
Иллюстрация нахождения основных составляющих для вычисления значения критерия
представлена на рисунке 2.1.
Рис. 2.1. Составляющие критерия
GIS ( A kj , Alj )
В примере приняты следующие обозначения:
 в области
A kj
Alj
входят области серого, черного цвета;
 в области
A kj
Alj
входит область черного цвета;
GIC ( A kj , Alj )
– индекс показывающий различимость термов на основе расстояния между их
пиками (точек, в которых значение степени принадлежности терма равна 1):
40


1, если A kj A lj  

GIC ( A kj , A lj )  1, если Pick( A kj )  Pick( A lj ) <  max(j ) - min(j )  /  v(j )-1

Pick( A kj )  Pick( A lj )

, иначе



max(
j
)
min(
j
)
/
v(
j
)-1







где
Pick( A kj )
терма
– значение точки на оси абсцисс, в которой значение степени принадлежности
A kj равна
1; min (j), max (j) – минимальное и максимальное значение j–ой входной
переменной.
GIB( A kj , Alj ) – индекс определяющий различимость термов на основе расстояния взаимного
пересечения термов относительно расстояния между их пиками Pick( A kj )  Pick( A lj ) .


1, если A kj A lj  


GIB( A kj , A lj )  1, если max  Left(A kj ,A lj )  -min  Right(A kj ,A lj )   gpb *  Pick( A kj )  Pick( A lj ) 

gpb *  Pick( A kj )  Pick( A lj ) 

, иначе


 max  Left(A kj ,A lj )  -min  Right(A kj ,A lj ) 
 A kj , если Pick(A kj )  Pick(Alj )
– функция, возвращающая терм из множества
 Alj , если Pick(A kj ) > Pick(Alj )
где Left(A kj ,Alj ) = 
термов, у которого пик левее;
 Alj , если Pick(A kj )  Pick(Alj )
Right(A kj ,Alj ) = 
– функция, возвращающая терм из множества
 A kj , если Pick(A kj ) > Pick(Alj )
термов, у которого пик правее;
gpb – разрешенная доля от расстояния центров относительно расстояния между пиками термов,
далее в работе gpb=0,6;
min ( A kj ) – функция, возвращающая значение левой границы терма
A kj ;
max ( A kj ) – функция, возвращающая значение правой границы терма
A kj ;
Лингвистический критерий интерпретируемости. Интерпретируемость может быть
оценена через семантику, которая подразумевает придание смысла функциям принадлежности,
когда каждому нечеткому терму можно предписать осмысленное лингвистическое значение,
например, «очень малое», «малое», «среднее», «большое», «очень большое».
Критерий штрафует пересечение нечетких термов, удаленных друг от друга в
семантическом пространстве, и вычисляется следующим образом:
41
k  v ( j ),l  v ( j )

1 n 
1
I l (θ)  I g (θ)    
   Lindis( A kj , Alj )  
n j 1  v( j )*  v( j )  1 / 2 k 1,l k 1

1, если A kj A lj = 


где Lindis( A kj , A lj )   Abs(k  l  1)
 – штраф за пересечения «семантически» далеких
1

,
иначе


v( j )


термов, индексы k и l «семантически» упорядочены.
Как известно, в общем случае человеку комфортно воспринимать данные, если число
исследуемых объектов удовлетворяет условию 72 [113], именно за это отвечает индекс Ctf,
выражаемый формулой:
если v( j )  5
1,

1

, если v( j )  5 .
Ctf(v( j ))  
2
v
(
j
)
5


1 
  4 
Комплексный критерий интерпретируемости представлен формулой:
v ( j ) 1 v ( j )

1 n 
Ctf (v( j ))


I (θ)   
GI
3(
A
,
A
)

Linds
(
A
,
A
)
 
kj
lj
kj
lj  ,
n j 1  v( j )  (v( j )  1) / 2 k 1 l  k 1 

где Ctf(v(j))— индекс понятности, основанный на количестве термов, описывающих j-ю входную
переменную.
2.1.2 Алгоритм усечения базы правил нечеткой системы
Вход: таблица наблюдений {xq, tq}, Shrink_rule – количество правил, которые необходимо
исключить, Type – тип функции принадлежности, θ – начальная база правил аппроксиматора.
Выход: θ* – усечённая база правил аппроксиматора.
Шаг 1. Сгенерировать единичный вектор Init_rule_struct размером равным количеству правил в
базе правил θ, Init_rule_structi=1, i=1..| θ.R|.
Шаг 2. Заменить Shrink_rule единиц в начале вектора Init_rule_struct на нули.
Шаг 3. Сгенерировать все различные варианты перестановок с повторением Case_of_rule _struct
из вектора Init_rule_struct методом лексикографического генератора.
Шаг 4. Скопировать θ в θ’.
Шаг 5. Для всех j–х вариантов структуры правил в Case_of_rule_struct делать:
Шаг 5.1. Для всех k–тых элементов структуры Case_of_rule_structj делать:
Шаг 5.1.1. Если Case_of_rule_structjk=0 То θ’.R = θ’.R \ θ’.Rk.
End делать (k).
42
Шаг 5.2. Для всех l–тых термов в θ’ Делать:
Шаг 5.2.1. Если θ’.terml  θ’.Rk . k=1..| θ’.R| То θ’.term = θ’.term \ θ’.terml.
End делать (l).
Шаг 5.3. θ’ =Метод_геометрической_коррекции_параметров_ФП({xq,tq }, θ’).
Шаг 5.4. Case_FSj= θ’.
Шаг 5.5. Рассчитать ошибку для каждого варианта базы
правил Case_FSj,
Error_of_FSj= RMSE({xq,tq}, Case_FSj)).
End делать (j).
Шаг 6. Вернуть такой θ* =Case_FSp, что
p  arg min(Error _ of _ FS p )
.
p
Алгоритм позволяет снизить количество правил в нечеткой базе правил, но при больших
значения Shrink_rule алгоритм практически бесполезен, так как количество вариантов перебора
возрастает в геометрической прогрессии. В этом случае алгоритм можно использовать
итеративно, каждый раз убирая из базы правил определенное количество правил, но при этом
теряется уверенность, что полученная база правил будет лучшей из возможных вариантов. Если
ограничить время исполнения алгоритма в разумных пределах, следует использовать следующие
значения: 1≤Shrink_rule ≤5 при количестве правил в исходной базе правил θ менее 100, и
1≤Shrink_rule ≤3 при количестве правил в исходной базе правил θ менее 1000.
2.1.3 Алгоритм исключения терма из базы правил нечеткой системы
Вход: таблица наблюдений {xq, tq}, Type – тип функции принадлежности, θ – начальная база
правил нечеткой системы, Сuting_term–количество термов которые необходимо удалить из баз
правил.
Выход: θ – усеченная база правил нечеткой системы.
Шаг 1. Сгенерировать единичный вектор Init_term_struct размером равным количеству термов
в базе правил θ, Init_rule_structi=1, i=1..| θ.term|.
Шаг 2. Заменить Сuting_term единиц в начале вектора Init_term_struct на нули.
Шаг 3. Сгенерировать все различные варианты перестановок с повторением Case_of_term_struct
из вектора Init_rule_struct методом лексикографического генератора.
Шаг 4. Скопировать θ в θ’.
Шаг 5. Для всех j–х вариантов структуры термов в Case_of_rule_struct делать:
Шаг 5.1. Для всех k–тых элементов структуры Case_of_rule_structj делать:
Шаг 5.1.1. Если Case_of_term_structjk=0 То θ’.term = θ’.term \ θ’.term k.
End делать (k).
Шаг 5.2. Для всех k–тых правил в θ’ Делать:
43
Шаг 5.2.1. Если θ’.terml  θ’.Rk . l=1..| θ’.term| То θ’.R = θ’.R \ θ’.Rl.
End делать (k).
Шаг 5.3. θ’ =Метод_геометрической_коррекции_параметров_ФП({xq,tq }, θ’).
Шаг 5.4. Case_FSj= θ’.
Шаг 5.5. Рассчитать ошибку для каждого варианта базы
правил Case_FSj,
Error_of_FSj= RMSE({xq,tq}, Case_FSj)).
End делать (j).
Шаг 6. Вернуть такой Case_FSp что
p  arg min(Error _ of _ FS p )
.
p
Алгоритм позволяет исключить термы, минимально повышающие ошибку, однако
исключение термов, как правило, резко уменьшает базу правил. Кроме того, часто исключение
термов создает ситуацию неопределенности, метод геометрической коррекции параметров
конечно, исправляет эту ситуацию, однако, как правило, снижает точность, поэтому
рекомендуется использовать данный алгоритм вместе с алгоритмами параметрической
идентификации нечетких систем.
2.1.4 Алгоритм объединения термов
Вход: {xq, tq} – таблица наблюдений, θ – начальная база правил нечеткой системы,
GI 3( A kj , Alj ) –
критерий геометрической различимости двух термов Akj , Alj .
Выход: θ* – усеченная база правил нечеткой системы.
Шаг 1. Min_index_value=1, keyk=0, keyl=1, keyj=0;
Шаг 2. Для всех j–тых входных переменных делать:
Шаг 2.1. Для всех k–тых термов в базе правил делать:
Шаг 2.1.1. Для всех l>k термов в базе правил делать:
Шаг 2.1.1.1. Если Min_index_value < GI 3(θ.A kj , θ.Alj ) ТО Min_index_value=
GI 3(θ.A kj , θ.Alj ) , keyk=k, keyl=l, keyj=j;
End делать (l);
End делать (k);
End делать (j);
Шаг 3. Создать терм Az,keyj такой что, Pick( A z ,keyj )  (Pick(θ.Akeyk ,keyj )  Pick(θ.A keyl ,keyj )) / 2 ,
min ( A z ,keyj )=(min ( θ.A keyk ,keyj )+min ( θ.Akeyl ,keyj ))/2, max ( A z ,keyj )=(max ( θ.A keyk ,keyj )+max ( θ.Akeyl ,keyj
))/2;
Шаг 4. θ* = θ  Az,keyj;
Шаг 5. Для всех k–тых правил в θ* делать:
44
Шаг 5.1. Если θ*. Akeyk,keyj  θ*.Rk То θ.Rk = θ*.Rk \ θ*.Akeyk,keyj, θ*.Rk  θ*.Az,keyj;
Шаг 5.2. Если θ*.Akeyl,keyj  θ*.Rk То θ*.Rk = θ*.Rk \ θ.Akeyl,keyj, θ*.Rk  θ*.Az,keyj;
Шаг 5.3. Для всех z<k в базе правил θ* делать:
Шаг
Если
5.3.1
θ*.Rk.term=θ*.Rz.term
То
θ*=θ*\θ*.Rk,
θ*.Rz.cons=Метод_ближайшего_соседа({xq, tq}, θ*.Rz.term);
End делать(z);
End делать(k);
Шаг 6. θ = θ \ θ.Akeyk,keyj;
Шаг 7. θ = θ \ θ.Akeyl,keyj;
Алгоритм во время работы может не только объединять термы, но и исключать
противоречивые правила, возникающие в результате объединения (шаг 5.3). Не всегда для
нечетких систем типа синглтон необходимо новое задание консеквента, возможно какой–то из
ранее использованных консевкентов давал меньшую ошибку, или меньшую ошибку может дать
среднее арифметическое значение консеквентов правил, получивших одинаковые антецеденты.
Поэтому рекомендуется использовать данный алгоритм только в комплексе с методом
наименьших квадратов для настройки консеквентов, чтобы сгладить этот негативный эффект.
2.1.5 Алгоритм исключения пересечения наиболее лингвистически отдаленных термов
Вход: θ – начальная база правил нечеткой системы,
Lindis( A kj , A lj ) –
критерий
лингвистической различимости двух термов Akj , Alj .
Выход:
θ*
–
база
правил
нечеткой
системы
с
большей
лингвистической
интерпретируемостью.
Шаг 1. Min_index_value=1, keyk=0, keyl=1, keyj=0;
Шаг 2. Для всех j–тых входных переменных делать:
Шаг 2.1. Для всех k–тых термов в базе правил делать:
Шаг 2.1.1. Для всех l>k термов в базе правил делать:
Шаг 2.1.1.1. Если Min_index_value < Lindis(θ.A kj , θ.Alj ) То
GI 3(θ.A kj , θ.Alj )
, keyk=k, keyl=l, keyj=j;
End делать (l);
End делать (k);
End делать (j);
Шаг 3. LeftTerm= Left( θ.A keyk ,keyj , θ.A keyl ,keyj );
Шаг 4. RigthTerm= Rigth( θ.A keyk ,keyj , θ.A keyl ,keyj );
Min_index_value=
45
Шаг 5. border= (max(LeftTerm)+min(RigthTerm))/2;
Шаг 6. max(LeftTerm)=border;
Шаг 7. min(RigthTerm)=border;
Алгоритм меняет позиции границ пересекающихся термов, наиболее отдаленных в
лингвистическом
смысле,
на
сложность
нечеткой
системы
не
влияет,
повышает
интерпретируемость, незначительно снижая точность нечеткой системы.
2.2 Гибридный численный метод структурной и параметрической оптимизации нечетких
систем
2.2.1 Алгоритмы пчелиной колонии
Алгоритм пчелиной колонии для генерации правил нечеткой системы (АПКГП).
Данный алгоритм служит для формирования базы правил нечеткого классификатора с целью
получить начальную базу правил гарантированно лучше случайного заполнения.
Алгоритм соединяет в себе две концепции поиска решения: пчелы разведчики, используют
методологию случайного поиска, а рабочие пчелы реализуют идею локального поиска,
настраивают антецеденты и консеквенты правила.
Для уменьшения трудоемкости алгоритма было принято решение сократить число
улучшаемых правил на основе их полезности, определяемой путем относительного прироста
числа правильно классифицированных объектов обучающей выборки. Данное решение является
аналогом «танца» пчел в живой природе. После чего из множества лучших решений, полученных
на каждом этапе в пределах данной итерации выбирается наилучшее, которое и будет добавлено
в базу правил.
В данной версии область применения алгоритма ограничена наборами данных, содержащих
целочисленные и вещественные признаки, исключая использование номинальных признаков.
Вход: {xq, tq}– таблица наблюдений, θ – начальная база правил, s – число пчел разведчиков,
o – число рабочих пчел, l – число рассматриваемых правил за лучшим, z – число генерируемых
алгоритмом правил, количество признаков n, mini – минимальное значение j–ой входной
переменной таблицы наблюдения, maxi – максимальное значение j–ой входной переменной
таблицы наблюдения, Type – тип функции принадлежности.
Выход: θ* – расширенная база правил нечеткой системы синглтон.
Алгоритм:
Rscout – множество правил, полученных пчелами разведчиками;
bestscout – лучшее правило по значению полезности из множества Rscout;
46
Rbest_scout_work – множество из o правил, полученных рабочими пчелами при улучшении
правила bestscout;
Rellite – множество из l правил наиболее близких по результату к bestscout из множества
Rscout;
Rellite_workj – множество из o правил, полученных в результате улучшения правила
Rellitej рабочими пчелами, 1< j <l;
Ebase – начальная точность классификации на текущей итерации;
Ebestscout – прирост точности работы классификатора за счет включения bestscout в базу
правил;
Escouti– прирост точности работы классификатора за счет включения Rscouti в базу правил
Rbase, 1<i<s.;
Ebest_scout_worki – прирост точности работы классификатора за счет включения
R_best_scout_worki в базу Rbase, 1<i<o;
Eellite_workji
–
прирост
точности
работы
классификатора
за
счет
включения
Rbest_scout_workji в базу Rbase, 1<j<l, 1<i<o;
Countaddrulle – число добавленных правил в базу правил.
Шаг 1. Скопировать начальную базу правил θ в θ*;
Шаг 2. Вычислить Ebase = E(θ,{1});
Шаг 3. Для каждой i–той пчелы–разведчика, 1<i<s делать:
Шаг 3.1. Для каждого j–го признака делать:
Шаг 3.1.1. Случайным образом задать терм Aij, соответствующий типу функции
принадлежности Type, такой, что левая граница Aij > minj и правая граница Aij < maxj;
End делать (j);
Шаг 3.2. Создать правило
Rscouti: ЕСЛИ x1=Ai1 И x2=Ai2 И x3=A i3 И … И xn=Ain ТО class=, w=1.
Шаг 3.3. Сформировать консеквент правила Rscouti методом ближайшего соседа по
таблице наблюдений {xq, tq};
End делать (i);
Шаг 4. Для каждого i–го разведчика делать:
Шаг 4.1. Формировать базу правил Rtest:= θ  Rscouti;
Шаг 4.2. Вычислить Escouti = E(Rtest,{1}) – Ebase;
End делать (i);
Шаг 5. Найти правило bestscout, удовлетворяющее условию Ebestscout = max (Escout);
Шаг 6. Rellite=;
47
Шаг 7. Сформировать множество правил Rellite, следующим образом
Rscouti Rellite, где
i удовлетворяет условию min ( Ebestscou t - Escout i ) и RscoutiRellite_work, 1<i<s;
1<i<s
Шаг 8. Каждая рабочая пчела i из bestscout методом локального поиска формирует вектор
Rbest_scout_worki. 1<i<o;
Шаг 9. Для каждой i–ой рабочей пчелы делать:
Шаг 9.1. Формировать базу правил Rtest:= θ  Rbest_scout_worki;
Шаг 9.2. Вычислить Ebest_scout_worki = E(θ,{1}) – Ebase;
End делать (i);
Шаг 10. Каждая рабочая пчела i из Rellitej методом локального поиска формирует вектор
Rellite_workji, 1<j<q, 1<i<o;
Шаг 11. Для каждого j–ой правила из Rellite делать:
Шаг 11.1. Для каждой i–ой рабочей пчелы делать:
Шаг 11.1.1. Формировать базу правил Rtest, как результат объединения θ и Rellite_workji;
Шаг 11.1.2. Вычислить Ebest_scout_workji = E(Rtest,{1}) – Ebase;
End делать (i);
End делать (j);
Шаг 12. Поместить в базу θ* правило, соответствующее условию max(Escoutbestscout,
Ebest_scout_work ,Eellite_work);
Шаг 13. Countaddrulle: = Countaddrulle+1, если Countaddrulle ≥ z, то ВЫХОД, иначе шаг 3;
Алгоритм пчелиной колонии для идентификации параметров нечеткой системы
(АПКИП). Алгоритм пчелиной колонии для идентификации параметров нечеткой системы
настраивает антецеденты (ЕСЛИ–части) нечетких правил, оптимизация консеквентов (ТО–
части) выполняется методом наименьших квадратов (МНК) для аппроксиматора или
модификацией алгоритма пчелиной колонии для настройки вектора весов классификатора
(АПКНВК) [13].
Ниже приведен алгоритм оптимизации параметров нечеткой системы.
Вход: Количество итераций IterMax, требуемая точность E, начальная база правил θ , вид
алгоритма формирования популяции Alg, вид алгоритма инициализации нечеткой базы правил
Init .
Выход: θ* оптимизированная база правил.
BS – случайные вектора–решения (нечеткие базы правил) пчел разведчиков.
W – Архив решений.
best – лучший вектор–решение (нечеткая база правил).
48
NW – вектора–решения (нечеткие базы правил), формируемые на основе архива решений,
пчелами–фуражирами.
NB – вектора–решения (нечеткие базы правил), формируемые на основе best–решения,
пчелами–наблюдателями.
Шаг 1. Копирование базы правил θ во множество BS.
Шаг 2. Случайный поиск параметров антецедентов на всей области решений задачи. Найденные
решения сохраняются в BS.
Шаг 3. Оптимизация консеквентов правил k из BS согласно алгоритму МНК.
Шаг 4. Решений в BS алгоритмом отжига. Оставшиеся правила добавляются в W.
Шаг 5. Добыча нектара пчелами–фуражирами — локальный поиск параметров антецедентов на
основе архива W. Сохранение решений в NW.
Шаг 6. Добыча нектара пчелами–наблюдателями — локальный поиск параметров антецедентов
на основе лучших из архива W и best–решения. Сохранение решений в NB.
Шаг 7. Формирования нового архива решений W алгоритмом Alg из векторов NW, NB, W.
Шаг 8. Если точность E достигнута или превышено количество итераций IterMax То поиск
лучшего решения в W, сохранение его как θ*, ВЫХОД, иначе переход на шаг 2.
В качестве алгоритма Alg можно использовать любой метод селекции из генетического
алгоритма.
2.2.2 Алгоритм адаптивной эволюционной стратегии
Эволюционная стратегия — эвристический метод оптимизации в разделе эволюционных
алгоритмов, основанный на адаптации и эволюции. Стратегия основана на механизмах
естественного отбора и наследования. В ней используется принцип выживания наиболее
приспособленных особей. Преимущества алгоритма перед другими методами оптимизации
заключаются в параллельной обработке множества альтернативных решений [68].
Основным понятием в алгоритме эволюционной стратегии является понятие особи. Особи,
входящие в популяцию, в алгоритме представляются в виде набора из четырех параметров:
значение фитнес–функции, шаг мутации, угол ротации и хромосома [68].
Хромосома представляет собой упорядоченный набор генов – закодированных параметров
задачи. В нашем случае ген кодирует один параметр функции принадлежности из θ или значение
консеквента. Хромосома соответствует отдельному потенциальному решению задачи.
Рассмотрим алгоритм эволюционной стратегии для идентификации параметров нечеткого
аппроксиматора.
49
Вход: Начальный вектор параметров нечеткой системы θ, количество входных переменных
в модели n, таблица наблюдений {xq,tq}, размер популяции cu, количество родителей µ,
количество наследников λ, тип алгоритма инициализации ti, тип алгоритма скрещивания tc, тип
алгоритма мутации tm, количество итераций алгоритма iter.
Выход: Оптимизированный вектор параметров θ*.
RGauss(m,) – Генератор случайных чисел по нормальному закону распределения с средним
m и СКО равным .
Precission _child – Вектор долей правильной классификации для потомков.
Precission _parent – Вектор долей правильной классификации для родителей.
Temp_popul – Набор из родителей и потомков.
Error – Вектор ошибок аппроксимации единый для родителей и потомков.
best_current– лучшая особь на данной итерации.
best – лучшая особь за все итерации.
it – Количество выполненных итераций.
Шаг 1. Генерация начальной популяции U. Начальная популяция задается в соответствии с
алгоритмом инициализации ti U=init(θ,n, {xq,tq},ti), it=0, best=.
Шаг 2. Отбор родителей. Для получения одного потомка сначала происходит случайный отбор
двух родителей с вероятностью 1/µ для каждого: P= pick(U, µ).
Шаг 3. Скрещивание в соответствии c алгоритмом tc. Результатом данного шага является
генерация λ потомком С из µ родителей P. Рекомбинация реализуется для всей строки–
хромосомы, а так же для шага мутации и угла ротации: C=crossover(P,tc, λ).
Шаг 4. Мутация в соответствии с алгоритмом tm: C*=mutate(С,RGauss(0,1), tm);
Шаг 5. Расчет ошибки по формуле (1.3): Precission_childi=E(C*i. θ), Precission_parentj=E(Pj. θ),
Precission = Precission_child Precission_parent, Temp_popul=C*P.
Шаг 6. Селекция. В новую популяцию отбираются особи, у которых наименьшая ошибка
аппроксимации:U=select(Temp_popul, Precission,cu).
Шаг 7. Сохранение текущей лучшей особи c минимальной E(Q,CF) в best_current.
Шаг 8. Сохранение лучшей за все итерации: Если E(best.Q)<E(best_current.Q) то best =
best_current.
Шаг 9. it =it+1; Если it>=iter То Возврат best.Q Иначе переход на шаг 2.
На этапе генерации начальной популяции в данной работе используются два алгоритма:
случайная генерация, ограниченная генерация.
Особенностью случайной генерации начальной популяции является то, что значение
каждого гена хромосомы генерируется на основе равномерного распределения в заданных
50
пределах по каждой входной переменной. Для более быстрого достижения хороших результатов
в начальную популяцию добавляется особь с хромосомой, полученной от алгоритма
субъективного разделения для аппроксимации или алгоритма на основе обучающей выборки для
классификации.
Особенностью ограниченной генерации начальной популяции является то, что значение
каждого гена хромосомы формируется на основе базы правил, полученной от алгоритма
субъективного распределения путем его случайного равномерного отклонения от значения в базе
правил не более чем на 10% от масштаба входной переменной.
Алгоритм случайной инициализации.
Вход: Начальный вектор параметров нечеткой системы θ, таблица наблюдений {xp,tp},
размер популяции cu.
Выход: Начальная популяция U.
Rand() – генератор равномерно распределенных случайных чисел;
size_populate – количество сгенерированных особей;
scatter – разброс переменной, масштаб;
min – минимальное значение переменной.
Шаг 1. Инициализация параметра size_populate=0.
Шаг 2. Инициализация среднеквадратического отклонения шага мутации особей.
Шаг 2.1 По каждой входной j–той переменной делать:
Шаг 2.1.1 Usize_populate .step_mutatej=0.05* scatter(xqj)*Rand().
End делать (j)
Шаг 3. Инициализация угла ротации особей.
Шаг 3.1 По каждой входной j–той переменной делать:
Шаг 3.1.1 Usize_populate .angle_rotatej=–π+Rand()*2*π.
End делать (j)
Шаг 4. Инициализация термов хромосомы особи.
Шаг 4.1.По каждой j–ой входной переменной делать:
Шаг 4.1.1.По каждому i–тому терму хромосомы делать:
Шаг 4.1.1.1.По каждому z–тому параметру терма делать: Usize_populate.Q.termijz=
min(xqj)+scatter(xqj)*Rand().
End делать (z)
End делать (i)
End делать (j)
Шаг 5. Инициализация консеквентов хромосомы особи.
Шаг 5.1.По каждому k–тому консеквенту хромосомы делать:
51
Usize_populate. Q.konsk = min(tqk)+scatter(tqk)*Rand().
End делать (k)
Шаг 6. Если size_populate==0 То Usize_populate. θ = θ.
Шаг 7. size_populate = size_populate+1. Если size_populate< cu То переход на шаг 2 Иначе
ВЫХОД.
Алгоритм ограниченной инициализации.
Вход: Начальный вектор параметров нечеткой системы Q, таблица наблюдений {xq,tq},
размер популяции cu.
Выход: Начальная популяция U.
Rand() – Генератор случайных чисел по равномерному закону распределения.
size_populate – количество сгенерированных особей.
scatter – разброс переменной, масштаб;
min – минимальное значение переменной.
Шаг 1. Инициализация параметра size_populate=0.
Шаг 2. Инициализация среднеквадратического отклонения шага мутации особей.
Шаг 2.1 По каждой входной j–той переменной делать:
Шаг 2.1.1 Usize_populate .step_mutatej=0.05·scatter(xqj)*Rand().
End делать (j)
Шаг 3. Инициализация угла ротации особей.
Шаг 3.1 По каждой входной j–той переменной делать:
Шаг 3.1.1 Usize_populate .angle_rotatej=–π+Rand()*2*π.
End делать (j)
Шаг 4. Инициализация термов хромосомы особи.
Шаг 4.1.По каждой j–ой входной переменной делать:
Шаг 4.1.1.По каждому i–тому терму хромосомы делать:
Шаг 4.1.1.1.По каждому z–тому параметру терма делать: Usize_populate.Q.termijz= Q.termijz
+0,1*scatter(xqj)*[Rand()–0,5].
End делать (z)
End делать(i)
End делать(j)
Шаг 5. Если size_populate==0 То Usize_populate. θ = θ.
Шаг 6. size_populate = size_populate+1. Если size_populate< cu То переход на шаг 2 Иначе
ВЫХОД.
На этапе скрещивания родительские пары участвуют в создании потомков. Две пары
родителей (особи) выбираются случайным образом. В результате скрещивания каждая пара
52
родителей дает одного потомока. В данной работе используются унифицированное и
многоточечное скрещивание.
Особенностью унифицированного скрещивания является то, что значение каждого гена в
хромосоме, шага мутации и угла ротации потомка определяется случайным образом из
соответствующих генов и шага мутации родителей. Для этого вводится некоторая величина
0<p0<1, и если случайное число больше p0, то на n–ю позицию потомка попадает n–й ген второго
родителя. В противном случае к потомку попадает ген первого родителя. Аналогично такая
операция проводится для шага мутации.
Особенностью многоточечного скрещивания является то, что значение каждого гена в
хромосоме, шага мутации и угла ротации потомка определяется значением генов, шагов мутации
и углов ротации родителей, а также четным или нечетным является интервал, которому
принадлежит ген, шаг мутации и угол ротации. Изначально формируются фенотипы потомка и
родителей, как укрупненная хромосома, содержащая гены, шаги мутации и углы ротации для
потомка или родителей. Далее фенотип потомка делится заранее известным количеством точек
на интервалы случайным образом. Значение элемента фенотипа потомка получается из фенотипа
первого родителя, если элемент принадлежит нечетному интервалу или от второго родителя,
если элемент принадлежит четному интервалу.
Алгоритм унифицированного скрещивания.
Вход: Количество потомков λ, вероятность скрещивания pc, вектор родителей P
Выход: Вектор потомков С
Rand() – Генератор случайных чисел по равномерному закону распределения.
count_childs– количество сгенерированных потомков.
Шаг 1. Инициализация параметра count_childs=0.
Шаг 2. Случайный отбор двух родителей first_parent, second_parent:
first_parent=
RInteger(P), second_parent= RInteger(P).
Шаг 3. По каждому i–тому шагу мутации делать:
Шаг 3.1. Генерируем число p в диапазоне [0;1]: p=Rand().
Шаг
3.2.
Если
p>pc
То
Сcount_childs.mutate_stepi=first_parent.mutate_stepi
Иначе
Сcount_childs.mutate_stepi=second_parent.mutate_stepi.
End делать (i)
Шаг 4. По каждому j–тому параметру вектора хромосомы особи делать:
Шаг 4.1. Генерируем случайно число p в диапазоне [0;1]: p=Rand().
Шаг 4.2. Если p>pc то Сcount_childs.θj=first_parent.θj иначе Сcount_childs.θj=second_parent.θj.
End делать (i)
53
Шаг 5. count_childs= count_childs+1. Если count_childs<λ То переход на шаг 2 Иначе ВЫХОД.
Алгоритм многоточечного скрещивания.
Вход: Количество потомков λ, количество точек скрещивания cp, вектор родителей
Выход: Вектор потомков С
count_childs– количество сгенерированных потомков.
Шаг 1. Инициализация параметров count_childs=0.
Шаг 2. Случайный отбор двух родителей first_parent, second_parent:
first_parent=
RInteger(P), second_parent= RInteger(P).
Шаг
Сформировать
3.
фенотипы
родителей
first_parent,
second_parent:
first_parent.rp=first_parent.mutate_step  first_parent.θ; second_parent.rp=
second_parent.mutate_step  second _parent. θ
Шаг 4. Разбить фенотипы случайным образом на cp интервалов.
Шаг 5. По каждому i–тому интервалу фенотипа делать:
Шаг
5.1.
Если
интервал
cp
нечетный
То
Сcount_childs.rpi=first_parent.rpi
Иначе
Сcount_childs.rpi=second_parent.rpi.
End делать (i)
Шаг 6. count_childs= count_childs+1. Если count_childs<λ То переход на шаг 2 Иначе ВЫХОД.
В работе используется мутация на основе среднеквадратического отклонения шага и угла
ротации. Особенностью данной мутации является то, что она начинается с обновления шага
мутации и угла ротации на основе предыдущих значений и нормального (Гауссового)
распределения. Затем рассчитывается матрица ковариации между шагами мутации и углами
ротации, элементы матрицы подвергаются изменению в соответствии с нормальным
распределением. И только после этого производится мутация хромосомы на основе предыдущих
значений и измененных диагональных элементов матрицы ковариации.
Мутация на основе среднеквадратического отклонения шага и угла ротации.
Вход: С – множество потомков после скрещивания, параметры обновления шага мутации
tau1, tau2, параметр обновления угла ротации β.
Выход: Мутировавшие потомки С*.
count_mutate – количество мутировавших потомков.
Шаг 1. Инициализация параметров count_mutate=0.
Шаг 2. Обновление шага мутации
Шаг 2.1.По каждой i–той входной переменной делать:
C*count_mutate.mutate_stepi=C*count_mutate.mutate_stepi* Exp(tau1*RGauss(0,1)+tau2*RGauss(0,1)).
End делать (i)
54
Шаг 3. Обновления угла ротации
Шаг 3.1. По каждой j–той входной переменной делать:
C*count_mutate.angle_rotatei=C*count_mutate.angle_rotate i+β* RGauss(0,1).
End делать (i)
Шаг 4. Случайный вектор на основе матрицы ковариации V=cov(C*count_mutate.mutate_step,
C*count_mutate.angle_rotate)* RGauss(0,1)
Шаг 5. Мутация хромосомы особи.
Шаг 5.1.По каждой j–той входной переменной делать:
Шаг 5.1.1.По каждому i–тому терму хромосомы делать:
Шаг
5.1.1.1.По
каждому
z–тому
параметру
терма
делать:
C*count_mutate.Q.termijz=Ccount_mutate.Q.termijz+Vjj.
End делать (z)
End делать (i)
End делать (j)
Шаг 5.2. По каждому k–тому консеквенту хромосомы делать:
C*count_mutate.Q.konsk=RGauss(Ccount_mutate.Q.konsk,Ccount_mutate.Q.konsk*0,1).
End делать (k)
Шаг 6. count_mutate= count_mutate+1; Если count_mutate<|C*| То переход на шаг 2 Иначе
ВЫХОД.
2.2.3. Гибридный численный метод идентификации структуры и параметров на основе
островной модели
Гибридизация указанных алгоритмов проводится с помощью схемы, аналогичной
островной модели параллельной реализации генетического алгоритма [125]. Кроме ранее
описанных алгоритмов для настройки консвеквентов правил используется метод наименьших
квадратов (МНК) [40]
Гибридный метод идентификации структуры и параметров на основе островной
модели (ГМИСПОМ).
Вход: АПКГП(algorithms1), АПКИП(algorithms2), ААЭВ(algorithms3), МНК(algorithms4),
count_recvalg – количество принимаемых внешних лучших баз правил алгоритмом alg,
count_sentalg – количество отправляемых лучших баз правил алгоритмом alg, θ – начальная база
правил нечеткого аппроксиматора.
Выход: θ* – оптимизированная база правил нечеткого аппроксиматора.
Ocean – упорядоченное множество промежуточных баз правил;
55
maxsize_Ocean – максимальная мощность множества Ocean.
Шаг 1. Инициализация maxsize_Ocean = max(count _ recvalgorithms i ) ;
1i |algorithms |
Шаг 2. Запуск на исполнение каждого алгоритма из algorithms с копией θ в качестве параметра.
Шаг 3. Пока запущен хотя бы один алгоритм из algorithms делать:
Шаг 3.1. Если algorithmsi готов отправить базы правил То Ocean= Ocean
algorithmsi.sent(count_sentalgorithmsi).
Шаг 3.2. Если |Ocean|>maxsize_Ocean То из Ocean исключаются |Ocean| - maxsize_Ocean
баз правил с наибольшей ошибкой аппроксимации.
Шаг 3.3. Если algorithmsi готов принимать внешние базы правил То algorithmsi.recv (Ocean,
count_recvalgorithmsi);
End делать;
Шаг 4. θ* = arg
max
1i|algorithms |
(algorithmsi .getBest ; Ocean) .
2.3 Алгоритм генерации нечетких классификаторов на основе экстремумов таблицы
наблюдений
Алгоритм генерации нечетких классификаторов на основе экстремумов таблицы
наблюдений (АГНСЭТН) [13] предназначен для формирования начальной базы правил,
содержащей по одному правилу на каждый класс. Кроме того, алгоритм устраняет ненакрытые
термами области изменения входных переменных.
Вход: Число классов m, таблица наблюдений {xq, tq}, Type – тип функции принадлежности.
Выход: Начальная база правил классификатора θ.
Шаг 1. θ = ;
Шаг 2. Для каждого k–го класса делать:
Шаг 2.1. Для каждого j–го признака делать:
xqj ) ;
Шаг 2.1.1. Поиск min classkj  min(
q
xqj ) ;
Шаг 2.1.2. Поиск max classkj  max(
q
Шаг 2.1.3. Создание терма Akj типа Type, накрывающего интервал [minclasskj, maxclasskj];
End делать (j);
Шаг 2.2. Создание правила Rk: ЕСЛИ x1=A k1 И x2=A k2 И x3=A k3 И … И xn=A kn ТО class=ck,
w=1;
Шаг 2.3. θ:= θ  Rk;
56
End делать (k);
Шаг 3. По каждому j–ому признаку делать:
Шаг 3.1. Проверка на наличие ненакрытых термом областей;
Шаг 3.2. Если ненакрытые места найдены То
Шаг 3.2.1. Ближайший терм слева, передвигает свою правую границу на размер
незаполненного расстояния;
Шаг 3.2.2. Ближайший терм справа, передвигает свою левую границу на размер
незаполненного расстояния;
End Если;
End делать (j).
На рисунке 2.1а приведены результаты работы алгоритма инициализации после шага 2.
Здесь рассматривается три класса, заданные на признаке xi треугольными функциями
принадлежности. Интервал изменения входной переменной xj – [minj, maxj]. Термами покрыт не
весь интервал изменения, области [maxclass3j, minclass1j] и [maxclass1j, maxj] не покрыты. На
рисунке 2.1б представлен итог работы алгоритма для признака xj.
A(xj)
a)
1
class 3
class 2
class 1
0
minj
A(xj)
maxclass3j
minclass1j
maxi
xj
maxclass1j
б)
1
0
minj
xj
maxj
Рис. 2.1. Демонстрация работы алгоритма инициализации
57
Данный алгоритм всегда строит базу правил, которая содержит по одному правилу на
каждый класс, если необходимо увеличить базу правил с целью повышения точности, ее можно
дополнить, применив алгоритм АПКГП.
Выводы
1. Предложена методика построения трехкритериальных Парето-оптимальных нечетких
систем с возможностью в автоматическом режиме строить нечеткие системы, используя методы,
позволющие изменять количество правил, количество термов, параметры термов нечеткой
системы. Методика
использует
элементарные гиперпараллепипеды для
равномерного
распределения результатов вдоль каждого из критериев с возможностью дополнить ее, внедряя
различные однокритериальные алгоритмы идентификации параметров.
2. Предложенная
интепретируемости,
методика
объединяющий
использует
оригинальный
достоинства
и
комплексный
исключающий
критерий
недостатки
ранее
предложенных критериев.
3. Предложен гибридный численный метод, позволяющий производить идентификацию
структуры и параметров нечеткой системы, совмещая положительные черты входящих в него
алгоритмов по производительности и скорости сходимости, уменьшая возможность каждого из
входящих в него алгоритмов застрять в локальном минимуме.
4. Предложен алгоритм генерации нечетких классификаторов на основе экстремумов
таблицы наблюдений, позволяющий создавать классификаторы с количеством правил всегда
равным количеству классов, а количество термов, равное количеству классов, умноженному на
количество входных признаков.
Глава 3. Программный комплекс
Для программной реализации предложенных алгоритмов, численного метода и методики
требуется реализовать составное программного обеспечение в виде комплекса программ. Цикл
разработки предложенного программного комплекса соответствует одной из популярных среди
крупных компаний методологии Rational Unified Process (RUP), лучшие практики которой
описаны в документации [71]. В ходе работы по методологии RUP все подлежащие разработке
документы, модели, диаграммы предваряющие процесс разработки программного обеспечения
или итерации сопровождения программного обеспечения называются артефактами. Первым
артефактом, требуемым для создания в данной методологии, является модель предметной
области.
58
3.1 Формализация предметной области
Формализация предметной области служит для анализа терминов, ключевых слов и
выявления из них кандидатов на роль программных классов. Согласно RUP, она выполняется в
виде модели в нотации UML, подробная информация представлена в статье [72]. На рисунке 3.1
представлена модель предметной области с достаточной детализацией для представления
основных взаимодействий объектов разрабатываемого программного комплекса в объектном
стиле проектирования.
class Domain Concept
Алгоритм построения
парето оптимальных
систем
Использует
Использует
Метрики
Использует
Алгоритмы
оптимизации базы
правил
Алгоритмы генерации
Содержат
Содержат
Содержат
Содержат
Содержат
Алгоритмы
индентификации
Формирует
по точности
Содержат
Содержат
Используют
по сложности
Алгоритмы
идентификации
структуры
Алгоритмы
идентификации
параметров
Содержат
Используют
Алгоритмы
упрощения
по интерпретируемости
Оценивают
Оценивают
Использует
Изменяют
Оценивают
Алгоритмы повышения
интерпритируемости
Описывает закономерности в
База правил
Таблица
наблюдений
Содержит
Управляет
Нечеткие системы
Нечеткое правило
Содержит
Антецидент
Содержит
Включают
Консеквент
Синглтон
Включают
Питтсбургский
классификатор
Рис. 3.1. Модель предметной области
3.2 Проектирование программного комплекса
Следующим
этапом
является
проектирование
основных
сервисов
(функций)
разрабатываемой системы для пользователей и внешних приложений. Для этого были выявлены
один пользователь «Эксперт» и две модели внешних систем: «Интегрированная система
59
построения нечетких систем» и «Эксплуатационная система». Эксперту предоставляются все
возможности программного комплекса по построению нечетких систем и конфигурирования
параметров в графическом режиме. Для интегрированной системы построения нечетких систем
необходимо предоставить возможности загрузки своих данных, построения нечетких систем и
выгрузки полученных нечетких систем в фоновом режиме. В эксплуатационной системе главным
является обеспечение процесса нечеткого вывода по ранее составленным нечетким системам для
новых входных данных с предоставлением альтернативного графического интерфейса.
Результатом проектирования в RUP является диаграмма прецедентов и дополнительные UML
диаграммы, детализирующие сложные компоненты системы. На рисунке 3.2 представлена
диаграмма прецедентов.
uc UseMixCore
Задание порядка и
схемы выполнения
алгоритмов
Выбор нечеткой
системы
«Extend»
Работа с
графическим
интерфейсом
Эксперт
«include»
Представления
результатов
«include»
«include»
Установка
параметров
«include»
Интегрированная
система
построения
нечетких систем
Построение
интерпретируемых
нечетких систем
«include»
Пакетное создание
нечетких систем
Получение таблиц
наблюдения
«include»
«include»
Отправка построенных
нечетких систем
Нечеткое
моделирование
«include»
Использование
нечеткой системы
Эксплуатационная
система
«include»
Загрузка таблицы
наблюдения
Рис. 3.2. Диаграмма прецедентов
После анализа реализуемых алгоритмов, дальнейшей детализации подлежит методика
построения Парето–оптимальных нечетких систем и гибридный алгоритм идентификации
структуры и параметров на основе островной модели.
60
Для детализации методики построения Парето–оптимальных нечетких систем введем
следующие обозначения:
 AlgIter – количество итераций алгоритма;
 PrecisionStep – размер ЭГ по точности;
 ComplexityStep – размер ЭГ по сложности;
 InterpretingStep – размер ЭГ по интерпретируемости;
 MaxRootCounter – максимальное использование нечеткой системы в качестве предка
MaxRootCounter;
 DividerStep – коэффициент уменьшения размера ЭГ;
 NonDetermTries – число повторов алгоритмов параметрической идентификации.
Алгоритм реализующий данную методику (АРМПОС) представлен на рисунке 3.3.
61
act ThreeCriteriaParetoOptimization
Начало
Tetta
Очистить Q, очистить PF., Iter
=0, очистить NextRoot,
очиститьTabuRoot, очистить
StepArchiv e.Clear, Root =Tetta
[Tries > TryBeforeDivideStep]
WriteVariable
Tries =0
[Иначе]
PrecisionStep = PrecisionStep/ Div iderStep,
ComplexityStep= ComplexityStep/ Div iderStep,
InterpretingStep=InterpretingStep/Div iderStep
(::)
WriteVariable
i=0
i=i+1
(::)
StepArchiv e.включить(АИТ (Root))
StepArchiv e.включить(АУБП (Root))
StepArchiv e.включить(АПКИП(Root))
StepArchiv e.включить(АОТ (Root))
StepArchiv e.включить(ААЭС(Root))
StepArchiv e.включить(АИПТ (Root))
[Иначе]
StepArchiv e.включить(АПКГП(Root))
[i< NonDetermTries]
WriteVariable
j =0, nr=0
[j<StepArchive.Size]
j =j +1
(::)
[TabuRoot.Содержит(StepArchive[j])]
[nr=0]
Распределить по ЭГ(PrecisionStep, ComplexityStep, InterpretingStep)
[Ес ли количес тво в том же ЭГ(StepArchive[j]) < макс имального_заполнения_ЭГ]
j =j +1
(::)
WriteVariable
s=0
NextRoot.исключить по условию(x=>x.идентичная точность, сложность,
интерпретируемость(StepArchiv e[j ]) )
[Иначе]
[Иначе]
[s<NextRoot[s]]
[Иначе]
GoodsNextRoot[s] =сумма приращения в
ЭГ(NextRoot[s],Root)
s=s+1
(::)
nr++,
NextRoot.включить(StepArchiv e[j ])
Root = NextRoot[argmax(GoodsNextRoot)]
NextRootCounter[argmax(GoodsNextRoot)]=NextRootCounter[argmax(GoodsNextRoot)]+1;
(::)
[NextRootCounter[argmax(GoodsNextRoot)] >MaxRootCounter ]
[ Иначе]
Q.включить(StepArchiv e)
TabuRoot.исключить(NextRoot[argmax(GoodsNextRoot)])
NextRootCounter.исключить(NextRootCounter[argmax(GoodsNextRoot)])
StepArchiv e.Clear
[Iter < AlgIter]
Iter=Iter+1
(::)
NextRoot.исключить(NextRoot[argmax(GoodsNextRoot)])
PF = SelectNonDominate(Q)
Конец
Рис. 3.3. Диаграмма последовательности алгоритма АРМПОС
Для детализации алгоритма, реализующего гибридный метод идентификации структуры и
параметров на основе островной модели (ГМИСПОМ), лучше воспользоваться диаграммой
последовательности, так как алгоритм содержит небольшое число взаимодействующих объектов
62
различной природы. Моменты и порядок взаимодействия входящих в него алгоритмов,
отвечающих за успешное выполнение гибридного алгоритма, зависит от многих факторов,
диаграмма
показывает
последовательности,
частный
случай
последовательности
описывающая гибридный
выполнения.
алгоритм идентификации
параметров на основе островной модели, представлена на рисунке 3.4.
Диаграмма
структуры
и
63
sd IslandsSequence
АПКГП
АПКИП
ААЭВ
МНК
Ocean
*Выполнение
итераций(z)
sent(count_sent,АПКГП) :
Базы правил
*Выполнение
итераций(x)
*Выполнение
итераций(с)
Оптимизация()
*Выполнение
итераций(с)
Оптимизация()
*Выполнение
итераций(z)
sent(count_sent,АПКИП) :
Базы правил
sent(count_sent,ААЭВ) :Базы
правил
sent(count_sent,МНК) :
Базы правил
Sort()
*Выполнение
итераций(x)
recv(count_recv,АПКГП)
put() :Базы правил
*Выполнение итераций(z)
recv(count_recv,АПКИП)
put() :Базы правил
recv(count_recv,ААЭВ)
put() :Базы правил
sentLast(сount_sent,АПКГП) :
Базы правил
Завершение()
sentLast(сount_sent, АПКИП) :Базы правил
Завершение()
sent(count_sent,ААЭС) :Базы правил
Завершение()
sent(count_sent,МНК) :Базы правил
Завершение()
Отбор лучшей базы правил() :База правил
Рис. 3.4. Диаграмма последовательности, описывающая алгоритм, реализующий ГМИСПОМ
64
3.3 Выбор средств разработки
Определим список критериев выбора средства разработки в порядке приоритетности:
1) скорость работы разработанного приложения, критерий обусловлен высокими
вычислительными требованиями реализуемых алгоритмов и длительностью их выполнения;
2) скорость разработки, критерий актуален, так как из множества средств разработки
приложений для научных целей большая часть требует достаточно много времени от
разработчика на реализацию. Коллектив разработчиков жестко ограничен по срокам и по
количеству вовлеченного персонала, что делает этот критерий актуальным;
3) возможность сопровождения кода, данный критерий требуется ввиду того, что
разрабатываемое решение включает универсальную методику, которая может быть дополнена
новыми алгоритмами идентификации параметров, для этого необходима реализация механизма
программных интерфейсов и методов расширения библиотек динамической компоновки, без
доступа к их исходному коду;
4) параллельные вычисления, данный критерий усиливает требования первого критерия
для
повышения
производительности.
Эффективным
направлением
повышения
производительности является учет архитектурных особенностей многоядерных современных
процессоров. Кроме того, параллельной реализации требуют часть алгоритмов, такие как
алгоритм АРМПОС и гибридный метод идентификации структуры и параметров на основе
островной модели;
5) переносимость, этот критерий обусловлен тем, что разрабатываемый программный
комплекс проектируется с возможностью быть частью интегрированной системы, которая может
быть реализована на другом языке программирования и работать в другой операционной
системе.
Для оценки современных средств по первому критерию обратимся к независимым тестам в
статьях [41-43]. К сожалению, более новых исследований нет, так как достаточно сложно
проводить тесты на различных по языку средствах разработки. В статьях показано превосходство
С++ и подобных языков по скорости построенных приложений их компиляторами в различных
задачах. По совокупности тестов лидирующие позиции занимает C# (.Net) находясь на вторых и
третьих местах в большинстве тестов. В сравнение не входят лидеры по производительности
assembler и FORTRAN, однако данные языки и среды не проходят ни по второму, ни по третьему
критерию.
65
По оценке скорости разработки стоит выделить такие современные языки и средства, их
реализующие как С++, lisp, java, Python, Perl, C#, Delphi.
Возможности по сопровождению кода требуют ужесточения синтаксиса языка, легкости
следования выбранной парадигме программирования. Задача сопровождения и расширения вне
исходных кодов требует или затратного по времени реверс инжиниринга или подробного
документирования интерфейсов. В этом плане рекомендуется использовать языки C#, Java, Ruby,
PHP, Qt/C++, Delphi, реализующие парадигму отражения (Reflection) [92]. Данная парадигма
позволяет использовать специальные методы расширения к существующим классам без доступа
к исходным кодам.
Реализация параллельных вычислений в большинстве средств разработки основана на
прямом вызове API операционной системы, что часто нарушает целостность стиля разработки,
поэтому в рассмотрении стоит оставить среды, в которых есть и доступ к функциям API ОС и
собственные средства или качественное представление вызовов API ОС, не нарушающее общего
стиля программирования, принятого в данном языке. Сильные позиции по этому критерию
занимают специализированные языки, например, Erlang, но широкого распространения они не
получили. Среди популярных стоит выделить C#, Java, Ruby за соблюдение единства разработки
в однопоточных и многопоточных режимах.
Несомненным лидером по переносимости является Java из-за широкого распространения
виртуальной
интерпретирующей
системы
во
множестве
архитектур.
Далее
следуют
интерпретируемые языки вида PHP, Perl, Python, Ruby, но основной набор функций рассчитан на
разработку веб приложений. Затем идут языки Qt/C++, C#, которые требуют перекомпиляции с
другими заголовочными файлами или установки виртуальных машин, имеющих различный
набор реализованных функций.
Суммируя оценки по всем критериям, решено использовать язык С# и среду разработки
Visual Studio 2010 за стабильную высокую скорость получаемого приложения, высокую скорость
разработки, полную поддержку парадигмы объектно-ориентированного программирования,
поддержку парадигмы отражения за счет возможности расширения функциональности, быструю
возможность реализовать параллельные вычисления и возможность переноса полученного
приложения с небольшими изменениями в коде.
3.4 Описание и структура программного комплекса MixCore
Название программного комплекса обусловлено смешением множества отдельных
компонентов, нечетких систем, интерфейсов взаимодействия с внешними системами и
пользователями.
66
Программный комплекс реализует нечеткие системы типа синглтон и питтсбургский
классификатор в виде набора общих компонентов, которые служат основой для алгоритмов
структурной, параметрической оптимизации, алгоритмов оптимизации базы правил нечетких
систем и алгоритма, реализующего методику построения Парето–оптимальных нечетких систем.
Общая диаграмма компонентов представлена на рисунке 3.5.
cmp Fuzzy_system_component
Fuzzy_Abstract
Approx_Singletone
+ Fuzzy_System
+ Knowledge_base_Rules
+ Rule
+ sample_set
+ Term
FrontEnd_Construction
+ a_Fuzzy_System
+ a_samples_set
+ ARule
+ init_fuzzy_system(int) :IFuzzy_System_FrontEnd
«property»
+ AllTypesFuzzySystem() :object[]
+ Knowlege_base_ARules
+ Null_conf_for_all
«abstraction»
+ conf
+ add_generators
+ init
+ learn_algorithm
+ UFS
«abstraction»
Fuzzy_FrontEnd
+ PittsburghClassifier_FrontEnd
+ Singletone_FrontEnd
+ IFuzzy_System_FrontEnd
«enumeration»
Type_Term_Func_Enum
Class_Pittsburgh
+ c_Fuzzy_System
+ c_samples_set
+ CRule
+ Knowlege_base_CRules
Треугольник = 0
Гауссоида = 1
Парабола = 2
Трапеция = 3
+ add_generators
+ learn_algorithm
+ UFS
«use»
Object
Member_Function
+ Count_Params_For_Term(Type_Term_Func_Enum) :int
+ Func(int, double[], double, double[]*) :double
+ ToString(Type_Term_Func_Enum) :string
Рис. 3.5 Диаграмма компонентов программной системы обучения
Ниже приведено описание каждого из представленных компонентов.
Fuzzy_Abstract – набор абстрактных классов,
определяющий систему вывода
(Fuzzy_System), базу правил (Knowledge_base_Rules), правила (Rule) и множество термов (Term),
а так же файлы-хранилища настроек алгоритма генерации правил и алгоритма оптимизации базы
правил (Fuzzy_Abstract.conf).
Approx_Singletone представляет собой нечеткую систему типа синглтон. В нем определены
интерфейсы алгоритмов инициализации правил (Approx_Singletone.init), алгоритмов генерации
правил (Approx_Singletone.add_generators), а также алгоритмы параметрической оптимизации
(Approx_Singletone.learn_algorithm); для хранения и передачи реализуется представление
нечеткой системы в виде UFS.
Class_Pittsburgh
представляет
собой
нечеткую
систему
типа
Питтсбургского
классификатора, в котором консеквент каждого правила состоит из строковых идентификаторов
класса и вещественного числа, определяющего вес правила; здесь определены интерфейсы
алгоритмов
инициализации
правил
и
алгоритмов
генерации
правил
67
(Class_Pittsburgh.add_generators),
а
также
алгоритмы
параметрической
оптимизации
(Class_Pittsburgh.learn_algorithm).
Fuzzy_FrontEnd – пакет содержащий интерфейс IFuzzy_FrontEnd, который реализован для
каждой из нечетких систем и для способа взаимодействия алгоритмов идентификации структуры
и
параметров,
последовательно
SingletoneHybride_FrontEnd
и
по
и
островной
модели:
Singletone_FrontEnd,
PittsburghClassifier_FrontEnd,
PittsburghClassifierHybride_FrontEnd, соответственно. Эти интерфейсы позволяют нечетким
системам взаимодействовать с графическим интерфейсом пользователя компонентом Mix_Core.
Mix_Core позволяет получать алгоритмы добавления правил, структурной и параметрической
инициализации из интерфейса пользователя, запускать и отслеживать процесс оптимизации.
FrontEnd_Construction – класс, который позволяет интерфейсу Mix_Core заранее
определять реализованные типы нечетких систем и строить объекты, реализующие интерфейс
Fuzzy_FrontEnd.
Member_Function – класс, позволяющий определить количество параметров каждой
функции принадлежности, вычислить функцию принадлежности для конкретного терма в точке
и получить название функции принадлежности.
Type_Term_Func_Enum
содержит виды функций принадлежности, поддерживающихся
текущей версией системы.
На рисунке 3.6 представлена диаграмма классов интерфейса пользователя Mix_Core.
68
class Mix_Сore
Form
Program
-
Forms::Result_F
Main() :void
noSleep_the_sun_is_high_Elapsed(object, System.Timers.ElapsedEventArgs) :void
SetThreadExecutionState(EXECUTION_STATE) :uint
SystemParametersInfo(SPI, uint, uint*, SPIF) :bool
SystemParametersInfo(SPI, uint, uint, SPIF) :bool
«use»
+
-
Result_F()
Result_RTB_TextChanged(object, EventArgs) :void
-temp_result_form
«use»
Form
Forms::Start_F
~
-
add_algorithm_B_list :List<Button> = new List<Button>()
add_algorithm_CB_list :List<ComboBox> = new List<ComboBox>()
all_algorithms_B_List :List<Button> = new List<Button>()
all_algorithms_CB_List :List<ComboBox> = new List<ComboBox>()
count_interation_complete :string
current_section :int = 0
Fuzzy_system :IFuzzy_System_FroentEnd = null
learn_algorithm_B_list :List<Button> = new List<Button>()
learn_algorithm_CB_list :List<ComboBox> = new List<ComboBox>()
temp_result_form :Result_F
+
-
autosave_fuzzy_System_CHB_CheckedChanged(object, EventArgs) :void
autosave_log_CHB_CheckedChanged(object, EventArgs) :void
back_ground_process_DoWork(object, DoWorkEventArgs) :void
back_ground_process_ProgressChanged(object, ProgressChangedEventArgs) :void
back_ground_process_RunWorkerCompleted(object, RunWorkerCompletedEventArgs) :void
clear_CB(List<ComboBox>) :void
fill_CB(List<ComboBox>, object[]) :void
generator_rull_B_Click(object, EventArgs) :void
learn_algorithm_conf_B_Click(object, EventArgs) :void
learn_samples_browse_B_Click(object, EventArgs) :void
load_selected_index() :void
progress_T_Tick(object, EventArgs) :void
ready_to_run() :void
save_selected_index() :void
set_enabledisable_B(List<Button>, bool) :void
set_enabledisable_CB(List<ComboBox>, bool) :void
start_B_Click(object, EventArgs) :void
Start_F()
Start_F_FormClosing(object, FormClosingEventArgs) :void
Start_F_Load(object, EventArgs) :void
test_samples_B_Click(object, EventArgs) :void
Type_FuzzySystem_CB_SelectedIndexChanged(object, EventArgs) :void
«use»
Form
Forms::universal_conf_form
+
OK_B_Click(object, EventArgs) :void
universal_conf_form()
Fuzzy_FrontEnd::Methods_Init_loader
-
Approx_init_types :List<Fuzzy_system.Approx_Singletone.add_generators.Abstract_generator> = new List<Fuzzy_...
ApproxInit :Type = typeof(Fuzzy_sy...
Class_init_types :List<Fuzzy_system.Class_Pittsburgh.add_generators.Abstract_generator> = new List<Fuzzy_...
ClassInit :Type = typeof(Fuzzy_sy...
dll_path :string = (new FileInfo(A...
Рис. 3.6. Диаграмма классов интерфейса пользователя Mix_Core
Рассмотрим взаимодействие пользователя MixCore с графическим интерфейсом
Ниже приведено описание каждого из классов.
Program – основной класс взаимодействия с пользователем, отвечает за загрузку форм и
блокировку парковки дисков и уход в спящий режим компьютера, пока происходит процесс
обучения.
Forms:Start_F – главная форма, позволяет выбрать тип нечеткой системы, запрашивает
через интерфейсы IFuzzy_FrontEnd доступные алгоритмы инициализации, обучения и их
конфигурационные файлы для создания объектов Forms:universal_conf_form для конкретного
алгоритма.
Forms:Result_F – форма для вывода результатов после выполнения всей заданной
пользователем цепочки алгоритмов инициализации и обучения.
69
Forms:universal_conf_form – форма для настройки параметров алгоритмов обучения,
привязывается к объектам-наследникам классов Fuzzy_Abstract.conf, Approx_Singletone.init.conf,
Approx_Singletone.add_generators, Approx_Singletone.learn_algorithm, публичные свойства
которых доступны для задания пользователем.
Fuzzy_FrontEnd::Methods_init_loader – класс, позволяющий загружать дополнительные
библиотеки (*.dll) алгоритмов, внешние к системе.
Скриншот приложения формы Start_F представлен на рисунке 3.7.
Рис. 3.7. Скриншот главной формы MixCore
Перейдем к рассмотрению эффективности выполнения алгоритмов, при параллельной
реализации.
3.5 Диспетчер параллельных вычислений
В настоящее время существуют архитектуры центрального процессора, которые снижают
объем ручного распараллеливания программистом, например, VLIM [97], но для привычной
архитектуры IBM PC требуется определение мест распараллеливания кода и исследования
эффективности
параллелизации.
Поскольку
готовые
методики
построения
вариантов
параллельной реализации, учитывающих особенности различных семейств современных
процессоров x86, недостаточно проработаны, а производители процессоров говорят только о
рекомендациях, которые для реальных приложений часто противоречивы, разработчику
приходится производить поиск эффективных реализаций самому. В научных исследованиях
известны пределы ускорения, благодаря таким законам как закон Амдала [48] и закон
Гуфставсона [85]. Эти законы оперируют понятием доля последовательно выполняемого кода,
70
она просто рассчитывается на ассемблере, но для высокоуровневых языков таких как C# не
применима, ввиду сокрытия кода библиотек от разработчика, это приводит к трудоемкой оценке
реальной доли последовательного и параллельного кода.
С другой стороны, научные исследования для конкретных алгоритмов обучения и видов
нечетких систем являются перспективными и востребованными, что подтверджается
публикацией научных статей по данной тематике, для напримера [2,3, 44, 95]
Поэтому были построены варианты реализации параллельных вычислений, проведена
оценка их эффективности (подробнее в главе 4) и составлен управляющий модуль,
переключающий варианты исполнения в зависимости от семейства процессора, автоматически
проводящий тесты для ранее нетестированных процессоров. Именно этот модуль является
главной архитектурной особенностью данного программного комплекса с точки зрения
повышения производительности.
Распараллеливание программного обеспечения включает в себя поиск участков
программного комплекса, которые можно было бы свести к одному из следующих шаблонов,
предложенных Флинном (M. J. Flynn).
 SIMD (Single Instruction–Multiple Data) – одинаковые преобразования выполняются на
множестве несвязанных данных. Данный шаблон достаточно легко поддается параллельной
реализации и в общем случае показывает наибольшую эффективность от параллельного
исполнения.
 MIMD (Multiple Instructions –Multiple Data) – различные данные подвергаются различным
преобразованиям, наиболее обобщённый шаблон. При реализации требуется постоянный
контроль наличия средств синхронизации, так как различные инструкции выполняются за разное
время. Эффективность параллельного выполнения такого шаблона ниже, но именно этот шаблон
рекомендуется использовать при медленной сети между вычислительными ресурсами.
 MISD (Multiple Instructions –Single Data) – одни и те же данные подвергаются различным
преобразованиям. Очень редко встречается в практике, наиболее эффективен при реализации на
устройствах, сильно отличающихся по производительности, например, CPU – GPU. [29]
После нахождения шаблона в части алгоритма стоит проверить обязательное условие
Бернстайна, смысл которого в том, что выходы и входы частей алгоритма, подлежащие
распараллеливанию не пересекаются и выходы одной части не должны быть входом другой [126].
3.5.1 Схемы параллельного расчета ошибки нечеткой системы
Распараллеливанию подверглась функция для расчета ошибки вывода, последовательная
схема выполнения которой представлена на рисунке 3.8, обозначим ее как PF0. На этом и
71
последующих рисунках представлены диаграммы деятельности только для синглтона, а для
питтсбугского классификатора, точки параллельного выполнения идентичны, понятие ошибки
следует заменить понятием определения точности классификации
act Fuzzy_approx_error
Начало
p=1
Конец
Расчет ошибки
аппроксимации
E= сумма( E1;El)/l
p=p+1
[p>l]
[p<=l]
Выбрать образец Cp из
таблицы наблюдений
Расчет ошибки
Ep = (Cp.Y -FR)*(Cp.Y -FR)
n=1
Расчет части вывода
образца Сp по правилу
Rn и сохранения
результата в Fn
n=n+1
[n<m]
Построение финального
результата FR на основе
все промежуточных
результатов из F
[n>m]
Рис. 3.8. Диаграмма деятельности функции «расчет ошибки синглтона»
Далее выявлена возможность применения шаблона SIMD, так как нечеткая система в
процессе обучения с учителем по таблице наблюдения для вычисления ошибки работает над
каждым правилом независимо друг от друга, а результаты можно временно сохранить в массив
для последующего расчета, этот вариант исполнения представлен на рисунке 3.9, обозначим его
как PF1.
72
act Fuzzy_approx_errorPF1
Начало
p=1
Конец
Расчет ошибки
аппроксимации
E= сумма( E1;El)/l
[p>l]
[p<=l]
p=p+1
Выбрать образец Cp из
таблицы наблюдений
Расчет ошибки
Ep = (Cp.Y -FR)*(Cp.Y -FR)
1 по m
Расчет части вывода
образца Сs по правилу
R1 и сохранения
результата в F1
Расчет части вывода
образца Сs по правилу
R2 и сохранения
результата в F2
Расчет части вывода
образца Сs по правилу
Rm и сохранения
результата в Fm
Построение финального
результата FR на основе
всех промежуточных
результатов из F
Рис. 3.9. Схема параллельного выполнения PF1 функции «расчет ошибки синглтона»
Под шаблон SIMD попадает вычисление каждой строкой таблицы наблюдения
независимо от других, данный вид параллельного выполнения представлен на рисунке 3.10,
обозначим его как PF2. Оба подхода (PF1, PF2) могут выполняться одновременно, что
соответствует шаблону MIMD, данный подход представлен на рисунке 3.11, обозначим его как
PF3.
73
act Fuzzy_approx_errorPF2
Начало
от 1 доl
Выбрать образец C1 из
таблицы наблюдений
Выбрать образец C2 из
таблицы наблюдений
n=1
k=1
Расчет части вывода
образца С1 по правилу
Rn и сохранения
результата в F1n
[n<=m]
z=1
Расчет части вывода
образца С2 по правилу
Rk и сохранения
результата в F2k
z=z+1
k=k+1
[k>m]
Построение финального
результата F1R на основе
всех промежуточных
результатов из F1
Расчет ошибки
E1 = (C1.Y -F1R)*(C1.Y -F1R)
[z<=m]
Расчет части вывода
образца Сl по правилу
Rz и сохранения
результата в Flz
[k<=m]
n=n+1
[n>m]
Выбрать образец Cl из
таблицы наблюдений
[z>l]
Построение финального
результата F2R на основе
всех промежуточных
результатов из F2
Расчет ошибки
E2 = (C2.Y -F2R)*(C2.Y -F2R)
Построение финального
результата FlR на основе
Всех промежуточных
результатов из Fl
Расчет ошибки
El = (Cl.Y -FlR)*(Cl.Y -FlR)
Расчет ошибки
аппроксимации
E= сумма(E1; El)/l
Конец
Рис. 3.10. Схема параллельного выполнения PF2 функции «расчет ошибки синглтона»
74
act Fuzzy_approx_errorPF3
Начало
от 1 доl
Выбрать образец C1 из
таблицы наблюдений
от 1 по m
Выбрать образец Cl из
таблицы наблюдений
Выбрать образец C2 из
таблицы наблюдений
от 1 по m
от 1 по m
Расчет части вывода
образца С1 по правилу
R1 и сохранения
результата в F11
Расчет части вывода
образца Сl по правилу
R1 и сохранения
результата в Fl1
Расчет части вывода
образца С2 по правилу
R1 и сохранения
результата в F21
Расчет части вывода
образца С1 по правилу
R2 и сохранения
результата в F12
Расчет части вывода
образца С2 по правилу
R2 и сохранения
результата в F22
Расчет части вывода
образца С1 по правилу
Rm и сохранения
результата в F1m
Расчет части вывода
образца Сl по правилу
R2 и сохранения
результата в Fl2
Расчет части вывода
образца С2 по правилу
Rm и сохранения
результата в F2m
Расчет части вывода
образца Сl по правилу
Rm и сохранения
результата в Flm
Построение финального
результата F1R на основе
всех промежуточных
результатов из F1
Построение финального
результата F2R на основе
всех промежуточных
результатов из F2
Построение финального
результата FlR на основе
всех промежуточных
результатов из Fl
Расчет ошибки
E1 = (C1.Y -F1R)*(C1.Y -F1R)
Расчет ошибки
E2 = (C2.Y -F2R)*(C2.Y -F2R)
Расчет ошибки
El = (Cl.Y -FlR)*(Cl.Y -FlR)
Расчет ошибки
аппроксимации
E= сумма(E1; El)/l
Конец
Рис. 3.11. Схема параллельного выполнения PF3 функции «расчет ошибки синглтона»
3.5.2 Схемы параллельной реализации алгоритма пчелиной колонии для генерации правил
нечеткой системы
Рассмотрим
схемы
параллельного
исполнения
алгоритма
АПКГП.
Для
начала
проанализируем диаграмму последовательной реализации данного алгоритма, представленную
на рисунке 3.12, обозначим его последовательное выполнение как PBS0.
Из диаграммы видно, что в алгоритме 5 циклов. Внешний цикл является зависимым от
своих предыдущих шагов, так как после добавления в базу правил нового правила величина
ошибок, используемых при сравнении в промежуточных шагах изменится. А это противоречит
75
условию Бернстайна, следовательно, цикл не может быть распараллелен без изменения
результата работы алгоритма.
При рассмотрении блока начинающегося с «wbc=1» до «i =1» и блока с «i=1» до «Отбор
правила Rt..» заметен шаблон MIMD. Операции, заключенные в эти блоки, независимы по
входам, выходам и промежуточным операциям. Схема, реализующая данный подход к
распараллеливанию, представлена на рисунке 3.13, обозначим ее как PBS1.
Сами обозначенные блоки являются кандидатами на распараллеливание, так как полностью
удовлетворяют шаблону SIMD. Обозначим схему распараллеливания блока начинающегося с
«wbc=1» до «i =1» как PBS2, она представлена на рисунке 3.14. В свою очередь блок с «i=1» до
«Отбор правила Rt..» можно распараллелить по шаблону SIMD двумя способами. Схема
распараллеливания данного блока при параллельном выполнении внутреннего цикла по
переменной wec представлена на рисунке 3.15, обозначим ее как PBS3. При распараллеливании
этого же блока по внешнему циклу получена схема PBS4, представленная на рисунке 3.16.. При
полном распараллеливании обоих блоков и управления между ними согласно PBS1 получена
схема, представленная на рисунке 3.17, обозначим ее как PBS5. Кроме представленных схем
распараллеливания были проведены попытки построить схемы распараллеливания работы пчелразведчиков. Но алгоритм их работы достаточно прост, и его распараллеливание увеличивало
время работы. Поэтому схемы распараллеливания работы пчел разведчиков были исключены из
рассмотрения.
76
act BeeStructurePBS0
Начало
t=0
sc=1
[sc<=s]
wec=1
wbc=1
Построение варианта
правила
RBESTSCOUTWORKwbc
рабочей пчелой WBwbc
на основе правила
Rbestscout
Генерация случайного
правила RSCOUTsc
пчелой разведчиком
BSsc
Построение варианта
правила
RELITEWORKi,wbe
рабочей пчелой WBwbe
на основе правила
RELITEi
sc=sc+1
[wbc<=O]
[sc>s]
[t<=z]
ОпределениеRbestscout
как правило из RSCOUT
максимально
уменьшающее ошибку
аппроксимации
[i<=L]
[wec<=O]
wbc=wbc+1
wec=wec+1
[wec>O]
i=1
i=i+1
[wbc>O]
Формирование списка
элитных правил RELITE из
RSCOUT
[i>L]
Отбор правила Rt из
RSCOUT,
RBESTSOUTWORK,
RELITEWORK.
Включение правила Rt в
базу правил
t=t+1
[t>z]
Конец
Рис. 3.12. Диаграмма деятельности алгоритма АПКГП
77
act BeeStructurePBS1
Начало
t=0
sc=1
[sc<=s]
wbc=1
i=1
Построение варианта
правила
RBESTSCOUTWORKwbc
рабочей пчелой WBwbc
на основе правила
Rbestscout
Генерация случайного
правила RSCOUTsc
пчелой разведчиком
BSsc
wec=1
Построение варианта
правила
RELITEWORKi,wbe
рабочей пчелой WBwbe
на основе правила
RELITEi
sc=sc+1
[wbc<=O]
[sc>s]
[t<=z]
ОпределениеRbestscout
как правило из RSCOUT
максимально
уменьшающее ошибку
аппроксимации
[i<=L]
wbc=wbc+1
[wec<=O]
wec=wec+1
[wec>O]
Формирование списка
элитных правил RELITE из
RSCOUT
[wbc>O]
i=i+1
[wec>O]
Отбор правила Rt из
RSCOUT,
RBESTSOUTWORK,
RELITEWORK.
Включение правила Rt в
базу правил
t=t+1
[t>z]
Конец
Рис. 3.13. Схема параллельного выполнения PBS1 алгоритма АПКГП
78
act BeeStructurePBS2
Начало
t=0
i=1
от 1 по O
wec=1
sc=1
Генерация случайного
правила RSCOUTsc
пчелой разведчиком
BSsc
[sc<=s]
Построение варианта
правила
RBESTSCOUTWORK1
рабочей пчелой WB1
на основе правила
Rbestscout
Построение варианта
правила
RELITEWORKi,wbe
рабочей пчелой WBwbe
на основе правила
RELITEi
sc=sc+1
[sc>s]
[t<=z]
Построение варианта
правила
RBESTSCOUTWORKO
рабочей пчелой WBO
на основе правила
Rbestscout
ОпределениеRbestscout
как правило из RSCOUT
максимально
уменьшающее ошибку
аппроксимации
Формирование списка
элитных правил RELITE из
RSCOUT
[i<=L]
[wec<=O]
wec=wec+1
[wec>O]
i=i+1
[i>L]
Отбор правила Rt из
RSCOUT,
RBESTSOUTWORK,
RELITEWORK.
Включение правила Rt в
базу правил
t=t+1
[t>z]
Конец
Рис. 3.14. Схема параллельного выполнения PBS2 алгоритма АПКГП
79
act BeeStructurePBS3
Начало
от 1 по O
[i<=L]
t=0
sc=1
[sc<=s]
Построение
варианта правила
RELITEWORKi,1
рабочей пчелой
WB1 на основе
правила RELITEi
wbc=1
Построение варианта
правила
RBESTSCOUTWORKwbc
рабочей пчелой WBwbc
на основе правила
Rbestscout
Генерация случайного
правила RSCOUTsc
пчелой разведчиком
BSsc
Построение
варианта правила
RELITEWORKi,O
рабочей пчелой
WBO на основе
правила RELITEi
sc=sc+1
[wbc<=O]
[sc>s]
[t<=z]
ОпределениеRbestscout
как правило из RSCOUT
максимально
уменьшающее ошибку
аппроксимации
wbc=wbc+1
i=1
i=i+1
[wbc>O]
Формирование списка
элитных правил RELITE из
RSCOUT
[i>L]
Отбор правила Rt из
RSCOUT,
RBESTSOUTWORK,
RELITEWORK.
Включение правила Rt в
базу правил
t=t+1
[t>z]
Конец
Рис. 3.15. Схема параллельного выполнения PBS3 алгоритма АПКГП
80
act BeeStructurePBS4
Начало
t=0
от 1 по L
sc=1
wbc=1
wec1=1
[wec1<=O]
[sc<=s]
Построение варианта
правила
RBESTSCOUTWORKwbc
рабочей пчелой WBwbc
на основе правила
Rbestscout
Генерация случайного
правила RSCOUTsc
пчелой разведчиком
BSsc
Построение варианта
правила
RELITEWORK1,wbe1
рабочей пчелой WBwbe1
на основе правила
RELITE1
wec1=wec1+1
sc=sc+1
[wbc<=O]
[sc>s]
[t<=z]
ОпределениеRbestscout
как правило из RSCOUT
максимально
уменьшающее ошибку
аппроксимации
wecL=1
wbc=wbc+1
[wecL<=O]
[wec1>O]
Построение варианта
правила
RELITEWORKL,wbeL
рабочей пчелой
WBwbeL на основе
правила RELITEL
[wbc>O]
Формирование списка
элитных правил RELITE из
RSCOUT
wecL=wecL+1
[wecL>O]
Отбор правила Rt из
RSCOUT,
RBESTSOUTWORK,
RELITEWORK.
Включение правила Rt в
базу правил
[t>z]
t=t+1
Конец
Рис. 3.16. Схема параллельного выполнения PBS4 алгоритма АПКГП
81
act BeeStructurePBS5
Начало
t=0
sc=1
[sc<=s]
Генерация случайного
правила RSCOUTsc
пчелой разведчиком
BSsc
sc=sc+1
[sc>s]
ОпределениеRbestscout
как правило из RSCOUT
максимально
уменьшающее ошибку
аппроксимации
от 1 по O
от 1 до L
Построение варианта
правила
RBESTSCOUTWORK1
рабочей пчелой WB1
на основе правила
Rbestscout
от 1 по O
от 1 по O
Построение варианта
правила
RBESTSCOUTWORKO
рабочей пчелой WBO
на основе правила
Rbestscout
Построение
варианта
правила
RELITEWORK1,1
рабочей пчелой
WB1 на основе
правила
RELITE1
Построение
Построение
варианта
варианта
правила
правила
RELITEWORK1,O RELITEWORKL,1
рабочей пчелой рабочей пчелой
WB1 на основе
WBO на основе
правила
правила RELITE1
RELITEL
Построение
варианта
правила
RELITEWORKL,O
рабочей пчелой
WBO на основе
правила RELITEL
Формирование списка
элитных правил RELITE из
RSCOUT
Отбор правила Rt из
RSCOUT,
RBESTSOUTWORK,
RELITEWORK.
[t<=z]
Включение правила Rt в
базу правил
t=t+1
[t>z]
Конец
Рис. 3.17. Схема параллельного выполнения PBS5 алгоритма АПКГП
3.5.3 Схемы параллельной реализации алгоритма пчелиной колонии для идентификации
параметров нечеткой системы
Далее были построены схемы параллельного выполнения алгоритма АПКИП. Данный
алгоритм представлен в виде диаграммы деятельности на рисунке 3.18, обозначим его
последовательное выполнение как PBP0.
Для каждого вида пчел был применен шаблон SIMD, так как результаты их работы
фактически не зависят друг от друга, данная схема параллельного выполнения представлена на
3.19, обозначим ее как PBP1.
82
act BeeParamsPBP0
Начало
Конец
[Iter>IterMax]
iter=0
[Iter<=iterMax]
i=1
j =1
Полет
пчелы-разведичика
BS, сохранение
варианта базы
правил в RBSi
k=1
Полет пчелы-фуражира
NW на основе Wj , и
сохранение варианта
базы правил в RWBj
[i<=S]
[j<=R]
Полет пчелы-фуражира
NB на основе Wk и
лучшей из RBS, и
сохранение варианта
базы правил в RNBk
[k<=R]
i=i+1
k=k+1
j =j +1
[i>S]
iter=iter+1
[k>R]
Отсеивание
решений в RBS,
оставшиеся
помещаются в W
[j>R]
Селекция решений в W
Добавление RWB
и RNB в W
Рис. 3.18. Диаграмма деятельности алгоритма АПКИП
act BeeParamsPBP1
Начало
iter=0
от 1 по R
от 1 по R
от 1 по S
Полет
пчелы-разведичика
BS1, сохранение
варианта базы
правил в RBS1
Полет
пчелы-разведичика
BSS, сохранение
варианта базы
правил в RBSS
Полет
пчелы-фуражира
NW1 на основе W,
и сохранение
варианта базы
правил в RWB1
Полет
пчелы-фуражира
NWR на основе W,
и сохранение
варианта базы
правил в RWBR
Отсеивание
решений в RBS,
оставшиеся
помещаются в W
Полет
пчелы-фуражира
NB1 на основе W1
и лучшей из RBS, и
сохранение
варианта базы
правил в RNB1
Полет
пчелы-фуражира
NBR на основе WR
и лучшей из RBS, и
сохранение
варианта базы
правил в RNBR
Добавление RWB
и RNB в W
iter=iter+1
Селекция решений в W
[Iter>IterMax]
Конец
Рис. 3.19. Схема параллельного выполнения PBP1 алгоритма АПКИП
83
act BeeParamsPBP2
Начало
iter=0
от 1 по R
от 1 по R
от 1 по S
Полет
пчелы-разведичика
BS1, сохранение
варианта базы
правил в RBS1
Полет
пчелы-разведичика
BSS, сохранение
варианта базы
правил в RBSS
Полет
пчелы-фуражира
NW1 на основе W,
и сохранение
варианта базы
правил в RWB1
Полет
пчелы-фуражира
NWR на основе W,
и сохранение
варианта базы
правил в RWBR
Отсеивание
решений в RBS,
оставшиеся
помещаются в W
Полет
пчелы-фуражира
NB1 на основе W1
и лучшей из RBS, и
сохранение
варианта базы
правил в RNB1
Полет
пчелы-фуражира
NBR на основе WR
и лучшей из RBS, и
сохранение
варианта базы
правил в RNBR
Добавление RWB
и RNB в W
Селекция решений в W
iter=iter+1
[Iter>IterMax]
Конец
Рис. 3.20. Схема параллельного выполнения PBP2 алгоритма АПКИП
Дальнейшее исследование показало, что рабочие пчелы и наблюдатели могут действовать
независимо друг от друга, это позволило свести их выполнение к шаблону MIMD. Обозначим
использование этой схемы параллельного исполнения как PBP2, она представлена на рисунке
3.20.
3.5.4 Схемы параллельной реализации алгоритма адаптивной эволюционной стратегии
для идентификации параметров нечеткой системы
Рассмотрим схемы параллельного выполнения алгоритма ААЭС, диаграмма деятельности
которого представлена на рисунке 3.21, обозначим его последовательное выполнение как PES0.
84
act Adaptiv eEv olutionStratigiesPES0
Начало
j =1
[inter<=iterMax]
i=1
Генерация элемента
начальной популяции Pi
Случайный отбор
родителей R1j и R2j
из P
[j<=alp]
[i<=cu]
Получение потомка Сj
cкрещиванием R1j и
R2j
i=i+1
[j>cu]
Формирование
новой популяции
P путем селекции
потомков из C по
значению
соответствующих
ошибок из E
Мутация потомка
Cj
inter=1
[inter>interMax]
Конец
inter=inter+1
Расчет ошибки Ej
для потомка Cj
j =j +1
[j>alp]
Рис. 3.21. Диаграмма деятельности алгоритма ААЭС
В алгоритме видно три цикла которые могут соответствовать шаблону SIMD. Однако цикл
по переменной iter зависит от результатов своего исполнения на предыдущей итерации, а этой
противоречит условию Бернстайна. Схему параллельного выполнения ААЭС при замене цикла
по переменной j обозначим PES1, она представлена на рисунке 3.22. А схему параллельного
исполнения ААЭС при которой заменены на потоки оба цикла обозначим как PES2, она
представлена на рисунке 3.23.
act Adaptiv eEv olutionStratigiesPES1
Начало
от 1 по alp
i=1
Генерация элемента
начальной популяции Pi
[inter<=iterMax]
Случайный отбор
родителей R11 и
R21 из P
Случайный отбор
родителей R1alp
и R2alp из P
[i<=cu]
i=i+1
[j>cu]
inter=1
Получение потомка
С1 cкрещиванием
R11 и R21
Мутация
потомка C1
Расчет ошибки E1
для потомка C1
Получение потомка
Сalp cкрещиванием
R1alp и R2alp
Мутация потомка
Calp
Формирование
новой популяции
P путем селекции
потомков из C по
значению
соответствующих
ошибок из E
[inter>interMax]
inter=inter+1
Расчет ошибки Ealp
для потомка Calp
Рис. 3.22. Схема параллельного выполнения PES1 алгоритма ААЭС
Конец
85
act Adaptiv eEv olutionStratigiesPES2
Начало
от 1 до alp
от 1 по cu
[inter<=iterMax]
Генерация
элемента
начальной
популяции
P1
Генерация
элемента
начальной
популяции
Pcu
inter=1
Случайный отбор
родителей R11 и
R21 из P
Получение потомка
С1 cкрещиванием
R11 и R21
Мутация
потомка C1
Расчет ошибки E1
для потомка C1
Случайный отбор
родителей R1alp
и R2alp из P
Получение потомка
Сalp cкрещиванием
R1alp и R2alp
Мутация потомка
Calp
Формирование
новой популяции
P путем селекции
потомков из C по
значению
соответствующих
ошибок из E
[inter>interMax]
Конец
inter=inter+1
Расчет ошибки Ealp
для потомка Calp
Рис. 3.23. Схема параллельного выполнения PES2 алгоритма ААЭС
Учитывая тот факт, что алгоритм, реализующий, ГМИСПОМ может быть реализован
только в одной многопоточной схеме, его исследование на возможность распараллеливания не
выполнялось.
3.5.5 Схемы параллельной реализации алгоритма, реализующего методику построения
трехкритериальных Парето-оптимальных нечетких систем
Алгоритм АРМПОС обозначим в соответствии с диаграммой деятельности на рисунке 3.3
как PPO0, несмотря на его представление в многопоточном исполнении, его распараллеливание
недостаточно эффективно, так как самый времязатратный цикл по переменной i не был
распараллелен. Схема, распараллеливающая алгоритм АРМПОС, представлена на рисунке 3.24,
обозначим ее как PPO1
86
act ThreeCriteriaParetoOptimizationPPO1
Начало
Tetta
Очистить Q, очистить PF., Iter
=0, очистить NextRoot,
очиститьTabuRoot, очистить
StepArchiv e.Clear, Root =Tetta
[Tries > TryBeforeDivideStep]
WriteVariable
Tries =0
[Иначе]
PrecisionStep = PrecisionStep/ Div iderStep,
ComplexityStep= ComplexityStep/ Div iderStep,
InterpretingStep=InterpretingStep/Div iderStep
(::)
от 1 по NonDetermTries
StepArchiv e.включить(АИТ (Root))
StepArchiv e.включить(АУБП (Root))
StepArchiv e.включить(АПКГП(Root))
StepArchiv e.включить(ААЭС(Root))
StepArchiv e.включить(АОТ (Root))
StepArchiv e.включить(АПКИП(Root))
StepArchiv e.включить(АИПТ (Root))
WriteVariable
j =0, nr=0
[j<StepArchive.Size]
j =j +1
(::)
[TabuRoot.Содержит(StepArchive[j])]
[nr=0]
Распределить по ЭГ(PrecisionStep, ComplexityStep, InterpretingStep)
[Если количество в том же ЭГ(StepArchive[j]) < максимального_заполнения_ЭГ]
j =j +1
(::)
WriteVariable
s=0
NextRoot.исключить по условию(x=>x.идентичная точность, сложность,
интерпретируемость(StepArchiv e[j ]) )
[Иначе]
[Иначе]
[s<NextRoot[s]]
[Иначе]
GoodsNextRoot[s] =сумма приращения в
ЭГ(NextRoot[s],Root)
s=s+1
(::)
nr++,
NextRoot.включить(StepArchiv e[j ])
Root = NextRoot[argmax(GoodsNextRoot)]
NextRootCounter[argmax(GoodsNextRoot)]=NextRootCounter[argmax(GoodsNextRoot)]+1;
(::)
[NextRootCounter[argmax(GoodsNextRoot)] >MaxRootCounter ]
[ Иначе]
Q.включить(StepArchiv e)
TabuRoot.исключить(NextRoot[argmax(GoodsNextRoot)])
NextRootCounter.исключить(NextRootCounter[argmax(GoodsNextRoot)])
StepArchiv e.Clear
[Iter < AlgIter]
Iter=Iter+1
(::)
NextRoot.исключить(NextRoot[argmax(GoodsNextRoot)])
PF = SelectNonDominate(Q)
Конец
Рис. 3.24. Схема параллельного выполнения PPO1 алгоритма АРМПОС
87
3.5.6 Диспетчер многопоточных вычислений
После представления схем параллельной работы алгоритмов представим диспетчер
параллельных вычислений, задача которого подобрать быстрейший вариант исполнения всех. На
различных процессорах предпочтительны разные схемы выполнения каждого алгоритма.
Поэтому информацию о ранее протестированных процессорах и схеме оптимальной работы для
них будем хранить в виде правил вида:
IF TaskType= «тип задачи» AND ProcessorType= «Семейство и производитель процессора»
THEN PF=ValuePF, PBS= ValuePBS, PBP= ValuePBS, PES= ValuePES, PPO= ValuePPO;
«тип задачи» – это одно из значений {sequence; hybride; pareto}. Значение sequence
обозначает последовательный запуск алгоритмов; hybride указывает на запуск алгоритмов
идентификации структуры и параметров в гибридном численном методе; значение pareto
используется для алгоритмов идентификации структуры и параметров в составе методики; а тип
процессора получаем из WMI с помощью запроса «Select Description From Win32__Processor»;
PF, PBS, PBP, PES, PPO – обозначение алгоритмов для идентификации структуры и параметров.
Выражение PBS= ValuePBS означает, что в алгоритме пчелиной колонии для генерации
правил следует использовать схему параллельного выполнения с номером ValuePBS.
Пример вида правила, для последовательности алгоритмов, для процессора Intel Core i5
2410M:
IF TaskType=”sequence” AND ProcessorType= “Intel64 Family 6 Model 42 Stepping 7” THEN
PF=2, PBS=4, PBP=2, PES=1, PPO=1;
В начале файла хранится правило по умолчанию для тех процессоров, которые еще не
прошли тест, оно не имеет свойств TaskType и ProcessorType.
После теста диспетчер добавляет новые правила для новых процессоров, или изменяет
существующие.
Тест длится от 1 часа до 5 при условии монопольного выполнения, поэтому рекомендуется
перед началом теста закрыть все приложения, и не использовать компьютер до завершения теста.
3.6 Представление нечетких систем в стандарте PMML v4.2
Для хранения нечетких систем в 2011 году был создан стандарт UFS (Унифицированное
представление параметров нечеткой системы) [10]. Целью данной разработки была возможность
легкой передачи нечеткой системы между разработчиками различных прикладных приложений
и автоматизированными исследовательскими системами. Вторая преследуемая цель 
возможность верификации результатов, полученных каждым из исследователей. В то время
готовых стандартов, удовлетворяющих данным целям для нечетких систем не существовало.
88
Наиболее близким был стандарт PMML (Predicted Model Markup Language), предназначенный
для унифицированного представления моделей в области интеллектуального анализа данных
(Data Mining), однако версия 2.1, получившая распространение, поддерживала модели деревьев
решений для задачи регрессии и классификации, полносвязные искусственные нейронные сети,
кластеризацию на основе c-средних, полиномиальные и линейные регрессионные модели,
наивный байесовский классификатор, ассоциативные правила модели, во многом отличающиеся
от структуры нечеткой системы типа синглтон. Судьба вышедшего стандарта версии 3.0-3.2,
содержащего модели в виде базы правил, была неизвестна, так как вендоры не спешили с
внедрением, а стандарт не имеет обратной совместимости. Поэтому было принято решение
создать свой стандарт.
Сегодня применение стандарта PMML версии 4.1 не вызывает вопросов, появилась версия
4.2.1, которая, однако так же не совместима с версией 4.1. В российской науке все больше случаев
использования данного стандарта [27, 32], Поэтому было решено включиться в мировой
стандарт, создав прототип представления в нотации PMML, и реализовать функции сохранения
в этот формат, функцию загрузки, также конвертер из UFS в PMML и наоборот.
Для представления данных для проверки модели можно полностью воспользоваться
готовым блоком для верификации модели PMML ModelVerification 4.2.1. Однако этот блок в
отличии от UFS может содержать только одну таблицу, так как таблицы не именуются,
следовательно, при конвертации из UFS в PMML будет происходить потеря тестовой выборки.
Следующим шагом является описание самой нечеткой модели, а именно нечетких правил
и термов.
Механизмы близкие к описанию термов есть в двух разрозненных местах трансформации
данных (PMML 4.2 - Transformation Dictionary and Derived Fields) и модели подтверждения
статистических гипотез (PMML 4.2 - Baseline Model). Механизмы в блоке трансформации
данных, позволяют реализовать вычисляемые формулы для расчета уровня принадлежности
входного значения, однако данный блок выполняется над всеми входными данными потоково и
не помогает в реализации нечетких правил, но может быть полезен для реализации вычисляемых
полей. Модель подтверждения статистических гипотез содержит функции Гауссового
распределения вероятности (<GaussianDistribution mean="550.2" variance="48.2"/>). Однако ее
формула не полностью соответствует формуле вывода Гауссовой функции принадлежности, и не
видна за пределами данной модели.
89
3.6.1 Представление функций принадлежности в PMML
Определим типы для представления функций принадлежности термов CONTINUOUSMEMBER-FUNCTION-TYPES. Сделаем это согласно стандарту в нотации XSD.
<xs:group name="CONTINUOUS-MEMBER-FUNCTION-TYPES">
<xs:sequence>
<xs:choice>
<xs:element ref="TriangeMemberFunction"/>
<xs:element ref="GaussianMemberFunction"/>
<xs:element ref="ParabolicMemberFunction"/>
<xs:element ref="TrapezoidMemberFunction"/>
</xs:choice>
<xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:group>
Поля Extension обязательны по стандарту PMML в каждом блоке.
Графические изображения функций принадлежности, приведенные на рисунке 3.25.
Треугольная
Трапециевидная
1
1
0,5
0,5
0
lower
pick
upper
0
lower
picklower
a)
Параболическая
1
1
0,5
0,5
0
c)
upper
b)
Функция Гаусса
mean-variance mean mean+variance
pickupper
0
upper
lower
d)
Рис. 3.25. Графическое представление функций принадлежности
90
Как видно из описания функции принадлежности могут принимать следующие значения
TriangeMemberFunction
функция
треугольная функция принадлежности, GaussianMemberFunction
принадлежности
Гаусса,
ParabolicMemberFunction
параболическая
функция
принадлежности, TrapezoidMemberFunction трапециевидная функция принадлежности. Опишем
каждую из них в нотации XSD, а также представим функции их вычисления.
Треугольная функция описывается тремя атрибутами: lower, pick, upper. Эти атрибуты
имеют тип REAL-NUMBER описанный в PMML, то есть подмножество типа double, в котором
значения: INF, INF, NaN – запрещены. Все атрибуты обязательны для заполнения. Вычисление
данной
функции
принадлежности
можно
представить
в
виде
формулы
 x  lower
 pick  lower , lower  x  pick,

 upper  x
 ( x)  
, pick  x  upper.
 upper  pick
0, в других случаях.


<xs:element name="TriangeMemberFunction">
<xs:complexType>
<xs:sequence>
<xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="lower" type="REAL-NUMBER" use="required"/>
<xs:attribute name="pick" type="REAL-NUMBER" use="required"/>
<xs:attribute name="upper" type="REAL-NUMBER" use="required"/>
</xs:complexType>
</xs:element>
Функция Гаусса описывается двумя атрибутами: mean, variance. Эти атрибуты имеют тип
REAL-NUMBER и обязательны для заполнения. Вычисление данной функции принадлежности

можно представить в виде формулы  ( x)  exp  

( x  mean) 2 
.
2  variance2 
<xs:element name="GaussianMemberFunction">
<xs:complexType>
<xs:sequence>
<xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="mean" type="REAL-NUMBER" use="required"/>
<xs:attribute name="variance" type="REAL-NUMBER" use="required"/>
91
</xs:complexType>
</xs:element>
Параболическая функция описывается двумя атрибутами: lower, upper. Эти атрибуты
имеют тип REAL-NUMBER и обязательны для заполнения. Вычисление данной функции
принадлежности можно представить в виде формулы  ( x) 
 4 * ( x  lower ) * ( x  upper)
.
(lower  upper) 2
<xs:element name="ParabolicMemberFunction">
<xs:complexType>
<xs:sequence>
<xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="lower" type="REAL-NUMBER" use="required"/>
<xs:attribute name="upper" type="REAL-NUMBER" use="required"/>
</xs:complexType>
</xs:element>
Трапециевидная функция описывается четырьмя атрибутами: lower, picklower, pickupper,
upper. Эти атрибуты имеют тип REAL-NUMBER и обязательны для заполнения. Вычисление
данной
функции
принадлежности
можно
представить
в
виде
формулы
x  lower

 pickLower  lower , lower  x  pickLower,

pickLower  x  pickUpper,
1,
 ( x)  
upper  x

, pickUpper  x  upper,
 upper  pickUpper

0, в других случаях.
<xs:element name="TrapezoidMemberFunction">
<xs:complexType>
<xs:sequence>
<xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="lower" type="REAL-NUMBER" use="required"/>
<xs:attribute name="pickLower" type="REAL-NUMBER" use="required"/>
<xs:attribute name="pickUpper" type="REAL-NUMBER" use="required"/>
<xs:attribute name="upper" type="REAL-NUMBER" use="required"/>
</xs:complexType>
</xs:element>
3.6.2 Представление нечетких правил в PMML
При представлении нечетких правил, кроме функции принадлежности, требуется имя, на
которое можно потом сослаться в случае нечетких систем с глобально определенными термами.
Введем понятие FuzzySet.
<xs:element name="FuzzySet">
92
<xs:complexType>
<xs:choice>
<xs:group ref="CONTINUOUS-MEMBER-FUNCTION-TYPES" />
</xs:choice>
<xs:attribute name="name" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
Данное описание требует имя и наличие в теге функции принадлежности. Пример:
<FuzzySet name="T1">
<TriangeMemberFunction lower="4.3" pick="5.1" upper="6.8" />
</FuzzySet>
Аналогичный пример в стандарте UFS имеет вид:
<Term Name="P1" TermType="Triangle">
<Params>
<Param Number="0" Value="4.3"/>
<Param Number="1" Value="5.1"/>
<Param Number="2" Value="6.8"/>
</Params>
</Term>
Теперь необходим словарь, который бы хранил все нечеткие термы, назовем его FuzzySets.
<xs:element name="FuzzySets">
<xs:complexType>
<xs:sequence>
<xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="FuzzySet" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
Теперь можно объявить нечеткое правило, для этого внесем незначительные изменения в
модель RulesSet. Взяв за основу SimpleRule, исключим несвойственное поле ScoreDistribution.
Значение консеквента хранится в поле score, у которого был изменен тип на REAL-NUMBER.
Назовем его для синлтона SingletonRule.
<xs:element name="SingletonRule">
<xs:complexType>
<xs:sequence>
<xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
<xs:group ref="PREDICATE"/>
</xs:sequence>
<xs:attribute name="id" type="xs:string" use="optional"/>
<xs:attribute name="score" type="REAL-NUMBER" use="required"/>
<xs:attribute name="recordCount" type="NUMBER" use="optional"/>
<xs:attribute name="nbCorrect" type="NUMBER" use="optional"/>
<xs:attribute name="confidence" type="NUMBER" use="optional" default="1"/>
<xs:attribute name="weight" type="NUMBER" use="optional" default="1"/>
</xs:complexType>
</xs:element>
93
Описание всех полей кроме score и value, можно узнать в PMML 4.2 SimpleRule.
Для нечеткой системы питтсбургский классификатор составим аналогичное правило
PittsburghClassifierRule.
<xs:element name="PittsburghClassifierRule">
<xs:complexType>
<xs:sequence>
<xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
<xs:group ref="PREDICATE"/>
</xs:sequence>
<xs:attribute name="id" type="xs:string" use="optional"/>
<xs:attribute name="score" type="xs:string" use="required"/>
<xs:attribute name="recordCount" type="NUMBER" use="optional"/>
<xs:attribute name="nbCorrect" type="NUMBER" use="optional"/>
<xs:attribute name="confidence" type="NUMBER" use="optional" default="1"/>
<xs:attribute name="weight" type="NUMBER" use="optional" default="1"/>
</xs:complexType>
</xs:element>
От описания правила SingletonRule, правило PittsburghClassifierRule отличается типом поля
score.
Небольшим изменениям следует подвергнуть толкование предиката SimplePredicate,
например, <SimplePredicate field="Inhabitants" operator="Equal" value="T1"/>, это значит
нечеткую оценку уровня принадлежности входного поля sepal_length нечетким термом T1.
При наличии правила и связи правил с нечеткими термами для определения нечеткой
системы необходимо определить тип словаря правил FuzzyRules.
<xs:element name="FuzzyRules">
<xs:complexType>
<xs:sequence>
<xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:choice>
<xs:element ref="SingletonRule" maxOccurs="unbounded"/>
<xs:element ref="PittsburghClassifierRule" maxOccurs="unbounded"/>
</xs:choice>
</xs:complexType>
</xs:element>
В
этом
словаре
может
быть
множество
правил
вида
SingletonRule
или
PittsburghClassifierRule.
3.6.3 Представление нечетких систем в PMML
Теперь необходимо ввести новую модель интеллектуального анализа данных (DataMining),
которая опишет нечеткую систему FuzzySystemModel.
<xs:element name="FuzzyRulesModel">
<xs:complexType>
94
<xs:sequence>
<xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="MiningSchema"/>
<xs:element ref="Output" minOccurs="0"/>
<xs:element ref="ModelStats" minOccurs="0"/>
<xs:element ref="ModelExplanation" minOccurs="0"/>
<xs:element ref="Targets" minOccurs="0"/>
<xs:element ref="LocalTransformations" minOccurs="0"/>
<xs:element ref="FuzzySets"/>
<xs:element ref="FuzzyRules"/>
<xs:element ref="ModelVerification" minOccurs="0"/>
<xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="modelName" type="xs:string" use="optional"/>
<xs:attribute name="functionName" type="MINING-FUNCTION" use="required"/>
<xs:attribute name="modelType" type="FUZZY-SYSTEM" use="required"/>
<xs:attribute name="algorithmName" type="xs:string" use="optional"/>
<xs:attribute name="isScorable" type="xs:boolean" default="true"/>
</xs:complexType>
</xs:element>
В этом описании вводится еще один тип FUZZY-SYSTEM, который отвечает за указание
типа нечеткой системы. Поддерживается два типа singleton и pittsburghClassifier.
<xs:simpleType name="FUZZY-SYSTEM">
<xs:restriction base="xs:string">
<xs:enumeration value="singleton"/>
<xs:enumeration value="pittsburghClassifier"/>
</xs:restriction>
</xs:simpleType>
Остальные теги и типы FuzzyRulesModel описаны в PMML 4.2 – RuleSet, кроме ранее
описанных FuzzySets и FuzzyRules.
Обратим внимание на выражение MINING-FUNCTION в поле functionName, которое для
нечеткой системы синглтон должно принимать значение «regression», а для питтсбугрского
классификатора «classification». Поле algorithmName указывает на то, каким алгоритмом была
полученная данная модель, например, «ААЭС».
Кроме того, интересно заполнение поля meanError, в теге ModelExplanation для
классификатора  это усредненное значение ошибки классификатора. Для синглтона
программный комплекс указывает в теге ModelExplanation значения полей meanSquaredError,
rootMeanSquaredError.
Пример полного описания нечеткой системы типа синглтон в нотации PMML и UFS на
тестовом наборе данных ELE1 представлен в приложении А, пример полного описания
питтсбургского классификатора в нотации PMML и UFS представлен в приложении Б.
95
Выводы
1. Спроектирован и реализован программный комплекс MixCore, сочетающий в себе
нечеткую систему синглтон и питтсбургский классификатор, расширяемый дополнительными
алгоритмами идентификации структуры и параметров нечеткой системы.
2. Реализованы интерфейсы для взаимодействия с внешними системами в режиме
интеграции комплекса в исследовательскую систему или в режиме предоставления сервисов
аппроксимации и классификации для эксплуатационных систем.
3. Предложена многопоточная архитектура данного программного комплекса с широким
набором схем параллельного выполнения каждого реализованного алгоритма и диспетчер,
отвечающий за подбор оптимального по времени варианта исполнения под используемый
процессор.
4. Предложено представление нечетких систем в стандарте PMML 4.2. Предложенный
стандарт полностью опирается на существующие схемы и модели стандарта PMML, что
позволяет, введя всего четыре дополнительных сущности, добиться интеграции с текущими
системами поддерживающими стандарт PMML 4.2. Использование стандарта позволяет
добиться переносимости системы между системами разработки нечетких моделей и
хранилищами данных. Кроме того, реализован конвертер между предлагаемым стандартом и
ранее используемым стандартом UFS, что позволяет добиться постепенного перехода на новый
стандарт.
Глава 4. Исследование методики, метода, алгоритма и программного комплекса
Основной набор экспериментов проводился на хорошо изученных и часто используемых
ученой общественностью тестах из репозитория Knowledge Extraction based on Evolutinary
Learning (KEEL). Использование одинаковых тестовых данных и методик проверки
эффективности позволяет сравнить результаты с аналогами. Характеристики данных для задачи
аппроксимации представлены в таблице 4.1, для задачи классификации в таблице 4.2.
96
Таблица 4.1 Описание наборов данных для задачи аппроксимации
Набор
данных
Количест
Количество
во
входных
образцов
переменных
Diabetes
43
2
Краткое описание
Прогнозирование
количества
дефицита
инсулина у больных диабетом детей
Расчет величины давления выдерживаемого
Plastic
160
2
образцом определенного состава пластика при
заданой температуре
Аппроксимация
Quake
2178
3
величины
толчков
при
замлетресении, при известной глубине, широте
и долготе.
ELE2
1066
4
Проблема оценки стоимости обслуживания
городских электрических сетей
Таблица 4.2 Описание наборов данных для задачи классификации
Названи
е
данных
Bupa
Число
Число входн
образцо ых
в
перем
енных
345
6
Чис
ло
клас
сов
Краткое описание
2
Задача оценки зависимости человека от алкоголя.
Входные данные содержат пять наиболее характерных
анализов крови, указывающих на возможные
повреждения печени вследствие злоупотребления
алкоголем. Последний показатель эквивалентная –
дневная доза алкоголя в крови. Выходные классы
указывают на умеренное или чрезмерное употребление
алкоголя в течение последнего года. Тест используется
при оформлении или отказе в оформлении договора
медицинского страхования некоторыми частными
компаниями.
97
Iris
150
Glass
New
thyroid
Wine
214
215
178
4
9
5
13
3
Задача классификации цветков ирисов по сортам. В
каждом классе по 50 образцов.
6
Задача определение типа стекла по химическому
составу, подобные задачи часто возникают перед
службой криминалистики США.
3
Классификация пациентов по состоянию функции
щитовидной железы. По каждому пациенту известно
пять анализов: содержание гормона Т3, гормона
тироксина, триодоферин, индекс реакции на
стимулирование щитовидной железы, гормон ТТГ.
Пациентов по состоянию функции щитовидной железы
разделяют на три класса: нормальная, гиперактивная
(избыточная) и гипоактивная (недостаточная).
3
Отнесение вин к одному из трех сортов по данным 13
входных признаков, полученных при химическом
анализе.
4.1 Апробация методики построения трехкритериальных Парето–оптимальных
нечетких систем
Исследование проводилось на задачах аппроксимации и классификации. Сначала
представлены результаты апробации в задаче аппроксимации.
4.1.1 Апробация методики при построении трехкритериальных Парето-оптимальных
систем синглтон в задаче аппроксимации
Для апробации методики был составлен алгоритм, реализующий методику построения
трехкритериальных Парето-оптимальных нечетких систем (АРМПОС). Результаты работы
данного алгоритма являются подтверждением свойств данной методики.
На рисунках 4.1, 4.2, 4.3 приведены усредненные значения Парето-фронтов по 50 запускам
алгоритма АРМПОС, полученных на наборе данных Plastic. Если точки Парето-фронта
встречались менее 30 раз, они не учитывались при усреднении. Данные по точкам усредненных
фронтов на наборе данных Plastic представлены в таблице 4.3. MSEtra – обозначает
среднеквадратическую ошибку аппроксимации MSE на обучающей выборке, MSEtst –
обозначает среднеквадратическую ошибку аппроксимации MSE на тестовой выборке.
98
Таблица 4.3 Усредненные результаты построения Парето-фронтов на данных Plastic
Количество
Критерий
правил
MSEtra MSEtst интерпретируемости
8
4,77
4,72
0,8465
9
4,12
4,14
0,7548
10
3,96
3,51
0,7261
11
3,55
3,32
0,7044
12
3,35
3,32
0,6793
13
3,31
3,38
0,6449
14
3,21
3,25
0,6359
15
3,17
3,23
0,6299
16
3,09
2,99
0,6199
21
3,08
2,95
0,6184
24
2,92
2,93
0,6025
29
2,88
2,87
0,6015
33
2,76
2,8
0,6011
37
2,62
2,77
0,5530
41
2,6
2,68
0,5365
56
2,58
2,67
0,4629
70
2,52
2,64
0,4332
91
2,5
2,53
0,4273
MSEtra
MSEtst
5,3
4,8
MSE
4,3
3,8
3,3
2,8
2,3
0
20
40
60
Количество правил
80
100
Рис. 4.1. Проекция трехкритериального Парето-фронта на оси MSE и «Количество правил» на
данных Plastic
99
0,9
Критерий инетерпретируемости
0,9
0,8
0,8
0,7
0,7
0,6
0,6
0,5
0,5
0,4
0
20
40
60
80
100
Количество правил
Рис. 4.2. Проекция трехкритериального Парето-фронта на оси «Критерий интерпретируемости»
и «Количество правил» на данных Plastic
4,7
MSEtra
4,2
3,7
3,2
2,7
2,2
0,4
0,5
0,6
0,7
0,8
0,9
Критерий интерпретируемости
Рис. 4.3. Проекция трехкритериального Парето-фронта на оси «Критерий интерпретируемости»
и «MSEtra» на данных Plastic
На рисунках 4.4, 4.5, 4.6 приведены усредненные значения Парето-фронтов по 50 запускам
алгоритма АРМПОС, полученных на наборе данных Quake. Если точки Парето-фронта
встречались менее 30 раз, они не учитывались при усреднении. Данные по точкам усредненных
фронтов на наборе данных Quake представлены в таблице 4.4.
100
Таблица 4.4 Усредненные результаты построения Парето-фронтов на данных Quake
Количество
Критерий
правил
MSEtra MSEtst интерпретируемости
6
0,048
0,056
0,8845
9
0,045
0,051
0,8571
15
0,043
0,051
0,7813
36
0,042
0,051
0,7751
60
0,042
0,049
0,7527
81
0,042
0,047
0,6777
192
0,042
0,046
0,5813
257
0,042
0,048
0,5034
393
0,041
0,043
0,4647
505
0,039
0,044
0,4419
640
0,037
0,04
0,3192
720
0,035
0,038
0,2509
900
0,035
0,038
0,2307
999
0,035
0,038
0,1743
MSEtra
MSEtst
400
600
0,060
0,055
MSE
0,050
0,045
0,040
0,035
0,030
0
200
800
1000
Количество правил
Рис. 4.4. Проекция трехкритериального Парето-фронта на оси MSE и «Количество правил» на
данных Quake
101
0,9
Критерий интерпретируемости
0,8
0,7
0,6
0,5
0,4
0,3
0,2
0,1
0
200
400
600
800
1000
Количество правил
Рис. 4.5. Проекция трехкритериального Парето-фронта на оси «Критерий интерпретируемости»
и «Количество правил» на данных Quake
0,044
0,042
MSEtra
0,040
0,038
0,036
0,034
0,032
0,030
0,1
0,2
0,3
0,4
0,5
0,6
0,7
0,8
0,9
Критерий интерпретируемости
Рис. 4.6. Проекция трехкритериального Парето-фронта на оси MSEtra и «Критерий
интерпретируемости» на данных Quake
На рисунках 4.7, 4.8, 4.9 приведены усредненные значения Парето-фронтов по 50 запускам
алгоритма АРМПОС, полученных на наборе данных Quake. Если точки Парето-фронта
встречались менее 30 раз, они не учитывались при усреднении. Данные по точкам усредненных
фронтов на наборе данных Ele-2 представлены в таблице 4.5.
102
Таблица 4.5 Усредненные результаты построения Парето-фронтов на данных Ele-2
Количество
правил
39
40
41
120
400
625
MSEtra
28932,91
17452,03
16739,86
16270,2
15449,81
14904,17
MSEtst
31128,31
20063,91
18406,16
19239,46
17996,05
18506,4
MSEtra
Критерий
интерпретируемости
0,8533
0,8312
0,6411
0,5811
0,4441
0,3363
MSEtst
32500
30500
28500
MSE
26500
24500
22500
20500
18500
16500
14500
20
120
220
320
420
520
620
Количество правил
Рис. 4.7. Проекция трехкритериального Парето-фронта на оси MSE и «Количество правил» на
данных Ele-2
103
Критерий интерпретируемости
0,9
0,8
0,7
0,6
0,5
0,4
0,3
20
120
220
320
420
520
620
Количество правил
Рис. 4.8. Проекция трехкритериального Парето-фронта на оси «Критерий интерпретируемости»
и «Количество правил» на данных Ele-2
28500
26500
MSEtra
24500
22500
20500
18500
16500
14500
0,3
0,4
0,5
0,6
0,7
0,8
0,9
Критерий интерпретируемости
Рис. 4.9. Проекция трехкритериального Парето-фронта на оси MSE и «Критерий
интерпретируемости» на данных Ele-2
По представленным рисункам и таблицам видно, что АРМПОС, позволяет достичь
распределения Парето-оптимальных нечетких систем типа синглтон равномерно по каждому из
104
критериев, а поскольку данный алгоритм является реализацией методики, то данные свойства
характерны и для всей методики в задаче построения нечетких аппроксиматоров.
Сравним полученные результаты с лучшими мировыми аналогами. Результаты работы
алгоритмов-аналогов представлены в статьях [80, 111]. Во избежание разночтения, обратим
внимание на формулу MSE, применяемую данными исследователями, ее значение всегда будет
в два раза меньше из-за коэффицента ½, поэтому обозначим сводные результаты как MSE/2.
Результаты по критерию интерпретируемости несравнимы, так как формулы критерия
интерпретируемости используемые в работах различны и отличаются от используемого критерия
в методике построения трехкритериальных Парето-оптимальных нечетких систем. Результаты
сравнения представлены в таблице 4.6
Таблица 4.6 Сравнение результата работы алгоритма с аналогами
Алгоритм
Число
прави
л
АРМПОС
TS-NSGA-II
TS-SPEA2
Pulkkinen
TS-SP2-St
41
41
33
24.9
21.7
АРМПОС
TS-SP2-St
16
13.2
АРМПОС
TS-SP2-St
15
34.9
Обучающая
выборка
MSEtra/2
Ele- 2
8369
14488
13272
9366
17619
Plastic
1.546
1.600
Quake
0.0213
0.0185
Тестовая
выборка
MSEtst/2
9203
18419
17533
10429
22099
1.496
1.647
0.0212
0.0192
В таблице видно, что на данных Ele-2 алгоритм получает более точное решение, чем TSNSGA-II, при таком же количестве правил, однако уступает при меньшем количестве правил. На
данных Plastic АРМПОС превосходит по точности, но только при условии увеличении
количества правил. На данных Quake АРМПОС может соревноваться по точности только при
меньшем количестве правил.
Результаты алгоритма, реализующего методику построения трехкритериальных Паретооптимальных нечетких систем сопоставимы с мировыми аналогами, что указывает на его
эффективность в задаче построения Парето-оптимальных нечетких систем для задачи
аппроксимации.
Далее будет представлена задача классификации.
105
4.1.2 Апробация методики при построении трехкритериальных Парето-оптимальных
питтсбугских классификаторов
На рисунках 4.10, 4.11, 4.12 приведены усредненные значения Парето-фронтов по 50
запускам алгоритма АРМПОС, полученных на наборе данных Iris. Если точки Парето-фронта
встречались менее 30 раз, они не учитывались при усреднении. Данные по точкам усредненных
фронтов на наборе данных Iris представленны в таблице 4.7. %tra – обозначает процент
правильной классификации на обучающей выборке, %tst – обозначает процент правильной
классификации на тестовой выборке.
Таблица 4.7 Усредненные результаты построения Парето-фронтов на данных Iris
Количество
правил
3
4
5
6
%tra
86,67
99,03
99,32
99,36
Критерий
%tst интерпретируемости
83,33
0,978
93,82
0,8291
93,98
0,7326
93,98
0,7142
%tra
%tst
100
% правильной классификации
98
96
94
92
90
88
86
84
82
80
2
3
4
5
6
7
Количество правил
Рис. 4.10. Проекция трехкритериального Парето-фронта на оси «% правильной классификации»
и «Количество правил» на данных Iris
106
Критерий интерпретируемости
1,00
0,95
0,90
0,85
0,80
0,75
0,70
2
3
4
5
6
Количество правил
7
Рис. 4.11. Проекция трехкритериального Парето-фронта на оси «Критерий
интерпретируемости» и «Количество правил» на данных Iris
101
%правильной классификации
99
97
95
93
91
89
87
85
0,7
0,75
0,8
0,85
0,9
0,95
1
Критерий интерпретируемости
Рис. 4.12. Проекция трехкритериального Парето-фронта на оси «Критерий
интерпретируемости» и «% правильной классификации» на данных Iris
На рисунках 4.13, 4.14, 4.15 приведены усредненные значения Парето-фронтов по 50
запускам алгоритма АРМПОС, полученных на наборе данных New Thyroid. Если точки Паретофронта встречались менее 30 раз, они не учитывались при усреднении. Данные по точкам
усредненных фронтов на наборе данных Iris представлены в таблице 4.8.
107
Таблица 4.8 Усредненные результаты построения Парето-фронтов на данных New
Thyroid
Количество
правил
10
11
14
18
22
28
34
43
49
97
109
%tra
37,38
47,74
60,96
76,30
84,23
84,84
85,91
87,41
91,03
91,14
93,26
Критерий
%tst интерпретируемости
37,54
0,7719
47,03
0,7544
60,11
0,6645
74,61
0,6424
81,76
0,6237
81,45
0,5895
83,35
0,5758
85,78
0,5727
88,76
0,5676
87,96
0,5478
91,86
0,5391
%tra
%tst
% правильной классификации
95
85
75
65
55
45
35
5
25
45
65
85
105
Количество правил
Рис. 4.13. Проекция трехкритериального Парето-фронта на оси «% правильной классификации»
и «Количество правил» на данных New Thyroid
108
Критерий интерпретируемости
0,80
0,75
0,70
0,65
0,60
0,55
0,50
5
25
45
65
85
105
Количество правил
Рис. 4.14. Проекция трехкритериального Парето-фронта на оси «Критерий
интерпретируемости» и «Количество правил» на данных New Thyroid
%правильной классификации
95
85
75
65
55
45
35
0,5
0,55
0,6
0,65
0,7
0,75
0,8
Критерий интерпретируемости
Рис. 4.15. Проекция усредненных значений построенных Парето-фронтов на оси «Критерий
интерпретируемости» и «%tra» на данных New Thyroid
На рисунках 4.16, 4.17, 4.18 приведены усредненные значения Парето-фронтов по 50
запускам алгоритма АРМПОС, полученных на наборе данных Wine. Если точки Парето-фронта
встречались менее 30 раз, они не учитывались при усреднении. Данные по точкам усредненных
фронтов на наборе данных Wine представлены в таблице 4.9. Для корректности дальнейшего
109
сравнения со статьей [138] из всего набора данных использовались найденные исследователями
информационные признаки 1, 7, 10, 13.
Таблица 4.9 Усредненные результаты построения Парето-фронтов на данных Wine
Количество
правил
3
4
5
8
14
24
52
71
%tra
95,62
96,24
96,85
96,93
97,32
98,25
99,38
99,44
Критерий
%tst интерпретируемости
89,64
0,8752
91,13
0,8684
90,26
0,8303
89,76
0,8263
93,76
0,8098
93,27
0,8024
94,94
0,7918
95,72
0,7323
%tra
%tst
% правильной классификации
99
97
95
93
91
89
2
12
22
32
42
52
62
72
Количество правил
Рис. 4.16. Проекция усредненных значений построенных Парето-фронтов на оси «%
правильной классификации» и «количество правил» на данных Wine
110
0,88
Критерий интерпретируемости
0,86
0,84
0,82
0,80
0,78
0,76
0,74
0,72
2
12
22
32
42
52
62
72
Количество правил
Рис. 4.17. Проекция усредненных значений построенных Парето-фронтов на оси «Критерий
интерпретируемости» и «количество правил» на данных Wine
100,00
99,50
99,00
98,50
% tra
98,00
97,50
97,00
96,50
96,00
95,50
95,00
0,70
0,72
0,74
0,76
0,78
0,80
0,82
0,84
0,86
0,88
0,90
Критерий интерпретируемости
z
Рис. 4.18. Проекция усредненных значений построенных Парето-фронтов на оси «Критерий
интерпретируемости» и «%tra» на данных Wine
По представленным рисункам и таблицам видно, что АРМПОС, позволяет достичь
распределения Парето-оптимальных питтсбургских классификаторов равномерно по каждому из
критериев, а поскольку данный алгоритм является реализацией методики, то данные свойства
характерны и для всей методики в задаче построения нечетких классификаторов.
111
Сравним результаты работы с лучшими мировыми аналогами. Результаты работы
алгоритмов аналогов представлены в статьях [45, 138]. В статье [138] результаты ошибок на
тестовой выборке к сожалению, не представлены. В статье [45] нет указания количества правил,
на которых эти результы получены. Результаты по индексу интерпретируемости несравнимы, так
как формулы индекса интерпретируемости, используемые сравнимаемой работе различны и
отличаются от используемого в методике построения трехкритериальных Парето-оптимальных
нечетких систем. Результаты сравнения представлены в таблице 4.10 для данных Iris, в таблице
4.11 для данных New Thyroid.
Таблица 4.10 Сравнение результата работы алгоритма с аналогами на данных Iris
Алгоритм
АРМПОС
Число
прави
л
4
%tra
%tst
99,03
93,82
-
Wang and
Lee
3
97.5
Wu and Chen
3
96.2
-
Chang and
Lilly
5
99.3
-
Pablo and
Camargo
5
99.2
-
Pulkkinen
and Koivisto
3,6
96.77
-
Ant Miner
-
97,26
96,00
Core
-
95,48
92,67
Hider
-
97,48
96,67
Sgerd
-
97,33
96,67
Target
-
93,50
92,93
В таблице 4.10 видно, что на данных Iris алгоритм превосходит большинство алгоритмов,
кроме Chang and Lilly, который использует больше правил, однако на тестовых данных занимает
4 место среди тех алгоритмов, в которых эта информация указана.
112
Таблица 4.11 Сравнение результата работы алгоритма с аналогами на данных New
Thyroid
Алгоритм
АРМПОС
Ant Miner
%tra
93,26
99,17
%tst
91,86
90,76
Core
92,66
90,76
Hider
95,97
90,28
Sgerd
90,23
88,44
Target
88,05
86,79
По таблице 4.11 видно, что на данных New Thyroid АРМПОС уступает на обучающих
данных только алгоритму Ant Miner, но превосходит всех по точности на тестовых данных.
Таблица 4.12 Сравнение результата работы алгоритма с аналогами на данных Wine
%tra
%tst
АРМПОС
Число
правил
52
99,38
94,94
Corcoran and Sen
60
100
-
Setnes and Roubos
3
98,31
-
Ishibushi et al.
60
99,4
-
Abonyi et al.
3,6
91,22
-
PMCCA Solution
5
98,31
-
Ant Miner
-
99,69
85,30
Core
-
99,06
92,06
Hider
-
97,19
94,87
Sgerd
-
91,76
82,61
Target
-
85,19
87,09
Алгоритм
По таблице 4.12 видно, что на данных Wine АРМПОС уступает на обучающих данных
только алгоритмам с меньшим количеством правил и представляет интерес только при большом
количестве правил, но превосходит всех по точности на тестовых данных.
113
Результаты алгоритма, реализующего методику построения трехкритериальных Паретооптимальных нечетких систем сопоставимы с мировыми аналогами, что указывает на его
эффективность в задаче построения Парето-оптимальных нечетких систем для задачи
классификации.
4.2 Исследование гибридного метода структурной и параметрической оптимизации
нечетких систем
Исследование метода будет происходить через его реализацию в виде алгоритма. Алгоритм
будет исследован только в задаче аппроксимации, так как пока не представлен алгоритм
оптимизации весов питтсбурского классификатора на основе МНК, а его версия для системы
синглтон существует, и ее эффективность показана в статье [40]. Кратко будет показано
исследование параметров алгоритмов, входящих в гибридный метод кроме АПКГП, так как его
качество линейно зависит от количества правил, которые он добавляет в нечеткую систему, и
МНК, который не имеет настраиваемых параметров. При исследовании алгоритмов, входящих в
гибридный метод, по времени использовался следующий компьютер:
 Процессор: Intel I7 920;
 ОЗУ: 4 ГБ DRR2 частота 400 Мгц;
 ОС Windows XP.
4.2.1 Исследование алгоритма пчелиной колонии для идентификации параметров
нечеткой системы
Для исследования процесса идентификации параметров проводились эксперименты на
типовых математических функциях, по которым бы составлены таблицы наблюдений:
1.
F ( x, y)  y  sin x , где x, y  [ / 2;  / 2] , обучающая выборка состоит из 121
наблюдения. Каждая входная лингвистическая переменная определена на пяти равномерно
распределенных термах – соответственно 25 правил в базе.
2.
 2
 2
F ( x, y )  sin  x   sin  y  , где x, y  [5;5] , обучающая выборка состоит из 121
 
 
наблюдения. Каждая входная лингвистическая переменная определена на пяти равномерно
распределенных термах – соответственно 25 правил в базе.
114
3.


F ( x)  1  10  exp  100  ( x  0.7) 2

  125  
 sin 

x  1.5  



 x  0.1  ,




где
x  [0;1] ,
обучающая
выборка состоит из 101 наблюдения. Входная лингвистическая переменная определена на
двенадцати равномерно распределенных термах – соответственно 12 правил в базе.
4.
f ( x1, x2 )  (1  x12  x21,5 )2 , где x1, x2  [1, 5] обучающая выборка состоит из 125
наблюдений. Каждая входная лингвистическая переменная определена на пяти равномерно
распределенных термах – соответственно 25 правил в базе.
5.
F ( x, y , z )  1  x
1
2
 y 1  z
3
2
, где x, y, z  [1;5] , обучающая выборка состоит из 125
наблюдений. Каждая входная лингвистическая переменная определена на трех равномерно
распределенных термах – соответственно 27 правил в базе.
В процессе исследования алгоритма изменялись следующие параметры: количество
итераций,
размер
улья,
начальная
температура,
коэффициент
охлаждения,
алгоритм
формирования популяции, процент пчел-разведчиков.
На рисунке 4.19 приведены зависимости среднеквадратической ошибки от числа итераций.
Эксперимент показал, что разумный компромисс между точностью и временем выполнения
достигается в среднем при 300 итерациях.
На рисунке 4.20 приведены распределения среднеквадратической ошибки от размера улья.
Размер популяции играет важную роль в роевых алгоритмах, оказывая влияние на точность и
время вычисления. Малый размер популяции приводит к локальному оптимуму, большой размер
увеличивает время вычисления и ухудшает сходимость.
Эксперимент показал, что при аппроксимации второй и третьей тестовой функции этот
параметр оказывает влияние только на значениях до 100, для четвертой и пятой тестовой
функции влияние параметра незначительно. Разумный компромисс между точностью и временем
выполнения для тестируемых функций достигается в среднем при 100 единицах.
115
0,0020
функция 1
0,0010
функция 2
0,0018
0,0016
0,0014
0,0008
RMSE
RMSE
0,0012
0,0006
0,0010
0,0008
0,0006
0,0004
0,0004
.
0,0002
0,0002
0
200
400
600
800
0
1000
200
400
600
800
1000
число итераций
число итераций
0,0032
0,0032
функция 3
0,0030
функция 5
0,0028
0,0030
0,0026
0,0024
0,0028
0,0022
RMSE
RMSE
0,0020
0,0018
0,0016
0,0014
0,0026
0,0024
0,0012
0,0010
0,0022
0,0008
0,0006
0,0004
0,0020
0
200
400
600
число итераций
800
1000
0
200
400
600
800
1000
число итераций
Рис. 4.19 Зависимость распределения среднеквадратической ошибки от числа
итераций
На рисунке 4.21 приведены распределения среднеквадратической ошибки от процентов
разведчиков в улье. Эксперимент показал, что улей с большим процентом разведчиков чаще
находит лучшие решения, особенно хорошо это видно при аппроксимации третьей тестовой
функции. Однако, когда в улье меньше рабочих пчел, а, следовательно, и меньше возможностей
улучшить решение, алгоритм выдает решения, далекие от лучших. Типичным примером является
работа алгоритма при аппроксимации четвертой тестовой функции, когда алгоритм выдал самое
лучшее и самое худшее решения.
116
0,0016
0,0020
функция 2
0,0014
0,0016
0,0012
0,0014
0,0010
0,0012
RMSE
RMSE
функция 3
0,0018
0,0008
0,0006
0,0010
0,0008
0,0004
0,0006
0,0002
0,0004
0
40
80
120
160
200
240
0,0002
280
0
размер улья
100
150
200
250
300
размер улья
функция 4
0,0030
50
функция 5
0,0032
0,0028
0,0028
0,0024
0,0020
RMSE
RMSE
0,0026
0,0024
0,0022
0,0016
0,0012
0,0008
0,0020
0
40
80
120
160
размер улья
200
240
280
0,0004
0
50
100
150
200
250
300
размер улья
Рис. 4.20 Зависимость распределения среднеквадратической ошибки от размера улья
На рисунке 4.22 приведены распределения среднеквадратической ошибки от начальной
температуры. Эксперимент показал, что существенного влияния на качество решения данный
параметр не оказывает.
На рисунке 4.23 приведены распределения среднеквадратической ошибки от коэффициента
охлаждения. Эксперимент показал, что существенного влияния на качество решения данный
параметр не оказывает.
117
функция 1
0,0008
функция 2
0,0013
0,0012
0,0007
0,0011
0,0010
0,0006
RMSE
RMSE
0,0009
0,0005
0,0004
0,0008
0,0007
0,0006
0,0005
0,0003
0,0004
0,0003
0,0002
0
20
40
60
80
0
100
20
40
60
80
100
количество разведчиков в процентах от размера улья
количество разведчиков в процентах от размера улья
функция 4
0,0030
0,0014
0,0028
0,0012
RMSE
RMSE
0,0016
функция 3
0,0032
0,0026
0,0010
0,0024
0,0008
0,0022
0,0006
0,0020
0,0004
0
20
40
60
80
100
количество разведчиков в процентах от размера улья
0
20
40
60
80
100
количество разведчиков в процентах от размера улья
функция 5
0,0035
0,0030
RMSE
0,0025
0,0020
0,0015
0,0010
0,0005
0
20
40
60
80
100
количество разведчиков в процентах от размера улья
Рис. 4.21 Зависимость распределения среднеквадратической ошибки от числа разведчиков
118
функция 1
функция 2
0,0008
0,0016
0,0014
0,0012
RMSE
RMSE
0,0006
0,0010
0,0008
0,0004
0,0006
0,0004
0,0002
50
100
150
200
250
300
50
100
начальная температура
0,0032
150
200
250
300
начальная температура
функция 3
0,0024
функция 4
0,0022
0,0030
0,0020
0,0018
0,0016
RMSE
RMSE
0,0028
0,0026
0,0014
0,0012
0,0010
0,0008
0,0024
0,0006
0,0004
0,0022
50
100
150
200
250
300
50
начальная температура
100
150
200
250
300
начальная температура
Рис. 4.22 Зависимость распределения среднеквадратической ошибки от значения
начальной температуры
На рисунке 4.24 приведены распределения среднеквадратической ошибки от алгоритма
формирования популяции. Самый быстрый по сходимости – элитный алгоритм, но именно он
быстрее всего «застревает» на более слабом локальном минимуме. Следующий по скорости
сходимости – алгоритм бинарных турниров, но также склонен к застреванию в локальных
минимумах. Алгоритм рулетки сочетает как преимущества случайной выборки, так и элитного
подхода. Случайная выборка позволяет быстрее выйти из локального минимума, но не
гарантирует получения лучшего решения. На рисунке 4.25 видно, что именно этот алгоритм дает
худшее решение почти для всех тестовых функций.
119
функция 3
0,0030
функция 4
0,0018
0,0016
0,0028
RMSE
RMSE
0,0014
0,0026
0,0012
0,0010
0,0024
0,0008
0,0022
0,5
0,6
0,7
0,8
0,9
1,0
0,5
коэффициент понижения температуры
0,6
0,7
0,8
0,9
1,0
коэффициент понижения температуры
Рис. 4.23 Зависимость распределения среднеквадратической ошибки от значения
коэффициента понижения температуры
0,0006
функция 1
функция 2
0,0014
0,0012
RMSE
RMSE
0,0005
0,0004
0,0010
0,0008
0,0003
0,0006
0,0004
0,0002
1
2
3
1
4
2
3
4
формирование популяции:
1- бинарные турниры, 2 - рулетка, 3 - элитный, 4 -случайный
формирование популяции:
1- бинарные турниры, 2 - рулетка, 3 - элитный, 4 -случайный
0,0020
функция 3
0,0030
функция 5
0,0016
0,0028
RMSE
RMSE
0,0012
0,0026
0,0008
0,0004
0,0024
0,0000
1
2
3
4
формирование популяции:
1- бинарные турниры, 2 - рулетка, 3 - элитный, 4 -случайный
1
2
3
4
формирование популяции:
1- бинарные турниры, 2 - рулетка, 3 - элитный, 4 -случайный
Рис. 4.24 Зависимость распределения среднеквадратической ошибки от алгоритма
формирования популяции
120
На рисунке 4.25 показано динамическое распределение среднеквадратической ошибки
лучшего решения в зависимости от алгоритма формирования популяции. Лучшее решение
выбиралось из десяти запусков алгоритма настройки. Выделить абсолютно лучший алгоритм
формирования популяции на данных тестовых функциях не представляется возможным. Худшие
позиции у алгоритма формирования популяции методом случайной выборки. Для настройки
нечеткого аппроксиматора на мультимодальных тестовых функциях (типичный представитель
функция 1) требуется не более 50 итераций. А для аппроксимации мультимодальных тестовых
функций (функция 3) необходимо более 90 итераций.
функция 1
функция 3
функция 2
функция 5
Рис. 4.25 - Динамика изменения ошибки в зависимости от количества итераций
Компьютерный эксперимент позволил установить, что зависимость времени настройки
нечеткой системы от параметров алгоритма носит линейный характер. В таблице 4.13 приведены
регрессионные модели зависимости времени вывода настройки нечеткой системы, в скобках
указаны квадраты коэффициентов корреляции R2 как мера точности полученных зависимостей.
121
Таблица 4.13 - Зависимость времени настройки нечеткой системы от параметров алгоритма
в секундах
Функция
1
Время от числа
итераций
Время от размера
улья
Время от процента
разведчиков в улье
-0,425486 +
0,02661*iter
0,05*size
0,05*percent
(R2 = 1)
(R2 = 1)
0,05*size
0,05*percent
(R2 = 1)
(R2 = 1)
(R2 = 0,9986)
2
-0,1406 +
0,02622*iter
(R2 = 0,9981)
3
4
-0,4778 +
0,007833*iter
-0,214286 +
0,0135714*size
(R2 = 0,9775)
(R2 = 0,9377)
-0,326782 +
0,02623*iter
0,05*size
0,05*percent
(R2 = 1)
(R2 = 1)
-0,470238 +
0,106845*size
0,1*percent
(R2 = 0,9988)
5
-0,535 +
0,053853*iter (R2
= 0, 9997)
(R2 = 0, 9991)
(R2 = 1)
4.2.2 Исследование алгоритма адаптивной эволюционной стратегии для идентификации
параметров нечеткой системы
Исследование алгоритма адаптивной эволюционной стратегии выполнялось на таких же
тестовых функция, как и алгоритм АПКИП. В процессе исследования алгоритма, изменялись
типы алгоритмов: инициализация, скрещивание и мутация. Для лучших сочетаний алгоритмов
проводились исследования таких параметров алгоритмов как тип функции принадлежности,
размер популяции и количество потомков.
Первая группа экспериментов нацелена на то, чтобы выбрать лучшее сочетание алгоритмов
для каждого набора данных: инициализации, скрещивания и мутации. В таблице 4.14 приведена
расшифровка используемых условных обозначений.
122
Таблица 4.14 – Условные обозначения алгоритмов
Тип
Сокращен
ие
Полное
название
Алгоритм
Инициализации
Мутации
С
О
СКОШМ
СКОШМ-РО
Скрещивания
У
М
Унифи
цирова
нное
Многото
чечное
Слу
чайн
ая
Огранич
енная
На основе
На основе
среднеквадратич среднеквадратичес
еского
кого отклонения
отклонения шага
шага мутации и
мутации
угла ротации
Например, У-С-СКОШМ – значит, что в алгоритме параметрической идентификации
нечетких систем на основе эволюционной стратегии использовались следующие алгоритмы:
унифицированное
скрещивание,
случайная
инициализация
и
мутация
на
основе
среднеквадратического отклонения шага мутации.
Во второй группе экспериментов для лучшего сочетания алгоритмов будет проведено
исследование на различных типах функции принадлежности, размерах популяции, количествах
потомков.
В
условном
обозначении
первый
параметр
указывает
на
тип
функции
принадлежности, второй параметр на размер популяции, третий параметр на количество
потомков.
На рисунке 4.26 приведены распределения RMSE математической функции №2 от варианта
выбора алгоритмов: инициализации, скрещивания и мутации. При сочетании М-С-СКОШМ на
обучающей выборке и на тестовой выборке достигается минимальное значение ошибки. По
результатам проведенных экспериментов при таком же сочетании М-С-СКОШМ наблюдается
минимальная средняя ошибка.
Функция №2
0,5
0,45
У-С-СКОШМ
0,4
М-С-СКОШМ
R 0,35
M
0,3
S
0,25
E
0,2
У-О-СКОШМ
М-О-СКОШМ
У-С-СКОШМ-РО
М-С-СКОШМ-РО
0,15
У-О-СКОШМ-РО
0,1
0
1
2
3
4
5
6
Вариант алгоритмов
7
8
9
М-О-СКОШМ-РО
123
Рис. 4.26 Результаты работы алгоритма от типа мутации, инициализации и скрещивания
на функции №2
На рисунке 4.27 приведены распределения RMSE математической функции №2 при
сочетании
М-С-СКОШМ
от
варианта
выбора
параметров
алгоритма:
тип
функции
принадлежности, размера популяции и количество потомков. При сочетании параметров
алгоритма Треугольник-20-15 достигается минимальное значение ошибки. Однако, по
результатам проведенных экспериментов при параметрах алгоритма Треугольник-35-25
наблюдается минимальная средняя ошибка.
Функция №2 - М-С-СКОШМ
0,4
Треугольник-20-15
0,35
Гауссоида-20-15
R 0,3
M
0,25
S
E 0,2
Парабола-20-15
Треугольник-10-7
Гауссоида-10-7
0,15
Парабола-10-7
0,1
0
1
2
3
4
5
6
7
8
9
10
Вариант параметров алгоритма
Треугольник-35-25
Гауссоида-35-25
Рис. 4.27 Результаты параметров алгоритма на функции №2
На рисунке 4.28 приведены распределения RMSE математической функции №3 от варианта
выбора алгоритмов: инициализации, скрещивания и мутации. При сочетании У-О-СКОШМ
достигается
минимальное
значение
ошибки.
Однако,
по
результатам
проведенных
экспериментов при сочетании У-О-СКОШМ-РО на обучающей выборке и на тестовой выборке
наблюдается минимальная средняя ошибка.
124
Функция №3
0,012
У-С-СКОШМ
0,01
М-С-СКОШМ
R 0,008
M
S 0,006
E 0,004
У-О-СКОШМ
М-О-СКОШМ
У-С-СКОШМ-РО
0,002
М-С-СКОШМ-РО
0
У-О-СКОШМ-РО
0
1
2
3
4
5
6
7
8
9
М-О-СКОШМ-РО
Вариант алгоритмов
Рис. 4.28 Результаты вариантов алгоритма на функции №3
На рисунке 4.29 приведены распределения RMSE математической функции №3 при
сочетании У-О-СКОШМ-РО от варианта выбора параметров алгоритма: тип функции
принадлежности, размера популяции и количество потомков. При сочетании параметров
алгоритма Треугольник-35-25 достигается минимальное значение ошибки. По результатам
проведенных
экспериментов
при
сочетании
параметров
алгоритма
Треугольник-10-7
наблюдается минимальная средняя ошибка.
Функция №3 - У-О-СКОШМ-РО
0,007
Треугольник-20-15
0,006
Гауссоида-20-15
0,005
R
M 0,004
S 0,003
E
0,002
Парабола-20-15
Треугольник-10-7
Гауссоида-10-7
Парабола-10-7
0,001
Треугольник-35-25
0
0
1
2
3
4
5
6
7
8
Вариант параметров алгоритма
9
10
Гауссоида-35-25
Парабола-35-25
Рис. 4.29 Результаты параметров алгоритма на функции №3
125
На рисунках 4.30 приведены распределения RMSE математической функции №5 от
варианта выбора алгоритмов: инициализации, скрещивания и мутации. При сочетании У-ОСКОШМ-РО достигается минимальное значение ошибки. По результатам проведенных
экспериментов при сочетании У-О-СКОШМ-РО минимальная средняя ошибка.
Функция №5
0,0025
У-С-СКОШМ
0,002
М-С-СКОШМ
R
0,0015
M
S
0,001
E
У-О-СКОШМ
М-О-СКОШМ
У-С-СКОШМ-РО
0,0005
М-С-СКОШМ-РО
0
У-О-СКОШМ-РО
0
1
2
3
4
5
6
7
8
9
М-О-СКОШМ-РО
Вариантов алгоритма
Рис. 4.30 Результаты вариантов алгоритма функции №5
На рисунках 4.31 приведены распределения RMSE математической функции №5 при
сочетании М-О-СКОШМ-РО от варианта выбора параметров алгоритма: тип функции
принадлежности, размера популяции и количество потомков. При сочетании параметров
алгоритма Треугольник-20-15 достигается минимальное значение ошибки. По результатам
проведенных экспериментов при сочетании параметров алгоритма Треугольник-20-15
наблюдается минимальная средняя ошибка.
126
Функции №5 - М-О-СКОШМ-РО
0,0025
Треугольник-20-15
0,002
Гауссоида-20-15
R
0,0015
M
S
0,001
E
Парабола-20-15
Треугольник-10-7
Гауссоида-10-7
Парабола-10-7
0,0005
Треугольник-35-25
0
0
1
2
3
4
5
6
7
8
9
10
Вариант параметров алгоритма
Гауссоида-35-25
Парабола-35-25
Рис. 4.31 Результаты параметров алгоритма на функции №5
Среди вариантов алгоритмов явного лидера установить не удалось. На функция №3 лучший
результат показало сочетание М-С-СКОШМ. На функция №2 лучший результат показало
сочетание У-О-СКОШМ-РО. На функции №5 показало сочетание М-О-СКОШМ-РО. По
функциям принадлежности явным фаворитом является Треугольник, однако, по размеру
популяции и количеству потомков результаты разные. При размере популяции 20 и количестве
потомков 15, лучшие результаты показаны на функциях №2 и №5. При размере популяции 35 и
количестве потомков 25, лучшие результаты показаны на функции №3.
Кроме того, был произведен анализ вариантов алгоритмов и их параметров по времени
обучения в секундах. Результаты показаны на таблицах 4.15, 4.16.
Для оценки временной эффективности каждого из вариантов алгоритмов построена
таблица 4.15. Жирным шрифтом выделено минимальное время выполнения, жирным курсивом
– максимальное.
Таблица 4.15 Распределение временных затрат в зависимости от вариантов алгоритмов
Вариант
алгоритмов
У-С-СКОШМ
М-С-СКОШМ
У-О-СКОШМ
М-О-СКОШМ
У-С-СКОШМРО
Номер функции
Функция
Функция
Функция
№1
№2
№3
168
645
14823
164
14933
567
608
161
14637
162
643
14972
175
582
14695
127
М-С-СКОШМРО
У-О-СКОШМРО
М-О-СКОШМРО
174
577
15575
170
866
14813
169
943
14948
Для оценки временной эффективности значений параметров алгоритмов построена
таблица 4.16.
Таблица 4.16 Распределение временных затрат в зависимости от вариантов параметров
алгоритмов
Тип функции
принадлежности
Треугольник
Гауссоида
Парабола
Треугольник
Гауссоида
Парабола
Треугольник
Гауссоида
Парабола
Diabetes (М-С-СКОШМ)
Размер популяции/количество потомков
10/7
20/15
35/25
Функция №1 (М-С-СКОШМ)
96
482
163
141
452
490
181
91
477
Функция №2 (У-О-СКОШМ-РО)
1571
1467
866
1204
2790
4173
1169
408
1267
Функция №3 (М-О-СКОШМ-РО)
10203
14948
20715
25380
34911
52646
8807
12143
17664
Сочетание алгоритмов У-О-СКОШМ на большинстве выборок является наиболее быстрым.
Самое медленное сочетание алгоритмов не выявлено. Сочетание параметров алгоритмов размер
популяции 10 и количество потомков 7, дает самый быстрый результат. Сочетание параметров
алгоритмов размер популяции 35 и количество потомков 25 дает самый медленный результат. На
большинстве выборок и вариантов алгоритмов лучшее время показала функция принадлежности
парабола, а худшее – гауссоида.
4.2.3 Исследование параметров гибридного метода структурной и параметрической
оптимизации нечетких систем
Проведено исследование гибридного численного метода. Данное исследование состоит в
варьировании количества решений, которые принимает и посылает алгоритм АПКИП и ААЭС с
целью поиска эффективного соотношения. Кроме того, было проведено сравнение результатов с
аналогами доступными в печати.
128
Зафиксируем количество отправляемых алгоритмом ААЭС решений в значении 10, а
принимаемых в значении 12 при размере популяции данного алгоритма в 20 особей и проведем
исследование соотношения количества отправляемых и принимаемых решений АПКИП.
Обозначение состоит из двух частей числа до знака «/» и после. До знака указывается количество
отправляемых баз правил, после количество принимаемых баз правил.
На рисунке 4.32 представлено распределение ошибки RMSE на функции №2. Сочетание
25/12 дает минимальную ошибку, однако ее разброс достаточно высок, решения 25/6 и 12/6
имеют слабый разброс. При совместной оценке средней ошибки и разброса лучшим является
сочетание 25/6.
Функция №2
0,0013
0,0012
0,0011
RMSE
0,001
0,0009
0,0008
0,0007
0,0006
0,0005
0,0004
0
1
2
3
4
5
6
7
Вариант сочетания отправляемых/принимаемых
25/12
25/6
25/3
12/12
12/6
12/3
Рис. 4.32 Зависимость ошибки от количества отправляемых/принимаемых решений
АПКИП функции №2
На рисунке 4.33 представлено распределение ошибки RMSE на функции №3. Сочетание
12/12 дает минимальную ошибку, однако ее разброс достаточно высок, решение 12/3 имеет
минимальный разброс. При совместной оценке средней ошибки и разброса лучшим является
сочетание 12/3.
129
Функция №3
0,0023
RMSE
0,0022
0,0021
0,002
0,0019
0,0018
0
1
2
3
4
5
6
Вариант сочетания отправляемых/принимаемых
25/12
25/6
25/3
12/12
12/6
7
12/3
Рис. 4.33 Зависимость ошибки от количества отправляемых/принимаемых решений
АПКИП функции №3
На рисунке 4.34 представлено распределение ошибки RMSE на функции №5. Сочетание
12/3 дает минимальную ошибку, и имеет минимальный разброс.
Функция №5
0,00016
0,00015
RMSE
0,00014
0,00013
0,00012
0,00011
0,0001
0,00009
0,00008
0
1
2
3
4
5
6
7
Вариант сочетания отправляемых/принимаемых
25/12
25/6
25/3
12/12
12/6
12/3
Рис. 4.34 Зависимость ошибки от количества отправляемых/принимаемых решений
АПКИП функции №5
Из экспериментов можно сделать вывод, что отправлять рекомендуется 12 решений, так как
на двух из трех функций они имеют более слабый разброс. Принимать рекомендуется 3 решения,
так как небольшое количество, позволяет принять лучшие из баз правил других алгоритмов, не
теряя значительную часть своих.
Исследуем теперь сочетания оправляемых и принимаемых баз правил алгоритмом ААЭС.
Алгоритм АПКИП при этом будет оправлять 25 баз правил, а принимать 12 баз правил.
130
На рисунке 4.35 представлено распределение ошибки RMSE на функции №2. Сочетание
10/6 дает минимальную ошибку, однако ее разброс достаточно высок, решение 5/3 имеет
минимальный разброс. При совместной оценке средней ошибки и разброса лучшим является
сочетание 5/3.
Рис. 4.35 Зависимость ошибки от количества отправляемых/принимаемых баз правил
ААЭС функции №2
На рисунке 4.36 представлено распределение ошибки RMSE на функции №3. Сочетание 5/3
дает минимальную ошибку и имеет минимальный разброс.
Рис. 4.36 Зависимость ошибки от количества отправляемых/принимаемых баз правил
ААЭС функции №3
131
На рисунке 4.37 представлено распределение ошибки RMSE на функции №5. Сочетание 5/3
дает минимальную ошибку, однако ее разброс выше, чем у решения 10/3. При совместной оценке
средней ошибки и разброса лучшим является сочетание 10/3.
Рис. 4.37 Зависимость ошибки от количества отправляемых/принимаемых баз правил
ААЭС функции №5
Из экспериментов можно сделать вывод, что отправлять рекомендуется 5 решений при этом
количестве более слабый разброс результатов. Принимать рекомендуется 3 решения, в двух
случаях из трех результат этого сочетания выше, а в третьем отличается незначительно.
Сравним результаты гибридного метода, улучшив по критерию точности вывода нечеткие
системы полученные методикой построения трехкритериальных Парето-оптимальных систем, и
сравним с мировыми аналогами. Результаты работы аналогов представлены в статьях [55, 80,
111]. Стоит отметить, что данные из статьи для сравнения приведены к MSE/2.
Из таблицы 4.17 видно, что результаты полученные ГМИСПОМ по величине ошибки ниже
чем у аналогов в 1,37 раз на тестовых данных на Ele-2, на обучающих данных ошибка
аппроксимации меньше в 1,48 раз, а на данных Diabest ошибка на тестовых данных выше в 1,88
раза, а на обучающих ниже в 1,53 раза. То есть результаты превосходят на обучающих выборках,
однако может наблюдаться эффект переобучения.
132
Таблица 4.17 – Сравнение результатов, полученых ГМИСПОМ с аналогами
Обучающая выборка Тестовая выборка
MSEtra/2
MSEtst/2
Diabets
ГМИСПОМ
0,3027
0,0339
Wang–Mendel
0,1142
0,7012
Алгоритм
COR-BWAS
0,0875
0,7294
Thrift
0,0373
0,4392
Pittsburgh
0,052
0,4755
Fuzzy-GAP
0,0715
0,2507
Pitts-DNF min
0,2081
0,227
Pitts-DNF med
0,0648
0,1607
Pitts-DNF max
0,0533
0,317
Ele- 2
ГМИСПОМ
TS-NSGA-II
TS-SPEA2
Pulkkinen
TS-SP2-St
Wang–Mendel
6326
14488
13272
9366
17619
56135
7612
18419
17533
10429
22099
56359
COR-BWAS
51332
51370
Thrift
73153
84236
Pittsburgh
105359
132565
Fuzzy-GAP
139583
145031
Pitts-DNF min
101472
106009
Pitts-DNF med
43465
49655
Pitts-DNF max
35104
44009
133
4.3 Исследование алгоритма генерации нечетких классификаторов на основе
экстремумов таблицы наблюдений
Проведено сравнение алгоритмов генерации баз правил нечетких классификаторов.
Эксперимент проводился по схеме кросс-валидации с разбиением 80% обучающей выборки и
20% тестовой. В качестве тестовых данных использовались наборы из репозитория KEEL.
Результаты работы данного алгоритма в сопоставлении с результатами алгоритмов
равномерного нечеткого разделения, разделения на основе нечетких методов (FCM) и его
модификаций (Gustafson-Kessel (GK), Gath-Geva(GG)) кластеризации c-средних [20, 49]
представлены в таблице 4.18.
Таблица 4.18 Результаты инициализации, полученные алгоритмом генерации нечетких
классификаторов в сравнении с аналогами
Алгоритм
генерации
алгоритм генерации
нечетких
классификаторов
Равномерное
2x2x2x2
Равномерное
2x3x2x2
Равномерное
2x2x3x3
Равномерное
3x3x3x3
Равномерное
3x3x4x3
Равномерное
4x3x4x3
Fuzzy-C-Means
Gustafson-Kessel
Gath-Geva
алгоритм генерации
нечетких
классификаторов
Fuzzy-C-Means
Gustafson-Kessel
Gath-Geva
алгоритм генерации
нечетких
классификаторов
Процент правильной
Среднее
классификации
количество
правил
Обучающая
Тестовая
Набор данных Iris
Среднее
количество
термов
95,16
90,66
3
12
66,67
66,67
16
8
82,17
80,67
24
9
95,5
97,33
36
10
89,33
89,16
81
12
95,67
93,33
108
13
144
4
4,6
3,4
14
16
20
13,6
3
5,8
7,8
6
39
75,4
101
78
3
15
94,67
96,83
64,32
64,66
56,83
62,66
74,66
76,66
Набор данных Wine
96,06
65,63
47,17
43,94
52,33
55,67
59,08
58,74
Набор данных New-Thyroid
96,74
88,25
134
Равномерное
2x2x2x2x2
Равномерное
3x2x2x2x2
Равномерное
3x3x2x2x2
Равномерное
3x3x2x2x3
Равномерное
3x3x2x3x3
Fuzzy-C-Means
Gustafson-Kessel
Gath-Geva
алгоритм генерации
нечетких
классификаторов
Fuzzy-C-Means
Gustafson-Kessel
Gath-Geva
27,21
26,51
32
10
74,53
75,35
48
11
81,86
81,4
72
12
82,09
79,53
108
13
82,67
80
72,91
74,42
76,05
77,21
78,14
78,14
Набор данных Glass
162
6,8
4,6
3,6
14
34
23
18
62,15
45,89
36,99
36,77
6
8,2
10,4
9,8
54
77,4
93,6
88,2
49,48
39,26
39,7
36,59
Для методов кластеризации число кластеров менялось от количества классов до утроенного
количества классов для каждого сочетания обучающей и тестовой выборки, а затем отбирались
лучшие по точности результаты, именно поэтому в таблице 4.17 дробные значения количества
правил и термов. Алгоритм равномерного нечеткого разделения использовался в таких
сочетаниях разбиения, пока число генерируемых правил не превысило количества образцов в
выборке.
По таблице 4.17 видно, что базы правил, получаемые алгоритмом при том же количестве
правил, точнее по проценту классификации в сравнении с аналогами. Алгоритм равномерной
инициализации дает сравнимые и превосходящие результаты по точности классификации на
данных Iris, но различаются эти решения более чем на 100 правил.
4.4 Исследование параллельной архитектуры разработанного программого комплекса
Результаты исследования представлены в таком же виде и последовательности, как
выполняет диспетчер многопоточных вычислений, указанный в разделе 3.5.6, а соотвествующие
схемы параллельного выполнения представлены в разделах 3.5.1-3.5.5.
Введем метрику оценки качества параллельной реализации алгоритма. Коэффициент
ускорения рассчитывается по формуле:
S ( p) 
t пос ,
t пар ( p)
135
где tпос – время, затраченное на последовательное выполнение алгоритма; tпар – время,
затраченное на паралелльное выполнение алгоритма на p вычислительных устройств; p –
количество вычислительных устройств [29].
Эксперименты проводились на трех процессорах с разным количествам ядер и разной
архитектурой. Тестовый стенд №1: Процессор Intel i5-2410M (2.3 ГГц), вычислительных ядер
два, вычислительных потоков 4, ОЗУ DDR3 8 ГБ частота 667 МГЦ, чипсет Sandy Bridge HM65.
Тестовый стенд №2:
Процессор Intel i7-3770K (3.5 ГГц), вычислительных ядер четыре,
вычислительных потоков восемь, ОЗУ DDR3 8 ГБ частота 667 МГЦ , чипсет Ivy Bridge Z77,
Тестовый стенд №3: Процессор AMD Opteon 6272 (2.1 Ггц), доступно вычислительных ядер
восемь (из шестнадцати), доступно вычислительных потоков восемь, ОЗУ DDR3 8 ГБ частота
667 МГЦ , чипсет G34.
Схема экспериментов построена на модели с выбыванием. То есть сначала проводится тест
на алгоритме расчета ошибки, выбирается лучшая схема параллельного выполнения для каждого
процессора, потом на каждом из алгоритмов идентификации структуры и параметров,
выбирается лучшая схема параллельного выполнения, а затем проводится тест совместного
использования лучших схем параллелизации для каждого алгоритма, с вариантами, когда какието из алгоритмов выполняются последовательно. Все тесты выполнялись 10 раз для
нивелирования влияния фоновых процессов[25].
Первый эксперимент  проверка эффективности схемы параллельного исполнения
алгоритма вычисления ста ошибок аппроксимации, на базе правил cодержащей 256 правил,
полученной равномерным разбиением по 4 терма на входную переменную в наборе Ele-2 данных
из репозитория KEEL.
Таблица 4.19 Сравнение временных затрат на расчет ошибки аппроксимации при разных
схемах параллельного выполнения.
Номер
тестового
стенда
Схема
параллельног
о выполнения
PF0
PF1
PF2
PF3
№1 (p=2)
№2(p=4)
№3(p=8)
Время
Время
Время
выполнени Ускорени выполнени Ускорени выполнени Ускорени
я
е
я
е
я
е
6,40
1,00
3,81
1,00
14,40
1,00
3,79
1,69
1,61
2,36
6,04
2,38
3,50
1,83
1,33
2,87
3,83
3,76
3,57
1,80
1,60
2,38
3,88
3,72
Из таблицы 4.19 видно, что лучшим вариантом параллельного выполнения на всех тестовых
стендах алгоритма расчета ошибки вывода аппроксиматора синглтон является схема PF2, то есть
параллельное выполнение по строкам таблицы наблюдения.
136
Проведем аналогичный тест для задачи расчета ошибки вывода питтсбургского
классификатора на наборе данных Iris с базой правил содержащей 256 правил, построенной
равномерным разбиением по 4 терма на каждую входную переменную.
Таблица 4.20 Сравнение временных затрат на расчет ошибки классификации при разных схемах
параллельного выполнения.
Номер
тестового
стенда
Схема
параллельног
о выполнения
PF0
PF1
PF2
PF3
№1(p=2)
№2(p=4)
№3(p=8)
Время
Время
Время
выполнени Ускорени выполнени Ускорени выполнени Ускорени
я
е
я
е
я
е
4,17
1,00
2,66
1,00
9,80
1,00
2,61
1,60
1,13
2,36
4,17
2,35
2,26
1,85
0,95
2,79
2,66
3,68
2,32
1,80
1,13
2,35
2,69
3,64
Из таблицы 4.20 видно, что лучшим вариантом параллельного выполнения на всех тестовых
стендах расчета ошибки вывода питтсбургского классификатора выполнялся по схеме PF2, то
есть параллельное выполнение по строкам таблицы наблюдения. Результат во всем схож с
результатами вывода для аппроксиматора кроме уменьшенного времени вывода, обусловленного
самой формулой вывода этого классификатора и меньшим количеством строк в таблице
наблюдений, поэтому дальнейшие результаты будут представлены только для нечеткой системы
синглтон.
Перейдем к оценке скорости генерации правил алгоритма АПКГП. Эксперимент состоит в
генерации десяти дополнительных правил для базы правил из 256 правил на данных Ele-2 при
последовательном вычислении ошибки вывода синглтона.
137
Таблица 4.21 Сравнение временных затрат на генерацию 10 правил алгоритмом пчелиной
колонии для генерации правил.
Номер
тестового
стенда
Схема
параллельног
о выполнения
PBS0
PBS1
PBS2
PBS3
PBS4
PBS5
№1
№2
№3
Время
Время
Время
выполнени Ускорени выполнени Ускорени выполнени Ускорени
я
е
я
е
я
е
31,78
1,00
18,16
1,00
74,52
1,00
25,11
1,27
7,61
2,39
36,63
2,03
24,55
1,29
7,27
2,50
33,11
2,25
23,81
1,33
6,91
2,63
19,29
3,86
20,17
3,69
17,67
1,80
6,78
2,68
18,87
1,68
7,09
2,56
18,98
3,93
Из таблицы 4.21 видно, что лучшим вариантом параллельного выполнения для стендов №1
и №2 на процессорах Intel оказался PBS4, который распараллеливает выполнение полета рабочих
пчел по пчелам и по правилам. А для стенда №3 лучшим оказался вариант PBS5 в котором
распараллелино максимальное количество циклов. Также заметим, что для стенда №3 вариант
PBS3 с внешним распараллеливанием рабочих пчел, оказался лучше, чем вариант PBS4, где это
распараллеливание выполнено для внешнего и внутреннего цикла рабочих пчел.
Перейдем к оценке скорости оптимизации правил алгоритмом пчелиной колонии для
идентификации параметров нечеткой системы. Эксперимент состоит в выполнении 100 итераций
для базы правил из 256 правил на данных Ele-2 при последовательном вычислении ошибки
вывода синглтона.
Таблица 4.22 Сравнение временных затрат на оптимизацию правил 100 итерациями алгоритма
пчелиной колонии для идентификации параметров
Номер
тестового
стенда
Схема
параллельног
о выполнения
PBP0
PBP1
PBP2
№1
№2
№3
Время
Время
Время
выполнени Ускорени выполнени Ускорени выполнени Ускорени
я
е
я
е
я
е
91,2
1
53,4
1
210,7
1
49,9
1,83
18,6
2,87
56,
3,76
50,8
1,8
22,4
2,38
56,7
3,72
Из таблицы 4.22 видно, что лучшим вариантом параллельного выполнения на всех тестовых
стендах, является схема параллельного выполнения PBP1, то есть параллельная работа пчел в
каждой группе, но последовательное выполнение групп.
138
Перейдем к оценке скорости оптимизации правил алгоритмом адаптивной эволюционной
стратегии для идентификации параметров нечеткой системы. Эксперимент состоит в
выполнении 100 итераций для базы правил из 256 правил на данных Ele-2 при последовательном
вычислении ошибки вывода синглтона.
Таблица 4.23 Сравнение временных затрат на оптимизацию правил 100 итерациями алгоритма
адаптивной эволюционной стратегии для идентификации параметров
Номер
тестового
стенда
Схема
параллельног
о выполнения
PES0
PES1
PES2
№1
Время
выполнени Ускорени
я
е
26,462
1,000
21,989
1,203
22,173
1,193
№2
Время
выполнени Ускорени
я
е
16,136
1,000
8,660
1,863
8,943
1,804
№3
Время
выполнени Ускорени
я
е
64,069
1,000
29,317
2,185
30,886
2,074
Из таблицы 4.23 видно, что лучшим вариантом параллельного выполнения на всех тестовых
стендах, является схема параллельного выполнения PES1, то есть параллельное выполнение
итеративного процесса эволюции, а допольнительное распареллеливание примененное в PES2 не
окупает затрат на создание потоков, так как выполняется один раз.
Перейдем к оценке скорости выполнения 100 итераций алгоритма, реализующего методику
построения трехкритериальных Парето-оптимальных нечетких систем на данных Ele-2 при
варьируемом способе вычисления ошибки, и схеме параллельного выполнения каждого из
алгоритмов структурной и параметрической оптимизации и вычисления ошибки. В виду того,
что выполнение методики затратно по времени, эксперимент проводился по следующей схеме.
Все алгоритмы выполняются последовательно, включая распараллеливание для самого
времязатратного алгоритма. При уменьшении времени выполнения, делалась попытка
распараллеливания для следующего по временным затратам алгоритма, и так пока время
выполнения не начинает увеличиваться. Отдельно проверялся вариант, когда распараллелено
вычисление ошибки вывода, а когда нет.
Из таблицы 4.24 видно, что лучшим вариантом параллельного выполнения для стендов №1
и №2 на процессорах Intel оказался вариант PF2+PBS0+PBP1+PES0, который распараллеливает
выполнения алгоритма пчелиной колонии для идентификации параметров и распараллеливает
вычисление ошибки вывода нечеткой системы. А для стенда №3 лучшим оказался вариант
PF2+PBS0+PBP0+PES0 в котором параллельно выполняется только вычисление ошибки.
139
Таблица 4.24 Сравнение временных затрат на 100 итераций алгоритма, реализующего методику
построения трехкритериальных Парето-оптимальных нечетких систем
Номер тестового стенда
Схема параллельного
выполнения
PF0+PBS0+PBP0+PES0
PF2+PBS0+PBP0+PES0
PF0+PBS0+PBP1+PES0
PF2+PBS0+PBP1+PES0
PF0+PBS0+PBP2+PES1
№1
Время
выполне Ускоре
ния
ние
12383
1
10630
1,16
7996
1,55
7399
1,67
8107
1,53
№2
Время
выполне Ускоре
ния
ние
6749
1
4097
1,65
2524
2,67
2146
3,15
2714
2,49
№3
Время
выполне
ния
25370
6259
6670
6905
6777
Уско
рение
1
4,05
3,80
3,67
3,74
Эксперименты показали, что во многих случаях тестовые стенды одинаково положительно
реагируют на одинаковые схемы паралелльного выполнения, но в двух случаях эффективность
выполнения на стенде №3 отличается, ввиду отличия в процессоре количества ядер, архитектуры
ядер и серверному назначению, которое отражается в дополнительной оптимизации микрокода
предсказателя ветвлений.
Исследование показало, что применяя лучшие схемы параллельного исполнения, возможно
уменьшить время выполнения алгоритмов идентификации параметров с 1,27 раз до 3,93 раз в
зависимости от алгоритма и типа процессора, а временные затраты на алгоритм, реализующий
методику построения трехкритериальных Парето-оптимальных нечетких систем, снизить с 1,67
раза до 4,05 раза.
В ходе исследования была показана актуальность диспетчера многопоточных вычислений
способного настроить программный комплекс под производительность данного тестового
стенда.
Выводы
1.
Использование предложенной методики построения трехкритериальных Парето-
оптимальных нечетких систем, позволяет достичь равномерного распределения по каждому из
критериев для нечеткой системы типа синглтон и питтсбургский классификатор, причем
некоторые получаемые точки на Парето-фронте доминируют над аналогами по сочетанию
точности и количества правил, что позволяет говорить о эффективности методики.
2.
Проведено исследование параметров алгоритмов, входящих в гибридный численный
метод, выявлены оптимальные параметры для каждого из них по влиянию на точность вывода
нечеткой системы и на время работы алгоритмов. Проанализированы по эффективности
140
количества отправляемых и принимаемых решений алгоритмами, участвующими в гибридном
методе, даны рекомендации по значениям этих параметров.
3.
Проведено исследование алгоритма генерации нечетких классификаторов по
экстремумам таблицы наблюдения, показано превосходство этого алгоритма по точности вывода
над алгоритмами кластеризации Fuzzy-C-Means, Gustafson-Kessel, Gath-Geva при низком
количестве
правил
в
питтсбургском
классификаторе.
Показаны
схожие
результаты
предлагаемого алгоритма по точности с алгоритмом равномерного разбиения, при меньшем
количестве используемых правил.
4.
Проведено исследование временной эффективности каждой схемы параллельного
выполнения алгоритмов и методики. Показано уменьшение времени вычисления при
использовании параллельных вычислений. Показана эффективность архитектуры программного
комплекса с диспетчером параллельных вычислений, ввиду того факта, что на различных
процессорах быстрее различные схемы параллельного выполнения.
Глава 5. Описание внедрения разработанных программных комплексов
Разработанные алгоритмы и методы вошли в два прикладных программных продукта,
предназначенных для решения следующих практических задач: прогнозирования результатов
реабилитации участников вооруженного конфликта и усиления аутентификации с помошью
оценки клавиатурного почерка для повышения защищенности удаленного доступа к компьютеру
внутри корпоративной среды.
5.1 Рекомендательная система для НИИКФ
5.1.1 Постановка задачи
В современных курортологических организациях, как правило, существуют несколько
комплексов лечебной терапии. Выбор комплекса производится по результатам анализов врачом.
Кроме общих правил, врач полагается на опыт, наличие противопоказаний на некоторые
компоненты и процедуры, используемые в терапевтических комплексах. В исследовательских
организациях сохраняются ретроспективные данные и определена методика оценки улучшения
состояния пациента после прохождения им назначенного комплекса. При наличии названных
ранее факторов в целях повышения качества лечения реализована рекомендательная система,
позволяющая спрогнозировать результат лечения для нового пациента по результатам его
анализов. Выделенно два важных этапа: отбор информативных признаков из ретроспективных
данных, максимально влияющих на изменение интегрального индекса здоровья, и построение
нечеткой модели, описывающей закономерности между входными и выходными переменными.
141
Эмпирической базой для исследования и внедрения являются клинические данные о
пациентах, прошедших реабилитацию в ФГУ Томского НИИ курортологии и физиотерапии
ФМБА России.
В данном НИИ изучалось функциональное состояние организма участников вооруженных
конфликтов на 77 показателях различных систем организма. Исследовались индивидуальнопсихологические особенности личности и выраженность симптомов постстрессовых нарушений.
Состояние вегетативной нервной системы оценивали методом кардиоинтервалографии по
Баевскому. Изучалась динамика таких показателей как кортизола и инсулина – основных
гормонов, обеспечивающих процессы стресса и адаптации, тестостерона, пролактина, ТТГ, Т3,
Т4. Кроме этого, проводились исследования иммунного статуса, липидного обмена с расчетом
индекса атерогенности и систем перекисного окисления липидов и антиоксидантной защиты. На
основании совокупности данных вычисляется индекс функционального напряжения организма
FNO. При этом увеличение величины индекса FNO в динамике наблюдения свидетельствует об
усилении степени функционального напряжения организма, а уменьшение - о нормализации
нарушенных функций. Соответственно выходным интегральным индексом здоровья может
служить
FNO_koef=
FNOдо/FNOпосле.
Величина
данного
индекса
свидетельствует
об
эффективности лечения для конкретного пациента [12, 15, 23, 43].
Если FNO_koef>1, то это значит, что у пациента наступили заметные улучшения после
прохождения назначенного ему курса лечения, в противном случае – заметных улучшений не
наблюдается.
В зависимости от значения FNO_koef, пациенты были отнесены к одному из двух классов:
• класс 1 — сколько-нибудь значимого изменения состояния не произошло;
• класс 2 — произошло улучшение состояния пациента.
Первой является задача отбора из имеющихся входных ретроспективных данных наиболее
информативных признаков. Для этого ранее были применены алгоритмы поиска информативных
признаков для задачи классификации: алгоритм построения дерева решений C4.5 и итеративный
поисковый алгоритм на основе прибыли (Simba). С результатами исследования данных
алгоритмов можно ознакомиться в статье [26].
5.1.2 Отбор информативных признаков
В отличии от ранее представленных результатов был реализован жадный алгоритм для
отбора информативных признаков добавлением признаков [61], фитнес-функцией которого
является ошибка вывода питтсбургского классификатора, построенного алгоритмом генерации
нечетких классификаторов на основе экстремумов таблицы наблюдений. Распределение точности
142
классификации от количества используемых информативных признаков, по всем исследуемым
комплексам реабилитации на всех доступных данных, представлено на рисунках 5.1–5.5.
% правильной классификации
100
95
90
85
80
75
70
65
60
0
2
4
6
8
10
12
14
Количество информативных признаков
Рис. 5.1 Зависимость процента правильной классификации от количества
информативных признаков на комплексе реабилитации №1.
Рисунок 5.1. ограничен 13 входными признаками, так дальнейшее расширение количества
признаков имеет точность такую же как, у 13 входных признаков или ниже за счет введения
шумовых признаков для данного комплекса реабилитации. Выявлены информативные признаки
для первого комплекса в порядке их добавления жадным алгоритмом {VR, MDASOL, TG, T3, F,
s4, TTG, Mof, CAT, KZ, INf, MoMof, TST}.
% правильной классификации
100
95
90
85
80
75
70
65
60
0
10
20
30
40
50
60
Количество информативных признаков
Рис. 5.2 Зависимость процента правильной классификации от количества
информативных признаков на комплексе реабилитации №2.
143
Выявлено 56 информативных признака для второго комплекса реабилитации в порядке их
добавления жадным алгоритмом {ChSSF, IAG, Lym, IN, VPR, MoMof, Mof, dX, AST, s5, F,
MDAS, HLNP, AMoAMof, IVR, MDAIOL, CAT, s8, s9, s7, PAPR, s1, s3, OL, s0, TTG, Ls, TST, KZ,
MDAI, s2, s4, Fs, CPMDAi, C, PRL, dXf, VR, Mo, IS, KSIS, AMof, INf, PTSD, HL, B, T3, s6, AMo,
ChSS, T4, MDASOL, ALT, IVRf, A, RLPO }.
% правильной классификации
100
95
90
85
80
75
70
65
60
0
10
20
30
40
50
60
Количество информативных признаков
Рис. 5.3 Зависимость процента правильной классификации от количества
информативных признаков на комплексе реабилитации №3.
Выявлено 56 информативных признака для третьего комплекса реабилитации в порядке их
добавления жадным алгоритмом {IAG, T3, Ls, INf, Mo, C, ALT, RLPO, TST, MDAI, T4, s5, F,
MDAS, IVRf, Mof, PTSD, Seg, VPR, Fs, PAPRf, ININf, PRL, s8, s9, s4, A, dXf, TTG, ChSS, PAPR,
AMof, VR, HLNP, ChSSf, AMoAMof, IN, Lym, Garkavi, s1, MoMof, Ks, s2, Ag, s6, s7, D, B, VPRf,
IVR, GL, HLVP, AMo, TG, MDAIOL, CAT}.
% правильной классификации
100
95
90
85
80
75
70
65
60
0
5
10
15
20
Количество информативных признаков
25
30
144
Рис. 5.4 Зависимость процента правильной классификации от количества
информативных признаков на комплексе реабилитации №4.
Выявлено 24 информативных признака для четвертого комплекса реабилитации в порядке
их добавления жадным алгоритмом { Ks, KZIS, FNO , TST, IS, dXf, T4, MoMof, VR, OL, A1, s2,
B, PTSD, L, C, AST, PRL, MDAI, Ls, s9, s8, AMo, MDAIOL}.
% правильной классификации
100
95
90
85
80
75
0
5
10
15
20
25
Количество информативных признаков
Рис. 5.5 Зависимость процента правильной классификации от количества
информативных признаков на комплексе реабилитации №5
Выявлен 21 информативный признак для пятого комплекса реабилитации в порядке их
добавления жадным алгоритмом {Fs, T3, s9, Ls, s7, T4, Mof, TST, Mo, Ag, C, Ks, s1, s2, s3, s5, s6,
MoMof, IS, KZ, A}.
Далее будет рассмотрено практическое использование найденных информативных
признаков для задачи прогнозирования результатов.
5.1.3
Рекомендательная система
Для каждого комплекса было проведенно исследование информативных признаков для
включения в рекомендательную систему. Проведение экспериметов по схеме кроссвалидации
позволяет отсеить из информативных признаков такие, которые вызывают переобучение. В
эксперименте ретроспективные данные были разделены в соотношении 80/20% по схеме
кроссвалидации. Классификатор строился алгоритмом генерации нечетких классификаторов на
основе экстремумов таблицы наблюдений. Для обучения использовался гибридный численный
метод идентификации структуры и параметров на основе островной модели (ГМИСПОМ), в
котором МНК заменен на модификацию алгоритма пчелиной колонии для настройки вектора
весов
классификатора
(АПКНВК)
[43].
Учитывая
стохастическую
сходимость
145
метаэвиристических методов, каждый эксперимент был проведен 10 раз на каждом варианте
разбиения на обучающую и тестовую выборку. В таблицах 5.1-5.5. приведены результаты для
одного информативного признака, для всех информативных признаков, определенных в разделе
5.1.2 и для лучшего сочетания, полученного дополнительным изучением мест перегибов
графиков, представленых на рисунках 5.1-5.5.
Таблица 5.1 Усредненные результаты точности питтсбургского классификатора, настроенного
ГМИСПОМ, для прогноза эффективности реабилитации первым комплексом
Количество
входных
признаков
1
8
13
Входные
признаки
Процент правильной классификации
на обучающей выборке на тестовой выборке
Среднее
СКО
Среднее
СКО
71,63
6,72
50,02
10,86
83,87
2,42
81,25
6,84
VR
VR, MDASOL,
TG, T3, F, s4,
TTG, Mof
VR, MDASOL,
95,27
TG, T3, F, s4,
TTG, Mof, CAT,
KZ, INf,
MoMof, TST
1,07
62,5
11,73
По таблице 5.1 видно, что при полном количестве признаков, построенный питтсбургский
классификатор переобучен, так как дополнительное повышение точности на обучающей выборке
ведет к снижению точности на тестовой выборке.
На одном признаке данных явно недостаточно для устойчивой классификации об этом
говорит как низкий процент классификации на обеих выборках, так и большая величина СКО.
Оптимальное количество признаков 8, на них получен лучший процент классификации на
тестовой выборке и снижен разброс.
Таблица 5.2 Усредненные результаты точности питтсбургского классификатора, настроенного
ГМИСПОМ, для прогноза эффективности реабилитации вторым комплексом
Количество Входные признаки
входных
признаков
1
6
56
ChSSF
ChSSF, IAG, Lym, IN,
VPR, MoMof
ChSSF, IAG, Lym, IN,
VPR, MoMof, Mof, dX,
AST, s5, F, MDAS,
HLNP, AMoAMof, IVR,
MDAIOL, CAT, s8, s9,
s7, PAPR, s1, s3, OL, s0,
TTG, Ls, TST, KZ,
Процент правильной классификации
на обучающей
на тестовой выборке
выборке
Среднее СКО Среднее СКО
71.18
12,42 53,21
15,75
84,05
3,41
76,48
5,22
94,53
1,27
42,46
15,61
146
MDAI, s2, s4, Fs,
CPMDAi, C, PRL, dXf,
VR, Mo, IS, KSIS, AMof,
INf, PTSD,HL, B, T3, s6,
AMo, ChSS, T4,
MDASOL, ALT, IVRf, A,
RLPO
По таблице 5.2 видно, что при полном количестве признаков, построенный питтсбургский
классификатор переобучен, так как дополнительное повышение точности на обучающей выборке
ведет к снижению точности на тестовой выборке.
На одном признаке данных явно недостаточно для устойчивой классификации об этом
говорит низкий процент классификации на обеих выборках, так и большая величина СКО.
Оптимальное количество признаков 6, на них получен лучший процент классификации на
тестовой выборке и снижен разброс.
Таблица 5.3 Усредненные результаты точности питтсбургского классификатора, настроенного
ГМИСПОМ, для прогноза эффективности реабилитации третьим комплексом
Количество Входные признаки
входных
признаков
1
11
56
Процент правильной классификации
на обучающей
на тестовой выборке
выборке
Среднее СКО Среднее СКО
72,84
6,91
57,47
11,63
86,04
2,38
75,79
5,49
IAG
IAG, T3, Ls, INf, Mo , C,
ALT, RLPO, TST, MDAI,
T4
IAG, T3, Ls, INf, Mo , C, 96,73
ALT, RLPO, TST, MDAI,
T4, s5, F, MDAS, IVRf ,
Mof, PTSD, Seg, VPR, Fs,
PAPRf, ININf, PRL, s8,
s9, s4, A, dXf, TTG,
ChSS, PAPR, AMof, VR,
HLNP, ChSSf,
AMoAMof, IN, Lym,
Garkavi, s1, MoMof, Ks,
s2, Ag, s6, s7, D, B, VPRf,
IVR, GL, HLVP, AMo,
TG, MDAIOL, CAT
0,84
38,51
12,35
По таблице 5.3 видно, оптимальное количество признаков 11, на них получен лучший
процент классификации на тестовой выборке и снижен разброс.
147
Таблица 5.4 Усредненные результаты точности питтсбургского классификатора,
настроенного ГМИСПОМ, для прогноза эффективности реабилитации четвертым комплексом
Количество Входные признаки
входных
признаков
1
7
24
Ks
Ks, KZIS, FNO , TST, IS,
dXf, T4
Ks, KZIS, FNO , TST, IS,
dXf, T4, MoMof, VR, OL,
A1, s2, B, PTSD, L, C,
AST, PRL, MDAI, Ls, s9,
s8, AMo, MDAIOL
Процент правильной классификации
на обучающей
на тестовой выборке
выборке
Среднее СКО Среднее СКО
73,68
6,26
43,72
9,42
84,21
2,44
78,57
6,93
94,73
2,14
57,81
11,88
По таблице 5.4 видно, что оптимальное количество признаков 7, на них получен лучший
процент классификации на тестовой выборке и снижен разброс.
Таблица 5.5 Усредненные результаты точности питтсбургского классификатора, настроенного
ГМИСПОМ, для прогноза эффективности реабилитации пятым комплексом
Количество Входные признаки
входных
признаков
1
7
21
Fs
Fs, T3, s9, Ls, s7, T4, Mof
Fs, T3, s9, Ls, s7, T4,
Mof, TST, Mo, Ag, C, Ks,
s1, s2, s3, s5, s6, MoMof,
IS, KZ, A
Процент правильной классификации
на обучающей
на тестовой выборке
выборке
Среднее СКО Среднее СКО
83,76
4,74
65,81
9,36
91,25
2,43
78,88
8,15
96,51
0,48
66,27
11,39
По таблице 5.5 видно, что оптимальное количество признаков 7, на них получен лучший
процент классификации на тестовой выборке и снижен разброс.
Построеная рекомендательная система использует только эффективные признаки, поэтому
количество анализов с 77 можно ограничить до 31. В список используемых рекомендательной
системой признаков вошли {ALT, C, ChSSF, dXf, F, FNO, Fs, IAG, IN, INf, IS, Ks, KZIS, Ls, Lym,
MDAI, MDASOL, Mo, Mof, MoMof, RLPO, s4, s7, s9, T3, T4, TG, TST, TG, VPR, VR }.
На рисунке 5.6 представлен интерфейс рекомендательной системы
148
Рис. 5.6 Интерфейс рекомендательной системы
На основании проведенных экспериментов комплекс программ внедрен в Томском Научноисследовательском институте курортологии и физиотерапии ФМБА Российской Федерации и
используется при выполнении НИР «Немедикаментозное восстановительное лечение участников
вооруженных конфликтов и чрезвычайных ситуаций» и для назначения комплексов
реабилитации пациентам с посттравматическими стрессовыми расстройствами (Приложение В).
5.2 Аутентификация пользователей по клавиатурному почерку
Современным
электронным
информационным
системам
доверяется
все
больше
информации. Стоимость информации, составляющей коммерческую и/или государственную
тайну или персональные данные растет. Классические средства аутентификации пользователей
информационных систем по паре логин:пароль все чаще дискредитируется, так как пара
логин:пароль может быть разглашена тем или иным образом. В случае инцидентов безопасности
найти источник и место разглашения – задача нетривиальная. Среди множества альтернативных
методов аутентификации одним из самых больших направлений являются биометрические
методы идентификации личности. Эти методы делят на статические и динамические.
Статические методы имеют ряд недостатков, основными из которых являются проработанные
механизмы подделки (снятие и создание дубликатов отпечатков пальцев) или требуют
дорогостоящего оборудования (сканер сетчатки глаза) [88]. Динамические методы лишены этих
недостатков,
но,
как
правило,
их
точность
ниже.
Динамические
характеристики
идентифицирующие человека, на которых основаны эти методы меняются из–за изменения
состояния человека. Поэтому требуется постоянная адаптация под эти изменения. Одним из
149
часто исследуемых методов динамической аутентификации является метод аутентификации по
клавиатурному почерку [8, 9, 24, 28].
Клавиатурный почерк может являться устойчивой динамической характеристикой только
для людей часто набирающих тексты на компьютере.
5.2.1 Задача повышения точности аутентификации
Задача повышения точности аутентификации по клавиатурному почерку может быть
сведена к задаче повышения точности классификации. В общем случае для каждого человека
может быть построено от одного до трех шаблонов его клавиатурного почерка с целью
минимизации ошибки классификации. Существуют два различных подхода к формированию
шаблона клавиатурного почерка: анализ набора текстов и анализ набора ключевой фразы (от 9
до 30 символов). Основным недостатком первого подхода является длительная процедура
обучения. Кроме того, если процедура аутентификации будет сопровождаться набором большого
текста, не исключена возможность отвлечения и, соответственно, изменения проверяемых
характеристик. Из многих способов сформировать шаблон клавиатурного почерка применен
метод аутентификации на основе клавиатурного почерка по контрольной фразе. Несмотря на
устойчивость клавиатурного почерка, он все же колеблется из–за состояния человека. При
анализе клавиатурного почерка производят разделение на утро, день и вечер [30]. Сложно
составить четкие границы каждого из понятий утро, день, вечер в данной задаче, так как в
современном обществе используются различные графики работы, в том числе гибкие. В общем
случае следует рассматривать понятия: до работы, во время работы, после работы. При этом
необходимо учесть, что не у всех людей требуется различать все три состояния. Стоит учесть
особенность
задачи
аутентификации,
в
которой
множество
зарегистрированных пользователей и идентификатора
классов
состоит
из
указывающего на неизвестного
пользователя, которые могут попытаться пройти процедуру аутентификации. Далее будут
представлены необходимые изменения в базе правил нечеткого питтсбурского классификатора,
затем параметры и особенности применения гибридного метода идентификации структуры и
параметров нечеткой системы на основе островной модели.
Модификация нечеткого питтсбургского классификатора. Питтсбугский классификатор
работает на основе правил вида (1.2).
При данной структуре сформировать правило для идентификатора класса, указывающего
на неизвестного пользователя, весьма затруднительно, поэтому предлагается переход к базе
правил следующего вида:
Rij : ЕСЛИ x1=A i1 И x2=A i2 И x3=A i3 И … И xn=Ain ТО class=cj, w=CFi , ИНАЧЕ
150
R(i+s)j : ЕСЛИ x1=A(i+s)1 И x2=A(i+s)2 И x3=A(i+s)3 И … И xn=A(i+s)n ТО class=cl, w=CF(i+ s),
ИНАЧЕ class=cz,
(5.1)
где сz– идентификатор класса незарегистрированных пользователей. Так же стоит учесть,
что такое изменение правил снимает с нечеткого питтсбурского классификатора необходимость
покрытия всей области определения каждой входной переменной термами, в данном случае
ситуация неопределённости не возникает.
5.2.2 Программная реализация и оценка эффективности
Используются следующие алгоритмы: АПКГП, модифицированный алгоритм пчелиной
колонии для настройки весов (МАПКНВ)[43], ААЭС. Диаграмма деятельности использования
алгоритмов при построении правил проверки для нового зарегистрированного пользователя,
прошедшего семидневный процесс сбора данных, представлена на рисунке 5.7.
act Обучение классификатора
Начало
Создание одного правила
алгоритмом АПКГП для
NewUser
Оптимизация правила
ААЭС
Оптимизация весов
правила МАПКНВ
Сохранить правило в PR1
Создание двух правил
алгоритмом АПКГП для
NewUser
Создание трех правил
алгоритмом АПКГП для
NewUser
Оптимизация двух правил
ААЭС
Оптимизация трех правил
ААЭС
Оптимизация весов двух
правил МАПКНВ
Оптимизация весов трех
правил МАПКНВ
Сохранить правила в PR2
Сохранить правила в PR3
[Ошибка при использовании PR1>PR2]
[Ошибка при использовании PR1<PR2]
[Иначе]
[Иначе]
[Ошибка при использовании PR2<PR3]
[Ошибка при использовании PR1<PR3]
Добавление
PR1 а базу
правил
Добавление
PR3 в базу
правил
Добавление
PR2 в базу
правил
Конец
Рис. 5.7 Диаграмма использования алгоритмов при построении правил проверки нового
пользователя
151
Было проведено два эксперимента, в которых проверялась точность классификации и
расчет ошибки первого рода (отказ в доступе зарегистрированному пользователю, указавшему
правильный логин и пароль) и ошибки второго рода (предоставление доступа пользователю,
указавшему чужой логин и пароль).
Первый эксперимент проводился через неделю после начала использования программы в
режиме обучения. В эксперименте участвовало 10 программистов, клавиатурный почерк у
которых более усточивый на английском языке, поэтому для всех была установлена ключевая
фраза “AstalaVista Password”. В процессе обучения в качестве входной выборки использовались
варианты набора всех участников эксперимента. Эксперимент проводился по схеме кросс–
валидации в соотношении 80:20%. Усредненные результаты представлены в таблице 5.6.
Таблица 5.6 Результаты авторизации после недели обучения
Выборка
Ошибка в процентах
1–род
2–род
Обучающая 9,72
4,36
Тестовая
7,64
14,41
После этого эксперимент продолжался в режиме адаптации. Процесс адаптации длился
месяц. При каждой адаптации использовались варианты набора пользователя за последние 14
дней. Усредненные ошибки первого и второго рода после месяца адаптации, представлены в
таблице 5.7.
Таблица 5.7 Результаты авторизации после месяца использования в режиме адаптации
Выборка
Ошибка в процентах
1–род
2–род
Обучающая 2,79
0,69
Тестовая
1,73
4,58
Показанные результаты оказались достаточными, чтобы внедрить систему для усиления
защиты доступа по RDP протоколу корпоративной сети ОАО "Особая экономическая зона
технико–внедренческого типа г.Томск”, акт внедрения в приложение Г.
152
Выводы
1.
Рекомендательная система и результаты проведенного исследования с применением
разработанных алгоритмов используются в НИР Томского Научно-исследовательского
института курортологии и физиотерапии ФМБА Российской Федерации при выполнении НИР
«Немедикаментозное восстановительное лечение участников вооруженных конфликтов и
чрезвычайных ситуаций» и для назначения комплексов реабилитации пациентам с
посттравматическими стрессовыми расстройствами.
2.
Проведены
исследования
эффективности
предложенных
алгоритмов
в
задаче
распознавания клавиатурного почерка. Осуществлено внедрение в ОАО «Особая экономическая
зона технико–внедренческого типа г.Томск».
153
ЗАКЛЮЧЕНИЕ
Диссертационная работа посвящена разработке средств достижения компромисса
точности, сложности и интерпретируемости нечетких систем в виде алгоритмов и программных
средств идентификации Парето–оптимальных нечетких систем на основе метаэвристических
методов.
Основные результаты диссертационной работы:
1.
Предложена методика для построения Парето-оптимальных нечетких моделей по трем
критериям. Данная методика позволяет получать нечеткие модели с различным количеством
правил,
термов
и
расположением
термов.
Методика
использует
элементарные
гиперпараллелипиды с динамически изменяемыми размерами, что позволяет добиться
равномерного распределения получаемых решений по каждому из критериев. Методика
предусматривает возможность дополнения новыми методами идентификации нечетких систем.
Использование методики позволяет эксперту выбрать подходящую нечеткую модель среди
расположенных на Парето-фронте.
2.
Предложен оригинальный комплексный критерий, учитывающий геометрическую и
семантическую интерпретируемость нечетких систем.
3.
Предложен гибридный численный метод, основанный на схеме островов. Метод имеет
следующие преимущества: а) гибкость и устойчивость к «застреванию» в локальных
экстремумах, полученные за счет применения метода пчелиной колонии; б) скорость
сходимости, присущую алгоритму эволюционной стратегии с адаптацией параметров на основе
матрицы ковариации; в) точность, определяемую методом наименьших квадратов.
4.
Предложен алгоритм генерации нечетких классификаторов на основе экстремумов
таблицы наблюдений, позволяющий генерировать более точные нечеткие классификаторы, чем
часто применяемые методы на основе кластеризации с-средних и его модификаций GustafsonKessel, Gath-Geva, при сравнимом или меньшем количестве правил. Предложенный алгоритм
позволяет получить классификаторы, сравнимой точности с методом равномерного разбиения,
при меньшем количестве правил.
5.
Разработан программный комплекс с оригинальной многопоточной архитектурой,
основанной
на
диспетчеризации
параллельных
вычислений,
позволяющей
добиться
минимизации времени генерации и оптимизации нечетких систем. Архитектура является
расширяемой за счет возможности подключения дополнительных алгоритмов идентификации
структуры и параметров.
154
6.
Предложено
описание
нечетких
систем
типа
синглтон
и
питтсбургских
классификаторов, совместимое со стандартом PMML 4.2.
7.
Внедренная рекомендательная система и результаты проведенного исследования с
применением
разработанных
алгоритмов
используются
при
выполнении
НИР
«Немедикаментозное восстановительное лечение участников вооруженных конфликтов и
чрезвычайных ситуаций» и для назначения комплексов реабилитации пациентам с
посттравматическими стрессовыми расстройствами в НИИ КиФ.
8.
Проведены исследования эффективности предложенных алгоритмов в задаче
распознавания клавиатурного почерка. Осуществлено внедрение в ОАО ОЭЗ ТВТ.
155
СПИСОК СОКРАЩЕНИЙ И УСЛОВНЫХ ОБОЗНАЧЕНИЙ
Cокращения:
ААЭС – алгоритм адаптивной эволюционной стратегии.
АГНСЭТН – алгоритм генерации нечетких классификаторов на основе экстремумов таблицы
наблюдений
АИПТ – алгоритм исключения пересечения наиболее семантически отдалённых термов.
АИТ – алгоритм исключения терма из базы правил нечеткой системы.
АОТ – алгоритм объединения термов.
АПКГП – алгоритм пчелиной колонии для генерации правил нечеткой системы.
АПКИП – алгоритм пчелиной колонии для идентификация параметров нечеткой системы.
АПКМВК – алгоритм пчелиной колонии для модификации весов правил нечеткого
классификатора.
АРМПОС – алгоритм реализующий методику построения Парето–оптимальных нечетких
систем;
АУБП – алгоритм усечения базы правил нечеткой системы.
БП – база правил нечеткой системы.
ГМИСПОМ – гибридный метод идентификации структуры и параметров нечеткой системы на
основе островной модели.
ЛП – лингвистическая переменная.
МНК – метод наименьших квадратов.
СКО – среднеквадратическая ошибка.
ФП – функция принадлежности.
ЭГ – элементарные гиперпараллелепипеды.
MSE – mean square error.
156
Условные обозначения:
Aij – i-ый нечетких терм j-ой входной переменной;
x = (x1, x2, x3, …, xn) – вектор значений входных переменных объекта;
{xq, tq} – таблица наблюдений;
xqj – значение j–той входной переменной, q–того наблюдения из таблицы наблюдений;
tq – значение выходного параметра q-того наблюдения из таблицы наблюдений;
θ – база правил нечеткой системы;
θ.term – множество термов, содержащихся в базе правил θ;
θ.R – множество правил, содержащихся в базе правил θ;
θ.Rk.term – множество термов, принадлежащих правилу Rk в базе правил θ.
Aij(xqj) – степень принадлежности значения xqj нечеткому множеству, описываемому термом Aij;
157
СПИСОК ЛИТЕРАТУРЫ
1. Афонин Д.Е. Инструментальная среда для исследования эволюционных стратегий с
использованием нейросетевых метамоделей / Д.Е. Афонин // Institute of Information Theories and
Applications FOI ITHEA. – 2009. – C. 81–86.
2. Баранов Д.А. Управление и обработка информации в распределенных системах / Д.А.
Баранов, И.В. Влацкая // Вестник Нижегородского университета им. Н.И. Лобачевского. – 2013.
– № 1(3). – C. 166–172.
3. Бухановский
А.В.
Интеллектуальные
высокопроизводительные
программные
комплексы моделирования сложных систем: концепция, архитектура и примеры реализации /
А.В. Бухановский, С.В. Ковальчук, С.В. Марьин // Известия высших учебных заведений.
Приборостроение: ежемесячный научно-технический журнал. СПбГУ ИТМО. – 2009. – Т. 52. –
№ 10. – С. 5–24.
4. Горбунов И.В. Алгоритмы муравьиной и пчелиной колонии для обучения нечетких
систем / И.В. Горбунов, И.А. Ходашинский, П.А. Дудин // Доклады Томского государственного
университета систем управления и радиоэлектроники. – 2009. – № 2(20). – С. 157–161.
5. Горбунов И.В. Особенности построения нечетких классификаторов на основе алгоритма
пчелиной колонии / И.В. Горбунов // Материалы докладов Всероссийской научно–технической
конференции студентов, аспирантов и молодых ученых «Научная сессия ТУСУР–2009». – Томск:
Изд–во «В–Спектр». – 2009. – Ч. 2. – С. 104–107.
6. Горбунов И.В. Оптимизация параметров нечетких моделей методами роевого
интеллекта / И.В. Горбунов, И.А. Ходашинский, П.А. Дудин, Д.С. Синьков // Всероссийская
конференция с элементами научной школы для молодежи «Проведение научных исследований в
области обработки, хранения, передачи и защиты информации» – Ульяновск: УлГТУ. – 2009. –
Т. 2. – С. 74–82.
7. Горбунов И.В. Модифицированный алгоритм пчелиной колонии для тонкой настройки
правил нечеткого классификатора / И.В. Горбунов // Материалы докладов Всероссийской
научно–технической конференции студентов, аспирантов и молодых ученых «Научная сессия
ТУСУР–2010». – Томск: Изд–во «В–Спектр». – 2010. – Ч. 2. – С. 109–112.
8. Горбунов И.В. Технология усиленной аутентификации пользователей информационных
процессов / И.В. Горбунов, Р.В. Мещеряков, И.А. Ходашинский, М.В. Савчук // Доклады
Томского государственного университета систем управления и радиоэлектроники. – 2011. – №
2(24). – С. 236–248.
158
9. Горбунов И.В. Методы нечеткого извлечения знаний в задачах обнаружения вторжения
/ И.В. Горбунов, И.А. Ходашинский, Р.В. Мещеряков // Вопросы защиты информации. – 2012. –
№ 1. – C. 45–49.
10. Горбунов И.В. Унифицированное представление параметров нечеткой системы / И.В.
Горбунов, П.А. Дудин, А.В. Боровков // Материалы докладов Всероссийской научно–
технической конференции студентов, аспирантов и молодых ученых «Научная сессия ТУСУР–
2011». – Томск: Изд–во «В–Спектр». – 2011. – Ч. 2. – С. 168–170.
11. Горбунов И.В. Применение нечетких систем для управления температурным полем
длинного стального стержня шестигранного сечения / И.В. Горбунов, А.В. Гладков // Материалы
докладов Всероссийской научно–технической конференции студентов, аспирантов и молодых
ученых «Научная сессия ТУСУР–2011». – Томск: Изд–во «В–Спектр». – 2011. – Ч. 2. – С. 171–
173.
12. Горбунов
И.В.
Методы
вычислительного
интеллекта
в
прогнозировании
эффективности немедикаментозного лечения / И.В. Горбунов, А.А. Зайцев, И.А. Ходашинский,
П.А. Дудин, Д.С. Синьков // Материалы V Международной научной конференции (заочной)
«Системный анализ в медицине» (CАМ 2011). Благовещенск. – 2011. – С. 25–28.
13. Горбунов И.В. Построения нечетких классификаторов на основе алгоритма пчелиной
колонии / И.В. Горбунов, И.А. Ходашинский // Труды Всероссийской конференции «Знания–
Онтологии–Теории». – 2011. – Т. 2. – С. 117–126.
14. Горбунов
И.В.
Оптимизация
параметров
нечетких
систем
на
основе
модифицированного алгоритма пчелиной колонии / И.В. Горбунов, И.А. Ходашинский //
Мехатроника, автоматизация, управление. – 2012. – №10. – С. 15–20.
15. Горбунов И.В. Построение нечетких систем прогнозирования эффективности
немедикаментозного лечения / И.А. Ходашинский, И.В. Горбунов, П.А. Дудин, Д.С. Синьков,
А.А. Зайцев // Информатика и системы управления. – 2012. – №3(33). – С. 140–150.
16. Горбунов И.В. Эффект переобучения при использовании модифицированного
алгоритма пчелиной колонии для нечеткого аппроксиматора / И.В. Горбунов // Материалы
докладов Всероссийской научно–технической конференции студентов, аспирантов и молодых
ученых «Научная сессия ТУСУР–2012». – Томск: Изд–во «В–Спектр». – 2012. – Ч. 3. – С. 28–33.
17. Горбунов
И.В.
Алгоритмы
генерации
структур
двухкритериальных
Парето–
оптимальных нечетких аппроксиматоров / И.В. Горбунов, И.А. Ходашинский, Д.С. Синьков //
Доклады Томского государственного университета систем управления и радиоэлектроники. –
2013. – № 1(27). – С. 135–142.
159
18. Горбунов И.В. Алгоритмы поиска компромисса между точностью и сложностью при
построении нечетких аппроксиматоров / И.В. Горбунов, И.А. Ходашинский // Автометрия. –
Новосибирск: Издательство СО РАН – 2013. – №6(49). – С. 51–61.
19. Горбунов И.В. Алгоритмы генерации компактных баз правил для нечеткого
аппроксиматора / И.В. Горбунов // Материалы международной заочной научно-практической
конференции «Наука, образование, общество: тенденция и перспективы». – Москва. – 2013. – Ч.
2. – С. 98–104.
20. Горбунов И.В. Оценка эффективности генерации баз правил нечеткого аппроксиматора
модификациями алгоритма c-средние для задачи Парето оптимизации / И.В. Горбунов //
Материалы докладов Всероссийской научно–технической конференции студентов, аспирантов и
молодых ученых «Научная сессия ТУСУР–2013». – Томск: Изд–во «В–Спектр». – 2013. – Ч. 4. –
С. 27–31.
21. Горбунов И.В. Генерация структуры двухкритериальных Парето–оптимальных
нечетких
аппроксиматоров
/
И.В.
Горбунов,
И.А.
Ходашинский,
Д.С.
Синьков
//
Интегрированные модели и мягкие вычисления в искусственном интеллекте. Сборник научных
трудов VII–й Международной научно–технической конференции. – М.: Физматлит. – 2013. – Т.
1. – С. 458–469.
22. Горбунов И.В. Алгоритм параметрической идентификации базы правил нечеткого
классификатора на основе эволюционной стратегии / И.В. Горбунов, А.Ц. Гунгаев // Сборник
трудов Всероссийской конференции с международным участием «Современные системы
искусственного интеллекта и их приложения в науке». – Казань. – 2013. – С. 111–118.
23. Горбунов И.В. Отбор информативных признаков для назначения комплекса
терапевтического лечения / И.В. Горбунов // Сборник трудов Международной научнопрактической конференции «Электронные средства и системы управления». – Томск. – 2013. –
Ч. 1. – С. 132–136.
24. Горбунов И.В. Особенности использования нечеткого классификатора и алгоритмов
машинного обучения для аутентификации по клавиатурному почерку / И.В. Горбунов // Сборник
трудов Международной научно-практической конференции «Электронные средства и системы
управления». – Томск. – 2013. – Ч. 2 – С. 13–18.
25. Горбунов И.В. Оценка эффективности параллельной реализации алгоритма пчелиной
колонии для идентификации параметров нечеткой системы / И.В. Горбунов // Материалы
докладов Всероссийской научно–технической конференции студентов, аспирантов и молодых
ученых «Научная сессия ТУСУР–2014». – Томск: Изд–во «В–Спектр». – 2014. – Ч. 4. – С. 34–36.
160
26. Горбунов И.В. Алгоритмы идентификации интерпретируемых и точных нечетких
классификаторов / И.В. Горбунов, И.А. Ходашинский // Материалы XII Всероссийского
совещания по проблемам управления. Россия, Москва, ИПУ РАН. – 2014 – С. 3269-3280.
27. Дорогов
А.Ю.
PMML модели
быстрых
нейронных
сетей
и
спектральных
преобразований / А.Ю. Дорогов, В.С. Абатуров, И.В. Раков // Нейроинформатика. – 2013. – Ч. 3.
– С. 158–170.
28. Иванов А.И. Биометрическая идентификация личности по динамике подсознательных
движений / А.И. Иванов. – Пенза: ПГУ. – 2000. – 188 c.
29. Карпов В.Е. Введение в распараллеливание алгоритмов и программ / В.Е. Карпов //
Компьютерные исследования и моделирование. – 2010. – Т. 2. – № 3. – С. 231–272.
30. Кобиелус Д. Информационная безопасность: идентификация и аутентификация / Д.
Кобиелус – М.: Связь. – 1997. – 252 с.
31. Кострыкин И.В. Нечеткая логика: достоинства и недостатки / И.В. Кострыкин //
Материалы научно-практической конференции «Информационные технологии в образовании».
– 2008. – С. 110–111.
32. Крыжановский Д. И. Унифицированное представление моделей идентификации на базе
XML– и PMML – документов / Д.И. Крыжановский // Известия волгоградского технического
университета. Серия – «Актуальные проблемы управления, вычислительной техники и
информатики в технических системах». – 2008. – С. 19–23.
33. Кукса П.П. Cинтез и оптимизация нелокальных интерпретируемых лингвистических
нейро-нечетких моделей / П.П. Кукса // Московский государственный технический университет
им. Н.Э. Баумана, кафедра «Компьютерные системы и сети». – 2011. – [Электронный ресурс]. –
Режим доступа: http://filer2.org/~pkuksa/publications/opt-synt-nfm-c-nov-04.pdf (дата обращения
22.04.2014).
34. Курейчик B.M. Генетические алгоритмы / B.M. Курейчик // Перспективные
информационные технологии и интеллектуальные системы. – 2000. – №1.
35. Осадченко Д.А. Применение фильтра Калмана для идентификации нечетких моделей
типа синглтон / Д.А. Осадченко, А.В. Лавыгина // Материалы докладов Всероссийской научно–
технической конференции студентов, аспирантов и молодых ученых «Научная сессия ТУСУР–
2008». – Томск: Изд–во «В–Спектр». – 2008. – Ч. 2. – С. 86–88.
36. Сергиенко Р.Б. Нечеткий генетический классификатор в задаче распознавания
спутниковых изображений / Р.Б. Сергиенко // Информационные технологии и математическое
моделирование. Материалы VIII Всероссийской научно–практической конференции в 2–х
частях. – Томск: Изд-во томского государственного университета. – 2009. – Ч. 2. – С. 272–276.
161
37. Ульянов С.В. Нечеткие модели интеллектуальных промышленных регуляторов и
систем управления. Научно–организационные, технико–экономические и прикладные аспекты /
С.В. Ульянов // Системный анализ в науке и образовании. – 2011. – Вып. 2. – C. 1–23.
38. Ходашинский И.А. Идентификация нечетких систем / И.А. Ходашинский // Проблемы
управления. – 2009. – № 4. – С. 15–23.
39. Ходашинский И.А. Формальнологический метод и аппроксимация Мамдани в
нечетком оценивании величин / И.А. Ходашинский // Автометрия. – 2006. – № 1. – С. 55–67.
40. Ходашинский И.А. Основанные на производных и метаэвристические методы
идентификации параметров нечетких моделей / И.А. Ходашинский, В.Ю. Гнездилова, П.А.
Дудин, А.В. Лавыгина // Труды VIII международной конференции «Идентификация систем и
задачи управления» SICPRO '08. – М: Институт проблем управления им. В.А. Трапезникова РАН.
– 2009. – С. 501–529.
41. Чистяков В.В. Кто сегодня самый шустрый? / В.В. Чистяков // Технология КлиентСервер. – 2001. – Ч. 3. – C. 54–62.
42. Чистяков В.В. Кто сегодня самый шустрый 2? / В.В. Чистяков // Технология КлиентСервер. – 2001. – Ч. 4. – С. 38–46
43. Чистяков В.В. Кто сегодня самый шустрый 3? / В.В. Чистяков // Технология КлиентСервер. – 2002. – Ч. 1. – С. 77–84.
44. Шельмина Е.А. Применение технологий параллельного программирования для
решения обратных задач переноса примеси в атмосферном воздухе / Е.А. Шельмина // Доклады
Томского государственного университета систем управления и радиоэлектроники. – 2013. – №
29(3). – С. 134–140.
45. Alcala-Fdez J. KEEL Data-мining software Tool: data, set repository, integration of
algorithms and experimental analysis framework / J. Alcala-Fdez, A. Fernandez, J. Luengo, J. Derrac,
S. Garcia, L. Sanchez, F. Herrera // J. of Mult.-Valued Logic & Soft Computing. – 2011. – Vol. 17. –
P. 255–287.
46. Alonso J.M. Conceptual Framework for Understanding a Fuzzy System / J.M. Alonso, L.A.
Magdalena // IFSA-EUSFLAT 2009 Conference. – 2009. – P.119–124.
47. Alonso J.M. Special issue on interpretable fuzzy systems / J.M. Alonso, L.A. Magdalena //
Information Sciences. – 2011. – Vol. 181. – P. 4331–4339.
48. Amdahl G. Validity of the single processor approach to achieving large-scale computing
capabilities / G. Amdahl // AFIPS Conference Proceedings. – 1967. – Vol. 30. – P. 461–485.
49. Babuska R. Fuzzy Modeling for Control / R. Babuska // Kluwer Academic Publishers. –
Boston. – 1998.
162
50. Baykaso A. Artificial bee colony algorithm and its application to generalized assignment
problem / A. Baykaso, L. Özbakır, P. Tapkan // Swarm intelligence focus on ant and particle swarm
optimization. I-Tech Education and Publishing. – Austria, Vienna. – December 2007. – P. 113–144
51. Bilchev G. The ant colony metaphor for searching continuous design spaces / G. Bilchev, I.C.
Parmee // Proceedings of the AISB Workshop on Evolutionary Computation of LNCS. Springer–Verlag.
– Germany, Berlin – 1995. – Vol. 993. – P. 25–39.
52. Botta A. Context adaptation of fuzzy systems through a multi-objective evolutionary approach
based on a novel interpretability index / A. Botta, B. Lazzerini, F. Marcelloni, D.C. Stefanescu //
Springer, Soft Computing. – 2009. – Vol. 15. – № 5. – P. 437–449.
53. Bozorg H. Honey–bees mating optimization (hbmo) algorithm: a new heuristic approach for
water resources optimization / H. Bozorg, A. Afshar, M. Mario // Water Resour Manag. – 2005. – Vol.
20(5). P. 661–680.
54. Brownlee J. Clever Algorithms: Nature–Inspired Programming Recipes / J. Brownlee //
Clever Algorithms: Nature–Inspired Programming Recipes. – Lulu. – 2011. – P. 29–86.
55. Casillas J. Learning consistent, complete and compact set soft fuzzy rules in conjunctive
normal form for regression problems / J. Casillas, P. Martınez, A.D. Benıtez // Soft computing. – 2009.
– P. 451–465.
56. Cerradaa M. Dynamical membership functions: an approach for adaptive fuzzy modeling / M.
Cerradaa, J. Aguilar, E. Colinac // Fuzzy Sets and Systems. – 2005. – № 152. – P. 513–533.
57. Chatterjee A.A. Neuro–Fuzzy Assisted Extended Kalman Filter–Based Approach for
Simultaneous Localization and Mapping (SLAM) Problems / A.A. Chatterjee, F. Matsuno // IEEE
TRANSACTIONS ON FUZZY SYSTEMS. – 2007. – Vol. 15. – № 5. – P. 984–997.
58. Chen M.-Y. Rule-base self-generation and simplication for data-driven fuzzy models / M.-Y.
Chen, D.A. Linkens // Fuzzy Sets and Systems. – 2004. – Vol. 142. – Issue 2. – P. 243–265
59. Cordon O. A historical review of evolutionary learning methods for Mamdani–type fuzzy
rule–based systems: Designing interpretable genetic fuzzy systems / O. Cordon // Int. J. Approx. Reason.
– 2011. – Vol. 52. – P. 894–913.
60. Corne D. The Pareto envelope–based selection algorithm for multiobjective optimization / D.
Corne, J. Knowles, M. Oates // In Proceedings of the Sixth International Conference on Parallel Problem
Solving from Nature VI (PPSN–VI). – 2000. – P. 839–848.
61. Couvreur C. On the optimality of the backward greedy algorithm for the subset selection
problem / C. Couvreur, Y. Bresler // SIAM J. Matrix Anal. Appl. – 2000. – Vol. 21(3). – P. 797–808.
62. Deb K. Multi–objective test problems, linkages, and evolutionary methodologies / K. Deb, A.
Sinha, S. Kukkonen // GECCO. – 2006. – P. 1141–1148.
163
63. Deb K. Reference point based multi–objective optimization using evolutionary algorithms /
K. Deb, J. Sundar, N. Udaya, B. Rao, S. Chaudhuri // Int. J. Comput. Intell. Res. – 2006. – Vol. 2. – №
3. – P. 273–286.
64. Deb K. Interactive evolutionary multi–objective optimization and decision–making using
reference direction method / K. Deb, A. Kumar // in Proc. GECCO. – 2007. – P. 781–788.
65. Deb K. Light beam search based multi–objective optimization using evolutionary algorithms
/ K. Deb, A. Kumar // IEEE CEC. – 2007. – P. 2125–2132.
66. Deb K. A fast and elitist multiobjective genetic algorithm: NSGA–II / K. Deb, S. Agrawal, A.
Pratap, T. Meyarivan // IEEE Transactions on Evolutionary Computation. – 1999. – № 6(2). – P. 182–
197.
67. Deb K. Evaluating the ε–Domination Based Multi–Objective Evolutionary Algorithm for a
Quick Computation of Pareto–Optimal Solutions / K. Deb, M. Mohan, S. Mishra //Evolutionary
Computation. – 2005. – Vol. 13. – № 4. – P. 501–525.
68. Dirk V.A. Optimum tracking with evolution strategies / V.A. Dirk, B. Hans–Georg //
Evolutionary Computation. – 2006. – Vol. 3(14). – P. 291–302.
69. Dorigo M. The Ant Colony Optimization Meta–Heuristic, appears in New Ideas in
Optimization / M. Dorigo, D. Corne, F. Glover and etc // McGraw–Hill, England. – 1999. – P. 11–32.
70. Dorigo M. The Ant System: An Autocatalytic Optimizing Process / M. Dorigo, V. Maniezzo,
A. Colorni // Technical Report Revised, Politecnico di Milano. – Italy. – 1991. – №. 91–016.
71. Dugerdil P. Rational Unified Process Best Practices for Software Development Teams/ P.
Dugerdil // Rational Software White Paper TP026B. – 2011. – Rev 11/01. – 18 p.
72. Dugerdil P. Using RUP to reverse-engineer a legacy system / P. Dugerdil // SEA '07
Proceedings of the 11th IASTED International Conference on Software Engineering and Applications.
– 2007. – P. 203–209.
73. Eftekhari M. Eliciting transparent fuzzy model using differential evolution / M. Eftekhari //
Applied Soft Computing. – 2008. – Vol. 8. – P. 466–476.
74. Emami M.R. A unified parameterized formulation of reasoning in fuzzy modeling and control
/ M.R. Emami, I. B. Turksen, A.A. Goldenberg // Fuzzy Sets and Systems. – 1999. – Vol. 108. – P. 59–
81.
75. Evsukoff A. Structure identification and parameter optimization for non–linear fuzzy
modeling / A. Evsukoff, C.S. Brancoa, S. Galichet // Fuzzy Sets and Systems. – 2002. – №. 132. – P.
173–188.
76. Fazzolari M. A Review of the Application of Multiobjective Evolutionary Fuzzy Systems:
Current Status and Further Directions / M. Fazzolari, R. Alcala, Y. Nojima, H. Ishibuchi and etc // IEEE
Trans. Fuzzy Systems. – 2013. – Vol. 21. – № 1. – P. 45–65.
164
77. Feng G. Analysis and Synthesis of Fuzzy Control Systems: A Model–Based Approach / G.
Feng. – London: CRC Press. – 2010. – 295 p.
78. Forrest S. Study of parallelism in the Classifier system and its application to classification
in KL–ONE semantic networks / S. Forrest // Michigan University. – 1985.
79. Gacto M.J. Interpretability of linguistic fuzzy rule-based systems: An overview of
interpretability measures / M.J. Gacto, R. Alcala, F. Herrera // Information Sciences. – 2011. – Vol. 181.
– P. 4340–4360.
80. Gacto M.J. Integration of an Index to Preserve the Semantic Interpretability in the
Multiobjective Evolutionary Rule Selection and Tuning of Linguistic Fuzzy Systems / M.J. Gacto, R.
Alcala, F. Herrera // IEEE Trans. Fuzzy Systems. – 2010. – Vol. 18. – № 3. – P. 515–531.
81. Gaweda A.E. Data–Driven Linguistic Modeling Using Relational Fuzzy Rules / A.E. Gaweda,
M.J. Zurada // IEEE Transactions On Fuzzy Systems. – 2003. – Vol. 11. – № 1. – P. 121–134.
82. Goldberg D.E. Genetic algorithms in search, optimization and machine learning / D.E.
Goldberg. – MA: Addison–Wesley. – 1989. – 412 p.
83. Gorbunov I.V. Algorithms of the Tradeoff between Accuracy and Complexity in the Design
of Fuzzy Approximators / I.V. Gorbunov, I.A. Hodashinsky // Optoelectronics, Instrumentation and Data
Processing.  2013.  Vol. 49.  № 6.  P. 569–577.
84. Guillaume S. Designing Fuzzy Inference Systems from Data: An Interpretability–Oriented
Review / S. Guillaume // IEEE Trans. Fuzzy Systems. – 2001. – Vol. 9. – № 3. – P. 426–443.
85. Gustavson J.L. Reevaluating Amdahl's law / J.L. Gustavson // Communications of the ACM.
– 1988. – Vol. 31(5). – P.532–533.
86. Hansen M.P. Evaluating the quality of approximations to the non–dominated set / M.P.
Hansen, A. Jaskiewicz // Lyngby: Institute of Mathematical Modelling, Technical University of
Denmark Technical Report. – 1998. – № IMM–REP–1998–7.
87. Herrera F. Genetic fuzzy systems: taxonomy, current research trends and prospects / F.
Herrera // Evolutionary Intelligence. – 2008. – Vol. 1. – P. 27–46.
88. Hickey K. DARPA: Dump passwords for always-on biometrics / K. Hickey. – [Электронный
реcурс]. – Режим доступа: http://gcn.com/articles/2012/03/21/darpa-dump-passwords-continuousbiometrics.aspx (дата обращения: 30.04.2014).
89. Ho S.Y. Design of Accurate Classifiers With a Compact Fuzzy–Rule Base Using an
Evolutionary Scatter Partition of Feature Space / S.Y. Ho, H.M. Chen, T.K. Chen // IEEE Trans. Syst.,
Man, Cybern. Part B. – 2004. – Vol. 34. – № 2. – P. 1031–1044.
165
90. Ishibuchi H. Analysis ofinterpretability-accuracy tradeoff of fuzzy systems by multiobjective
fuzzy genetics-based machine learning / H. Ishibuchi, Y. Nojima // International Journal of Approximate
Reasoning. – 2007. – Vol. 44. – № 1. – P. 4–31.
91. Jara E.C. Multi–Objective Optimization by Using Evolutionary Algorithms: The p–
Optimality Criteria / E.C. Jara // IEEE TRANSACTIONS ON EVOLUTIONARY COMPUTATION. –
2014. – Vol. 18. – № 2. – P. 167–179.
92. Jonathan M. An Introduction to Reection-Oriented Programming / M. Jonathan, D. Sobel, P.
Friedman // Reection '96 in San Francisco. – 1996. – P. 1–20.
93. Kalyanmoy D.A. Computationally efficient evolutionary algorithm for real–parameter
optimization / D.A. Kalyanmoy, A. Ashish, J. Dhiraj // Evolutionary Computation. – 2002. – Vol. 4(10).
– P. 371–395.
94. Karaboga D. On the performance of artificial bee colony (ABC) algorithm / D. Karaboga, B.
Basturk // Applied Soft Computing. – Elsevier. – 2008. – Vol. 8. – P. 687–697.
95. Karaboga D. A survey: algorithms simulating bee swarm intelligence / D. Karaboga, B. Akay
// Artificial Intelligence Review. – 2009. – Vol. 31. – P. 61–85.
96. Kennedy J. Particle swarm optimization / J. Kennedy, R.C. Eberhart // Proc. of IEEE
International Conference on Neural Networks. – 1995. – Vol. 4. – P. 1942–1948.
97. Kessler C.W. Compiling for VLIW DSPs / C.W. Kessler // Handbook of Signal Processing
Systems. – 2010. – P. 603–638.
98. Kim E. A Transformed Input–Domain Approach to Fuzzy Modeling / E. Kim, M. Park, S.
Kim, M. Park // IEEE Trans. Fuzzy Systems. – 1998. – Vol. 6. – № 4. – P. 596–604.
99. Kosko B. Fuzzy systems as universal approximators / B. Kosko // IEEE Trans. Comput. –
1994. – Vol. 43. – P. 1329–1333.
100. Liao T. Artificial bee colonies for continuous optimization: Experimental analysis and
improvements / T. Liao, D. Aydın, T. Stützle // Swarm Intelligence. – 2013. – Vol. 7. – Issue 4. – P.
327–356.
101. Lilly J.H. Fuzzy Control and Identification / J.H. Lilly. – New Jersey: John Wiley & Sons
Inc., – 2010. – 249 p.
102. Marinakis Y.A. Bumble Bees Mating Optimization Algorithm for Global Unconstrained
Optimization Problems / Y.A. Marinakis, M. Marinaki, N. Matsatsinis // Nature Inspired Cooperative
Strategies for Optimization. – Heidelberg: Springer-Verlag. – 2010. – P. 39–60.
103. Márquez A.A. A Mechanism to Improve the Interpretability of Linguistic Fuzzy Systems
with Adaptive Defuzzification based on the use of a Multi-objective Evolutionary Algorithm / A.A.
Márquez, F.A. Márquez, A. Peregrín // International Journal of Computational Intelligence Systems. –
2012. – Vol. 5. – Issue 2. – P. 297–321.
166
104. Matia F. The fuzzy Kalman filter: State estimation using possibilistic techniques / F. Matia,
A. Jimenez, B.M. Al–Hadithi, D. Rodriguez–Losada, R. Galan // Fuzzy Sets and Systems. – 2006. – №
157. – P. 2145–2170.
105. Nabout A. Optimization of fuzzy sets for fuzzy modeling applications using evolution
strategy and input/output process data / A. Nabout // International Association for Mathematics and
Computers in Simulation. – 2009. – P. 513–520.
106. Nojima Y. Parallel Distributed Implementation of Genetics-Based Machine Learning for
Fuzzy Classifier Design / Y. Nojima, S. Mihara, H. Ishibuchi // Simulated Evolution and Learning. –
2010. – Vol. 6457. – P. 309-318.
107. Park K.-J. Optimal Design of Fuzzy Clustering-based Fuzzy Neural Networks for Pattern
Classification / K.-J Park, J.-P. Lee, D.-Y. Lee // International Journal of Grid and Distributed
Computing. – 2012. – Vol. 5. – № 3. – P. 51-68.
108. Pena–Reyes C.A.
Fuzzy CoCo: A Cooperative–Coevolutionary Approach to Fuzzy
Modeling / C.A. Pena–Reyes, M. Sipper // IEEE Trans. Fuzzy Systems. – 2001. – Vol. 9. – № 5. – P.
727–737.
109. Peng Z. Dynamic bee colony algorithm based on multi–species co–evolution / Z. Peng, L.
Hong, D. Yanhui // Applied Intelligence. – 2014. – Vol 40. – Issue 3. – P. 427–440.
110. Pham D.T. The Bees Algorithm – A Novel Tool for Complex Optimisation Problems / D.T.
Pham, A. Ghanbarzadeh, E. Koc, S. Otri, S. Rahim, M. Zaidi // IPROMS 2006 conference. – UK,
Cardiff. – 2006. – P. 454–461.
111. Pulkkinen P. A Dynamically Constrained Multiobjective Genetic Fuzzy System for
Regression Problems / P. Pulkkinen, H. Koivisto // IEEE Trans. Fuzzy Systems. – 2010. – Vol. 18. – №
1. – P. 161–177.
112. Pulkkinen P. Fuzzy classifier identification using decision tree and multiobjective
evolutionary algorithms / P. Pulkkinen, H. Koivisto // International Journal of Approximate Reasoning.
– 2008. – Vol. 48. – Issue 2. – P. 526–543.
113. Saaty T.L. Why the magic number seven plus or minus two / T.L. Saaty, M.S. Ozdemir //
Mathematical and Computer Modelling. – 2003. – № 38. – P. 233–244.
114. Sandri S.F. Order Compatible Fuzzy Relations and Their Elicitation from General Fuzzy
Partitions / S.F. Sandri, T. Martins–Bede // ECSQARU LNAI 6717. – 2011. – P. 640–650.
115. Schott J.R. Fault tolerant design using single and multi–criteria genetic algorithms/ J.R.
Schott // Department of Aeronautics and Astronautics, Massachusetts Institute of Technology. –
Master’s thesis. – 1995.
167
116. Shi Y. Fuzzy Inference Modeling Based on Fuzzy Singleton-Type Reasoning / Y. Shi, P.
Messenger, M. Mizumoto // International Journal of Innovative Computing, Information and Control
ICIC International. – 2007. – Vol. 3. – № 1. – P. 18–20.
117. Simon D. Sum normal optimization of fuzzy membership functions / D. Simon //
International Journal of Uncertainty, Fuzziness and Knowledge–Based Systems. – 2002. –Vol. 10. –
Issue 4. – P. 363–384.
118. Smith S.F. A learning system based on genetic adaptive algorithms / S.F. Smith //
Department of Computer Science, University of Pittsburgh. – 1980.
119. Socha K. Ant colony optimization for continuous domains / K. Socha, M. Dorigo // European
Journal of Operational Research. – 2008. – Vol. 185. – P. 1155–1173.
120. Srinivas N. Multi–objective function optimization using nondominated sorting genetic
algorithms / N. Srinivas, K. Deb // Evolutionary Computation Journal. – 1994. – № 2(3). – P. 221–248.
121. Teodorovic D. Bee Colony Optimization (BCO) / D. Teodorovic // Innovations in Swarm
Intelligence. – Heidelberg: Springer-Verlag. – 2009. – P. 39–60.
122. Teodorovic D. Bee colony optimization – a cooperative learning approach to complex
transportation problems / D. Teodorovic, M. Dell // Advanced OR and AI methods in transportation. –
2005. – P. 51–60.
123. Wagner T. Integration of preferences in hypervolume–based multiobjective evolutionary
algorithms by means of desirability functions / T. Wagner, H. Trautmann // IEEE Trans. Evolut. Comput.
– 2010. – Vol. 14. – № 5. – P. 688–701.
124. Wang L.X. Fuzzy basis functions, universal approximation, and orthogonal least–squares
learning / L.X. Wang, J.M. Mendel // IEEE Transactions on Neural Networks. – 1992. – Vol. 3. – P.
807–814.
125. Whitley D. The island model genetic algorithm: On separability, population size and
convergence/ D. Whitley, S. Rana, R.B. Heckendorn // Journal of Computing and Information
Technology. – 1998. – Vol. 7. – P. 33–47.
126. Wilkinson B. Parallel programming techniques and applications using networked
workstations and parallel computers / B. Wilkinson, M. Allen // Pearson Education. – 2005. – P. 468.
127. Wilson S.W. ZCS: A Zeroth Level Classifier System Evolutionary Computation / S.W.
Wilson // Springer. – 1994. – Vol. 2. – P. 1–18.
128. Wilson S.W. State of XCS Classifier System Research / S.W. Wilson // In: Learning
Classifier Systems: From Foundations to Applications. Berlin. – Heidelberg: Springer. – 2000. – P.
63–81.
129. Yager R.R. The representation of fuzzy relational production rules / R.R. Yager // J. Applied
Intelligence. – 1991. – Vol.1. – P. 35–42.
168
130. Yang X.S. Firely algorithms for multimodal optimization. / X.S. Yang // In: Stochastic
Algorithms: Foundations and Applications (SAGA 2009). Lecture Notes in Computer Sciences. – 2009.
– Vol. 5792. – P. 169–178.
131. Yang X.S. Cuckoo search via Levy flights / X.S. Yang, S. Deb // Proceedings of world
congress on nature and biologically inspired computing (NaBIC 2009). IEEE Publications. USA. – 2009.
– P. 210–214.
132. Yang X.S. Swarm intelligence based algorithms: a critical analysis / X.S. Yang // Evolution
Intellect. – 2014. – Vol. 7. – P. 17–28.
133. Yang X.S. A new metaheuristic bat–inspired algorithm / X.S. Yang, Cruz C, J.R. Gonza´lez,
D.A. Pelta, G. Terrazas // Nature inspired cooperative strategies for optimization (NISCO 2010) studies
in computational intelligence. Springer. – Berlin. – 2010. – Vol. 284. – P. 65–74.
134. Yang X.S. Engineering optimizations via nature-inspired virtual bee algorithms / X.S. Yang
// IWINAC LNCS. – Heidelberg: Springer-Verlag. – 2005. – Vol. 3562. – P. 317-323.
135. Zadeh L. The Role of Fuzzy Logic in Modeling, Identification and Control / L. Zadeh //
Modeling, Identification and Control. – 1994. – Vol. 15. – P. 191–203.
136. Zeng F. Autonomous Bee Colony Optimization for Multi-objective Function / F. Zeng, J.
Decraene, M. Low, P. Hingston and etc // IEEE Congress on Evolutionary Computation. – 2010. – P.
1279–1286.
137. Zhang Y. A Case Study of Data-driven Interpretable Fuzzy Modeling / Y. Zhang, Z.-Y.
Xing, L.-M. Jia, W.-L. Hu, Q. Yong // ACTA Automatica Sinica. – 2005. – Vol. 31. – № 6. – P. 815–
823.
138. Zhang Y. On generating interpretable and precise fuzzy systems based on Pareto multiobjective cooperative co-evolutionary algorithm/ Y. Zhang, X.-B. Wu, Z.-Y. Xing, W.-L. Hu // Applied
Soft Computing. – 2011. – Vol. 11. – P. 1284-1294.
139. Zitzler E. Multiobjective evolutionary algorithms: A comparative case study and the strength
Pareto approach / E. Zitzler, L. Thiele // IEEE Transactions on Evolutionary Computation. – 1999. – №
3(4). – P. 257–271.
140. Zitzler E. SPEA2: Improving the strength Pareto evolutionary algorithm for multiobjective
optimization/ E. Zitzler, M. Laumanns, L. Thiele // Evolutionary Methods for Design Optimization and
Control with Applications to Industrial Problems. – 2001. – P. 95–100.
169
ПРИЛОЖЕНИЕ А
XML документ в диалекте PMML для представления синглтона на тестовом наборе данных
Ele1. Примечание, в документе опущены значения тестовых строк из 396 показаны только 3.
<?xml version="1.0" encoding="UTF-8"?>
<PMML xmlns="http://www.dmg.org/PMML-4_2" version="4.2">
<Header copyright="TUSUR">
<Application name="MixCore" version="1.3.2"/>
</Header>
<DataDictionary numberOfFields="2">
<DataField dataType="double" name="Inhabitants" optype="continuous">
<Interval closure="closedClosed" leftMargin="1" rightMargin="320"/>
</DataField>
<DataField dataType="double" name="Distance" optype="continuous">
<Interval closure="closedClosed" leftMargin="60"
rightMargin="1673.329956"/>
</DataField>
<DataField dataType="double" name="Length" optype="continuous">
<Interval closure="closedClosed" leftMargin="80" rightMargin="7675"/>
</DataField>
</DataDictionary>
<FuzzyRulesModel modelName="Singleton for Ele1" functionName="regression"
modelType="singleton" algorithmName="AAES">
<MiningSchema>
<MiningField name="Inhabitants" invalidValueTreatment="asIs"/>
<MiningField name="Distance" invalidValueTreatment="asIs"/>
<MiningField name="Length" invalidValueTreatment="asIs"
usageType="target"/>
</MiningSchema>
<Output>
<OutputField name="Length_Value" optype="continuous" dataType="double"
targetField="Length" feature="predictedValue"/>
</Output>
<ModelExplanation targetField="Length" dataName="ele-1-5-1tra"
dataUsage="training" meanSquaredError="379223.219845455"
rootMeanSquaredError="30.000125070871857"/>
<FuzzySets>
<FuzzySet name ="InhabitantsT1">
<TriangeMemberFunction lower="-40" pick="1.6284395819225612"
upper="360"/>
</FuzzySet>
<FuzzySet name ="InhabitantsT2">
<TriangeMemberFunction lower="-40" pick="18.06815341019865" upper="320"/>
</FuzzySet>
<FuzzySet name ="DistanceT1">
<TriangeMemberFunction lower="20" pick="60" upper="1873.329956"/>
</FuzzySet>
<FuzzySet name ="DistanceT2">
<TriangeMemberFunction lower="60" pick="1673.329956"
upper="1873.329956"/>
</FuzzySet>
170
</FuzzySets>
<FuzzyRules>
<SingletonRule score="7675">
<CompoundPredicate booleanOperator="and">
<SimplePredicate field="Inhabitants" operator="Equal"
value="InhabitantsT2"/>
<SimplePredicate field="Distance" operator="Equal" value="DistanceT2"/>
</CompoundPredicate>
</SingletonRule>
<SingletonRule score="80">
<CompoundPredicate booleanOperator="and">
<SimplePredicate field="Inhabitants" operator="Equal"
value="InhabitantsT2"/>
<SimplePredicate field="Distance" operator="Equal" value="DistanceT1"/>
</CompoundPredicate>
</SingletonRule>
<SingletonRule score="3606.7848471907546">
<CompoundPredicate booleanOperator="and">
<SimplePredicate field="Inhabitants" operator="Equal"
value="InhabitantsT1"/>
<SimplePredicate field="Distance" operator="Equal" value="DistanceT2"/>
</CompoundPredicate>
</SingletonRule>
<SingletonRule score="80">
<CompoundPredicate booleanOperator="and">
<SimplePredicate field="Inhabitants" operator="Equal"
value="InhabitantsT1"/>
<SimplePredicate field="Distance" operator="Equal" value="DistanceT1"/>
</CompoundPredicate>
</SingletonRule>
</FuzzyRules>
<ModelVerification recordCount="396" fieldCount="4">
<VerificationFields>
<VerificationField field="Inhabitants"/>
<VerificationField field="Distance"/>
<VerificationField field="Length"/>
<VerificationField field="Length_Value"/>
</VerificationFields>
<InlineTable>
<row>
<Inhabitants>10</Inhabitants>
<Distance>648.330017</Distance>
<Length>1773</Length>
<Length_Value>1649.56871358463</Length_Value>
</row>
<row>
<Inhabitants>32</Inhabitants>
<Distance>383.329987</Distance>
<Length>1104</Length>
<Length_Value>1093.964651934903</Length_Value>
</row>
...
171
<row>
<Inhabitants>12</Inhabitants>
<Distance>366.670013</Distance>
<Length>804</Length>
<Length_Value>831.8764179216809</Length_Value>
</row>
</InlineTable>
</ModelVerification>
</FuzzyRulesModel>
</PMML>
XML документ в диалекте UFS для представления сингтона на тестовом наборе данных Ele1.
Примечания, в документе опущены значения тестовых строк из 396 показаны только 3.
<?xml version="1.0" encoding="utf-8"?>
<FuzzySystem Type="ApproximatorSingleton">
<Variables Count="2">
<Variable Name="Inhabitants" Min="1" Max="320">
<Terms Count="2">
<Term Name="0" Type="Triangle">
<Params>
<Param Number="0" Value="-40" />
<Param Number="1" Value="1.6284395819225612" />
<Param Number="2" Value="360" />
</Params>
</Term>
<Term Name="1" Type="Triangle">
<Params>
<Param Number="0" Value="-40" />
<Param Number="1" Value="160.06815341019865" />
<Param Number="2" Value="320" />
</Params>
</Term>
</Terms>
</Variable>
<Variable Name="Distance" Min="60" Max="1673.329956">
<Terms Count="2">
<Term Name="2" Type="Triangle">
<Params>
<Param Number="0" Value="20" />
<Param Number="1" Value="60" />
<Param Number="2" Value="1873.329956" />
</Params>
</Term>
<Term Name="3" Type="Triangle">
<Params>
<Param Number="0" Value="20" />
<Param Number="1" Value="1673.329956" />
<Param Number="2" Value="1873.329956" />
</Params>
</Term>
</Terms>
172
</Variable>
</Variables>
<Rules Count="4">
<Rule>
<Antecedent Count="2">
<Pair Variable="Inhabitants" Term="1" />
<Pair Variable="Distance" Term="3" />
</Antecedent>
<Consequent Value="7675" />
</Rule>
<Rule>
<Antecedent Count="2">
<Pair Variable="Inhabitants" Term="1" />
<Pair Variable="Distance" Term="2" />
</Antecedent>
<Consequent Value="80" />
</Rule>
<Rule>
<Antecedent Count="2">
<Pair Variable="Inhabitants" Term="0" />
<Pair Variable="Distance" Term="3" />
</Antecedent>
<Consequent Value="3606.7848471907546" />
</Rule>
<Rule>
<Antecedent Count="2">
<Pair Variable="Inhabitants" Term="0" />
<Pair Variable="Distance" Term="2" />
</Antecedent>
<Consequent Value="80" />
</Rule>
</Rules>
<Observations CountTable="1">
<Table Name="ele-1-5-1tra.dat" Type="Training" Output="Length">
<Attributes Count="3">
<Attribute Name="Inhabitants" Type="Interval">
<Min>1</Min>
<Max>320</Max>
</Attribute>
<Attribute Name="Distance" Type="Interval">
<Min>60</Min>
<Max>1673.329956</Max>
</Attribute>
<Attribute Name="Length" Type="Interval">
<Min>80</Min>
<Max>7675</Max>
</Attribute>
</Attributes>
<Rows Count="396">
<Row>
<Inhabitants>10</Inhabitants>
<Distance>648.330017</Distance>
173
<Length>1773</Length>
</Row>
<Row>
<Inhabitants>32</Inhabitants>
<Distance>383.329987</Distance>
<Length>1104</Length>
</Row>
...
<Row>
<Inhabitants>12</Inhabitants>
<Distance>366.670013</Distance>
<Length>804</Length>
</Row>
</Rows>
</Table>
</Observations>
<Estimates Count="2">
<Estimate Table="ele-1-5-1tra" Type="RMSE" Value="30.000125070871857" />
<Estimate Table="ele-1-5-1tra" Type="MSE" Value="379223.219845455" />
</Estimates>
</FuzzySystem>
174
ПРИЛОЖЕНИЕ Б
XML документ в диалекте PMML для представления питтсбургского классификатора на
тестовом наборе данных Iris. Примечания, в документе опущены значения тестовых строк из
120 показаны только 3.
<?xml version="1.0" encoding="UTF-8"?>
<PMML xmlns="http://www.dmg.org/PMML-4_2" version="4.2">
<Header copyright="TUSUR">
<Application name="MixCore" version="1.3.2"/>
</Header>
<DataDictionary numberOfFields="5">
<DataField dataType="double" name="SepalLength" optype="continuous">
<Interval closure="closedClosed" leftMargin="4.3" rightMargin="7.9"/>
</DataField>
<DataField dataType="double" name="SepalWidth" optype="continuous">
<Interval closure="closedClosed" leftMargin="2.0" rightMargin="4.4"/>
</DataField>
<DataField dataType="double" name="PetalLength" optype="continuous">
<Interval closure="closedClosed" leftMargin="1.0" rightMargin="6.9"/>
</DataField>
<DataField dataType="double" name="PetalWidth" optype="continuous">
<Interval closure="closedClosed" leftMargin="0.1" rightMargin="2.5"/>
</DataField>
<DataField dataType="string" name="Class" optype="categorical">
<Value value="iris-setosa"/>
<Value value="iris-versicolor"/>
<Value value="iris-virginica"/>
</DataField>
</DataDictionary>
<FuzzyRulesModel modelName="Pittsburgh for Iris" functionName="classification"
modelType="pittsburghClassifier" algorithmName="none">
<MiningSchema>
<MiningField name="SepalLength" invalidValueTreatment="asIs"/>
<MiningField name="SepalWidth" invalidValueTreatment="asIs"/>
<MiningField name="PetalLength" invalidValueTreatment="asIs"/>
<MiningField name="PetalWidth" invalidValueTreatment="asIs"/>
<MiningField name="Class" invalidValueTreatment="asIs" usageType="target"/>
</MiningSchema>
<Output>
<OutputField name="Class_Value" optype="categorical" dataType="string"
targetField="Class" feature="predictedValue"/>
</Output>
<ModelExplanation targetField="Class" dataName="iris-5-1tra"
dataUsage="training" meanError="0,3333333333343"/>
<FuzzySets>
<FuzzySet name ="SepalLengthT1">
<TriangeMemberFunction lower="3.69999999999999929" pick="4.3"
upper="7.9"/>
</FuzzySet>
175
<FuzzySet name ="SepalLengthT2">
<TriangeMemberFunction lower="4.3" pick="7.9" upper="9.5"/>
</FuzzySet>
<FuzzySet name ="SepalWidthT1">
<TriangeMemberFunction lower="1.3" pick="2" upper="4.4"/>
</FuzzySet>
<FuzzySet name ="SepalWidthT2">
<TriangeMemberFunction lower="2" pick="4.4" upper="4.4"/>
</FuzzySet>
<FuzzySet name ="PetalLengthT1">
<TriangeMemberFunction lower="-0.8" pick="1" upper="6.9"/>
</FuzzySet>
<FuzzySet name ="PetalLengthT2">
<TriangeMemberFunction lower="1" pick="6.9" upper="8.8"/>
</FuzzySet>
<FuzzySet name ="PetalWidthT1">
<TriangeMemberFunction lower="-0.3" pick="0.1" upper="2.5"/>
</FuzzySet>
<FuzzySet name ="PetalWidthT2">
<TriangeMemberFunction lower="0.10000000000000009" pick="2.5"
upper="3.2"/>
</FuzzySet>
</FuzzySets>
<FuzzyRules>
<PittsburhClassifierRule score="iris-virginica" weight="1" >
<CompoundPredicate booleanOperator="and">
<SimplePredicate field="SepalLength" operator="Equal"
value="SepalLengthT2"/>
<SimplePredicate field="SepalWidth" operator="Equal"
value="SepalWidthT2"/>
<SimplePredicate field="PetalLength" operator="Equal"
value="PetalLengthT2"/>
<SimplePredicate field="PetalWidth" operator="Equal"
value="PetalWidthT2"/>
</CompoundPredicate>
</PittsburhClassifierRule>
<PittsburhClassifierRule score="iris-virginica" weight="1" >
<CompoundPredicate booleanOperator="and">
<SimplePredicate field="SepalLength" operator="Equal"
value="SepalLengthT2"/>
<SimplePredicate field="SepalWidth" operator="Equal"
value="SepalWidthT2"/>
<SimplePredicate field="PetalLength" operator="Equal"
value="PetalLengthT2"/>
<SimplePredicate field="PetalWidth" operator="Equal"
value="PetalWidthT1"/>
</CompoundPredicate>
</PittsburhClassifierRule>
<PittsburhClassifierRule score="iris-setosa" weight="1" >
<CompoundPredicate booleanOperator="and">
<SimplePredicate field="SepalLength" operator="Equal"
value="SepalLengthT2"/>
176
<SimplePredicate field="SepalWidth" operator="Equal"
value="SepalWidthT2"/>
<SimplePredicate field="PetalLength" operator="Equal"
value="PetalLengthT1"/>
<SimplePredicate field="PetalWidth" operator="Equal"
value="PetalWidthT2"/>
</CompoundPredicate>
</PittsburhClassifierRule>
<PittsburhClassifierRule score="iris-setosa" weight="1" >
<CompoundPredicate booleanOperator="and">
<SimplePredicate field="SepalLength" operator="Equal"
value="SepalLengthT2"/>
<SimplePredicate field="SepalWidth" operator="Equal"
value="SepalWidthT2"/>
<SimplePredicate field="PetalLength" operator="Equal"
value="PetalLengthT1"/>
<SimplePredicate field="PetalWidth" operator="Equal"
value="PetalWidthT1"/>
</CompoundPredicate>
</PittsburhClassifierRule>
<PittsburhClassifierRule score="iris-virginica" weight="1" >
<CompoundPredicate booleanOperator="and">
<SimplePredicate field="SepalLength" operator="Equal"
value="SepalLengthT2"/>
<SimplePredicate field="SepalWidth" operator="Equal"
value="SepalWidthT1"/>
<SimplePredicate field="PetalLength" operator="Equal"
value="PetalLengthT2"/>
<SimplePredicate field="PetalWidth" operator="Equal"
value="PetalWidthT2"/>
</CompoundPredicate>
</PittsburhClassifierRule>
<PittsburhClassifierRule score="iris-virginica" weight="1" >
<CompoundPredicate booleanOperator="and">
<SimplePredicate field="SepalLength" operator="Equal"
value="SepalLengthT2"/>
<SimplePredicate field="SepalWidth" operator="Equal"
value="SepalWidthT1"/>
<SimplePredicate field="PetalLength" operator="Equal"
value="PetalLengthT2"/>
<SimplePredicate field="PetalWidth" operator="Equal"
value="PetalWidthT1"/>
</CompoundPredicate>
</PittsburhClassifierRule>
<PittsburhClassifierRule score="iris-setosa" weight="1" >
<CompoundPredicate booleanOperator="and">
<SimplePredicate field="SepalLength" operator="Equal"
value="SepalLengthT2"/>
<SimplePredicate field="SepalWidth" operator="Equal"
value="SepalWidthT1"/>
<SimplePredicate field="PetalLength" operator="Equal"
value="PetalLengthT1"/>
177
<SimplePredicate field="PetalWidth" operator="Equal"
value="PetalWidthT2"/>
</CompoundPredicate>
</PittsburhClassifierRule>
<PittsburhClassifierRule score="iris-setosa" weight="1" >
<CompoundPredicate booleanOperator="and">
<SimplePredicate field="SepalLength" operator="Equal"
value="SepalLengthT2"/>
<SimplePredicate field="SepalWidth" operator="Equal"
value="SepalWidthT1"/>
<SimplePredicate field="PetalLength" operator="Equal"
value="PetalLengthT1"/>
<SimplePredicate field="PetalWidth" operator="Equal"
value="PetalWidthT1"/>
</CompoundPredicate>
</PittsburhClassifierRule>
<PittsburhClassifierRule score="iris-virginica" weight="1" >
<CompoundPredicate booleanOperator="and">
<SimplePredicate field="SepalLength" operator="Equal"
value="SepalLengthT1"/>
<SimplePredicate field="SepalWidth" operator="Equal"
value="SepalWidthT2"/>
<SimplePredicate field="PetalLength" operator="Equal"
value="PetalLengthT2"/>
<SimplePredicate field="PetalWidth" operator="Equal"
value="PetalWidthT2"/>
</CompoundPredicate>
</PittsburhClassifierRule>
<PittsburhClassifierRule score="iris-virginica" weight="1" >
<CompoundPredicate booleanOperator="and">
<SimplePredicate field="SepalLength" operator="Equal"
value="SepalLengthT1"/>
<SimplePredicate field="SepalWidth" operator="Equal"
value="SepalWidthT2"/>
<SimplePredicate field="PetalLength" operator="Equal"
value="PetalLengthT2"/>
<SimplePredicate field="PetalWidth" operator="Equal"
value="PetalWidthT1"/>
</CompoundPredicate>
</PittsburhClassifierRule>
<PittsburhClassifierRule score="iris-setosa" weight="1" >
<CompoundPredicate booleanOperator="and">
<SimplePredicate field="SepalLength" operator="Equal"
value="SepalLengthT1"/>
<SimplePredicate field="SepalWidth" operator="Equal"
value="SepalWidthT2"/>
<SimplePredicate field="PetalLength" operator="Equal"
value="PetalLengthT1"/>
<SimplePredicate field="PetalWidth" operator="Equal"
value="PetalWidthT2"/>
</CompoundPredicate>
</PittsburhClassifierRule>
178
<PittsburhClassifierRule score="iris-setosa" weight="1" >
<CompoundPredicate booleanOperator="and">
<SimplePredicate field="SepalLength" operator="Equal"
value="SepalLengthT1"/>
<SimplePredicate field="SepalWidth" operator="Equal"
value="SepalWidthT2"/>
<SimplePredicate field="PetalLength" operator="Equal"
value="PetalLengthT1"/>
<SimplePredicate field="PetalWidth" operator="Equal"
value="PetalWidthT1"/>
</CompoundPredicate>
</PittsburhClassifierRule>
<PittsburhClassifierRule score="iris-virginica" weight="1" >
<CompoundPredicate booleanOperator="and">
<SimplePredicate field="SepalLength" operator="Equal"
value="SepalLengthT1"/>
<SimplePredicate field="SepalWidth" operator="Equal"
value="SepalWidthT1"/>
<SimplePredicate field="PetalLength" operator="Equal"
value="PetalLengthT2"/>
<SimplePredicate field="PetalWidth" operator="Equal"
value="PetalWidthT2"/>
</CompoundPredicate>
</PittsburhClassifierRule>
<PittsburhClassifierRule score="iris-virginica" weight="1" >
<CompoundPredicate booleanOperator="and">
<SimplePredicate field="SepalLength" operator="Equal"
value="SepalLengthT1"/>
<SimplePredicate field="SepalWidth" operator="Equal"
value="SepalWidthT1"/>
<SimplePredicate field="PetalLength" operator="Equal"
value="PetalLengthT2"/>
<SimplePredicate field="PetalWidth" operator="Equal"
value="PetalWidthT1"/>
</CompoundPredicate>
</PittsburhClassifierRule>
<PittsburhClassifierRule score="iris-setosa" weight="1" >
<CompoundPredicate booleanOperator="and">
<SimplePredicate field="SepalLength" operator="Equal"
value="SepalLengthT1"/>
<SimplePredicate field="SepalWidth" operator="Equal"
value="SepalWidthT1"/>
<SimplePredicate field="PetalLength" operator="Equal"
value="PetalLengthT1"/>
<SimplePredicate field="PetalWidth" operator="Equal"
value="PetalWidthT2"/>
</CompoundPredicate>
</PittsburhClassifierRule>
<PittsburhClassifierRule score="iris-setosa" weight="1" >
<CompoundPredicate booleanOperator="and">
<SimplePredicate field="SepalLength" operator="Equal"
value="SepalLengthT1"/>
179
<SimplePredicate field="SepalWidth" operator="Equal"
value="SepalWidthT1"/>
<SimplePredicate field="PetalLength" operator="Equal"
value="PetalLengthT1"/>
<SimplePredicate field="PetalWidth" operator="Equal"
value="PetalWidthT1"/>
</CompoundPredicate>
</PittsburhClassifierRule>
</FuzzyRules>
<ModelVerification recordCount="120" fieldCount="6">
<VerificationFields>
<VerificationField field="SepalLength"/>
<VerificationField field="SepalWidth"/>
<VerificationField field="PetalLength"/>
<VerificationField field="PetalWidth"/>
<VerificationField field="Class"/>
<VerificationField field="Class_Value"/>
</VerificationFields>
<InlineTable>
<row>
<SepalLength>5.1</SepalLength>
<SepalWidth>3.5</SepalWidth>
<PetalLength>1.4</PetalLength>
<PetalWidth>0.2</PetalWidth>
<Class>iris-setosa</Class>
<Class_Value>iris-setosa</Class_Value>
</row>
<row>
<SepalLength>4.9</SepalLength>
<SepalWidth>3</SepalWidth>
<PetalLength>1.4</PetalLength>
<PetalWidth>0.2</PetalWidth>
<Class>iris-setosa</Class>
<Class_Value>iris-setosa</Class_Value>
</row>
...
<row>
<SepalLength>7.7</SepalLength>
<SepalWidth>2.6</SepalWidth>
<PetalLength>6.9</PetalLength>
<PetalWidth>2.3</PetalWidth>
<Class>iris-virginica</Class>
<Class_Value>iris-virginica</Class_Value>
</row>
</InlineTable>
</ModelVerification>
</FuzzyRulesModel>
</PMML>
180
XML документ в диалекте UFS для представления питтсбургского классификатора на тестовом
наборе данных Iris. Примечания, в документе опущены значения тестовых строк из 120
показаны только 3.
<?xml version="1.0" encoding="utf-8"?>
<FuzzySystem Type="ClassifierPittsburgh">
<Variables Count="4">
<Variable Name="SepalLength" Min="4.3" Max="7.9">
<Terms Count="2">
<Term Name="0" Type="Triangle">
<Params>
<Param Number="0" Value="3.69999999999999929" />
<Param Number="1" Value="4.3" />
<Param Number="2" Value="7.9" />
</Params>
</Term>
<Term Name="1" Type="Triangle">
<Params>
<Param Number="0" Value="4.3" />
<Param Number="1" Value="7.9" />
<Param Number="2" Value="9.5" />
</Params>
</Term>
</Terms>
</Variable>
<Variable Name="SepalWidth" Min="2" Max="4.4">
<Terms Count="2">
<Term Name="2" Type="Triangle">
<Params>
<Param Number="0" Value="1.3" />
<Param Number="1" Value="2" />
<Param Number="2" Value="4.4" />
</Params>
</Term>
<Term Name="3" Type="Triangle">
<Params>
<Param Number="0" Value="2" />
<Param Number="1" Value="4.4" />
<Param Number="2" Value="4.4" />
</Params>
</Term>
</Terms>
</Variable>
<Variable Name="PetalLength" Min="1" Max="6.9">
<Terms Count="2">
<Term Name="4" Type="Triangle">
<Params>
<Param Number="0" Value="-0.8" />
<Param Number="1" Value="1" />
<Param Number="2" Value="6.9" />
</Params>
181
</Term>
<Term Name="5" Type="Triangle">
<Params>
<Param Number="0" Value="1" />
<Param Number="1" Value="6.9" />
<Param Number="2" Value="8.8" />
</Params>
</Term>
</Terms>
</Variable>
<Variable Name="PetalWidth" Min="0.1" Max="2.5">
<Terms Count="2">
<Term Name="6" Type="Triangle">
<Params>
<Param Number="0" Value="-0.3" />
<Param Number="1" Value="0.1" />
<Param Number="2" Value="2.5" />
</Params>
</Term>
<Term Name="7" Type="Triangle">
<Params>
<Param Number="0" Value="0.10000000000000009" />
<Param Number="1" Value="2.5" />
<Param Number="2" Value="3.2" />
</Params>
</Term>
</Terms>
</Variable>
</Variables>
<Rules Count="16">
<Rule>
<Antecedent Count="4">
<Pair Variable="SepalLength" Term="1" />
<Pair Variable="SepalWidth" Term="3" />
<Pair Variable="PetalLength" Term="5" />
<Pair Variable="PetalWidth" Term="7" />
</Antecedent>
<Consequent Class="iris-virginica" CF="1" />
</Rule>
<Rule>
<Antecedent Count="4">
<Pair Variable="SepalLength" Term="1" />
<Pair Variable="SepalWidth" Term="3" />
<Pair Variable="PetalLength" Term="5" />
<Pair Variable="PetalWidth" Term="6" />
</Antecedent>
<Consequent Class="iris-virginica" CF="1" />
</Rule>
<Rule>
<Antecedent Count="4">
<Pair Variable="SepalLength" Term="1" />
<Pair Variable="SepalWidth" Term="3" />
182
<Pair Variable="PetalLength" Term="4" />
<Pair Variable="PetalWidth" Term="7" />
</Antecedent>
<Consequent Class="iris-setosa" CF="1" />
</Rule>
<Rule>
<Antecedent Count="4">
<Pair Variable="SepalLength" Term="1" />
<Pair Variable="SepalWidth" Term="3" />
<Pair Variable="PetalLength" Term="4" />
<Pair Variable="PetalWidth" Term="6" />
</Antecedent>
<Consequent Class="iris-setosa" CF="1" />
</Rule>
<Rule>
<Antecedent Count="4">
<Pair Variable="SepalLength" Term="1" />
<Pair Variable="SepalWidth" Term="2" />
<Pair Variable="PetalLength" Term="5" />
<Pair Variable="PetalWidth" Term="7" />
</Antecedent>
<Consequent Class="iris-virginica" CF="1" />
</Rule>
<Rule>
<Antecedent Count="4">
<Pair Variable="SepalLength" Term="1" />
<Pair Variable="SepalWidth" Term="2" />
<Pair Variable="PetalLength" Term="5" />
<Pair Variable="PetalWidth" Term="6" />
</Antecedent>
<Consequent Class="iris-virginica" CF="1" />
</Rule>
<Rule>
<Antecedent Count="4">
<Pair Variable="SepalLength" Term="1" />
<Pair Variable="SepalWidth" Term="2" />
<Pair Variable="PetalLength" Term="4" />
<Pair Variable="PetalWidth" Term="7" />
</Antecedent>
<Consequent Class="iris-setosa" CF="1" />
</Rule>
<Rule>
<Antecedent Count="4">
<Pair Variable="SepalLength" Term="1" />
<Pair Variable="SepalWidth" Term="2" />
<Pair Variable="PetalLength" Term="4" />
<Pair Variable="PetalWidth" Term="6" />
</Antecedent>
<Consequent Class="iris-setosa" CF="1" />
</Rule>
<Rule>
<Antecedent Count="4">
183
<Pair Variable="SepalLength" Term="0" />
<Pair Variable="SepalWidth" Term="3" />
<Pair Variable="PetalLength" Term="5" />
<Pair Variable="PetalWidth" Term="7" />
</Antecedent>
<Consequent Class="iris-virginica" CF="1" />
</Rule>
<Rule>
<Antecedent Count="4">
<Pair Variable="SepalLength" Term="0" />
<Pair Variable="SepalWidth" Term="3" />
<Pair Variable="PetalLength" Term="5" />
<Pair Variable="PetalWidth" Term="6" />
</Antecedent>
<Consequent Class="iris-virginica" CF="1" />
</Rule>
<Rule>
<Antecedent Count="4">
<Pair Variable="SepalLength" Term="0" />
<Pair Variable="SepalWidth" Term="3" />
<Pair Variable="PetalLength" Term="4" />
<Pair Variable="PetalWidth" Term="7" />
</Antecedent>
<Consequent Class="iris-setosa" CF="1" />
</Rule>
<Rule>
<Antecedent Count="4">
<Pair Variable="SepalLength" Term="0" />
<Pair Variable="SepalWidth" Term="3" />
<Pair Variable="PetalLength" Term="4" />
<Pair Variable="PetalWidth" Term="6" />
</Antecedent>
<Consequent Class="iris-setosa" CF="1" />
</Rule>
<Rule>
<Antecedent Count="4">
<Pair Variable="SepalLength" Term="0" />
<Pair Variable="SepalWidth" Term="2" />
<Pair Variable="PetalLength" Term="5" />
<Pair Variable="PetalWidth" Term="7" />
</Antecedent>
<Consequent Class="iris-virginica" CF="1" />
</Rule>
<Rule>
<Antecedent Count="4">
<Pair Variable="SepalLength" Term="0" />
<Pair Variable="SepalWidth" Term="2" />
<Pair Variable="PetalLength" Term="5" />
<Pair Variable="PetalWidth" Term="6" />
</Antecedent>
<Consequent Class="iris-virginica" CF="1" />
</Rule>
184
<Rule>
<Antecedent Count="4">
<Pair Variable="SepalLength" Term="0" />
<Pair Variable="SepalWidth" Term="2" />
<Pair Variable="PetalLength" Term="4" />
<Pair Variable="PetalWidth" Term="7" />
</Antecedent>
<Consequent Class="iris-setosa" CF="1" />
</Rule>
<Rule>
<Antecedent Count="4">
<Pair Variable="SepalLength" Term="0" />
<Pair Variable="SepalWidth" Term="2" />
<Pair Variable="PetalLength" Term="4" />
<Pair Variable="PetalWidth" Term="6" />
</Antecedent>
<Consequent Class="iris-setosa" CF="1" />
</Rule>
</Rules>
<Observations CountTable="1">
<Table Name="iris-5-1tra" Type="Training" Output="Class">
<Attributes Count="5">
<Attribute Name="SepalLength" Type="Interval">
<Min>4.3</Min>
<Max>7.9</Max>
</Attribute>
<Attribute Name="SepalWidth" Type="Interval">
<Min>2</Min>
<Max>4.4</Max>
</Attribute>
<Attribute Name="PetalLength" Type="Interval">
<Min>1</Min>
<Max>6.9</Max>
</Attribute>
<Attribute Name="PetalWidth" Type="Interval">
<Min>0.1</Min>
<Max>2.5</Max>
</Attribute>
<Attribute Name="Class" Type="Enum">
<Enum Count="3">
<Enum Value="iris-setosa" />
<Enum Value="iris-versicolor" />
<Enum Value="iris-virginica" />
</Enum>
</Attribute>
</Attributes>
<Rows Count="120">
<Row>
<SepalLength>5.1</SepalLength>
<SepalWidth>3.5</SepalWidth>
<PetalLength>1.4</PetalLength>
<PetalWidth>0.2</PetalWidth>
185
<Class>iris-setosa</Class>
</Row>
<Row>
<SepalLength>4.9</SepalLength>
<SepalWidth>3</SepalWidth>
<PetalLength>1.4</PetalLength>
<PetalWidth>0.2</PetalWidth>
<Class>iris-setosa</Class>
</Row>
...
<Row>
<SepalLength>7.7</SepalLength>
<SepalWidth>2.6</SepalWidth>
<PetalLength>6.9</PetalLength>
<PetalWidth>2.3</PetalWidth>
<Class>iris-virginica</Class>
</Row>
</Rows>
</Table>
</Observations>
<Estimates Count="1">
<Estimate Table="iris-5-1tra" Type="PrecisionPercent"
Value="66.666666666666657" />
</Estimates>
</FuzzySystem>
186
ПРИЛОЖЕНИЕ В
187
188
ПРИЛОЖЕНИЕ Г
Акт внедрения системы распознования клавиатурного почерка
189
ПРИЛОЖЕНИЕ Д
Акт в учебный процесс
190
ПРИЛОЖЕНИЕ Е
Свидетельство о государственной регистрации программы для ЭВМ
191
192
Download