Text
                    Д. Рутковская
М. Пилиньский
Л. Рутковский
Нейронные сети,
генетические алгоритмы
и нечеткие системы


Д.Рутковская М.Пилиньский Л.Рутковский Нейронные сети, генетические алгоритмы и нечеткие системы
WYDAWNICTWO NAUKOWE PWN WARSZAWA LODZ 1999 Sied neuronowe, algorytmy genetyczne i systemy rozmyte Danuta Rutkowska Maciej Pilinski Leszek Rutkowski
Д. Рутковская М. Пилиньский Л. Рутковский Нейронные сети, генетические алгоритмы и нечеткие системы Перевод с польского И. Д. Рудинского Москва Горячая линия-Телеком 2006
ББК 30.17 Р90 Рутковская Д., Пилиньский М., Рутковский Л. Р90 Нейронные сети, генетические алгоритмы и нечеткие системы: Пер. с польск. И. Д. Рудинского. - М.: Горячая линия - Телеком, 2006. - 452 с.: ил. ISBN 5-93517-103-1. Книга посвящена вопросам «интеллектуальных вычислений». Содер- жит базовые знания о генетических алгоритмах, эволюционном програм- мировании, нечетких системах, а также о связях этих направлений с ней- ронными сетями. Для научных и инженерно-технических работников в области инфор- матики и вычислительной техники, занимающихся созданием и использо- ванием интеллектуальных систем, а также аспирантов и студентов раз- личных специальностей в области компьютерных технологий. ББК 30.17 Адрес издательства в Интернет www.techbook.ru e-mail: radios_hl@mtu-net.ru Научное издание Рутковская Данута Пилиньский Мачей Рутковский Лешек НЕЙРОННЫЕ СЕТИ, ГЕНЕТИЧЕСКИЕ АЛГОРИТМЫ И НЕЧЕТКИЕ СИСТЕМЫ Редактор А. С. Попов Компьютерная верстве Т. С. Левыкиной Корректор Р. И. Голубева Обложка художника В. Г. Ситникова ЛР № 071825 от 16 марта 1999 г. Подписано в печать 14.11.05. Формат 60x90/16 Печать офсетная Уч.-изд. л. 28,25. Тираж 1000 экз. Изд. № 103 ISBN 5-93517-103-1 (рус.) © Издательство Wydawnictwo ISBN 83-01-12304-4 (польск.) © Naukowe PWN, 1997, 1999, 2004 © Рудинский И. Д., перевод с польск., 2004 © Оформление издательства «Горячая линия-Телеком», 2006
Оглавление Предисловие............................................. 9 Предисловие к русскому изданию.......................... 12 1. Введение............................................ 14 Список литературы............................... ... 16 2. Многослойные нейронные сети и алгоритмы их обучения 18 2.1. Введение........................... 18 2.2. Нейрон и его модели 18 2.3. Персептрон........................................ 21 2.4. Системы типа Адалайн . 25 2.4.1. Линейный взвешенный сумматор ... 26 2.4.2. Адаптивный линейный взвешенный сумматор .. 30 2.4.3. Адаптивный линейный взвешенный сумматор с сигмоидой на выходе ......................... 31 2.5. Алгоритм обратного распостранения ошибки ......... 33 2.6. Применение рекуррентного метода наименьших квадратов для обучения нейронных сетей............. .. 37 Список литературы........ 3 Нечеткие множества и нечеткий вывод 3.1. Введение.................................... 3.2. Основные понятия и определения теории нечетких множеств.......................................... 3.3. Операции на нечетких множествах .. 3.4. Принцип расширения .. 3.5. Нечеткие числа .... 3.6. Треугольные нормы ........... 3.7. Нечеткие отношения и их свойства . 3.8. Нечеткий вывод.............................. 3.8.1. Основные правила Вывода в двоичной логике... 3.8.2. Основные правила вывода в нечеткой логике.. . 3.8.2.1. Обобщенное нечеткое правило modus ponens. 3.8.2.2. Обобщенное нечеткое правило modus tollens. 3.8.3. Правила нечеткой импликации............. §о2322ыыоои!оо2оЗсл ui « ы
Оглавление 3.9. Нечеткое управление ................................... 91 3.9.1. Классический модуль нечеткого управления 92 3.9.1.1. База правил............................... 92 3.9.1.2. Блок фуззификации 94 3.9.1.3. Блок выработки решения . 94 3.9.1.4. Блок дефуззификации........................ 105 3.9.2. Метод нечеткого управления Такаги-Сугено .. 106 3.10. Проектирование базы нечетких правил на основе численных данных....................... 109 3.10.1. Построение нечетких правил . . 110 3.10.2. Задача парковки грузовика 115 3.10.3. Примечание................................... .118 Список литературы ......................................... .122 4. Генетические алгоритмы............................. 124 4.1. Введение ............................................. 124 4.2. Генетические алгоритмы и традиционные методы оптимизации ............................................. 125 4.3. Основные понятия генетических алгоритмов .126 4.4. Классический генетический алгоритм ................... 130 4.5. Иллюстрация выполнения классического генетического алгоритма............................................... 136 4.6. Кодирование параметров задачи в генетическом алгоритме 139 4.7. Основная теорема о генетических алгоритмах....... 144 4.8. Модификации классического генетического алгоритма . . 157 4.8.1. Методы селекции ............................... 157 4.8.2. Особые процедуры репродукции 160 4.8.3. Генетические операторы ... .161 4.8.4. Методы кодирования .. ... 163 4.8.5. Масштабирование функции приспособленности ... 164 4.8.6. Ниши в генетическом алгоритме ................ 166 4.8.7. Генетические алгоритмы для многокритериальной оптимизации . . 167 4.8.8. Генетические микроалгоритмы............... 169 4.9. Примеры оптимизации функции с помощью программы FlexTool .............................................. 170 4.10. Эволюционные алгоритмы 206 4.11. Приложения эволюционных алгоритмов.................. 213
Оглавление 4.11.1. Примеры оптимизации функции с помощью программы Evolver ................................. 214 4.11.2. Решение комбинаторных задач с помощью программы Evolver.................................. 246 4.12. Эволюционные алгоритмы в нейронных сетях ....... 250 4.12 1. Независимое применение генетических алгоритмов и нейронных сетей ................................. 252 4.12.2 . Нейронные сети для поддержки генетических алгоритмов .................................... . 252 4.12.3 . Генетические алгоритмы для поддержки нейронных сетей ................................... 253 4.12.4 . Применение генетических алгоритмов для обучения нейронных сетей........................... 256 4.12.5 . Генетические алгоритмы для выбора топологии нейронных сетей ................................... 256 4.12.6 . Адаптивные взаимодействующие системы ... 257 4.12.7 . Типовой цикл эволюции ................... 257 4.12.7.1. Эволюция весов связей..... 4.12.7.2. Эволюция архитектуры сети .. ..... 4.12.7.3. Эволюция правил обучения ............... 4.13. Примеры моделирования эволюционных алгоритмов в приложении к нейронным сетям ......................... 4.13.1. Программы Evolver и BrainMaker...... 4.13.2. Программа GTO ................... Список литературы ...................... 5. Модули нечетко-нейронного управления .................. 5.1. Модуль нечеткого управления со структурой, определенной в процессе дефуззификации .... 5.1.1. Введение................ 5.1.2. Конструкция модуля .......... 5.1.3. Структура модуля............... 5.1.4. Использование алгоритма обратного ° ш о m m s о о oqo? счсчсч CNCNCNM м п я я я распространения ошибки ..................... 313 5.1.5. Модификации модуля ....................... 320 5.1.6. Применение модуля нечеткого управления для прогнозирования случайных временных рядов .... 322 5.1.7. Применение модуля нечеткого управления для решения задачи парковки грузовика................ 326 5.1.8. Примечание ............................... 330
Оглавление 5.2. Представление модуля нечеткого управления в виде стандартной нейронной сети............................ 330 5.3. Модуль нечеткого управления с нейронной сетью для выполнения дефуззификации ............................ 333 5.3.1. Введение......... 333 5.3.2. Конструкция модуля .. 334 5.3.3. Структура модуля .......................... 335 5.3.4. Алгоритмы обучения модуля ................. 337 5.3.5. Решение задачи стабилизации перевернутого маятника.......................................... 342 5.3.6. Примечание ................................ 348 5.4. Модуль нечеткого управления с возможностью коррекции правил ............................................... 5.4.1. Введение.............................. 5.4.2. Фаза обучения на основе самоорганизации ... 5.4.3. Фаза обучения с учителем................... 5.4.4. Примечание ........................... 5.5. Модуль нечеткого управления типа Такаги-Сугено: случай независимых лингвистических переменных ... 5.5.1. Введение . .. ............................. 5.5.2. Нейронная реализация функции принадлежности .. 5.5.3. Модули Такаги-Сугено . 5.5.4. Реализация условий......... 5.5.5. Реализация заключений...... 5.5.6. Примечание ................................ 5.6. Модуль нечеткого управления типа Такаги-Сугено: случай зависимых лингвистических переменных . 5.6.1. Введение.............................. 5.6.2. Нейронные сети для нечеткого вывода .. 5.6.3. Структура системы ... 5.6.4. Способ обучения................. 5.6.5. Решение задачи парковки грузовика ... 5.6.6. Примечание Список литературы ......................... Предметный указатель.................................. шшш нш
Предисловие Двадцатый век завершился под знаком революции в области обра- ботки информации. Мы стали свидетелями как быстрого роста объема доступных данных, так и увеличения скорости их обработки и передачи, а также емкости запоминающих устройств. Отчетливо видно, что эти яв- ления не только взаимосвязаны, но и усиливают друг друга. В ситуации лавинобразного нарастания объемов информации и вычислительных мощностей возникает очевидный вопрос каким образом можно улучшить наши способности к познанию окружающего мира, имея в наличии столь большие и непрерывно растущие технические возможности? Помощь приходит со стороны апробированных классических мате- матических методов, созданных трудами Ньютона, Лейбница, Эйлера и других гениев прошлого, заложивших фундамент современных вычис- лительных алгоритмов. Благодаря им у нас есть специализированные вычислительные процедуры для распознавания образов и речи, для уп- равления системами различных классов и решения иных аналогичных проблем. Независимые от этого направления исследования в области ис- кусственного интеллекта привели к созданию экспертных и прогностиче- ских систем, основанных на символьной обработке и использующих базы правил. Однако все перечисленные выше подходы предполагают исполь- зование либо узкоспециализированных вычислительных методик, либо специализированных баз знаний, чаще всего заключенных в жесткий кор- сет двоичной логики. Еще одно ограничение на применение этих методов связано с фактом, что они не допускают непосредственное решение за- дач при использовании вычислительных систем с универсальной архи- тектурой, общей для большинства практических приложений. Таким образом, мы подходим к происхождению и сущности вычис- лительных технологий, составляющих предмет настоящей книги. Эти тех- нологии, объединяемые в англоязычной литературе под названием Computational Intelligence, позволяют получать непрерывные или дис- кретные решения в результате обучения по доступным имеющимся дан- ным. Один из подклассов обсуждаемой группы методов составляют ней- ронные сети, использующие стохастические алгоритмы для обучения мо- дели с учителем или путем самоорганизации. Они предназначены для обработки зашумленных цифровых данных, по которым алгоритмы обу- чения выстраивают однонаправленные или рекуррентные модели инте- ресующих нас процессов. Эти модели характеризуются регулярной струк- турой, составленной из нелинейных элементов, объединенных разветв- ленной сетью линейных соединений и часто дополняемой локальными или глобальными обратными связями. При моделировании процессов возможности нейронных сетей мо- гут усиливаться за счет применения технологии обработки информации, основанной на нечетких множествах и нечетком выводе. Этот метод свя- зан с оцениванием функции принадлежности элементов к множествам с помощью нечетких логических операторов. Предлагаемый подход не только ослабляет требования к точности данных в процессе построения
10 Предисловие модели, но и позволяет описать сложные системы с помощью перемен- ных, значения которых определяются на интуитивном уровне. Возникаю- щая в результате парадигма моделирования, управления, выработки ре- шений и т.п. ведет к формированию лингвистических аргументов логиче- ских функций. Такие функции, описывающие реальные объекты, могут уточнять- ся в процессе обучения по имеющимся данным. Другой подход состоит в формировании правил вывода непосредственно в процессе обучения. Этим и определяется взамопроникновение и комплементарность нейрон- ных моделей и систем, базирующихся на нечеткой логике. Лингвистичес- кие операторы, которые мы используем при повседневном общении, и итерационный процесс обучения вместе ведут к интеллектуальным ло- гикоалгебраическим моделям, определяемым понятием Computational Intelligence (вычислительные технологии). Интеллектуальность в данном случае понимается как способность применять знания, накопленные в процессе обучения, как возможность генерировать правила вывода и как умение обобщать информацию. Важным классом алгоритмов обучения, обогативших нейронные и нечеткие технологии, считаются эволюционные алгоритмы. Они опери- руют популяциями хромосом, оцениваемых функциями приспособленно- сти, и используют эволюционную и генетическую обусловленность изме- нения последовательности битов или чисел. Таким образом эффективно исследуется пространство возможных решений. Оптимальное решение ищется в серии последовательных приближений аргументов с лучшими значениями функций приспособленности, генерируемых в результате му- тации и скрещивания хромосом. Автор этих заметок в качестве председателя Комитета Симпозиу- ма Computational Intelligence- Imitating Life, состоявшегося в Орландо в 1994 г., стоял у истоков слияния этих трех научных направлений и воз- никновения новой интегральной отрасли знаний. Он с удовольствием приветствует «Нейронные сети, генетические алгоритмы и нечеткие сис- темы» - новаторскую книгу на польском издательском рынке. Помимо об- суждения базовых элементов нейронных сетей, описания нечетких сис- тем и эволюционногенетических алгоритмов, этот труд содержит и ориги- нальные научные результаты авторов. В книге приводятся подробности реализации конкретных технических решений, в том числе различных процессоров и обучаемых систем, основанных на нечеткой логике. Боль- шое внимание уделяется вопросам практического использования ряда пакетов прикладных программ. Тематически книга связана с научными направлениями Всеполь- ских конференций по нейронным сетям и их приложениям, организован- ных профессором Л. Рутковским и Польским товариществом нейронных сетей в 1994 и 1996 г.г. Данная публикация под руководством профессора Л. Рутковского чрезвычайно актуальна, ценна и уникальна. Она заполняет обширную ни- шу на емком научнотехническом рынке Польши. Книга окажется особен- но полезной инженерам различных специальностей, экономистам, физи- кам, математикам и специалистам по информатике, а также студентам
Предисловие________________________________________________21 этих и смежных с ними областей знаний. Следует поздравить авторов с большим достижением в виде этого прекрасного научного труда Эта книга должна не только умножить признание их заслуг, но и привлечь новые ряды энтузиастов этой захватывающей научной дис- циплины. Июль 1996 г. ЯцекЖурада член IEEE. Университет Луисвилль, США
Предисловие к русскому изданию Проблематика нейронных сетей, генетических алгоритмов и не- четких систем, и в особенности комбинации этих методов - это одна из наиболее интенсивно развивающихся в настоящее время областей ис- следований, получившей название «Вычислительные технологии». Ее можно считать современным ответвлением информатики (Computer Science), связанным с методами искусственного интеллекта (Artificial Intelligence), хотя и принципиально отличным от классического подхода, применяемого адептами этого направления. Дисциплина «Вычислительные технологии» исследует интеллек- туальные методы решения различных задач и находит применение в раз- личных областях, в том числе в промышленности, экономике, медицине и др. Нейронные сети, генетические алгоритмы и нечеткие системы до- полняют классические экспертные системы, которые считаются одним из главных направлений приложения искусственного интеллекта, а также в некоторых случаях выполняют функции этих систем путем реализации так называемых интеллектуальных вычислительных систем. Последние представляют собой объединение нейронных сетей, генетических алго- ритмов и нечетких систем, взаимодействие которых позволяет решать различные задачи, но самое важное - они становятся универсальным ин- струментом для обработки информации. Одна и та же система может применяться для решения различных задач, что считается несомненным достоинством по сравнению с классическими экспертными системами, ориентированными, как правило, на достаточно узкую проблему, напри- мер, на медицинскую диагностику конкретного заболевания. Интеллекту- альные вычислительные системы можно легко «перепрограммировать» на решение другой задачи, причем роль такого программирования игра- ет обучение. Таким образом, эти системы обладают способностью к обу- чению, что считается главным атрибутом интеллектуальности. Теоретические основы методов, применяемых в сфере «Вычисли- тельные технологии», заложены исследованиями, проводимыми в об- ласти «Soft Computing». Эта отрасль информатики занимается так назы- ваемыми мягкими вычислениями, которые характеризуются неполнотой данных и отсутствием точности. К ним относятся нечеткие системы, неко- торые разделы теории вероятностей, а также нейронные сети и генетиче- ские алгоритмы. Наиболее известной фигурой среди исследователей этой области является профессор Л. Заде из Computer Science Division в Беркли, который в 1965 г. опубликовал знаменитую работу, посвящен- ную нечетким множествам (Fuzzy Sets), а в настоящее время исполняет обязанности директора Initiative in Soft Computing (BICS). Его многочис- ленные публикации, посвященные нечеткой логике (Fuzzy Logic) привели к созданию нечетких систем (Fuzzy Sets), которые нашли разнообразные практические применения, например, для управления бытовой техникой, поездами японского метрополитена, вертолетами, производственными процессами и т.п. Известны их реализации и в других областях, в частно- сти, в медицине. По тематике Soft Computing публикуются многочисленные работы; посвященные нечетким системам, генетическим алгоритмам и нейрон-
Предисловие к русскому изданию ным сетям, их гибридам и практическим приложениям. Проводятся раз- личные конференции, на которых представляются новейшие результаты исследований обсуждаемых нами методов и интеллектуальных техноло- гий. Книга «Нейронные сети, генетические алгоритмы и нечеткие систе- мы», первая версия которой была выпущена Варшавским издательством PWN в 1997 г., заняла на польском книжном рынке пустовавшую прежде нишу описания методов, применяемых в сфере вычислительных технологий, и их объединений. О большом интересе к представленным в ней проблемам свидетельствует быстрая раскупаемость первого тира- жа и последующих допечаток. Читатель держит в руках русское издание нашей книги, в которое по сравнению с польскими версиями внесены не- которые изменения и дополнения. Авторы посвящают русское издание книги памяти недавно скон- чавшегося профессора Якова Залмановича Цыпкина и выражают призна- тельность за его огромный вклад в развитие теории адаптивных систем. Профессор Яков Залманович Цыпкин останется для нас великим Ученым и Человеком Лешек Руткоеский Председатель Польского общества нейронных сетей
ГЛАВА 1 ВВЕДЕНИЕ В последние годы большой интерес вызывает проблематика ней- ронных сетей, генетических алгоритмов и нечетких систем. Эти направле- ния относятся к научной области, определяемой в англоязычной литера- туре термином Computational Intelligence. Взаимосвязи между нейронны- ми сетями, генетическими алгоритмами и нечеткими системами послужи- ли причиной того, что IEEE (Institute of Electrical and Electronics Engineers - США) создал Всемирный Конгресс Computational Intelligence [10]. В рам- ках этого конгресса в период с 26 июня по 2 июля 1994 г. в Орлаедо, штат Флорида (США) были проведены три конференции: a) IEEE International Conference on Neural Networks, 6) IEEE International Conference on Fuzzy Systems, в) IEEE International Conference on Evolutionary Computation. В 1995 - 1997 гг. каждая из этих конференций проводилась неза- висимо, но в 1998 г. вновь был организован Конгресс, проведенный на этот раз в Анкоридже на Аляске (США). На рис. 1.1. видно, что задачи нейронных сетей, генетических алгоритмов и нечетких систем могут рассматриваться вне связи между собой, однако их взаимозависимость оказывается необычайно важной. В частности, генетические алгорит- мы можно применять для подбора весов и топологии нейронной се- ти, а также для формирования базы правил и функций принадлежности нечеткой системы В свою очередь, нейронные сети позволяют выбирать соответ- ствующие параметры для самих генетических алгоритмов (параме- тры скрещивания и мутации); саму философию нейронных сетей можно заложить в фундамент не- четких систем, которые в результа- те обретают способность к обуче- нию. Кроме того, методы теории нечетких множеств позволяют подбирать как упомянутые выше параметры генетических алгорит- мов, так и коэффициенты, опреде- ляющие скорость обучения ней- ронных сетей. В Польше перечисленные „ * * _ выше проблемы интенсивно ис- Рис. 1.1. Взаимосвязи между нейрон- следуются во многих научных ними сетями, генетическими апгорит- центрах. В области нейронных се- мами и нечеткими системами. тей перВым достаточно полным
Введение 15 и очень полезным изданием считается книга профессора Р. Тадеусе- вича [7]. В настоящее время некоторые фрагменты этой книги представ- ляются автором также и на видеокассете [8]. В последующие годы увиде- ли свет и другие издания: книга, подводящая итоги работы коллектива лсд руководством профессора Ю. Корбича [3], монография профес- сора С. Осовского [5] и работа, представляющая результаты исследова- ний группы профессора Т. Каспшака в области клеточных нейронных се- тей [2]. Следует также отметить факт, что некоторые монографии поль- ских авторов известны и по достоинству оценены в мировой литературе. В частности, можно назвать а) по нейронным сетям - книги профессора Я. Журады [9] и про- фессора А. Чихотского (с соавтором) [1]; б) по нечетким системам - книга профессора В. Педрыша [6]; в) по генетическим алгоритмам - книга профессора 3. Михалеви- ча [4]. Поскольку ни одно из упомянутых прекрасных изданий не охваты- вает одновременно все три ветви, объединяемые под названием «вычислительные технологии», авторы настоящей работы поставили пе- ред собой задачу раскрыть перед читателем необычайно интересные возможности нейронных сетей, генетических алгоритмов и нечетких сис- тем, а также их композиций. В главе 2 представлены основные структуры одно и многослойных нейронных сетей и алгоритмы их обучения В первой части описывается перцептрон и системы типа Адалайн. Далее приводятся два алгоритма обучения многослойных нейронных сетей: классический и наиболее час- то применяемый алгоритм обратного распространения ошибки, а также значительно более быстрый алгоритм, основанный на рекуррентном ме- тоде наименьших квадратов. В главе 3 обсуждаются системы, использующие нечеткую логику. Они особенно полезны в ситуации, когда доступные знания представле- ны в виде правил, основанных на нечетких множествах и лингвистичес- ких переменных Системы этого типа де-факто признаны стандартом в Японии, где они применяются в автоматических стиральных и посудо- моечных машинах, видеокамерах и фотоаппаратах, кондиционерах и ав- томобилях. Излагаются элементы теории нечетких множеств и нечеткого вывода, также описывается функционирование различных нечетких про- цессоров. Основам реализации генетических алгоритмов посвящена глава 4. Как известно, естественный путь развития мозга - это эволюционный процесс, с которым связаны специфические методы проб и ошибок. Идеи эволюционных изменений привели к созданию генетических алгоритмов, применяемых для обучения нейронных сетей и в системах, использую- щих нечеткую логику. В книге представляются не только раздельные описания нейрон- ных сетей и нечетких систем, но и (в главе 5) новейшие результаты, полу- чаемые при их объединении. Композиции этого типа сохраняют и усили- вают достоинства как нейронных сетей, так и нечетких систем. Они потен-
16 Глава 1. Введение циально применимы во всех ситуациях, когда конструктор системы рас- полагает и количественной (численные данные), и качественной (лингви- стические правила) информацией В конце каждой главы приводится список литературы. Вопросы, обсуждаемые в книге, подробно иллюстрируются имита- ционными примерами, реализованными с помощью следующих пакетов программ: 1 . FLiNN (программа написана на кафедре Компьютерной инженерии Политехнического университета г. Ченстохова (Польша)); 2 FlexTool (GA) М2.1 (Flexible Intelligence Group) - пакет, взаимодей- ствующий с комплексом MATLAB (The MathWorks Inc.); 3 . Evolver (Axcelis, Inc.) - пакет, взаимодействующий с программой Excel (Microsoft Corp.); 4 BrainMaker и Genetic Training Option (California Scientific Software); 5 Fide (Aptronix, Inc.); 6 Fuzzy Logic Toolbox - прикладной пакет программ комплекса MAT- LAB (The MathWorks, Inc.). Выражаем признательность господам Уве фон Аммон и Марку Скарбек-Козетульскому из фирмы Motorola, благодаря любезности кото- рых мы получили пакет Fide Первый опыт работы с перечисленными программными средства- ми мы приобретали совместно со студентами четвертого курса Политех- нического университета г. Ченстохова по специальности «Электроника и компьютерная инженерия», которых хотелось бы поблагодарить за со- трудничество в ходе учебных занятий. Мы также сердечно благодарим госпожу Ренату Марчиняк и магистра инженера Артура Стажевского за труд по подготовке рисунков и рукописи. Особую признательность выражаем рецензентам - профессору Юзефу Корбишу и профессору Рышарду Тадеусевичу за внимательное ознакомление с рукописью и очень полезные замечания. Список литературы [1] Cichocki A., Unbehauen R., Neural Networks for Optimization and Signal Processing, Wiley, Chichester 1993. [2] Kacprzak T, Slot K., Sieci neuronowe komorkowe. Teoria, projek- towanie, zastosowania, PWN, Warszawa-Lodz 1994. (3] Korbicz J., Obuchowicz A., Ucinski D., Sztuczne sieci neuronowe, podstawy i zastosowania, Akademicka Oficyna Wydawnicza, Warszawa 1994. [4] Michalewicz Z., Genetic Algorithms + Data Structures = Evolution Programs, Springer-Verlag, Beriin 1994. [5] Osowski S., Sieci neuronowe w ujeciu algorytmicznym, WNT, Warszawa 1996. [6] Pedrycz W., Fuzzy Control and Fuzzy Systems, Wiley, New York 1993. [7] Tadeusiewicz R., Sieci neuronowe, Akademicka Oficyna Wydawnicza, Warszawa 1993.
Список литературы 17 [8] Tadeusiewicz R., Wprowadzenie do sieci neuronowych, kaseta wideo Polskie Towarzystwo Sieci Neuronowych, Czestochowa 1996. [9] Zurada J. M., Introduction to Artificial Neural Systems, West Publishing Company, Boston 1992. [10] Zurada J. M., Marks R. J., Robinson C. J., (red.), Computational Intelligence: Imitating Life, IEEE Press, New York 1994.
ГЛABА2 МНОГОСЛОЙНЫЕ НЕЙРОННЫЕ СЕТИ И АЛГОРИТМЫ ИХ ОБУЧЕНИЯ 2.1. Введение Нейронные сети можно рассматривать как современные вычисли- тельные системы, которые преобразуют информацию по образу процес- сов, происходящих в мозгу человека. Обрабатываемая информация име- ет численный характер, что позволяет использовать нейронную сеть, на- пример, в качестве модели объекта с совершенно неизвестными харак- теристиками. Другие типовые приложения нейронных сетей охватывают задачи распознавания, классификации, анализа и сжатия образов. Проблематика нейронных сетей в девяностых годах XX века на- шла отражение в сотнях монографий, среди которых можно упомянуть изданные в Польше работы [10, 11,13,17, 24]1 и некоторые заграничные публикации [3, 5, 7, 8,15, 21, 28]. Также следует упомянуть о прекрасных обзорных статьях, которые стали катализатором дальнейших исследова- ний как в Польше (Р. Тадеушевич [22]), так и за границей (Р. Липпманн [14]). Свыше 80 % всех приложений нейронных сетей относится к так на- зываемым многослойным сетям без обратных связей. В них сигнал пере- сылается в направлении от входного слоя через скрытые слои (если они имеются) к выходному слою. Сети именно такого типа будут рассматри- ваться в последующих главах книги в контексте генетических алгоритмов и нечетких систем. Поэтому в настоящей главе мы обсудим в первую оче- редь базовые элементы многослойных нейронных сетей - персептрон и системы типа Адалайн (с линейным и нелинейным выходом), после че- го определим два алгоритма обучения этих сетей: алгоритм обратного распространения ошибки и рекуррентный алгоритм метода наименьших квадратов. Хотелось бы подчеркнуть, что в нашей монографии представляет- ся достаточно узкий, однако весьма важный с прикладной точки зрения фрагмент необычайно обширной области знаний, которая получила на- звание «искусственные нейронные сети». Приглашаем читателя к более углубленному изучению литературных источников, перечень которых приводится в конце главы 2.2. Нейрон и его модели Базовый элемент нервной системы (см. [23]) - это нервная клетка, называемая нейроном. В нейроне можно выделить тело клетки, называ- емое сомой, а также исходящие из него два вида отростков: а) по кото- рым в нейрон поступает информация - дендриты и б) по которому ней- Переработанная версия монографии проф. С. Осовского [17] под назва- нием «Нейронные сети для обработки информации» издана в 2002 г. на русском языке издательством «Финансы и статистика». - Прим, перев.
2.2. Нейрон и его модели рон передает информацию - аксон. Каждый нейрон имеет только один выходной отросток, по которому он может передавать импульс несколь- ким другим нейронам. Одиночный нейрон принимает возбуждения от огромного количе- ства нейронов (их число может достигать тысячи). Считается, что мозг че- ловека состоит из порядка 1011 нейронов, которые имеют между собой примерно 1015 соединений. Каждый нейрон передает возбуждение дру- гим нейронам через нервные стыки, называемые синапсами, при этом процесс передачи сигналов имеет сложную электрохимическую природу Синапсы играют роль репитеров информации, в результате функциони- рования которых возбуждение может усиливаться или ослабляться. Как следствие, к нейрону приходят сигналы, одна часть из которых оказыва- ет возбуждающее, а вторая - тормозящее воздействие. Нейрон суммиру- ет возбуждающие и тормозящие импульсы. Если их алгебраическая сум- ма превышает некоторое пороговое значение, то сигнал с выхода нейро- на пересылается посредством аксона к другим нейронам. На рис. 2.1. представлена упрощенная модель нейрона. Рассмотрим модель нейрона, связанную с первыми попытками формализовать описание функционирования нервной клетки. Введем следующие обозначения: щ....- входные сигналы данного нейрона, приходящие от дру- гих нейронов; iv,,.... - синаптические веса; у- выходной сигнал нейрона; v пороговое значение. Формула, описывающая функционирование нейрона, имеет вид Рис. 2.1. Упрощенная модель нейрона и его соединения с соседним нейроном: 1 - тело клетки, 2 - аксон, 3 - дендриты, 4 - синапсы.
Глава 2. Многослойные нейронные сети и алгоритмы их обучения Модель (2.1) может быть представлена в виде у=^и/,-ц^ (2.2) где {1 при х > 0 , О при х < 0 а также w0 = v, и0 = 1. Формула (2.2) описывает модель нейрона, представленную на рис. 2.2. Эта модель была предложена в 1943 г. МакКаллоком и Питт- сом [16]. В качестве функции Сможет приниматься не только единич- ная функция (2.3), но и другие пороговые функции вида {1 при х > 0 , -1 прих<0. <2-4> или 11 при X > 1 , -1 при х < -1, (2.5) х при |х|<1. На начальной фазе моделирования биологических нейронных сетей применялись пороговые функции (2.3), (2.4) и (2.5). В настоя- щее время чаще всего используется сигмоидальная функция, опре- деляемая выражением ад=777^>0- (Z6) Рис. 2.2. Модель нейрона.
2.2. Нейрон и его модели Отметим, что при /3->~ характеристика (2.6) стремится к поро- говой униполярной функции (2.3). В качестве альтернативы применя- ется функция гиперболического тангенса „ ( ах \ 1-е а* f(x>=,hbd 77 (2.7) В этом случае характеристика (2.7) стремится к пороговой би- полярной функции (2.4) при Примеры функции f в модели (2.2) показаны на рис. 2.3. 2.3. Персептрон Модель МакКаллока-Питтса стала отправной точкой для пост- роения простейшей однонаправленной нейронной сети, названной персептроном. Такую сеть предложил и исследовал Розенблатт [18] в конце пятидесятых - начале шестидесятых годов XX века. На рис. 2.4 представлена структура персептрона, иногда называемого Рис. 2.3. Примеры функции f.
22 Глава 2. Многослойные нейронные сети и алгоритмы их обучения простейшим персептроном. В качестве функции f в модели МакКал- лока-Питтса (2.2) применялась биполярная функция активации (2.4). Сигнал х на выходе линейной части персептрона задается вы- ражением N N X = X W'u' ~ v ~ X Wiui (2.8) i=0 где w0 = v, u0 = -1. Задача персептрона заключается в классификации вектора и = .....uN]T в смысле отнесения его к одному из двух классов, обознача- емых символами Ц и Ц. Персептрон относит вектор и к классу Lv если выходной сигнал у принимает значение 1, и к классу /.2, если выходной сигнал у принимает значение - 1. После этого персептрон разделяет /V-мерное пространство входных векторов и на два полупространства, разделяемые (Д/-7)-мерной гиперплоскостью, задаваемой уравнением N N WjU, - V = X wiui = °
2.3. Персептрон 23 Гиперплоскость (2.9) называется решающей границей {decision boundary). Если N = 2, то решающая граница - это прямая линия, задава- емая уравнением + w2u2 - v = 0. (2.10) Точка {щ ,и2), лежащая над этой прямой (рис. 2.5), относится к клас- су Ц, тогда как точка {щ,и2), лежащая под этой прямой, относится к клас- су L2. Точки, лежащие на границе решения, можно произвольно отнести и к классу Lf и к классу L2. Для дальнейших рассуждений допустим, что веса wt, / = 0, 1.N в уравнении гиперплоскости (2.9) неизвестны, тогда как на вход персеп- трона последовательно подаются так называемые обучающие сигналы и{п), п = 1,2.где и{п) = [о/л)..иЛп)]Т. Неизвестные значения весов будут определяться в процессе обу- чения персептрона. Такой подход получил название «обучение с учите- лем» или «обучение под надзором». Роль «учителя» заключается в кор- ректном отнесении сигналов u(n) к классам L1 или /_2, несмотря на неиз- вестность весов уравнения решающей границы (2.9). По завершении процесса обучения персептрон должен корректно классифицировать по- ступающие на его вход сигналы, в том числе и те, которые отсутствовали в обучающей последовательности u{n), п = 1, 2..Кроме того, примем, что множества векторов u{n), п = 1, 2, ..., для которых выходной персеп- трона принимает соответственно значения 1 и -1, линейно отделены, т.е. лежат в двух различных полупространствах, разделенных гиперплоскос- тью (2.9). Другими словами, допускается разделение обучающей пос- ледовательности {и(л)} на две последовательности {щ{п)} и {и2{п)} так, что {щ{п)} е L, и {u2(n)} е L2. В n-й момент времени сигнал на выходе линейной части персеп- трона определяется выражением Рис. 2.5. Решающая граница для N = 2.
24 Глава 2. Многослойные нейронные сети и алгоритмы их обучения х(п)= = wT(n)u(n), (2.11) |=о где u(n) = [-1, иу(п), и2(п).....................ut/n)]T, (2.12) w(n) = [v(n), w^n), w2(n)..w^n)]T. (2.13) Обучение персептрона заключается в рекуррентной коррекции вектора весов w(n) согласно формулам , +n=J‘v<n)> если ivr(n)u(n)> 0 и u(n)e Lj , W'n ' I w(n), если wT(n)u(n)<0 и u(n)e L2, = Г w(n)-Tju(n), если wT(n)u(n)>0 и u(n)e L2 , W n [ w{n)+r]u(n), если wT(n)(n)< 0 и u(n)e , где параметр rj при 0 < ij < 1 - шаг коррекции, тогда как начальные зна- чения компонент вектора весов устанавливаются равными нулю, т.е. w(0) = 0 (2.16) Зависимости (2.14) и (2.15) можно представить в более сжатом ви- де. Для этого определим так называемый эталонный (заданный) сигнал d(n) в форме {+1, если и(п)е Lf , -1, если и(п)е L2 . (2-17) Кроме того, отметим, что выходной сигнал персептрона может быть опи- сан выражением у(п) = sgn(wr(n)u(n)). (2.18) С учетом введенных обозначений рекурсии (2.14) и (2.15) прини- мают вид w(n + 1) = w(n) + [d(n) - y(n)] U(n) (2.19) Разность d(n) - y(n) можно интерпретировать как погрешность между эталонным (заданным) сигналом cf(n) и фактическим выходным сигналом у(п). Сходимость алгоритма (2.19) исследовал Розенблатт в оригиналь- ной работе [18], а также другие авторы в более поздних публикациях (на- пример, [5, 7, 8]). С учетом принятого выше условия линейной сепара- бельности входных сигналов алгоритм (2.19) сходится, т.е. iv(n0) = w(n0 + 1) = iv(n0 + 2) = .. (2.20) По завершении обучения решающая граница персептрона опреде- ляется выражением N =0, (2.21) /=о
2.4. Системы типа Адалайн 25 а персептрон корректно классифицирует как сигналы, которые принадле- жат к обучающей выборке {и(п)}, так и не входящие в это множество, но выполняющие условие линейной сепарабельности. Напомним, что усло- вию линейной сепарабельности не отвечает логическая функция XOR, заданная таблицей 2.1. Из рис. 2.6 следует, что не существует прямой, которая отделила бы точки со значениями функции XOR, равными - 1, от точек со значени- ями, равными 1. В этом случае роль примерной границы играет эллипс, и поэтому алгоритм (2.18) не был бы сходящимся. Проблему XOR можно разрешить с помощью двухслойного персептрона. Эта. проблема деталь- но исследована в работах [13] и [24]. 2.4. Системы типа Адалайн Системы типа Адалайн (Adaptive Linear Neuron - адаптивный ли- нейный нейрон) были предложены в 1960 г. Видроу и Хоффом [25]. Вид- роу и Лер [26] описали целое семейство систем типа Адалайн. В настоя- Таблица 2.1. Логическая функция XOR ,71 I d = ХОВ(щ,о2) +1 +1 -1 -1 +1 *1 -1 -1 -1 Рис. 2.6. Иллюстрация проблемы XOR.
26 Глава 2. Многослойные нейронные сети и алгоритмы их обучения щей главе перед детальным обсуждением систем типа Адалайн (пп. 2.4.2 и 2.4.3) рассмотрим модель так называемого линейного взвешенного сум- матора 2.4.1. Линейный взвешенный сумматор На рис. 2.7. представлена структура линейного взвешенного сум- матора (linear combiner^. Его выход образуется сигналом у(п), который представляет собой линейную комбинацию всех входов и-Дп), и2(п), .... Uf/n), п = 1, 2,... . Введем обозначение u(n) = [щ(л), и2(п).и,/п)]Т. (2.22) Конкретные компоненты вектора и(п) умножаются на компоненты вектора весов w=lw1,w2.....w,JT (2.23) В результате выходной сигнал линейного взвешенного сумматора описывается формулой м у(п) = =wTu(n). (2.24) /<=1 Выход линейного взвешенного сумматора у(п) будет использовать- ся в качестве реализации некоторого сигнала cf(n), называемого эталон- ным или заданным сигналом. В результате сравнения реализации у(п) с сигналом d(n) получаем погрешность реализации £ (п) ~ с((п) — у(п). (2.25) Рис. 2.7. Линейный взвешенный сумматор. У(п) Здесь и далее для удобства читателей и следуя польскому изданию в скобках иногда указывается английское название термина. - Прим, перев.
2.4. Системы типа Адалайн 27 Веса линейного взвешенного сумматора w1, w2.wN будут подби- раться так, чтобы минимизировать меру погрешности N fl Q(w) = EI(n)2) = E|p(n)-^i‘W(fi)| = I fc=1 7 = E[(d(n)-wTu(n)f) (2.26) Предположим, что входной сигнал u(n) и эталонный сигнал d(n) - это реализации дискретных стохастических процессов {и(п)} и {с/(п)}, сов- местно стационарных в широком смысле, т.е. 1) - стационарный в широком смысле стохастический процесс; 2) {cf(n)} - стационарный в широком смысле стохастический процесс; 3) функция взаимной корреляции процессов {«(«)} и {d(n - к)} зави- сит только от значения к. Мера погрешности (2.26) называется среднеквадратичной по- грешностью реализации. Обозначим [и/;,..., = w‘ вектор весов, ми- нимизирующих погрешность (2.26). Представленная на рис. 2.7 система, веса которой принимают значения w\, .... w^, называется пространст- венным фильтром Винера (spatial filter). Процесс фильтрации заключает- ся в умножении входов щ(п),..., иг/п) на соответствующее им множество весов w\,.... w*N с последующим суммированием отдельных произведений для получения реализации у(л) эталонного сигнала d(n). Покажем, что среднеквадратичная погрешность реализации (2.26) - это функция вто- рого порядка вектора весов w. Поскольку [d(n) - wTu(n)]2 = d2(n) - 2d(n)wTu(n) + wTu(n)uT(n)w , (2.27) то формула (2.26) принимает вид Q(iv) = Е[с72(л)] - 2wTE[d(n)u(n)] + wTE[u(n)uT(n)] w (2.28) В последнем слагаемом выражения (2.28) можно выделить матри- цу автокорреляции компонентов входного вектора R = Е[и(п)иТ(п)] = E[(ui(n))] E[ui(n)u2(n)] Е[и2(п)и^п)] Е[(и2(п))] E[u^(n)uN(n)] E[u2(n)uN(n)] (2.29) E[uN(n)u}(n)] E[uN(n)u2(n)] - E[(ul(n))] а также вектор взаимной корреляции между сигналами d(n) и у(л) р = E[d(n)u(n)] = ~ Е[д(п)и,(п)Г E[d(n)u2(n)] E[d(n)uN(n)] (2.30)
28 Глава 2. Многослойные нейронные сети и алгоритмы их обучения С использованием обозначений (2.29) и (2.30) среднеквадратич- ная погрешность реализации (2.28) может быть записана в виде Q(iv) = E[d2(n)] - 2wTp + ivrRiv. (2.31) Из выражения (2.31) следует, что среднеквадратичная погреш- ность реализации Q(iv) - это функция второго порядка вектора весов w С геометрической точки зрения Q(w) представляется гиперпараболои- дом, имеющим единственный глобальный экстремум Q*. Этот гиперпара- болоид называется поверхностью среднеквадратичной погрешности Рис. 2.8 представляет фрагмент типовой поверхности среднеквадратич- ной погрешности для N - 2 (в этом случае это параболоид). Поверхность среднеквадратичной погрешности, описываемая уравнением (2.31), имеет единственный глобальный экстремум Q*, дости- гаемый при оптимальных значениях весов w\.w*N. Вычисление опти- мальных значений весов сводится к определению вектора градиента V функции Q(iv) и приравниванию полученного результата к нулю: ...Д| =2R»'-2₽=(|. <2з2> где 0 есть Л/-мерный нулевой вектор. Допустим, что гессиан v2=af2.=2R (2.33) дмг это положительно определенная матрица. В этом случае вектор весов w" Q(w„w2) Рис. 2.8. Поверхность среднеквадратичной погрешности.
2.4. Системы типа Адалайн 29 минимизирует среднеквадратичную погрешность реализации (2.31). Из уравнения (2.32) следует, что для этого вектора справедливо равенство Rw' = р . (2.34) Равенство (2.34) называется нормальным уравнением. Если det R 0, то его решением оказывается вектор w* = R 1р (2.35) При w - w погрешность принимает минимальное значение, обо- значаемое Q* и равное Q(iv') = Q* = E[d2(n)] “ 2iv*rp + iv*r Riv*. (2.36) Если подставить равенство (2.34) в выражение (2.36), то получим формулу для расчета минимальной среднеквадратичной погрешности реализации Q* = E[d2(n)] - w*rp . (2.37) Для нахождения оптимального вектора весов w‘, удовлетворяю- щего нормальному уравнению (2.34), требуется инвертировать матрицу автокорреляции R. Вместо этого можно использовать метод наискорей- шего спуска (см., например, [2,6]), который широко применяется в теории оптимизации. В этом методе предусматривается итеративный расчет по- следовательных приближений оптимального вектора ш'. Обозначим iv(n) приближение, рассчитанное на л-й итерации w(n)= [^(л), ..., wjn)]r. (2.38) Очередные коррекции компонентов вектора весов w(n) должны производиться в направлении, противоположном знаку компонентов век- тора градиента dQ(iv(n)) _[~dQ(iv(n)) dQ(w(n))] й(и<(л)) [ Эи^л) dwN(n) J Алгоритм наискорейшего спуска можно представить в виде w(n + 1) = w(n) -j»? (2-40) При подстановке формулы (2.32) в зависимость (2.40) получаем рекурсию w(n + 1) = iv(n) + [р - Rw(n)l, (2.41) где константа ij > 0 определяет величину шага коррекции. Можно показать (см., например, [8, 19]), что алгоритм наиско- рейшего спуска (2.41) сходится, т.е. lim w(n) = w*, (2.42) n->~ если шаг коррекции z; лежит в пределах где Zmax - это наибольшее собственное значение матрицы автокорреля- ции R.
30 Глава 2. Многослойные нейронные сети и алгоритмы их обучения Кроме того, доказано, что скорость сходимости алгоритма наиско- рейшего спуска зависит от отношения наименьшего и наибольшего соб- ственных значений матрицы R. Если -^*- = 1, (2.44) Лпах то алгоритм наискорейшего спуска сходится быстро. Если же = 0, (2.45) Алах то алгоритм наискорейшего спуска сходится медленно. 2.4.2. Адаптивный линейный взвешенный сумматор Применение алгоритма (2.41) предполагает знание матрицы R и век- тора д. В случае, когда эти величины неизвестны, следует заменить гради- ент (2.39) его приближением. Запишем рекурсивное выражение (2.40) в ви- де (2Л6) Если в этой формуле заменить градиент его приближенным локальным значением (instantaneous estimate), т.е. ЭЕ[£2(п)] Э£2(л) 24 } dw(n) ЙИГ(п) 1 7 то получим рекурсию вида (2.46) Из выражений (2.24) и (2.25) следует, что X) = <2-49) При подстановке зависимости (2.49) в формулу (2.48) получаем так называемый алгоритм LMS (Least Mean Square) в векторной форме w(n + 1) = vv(n) + u(n)[d(n) - wT(n)u(n)] (2.50) или в скалярной форме ык(п + 1) = wk(n) + ик(п) р(п) У wfc(nH(n)j (2.51) для к = 1...N. На рис. 2.9 представлен адаптивный линейный взвешенный сум- матор, известный в литературе под названием Адалайн (Adaptive Linear Neuron). Он состоит из двух основных частей: 1) линейного взвешенного сумматора с адаптивно корректиру- емыми весами
2.4 Системы типа Адалайн 31 Рис. 2.9. Адаптивный линейный взвешенный сумматор. й'Лп)...й^п), 2) подсистемы, предназначенной для адаптивной коррекции этих весов и реализующей алгоритм LMS. Параметр Т) в алгоритме (2.50) подбирается так (см. [27]), чтобы выполнялось условие TrR w £Е[(^(п))2] (2.52) где TrR обозначает след матрицы R. 2.4.3. Адаптивный линейный взвешенный сумматор с сигмоидой на выходе Выходной сигнал адаптивного линейного сумматора с сигмоидой на выходе (рис. 2.10) можно описать выражением у(л) = Г £^(п)иДп) где функция f определяется формулой (2.6). Погрешность реализации (2.25) равна
32 Глава 2. Многослойные нейронные сети и алгоритмы их обучения Рис. 2.10. Адаптивный линейный взвешенный сумматор с сигмоидой на выходе. £(n) = d(n)-^£wHm(n/| (2.54) Для коррекции весов w^k), к = 1.N применим алгоритм LMS в рекурсивной форме (2.48). В этом случае очевидно равенство 3^(п) = 2е(п)Э£(п1 ,)w(n) 4 ;Sw(n) ' (2.55) а также E)£(n)_ 3f(x(n))_ Эх(п) dw(n)~ dw(n) н v ,,3w(n) (2-56) где x(n)= ^wk(n)uk(n) =wT(n)u(n). (2-57) Поскольку =u(n)’ (2.58) то l^nj =-f'Wn))u(n). (2-59)
2.5. Алгоритм обратного распространения ошибки При подстановке равенств (2.55) и (2.59) в рекурсивное выражение (2.48) получим следующий алгоритм адаптивной коррекции весов w[n + 1) =w[n) , (2.60) либо в скалярной форме w^n + 1) = wk (n) + (n)f (х(л))иДл), (2.61) для k = 1....N. Если p = 1, го функция (2.6) отвечает условию Г(х) = f(x)(1 - f(x)). (2.62) Поэтому алгоритм (2.60) можно записать в форме wk(n + 1) = wk (n) + (n)f(x(n))(1 - f(x(n)))uk(n) (2.63) для k= 1,.... N, где погрешность e(n) определяется выражением (2.54). Алгоритмы (2.60) и (2.63) положены в основу метода обратного распространения ошибки, который подробно описывается в следую- щем разделе. 2.5. Алгоритм обратного распространения ошибки Обсудим алгоритм обратного распространения ошибки [20], кото- рый позволяет обучать многогослойные нейронные сети. Этот алгоритм считается наиболее известным и чаще всего применяемым в искусствен- ных нейронных сетях. На рис. 2.11. представлена многослойная нейронная сеть, со- стоящая из L слоев. В каждом слое расположено Nk элементов, к = 1.L, обозначае- мых ADf, i = Л,.... Nk. Элементы ADf будем называть нейронами, причем каждый из них может быть системой типа Адалайн с нелинейной функци- ей (сигмоидой либо гиперболическим тангенсом) на выходе. Обсуждае- Рис. 2.11. Многослойная нейронная сеть.
Гпава 2. Многослойные нейронные сети и алгоритмы их обучения мая нейронная сеть имеет No входов, на которые подаются сигналы щ(л), ..., uNo(n), записываемые в векторной форме как u = [^i(n)..%(п)Г, л =1,2,... (2.64) Выходной сигнал /-го нейрона в к-м слое обозначается уЯ(л), i= .... Nk, к= 1...L. На рис. 2.12 показана детальная структура ьго нейрона в к-ы слое. Нейрон ADf имеет Nk входов, образующих вектор x<fc,(n)= [х^(п).................(л)]т, (2.65) причем х№(п) = +1 для / = 0 и к = 1.L Обратим внимание на факт, что входной сигнал нейрона AD^ связан с выходным сигналом (к - 1) слоя следующим образом: )ц(л) для к = 1, у,(/< 1) для к = 2....L, (2.66) + 1 для i = 0,k = \...,L На рис. 2.12 w^(n) обозначает вес связи /-го нейрона, / = 1.Nk, распо- ложенного в к-м слое, которая соединяет этот нейрон с /-м входным сиг- налом x№(n),j =0, 1...NkV Вектор весов нейрона ADf обозначим м'/к,(п) = Но)(п) (л/, к = 1...........L. i= 1,.... Nk. (2.67) Выходной сигнал нейрона ADf в л-й момент времени, л = 1, 2, ... определяется как y}k)(n) = f(sfk)(n)), (2.68) причем /v„, sjk>(n)=:^iv^>(n)xj-'<)(n). (2.69) j=o Рис. 2.12. Структура нейрона АО* .
2.5. Алгоритм обратного распространения ошибки 35 Отметим, что выходные сигналы нейронов в Е-м слое У1(п),У2(п).-,У^(п) (2.70) одновременно являются выходными сигналами всей сети. Они сравнива- ются с так называемыми эталонными сигналами сети ....................................cl^(n). (2.71) в результате чего получаем погрешность £(L>(n) = ^L)(n)- yV-\n) ,i=t,...,NL (2.72) Можно сформулировать меру погрешности, основанную на сравне- нии сигналов (2.70) и (2.71), в виде суммы квадратов разностей (2.72), т.е. О(л) - £^,2(л) = £(#’( л) - У^’(п))2 (2.73) Из выражений (2.68) и (2.69) следует, что мера погрешности (2.73) - это функция от весов сети. Обучение сети основано на адап- тивной коррекции всех весов viffXri) таким образом, чтобы минимизи- ровать ее значение. Для коррекции произвольного веса можно ис- пользовать правило наискорейшего спуска, которое принимает вид ^(п +1) = ^>(п) - . (2 74) 1 ‘ дм/^Чп) где константа Т] > 0 определяет величину шага коррекции. Обратим вни- мание, что ЭО(л) _ ЭО(п) Э#>(п) _ dQ(n) (275) dwf4n) ds]k4n)dw^4n) ds?4n) ' Если ввести обозначение gfM(n) = _1_3Q(nL , (2.76) ' г&уЧп) то получим равенство -^)- = _25/*>(п)х^(п) . (2.77) Эи/^(л) При этом алгоритм (2.74) принимает вид и^’(п +1) = и^’(п) + 2^k4n)^4n) (2.78) Способ расчета значения 5^(п), заданного выражением (2.76), за- висит от номера слоя. Для последнего слоя получаем 1 ЭО(л) _ 1 _____ ' ( ' 2 3s(t)(n) 2 ds(D(n)
36 Глава 2. Многослойные нейронные сети и алгоритмы их обучения = 1 = 1 d(d*L)(n)-y(L)(n))2 = 2 3s?L,(n) 2 3sJL,(n) = £/L,(n)MjT7 £lL)(n)f'(slL)(n)) (279) ds} '(n) Для произвольного слоя к* L получаем х(Ю/л1 = 1 dQ(n) = __1 ЭО(п) aS^+1>(n) = ' 29s(D(n) 2 2^ds(^)(n) ds(K)(n) = хе1’^)^1^)^^^)) = m=1 = f'^k\n)) f^n^n) (2.80) Определим погрешность в к-ы (не последнем) слое для /-го нейро- на в виде £/k,(n) = ХЧ*+1,(п)и^+1)(п) (2.81) т=1 Если подставить выражение (2.81) в формулу (2.80), то получим ^ik\n) E^\n)f'(s^k\n)) (2.82) В результате алгоритм обратного распространения ошибки можно записать в виде N*-i i = f(sjfc,(n)), s,('(,(n)= X/w('t,(n)x<'t>(n) , J=o (2.83) d|L)(n) - y-L)(n) для к L , £?'',(п) = £d^+1’(n>v^+1)(n) для к =\...,L-1, (2.84) ^k\n) £jkXn)f'(sjkXn)) , (2.85) wf\n +1) = ^’(n) + 2j]5/k,(n)xj,<,(n). (2.86) Название алгоритма связано со способом расчета погрешностей в конкретных слоях. Вначале рассчитываются погрешности в последнем
2.6. Применение рекуррентного метода наименьших квадратов слое (на основе выходных и эталонных сигналов), далее - в предпослед- нем и так вплоть до первого слоя. Начальные значения весов, образую- щих сеть, выбираются случайным образом и, как правило, устанавлива- ются близкими к нулю. Шаг коррекции т] чаще всего принимает большие значения (близкие единице) на начальных этапах процесса обучения, но впоследствии его следует уменьшать по мере того как веса приближают- ся к некоторым заранее определенным значениям. В литературе, посвя- щенной нейронным сетям (например, в [3]), рекомендуются различные модификации алгоритма обратного распространения ошибки. Одна из наиболее известных модификаций заключается во введении в рекурсию (2.86) дополнительного члена, называемого моментом: +1) wW{n) + 2i]Eik\n)f'{sjk\n))x{k\n) + + a[w£ >(n) - wW{n - 1)] , (2.87) в котором параметр осе (0,1). Экспериментальные исследования показы- вают [24], что введение момента ускоряет сходимость алгоритма обрат- ного распространения ошибки 2.6. Применение рекуррентного метода наименьших квадратов для обучения нейронных сетей Обучение сети с использованием изложенного в п. 2.5 алгоритм обратного распространения ошибки требует большого количества итера- ций. Поэтому в литературных источниках приводятся сведения о различ- ных попытках создания более быстрых алгоритмов (см., например, [12]) В работе [1] для обучения нейронных сетей применялся рекур- рентный метод наименьших квадратов {recursive least squares - RLS). В качестве меры погрешности использовалось выражение Q(n) = gZ'1-,££(L,2(0 = л н, г = ^^£[djt,«)~/r(x(L> ^^^(п))]2 , (2.88) t=i j=i где Л - так называемый коэффициент забывания {forgetting factor), зна- чение которого выбирается из интервала [0,1]. Обратим внимание на то, что степень влияния членов выражения (2.88) на его значение возраста- ет с увеличением номера члена. В ходе дальнейших рассуждений будем использовать обозначения, введенные в п. 2.5, с учетом особенностей, показанных на рис. 2.13, т.е. £<*)(/) = dfk)(t) - y,<fc)(0 , (2.89) а также bjk\t) = f'l{d^\t)), (2.90) где f-обратимая функция, t = 1,.... п, i = 1,.... Nk, k=U .... L.
38 Глава 2 Многослойные нейронные сети и алгоритмы их обучения Ы fi 1~ Рис. 2.13. Структура нейрона, применяемого для реализации алгоритма RLS. Если рассчитать градиент меры погрешности и приравнять его к нулю, то получим уравнение dwlk\n) dwfXn) 7 (2-91) = -2^ Л"-4^^<О(() = 0 При использовании зависимостей (2.68) и (2.69) уравнение (2.91) принимает вид у Г-'У Эу^)(0 V ^>(0 dyjTfr) ю = У r~fyl9ypL 1)(0У ^wW\t) = £ £dw}k>(n)£ ds<LXt) JP j( ) = У У —L 1)(0Е(1-~1)(0 = у ЛЛ“'У дУр){Г* £w(t) = О , (2 92) £^кЧп)р () й J где i ’<'>= <2Е°»
2.6. Применение рекуррентного метода наименьших квадратов Выражение (2.93) задает способ последовательного определения погрешностей в каждом слое, начиная с последнего. При дальнейших преобразованиях получаем последовательность равенств вида У лл~'У э4*}(0 e(lf)(Q= 4кЧо= ^ds^(n)dw^(n) = (2-94) y(ft)=[yr.-,y<J’]r. При использовании аппроксимации f(bW(t)) = f(s?*>(0) + - s}k>(t)) (2.95) получаем нормальное уравнение ^Z’-ff2(s)'<,(0)[fc!'<,(0-x('<,7(0iv1<'<,(n)]x(/<,r(0 = 0 , (2.96) г=1 векторная форма которого имеет вид ^k\n)^\n)w\k\n) , (2.97) где R^’tn) - ^Zn~ff2(sf'<’(())x(*)(()x<,<>r (() , (2.98) г=1 r}k\n) = ^ntf'2^k\t))b^k\t)x{k\t) (2.99) Уравнение (2.97) можно решить рекуррентным способом, без ин- вертирования матрицы RW(n). Это требует использования алгоритма RLS (например, [19]), согласно которому адаптивная коррекция всех ве- сов w№ производится согласно правилам Id-L,(n)-y,-L,(n) для/с L , Xr^^W^^nJe^n) дляк 1..........д-!, (2-100)
40 Глава 2. Многослойные нейронные сети и алгоритмы их обучения ' Л + f'2(slk4n))x™ (пррЧп - 1)х(кЧп) Р}к\п) = Л“1[1 - Г^Чп^Чп)^(n)F}k4n -1) . (2.102) w{k4n) = wfk4n -1) + д^Ч^У^Чп) (2.103) где/=1.......Nk, Начальные значения в алгоритме RLS, как правило, устанавлива- ются следующим образом: Р<к>(0) = 51, £» 0 , (2.104) iv('<,(0) = 0. (2.105) Начальные значения весов wik\0) нейронной сети могут также вы- бираться случайным способом из заранее установленного диапазона. Пример 2.1 Сравним функционирование алгоритма обратного распростране- ния ошибки (2.86), модифицированного алгоритма (2.87) и алгоритма RLS (2.103). Для этого двухслойную нейронную сеть с сигмоидальными функциями будем использовать для имитации логической системы XOR и декодера 4-2-4. Процесс имитации должен длиться достаточно долго для того, чтобы значение погрешности Q(n) стало меньше заданного по- рога у, те. NL Q(n) = ^(d$L4n)-у^Чп))2 <Т. (2-106) где Nl = 1 в случае логической системы XOR и NL = 4 в случае декодера 4-2-4. На рисунках, иллюстрирующих результаты моделирования, под эпохой (ер) понимается количество итераций, равное числу различных пар векторов входных и эталонных сигналов (один цикл предъявления обучающей выборки). В обоих примерах каждая эпоха состоит из четы- рех итераций обучающего алгоритма. а) Логическая система XOR. Нейронная сеть имеет 2 входа, 2 ней- рона в скрытом слое и 1 выход. Заданный порог / равен 0.02. В отдель- ные эпохи выделены следующие пары векторов входных и эталонных сигналов: (0,0; 0), (0,1; 1), (1,0; 1), (1,1; 0). Результаты моделирования представлены на рис. 2.14. б) Декодер 4-2-4 Нейронная сеть имеет 4 входа, 2 нейрона в скрытом слое и 4 нейрона в выходном слое. Заданный порог у ра- вен 0,02. В отдельные эпохи выделены следующие пары векторов входных и эталонных сигналов:
2.6. Применение рекуррентного метода наименьших квадратов 41 Рис. 2.14. Результаты моделирования логической системы XOR: а) алгоритм обратного распространения ошибки; б) модифицированный алгоритм обратного распространения ошибки (с учетом момента); в) алгоритм RLS.
Глава 2. Многослойные нейронные сети и алгоритмы их обучения Рис. 2.15. Результаты моделирования декодера 4-2-4: а) алгоритм обратного распространения ошибки; б) модифицированный алгоритм обратного распространения ошибки (с учетом момента); в) алгоритм RLS.
Список литературы 43 (1,0,0,0; 1,0,0,0) (0,1,0,0; 0,1,0,0), (0,0,1,0; 0,0,1,0) (0,0,0,1; 0,0,0,1). Результаты моделирования представлены на рис. 2.15 Легко заметить, что модифицированный (с учетом момента) алгоритм обратного распространения ошибки работает в несколько раз быстрее традиционного алгоритма, тоща как применение алгоритма RLS позволяет увеличить эту скорость еще на порядок Список литературы [1] Bilski J., Szybkie algorytmy uczenia sieci neuronowych, AGH, Krakow, 1995, praca doktorska. [2] Chong E. К R, Zak S. H., An Introduction to Optimization, Wiley, 1996. [3] Cichocki A., Unbehauen R., Neural Networks for Optimization and Signal Processing, Wiley, 1993. [4] Dayhoff J., Neural Network Architectures, Van Nostrand Reinhold, New York 1990. [5] Fausett L., Fundamentals of Neural Networks, Prentice Hall, 1994. [6] Findeisen W., Szymanowski W., Wierzbicki A., Teona i metody obliczeniowe optymalizacji, PWN, Warszawa 1977. [7] Hassoun M. H., Fundamentals of Artificial Neural Networks, MIT Press, 1995. [8] Haykin S., Neural Networks: A Comprehensive Foundation, Macmillan Publishing Company, 1994. [9] HechtNielson R., Neurocomputing, Addison-Wesley, New York 1990. [10] Hertz J., Krogh A., Palmer R. G„ Wstep do teorii obliczen neu- ronowych, WNT, Warszawa 1993. [11] Kacprzak T., SlotK.. Sieci neuronowe komorkowe, PWN, Warszawa- Lodz 1994. [12] Karayiannis N. B., Venetsanopoulos A. N., Artificial Neural Networks, Kluwer Academic Publishers, 1993. [13] Korbicz J., Obuchowicz A., Ucinski D., Sztuczne sieci neuronowe. Podstawy i zastosowania, Akademicka Oficyna Wydawnicza, Warszawa 1994. [14] Lippmann R. E, An Introduction to Computing with Neural Nets, IEEE, ASSP Magazine, April 1987, s. 4-22. [15] Maren A. J., Harston C.T., Pap R. M., Handbook of Neural Computing Applications, Academic Press, San Diego, California 1990. [16] Me Culloch W. S., A Logical Calculus of The Ideas Immanent In Nervous Activity, Biulletin of Mathematical Biophysics, 1943, nr 5, s. 115-133.
44 Глава 2. Многослойные нейронные сети и алгоритмы их обучения [17] Osowski S., Sieci neuronowe w ujeciu algorytmicznym, WNT, Warszawa 1996. [18] Rosenblatt R, On the Convergence of Reinforcement Procedures in Simple Perceptrons, Cornell Aeronautical Laboratory Report VG-1196-G-4, Buffalo, NY, Feb. 1960. [19] Rutkowski L., Filtry adaptacyjne i adaptacyjne przetwarzanie syg- nalow, WNT, Warszawa 1994. [20] Rumelhart D. E., Hinton G. E., Williams R. J., Learning Internal Representations by Error Propagation, In Parallel Distributed Procesing, t. 1, rozdz. 8, Rumelhart D. E. and McClelland J. L„ Eds., Cambridge, MA, M.LT. Press, 1986. [21] Simpson R K., Artificial Neural Systems: Foundations, Paradigms, Applications and Implementations, Pergamon Press, New York 1990. [22] Tadeusiewicz R., Sieci neuronowe — przewodnik problemowy, Elektrotechnika, 1991, t. 10, z. 2, s. 125-167. [23] Tadeusiewicz R., Problemy biocybemetyki, PWN, Warszawa 1991. [24] Tadeusiewicz R., Sieci neuronowe, Akademicka Oficyna Wydawnicza, Warszawa 1993. [25] Widrow B., Hoff M. E. Jr., Adaptive switching circuits, Western Conf. Rec., IRE, 1960, cz. 4, s. 94-104. [26] Widrow B., Lehr M. A., 30 Years of Adaptive Neural Networks: Perceptron, Madeline and Backpropagation, Proc, of the IEEE, 1990, t. 78, nr 9, S. 1415—1442.. [27] Widrow B., Stearns S., Adaptive Signal Processing, Prentice Hall, Englewood Cliffs (N.J.), 1985. [28] Zurada J. M., Introduction to Artificial Neural Systems, West Publishing Company, 1992.
ГЛАВАЗ НЕЧЕТКИЕ МНОЖЕСТВА И НЕЧЕТКИЙ ВЫВОД 3.1. Введение В 1965 г. в журнале «Information and Control» была опубликована известная работа Л. Заде [34] под названием Fuzzy sets. Это название пе- реведено на русский язык как нечеткие множества. Побудительным мо- тивом представления Л. Заде идеи и теории нечетких множеств стала не- обходимость описания таких явлений и понятий, которые имеют многозначный и неточный характер. Известные до этого математические методы, использовавшие классическую теорию множеств и двузначную логику, не позволяли решать проблемы этого типа. Вопросы, связанные с нечеткими множествами и их приложениями, освещаются в различных книгах и монографиях как на польском [5,15], так и на английском языках [2, 4, 9, 16, 20, 29. 33, 35]. В настоящей главе базовые понятия и определения теории нечет- ких множеств будут представлены в виде, удобном для не обладающего специальной математической подготовкой читателя (пл. 3.2 3.7). Далее мы обсудим проблемы нечеткого вывода, связанного с принятием реше- ний на основе нечетких условий (п. 3.8). Последующие пункты касаются проблематики построения нечетких алгоритмов (п. 3.9) и проектирования базы нечетких правил на основе численных данных (п. 3.10). При изложе- нии материала будут использоваться следующие обозначения: 1) а л b= min (а, б), Р| а, = min (аъ а2,..., ап), /=1 2) a v b = max (а, б), Ua< = max (а-!, а2,.... ап) 3.2. Основные понятия и определения теории нечетких множеств При помощи нечетких множеств можно формально определить не- точные и многозначные понятия, такие как «высокая температура», «мо- лодой человек», «средний рост» либо «большой город». Перед формули- рованием определения нечеткого множества необходимо задать так называемую область рассуждений (universe of discourse). В случае неод- нозначного понятия «много денег» большой будет признаваться одна сумма, если мы ограничимся диапазоном [0, 1000 руб] и совсем другая - в диапазоне [0, 1000000 руб]. Область рассуждений, называемая в даль- нейшем пространством или множеством, будет чаще всего обозначать- ся символом X. Необходимо помнить, что X - четкое множество.
46 Глава 3. Нечеткие множества и нечеткий вывод Определение 3.1 Нечетким множеством А в некотором (непустом) пространстве X. что обозначается как А с X. назывется множество пар Л = {(х,дд(х));хе X} , (3.1) ще дд:Х—>[0,1] (3.2) - функция принадлежности нечеткого множества А. Эта функция припи- сывает каждому элементу х е X степень его принадлежности к нечеткому множеству А, при этом можно выделить три случая 1) дд(х) - 1 означает полную принадлежность элемента х к нечет- кому множеству А, т.е. х е А; 2) цД(х) = 0 означает отсутствие принадлежности элемента х к не- четкому множеству А, т.е. х ё А; 3) 0 < дд(х) < 1 означает частичную принадлежность элемента х к нечеткому множеству А. В литературе применяется символьное описание нечетких мно- жеств. Если X - это пространство с конечным количеством элементов, т.е. X = {х4_хл}, то нечеткое множество А с X записывается в виде А । Дд(*г) , , Мд(хп) у Дд(х,) (33) Xi х2 £ х,- Приведенная запись имеет символьный характер. Знак «—» не оз- начает деления, а означает приписывание конкретным элементам хь ..., хп степеней принадлежности дЛ(х4)..дд(хл). Другими словами, запись Дд(х,) /=1 п (3.4) означает пару (Х|,дЛ(х/)),/= 1 п. (3.5) Точно также знак «+» в выражении (3.3) не означает операцию сло- жения, а интерпретируется как множественное суммирование элементов (3.5). Следует отметить, что подобным образом можно записывать и чет- кие множества. Например, множество школьных оценок можно символи- чески представить как D = 2 + 3 + 4 + 5, (3.6) что равнозначно записи D = {2, 3, 4, 5} (3.7) Если X - это пространство с бесконечным количеством элементов, то нечеткое множество А с X символически записывается в виде
3.2. Основные понятия и определения теории нечетких множеств 47 д (l^ldx. (3.8) х Х Пример 3.1 Допустим, что X = N - множество натуральных чисел. Определим понятие множества натуральных чисел, «близких числу 7». Это можно сделать определением следующего нечеткого множества А с X д=Р!2 + ад Q8 1 08 Д5 Q2 (зд) 456789 10 Пример 3.2 Если X - R, где R - множество действительных чисел, то множест- во действительных чисел, «близких числу 7», можно определить функци- ей принадлежности вида (310) Поэтому нечеткое множество действительных чисел, «близких числу 7», описывается выражением л = |[1 + (х-7)Г. dx (311) Замечание 3.1 Нечеткие множества натуральных или действительных чисел, «близких числу 7», можно записать различными способами. Например, функцию принадлежности (3.10) можно заменить выражением Рис. 3.1. Иллюстрация к примеру 3.2: функции принадлежности нечеткого множества действительных чисел, «близких числу 7».
48 Гпава 3. Нечеткие множества и нечеткий вывод при 4<х<10, в противном случае (3-12) На рис. 3.1 а и 3.1 б представлены две функции принадлежности нечеткого множества А действительных чисел, «близких числу 7». Пример 3.3 Формализуем неточное определение «подходящая температура для купания в Балтийском море». Зададим область рассуждений в виде множества X = [15°,.... 25°]. Отдыхающий I, лучше всего чувствующий се- бя при температуре 21°, определил бы для себя нечеткое множество 4=0J + Q3 + 0£ + №+£^ + J_ + £9 + № + 075 + 07 16 17 18 19 20 + 21+ 22 + 23 24 25 1 * ' ' Отдыхающий II, предпочитающий температуру 20°, предложил бы другое определение этого множества: В = £1 + ££ + °-9 1 0.9 0.85 0,8 0,75 0,7 . “ 15 + 16 + 17 + 18 + 19 + 20 + 21 + 22 + 23 + 24 + 25 С помощью нечетких множеств А и В мы формализовали неточное определение понятия «подходящая температура для купания в Балтий- ском море». В некоторых приложениях используются стандартные фор- мы функций принадлежности. Конкретизируем эти функции и рассмотрим их графические интерпретации. 1. Функция принадлежности класса s (рис. 3.2) определяется как s(x; а, Ь, с) = 0 для х < а , 2ГХ Для а<х<ь, {с-а) 12(^с^а) ДЛЯ Ь~х~с' 1 для х > с , (3.15) где b = (а + с)/2. Функция принадлежности, относящаяся к этому классу, имеет графическое представление (рис. 3.2), напоминающее букву «э», причем ее форма зависит от подбора параметров а, b и с. В точке х = b = =(а + с)/2 функция принадлежности класса s принимает значение, равное 0,5. 2. Функция принадлежности класса я (рис. 3.3) определяется че- рез функцию принадлежности класса s: I s(x; с-b, с-Ь12, с) длях<с, я(х,б,с)-| 1-S(x; с, c + fc/2, c + b) длях>с. (3-1€)
3.2. Основные понятия о определения теории нечетких множеств 49 Рис. 3.3. Функция принадлежности класса л. Функция принадлежности класса л принимает нулевые значения длях>с + Ьих<с-Ь. В точкахх = с + Ы2 ее значение равно 0,5. 3. Функция принадлежности класса у (рис. 3.4) задается выра- жением (0 для х < а , fzf для а<х<Ь, (3.17) 1 для х > b . Читатель с легкостью заметит аналогию между формами функций принадлежности классов s и у. в виде 4. Функция принадлежности класса t (рис. 3.5) определяется 0 для х < а , *~а для а < х < b , и — в С ~ * ДЛЯ Ь < X < с , C-D 0 для X > с . (3.18)
50 Глава 3. Нечеткие множества и нечеткий вывод Рис. 3.4. Функция принадлежности класса у. Р(Х) Рис. 3.5. Функция принадлежности класса t. В некоторых приложениях функция принадлежности класса t мо- жет быть альтернативной по отношению к функции класса я. 5. Функция принадлежности класса L (рис. 3.6) определяется выражением 11 для х < а, для а<х<Ь, (3.19) 0 для х > b Пример 3.4 Рассмотрим три неточных формулировки: 1) «малая скорость автомобиля»; 2) «средняя скорость автомобиля»; 3) «большая скорость автомобиля». В качестве области рассуждений примем диапазон [0, хтах], где Хтах - это максимальная скорость. На рис. 3.7 представлены нечеткие множества А, В и С, соответствующие приведенным формулировкам. Обратим внимание, что функция принадлежности множества А имеет тип L, множества В тип t, а множества С - тип у. В фиксированной точ- ке х = 40 км/час. функция принадлежности нечеткого множества «малая
3.2. Основные понятия и определения теории нечетких множеств 51 скорость автомобиля» принимает значение 0,5, т.е. дд(40) = 0,5. Такое же значение принимает функция принадлежности нечеткого множества «средняя скорость автомобиля», т.е. дв(40) = 0,5, тогда как дс (40) = 0. Пример 3.5 На рис. 3.8 показана функция принадлежности нечеткого множест- ва «большие деньги». Это функция класса s, причем X = [0,100000 руб], Рис. 3.6. Функция принадлежности класса L. Рис. 3.7. Иллюстрация к примеру 3.4; функции принадлежности нечетких множеств «малая» (Дд(х)), «средняя» (дв(х)). «большая» (дс (х)) скорость автомобиля. Рис. 3.8. Иллюстрация к примеру 3.5: Функция принадлежности нечеткого множества «большие деньги».
52 Гпава 3. Нечеткие множества и нечеткий вывод а = 1000 руб, с = 10000 руб. Следовательно, суммы, превышающие 10000 руб, можно совершенно определенно считать «большими», по- скольку значения функции принадлежности при этом становятся равны- ми 1. Суммы, меньшие чем 1000 руб, не относятся к «большим», так как соответствующие им значения функции принадлежности равны 0. Конечно, такое определение нечеткого множества «большие деньги» имеет субъективный характер. Читатель может иметь собственное пред- ставление о неоднозначном понятии «большие деньги» Это представ- ление будет отражаться иными значениями параметров а и с функции класса s. Определение 3.2 Множество элементов пространства X, для которых дд(х) > 0, на- зывается носителем нечеткого множества А и обозначается supp A (sup- port). Формальная его запись имеет вид А = {хе Х;дДх)>0}. (3.20) Определение 3.3 Высота нечеткого множества А обозначается h(A) и определяется как h(A) тахдд(х) (3.21) хеА Пример 3.6 Если X = {1, 2, 3, 4, 5} и Л = 0!2 + 0Л+ 07 (322) 1 2 4 то supp А = {1, 2,4}. Если X = {1, 2, 3, 4} и то h(A) = 0,8. Определение 3.4 Нечеткое множество А называется нормальным тогда и только тог- да, когда h(A) = 1. Если нечеткое множество А не является нормальным, то его можно нормализовать при помощи преобразования <324> где h(A) - высота этого множества.
3.2. Основные понятия и определения теории нечетких множеств 53 Пример 3.7 Нечеткое множество _ 0,1 0,5 0,3 2 + 4 + 6 после нормализации принимает вид . 0,2 1 0,6 2 + 4 + 6 (3-25) (3.26) Определение 3.5 Нечеткое множество А называется пустым и обозначается А = 0 тогда и только тогда, когда дЛ(х) = 0 для каждого хе X. Определение 3.6 Нечеткое множество А содержится в нечетком множестве В, что записывается как Д с В, тогда и только тогда, когда РА(х)1Дв(х) (3.27) для каждого х е X Пример включения (содержания) нечеткого множества А в нечет- ком множестве В иллюстрируется на рис. 3.9. В литературе встречает- ся также понятие степени включения нечетких множеств. Степень включения нечеткого множества А в нечеткое множество В на рис. 3.9 равна 1 (полное включение). Нечеткие множества, представленные на рис. 3.10, не удовлетворяют зависимости (3.27), следовательно, включе- ние в смысле определения (3.6) отсутствует. Однако нечеткое множество А содержится в нечетком множестве В в степени /(Д с: В) = min дв(х), (3.28) где Т = {х е X; дд(х) < дв(х), дЛ(х) > 0). Рис. 3.9. Включение нечеткого множества А в нечеткое множество В
54 Гпава 3 Нечеткие множества и нечеткий вывод Определение 3.7 Нечеткое множество А равно нечеткому множеству В, что записы- вается как А = В, тогда и только тогда, когда PAW = PB(x) (3.29) для каждого хе X. Приведенное определение, также как и определение 3.6, нельзя считать «эластичным», поскольку оно не учитывает случай, когда значе- ния функций принадлежности дд(х) и дв(х) почти равны между собой. В такой ситуации можно ввести понятие степени равенства нечетких мно- жеств Ли В, например, в виде Е(А=В) 1-тах|дд(х)-дв(х)| , (3.30) хеТ где Т= {х е X; дд(х) * дд(х)}. Различные определения степени включения и степени равенства нечетких множеств детально представлены в моно- графии [15] Определение 3.8 «-разрезом нечеткого множества Л с X. обозначаемым как Ле, на- зывается следующее четкое множество: А,={хеХ:дд(х)>а}, (3.31) т.е. множество, определяемое характеристической функцией X. (X)- I 1 ДЛЯ [ 0 для дд(х)<сх. (3.32) Определение «-разреза нечеткого множества иллюстрирует рис. 3.11. Легко заметить истинность импликации а2<«1=>^«, с/,,.. (3.33)
Пример 3.8 Рассмотрим нечеткое множество Л с X + + + Л (3 34) 2 4 5 8 10 причем X = {1, 10}. В соответствии с определением 3.8 конкретные (/-разрезы опреде- ляются в виде Л0 = Х = {1,..., 10}, Л07 = {5, 8, 10}, Ло 1 = {2, 4, 5, 8, 10}, до'8 = {8, 10}, Д0 3 = {4, 5, 8, 10}, /Ц = {10}. Определение 3.9 Нечеткое множество А с R является выпуклым тогда и только тог- да, когда для произвольных хъ х2 е R и Л е [0, 1] выполняется условие ДдРЦ + (1 Л)х2] > ^(х,) а дд(х2) = min {дДх,), дЛ(х2)} . (3.35) На рис. 3.12 представлен пример нечеткого выпуклого множества. Определение 3.10 Нечеткое множество А с R является вогнутым тогда и только тог- да, когда для произвольных хь х2 е R и Л е [0, 1] выполняется условие + (1 -Va(*i)vЫ*2) = тахШ*1). Va(x2)} (3-36)
56 Глава 3. Нечеткие множества и нечеткий вывод Ра(*) Рис. 3.12. Нечеткое выпуклое множество. Рл(*) Рис. 3.13. Нечеткое вогнутое множество. Рис. 3.13 иллюстрирует нечеткое вогнутое множество. Легко про- верить, что нечеткое множество А с R является выпуклым (вогнутым) тог- да и только тогда, когда являются выпуклыми (вогнутыми) все его «-раз- резы. 3.3. Операции на нечетких множествах В этом пункте приводятся основные операции на нечетких множе- ствах - как операции на множествах, так и алгебраические. Определение 3.11 Пересечением нечетких множеств Z, В с X называется нечеткое множество Л гт В с функцией принадлежности ЛдовМ = Ых) * Гв(*) = т|П (Дд(х). ГвМ) (3.37) для каждого хе X Графическая интерпретация этой операции представлена на рис 3.14. Пересечение нечетких множеств A-i, А2,.... Аг, определяется функци- ей принадлежности цА. (х) = min [дЛ (х), дД2(х),.... дДп(х)] (3.38) для каждого х е X.
3.3. Операции на нечетких множествах 57 Рис. 3.14. Графическое представление операции пересечения нечетких множеств. Рис. 3.15. Графическое представление операции алгебраического произведения. Замечание 3.2 В литературе помимо определения понятия «пересечение» (inter- section) нечетких множеств также встречается определение понятия «ал- гебраическое произведение» (algebraic product) этих множеств. Алгебра- ическое произведение нечетких множеств А и В - это нечеткое множество С - А • В, определенное как С = {(х,рА(х).рв(х))\хеХ). (3.39) Графическая интерпретация этой операции представлена на рис. 3.15. Определение 3.12 Сумма нечетких множеств А и В - нечеткое множество С = A В, определенное функцией принадлежности А/юв(*) = /'/,(*)v дв(х) = тах(дЛ(х), рв(х)) (3.40) для каждого х е X. Графическая интерпретация этой операции представ- лена на рис. 3.16. Функция принадлежности суммы нечетких множеств /Ц, А2, .... Ап выражается зависимостью U ДА(х) = тах[дА(х), ц^х),.... ДА (х)] (3.41) для каждого х е X.
58 Гпава 3 Нечеткие множества и нечеткий вывод Рис. 3.16. Графическое представление операции суммирования нечетких множеств. Следует помнить, что свойство выпуклости нечетких множеств со- храняется для их пересечения, а свойство вогнутости - для их суммы, т.е. 1) если Л и В - выпуклые нечеткие множества, то Л п В - выпук- лое нечеткое множество; 2) если Л и В - вогнутые нечеткие множества, то А о В - вогнутое нечеткое множество. Пример 3.9 Допустим, что X = {1, 2, 3, 4, 5, 6, 7} в _ 0,7 ! 1 ! 0,4 3 +5+ 6 В соответствии с определением 3.11 получаем В силу определения 3.12 имеем В то же время алгебраическое произведение нечетких множеств А и В, заданное выражением (3.39), принимает вид В литературе известна так называемая теорема о декомпозиции. Она позволяет представить произвольное нечеткое множество А в виде суммы нечетких множеств, генерируемых а-разрезами множества А. Теорема 3.1 Любое нечеткое множество А с X можно представить в виде
3.3. Операции на нечетких множествах 59 А= , (3.47) се[0,1] где aAa означает нечеткое множество, элементам которого приписаны следующие степени принадлежности: {а для х е А „ , О для xtAa Пример 3.10 Проведем декомпозицию нечеткого множества (3.34). В соответст- вии с выражением (3.47) получим дj£l+£l+£l+£l+£l] >2+4 + 5 + 8 10/Ul 4 5 8 + 10 /Н 5 8 10/° ад + а8| L1 ] = £1+£?.+£1+£Ё+_к 8 +10 /UllO I 2 + 4 + 5 + 8 +ю (3.49) Замечание 3.3 В литературе известны и другие, отличающиеся от 3.11 и 3.12 оп- ределения пересечения и суммы нечетких множеств. Вместо продублиро- ванных ниже формул (3.37) и (3.40) I /'лгв(х) тт(дд(х), дв(х)), I ^в(х) = тах(дЛ(х), дв(х)), можно встретить и альтернативные определения, например, б) I Д Аг В (*) = Va (*) Дв М . (3.50) И РливИ Дд(х)+Дв(х)-Дд(х)дв(х), (3.51) I дДг>в(х) = тах{0,дЛ(х) + дв(х)-1}, (3.52) ВЧ /'лоВ(х) = пМп{1,дЛ(х)гдв(х)}, (3.53) г) Ддг>в(*) = дд(х), если дв(х)^1, дв(х), если дд(х) = 1, 0, если Дд(х), дв(х)< 1, (дд(х), если дв(х) = 0, дв(х), если дд(х) = 0, 1, если Дд(х), дв(х)>0, д) Д^в(*) = 1 - rnin{l, [(1 - рА(х))Р + (1 - дв(х))Р]1'₽}, (3.54) (3.55) (3.56)
60 Глава 3. Нечеткие множества и нечеткий вывод = min{l, [и₽(х) + Дв₽(х)]1/₽} (3.57) дляр> 1. Как станет ясно из п. 3.7, операцию пересечения нечетких мно- жеств можно определить с помощью так называемой Т-нормы, тогда как операцию суммирования - с помощью так называемой S-нормы. Таким образом, формулы (3.37), (3.50), (3.52), (3.54) и (3.56) - это примеры ре- ализации Т-нормы (операция пересечения), тогда как формулы (3.40), (3.51), (3.53), (3.55) и (3.57) - это примеры реализации S-нормы (опера- ция суммирования). Замечание 3.4 В литературе известны попытки аналитического определения «на- илучших» операций пересечения и суммирования нечетких множеств. Например, Веллман и Гиртц (Bellman and Giertz) в работе [1] поставили и решили задачу построения двух функций f и g f, g : [0,1] х [0,1] -> [0,1] таких, что РАпв(*)= (3.58) Maub(x)= SW). MBW)- <3-59) Авторы отмеченной публикации выдвинули ряд условий, которым должны удовлетворять функции fv\g, после чего показали, что этим ус- ловиям удовлетворяют только операции (3.37) и (3.40), предложенные в оригинальной работе Заде [34]. Это не означает, что операции (3.37) и (3.40) адекватны во всех приложениях; например, если A/W * AgW- (3.60) то при этом в результате выполнения операции (3.37) получаем Аапв(х)= PaW (3.61) независимо от величины /лЛх). Другими словами, функция принадлежно- сти нечеткого множества В не оказывает никакого влияния на результат пересечения нечетких множеств А и В. Этот факт иллюстрируется на рис. 3.17. В такой ситуации более логичным представляется применение в качестве операции пересечения, например, выражения (3.50). При этом пересечение двух нечетких множеств будет идентично алгебраическому произведению этих множеств (см. замечание 3.2). Определение 3.3 Дополнением нечеткого множества A g X называется нечеткое множество А с функцией принадлежности д-(х)=1-дд(х) (3.62)
3.3. Операции на нечетких множествах 61 Рис. 3.17. Пересечение нечетких множеств А и В при flA(x) < рв(х). Рис. 3.18. Графическое представление операции дополнения нечеткого множества. для каждого хе X. Графическая интерпретация операции дополнения представлена на рис. 3.18. Пример 3.11 Допустим, что X = {1. 2, 3, 4, 5, 6}, а также * + 1 + + (3.63) 2 3 5 6 В соответствии с определением 3.13 дополнением множества А считается множество Л-- + —+ - + — — ~1+ 2 + 4 + 5 + 6 Обратим внимание, что 2 5 6 а также (3.64) (3.65) (3.66)
62 Глава 3. Нечеткие множества и нечеткий вывод Можно показать, что представленные выше операции на нечетких множествах (определения 3.11 - 3.13) обладают свойствами коммута- тивности, связности и сепарабельности, и кроме того, отвечают правилу де Моргана и абсорбции. Однако в случае нечетких множеств не выпол- няется условие дополнительности, т.е. АпЛ#0 , (3.67) АиЛ*Х. (3.68) Этот факт иллюстрируется рис. 3.19 и примером 3.11. Следует по- мнить, что функция принадлежности пересечения нечетких множеств А и Л отвечает неравенству (см. [9]) AAn>(x) = А#)) * у (3-69) Аналогично в случае суммирования получаем ГА = тах(рд(х), дд(х)) > | (3.70) Определение 3.14 Декартово произведение нечетких множеств A с X и В с Y обозна- чается А х В и определяется как Адхв (х- У) = Ад WЛ АВ (У) = П11п(дл(х), дв (у)) (3.71) Рис. 3.19. Нечеткие множества ДоД и Ди/.
3.3. Операции на нечетких множествах 63 или /'лхв (* У)= Дд(х) /£₽ (у) (3-72) для каждого х е X и у е Y. Декартово произведение нечетких множеств А1 G , Д2 £ Х2, —• An С Хп будем обозначать х Д2 х ... х Ап и опреде- лим как = min(MA(Xl), Дд.(х2),.... Дд/xJ) (3.73) либо ДдхД2х._>са„(х1"х2>— >хп)~Pa,(xi)> ••= Дд,(хп) (3-74) для каждого е Х2, х2 е Х2....хл е Хп. Пример 3.12 Допустим, что X = {2, 4), У = {2, 4, 6} и + (3.75) При использовании для декартова произведения нечетких мно- жеств А и В формулы (3.71) получаем = (з.77) (2,2) (2,4) (2,6) (4,2) (4,4) (4,6) Другие алгебраические операции на нечетких множествах играют важную роль в семантике лингвистических переменных (см. пункт 3.8). Определение 3.15 Концентрация нечеткого множества А с X обозначается CON(A) и определяется как Pcon (A)W = (^л(х))2 (3.78) для каждого х е X. Определение 3.16 Разбавление нечеткого множества А с X обозначается D!L(A) и оп- ределяется как ДО/т(Д)М = ад0-5 (3-79) для каждого хе X. Графическая интерпретация операции концентрации и разбавле- ния представлена на рис. 3.20.
64 Глава 3. Нечеткие множества и нечеткий вывод Рис. 3.20. Графическое представление операций концентрации и разбавления нечеткого множества. Пример 3.13 Если X = {1, 2, 3, 4} и Л 0,4 0,7 1 (3.S0) то в соответствии с определениями (3.15) и (3.16) получаем сои(д)=^+^+1 3.4. Принцип расширения Принцип расширения позволяет перенести (расширить) различ- ные математические операции с четких множеств на нечеткие множест- ва. Рассмотрим некоторое четкое отображение f пространства X в прост- ранство У f:X-»Y. (3.83) Пусть А будет заданным нечетким множеством, определенным в пространстве X. т.е. А с X. Если нечеткое множество А имеет вид (3.3), т.е. . РаМ , Дд(х2) , , Иа(*п) х, х2 х„ и отображение fявляется взаимно однозначным, то принцип расширения заключается в том, что генерируемое этим отображением и определен- ное в пространстве У нечеткое множество В имеет вцд
3.4. Принцип расширения 65 B = f(A} । ^(хг) । । ^(хп) f(x.) f(x2) f(x„) Пример 3.14 Допустим, что 0,1 0,4 0,7 3 + 2 + 5 (3-84) (3.85) и f(x) - 2х + 1. В соответствии с принципом расширения получаем (3.86) Рассмотрим теперь ситуацию, в которой более чем один элемент множества X отображается в один и тот же элемент у е Y (отображение f не является взаимно однозначным). В такой ситуации степень принад- лежности элемента у к нечеткому множеству В = f(A) равна максимальной степени принадлежности среди тех элементов множества X, которые ото- бражаются в один и тот же элемент у. Для иллюстрации этой реализации принципа расширения рассмотрим следующий пример. Пример 3.15 Если + 07 -2 3 2 и f(x) - х2, то нечеткое множество В, генерируемое отображением f, рав- но В = + (3-88) поскольку тах{0,3; 0,7} = 0,7. Обозначим Г1 (у) множество тех элементов х е X, которые отобра- жаются в элемент у е Y преобразованием f. Если Г1 (у) представляет со- бой пустое множество, т.е. 7-1(у) = 0, то степень принадлежности элемен- та у к нечеткому множеству В равна нулю. Приведенные рассуждения и иллюстрирующие их примеры позволяют сформулировать следующее определение: Определение 3.17 Если существует некоторое четкое отображение вода (3.83) и за- дано нечеткое множество А с X, то принцип расширения заключается в том, что генерируемое этим отображением нечеткое множество В име- ет вод B=f(A) = {(у, Дв(у))|у = 7(х), х е X}, (3.89)
66 Глава 3. Нечеткие множества и нечеткий вывод Ще (sup Дд(х). если Г1(у)*0, хег1(у) (3.90) 0, если f (у) = 0. Определение 3.17 охватывает пространство X как с конечным ко- личеством элементов (когда множество В задается формулой (3.84)), так и с бесконечным количеством элементов. Во втором случае формируе- мое отображением f нечеткое множество В можно представить в виде B-f(A) = dy. (3.91) В некоторых приложениях (например, в нечетких числах, п. 3.5) по- лезным оказывается другое представление принципа расширения, выра- жаемое следующим определением: Определение 3.18 Пусть X - это декартово произведение четких множеств Х-] х Х2 х... х Хл. Если существует некоторое четкое отображение f: X, х Х2 х... х Хп -> Y, (3.92) а также некоторые нечеткие множества с Хъ Д2 с Х2...А„ с Хп, то принцип расширения гласит, что формируемое отображением f нечеткое множество В имеет вид В = f(A...А,) = {(у, дв(у))|у = f(xb .... Х„), (X!.xn) е X), (3.93) при этом Isup тйНддДх,) дА](хп)}, если Г1(у)^0, ......, (3.94) 0, если f\y) = 0. Очередные два примера иллюстрируют факт, что принцип расши- рения позволяет переносить арифметические операции на нечеткие мно- жества. Пример 3.16 Допустим, что X - это декартово произведение множеств X., = Х2 = {1, 2, 3, 4, 5, 6). Пусть A-t - это нечеткое множество чисел, «близких чис- лу 2»: А, + (3.95) тогда как А2 - нечеткое множество чисел, «близких числу 4»:
3.4. Принцип расширения 67 Если у^Кхьх2) = хАх2, (3.97) то формируемое отображением (3.97) множество В = f(Av Д2) будет не- четким множеством чисел, «близких числу 8», причем В с Y ={1,2.36). Согласно определению 3.18 получаем з В = f(Ab А2) = ^(47’))1z *i',x2 ’ = min(0,7; 0,8) min(0,7; 1) min(0,7; 0,9) min(1; 0,8) min(t 1) , 3 4 + 5 6 + 8 min(1; 0,9) min(0,8; 0,8) min(0,8; 1) min(0,8; 0,9) + 10 +~~ 9 + 12 + 15 0,7 0,7 0,7 0,8 °-8 °-9 0.8 0,8 . ~ 3 + 4 I 5 + 6 +8 + 9 + 10 + 12 + 15 Следующий пример иллюстрирует случай, когда элементу - f(Xi(i), х2(/)) принимает одно и то же значение при различных значениях элемен- тов х^/) и х2С)- Пример 3.17 Допустим, что X - декартово произведение множеств Х-! = Х2 = = {1,2,3,4}. Определим следующее нечеткое множество А, чисел, «близ- ких числу 2»: A v+l+T <3-"> а также нечеткое множество чисел А2, «близких числу 3» В этом случае формируемое отображением (3.97) множество В = f(Ab А2) будет нечетким множеством чисел, «близких числу 6», причем В с Y = = {1,2....16}. Согласно определению (3.18) получаем R f/л z х min(0,7;0,8) min(0,7;1) в -------------------+-------- + max [min(0,7; 0,6); min(1; 0,8)] + max[min(1;1);min(0,8;0,8)] + 4 ~~* + 6 min(1;0,6) min(0,8;1) min(0,8;0,6) _ + —— + —q - + “
68 Глава 3. Нечеткие множества и нечеткий вывод . own 2 3 4 6 8 9 12 1 3.5. Нечеткие числа В теории нечетких систем выделяются нечеткие множества, кото- рые определяются на оси действительных чисел. Например, нечеткие множества чисел, «близких числу 7» (рис. 3.21) определены на множест- ве R и, кроме того, являются нормальными и выпуклыми, а также имеют непрерывные функции принадлежности. Дадим определение понятия «нечеткое число». Определение 3.19 Нечетким числом называется нечеткое множество А, определен- ное на множестве действительных чисел А a R, функция принадлежно- сти которого R [0. Я отвечает условиям 1) supДд(х) = 1 , т.е. нечеткое множество А нормализовано; xeR 2) дДЛх, + (1 - Z)x min {^(х,). дд(х2)}. т.е. множество А выпуклое; З)Дд(х). На рис. 3.21 представлены примеры нечетких чисел. В теории не- четких систем различаются положительные и отрицательные нечеткие числа Определение 3.20 Нечеткое число А с: R положительно, если д,(х) = 0 для всех х < 0 Нечеткое число A g R отрицательно, если ддх) = 0 для всех х > 0. На рис. 3.22 представлен пример положительного и отрицательно- го нечетких чисел, а также такого нечеткого числа, которое не является ни положительным, ни отрицательным. АЛ Рис. 3.21. Примеры нечетких чисел.
3.5. Нечеткие числа 69 Рл(х) Рис. 3.22. Примеры нечетких чисел: положительного, отрицательного, а также такого, которое не является ни положительным, ни отрицательным. Читатель, который ознакомился с содержанием л. 3.4, не будет иметь проблем при определении основных арифметических операций на нечетких числах. Эти операции будут заданы с помощью принципа рас- ширения, который позволяет сформулировать определения суммирова- ния, вычитания, умножения и деления двух нечетких чисел Аь А2 £ R. Оп- ределение 3.21 - это следствие определения 3.18, в котором отображение (3.92) принимает вид У=Г(х1,х2) = х1 + х2 при сложении нечетких чисел /Ц и Д2 , х1 -х2 при вычитании нечетких чисел /Ц и Д2 , Xi х2 при умножении нечетких чисел /Ц и Д2 , х, х2 при делении нечетких чисел А^м А2 Определение 3.21 Основные арифметические операции на нечетких числах /Ц, Д2 с R определяются следующим образом: а) суммирование двух нечетких чисел и А2 обозначается At®A2d= В, (3.102) причем функция принадлежности суммы (3.102) задается выражением (3.94) в вцде Л'в(уМ sup min^/xj, дЛ2(х2)}. (3.103) б) вычитание двух нечетких чисел А^ и А2 обозначается def /ЦАД, = В, (3.104) причем функция принадлежности разности (3.104) задается выражением (3.94) в виде Дв(У) = sup min^fxj, /%(х2)} , (3.105) Х|. х2 У=*1-*2
70 Глава 3. Нечеткие множества и нечеткий вывод в) умножение двух нечетких чисел и Л2 обозначается def Ai&A2 = B, (3.106) причем функция принадлежности произведения (3.106) задается выра- жением (3.94) в виде Рв(У)= SUP Дд2(х2)} (3.107) *1-*2 г) деление двух нечетких чисел Аа и Д2 обозначается def At © Д2 = В, (3.108) причем функция принадлежности частного (3.108) задается выражением (3.94) в виде Рв<У)= sup min^/xj, дЛг(х2)} (3.109) Поскольку с точки зрения приложений нас в первую очередь инте- ресуют нечеткие числа, имеющие непрерывные функции принадлежнос- ти, то для иллюстрации приведенных определений рассмотрим дискрет- ный случай (аналогично монографиям [15] и [35]). Пример 3.18 Сложим и перемножим два нечетких числа, имеющих вид В соответствии с формулой (3.103) получаем min(0,7; 0,8) max{min(0,7;1),min(1;0,8)} ® т'г =-----$-----+-------------g-----------+ max {min(1; 1), min(0,6; 0,8)} + _ + max {min(0,7;0,5),min(0,6;1)} min(1;0,5) min(0,6; 0,5) + 8 + 9 + 10 0,7 0,8 °-6 0.5 0.5 5 + 6+7+8 + 9+10 (3.112) На основании выражения (3.107) получаем
3.5. Нечеткие числа 71 л Л min(0,7;0,8) min(0,7;1) min(t,0,8) 6 + 8 + + max {min(0,7; 0,5), min(1; 1), min(0,6; 0,8)} + . _ + min(0,6;1) min(1;0,5) min(0,6;0,5) +' 16 + 18 + 24 0,7 0,7 0,8 1 0,6 0,5 0,5 6 + 8 + 9+2+16 + 18+24 (3‘113) В приведенном примере мы сложили и перемножили два нечетких числа (3.110) и (3.111), получив в качестве суммы нечеткое множество (3.112), а в качестве произведения - нечеткое множество (3.113). Легко проверить, что нечеткие множества (3.112) и (3.113) являются нормаль- ными и выпуклыми, и что они представляют собой нечеткие числа. Одна- ко результатом арифметических операций над нечеткими числами не всегда оказывается нечеткое число. Например, в результате умножения нечетких чисел (3.95) и (3.96) получается нечеткое множество (3.98), ко- торое не является нечетким числом, поскольку оно не отвечает условию выпуклости. Эта проблема устраняется тогда, когда операции выполня- ются над нечеткими числами, имеющими непрерывные функции принад- лежности, что утверждается следующей теоремой: Теорема 3.2 (Дюбуа и Прейда [9]) Если нечеткие числа /1! и А2 имеют непрерывные функции принад- лежности, то результатом арифметических операций суммирования, вы- читания, умножения и деления будут нечеткие числа. Мы обсудили основные двухаргументные (бинарные) операции на нечетких множествах. Одноаргументные (унарные) операции определя- ются также с помощью принципа расширения. Если f- отображение fR-»R (3.114) и A с R, у - f(x), то в соответствии с формулой (3.90) получаем дЕ(у)= sup рд(х) (3.115) где В = f(A). Приведем теперь несколько примеров унарных операций на нечет- ких числах. 1. Операция изменения знака. В результате операции f(x) = -х по- лучаем нечеткое число, противоположное нечеткому числу А с R. Это число обозначается - А с R, а его функция принадлежности равна М*)=дА(-х). <3-116) Нечеткие числа А и - А симметричны относительно оси х.
72 Глава 3. Нечеткие множества и нечеткий вывод 2. Операция обращения. В результате операции f(x) = х~\ х ф 0, по- лучаем нечеткое число, обратное нечеткому числу А с R. Это число обо- значается А~' с R, а его функция принадлежности равна ГА = ’) (3.117) Предполагается, что нечеткое число А положительно или отрица- тельно. Если А таковым не является, то нечеткое множество В - f(A) = не выпукло и, следовательно, В не может считаться нечетким числом. 3. Операция масштабирования. В результате операции f(x) = Zx, Л * о, получаем нечеткое число, масштабированное относительно нечет- кого числа А с R. Это число обозначается ХА с R, а его функция принад- лежности равна Мх) = ^д(хЛ-1)- (3-118) 4. Операция экспонирования. В результате операции f(x) = е*, х > О, получаем степень нечеткого числа A с R. Это число обозначается еЛ с R, а его функция принадлежности равна {'''"Г Xя поэтому еА - положительное нечеткое число. 5. Операция расчета абсолютного значения. Абсолютное значение нечеткого числа А с R обозначается | AI с R и определяется как „ тах(^л(х)- ^л(-х)) для х>0, I 0 для х<0 Очевидно, что IАI - положительное нечеткое число Пример 3.19 Если д = °2.+1+.2£ 1 +2+ 5 то нечеткое число - А имеет вид z _ 0,6 ! 1 । 0,7 ~-5+—2 + -1 тогда как нечеткое число А-1 записывается в виде д-1_ад^_1_^07 2 0,5 1 С использованием определения 3.21 легко проверить, что в приве- денном примере А + (-А)а^ . (3.124) (3.120) (3.121) (3.122) (3.123)
3.5. Нечеткие числа 73 а также А А(3.125) По этой причине для нечетких систем характерно отсутствие не- четких чисел, противоположных или обратных относительно суммирова- ния и умножения. Этот факт, в частности, делает невозможным примене- ние метода исключения для решения уравнений, в которых присутствуют нечеткие числа Арифметические операции над нечеткими числами требуют прове- дения достаточно сложных вычислений. Поэтому Дюбуа и Прейд [8] пред- ложили некоторую частную форму представления нечетких чисел при по- мощи трех параметров, что значительно упрощает нечеткую арифметику. Пусть L и Р - функции, выполняющие отображение (—,“) >[0,1] (3.126) и удовлетворяющие условиям: 1) L(-х) = L(x), Р(-х) = Р(х), 2)L(0) = 1, Р(0) = 1, 3) L и Р - функции, невозрастающие на интервале [0, + •»)• В качестве примеров функций L и Р можно привести L(x) Р(х) е |хГ’ , р > 0 , (3.127) L(x) = P(x) = ^-l-^ , р>0, (3.128) L(x) = P(x) тах(0,1-| х |₽), р > 0 , (3.129) ( 1 для хе[-1;1], Цх) = Р(х)=| 0 дляхе^. (3.130) Приведем теперь определение нечеткого числа типа L-P Определение 3.22 Нечеткое число А с R будет нечетким числом типа L-Р тогда и только тогда, когда его функция принадлежности имеет вид А(х) = если х < т , если х>т (3.131) где т - действительное число, называемое средним значением нечетко- го числа А (цА(т) =1), а - положительное действительное число, называ- емое левосторонним разбросом, Д - положительное действительное чис- ло, называемое правосторонним разбросом.
74 Глава 3. Нечеткие множества и нечеткий вывод Заметим, что при увеличении разбросов а и р число А становится «более» нечетким. Нечеткое число типа L-Р можно сокращенно записать в виде А = (тА, aA, PA)LP (3.132) Пример 3.20 Нечеткое число «примерно 9» можно определить как А = (9, 3, 3)LP (3.133) Функция принадлежности этого числа представлена на рис. 3.23, причем Цх) = Р(х)=^-^ (3.134) Арифметические операции над нечеткими числами типа L-Р сво- дятся к операции над тремя параметрами. Нечеткое число, противопо- ложное нечеткому числу (3.132), равно - А = (~тА, а, p}Lp. (3.135) Сумма нечетких чисел А - (тА, аА, РА)мВ = (тв, ав, рв) имеет вид А © В — (тА + тв, аА + <хв, РА + Р^р • (3.136) Другие арифметические операции (например, умножение и деле- ние) над нечеткими числами типа L-Р более сложны, а их результат име- ет приближенный характер. Функция принадлежности дд(х) нечеткого числа типа L-Р принима- ет значение 1 только в точке х = т. Модифицируем теперь определение 3.22 так, чтобы дд(х) - 1 не только в единственной точке х - т, но и во всех точках на интервале [m^ т2], где m1 < т2 и т2 е R. В этом слу- Рис. 3.23. Иллюстрация к примеру 3.20.
3.6. Треугольные нормы 75 чае мы получаем определение так называемого плоского нечеткого чис- ла. Это определение можно использовать для моделирования нечетких интервалов. Определение 3.23 Плоским нечетким числом типа L-Р называется нечеткое число с функцией принадлежности . ( т< - х А L —Л—— , если х<т1э 1, если т<<х<т7, Д(х)= > х (3 137) Р ——— если х>т2. Плоское нечеткое число А можно отождествить с нечетким интер- валом А вида A = (mvm2, а, fi)LP (3.138) Пример 3.21 Рассмотрим неточное утверждение «стоимость велосипеда в этом магазине составляет от 3 до 6 тысяч рублей». Адекватной формализаци- ей этого утверждения может считаться нечеткий интервал А вида А = (3, 6, a, P)Lp (3.139) На рис. 3.24 представлен примерный график функции принадлеж- ности нечеткого интервала (3.139). 3.6. Треугольные нормы В пункте 3.3 операции пересечения и суммирования нечетких мно- жеств были определены как Адпв(х) = min (д„(х), дв(х)), Рис. 3.24. Иллюстрация к примеру 3.21: нечеткий интервал «от 3 до 6 тысяч рублей».
76 Глава 3. Нечеткие множества и нечеткий вывод = max ("//*) ABW)- Вместе с тем подчеркивалось, что это не единственные определе- ния указанных операций. Пересечение нечетких множеств можно задать в более общем виде как Рдпв(х) =ПРд(х).Рв(х)), (3.140) где функция Т- это так называемая 7-норма. Поэтому min(pz(x), де(х)) = 7(дд(х), Дв(х)) можно считать примером действия 7-нормы. Аналогично, сумму нечетких множеств можно определить следующим образом: А/юа(*) = SOW*). ABW) • (3141) где функция S - это так называемая S-норма. В этом случае тах(дЛ(х), дЕ(х)) = S(pz(x), дБ(х)) можно считать при- мером действия S-нормы. Другие примеры действия 7- и S-норм дают определения (3.50) - (3.57). Т- и S-нормы относятся к классу так называ- емых треугольных норм. Мы будем многократно применять их в последу- ющем, причем не только для определения операций пересечения и сум- мирования нечетких множеств. После знакомства с примерами действия 7- и S-норм рассмотрим их формальные определения. Определение 3.24 Функция 7 двух переменных 7: [0,1] х [0,1]-» [0,1] (3.142) называется 7-нормой, если: 1) функция 7 является невозрастающей относительно обоих аргу- ментов Т(а, с) < T(b, d) для а < Ь, с < d, (3.143) 2) функция 7 удовлетворяет условию коммутативности 7(а, б) = 7(6, а), (3.144) 3) функция 7 удовлетворяет условию связности 7(7(а. б), с) = 7(а, 7(6, с)), (3.145) 4) функция 7 удовлетворяет граничным условиям 7(а, 0) = 0, 7(а, 1) = а . (3.146) где a, b,c,de [0, 1]. Произвольная 7-норма ограничивается следующим образом: Tw (а, б) < 7(а, б) < min(a, б), (3.147) где Tw - это 7-норма вида
3.6. Треугольные нормы 77 1а, если 6 = 1, Ь, если а = 1, (3.148) О, если а, 6*1. В последующем описании реализацию Г-нормы на аргументах а и b будем обозначать Т(а,Ь) = аТ*Ь (3.149) Если, например, а и b отождествить с функциями принадлежности нечетких множеств А и В, то равенство (3.140) можно представить в виде Ha^bW = T(pa{x), рв(х)) = дЛ(х)*Де(х) (3.150) Определение 3.25 Функция S двух переменных S: [0, 1] х [0, 1]-»[0, 1] (3.151) называется S-нормой, если она является невозрастающей относительно обоих аргументов, удовлетворяет условию коммутативности и связности, а также граничным условиям S(a, 0) = a, S(a, 1) = 1 . (3.152) Функция S также называется ко-нормой либо дополняющей нор- мой относительно Т-нормы. Произвольная норма ограничивается следу- ющим образом: max(a, b) < S(a, b) < Sw (а, Ь), (3.153) где Sw есть Т- норма вида 1а, если 6 = 0, 6, если а = 0, (3.154) 1, если а, 6*0 Реализацию S-нормы на аргументах а и 6 будем обозначать s S(a, 6) = а*6 (3.155) Следует подчеркнуть, что каждой Т-норме соответствует S-нор- ма, а зависимость между ними выражается равенством а*6 = 1-[(1-а)*(1-6)] (3.156) В таблице 3.1 представлены наиболее часто встречающиеся Т- и S-нормы.
Глава 3. Нечеткие множества и нечеткий вывод Таблица 3.1. Треугольные нормы Nr Т(д,Ь) sfofe) Параметры 1 min(a, Ь) tnaxfa, b) 2 ab a+b~ab 3 maxfc + b - 1,0) mm(« + b, 1) 4 а, если b — 1 b, если a — 1 0, если a. b * 1 fc, если b = 0 b, если a = 0 [1, если a, b * 0 5 ab r+ (1 - ГХ« ♦ *-<*) a +b-(2-y)ab I - 0 — yfab y> 0 6 ab raaxfa, b, a) a + b — ab — min(a, b, 1 - a) tnaxfl - a, 1 - b, a) a e 10, 11 7 [ЧЧЧ--Г] Д > 0 8 i - Va-e)'+ a-w- о -aYQ-bf + b'- a'b' p > 0 9 max(l - ф-с)"+ (l-ty ’•°) + b', 1) 10 -ч-ея 1 И rnin(o + b + fab, 1) Лг -l 3.7. Нечеткие отношения и их свойства Одним из основных понятий теории нечетких множеств считается понятие нечеткого отношения. Эти отношения позволяют формализовать неточные утверждения типа «х почти равно у» или «х значительно боль- ше чем у». Приведем определение нечеткого отношения и комбинации нечетких отношений. Определение 3.26 Нечеткое отношение R между двумя непустыми множествами (чет- кими) X и Y будем называть нечеткое множество, определенное на декар- товом произведении X х Y, т.е. R с X xY ={(х, у): х еХ, у е Y}. (3.157)
3.7. Нечеткие отношения и их свойства 79 Другими словами, нечеткое отношение - множество пар R = {((x,y),R(x,y))}, (3.158) где : X х Y [0, 1] (3.159) - это функция принадлежности, которая каждой паре (х, у) приписывает ее степень принадлежности др (х, у), которая интерпретируется как сила связи между элементами хе X и у e Y. В соответствии с принятым согла- шением (п. 3.2) нечеткое отношение можно представить в виде или р_ f Рл(х, у) (3.161) Пример 3.22 Применим определение 3.26 для формализации неточного ут- верждения «у примерно равно х». Пусть X = {3, 4, 5} и Y = {4, 5, 6}. Отно- шение R можно определить следующим образом: 1 1 0,8 0,8 0,8 0,8 0,6 0,6 0,4 (4,4) (5,5) (3,4) (4,5) (5,4) (5,6) (3,5) (4,6) (3,6) Следовательно, функция принадлежности pR(x, у) отношения R имеет вид 1, если х = у, 0,8, если |х-у 1=1, М*.у) = 0,6, если |х-у|=2, (3.163) 0,4, если |х-у|=3. Отношение R можно также задать в виде матрицы Я Уг Уз х. Го,8 0,6 0,41 х2 1 0,8 0,6 х3 [0,8 1 0,8] (3.164) где Xt = 3, х2 = 4, х3 = 5, а у, = 4, у2 = 5, у3 = 6. Пример 3.23 Пусть X = Y = [0, 120] - это длительность жизни человека В этом случае отношение R с функцией принадлежности
80 Глава 3. Нечеткие множества и нечеткий вывод ГР(*. У) = 0, 30 ’ если если если х-у<0, 0<х-у<30, х-у>30 (3.165) представляет неточное утверждение «особа х намного старше особы у». Следует подчеркнуть, что нечеткое отношение R - это нечеткое множество, поэтому сохраняют силу введенные в п. 3.3 определения опе- раций пересечения, суммирования и дополнения: A'Rrs(x- У) = у), ps(x, у)), (3.166) rR^x- У) = max(;zR(x, у), д5(х. у)), (3.167) Дк(х.У) = 1-М*.У) (3.168) В теории нечетких множеств важную роль играет понятие комбина- ции двух нечетких отношений. Рассмотрим три четких множества X, Y, Z и два нечетких отношения RcXxYnScYxZc функциями принадлеж- ности pR(x, у) и Ps(y, z). Определение 3.27 Комбинацией типа sup-7" нечетких отношений RgXxY и ScYxZ называется нечеткое отношение R ° S с X х Z с функцией принадлеж- ности PRosUz) = sup{[PR(x, у)* (y.z)]} (3.169) Конкретная форма функции принадлежности A'Ros(x-z) комбина- ции R ° S зависит от Т-нормы, используемой в формуле (3.169). Если в качестве Т-нормы применяется min, т.е. Т(а, b) = min(a, Ь), то равенство (3.169) можно представить в виде A'roS(*.2) = sup{min[^R(x,y), ^s(y,z)]} (3.170) yeY Формула (3.170) известна в литературе под названием «комбинация типа sup-min». Если множество Y имеет конечное количество элементов, то комбинация типа sup-min сводится к комбинации типа max-min в форме A'Ros(2.2) = max{min[^R(x,y), д5(у,2)]} (3.171) Пример 3.24 Допустим, что отношения R и S представлены матрицами ГО,2 0,51 Г0,3 0,6 0,81 L0.6 1 J ‘ S’|o,7 0,9 0,4j ’ (3172)
3.7. Нечеткие отношения и их свойства 81 причем X = {x1t х2}, Y = {у,, у2}, Z = {гь Z;}. Комбинация типа max-min от- ношений R и S имеет вцц Q = R°S Го,2 0,51 Го,3 0,6 0,81 = Гд11 g12 д131 0,6 1 J [о,7 0,9 0,4j [q2i 9гг 923 J где Qu = max[min(0,2; 0,3), min(0,5; 0,7)] = 0,5, q12 = max[min(0,2; 0,6), min(0,5; 0,9)] = 0,5, q13 = max[min(0,2; 0,8), min(0,5; 0,4)] = 0,4, Q21 = max[min(0,6; 0,3), min(1; 0,7)] = 0,7, Q22 = max[min(0,6; 0,6), min(1; 0,9)] = 0,9, Q23 = max[min(0,6; 0,8), min(1; 0,4)] - 0,6. Поэтому ГО,5 0,5 0,41 [0,7 0,9 0,6 J (3.173) (3.174) В таблице 3.2 собраны важнейшие свойства нечетких отношений, причем / означает единичную матрицу, а О - нулевую матрицу Как отмечалось в начале п. 3.6, для практических приложений осо- бенно важна комбинация нечеткого множества с нечетким отношением. Комбинация этого типа будет многократно использоваться в последую- щем изложении. Рассмотрим нечеткое множество А с X и нечеткое отно- шение R с X * Y с функциями принадлежности дЛ(х) и (х, у). Определение 3.28 Комбинация нечеткого множества А с X и нечеткого отношения R с XxY обозначается A°R и определяется как нечеткое множество Вс Y Таблица 3.2. Важнейшие свойства нечетких отношений 1 Ro/ = /oR = R 2 R<>0 = 0° R = О 3 (RoS)°T = R°(S°T) 4 Rm 0 Rn = Rm+n 5 (Rmyi = Rm 6 R°(SuT) = (R°S)vj(R°T) 7 Ro(SryT)c(R°S)r>(RoT) 8 ScT^-RoScRoT
82 Глава 3. Нечеткие множества и нечеткий вывод B = A°R (3.175) с функцией принадлежности Ив(У) = 5ир{[дд(х)* Д/?(х,У)]} (3.176) хеХ Конкретная форма записи выражения (3.176) зависит от использу- емой Т-нормы и от свойств множества X. Выделим 4 случая: 1) если Т(в, b) = min(a, Ь), то получаем комбинацию типа sup-min цв(у) = sup{min[j^(x), дя(х.у)]}, (3.177) хеХ 2) если Т(а, b) = min(a, Ь) и X представляет собой множество с ко- нечным количеством элементов, то получаем комбинацию типа max-min Дв(У) = тах{|тал[Рд(х), juR(x,y)]}, (3.178) 3) если Т(а, Ь) = а • Ь, то получаем комбинацию типа sup-произве- дение (sup-product) Де(У) = sup{PA(x)-^R(x.y)} , (3.179) хеХ 4) если Т(а, Ь) = а • b и X представляет собой множество с конеч- ным количеством элементов, то получаем комбинацию типа max-произ- ведение (max-product) дв(у) = тах{дА(х)-nR(x,y)} . (3.180) Пример 3.25 Допустим, что X = {Хр хъ Хз), Y = {у1, уз) и А имеет вид 0,4 [ 1 ^,6 *1 х2 *з тогда как отношение R представлено матрицей У1 У2 х, Го,5 0,71 R= *2 0,2 1 х3 [0,9 0,3] (3.181) (3.182) Комбинацию A °R типа max-min рассчитываем по формуле (3.178). Результат комбинации - это нечеткое множество В вида е = РвЬМ + Дв(У2) У1 У2 (3.183) причем
3.8. Нечеткий вывод 83 pB(yi) = max{min(0,4; 0,5), min(1; 0,2), min(0,6; 0,9)} = 0,6 , (3.184) дБ(у2) = max{min(0,4; 0,7), min(1; 1), min(0,6; 0.3)} = 1 . (3.185) Поэтому B = P£+-L (3.186) У1 У2 3.8. Нечеткий вывод 3.8.1. Основные правила вывода в двоичной логике В традиционной (двоичной) логике решения об истинности одних суждений выводятся на основании истинности других суждений. Подоб- ный вывод задается в воде схемы: над горизонтальной чертой записыва- ются все суждения, на основании которых принимается решение, а под чертой - полученный результат. Схема корректного вывода обладает тем свойством, что поскольку истинны все суждения над чертой, то истинно также и суждение под чертой, так как из истинных суждений может выво- диться только истинный результат. В настоящем разделе заглавными бук- вами А и В будут записываться суждения, а не нечеткие множества. Пусть А и В - это суждения, причем запись А = 1 (В = 1) означает, что логичес- ким значением суждения А (В) считается «истина», тогда как запись А = 0 (В = 0) означает, что логическим значением суждения А (В) считается «ложь». Представим теперь два правила вывода, применяемых в двоич- ной логике. Определение 3.29 Правило вывода modus ponens (первая форма гипотетического силлогизма) определяется следующей схемой вывода: Условие Импликация А А^>В Вывод В Пример 3.26 Пусть суждение А имеет вид «Ян является водителем», а сужде- ние В - «У Яна есть водительское удостоверение». В соответствии с пра- вилом modus ponens, если Д = 1,тоиВ=1, поскольку если истинно, что «Ян является водителем», то также истинно, что «У Яна есть водитель- ское удостоверение». Другими словами, из истинности предпосылки и импликации (суждения над чертой) следует истинность вывода (сужде- ния под чертой).
84 Глава 3. Нечеткие множества и нечеткий вывод Определение 3.30 Правило вывода modus tollens (вторая форма гипотетического силлогизма) определяется следующей схемой вывода: Условие Импликация В А^В Вывод А Пример 3.27 Продолжая пример 3.26, можно понять, что если «У Яна нет води- тельского удостоверения», т.е. В = 0 (В - 1), то «Ян не является водите- лем», т.е. А = 0 (А = 1). В этом примере тоже из истинности предпосылки и импликации следует истинность вывода. Мы представили всего два правила вывода в двоичной логике, ко- торые будут обобщаться на случай нечеткости. Конечно, в двоичной ло- гике существует множество других правил вывода. Интересующиеся мо- гут ознакомиться с обширной литературой, посвященной этой тематике (например, [27]). 3.8.2. Основные правила вывода в нечеткой логике Расширим теперь основные правила вывода в двоичной логике на случай нечеткости. Допустим, что присутствующие в правилах modus ponens (3.187) и modus tollens (3.188) суждения характеризуются некото- рыми нечеткими множествами. Таким способом мы получаем обобщен- ное правило вывода modus ponens и обобщенное правило вывода modus tollens. В последующем изложении зависимости типа «Если А, то В» бу- дем записывать в символике классического языка программирования ALGOL в виде IF A THEN В. По этой причине в некоторых русскоязычных формулировках будут встречаться английские термины. 3.8.2.1. Обобщенное нечеткое правило modus ponens Определение 3.31 Обобщенное (нечеткое) правило вывода modus ponens определя- ется следующей схемой вывода- Условие Импликация х это А' IF х это A THEN у это В Вывод у это В' где А, А' X и В, В' с X - нечеткие множества, в то время как х и у - так называемые лингвистические переменные.
3.8. Нечеткий вывод 85 Лингвистическими называются переменные, значения которых представляют собой слова или суждения на естественном языке. В каче- стве примеров можно привести выражения типа «малая скорость», «уме- ренная температура» или «молодой человек». Подобные выражения можно формализовать приписыванием им некоторых нечетких множеств. Следует подчеркнуть, что лингвистические переменные помимо словес- ных значений могут иметь и численные значения - также, как обычные математические переменные. Следующий пример иллюстрирует обоб- щенное (нечеткое) правило вывода modus ponens и разъясняет понятие «лингвистическая переменная». Пример 3.28 Рассмотрим следующую схему вывода: Условие Импликация Скорость автомобиля большая Если скорость автомобиля очень боль- шая, то уровень шума высокий Вывод Уровень шума в автомобиле не очень высокий В приведенной схеме условие, импликация и вывод - неточные ут- верждения. В качестве лингвистических переменных выделим: х - ско- рость автомобиля, у— уровень шума. Множество = {«малая», «средняя», «большая», «очень большая»} - множество значений лингвистической переменной х. Аналогично мно- жество Т2 = {«малый», «средний», «не очень высокий», «высокий»} - множество значений лингвистической переменной у. Каждому элементу множеств Т\ и Г2 можно приписать соответству- ющее нечеткое множество. В результате анализа схем вывода (3.189) и (3.190) получаем следующие нечеткие множества: А = «очень большая скорость автомобиля», А’ = «большая скорость автомобиля» и В = «высокий уровень шума», В’ = «не очень высокий уровень шума». Читатель может самостоятельно построить функции принадлеж- ности для этих нечетких множеств, аналогичные представленным на рис. 3.7. Рассмотрим различия между четким (3.187) и нечетким (3.189) правилами. В обоих случаях импликация имеет один и тот же вид А -> В, где А и В- это суждения (правило 3.187) либо нечеткие множества (пра- вило 3.189). Суждение А из импликации четкого правила также присутст- вует в предпосылке этого правила. В то же время условие нечеткого лра-
86 Глава 3. Нечеткие множества и нечеткий вывод вила не связано с нечетким множеством Д но содержит некоторое нечет- кое множество А', которое может в определенном смысле быть близким к А, однако не обязательно А - А'. В примере 3.28 нечеткое множество А = «очень большая скорость автомобиля» не равно нечеткому множест- ву А' = «большая скорость автомобиля». В результате выводы схем (3.187) и (3.189) отличаются друг от друга. Вывод нечеткого правила от- носится к некоторому нечеткому множеству В', которое определяется комбинацией нечеткого множества А' и нечеткой импликации А В, т.е. В' = Д°( _> ) (3.191) Нечеткая импликация А В равнозначна некоторому нечеткому отношению Rc X х Y с функцией принадлежности pR(x, у). Поэтому функ- цию принадлежности нечеткого множества В’ можно представить с помо- щью формулы (3.176), которая записывается в виде Двг( )~suP{ju/r( ) *Ра^в(х’У)} (3.192) причем рА_>в(х, у) = pR(x, у). В частном случае, когда Г-норма имеет тип min, формула (3.192) принимает вид де'(У) = sup{min[;(/.(x), дЛ >в(х,у)]} (3.193) хеХ Читатель легко заметит, что если А = А' и В = В', (3.194) то обобщенное нечеткое правило modus ponens (3.189) упрощается до рассмотренного в п. 3.8.1 правила modus ponens (3.187). Теперь допустим, что применяется импликация А -> В из схемы (3.189), а нечеткое множество А’ (условие) последовательно принимает значения: А'=А-, А'= «очень Л», причем рД.(х) = д^(х); А'= «почти Л», причем рд.(х) = pj/2(x), А'= «не А», причем рд.(х) - 1 - дд(х). Нечеткое множество «очень Л» определяется при помощи опера- ции концентрации (3.78), нечеткое множество «почти А» - при помо- щи операции разбавления (3.79), а нечеткое множество «не Л» - при по- мощи операции дополнения (3.62). В таблице 3.3 приведены (см. [10]) фактические отношения, которые могут связывать нечеткие множества А' и В'. Отношение 1 - это схема modus ponens (3.187), отношения 2b и 3b возникают в случае отсутствия сильной связи между А' и В', отноше- ние 4а означает, что из предпосылки «х это не А» нельзя сделать вывод об у.
3.8. Нечеткий вывод 87 Таблица 3.3. Интуитивные отношения между условиями и выводами обобщенного нечеткого правила modus ponens Отношение Условие х это А' Вывод у это В' 1 хэто А у это В 2а х это «очень А» у это «очень В» 2Ь х это «очень Д» у это В За х это «почти Д» у это «почти В» ЗЬ х это «почти Д» у это В 4а х это «не Д» у не определено 4Ь х это «не Д» у эго «не В» 3.8.2.2. Обобщенное нечеткое правило modus tollens Определение 3.32 Обобщенное (нечеткое) правило вывода modus tollens определя- ется следующей схемой вывода: Условие Импликация у это В' IF х это A THEN у это В Вывод х это Д ' где А, А' с X и В, В' с X - это нечеткие множества, в то время как х и у - это лингвистические переменные. Пример 3.29 Данный пример следует из примера (3.28), причем сохраняет силу описание, соответствующее схеме (3.190): Условие Импликация Уровень шума в автомобиле не очень высокий Если скорость автомобиля очень боль- шая, то уровень шума высокий Вывод Скорость автомобиля большая Нечеткое множество А' в выводе схемы (3.195) определяется комбинаци- ей отношений Д' = (Д-»В)оВ’ . (3.197) причем дД'(*) = 8ир{д/|_>в(*.У) *дв-(у)} (3.198) yeY
88 Глава 3. Нечеткие множества и нечеткий вывод Если Т-норма имеет тип min, то формула (3.198) принимает вид дд'(х) = 5ир{тт[дд^Б(х,у), дЕ-(у)]} (3.199) yeY Если А'=А илиВ'=В, (3.200) то обобщенное нечеткое правило вывода modus toilers (3.195) упрощает- ся до рассмотренного в п. 3.7.1 правила modus toilers (3.198). В таблице 3.4 показаны очевидные отношения мевду условиями и выводами обоб- щенного нечеткого правила вывода modus tollers. 3.8.3. Правила нечеткой импликации В предыдущем пункте мы обсуждали обобщенные нечеткие схемы вывода modus porers и modus tollers. Функции принадлежности (3.198) и (3.192) в выводах этих схем зависят от функции принадлежности Рд_>в(х, у) нечеткой импликации А -> В, которая равнозначна некоторому нечеткому отношению R с X х Y. Представим различные способы зада- ния функции pA >g (х, у) = pR на основе известных функций принадлеж- ности дДх) и дЕ(у). Определение 3.33 Пусть А и В - это нечеткие множества, А с X и В с Y. Нечеткой им- пликацией А -> В называется отношение R, определенное на XxY и удовлетворяющее следующим правилам: 1. Правило типа minimum Рд->в (*> У) = Р/А У) = Рд W л АВ(У)= ™л[дд(х), дв(у)]. (3.201) Это правило называется «правилом Мамдани». 2. Правило типа «произведение» ГА-+в У) = Мх- У) = Лд W ЛЕ(У)- (3-202) Это правило известно под названием «правило Ларсена». Таблица 3.4. Интуитивные отношения мевду предпосылками и вывода- ми обобщенного нечеткого правила modus tollers Отношение Условие у это В' Вывод х это Д’ 1 у это «не В» х это «не А» 2 у это «очень В» х это «очень А» 3 у это «почти В» X это «почти А» 4 у это В х не определено 5 у это В хэто А
3.8. Нечеткий вывод 89 3. Правило Лукашевича ИА-+в (х, у) = pR(x, у) = 1 л [1 - рА(х) + Рв(у)] = min[1, 1 - дДх) + де(у)]. (3.203) 4. Правило типа max-min Ра-^в У) = Pr(x- У) = I РдИ л А'в(У)! v I1 - РдДО] = max{min[ рА(х), де (у)], 1 - рА (х)} . (3.204) Это правило известно под названием «правило Заде». 5. Бинарное правило Дд—»В (х, у) = др(х, у) = [1 - дДх)] v дв(у) = тах[1 - дДх), дЕ(у)]. (3.205) 6. Правило Гогуэна Va-^b(x, У) = Дя(х. У) = 1 а = mir |г±е^11. (3.206) Дд(У) I Дл(у)] 7. Правило Шарпа (з-№) 8. Правило Гёделя ^В(*.У) = М*-У) = {;е(у)> если Дд(х)>Дв(У)’ (3'208) 9. Вероятностное правило ^->в (* У) = ^х. У) = 1 л [1 - дДх) + дд(х)дЕ(у)] = min [1,1 - дДх) + дДх) дЕ(у)] (3.209) 10. Правило ограниченной суммы Ра-^в (х. У) = др(х, у) = 1 л [1 - дДх) + д^у)] = min {1, [дд(х) +дв(у)]} (3.210) Набор этих десяти правил не исчерпывает все известные из лите- ратуры определения нечеткой импликации. Представим теперь два при- мера, иллюстрирующие действие некоторых правил, подпадающих под определение 3.32. Пример 3.30 Применим правило Ларсена (3.202) для нахождения вывода по схеме (3.189), т.е. построим нечеткое множество В', определенное выра- жением (3.191)
90 Глава 3. Нечеткие множества и нечеткий вывод В' = А'°(А^В) или, точнее, его функцию принадлежности, соответствующую формуле (3.193) дЕ.(у) = 5ир{тПдд.(х), дд^Е(х,у)]} ХеХ Будем строить функцию принадлежности нечеткого множества В' для следующих случаев нечеткого множества А'- а)А'=А = p^dx, (3.211) б) А' = «очень Д» = с/х, (3.212) в) А' = «почти Д» = dx, (3.213) г) А' = «не А» = dx. (3.214) Допустим, что Бирдд(х) = 1 (3.215) хеХ Если А' - А, то применение правила (3.202) ведет к равенству дЕ-(у) = 5ир{т!п[дд(х), дд(х)де(у)]} ХеХ = supfl^ (х)де(у)]} = дЕ(у) (3.216) ХеХ В случае, когда А' = «очень Д», получаем дЕ'(у) = sup{min[^(x), дд(х)дЕ(у)]} = дЕ(у) - (3.217) хеХ Для А' = «почти Д» имеем Ив (У) = sup{min[Jui/2(x), дд(х)дЕ(у)]} = дЕ(у) (3-218) ХеХ В случае, когда Д’ = «не Д», получаем №(y) = sup{min[1-Ai/l(x), дд(х)дв(У)]}= (3-219) ХеХ 1+Дб(У) Проверим теперь, каким отношениям, определенным в таблице 3.3, соответствуют результаты нечеткого вывода, представленные функ- циями принадлежности (3.216) - (3.219). Оказывается, что выполняются отношения 1, 2Ь и ЗЬ.
3.9. Нечеткое управление Пример 3.31 Повторим теперь пример 3.30, заменив правило Ларсена (3.202) на правило Шарпа (3.207). Из определения этого правила очевидным об- разом следуют четыре равенства: 1) Если А' = А, то Де'(У) = А'е(У) (3.220) 2) Если А' = «очень А», то АВ'М= Ав(У) (3.221) 3) Если А'= «почти А», то де'(у) = А<Е2(У) (3.222) 4) Если А' - «не А», то ДВ-(У)=1. (3.223) В этом случае выполняются отношения 1, 2а, За и 4а, приведен- ные в табл. 3.3. Замечание 3.4 Примеры 3.30 и 3.31 можно повторить с применением других пра- вил нечеткой импликации. При этом окажется [10, 21, 30], что в каждом конкретном случае выполняется только небольшая часть отношений, пе- речисленных в табл. 3.3. Этот факт оказался стимулом для некоторых ав- торов (см., например, [23]) к поиску более «рафинированных» правил не- четкой импликации, чем правила (3.201) - (3.210). 3.9. Нечеткое управление Для многих приложений, связанных с управлением технологичес- кими процессами, необходимо построение модели рассматриваемого процесса. Знание модели позволяет подобрать соответствующий регуля- тор (модуль управления). Однако часто построение корректной модели представляет собой трудную проблему, требующую иногда введения различных упрощений. Применение теории нечетких множеств для уп- равления технологическими процессами не предполагает знания моде- лей этих процессов. Следует только сформулировать правила поведения в форме нечетких условных суждений типа IF ... THEN. На рис. 3.25 пред- ставлена структура системы кондиционирования^которая на основе из- меряемых значений температуры Х| и влажности х2 вырабатывает управ- ляющий сигнал у, соответствующий интенсивности охлаждения данного помещения. Читатель может самостоятельно предложить правила реализации алгоритма такого управления, например: IF температура высокая AND влажность большая THEN охлаждение интенсивно. На втором шаге сле- дует построить нечеткие множества (функции принадлежности) для не- точных суждений «высокая» температура, «большая» влажность и «ин- тенсивное» охлаждение. Следует подчеркнуть, что приложения нечетких множеств охваты- вают в настоящее время широкий спектр задач - от простых устройств
92 Глава 3. Нечеткие множества и нечеткий вывод Рис. 3.25. Блочная структура системы кондиционирования. бытового назначения (стиральные машины, холодильники, пылесосы) до более серьезных систем, например, управляющих вентиляцией под- земных туннелей либо обеспечивающих производство ... известного крепкого японского алкогольного напитка саке [12]. Различные аспекты, связанные с теорией проектирования, свойствами и приложениями модулей нечеткого управления, можно найти в многочисленных монографиях (например, [3, 6, 7, 11, 13, 14, 17, 21, 22, 25, 26, 32, 33]). 3.9.1. Классический модуль нечеткого управления На рис. 3.26 представлена типовая структура модуля нечеткого управления. Он состоит из следующих компонентов: базы правил, блока фуззификации (fuzzification1), блока выработки решения, блока дефуззи- фикации 3.9.1.1. База правил База правил, иногда называемая лингвистической моделью, пред- ставляет собой множество нечетких правил R,k), к = 1.N, вида R(k) :IF(x1 это Ak AND х2 это A*- AND х„ это Ак) ТНЕЦу-! это AND у2 это В|... AND ym это Bk ), (3.224) где N - количество нечетких правил. Ak - нечеткие множества 1 Fuzzification - делать нечетким. Согласно правилам транскрипции англоязычных терминов должен применяться термин «фазификация», однако он уже задействован в совершенно ином контексте в теории радиолокации. - Прим, пврев.
3.9. Нечеткое управление 93 Рис. 3.26. Модуль нечеткого управления AACXicR,/=1,...,n, (3.225) в/' - нечеткие множества BAcY/CR,/ = 1, ., т, (3.226) x-i, х2, .... хг - входные переменные лингвистической модели, причем (x1f х2..Хп)7 = х е Х-! X Х2 X ... X Хл . (3.227) УъУ2....Ут - входные переменные лингвистической модели, причем (У1, Уг. Ут)Т= У е Y! X Y2X ... X Ym (3.228) Символами X/, i = 1,.... п, и Y;-, j = 1.т обозначаются соответст- венно пространства входных и выходных переменных. Для дальнейших рассуждений примем, что конкретные правила rOT, /< = 1, /у связаны между собой логическим оператором «ИЛИ». Кроме того, допустим, что выходы уъ у2,.... ут взаимно независимы. По- этому без утраты общности будем использовать нечеткие правила со ска- лярным выходом в форме R(k): IF(x-| это А% AND х2 это А2... AND хл это Ак) THEN(y это Вк), (3.229) где Bf сУусВик= 1,.... N. Заметим, что каждое правило вида (3.229) состоит из части IF, на- зываемой посылкой (antecedent), и части THEN, называемой следстви- ем (consequent). Посылка правила содержит набор условий, тогда как следствие содержит вывод. Переменные х = (х-|, х2.хл)г и у могут при- нимать как лингвистические (например, «малый», «средний», «боль- шой»), так и числовые значения. Если ввести обозначения X = X! х Х2 х ... х Хл , (3.230)
94 Глава 3. Нечеткие множества и нечеткий вывод Ak - Ak xAk х...хАк (3.231) то правило (3.229) можно представить в виде нечеткой импликации RW : Ak Bk, k = 1, ..., N . (3.232) Обратим внимание, что правило Rw также можно интерпретиро- вать как нечеткое отношение, определенное на множестве X х Y, т.е. с X х Y - это нечеткое множество с функцией принадлежности Др(ю (*. У)= ГА^вк (х- У) (3.233) При проектировании модулей нечеткого управления следует оце- нивать достаточность количества нечетких правил, их непротиворечи- вость и наличие корреляции между отдельными правилами. Эти пробле- мы детально обсуждаются в работах [5, 7, 26]. 3.9.1.2. Блок фуззификации Система управления с нечеткой логикой оперирует нечеткими мно- жествами. Поэтому конкретное значение х= (х^ х2..х„)г е X входного сигнала модуля нечеткого управления подлежит операции фуззифика- ции, в результате которой ему будет сопоставлено нечеткое множество Д'с X = Х1 х Х2 х ... х Хл. В задачах управления чаще всего применяется операция фуззификации типа синглетон (singleton): {1, если х = х , О, если х*х (3-234> Нечеткое множество А' подается на вход блока выработки реше- ния. Если входной сигнал поступает зашумленным, то нечеткое множест- во А' можно определить функцией принадлежности где 0. В этом случае операция фуззификации имеет тип non-singleton. 3.9.1.3. Блок выработки решения Допустим, что на вход блока выработки решения подано нечеткое множество Д ’ с X = Х1 х Х2 х ... х X/,. На выходе этого блока также появится соответствующее нечеткое множество. Рассмотрим два случая, которым бу- дут соответствовать различные методы дефуззификации (п. 3.9.1.4). Случай 1 На выходе блока выработки решения в соответствии с обобщен- ным нечетким правилом modus ponens получаем N нечетких множеств Вк с Y.
3.9. Нечеткое управление 95 Условие Импликация х = (хр х2,..., хп)Т это А' А' = А' х А'2х ... х Кп R® -.Ak->Bk,k = 1, ...,N Ак = А^хА^х... хАк Вывод у это В, k = 1,.... N Нечеткое множество Вк определяется комбинацией нечеткого множества А'и отношения R'k\ т.е. Bk = А'<(Ак ->Вк),к-А, ... N. (3.237) При использовании определения 3.28 можно задать функцию при- надлежности нечеткого множества Вк в виде Дё‘ (У) = SUP [Да' (х) * Дд*_>в* (х.У)] (3.238) ХеХ Конкретная форма функции Рвк(у) зависит от применяемой Г-нормы (п. 3.6), определения нечеткой импликации (п. 3.8.3) и от способа определения декартова произведения нечетких множеств (опре- деление 3.14). Следует отметить, что если выполняется операция фуззи- фикации типа синглетон (3.234), то выражение (3.238) принимает вид Дё* W ~ У) (3.239) Пример 3.32 Если л = 2, Г-норма имеет тип min, нечеткая импликация опреде- ляется правилом типа min и декартово произведение нечетких множеств задано формулой (3.71), то выражение (3.238) принимает вид Дё* (у) = sup[min(;zz-(x), (х,у))] = = sup{min[^(x), тт(дд(<(х)дЕк(у))]} = = sup {тМд^), дд-(х2), р^хг), рвк(у)Ъ (3.240) х^еХ 1 2 Последнее равенство следует из того, что Дд*(х)= Дд*х^(х1-Хг)= Дд|(х2)] (3-241) и Дд-(х) = А/w, (Хъ><2) = ™п[Дд; (*1). 1% (*2)]. (3.242)
96 Глава 3. Нечеткие множества и нечеткий вывод Пример 3.33 Если п = 2, Т-норма имеет тип произведение, нечеткая имплика- ция определяется правилом типа произведение и декартово произведе- ние нечетких множеств задано формулой (3.72), то выражение (3.238) принимает вид Дё„(у) = 5ир{дЛ.(х) рЛ^е„(Х,у)} = 50р{дд»(х) - ДдЛ (X) - (у)} = = sup {дд;(х1)-дд.(х2)-Дл!<(*1)-Д/1*(*2) А'е'<(у)} (3.243) Пример 3.34 Если л = 2, Г-норма имеет тип min, нечеткая импликация опреде- ляется правилом типа произведение и декартово произведение нечетких множеств задано формулой (3.72), то получаем выражение Pg* (у) = sup{min[P/v(x), цА^вк (х,у)]} = = sup{min[juHx), Ддк(х)-деИу)]} = = sup {min[pz- (X!) - дд- (х2). (X! )д^ (х2 )дв„ (у)]} . (3.244) Случай 2 На выходе блока выработки решения получаем одно нечеткое множество В" с Упо обобщенному нечеткому правилу modus ponens, которое принимает вид Условие Импликация X = (хр х2,..., хп)Т это А' А' = А' х А'2х ... х А'п :А*->В* Ak - А*х А^х ... х Akn Вывод У это В' (3.245) При использовании комбинированного правила вывода получаем N В' = A-= А' о R, (3.246)
3.9. Нечеткое управление 97 где 9? = Qr^ . В силу определений 3.12 и 3.28 получаем fc=i де-(у) = 5ир[дд.(х)* max р (М(х,у)] . (3.247) ХеХ Заметим, что вывод по схеме (3.245) - это результат комби- нирования посылки А' и глобального правила (отношения) 91, которое представляет собой обобщение отдельных правил Rw, k = 1,..., п. Будем называть такой прием глобальным подходом к проблеме синтеза блока выработки решения. Допустим теперь, что выполняется равенство B’ = A'^Rik)=\jA'oR^ (3.248) к к Легко проверить [22], что равенство (2.248) соблюдается, если правила нечеткой импликации (п. 3.8.3) определены Г-нормой типа min или произведение. При использовании определений 3.12 и 3.28 получа- ем функцию принадлежности нечеткого множества В' в виде де. (у) = max дg, (у) , (3.249) причем функция принадлежности Рв* (У) задается выражением (3.238). В этом случае вывод по схеме (3.245) представляет собой резуль- тат локального комбинирования (3.238) посылки А' и правила FW, к=1,.... N с последующим агрегированием, которое определяется равен- ством (3.249). Будем называть такой прием локальным подходом к про- блеме синтеза блока выработки решения. Пример 3.35 Рассмотрим модуль нечеткого управления с базой правил R(1): IF(x1 это A] AND х2 это А2) THEN(y это В1), (3.250) R(1): IF(x, это A2 AND х2 это А2) THEN(y это В2) (3.251) На его вход подан сигнал х = (хЛ , х2 )Т- После выполнения фуз- зификации типа синглетон на входе блока выработки решения получаем нечеткие множества А\ и А 2, причем дА (х1) = 5(Х! - х<) , Ад- (х2) = 8(х2 - х2) (3.252) Обозначим выходной сигнал модуля нечеткого управления симво- лом у. Воспользуемся выражением (3.238), которое принимает вад
98 Глава 3. Нечеткие множества и нечеткий вывод (У) = suP[mi"(AM;x^(*i.*2). PR(M(Xi.x2,y))] (3.253) *1-х2 В качестве Т-нормы будем применять операцию minimum. Кроме того, допустим, что ДА'ха^(*1.х2) = minlp^xj, д^(х2)] = = min[5(x1lx1),5(x2-x2)] (3.254) В этом случае дё„(у) = sup[min(5(x1-x1),(5(x2-x2), ^(х^хг.у))] = Х1-Х2 = ДЯ(*)(*1.*2.У) (3.255) В качестве нечеткой импликации Др(м(Х1.^2.У) = Да*хА£-»В*(*1’*2.У) (3.256) можно применить одно из десяти правил, представленных в п. 3.8.3. При использовании правила типа minimum получаем Рл?хд*^в*(*1-*2.У) = min[PA*xz*(*i,*2)- РЕ-(У)]- С3-257) Кроме того, <*1-*2) = mi"[Да* (*1), дА* <*г)! • (3.258) В результате Дв* (У) = min{min[P^f (5q), д^ (х2)], д^ (у)} = = тйЦд^ (^), д^ (х2), дЕ* (у)] , (3.259) Дв- (У) = rnax{min[P(^), д^ (х2), д^ (у)]} . (3.260) На рис. 3.27 представлена графическая интерпретация нечеткого вывода. Пример 3.36 В этом примере мы повторим рассуждения, проведенные в приме- ре 3.35, сднако вместо нечеткой импликации (3.257) применим правило типа «произведение», т.е. AfxA£->Вк (*1 *2 • У ) = Да*х/^ (хъх2).^у). (3.261)
3.9. Нечеткое управление 99 Рис. 3.27. Иллюстрация к примеру 3.35. В результате использования правил (1) и (2) получаем нечеткое множество В' с функцией принадлежности рв.(у) = (y)min[Azzf (х,), (х2)]} (3.262) В этом случае ^в*(У) = ^в*(У) п11п[д/!)*(х1), pz*(x2)l (3.263) Графическая интерпретация нечеткого вывода представлена на рис. 3.28. Пример 3.37 Рассмотрим модуль нечеткого управления, описанный в примере 3.35, при условии, что входные сигналы (числовые) xi и хг подверга- ются операции фуззификации, в результате которой на входе блока вы- работки решения появляются нечеткие множества А\ и А‘г с функциями принадлежности и дд,(х2). Другими словами, мы отступаем от соотношений (3.252)1, ограничивающих класс множеств А\ и А'г нечетки- ми синглетонами. Другие принципы, сформулированные в примере 3.35, остаются в силе. В соответствии с выражением (3.238) получаем (У) = 8ир[дл(х)* Р/?(М(КУ)] = = sup min {т1П[дд; (x,), (x2)], (x^.y)}. (3.264)
100 Глава 3. Нечеткие множества и нечеткий вывод Рис. 3.28. Иллюстрация к примеру 3.36. Для упрощения последующих формул операцию min обозначим символом л. При этом Рв* (у) = SUP[/'A (*1)Л /'А (х2) Л д^ч (хъх2,у) = 5цр{дА] (ХЛ ) Л дд. (х2) Л [(д д(< (X-j ) Л (х2))Л цвк (у)]} = = {sup[^A] (%! ) Л дл. (х2) Л (дд(. (Xi ) Л дд* (х2))]} Л рв„ (у) = = {8ир[дЛ; (x-| ) /\ (х,)] Л sup[/(Z. (х2) Л дд* (х2)]} л дв„ (у) (3.265) В результате Дв« (у) = тах{(5ир[дЛ; (х,) л дА* (хл)] л л эир[д^ (х2 ) л д^ (Х2 )]) л дв* (у)} (3.266)
3.9. Нечеткое управление Графическая интерпретация нечеткого вывода представлена на рис. 3.29. Пример 3.38 В примере 3.37 мы предположили, что нечеткая импликация име- ет тип minimum, т.е. Д^хЛ^В* (*1-х2>У) = (^.*2)* рвк (У) Применим теперь импликацию типа «произведение» (*• х2. У) = ДА* *2) - Де* (У) Остальные условия такие же, как в примере 3.37. По аналогии с предыдущим примером получаем Дё* О')= max{(sup[jzA (х-i) л д А )] л Л SLJ р[/. л- (Х2) л р (х2)]) - рв« (у)} (3.267) Графическая интерпретация нечеткого вывода представлена на рис. 3.30. Пример 3.39 В примере 3.37 мы предположили, что Т-норма, декартово произ- ведение и нечеткая импликация определяются с помощью операции mi- Рис. 3.29. Иллюстрация к примеру 3.37.
102 Глава 3. Нечеткие множества и нечеткий вывод Рис. 3.30. Иллюстрация к примеру 3.38. nimum. Теперь заменим эту операцию на произведение. В соответствии с формулой (3.238) получаем Дё* № = SUP[^/r(*1.*2 )• ^д(м(Х1.*2-У)1 = *1.*2 = SUp["A, (*1)/'Л,(х2 ) )РВк (У)] = = 5ир[Дд (X! ) ГА, (X! )] 8ир[дЛ. (х2 ) (Х2 )] /-1^ (у) . (3.268) Функцию принадлежности нечеткого множества В' зададим согласно формулам (3.268) и (3.249). Графическая интерпретация нечет- кого вывода представлена на рис. 3.31. В таблице 3.5 сгруппированы способы определения операции фуз- зификации, Т-нормы, декартова произведения и нечеткой импликации из примеров 3.35 - 3.39. Пример 3.40 Ранее мы рассматривали правила вида (3.229). В этом примере два первых правила и представляют собой частные случаи выра- жения (3.229), тогда как правило R(3) содержит связку OR
3.9. Нечеткое управление 103 Рис. 3.31. Иллюстрация к примеру 3.39. Таблица 3.5. Способы определения операции фуззификации, Т-нормы, декартова произведения и нечеткой импликации из примеров 3.35 - 3.39 Пример Операция фуззификации Г-норма декартова произведения Определение нечеткой импликации Правило Рисунок 3.35 синглетон min min min 3.27 3.36 синглетон min min произ- ведение 3.28 3.37 не синглетон min min min 3.29 3.38 не синглетон min min произ- ведение 3.30 3.39 х-]- не синглетон х2- синглетон произ- ведение произ- ведение произ- ведение 3.31
104 Глава 3. Нечеткие множества и нечеткий вывод R(1) : IF (хл это a] AND х2 это а? ) THEN (у это BJ, R'2) : IF (хл это A? AND Xz ет0 д| > THEN это R{3) IF (хл это A3 OR х3 это А? ) THEN (у это В3). На рис. 3.32 показана графическая интерпретация нечеткого выво- да при условии, что Т-норма, декартово произведение и правило нечет- кой импликации имеют тип min. Обсуждаемая проблема решается и дру- гим способом. Для этого обратим внимание на то, что правило R.W можно представить в виде двух правил Rf3) и R(4): R™ : IF (хл это А3 ) THEN (у это В3), R(4>: IF (х3 это А3 ) THEN (у это Вз) Мы получили правила R!1\ R(z), R(3) и R(4), которые представ- ляют собой частные случаи выражения (3.229). Читатель с легкостью вы- Рис. 3.32. Иллюстрация к примеру 3.40.
3.9. Нечеткое управление 105 ведет аналитическую форму функции принадлежности множества В', ба- зируясь на результатах примера 3.37. 3.9.1.4. Блок дефуззификации На выходе блока выработки решения формируется либо N нечет- ких множеств Вк (случай 1, п. 3.9.1.3) с функциями принадлежности РВ*(У), k = 2. N< либо одно нечеткое множество В' (случай 2, п. 3.9.1.3) сфункцией принадлежности дв.(у). Встает задача отображения нечетких множеств Вк (либо нечеткого множества В') в единственное значение у е Y, которое представляет собой управляющее воздействие, подаваемое на вход объекта. Такое отображение называется дефуззифи- кацией (defuzzification), и реализуется оно в одноименном блоке. Если на выходе блока выработки решения формируется N нечет- ких множеств Вк, то значение у е Y можно рассчитать с помощью раз- личных методов. 1. Метод дефуззификации по среднему центру (center average defuzzification). Значение у рассчитывается по формуле ^в^ук^ук У=Ц------------- . (3-269) где ук -этоточка, в которой функция дв«(У) принимает максимальное значение, т.е. Дв« (Ук) = max двк (у) . (3.270) Точка ук называется центром (center) нечеткого множества Вк. На рис. 3.33 представлена идея этого метода для N-2. Обратим внимание, что значение у не зависит от формы и носителя функции при- надлежности рвк(у). 2. Метод дефуззификации по сумме центров (center of sums defuzzification). Значение у рассчитывается следующим образом: N Р£рв*(у№у У=Чг-------------- (3-271) f]>>B*(y)dy Y/<=1
106 Глава 3. Нечеткие множества и нечеткий вывод Рис. 3.33. Иллюстрация метода дефуззификации по среднему центру. Если выходное значение блока выработки решения представляет собой единственное нечеткое множество В’, то значение у можно опре- делить с применением следующих двух методов 3. Метод центра тяжести (center of gravity method, center of area method). Значение у рассчитывается как центр тяжести функции принад- лежности дБ.(у), те. fy^E'(y)dy Jy max дБ„(у) У=^-------------= ----------- (3.272) ]A'E'(y)dy ^тахд^Су) Y V при условии, что оба интеграла в приведенном выражении существуют. На рис. 3.34 иллюстрируется способ определения значения у по методу центра тяжести. 4. Метод максимума функции принадлежности. Значение у рас- считывается в соответствии с формулой ДВ'(У) = sup дБ- (у) (3.273) yeY при условии, что де. (у) - это унимодальная функция Этот метод не учитывает форму функции принадлежности, что иллюстрируется на рис. 3.35. 3.9.2. Метод нечеткого управления Такаги-Сугено В рассмотренном в п. 3.9.1. модуле нечеткого управления исполь- зовалась база правил R(k), к =1,2,..., N, в которых части IF и THEN име- ли нечеткий характер. Такаги и Сугено в работе [28] предложили другой алгоритм. Применяемые в нем правила нечетки только в части IF, тогда как в THEN имеются функциональные зависимости: R(1): IF(x.] это Aj AND х2 это А2... AND хп это А„)
3.9. Нечеткое управление 107 Рв-(У)- У Рис. 3.34. Иллюстрация метода центра тяжести. Рв(х) Рис. 3.35. Иллюстрация метода максимума функции принадлежности THENy1=f(1)(x1,x2,...,xn ), RW : IF(xn это A? AND х2 это А2 ... AND хп это А„ ) THEN yN = f(/V)(x1,x2,...,xn ). (3.274) Допустим, что на вход модуля нечеткого управления подается сиг- нал х = (х., х2,.... хп), который может интерпретироваться как вектор со- стояния объекта. Определим выходной сигнал у этого модуля. Для пра- вила R<1) рассчитываем ДА1(*1). .. г min{pAi (X,), д„1 (Х2) (хп)} wi = ( или (3.275)
108 Глава 3. Нечеткие множества и нечеткий вывод На следующем шаге рассчитываем Уч = f(1)(x1,x2,...,xn) Продолжаем расчеты для остальных правил f№, к-2, N. Для правила получаем ДдИ (Xi ), ДдК (х2). д^ (хп), Г т1п{дА„ ), д^ (х2д^ (х„)} иА= ] _ _или _ (3.276) [ ^(x-j), дли(х2)... д^(хп), yw =f(/V)(x1,x2,...,?n) Выходной сигнал модуля нечеткого управления Такаги-Сугено представляет собой нормализованную взвешенную сумму отдельных вы- ходов У1 ,yN , т.е. N ТУ У К У=Ц-------- (3-277) к=1 В линейном случае базу правил модуля можно записать в виде R(k):IFfx-j это Ai AND х2 это Д2... AND хп это А„) THEN yk=c^+cf’xl+... + c‘k’xn для к = 1,N. Пример 3.41 Рассмотрим модуль управленияТакаги-Сугено с двумя правилами R(1) : IF(x-| это большое AND х2 это среднее) THEN у-i = 2+7х1-Зх2 , R(2): IF(x-i это малое AND х2 это малое) THEN у2 = -2*1 + 5х2 Определим его выходной сигнал у для х^= 2 и х2- 3. С учетом гра- фиков на рис. 3.36 получаем
3.10. Проектирование базы нечетких правил на основе численных данных 109 Рис. 3.36. Иллюстрация к примеру 3.41 РА,(2) = 0.3, /^,(3) 0,7. дд2(2) = 0,75 . рА?(3)=0,2 Если принять, что значения иЛ (к - 1, 2) рассчитываются при помо- щи операции типа min, то имеем min(0,3; 0,7) = 0,3, min(0,75; 0,2) = 0,2. Кроме того, у1=6(гЗ) 7 , у2 = 72(2,3) = 11 . Если рассчитать значение у на выходе модуля нечеткого управле- ния по формуле (3.277), то получим у = <У1+2У.2Ь. = 8,6. w1 +w2 3.10. Проектирование базы нечетких правил на основе численных данных При решении большинства прикладных задач регулирования ин- формацию, необходимую для построения и реализации системы управ- ления, можно разделить на две части: численную (количественную), по- лучаемую с измерительных датчиков, и лингвистическую (качественную), поступающую от эксперта. Значительная часть нечетких систем регули- рования использует второй вид знаний, чаще всего представляемых в форме базы нечетких правил. В случае, когда возникает необходимость спроектировать нечет- кую систему, но в наличии имеются только численные данные, мы стал- киваемся с серьезными проблемами. Одним из путей их разрешения счи-
110 Глава 3. Нечеткие множества и нечеткий вывод таются так называемые нейро-нечеткие (fuzzy-neural) системы, пред- ставленные в главе 5. Они обладают многими достоинствами, однако сдерживающим моментом является длительность наполнения их знания- ми (построения базы правил) в процессе итеративного обучения. Далее излагается один из простейших, но в то же время весьма универсальный метод построения базы нечетких правил на основе численных данных [30, 31]. Достоинства этого метода заключаются в его необычайной про- стоте и очень высокой эффективности. Кроме того, он позволяет объеди- нять численную информацию, представленную в форме обучающих дан- ных, с лингвистической информацией, имеющей вид базы правил, за счет дополнения имеющейся базы правилами, созданными на основе числен- ных данных. 3.10.1. Построение нечетких правил Допустим для упрощения, что мы создаем базу правил для нечет- кой системы с двумя входами и одним выходом. Очевидно, что для этого необходимы обучающие данные в виде множества пар (x/i),x2(i),d(i)).i=1.2,.. (3.278) где Xi(i), x2(i) - сигналы, подаваемые на вход модуля нечеткого управле- ния, a d(i) - ожидаемое (эталонное) значение выходного сигнала. Задача заключается в формировании таких нечетких правил, чтобы сконструиро- ванный на их основе модуль управления при получении входных сигна- лов генерировал корректные (имеющие наименьшую погрешность) вы- ходные сигналы. Шаг 1. Разделение пространств входных и выходных сигна- лов на области. Представим, что нам известно минимальное и максимальное зна- чения каждого сигнала. По ним можно определить интервалы, в которых находятся допустимые значения. Например, для входного сигнала хА та- кой интервал обозначим [х^, х^]. Если значения хГи х/ неизвестны, то можно воспользоваться обучающими данными и выбрать из них соответ- ственно минимальное и максимальное значения х^ = minfo), х/ = maxfo). (3.279) Аналогично для сигнала х2 определим интервал [х2, х2 ], а для эталонного сигнала d - интервал [с/ , с/+]. Каждый определенный таким образом интервал разделим на (2N + 1) областей (отрезков), причем значение N для каждого сигнала подбира- ется индивидуально, а отрезки могут иметь одинаковую или различную длину. Отдельные области обозначим следующим образом: М/у (Малый N), .... М.] (Малый 1), S (Средний), D1 (Большой 1).D/y (Большой N) и для каждого из них определим одну функцию принадлежности. На рис. 3.37 представлен пример такого разделения, где область определения сигнала х^ разбита на пять подобластей (N = 2), сигнала х2 - на семь по- добластей (N - 3), тогда как область определения выходного сигнала у - на пять подобластей (N = 2).
3.10. Проектирование базы нечетких правил на основе численных данных 111 Рис. 3.37. Разделение пространств входных и выходных сигналов на области и соответствующие им функции принадлежности. Каждая функция принадлежности имеет треугольную форму; одна из вершин располагается в центре области и ей соответствует значение функции, равное 1. Две других вершины лежат в центрах соседних обла- стей, им соответствуют значения функции, равные 0. Очевидно, что такое разделение выбрано для примера. Можно предложить много других спо- собов разделения входного и выходного пространства на отдельные об- ласти и использовать другие формы функций принадлежности Шаг 2. Построение нечетких правил на основе обучающих данных. Вначале определим степени принадлежности обучающих данных (Xi(i), х2(/) и ф')) к каждой области, выделенной на шаге 1. Эти степени бу-
112 Глава 3. Нечеткие множества и нечеткий вывод дут выражаться значениями функций принадлежности соответствующих нечетких множеств для каждой группы данных. Например, для случая, показанного на рис. 3.37, степень принадлежности данного х^1) к облас- ти D1 составляет 0,8, к области D2 - 0,2, а к остальным областям - 0. Ана- логично для данного х2(2) степень принадлежности к области S составля- ет 1, а к остальным областям 0. Теперь сопоставим обучающие данные xi(0. хг(') и областям, в которых они имеют максимальные степени принадлежности. Заметим, что х^1) имеет наибольшую степень принад- лежности к области D1, а х2(2) - к области S. Окончательно для каждой пары обучающих данных можно записать одно правило, т.е. {х.!(1)[тах:0,8 в D^, х2(1)[тах:0,6 в М,]; cf(1)[max:0,9 в S]} => R(1): IF(x1 это D.] AND х2 это А/Ц) THEN у это S; => (х-|(2), х2(2); cf(2)) => {x1(2)[max:0,7 в S], x2(2)[max:1,0 в S]; cf(2)[max:0,7 в D-J} R(2): IFfX! это S AND х2 это S) THEN у это D-] . Шаг 3. Приписывание каждому правилу степени истинности. Как правило, в наличии имеется большое количество пар обучаю- щих данных, по каждой из них может быть сформулировано одно прави- ло, поэтому существует высокая вероятность того, что некоторые из этих правил окажутся противоречивыми. Это относится к правилам с одной и той же посылкой (условием), но с разными следствиями (выводами). Один из методов решения этой проблемы заключается в приписывании каждому правилу так называемой степени истинности с последующим выбором из противоречащих друг другу правил того, у которого эта сте- пень окажется наибольшей. Таким образом не только разрешается про- блема противоречивых правил, но и значительно уменьшается их общее количество. Для правила вида R: IF(x1 это Ai AND х2 это А2) THEN(y это В) (3.280) степень истинности, обозначаемая как SP(R), определяется как SP(R) = Гв(У) (3.281) Таким образом, первое правило (R(1)) из нашего примера имеет степень истинности SP(R(1)) = PD/xJ-PM/^J-psty) = = 0,8 х 0,6 х 0,9 = 0,432 , а второе правило - SP(R(2>) =ps(x1)-ps(x2)-pD](y) = = 0,7x1,0x0,7 = 0,49. (3.282) (3.283)
3.10. Проектирование базы нечетких правил на основе численных данных 113 Шаг 4. Создание базы нечетких правил. Способ построения базы нечетких правил представлен на рис. 3.38. Эта база представляется таблицей, которая заполняется нечеткими пра- вилами следующим образом: если правило имеет вид R(1): IF(Xi это D-, AND х2 это 1УЦ) THEN у это S, (3.284) то на пересечении строки Df (соот- ветствующей сигналу Xf) и столбца М1 (сигнал х2) вписываем название нечеткого множества, присутствую- щего в следствии, т.е. S (соответст- вующего выходному сигналу у). Ес- ли имеется несколько нечетких правил с одной и той же посылкой, то из них выбирается то, которое имеет наивысшую степень истин- ности. Шаг 5. Дефуззификация. Наша задача заключается в определении с помощью базы правил отображения f:(xb х2) -> у, где у - выходная величина нечет- кой системы. При определении ко- личественного значения управляю- щего воздействия У ДЛЯ данных Рис. 3.38. Форма базы нечетких правил. входных сигналов (х,, х2) необхо- димо выполнять операцию дефуз- зификации. Вначале для входных сигналов (х,. х2) с использованием опе- рации произведения объединим посылки (условия) R-го нечеткого правила. Таким образом определяется так называемая степень активно- сти А-го правила. Ее значение рассчитывается по формуле = р^(хЛ)р^(х2) (3.285) Например, для первого правила R(1) степень активности определя- ется выражением т(1)=№1(х1)дМ](х2) (3.286) Для расчета выходного значения у воспользуемся способом де- фуззификации по среднему центру (3.269) N ^TWy(X) У=^---------- (3-287) к=Л
114 Глава 3. Нечеткие множества и нечеткий вывод Рис. 3.39. Блок-схема построения базы правил на основе численных данных.
3.10. Проектирование базы нечетких правил на основе численных банных 115 Рассмотренный метод легко можно обобщить на случай нечеткой системы с любым числом входов и выходов. На рис. 3.39 представлен ал- горитм построения базы правил в воде блок-схемы, которая может слу- жить основой для подготовки соответствующей программной реализа- ции. 3.10.2. Задача парковки грузовика Парковка грузовика к рампе (платформе) представляет собой не- тривиальную проблему. Строго говоря, это задача нелинейного управле- ния, для которой неприменимы традиционные методы построения моду- ля выработки решения. Пример такого модуля, представленного в виде нейронной сети, был предложен Нгуеном и Видроу в работе [24], тогда как Конг и Коско в статье [18] представили стратегию нечеткого управле- ния. Проблема парковки грузовика. Грузовик и зона его «паркинга» по- казаны на рис. 3.40 (сравни с [24] и [18]). Пунктирной линией обозначена ось у. Рампа, к которой должен подъехать грузовик, помечена словом «док». Грузовик представлен вектором, направленным от задней части грузовика к передней. Положение грузовика точно определяется значени- ями трех переменных: х - координатой по горизонтальной оси, у - координатой по вертикальной оси, и углом ф, под которым грузовик (точ- нее, вектор его перемещения) находится относительно оси у; координаты (х, у) определяют центр задней части грузовика (паркование в док осуще- ствляется задним ходом). Грузовик движется задним ходом с постоянной скоростью (в зада- че допускается только такой вид перемещения). В качестве параметра управления выступает угол поворота колес грузовика 0. Задача формиро- вания управляющего воздействия заключается в генерации таких углов поворота передних колес грузовика, чтобы припарковать его задом к рам- пе. Рампа находится в точке с координатами х = 0 и у = 0. Область до- пустимых значений по оси х составляет от 150 до +150, а по оси у - от 0 до 300, что и определяет зону «паркинга». Угол ф может изменяться в пределах от -180° до +180°, при этом ф = 0 означает, что грузовик рас- положен параллельно оси у задней частью к оси х. В качестве входных сигналов модуля управления выступают ф е [-180°, +180°] и х е [-150, +150], а в качестве выходного сигнала ~ 0 е [-45°, +45°]. На выходе мо- дуля управления могут появляться значения в пределах от -180° до +180°, однако с учетом очевидных ограничений допустимый интервал со- кращен до [-45°, +45°] 1. Старт 2. Разделить пространства определения х2 и d на области. Со- здать соответствующие им функции принадлежности. 3. Создать таблицу BR для записи базы правил и таблицу Т степе- ни истинности правил; заполнить таблицу Т нулями. "Ц/Ц, /у = 0 4. /=1 5. Выбрать одну пару данных (х1(/), х^/) и ф)).
116 Глава 3. Нечеткие множества и нечеткий вывод Рис. 3.40. Грузовик и зона паркинга. 6. Определить степень принадлежности данных к областям (нечет- ких множеств) и создать соответствующее правило R : IF х1 это A-t AND х2 это А2 THEN у это В. 7. Определить степень истинности правила R по формуле SP(R)= Ма1(Х1)ад2(*2)Дб(У). 8. SP(R) > T[Ai. Ad? 9. Вписать правило Rb таблицу BR. BRI/Ц, A^ = Bv\Т[А|, /у = SP(R) 10.i = / + 1 11. Просмотрены все пары данных (/ > л)? 12. Стоп Задача модуля управления заключается в подборе такого угла поворота колес, который приведет приведет грузовик в точку парковки, расположенную в центре рампы, те. имеющую координаты хк = 0, ук = 0 и фк = О°- Для упрощения примем, что положение грузовика относительно оси у не рассматривается в качестве входного сигнала. Поэтому если гру- зовик попадет на ось у, а вектор его направления будет параллелен этой оси, то моделирование может быть завершено. Моделирование также прекращается в случае, когда грузовик выезжает за зону «паркинга». Генерация обучающей последовательности (х(/), Ф(1), ОД). Выпол- ним эту процедуру методом «проб и ошибок»: для каждого положения
3.10. Проектирование базы нечетких правил на основе численных данных 117 грузовика (данные х и ф) определяем управляющее воздействие (угол по- ворота колес грузовика 0) на основании собственных знаний о том, на- сколько следует повернуть колеса в такой ситуации. После нескольких попыток, как правило, удается выбрать комбинацию данных, соответству- ющую наиболее «гладкой» и удачной траектории движения. Для генерации обучающих данных использовались шестнадцать начальных положений грузовика: (хО, фО) = (-100, -90°), (-100, 0°), (-100, 90°). (-100, 180°), (-50, -90°), (-50, 0°), (-50, 90°). (-50, 180°), (50, -90°), (50, 0°), (50, 90°), (50, 180°), (100, -90°), (100, 0°), (100, 90°), (100,180°). Для моделирования необходимы уравнения, описывающие динамику пе- ремещения грузовика. Будем использовать следующую (приближенную) модель: х(Г + 1) = х(0 + sin[(0 + (0] - sin[(f)J cos[(0], y{t + 1) = y(t) - cos[(t) + (0] - sin[(OJ sin[(f)], (3.288) (3.289) - r2sin[0(O]l ф(1 +1) = ф(1) - arcsin --—— . L b J (3.290) где b - это длина грузовика. Для моделирования примем, что b = 20 м Следует отметить, что даже упрощенная модель динамики грузовика ока- зывается нелинейной. Данные готовились следующим образом: для на- чального положения грузовика угол поворота колес (управляющее воз- действие) выбирался исходя из собственного опыта. Очередное положение рассчитывалось с применением уравнений (3.288 - 3.290). Примерная последовательность позиций, занимаемых грузовиком, и со- ответствующие им значения управляющего сигнала приведены в таблице 3.1. Для простоты такую последовательность будем называть траектори- ей. Результаты моделирования. Для формирования нечетких правил управления в задаче парковки грузовика применялась пятишаговая про- цедура, описанная в п. 3.10.1. Были использованы шестнадцать сгенери- рованных последовательностей групп данных (х, ф; 0) и функции принад- лежности, представленные на рис. 3.41. Правила, сформированные на основе сгенерированных групп обучающих данных и соответствующих им степеней истинности, приведены в табл. 3.6. В нее включены только те правила, которые сформированы по данным из табл. 3.7. Распределение обучающих данных и окончательная структура сформированной по ним базы правил изображены на рис. 3.42. Можно заметить, что из-за отсутствия необходимых данных для некоторых диа- пазонов х и f правила не были созданы. Из этого следует, что шестнад- цать заданных траекторий не покрывают все возможные случаи. Тем не менее, далее будет показано, что сформированные правила оказывают- ся достаточными для корректного управления грузовиком. Результирующее моделирование парковки грузовика проводилось для трех начальных позиций: (хО, ф0) - (-100, -60°), (0, 180°) и (100, -120°). Траектории движения грузовика показаны на рис. 3.43.
118 Глава 3 Нечеткие множества и нечеткий вывод -45 0 45 е Рис. 3.41. Функции принадлежности для задачи парковки грузовика. а b с М3 -45,0 -45,0 -15,0 м2 -45,0-15,0 -7,5 М| -15,0 -7,5 0,0 S -7,5 0,0 7,5 D, 0,0 7,5 15,0 D2 7,5 15,0 45,0 D, 15.0 45,0 45,0 Процесс формирования правил в соответствии с предложенным алгоритмом в значительной степени зависит от размещения функций принадлежности нечетких множеств. При проведении имитационных экс- периментов рассматривались различные варианты этих функций, и каж- дый раз получалась другая база правил с другим качеством управления. Подбор наилучшего размещения функций принадлежности представляет собой самостоятельную проблему, которая в настоящей работе не рас- сматривается. 3.10.3. Примечание В качестве исходной информации в представленной схеме обуче- ния выступают пары обучающих данных, а конечный результат представ- ляет собой отображение входного пространства данных в выходное. Из- ложенный метод обладает как способностью «обучать» соответствующее отображение по имеющимся примерам, так и свойством обобщения. Это означает, что если на вход такой нечеткой системы будут поданы новые сигналы (не присутствовавшие в обучающей выборке), то сформирован- ное отображение будет генерировать удовлетворительные выходные сиг-
3.10. Проектирование базы нечетких правил на основе численных данных 119 Таблица 3.6. Траектория движения грузовика, стартовавшего из точки (>b.W = H00,180°) i X <н°] 6 Г1 0 -100,00 180,00 45,00 1 -98,52 155,67 34,02 2 -92,08 133,22 28,56 3 - 82,05 114,04 27,93 4 - 70,21 95,24 23,05 5 - 57,37 79,54 13,74 6 -44,23 70,01 13,18 7 -31,78 60,86 14,35 8 - 20,47 50,92 23,09 9 -11,52 35,18 14,35 10 -4,59 25,01 15,71 11 0,09 14,14 14,37 12 2,41 4,19 10,58 13 2,66 -3,17 0,77 14 1,83 -3,71 -0,91 15 0,99 -3,07 -1,53 16 0,35 -2,00 -1,45 17 -0,03 -0,98 -1,07 налы. По этой причине рассматриваемый метод отождествляется с очень универсальной нечеткой системой без модели со способностью к обу- чению (model-free trainable fuzzy system), которая может применяться для широкого спектра задач управления. Термин без модели (model-free) означает, что для решения задачи не нужна математическая модель про- цесса управления, а определение со способностью к обучению (train- able) - что система может накапливать знания по примерам. О достоин- ствах метода свидетельствует то, что: 1) это универсальный метод создания базы нечетких правил на ос- нове численных данных; его реализация может трактоваться как первый
120 Глава 3. Нечеткие множества и нечеткий вывод Таблица 3.7. Нечеткие правила, сгенерированные по обучающим данным из табл. 3.1, и степени истинности этих правил i IF THEN 0ЭТО SP хэто фэто 0 М2 М3 D3 0,19 1 М2 D3 D3 0,23 2 М2 D3 D2 0,24 3 М2 D3 D2 0,11 4 М1 D2 D2 0,21 5 М1 D2 D2 0,37 6 М1 D2 D2 0,39 7 М1 D2 D2 0,46 8 М1 D1 D2 0,32 9 S D1 D2 0,54 10 S D1 D2 0,69 11 S D1 D2 0,43 12 S S D1 0,39 13 S S S 0,64 14 S S S 0,62 15 S S S 0,61 16 S S S 0,69 17 S S S 0,80 этап построения модуля нечеткого управления в случае, когда вместо ба- зы правил имеются только численные данные; 2) это простая процедура построения базы правил, благодаря ко- торой не требуется длительное итеративное обучение и, следовательно, на создание базы правил требуется значительно меньше времени по сравнению, например, с нейро-нечеткой (neuro-fuzzy) системой; 3) существует широкая свобода подбора функций принадлежнос- ти, что обеспечивает достаточную гибкость при проектировании систем для различных приложений.
3.10. Проектирование базы нечетких правил на основе численных данных 121 180 -180 I . » __________ , -150 х 150 Рис. 3.42. Распределение обучающих данных и результирующая форма сгенериро- ванной на их основе базы правил, для задачи парковки грузовика. Рис. 3.43. Траектории движения грузовика, управляемого предложенной нечеткой системой.
122 Глава 3. Нечеткие множества и нечеткий вывод Список литературы [I] Bellman R. Е„ Giertz М., On the analytical formalism of fuzzy sets, Information Siences, 1975, vol. 5, s. 149-156. [2] BezdekJ. C„ Pal S. K., (red.), Fuzzy Models for Pattern Recognition, IEEE, New York 1992 [3] Brown M., Harris C., Neurofuzzy Adaptive Modelling and Control. Prentice Hall, New York 1994. [4] Cox E., The Fuzzy Systems Handbook, Academic Press, London 1994 [5] Czogala E., Pedrycz W., Elementy i metody teoni zbiorow rozmytych, PWN, Warszawa 1985. [6] De Silva C. IV., Inteligent Control: Fuzzy Logic Applications, CRC Press, Boca Raton, 1995 [7] Driankov D., Hellendoorn H, Reinfrank M., An Introduction to Fuzzy Con- trol, Springer-Verlag, Berlin 1993. [8] Dubois D„ Prade H., Operations on fuzzy numbers, International Journal System Science, 1978, vol. 9, s. 613-626. [9] Dubois D„ Prade H, Fuzzy Sets and Systems: Theory and Applications, Academic Press, San Diego 1980. [10] Fukami S, Mizumoto M., Tanaka K., Some considerations of fuzzy condi- tional inference, Fuzzy Sets and Systems, 1980, vol. 4, s. 243-273. [II] Harris C. J., Moore C. G., Brown M., Intelligent Control: Aspects of fuzzy logic and neural nets, World Scientific, Singapore 1993. [12] Hirota K, Ed., Industrial Applications of Fuzzy Technology, Springer, 1993. [13] Jager R., Fuzzy Logic in Control, Thesis Technische Universiteit Delft, Delft 1995. [14] Jamshidi M, VadieeN., Ross T. J., (red.), Fuzzy Logic and Control, Prentice Hall, Englewood 1993. [15] KacprzykJ., Zbiory rozmyte w analizie systemowej, PWN, Warszawa 1986 [16] Kiir G. J., Folger T. A., Fuzzy Sets, Uncertainty and Information. Prentice Hall, Englewood Cliffs 1988. [17] Khiska J., Sterowanie z logikq rozmytq, Rzeszow: Zeszyty Naukowe Politechniki Rzeszowskiej, 1992, nr 104, Elektrotechnika, z. 12. [18] Kong S. G., Kosko B., Comparison of Fuzzy and Neural Truck Backer Upper Control Systems, Proc. IJCNN—90, June 1990, vol. 3, s. 349-358. [19] Kosko B., Neural Networks and Fuzzy Systems, Prentice Hall, Englewood Cliffs 1992. [20] Kruse R, Gebhardt J., Klawonn R, Foundations of Fuzzy Systems, John Wiley, Chichester 1994.
Список литературы 123 [21] Lee С. С., Fuzzy Logic in Control Systems: Fuzzy Logic Controller — Pari I, IEEE Transactions on Systems, Man and Cybernetics, 1990, vol. 20. nr 2. s. 404-418 [22] Lee С. C., Fuzzy Logic in Control Systems: Fuzzy Logic Controller — part II, IEEE Transactions on Systems, Man and Cybernetics, 1990, vol. 20, nr 2, s. 419-435 [23] Mizumoto M, Fukami S., Tanaka K., Some Methods of Fuzzy Reasoning, w: Advances in Fuzzy Set Theory and Applications, Gupta M. M., Ragade R. K., Yager R. R. (red.), North-Holland 1979 [24] Nguyen D„ Widrow B., The Truck Backer-Upper: An Example of Self-Learning in Neural Network, IEEE Contr. Syst. Mag.. 1990, vol. 10, nr 3, s. 18-23. [25] Nie J., Linkens D., Fuzzy-Neural Control, Prentice Hall, New York 1995. [26] Pedrycz W. Fuzzy Control and Fuzzy Systems, New York, John Wiley 1993. [27] Slupecki J., Halkowska K„ Pirog-Rzepecka K., Logika i teoria mnogosci, PWN, Warszawa 1994. [28] Takagi T, Sugeno M., Fuzzy Identification of Systems and Its Applications to Modeling and Control, IEEE Transactions on Systems, Man and Cybernetics, 1985, vol. 15, s. 116-132. [29] Terano T, Asai K., Sugeno M, Fuzzy Systems Theory and its Applications, Academic Press, London 1992. [30] Wang L. X Mendel J. M., Generating Fuzzy Rules by Learning from Examples, IEEE Transactions on Systems, Man, and Cybernetics, November/December 1992, vol. 22, nr 6, s. 1414-1427. [31] Wang L. X, Adaptive Fuzzy Systems and Control - Design and Stability Analysis, Prentice Hall, Englewood Clifffs 1994. [32] Yager R. R, Filev D. P., Podstawy modelowania i sterowania rozmytego, WNT, Warszawa 1995. [33] Yan J., Ryan M., Power J., Using Fuzzy Logic, Prentice Hall, London 1994. [34] Zadeh L. A.. Fuzzy Sets, Information and Control, 1965, vol. 8, s. 338-353. [35] Zimmermann H. J., Fuzzy Set Theory, Kluwer Academic Publishers, Boston/ZDordrecht/London 1994.
ГЛА ВА4 ГЕНЕТИЧЕСКИЕ АЛГОРИТМЫ 4.1. Введение Нейронные сети были созданы в результате наблюдения за естест- венными процессами, происходящими в нервной системе живых су- ществ, и попыток воспроизведения этих процессов. Термин нейрон, обозначающий основной исполнительный элемент искусственных нейронных сетей, был непосредственно заимствован из теории при- родных нервных систем. Аналогично, генетические алгоритмы возникли в результате на- блюдения и попыток копирования естественных процессов, происхо- дящих в мире живых организмов, в частности, эволюции и связанной с ней селекции (естественного отбора) популяций живых существ. Ко- нечно, при подобном сопоставлении нейронных сетей и генетических алгоритмов следует обращать внимание на принципиально различ- ную длительность протекания упоминаемых естественных процес- сов, т.е. на чрезвычайно быструю обработку информации в нервной системе и очень медленный процесс естественной эволюции. Однако при компьютерном моделировании эти различия оказываются несу- щественными. Идею генетических алгоритмов высказал Дж. Холланд [21] в конце шестидесятых - начале семидесятых годов XX века. Он заин- тересовался свойствами процессов естественной эволюции (в том числе фактом, что эволюционируют хромосомы, а не сами живые су- щества). Холланд был уверен в возможности составить и реализо- вать в виде компьютерной программы алгоритм, который будет ре- шать сложные задачи так, как это делает природа - путем эволюции. Поэтому он начал трудиться над алгоритмами, оперировавшими по- следовательностями двоичных цифр (единиц и нулей), получившими название хромосом. Эти алгоритмы имитировали эволюционные про- цессы в поколениях таких хромосом. В них были реализованы меха- низмы селекции и репродукции, аналогичные применяемым при есте- ственной эволюции. Так же, как и в природе, генетические алгоритмы осуществляли поиск «хороших» хромосом без использования ка- кой-либо информации о характере решаемой задачи. Требовалась только некая оценка каждой хромосомы, отражающая ее приспособ- ленность. Механизм селекции заключается в выборе хромосом с на- ивысшей оценкой (т.е. наиболее приспособленных), которые репроду- цируют чаще, чем особи с более низкой оценкой (хуже приспособлен- ные). Репродукция означает создание новых хромосом в результате рекомбинации генов родительских хромосом. Рекомбинация - это процесс, в результате которого возникают новые комбинации генов. Для этого используются две операции: скрещивание, позволяющее
4.2. Гэнетические алгоритмы и традиционные методы оптимизации 125 создать две совершенно новые хромосомы потомков путем комбини- рования генетического материала пары родителей, а также мутация, которая может вызывать изменения в отдельных хромосомах. В генетических алгоритмах применяется ряд терминов, заимст- вованных из генетики, прежде всего гены и хромосомы, а также попу- ляция, особь, аллель, генотип, фенотип. Генетические алгоритмы применяются при разработке про- граммного обеспечения, в системах искусственного интеллекта, опти- мизации, искусственных нейронных сетях и в других отраслях знаний. Следует отметить, что с их помощью решаются задачи, для которых ранее использовались только нейронные сети. В этом случае генети- ческие алгоритмы выступают просто в роли независимого от нейрон- ных сетей альтернативного метода, предназначенного для решения той же самой задачи. Примером может служить задача коммивояже- ра [33], изначально решавшаяся при помощи сети Хопфилда [28]. Ге- нетические алгоритмы часто используются совместно с нейронными сетями. Они могут поддерживать нейронные сети или наоборот, либо оба метода взаимодействуют в рамках гибридной системы, предназ- наченной для решения конкретной задачи. Генетические алгоритмы также применяются совместно с нечеткими системами. 4.2. Генетические алгоритмы и традиционные методы оптимизации Генетический алгоритм представляет собой метод, отражаю- щий естественную эволюцию методов решения проблем, и в первую очередь задач оптимизации. Генетические алгоритмы - это процеду- ры поиска, основанные на механизмах естественного отбора и насле- дования. В них используется эволюционный принцип выживания наи- более приспособленных особей. Они отличаются от традиционных методов оптимизации несколькими базовыми элементами. В частно- сти, генетические алгоритмы: 1) обрабатывают не значения параметров самой задачи, а их закодированную форму; 2) осуществляют поиск решения исходя не из единственной точки, а из их некоторой популяции; 3) используют только целевую функцию, а не ее производные либо иную дополнительную информацию, 4) применяют вероятностные, а не детерминированные пра- вила выбора. Перечисленные четыре свойства, которые можно сформулиро- вать также как кодирование параметров, операции на популяциях, ис- пользование минимума информации о задаче и рандомизация опера- ций приводят в результате к устойчивости генетических алгоритмов и к их превосходству над другими широко применяемыми технологи- ями [15].
126 Глава 4. Гэнетические алгоритмы 4.3. Основные понятия генетических алгоритмов При описании генетических алгоритмов используются опреде- ления, заимствованные из генетики. Например, речь идет о популя- ции особей, а в качестве базовых понятий применяются ген, хромосо- ма, генотип, фенотип, аллель. Также используются соответствую- щие этим терминам определения из технического лексикона, в част- ности, цепь, двоичная последовательность, структура. Популяция - это конечное множество особей. Особи, входящие в популяцию, в генетических алгоритмах представляются хромосомами с закодированным в них множествами параметров задачи, т.е. решений, которые иначе называются точка- ми в пространстве поиска (search points). В некоторых работах осо- би называются организмами. Хромосомы (другие названия - цепочки или кодовые последо- вательности) - это упорядоченные последовательности генов. Ген (также называемый свойством, знаком или детектором) - это атомарный элемент генотипа, в частности, хромосомы. Генотип или структура - это набор хромосом данной особи. Следовательно, особями популяции могут быть генотипы либо еди- ничные хромосомы (в довольно распространенном случае, когда ге- нотип состоит из одной хромосомы). Фенотип - это набор значений, соответствующих данному ге- нотипу, т.е. декодированная структура или множество параметров задачи (решение, точка пространства поиска). Аллель - это значение конкретного гена, также определяемое как значение свойства или вариант свойства. Локус или позиция указывает место размещения данного гена в хромосоме (цепочке). Множество позиций генов - это локи. Очень важным понятием в генетических алгоритмах считается функция приспособленности (fitness function), иначе называемая функ- цией оценки. Она представляет меру приспособленности данной особи в популяции. Эта функция играет важнейшую роль, поскольку позволя- ет оценить степень приспособленности конкретных особей в популяции и выбрать из них наиболее приспособленные (т.е. имеющие наиболь- шие значения функции приспособленности) в соответствии с эволюци- онным принципом выживания «сильнейших» (лучше всего приспосо- бившихся). Функция приспособленности также получила свое название непосредственно из генетики. Она оказывает сильное влияние на функ- ционирование генетических алгоритмов и должна иметь точное и кор- ректное определение. В задачах оптимизации функция приспособлен- ности, как правило, оптимизируется (точнее говоря, максимизируется) и называется целевой функцией. В задачах минимизации целевая функ- ция преобразуется, и проблема сводится к максимизации. В теории уп- равления функция приспособленности может принимать вид функции погрешности, а в теории игр - стоимостной функции. На каждой ите- рации генетического алгоритма приспособленность каждой особи дан- ной популяции оценивается при помощи функции приспособленности,
4.3. Основные понятия генетических алгоритмов 127 и на этой основе создается следующая популяция особей, составляю- щих множество потенциальных решений проблемы, например, задачи оптимизации. Очередная популяция в генетическом алгоритме называется поколением, а к вновь создаваемой популяции особей применяется термин «новое поколение» или «поколение потомков». Пример 4.1 Рассмотрим функцию 7(х) = 2х2+1 (4.1) и допустим, что х принимает целые значения из интервала от 0 до 15. Задача оптимизации этой функции заключается в перемещении по пространству, состоящему из 16 точек со значениями 0, 1.15 для обнаружения той точки, в которой функция принимает максимальное (или минимальное) значение. В этом случае в качестве параметра задачи выступает пере- менная х. Множество {0,1,..., 15} составляет пространство поиска и одновременно - множество потенциальных решений задачи. Каждое из 16 чисел, принадлежащих к этому множеству, называется точкой пространства поиска, решением, значением параметра, феноти- пом. Следует отметить, что решение, оптимизирующее функцию, на- зывается наилучшим или оптимальным решением. Значения пара- метра х от 0 до 15 можно закодировать следующим образом: 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Это широко известный способ двоичного кодирования, связанный с записью десятичных цифр в двоичной системе. Представленные ко- довые последовательности также называются цепями или хромосо- мами. В рассматриваемом примере они выступают и в роли геноти- пов. Каждая из хромосом состоит из 4 генов (иначе можно сказать, что двоичные последовательности состоят из 4 битов). Значение гена в конкретной позиции называется аллелью, принимающей в данном случае значения 0 или 1. Популяция состоит из особей, выбираемых среди этих 16 хромосом. Примером популяции с численностью, рав- ной 6, может быть, например, множество хромосом {0010, 0101, 0111, 1001, 1100, 1110}, представляющих собой закодированную форму следующих фенотипов: {2, 5, 7, 9, 12,14}. Функция приспособленнос- ти в этом примере задается выражением (4.1). Приспособленность отдельных хромосом в популяции определяется значением этой функции для значений х, соответствующих этим хромосомам, т.е. для фенотипов, соответствующих определенным генотипам. Пример 4.2 Рассмотрим следующий пример постановки оптимизационной задачи. Для системы, изображенной на рис. 4.1, следует найти
128 Глава 4. Гэнетические алгоритмы minJ= p(yi, у2, u)dt о где кь к2 е [к^п, к^. В роли параметров этой задачи выступают к^ и к2. Пространст- во поиска должно содержать конечное количество точек, которые можно закодировать в виде хромосом. Параметры к^ и к2 дискретизи- рованы; множество их значений во всем диапазоне от минимального к^п до максимального ктах отображаются на соответствующие двоич- ные кодовые последовательности. При этом значению сопостав- лена кодовая последовательность, состоящая из одних нулей, а зна- чению - кодовая последовательность, состоящая из одних еди- ниц. Длина этих кодовых последовательностей зависит от значений кЛ и к2, а также от частоты дискретизации интервала [kmin, ктах]. Допустим, что к^п = -25, а ктах = 25 и для каждого из парамет- ров к^ и к2 применяются кодовые последовательности длиной 10. Пример популяции, состоящей из 10 особей, приведен в таблице 4.1. Первые 10 генов каждого генотипа соответствуют параметру къ а последние 10 генов - параметру к2. Таким образом, длина хромо- сом равна 20. Способ кодирования значений параметров fc, и к2 в виде хро- мосом будет подробно изложен в разд. 4.6. ------Система | .. --------------1 k*-K + V2 |<------ Рис. 4.1. Схема оптимизационной двухпараметрической системы. Таблица 4.1. Популяция особей (для примера 4.2) Генотипы Фенотипы 00000000000000000000 -25,00 -25,00 10100010010011001011 6,72 -15,08 01101000101111010010 -4,57 22,8. 11011010011110000111 17,67 19,13 00011011000000010001 19,72 -24,17 00110000101011111010 -15,52 12,24 11111111111111111111 25,00 25,00
4.3. Основные понятия генетических алгоритмов 129 Пример 4.3 Рассмотрим нейронную сеть, представленную на рис. 4.2, для которой необходимо подобрать оптимальные веса iv11, w12, w21, w22, w31, w32 и wio, ^го и w30, минимизирующих значение погрешности Q = |f(^-y,)2 Это сеть, реализующая систему XOR, поэтому значения и1; и u2ii, а также d, для / = 1.4 принимают значения, приведенные в табл. 2.1. В качестве параметров рассматриваемой задачи выступа- ют перечисленные выше веса, т.е. задача имеет 9 параметров. В дан- ном примере набор из этих 9 параметров определяет точку простран- ства поиска и, следовательно, представляет собой возможное реше- ние. Допустим, что веса могут принимать значения из интервала [-10, 10]. Тогда каждая хромосома будет комбинацией из 9 двоичных по- следовательностей, кодирующих конкретные веса. Это, очевидно, и есть генотипы. Соответствующие им фенотипы представлены зна- чениями отдельных весов, т.е. множесвами соответствующих дейст- вительных чисел из интервала [-10, 10] В приведенных примерах (4.1 - 4.3) хромосомы и генотипы обозначают одно и то же - фенотипы особей популяции, закодиро- ванные в форме упорядоченных последовательностей генов со зна- чениями (аллелями), равными 0 или 1. В генетике генотип задает генетическую структуру особи, кото- рая может включать более одной хромосомы. Например, клетки чело- века содержат 46 хромосом. В генетических алгоритмах генотип опре- деляется аналогичным образом, однако чаще всего он состоит всего из одной хромосомы, которая и выступает в роли особи популяции. Длина хромосом зависит от условий задачи (см. разд. 4.6). Следует заметить, что в естественных организмах хромосома может Рис. 4.2. Нейронная сеть, реализующая операцию XOR
130 Глава 4. Гэнетические алгоритмы состоять из нескольких сотен и даже тысяч генов У человека имеет- ся около 100 000 генов, хотя их точное количество до сих пор неизве- стно. 4.4. Классический генетический алгоритм Основной (классический) генетический алгоритм (также назы- ваемый элементарным или простым генетическим алгоритмом) со- стоит из следующих шагов: 1) инициализация, или выбор исходной популяции хромосом; 2) оценка приспособленности хромосом в популяции; 3) проверка условия остановки алгоритма; 4) селекция хромосом; 5) применение генетических операторов; 6) формирование новой популяции; 7) выбор «наилучшей» хромосомы. Блок-схема основного генетического алгоритма изображена на рис. 4.3. Рассмотрим конкретные этапы этого алгоритма более по- дробно с использованием дополнительных подробностей, представ- ленных на рис. 4.4. Инициализация, т.е. формирование исходной популяции, за- ключается в случайном выборе заданного количества хромосом (осо- бей), представляемых двоичными последовательностями фиксиро- ванной длины. Оценивание приспособленности хромосом в популяции сос- тоит в расчете функции приспособленности для каждой хромосомы этой популяции Чем больше значение этой функции, тем выше «ка- чество» хромосомы. Форма функции приспособленности зависит от характера решаемой задачи. Предполагается, что функция приспо- собленности всегда принимает неотрицательные значения и, кроме того, что для решения оптимизационной задачи требуется максими- зировать эту функцию. Если исходная форма функции приспособлен- ности не удовлетворяет этим условиям, то выполняется соответству- ющее преобразование (например, задачу минимизации функции мож- но легко свести к задаче максимизации). Проверка условия остановки алгоритма. Определение усло- вия остановки генетического алгоритма зависит от его конкретного применения. В оптимизационных задачах, если известно максималь- ное (или минимальное) значение функции приспособленности, то ос- тановка алгоритма может произойти после достижения ожидаемого оптимального значения, возможно - с заданной точностью. Останов- ка алгоритма также может произойти в случае, когда его выполнение не приводит к улучшению уже достигнутого значения. Алгоритм может быть остановлен по истечении определенного времени выполнения либо после выполнения заданного количества итераций. Если усло- вие остановки выполнено, то производится переход к завершающему этапу выбора «наилучшей» хромосомы. В противном случае на сле- дующем шаге выполняется селекция.
4.4. Классический генетический алгоритм 131 Рис. 4.3. Блок-схема генетического алгоритма Селекция хромосом заключается в выборе (по расчитанным на втором этапе значениям функции приспособленности) тех хромо- сом, которые будут участвовать в создании потомков для следующей популяции, т.е. для очередного поколения. Такой выбор производится согласно принципу естественного отбора, по которому наибольшие шансы на участие в создании новых особей имеют хромосомы с наи- большими значениями функции приспособленности. Существуют раз- личные методы селекции. Наиболее популярным считается так назы- ваемый метод рулетки (roulette wheel selection), который свое назва- ние получил по аналогии с известной азартной игрой. Каждой хромо- соме может быть сопоставлен сектор колеса рулетки, величина кото- рого устанавливается пропорциональной значению функции приспо- собленности данной хромосомы. Поэтому чем больше значение функции приспособленности, тем больше сектор на колесе рулетки. Все колесо рулетки соответствует сумме значений функции приспо-
132 Глава 4. Гвнетические алгоритмы Рис. 4.4. Схема выполнения генетического алгоритма.
4.4. Классический генетический алгоритм 133 собленности всех хромосом рассматриваемой популяции. Каждой хромосоме, обозначаемой ch(- для / = 1, 2 N (где N обозначает чис- ленность популяции) соответствует сектор колеса v(ch,-), выраженный в процентах согласно формуле v(ch,) = Ps(chj) 100% , (4.2) где Ps(ch,)- J~h,) (4.3) i=1 причем F(ch,) - значение функции приспособленности хромосомы ch,-, a ps(ch() - вероятность селекции хромосомы ch,. Селекция хромосо- мы может быть представлена как результат поворота колеса рулетки, поскольку «выигравшая» (т.е. выбранная) хромосома относится к вы- павшему сектору этого колеса. Очевидно, что чем больше сектор, тем больше вероятность «победы» соответствующей хромосомы. Поэто- му вероятность выбора данной хромосомы оказывается пропорцио- нальной значению ее функции приспособленности. Если всю окруж- ность колеса рулетки представить в виде цифрового интервала [0, 100], то выбор хромосомы можно отождествить с выбором числа из интервала [а, Ь], где а и b обозначают соответственно начало и окон- чание фрагмента окружности, соответствующего этому сектору коле- са; очевидно, что 0<а<Ь<100. В этом случае выбор с помощью ко- леса рулетки сводится к выбору числа из интервала [0, 100], которое соответствует конкретной точке на окружности колеса. Другие методы селекции будут рассматриваться в п. 4.8.1. В результате процесса селекции создается родительская попу- ляция, также называемая родительским пулом {mating pool) с чис- ленностью N, равной численности текущей популяции. Применение генетических операторов к хромосомам, отоб- ранным с помощью селекции, приводит к формированию новой попу- ляции потомков от созданной на предыдущем шаге родительской по- пуляции. В классическом генетическом алгоритме применяются два ос- новных генетических оператора: оператор скрещивания (crossover) и оператор мутации (mutation). Однако следует отметить, что опера- тор мутации играет явно второстепенную роль по сравнению с опера- тором скрещивания. Это означает, что скрещивание в классическом генетическом алгоритме производится практически всегда, тогда как мутация - достаточно редко. Вероятность скрещивания, как правило, достаточно велика (обычно 0,5 < рс < 1), тогда как вероятность мута- ции устанавливается весьма малой (чаще всего 0 <рт < 0,1). Это сле- дует из аналогии с миром живых организмов, где мутации происходят чрезвычайно редко В генетическом алгоритме мутация хромосом может выпол- няться на популяции родителей перед скрещиванием либо на популя- ции потомков, образованных в результате скрещивания.
134 Глава 4. Генетические алгоритмы Оператор скрещивания. На первом этапе скрещивания выби- раются пары хромосом из родительской популяции (родительского пула). Это временная популяция, состоящая из хромосом, отобран- ных в результате селекции и предназначенных для дальнейших пре- образований операторами скрещивания и мутации с целью формиро- вания новой популяции потомков. На данном этапе хромосомы из ро- дительской популяции объединяются в пары. Это производится слу- чайным способом в соответствии с вероятностью скрещивания рс. Да- лее для каждой пары отобранных таким образом родителей разыгры- вается позиция гена (локус) в хромосоме, определяющая так называ- емую точку скрещивания. Если хромосома каждого из родителей со- стоит из L генов, то очевидно, что точка скрещивания /к представляет собой натуральное число, меньшее L. Поэтому фиксация точки скре- щивания сводится к случайному выбору числа из интервала [1, L-1] В результате скрещивания пары родительских хромосом получается следующая пара потомков: 1) потомок, хромосома которого на позициях от 1 до /к состоит из генов первого родителя, а на позициях от lk + 1 до L - из генов вто- рого родителя; 2) потомок, хромосома которого на позициях от 1 до /к состоит из генов второго родителя, а на позициях от 1к + 1 рр L - из генов пер- вого родителя. Действие оператора скрещивания будет проиллюстрировано примерами 4.4 и 4.5 (п.п. 4.5 и 4.6). Оператор мутации с вероятностью рт изменяет значение гена в хромосоме на противоположное (т.е. с 0 на 1 или обратно). Напри- мер, если в хромосоме [100110101010] мутации подвергается ген на позиции 7, то его значение, равное 1, изменяется на 0. что приводит к образованию хромосомы [100110001010]. Как уже упоминалось вы- ше, вероятность мутации обычно очень мала, и именно от нее зави- сит, будет данный ген мутировать или нет. Вероятность рт мутации может эмулироваться, например, случайным выбором числа из ин- тервала [0, 1] для каждого гена и отбором для выполнения этой опе- рации тех генов, для которых разыгранное число оказывается мень- шим или равным значению рт. Формирование новой популяции. Хромосомы, полученные в результате применения генетических операторов к хромосомам вре- менной родительской популяции, включаются в состав новой популя- ции. Она становится так называемой текущей популяцией для данной итерации генетического алгоритма. На каждой очередной итерации рассчитываются значения функции приспособленности для всех хро- мосом этой популяции, после чего проверяется условие остановки алгоритма и либо фиксируется результат в виде хромосомы с наи- большим значением функции приспособленности, либо осуществля- ется переход к следующему шагу генетического алгоритма, т.е. к се- лекции В классическом генетическом алгоритме вся предшествую- щая популяция хромосом замещается новой популяцией потомков, имеющей ту же численность.
4.4. Классический генетический алгоритм 135 Выбор «наилучшей» хромосомы Если условие остановки алгоритма выполнено, то следует вывести результат работы, т.е. представить искомое решение задачи. Лучшим решением считается хромосома с наибольшим значением функции приспособленности В завершение следует признать, что генетические алгоритмы унаследовали свойства естественного эволюционного процесса, со- стоящие в генетических изменениях популяций организмов с течени- ем времени. Главный фактор эволюции - это естественный отбор (т.е. при- родная селекция), который приводит к тому, что среди генетически различающихся особей одной и той же популяции выживают и оста- пяют потомство только наиболее приспособленные к окружающей среде. В генетических алгоритмах также выделяется этап селекции, на котором из текущей популяции выбираются и включаются в роди- тельскую популяцию особи, имеющие наибольшие значения функции приспособленности. На следующем этапе, который иногда называет- ся эволюцией, применяются генетические операторы скрещивания и мутации, выполняющие рекомбинацию генов в хромосомах. Операция скрещивания заключается в обмене фрагментами цепочек между двумя родительскими хромосомами. Пары родителей для скрещивания выбираются из родительского пула случайным об- разом так, чтобы вероятность выбора конкретной хромосомы для скрещивания была равна вероятности рс. Например, если в качестве родителей случайным образом выбираются две хромосомы из роди- тельской популяции численностью N, wpc=2IN. Аналогично, если из родительской популяции численностью N выбирается 2z хромосом (z < NI2), которые образуют z пар родителей, то рс = 2zlN. Обратим внимание, что если все хромосомы текущей популяции объединены в пары до скрещивания, то рс = 1 - После операции скрещивания роди- тели в родительской популяции замещаются их потомками Операция мутации изменяет значения генов в хромосомах с за- данной вероятностью рт способом, представленным при описании соответствующего оператора. Это приводит к инвертированию значе- ний отобранных генов с 0 на 1 и обратно. Значение Рт, как правило, очень мало, поэтому мутации подвергается лишь небольшое количе- ство генов. Скрещивание - это ключевой оператор генетических алго- ритмов, определяющий их возможности и эффективность. Мутация играет более ограниченную роль. Она вводит в популяцию некоторое разнообразие и предупреждает потери, которые могли бы произойти вследствие исключения какого-нибудь значимого гена в результате скрещивания. Основной (классический) генетический алгоритм известен в ли- тературе [15] в качестве инструмента, в котором выделяются три ви- да операций: репродукции, скрещивания и мутации. Термины селек- ция и репродукция в данном контексте используются в качестве сино- нимов. При этом репродукция в данном случае связывается скорее с созданием копий хромосом родительского пула, тогда как более распространенное содержание этого понятия обозначает процесс
136 Глава 4. Гэнетические алгоритмы формирования новых особей, происходящих от конкретных родите- лей (см. разд. 4.1). Если мы принимаем такое толкование, то опера- торы скрещивания и мутации могут считаться операторами репродук- ции, а селекция - отбором особей (хромосом) для репродукции. 4.5. Иллюстрация выполнения классического генетиче- ского алгоритма Рассмотрим выполнение описанного в предыдущем разделе классического генетического алгоритма на как можно более простом примере [19]. Проследим последовательность выполнения его эта- пов, соответствующих блок-схеме на рис. 4.3. Пример 4.4 Рассмотрим сильно упрощенный и довольно искусственный пример, состоящий в нахождении хромосомы с максимальным коли- чеством единиц. Допустим, что хромосомы состоят из 12 генов, а по- пуляция насчитывает 8 хромосом. Понятно, что наилучшей будет хро- мосома, состоящая из 12 единиц. Посмотрим, как протекает процесс решения этой весьма тривиальной задачи с помощью генетического алгоритма. Содержательную интерпретацию поставленной таким об- разом задачи можно найти, в частности, в примере 4.29. Инициализация, или выбор исходной популяции хромо- сом. Необходимо случайным образом сгенерировать 8 двоичных по- следовательностей длиной 12 битов. Это можно достигнуть, напри- мер, подбрасыванием монеты (96 раз, при выпадении «орла» припи- сывается значение 1, а в случае «решки» - 0). Таким образом можно сформировать исходную популяцию ch5 = [010001100100] ch6 = [010011000101] ch7 = [101011011011] ch8 = [000010111100] ch., = [111001100101] ch2 = [001100111010] ch3 = [011101110011] ch4 = [001000101000] Оценка приспособленности хромосом в популяции. В рас- сматриваемом упрощенном примере решается задача нахождения такой хромосомы, которая содержит наибольшее количество единиц. Поэтому функция приспособленности определяет количество единиц в хромосоме. Обозначим функцию приспособленности символом F. Тогда ее значения для каждой хромосомы из исходной популяции бу- дут такие: F(ch1) = 7 F(ch2) = 6 F(ch3) - 8 F(ch4) = 3 F(ch5) = 4 F(ch6) = 5 F(ch7) = 8 F(ch8) = 5 Хромосомы ch3 и ch7 характеризуются наибольшими значения- ми функции принадлежности. В этой популяции они считаются наи- пучшими кандидатами на решение задачи. Если в соответствии с блок-схемой генетического алгоритма (рис. 4.3) условие остановки
4.5. Иллюстрация выполнения классического генетического алгоритма 137 алгоритма не выполняется, то на следующем шаге производится се- лекция хромосом из текущей популяции Селекция хромосом. Селекция производится методом рулет- ки. На основании формул (4.2) и (4.3) для каждой из 8 хромосом теку- щей популяции (в нашем случае - исходной популяции, для которой Л/ = 8) получаем секторы колеса рулетки, выраженные в процентах (рис. 4.5) Цс^) = 15,22 v(ch2) = 13,04 v(ch3) = 17,39 i/(ch4) = 6,52 v(ch5) = 8,70 v(ch6) = 10,87 v(ch7) = 17,39 v(di8) = 10,87 Розыгрыш с помощью колеса рулетки сводится к случайному выбору числа из интервала [0, 100], указывающего на соответствую- щий сектор на колесе, т.е. на конкретную хромосому. Допустим, что разыграны следующие 8 чисел: 79 44 9 74 44 86 48 23 Это означает выбор хромосом ch7 ch3 ch-j ch7 ch3 ch7 ch4 ch2 Как видно, хромосома ch7 была выбрана трижды, а хромосома ch3 - дважды. Заметим, что именно эти хромосомы имеют наиболь- шее значение функции приспособленности. Однако выбрана и хромо- сома ch4 с наименьшим значением функции приспособленности. Все выбранные таким образом хромосомы включаются в так называемый родительский пул. Рис. 4.5. Колесо рулетки для селекции в примере 4.4.
138 Глава 4. Гэнетические алгоритмы Применение генетических операторов. Допустим, что ни од- на из отобранных в процессе селекции хромосом не подвергается му- тации, и все они составляют популяцию хромосом, предназначенных для скрещивания. Это означает, что вероятность скрещивания рс = 1, а вероятность мутации рт = 0. Допустим, что из этих хромосом слу- чайным образом сформированы пары родителей ch2 и ch7 ch-t и ch7 ch3 и ch4 ch3 и ch7 Для первой пары случайным образом выбрана точка скре- щивания = 4, для второй Ik = 3, для третьей Ik = 11, для четвертой Ik = 5. При этом процесс скрещивания протекает так. как показано на рис. 4.6. В результате выполнения оператора скрещивания получают- ся 4 пары потомков. Если бы при случайном подборе пар хромосом для скрещива- ния были объединены, например, ch3 с ch3 и ch4 с ch7 вместо ch3 с ch4 и ch3 с ch7, а другие пары остались без изменения, то скрещивание ch3 с ch3 дало бы две такие же хромосомы независимо от разыгран- ной точки скрещивания. Это означало бы получение двух потомков, идентичных своим родителям. Заметим, что такая ситуация наиболее вероятна для хромосом с наибольшим значением функции приспо- Первая пара родителей: Первая пара потомков [001100111010] 1 [101011011011] | 4 = 4 скрещивание [001111011011] [101000111010] Вторая пара родителей: [111001100101] 1 [101011011011] J 4 = 3 Вторая пара потомков: скрещивание [111011011011] [101001100101] Третья пара родителей [011101110011] 1 [001000101000] ] 4 = 11 Третья пара потомков: скрещивание [011101110010] [001000101001] Четвертая пара родителей: [011101110011] 1 [101011011011] 1 ' Четвертая пара потомков: скрещивание [011101011011] “* [101011110011] Рис. 4.6. Процесс скрещивания хромосом в примере 4.4.
4.6. Кодирование параметров задачи в генетическом алгоритме 139 собленности, т.е именно такие хромосомы получают наибольшие шансы на переход в новую популяцию. Формирование новой популяции. После выполнения опера- ции скрещивания мы получаем (согласно рис. 4.6) следующую попу- ляцию потомков: Ch5 = [011101110010] Ch6 = [001000101001] Ch7 = [011101011011] Ch8 = [101011110011] = [001111011011] Ch2 = [101000111010] Ch3 = [111011011011] Ch4 = [101001100101] Для отличия от хромосом предыдущей популяции обозначения вновь сформированных хромосом начинаются с заглавной буквы С. Согласно блок-схеме генетического алгоритма (рис. 4.3) произ- водится возврат ко второму этапу, т.е. к оценке приспособленности хромосом из вновь сформированной популяции, которая становится текущей. Значения функций приспособленности хромосом этой попу- ляции составляют F(ChO = 8 F(Ch2) = 6 F(Ch3) = 9 F(Ch4) = 6 F(Ch5) = 7 F(Ch6) = 4 F(Ch7) = 8 F(Ch8) = 8 Заметно, что популяция потомков характеризуется гораздо бо- лее высоким средним значением функции приспособленности, чем популяция родителей. Обратим внимание, что в результате скрещи- вания получена хромосома Ch3 с наибольшим значением функции приспособленности, которым не обладала ни одна хромосома из ро- дительской популяции. Однако могло произойти и обратное, посколь- ку после скрещивания на первой итерации хромосома, которая в ро- дительской популяции характеризовалась наибольшим значением функции приспособленности, могла просто «потеряться». Помимо этого «средняя» приспособленность новой популяции все равно ока- залась бы выше предьщущей, а хромосомы с большими значениями функции приспособленности имели бы шансы появиться в следую- щих поколениях. 4.6. Кодирование параметров задачи в генетическом алгоритме Выбор исходной популяции связан с представлением парамет- ров задачи в форме хромосом, т.е. с так называемым хромосомным представлением. Это представление определяется способом кодиро- вания. В классическом генетическом алгоритме применяется двоич- ное кодирование, т.е. аллели всех генов в хромосоме равны 0 или 1. Длина хромосом зависит от условий задачи, точнее говоря - от коли- чества точек в пространстве поиска. Генетические алгоритмы находят применение главным обра- зом в задачах оптимизации. Пример 4.5 демонстрирует выполнение классического генетического алгоритма, аналогичного рассмотренно-
140 Глава 4. Генетические алгоритмы му в примере 4.4, но для случая оптимизации функции. Для простоты примем, что это функция одной переменной. В новом примере хромо- сомы выступают в роли закодированной формы соответствующих фенотипов, а оптимизируется сама функция приспособленности. В примере 4.6 оптимизируется та же функция, однако внимание чита- теля акцентируется на другом способе кодирования хромосом для иной области определения переменной х. Пример 4.5 Рассмотрим очень простой пример - задачу нахождения макси- мума функции, заданной выражением (4.1) для целочисленной пере- менной х, принимающей значения от 0 до 31 Для применения генетического алгоритма необходимо прежде всего закодировать значения переменной х в виде двоичных последо- вательностей. Очевидно, что целые числа из интервала [0, 31] можно представить последовательностями нулей и единиц, используя их представление в двоичной системе счисления. Число 0 при этом за- писывается как 00000, а число 31 - как 11111. В данном случае хро- мосомы приобретают вид двоичных последовательностей, состоящих из 5 битов, т.е. цепочками длиной 5 (аналогично примеру 4.1). Также очевидно, что в роли функции приспособленности будет выступать целевая функция 7(х), заданная выражением (4.1). Тогда приспособленность хромосомы ch,-, 7=1,2, .... N будет определяться значением функции 7(х) для х, равного фенотипу, соответствующему генотипу ch,-. Обозначим эти фенотипы ch, *. В таком случае зна чение функции приспособленности хромосомы ch,- (т.е. F(ch/)) будет равно f(chi*). Выберем случайным образом исходную популяцию, состоящую из 6 кодовых последовательностей (например, можно 30 раз подбро- сить монету); при этом N = 6. Допустим, что выбраны хромосомы ch1 = [10011] ch4 = [10101] ch2 = [00011 ] ch5 = [01000] ch3 = [00111] ch6 = [11101] Соответствующие им фенотипы - это представленные ниже числа из интервала от 0 до 31: ch^ = 19 ch4 = 21 ch2 = 3 chg = 8 chj = 7 dig = 29 По формуле (4.1) рассчитываем значения функции приспособ- ленности для каждой хромосомы в популяции и получаем F(chJ = 723 F(ch4) = 883 F(ch2)= 19 F(ch5) = 129 F(ch3) = 99 F(ch6) = 1683 Селекция хромосом Методом рулетки (также, как и в примере 4.4), выбираем 6 хромосом для репродукции Колесо рулетки пред- ставлено на рис. 4.7.
4.6. Кодирование параметров задачи в генетическом алгоритме 141 Допустим, что выбраны числа 97 26 54 13 31 88 Это означает выбор хромосом Che ch4 ch6 ch., ch4 ch6 Пусть скрещивание выполняется с вероятностью рс = 1. Допус- тим, что для скрещивания сформированы пары chi и ch4 ch4 и ch6 ch6 и ch6 Кроме того, допустим, что случайным образом выбрана точка скрещивания, равная 3 для хромосом ch! и ch4, а также точка скрещи- Рис. 4.7. Колесо рулетки для селекции в примере 4.5. ch, = [10011]) Скршщзание [1000J] ch, — [10101] ] * [10111] Ch, = [10101] | Скреишин”8 [10101] Лб = [11101]] * [11101] ^=2 Рис. 4.8. Процесс скрещивания хромосом в примере 4.5.
142 Глава 4. Генетические алгоритмы вания, равная 2 для хромосом ch4 и ch6 (рис.4.8). При условии, что ве- роятность мутации рт = 0, в новую популяцию включаются хромосо- мы = [10001] Ch4 = [11101] Ch2 = [10111] Ch5 = [11101] Ch3 = [10101] Ch6 = [11101] Для расчета значений функции приспособленности этих хромо- сом необходимо декодировать представляющие их двоичные после- довательности и получить соответствующие им фенотипы. Обозна- чим их Ch,*. В результате декодирования получаем числа (из интер- вала от 0 до 31) Ch? =17 Ch? = 29 Ch2 = 23 Ch? = 29 Ch? = 21 Chg = 29 Соответственно, значения функции приспособленности хромо- сом новой популяции, рассчитанные по формуле (4.1), составят F(Ch1)= 579 F(Ch4)=1683 F(Ch2) = 1059 F(Ch5) = 1683 F(Ch3) = 883 F(Ch6)=1683 Легко заметить, что в этом случае среднее значение приспо- собленности возросло с 589 до 1262. Обратим внимание, что если на следующей итерации будут сформированы для скрещивания пары хромосом, например, Ch4 и Ch2, Ch5 и Ch2 или Ch6 и Ch2 с точкой скрещивания 2 или 3, то сре- ди прочих будет получена хромосома [11111] с фенотипом, равным числу 31, при котором оптимизируемая функция достигает своего максимума. Значение функции приспособленности для этой хромосо- мы оказывается наибольшим и составляет 1923. Если такое сочета- ние пар в данной итерации не произойдет, то можно будет ожидать образования хромосомы с наибольшим значением функции приспо- собленности на следующих итерациях. Хромосома [11111] могла быть получена и на текущей итерации в случае формирования для скрещи- вания пары Ch! и Ch6 с точкой скрещивания 3. Отметим, что при длине хромосом, равной 5 битам, простран- ство поиска очень мало и насчитывает всего 25 = 32 точки. Представ- ленный пример имеет исключительно демонстрационный характер. Применение генетического алгоритма для такого простого примера практически нецелесообразно, поскольку его оптимальное решение может быть получено мгновенно. Однако этот пример пригоден для изучения функционирования генетического алгоритма. Также следует упомянуть, что в малых популяциях часто встре- чаются ситуации, когда на начальном этапе несколько особей имеют значительно большие значения функции принадлежности, чем ос- тальные особи данной популяции. Применение метода селекции на основе «колеса рулетки» позволяет в этом случае очень быстро вы- брать «наилучшие» особи, иногда - на протяжении «жизни» одного поколения. Однако такое развитие событий считается нежелатель-
4.6. Кодирование параметров задачи в генетическом алгоритме 143 ным, поскольку оно становится главной причиной преждевременной сходимости алгоритма, называемой сходимостью к неоптимальному решению. По этой причине используются и другие методы селекции, отличающиеся от колеса рулетки, либо применяется масштабирова- ние функции приспособленности (см. п. 4.8.5). Также обратим внимание на возможность реализации генети- ческого микроалгоритма, описываемого в п. 4.8.8. Он работает с ма- лой популяцией и вероятностями скрещивания и мутации такими, как и в примерах 4.4 и 4.5, но одновременно хорошо противостоит преж- девременной сходимости. Этот факт иллюстрируется примером 4.12, в котором с помощью этого алгоритма находится минимум функции, заданной формулой (4.1). Пример 4.6 Рассмотрим задачу, аналогичную задаче из примера 4.5, т.е будем искать максимум функции, заданной формулой (4.1), но для переменной х, принимающей действительные значения из интервала [а, £>], где а = О, b = 3,1. Допустим, что нас интересует решение с точ- ностью до одного знака после запятой. Поиск решения сводится к просмотру пространства, состояще- го из 32 точек 0,0 0,1 ... 2,9 3,0 3,1. Эти точки (фенотипы) можно пред- ставить в виде хромосом (генотипов), если использовать бинарные пятизвенные цепочки, поскольку с помощью 5 битов можно получить 25 = 32 различных кодовых комбинации. Следовательно, можно ис- пользовать такое же множество кодовых последовательностей, как и в примере 4.5, причем хромосома [00000] будет соответствовать числу 0,0, хромосома [00001] - числу 0,1 и т.д., вплоть до хромосомы [11111], соответствующей числу 3,1. Таким образом, мы можем воспроизвести последовательность этапов генетического алгоритма (так же, как в примере 4.5), не забы- вая, что конкретным хромосомам (генотипам) в данном примере соот- ветствуют другие фенотипы. Те кодовые последовательности, кото- рые в примере 4.5 представляли фенотипы 0, 1, .... 29, 30, 31, в рас- сматриваемой ситуации обозначают значения х, равные 0,0 0,1 ... 2,9 3,0 3,1. В связи с тем, что генетический алгоритм основан на случай- ном выборе исходной популяции и хромосом для последующего пре- образования методом колеса рулетки, а также родительских пар для скрещивания и точки скрещивания, то генетический алгоритм в теку- щем примере будет выполняться аналогично, но не идентично преды- дущему примеру. В результате выполнения этого алгоритма будет выбрано наи- лучшее решение, которое представляется хромосомой [11111] со зна- чением фенотипа 3,1. Функция приспособленности этой хромосомы равна 20,22; это максимально возможное значение. Заметим, что если бы в примере 4.6 нас интересовало реше- ние с точностью, превышающей один знак после запятой, то интервал [0, 3,1] необходимо было бы разбить на большее количество подин- тервалов, и для кодирования соответственно большего количества чисел потребовались более длинные хромосомы (с длиной, превы-
144 Глава 4. Гэнетические алгоритмы шающей 5 битов). Аналогично, расширение области определения пе- ременной х также потребует применения более длинных хромосом. Из этих наблюдений можно сделать вывод, что длина хромосом зави- сит от ширины области определения х и от требуемой точности реше- ния. Представим теперь задачу из примера 4.6 в более общем ви- де. Допустим, что ищется максимум функции f(xb х2, .... х„ ) > 0 для х,- е[а,-, ЬД с R; / = 1, 2,.... л и требуется найти решение с точностью до q знаков после запятой для каждой переменной х,. В такой ситуации необходимо разбить интервал [а,-, ЬД на (Ь,- - а,) 10е одинаковых подинтервалов. Это означает применение дискретизации с шагом г= 10-9. Наименьшее натуральное число л?,-, удовлетворяющее нера- венству (Ь;-а,)-10ч <2^-1 (4.4) определяет необходимую и достаточную длину двоичной последова- тельности, требуемой для кодирования числа из интервала [а,-, ЬД с шагом г. Каждой такой двоичной последовательности соответствует десятичное значение числа, представляемого данным кодом (с уче- том правил перевода десятичных чисел в двоичную форму). Пусть у, обозначает десятичное значение двоичной последовательности, кодирующей число х,-. Значение х, можно представить выоажением X, =Э;+У;Ь'~а' (4.5) 2 ' -1 Таким способом задаются фенотипы, соответствующие кодо- вым последовательностям с длиной л?;. Пример 4.6-это частный слу- чай задачи в данной постановке при условии, что i = 1 и q = 1. Выра- жение (4.5) - это следствие из простого линейного отображения ин- тервала [а/, ЬД на интервал [0,2m'~ 1], где 2т'- десятичное число, за- кодированное двоичной последовательностью длиной т, и состав- ленной исключительно из единиц, а 0 - это, очевидно, десятичное значение двоичной последовательности длиной л?/, составленной только из нулей. Обратим внимание, что если а,- = - 25, Ь, = 25 и при- меняется шаг г - 0, 05, то согласно формуле (4.4) получаем л?,- = 10, а с помощью формулы (4 5) можно проверить значения фенотипов для генотипов, представленных в табл. 4.1. 4.7. Основная теорема о генетических алгоритмах Для того чтобы лучше понять функционирование генетического алгоритма, будем использовать понятие схема и сформулируем основную теорему, относящуюся к генетическим алгоритмам и назы- ваемую теоремой о схемах [7, 15, 21, 33]. Понятие схема было введе- но для определения множества хромосом, обладающих некоторыми общими свойствами, т.е. подобных друг другу. Если аллели принима- ют значения 0 или 1 (рассматриваются хромосомы с двоичным алфа-
4.7. Основная теорема о генетических алгоритмах 145 витом), то схема представляет собой множество хромосом, содержа- щих нули и единицы на некоторых заранее определенных позициях. При рассмотрении схем удобно использовать расширенный алфавит {О, 1, *}, в который помимо 0 и 1 введен дополнительный символ *, обозначающий любое допустимое значение, т.е. О или 1; символ * в конкретной позиции означает «все равно» {don’t саге). Например, 10*1 ={1001, 1011} *01*10 = {001010, 001110, 101010,101110} Считается, что хромосома принадлежит к данной схеме, если для каждой у-й позиции (локуса), j = 1, 2,..., L, где L - длина хромосо- мы; символ, занимающий у-ю позицию хромосомы, соответствует символу, занимающему у-ю позицию схемы, причем символу * соот- ветствуют как 0, так и 1. То же самое означают утверждения хромосо- ма соответствует схеме и хромосома представляет схему. Отме- тим, что если в схеме присутствует т символов *, то эта схема содер- жит 2т хромосом. Кроме того, каждая хромосома (цепочка) длиной L принадлежит к 2L схемам. В таблицах 4.2 и 4.3 представлены схемы, к которым принадлежат цепочки длиной 2 и 3 соответственно. Цепоч- Таблица 4.2. Схемы, к которым принадлежат цепочки длиной 2 Звенья Схемы 1 2 3 4 00 ** *0 0* 00 01 ** *1 0* 01 10 ** *0 1* 10 11 ** *1 1* 11 Таблица 4.3. Схемы, к которым принадлежат цепочки длиной 3 Звенья Схемы 1 2 3 4 5 6 7 8 000 *** **0 *0* 0** *00 0*0 00* 000 001 *** ”1 *0* 0** *01 0*1 00* 001 010 *** **0 ч* 0** *10 0*0 01* 010 011 *** ч* 0** *11 0*1 01* 011 100 *** **0 *0* г* *00 1*0 10* 100 101 *** **1 *0* г* *01 1*1 10* 101 110 *** **0 ч* г* 40 1*0 11* 110 111 *** **1 ч* 1** *11 1*1 11* 111
146 Глава 4 Генетические алгоритмы ки длиной 2 соответствуют четырем различным схемам, а цепочки длиной 3 - восьми схемам. Генетический алгоритм базируется на принципе трансформа- ции наиболее приспособленных особей (хромосом). Пусть Р(0) озна- чает исходную популяцию особей, а Р(к) - текущую популяцию (на k-й итерации алгоритма). Из каждой популяции Р(к), к = 0,1,... мето- дом селекции выбираются хромосомы с наибольшей приспособлен- ностью, которые включаются в так называемый родительский пул (mating pool) М(к). Далее, в результате объединения особей из попу- ляции М(к) в родительские пары и выполнения операции скрещива- ния с вероятностью рс, а также операции мутации с вероятностью рт формируется новая популяция Р(к+1), в которую входят потомки осо- бей из популяции М(к). Следовательно, для любой схемы, представляющей хорошее решение, было бы желательным, чтобы количество хромосом, соот- ветствующих этой схеме, возрастало с увеличением количества ите- раций к. На соответствующее преобразование схем в генетическом ал- горитме оказывают влияние 3 фактора: селекция хромосом, скрещи- вание и мутация. Проанализируем воздействие каждого из них с точ- ки зрения увеличения ожидаемого количества представителей от- дельно взятой схемы. Обозначим рассматриваемую схему символом S, а количество хромосом популяции Р(к), соответствующих этой схеме - c(S, к). Сле- довательно, c(S, к) можно считать количеством элементов (т.е. мощ- ностью) множества Р(к) n S. Начнем с исследования влияния селекции. При выполнении этой операции хромосомы из популяции Р(к) копируются в родитель- ский пул М(к) с вероятностью, определяемой выражением (4.3). Пусть F(S, к) обозначает среднее значение функции приспособленности хромосом из популяции Р(к), которые соответствуют схеме S. Если Р(к) S = {ch-], ..., chc(S, ц) , то c(S,k) Величина F(S, к) также называется приспособленностью схемы S на к-й итерации. Пусть 5 (к) обозначает сумму значений функций приспособ- ленности хромосом из популяции Р(к) мощностью N, т.е. N 3(к)='£Г(сЦм) . (4.7) i=1 Обозначим через F (к) среднее значение функции приспособ- ленности хромосом этой популяции, т.е.
4 7. Основная теорема о генетических алгоритмах 147 F(k) = ±3(k) (4.8) Пусть обозначает элемент родительского пула М(к). Для каж- дого chfr е М(к) и для каждого / = 1.c(S, к) вероятность того, что ch^ = chh определяется отношением F(ch) / F(k). Поэтому ожидаемое количе- ство хромосом в популяции М(к), которые равны ch;, составит F(ch,-) F(ch;) 3(/<) F(k) Таким образом, ожидаемое количество хромосом из множест- ва Р(/с) n S, отобранных для включения в родительский пул М(к), бу- дет равно F{k) F(k) что следует из выражения (4.6). Поскольку ка>вдая хромосома из родительского пула М(к) одно- временно принадлежит популяции Р(к), то хромосомы, составляю- щие множество M(k)rS - это те же самые особи, которые были отобраны из множества P(fc)nS для включения в популяцию М(к). Ес- ли количество хромосом родительского пула М(к), соответствующих схеме S (т.е. количество элементов множества М(к) n S), обозначить b(S, к), то из приведенных рассуждений можно сделать следующий вывод: Вывод 4.1 Ожидаемое значение b(S, к), т.е. ожидаемое значение количе- ства хромосом родительского пула М(к), соответствующих схеме S, определяется выражением E[b(S,K)] = c(S,K)$^ - (4.9) F(fc) Из этого следует, что если схема S содержит хромосомы со значением функции приспособленности, превышающим среднее зна- чение (т.е. приспособленность схемы S на к-й итерации оказывается большей, чем среднее значение функции приспособленности хромо- сом из популяции Р(/<), и поэтому F(S, к) / F(k) > 1), то ожидаемое ко- личество хромосом из родительского пула М(к), соответствующих схеме S, будет больше количества хромосом из популяции Р(к), соот- ветствующих схеме S. Поэтому можно утверждать, что селекция вы- зывает распространение схем с приспособленностью «лучше сред- ней» и исчезновение схем с «худшей» приспособленностью. Прежде чем приступить к анализу влияния генетических опера- торов скрещивания и мутации на хромосомы из родительского пула, определим необходимые для дальнейших рассуждений понятия по- рядка и охвата схемы. Пусть L обозначает длину хромосом, соответ- ствующих схеме S.
148 Глава 4. Гэнетические алгоритмы Определение 4.1 Порядок (order) схемы S, иначе называемый счетностью схемы и обозначаемый o(S) - это количество постоянных позиций в схеме, т.е. нулей и единиц в случае алфавита {0, 1, *}. Например, о(10*1) = 3 о(*01*10) = 4 о(**0*1*) = 2 о(*101**) = 3 Порядок схемы o(S) равен длине L за вычетом количества сим- волов *, что легко проверить на представленных примерах (для L = 4 с одним символом * и для L = 6 с двумя, четырьмя и тремя символа- ми *). Легко заметить, что порядок схемы, состоящей исключительно из символов *, равен нулю, т.е. о(****) = 0, а порядок схемы без едино- го символа * равен L; например, о(10011010) = 8. Порядок схемы o(S) - это всегда целое число из интервала [0, L]. Определение 4.2 Охват (defining length) схемы S, называемый также длиной схе- мы (не путать с длиной L) и обозначаемый d(S) - это расстояние меж- ду первым и последним постоянным символом (т.е. разность между правой и левой крайними позициями, содержащими постоянные сим- волы). Например, d(10*1) = 4-1 =3 d(*01*10) = 6 — 2 = 4 £/(**0*1*) = 5-3 = 2 d(*101**) = 4 - 2 = 2 Охват схемы d(S) - это целое число из интервала [0, L - 1]. От- метим, что охват схемы с постоянными символами на первой и по- следней позиции равен L - 1 (как в первом из приведенных приме- ров). Охват схемы с единственной постоянной позицией равен нулю, в частности, d(**1*) = 0. Охват характеризует содержательность ин- формации, заключенной в схеме. Перейдем к рассуждениям о влиянии операции скрещивания на обработку схем в генетическом алгоритме. Прежде всего отметим, что одни схемы оказываются более подверженными уничтожению в процессе скрещивания, чем другие. Например, рассмотрим схемы S-] _ ^***0* и _ »*01*** а также хромосому ch = [1001101], соответ- ствующую обеим схемам. Видно, что схема S2 имеет больше шансов «пережить» операцию скрещивания, чем схема которая больше подвержена «расщеплению» в точках скрещивания 1,2, 3,4 и 5. Схе- му S2 можно разделить только при выборе точки скрещивания, рав- ной 3. Обратим внимание на охват обеих схем, который - это очевид- но оказывается существенным в процессе скрещивания. В ходе анализа влияния операции скрещивания на роди- тельский пул М(к) рассмотрим некоторую хромосому иэ множества М(к) т S, т.е. хромосому из родительского пула, соответствующую схеме S. Вероятность того, что эта хромосома будет отобрана для скрещивания, равна рс. Если ни один из потомков этой хромосомы не будет принадлежать к схеме S, то это означает, что точка скрещива- ния должна находиться между первым и последним постоянным сим-
4.7. Основная теорема о генетических алгоритмах 149 волом данном схемы. Вероятность этого равна d(S)l{L - 1) Из это можно сделать следующие выводы: Вывод 4.2 (влияние скрещивания) Для некоторой хромосомы из M(k) n S вероятность того, что она будет отобрана для скрещивания и ни один из ее потомков не бу- дет принадлежать к схеме S. ограничена сверху величиной р Рс L-1 Эта величина называется вероятностью уничтожения схемы S. Вывод 4.3 Для некоторой хромосомы из М(к) n S вероятность того, что она не будет отобрана для скрещивания либо, что хотя бы один из ее потомков после скрещивания будет принадлежать к схеме S, ограни- чена снизу величиной Эта величина называется вероятностью выживания схемы S. Легко показать, что если данная хромосома принадлежит к схе- ме S и отбирается для скрещивания, а вторая родительская хромосо- ма также принадлежит к схеме S, то оба их потомка тоже будут при- надлежать к схеме S. Выводы 4.2 и 4.3 подтверждают значимость по- казателя охвата схемы d(S) для оценки вероятности уничтожения или выживания схемы. Рассмотрим теперь влияние мутации на родительский пул М(к). Оператор мутации с вероятностью рт случайным образом изменяет значение в конкретной позиции с 0 на 1 и обратно. Очевидно, что схе- ма переживет мутацию только в том случае, когда все ее постоянные позиции останутся после выполнения этой операции неизменными Хромосома из родительского пула, принадлежащая к схеме S (т.е. хромосома из множества М(к) n S) останется в этой схеме тог- да и только тогда, когда ни один символ этой хромосомы, соответст- вующий постоянным символам схемы S, не изменится в процессе му- тации. Вероятность такого события равна (1 - рт)0^- Этот результат можно представить в форме следующего вывода: Вывод 4.4 (влияние мутации) Вероятность того, что некоторая хромосома из М{к) n S будет принадлежать к схеме S после операции мутации, определяется вы- ражением (1 -pm)0(S) Эта величина называется вероятностью выживания схемы S после мутации.
150 Глава 4. Генетические алгоритмы Вывод 4.5 Если вероятность мутации рт мала (рт « 1), то можно считать, что вероятность выживания схемы S после мутации, определенная в выводе 4.4, приближенно равна 1 — Pm O(S). Эффект совместного воздействия селекции, скрещивания и Му- тации (выводы 4.1 - 4.4) с учетом факта, что если хромосома из мно- жества M(k) п S дает потомка, соответствующего схеме S, то он будет принадлежать к Р(к + 1) n S, ведет к построению следующей схемы репродукции [7]: E[C(S,/< + 1)]>c(S,/<)-^l^1-pc-®^(1-pm)o(S) . (4.10) Зависимость (4.10) показывает, как изменяется от популяции к популяции количество хромосом, соответствующих данной схеме. Это изменение вызывается тремя факторами, представленными в правой части выражения (4.10), в частности: F(S,k) / F (к) отражает роль среднего значения функции приспособленности, 1 -p^{S)l(L-1) показывает влияние скрещивания и (1 - рт)°^ - влияние мутации. Чем больше значение каждого из этих факторов, тем большим оказы- вается ожидаемое количество соответствий схеме S в следующей по- пуляции. Вывод 4.5 позволяет представить зависимость (4.10) в виде E[C(S,k + 1)]>c(S,k)®^[l pc^-pmo(S)|. (4.11) Г (К) V 4-1 / Для больших популяций зависимость (4.11) можно аппроксими- ровать выражением c(S,/(+1)>C(S,R)^^^1-pc^-p„7o(S)] (4.12) Из формул (4.11) и (4.12) следует, что ожидаемое количество хромосом, соответствующих схеме S в следующем поколении, можно считать функцией от фактического количества хромосом, принадле- жащих этой схеме, относительной приспособленности схемы, а также порядка и охвата схемы. Заметно, что схемы с приспособленностью выше средней и с малым порядком и охватом характеризуются возра- станием количества своих представителей в последующих популяци- ях. Подобный рост имеет показательный характер, что следует из вы- ражения (4.9). Для больших популяций эту формулу можно заменить рекуррентной зависимостью вида [33] c(S,k + 1) = c(S,k)^^ - (4.13) Если допустить, что схема S имеет приспособленность на е % выше средней, т.е.
4.7. Основная теорема о генетических алгоритмах 151 F{S,k) = F(k) + £F(k), (4.14) то при подстановке выражения (4.12) в неравенство (4.11) в предпо- ложении, что е не изменяется во времени, при старте от к - 0 получа- ем c(S, к) = c(S, 0) (1 +£)к, £ = (F(S,k)-F(k))IF(k), (4.15) т.е. £ > 0 для схемы с приспособленностью выше средней и £ < 0 - в противном случае. Равенство (4.15) описывает геометрическую прогрессию Из этого следует, что в процессе репродукции схемы, оказавшиеся луч- ше (хуже) средних, выбираются на очередных итерациях генетическо- го алгоритма в показательно возрастающих (убывающих) количест- вах. Обратим внимание, что зависимости (4.9) - (4.13) основаны на предположении, что функция приспособленности F принимает только положительные значения. При использовании генетических алгорит- мов для решения оптимизационных задач, в которых целевая функ- ция может принимать и отрицательные значения, необходимы некото- рые дополнительные соотношения между оптимизируемой функцией и функцией приспособленности. Конечный результат, получаемый из выражений (4.10) - (4.12), можно сформулировать в форме теоремы Это основная теорема генетических алгоритмов, иначе называемая теоремой о схемах [21]. Теорема 4.1 Схемы малого порядка, с малым охватом и с приспособленно- стью выше средней формируют показательно возрастающее количе- ство своих представителей в последующих поколениях генетического алгоритма. В соответствии с приведенной теоремой важным вопросом ста- новится кодирование, которое должно обеспечивать построение схем малого порядка, с малым охватом и с приспособленностью выше средней. Косвенным результатом теоремы 4.1 (о схемах) можно счи- тать следующую гипотезу, называемую гипотезой о кирпичиках (ли- бо о строительных блоках) [15, 33]. Гипотеза 4.1 Генетический алгоритм стремится достичь близкого к опти- мальному результата за счет комбинирования хороших схем (с при- способленностью выше средней) малого порядка и малого охвата Такие схемы называются кирпичиками (либо строительными блока- ми). Гипотеза о строительных блоках выдвинута на основании тео- ремы о схемах с учетом того, что генетические алгоритмы исследуют пространство поиска с помощью схем малого порядка и малого охва- та, которые впоследствии участвуют в обмене информацией при скрещивании.
152 Глава 4. Гэнетические алгоритмы Несмотря на то, что для доказательства этой гипотезы пред- принимались определенные исследования, однако в большинстве не- тривиальных приложений приходится опираться на эмпирические ре- зультаты. В течение последних двадцати лет опубликованы многочис- ленные работы, посвященные применениям генетических алгорит- мов, подтверждающим эту гипотезу. Если она считается истинной, то проблема кодирования приобретает критическое значение для гене- тического алгоритма; кодирование должно реализовать концепцию малых строительных блоков. Качество, которое обеспечивает генети- ческим алгоритмам явное преимущество перед другими традицион- ными методами, несомненно заключается в обработке большого ко- личества различных схем. Обратимся снова к примерам 4.4 и 4.5 и на их основе проана- лизируем обработку схем генетическим алгоритмом. Пример 4.7 В условиях примера 4.4 рассмотрим схему и покажем, как изменяется количество представителей этой схемы и приспособленность в процессе выполнения генетического алгоритма. Длина L = 12, а охват и порядок схемы So составляют соответ- ственно d(S0) = 1 и o(S0) = 2. В исходной популяции из примера 4.4 схеме So соответствуют две следующие хромосомы: ch3 = [011101110011] ch7 = [101011011011] Из формулы (4.10) следует, что после селекции и скрещивания количество хромосом, соответствующих схеме So, должно быть боль- ше или равно 2,5. Напомним, что вероятности скрещивания и мута- ции считаются равными соответственно рс = 1 и рт = 0. Приспособ- ленность схемы So в исходной популяции, обозначаемая F(S0, 0), рав- на 8 и превышает среднюю приспособленность всех хромосом этой популяции F = 5,75, что легко рассчитать по формулам (4.6) - (4.8). В примере 4.4 после селекции и скрещивания в новой популя- ции получены четыре хромосомы, соответствующие схеме So: Ch-! = [001111011011] Ch3 = [111011011011] Ch7 = [011101011011] Ch8 = [101011110011] Приспособленность схемы So в новой популяции, т.е. F(S0, 1), составит 8,25, тогда как средняя приспособленность хромосом этой популяции F (1) = 7, что также следует из формул (4.6) - (4.8). Новая популяция характеризуется большим средним значением функции приспособленности особей по сравнению с предыдущей (исходной) популяцией, что уже отмечалось в примере 4.4. Кроме того, в новой популяции приспособленность схемы So оказывается лучшей, а коли- чество представителей этой схемы - большим по сравнению с преды- дущей популяцией.
4.7. Основная теорема о генетических алгоритмах 153 Пример 4.8 В условиях примера 4.5 рассмотрим схему Si = 1**« и проследим ее обработку при выполнении генетического алгоритма. В этом случае L = 5, а охват и порядок схемы S-; составляют = 0 и 0(5-]) = 1 соответственно. В исходной популяции из приме- ра 4.5 этой схеме соответствуют три хромосомы ch-i =[10011] ch4 =[10101] che =[11101] Приспособленность схемы S-] в исходной популяции F(S1t 0) = 1096_и превышает среднюю приспособленность особей этой популя- ции F (0) = 589, что следует из выражений (4.6) - (4.8). На основе фор- мулы (4.9) легко рассчитать ожидаемое количество хромосом роди- тельского пула, соответствущих схеме Оно составит 3 * 1096/589 = 5,58. В примере 4.5 по результатам селекции в родительский пул включены 6 таких хромосом: ch6, ch4, che, ch^ ch4, ch6. Ожидаемое ко- личество хромосом, соответствущих схеме после скрещивания с вероятностью рс = 1 (вероятность мутации рт - 0), как легко рассчи- тать по формуле (4.10), должно превышать 5,58. В новую популяцию включены 6 представителей схемы S-,. Это все хромосомы данной по- пуляции. Пример 4.9 В условиях примера 4.5 рассмотрим схему S2 = 11*** и проследим ее обработку при выполнении генетического алгоритма. Длина L = 5, а охват и порядок схемы S2 составляют d(S2) = 1 и o(S2) = 2 соответственно. В исходной популяции из примера 4.5 этой схеме соответствует одна хромосома ch6 = [11101]. Поэтому приспособленность схемы S2 в исходной популяции равна функции приспособленности хромосомы ch6 и составляет 1683 Она превышает среднюю приспособленность особей исходной попу- ляции, равную 589. По формуле (4.9) рассчитываем ожидаемое коли- чество хромосом родительского пула, соответствущих схеме S2. Оно составит 1683/589 = 2,86. В примере 4.5 по результатам селекции в родительский пул включены 3 одинаковых хромосомы [11101], соот- ветствущих схеме S2. Ожидаемое количество хромосом в новой попу- ляции, соответствущих схеме S2, после скрещивания с вероятностью рс = 1 (вероятность мутации Рт = 0), должно превышать 5,58. В при- мере 4.5 в новую популяцию включены 3 хромосомы, соответствущих схеме S2. Это Ch4=Ch5 = 016 = [11101].
154 Глава 4 Генетические алгоритмы Пример 4.10 В условиях примера 4.5 рассмотрим схему S3 = ***11 и проследим ее обработку при выполнении генетического алгоритма. Длина L = 5, а охват и порядок схемы S3 составляют d(S3) - 1 и o(S3) = 2 соответственно. В исходной популяции из примера 4.5 этой схеме соответствуют три хромосомы ch, = [10011] ch2 = [00011] ch3 = [00111] В отличие от примеров 4.8 и 4.9 приспособленность схемы S3 в исходной популяции оказывается меньше средней приспособленно- сти особей этой популяции F (0) = 589 и составляет F(S3, 0) = 280. Ожидаемое количество хромосом родительского пула, соответствую- щих схеме S3 и рассчитанное по формуле (4.9), равно 3 * 280/589 = 1,426. В примере 4.5 в родительский пул была включена одна хромо- сома [10011], соответствующая схеме S3. На основе формулы (4.10) получаем значение 1,068, определяющее количество представителей схемы S3 в новой популяции. В примере 4.5 после скрещивания с ве- роятностью рс = 1 (вероятность мутации рт = 0) в новую популяцию была включена одна хромосома, соответствующая схеме S3, т.е. Ch2 = [10111]. Пример 4.11 В условиях примера 4.5 рассмотрим схему S4 = *10*’ и проследим ее обработку при выполнении генетического алгоритма. Длина L = 5, а охват и порядок схемы S4 составляют d(S4) = 1 и o(S4) = 2 соответственно. В исходной популяции из примера 4.5 этой схеме соответствует только одна хромосома ch5 = [01000] Поэтому приспособленность схемы S4 в исходной популяции равна значению функции приспособленности хромосомы ch5 и со- ставляет 129. Аналогично примеру 4.10, она меньше средней приспо- собленности особей начальной популяции, которая равна 589. Ожи- даемое количество представителей схемы S4 в родительском пуле составляет 129/589 = 0,22, что следует из формулы (4.9). В примере 4.5 родительский пул (после селекции) не содержит ни одной хромо- сомы, соответствующей схеме S4. При расчете ожидаемого количест- ва представителей схемы S4 в новой популяции по формуле (4.10) для вероятности скрещивания рс = 1 и вероятности мутации рт = 0 по- лучаем значение 0,165. В примере 4.5 после скрещивания в новую по- пуляцию не была включена ни одна хромосома, соответствующая схеме S4.
4.7. Основная теорема о генетических алгоритмах 155 Из примеров 4.7-4.11, посвященных обработке схем, можно сделать следующие выводы. Эти примеры иллюстрируют основную теорему генетических алгоритмов - теорему о схемах. Они затрагива- ют обработку схем низкого (малого) порядка с малым охватом. При- меры 4.7 - 4.9 демонстрируют увеличение количества представите- лей данной схемы в следующем поколении для случая, когда приспо- собленность этой схемы превышает среднюю приспособленность всех особей популяции. Примеры 4.10 и 4.11 показывают ситуацию, когда приспособленность схемы оказывается меньше средней при- способленности особей популяции Количество представителей таких схем в следующих поколениях не увеличивается, а наоборот - наблю- дается уменьшение количества соответствующих им хромосом. При анализе подобных примеров для схем большего порядка и большего охвата также не регистрируется увеличение количества их представителей в следующем поколении, что согласуется с теоремой о схемах. Графическая интерпретация схем, обсуждавшихся в примерах 4.8 и 4.11, представлена на рис. 4.9; аналогичным образом можно проиллюстрировать схемы из примеров 4.9 и 4.10, равно как и любые другие. На рис. 4.9 видно, что к схеме Г*** (пример 4.8) в исходной популяции из примера 4.5 принадлежат хромосомы chi, ch4 и ch6 с фенотипами 19, 21, 29 соответственно, а после селекции и скрещи- вания к этой схеме уже принадлежат все включенные в новую попу- ляцию хромосомы, т.е. Ch^ Ch2, Ch3, Ch4, Ch5, и Cfi6 с фенотипами 17,23,21,29,29,29 соответственно. В то же время к схеме *10** (при- мер 4.11) в исходной популяции из примера 4.5 принадлежит только одна хромосома ch5, фенотип которой равен 8; в следующей популя- ции уже нет ни одной хромосомы, принадлежащей этой схеме. Обра- тим внимание (рис. 4.9), что оптимальное решение, которое максими- зирует функцию, заданную выражением (4.1), принадлежит к схеме 1*; - и не соответствует схеме *10** Выполнение генетических алгоритмов основано на обработке схем. Схемы малого порядка, с малым охватом и приспособленнос- тью выше средней выбираются, размножаются и комбинируются, в результате чего формируются все лучшие кодовые последователь- ности. Поэтому оптимальное решение строится (в соответствии с ги- потезой кирпичиков) путем объединения наилучших из полученных к текущему моменту частичных решений. Простое скрещивание не слишком часто уничтожает схемы с малым охватом, однако ликвиди- рует схемы с достаточно большим охватом. Однако невзирая на губи- тельность операций скрещивания и мутации для схем высокого по- рядка и охвата, количество обрабатываемых схем настолько велико, что даже при относительно низком количестве хромосом в популяции достигаются весьма неплохие результаты выполнения генетического алгоритма. Количество эффективно обрабатываемых схем, рассчитанное Холландом [21], составляет €>(№). Это означает, что для популяции мощностью Л/ количество обрабатываемых в каждом поколении схем имеет порядок Л/3.
Глава 4. Генетические алгоритмы Ш М 8 ? i I i H 8 s i i § I §s 1 S 10 15 20 25 30 32 Схема •••«! {целые числа 1.3 5 .31) 1 5 10 15 20 25 30 32 Схема *10*' (целые числа 6,9.10,11 и 24,25,26.27) Рис. 4.9. Графическое представление схем для целочисленных значений х от 0 до 31, закодированных в форме 5-битовых двоичных последовательностей для оптимизации функции Г(х) = 2х2 + 1 (примеры 4.5, а также 4.8 и 4.11).
4.8. Модификации классического генетического алгоритма 157 Следует упомянуть о том, что в последнее время теорема Хол- ланда о схемах и следующие из нее оценки количества схем, обраба- тываемых генетическим алгоритмом, вызывают в научной среде оп- ределенные возражения [37]. 4.8. Модификации классического генетического алгоритма В классическом генетическом алгоритме (представленном в разд. 4.4 - 4.6 и в примерах 4.4 и 4.5) используется двоичное пред- ставление хромосом, селекция методом колеса рулетки и точечное скрещивание (с одной точкой скрещивания). Для повышения эффек- тивности его работы создано множество модификаций основного ал- горитма. Они связаны с применением других методов селекции, с мо- дификацией генетических операторов (в первую очередь оператора скрещивания), с преобразованием функции приспособленности (пу- тем ее масштабирования), а также с иными способами кодирования параметров задачи в форме хромосом. Существуют также версии ге- нетических алгоритмов, позволяющие находить не только глобаль- ный, но и локальные оптимумы. Это алгоритмы, использующие так называемые ниши, введенные в генетические алгоритмы по аналогии с природными экологическими нишами. Другие версии генетических алгоритмов служат для многокритериальной оптимизации, т.е. для одновременного поиска оптимального решения для нескольких функ- ций. Встречаются также специальные версии генетического алгорит- ма, созданные для решения проблем малой размерности, не требую- щих ни больших популяций, ни длинных хромосом. Их называют ге- нетическими микроалгоритмами. 4.8.1. Методы селекции Основанный на принципе колеса рулетки метод селекции, представленный в разд. 4.4 и продемонстрированный в примерах 4.4 и 4.5, считается для генетических алгоритмов основным методом от- бора особей для родительской популяции с целью последующего их преобразования генетическими операторами, такими как скрещива- ние и мутация. Несмотря на случайный характер процедуры селек- ции, родительские особи выбираются пропорционально значениям их функций приспособленности, т.е. согласно вероятности селекции, оп- ределяемой по формуле (4.3). Каждая особь получает в родитель- ском пуле такое количество своих копий, какое устанавливается вы- ражением e(ch,-) = ps(ch<) N (4.16) где N - количество хромосом ch,-, i= 1,2, .... N в популяции, a ps(ch,) - вероятность селекции хромосомы ch;, рассчитываемая по формуле (4.3). Строго говоря, количество копий данной особи в родительском пуле равно целой части от e(ch,) При использовании формул (4 3) и (4.16) необходимо обращать внимание на то, что e(ch,) = F(ch,)/F,
158 Глава 4. Пэнетические алгоритмы где F - среднее значение функции приспособленности в популяции. Очевидно, что метод рулетки можно применять тогда, когда значения функции приспособленности положительны. Этот метод может ис- пользоваться только в задачах максимизации функции (но не мини- мизации). Очевидно, что проблему минимизации можно легко свести к за- даче максимизации функции и обратно. В некоторых реализациях ге- нетического алгоритма метод рулетки применяется для поиска мини- мума функции (а не максимума). Это результат соответствующего преобразования, выполняемого программным путем для удобства пользователей, поскольку в большинстве прикладных задач решает- ся проблема минимизации (например, затрат, расстояния, погрешно- сти и т.п.). В качестве примера такой реализации можно назвать про- грамму FlexTool [48]. Однако возможность применения метода рулет- ки всего лишь для одного класса задач, т.е. только для максимизации (или только для минимизации) можно считать его несомненным недо- статком. Другая слабая сторона этого метода заключается в том, что особи с очень малым значением функции приспособленности слиш- ком быстро исключаются из популяции, что может привести к прежде- временной сходимости генетического алгоритма. Для предотвраще- ния такого эффекта применяется масштабирование функции приспо- собленности (п. 4.8.5). С учетом отмеченных недостатков метода рулетки созданы и используются альтернативные алгоритмы селекции. Один из них на- зывается турнирным методом (tournament selection). Наряду с мето- дом рулетки и ранговым методом он применяется как один из основ- ных алгоритмов селекции в программе FlexTool. Представим эти ме- тоды подробнее. Рис. 4.10. Схема турнирной селекции для подгрупп, состоящих из двух особей.
4.8. Модификации классического генетического алгоритма 159 При турнирной селекции все особи популяции разбиваются на подгруппы с последующим выбором в каждой из них особи с наилуч- шей приспособленностью. Различаются два способа такого выбора: детерминированный выбор {deterministic tournament selection) и слу- чайный выбор {stochastic tournament selection). Детерминированный выбор осуществляется с вероятностью, равной 1, а случайный выбор - с вероятностью, меньшей 1. Подгруппы могут иметь произвольный размер, но чаще всего популяция разделяется на подгруппы по 2 - 3 особи в каждой. Турнирный метод пригоден для решения задач как максимиза- ции, так и минимизации функции. Помимо того, он может быть легко распространен на задачи, связанные с многокритериальной оптими- зацией, т.е. на случай одновременной оптимизации нескольких функ- ций. В турнирном методе допускается изменение размера подгрупп, на которые подразделяется популяция {tournament size). Исследова- ния подтверждают, что турнирный метод действует эффективнее, чем метод рулетки. На рис. 4.10 представлена схема, которая иллюстрирует метод турнирной селекции для подгрупп, состоящих из двух особей. Такую схему легко обобщить на подгруппы большего размера. Это одно из возможных приложений рассматриваемого алгоритма селекции (оно используется в программе FlexTool [48]). При ранговой селекции {ranking selection) особи популяции ранжируются по значениям их функции приспособленности. Это мож- но представить себе как отсортированный список особей, упорядо- ченных по направлению от наиболее приспособленных к наименее приспособленным (или наоборот), в котором каждой особи приписы- вается число, определяющее ее место в списке и называемое рангом {rank). Количество копий М{к) каждой особи, введенных в родитель- скую популяцию, рассчитывается по априорно заданной функции в зависимости от ранга особи. Пример такой функции показан на рис. 4.11. Достоинство рангового метода заключается в возможности его применения как для максимизации, так и для минимизации функции. Количество копий Ранг Рис. 4.11. Пример функции, определяющей зависимость количества копий особи в родительском пуле от его ранга при ранговой селекции
160 Глава 4. Генетические алгоритмы Он также не требует масштабирования из-за проблемы преждевре- менной сходимости, актуальной для метода рулетки. Существуют различные варианты алгоритмов селекции [4,15]. Представленные ранее методы (рулетки, турнирный и ранговый) при- меняются чаще всего. Другие методы представляют собой либо их модификации, либо комбинации - например, метода рулетки с тур- нирным методом, когда пары родительских хромосом выбираются случайным образом, после чего из каждой пары выбирается хромосо- ма с наибольшим значением функции приспособленности. Большин- ство методов селекции основано на формулах (4.3) и (4.16), по кото- рым рассчитывается вероятность селекции и количество копий, вво- димых в родительский пул. В так называемом детерминированном методе каждая особь получает число копий, равное целой части от e(ch,), после чего популяция упорядочивается в соответствии с дроб- ной частью e(chj), а остальные хромосомы, необходимые для попол- нения новой популяции, последовательно выбираются из верхней ча- сти сформированного таким образом списка. В другом методе (назы- ваемом случайным) дробные части e(ch,) рассматриваются как веро- ятности успеха по Бернулли и, например, хромосома ch,, для которой e(ch,-) = 1,5, получает одну копию гарантированно и еще одну - с ве- роятностью 0,5. В еще одном методе для устранения расхождения между расчетным значением e(ch,-) и количеством копий хромосом chi, выбираемым по методу рулетки, производится модификация e(ch,-) путем увеличения или уменьшения его значения для каждой хромосомы, выбранной для скрещивания и/или мутации 4.8.2. Особые процедуры репродукции В качестве особых процедур репродукции можно рассматри- вать так называемую элитарную стратегию и генетический алго- ритм с частичной заменой популяции Элитарная стратегия (elitist strategy) заключается в защите наилучших хромосом на последующих итерациях. В классическом ге- нетическом алгоритме самые приспособленные особи не всегда пе- реходят в следующее поколение. Это означает, что новая популяция Р(к + 1) не всегда содержит хромосому с наибольшим значением функции приспособленности из популяции Р(к). Элитарная стратегия применяется для предотвращения потери такой особи. Эта особь га- рантированно включается в новую популяцию. Гэнетический алгоритм с частичной заменой популяции, ина- че называемый генетическим алгоритмом с зафиксированным со- стоянием (steady-state), характеризуется тем, что часть популяции переходит в следующее поколение без каких-либо изменений. Это означает, что входящие в эту часть хромосомы не подвергаются опе- рациям скрещивания и мутации. Часто в конкретных реализациях ал- горитма данного типа на каждой итерации заменяются только одна или две особи вместо скрещивания и мутации в масштабе всей попу- ляции. Именно такой подход принят, например, в программе Evolver [49]. В других программах, в частности, во FlexTool [48], пользователь
4.8. Модификации классического генетического алгоритма 161 может сам установить - какая часть популяции (в соответствии со значениями функции приспособленности) должна передаваться без изменений в следующее поколение. Это подмножество хромосом не подвергается регулярной селекции и без изменений включается в но- вую популяцию 4.8.3. Генетические операторы В классическом генетическом алгоритме операция скрещива- ния представляет собой так называемое точечное скрещивание, рас- смотренное в разд. 4.4 и в примерах 4.4 и 4.5. Также применяются и другие виды скрещивания: двухточечное, многоточечное и равно- мерное [9, 15]. Двухточечное скрещивание (two-point crossover}, как следует из его названия, отличается от точечного скрещивания тем, что по- томки наследуют фрагменты родительских хромосом, определяемые двумя случайно выбранными точками скрещивания. Для пары хромо- сом из примера 4.4 скрещивание в точках 4 и 6 показано на рис. 4.12. Обратим внимание, что такое скрещивание не приводит к уничтоже- нию схемы 1**********1, которую представляет родитель 2. Многоточечное скрещивание (multiple-point crossover} пред- ставляет собой обобщение предыдущих операций и характеризуется соответственно большим количеством точек скрещивания. Например, для трех точек скрещивания, равных 4, 6 и 9, и такого же количества родителей, как на рис. 4.12, результаты скрещивания показаны на рис. 4.13. Аналогично производится скрещивание для пяти или больше- го нечетного количества точек. Очевидно, что одноточечное скрещи- вание может считаться частным случаем многоточечного скрещива- ния. Пример двухточечного скрещивания, представленный на рис. 4.12, можно проиллюстрировать способом, показанным на рис. 4.14. Многоточечное скрещивание для четырех точек, равных 1,4,6, 9 и 4, 6, 9, 11 для той же пары родителей из предыдущих примеров иллюстрируется на рис. 4.15. Многоточечное скрещивание с большим четным количеством точек скрещивания протекает аналогично показанному на рис. 4.15. Скрещивание с нечетным количеством точек можно предста- вить таким же образом, если добавить еще одну точку скрещивания в позиции, равной 0. Приведенный выше пример для трех точек можно представить также, как на рис. 4.15, с точками скрещивания 0, 4, 6, 9. При четном количестве точек хромосома рассматривается как замк- нутое кольцо (см. рис. 4.14 и 4.15), а точки скрещивания выбираются с равной вероятностью по всей его окружности. Равномерное скрещивание (uniform crossover), иначе называе- мое монолитным или одностадийным, выполняется в соответствии со случайно выбранным эталоном, который указывает, какие гены долж ны наследоваться от первого родителя (остальные гены берут- ся от второго родителя). Допустим, что для пары родителей из приме-
162 Глава 4. Гэнетические алгоритмы родитель 1 : [001100111010] | <жРади^ние [001111111010] потомок 1 родитель 2 : [101011011011] J [101000011011] потомок 2 ‘к4 6 Рис. 4.12. Пример двухточечного скрещивания. родитель 1: [001100111010] | с*Радив”|Яе [001111111010] : потомок 1 родитель2: [101011011011] J [101000011011] : потомок2 6 9 Рис. 4.13. Пример трехточечного скрещивания [001111111010] : потомок 1 [101000011011] : потомок 2 Рис. 4.14. Двухточечное скрещивание с точками скрещивания 4 и 6. ров на рис. 4.12 - 4.15 выбран эталон 010110111011, в котором 1 оз- начает принятие гена на соответствующей позиции (locus) от родите- ля 1, а 0 - от родителя 2. Таким образом формируется первый пото- мок. Для второго потомка эталон необходимо считывать аналогично, причем 1 означает принятие гена на соответствующей позиции от ро- дителя 2, а 0 - от родителя 1. В этом случае равномерное скрещива- ние протекает так, как показано на рис. 4.16. Оператор инверсии. Холланд [21] предложил три технологии для получения потомков, отличающихся от родительских хромосом. Это уже известные нам операции скрещивания и мутации, а также операция инверсии. Инверсия выполняется на одиночной хромосоме; при ее осуществлении изменяется последовательность аллелей меж- ду двумя случайно выбираемыми позициями (locus) в хромосоме. Не- смотря на то, что этот оператор был определен по аналогии с биоло- гическим процессом хромосомной инверсии, он не слишком часто применяется в генетических алгоритмах. В качестве примера выпол- нения инверсии рассмотрим хромосому [001100111010] и допустим, что выбраны позиции 4 и 10. Тогда в результате инверсии получим [001101110010].
4.8. Модификации классического генетического алгоритма 163 [001100111010] [101011011011] | [001100111010] [101011011011] потомок! потомок 2 потомок! потомок 2 [001000011010] [101111111011] [001111111010] [101000011011] Рис. 4.15. Многоточечное скрещивание с четырьмя точками скрещивания, равными 1, 4, 6, 9 и 4, 6, 9, 11. родитель! : [001100111010] ) «ршиюяж [юцоШЮЮ] : полянок 1 родитель2: [101011011011] J * [001010011011] : потомок? локус 1 2 3 4 5 6 7 8 9 10 11 12 эталон: 0101101110 1 1 Рис. 4.16. Пример равномерного скрещивания. 4.8.4. Методы кодирования В классическом генетическом алгоритме применяется двоич- ное кодирование хромосом. Оно основано на известном способе за- писи десятичных чисел в двоичной системе, где каждый бит двоично- го кода соответствует очередной степени цифры 2. Например, двоич- ная последовательность [10011] представляет собой код числа 19, по- скольку 1*24 + 0*23 + 0*22 + 1*21 + 1*2° = 19. Такой способ кодирова- ния применялся в примерах 4.1 и 4.5. Для кодирования действитель- ных чисел х, е [а/, £>/] g R реализуется отображение (4.5) так, как это делалось в примерах 4.2 и 4.6. В генетических алгоритмах можно, например, использовать код Грея, который характеризуется тем, что двоичные последовательное-
164 Глава 4. Генетические алгоритмы ти, соответствующие двум последовательным целым числам, отлича- ются только одним битом. Такой способ кодирования хромосом может оказаться оправданным при использовании операции мутации [8]. Логарифмическое кодирование (logarithmic coding) применяет- ся в генетических алгоритмах для уменьшения длины хромосом. Оно используется, главным образом, в задачах многомерной оптимизации с большими пространствами поиска решений. При логарифмическом кодировании первый бит (а) кодовой по- следовательности - это бит знака показательной функции, второй бит (Р) - бит знака степени этой функции, а остальные биты (bin) пред- ставляют значение самой степени: [a/3bin] = (-1)peM)O[bin]l<) где [bin]1() означает десятичное значение числа, закодированного в виде двоичной последовательности bin. Например, [10110] представляет собой кодовую последовательность числа Х1 =(-1)°e(1)1[110]l(> = е-6 = 0,002478752 , а [01010] представляет собой кодовую последовательность числа Х2 = (. -1)1е(1)с[01011<> . _е2 = -7,389056099 Заметим, что таким образом с помощью пяти битов можно за- кодировать числа из интервала [-е7, е7]. Это значительно больший интервал, чем [0, 31] из примера 4.5. Логарифмическое кодирование было реализовано в программе FlexTool [48] в качестве дополнитель- ной опции для задач повышенной сложности. Еще одна модификация классического генетического алгорит- ма основана на кодировании действительными, а не двоичными чис- лами. Это означает, что гены хромосом принимают действительные значения (аллели являются действительными числами). Такой спо- соб кодирования применяется, в частности, в программе Evolver [49]. 4.8.5. Масштабирование функции приспособленности Масштабирование функции приспособленности выполняется, чаще всего, по двум причинам. Во-первых (об этом уже говорилось при обсуждении методов селекции), для предотвращения преждевре- менной сходимости генетического алгоритма. Во-вторых (в конечной фазе выполнения алгоритма), в случае, когда в популяции сохраняет- ся значительная неоднородность, однако среднее значение приспо- собленности ненамного отличается от максимального значения. Мас- штабирование функции приспособленности позволяет предупредить возникновение ситуации, в которой средние и наилучшие особи фор-
4.8. Модификации классического генетического алгоритма 165 мируют практически одинаковое количество потомков в следующих поколениях, что считается нежелательным явлением. Преждевремен- ная сходимость алгоритма заключается в том, что в популяции начи- нают доминировать наилучшие, но еще не оптимальные хромосомы Такая возможность характерна для алгоритмов с селекцией по мето- ду колеса рулетки. Через несколько поколений при селекции, пропор- циональной значению функции приспособленности, популяция будет состоять исключительно из копий наилучшей хромосомы исходной популяции. Представляется маловероятным, что именно эта хромо- сома будет соответствовать оптимальному решению, поскольку ис- ходная популяция - это, как правило, небольшая случайная выборка из всего пространства поиска. Масштабирование функции приспособ- ленности предохраняет популяцию от доминирования неоптималь- ной хромосомы и тем самым предотвращает преждевременную схо- димость генетического алгоритма. Масштабирование заключается в соответствующем преобразо- вании функции приспособленности. Различают 3 основных метода масштабирования: линейное, сигма-отсечение и степенное [15, 33]. Линейное масштабирование (linear scaling) заключается в пре- образовании функции приспособленности F к форме F’ через линей- ную зависимость вида F’=aF + b, где а и b - константы, которые следует подбирать таким образом, что- бы среднее значение функции приспособленности после масштаби- рования было равно ее среднему значению до масштабирования, а максимальное значение функции приспособленности после мас- штабирования было кратным ее среднему значению. Коэффициент кратности чаще всего выбирается в пределах от 1,2 до 2. Необходи- мо следить за тем, чтобы функция F' не принимала отрицательные значения. Сигма-отсечение (sigma truncation) - метод масштабиро- вания, основанный на преобразовании функции приспособленности F к форме F’ согласно выражению F'= F+ (F-с <з), где F обозначает среднее значение функции приспособленности по всей популяции, с - малое натуральное число (как правило, от 1 до 5), а ст - стандартное отклонение по популяции. Если расчетные зна- чения Р отрицательны, то они принимаются равными нулю. Степенное масштабирование (power law scaling) представля- ет собой метод масштабирования, при котором функция приспособ- ленности F преобразуется к форме Р согласно выражению P=Fk, где к - число, близкое 1. Значение к обычно подбирается эмпиричес- ки с учетом специфики решаемой задачи. Например, можно исполь- зовать к = 1,005.
166 Глава 4. Генетические алгоритмы 4.8.6. Ниши в генетическом алгоритме В различных оптимизационных задачах часто приходится иметь дело с функциями, имеющими несколько оптимальных реше- ний. Основной генетический алгоритм в таких случаях находит только глобальный оптимум, но если имеется несколько оптимумов с одним и тем же значением, то он отыскивает только один из них. В некото- рых задачах бывает важным найти не только глобальный оптимум, но и локальные оптимумы (не обязательно все). Концепция реализации в генетических алгоритмах подхода, основанного на известных из би- ологии понятиях ниш и видов, позволяет находить большую часть оп- тимумов. Практически применяемый в генетическом алгоритме метод образования ниш и видов основан на так называемой функции соуча- стия (sharing function). Эта функция определяет уровень близости и степень соучастия для каждой хромосомы в популяции. Функция со- участия обозначается s(c^), где dg- мера расстояния между хромосо- мами ch, и ch/. В программе FlexTool [48] это расстояние определяет- ся по формуле d = у . # Vk^(*k.max -*fc.min)2 где р означает размерность задачи, хк>rTlin и определяют соответ- ственно минимальное и максимальное значение k-ro параметра, х^ и x^j - обозначают соответственно k-й параметр /-й и j-й особей. Очевидно, что расстояние между хромосомами рассчитывается на основе соответствующих им фенотипов. Функция соучастия s(dg) должна обладать следующими свойст- вами: О < s(dij) < 1 для каждого dg, s(0)=1, Jim s(d'j) = O . Одна из функций, для которой эти условия выполняются, име- ет вид s(d )= I ecnnds«7s, [ 0 в противном случае, где с% и го - константы В программе FlexTool <rs = 0,5 * g~1/₽, где q обозначает задава- емое пользователем примерное количество пиков оптимизируемой функции. Значение го принимается равным 1, что означает одинако- вую степень соучастия соседних особей. В этом случае новое значе- ние функции приспособленности хромосомы ch, рассчитывается по формуле
4.8. Модификации классического генетического алгоритма 167 = (4.17) Ё®(0,-) где N обозначает количество хромосом в популяции. Если хромосома ch/ находится в своей нише в одиночестве, то Fs(ch/) = F(ch(j. В противном случае значение функции приспособлен- ности уменьшается пропорционально количеству и степени близости соседствующих хромосом. Из выражения (4.17) следует, что увеличе- ние количества похожих друг на друга (т.е. принадлежащих к одной и той же нише) хромосом ограничено, поскольку такое увеличение при- водит к уменьшению значения функции приспособленности. В про- грамме FlexTool при реализации генетического алгоритма с нишами представляемый метод используется на завершающем этапе обра- ботки каждого поколения. Имеются также и различные модификации процедуры образо- вания ниш для генетического алгоритма. Например, можно опреде- лить меру расстояния между хромосомами не на уровне фенотипа (т.е. параметров задачи), а на уровне генотипа. В этом случае аргу- ментом функции соучастия будет расстояние Хемминга между кодо- выми последовательностями [15]. Известны и другие подходы к моди- фикации функции приспособленности для генетического алгоритма с нишами [33]. 4.8.7. Генетические алгоритмы для многокритериальной оптимизации Большинство задач, решаемых при помощи генетических алго- ритмов, имеют один критерий оптимизации. В свою очередь, много- критериальная оптимизация основана на отыскании решения, одно- временно оптимизирующего более чем одну функцию. В этом случае ищется некоторый компромисс, в роли которого выступает решение, оптимальное в смысле Парето. При многокритериальной оптимиза- ции выбирается не единственная хромосома, представляющая собой закодированную форму оптимального решения в обычном смысле, а множество хромосом, оптимальных в смысле Парето. Пользователь имеет возможность выбрать оптимальное решение из этого множест- ва. Рассмотрим определение решения, оптимального в смысле Паре- то (символами х, у будем обозначать фенотипы). Определение 4.3 Решение х называется доминируемым, если существует реше- ние у, не хуже чем х, т.е. для любой оптимизируемой функции //,/=1,2...т, 4(х) < 7(У) при максимизации функции 7/, Л(х) > 7Ду) при минимизации функции f.
168 Глава 4. Гэнетические алгоритмы Определение 4.4 Если решение не доминируемо никаким другим решением, то оно называется недоминируемым или оптимальным в смысле Паре- то. Существует несколько классических методов, относящихся к многокритериальной оптимизации. Один из них - это метод взве- шенной функции (method of objective weighting), в соответствии с ко- торым оптимизируемые функции f, с весами w, образуют единую функцию Ф<) = XWifi№ ’ где Wi g [0,1] и X wp 1 Различные веса дают различные решения в смысле Парето. Другой подход известен как метод функции расстояния (method of distance function). Идея этого метода заключается в сравне- нии значений fj(x) с заданным значением у,-, т.е. f(x) = [fl/i W-у,- |r] При этом, как правило, принимается г = 2. Это метрика Эвкли- да. Еще один подход к многокритериальной оптимизации связан с разделением популяции на подгруппы одинакового размера (sub- populations), каждая из которых «отвечает» за одну оптимизируемую функцию. Селекция производится автономно для каждой функции, однако операция скрещивания выполняется без учета границ под- групп [33]. Алгоритм многокритериальной оптимизации реализован в про- грамме FlexTool [48]. Селекция выполняется турнирным методом, при этом «лучшая» особь в каждой подгруппе выбирается на основе функции приспособленности, уникальной для данной подгруппы. Схе- ма такой селекции в случае оптимизации двух функций представлена на рис. 4.17; на этом рисунке и Р2 обозначают две различные функ- ции приспособленности. Эта схема аналогична схеме, изображенной на рис. 4.10, с той разницей, что на более ранней схеме все подгруп- пы оценивались по одной и той же функции приспособленности. «На- илучшая» особь из каждой подгруппы смешивается с другими особя- ми, и все генетические операции выполняются так же, как в генетиче- ском алгоритме для оптимизации одной функции. Схему на рис. 4.17 можно легко обобщить на большее количество оптимизируемых функций. Программа FlexTool обеспечивает одновременную оптими- зацию четырех функций.
4.8. Модификации классического генетического алгоритма 169 Рис. 4.17. Схема турнирной селекции в случае многокритериальной оптимизации по двум функциям. 4.8.8. Генетические микроалгоритмы Генетический микроалгоритм - это модификация классическо- го генетического алгоритма, предназначенная для решения задач, не требующих больших популяций и длинных хромосом. Такие алгорит- мы применяются при ограниченном времени вычислений в случае, когда решение (не обязательно глобальное) необходимо найти быст- ро. Речь идет о том, чтобы не производить трудоемких Вычислений, связанных с большим количеством итераций. Генетические микроал- горитмы обычно находят несколько худшие решения, однако эконо- мят вычислительные ресурсы компьютера. В качестве примера мож- но привести генетический микроалгоритм программы FlexTool [48]. Он подразделяется на шесть шагов. 1. Сформировать популяцию с числом особей, равным пяти. Можно либо случайным образом выбрать все пять хромосом, либо сохранить одну «хорошую» хромосому, полученную на предыдущих итерациях, и случайным образом «добрать» четыре остальные хро- мосомы.
170 Глава 4. Гэнетические алгоритмы 2. Рассчитать значения функции приспособленности хромо- сом в популяции и выбрать лучшую хромосому. Обозначить ее номе- ром 5 и перенести в следующее поколение (элитарная стратегия). 3. Выбрать для репродукции остальные четыре хромосомы на основе детерминированного метода турнирной селекции (наилучшая хромосома также участвует в соревновании за право включения ее копии в родительский пул). В ходе турнирной селекции хромосомы группируются случайным образом, при этом соседствующие пары со- перничают за оставшиеся четыре места. Следует обращать внима- ние на то, чтобы родительская пара не составлялась из двух копий одной и той же хромосомы. 4. Выполнить скрещивание с вероятностью 1; вероятность мутации принять равной 0. 5. Проверить сходимость алгоритма (с использованием соот- ветствующей меры сходимости генотипов или фенотипов). В случае обнаружения сходимости вернуться к шагу 1. 6. Перейти к шагу 2. Заметим, что в генетическом микроалгоритме размер популя- ции предполагается небольшим и фиксированным. Применяется эли- тарная стратегия, которая предотвращает потерю «хороших» хромо- сом. Поскольку размер популяции невелик, то выполняется детерми- нированная селекция. Скрещивание проводится с вероятностью 1. Мутация не требуется, так как достаточное разнообразие обеспечива- ется формированием новой популяции при каждом «рестарте» алго- ритма, т.е. в случае перехода к шагу 1 при обнаружении сходимости. Процедура «старта» и «рестарта» алгоритма предназначена для пре- дотвращения преждевременной сходимости; генетический микроал- горитм всегда ищет наилучшие решения. Главная цель его примене- ния заключается в скорейшем нахождении оптимального (или почти оптимального) решения. 4.9. Примеры оптимизации функции с помощью программы FlexTool Применение генетического алгоритма для оптимизации раз- личных функций будем иллюстрировать примерами, реализованны- ми на IBM PC совместимом компьютере с использованием програм- мы FlexTool [48]. Программа FlexTool позволяет выбирать различные варианты генетического алгоритма - такие, как классический (regular), с частич- ной заменой популяции (steady-state) или микроалгоритм (micro). По- мимо того, предоставляется возможность выбрать метод селекции (рулетка, турнирный или ранговый), а также количество точек скрещи- вания и способ кодирования (двоичное или логарифмическое). В дан- ном случае под двоичным кодированием понимается способ, приме- нявшийся в примерах 4.1, 4.5 и 4.6, а логарифмическое кодирование было представлено в п. 4.8.4. Программа FlexTool также позволяет одновременно оптимизировать несколько функций и содержит алго-
4.9. Примеры оптимизации функции с помощью программы FlexTool 171 ритм создания ниш для нахождения более чем одного оптимума (по- мимо единственного глобального решения). FlexTool взаимодейству- ет с программой MATLAB и запускается в ее окне. Для определения оптимизируемых функций используются файлы с расширением .т (так называемые m-файлы), служащие для записи математических функций в программе MATLAB. В рабочем окне MATLAB'a также можно считывать значения различных переменных, используемых программой FlexTool, что дает, в частности, возможность просмотра популяций хромосом. Программа FlexTool требует от пользователя ввести размер- ность популяций, вероятности скрещивания и мутации, интервалы из- менения параметров задачи (пространства поиска), а также условия останова алгоритма. Предоставляется возможность прервать выпол- нение алгоритма в произвольный момент времени с последующим возобновлением его работы с точки прерывания (так называемый warm-start) либо с начальной точки (cold-start) Рассмотрим примеры оптимизации функции одной, двух и не- скольких переменных. В качестве иллюстраций берутся графики большинства оптимизируемых функций (полученные средствами про- граммы MATLAB) и сформированные программой FlexTool графики функций приспособленности для конкретных итераций генетического алгоритма. Пример 4.12 демонстрирует способ решения задачи, рассмот- ренной в примере 4.5, но при использовании генетического алгорит- ма, реализованного в программе FlexTool Для такой простой задачи лучше всего подходит генетический микроапгоритм, представленный в п. 4.8.8. В отличие от примера 4.‘5, в примере 4.12 ищется минимум функции, заданной формулой (4.1). Пример 4.12 С помощью генетического микроалгоритма программы FlexTool найти минимум функции, заданной формулой (4.1), т.е f(x) = 2х2 + 1 для целых значений х в интервале от 0 до 31. Генетический микроапгоритм программы FlexTool выполняется на популяции с размерностью, равной пяти. Селекция производится детерминированным турнирным методом с применением элитарной стратегии, благодаря которой лучшая хромосома текущей популяции всегда переходит в следующее поколение. Производится одноточеч- ное скрещивание. Вероятность скрещивания принимается равной 1, а вероятность мутации - равной 0. Длина хромосом равна пяти, что очевидно следует из возмож- ности кодирования 32 целых чисел (для указанного интервала изме- нения переменной х) пятью битами двоичной последовательности. В программе FlexTool применяется двоичное кодирование, аналогич- ное представленному в примерах 4.1 и 4.5, однако для удобства про- граммной реализации используется обратный код, т.е. на первой по-
172 Глава 4. Ггнетические алгоритмы зиции находится наименее значащий бит, а на последней - наиболее значащий. Такой способ записи прямо противоположен повсеместно распространенной форме записи двоичных чисел. Существенным элементом выполнения генетического микроал- горитма считается процедура «рестарта», т.е. запуска его с начальной точки при обнаружении сходимости (п. 4.8.8). В программе FlexTool рестарт производится периодически после выполнения установлен- ного количества итераций. По умолчанию оно равно 7, примеры вы- полнялись именно при этом значении. Исходная популяция - на первой итерации генетического мик- роалгоритма - состоит из следующих хромосом: [01100] [11000] [01111] [10101] [11001] со значениями фенотипов 6 3 30 21 19, которые являются действительными целыми числами из интервала от 0 до 31. Наименьшее значение функции приспособленности в этой по- пуляции имеет стоящая на втором месте хромосома с фенотипом, равным трем. Оно равно 19. Наибольшее значение функции приспо- собленности у стоящей на третьем месте хромосомы с фенотипом, равным 30, составляет 1801. Легко подсчитать, что среднее значение функции приспособленности будет равно 699,8. Популяция, полученная в результате селекции и скрещивания, становится текущей для следующей (второй) итерации. Она характе- ризуется средним значением функции приспособленности, равным 173,8. Заметно, что это значение меньше, чем рассчитанное для пер- вого поколения. Наибольшее значение функции приспособленности, равное 723, имеет хромосома с фенотипом 19. Это наихудшая особь данной популяции. «Наилучшая к текущему моменту» хромосома с фенотипом, равным двум, имеет минимальное значение функции приспособленности, которое равно девяти. В третьем поколении среднее значение функции приспособ- ленности уменьшается до 13. Наибольшее значение для хромосомы с фенотипом, равным трем, составляет 19, а наименьшее значение функции приспособленности для этой популяции, также, как и для предыдущей, равно девяти. «Наилучшей к текущему моменту» про- должает оставаться хромосома с фенотипом, равным двум В следующих четырех поколениях (от четвертого до седьмого) среднее значение функции приспособленности по популяции совпа- дает с наибольшим и наименьшим значениями, равными девяти. Это означает, что популяция состоит из одинаковых хромосом с феноти- пами, равными двум. Следовательно, наблюдается сходимость к ре- шению, которое не является оптимальным. До этого момента алгоритм выполнялся аналогично классичес- кому генетическому алгоритму, причем селекция проводилась детер- минированным турнирным методом с сохранением наилучшей хро- мосомы из популяции (элитарная стратегия).
4.9. Примеры оптимизации функции с помощью программы FlexTool 173 После семи итераций начинается новый цикл выполнения гене- тического микроалгоритма. Производится его «рестарт», т.е. повтор- ный запуск алгоритма с начальной точки - случайного выбора четы- рех новых хромосом для включения в популяцию. Из особей преды- дущего поколения сохраняется только одна - «наилучшая к текущему моменту» хромосома с фенотипом, равным двум. После селекции и скрещивания в очередном (девятом) поколе- нии получаем популяцию со средним значением функции приспособ- ленности, равным 481,4, Наибольшее значение функции приспособ- ленности, равное 1579, имеет хромосома с фенотипом 28, а наимень- шее значение, равное девяти, - с фенотипом, равным двум. На следующих пяти итерациях второго цикла генетического ми- кроалгоритма мы вновь получаем популяцию, состоящую из одинако- вых хромосом с фенотипом, равным двум, для которых среднее, наи- большее и наименьшее значения функции приспособленности равны девяти. Следовательно, опять наблюдается сходимость к решению, которое не является оптимальным С пятнадцатого поколения начинается очередной (третий) цикл выполнения генетического микроалгоритма. Он также открывается случайным выбором четырех новых хромосом и формированием по- пуляции с сохранением «наилучшей к текущему моменту» особи с фенотипом, равным двум. На девятнадцатой итерации генетического микроалгоритма, т.е. в пятом поколении третьего цикла (состоящего из семи итераций) возникает сходимость к оптимальному решению, которым оказывает- ся хромосома с фенотипом, равным 0. Среднее, наибольшее и наи- меньшее значения функции приспособленности по всей популяции с 19 по 21 поколение остается равным 1. Далее выполняются очередные циклы по семь итераций, начи- нающиеся «рестартом» алгоритма, и в каждом из них наблюдается сходимость к оптимальному решению, т.е. к хромосоме с фенотипом, равным 0. Конечно, задачу из примера 4.12 можно решить с применением генетического алгоритма с произвольной размерностью популяций, при задании пользователем значений вероятностей скрещивания и мутации, а также при выборе им одного из методов селекции (рулет- ки, турнирного или рангового). Таким образом, вместо микроалгорит- ма можно применить реализованный в программе FlexTool обычный генетический алгоритм (regular). Однако необходимо отметить, что при его использовании на популяциях малой размерности с вероятно- стями скрещивания и мутации, соответственно равными 1 и 0, а так- же при выполнении селекции методом рулетки (так, как в примере 4.5) весьма часто встает проблема преждевременной сходимости этого алгоритма. Результат значительно улучшается, если вероятность му- тации отличается от нуля (например, если она принимается равной 0,1). Несмотря на то, что мутация играет определенно второстепен- ную роль по отношению к скрещиванию, она оказывается необходи- мой, поскольку обеспечивает разнообразие хромосом в популяции.
174 Глава 4. Ггнетическив алгоритмы Функция приспособле! (наилучшая) 1,04 1,03 1,02 1,01 1,00 123456789 Ю Поколения Рис. 4.18. Наименьшее значение функции приспособленности в популяции на последовательных итерациях генетического алгоритма для примера 4.13. Следует еще раз подчеркнуть, что при выполнении генетического ми- кроалгоритма разнообразие в популяции достигается благодаря про- цедуре рестарта алгоритма в случае обнаружения его сходимости В этом случае мутация оказывается излишней. Следующий пример относится к задаче, похожей на задачу примера 4.12. Минимизируется та же функция, однако переменная х принимает действительные значения из интервала [-5, 5]. По этой причине пространство поиска оказывается большим, чем в примере 4.12. Для решения данной задачи применим обычный генетический алгоритм программы FlexTool и селекцию методом рулетки. Заметим, что этот метод, который пригоден и для селекции в случае максими- зации функции, в программе FlexTool может использоваться только для задач минимизации. Это обусловлено адаптацией программы к требованиям пользователей, которые чаще решают задачи миними- зации (например, погрешностей, затрат и т.п.), чем задачи максимиза- ции. Пример 4.13 С помощью генетического алгоритма программы FlexTool най- ти минимум функции, заданной формулой (4.1) для х е [-5, 5] с точ- ностью до 0,1. Поставленная задача решается путем использования обычного генетического алгоритма (regular) с селекцией методом рулетки. За- метим, что поиск проводится в пространстве, состоящем из 100 воз- можных решений. Длина хромосом (в соответствии с формулой 4.4)) должна быть равной семи. Пусть размерность популяции составляет 11 особей. Будем применять одноточечное скрещивание с вероятнос- тью 0,9, а вероятность мутации установим равной 0,1.
4.9. Примеры оптимизации функции с помощью программы FlexTool 175 Исходная популяция состоит из 11 хромосом длиной семь би- тов, соответствующих следующим фенотипам: 3,4 2,4 2,0 5,0 1.4 0.1 3,0 -2,3 2,3 5,0 -4,8 Наилучшее решение, т.е. хромосома с фенотипом, равным 0, для которой значение функции приспособленности составляет 1, по- лучено на седьмой итерации алгоритма. На первой итерации наи- большее значение функции приспособленности по всей популяции равно 51, среднее - 22,0745, а наименьшее - 1,02. Однако в седьмом поколении наибольшее значение функции приспособленности равно 45,18, среднее по популяции составляет 5,9909, а наименьшее значе- ние соответствует лучшей хромосоме и равно 1. График на рис. 4.18 показывает наименьшее значение функции приспособленности в по- пуляции на последовательных итерациях генетического алгоритма. Аналогично можно применять генетический алгоритм для на- хождения решения с еще большей точностью, например, для двух или трех знаков после запятой. При этом будет соответственно рас- ширяться пространство поиска и увеличиваться длина хромосом. Следующий пример относится к задаче нахождения максимума функции, имеющей локальные максимумы. Покажем, что генетичес- кий алгоритм находит глобальный оптимум. Для поиска максимума будем применять реализованный в программе FlexTool турнирный метод, поскольку метод колеса рулетки в ней работает только для за- дач минимизации. В программе FlexTool по умолчанию приняты следующие (наи- лучшие для большинства решаемых задач) значения параметров ге- нетического алгоритма: - размерность популяции = 77, - вероятность скрещивания = 0,77, - вероятность мутации = 0,0077. В приводимых далее примерах используются указанные веро- ятности скрещивания и мутации, однако размерность популяций бу- дет выбираться в зависимости от размерности решаемых задач. Пример 4.14 С помощью генетического алгоритма программы FlexTool най- ти минимум функции, заданной формулой 7(х) =----\1-----------------------6 (х - 0.3)2 + 0,01 (х - 0,9)2 + 0,04 ДЛЯ X G [-1, 2] с точностью до 0,01. График оптимизируемой функции представлен на рис. 4.19. Об- ратим внимание на то, что функция имеет не только глобальный мак- симум, но и локальные оптимумы. Для нахождения глобального мак- симума применяется генетический алгоритм с турнирной селекцией в подгруппах по две особи. Размерность популяции равна 21; вероят- ности скрещивания и мутации составляют, соответственно 0,77 и 0,0077; используется одна точка скрещивания.
176 Гпава 4. Гэнетические алгоритмы Хромосомы состоят из девяти генов со значениями 0 или 1. На рисунке 4.20 более светлой линией показана динамика изменения «наилучшего», в рассматриваемом случае - максимального значения функции приспособленности в популяции при увеличении количества поколений. Более темная линия на втором графике иллюстрирует из- менение «наихудшего» значения функции приспособленности в попу- ляции при последовательной смене поколений. На оси ординат обоих графиков указаны значения функции приспособленности (fitness value). На оси абсцисс второго графика указаны номера поколений, которые соответствуют числам на оси абсцисс первого графика, ум- ноженным на размерность популяции, т.е. на 21. Из графиков видно, что «наилучшая» хромосома в первом и втором поколениях характеризуется значением функции приспособ- ленности, близким к 20. В то же время значение функции приспособ- ленности «наихудшей» хромосомы примерно равно -5. В четвертом поколении это значение приблизилось к -4, а значение функции при- способленности «наилучшей» хромосомы возросло до 70. В нижней правой части рис. 4.20 показаны значения параметра задачи, т.е. пе- ременной х со значениями в интервале от -1 до 2; другими словами, это фенотипы, соответствующие отдельным хромосомам рассматри- ваемой популяции. Заметно, что популяция характеризуется значи- тельным разнообразием. На рис. 4.21 популяция более однородна, а на рис. 4.22 зафиксировано только одно значение параметра, рав- ное 0,3; это означает, что все хромосомы в популяции равны между собой. В рассматриваемом примере мы имеем дело только с одним параметром задачи Р1, который совпадает с Р2, поэтому все точки располагаются вдоль прямой так, как это показано на рис. 4.20 и 4.21 Графики на рис. 4.21 демонстрируют увеличение «наилучше- го» значения функции приспособленности от около 47 в третьем по- колении до примерно 70 в четвертом и примерно 93 - в пятом поко- лении, а в седьмом поколении достигается значение, равное 96,5. Это максимальная величина, которая остается неизменной в следую- щих поколениях, что видно на рис. 4,22. Таким образом, на седьмой итерации алгоритма найдено «наилучшее» решение - хромосома со значением фенотипа, равным 0,3, для которого значение функции приспособленности составляет 96,5. Нижние графики на рис. 4.21 и 4.22 также показывают, как изменяется «наихудшее» значение функции приспособленности от 3 до 16 поколения. В шестнадцатом поколении это значение равно 92,81. Среднее значение функции при- способленности в популяциях очередных поколений изменяется от 2,24 на первой итерации алгоритма до 96,32 на шестнадцатой итера- ции, что показывает таблица 4.4. Пример 4.15 С помощью генетического алгоритма программы FlexTool най- ти минимум функции, заданной формулой f(x) = - х • ып(10ях) + 1 для х е [-1, 2] с точностью до 0,0001.
4.9. Примеры оптимизации функции с помощью программы FlexTool 177 Таблица 4.4. Среднее значение функции приспособленности в популя- циях очередных поколений генетического алгоритма программы FlexTool для примера 4.14 Номер поколения 1 2 3 4 5 6 7 8 Среднее значение функции приспособленности 2.24 7.76 14,15 20,08 32,49 50,59 65,47 75,89 Номер поколения 9 10 11 12 13 14 15 16 Среднее значение функции приспособленности 85,66 89,61 93,39 96,15 86,98 91,66 95,86 96,32 Таблица 4.5. «Наилучшее» значение функции приспособленности для первых десяти поколений генетического алгоритма программы FlexTool для примера 4.15 Номер поколения 1 2 3 4 5 «Наилучшее» значение функции приспособленности -0,4197 -0,6247 -0.6256 -0.8498 -0,8499 Номер поколения 6 7 8 9 10 «Наилучшее» значение функции приспособленности -0,8499 -0,8502 -0,8502 -0,8502 -0,8503 График оптимизируемой функции представлен на рис.4.23. Эта функция имеет много локальных оптимумов. Для нахождения глобального минимума на интервале от -1 до 2 применяется (так же, как и в примере 4.14) генетический алгоритм с турнирной селекцией в подгруппах по две особи. Выполняется од- ноточечное скрещивание с вероятностью 0,77; вероятность мутации равна 0,0077. Размерность популяции увеличена до 55. Длина хромо- сом в этом случае составляет 15 битов. Графики, демонстрирующие изменения значений функции приспособленности при смене первых четырех поколений, по аналогии с примером 4.14 изображены на рис. 4.24, а графики последующих изменений - на рис. 4,25. «Наилучшее» решение дает хромосома со значением феноти- па 1,85, для которой функция приспособленности равна -0,8503. Это решение получено в десятом поколении. В таблицу 4.5 собраны «на- илучшие» значения функции приспособленности на первых десяти итерациях алгоритма. Значение фенотипа хромосомы с «наилуч-
178 Глава 4. Гэнетические алгоритмы шим» значением функции приспособленности для второго поколения равно 1,645, а для четвертого и последующих поколений - 1,85. Пример 4.16 С помощью генетического алгоритма программы FlexTool най- ти минимум функции двух переменных Дх1,х2)=х12 + х2 для х^ х2 е [-Ю, 10] с точностью до 0,0001 График оптимизируемой функции представлен на рис. 4.26. Эта функция имеет один минимум, равный 0, в точке (0, 0). Применяется генетический алгоритм с турнирной селекцией в подгруппах по две особи, с одной точкой скрещивания и принятыми по умолчанию значениями вероятностей скрещивания 0,77 и мутации 0,0077, а также с размерностью популяции, равной 77. Длина хромосом составляет 36 битов, при этом каждую пере- менную хъ х2 представляют 18 генов. Графики, демонстрирующие из- менения значений функции приспособленности при смене первых че- тырех поколений при выполнении генетического алгоритма, изобра- жены на рис. 4.27, а графики последующих изменений - на рис. 4.28 -4.31. По верхнему графику видно, как изменяется «наилучшее» зна- чение функции приспособленности - от значения 4,3543 в первом по- колении (по 77 расчетным точкам) до нулевого значения. Во втором и третьем поколениях эта функция имела значение 0,0608, в четвертом и пятом - 0,0586, в шестом - 0,0421, в седьмом - 0,0397, в восьмом - 0,0278, в девятом - 0,0192, в десятом и одиннадцатом - 0,0191, в двенадцатом - 0,0119, в тринадцатом - 0,0105, с четырнадцатого по шестнадцатое - 0,0050, в семнадцатом и восемнадцатом - 0,0011, в девятнадцатом - 0,0001, а в двадцатом и последующих поколениях - значение 0,0000. Весь комплекс изменений показан на рис. 4.33, а перечисленные «наилучшие» значения функции приспособленнос- ти выделены на рис. 4.32. Таким образом, в результате выполнения генетического алгоритма «наилучшее» решение найдено в двадца- том поколении. Нижние левые графики на рис. 4.27 - 4.31 показывают измене- ния «наихудшего» (верхняя кривая) и среднего значения функции приспособленности особей популяции при смене поколений. Измене- ние «наилучшего» значения функции приспособленности на этих гра- фиках почти незаметно, поскольку соответствующая кривая практиче- ски совпадает с горизонтальной осью, так как значения близки к 0. Комплексная динамика средних значений функции приспособленнос- ти на протяжении всех поколений демонстрируется на рис. 4.34. Об- ратим внимание на то, что значения функции приспособленности «на- ихудших» хромосом в отдельных популяциях довольно велики и, оче- видно, значительно отличаются от оптимального значения. Динамика изменения «наихудших» значений функции приспособленности при смене поколений показана на рис. 4.35.
4.9. Примеры оптимизации функции с помощью программы FlexTool 179 На правых нижних графиках рисунков 4.27 - 4.31 показаны зна- чения параметров задачи Р1 и Р2, соответствующих переменным хъ х2, т.е. фенотипы (в интервале от -10 до 10). Наибольшее разнообра- зие особей наблюдается в начальных поколениях. В последующем в составе популяций появляется все больше одинаковых хромосом. Напомним, что «наилучшее» решение, равное 0,0000, получе- но в двадцатом поколении (рис. 4.32). Однако следует обратить вни- мание на динамику изменения «наилучшего» значения функции при- способленности, показанную на рис. 4.30. Это значение находилось в интервале от 0 до 0,0002, начиная с 27 и по 32 поколение (т.е. с 2Л*П до 32*77 расчетной точки функции приспособленности). Для «наилучшей» хромосомы со значениями фенотипов (после 64 поко- лений), равными 0,0000 и 0,0001, значение функции f(x1t х2) составля- ет 0,00000001 Пример 4.17 С помощью генетического алгоритма программы FlexTool най- ти минимум функции двух переменных f(x1,x2) = x12+^xj+3 для Xi, х2 е [-10, 10] с точностью до 0,001. Данная задача аналогична предыдущей (пример 4.16). График оптимизируемой функции представлен на рис. 4.36. Эта функция имеет один минимум, равный 3, в точке (0, 0) Применяется генетический алгоритм с турнирной селекцией в подгруппах по две особи с одной или двумя точками скрещивания, а также с селекцией по методу рулетки с одной точкой скрещивания. Также как и в предыдущем примере, используются принятые по умол- чанию значения вероятностей скрещивания 0,77 и мутации 0,0077, а также размерность популяции, равная 77. В этом случае с учетом меньшей требуемой точности длина хромосом составляет 22 бита - по 11 генов на каждую переменную. Ввиду сходства рассматриваемого и предыдущего примеров графики изменения значений функции приспособленности для кон- кретных поколений не приводятся. Они аналогичны графикам на рис. 4.27 - 4.31. Принципиальное различие заключается в том, что в дан- ном случае «наименьшее» значение функции приспособленности стремится к значению, равному 3. В данном случае представляют интерес графики общей дина- мики изменения «наилучшего» значения функции приспособленности (подобные графику на рис. 4.33) для использованных методов селек- ции. График для турнирной селекции с одной точкой скрещивания по- казан на рис. 4.37, а с двумя точками скрещивания - на рис. 4.38. За- метно, что во втором случае «наилучшее» решение (т.е. значение функции приспособленности, равное 3) было найдено быстрее. Ана- логичный график для селекции методом рулетки представлен на рис. 4.39. Можно сделать вывод, что турнирный метод позволяет бы-
180 Гпава 4. Гэнетические алгоритмы стрее находить минимальное значение оптимизируемой функции, чем метод рулетки. Пример 4.18 С помощью генетического алгоритма программы FlexTool най- ти минимум функции двух переменных х2) = (х2 + х2 -11)2 + (X, -Г xf - 7)2 для xv х2 е [-10, 10] с точностью до 0,001. График оптимизируемой функции представлен на рис. 4.40. Эта функция имеет минимум, равный 0, в следующих точках: (3, 2), (3,58, -1,85), (-2,80, 3,13), (-3,78, -3,28). В случае, когда функция имеет минимальное (или максималь- ное) значение в нескольких различных точках, и это значение являет- ся глобальным оптимумом, генетический алгоритм находит, как пра- вило, одну из этих точек. Повторный запуск алгоритма может принес- ти тот же самый результат либо обнаружить координаты другой точки с таким же оптимальным значением функции. В примере вначале применялся генетический алгоритм с тур- нирной селекцией в подгруппах по две особи с одной точкой скрещи- вания и принятые по умолчанию значения вероятностей скрещивания 0,77 и мутации 0,0077, а также размерность популяции, равная 77. Наилучшим решением, найденным в этих условиях, стала точка с ко- ординатами (-3,78, -3,28). Динамику изменения «наилучшего» значения функции приспо- собленности показывают графики на рис. 4.41 - 4.43. Для 32 поколе- ний это значение равно 0,0474, а в 46 поколениях достигается вели- чина 0,0005. На этих же рисунках представлено и изменение «наихуд- шего» и среднего значений функции приспособленности по популя- ции при последовательной смене поколений, а также распределение особей в популяции (параметры Р1 и Р2). В дальнейшем алгоритм был выполнен еще один раз, причем для эксперимента применялась селекция методом рулетки, а вероят- ности скрещивания и мутации были установлены равными 0,6 и 0,001 соответственно. Графики, иллюстрирующие изменение значений функции приспособленности при последовательной смене поколе- ний, представлены на рис. 4.44 и 4.45. «Наилучшее» значение функ- ции приспособленности в 70 поколениях равно 0,0038, а начиная с 83 поколения оно составляет 0,0009. «Наилучшей» особью оказалась хромосома со значениями фенотипов -2,80 и 3,13. Таким образом, в этом эксперименте была найдена другая точка с координатами (-2,80, 3,13), в которой минимизируемая функция принимает нулевое значение. Попытки поиска других оптимальных точек, соответствующих «наилучшему» решению, можно продолжать с применением того же алгоритма либо с использованием альтернативных методов селек-
4.9. Примеры оптимизации функции с помощью программы FlexTool 181 ции Иногда такие попытки приходится повторять по несколько раз, если они приводят к полученным ранее решениям Пример 4.19 С помощью генетического алгоритма программы FlexTool най- ти минимум и максимум функции f(x1,x2) = 2(1 х1)2е -7(-^--xf -xf )е_х? -le4x’+1)2“^ для X-], x2 e [-3, 3] с точностью до 0,01. График оптимизируемой функции представлен на рис. 4.46. Эта функция двух переменных имеет несколько так называемых пиков. Ее контурный график изображен на рис. 4.47. Применяется генетический алгоритм с турнирной селекцией в подгруппах по две особи с одной точкой скрещивания; по умолча- нию приняты значения вероятностей скрещивания 0,77 и мутации 0,0077, а также размерность популяции, равная 77. В точке (-1,4, 0,17) найден минимум, равный -1,907, а в точке (-0,39, -0,99) - мак- симум, равный 5,638. Точнее говоря, при минимизации наилучшим решением оказалась хромосома со значениями фенотипов -1,4 и 0,17, для которой значение функции приспособленности составляет -1,907, а при максимизации - хромосома со значениями фенотипов -0,39 и -0,99 со значением функции приспособленности 5,638. Дина- мика изменения значений функции приспособленности при последо- вательной смене поколений для случая минимизации показана на рис. 4.48 - 4.52, а для случая максимизации - на рис. 4.53 - 4.55. Обратим внимание на распределение особей в популяции в за- висимости от номера поколения. Вначале (рис. 4.48) заметно доволь- но большое разнообразие и относительно равномерное распределе- ние отдельных точек на плоскости, заданной осями Р1 и Р2 в интер- вале от -3 до 3. На рис. 4.49 (четвертое поколение) наблюдается от- четливое их смещение в направлении значений Р1, близких к -2, а на рис. 4.50 - группирование поблизости значений Р2, Примерно равных 0,5. На рис. 4.51 большинство точек находится в окрестности оптимального решения с координатами Р1 = -1,4 и Р2 = 0,17. Из рис. 4.52 следует, что большинство хромосом в популяции совпадает с «наилучшей» особью, для которой функция приспособленности принимает минимальное значение, равное -1,907. Также необходимо добавить, что этого минимального значения функция приспособлен- ности достигла в шестнадцатом поколении выполнения генетическо- го алгоритма. Верхние графики на рис. 4.48 - 4.52 иллюстрируют из- менение «наилучшего» значения функции приспособленности при по- следовательной смене поколений (числа на оси абсцисс соответст- вуют номерам поколений, умноженным на 77). Нижние левые графи- ки на этих рисунках отображают динамику изменения «наилучшего» и «наихудшего» значений функции приспособленности при последо- вательной смене поколений.
182 Глава 4 Гэнетические алгоритмы Рис. 4.19. График функции Цх) из примера 4.14. Рис. 4.20. Графики, показывающие значения функции приспособленности для первых четырех поколений в генетическом алгоритме программы FlexTool из примера 4.14.1 1 На этом и последующих рисунках приводятся без перевода скрин-шоты выполнения англоязычных программ - Прим перев.
4.9. Примеры оптимизации функции с помощью программы FlexTool 183 Рис. 4.22. Графики, показывающие значения функции приспособленности для последних четырех поколений в генетическом алгоритме программы FlexTool в при- мере 4 14
184 Глава 4 Гэнетические алгоритмы Рис. 4.23. График функции Цх) из примера 4.15. Рис. 4.24. Графики, показывающие значения функции приспособленности для первых четырех поколений в генетическом алгоритме программы FlexTool из примера 4.15.
4.9. Примеры оптимизации функции с помощью программы FlexTool 185 Рис. 4.25. Графики, показывающие значения функции приспособленности с третьего по восьмое поколение в генетическом алгоритме программы FlexTool из примера 4.15. -« -то Рис. 4.26. График функции /(х,. х2) из примера 4.16.
186 Гпава 4 Гэнетические алгоритмы Рис. 4.27. Графики, показывающие значения функции приспособленности для первых четырех поколений в генетическом алгоритме программы FlexTool из примера 4.16. Рис. 4.28. Графики, показывающие значения функции приспособленности со второго по восьмое поколение в генетическом алгоритме программы FlexTool из примера 4.16.
4.9. Примеры оптимизации функции с помощью программы FlexTool 187 Рис. 4.29. Графики, показывающие значения функции приспособленности с десятого по шестнадцатое поколение в генетическом алгоритме программы FlexTool из при- мера 4.16 Рис 4.30. Графики, показывающие значения функции приспособленности с двадцать шестого по тридцать второе поколение в генетическом алгоритме программы FlexTool из примера 4.16.
188 Глава 4 Гэнетические алгоритмы # of Gens Рис. 4.31. Графики, показывающие значения функции приспособленности с пятьдесят девятого по шестьдесят четвертое поколение в генетическом алгоритме программы FlexTool из примера 4.16. Рис. 4.32. Перечень наилучших значений функции приспособленности в популяциях с первого по шестьдесят четвертое поколение в генетическом алгоритме программы FlexTool из примера 4.16.
4.9. Примеры оптимизации функции с помощью программы FlexTool 189 10 20 30 40 SO 60 70 Поколения Рис. 4.33. Динамика изменения «наилучших» значений функции приспособленности при последовательной смене поколений в генетическом алгоритме программы FlexTool из примера 4 16. °О 70 20 30 40 SO SO Поколения Рис. 4.34. Динамика изменения средних значений функции приспособленности при последовательной смене поколений в генетическом алгоритме программы FlexTool из примера 4.16.
190 Глава 4 Гэнетические алгоритмы Поколения Рис. 4.35. Динамика изменения «наихудших» значений функции приспособленности при последовательной смене поколений в генетическом алгоритме программы FlexTool из примера 4.16. Рис. 4.36. График функции ffa, х2) из примера 4.17.
4.9. Примеры оптимизации функции с помощью программы FlexTool 191 Рис. 4.37. Динамика изменения «наилучших» значений функции приспособленности при последовательной смене поколений в генетическом алгоритме с турнирной селекцией и одной точкой скрещивания из примера 4.17. 600 -] Рис. 4.38. Динамика изменения «наилучших» значений функции приспособленности при последовательной смене поколений в генетическом алгоритме с турнирной селекцией и двумя точками скрещивания из примера 4.17.
192 Глава 4 Гэнетические алгоритмы Рис. 4.39. Динамика изменения «наилучших» значений функции приспособленности при последовательной смене поколений в генетическом алгоритме с селекцией методом рулетки из примера 4.17. х104 Рис. 4.40. График функции х2) из примера 4.18.
4 9. Примеры оптимизации функции с помощью программы FlexTool 193 Рис. 4.41. Графики, показывающие значения функции приспособленности для первых четырех поколений в генетическом алгоритме с турнирной селекцией из примера 4.18. # of Gere Рис. 4.42. Графики, показывающие значения функции приспособленности с десятого по шестнадцатое поколение в генетическом алгоритме с турнирной селекцией из примера 4.18.
Глава 4. Гэнетические алгоритмы Рис. 4.43. Графики, показывающие значения функции приспособленности с двадцать шестого по тридцать второе поколение в генетическом алгоритме с турнирной ' селекцией из примера 4.18. Рис. 4.44. Графики, показывающие значения функции приспособленности с третьего по восьмое поколение в генетическом алгоритме с селекцией методом рулетки из примера 4.18
4.9. Примеры оптимизации функции с помощью программы FlexTool 195 Рис. 4.45. Графики, показывающие значения функции приспособленности с десятого по шестнадцатое поколение в генетическом алгоритме с селекцией методом рулетки из примера 4.18. Рис. 4.46. График функции фц, х2) из примера 4.19
196 Глава 4 Гэнетические алгоритмы Рис. 4.47. Контурный график функции f(xv х2) из примера 4.19. ’°^0 80 100 120 140 160 Number of Function Evaluations «of Gens Рис. 4.48. Графики, показывающие значения функции приспособленности для первых двух поколений в случае поиска минимума из примера 4.19.
4.9. Примеры оптимизации функции с помощью программы FlexTool 197 Рис. 4.49. Графики, показывающие значения функции приспособленности для первых четырех поколений в случае поиска минимума из примера 4.19. Рис. 4.50. Графики, показывающие значения функции приспособленности со второго по восьмое поколение в случае поиска минимума из примера 4.19.
198 Глава 4 Гэнетические алгоритмы -1.88 'tsloo SOO 1000 1100 1200 1300 Number or Function Evaluations '\c 12 14 16 -2 0 2 #oTGens Pl Рис. 4.51. Графики, показывающие значения функции приспособленности с десятого по шестнадцатое поколение в случае поиска минимума из примера 4.19.
Рис. 4.53. Графики, показывающие значения функции приспособленности для первых четырех поколений в случае поиска максимума из примера 4 19 Рис. 4.54. Графики, показывающие значения функции приспособленности с третьего по восьмое поколение в случае поиска максимума из примера 4.19.
200 Глава 4. Генетические алгоритмы седьмого по тридцать второе поколение в случае поиска максимума из примера 4.19. Рис. 4.56. Графики, показывающие значения функции приспособленности для первых трех поколений в генетическом алгоритме программы FlexTool из примера 4.20.
4.9. Примеры оптимизации функции с помощью программы FlexTool 201 Рис. 4.57. Графики, показывающие значения функции приспособленности с девятого по четырнадцатое поколение в генетическом алгоритме программы FlexTool из при- мера 4.20. Рис. 4.58. Графики, показывающие значения функции приспособленности с семнадца- того по двадцать второе поколение в генетическом алгоритме программы FlexTool из примера 4.20.
Глава 4 Гэнетические алгоритмы Рис. 4.59. Графики, показывающие значения функции приспособленности с двадцать седьмого по тридцать второе поколение в генетическом алгоритме программы FlexTool из примера 4.20. Рис. 4.60. Графики, показывающие значения функции приспособленности с тридцать седьмого по сорок второе поколение в генетическом алгоритме программы FlexTool из примера 4.20.
4.9. Примеры оптимизации функции с помощью программы FlexTool 203 Рис. 4.61. Графики, показывающие значения функции приспособленности с сорок седьмого по пятьдесят второе поколение в генетическом алгоритме программы FlexTool из примера 4.20 Рис. 4.62. Графики, показывающие значения функции приспособленности с пятьдесят шестого по шестьдесят первое поколение в генетическом алгоритме программы FlexTool из примера 4.20.
Глава 4 Генетические алгоритмы десят пятого по семидесятое поколение в генетическом алгоритме программы FlexTool из примера 4.20 Рис. 4.64. Графики, показывающие значения функции приспособленности с семьдесят второго по семьдесят седьмое поколение в генетическом алгоритме программы FlexTool из примера 4.20.
4.9. Примеры оптимизации функции с помощью программы FlexTool 205 Аналогичные графики приведены на рис. 4.53 - 4.55; они де- монстрируют, как изменяются «наилучшее» и «наихудшее» значения функции приспособленности при последовательной смене поколений в случае поиска максимума. На этих рисунках можно проследить уменьшение разнообразия хромосом в популяции. На рис. 4.55 прак- тически все особи одинаковы и равны «наилучшей» хромосоме со значениями фенотипов -0,39 и -0,99 Функция приспособленности этой хромосомы равна 5,638. Эта точка максимума функции f(x1, х2) найдена (также, как и в случае минимизации) в шестнадцатом поко- лении выполнения генетического алгоритма. Пример 4.20 С помощью генетического алгоритма программы FlexTool най- ти оптимальный набор весов wi2, w2i, w22, w3t, w32, w1c, w20, w30 в диапазоне от -10 до 10 для нейронной сети, изображенной на рис. 4.2. Итак, необходимо решить задачу, поставленную в примере 4.3, т.е. найти значения девяти переменных, обозначающих веса нейрон- ной сети, для которых функция погрешности Q достигает минималь- ного значения, равного 0. Для сети, реализующей логическую систе- му XOR, функцию погрешности можно определить в виде где £,-= ф- (1/ (1 + exp((-p)(w31(1/(1 + exp((-p)(w11uv + wA2u2i+ ww)))) + + w32(1 / (1 +exp((-j3)(w'21i/1,, + w22u2i + w20)))) + w30)))) для / = 1, 2, 3, 4. Значения щ ,-, u2j и ф ,- приведены в таблице 2.1. Предполагается, что /3 = 1. Применяется генетический алгоритм с турнирной селекцией в подгруппах по две особи с одной точкой скрещивания. По умолча- нию приняты установленные в программе FlexTool значения вероят- ностей скрещивания 0,77 и мутации 0,0077, а также размерность по- пуляции, равная 77. Длина хромосом для решаемой задачи равна 99 битам - по 11 генов на каждую переменную. Динамика изменения значений функции приспособленности при последовательной смене поколений иллюстрируется графиками на рис. 4.56 - 4.64. На них также показано распределение особей в зависимости от номера поколения, причем отмечены только пара- метры Р1 и Р2, соответствующие переменным w12 и w21. «Наилуч- шее» значение функции приспособленности изменяется от значения, примерно равного 0,21, до 0,00007. Напомним, что функция приспо- собленности соответствует функции погрешности Q, значение кото- рой может изменяться от 1 до 0. Нижние левые графики иллюстрируют динамику изменения «наилучшего» (нижняя кривая), «наихудшего» (верхняя кривая)
206 Глава 4. Генетические алгоритмы и среднего (средняя кривая) значений функции приспособленности в популяции при последовательной смене поколений. На рис. 4.61 - 4.64 «наилучшее» значение функции приспособленности принимает настолько малое значение, что оно становится незаметным на графи- ках. В 75-м поколении оно становится равным 7*10-5, т.е. таким, кото- рое принимается в качестве минимального значения. Таким образом, эта величина может считаться значением функции приспособленнос- ти «наилучшей» хромосомы со следующими фенотипами - значени- ями отдельных переменных, обозначающих веса нейронной сети: Wit = 7,65 w12 = - 8,43 w2-t = -10,00 iv22 — 9,98 w31 = - 4,28 w32 = - 3,96 w10 = - 4,28 W20 — — 3,96 W30 = “ 4,96 Вычисления были завершены после 77 итераций алгоритма. В случае их продолжения можно было бы ожидать получение резуль- тата, более близкого к представленному на рис. 4.83 и 4.84, т.е. зна- чения W11, w12, w21, w22, w31, w32 w10, w20, w30 оказались бы примерно равны соответственно 10, -10, -10, 10, -10, -10, a w10, w20, w30 - ве- личине -5. Также очевидно, что уменьшилось бы и значение погреш- ности Q; скорее всего, оно приблизилось бы к величине, полученной с помощью программы Evolver (пример 4.24) и показанной на рис. 4.83 и 4.84. Рассчитанные значения представляют собой одну из воз- можных комбинаций весов для нейронной сети, реализующей логиче- скую систему XOR и изображенной на рис. 4.2 [31]. В разд. 4.11 будут представлены примеры, относящиеся к этой же задаче, решаемой с помощью программы Evolver [49] при различных интервалах весов. 4.10. Эволюционные алгоритмы Генетические алгоритмы (genetic algorithms) совместно с эво- люционной стратегией и эволюционным программированием пред- ставляют три главных направления развития так называемого эволю- ционного моделирования (simulated evolution). Несмотря на то, что каждый из этих методов возник независи- мо от других, они характеризуются рядом важных общих свойств. Для любого из них формируется исходная популяция особей, которая в последующем подвергается селекции и воздействию различных ге- нетических операторов (чаще всего скрещиванию и/или мутации), что позволяет находить более хорошие решения. Эволюционные стратегии - это алгоритмы, созданные в Герма- нии в качестве методов решения оптимизационных задач и основан- ные на принципах природной эволюции. Эволюционное программи- рование представляет собой подход, предложенный американскими
4.10. Эволюционные алгоритмы 207 учеными вначале в рамках теории конечных автоматов и обобщен- ный позднее для приложений к проблемам оптимизации [13]. Оба на- правления возникли в шестидесятых годах XX века. Сконцентрируем внимание на важнейших сходствах и различи- ях между эволюционными стратегиями и генетическими алгоритмами [33]. Очевидно, что главное сходство заключается в том, что оба ме- тода используют популяции потенциальных решений и реализуют принцип селекции и преобразования наиболее приспособленных осо- бей. Однако обсуждаемые подходы сильно отличаются друг от друга. Первое различие заключается в способе представления особей. Эво- люционные стратегии оперируют векторами действительных чисел, тогда как генетические алгоритмы - двоичными векторами. Второе различие между эволюционными стратегиями и генети- ческими алгоритмами кроется в организации процесса селекции. При реализации эволюционной стратегии формируется промежуточная популяция, состоящая из всех родителей и некоторого количества по- томков, созданных в результате применения генетических операто- ров. С помощью селекции размер этой промежуточной популяции уменьшается до величины родительской популяции за счет исключе- ния наименее приспособленных особей. Сформированная таким об- разом популяция образует очередное поколение. Напротив, в генети- ческих алгоритмах предполагается, что в результате селекции из по- пуляции родителей выбирается количество особей, равное размерно- сти исходной популяции, при этом некоторые (наиболее приспособ- ленные) особи могут выбираться многократно. В то же время, менее приспособленные особи также имеют возможность оказаться в новой популяции. Однако шансы их выбора пропорциональны величине приспособленности особей. Независимо от применяемого в генетиче- ском алгоритме метода селекции (например, рулетки или рангового) более приспособленные особи могут выбираться многократно. При реализации эволюционных стратегий особи выбираются без повторе- ний. В эволюционных стратегиях применяется детерминированная процедура селекции, тогда как в генетических алгоритмах она имеет случайный характер. Третье различие между эволюционными стратегиями и генети- ческими алгоритмами касается последовательности выполнения про- цедур селекции и рекомбинации (т.е. изменения генов в результате применения генетических операторов). При реализации эволюцион- ных стратегий вначале производится рекомбинация, а потом селек- ция. В случае выполнения генетических алгоритмов эта последова- тельность инвертируется. При осуществлении применении эволюци- онных стратегий потомок образуется в результате скрещивания двух родителей и мутации. Формируемая таким образом промежуточная популяция, состоящая из всех родителей и полученных от них потом- ков, в дальнейшем подвергается селекции, которая уменьшает раз- мер этой популяции до размера исходной популяции. При выполне- нии генетических алгоритмов вначале производится селекция, приво- дящая к образованию переходной популяции, после чего генетичес-
208 Глава 4. Гэнетические алгоритмы кие операторы скрещивания и-мутации применяются к особям (выби- раемым с вероятностью скрещивания) и к генам (выбираемым с ве- роятностью мутации). Следующее различие между эволюционными стратегиями и ге- нетическими алгоритмами заключается в том, что параметры генети- ческих алгоритмов (такие, как вероятности скрещивания и мутации) остаются постоянными на протяжении всего процесса эволюции, тог- да как при реализации эволюционных стратегий эти параметры под- вергаются непрерывным изменениям (так называемая самоадапта- ция параметров). Еще одно различие между эволюционными стратегиями и гене- тическими алгоритмами касается трактовки ограничений, налагаемых на решаемые оптимизационные задачи. Если при реализации эволю- ционных стратегий на некоторой итерации потомок не удовлетворяет всем ограничениям, то он отвергается и включается в новую популя- цию. Если таких потомков оказывается много, то эволюционная стра- тегия запускает процесс адаптации параметров, например, путем увеличения вероятности скрещивания. В генетических алгоритмах та- кие параметры не изменяются. В них может применяться штрафная функция для тех особей, которые не удовлетворяют наложенным ог- раничениям, однако эта технология обладает многими недостатками. По мере развития эволюционных стратегий и генетических ал- горитмов в течение последних лет существенные различия между ни- ми постепенно уменьшаются. Например, в настоящее время при реа- лизации генетических алгоритмов для решения оптимизационных за- дач все чаще применяется представление хромосом действительны- ми числами и различные модификации «генетических» операторов, что имеет целью повысить эффективность этих алгоритмов. Подоб- ные методы, значительно отличающиеся от классического генетичес- кого алгоритма, по традиции сохраняют прежнее название, хотя бо- лее корректно было бы называть их «эволюционными алгоритмами». Проблему терминологии мы будем обсуждать несколько позднее. Эволюционное программирование, также как и эволюционные стратегии, делает основной упор на адаптацию и разнообразие спо- собов передачи свойств от родителя к потомкам в следующих поколе- ниях. Познакомимся со стандартным алгоритмом эволюционного про- граммирования. Исходная популяция решений выбирается случайным образом. В задачах оптимизации значений действительных чисел (примером которых может служить обучение нейронных сетей) особь (хромосо- ма) представляется цепью значений действительных чисел. Эта попу- ляция оценивается относительно заданной функции (функции при- способленности). Потомки образуются от входящих в эту популяцию родителей в результате случайной мутации. Селекция основана на вероятностном выборе (турнирный метод), при котором каждое реше- ние соперничает с хромосомами, случайным образом выбираемыми из популяции. Решения-победители (оказавшиеся наилучшими) ста- новятся родителями для следующего поколения. Описанная процеду-
4.10. Эволюционные алгоритмы ра повторяется так долго, пока не будет найдено искомое решение либо не будет исчерпан лимит машинного времени. Эволюционное программирование применяется для оптимиза- ции функционирования нейронных сетей. Также как и другие эволю- ционные методы, оно не требует градиентной информации и поэтому может использоваться для решения задач, в которых эта информация недоступна, либо для ее получения требуются значительные объемы вычислений. Одними из первых приложений эволюционного програм- мирования считаются задачи теории искусственного интеллекта, а са- мые ранние работы касались теории конечных автоматов [13]. Наблюдается большое сходство между эволюционными стра- тегиями и эволюционными программированием в их приложениях к задачам оптимизации непрерывных функций с действительными значениями. Некоторые исследователи утверждают, что эти процеду- ры, в сущности, одинаковы, хотя они и развивались независимо друг от друга [13]. Действительно, оба метода похожи на генетические ал- горитмы. Принципиальное различие ме>кду ними заключается в том, что эволюционное программирование не связано с конкретной фор- мой представления особей, поскольку оператор мутации не требует применения какого-либо специального способа кодирования. Первый контакт между научными коллективами, развивавшими эволюционные стратегии и эволюционное программирование, состо- ялся в начале 1992 г., непосредственно перед первой международной конференцией, посвященной эволюционному программированию. Эти методы развивались независимо на протяжении 30 лет. Несмот- ря на выделенные различия, они имеют много принципиально сход- ных свойств Все три представленных метода, т.е. генетические алгоритмы, эволюционные стратегии и эволюционное программирование объе- диняются под общим названием эволюционные алгоритмы (evolution- ary algorithms). Также применяется термин эволюционные методы (evolutionary methods). Эволюционными алгоритмами называются и другие методы, реализующие эволюционный подход, в частности, генетическое про- граммирование (genetic programming) [29], представляющее собой модификацию генетического алгоритма с учетом возможностей ком- пьютерных программ. При использовании этого метода популяция со- стоит из закодированных соответствующим образом программ, кото- рые подвергаются воздействию генетических операторов скрещива- ния и мутации, для нахождения оптимального решения, которым счи- тается программа, наилучшим образом решающая поставленную за- дачу. Программы оцениваются относительно определенной специ- альным образом функции приспособленности. Интересной представ- ляется модификация эволюционных алгоритмов для решения опти- мизационных задач методом так называемой мягкой селекции, кото- рая предложена Р. Паларом [14]. Для обозначения разнообразных алгоритмов, основанных на эволюционном подходе, также применяется понятие эволюционных
210 Глава 4. Гэнетические алгоритмы программ (evolution programs) [33]. Этот термин объединяет как гене- тические алгоритмы, эволюционные стратегии и эволюционное про- граммирование, так и генетическое программирование, а также дру- гие аналогичные методы. Эволюционные программы можно считать обобщением генети- ческих алгоритмов. Классический генетический алгоритм выполняет- ся при фиксированной длине двоичных последовательностей и в нем применяются операторы скрещивания и мутации Эволюционные программы обрабатывают более сложные структуры (не только дво- ичные коды) и могут выполнять иные «генетические» операции. На- пример, эволюционные стратегии могут трактоваться в качестве эво- люционных программ, в которых хромосомы представляются вещест- венными (не двоичными) числами, а мутация используется как един- ственная генетическая операция Структуру эволюционной программы довольно точно отобра- жает блок-схема, приведенная на рис. 4.3. Она совпадает со структу- рой генетического алгоритма, поскольку идеи эволюционной програм- мы целиком заимствованы из теории генетических алгоритмов. Раз- личия имеют глубинный характер, они касаются способов представ- ления хромосом и реализации генетических операторов. Эволюцион- ные программы допускают большее разнообразие структур данных, поскольку возможно не только двоичное кодирование хромосом, а также предоставляют расширенный набор генетических операторов. Согласно 3. Михалевичу [33], эволюционная программа - это вероятностный алгоритм, применяемый на ft—й итерации к популяции особей Р(Ю = {4.... Каждая особь представляет потенциальное решение задачи, которое в произвольной эволюционной программе может отображать- ся некоторой (в том числе и достаточно сложной) структурой данных D. Любое решение х* оценивается по значению его «приспособленно- сти». Далее в процессе селекции на (ft+1)—й итерации из наиболее приспособленных особей формируется очередная популяция. Неко- торые особи этой новой популяции трансформируются с помощью «генетических операторов», что позволяет получать новые решения. Существуют преобразования д, (типа мутации), которые изменяют конкретные хромосомы (pf. D -> D), а также трансформации более вы- сокого порядка у/ (типа скрещивания), создающие новые особи путем комбинирования фрагментов нескольких (двух или более) хромосом, т.е. -yf. D х ... х D -» D. От эволюционной программы ожидается, что после смены некоторого количества поколений наилучшая особь бу- дет представлять решение, близкое к оптимальному. Структура эво- люционной программы может быть представлена в виде псевдокода [33] так, как это изображено на рис. 4.65 (рекомендуется сравнить ее с рис. 4.3). Рассмотрим обобщенный пример эволюционной программы [33]. Допустим, что ищется граф, который удовлетворяет определен-
4.10. Эволюционные алгоритмы ным ограничениям (например, производится поиск топологии комму- никационной сети, оптимальной по конкретным критериям, например, по стоимости передачи и т.п.)- Каждая особь в эволюционной про- грамме представляет одно из потенциальных решений, т.е. в данном случае некоторый граф. Исходная популяция графов Р(0), формиру- емая случайным образом либо создаваемая при реализации како- го-либо эвристического процесса, считается отправной точкой {к = 0) эволюционной программы. Функция приспособленности, которая обычно задается, связана с системой ограничений решаемой задачи. Эта функция определяет «приспособленность» каждого графа путем выявления «лучших» и «худших» особей. Можно предложить не- сколько различных операторов мутации, предназначенных для транс- формации отдельных графов, и несколько операторов скрещивания, которые будут создавать новый граф в результате рекомбинации структур двух или более графов. Очень часто такие операторы обус- ловливаются характером решаемой задачи. Например, если ищется граф типа «дерево», то можно предложить оператор мутации, кото- рый удаляет ветвь из одного графа и добавляет новую ветвь, объеди- няющую два отдельных подграфа. Другие возможности заключают- ся в проектировании мутации независимо от семантики задачи, но с включением в функцию приспособленности дополнительных огра- ничений - «штрафов» для тех графов, которые не являются деревья- ми. Принципиальную разницу между классическим генетическим алгоритмом и эволюционной программой, т.е. эволюционным алго- ритмом в широком смысле, иллюстрируют рис. 4.66 и 4.67. Классический генетический алгоритм, который оперирует дво- ичными последовательностями, требует представить решаемую за- дачу в строго определенном виде (соответствие между потенциаль- procedure эволюционная программа begin k = 0 инициализация популяции Р(к) оценивание приспособленности особей из Р(к) while (not условие завершения) do begin к = к+1 селекция особей из Р(к - 1) в Р(к) применение генетических операторов оценивание приспособленности особей из Р(к) end end Рис. 4.65. Представление эволюционной программы в виде псевдокода.
212 Глава 4 Гзнетические алгоритмы Решаемая проблема (задача) Решаемая проблема (задача) Модификация задачи к виду, соответствующему классическому генети- ческому алгоритму Модификация классического генетического алгоритма к виду, соответствующему решаемой задаче Модифицированная задача Эволюционная программа Применение классического генетического алгоритма для решения модифицированной задачи Применение эволюционной программы для решения задачи Наилучшее решение задачи Наилучшее решение задачи Рис. 4.66. Решение задачи с помощью классического генетического алгоритма. Рис. 4.67. Решение задачи с помощью эволюционного алгоритма (эволюци- онной программы). ными решениями и двоичными кодами, декодирование и т.п.). Сде- лать это не всегда просто. Эволюционные программы могут оставить постановку задачи в неизменном виде за счет модификации хромосом, представляющих потенциальные решения (с использованием «естественных» структур данных), и применения соответствующих «генетических» операторов Другими словами, для решения нетривиальной задачи можно либо преобразовать ее к виду, требуемому для использования гене- тического алгоритма (рис. 4.66), либо модифицировать генетический алгоритм так, чтобы он удовлетворял задаче (рис. 4.67). При реализа- ции первого подхода применяется классический генетический алго- ритм, а при реализации второго подхода - эволюционная программа. Таким образом, модифицированные генетические алгоритмы можно в общем случае называть эволюционными программами [33]. Однако чаще всего встречается термин эволюционные алгоритмы. Эволюци- онные программы также могут рассматриваться как эволюционные алгоритмы, подготовленные программистом для выполнения на ком- пьютере. Основная задача программиста заключается при этом в вы- боре соответствующих структур данных и «генетических» операто- ров. Именно такая трактовка понятия эволюционная программа пред- ставляется наиболее обоснованной.
4.77. Приложения эволюционных алгоритмов 213 Все понятия, применяемые в настоящем разделе и относящие- ся главным образом к методам, основанным на эволюционном подхо- де, можно сопоставить главному направлению исследований - ком- пьютерному моделированию эволюционных процессов. Эта область информатики называется Evolutionary Computation, что можно пере- вести как эволюционные вычисления. К эволюционным алгоритмам также применяется понятие тех- нология эволюционных вычислений. Можно добавить, что название генетические алгоритмы используется как в узком смысле, т.е. для обозначения классических генетических алгоритмов и их несущест- венных модификаций, так и в широком смысле - подразумевая лю- бые эволюционные алгоритмы, значительно отличающиеся от «клас- сики». В июле 1996 г. состоялась первая Всепольская конференция по эволюционным алгоритмам, организованная Институтом основ элек- троники Варшавского политехнического университета и Клубом эво- люционных алгоритмов. На этой конференции обсуждалась класси- фикация эволюционных алгоритмов, согласно которой в их состав входят генетические алгоритмы, эволюционные стратегии, эволюци- онное и генетическое программирование, а также другие технологии эволюционных вычислений, причем именно последние имеют наи- больший удельный вес (около 95 %). Это свидетельствует о появле- нии множества новых методов, основанных на эволюционном моде- лировании, но использующих базовые технологии - главным образом классический генетический алгоритм, эволюционные стратегии и эво- люционное программирование. Упомянутая конференция также позволила выработать ряд ре- шений по упорядочению терминологии, применяемой для описания эволюционных алгоритмов. Они касались перевода таких базовых по- нятий, как fitness function, crossover, steady-state и многих других, ко- торые различные авторы переводили с английского языка по собст- венному усмотрению. Терминология, применяемая в настоящем разделе, соответст- вует рекомендациям этой конференции. 4.11. Приложения эволюционных алгоритмов Большинство приложений эволюционных алгоритмов, и осо- бенно генетических алгоритмов, касается оптимизационных задач. Простейшими из них можно назвать задачи, представленные в приме- рах 4.1 -4.3, в примерах 4.5 и 4.6, а также просчитанные на компью- тере примеры из п. 4.9. В каждом из них оптимизируется целевая функция, заданная конкретной формулой, и используется характер- ное для основного генетического алгоритма двоичное кодирование хромосом. Как уже упоминалось в п. 4.8.4, последующая модификация классического генетического алгоритма заключалась в представле- нии хромосом действительными числами. О таком способе кодирова- ния говорилось и в разд. 4.10. Одной из наиболее известных компью-
214 Глава 4. Гэнетические алгоритмы терных программ, предназначенных для решения задач при помощи генетического алгоритма с кодированием действительными числами (real coding), считается программа Evolver [49] В этой программе применяется алгоритм с частичной заменой популяции (steady-state), при которой в каждый момент времени заменяется только одна особь. Селекция основана на ранговом методе (rank-based). Если го- ворить о так называемых генетических операторах, то в программе Evolver применяются два различных оператора скрещивания и два различных оператора мутации - отдельно для оптимизационных и для комбинаторных задач. Программа Evolver взаимодействует с табличным процессо- ром Excel, в котором решаемая задача описывается в соответствую- щих ячейках таблицы путем задания ее параметров (переменных) и формулы функции приспособленности 4.11.1. Примеры оптимизации функции с помощью программы Evolver Прежде чем перейти к примерам, дадим характеристику гене- тическим операторам, используемым программой Evolver в задачах оптимизации функции. Скрещивание. Это равномерное скрещивание (uniform crossover), определенное аналогично примененному в п. 4.8.3, но для хромосом, состоящих из генов с действительными аллелями. Скрещивание производится в соответствии с так называемым показателем скрещивания (crossover rate), определяющим, какой процент генов потомок унаследует от каждого родителя. В программе Evolver показатель скрещивания вводится пользователем и пред- ставляет собой число из интервала от 0,01 до 1,0. Например, значе- ние показателя скрещивания 0,8 означает, что потомок получит около 80 % генов со значениями (аллелями) такими же, как у первого роди- теля, а оставшееся количество (порядка 20 %) - унаследует от второ- го родителя. Если показатель скрещивания равен 1, то никакого скре- щивания практически не происходит, а образуются только так называ- емые клоны, т.е. хромосомы, идентичные родителям. По умолчанию в программе Evolver применяется значение показателя скрещивания, равное 0,5, что означает наследование примерно одинакового коли- чества генов от каждого родителя. Мутация. Каждый ген в хромосоме представляет один пара- метр задачи. Следовательно, аллели соответствуют фенотипам, т.е. значениям конкретных переменных. Для каждого гена случайным об- разом выбирается число из интервала от 0 до 1, которое сравнивает- ся с так называемым показателем мутации (mutation rate). Если ра- зыгранное число меньше введенного значения показателя или равно ему, то выполняется мутация данного гена. Эта операция заключает- ся в замене значения гена другим, случайно выбранным числом из области допустимых значений параметра, соответствующего мутиру- ющему гену.
4.11. Приложения эволюционных алгоритмов 215 Вводимое пользователем значение показателя мутации пред- ставляет собой число из интервала от 0,0 до 1,0. Чем больше это зна- чение, тем большее количество генов подвергается мутации. Если по- казатель мутации равен 1, то мутации подвергаются 100 % генов, вы- бираемых случайным образом. С учетом того, что в программе Evolver мутация всегда производится после скрещивания, задание показателя мутации равным 1 означает, что в этом случае эффект скрещивания не имеет никакого значения. Очевидно, что если пока- затель мутации равен 0, то мутация вообще не производится. Как правило, значение показателя мутации задается в пределах от 0,06 до 0,2. Отметим, что определяемый таким образом показатель мута- ции представляет собой аналог вероятности мутации рт, описанной в разд. 4.4. В то же время используемый в программе Evolver пока- затель скрещивания имеет смысл, отличающийся от введенной в разд. 4.4 вероятности скрещивания рс. Значения как показателя му- тации, так и показателя скрещивания можно изменять в процессе вы- полнения программы Evolver. В классическом генетическом алгоритме на каждой итерации обновляется вся популяция, что соответствует формированию оче- редного поколения. Применительно к программе Evolver можно гово- рить о последовательных «тактах» (trials) ее выполнения, причем на каждом такте изменяется только одна особь. Если популяция насчи- тывает N хромосом (особей, которые в описании программы называ- ются организмами), то N таких «тактов» составляют одну итерацию классического генетического алгоритма. Поэтому для того, чтобы при заданном количестве «тактов» выполнения программы Evolver найти соответствующее ему количество поколений (в терминологии класси- ческого генетического алгоритма), необходимо значение N разделить на количество особей в популяции. В представляемых далее приме- рах «такты» будут обозначаться символом t. Пример 4.21 демонстри- рует применение программы Evolver для оптимизации функции трех переменных. Пример 4.21 С помощью программы Evolver найти минимум функции f(xb х2, х3) = х/ + х22 + х32 для целочисленных хъ х2, х3 в интервале [-5, 5]. Вычисления производились для популяции размерностью Л/ = 6. Использовалось значение показателя скрещивания равное 0,9 Это означает, что в результате скрещивания потомок наследует при- близительно (с округлением до целого) 90 % генов от первого родите- ля и остальные гены (около 10 %) - от второго родителя. Заметим, что для показателя скрещивания равного 1 будет наблюдаться такой же эффект, что и при отсутствии скрещивания, поскольку потомок будет наследовать все гены только от первого родителя. По этой причине
216 Глава 4 Генетические алгоритмы при выбранном значении данного показателя, равном 0,9, скрещива- ние либо не будет проводиться вообще (точнее говоря, потомок ока- жется абсолютно идентичным своему первому родителю), либо скре- щивание будет выполнено, и потомок унаследует большую часть ге- нов от первого родителя. Для мутации выбрана величина показателя мутации равная 0,1, которая указывает, что значения 10 % генов (с ок- руглением до целого) должны подвергнуться случайным изменениям. С помощью программы Evolver сформирована следующая ис- ходная популяция: После шести «тактов», т.е. для t = 6, что соответствует одной итерации классического генетического алгоритма, получена популя- ция особей, упорядоченных по убыванию функции приспособленнос- ти так, как это показано на рис. 4.68. Отметим, что в популяцию не входит особь [4 -3 5] со значени- ем функции приспособленности, равным 50. Она была исключена как «наихудшая» особь (с наибольшим значением функции приспособ- ленности), и на ее место введена копия особи [5 3 -4]. Эта особь так- же оказывается «наихудшей», поэтому она будет исключена на сле- дующем «такте» (/ = 7). Популяции для t = 7 и t = 8 представлены на рис. 4.69 и 4.70. На последнем месте (№ п/п = 6) размещается «наилучшая к данному моменту» особь, имеющая наименьшее значение функции приспособленности. На первом месте (№ п/п = 1) показана вновь вве- денная в популяцию особь. На рис. 4.69 это копия особи [5 4 2] из пре- дыдущей популяции (/ = 6), а на рис. 4.70 - новая особь [0 -4 2], по- лученная в результате скрещивания с последующей мутацией от па- ры особей из популяции для t = 7. Выделенное прямоугольником зна- чение функции приспособленности в первой строке таблицы относит- ся к особи, исключаемой из популяции. На рис. 4.71 и 4.72 представлены популяции для t = 17 и t = 18. Заметим, что t = 18 соответствует трем итерациям классического ге- нетического алгоритма. Новая особь в популяции на рис. 4.71 получе- на скрещиванием пары особей из предыдущей популяции (для t = 16), а новая особь в популяции на рис. 4.72 сформирована в результате мутации среднего гена особи [2 -4 0] из предыдущей популяции (для /=17). На рис. 4.73 показана популяция для t=41. Обратим внимание, что t = 42 соответствует семи итерациям (поколениям) классического генетического алгоритма. «Наилучшее к данному моменту» решение - это [-1 2 0] со значением функции приспособленности, равным 5. Получение «наилучшего» решения, равного [0 0 0], с нулевым значением функции приспособленности возможно в случае, если при
4.77. Приложения эволюционных алгоритмов 217 № п/п f(Xi, х2, х3) х1 х2 *3 1 | 5Q | 5 3 -4 2 50 5 3 -4 3 45 5 4 2 4 30 -1 -5 2 5 20 2 -4 0 6 19 -1 3 -3 Рис. 4.68. Популяция особей для t = 6 (пример 4.21). № п/п f(x1f х2, х3) Х1 х2 *3 1 5 4 2 2 50 5 3 -4 3 45 5 4 2 4 30 -1 -5 2 5 20 2 -4 0 6 19 -1 3 -3 Рис. 4.69. Популяция особей для (= 7 (пример 4.21) № п/п f(xv х2, х3) Х1 х2 хз 1 |50 | 0 _4 2 2 50 5 4 2 3 45 5 4 2 4 30 -1 -5 2 5 20 2 -4 0 6 19 -1 3 -3 Рис. 4.70. Популяция особей для t = 8 (пример 4.21).
218 Глава 4. Генетические алгоритмы № п/п f(xi, х2, х3) Х1 х2 х3 1 [25] 0 -4 0 2 20 2 -4 0 3 20 0 -4 2 4 20 2 -4 0 5 20 2 -4 0 6 19 -1 3 -3 Рис. 4.71. Популяция особей для t = 17 (пример 4.21). № п/п f(Xi,x2,x3) Х1 х2 хз 1 [2Q] 2 -3 0 2 20 0 -4 2 3 20 2 -4 0 4 20 2 -4 0 5 19 -1 3 -3 6 16 0 -4 0 Рис. 4.72. Популяция особей для t = 18 (пример 4.21). № п/п Фч. х2, х3) Х1 х2 х3 1 Во] 0 -3 0 2 10 -1 3 0 3 10 -1 3 0 4 10 -1 3 0 5 9 0 -3 0 6 5 -1 2 0 Рис. 4.73. Популяция особей для t = 41 (пример 4.21).
4.11. Приложения эволюционных алгоритмов 219 дальнейшем выполнении алгоритма произойдет мутация второго ге- на (замена -3, 3 или 2 на 0). Следующий пример представляет собой обобщение предыду- щего примера за счет увеличения количества переменных и расшире- ния пространства поиска. Пример 4.22 С помощью программы Evolver найти минимум функции flfo. Х2, - . *б) = *? + *2 + + Х6 для целочисленных хъ х2, х6 в интервале [-10,10]. Вычисления производились для популяции размерностью N = 50. Использовались принятые по умолчанию в программе Evolver значения показателея скрещивания = 0,5 и показателя мутации = 0,06. На рис. 4.74 представлена модель решения рассматриваемого примера в табличном процессоре Excel, содержащая начальные зна- чения переменныххъ х2,..., х6. В исходную популяцию включены 50 особей, первая из которых содержит гены со значениями, показаными на рис. 4.74, а остальные хромосомы сгенерированы случайным образом (гены имеют действи- тельные значения из интервала от -10 до 10). Длина каждой хромо- сомы равна 6 и совпадает с количеством переменных х^, х2,..., х6. За- метно, что приведенные на рис. 4.74 начальные значения перемен- ных х1, х2, .... х6 весьма далеки от оптимального решения, которым для рассматриваемой задачи (также как и в примере 4.21) будет хро- мосома с нулевыми значениями генов, т.е. [000000]. Поэтому не вызывает удивления то, что хромосома с аллелями, показанными на рис. 4.74, очень быстро исключается из популяции. На рис. 4.75 изо- бражены графики изменения «наилучшего» (нижняя кривая) и сред- него (верхняя кривая) значения функции приспособленности с тече- нием времени (точнее, с увеличением количества «тактов»). На этом рисунке один момент времени соответствует 20 «тактам». Для t= 500 (через 500 «тактов») наилучшее значение функции приспособленнос- ти было равно 5,75129. На рис. 4.76 в виде столбчатой диаграммы показаны значения функции приспособленности всех особей популя- ции для t = 500. Рис. 4.77 представляет значения переменных хъ х2, .... х6 и соответствующее им значение минимизируемой функции, по- лученное после 7975 «тактов» выполнения программы Evolver. На рис. 4.78 и 4.79 приведены аналогичные результаты, но после 10623 и 11953 «тактов». Их сопоставление показывает, как получаемые ре- шения приближаются к оптимальному. Рис. 4.80 демонстрирует «наи- лучшее решение», выработанное после примерно 15000 «тактов» вы- полнения программы Evolver. Последующая работа программы уже не изменяет полученный результат. Итоговая популяция содержит 50 особей со значениями х1, х2, .... х6, показанными на рис. 4.80. Повторное возобновление этого алгоритма при тех же началь- ных данных (рис. 4.74), но других случайных значениях остальных членов исходной популяции дает совершенно иной набор «наилуч-
220 Глава 4. Генетические алгоритмы ших» значений переменных хъ х2,.... х6> которые тоже близки к опти- мальным. Следующие примеры связаны с минимизацией более сложной функции 9 переменных, а именно - функции погрешности нейронной сети, реализующей логическую систему XOR. Пример 4.23 С помощью программы Evolver найти оптимальный набор ве- сов нейронной сети, изображенной на рис. 4.2 (пример 4.3), если зна- чения весов лежат в интервале от -5 до 5. Решение этой задачи заключается в подборе такого комплекса значений весов w11, w12, w21, w22, w31, w32, а также w10, w20, w30, кото- рый минимизирует значение погрешности Q, заданной в примере 4.3. Это средняя сумма квадратов разностей между ожидаемым и расчет- ным значением на выходе системы XOR для каждой из четырех пар входов, указанных в табл. 2.1. Задача сводится к минимизации функ- ции о-ф? относительно определенных выше девяти весов, где q = dj~ у, для / = 1, 2. 3. 4. а у/ рассчитывается по формуле У/ = 1 / (1 +exp((-j3)(vn31(1 / (1 + exp((~p)(w^u j + wKu2, + w10)))) + + w32(1 / (1 +exp((-j3)(vn21u1 j + w22t/2 / + w20)))) + w30))). Примем, что p = 1. Задача моделировалась в табличном процессоре Excel, а оп- тимизация выполнялась при помощи генетического алгоритма про- граммы Evolver. Для популяции с размерностью, равной 50, при зна- чениях показателя скрещивания равного 0,5 и показателя мутации равного 0,06 после примерно 30000 «тактов» получено «наилучшее решение» в виде набора весов, показанного на рис. 4.81. Минималь- ное значение абсолютной погрешности Q для этих весов составляет 0,015171. Необходимо отметить, что полученное «наилучшее решение» близко набору весов = -5, w12 = 5, w21 = 5, w22 = -5, w31 = 5, w32 = 5, w10=-3, w20 = -3, w30 = -2,5, для которого Q = 0,015167. Нейронная сеть (см. рис. 4.2) с такими весами демонстрирует симметрию, харак- терную для системы XOR. Очевидно, что найден не единственный оп- тимальный набор весов для сети этого типа [31]. При повторном запу- ске программы с той же самой размерностью популяции и такими же показателями скрещивания и мутации, скорее всего, будет найдено «наилучшее решение», содержащее иной «оптимальный» набор ве- сов. На рис. 4.82 приведен пример альтернативного «наилучшего» на- бора весов, полученного при повторном выполнении генетического алгоритма программы Evolver и проведении вычислений на протяже- нии 6000 «тактов». При известных допустимых комбинациях весов
4.11. Приложения эволюционных алгоритмов 221 для системы XOR [31], легко предсказать оптимальный набор весов, к которому стремится решение при продолжении выполнения этого алгоритма. Следующие примеры относятся к той же задаче, однако при расширенном диапазоне изменения весов. Пример 4.24 С помощью программы Evolver найти оптимальный набор ве- сов нейронной сети, изображенной на рис. 4.2 (пример 4.3), если зна- чения весов лежат в интервале от -10 до 10. При начальных значениях, совпадающих с приведенными в примере 4.23, было проведено три сеанса вычислений. Через 30000 «тактов» в первом, втором и третьем сеансах получены «наилучшие» решения, показанные на рис. 4.83, 4.84 и 4.86 соответственно. На рис. 4.85 изображены графики изменения «наилучшего» (нижняя кри- вая) и среднего (верхняя кривая) значения функции приспособленно- сти для этого примера после 505 «тактов». Функция приспособленно- сти для системы XOR задается формулой расчета погрешности Q (см. пример 4.23) и изменяется в пределах от 0 до 1. На рис. 4.85 за- метно стремительное уменьшение наилучшего значения функции приспособленности до «наилучшего на данный момент» значения, равного 0,13159. Единица на временной оси этого графика соответст- вует 20 «тактам». Набор весов, к которому стремится «наилучшее ре- шение», характеризуется тем, что = w12 и w21 = w22, что типично для логической системы XOR [31]. Результаты, представленные на рис. 4.83 и 4.84, можно сравнить с показанными на рис. 4.81 для при- мера 4.23, а информацию на рис. 4.86 - сопоставить с рис. 4.82. Заметим, что минимальная погрешность во всех трех случаях (рис. 4.83, 4.84 и 4.86) оказывается значительно меньше, чем для ин- тервала изменения от -5 до 5, рассмотренного в примере 4.23 (рис. 4.81 и 4.82). Пример 4.25 С помощью программы Evolver найти оптимальный набор ве- сов нейронной сети, изображенной на рис. 4.2 (пример 4.3), если зна- чения весов лежат в интервале от -15 до 15. Применялся тот же генетический алгоритм программы Evolver, что и в предыдущих примерах, но для расширенного интервала изме- нения весов. После 30000 «тактов» получено «наилучшее решение», показанное на рис. 4.87. Повторное выполнение того же алгоритма при тех же началь- ных условиях через 30000 «тактов» дало «наилучший» набор весов, представленный на рис. 4.88. Главное различие между решениями на рис. 4.87 и 4.88 заключается в том, что в первом случае веса vk11 и w21 положительны, а веса w12 и w22 отрицательны, тогда как во втором случае ситуация оказалась противоположной. В рассматриваемом примере получены две из множества возможных комбинаций весов для нейронной сети, реализующей систему XOR [31]. Еще одно аль-
222 Глава 4. Гэнетические алгоритмы тернативное решение приведено на рис. 4.89. Значения входящих в него весов получены после примерно 12000 «тактов». Несложно предугадать, как будут изменяться эти значения при увеличении коли- чества «тактов». Следовательно, это еще одна комбинация, подобная решениям на рисунках 4.87 и 4.88, причем в данном случае веса w1v w22, W31 и w32 положительны, а веса w12, w21, w10, w20 и w30 отрица- тельны. Пример 4.26 С помощью программы Evolver найти оптимальный набор ве- сов нейронной сети, изображенной на рис. 4.2 (пример 4.3), если зна- чения весов лежат в интервале от -20 до 20 Это та же задача, что и в предыдущих примерах, однако интер- вал изменения весов значительно расширен. Задача решалась при той же размерности популяции и таких же значениях показателей скрещивания и мутации, как и в предыдущих примерах. Столбчатая диаграмма на рис. 4.90 демонстрирует значения функции приспособ- ленности особей в популяции после примерно 1500 «тактов». Конеч- но, это значения в интервале от 0 до 1. На рис. 4.91 изображены гра- фики изменения «наилучшего» (нижняя кривая) и среднего (верхняя кривая) значения функции приспособленности для этого примера по- сле примерно 1500 «тактов». Единица на временной оси этого графи- ка соответствует 20 «тактам». «Наилучшее на данный момент» (по- сле 1502 «тактов») значение функции приспособленности составляет 1,247 * 10-4. Рис. 4.92 представляет «наилучший» набор весов, полу- ченный после 33000 «тактов», а рис. 4.93 - после 63000 «тактов». За- метно, что значения соединительных весов стремятся к 20 или к -20, а значения w10, w20 и w30 - соответственно к 10, -10,10. Если продол- жить выполнение алгоритма, то при дальнейшем увеличении количе- ства «тактов» некоторые веса примут значения, равные 20. Очевид- но, что наборы весов на рис. 4.92 и 4.93 представляют собой лишь два элемента из множества допустимых комбинаций весов нейрон- ной сети, реализующей логическую систему XOR. На рис. 4.94 пока- зан совершенно другой набор «наилучших» весов, полученных при очередном возобновлении генетического алгоритма программы Evolver. Результаты зафиксированы после примерно 15000 тактов при тех же, что и прежде, размерности популяции, значениях показа- телей скрещивания и мутации и интервале изменения весов. Отметим, что «наилучшее решение» на рис. 4.94 тоже пред- ставляет собой одну из допустимых комбинаций весов системы XOR [31], поскольку оно стремится к оптимальному решению, в котором VKji = W12 И - W22- Из примеров 4.23 - 4.26 следует вывод, что чем больше интер- вал изменения весов, тем меньше минимальное значение погрешно- сти. Поэтому для получения нейронной сети, которая сможет наибо- лее точно реализовать систему XOR (т.е. для которой разность меж- ду эталонным и расчетным выходными значениями будет минималь- ной), необходимо подбирать веса из как можно более широкого ин- тервала допустимых значений. Очевидно, что подбор этих весов дол-
4.11. Приложения эволюционных алгоритмов 223 жен быть оптимальным и минимизировать погрешность так, как это делалось в примерах 4.23 - 4.26. Если бы требовалось выбирать зна- чения весов из интервала, более узкого, чем [-5, 5], то обеспечить ми- нимальную погрешность в пределах, например, 0,1, оказалось бы еще сложнее. На рис. 4.95 показан «наилучший» набор весов, най- денный также как в примерах 4.23 - 4.26, но для интервала [-3, 3]. По- сле 40000 «тактов» минимальное значение погрешности превышало 0,1. Заметим, что для интервала изменения весов от -20 до 20 мож- но достичь погрешности порядка 10-4 уже через 1500 «тактов» (рис. 4.90 и 4.91), а для интервала [-10, 10] минималь ная погрешность на уровне 0,1 была достигнута уже через 500 «тактов» (рис. 4.85). В при- мерах 4.23 - 4.26 начальные значения весов, которые учитываются программой Evolver в качестве генов одной из особей исходной попу- ляции, в общем случае принимаются равными 1. Для нейронной се- ти, изображенной на рис. 4.2, в этом случае величина погрешности будет составлять Q = 0,438, что сильно отличается от минимального значения. Конечно, можно принять и другие начальные значения, да- лекие от оптимальных. Пример 4.27 С помощью программы Evolver найти оптимальный набор ве- сов нейронной сети, изображенной на рис. 4.2 (пример 4.3), если зна- чения весов лежат в интервале от -7 до 8. Начальные значения весов, составляющие генотип одной из особей исходной популяции, представлены на рис. 4.96. Видно, что значения у для конкретных пар входов совершенно не соответствуют функции XOR. Значение погрешности Q = 0,38 считается абсолютно неудовлетворительным. Для решения задачи применялся тот же генетический алгоритм при той же размерности популяции и тех же показателях скрещивания и мутации, что и в предыдущих примерах. Всего лишь через 96 «так- тов» получены наилучшие значения функции приспособленности кон- кретных особей в популяции, показанные на рис. 4.97 (столбчатая ди- аграмма). В свою очередь, на рйс. 4.98 представлена таблица, содер- жащая генотипы всех 50 особей этой популяции (состоящие из девя- ти действительных чисел, соответствующих конкретным весам) и зна- чения их функции приспособленности, размещенные в первой колон- ке. Обратим внимание на то, что начальная хромосома с аллеля- ми, равными значениям весов из рис. 4.96, расположена в средней части этой таблицы и обозначена «Организм 25». Следует помнить, что особи в популяции упорядочены от «наихудшего» к «наилучше- му». Последняя особь («Организм 50») - это хромосома, «наилучшая на данный момент», т.е. после 96 «тактов». Значения весов, входя- щих в состав этой хромосомы, показаны на рис. 4.99 вместе с выход- ными значениями для конкретных пар входов и значением минимизи- руемой погрешности. Итак, после 96 «тактов» получен исключитель- но хороший результат.
224 Глава 4. Гэнетические алгоритмы При повторном выполнении этой же программы с самого нача- ла при том же исходном наборе весов (рис. 4.96) через примерно 10000 «тактов» получена погрешность Q = 0,0962, через 20000 «так- тов» - Q = 0,07956, а через 21000 «тактов» - Q = 0,0687. После 24000 тактов эта погрешность уменьшилась до значения Q = 0,0077 (рис. 4.100), а после 40000 «тактов» получен «наилучший» набор весов, показанный на рис. 4.101. Таким образом, процессы выполнения одного и того же алго- ритма при одинаковой размерности популяции и повторяющихся зна- чениях показателей скрещивания и мутации оказываются совершен- но различными. Это, конечно, определяется случайным набором осо- бей исходной популяции и случайными проведением скрещивания и мутации. Для случая на рис. 4.99 получен результат, подобный представ- ленному на рис. 4.101, причем веса w21. iv22, w31, а также w10 и w30 имеют противоположные знаки. При использовании генетического алгоритма программы Evolver для решения задач, аналогичных рассмотренным в примерах 4.23 - 4.27, генетические операторы изменяют значения отдельных весов (мутация) и осуществляют обмен значений весов, выбранных случайным образом, между двумя хромосомами (скрещивание). В то же время, в программе FlexTool (пример 4.20) генетические операто- ры рекомбинируют гены внутри хромосом, которые представляют со- бой двоичные последовательности, соответствующие закодирован- ным значениям конкретных весов. В программе Evolver хромосомы состоят из генов, имеющих действительные значения, совпадающие со значениями весов. Программа Evolver - это прекрасный инстру- мент для оптимизации функции нескольких переменных, при этом она может применяться для поиска максимума или минимума функ- ции двух и даже одной переменной. Заметим, что в случае только од- ной переменной скрещивание практически не производится, и выпол- няется только операция мутации, что характерно для так называемо- го эволюционного программирования (см. разд. 4.10). Все примеры, решенные в разд. 4.9 при помощи программы FlexTool, можно ре- шать также и средствами программы Evolver. Например, на рис. 4.102 показано изменение «наилучшего» и среднего значения функ- ции приспособленности в случае поиска максимума функции, пред- ставленной на рис. 4.23. Одно деление на временной оси соответст- вует 20 «тактам». Вычисления проводились с принятыми по умолча- нию значениями показателей скрещивания (0,5) и мутации (0,06), а также размерности популяции (50). Графики и «наилучшие» реше- ния регистрировались после 700 «тактов» (f = 700). Пример 4.28 по- священ оптимизации функции двух переменных, график которой изо- бражен на рис. 4.40. Пример 4.28 С помощью программы Evolver найти минимум функции из примера 4.18.
4.11. Приложения эволюционных алгоритмов 225 График этой функции изображен на рис. 4.40. В примере 4.18 приведены координаты четырех точек, в которых эта функция имеет минимальное значение, равное 0. Генетический алгоритм должен найти одну из этих точек. Применяется программа Evolver с приняты- ми по умолчанию значениями показателей скрещивания (0,5) и мута- ции (0,06). Размерность популяции выбрана равной 30. На рис. 4.103 представлены начальные значения переменных х^ и х2, которые вве- дены в исходную популяцию в качестве генов одной из хромосом Значение функции приспособленности для этой хромосомы очень ве- лико - оно составляет 20410. Понятно, что данная хромосома будет очень скоро исключена из популяции, что подтверждается рис. 4.104. На этом рисунке показаны хромосомы популяции для t = 30 (после 30 «тактов»), что соответствует первой итерации (первому поколению) классического генетического алгоритма. Переменные var1 и vaiQ. обо- значают соответственно х, и х2, первый столбец (result) содержит зна- чения функции приспособленности конкретных хромосом. Первое значение (20410) принадлежит особи, исключенной из популяции. На ее место вводится новая хромосома с аллелями, равными 7,89 и -1,537, для которой значение функции приспособленности еще толь- ко предстоит рассчитать. В левом нижнем углу рисунка демонстриру- ется разнородность особей этой популяции. В данном случае она так- же довольно велика. На рис. 4.105 приведены аналогичные графики для популяции после 60 «тактов» (t = 60), а также столбчатая диа- грамма, иллюстрирующая конкретные особи. «Наилучшее на данный момент» значение функции приспособленности все еще слишком ве- лико и составляет 28,3. На рис. 4.106 представлены те же графики после 150 «тактов» (t = 150), дополненные (в левом нижнем углу) графиком изменения «наилучшего» значения функции приспособленности, которое стре- мительно уменьшается. В средней части слева показана разнород- ность популяции, которая также значительно снизилась. Еще меньшая разнородность популяции наблюдается на рис. 4.107, который содержит также столбчатую диаграмму и значения ге- нов конкретных хромосом популяции. «Наименьшее» значение функ- ции приспособленности здесь составляет 5,83 для t = 1080, т.е. после 1080 «тактов». Это значение все еще намного больше минимального. Графики в левой нижней части рисунка показывают изменение сред- него (верхняя кривая) и «наилучшего» (нижняя кривая) значения функции приспособленности. На рис. 4.108 представлены те же графики после 8000 «тактов» (t = 8000). Заметно, что как «наилучшее», так и среднее значение функции приспособленности в популяции принимают значения, близ- кие к 0. На всех графиках одно деление на временной оси соответст- вует 20 «тактам». На рис. 4.109 изображена столбчатая диаграмма особей попу- ляции для t = 8000. Заметноы, что все хромосомы в популяции стали одинаковыми. Значение их функции приспособленности, очевидно, такое же, как и для «наилучшего» решения, т.е. равно 0,000881.
226 Глава 4. Гэнетические алгоритмы I I I I I Минимизация функции F(X1, Х2,. . ,Х6) = Х1"Х1+Х2*Х2+ ,.+Х6*Х6 для Х1. Х2..... Х6 из интервала (-10.10) Х1 = 10 Х2 = -в Х3 = S Х4 = Х5 = -6 Х6 = -9 F(X1, Х2. ,Х6) = 411 I Рис. 4.74. Начальные значения переменных и значение функции для примера 4.22, представленные в табличном процессоре Excel Рис. 4.75. Изменение «наилучшего» (вверху) и среднего (внизу) значения функции приспособленности для примера 4.22.
4.11. Приложения эволюционных алгоритмов Рис. 4.76. Столбчатая диаграмма значений функции приспособленности особей е популяции при (=500 для примера 4.22. I I минимизация функции F(X1. Х2..... Х6) = Х1*Х1+ Х2*Х2+... * Х6«Х6 для Х1. Х2..., Х6 из интервала [-10,10] Х1 = -0.021 Х2 = 0,024 хз= -0.096 Х4 = 0.005 Х5 = 0,009 Х6 = -0,055 F(X1.X2. Х6) = 0.013364 Рис. 4.77. Значения переменных и функции для примера 4.22 при (= 7975.
228 Глава 4. Генетические алгоритмы _ I I Г I | Минимизация функции F(X1, Х2, Х6) = Х1*Х1+Х2*Х2-> »-Х6*Х6 для Х1, Х2..... Х6 из интервала [-10,10] Х1 = -0,021 Х2 = 0.024 Х3 = -0.011 Х4 = 0.005 Х5 = 0.00S Х6 = -0.055 F(X1.X2. Х6) = 0.004269 I Рис. 4.78. Значения переменных и функции для примера 4.22 при t = 10623. Рис. 4.79. Значения переменных и функции для примера 4.22 при г = 11953.
4.11. Приложения эволюционных алгоритмов 229 I i I Минимизация функции F(X1. Х2.. ... Х6) = Х1*Х1+Х2*Х2» + Х6‘Х6 для Х1, Х2. , Х6 из интервала [-10,10] Х1 = -0,02 Х2 = 0,001 хз= -0,011 Х4 = 0 Х5 = 0,009 Х6 = 0,001 F(X1.X2. .,Х6) = 0,000604 I Рис. 4.80. Значения переменных и функции для примера 4.22 при t = 15950 Рис. 4.81. «Наилучший» набор весов из интервала [—5. 5] для нейронной сети, реали- зующей систему XOR (пример 4.23).
230 Глава 4. Гэнетические алгоритмы Рис. 4.83. «Наилучший» набор весов из интервала [-10, 10] для нейронной сети, реализующей систему XOR (пример 4.24).
4.11. Приложения эволюционных алгоритмов Рис. 4.85. Изменение «наилучшего» и среднего значения функции приспособленности для примера 4.22.
232 Глава 4 Гэнетические алгоритмы Рис. 4.87. «Наилучший» набор аесоа из интераала {—15, 15] для нейронной сети, реализующей систему XOR (пример 4.25).
4.11. Приложения эволюционных алгоритмов 233 Рис. 4.89. Еще один «наилучший» набор весов для примера 4.25 (получен после примерно 12000 «тактов»)
234 Глава 4 Гэнетические алгоритмы ом besJ = 1.24ZZ3E-tM ЬИвеКИ Рис. 4.90. Столбчатая диаграмма значений функции приспособленности особей в по- пуляции при t = 1502 для примера 4.26. Рис. 4.91. Изменение «наилучшего» (внизу) и среднего (вверху) значения функции приспособленности для примера 4.26.
4.11. Приложения эволюционных алгоритмов 235 Рис. 4.92. «наилучший» набор весов из интервала [-20,20] при t = 33000 для при мера 4.26. —Л! Z6 10 «12 -10.302 я абсог пая п Это 1 /4 cywfr ыкв» эатовго—-гчостеи (d - у) для каждой пары «годных з» ий Рис. 4.93. «Наилучший» набор весов из интервала [-20, 20] при t = 63000 для примера 4 26. Рис. 4.94. Другой «наилучший» набор весов для примера 4.26.
236 Глава 4. Гэнетические алгоритмы Рис. 4.95. «Наилучший» набор весоа из интервала [—3, 3] для нейронной сети, реализующей систему XOR (пример 4.26). Рис. 4.97. Столбчатая диаграмма значений функции приспособленности особей в по- пуляции при t = 96 для примера 4.27.

238 Глава 4 Гэнетические алгоритмы Рис. 4.99. Набор весов, полученный при t = 96 для примера 4.27 Рис. 4.100. Результат, полученный после 24000 «тактов» при повторном запуске программы Evolver для примера 4.27. Рис. 4.101. «Наилучший» набор весов, полученный для случая рис. 4.100, после 40000 «тактов».
4.11. Приложения эволюционных алгоритмов Рис. 4.102. Изменение «наилучшего» и среднего значения функции приспособлен- ности в случае поиска максимума функции, изображенной на рис. 4.23, с помощью программы Evolver. Рис. 4.103. Начальные значения для примера 4.28.
Глава 4. Гэнетические алгоритмы Рис. 4.104. Популяция особей при t = ЗС для примера 4.28.
4.11. Приложения эволюционных алгоритмов >60 2.63016ЕМП Evolver Toolbar : 20*10. ТгЭДабО с>чП 0*3 21 &Я22 !»_ >> Э» СП ifoooohL 5.682**00 -£.O19*-00 -7 298e*00 €.670**00 6.896*4)0 -5.032**00 €.♦81**00 -3.580*01 i-4.828**00 l 2.559**00 -5,807*4)0 5.760**00 5.760**00 -3,984*4)0 -5.807*00 4.032*4)2 -1504**00 -4.828*4)0 3.569*4)2 5.242**D0 2.177**00 ) -3.580*-01 -3.580*-01 1777*4)2 -5.070*-C1 -3.580*011 1533**02 9,200*-CH -2,!70**00 _______z :/ 1270**02 13Z3**00 -1055**00 4.9Э0**01 -l.005*-00 2.98ЙЧЮ 2,830»«01 -3.317**00 3.753**00 5£02e«00 5.G82*-00 -6.099**00; -6.019**00 -1.237* 5.040**00 ! 6.026**00 -5.040*00. -5.0Ш-00 • -5.070*01 9,200*-01 Accept the best scenario found sole bett ~ 2.63016Е»01 trial* - 60 Рис. 4.105. Популяция особей при t - 60 для примера 4.28.
Глава 4 Гэнетические алгоритмы Рис. 4.106. Популяция особей и график функции приспособленности при t = 150 для примера 4.28.
4.11. Приложения эволюционных алгоритмов Pop Ml □ 1И. □ □ recipe CirOOPOHi-T ^226*4» £588*4» -2226*4» £558*4» •2^26*4» 2.558*4» •2^28*4» 2.558**00 2.228*4» Z.SW».OO 2226*4)0 Z558*-OQ 2.226*4» 2.558*4» £226*4)0 £®8*.00 2728*4» 2.558».DO -2226**00 2558**С0 -£226*4» 2.558*4» 2£26*4» £558*4» 2226*4» £568**00 £226*4» 2,558**00 1-2.226*4»; 4m**4)C <П2»4» 3,580.00 -2732*4» 2428*4» 3.501000 <4226*4)0 3,501*.00 2226*4» Х5Ф*4» 2226*4» 3,5O1*.GO -3.357*4» -2.tf0r.00 3.317*4» *2,«Ю*4Ю 6.827*4» 2.847*4» 2,556*4» «5.82713E+C0 triahMSeO Evolver Toolbar Рис. 4.107. Популяция особей и график функции приспособленности при t = 1080 для примера 4.28.

4.11. Приложения эволюционных алгоритмов Ье,1-е.я1гвэе-о< Рис. 4.109. Столбчатая диаграмма значений функции приспособленности особей е популяции при t = 8000 для примера 4.28. Рис. 4.110. «Наилучшее» решение для примера 4.28 (полученное при г = 8000).
246 Глава 4. Гэнетические алгоритмы «Наилучшее» решение показано на рис. 4.110. Это хромосома со значениями переменных х^ = -3,78 и х2 = -3,279. 4.11.2. Решение комбинаторных задач с помощью программы Evolver При решении комбинаторных задач проблема заключается в поиске наилучшего решения среди возможных перестановок пара- метров задачи. В качестве примера можно назвать сортировку списка имен (пример 4.29) или задачу коммивояжера [33]. В программе Evolver для решения комбинаторных задач применяются генетичес- кие операторы, определение которых несколько отличается от анало- гичных операторов, ориентированных на оптимизационные задачи. В частности: Скрещивание разбивается на следующие шаги: 1) случайным образом выбираются позиции у первого родите- ля; их количество зависит от показателя скрещивания; 2) находятся позиции с такими же значениями генов (аллеля- ми) у второго родителя; 3) значения оставшихся позиций первого родителя копируют- ся на оставшиеся позиции второго родителя в последовательности, в которой они записаны у первого родителя. Описанный способ скрещивания иллюстрируется на рис. 4.111. На этом рисунке показаны две хромосомы родителей, состоя- щие из семи генов со значениями из интервала целых чисел от 1 до 7. Каждый ген в хромосоме характеризуется уникальным значением. Каждая хромосома представляет собой перестановку натуральных чисел от 1 до 7. Под каждым геном указан номер его позиции (locus). Допустим, что показатель скрещивания равен 0,5, и у первого родите- ля случайным образом выбраны позиции 1, 4, 5, 6, на которых нахо- дятся значения 3, 7, 6, 2 соответственно. У второго родителя эти зна- чения находятся на позициях 1,5,6,7. В результате копирования зна- чений оставшихся позиций первого родителя (т.е. чисел 5,1,4 с пози- ций 2, 3, 7 соответственно) на оставшиеся позиции второго родителя Родитель 1 : [ 3 5 1 7 6 2 4] локус: 1 2 3 45 6 7 II/ Родитель 2 :[ 3 4 5 1 7 6 2] локус - 1 2 3 4 5 6 7 ПОТОМОК [3514726] 1 2 3 4 5 6 7 Рис. 4.111. Скрещивание с сохранением порядка в генетическом алгоритме программы Evolver.
4.11. Приложения эволюционных алгоритмов 247 (т.е. на позиции 2, 3, 4) в последовательности, в которой они записа- ны у первого родителя, образуется потомок со значениями генов 3,5, 1, 4, 7, 2, 6. Представленный метод скрещивания применяется в программе Evolver для решения задач, которые сводятся к поиску хромосом с наилучшим упорядочением генов. Описываемый способ подобен упорядоченному скрещиванию (order crossover) [9], показанному на рис. 4.112. Номера позиций выбираются случайным образом. Далее зна- чения генов с выбранных позиций одного из родителей переносятся на соответствующие позиции второго родителя. В результате скрещи- вания образуются два потомка. Мутация. Оператор мутации реализует так называемую мута- цию, основанную на упорядочении (order-based mutation) [9]. Опреде- ленная таким образом мутация заключается в случайном выборе двух позиций в хромосоме и обмене значений генов на этих позици- ях. Например, после мутации хромосомы [3 5 1 4 7 2 6] на выбранных позициях 2 и 5 будет получена хромосома [37 1 4526]. Количество обменов возрастает или снижается пропорционально увеличению или уменьшению показателя мутации. Этот способ мутации отличается тем, что в результате ее вы- полнения формируется новая хромосома с измененной последова- тельностью генов. Такая мутация применяется для поиска наилучшей перестановки параметров задачи. Пример 4.29 Этот пример демонстрирует применение генетического алго- ритма для сортировки списка имен в алфавитном порядке. Для упрощения будем рассматривать очень короткий список из семи имен, начинающихся буквами J, М, В, R, S, Н, F. Таким образом, наилучшее решение ищется в пространстве решений, состоящем из 7! = 5040 возможных перестановок семи элементов. Наилучшее ре- шение очевидно - это В, F, Н, J, М, R, S. На этом простейшем приме- ре познакомимся с тем, как генетический алгоритм решает задачи Родитель! [abcdefgh] > локус; 1 <2)6 4 3)6 7(1) Mi l [abcdefgh] Потомок 1 локус: 1 2 3 4 5678 1 скрещивание ♦ / 1 1; Родитель2: [gcfaebdh] покус • 1 <2x3 4 <5)6 7® ' [gbfacedh] Потомок2 1 23 4 567 8 Рис. 4.112. Упорядоченное скрещивание (order crossover).
248 Глава 4. Гэнетические алгоритмы этого типа. Припишем каждому имени, включенному в исходный (не- сортированный) список, порядковый номер так, как это сделано в пер- вом столбце на рис. 4.113. Допустимое решение, представленное на рисунке - это В, F, R, Н, J, М, S. Приведенным первым буквам имен предшествуют соответ- ствующие им порядковые номера из первого столбца. Последова- тельность этих номеров (на рисунке они вписаны в клетки) идентифи- цирует данное решение. На рис. 4.114 таким же образом представле- но наилучшее решение, определяемое последовательностью 3, 7, 6, 1,2, 4,5 Рассматриваемая задача имеет семь переменных (параметров задачи). Обозначим их Рь Р2, —, Ру- Каждая из этих переменных мо- жет принимать целые значения от 1 до 7. На рис. 4.113 показана од- на из особей популяции, для которой значения конкретных перемен- ных (параметров задачи) равны 3, 7,4, 6, 1, 2, 5, а наилучшее реше- ние на рис. 4.114 характеризуется значениями этих переменных 3, 7, 6,1,2,4,5. Приведенные последовательности чисел рассматривают- ся как аллели хромосом, представляющих соответствующие особи. Для каждой особи, входящей в популяцию, при выполнении генетиче- ского алгоритма рассчитывается значение функции приспособленно- сти и на этой основе выбираются наилучшие и наихудшие особи. Прежде чем определить функцию приспособленности для рас- сматриваемой задачи, введем ряд обозначений. Пусть л(Р() соответ- ствует имени, определенному порядковым номером Р,-, i = 1, 2, ..., 7, и пусть n(P|) < n(Pj) означает, что имя с порядковым номером Р,-долж- но предшествовать имени с порядковым номером Ру, т.е. они упорядо- чиваются по алфавиту. Пусть G обозначает последовательность, со- ставленную из элементов д^т, к = 2.7, т -1,.... к-1, где _ Г 1, если л(Рк)<л(Рт), 9кт ( 0 в противном случае Исходный список (1 картированный) Одно ИЗ возможных решений № Имена 1 J Р, 3 В g2I 2 3 М В R Р2 Ps Т 6 R Н 8з,=0. Вз2=О 8,1 = 0,8« = 0, 8,з ~ 1 5 S р 8„=0. 8,2=0. Вя = 1.В5, = 0 6 н Р6 Т М 8ei =0. 8« =0. = 1. 8« =0. В« =0 7 F р? S 8п = °. 8,, = 0, = 0. g,. = 0. g7s = 0. Ек = 0 G=[oooooiooioooioooooooo] Значение функции приспособленности =3 Рис. 4.113. Одно из допустимых решений задачи из примера 4.29.
4.11. Приложения эволюционных алгоритмов 249 Очевидно, что если последовательность G состоит из одних ну- лей, то последовательность имен будет корректной. Поэтому наилуч- шая особь должна характеризоваться последовательностью G, все элементы которой равны нулю. Следовательно, функцию приспособ- ленности можно определить как сумму элементов последовательнос- ти G, и нас, конечно, будет интересовать минимизация этой функции (которая может принимать целые значения в интервале от 0 до 21). Заметим, что если бы элемент принимал нулевое значение при п(Рк) < п(Рт) и значение 1 в противном случае, то следовало бы мак- симизировать количество единиц в последовательности G. Теперь пе- рейдем к интерпретации функции приспособленности из примера 4.4. Задача, сформулированная в примере 4.29, решается с помо- щью программы Evolver, размерность популяции принята равной 10, показатель скрещивания равен 0,5, показатель мутации равен 0. При t = 10, что соответствует первой популяции классического генетичес- кого алгоритма, получена популяция, представленная на рис. 4.115. Первый столбец определяет последовательность хромосом в популяции (от «наихудшей» к «наилучшей»). Во втором приведены значения функции принадлежности каждой хромосомы. В третьем столбце записаны сами хромосомы, состоящие из семи генов. Каж- дая из этих хромосом представляет собой перестановку натуральных чисел от 1 до 7. Первое значение функции приспособленности, очер- ченное прямоугольником и равное 15, относится к хромосоме, исклю- ченной из предыдущей популяции. Вместо нее вводится хромосома [351 4726], полученная в результате скрещивания хромосом [351 7 6 2 4] и [3 4 5 1 7 2 6], присутствующих на рис. 4.115. Последняя хро- мосома, имеющая функцию приспособленности, равную пяти, после 10 «тактов» является «наилучшей на данный момент». При продол- жении выполнения алгоритма можно получить наилучшую хромосому [3 7 6 1 2 4 5] с функцией приспособленности, равной 0. Эта опти- мальная хромосома представлена на рис. 4.114. Заметим, что в рас- Рис. 4.114. Наилучшее решение задачи из примера 4.29.
250 Глава 4. Гэнетические алгоритмы 1 Й5 3 5 1 4 7 2 6 2 13 5 3 1 4 2 7 6 3 13 2 6 1 5 4 3 7 4 11 3 4 5 1 7 2 6 5 11 7 2 6 5 4 1 3 6 11 1 7 7 4 5 6 3 7 11 7 4 1 5 6 3 2 8 9 6 4 1 3 2 7 5 9 7 3 5 1 7 6 2 4 10 5 3 6 1 4 2 7 5 Рис. 4.115. Популяция особей в генетическом алгоритме программы Evolver для задачи из примера 4.29. сматриваемом примере функция приспособленности интерпретирует- ся как погрешность, которую, конечно же, следует минимизировать. Для наилучшего решения эта погрешность обязана быть равной 0! Пример 4.29 легко обобщить на любые перечни имен или на- званий, подлежащих сортировке в алфавитном порядке (либо в соот- ветствии с другим ключей). Задачи такого типа можно решать с помо- щью эволюционного алгоритма программы Evolver. Эта программа также позволяет решить известную из литературы задачу о коммиво- яжере [33], имеющую гораздо более сложную структуру, чем рассмо- тренная задача из примера 4.29. 4.12. Эволюционные алгоритмы в нейронных сетях Объединение генетических алгоритмов и нейронных сетей из- вестно в литературе под аббревиатурой COGANN (Combinations of Genetic Algorithms and Neural Networks). Это объединение может быть вспомогательным (supportive) либо равноправным (collaborative) [39]. Вспомогательное объединение двух методов означает, что они при- меняются последовательно один за другим, причем один из них слу- жит для подготовки данных, используемых при реализации второго метода. При равноправном объединении оба метода применяются одновременно. Классификация этих типов объединений генетических алгоритмов и нейронных сетей представлена в табл. 4.6. В последующей части настоящего раздела будут обсуждаться конкретные комбинации, отраженные в приводимой таблице. Рисунки 4.116-4.118 иллюстрируют различные подходы к решению задач, рассматриваемые как вспомогательные объединения генетических алгоритмов и нейронных сетей.
4.12. Эволюционные алгоритмы в нейронных сетях 251 Таблица 4.6. Объединение генетических алгоритмов и нейронных сетей Вид объеди- нения Характеристика объединения Примеры использования Литера- тура Генетические алгоритмы и нейронные сети независимо применяются для решения одной и той же задачи Однонаправленные нейронные сети, сети Кохоненас самоорганизацией и генетические алгоритмы в задачах классификации (40.46] Вспомо- гатель- ное Нейронные сети для обеспечения генетических алгоритмов Формирование исходной популяции для генетического алгоритма (26.27) Генетические алгоритмы для обеспечения нейронных сетей Анализ нейронных сетей (5.10. 11.42] Подбор параметров либо преобразование пространства параметров (17.22. 24] Подбор параметров либо правила обучения (эволюция правил обучения) (3.6. 20.38] Равно- правное Генетические алго- ритмы для обучения нейронных сете-”’ Эволюционное обучение сети (эволюция весов связей) [2. 35, 44] Генетические алго- ритмы для выбора топологии нейрон- ной сети Эволюционный подбор топологии сети (эволюция сетевой архитектуры) [17.20. 45] Системы, объединяющие адаптивные стратегии генети- ческих алгоритмов и нейронных сетей Нейронные сети для решения оптимизационных задач с применением генетического алгоритма для подбора весов сети (Я Реализация генетического алгоритма с помощью нейронной сети [16] Применение нейронной сети для реализации оператора скрещивания в генетическом алгоритме [41]
252 Глава 4 Гэнетические алгоритмы Необходимо отметить, что в соответствии с замечаниями, при- веденными в разд. 4.10, термин «генетические алгоритмы» применя- ется здесь в более широком смысле, чем классический генетический алгоритм 4.12.1. Независимое применение генетических алгоритмов и нейронных сетей Генетические алгоритмы и нейронные сети могут незави- симо применяться для решения одной и той же задачи. Этот подход иллюстрируется на рис. 4.116. Например, описаны независимые применения нейронных се- тей, генетических алгоритмов и алгоритма KNN «ближайший сосед» (К - means nearest neighbour) для решения задач классификации. В работе [40] проведено сравнение трехслойной однонаправленной нейронной сети с обучением по методу обратного распространения ошибки (обучение с учителем), сети Кохонена с самоорганизацией (обучение без учителя), системы классификации, основанной на гене- тическом алгоритме, а также алгоритма KNN «ближайший сосед». Ав- торы работы [39] считают независимое применение этих методов для решения задачи автоматической классификации результатов ЭМГ (электромиография - регистрация электрической активности мышц) вспомогательным объединением. Известны и другие работы, в которых сравниваются возможно- сти применения различных методов (в частности, генетических алго- ритмов и нейронных сетей) для решения одних и тех же задач [46]. Примером задачи, которую можно решить с помощью как нейронной сети, так и генетического алгоритма, может служить задача о комми- вояжере [28, 33, 36]. 4.12.2. Нейронные сети для поддержки генетических алгоритмов Большинство исследователей изучали возможности примене ния генетических алгоритмов для обеспечения работы нейронных се- Нейронная Генетический сеть алгоритм Рис. 4.116. Генетический алгоритм и нейронная сеть независимо применяются для решения одной и той же задачи.
4.12. Эволюционные алгоритмы в нейронных сетях 253 тей. К немногочисленным обратным случаям относится гибридная сис тема, предназначенная для решения задачи трассировки [26,27], которая классифицируется в [39] как пример вспомогательного объе- динения нейронных сетей и генетических алгоритмов. В этой системе генетический алгоритм используется в качестве оптимизационной процедуры, предназначенной для нахождения кратчайшего пути. Нейронная сеть применяется при формировании исходной популяции для генетического алгоритма. Этот подход схематичиески иллюстри- руется на рис. 4.117. 4.12.3. Генетические алгоритмы для поддержки нейронных сетей Подход, основанный на использовании генетического алгорит- ма для обеспечения работы нейронной сети, схематически представ- лен на рис. 4.118. Известно множество работ, посвященных подобно- му объединению рассматриваемых методов. Можно выделить три об- ласти проблем [39]: - применение генетического алгоритма для подбора парамет- ров либо преобразования пространства параметров, используемых нейронной сетью для классификации; - применение генетического алгоритма для подбора правила обучения либо параметров, управляющих обучением нейронной сети; Рис. 4.117. Вспомогательное объединение нейронной сети с генетическим алгоритмом.
254 Глава 4. Гэнетические алгоритмы Рис. 4.118. Вспомогательное объединение генетического алгоритма с нейронной сетью. - применение генетического алгоритма для анализа нейронной сети. Две первые области приложения генетических алгоритмов в нейронных сетях, вообще говоря, позволяют улучшать функциони- рование сетей (т.е. решают проблему синтеза), тогда как третья слу- жит для анализа их функционирования. Начнем обсуждение с по- следней позиции. Анализ нейронных сетей. Некоторые исследователи приме- няли генетические алгоритмы в качестве вспомогательного инстру- мента для выяснения закономерностей функционирования нейрон- ных сетей либо анализа эффективности их работы [5,10, 11, 42]. Ге- нетический алгоритм использовался для построения «инструмен- тальной системы», облегчающей понимание функционирования сети - попросту говоря, для выяснения, что и почему делает сеть. Такое понимание необходимо для того, чтобы нейросетевой классификатор не воспринимался в качестве «черного ящика», который формирует ответ неким таинственным образом, и чтобы решения по классифика- ции объектов были объяснимыми. Подобный «инструментарий» (explanation facilities) используется в большинстве экспертных систем. Построение этих инструментов для их применения в нейронных сетях считается более масштабной проблемой, относящейся к анализу се- тей [11]. Генетический алгоритм применялся для построения так на-
4.12. Эволюционные алгоритмы в нейронных сетях 255 зываемых кодовых векторов (codebook vectors), представляющих со- бой входные сигналы, при которых функция активации конкретного выходного нейрона сети принимает максимальное или близкое к не- му значение. Входные векторы представлялись в хромосомах множе- ством вещественных чисел от 0,0 до 1,0. Анализировалась нейронная сеть, предназначенная для решения задачи классификации [10, 11]. Аналогичный подход применялся для сети ART1 (частного случая ART с двоичными входными сигналами) [5]. С помощью генетическо- го алгоритма также проводился анализ нейронной сети, используе- мой в качестве модели ассоциативного запоминающего устройства [42]. Приведенные примеры характеризуют вспомогательное объеди- нение генетических алгоритмов и нейронных сетей [39], хотя и не мо- гут считаться типичными по отношению к схеме, представленной на рис. 4.118 Подбор параметров либо преобразование пространства параметров. Генетический алгоритм используется при подготовке данных для нейронной сети, играющей роль классификатора. Эта подготовка может выполняться путем преобразования пространства параметров либо выделением некоторого подпространства, содержа- щего необходимые параметры Первый из этих методов, так называемое преобразование про- странства параметров, применяется чаще всего в алгоритмах типа «ближайший сосед», хотя известны также его приложения в нейросе- тевых классификаторах [24]. Второй подход заключается в выделе- нии подмножества учитываемых параметров. Оказывается, что огра- ничение множества параметров часто улучшает функционирование нейронной сети в качестве классификатора и, к тому же, сокращает объемы вычислений. Подобное ограничение множества учитывае- мых нейронной сетью параметров применялось, в частности, для кон- троля сценариев происшествий на одерных объектах [17], а также для распознавания китайских иероглифов [22]. Известны и другие примеры [39] подготовки данных для нейронных сетей при помощи ге- нетических алгоритмов. Подбор параметров и правил обучения. Генетический алго- ритм также применяется для подбора параметров обучения - чаще всего скорости обучения (learning rate) и так называемого момента для алгоритма обратного распространения ошибки [3, 20, 38]. Такое адаптивное уточнение параметров алгоритма обратного распростра- нения (они кодируются в хромосомах) в результате эволюции может рассматриваться как первая попытка эволюционной модификации правил обучения [47]. Вместо непосредственного применения генети- ческого алгоритма для подбора параметров обучения развивается эволюционный подход, направленный на построение оптимального правила (алгоритма) обучения [6]. Эволюция правил обучения будет представлена в п. 4.12.7.3. Заметим, что эволюционная концепция уже может рассматри- ваться как переход от вспомогательного к равноправному объедине- нию генетического алгоритма и нейронных сетей.
256 Глава 4. Генетические алгоритмы 4.12.4. Применение генетических алгоритмов для обучения нейронных сетей Мысль о том, что нейронные сети могут обучаться с помощью генетического алгоритма, высказывалась различными исследовате- лями. Первые работы на эту тему касались применения генетическо- го алгоритма в качестве метода обучения небольших однонаправлен- ных нейронных сетей [44], но в последующем было реализовано при- менение этого алгоритма для сетей с большей размерностью [39]. Как правило, задача заключается в оптимизации весов нейрон- ной сети, имеющей априори заданную топологию. Веса кодируются в виде двоичных последовательностей (хромосом). Каждая особь по- пуляции характеризуется полным множеством весов нейронной сети. Оценка приспособленности особей определяется функцией приспо- собленности, задаваемой в виде суммы квадратов погрешностей, т.е. разностей между ожидаемыми (эталонными) и фактически получае- мыми значениями на выходе сети для различных входных данных. Приведем два важнейших аргумента в пользу применения ге- нетических алгоритмов для оптимизации весов нейронной сети. Прежде всего, генетические алгоритмы обеспечивают глобальный просмотр пространства весов и позволяют избегать локальные мини- мумы. Кроме того, они могут использоваться в задачах, для которых информацию о градиентах получить очень сложно либо она оказыва- ется слишком дорогостоящей. Эволюционному обучению нейронных сетей, т.е. эволюции ве- сов связей, посвящен п. 4.12.7.1. 4.12.5. Генетические алгоритмы для выбора топологии нейронных сетей В качестве наиболее очевидного способа объединения генети- ческого алгоритма с нейронной сетью интуитивно воспринимается по- пытка закодировать в генотипе топологию объекта (в рассматривае- мом случае - нейронной сети) с указанием количества нейронов и связей между ними при последующем определении весов сети с по- мощью любого известного метода [39]. Проектирование оптимальной топологии нейронной сети мо- жет быть представлено в виде поиска такой архитектуры, которая обеспечивает наилучшее (относительно выбранного критерия) реше- ние конкретной задачи. Такой подход предполагает перебор прост- ранства архитектур, составленного из всех возможных вариантов, и выбор точки этого пространства, наилучшей относительно заданно- го критерия оптимальности [49]. С учетом достоинств эволюционного проектирования архитек- туры в последние годы было выполнено большое количество иссле- дований [45,20,17], в которых основное внимание уделялось эволю- ции соединений нейронной сети, т.е. количества нейронов и тополо- гии связей между ними. Лишь в некоторых работах рассматривалась эволюция функций переходов, хотя эти функции считаются важным
4.12. Эволюционные алгоритмы в нейронных сетях 257 элементом архитектуры и оказывают существенное влияние на функ- ционирование нейронной сети. Также, как и в случае эволюционного обучения, первый шаг эволюционного проектирования архитектуры заключается в форми- ровании исходного множества рассматриваемых вариантов. Типовой цикл эволюции архитектур представлен в п. 4.12.7.2. 4.12.6. Адаптивные взаимодействующие системы К равноправному объединению генетических алгоритмов и ней- ронных сетей следует отнести комбинацию адаптивных стратегий обоих методов, составляющую единую адаптивную систему. Можно привести три примера систем такого типа [39]. Первый из них - это нейронная сеть для оптимизационной задачи с генетическим алгорит- мом для определения весов сети [1]. Второй пример относится к реа- лизации генетического алгоритма с помощью нейронной сети. В этом случае нейронные подсистемы применяются для выполнения генети- ческих операций репродукции и скрещивания [16]. В третьем приме- ре, несколько похожем на предыдущий, нейронная сеть также приме- няется в качестве оператора скрещивания в генетическом алгоритме, предназначенном для решения оптимизационных задач [41]. Пред- ставленные примеры касаются такого равноправного объединения генетических алгоритмов и нейронных сетей, которое в результате позволяет получить более эффективный алгоритм, объединяющий лучшие качества обоих методов. 4.12.7. Типовой цикл эволюции Как только определенный вид эволюции вводится в искусствен- ную нейронную сеть, сразу возникает потребность в соответствующей ему схеме хромосомного представления данных, т.е. должен быть со- здан способ генетического кодирования особей популяции. Разработ- ка способа кодирования считается первым этапом такого эволюцион- ного подхода, наряду с которым типовой процесс эволюции включает следующие шаги [47]: - декодирование; обучение; т- оценивание приспособленности; - репродукция; формирование нового поколения. Приведенная на рис. 4.3 блок-схема сохраняет свою актуаль- ность, поскольку (как уже упоминалось в разд. 4.10) она отображает и классический генетический алгоритм, и так называемые эволюцион- ные программы, которые основаны на генетическом подходе и обоб- щают его принципы. Следовательно, этой универсальной блок-схеме соответствуют различные эволюционные алгоритмы, и в каждом из них в первую очередь должна быть сгенерирована исходная популя- ция хромосом. По аналогии с классическим генетическим алгоритмом инициализация (т.е. формирование этой исходной популяции) заклю-
258 Глава 4. Генетические алгоритмы чается в случайном выборе требуемого количества включаемых в нее хромосом, что предполагает соответствующее генетическое кодиро- вание каждой особи. В классическом генетическом алгоритме хромо- сомы представляются только двоичными последовательностями. При эволюционном подходе выбор способа кодирования представляет со- бой важную и актуальную задачу. Далее в соответствии с типовым циклом эволюции следует де- кодировать каждую особь (хромосому) исходной или текущей популя- ции для того, чтобы получить множество решений (фенотипов) дан- ной задачи. В случае эволюции весов, архитектур и/или правил обу- чения фенотипы представляют соответственно множества весов, ар- хитектур и правил обучения. Впоследствии согласно генетическому алгоритму рассчитыва- ются значения функции приспособленности особей исходной (или те- кущей) популяции. При нейросетевом подходе после декодирования хромосом получается множество нейронных сетей, для которых сте- пень приспособленности определяется по результатам обучения этих сетей. При реализации типового цикла эволюции необходимо сконст- руировать множество соответствующих нейронных сетей (феноти- пов): - сети с фиксированной архитектурой и множеством закодиро- ванных хромосомами весов - в случае эволюции весов; - сети с закодированной хромосомами архитектурой - в случае эволюции архитектуры; - сети со случайно сгенерированными архитектурами и началь- ными весами - в случае эволюции правил обучения. После обучения оценивается приспособленность каждой осо- би, входящей в текущую популяцию. Заметим, что также как и в при- мере максимизации функции (пример 4.5), для оценивания приспо- собленности хромосом необходимо их вначале декодировать и лишь затем рассчитать значения функции приспособленности особей по их фенотипам. Следующий шаг генетического алгоритма - это селекция хро- мосом. Выбираются хромосомы, подлежащие репродукции, т.е. фор- мируется родительский пул, особи которого в результате применения генетических операторов сформируют популяцию потомков. Селек- ция может быть основана на методе рулетки или любом другом (см. п. 4.8.1), например, по алгоритму Уитли (Whitley) [44]. Согласно этим методам селекция производится с вероятностью, пропорцио- нальной приспособленности хромосом, либо согласно их рангу (при использовании рангового метода). Под репродукцией в данном слу- чае понимается процесс отбора (селекции) и копирования (размноже- ния) хромосом для формирования из них переходной популяции (ро- дительского пула), особи которой будут подвергаться воздействию ге- нетических операторов скрещивания, мутации и, возможно, инверсии. Применение генетических операторов с выбранным методом селекции хромосом происходит аналогично классическому генетиче-
4.12. Эволюционные алгоритмы в нейронных сетях 259 скому алгоритму, причем эти операторы могут отличаться от скрещи- вания и мутации базового алгоритма. Как отмечалось в разд. 4.10, для конкретной задачи генетические операторы могут определяться в индивидуальном порядке. Также как и в классическом генетическом алгоритме, в резуль- тате применения генетических операторов с выбранным методом се- лекции хромосом формируется новая популяция особей (потомков). Последующие шаги алгоритма повторяются для очередной популя- ции вплоть до выполнения условия завершения генетического алго- ритма. На каждой итерации формируется новое поколение потомков. Наилучшая особь из последнего поколения считается искомым решением данной задачи. Таким образом получается наилучшее мно- жество весов, наилучшая архитектура либо наилучшее правило обу- чения. 4.12.7.1. Эволюция весов связей Эволюционный подход к обучению нейронных сетей состоит из двух основных этапов. Как указывалось во введении к п. 4.12.7, пер- вый из них - это выбор соответствующей схемы представления весов связей. Он заключается в принятии решения - можно ли кодировать эти веса двоичными последовательностями или требуется какая-то другая форма. На втором этапе уже осуществляется сам процесс эво- люции, основанный на генетическом алгоритме. После выбора схемы хромосомного представления генетичес- кий алгоритм применяется к популяции особей (хромосом, содержа- щих закодированное множество весов нейронной сети) с реализаци- ей типового цикла эволюции, состоящего из четырех шагов. 1) Декодирование каждой особи (хромосомы) текущего поколе- ния для восстановления множества весов и конструирование соот- ветствующей этому множеству нейронной сети с априорно заданной архитектурой и правилом обучения. 2) Расчет общей среднеквадратичной погрешности между фак- тическими и заданными значениями на всех выходах сети при подаче на ее входы обучающих образов. Эта погрешность определяет при- способленность особи (сконструированной сети); в зависимости от вида сети функция приспособленности может быть задана и другим образом. 3) Репродукция особей с вероятностью, соответствующей их приспособленности, либо согласно их рангу (в зависимости от спосо- ба селекции - например, по методу рулетки или ранговому методу). 4) Применение генетических операторов - таких как скрещива- ние, мутация и/или инверсия для получения нового поколения. Блок-схема, иллюстрирующая эволюцию весов, представлена на рис. 4.119. В соответствии с этой схемой были рассчитаны веса для нейронной сети, реализующей систему XOR с помощью програм- мы Evolver (примеры 4.23 - 4.27) и с помощью программы FlexTool (пример 4.20). В соответствии с первым этапом типового цикла эво- люции априорно задаются и остаются неизменными архитектура се-
260 Глава 4. Гэнетические алгоритмы Рис. 4.119. Блок-схема генетического алгоритма поиска наилучшего набора весов нейронной сети (случай эволюции весов)
4.12. Эволюционные алгоритмы в нейронных сетях 261 ти, определяющая количество слоев, число нейронов в каждом слое и топологию межнейронных связей, а также правило обучения сети. Приспособленность каждой особи (генотипа) оценивается значением среднеквадратичной погрешности, рассчитанной по соответствующей этой особи нейронной сети (фенотипу). В представленном процессе эволюционного обучения реализу- ется режим так называемого пакетного обучения (batch training mode), при котором значения весов изменяются только после предъявления сети всех обучающих образов. Такой прием отличается от применяе- мого в большинстве последовательных алгоритмов обучения - на- пример, в методе обратного распространения ошибки веса уточняют- ся после предъявления сети каждой обучающей выборки. Рассмотрим более подробно первый этап эволюционного под- хода к обучению, связанный с фиксацией схемы представления ве- сов. Как уже отмечалось, необходимо выбрать между бинарным пред- ставлением и кодированием весов действительными числами. Поми- мо традиционного двоичного кода, может применяться код Грея, лога- рифмическое кодирование (см. п. 4.8.4) либо другие более сложные формы записи данных [3]. В роли ограничителя выступает требуемая точность представления значений весов. Если для записи каадого ве- са используется слишком мало битов, то обучение может продол- жаться слишком долго и не принести никакого эффекта, поскольку точность аппроксимации отдёльных комбинаций действительных зна- чений весов дискретными значениями часто оказывается недостаточ- ной. С другой стороны, если используется слишком много битов, то двоичные последовательности, представляющие нейронные сети большой размерности, оказываются очень длинными, что сильно уд- линяет процесс эволюции и делает эволюционный подход к обучению нерациональным с практической точки зрения. Вопрос оптимизации количества битов для представления конкретных весов все еще оста- ется открытым [47]. Для устранения недостатков схемы двоичного представления данных было предложено задавать значения весов действительными числами, точнее - каждый вес описывать отдельным действительным числом [2, 12, 35]. Такой способ кодирования реализован, в частнос- ти, в программе Evolver [49]. Он использовался при решении приме- ров 4.23 - 4.27. Стандартные генетические операторы, разработанные для схе- мы двоичного представления данных, могут применяться и в случае задания весов двоичными числами, однако для большей эффектив- ности эволюционного алгоритма и ускорения его выполнения созда- ны специальные генетические операторы. 4.12.7.2. Эволюция архитектуры сети В п. 4.12.7.1 при рассмотрении эволюционного обучения ней- ронных сетей предполагалось, что архитектура сети задается априор- но и не изменяется в процессе эволюции весов. Однако сохраняет ак-
262 Глава 4. Генетические алгоритмы туальность вопрос - как выбрать архитектуру сети? Известно, что ар- хитектура оказывает решающее влияние на весь процесс обработки информации нейронной сетью. К сожалению, чаще всего она подби- рается экспертами методом проб и ошибок. В таких условиях способ оптимального (или почти оптимального) проектирования архитектуры нейронной сети для конкретной задачи оказался бы очень полезным. Один из возможных подходов заключается в эволюционном форми- ровании архитектуры с применением генетического алгоритма. Также как и в случае эволюционного обучения, на первом эта- пе эволюционного проектирования архитектуры принимается реше- ние относительно соответствующей формы ее описания. Однако в данной ситуации проблема не связана с выбором между двоичным и вещественным представлением (т.е. действительными числами), поскольку речь может идти только о дискретных значениях. Необхо- димо выбрать более общую концептуальную структуру представле- ния данных, например, в форме матриц, графов и т.п. Ключевой во- прос состоит в принятии решения о количестве информации об архи- тектуре сети, которая должна кодироваться соответствующей схемой. С одной стороны, полная информация об архитектуре может непо- средственно кодироваться в виде двоичных последовательностей, т.е. каждая связь и каждый узел (нейрон) прямо специфицируется оп- ределенным количеством битов. Такой способ представления назы- вается схемой непосредственного кодирования. С другой стороны, могут представляться только важнейшие параметры или свойства ар- хитектуры - такие как количество узлов (нейронов), количество свя- зей и вид переходной функции нейрона. Этот способ представления называется схемой косвенного кодирования. Существуют и другие названия указанных способов представления данных, например, вме- сто «непосредственного кодирования» встречается термин сильная схема спецификации, а вместо «косвенного кодирования» - слабая схема классификации [34] Схема непосредственного кодирования означает, что каж- дая связь нейронной сети непосредственно задается его двоичным представлением [34, 38, 45]. Матрица С размерностью лхл, С = [с^]Пхп может представлять связи нейронной сети, состоящей из п узлов (нейронов), причем значение с,у определяет наличие или отсутствие связи между Z-м и у-м нейронами. Если Cjj = 1, то связь существует, ес- ли dj = 0, то связь отсутствует. При таком подходе двоичная последо- вательность (хромосома), представляющая связи нейронной сети, имеет вид комбинации строк (или столбцов) матрицы С. Пример рассматриваемого способа кодирования для л = 5 приведен на рис. 4.120. Если значение п обозначает количество нейронов в сети, то связи между этими нейронами будут представляться двоичной по- следовательностью, имеющей длину л2. Очевидный недостаток тако- го способа кодирования заключается в стремительном увеличении длины генотипа при расширении нейронной сети. Однако в обсужда- емую схему представления можно легко внести ограничения, которые сократят длину хромосом [34]. В частности, могут приниматься во внимание только однонаправленные связи, что позволит учитывать
4.12. Эволюционные алгоритмы в нейронных сетях 263 Матрица связей: О О 1 О О 1 ООО ООО 1 о‘ 1 о О 1 О 1 Нейронная сеть Хромосома. [0011000110000010000100000] 0 0 0 0 0 Рис. 4.120. Пример непосредственного кодирования матрицы связей для нейронной сети. только те элементы матрицы С, которые задают связи данного узла (нейрона) со следующим узлом. В этом случае хромосома для приме- ра на рис. 4.120 будет иметь вид 0110110011 Схема непосредственного кодирования может одновременно примяться для определения как связей, так и их весов. Этот способ кодирования применяется, главным образом, для небольших нейрон- ных сетей Схема косвенного кодирования - это способ сокращения длины описания связей, который заключается в кодировании только наиболее важных свойств, но не каждой связи нейронной сети [20,25, 32]. По этой причине заметным достоинством схемы косвенного коди- рования становится компактное представление связей. Такая схема выглядит более обоснованной с биологической точки зрения. Соглас- но современной нейрологии, невозможно прямо и независимо опи- сать закодированной в хромосомах генетической информацией всю нервную систему. Такой вывод следует, например, из факта, что гено- тип человека состоит из гораздо меньшего количества генов, чем чис- ло нейронов в его мозге. Известны различные методы косвенного кодирования [39, 47]. Второй этап эволюционного проектирования архитектуры ней- ронной сети состоит (в соответствии с типовым циклом эволюции) из следующих шагов: 1) Декодирование каждой особи текущей популяции для опи- сания архитектуры нейронной сети. 2) Обучение каждой нейронной сети с архитектурой, получен- ной на первом шаге, с помощью заранее заданного правила (некото- рые его параметры могут адаптивно уточняться в процессе обуче- ния). Обучение должно начинаться при различных случайно выбира- емых начальных значениях весов и (при необходимости) параметров правила обучения. 3) Оценивание приспособленности каждой особи (закодиро- ванной архитектуры) по достигнутым результатам обучения, т.е. по наименьшей целой среднеквадратичной погрешности обучения либо на основе тестирования, если наибольший интерес вызывает способ-
264 Глава 4. Генетические алгоритмы ность к обобщению, наименьшая длительность обучения или упроще- ние архитектуры (например, минимизация количества нейронов и связей между ними). 4) Репродукция особей с вероятностью, соответствующей их приспособленности или рангу в зависимости от используемого мето- да селекции. 5) Формирование нового поколения в результате применения Таких генетических операторов, как скрещивание, Мутация и/или ин- версия. Блок-схема, иллюстрирующая эволюцию архитектур, пред- ставлена на рис. 4.121. — Если говорить об обучении сети (шаг 2), то наиболее часто встречается развитие топологии однонаправленных сетей с примене- нием алгоритма обратного распространения ошибки с целью локаль- ного обучения. Известны работы, в которых описывается применение генетического алгоритма для одновременной адаптации и весов и то- пологии [18, 30]. В других исследованиях допускались соединения в пределах одного слоя [34, 45], обратные связи [23], а также обуче- ние на основе конкуренции (competetive learning) и по Хеббу. Достоинством эволюционного подхода считается тот факт, что функцию приспособленности можно легко определить специально для эволюции сети со строго определенными свойствами. Например, если для оценивания приспособленности использовать результаты тестирования вместо результатов обучения, то будет получена сеть с лучшей способностью к обобщению [38]. 4.12.7.3. Эволюция правил обучения Известно, что для различных архитектур и задач обучения тре- буются различные алгоритмы обучения. Поиск оптимального (или почти оптимального) правила обучения, как правило, происходит с учетом экспертных знаний и часто - методом проб и ошибок. Поэто- му весьма перспективным считается развитие автоматических мето- дов оптимизации правил обучения нейронных сетей. Развитие чело- веческих способностей к обучению от относительно слабых До весь- ма сильных свидетельствует о потенциальной возможности примене- ния эволюционного подхода в процессе обучения искусственных ней- ронных сетей. Схема хромосомного представления в случае эволюции пра- вил обучения должна отражать динамические характеристики. Стати- ческие параметры (такие как архитектура или значения весов сети) кодировать значительно проще. Попытка создания универсальной схемы представления, которая позволила бы описывать произволь- ные виды динамических характеристик нейронной сети, заведомо об- речена на неудачу, поскольку предполагает неоправданно большой объем вычислений, требуемых для просмотра всего пространства правил обучения. По этой причине на тип динамических характерис- тик обычно налагаются определенные ограничения, что позволяет выбрать общую структуру правила обучения. Чаще всего устанавли-
4.12. Эволюционные алгоритмы е нейронных сетях Рис. 4.121. Блок-схема генетического алгоритма для поиска наилучшей архитектуры нейронной сети (случай эволюции архитектур).
266 Глава 4. Гэнетические алгоритмы вается, что для всех связей нейронной сети должно применяться од- но и то же правило обучения, которое может быть задано функцией вида [47] мо=Х £ р,,,2.........(4.18) где t- время, Aw - приращение веса, х^- так называемые локальные переменные, в^2...- вещественные коэффициенты. Главная цель эволюции правил обучения заключается в подбо- ре соответствующих значений коэффициентов 6,^2.4. С учетом большого количества компонентов уравнения (4.18), что может сделать эволюцию слишком медленной и практически не- эффективной, часто вводятся дополнительные ограничения, осно- ванные на эвристических посылках [6]. Представим типовой цикл эволюции правил обучения 1) Декодирование каждой особи текущей популяции для опи- сания правила обучения, которое будет использоваться в качестве алгоритма обучения нейронных сетей 2) Формирование множества нейронных сетей со случайно сгенерированными архитектурами и начальными значениями весов, а также оценивание этих сетей с учетом их обучения по правилу, по- лученному на шаге 1, в категориях точности обучения или тестирова- ния, длительности обучения, сложности архитектуры и т.п. 3) Расчет значения приспособленности каждой особи (закоди- рованного правила обучения) на основе полученной на шаге 2 оцен- ки каждой нейронной сети, что представляет собой своеобразный вид взвешенного усреднения. 4) Репродукция особей с вероятностью, соответствующей их приспособленности или рангу в зависимости от используемого мето- да селекции 5) Формирование нового поколения в результате применения таких генетических операторов, как скрещивание, мутация и/или ин- версия. Блок-схема, иллюстрирующая эволюцию архитектур, пред- ставлена на рис. 4.122. 4.13. Примеры моделирования эволюционных алгоритмов в приложении к нейронным сетям Представленные в п. 4.11.1 примеры 4.23 - 4.27, а также при- мер 4.20 из разд. 4.9 можно рассматривать как иллюстрацию возмож- ности применения генетического (в частности, эволюционного) алго- ритма для подбора весов нейронной сети. Этот алгоритм будет при- меняться в перечисленных примерах вместо традиционного метода обучения, например, вместо алгоритма обратного распространения ошибки (backpropagation). Очень часто применяется так называемый гибридный подход, состоящий в объединении обоих методов. Как
4.13. Эволюционные алгоритмы для обучения нейронных сетей Рис. 4.122. Блок-схема генетического алгоритма для поиска наилучшего правила обучения (случай эволюции поавил обучения).
268 Глава 4. Генетические алгоритмы правило, вначале при помощи генетического алгоритма находится ре- шение, достаточно близкое к оптимальному, и затем оно рассматри- вается как отправная точка для традиционного поиска оптимальной точки, например, по методу обратного распространения ошибки. 4.13.1. Программы Evolver и Brain Maker Метод обратного распространения ошибки применяется для обучения нейронных сетей в программе BrainMaker [50]. В примере 4.30 с использованием этой программы тестируется нейронная сеть, реализующая логическую систему XOR со значениями весов, рассчи- танными в п. 4.11.1 с помощью программы Evolver. При решении при- меров 4.31 и 4.32 демонстрируется гибридный подход, т.е. обучение этой же нейронной сети программой BrainMaker, но при начальных значениях весов, рассчитанных генетическим алгоритмом программы Evolver. В свою очередь, пример 4.33 иллюстрирует обучение ней- ронной сети, реализующей логическую систему XOR, при использова- нии только программы BrainMaker. Пример 4.30 Протестировать с помощью программы BrainMaker нейронную сеть, реализующую логическую систему XOR (рис. 4.2) с весами, рас- считанными в примере 4.27 генетическим алгоритмом программы Evolver и представленными на рис. 4.101. На рис. 4.123 показаны значения весов, введенные в програм- му BrainMaker. Они сгруппированы в два блока, разделенные пустой строкой. Первый блок содержит веса связей между входным и скры- тым слоем так, что для каждого из двух нейронов скрытого слоя при- ведены веса связей со всеми входами, а последние элементы строк- это и/10 и и/20. Второй блок содержит веса связей между скрытым и вы- ходным слоем, т.е. три веса выходного нейрона, причем последним указан вес и/30. В примере использовался интервал значений весов [-7, 8]. Результаты тестирования сети приведены на рис. 4.124 - 4.127. Можно сделать вывод о хорошей обученности сети. Значения на вы- ходах для четырех пар входных значений практически совпадают с показанными на рис. 4.101. Абсолютная разность между заданным значением d и выходным значением у для каждой пары входов щ и и2 (рис. 4.124 - 4.127) оказалась меньше 0,025, поэтому сеть может счи- таться хорошо обученной с толерантностью 0,025 и тем более - с то- лерантностью 0,1. Понижение порога толерантности до 0,02 означа- ло бы, что эта сеть не считается хорошо обученной и что требуемый уровень обучения не может быть достигнут. Дальнейшее обучение при толерантности, равной или меньшей 0,02, не изменяет значений весов, показанных на рис. 4.123. Однако, как будет видно из примера 4.31, уменьшение толерантности до 0,022 принесло бы эффект в ви- де «дообучения» сети.
4.13. Эволюционные алгоритмы для обучения нейронных сетей 269 Пример 4.31 Обучить с помощью программы BrainMaker нейронную сеть, реализующую логическую систему XOR (рис. 4.2) с весами, рассчи- танными в примере 4.27 генетическим алгоритмом программы Evolver и представленными на рис. 4.100. Вначале с помощью программы BrainMaker была протестиро- вана нейронная сеть, показанная на рис. 4.2. В качестве начальных значений для алгоритма обучения программы BrainMaker использо- вались веса, рассчитанные генетическим алгоритмом программы Evolver. Следовательно, это типичный пример гибридного подхода, поскольку генетический алгоритм используется для нахождения на- чальных значений весов для градиентного алгоритма обратного рас- пространения ошибки (backpropagation). Эти начальные значения в формате программы BrainMaker представлены на рис. 4.128, а со- ответствующие результаты тестирования сети - на рис. 4.129 - 4.132. Анализ результатов тестирования свидетельствует о том, что они оказываются хуже, чем показанные на рис. 4.124 -4.127, посколь- ку в предыдущем примере не было ни одной ошибки, а в текущем примере в пяти случаях из 22 сеть дала неверный ответ. Кроме того, видно, что толерантность выходного значения на рис. 4.130 превыша- ет уровень 0,1. Впоследствии сеть подверглась обучению с помощью программы BrainMaker с толерантностью, равной 0,1. Результаты обучения иллюстрирует рис. 4.133 На нижнем графике заметно уменьшение среднеквадратичной погрешности RMS (Root Mean Squared) при выполнении 10 реализаций (runs) алгоритма. Погреш- ность RMS отличается от погрешности Q, минимизировавшейся в примере 4.27, тем, что где с/ = dj - у/, а значение N в примере 4.27 равно 4. С учетом различий, связанных с взятием квадратного корня при расчете RMS, можно сравнить эту погрешность со значением Q из примера 4.27. Верхний график на рис. 4.133 представляет собой гис- тограмму распределения погрешности рассчитанной как абсолютная разность между заданным dj и фактическим у,- выходным значением для каждой пары входов и и2,. На горизонтальной оси отложены значения этой погрешности, а на вертикальной оси - количество вы- ходных значений с такой погрешностью. Представлены три уровня погрешности с толерантностью 0,1. В верхней части рис 4133 указано значение у для = 1, и2 = 0 и d = 1 (для упрощения здесь опущен индекс i). Результаты тестирования этой сети для трех ос- тальных комбинаций входных значений (для системы XOR) приведе-
270 Глава 4. Генетические алгоритмы ны на рис. 4.134 - 4.136. Абсолютная разность между эталонным (Ptn) и выходным (Out) значениями для рис 4.133 равна 0,0473, для рис. 4.134 - 0,0269, для рис. 4.135 - 0,0998 и для рис. 4.136 - 0,0979. Из гистограммы на рис. 4.133 следует, что для шести из 22 входных пар иъ и2 эта погрешность равна 0,0269, такое же количество вход- ных пар имеет погрешность 0,0473, а для оставшихся входных пар эта погрешность составила около 0,099. Веса обученной таким обра- зом сети показаны на рис. 4.137. Сеть обучена с толерантностью 0,1. Это означает, что выход- ные значения должны не более чем на 10 % отличаться от значений 0 и 1 для того, чтобы модель системы XOR была признана коррект- ной. Следовательно, при подаче эталона 0 считаются правильными значения у, меньшие или равные 0,1, а при подаче эталона 1 пра- вильными будут значения у, большие или равные 0,9. Конечно, показанные на рис. 4.137 значения весов не могут рассматриваться в качестве оптимальных для системы XOR. Поэто- му толерантность была уменьшена до 0,025, и процесс обучения про- должился. Полученные результаты приведены на рис. 4.138. Интересно сравнить достигнутое значение погрешности RMS с аналогичным показателем на рис. 4.133. Результаты тестирования обученной се™ представлены на рис. 4.139 - 4.142. Значение абсо- лютной разности между эталоном и фактическим выходным зна- чением на следующих друг за другом рисунках составляет 0,0252, 0,0246, 0,0239, 0,0247 соответственно, что отражает гистограмма на рис. 4.138. Значения весов для сети, обученной с толерантностью 0,025, приведены на рис. 4.143. Интересно сравнить его с рис. 4.137. Более поздние результаты оказываются гораздо ближе к оптимальным. Да- лее была предпринята попытка еще лучше обучить сеть с уменьше- нием толерантности до 0,02. К сожалению, эта попытка завершилась неудачей, поскольку способности се™ к обучению оказались исчер- панными. Однако при фиксации толерантности на уровне 0,023 был достигнут конечный эффект, показанный на рис. 4.144. Результаты те- старования сети, обученной подобным образом, представлены на рис. 4.145 - 4.148, а значения весов этой сети - на рис. 4.149. Еще лучший результат обучения, который иллюстрируется рис. 4.150, удалось получить при толерантности 0,022. Результаты тестирования сети, обученной подобным образом, представлены на рис. 4.151 - 4.154, а значения весов этой сети - на рис. 4.155. Дальнейшее снижение уровня толерантности до 0,021, к сожа- лению, уже не ведет к большей обученности се™, даже если бы про- грамма работала еще в течение многих часов. Таким образом, наи- лучшим решением считается сеть со значениями весов, показанными на рис. 4.155, которые следует сравнить с набором весов для приме- ра 4.27, приведенными на рис. 4.101. Нетрудно заметить, что объеди- нение генетического алгоритма программы Evolver с программой BrainMaker дало лучшие результаты, чем на рис. 4.101. Если бы вы-
4.13. Эволюционные алгоритмы для обучения нейронных сетей 271 числения сразу проводились с толерантностью 0,022, а в качестве на- чальных весов принимались значения с рис. 4.128, то результат был бы лучше, чем на рис. 4.101. Аналогичный результат можно было ожидать и в примере 4.30 при установлении уровня толерантности, равным 0,022. Пример 4.32 Обучить с помощью программы BrainMaker нейронную сеть, реализующую логическую систему XOR (рис. 4.2) с начальными зна- чениями весов, рассчитанными в примере 4.27 генетическим алгорит- мом программы Evoiver и представленными на рис. 4.99. Это еще один пример гибридного подхода к обучению весов нейронной сети, реализующей логическую систему XOR. Он очень похож на предыду- щий пример, однако отличается набором начальных значений весов, полученных за меньшее время выполнения генетического алгоритма и, следовательно, более далеких от оптимальных. Толерантность погрешности принята равной 0,025, что означа- ет 2,5 % допустимой погрешности, т.е. разницы между фактическим выходным значением и заданным значением - эталоном. Поэтому для эталона, равного 0, корректным будет признаваться выходное значение от 0 до 0,025, а для эталона, равного 0 - значение от 0,975 до 1. Начальный набор весов для программы BrainMaker представ- лен на рис. 4.156, а на рис. 4.157 - 4.160 показаны результаты тести- рования сети. Видно, что выходные значения у для конкретных пар входов весьма близки к приведенным на рис. 4.99. Сеть не может счи- таться обученной. На 22 тестирующих выборках только 5 раз реакция на выходе была корректной, а в 17 случаях - ошибочной. Набор ве- сов с рис. 4.156 был получен после всего лишь 96 «тактов» функцио- нирования программы Evolver (что соответствует менее чем 2 итера- циям классического генетического алгоритма). Результаты обучения нейронной сети с этими весами программой BrainMaker с толерантно- стью погрешности, равной 0,025, представлены на рис. 4.161. Значе- ние погрешности RMS с графика этого рисунка легко сравнить со зна- чением погрешности Q на рис. 4.99, 4.100 и 4.101. Заметно, что вы- ходные значения у для каждой пары входов системы XOR укладыва- ются в границы 2,5 % толератности. Сеть обучилась достаточно быс- тро - за 104 прогона (runs). На рис. 4.165 представлены веса обучен- ной сети, а на рис. 4.161 -4.164-результаты ее тестирования. Пред- ставляет интерес сопоставление рис. 4.165 и 4.143, поскольку они от- ражают обучение с одной и той же толерантностью, равной 0,025. Ес- ли продолжить обучение сети при меньшем значении толерантности, то (по аналогии с примером 4.31) можно найти значения весов, еще более близкие к оптимальным и практически совпадающие с показан- ными на рис. 4.155. Рассмотрим теперь эффект обучения нейронной сети, реали- зующей логическую систему XOR, с помощью только программы BrainMaker без применения генетического алгоритма.
272 Глава 4. Генетические алгоритмы Пример 4.33 Обучить с помощью программы BrainMaker нейронную сеть, реализующую логическую систему XOR (рис. 4.2) с начальными зна- чениями весов, представленными на рис. 4.96. Показанные на рис. 4.96 значения весов сгенерированы слу- чайным образом. На рис. 4.166 эти веса представлены в формате программы BrainMaker. Нейронная сеть с этими весами не может считаться обученной. Результаты ее тестирования приведены на рис. 4.167 - 4.170. Заметно, что выходные значения у совершенно не со- ответствуют эталону 1, а для эталона 0 выходные значения также не попадают в границы 10% толерантности. Для всех 22 тестирующих выборок получены ошибочные выходные сигналы. Вначале обучение сети проводилось с толерантностью погреш- ности, равной 0,1. Процесс обучения иллюстрируют графики на рис. 4.171. На рис. 4.172 показаны значения весов, полученные после 191 прогона (runs) алгоритма. Продолжение графика с рис. 4.171 демон- стрируется на рис. 4.173, .а его завершение - на рис. 4.174. Получен- ные значения весов нейронной сети с толерантностью погрешности, равной 0,1, представлены на рис. 4.175. Заметим, что значение по- грешности RMS для этого случая (см. рис. 4.174) достаточно близко к значению погрешности Q, рассчитанному программой Evolver в примерах 4.23 - 4.27 для значений весов с рис. 4.175 (среднеквад- ратичная погрешность Q = 0,009887). Нейронная сеть с весами, показанными на рис. 4.166, была обучена с толерантностью погрешности 0,1 за 399 прогонов алгорит- ма программы BrainMaker. Результаты тестирования сформирован- ной сети представлены на рис. 4.176-4.178. Для входов щ = 1 и о2=0 решение приведено на рис. 4.174. Сеть может считаться обученной, поскольку в ходе тестирования не зарегистрированы ошибочные от- клики. Далее обучение сети продолжилось с толерантностью погреш- ности, равной 0,025. После 510 прогонов получены графики, изобра- женные на рис. 4.179, и значения весов, приведенные на рис. 4.180. Значение погрешности RMS для этой комбинации весов можно полу- чить с графика на рис. 4.179. При толерантности погрешности 0,025 сеть плохо поддавалась обучению, поэтому после 4000 прогонов уро- вень толерантности был увеличен до 0,03. Графики и значения весов на момент изменения уровня показаны на рис. 4.181 и 4.182 соответ- ственно. После увеличения значения толерантности выполнение про- граммы очень быстро - после 402 прогонов - завершилось. Достигну- тый эффект можно наблюдать на рис. 4.183, а полученные значения весов - на рис.4.184. В результате обучения нейронной сети, реализующей логичес- кую систему XOR с начальными значениями весов, представленными на рис. 4. 166 и 4.96, была найдена еще одна комбинация весов, по- добная полученным при минимизации погрешности Q с помощью программы Evolver. В принципе, сформированный в текущем приме- ре и представленный на рис. 4.184 набор весов сети, обученной с по- мощью программы BrainMaker, отличается от двух аналогичных ком-
4.13. Эволюционные алгоритмы для обучения нейронных сетей 273 бинаций «наилучших» весов из примера 4.27 только знаками. Напри- мер, если сравнить веса с рис. 4.184 с весами, показанными на рис 4.101, то можно зафиксировать, что веса и/п, iv12, w21, w22 изменили знаки на противоположные, а веса и/31, w32, w10, w20, w30 имеют в обо- их случаях одни и те же знаки, т.е. w31 и ww остались отрицательны- ми, a w32,w10lw30-положительными. Результаты тестирования сфор- мированной сети (с весами на рис. 4.184) для входов щ = 1 и и2 = 0 приведены на рис. 4.183. Для пары входов щ=0 и и2= 1 значение у ос- талось неизменным, т.е. равным 0,9700. Для u-i = 0 и и2 = 0, а также для иЛ = 1 и и2 = 1 выходное значе- ние у равно 0,0301 Рассмотренные примеры иллюстрируют гибридный подход, ос- нованный на объединении двух различных методов - генетического алгоритма и градиентного метода обучения весов нейронной сети, из- вестного под названием обратного распространения ошибки. В при- мере 4.27 для обучения нейронной сети применялся генетический ал- горитм программы Evolver. После 40 ООО «тактов» функционирова- ния этого алгоритма (что соответствует 800 поколениям классическо- го генетического алгоритма) получено близкое к оптимальному реше- ние. Однако, как показывают примеры 4.30 и 4.31, этот результат мож- но еще улучшить за счет «дообучения» с помощью градиентного ал- горитма. Примеры 4.31 и 4.32 представляют типичный способ такого гиб- ридного подхода, когда генетический алгоритм применяется только для выбора начальной точки (в данном случае - исходного множества весов) для градиентного метода. В примере 4.31 генетический алго- ритм функционировал дольше, чем в примере 4.32, поэтому началь- ная точка для метода обратного распространения ошибки в примере 4.32 находится на большем расстоянии от точки оптимального реше- ния, чем в примере 4.31. Следует обратить внимание на факт, что дли- тельность «дообучения» не имеет большого значения. Градиентный алгоритм выполняется быстрее генетического, так как в последнем предполагается просмотр всей популяции возможных решений. В примере 4.33 продемонстрирован способ обучения нейрон- ной сети методом обратного распространения ошибки (программа BrainMaker). Полученный результат оказался еще более близким к оптимальному, чем при использовании только генетического алго- ритма (при мер 4.30). Однако необходимо подчеркнуть, что градиент- ный метод не всегда приводит к достижению ожидаемого результата, который зависит от начальной точки. При другом, сгенерированном случайным образом исходном множестве весов сеть может оказаться «необучаемой», что встречается довольно часто. Кроме того, принци- пиальным недостатком градиентных методов оказывается их «заст- ревание» в локальных оптимумах. Это можно предотвратить приме- нением генетического алгоритма - только для того, чтобы найти ка- кую-либо точку, настолько близкую к глобальному оптимуму, что гра- диентный алгоритм при старте из этой точки не «застрянет» ни в ка- ком локальном оптимуме и быстро найдет глобальное решение.
274 Глава 4. Генетические алгоритмы В рассмотренных примерах использовался генетический (эво- люционный) алгоритм программы Evolver. Конечно, для достижения тех же целей можно было применять и программу FlexTool (п. 4.9), ко- торая допускает такой же интервал изменения значений весов от -7 до 8, как и программа BrainMaker. Для выбора исходного множества весов нейронной се™ также пригодны и другие реализации генетиче- ского (эволюционного) алгоритма. 4.13.2. Программа GTO Программа GTO (Genetic Training Option - Режим Генетическо- го Обучения) взаимодействует с программой BrainMaker. В ней реа- лизован эволюционный алгоритм с соответственно определенными операторами мутации и скрещивания. Мутация изменяет значения весов избранного нейрона, а скрещивание заключается в обмене ве- сов избранных нейронов у пары родителей. Например, для нейрон- ной се™, изображенной на рис. 4.2, можно получить потомка, имею- щего веса первого нейрона, унаследованные от первого родителя, и веса второго и третьего нейронов - от второго родителя. Выражен- ные в процентах показатели мутации (mutation rate) и скрещивания (crossover rate) определяют количество нейронов, подвергающихся мутации или скрещиванию. Пользователь также может ввести значе- ния дополнительных параметров скрещивания и мутации. Они отно- сятся к так называемому полному скрещиванию либо к определен- ным функциям распределения показателей скрещивания и/или мута- ции [51]. Пример 4.34 Применить программу GTO для нейронной се™, реализующей логическую систему XOR (рис. 4.2) с начальными значениями весов, представленными на рис. 4.166, которая после обучения программой BrainMaker с толерантностью погрешности, равной 0,1 (пример 4.33) имеет веса, представленные на рис. 4.175. Все параметры программы GTO имели значения, установлен- ные по умолчанию. В частности, предусматривалось обучение каж- дой сети программой BrainMaker в течение 100 прогонов (runs) и сме- на 30 поколений. Для оценки приспособленное™ сети использова- лись результаты как обучения, и тестирования уже обученной сети. Показатели мутации и скрещивания были равны соответственно 10 и 50. Это означает, что 50% всех нейронов се™ подвергалось скрещи- ванию, а 10% - мутации. Также принималось, что все скрещиваемые нейроны подвергаются полному скрещиванию, т.е. потомок наследует все веса нейрона от второго родителя. Помимо того, все подлежащие мутации нейроны мутировали в соответствии с распределением Гаус- са с показателем 0,25. Это означает, что к весу добавлялась некото- рая величина, выбиравшаяся по распределению Гаусса. В качестве критерия оценивания потомков применялся max{1 - RMS}, где RMS (также, как и в примере 4.31) означал погрешность, рассчитанную как квалратный корень из суммы квадратов разностей между заданным
4.13. Эволюционные алгоритмы для обучения нейронных сетей 275 (эталонным) и выходным значением, деленный на количество этало- нов. В результате выполнения программы GTO при ее взаимодейст- вии с программой BrainMaker рассчитаны значения указанной выше погрешности для конкретных сетей, упорядоченные в порядке их уменьшения, т.е. от «наилучшей» сети к «наихудшей» (рис. 4.185). Наилучшей из 30 сформированных программой GTO нейрон- ных сетей со структурой, показанной на рис. 4.2, оказалась сеть, для которой значение max{1 - RMS} было равно 0,9139. Значения весов этой се™ представлены на рис. 4.186, а результаты ее тестирования програм мой BrainMaker - на рис. 4.187 - 4.190. Заметим, что значе- ние погрешности Q, рассчитываемой программой Evolver, для се™ с весами, показанными на рис. 4.186, равно 0,007451. Эта погреш- ность меньше значения Q, рассчитанного для сети из примера 4.33 (веса см. на рис. 4.175). Конечно, новая сеть ненамного лучше сети из примера 4.33. Теперь следует вновь применить программу BrainMaker для проверки - можно ли улучшить характеристики се™, полученной в результате выполнения программы GTO. Очевидно, что попытка дообучения этой сети с толерантностью погрешности 0,1 ни- чего не изменит. Однако при задании уровня толерантности 0,025 мы получаем процесс, показанный на рис. 4.191 и значения весов, пред- ставленные на рис. 4.192. Выходное значение у для щ = 1 и и2 = 0 так- же приведено на рис. 4.191. Пример 4.34 иллюстрирует следующее объединение традици- онного (градиентного) алгоритма обучения, реализованного в про- грамме BrainMaker, с генетическим алгоритмом программы GTO: 1) обучение нейронной се™ программой BrainMaker; 2) применение программы GTO к се™, обученной в п.1; 3) продолжение обучения наилучшей се™, полученной в п.2, программой BrainMaker; Следует отметить, что п.2 предполагает использование как ге- нетического алгоритма программы GTO, так и соответствующей про- цедуры программы BrainMaker, вызываемой программой GTO Можно предложить и другой подход; 1) использование программы BrainMaker только для форми- рования сети со значениями весов, выбираемыми случайным обра- зом: 2) применение программы GTO для поиска наилучших весов; 3) применение программы BrainMaker для завершения обуче- ния Второй подход основан на обработке программой GTO сети со случайными значениями весов. При отключении опции обучения каж- дой вновь формируемой сети программой BrainMaker программа GTO вызывает ее только для тестирования сети. В последующем наилучшая из созданных таким образом сетей «дообучается» про- граммой BrainMaker (п. 3). Такая методика подобна применявшейся в примерах 4.31 и 4.32 - вначале выполняется генетический, а затем - традиционный алгоритм обучения. В программе GTO дополнитель- но возможно обучение каждой вновь сформированной сети (потомка) за определенное количество прогонов с последующим ее тестирова-
Глава 4 Гэнетические алгоритмы Рис. 4,123. Показанные на рис. 4.101 веса нейронной сети, реализующей систему XOR (рис. 4.2) и подготовленной к тестированию программой BrainMaker BrnlnMaker Professional p<OREVOCNF0 ! - Iх file Fdit Waiting Facts 22 Operate Peremeters Connections Display «nelyze Facts: XOH.fct Learn: 1.000 Tolerance: 0.108 Total: 22 Bad: 0 Last: В Good: 22 Last: В Run: 1 UB-0000 u2 Out ^0.0200 Ftn: 0.0000 Рис. 4.124. Результат тестирования программой BrainMaker нейронной сети из рис. 4.2 с начальными значениями весов, представленными на рис. 4.123, для щ = 0, и2 = 0 и <7=0.
4 13. Эволюционные алгоритмы для обучения нейронных сетей 277 Рис. 4.125. Результат тестирования программой BrainMaker нейронной сети из рис. 4 2 с начальными значениями весов, представленными на рис. 4.123, для иЛ = 0, и2 = 1 и d= 1 Рис. 4.126. Результат тестирования программой BrainMaker нейронной сети из рис. 4.2 с начальными значениями весов, представленными на рис. 4.123, для щ - 1, и2 = 0ис/ = 1. Рис. 4.127. Результат тестирования программой BrainMaker нейронной сети из рис. 4.2 с начальными значениями весов, представленными на рис. 4.123, для «1 = 1, и2- 1 Md = O.
Глава 4. Генетические алгоритмы Рис. 4.128. Показанные на рис. 4.100 веса нейронной сети, реализующей систему XOR и подготовленной к обучению программой BrainMaker Рис. 4.129. Результат тестирования нейронной сети из рис. 4.2 с начальными значениями весов, представленными на рис. 4.128, для u-j = 0, и2 = 0 и d = 0.
4.13. Эволюционные алгоритмы для обучения нейронных сетей 279 Рис. 4.130. Результат тестирования той же сети для и-j = 0, и2 = 1 и d = 1. WWWi^MllMpgEVOL.NET] Hie Fdit Operate Parameters Connections Display Analyze >»tins И0:ИИ:Яа Farts: XOR.frt Learn: l-вав Tolerance: 0.18B Fart: 22 Total: 22 Bad: 5 Last: В Good: 1? Last: В Bun: 1 | «1 St J 1-0000 Out: 0.2S2O u2 Ftn: 1.0И00 0000 Рис. 4.131. Результат тестирования той же сети для и^ = 1,и2 = 0 и d = 1. Рис. 4.132. Результат тестирования той же сети для и^ = 1, и2 = 1 и d = 0.
Глава 4 Гэнетические алгоритмы Рис. 4.134. Результат тестирования программой BrainMaker нейронной сети из рис. 42 с начальными значениями весов, представленными на рис. 4.128, с толерантностью 0,1 для и-] = 0, и2 = 0 и d = 0.
4.13. Эволюционные алгоритмы для обучения нейронных сетей Halting Facts: XOR.let Learn: l.eea Tnlei-ance: И.400 Facts 22 Total: 220 Bad: 8 Last: 5 Good: 22 Last: 17 Hun: 18 ul 9 8.8808 Out: 0.H002 «2 Ptn: 1.0000 t .0000 Рис. 4.135. Результат тестирования той же сети для = 0, и2 = 1 и d = 1. Skitins Fact®: XOR-fct Facts 22 Totals 220 Bad: 0 L Learn: 1.008 Tolerance: 0.108 asts 5 Good: 22 Last: 17 Run: 10 *1.0888 Out: *0.0979 «2 Ptn? 0.0009 Рис. 4.136, Результат тестирования той же сети для щ = 1, и2 = 1 и d = 0. Рис. 4.137. Веса нейронной сети, обученной программой BrainMaker с толерант- ностью 0,1.
Глава 4. Гэнетические алгоритмы Рис. 4.139. Результат тестирования нейронной сети, обученной программой BrainMaker с толерантностью 0,025 (рис. 4.138), для щ = 0, и2 = 0 и d = 0. 0. >754 1.0000 Рис. 4.140. Результат тестирования той же сети для щ = 0, и2 = 1 и d = 1.
4.13. Эволюционные алгоритмы для обучения нейронных сетей Рис. 4.141. Результат тестирования той же сети для и^ = 1. и2 = 0 и d= 1. Рис. 4.142. Результат тестирования той же сети для щ = 1, и2 = 1 и d = 0. Рис. 4.143. Веса нейронной сети, обученной программой BrainMaker с толерантностью 0,025 (рис. 4.138).
total: VSSBl" Bad: В Learn: 1.000 Tolerance: 0.023 Good: 22 Last: 17 Run: 3432 Out:VB.0220 Ptn: 0.0000 Рис. 4-145. Результат тестирования нейронной сети, обученной программой BrainMaker с толерантностью 0,023 (рис. 4.144), для = 0, и2 = 0 и d = 0. LbitinA Facts: XOR.fct Fact: 322 Totals 75SB4 Bad: В Last: 5 Learn: 1.000 Tolerance: 0.023 Good: 22 Last: 1? Run: 3432 Рис. 4.^46. Результат тестирования той же сети для = 0, и% = 1 и d - 1 Total: 7SS04" Last: S ЙЖ’Й- 000 Tolerance: 0.023 Last: 1? Run: 3432 “1.В00В U0.000B Out: *0.9768 Ptn: 1.0000 »2 Рис. 4.147. Результат тестирования той же сети для тл, = 1, и2 = 0 и d = 1.
4.13. Эволюционные алгоритмы для обучения нейронных сетей 285 ante; 0.023 Kun: 3432 Рис. 4.148. Результат тестирования той же сети для и^ = 1. и% = 1 и d = 0. Рис. 4.149. Веса нейронной сети, обученной программой BrainMaker с толерантностью 0,023 (рис. 4.144). Рис. 4.150. Итоговая фаза последующего обучения программой BrainMaker сети с ве- сами, показанными на рис. 4.149, при уровне толерантности 0,022.
286 Глава 4. Генетические алгоритмы Рис. 4.151. Результат тестирования нейронной сети, обученной программой BrainMaker с толерантностью 0,022 (рис. 4.150), для Ui=0,U2 = 0Md = 0. Waiting 00:20:51 Facts: КОХ. Fact: 22 Total: 114686 Bai Learn: 1.000 Tolerance: 0-022 Good: 22 Last: 13 Run: 5213 Out: 0.9778 Ptn: 1-0000 Рис. 4.152. Результат тестирования той же сети для щ = 0, и2 = 1 и d - 1- Рис. 4.153. Результат тестирования той же сети для и\ = 1, и2 = 0 и d = 1. Run: S213 00:20:51 Facts: XOR.fct 114686 Рис. 4.154. Результат тестирования той же сети для Uf = 1. и2 = 1 и d = 0. Edit Network Weights 7.9994 -7.9998 4.6684 7.9994 -7.9998 4.4176 7.9998 7.9994 4.0536 Рис. 4.155. Веса нейронной сети, обученной программой BrainMaker с толерантностью 0,022 (рис. 4.150).
4.13. Эволюционные алгоритмы для обучения нейронных сетей 287 ~Edit Network Weights 5.9400 6.4616 -6.8336 -7.5970 5.4952 -4.4936 6.8216 7.4104 0.6816 Рис. 4.156. Исходное множество весов для программы BrainMaker, полученное с помощью генетического алгоритма программы Evoiver. Рис. 4.157. Результат тестирования нейронной сети с весами, показанными на рис. 4.156, для 1?1 = 0, и2 = 0 и d = 0. Ilwaiting Facts: XOR.fct Learn: 1-000 Tolerance: 0ЛИ | Fact: 22 Total: 22 Bad: 17 Last: И Good: S Last: И Bun: 1 0.0000 Out=V0.991S u2 Ptn: 1.0000 1.0000 Рис. 4.158. Результат тестирования той же сети для и^ = 0, и2 = 1 и d = 1 Рис. 4.159. Результат тестирования той же сети для щ = 1, и2 = 0 и о = 1. Рис. 4.160. Результат тестирования той же сети для и-, = 1, и2 = 1 и d = 0.
Рис. 4.161. Результат обучения програмой BrainMaker нейронной сети с весами, представленными на рис. 4.128, при уровне толерантности 0,025 Рис. 4.162. Результат тестирования нейронной сети, обученной программой BrainMaker с толерантностью 0,025 (рис. 4.161), для Щ ~ 0, и2 = 1 и d = 1. Learn: 1.в8в Tolerance: в.В25 Good: 22 Las*: 21 Bun: 1(И
4.13. Эволюционные алгоритмы для обучения нейронных сетей 289 Runs ми Рис. 4.163. Результат тестирования той же сети для и, = 0. 1/2 = 0 и d= 0. Watting Feet®: KOR.fst Pacts 12 Totals 22BB Bad: В Run: 1B4 Out :Ув.8227 Ptns B.B000 Рис. 4.164. Результат тестирования той же сети для щ = 1, и2 = 1 и d = 0. Рис. 4.165. Веса нейронной сети (при начальных значениях, показвнных на рис. 4.156), обученной программой BrainMaker с толерантностью 0,025 .
290 Глава 4. Гэнетические алгоритмы Рис. 4.166. Сгенерированный случайным образом исходный набор весов для нейронной сети, реализующей систему XOR. __________________________BrainMaker Professorial [XOR ЛЕТ] File Edit Operate Parameters Connections Display Analyze Рис. 4.167. Результат тестирования нейронной сети с весами, показанными на рис. 4.166, для u-t = 0, и2 = 0 и d = 0.
4.13. Эволюционные алгоритмы для обучения нейронных сетей 291 Рис. 4.168. Результат тестирования той же сети для = 0, t?2 = 1 и d= 1 Рис. 4.169. Результат тестирования той же сети для и1 = 1,и2 = 0ис/=1 Hie Fdit Operate Parameters CcnnecBcns Display Analyze Facts: XOH.Tct Рис 4.170. Результат тестирования той же сети для и1 = 1,о2 = 1ис?=0.
292 Глава 4. Гэнетические алгоритмы Рис. 4.171. Начальная фаза обучения программой BrainMaker сети с весами, показанными на рис. 4.166, при уровне толерантности 0,1. Рис. 4.172. Веса, полученные после 191 прогона алгоритма обучения программы BrainMaker.
Рис. 4.173. Продолжение обучения, показанного на рис. 4.171.
294 Глава 4 Гэнетические алгоритмы Рис. 4.174. Завершающая фаза обучения, показанного на рис. 4.171. Рис. 4.175. Веса нейронной сети, обученной программой BrainMaker с толерантностью 0,1.
4.13. Эволюционные алгоритмы для обучения нейронных сетей 295 Рис. 4.176. Результат тестирования нейронной сети, обученной программой BrainMaker с толерантностью 0,025, для иЛ = 0, и2 = 1 и d = 1. Рис. 4.177. Результат тестирования той же сети для = 0, и2 = 0 и d = 0. Рис. 4.178. Результат тестирования той же сети для и^ = 1, и2 = 1 и d = 0.
296 Глава 4. Гэнетические алгоритмы Рис. 4.179. Графики, полученные при последующем обучении программой BrainMaker сети с весами, показанными на рис. 4.175, при уровне толерантности 0,025. Рис. 4.180. Веса, полученные в результате последующего обучения сети при уровне толерантности 0,025 (после 510 прогонов - рис. 4.179).
4.13. Эволюционные алгоритмы для обучения нейронных сетей 297 Рис. 4.181. Процесс обучения сети с толерантностью 0,025 после 4000 прогонов. Рис. 4.182. Веса, полученные после 4000 прогонов обучения сети с толерантностью 0,025.
298 Глава 4. Генетические алгоритмы Рис. 4.184. Веса, полученные по завершении обучения сети с толерантностью 0,03 (рис. 4.183).
299 Рис. 4.185. Список нейронных сетей, сформированных программой СТО для примера 4.34 и упорядоченных в последовательности от «наилучшей» до «наихудшей».
300 Глава 4. Гэнетические алгоритмы Рис. 4.186. Веса нейронной сети, реализующей систему XOR, полученные программой СТО (пример 4.34) BrainMakerPretessioriaHGT0001.NET] |-Дх File Edit Operate Parameters Connections Display Analyze Waiting Fact: 22 Facts: XOR.fct Learn: 1.000 Tolerance: 0.100 Total: 22 Bad: 0 Last: 0 Good: 22 Last: 0 Run: 1 0.0000 Out: 0.0833 u2 Ptn: 0.0000 0.0000 Рис. 4.187. Результат тестирования сформированной программой СТО нейронной сети с весами, показанными на рис. 4.186, для ц = 0, и2 = 0 и d = 0.
4.13. Эволюционные алгоритмы для обучения нейронных сетей 301 BralnMato Professional [GTO001.NET] File Edit Operate Parameters Connections Display Analyze Рис. 4.188. Результат тестирования той же сети для и-1=0,и2 = 1яд='1 Рис. 4.189. Результат тестирования той же сети для и1 = 1.о2 = Оис/=1. Рис. 4.190. Результат тестирования той же сети для о1 = 1,и2=1мс?=0.
302 Глава 4. Гэнетические алгоритмы Рис. 4.191. Процесс обучения нейронной сети, сформированной программой GTO, осуществляемый программой BrainMaker с толерантностью 0,025. Рис. 4.192. Веса, полученные в результате гибридного обучения сети программами BrainMaker, GTO и повторно BrainMaker
Список литературы 303 нием. Это пример подхода, состоящего в «дообучении» нейронных сетей традиционным (в частности, градиентным) методом каждый раз перед оцениванием приспособленности [43]. Программа GTO также предоставляет возможность выбрать один из нескольких критериев оценивания нейронных сетей (функцию их приспособленности). Ре- шение о применении одного из двух рассмотренных гибридных под- ходов к совместному применению программ СТО и BrainMaker зави- сит от поставленной задачи и, как правило, принимается методом проб и ошибок. Как справедливо отмечается в [51], практически не- возможно априорно оценить - какой подход окажется лучшим для конкретной задачи. Применительно к нейронной сети, предназначенной для реали- зации логической системы XOR, наилучшие результаты можно было бы ожидать от применения второго подхода. Однако с учетом ограни- ченного объема настоящей работы мы не будем рассматривать до- полнительные примеры, демонстрирующие различные возможности его реализации с использованием программы СТО. Наиболее важные замечания относительно гибридного подхо- да, состоящего в объединении генетического алгоритма с градиент- ным методом обучения нейронных сетей (программа BrainMaker) представлены в п. 4.13.1. Программа СТО представляет собой при- мер равноправ ного объединения обоих методов, при котором в соот- ветствии с типовым циклом эволюции (п. 4.12.7) приспособленность особей популяции рассчитывается генетическим алгоритмом по ре- зультатам обучения нейронных сетей. Существование такой програм- мы, как СТО, подтверждает практическое применение гибридного подхода, объединяющего достоинства двух оптимизационных мето- дов: генетического алгоритма, который легко находит точку, близкую к оптимальному решению, и градиентного алгоритма, который старту- ет из найденной точки и быстро приводит к настоящему оптимуму. Список литературы [1] Ackley D.H., A connectionist machine for genetic hillclimbing, Boston, MA: Kluwer Academic Publishers, 1987 [2] Bartlett P, Downs T., Training a neural networks with a genetic algo- rithm, Technical Report, Dept, of Elec. Eng., Univ, of Queensland, 1990. [3] Belew, R. K., McInerney, J. Schraudolph N. N., Evolving networks: Using genetic algorithms with connectionist learning. CSE technical report CS90-174, La Jolla, CA: University of California at San Diego,1990. [4] Brindle M., Genetic Algorithms for Function Optimization, Ph. D.disser- tation, University of Alberta, 1981. [5] Caudell T. P., Genetic algorithms as a tool for the analysis of adaptive resonance theory neural network sets, Proceedings of International Workshop on Combinations of Genetic Algorithms and Neural Networks, COGANN-92,1992, pp. 184-200. [6] Chalmers D. J., The evolution of learning: An experiment in genetic con- nectionism, in: Proceedings of the 1990 Connectionist Models Summer
304 Глава 4. Генетические алгоритмы School, ed. Touretsky D.S., Elman J. L.Sejnowski I. J., Hinton G. E., Morgan Kauffmann, San Mateo, CA, 1990, pp. 81-90. [7] Chong E. K. R, Zak S. H, An Introduction to Optimization, Wiley, 1996. [8] Cytowski J., Algorytmy genetyczne. Podstawy i zastosowania, Akademicka Oficyna Wydawnicza PLJ, Warszawa 1996. [9] Davis L, Handbook of Genetic Algorithms, Van Nostrand Reinhold, NY, 1991. [10] Eberhart R. C., Dobbins R. W, Designing neural network explanation facilities using genetic algorithms, IEEE International Conference on Neural Networks, Singapore: IEEE, 1991, pp. 1758-1763. [11] Eberhart R. C., The role of genetic algorithms in neural network query-based learning and explanation facilities, Proceedings of International Workshop on Combinations of Genetic Algorithms and Neural Networks, COGANN-92,1992, pp. 169-183. [12] Fogel D. B., Fogel L J., Porto V W, Evolving neural networks, Biological Cybernetics, 1990, t. 63, pp. 487-193. [13] Fogel D. B., Evolutionary Computation. Towards a New Philosophy of Machine Intelligence, IEEE Press, 1995. [14] Galar R., Miekka selekcja w losowej adaptacji globalnej w Rn. Proba bio- cybernetycznego ujecia rozwoju, Wydawnictwo Politechniki Wroclawskiej, Wroclaw 1990. [15] Goldberg D. E., Algorytmy genetyczne i ich zastosowania, WNT, Warszawa, 1995. [16] Gonzalez-Seco J., A genetic algorithm as the learning procedure for neural networks, IEEE International Joint Conference on Neural Networks, Baltimore, MD, IEEE, 1992, pp. 835-840. [17] Guo Z., Uhrig R. E., Use of genetic algorithms to select inputs for neural networks, in: Proceedings of International Workshop on Combinations of Genetic Algorithms and Neural Networks, COGANN-92, 1992, pp. 223-234 [18] Gruau P., Genetic synthesis of Boolean neural networks with a cell rewriting development process. Proceedings of International Workshop on Combinations of Genetic Algorithms and Neural Networks, COGANN-92, 1992, pp. 55-74. [19] Gwiazda T., Algorytmy genetyczne. Wstep do teorii, Warszawa 1995. [20] Harp S. A., Samad T, Guha A., Towards the genetic synthesis of neural networks, in. Proceedings of the Third International Conference on Genetic Algorithms and Their Applications: Schaffer J. D. (ed.), Morgan Kauffmann, San Mateo, CA, 1989, pp. 360-369. [21] Holland J. H„ Adaptation in Natural and Artificial Systems, Ann Arbor: University of Michigan Press, 1975. [22] Hsu L. S., Wu Z B., Input Pattern Encoding Through Generalized Adaptive Search, Proceedings of International Workshop on Combinations of Genetic Algorithms and Neural Networks, COGANN-92, 1992, pp. 235-247. [23] Ichar S., Weaver J., A developmental approach to neural networks design, in: Caudill M., Butler C, (ed.), IEEE, 1987, pp. 97-104. [24] Kelly J. D, Davis L„ Hybridizing the genetic algorithm and the k-nearest neighbors classification algorithm, in: Belew R. K, Booker L. B. (ed.),
Список литературы 305 Fourth International Conference on Genetic Algorithms; San Mateo, CA: Morgan Kauffmann, 1991, pp. 377-383. [25] Kitano H„ Designing neural networks using genetic algorithms with graph generation system, Complex Systems, 1990, nr 4, pp. 461-476. [26] Kadaba N., Nygard К E., Improving the performance of genetic algo- rithms in automated discovery of parameters, in: Porter B. W, Mooney R. J. (ed.), Proceedings of the Seventh International Conference of Machine Learning, San Mateo, CA Morgan Kauffmann, 1990, pp. 140-148. [27] Kadaba N., Nygard К E, Juell P. L, Integration of adaptive machine learning and knowledge-based systems for routing and scheuling appli- cations. Expert Systems with Applications, 1991, t. 2, nr 1, pp. 15-27. [28] Korbicz J., Obuchowicz A., Ucinski D., Sztuczne sieci neuronowe. Podstawy i zastosowania. Akademicka Oficyna Wydawnicza PLJ, Warszawa 1994. [29] Koza J. R., Genetic Programming II. Automatic Discovery of Reusable Programs, MIT Press, 1994. [30] Koza J. R., Rice J. P„ Genetic generation of both the weights and archi- tecture for a neural network, IEEE International Joint Conference on Neural Networks, Seatie, WA, pp. 397-404. [31] Maren A., Harston C., Pap R„ Handbook of Neural Computing Applications, Academic Press, 1990. [32] Mexrill J. W. L, Port R.F., Fractally configured neural networks. Neural Networks, 1991, t. 4, pp. 53-60 [33] Michalewicz Z., Genetic Algorithms + Data Structures = Evolution Programs, Springer-Veriag, 1992. [34] Miller G. F, Todd P. M., Hagde S. U., Designing neural networks using genetic algorithms, in: Proceedings of the Third International Conference on Genetic Algorithms and Their Applications, Schaffer J. D. (ed.), Morgan Kauffmann, San Mateo, CA, 1989, pp. 379-384, [35] Montana D. J., Davis L, Training feedforward neural networks using genetic algorithms, in: Proceedings of Eleventh International Joint Conference on Artificial Intelligence, San Mateo, CA: Morgan Kauffmann, 1989, pp. 762-767 [36] Mulawka J., Systemy ekspertowe, WNT, Warszawa 1996. [37] Podsiadlo M., Uwagi do twierdzenia о schematach, Materialy I Krajowej Konferencji: Algorytmy Ewolucyjne, Politechnika Warszawska, czerwiec 1996. [38] Schaffer J. D., Caruana R. A, Eshelma’n L. J., Using genetic search to exploit the emergent behavior of neural networks, in: Forrest S. (ed.) Emergent Computation, Amsterdam: North Holland, 1990, pp. 244-248. [39] Schaffer J. D., Whitley L., Eshelman J., Combinations of Genetic Algorithms and Neural Networks: A Survey of the State of the Art, Proceedings of International Workshop on Combinations of Genetic Algorithms and Neural Networks, COGANN-92, 1992. [40] Schizas C. N„ Pattichis C. S., Middleton L T., Neural networks, genetic algorithms and к-means algorithm: In search of data classification, in: Proceedings of International Workshop on Combinations of Genetic Algorithms and Neural Networks, COGANN-92,1992.
306 Глава 4. Гвнетические алгоритмы [41] Shonkwiler R., Miller К. R., Genetic algorithm, neural network synergy for nonlineariy constrained optimization problems, Proceedings of International Workshop on Combinations of Genetic Algorithms and Neural Networks, COGANN-92, 1992, pp. 248-257 [42] Suzuki K., Kakazu Y, An approach to the analysis of the basins of the associative memory model using genetic algorithms, in: Belew R. K., Booker L. В (ed.), Fourth International Conference on Genetic Algorithms, San Mateo, CA: Morgan Kaufmann, 1991, pp. 539-546. [43] Weiss G., Neural networks and evolutionary computation part I: hybrid approches in artificial intelligence, Proceedings of the First IEEE Conference on Evolutionary Computation, 1994, pp. 268-272. [44] Whitley D., Applying genetic algorithms to neural network learning, Proceedings of the Seventh Conference of the Society of Artificial Intelligence and Simulation of Behavior, Sussex, England, Pitman Publishing, 1989, pp. 137-144. [45] Whitley D., Starkweather I, Bogart C„ Genetic algorithms and neural networks: Optimizing connections and connectivity, Parallel Computing. 1990, nr 14, pp. 347-361. [46] Week J., Sarma J., Wahab A. A, Michalski R. S., Comparing learning paradigms via diagramatic vizualization: A case study in single concept learninig using symbolic, neural net and genetic algorithm methods, in Zemonkova M., Emrich M. L. (ed.) Metho dologies for intelligent sys- tems; 5, New York; Elsevier Sience Publishing, pp. 428—437. [47] Yao X., A review of evolutionary artificial neural networks, International Journal of Intelligent Systems, 1993, pp. 539-567. [48] FlexTool (GA) M2.1, Flexible Intelligence Group, L.L.C, Tuscaloosa, AL 35486-1477, USA. [49] Evolver — the Genetic Algorithm Problem Solver, Axcelis, Inc., 4668 Eastern Avenue N., Seattle, WA 98103, USA. [50] BrainMaker, California Scientific Software, Nevada City, CA95959, USA. [51] Genetic Training Option, California Scientific Software, Nevada City, CA 95959, USA.
ГЛ АВА5 МОДУЛИ НЕЧЕТКО-НЕЙРОННОГО УПРАВЛЕНИЯ Итак, мы уже познакомились с достоинствами и недостатками как нейронных сетей, так и систем, в которых используется нечеткая логика. Представим себе структуры, которые объединяют наилучшие свойства обоих методов, и в то же время свободны от их проблем. Цель настоящей главы заключается в демонстрации того, что конструирование таких гиб- ридов возможно, причем они обладают очень интересными особенностя- ми. В разделе 3.9 была представлена типовая структура модуля не- четкого управления и рассмотрено несколько примеров. В последующих разделах мы покажем, что при определенных условиях нечеткая система может быть представлена в форме многослойной сети с прямым распро- странением сигнала (feedforward). Еще одна цель заключается в обзоре реализаций таких модулей управления, обозначаемых в англоязычной литературе термином fuzzy-neural. Однако до начала обсуждения кон- кретных структур следует определить содержание этого термина. Читатель, конечно, догадывается, что речь идет об объединении нейронных сетей с нечеткими системами. Оба подхода весьма успешно справляются с задачами, которые традиционные системы регулирования решают не самым лучшим образом. Если возникает необходимость уп- равлять объектом, который обладает неоднозначными свойствами, опи- сание которого заведомо неполно либо не может быть сведено к простой математической модели, то приходится искать решения, альтернативные «обычным» способам управления, и чаще всего выбираются нейронные сети или системы с нечеткой логикой. Напомним вкратце, чем характери- зуются эти методы. Важнейшим достоинством нейронных сетей считается возмож- ность их обучения и адаптации. Нам не требуются полные знания об объ- екте управления (например, его математическая модель). На основе входных и заданных (эталонных) сигналов нейронная сеть может на- учиться управлять объектом. Нейронные сети (см. гл. 2) состоят из огром- ного количества взаимосвязанных простых обрабатывающих элементов (нейронов), что в результате дает громадную вычислительную мощ- ность при использовании параллельной обработки информации. К сожа- лению, способ проектирования таких систем основывается скорее на интуиции, чем на существующих закономерностях. До настоящего време- ни неизвестен алгоритм расчета количества слоев сети и количества ней- ронов в каждом слое для конкретных приложений. Тем не менее, по за- вершении обучения нейронные сети становятся незаменимыми средст- вами решения задач распознавания образов, аппроксимации, оптимиза- ции, векторного квантования либо классификации. С другой стороны, на- копленные нейронной сетью знания оказываются распределенными меж- ду всеми ее элементами, что делает их практически недоступными для наблюдателя.
308 Глава 5. Модули нечетко-нейронного управления Этого недостатка лишены системы управления с нечеткой логикой. Однако в данном случае знания о способе управления необходимы уже на стадии проектирования управляющих модулей, причем они должны исходить от экспертов и, следовательно, возможность обучения отсутст- вует. Однако и в такой ситуации полные знания (описывающие в матема- тическом виде функциональную зависимость между входами и выходами системы) не требуются. В отличие от обычных модулей управления, ис- пользуются не количественные («сколько?»), а качественные («как?») знания. Система принимает решения на основе правил, записанных в форме импликации IF-THEN. Простейший подход к проектированию та- ких систем заключается в формулировании правил управления и функ- ции принадлежности по результатам наблюдения за процессом управле- ния, осуществляемым человеком либо уже существующим регулятором, с последующим оцениванием корректности функционирования такой си- стемы. Если проект оказывается неудачным, то функцию принадлежнос- ти и/или правила управления можно легко модифицировать. Как уже от- мечалось, основной недостаток подобных систем - это невозможность адаптации и обучения Объединение обоих подходов позволяет, с одной стороны, привне- сти способность к обучению и вычислительную мощность нейронных се- тей в системы с нечеткой логикой, а с другой стороны - усилить интеллек- туальные возможности нейронных сетей свойственными «человеческо- му» способу мышления нечеткими правилами выработки решений. Попытки такого объединения стали в последние годы предметом весьма интенсивных исследований. Их результатом можно считать систе- мы выработки решений, в разной степени реализующих идею нечеткого мышления в комплексе с заимствованной от нейронных сетей способно- стью к обучению В последующих разделах обсуждаются различные модули нечет- кого управления, для обучения которых применяется алгоритм обратного распространения ошибки. Применение этого алгоритма стало возмож- ным благодаря представлению модулей нечеткого управления в форме многослойных сетей с прямым распространением сигнала (типа feedfor- ward). 5.1. Модуль нечеткого управления со структурой, определенной в процессе дефуззификации 5.1.1. Введение Как отмечалось выше, при некоторых допущениях можно предста- вить систему нечеткого управления в форме многослойной сети с пря- мым распространением сигнала (feedforward). Этим термином также обо- значается определенный класс нейронных сетей. Поскольку для их обу- чения до настоящего времени вполне успешно использовался алгоритм обратного распространения ошибки, то нет никаких препятствий к тому, чтобы применить его для любой сети этого класса. Следовательно, мож- но сделать вывод: если систему нечеткого управления можно предста- вить в виде такой сети, то ее можно будет обучать по методу обратного распространения ошибки.
5.1. Определение структуры модуля управления при дефуззификации 309 Далее будет показана возможная сетевая реализация модуля не- четкого управления. Для ее построения будет использоваться описание типовой структуры модуля нечеткого управления, представленная в п. 3.9.1. После этого мы обсудим методику обучения такой сети 5.1.2. Конструкция модуля В п. 3.9.1 была представлена структура модуля нечеткого управле- ния (см. рис. 3.26) и ее подробное описание. В настоящем пункте мы рас- смотрим конкретную реализацию модуля, использовавшегося в примере 3.33, случай 1 (см. также [19]). Перейдем сразу к способу реализации каждого элемента. А. База правил. Знания, составляющие основу корректного функ- ционирования модуля нечеткого управления, записываются в виде нечет- кого правила, имеющего форму (3.229), т.е. Rk это А$ AND... AND х„ это Ак) THEN (у это Вк). Можно также представить эти знания в виде нечетких множеств с функцией принадлежности, заданной выражением (3.233). Следова- тельно, если в качестве нечеткой импликации будет использоваться опе- рация умножения (3.202). то получим формулу (Х-У) = (х)л<е« (У) • (5-1) При использовании выражения (3.74) декартово произведение не- четких множеств можно представить в виде (х) = х/й (х) = Дд* to (Х„) (5.2) В. Блок вывода. Приведем еще раз формулу (3.238), определяю- щую функцию принадлежности нечеткого множества В k Ив* (У) = suP<A'a (х) * (х’ У» • (5-3) хеХ Ранее мы отмечали, что конкретная форма этой функции зависит от применяемой Т-нормы, определения нечеткой импликации и от спосо- ба задания декартова произведения нечетких множеств. Выше, в п. А де- картово произведение и нечеткая импликация были определены через операцию умножения. На основе таблицы 3.1 Т-норму также можно пред- ставить произведением вида Sup{jUA(x)* (Х.У)} = 5ир{дЛ.(х)дЛ^>ек (Х.У)} . (5.4) хеХ хеХ В результате объединения приведенных выражений можно выпол- нить следующее преобразование (см. также пример 3.33): Pg* (у) = supO^x)^*^ (х,у)} =
310 Глава 5. Модули нечетко-нейронного управления = $ир{рА\х)рА>^(х,у)} = хеХ = зир{рл(х)рд4х)реЛ(у)} = хеХ = sup *{рА; (X! )-мл;, (х„ )ГА> (*1 (*п )л'е* О'» • что в итоге позволяет обобщить формулу (3.243) Л<вДу) = sup {д^(у)Цд^(МРА*(Х/)} (5-5) Х1..xnGX /=i С. Блок фуззификации. Применим операцию типа синглетон, т.е. в соответствии с выражением (3.234) пусть ( 1, если х -х, Л 00 - | 0, если х * х. Заметим, что супремум в формуле (5 5) достигается только в слу- чае, когда х = х, т.е. для рА. (х) = 1. При этом выражение (5.5) принимает вид Л'в« (У) = Ивк (У)П Р a* (xi) (5-7) /=1 D. Блок дефуззификации. Применим метод дефуззификации center average defuzzification, в соответствии с которым у=Ц-------------- <5-8) Хдв*(у*) К=1 В приведенной формуле У*- это центр (center) нечеткого множе- ства В*, т.е. точкой, в которой рвк(У) достигает максимального значения Рв*( *) = тах{деД )}. При подстановке выражения (5.7) в формулу (5.8) получим равен- ство £у4(Д6ЛУ*)П^М у = ^-Д---------------J. . (5.9) ДРв^У^П^*'*]
5.1. Определение структуры модуля управления при дефуззификации 311 Если учесть, что максимальное значение, которое деЦу) может получить в точке у* , равно 1, т.е. PB*(yfc) = 1 • то формула (5.9) принимает вид N ( п А у = ^1 Ьм__________2 (5.10) (5-11) 5.1.3. Структура модуля Завершающий этап в процессе проектирования нашего модуля не- четкого управления - это определение формы представления нечетких множеств Ак, i = 1,.... п; к = 1.N. Например, это может быть функция Гаусса Рд*(х1) ~ ехР| £’ (5.12) где параметры х? и <т* имеют физическую интерпретацию: хк - это центр, а ст* - ширина гауссовской кривой. Как будет показано ниже, эти параметры могут модифицировать- ся в процессе обучения, что позволяет изменять положение и структуру нечетких множеств. Объединим теперь все представленные элементы. Воспользуемся методом дефуззификации (5.8), выводом согласно выражению (5.5), бло- ком фуззификации с операцией типа синглетон (5.6), а также гауссовской функцией принадлежности (5.12) и тогда модуль нечеткого управления приобретает окончательный вид (5-13) Приведенное выражение представляет собой один из наиболее известных и часто применяемых способов реализации нечетких систем Каждый элемент этой формулы можно задать в форме функционального блока (сумма, произведение, функция Гаусса), что после соответствую-
312 Глава 5. Модули нечетко-нейронного управления щего объединения позволяет создать многослойную сеть. Пример подоб- ной структуры приведен на рис. 5.1. Для упрощения на схеме показан модуль управления с двумя вхо- дами (п = 2). Слои обозначены символами от L1 до L4 и выделены серым фоном. Элементы, обозначенные символом П (мультипликаторы), пере- множают все входные сигналы, элементы, обозначенные символом Е (сумматоры) - суммируют их, а элемент |, делит один сигнал на дру- гой. Черные поименованные точки, размещенные на связях, обозначают веса этих связей. Элементы слоя L1 реализуют функцию Гаусса с пара- метрами х* и ст*. Выражения и стрелки, размещенные над схемой, опре- деляют направление распространения сигнала и его интерпретацию. От- дельные элементы схемы мы будем также называть узлами. В представ- ленной струтктуре выделены четыре слоя. Слой 1 (L1). Каждый его элемент реализует функцию принадлеж- ности нечеткого множества A*. i= 1,..., л; к= 1.N. В этот слой посту- пают входные сигналы хр а на его выходе формируются значения функ- ции принадлежности для этих сигналов, т.е. рА* (хД Фактически, в этом слое оценивается степень принадлежности входных данных х; к соответ- ствующим нечетким множествам А*. Функциональная зависимость между входом и выходом в узлах этой сети определяется формулой (5.12), т.е. функцией Гаусса. Ее параметры х* и <т* интерпретируются соответствен- но как центр и ширина этой функции. Они будут модифицироваться в про- цессе обучения, что позволит улучшать подбор нечетких множеств. Факт физической интерпретации этих параметров позволяет получить хоро- Рис. 5.1. Схема реализации модуля нечеткого управления, заданного выражением (5.13).
5.1. Определение структуры модуля управления при дефуззификации 313 шее начальное размещение функции принадлежности нечетких мно- жеств, а также анализировать ее в процессе обучения. Количество эле- ментов слоя L1 равно количеству всех множеств с принадлежностью А В случае Л/ нечетких правил (к = 1.N) и п входных переменных (/ = 1, .... п) с учетом того, что в каждом правиле любая входная переменная связана с другим нечетким множеством, количество узлов (элементов слоя L1) будет равно произведению количества входных переменных п и количества нечетких правил N. Слой 2 (L2). Конфигурация связей этого слоя соответствует базе правил, а мультипликаторы - блоку вывода (см. формулы (5.7) и (5.10)). На выходе слоя L2 формируется результат вывода в виде значения функ- ции принадлежности Др*(ук). Количество элементов этого слоя равно количеству правил N. Каждый узел связан с предыдущим слоем таким образом, что узел слоя L2, соответствующий A—iviy правилу, соединен со всеми узлами слоя L1, соответствующими нечетким множествам сужде- ний этого правила. Применение мультипликаторов в качестве узлов слоя L2 обусловлено тем фактом, что для Т-нормы, декартова произведения множеств и нечеткой импликации используется операция умножения. Следует отметить, что для реализации примера 3.32 достаточно заме- нить операцию умножения операцией минимум (см. формулу 3.240). Слои 3 (L3) и 4 (L4). Оба слоя представляют собой реализацию блока дефуззификации, реализующего зависимость (5.8). Веса связей, доходящих до верхнего узла слоя L3 и обозначенные у*, интерпретиру- ются как центры функций принадлежности нечетких множеств ЕГ Эти ве- са, также как и значения параметров х? и ст*' в слое L1, будут модифици- роваться в процессе обучения. На выходе слоя L4 формируется «четкое» (дефуззифицированное) выходное значение модуля управления у. Пред- ставленная на рис 5.1 структура имеет много общего с нейронными се- тями - она представляет собой многослойную сеть, основанную на идее нечеткого вывода. В отличие от «чистых» нейронных сетей, каждый слой в целом и отдельные составляющие его элементы, также как и конфигу- рация связей, все параметры и веса имеют физическую интерпретацию. Это свойство оказывается необычайно важным, поскольку знания не рас- пределяются по сети и могут быть легко локализованы и при необходи- мости откорректированы экспертом-наблюдателем. 5.1.4. Использование алгоритма обратного распространения ошибки Поскольку обсуждаемая нами структура представляет собой мно- гослойную сеть и, как уже отмечалось, алгоритм обратного распростране- ния ошибки можно обобщить на любую сеть с прямым распространением сигнала, то ничто не препятствует тому, чтобы предлагаемый модуль не- четкого управления обучать также, как и обычную ^ейронную сеть. Для этого потребуется обучающая выборка в виде nap (x.d), где х = [х^.-.Хп]7 - это входной вектор, ad- эталонный сигнал. Задача заключается в та- кой модификации (коррекции) параметров модуля нечеткого управления, описанного выражением (5.13), чтобы мера погрешности, задаваемая выражением
314 Глава 5. Модули нечетко-нейронного управления e = |[y(x)-d]2 (5-14) была минимальной. Значение выходного сигнала у(х) для заданного входного сигнала х будем для упрощения обозначать у. Допустим, что количество правил N известно (его можно задать). В этом случае остается подобрать три параметра: у™, х™ и <т- для Л7= 1...N. Начнем с весов ут в слое L3. Напомним (разд. 2.5), что алгоритм обратного распространения ошибки относится к классу так называемых градиентных алгоритмов. Их идея заключается в уменьшении предыду- щего значения веса на величину производной от меры погрешности (5.14), умноженную на некоторый коэффициент. Процесс должен длиться так долго, чтобы погрешность на выходе системы достигла априорно ус- тановленной минимальной величины. Для веса у"’ выражение, определя- ющее способ модификации, будет иметь вид (5.15) где t = 0,1,2,... обозначает номер итерации (/"(0) - начальное значение веса), а константа q е (0,1) интерпретируется как коэффициент, опреде- ляющий скорость обучения (он также называется шагом коррекции). В формуле (5.14), задающей меру погрешности, содержится вы- ходной сигнал системы (модуля управления). Представим уравнение (5.13) в виде Легко заметить, что значение у и, следовательно, также мера по- грешности е зависит от веса у* только в числителе (т.е. в части а). Если применить правило дифференцирования сложной функции, то можно рассчитать производную меры погрешности относительно веса у”1 -^- = (y-d)^-^ = (y-d)^-zrn. (5.17) ’eagyrn 'ь Исключение зависимости (5.17). При подстановке выражения (5.14) в формулу (5.17) получаем выражение -бе_ = _0_Г1(у_(/)2'1. Поскольку эталонный сигнал d не зависит от веса у"1, то можно рассматривать его в качестве константы:
5.1. Определение структуры модуля управления при дефуззификации 315 _8е_ = (р _ d)%y^dl = _ду_ 0ym } ёут йут Применяя формулу для расчета производной от сложной функции, получаем fiy™ >8ут\Ь) 'da\.b)Sym ь оу" С учетом того, что a = ^(y/tz'<), можно определить производ- ную в виде *=1 8Vm -NN JS- = -^-Yly^Zk ) = Уа(У х-т ЯЛ™ £-tXJ ' /-> ыггг су By k=i k=i оу Отдельные веса сети независимы друг от друга, поэтому 8(ykzk) _ 0 для к * т , ёут “ I zm для к = т . Следовательно, да __ ёут И окончательно -^- = (y-d4zm . 0ym b При подстановке полученной формулы в выражение (5.15), опре- деляющее способ модификации веса у", получаем алгоритм обучения ym(f + 1)=ym(O-4^-zm| , (5.18) D l(f) который с учетом выведенных выше зависимостей представляется в виде Для упрощения записи в приведенной формуле зависимость от- дельных ее параметров от номера итерации t, t = 1,2,... обозначена сим-
316 Глава 5. Модули нечетко-нейронного управления волически. Процесс обучения подразделяется на два этапа. Вначале на вход модуля управления подается значение сигнала х, входящее в обучаю- щую выборку; на его основе формируется выходное управляющее воз- действие. Этот сигнал распространяется по сети в прямом направлении, и последовательно рассчитываются значения zk(k = 1.N), а, b и, на- конец, у. Затем выполняется второй этап: обратное распространение ошибки. При этом выходная реакция у сравнивается с эталонным значе- нием d, и по результатам сравнения модифицируются значения весов у"7. _ Аналогично рассчитываются остальные параметры: х™ и о-"7. Для х™ применяется рекурсия x/”(t + 1) = x/”(0~?7 — . (5.19) 8x?(t) где /= 1 n, т =J,.... N, t= 1,2 Из уравнения (5.16) следует, что вы- ходная величина у (и, соответственно, мера погрешности е) зависит от хк только через zk. При использовании, как и прежде, формулы для расчета производной от составной функции, получаем -^g- = (y-d) д?™ =(у™-y^-d zm2^'(5 20) дх? gzm 8хт b 1 ; Исключение зависимости (5.20). Так же как и в случае с форму- лой (5.17), будем основываться на уравнении, определяющем производ- ную от меры погрешности _Se_ = _Ml(y_d)2l . ex/7' dx^l-2^ J С учетом того, что от параметра х™ зависит только значение вы- ходного сигнала у, согласно формуле для расчета производной от сложной функции имеем ах/” вхГ az" ax/” Поскольку y~ f, причем а и b зависят от г™, определим первую из производных в виде D _Sa_fc_a_^_ = _д_(а.^ = gzm 8zm cz™ dz^bj b2 После подстановки вместо а и b соответствующих выражений и взятия производных получаем (n N Л У(у*гк) Ь-а-^- Yz* ______ h J J 8zm___b2
5.1. Определение структуры модуля управления при дефуззификации 317 = ymb-a = ymb-yb = ут-у Ь2 ~ Ь2 " ь fl f 'у. В результате замены zm = p[exp(s™), где s]” = -I —-— можно рассчитать ст™ J Лгтехр(^)] Л fZczZL]2] Sx? 8s? |%т ] 8х? I J и далее = exp^s^^£s;”) =Hexp(sf) = zra, а также что в итоге приводит к формуле При подстановке равенства (5.20) в выражение (5.19), получаем алгоритм обучения для параметра х/77 в виде x/”(t + 1)= Л т*2 }| . (521) (<т' ) 1(f) где b и zm определяются по формуле (5.16).
318 Глава 5. Модули нечетко-нейронного управления При использовании такой же методики можно получить алгоритм обучения для параметра ст™ в виде =с,Г(()_ч^б7-_^2&2£1 (522| > l(f) Представленные зависимости (5.18), (5.21) и (5.22) определяют спо- соб модификации весов и параметров на основе алгоритма обратного рас- пространения ошибки. На первом этапе входной вектор х распространяет- ся по сети в прямом направлении, и последовательно рассчитываются зна- чения z*(k= 1,.... Л/), а, b и, наконец, у. На втором этапе с использовани- ем представленных формул рассчитываются новые значения весов свя- зей 1),xf‘(t+ 1)и<т*(1 +1) для/= 1.....rr,k= 1,..., Л/, после чего ста- рые значения заменяются новыми, и счетчик количества итераций t уве- личивается на 1 Такая последовательность имеет существенное значе- ние, поскольку, например, в формуле расчета «нового» значения веса x!”(t+ 1) содержатся «старые» (точнее - рассчитанные на предыдущем шаге) значения весов ym(t), xf (t) и erT(t). Заметим, что во всех формулах фигурирует «нормализованная» погрешность (у- d)lb. Она распространяется в обратном направлении до третьего слоя (L3), в котором находятся веса связей у* (см. рис. 5.1) Впоследствии каждый весу™ модифицируется согласно алгоритму (5.18), причем следует отметить, что значения z™ уже определены ранее на пер- вом этапе (это сигналы, выходящие из предыдущего слоя). Для обучения параметров xf и of1 та же «нормализованная>^погрешность (y-d)/b ум- ножается на разность (у'” - у) и на значение zm, после чего распростра- няется в обратном направлении до первого слоя (L1) Параметры xf” и of модифицируются по алгоритмам (5.21) и (5.22) соответственно. Это доказывает, что они с полным основанием могут называться «алгоритма- ми обратного распространения ошибки». Алгоритм обучения обсуждаемой сети представлен на рис. 5.2 в виде блок-схемы. В принципе, он не требует дополнительных коммен- тариев, можно добавить лишь несколько слов о принятых на этом рисун- ке упрощениях. Во-первых, как определить, насколько корректно обучена сеть? Для этого созданы различные методы, и одним из простейших считается расчет значения средней погрешности для всех эпох (epoch) с последующим сравнением результата с некоторым заданным значением. Напомним, что эпохой называется количество итераций, равное числу пар векторов входных и эталонных сигналов (т.е. один цикл предъявления обучающей выборки). Во-вторых, на схеме предполагается, что обучающие эталоны предъявляются строго последовательно. В принципе, для простейших се- тей это не имеет особого значения, однако в общем случае выдвигается условие, чтобы в рамках каждой эпохи данные выбирались случайным образом.
5.1. Определение структуры модуля управления при дефуззификации 319 Рис. 5.2. Алгоритм обучения модуля нечеткого управления, заданного выражением (5.13).
320 Глава 5. Модули нечетко-нейронного управления Программная реализация приведенного алгоритма не представля- ет проблему даже для начинающего программиста. Однако следует по- мнить очень важное правило: на каждом шаге вначале рассчитываются поправки для всех весов в каждом слое, и только после этого корректи- руются значения самих весов. Следует обратить внимание на то, что в формулах для расчета очередных значений параметров x™(t + 1) и &™(t+ 1) имеются «старые» значения у^р), х™({) и a™(t) из предыдущей итерации; их преждевремен- ное изменение могло бы ухудшить качество обучения сети 5.1.5. Модификации модуля В структуре, представленной в предыдущих подразделах, сделано допущение, что в каждом k-м правиле, к = 1, .... N, учитывается предо- пределенное количество нечетких множеств А*, / = 1.п. Результат та- кого допущения проявляется в большом количестве обрабатывающих элементов первого слоя (L1): наэпомним, что это количество равно лхЛ/. Однако изучение реальных систем показывает, что нечеткие множества одной и той же переменной оказываются весьма близкими друг другу (расстояния между их центрами невелики). Поэтому их можно заменить одним нечетким множеством. Как правило, реализуется следующая мето- дика. вначале определяется фиксированное количество нечетких мно- жеств для каждой переменной, и в последующем именно они и использу- ются в правилах вывода. Например, если некоторая лингвистическая пе- ременная представляет скорость движения, то для нее задается фикси- рованное количество нечетких множеств типа «медленно», «средне», «бы- стро», и именно на их основе формируются соответствующие правила. При- мер упрощенного таким образом модуля управления представлен на рис. 5.3. На нем видно, что в связях между слоями L1 и L2, отображающих структуру правил, одни и те же нечеткие множества А* содержатся в различ- ных правилах. Очевидно, что количество элементов в слое L1 на рис. 5.3 оказывается меньше, чем на рис. 5.1, тогда как количество элементов в слое L2 на обоих рисунках совпадает. Именно в этом заключается прин- ципиальное различие между структурами, изображенными на рис. 5.1 и 5.3. При проектировании двухвходового модуля управления при усло- вии, что для каждого входа определяется семь нечетких множеств коли- чество узлов в первом слое на рис. 5.3 составит 7+7 = 14. В этом случае может быть построено максимум 7x7 = 49 правил. Если бы те же 49 пра- вил использовались в немодифицированном модуле управления, то ко- личество нечетких множеств (и, соответственно, количество узлов в пер- вом слое) для тех же двух входов составило бы 2x49 = 98 (!). Выигрыш очевиден. Аналогичные упрощения можно выполнить и в отношении нечетких множеств В\ Они также будут сводиться к определению соответствующего количества этих множеств и их последующему использованию в правилах. В результате мы получим правила с количеством заключений M<N Вслед- ствие этого предпосылки (суждения) правил с идентичными выводами (за- ключениями) можно объединить нечетким оператором OR и сформировать таким образом универсальное правило. Для его реализации необходим до-
5.1. Определение структуры модуля управления при дефуззификации 321 Рис. 5.3. Реализация у