Текст
                    А.В. Пантелеев
МЕТАЭВРИСТИЧЕСКИЕ АЛГОРИТМЫ
ПОИСКА
ГЛОБАЛЬНОГО ЭКСТРЕМУМА
Издательство МАИ-ПРИНТ


ВВЕДЕНИЕ Отличительной особенностью большинства актуальных научно- технических задач проектирования современных образцов ракетно- космической и авиационной техники является поиск рациональных решений в многомерном пространстве альтернатив. Показатели качества сравниваемых вариантов, как правило, описываются нелинейными зависимостями и оцениваются при помощи сложных моделирующих алгоритмов, что обуславливает высокую трудоемкость вычислений при использовании точных методов глобальной оптимизации. Кроме этого, постановки проектных задач часто бывают с начальными данными, которые имеют погрешности, что окончательно делает значительные вычислительные затраты для нахождения точного решения неоправданными. Применение классических численных методов поиска локального и глобального экстремума многоэкстремальных функций со сложным рельефом поверхностей уровня становится малоэффективным [3,20,22]. В настоящее время существует достаточно много оригинальных методов поиска глобального экстремума [6,23,26,46]. Одной из основных проблем является обеспечение сходимости генерируемой последовательности приближенных решений к точному решению задачи оптимизации. Поэтому большое внимание уделяется приближенным методам глобальной оптимизации, которые позволяют получить решение «высокого качества» за приемлемое (с практической точки зрения) время. Среди них широкое распространение получили методы оптимизации: эволюционные методы, генетические алгоритмы, методы муравьиных колоний, метод частиц в стае, метод дифференциальной эволюции и метод имитации отжига. Описание этих, а также других методов глобальной оптимизации можно найти в [31, 34, 36,41,46, 55]. Генетические алгоритмы (ГА) являются представителями эволюционных методов поиска. В основе их работы лежит моделирование некоторых процессов природной эволюции. Основные принципы работы ГА изложены в [35,47,49,57]. Одной из наиболее популярных областей приложения ГА является оптимизация многопарамстрических функций [1,2,8]. Подобно другим методам эволюционных вычислений, ГА не гарантируют обнаружение глобального решения. Но они успешно работают, когда требуется найти достаточно «хорошее» решение за приемлемое время. В отличие от классических методов оптимизации ГА могут применяться в ситуациях, когда практически полностью отсутствует информация о характере и свойствах исследуемой функции. 4
В основе ГА лежат принципы, заимствованные из биологии и генетики. Основная идея состоит в создании популяции особей (индивидов), каждая из которых представляется в виде хромосомы. В задаче оптимизации множество допустимых решений кодируется так, чтобы каждая хромосома соответствовала одному из возможных решений. Для поиска наилучшего решения используется значение целевой функции или связанной с ней функции приспособленности. Значение функции приспособленности показывает, насколько хорошо подходит особь, описываемая хромосомой, в качестве решения задачи. Хромосома состоит из конечного числа генов, представляя генотип объекта. Поиск экстремума ведется на уровне генотипов Для обеспечения процесса эволюционного поиска к текущей популяции применяются основные генетические операции: селекция, скрещивание, мутация, в результате которых генерируется новая популяция при помощи добавления новых особей с лучшей функцией приспособленности и удаления старых. Генетические алгоритмы делятся на две группы: генетические алгортпмы с бинарным кодированием и генетические с вещественным кодированием. Первая группа использует двоичный алфавит для кодирования либо точек, либо элементарных «площадок» на множестве допустимых решений (иногда применяется смешанное кодирование). Высокая эффективность отыскания глобального экстремума с помощью генетического алгоритма с бинарным кодированием обоснована теоремой о шаблоне [49], в которой доказано, что двоичный алфавит позволяет обрабатывать максимальное количество информации по сравнению с другими методами кодирования Однако двоичное представление хромосом влечет за собой трудности при поиске экстремума в непрерывных пространствах, поскольку дискраизания множества допустимых решений приводит к потере точности. Описание различных генетических алгоритмов и соответствующих программных продуктов можно найти в [1,2,5,8,15,17,24,25,28,35]. Вторая группа возникла в результате отказа от идеи кодирования. Тогда решение в хромосоме представляется в виде набора вещественных чисел. При этом реализация генетических операторов изменяегся, а операции кодирования и декодирования отсутствуют. Генетические алгоритмы с вещественным кодированием были предложены в [42,54,65] и интенсивно развиваются [10,16,24,28]. Метод дифференциальной эволюции [62] относится к классу методов, в которых переход от одной популяции к другой происходит посредством искусственной эволюции. Использование различий (differences) между индивидами с помощью линейного оператора, названного дифференциацией, привело к появлению нового класса методов, различные модификации 5
которого нашли широкое применение при решении разнообразных прикладных задач [32,43-45,59]. Метод часпшц в стае, предложенный в [52], имитирует некоторые свойства живой природы и позволяет отыскать приемлемое с точки зрения практики решение, может быть несколько отличающееся от оптимального. Основная идея метода состоит в моделировании поведения стаи животных при поиске пиши. Если один из членов стаи видит путь к цели, то остальные особи очень быстро последуют его примеру, обмениваясь информацией. Дальнейшее развитие метод получил в работах [33,39,40,56,61]. Метод имитации отжига основан на анализе процесса замерзания жидкостей или рекристаллизации металлов в процессе отжига. Алгоритмы имитации отжига с некоторой вероятностью допускают переход в состояние с более высоким значением целевой функции в процессе поиска решения для того, чтобы точка могла покинуть окрестность локального минимума. Кроме классического алгоритма, предложенного в [53], существуют также его моди¬ фикации, позволяющие ускорить сходимость [30,50,51]. Метод муравьиных колоний относится к методам «роевого интеллекта» [37,38], которые в связи со своей эффективностью приобретают всё большую популярность. Концепция метода активно разрабатывается и совершенствуется. Постоянно появляются его модификации для решения различных прикладных задач [4,7,9,13,21,29,34]. В гл. 6 рассматривается одна из модификаций метода муравьиных колоний, которая позволяет осуществлять поиск кратчайшего пути в ориентированном графе [13]. Формирование алгоритмического обеспечения перечисленных методов является актуальным не только для решения непосредственно задачи поиска глобального экстремума многоэкстремальных функций нескольких переменных, но и для решения разнообразных прикладных задач, в частости, проблемы параметрической оптимизации непрерывных и дискретных систем управления. Соответствующее программное обеспечение должно быть эффективно как для решения типовых задач, так и для оптимизации специальным образом сконструированных типовых функций [35,58], имеющих сложный рельеф поверхностей уровня. В [64] доказана теорема о том, что если алгоритм превосходит алгоритм В для некоторого класса целевых функций, то должно существовать столь же много других целевых функций, для которых алгоритм В превосходит А Поэтому выбор метода определяется конкретной задачей оптимизации: видом целевой функции и ограничений, задающих множество допустимых решений Одной из целей настоящей работы является создание алгоритмического и программного обеспечения метаэвристических методов поиска глобального экстремума, а именно визуализаторов, позволяющих получить основные 6
характеристики тестируемого метода оптимизации и делающего процесс сравнения его с другими методами удобным и наглядным. Кроме решения типовых задач оптимизации, в книге рассматривается проблема параметрического синтеза оптимальных систем управления непрерывными и дискретными системами. В приложении приведены соответствующие постановки задач, методики их решения (достаточные условия оптимальности и соотношения для нахождения оптимального управления) и примеры, в которых найдены точные решения. Эти решения сравниваются с соответствующими приближенными решениями, полу¬ ченными при непосредственном применении метаэвристических методов. Основная идея заключается в переходе от задачи оптимизации функционала, определенного на множестве допустимых процессов, включающих траекторию динамической системы и порождающее се управление, к задаче конечномерной оптимизации функции многих переменных. В каждом разделе книги изложены: постановка задачи, стратегия поиска, алгоритм решения, программное обеспечение и решения типовых примеров и прикладных задач. Особое внимание уделяется исследованию влияния параметров методов на их эффективность, поскольку каждый из рассмотренных методов в свою очередь представляет собой целый класс аналогичных методов со своими особенностями. Полученные результаты являются промежуточным итогом исследований, проводимых на кафедре математической кибернетики факультета прикладной математики и физики Московского авиационного института, ['лавы 1 и 2 написаны автором совместно с Д.В. Метлицкой и Н.П. Апостол [15-17], главы 4 и 6 совместно с Е.А Алешиной [13-14], главы 3 и 5 совместно с И.Ф. Дмитраковым [19]. Материал приложения содержит результаты, полученные лично автором [11,12). Сформированное программное обеспечение является основой лабораторного практикума по курсам “Методы синтеза новых классов систем управления” и “Методы оптимизации” и входит в состав учебно-методических комплексов вместе с учебными пособиями [12,18,20]. Монография подготовлена в Московском авиационном институте (государственном техническом университете), в научно-образовательном центре "Математические методы оптимизации и идентификации аэрокосмических систем и летательных аппаратов", как часть работ по Государственному контракту 02.740.11.0471 в рамках Мероприятия 1.1 Федеральной целевой программы "Научные и научно-педагогическис кадры инновационной России" на 2009-2013гг. 7
Глава I. ГЕНЕТИЧЕСКИЙ АЛГОРИТМ УСЛОВНОЙ ОПТИМИЗАЦИИ С БИНАРНЫМ КОДИРОВАНИЕМ 1.1. ПОСТАНОВКА ЗАДАЧИ Дана целевая функция /(х) = /(хi,x2,...,x„), определенная на множестве допустимых решений DqR". Требуется найти глобальный условный максимум функции /(х) на множестве D, то есть такую точку х* € D, что У(х*)= шах /(х), (1.1) хъО где x-(xl,x2,...,xn)T, D = {x\x, e\ahb,\,i= 1,2,...,л}. Замечания 1.1. 1. Задача поиска минимума функции /(х) сводится к задаче поиска максимума путем замены знака перед функцией на противоположный: /(х*) = min /(х) = - тах[- /(х)). xrD х* D 2. Функция /(х) может быть многоэкстремальной, поэтому искомое решение в общем случае неединственное. 3. Дополнительная информация о свойствах и характере поведения целевой функции /(х) (дифференцируемость, непрерывность и т.д.) в процессе поиска решения не учитывается. 1.2. СТРАТЕГИЯ ПОИСКА РЕШЕНИЯ Поясним основную идею генетических алгоритмов (ГА) и используемые термины. ГА имитируют в своей работе природные способы оптимизации: генетическое наследование и естественный отбор. При этом в упрощенном виде сохраняется биологическая терминология. Суть механизма естественного отбора заключается в том, что в процессе эволюции выживают и размножаются наиболее приспособленные особи. Благодаря механизму генетического наследования их потомки сохраняют основные качества родителей, а подвергаясь случайным мутациям приобретают и ряд новых свойств. Если новые свойства полезны, то они также сохраняются и наследуются. Средняя приспособленность особи с каждым поколением при этом будет расти. Рассматриваемая целевая функция /(х) эквивалентна природному понятию приспособленности живого организма. Вектор параметров х = (х(,х>,...,х„)г целевой функции называется , а отдельные его параметры х, - признаками, / = 1,2,..., п.Каждый вектор х = (Х| является возможным решением поставленной оптимизационной задачи. 8
Известно, что любой живой организм может быть представлен своим генотипом и фенотипом. Генотип - это совокупность наследственных признаков, информация о которых заключена в хромосомном наборе, а фенотип - совокупность всех признаков и свойств организма, формирующихся в процессе взаимодействия его генотипа и внешней среды. Каждый ген имеет свое отражение в фенотипе. ГА ведут поиск решения только на уровне генотипа. Каждую координату х,- вектора х = (xl,X2,.-.,x„)T е D представляют в некоторой форме st , удобной для использования в ГА и называемой геном. Для этого необходимо осуществить преобразование, в общем случае не взаимно однозначное, вектора параметров = в некоторую структуру s = (Sj,S2,:;S„)T eS,называемую хромосомой (генотипом. D—-—>5, где е - функция кодирования, S - пространство представлений (как правило, D*S). Для того чтобы уметь восстановить по хромосоме решение, необходимо задать обратное преобразование: S———*D, где е'1- функция декодирования. В пространстве представлений S вводится так называемая функция приспособленности ц($): 5—15—>Л, где R- множество вещественных чисел, аналогичная целевой функции /(х) на множестве D. Функцией ц(.г) может быть любая функция, удовлетворяющая следующему условию: Vx',x2 e D : sl = e(xl),s2 = е(х2),sl* s2, если /(x1) > f(x2), то ц(з') > ц(.г). Таким образом, решение исходной оптимизационной задачи f(x’) = max /(х) сводится к поиску решения другой задачи оптимизации: х tD ц(т‘) = max ц(.т). (1.2) д« s Затем осуществляется обратное преобразование: x* = e‘V). (1.3) При решении задачи (1.2) используются конечные наборы / = {.*' =(*',.*} д,1)гД = 112,...,ш)с5 возможных решений, называемые популяция-ии, где sk- хромосома с номером размер популяции, л* - ген с номером /'. Применение ГА сводится к исследованию множества S при помощи перехода от одной популяции к другой. Из условия задания функции приспособленности следует, что чем больше значение ц(.?*), тем более подходит хромосома sk в качестве решения. Существуют различные способы задания функции приспособленности: а) в самом простом случае достаточно положить ц(.т) = /(*"'(•*)); 9
б) в некоторых случаях (см. далее виды операторов, используемых в ГА) бывает необходимо, чтобы функция p(s) принимала только положительные значения. Тогда функцию приспособленности можно представить, например, в одном из следующих видов: inin /(х*) *=1,2,... ,/л + 1 или n(i*) = |/(х*)- min /(**) +1|2, Рассмотрим процедуры кодирования и декодирования. Кодирование. Наиболее часто при кодировании применяются битовые строки, элементы которых принимают значения 0 или I. Каждой координате х, € [апЬ,\ вектора х = (x,,x2,...,x„)r е D ставится в соответствие ген - битовая строка Sj длины lh Хромосома 5 = ($,,$2»—Л,)Г также представляет собой П битовую строку, длина которой равна сумме длин строк ее генов: =£/, . ы Длина битовых строк внутри хромосомы может быть как одинаковой, так и различной (рис. 1.1). *1 Jtj Xj I » t I ГПГоТ ТЛГоТПТ JE ГИНТ-ТЛ пт ]Ц I, ^ / Рис. 1.1. Соответствие координат и битовых строк Рассмотрим описанный процесс на примере смешанного кодирования (рис. 1.2). О 1 2 *,-1 к, aiI * * Ч)* ~Ч1 i i ч; Ь, h, ht h, Рис 1.2 Смешанное кодирование На множество D наносится л-мерная решетка. Рассмотрим один из замкнутых интервалов |л(,6,|. Разобьем его на A/-I подынтервалов равной длины: hj = —j—— Полученные подынтервалы пронумеруем натуральными kt -1 числами от 1 до А, -1, левый конец ъ замкнутого интервала - номером О, правый конец Ь, - номером к-,. ю
Таким образом, сначала координате х, ставится в соответствие целое число Р,- е {0.1,...,А,}: 0, х, = а,, х,-а,л Р/ = Ь, */. + 1, х, € (a„bt), Xj = (1.4) где [•) означает операцию выделения целой части числа. Далее каждому номеру {0,1,....А,} ставится в соответствие уникальная бинарная комбинация длины д,. Величина q, определяется из условия: к, = 2Ч‘ -1. Преобразование в битовую строку осуществляется с помощью обычного двоичного кодирования (позиционного кода) или ко<)и Грен, который обладает свойством непрерывности бинарной комбинации: изменению кодируемого числа р, на единицу соответствует изменение бинарной комбинации только в одном разряде Правило перевода из позиционного кода в код Грея, каждый разряд в коде Грея равен сумме по модулю два этого и следующего старшего разряда в позиционном коде (табл. 1.1). Правило перевода из кода Грея в позиционный код: каждый разряд в позиционном коде равен сумме по модулю два этого и всех старших разрядов в коде Грея Заметим, что самый старший разряд в позиционном коде и в коде Грея совпадают. Таблица 1.1 Соответствие десятичного кода и кода Грея (4-битного) Двоичное кодирование (В) Кодирование по коду Г рея (С) Двоичное кодирование (В) Кодирова¬ ние по коду Г рея (О) Десятичный код Двоичное значение Двоичное значение Десятичный код Двоичное значение Двоичное значение 0 0000 0000 8 1000 1100 1 0001 0001 9 1001 1101 2 0010 ООН 10 1010 1111 3 ООП 0010 11 1011 1110 4 0100 0110 12 1100 1010 5 0101 0111 13 1101 101 1 6 оно 0101 14 1110 1001 7 0111 0100 15 1111 1000 II
Декодирование. Пусть имеется ген sit закодированный с использованием кода Грея. Требуется найти соответствующее ему значение координаты х, е|д(,^). В процессе декодирования ген сначала заменяется соответствующей ему обычной битовой строкой, которая затем переводится в десятичное представление у,-. Число у,- является либо номером одного из подынтервалов, на который был разбит промежуток либо номером, соответствующим одному из его концов, то есть у е {0,1,.. г * ч! *,-1 Дг, А . t, Х{ = Ь Рис 1.3. Декодирование Значение координаты х, при у,- = 0 определяется левым концом промежутка (л,Д}: х,=а,, при у,-= Л,- - правым концом: Xj = Ь,, а при у,- = 1 к, -1 - серединой соответствующего подынтервала с номером у,- (рис. 1.3), т.е. а„ = 0, (a, + (у, -!)/>,) +(а. +/Д) ^ =[2 ^ Л. У, =*,• (15) Пример 1.1. Рассмотрим процессы кодирования и декодирования на примере задачи поиска максимума функции одной переменной. Предположим, что заданы множество допустимых решений задачи D = {-I5x, 5 6} и длина битовой строки <7| = 4, используемой для кодирования координаты х(. Кодирование. «со t 0001 ООП 0010 0000 t I \ 0001 001С ООП 1 I 1 0 I 2 3 ..—А... А— Номера интервалов 8 коде Грея (О) I Номера интервалов в двоичном годе (В) 100С 1 Номера интервалов 1010 1011 1001 I I I"» 1100 1101 1110 1 1 1 12 13 14 15 V-I.0 -°-5 0 0.5 4.5 5.0 5.5 6.0.А, Рис 1.4. Кодирование в однопараметрическом случае 12
Разбиваем промежуток 1-1;6] на А, — 1 *(2*-1)-1»(2< -1) — 1 = 14 (А -а.) 6-(-1) . , . ... подынтервалов с шагом А, = ——— = —i—- = 0.5 (рис. 1.4). А, -I 14 В процессе кодирования мы совершаем два последовательных перехода: х\ —>Pi -»j|. Сначала (по формуле (1.4)) от координаты х( к целому числу /У, €{0.1 15}, потом, применяя правило перевода в код Грея или табл. 1.1, от целого числа р| к его двоичному представлению. Зададим конкретные значения координаты х, =-0,5; 4,51; 6,0 и выясним, какие бинарные комбинации им соответствуют: + 1 = 1 + 1 = 2-> 0010 0011 G\ + 1 = 11 + 1 = 12-+1100 1010 С?; х, =6,0 = ^ -»Pj= 15 -► 1111 1000 Декодирование. Процесс декодирования выглядит следующим образом: -> у| -»х)( где Л| - код Грея, у| - номер интервала, Х| - значение координаты. Пусть = 0011 <7; 1101 G;1000 G,найдем соответствующие значения координаты Х|: ■V, =0011(7 = 0010Д =2-> х, аНМ2-1)0.5),н.2-0.5) ,10|±0..025; л, =1101 G-».т,= 1001 В-+r, =9-> A, = (~l + (9~1)0,S2)'f (~1~1'9'°'5) = ~^ = 3.25; 5, =1000С?->5, =1111 В->у, = 15-> Х| =6.0. Пример 1.2. Рассмотрим процессы кодирования и декодирования на примере задачи поиска максимума функции двух переменных. Предположим, что множество допустимых решений задано следующим образом: £) = {—1 йх,5 6, Ойх,510}. Каждая координата кодируется своей битовой строкой (5| и .т2 соответственно), причем их длины совпадают: w/2=4. Поскольку размерность задачи увеличилась (и = 2), результатом кодирования станет битовая строка s - конкатенация (то есть результат склеивания) двух битовых строк $| и s2, общей длины q = = 8. Кодирование. Зададим на множестве D двумерную решетку со следующими параметрами: число интервалов разбиения по каждой координате 13
*,= -1 =(2V-I)-1 = 14, шаги разбиения . _ (fr ~tfi) = 6^ = о $ и 1 *,-1 14 . (Л> -«Г.) 10 / 1 с\ Л, = —j—“ = — соответственно (рис. 1.5). *1"! ь2«ю 20 14 10 14 4.5 5.0 5.5 6.0- h о,ш .].0 -0.5 0 0.5 Рис. 1.5. Кодирование в двухпараметрическом случае Как и в предыдущем примере, сначала кодируем каждую координату в отдельности: Х|->Р(->$|, х2 ->02 -» л2> потом объединяем полученные битовые строки в одну. На первом этапе описанных преобразований каждому вектору х = (.Т|,х2)г ставится в соответствие пара (р^Рг), соответствующая коду сектора внутри множества D или точке на его границе (рис. 1.6). (0.15) * (03) да (0.2) | (0.1) . (14.1) (0.0) (1.0) (3.0) (3.0) <14,0)(15.О) *, Рис. 1.6 Нумерация секторов множестоа допустимых решений О Зададим конкретные значения координат вектора х: •V = (х,.х2)г = (- 0,5; \,5)т; (4,51;0)г; (6,0; 10) Так как бинарные комбинации для данных значений xi получены в предыдущем примере, составим аналогичные комбинации для значений х2: 1.5-0 т. = 1.5-»/?,= + 1 = 2 + 1 = 3-»0011 10 G, (10/14) х2 = 0 -»р2= 0 ->0000 £->0000 х2 = 10 ->|12= 15 —> 1111 £-» 1000 G . 14
В результате имеем: х = (х,,х,)г =(-0,5;1.5)г-> (Д ./?.) = (2,3)-> 0010 ООП Я->0011 0010 х = (х,,х,)' =(4,51;0)' -+ (Д .Д.) = (12.0)-* 1100 0000 1010 0000 С, х»(х,.х,)' = (6.0; 10)г —♦ (Д ,/?,) = (15.15) —> 1111 I11I5-+I000 1000С. Декодирование. Процесс декодирования выглядит следующим образом: $ = ($1,$2,— ,s„)7, Sj -> у, -*xh / = 1,2, где s - хромосома, .*,• - ген с номером / (бинарная комбинация в коде Грея), - номер подынтервала, х,- - значение координаты. Пусть .т = 0111 0011 G. Пользуясь табл. 1.1 и формулой (1.5), найдем соответствующие значения координат вектора х = (х,,л,)г: 5 = 0111 0011 G= 0101 0010 В -* (у,,у2) = (5,2) , (-1 + (5 -1) • 0,5)+(-1 + 5 • 0,5) 1 + 1,5 х, = - = — = 1,25, х, s Ё±.(2.~ Ц•10/1 4>-tlgl2.’-1,.?71= 1,07142857, 2 л = (х„х2)г =(1,25; 1,07142857)г. 1.3. АЛГОРИТМ РЕШЕНИЯ ЗАДАЧИ Генетический алгоритм имитирует эволюцию начальной популяции /„ ={.v‘,A- = l,...,/«|.v* =(.»* .v*)r е 5}, где т- размер популяции, как циклический итерационный процесс, во время которого к популяции применяются основные биологические операторы: селекция (отбор), скрещивание (кроссннговср, кроссовер), .нутация. В результате происходит ее смена на новую, к которой, если решение не найдено, опять применяются биологические операторы, и так далее, до выполнения условия окончания (рис. 1.7) Если хотя бы одно из условий окончания выполнено, то в качестве приближенного решения задачи (1.2) из последней популяции выбирается особь с наибольшим значением функции приспособленности, а затем с помощью операции декодирования находится приближенное решение исходной задачи (1.1). 15
Рис. 1.7. Обшая схема работы генетического алгоритма Шаг I. Создание начальной популяции. 1. Задается номер популяции / = 0, максимальное количество популяций 'max* номер итерации Л/= 1, параметр кодирования qh = 1,...,л (те. длина бинарной комбинации). 2. Задается размер популяции т Случайным образом формируется начальная популяция /0. Для этого с помощью равномерного распределения на единичном интервале т раз генерируем последовательность из случайных точек {/?**} = 1.2 т на |0,1|. Используя линейное преобразование, отображаем каждую точку на соответствующий ей промежуток /? =<*,■-а,)/?-*+<%,/» 1,2,..., п\ fc = l,2,...,m. Составляя векторы из точек последовательности {/?*) при фиксированных к, получаем т начальных векторов х* = (x,*,x2k x„k)r,x,k = Pkt, I = 1,2,...,л. Рис. 1.8. Формирование точек последовательности {Р,1} Далее, разбиваем промежутки \aiybj\ на подынтервалы в соответствии с параметром кодирования q,. Определяем, каким из них принадлежат значения х) , то есть находим (l/. Числа 0,* кодируем с помощью кода Грея, 16
преобразуя их в битовые строки s,k, из которых составляем т хромосом вида sk = (sk,s2k,s* <->р*. i*l,2 я. В результате описанного процесса сформирована начальная популяция I0={sk = (sk,S2,...,sJt)r,k = 1,2,..., m) с S. 3. Вычисляется значение функции приспособленности для каждой особи т sk е /0: \хк = ц(5*), к = и популяции /0 в целом: ц = . Шаг 2. Селекция. Селекция - это операция, которая осуществляет отбор особей (хромосом) sk в соответствии со значениями функции приспособленности ц(з*) для последующего их скрещивания. Вероятность участия в скрещивании обычно пропорциональна относительной приспособленности - особи .т*. н Виды селекции. 1. « Паимиксия» ( случайный равновероятный отбор). Особи - «родители» случайным образом выбираются из всей популяции, причем любая может стать членом нескольких пар. Несмотря на простоту, такой подход универсален для решения различных классов задач. Вероятность участия особи в селекции составляет />*= — . Однако эффективность ГА, реализующего такой подход, т снижается с ростом численности популяции. 2. Селективный{рангово-пропорциональный) отбор. Его суть состоит в том, что «родителями» могут стать только те особи, значение функций приспособленности которых не меньше среднего значения функции приспособленности по популяции, то есть при выполнении условия ц(*А)> —. т при равной вероятности таких кандидатов составить брачную пару. Такой подход обеспечивает более быструю сходимость алгоритма. Однако из-за быстрой сходимости селективный выбор родительской пары может быть неэффекгивным, если задача имеет несколько глобальных экстремумов, поскольку ГА быстро сойдется к одному из решений. Кроме того, для некоторого класса задач со сложным ландшафтом функции приспособленности быстрая сходимость может превратиться в преждевременную сходимость к локальному максимуму. 3. Рулетки. Отбирает особей с помощью о «запусков» рулетки (если выбирается пара родителей, то о = 2). Колесо рулетки содержит по одному сектору для каждою члена популяции. Размер Л:-го сектора пропорционален соответствующей величине д* , вычисляемой по формуле pk = . ц 17
4. Турнирный отбор. Реализует о турниров, чтобы выбрать о особей (если выбирается пара родителей, то а = 2). В каждом турнире случайным образом выбирается v элементов из популяции, а затем лучшая особь среди них. Наиболее распространен турнирный отбор с v = 2. 5. Инбридинг. Первый член родительской пары выбирается случайно, а вторым с большей вероятностью будет максимально «близко родственная» к нему особь. Под родством здесь понимается расстояние Хэмминга между членами популяции. Расстояние Хэмминга dh - это число несовпадающих по * . своим значениям битов в битовых строках: di(st,sF) = £|*,' ~s' I• Особи i-i будут считаться близкими, если dh(sk,sp) 5 du , где е - параметр метода, задаваемый пользователем. Заметим, что при неудачном выборе параметра d0 возможно преждевременное завершение работы алгоритма. 6. Аутбридинг. В противоположность инбридингу формирует брачные пары из максимально «далеких» особей. В ГА может применяться так называемая стратегия элитизма. Ее суть в том, что небольшое количество особей хк (как правило, одна или две) переходит в следующее поколение без изменений, не участвуя в селекции и последующем скрещивании. Это обычно позволяет ускорить сходимость ГА. Недостаток применения стратегии элитизма заключается том, что повышается вероятность сходимости к локальному максимуму. Результатом шага 2 являются две особи л1 и .г2, выбранные в качестве родительской пары с помошью одного из операторов селекции. Шаг 3. Скрещивание. Скрещивание - это операция, при которой из нескольких, обычно двух хромосом (особей), называемых родителями, порождается одна или несколько новых, называемых потомками, путем обмена частями родительских хромосом. В простейшем случае скрещивание в ГА реализуется так же, как и в биологии: хромосомы разрезаются в случайной точке (точках) и обмениваются частями между собой Виды скрещивания. 1. Одноточечное скрещивание. Сначала случайным образом формируется одна точка разрыва. Точка разрыва - участок между соседними битами в строке (может разрывать ген). Обе родительские структуры разрываются на два сегмента по этой точке Затем соответствующие сегменты различных родителей «склеиваются» и получаются два потомка. Пример 1.3. Пусть единственная точка разрыва находится между 4-м и 5-м битами хромосом .v' и х2 (рис. 1.9). 18
Точка разрыва S Л 1110 0011 0111 0000 хр омо с омы-р одитетi JcA1: 1110 ОШ Sch2 : 0011 01П. ЗфОМОСОМЫ-ПОТОМКИ Рис. 1.9. Пример применения одноточечного скрещивания 2. Многоточечное скрещивание. Выбираются две (или более) точки разрыва, и родительские хромосомы обмениваются сегментом, находящимся между этими точками. Пример 1.4. Пусть имеются две точки разрыва хромосом s' и s2 (рис. 1.10). Хромосомы-потомки получены в результате обмена сегментами, находящимися между этими точками. Первая точка Вторая точка разрыва разрыва I I ■У1: 11! 10011 !l ScM: 11 11000 1 I • v. Л 1 * * S : 00:11000:0 Г : 00 10011 0 хромосомы-родители хромосомы-потомки Рис 1.10. Пример применения двухточечного скрещивания 3. Рамномерное скрещивание. Первый потомок наследует каждый бит первого родителя с заданной вероятностью pj, а каждый бит второго родителя с вероятностью I ~Pj-^Ри этом из лвух битов, находящихся в одинаковых позициях в родительских хромосомах, бит, не унаследованный первым потомком, наследуется вторым. Результатом шага 3 являются два потомка scM и sch2, полученные путем применения одного из операторов скрещивания к хромосомам - родителям s] и г2. Шаг V. Мутация. Мутация - это преобразование хромосомы, случайно изменяющее обычно один (реже несколько) из ее генов. Оператор мутации предназначен для того, чтобы поддерживать разнообразие особей в популяции. При использовании данного оператора каждый бит в хромосоме с опрелслснной вероятностью р:€(0,1),у = 1,...,/, инвертируется, то есть нуль меняется на единицу (единица меняется на нуль). 19
Пример 1.5. К хромосоме - потомку 5сЛ2 применен оператор мутации, в результате чего инвертировался второй бит (рис. 1.11). S :о 0 100110 => SM2: 0 1_ 100110 хромосомп-потомок потомок-м\тпнт Рис 1 11. Пример применения оператора мутации Вместо оператора мутации может быть использован оператор инверсии, действие которого заключается в том, что хромосома делится на две части в случайной точке разрыва, а полученные части меняются затем местами. Пример 1.6. К хромосоме - потомку scA1 применен оператор инверсии. Точка разрыва находится после 3-го бита хромосомы (рис. 1.12). Точка разрыва I I ScM: 111 ! 10001 -> 10001 111 хромосомп-потомок потом ок-мугант Рис 1.12. Пример применения оператора инверсии Результатом тага 4 являются два потомка - мутанта и *А/2, полученные путем применения оператора мутации или инверсии к хромосомам - потомкам scM и xch2. Шаг 5. Формирование новой популяции. Пусть в результате последовательного применения к хромосомам- родителям з1 и s2 операторов двухточечного скрещивания (хромосомы обмениваются сегментом, находящимся между первой и второй точками разрыва) и мутации (инверсии в случае первого потомка) на предыдущем шаге были получены потомки - мутанты sAn и sAf2. С вероятностью 0,5 выбирается один из потомков sAn и s ’1*2. Пусть это будет 5Л/|. Выбранный потомок добавляется в популяцию вместо хромосомы, которой соответствует наименьшее среди элементов популяции значение функции приспособленности, вычисляется значение функции приспособленности ц. =p(sA/l). Проверяются условия а) если М< /и, то положить Л/ = Л/ + I и перейти к шагу 2; б) если М = /и,то положись / = t + 1 и перейти к шагу 6. Шаг 6. Проверка условий окончания работы ГА. Применяются следующие условия окончания работы ГА: 1) сформировано заданное число популяций: t ; 20
2) текущая популяция в процессе эволюции достигла заданного качества (например, приспособленность каждой особи превысила некоторый порог); 3) достигнут некоторый желаемый уровень сходимости, то есть особи стали настолько подобны, что их дальнейшее улучшение происходит крайне медленно. Проверка условий окончания: а) если ни одно из условий не выполнено, то полагаем = 1 и переходим к шагу 2; б) если хотя бы одно условие окончания работы выполнено, то в качестве решения (приближенного) задачи (1.2) выбирается особь с лучшим значением функции приспособленности из текущей популяции: s' =s* = argmaxpCs*), а по ки\%.../п нему с помощью операции декодирования (1.3) определяется приближенное решение поставленной задачи (1.1): х* 5 х* = е~1 (s *). Популяция / IlllllJIItll 1111Ш1Ш1 ишппт X Популяция № х I 1 —^ ••• ж гпппппг i)jfдпдд П1У1Г1 д IГГ1 ■■ДТТДПДЛ Элктнэм □ Рис. 1.13. Схема формирования новой популяции 1.4. ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ. АНАЛИЗ ЭФФЕКТИВНОСТИ МЕТОДА На основе изложенного алгоритма сформирована программа поиска глобального условного максимума методом ГЛ с бинарным кодированием. Среда разработки Microsoft Visual Studio 2005, язык программирования С//. Программа работает в режиме диалога с пользователем Пользовательский интерфейс включает основное окно с формами для ввода данных и отображения получаемых результатов, кнопочную панель для 2)
управления ходом вычислительного процесса (возможно получить решение сразу или по шагам). Работа программы начинается с ввода начальных данных: типа оптимизируемой функции, диапазонов изменения переменных, а также задания параметров алгоритма: характеристик популяции (размера, максимального количества хромосом (особей), длины битовых строк генов), типа операторов селекции, скрещивания, мутации, количества элитных особей (если применяется стратегия элитизма). Оценку работоспособности ГА обычно проводят на ряде стандартных тестовых функций следующих типов (все функции непрерывны): а) унимодальные, выпуклые, многомерные; б) мультимодальные, малой размерности, с небольшим числом локаль¬ ных максимумов (минимумов); в) мультимодальные, многомерные, с большим числом локальных макси¬ мумов (минимумов). Приведем примеры часто используемых для тестирования ГА типовых задач (1.1). 1. Sphere function (DeJongl): f(x) = -£x}, D = (x, e |-100;100|, / = 1 n), i* I /*=0, x*0, / = Рис. 1.14 Квадратичная функция двух переменных (эллиптический и гиперболический параболоиды) 2. Schwefel’s ridge:
3. SchwefeFs problem 2.22: /(x) = -XI x, |- П1 I. D (x, e [-10;10|, = 1 /»}, Mim | /*=0, x* =0,/ = Рис. 1.15. Schwcfel’s problem 2.22 (двух переменных) 4. Schwefel’s problem 1.2: /(x) = -max{| X; |, 1 й IS л), {x, g |-100;100|, / = 1, /*=0, X/* = 0, / = Рис.1.16. Schwefel’s problem 1.2 (двух переменных) 5. Rosenbrock’s saddle (DeJong2): /1-1 /(x) = -X (100(x)+1 - x/)2 + (*/ -1) ). = (x, e |-30;30|, / = 1 n), M /*=0, x* = 0,/ = l n. 23
У - - а у • Рис. 1.17. Rosenbrock's saddle (двух переменных) 6. Step function (DeJong3): f{x) = -£| (хЛ1. = {JC,. 61-100;100|, / = /-I /*=0, x* € |0*,1), я Рис. 118 Step function (двух переменных) 7. Gaussian quartic (DeJong4): /<*> = ~±(*t + 0 e |-l,28;l,28), / = 1,...,/»}, i-1 где grtus5(0,i) - функция, возвращающая гауссову случайную величину с математическим ожиданием, равным нулю, и дисперсией, равной единице. Рис. 1.19. Gaussian quartic (двух переменных) 24
8. Schwefel's (Sine Root) function: A x) = sin(J\Xj |)), D = { x,e|-500;500|, = 1 и), »=l /* s 418,9829/1, x,* = 420,9687, / = joo Рис. 1.20. Schwefel's (Sine Root) function (двух переменных) 9. Rastrigin's function: f(x) = -Юл + £(-х/ + I0cos(2nx,)), £> = {x, € (—5,12^5,12|, / = , M /*=0, X/ / = L,—, //. •70 •40 40 00 s Рис. 1.21. Rastrigin’s function (двух переменных) 10. Griewangk’s function: f(x) = -1 - S(^r) + flcos(%, /> = {*,€ |-600;600|, / = I л). £[ 4000 J.J yft /*=0, x‘=0,/ = l n. •sec )0C 25
Рис.1.22. Griewangk's function (двух переменных) 11. Ackley's function: Рис. 1.23. Ackley's function (двух переменных) 12. Salomon’s function. f(x) = -i-o,i/^2 xi + cos(2n Jx ) * к i-i i/-i D = {x, el-100;100J, / = 1 и}, /*=0, = 0, л. 13. Easom’s function: /(*) = cosx, cos 0 = {х, e |-I00;100|, / = 1,2},
14. Six-Hump Camel-Back function: /(x) = (- 4 + 2,1 x,2 - xj* )x,2 - x, x2 + (4 - 4x2 )x2 • D = {- 3 £ XfS3, -2Sx2 *2), /* =1,0316, x*1 = (-0,0898;0,7126)r;x*2 = (0,0898;-0,7126)r. 15. Branins’s rcos function: /(x,,x2) = -(x2 --^Lx,2 +-x, -6)2 - 10(1 -^-)cosx, -e, 4л1 n 8n 0 = {x, €|-5; 10|, x2 €|0;15|), /* s-0,398, x’J =(-я;12,275)г, x*-2 = (л;2,275)г, x’3 = (9,425;2,475)r. Основными настройками ГА, определяющими его эффективность при решении данной задачи, являются так называемые «генетические» операторы и объем используемой при поиске информации (заданное число особей в популяции и область поиска). Кроме того, важен размер выделяемого вычислительного ресурса, который чаще всего определяется разрешенным количеством вычислений целевой функции или функции приспособленности. При фиксированном размере ресурса эффективность ГЛ определяется выбором типов операторов. Параметры ГА могут существенно повлиять на его эффективность. Точность получаемого решения по каждой из координат для ГА с бинарным кодированием зависит от соотношения длины интервала поиска |л,,Л;1 и длины битовой строки соответствующего гена q,, то есть определяется количеством разрядов, используемых для кодирования хромосомы. Чтобы добиться увеличения точности получаемого решения, приходится увеличивать длину битовой строки, но при этом многократно расширяется пространство поиска. С увеличением длины битовой строки необходимо увеличивать количество особей в популяции. Как следствие, возникает потребность в значительных вычислительных ресурсах, что существенно сказывается на общем времени работы ГА. Среди возможных путей устранения перечисленных недостатков можно выделить следующие: последовательный запуск ГА с постепенным сужением пространства поиска, использование ГА с вещественным кодированием (см. гл. 2). Анализ полученных результатов, приведенных в примерах 1.7-1.9, свидетельствует о том, что сформированный алгоритм и соответствующее программное обеспечение позволяют найти приемлемое решение задач со сложной овражной структурой линий уровня (максимизация функции Розенброка), а решение достаточно простых задач поиска экстремума функции одной переменной и квадратичной функции не вызывает затруднений. 27
Пример 1.7. Рассмотрим решение задачи поиска условного глобального максимума функции Розенброка при помощи генетического алгоритма с бинар¬ ным кодированием. Целевая функция имеет вид: /(*) = -с,(х2 -х,2)2 -(х, -I)2. Постановка задачи: /(х) -> шах, хеО х = (хих2)т,D = {а, £ zbf, i = 1,2}. Задача решена при следующих параметрах (рис. 1.24): - область допустимых решений: -2s Х[ s2, - 2 s х2 S 2; - коэффициент целевой функции ci = 100; - метод селекции - панмиксия; - количество элитных особей - I; - метод скрещивания - одноточечное скрещивание; - метод мутации - обыкновенная с вероятностью инверсии 0,2; - размер популяции - 20 особей; - количество популяций - 50; - длина битовой строки первого гена - 10; - длина битовой строки второго гена - 10. «*)-ту X - <»»• xty.O - [ot 2,*, 21*.I «• 12) »C*)s *i*y (*1 -• I)1 O'* «} 7>J Cv cw< О & a c* л - • Puc 1.24. Задание параметров примера 1.7 и алгоритма Создадим начальную популяцию, нажав на кнопку «Создать начальную популяцию». Результат представлен на рис. 1.25. Заметим, что автоматически открылась вкладка «Ход решения». 28
Рис I 25 Анализ начальной популяции Чтобы получить дополнительную информацию о популяции, необходимо нажать на кнопку «Информация о популяции». ВЗ Информация о популяции № х1 х2 имя ПрИСПОСО **«тер.. **irec Л»Омьмьм1 rpetil fi60*»F*M2 rpei2 1 0.25390. 01792 €49347012395682 576 466 1001030000 1101100000 011101X10 0100111911 2 •0.4014.. 093» •123.009102040453 409 272 о;'001looi 0Ю1010Ю1 CICM1XX 011X110» 3 1^ааза •1.Э01&. •2728J83122314795 1017 179 1111111001 1000000101 »10110C11 0011101010 4 С.ТОЭЭ!.. 0.ХЭ50. •1.G7X5C41GGX0' G91 606 10101100*1 1111101010 1С0Ю11110 lion 10X1 с 0.03535, 1 07СИ •115779231090322 521 230 1000031001 1100301101 0011101110 X1X11XI 6 0841С 0 5352 •157.806859869078 297 375 0*00101001 0:10111101 0101110111 СП XIIX 7 0.85614 01770 . •55.7230721563335 740 466 1011100100 1110310110 01110Ю010 0103111011 8 1 62699 1.46992 •138.97275433953 927 88/ 1110011111 loom»» 110111U111 tOllWllOU 9 1.29843 ■1.0408 •740.774254187104 843 246 1101031011 1011101110 Ш11110110 XI tool 101 10 1.4434 O.L92TO 402.306723444413 143 535 ОО*. 0001 I'll 0011031 cco 100X10111 1100011100 11 0.11714 1.1837 •! 44.167133668Я17 541 209 1П000111С1 110031»! 1 Ю1101X01 Х10П1И01 12 •1.8509 0.78040 •718.Л 77J7611131 39 706 00001X111 00X1101» 101100X10 11101C0011 13 0.05134 1.16079 243.6842430S9639 525 910 1000ССП01 110030*1011 1110X1110 IX* XIXI 14 •1.2547 0.4656 421.2494/729353 191 333 001011П11 0011100000 011X01X1 СЮ’X1101 15 1.7827 068483 604.215234840045 81 681 oonrn11101 onooiooor Ю10101XI 1111111101 1* 1.0784 0 896' •349 961635468831 236 334 0011101100 0010Э11С10 0101X1110 011П01М1 17 0.7747 1 6495 465 3230533Р2776 314 116 U'OnillOlO an oi mm 0X1110100 COOT №1110 18 •1.1385 1.25733 4.73418953430629 22С 833 0О110111С0 0010110010 110100X01 юг *.сз:э1 19 1.35753 1.С0444 75.03244374187 961 760 1101011101 1011110011 110000X03 1010001X0 20 1.95327. 032П.. •1749.48018804934 1013 428 1111110101 10X031111 0110101103 0101111010 Зегеныи аве-or-* отмене особ* с м*м/*^ием пр^тособле^юсть» Красным ивгтом отмечен* ссобь с M**«<*jaiuew пр«<гч>:о6*енностью Рис. 1 26. Подробная информация о начальной популяции Рассмотрим полученную популяцию (рис. 1.25 и 1.26). Особи под номером 3 соответствует наименьшее значение функции приспособленности, то есть она обладает наихудшей приспособленностью. Данная особь в списке выделена красным цветом и будет заменена образованным потомком. Особи под номером 4 соответствует наибольшее значение функции приспособленности, то есть она обладает наилучшей приспособленностью Данная особь выделена зеленым цветом и является элитной особыо, то есть 29
автоматически переходит в следующую популяцию. Значения целевой функции и функции приспособленности совпадают. Во вкладке «Графика» (рис. 1.27) можно увидеть графическое изображение популяции (слева) и график изменения наибольшего значения целевой функции при переходе от одной популяции к другой (справа). На графике слева отмечены линии уровня целевой функции и точки, соответствующие особям в популяции. Красный квадратик соответствует особи с наименьшей функцией приспособленности. Зеленый квадратик соответствует элитной особи. Также можно добавить линию уровня, соответствующую заданному значению функции. Для этого необходимо ввести значение целевой функции в поле снизу и нажать на кнопку «Добавить линию уровня». На графике справа изображено наибольшее значение целевой функции в начальной популяции. Также это значение занесено в таблицу правее графика. ПНЕМ 1 Пкют»4мг1-««*«й<и(йо« Ушт — 1 •— 1 .. ш ...... 1 1 г /ж ! • l»W« Г-1 1 *»• 1 4т ! ()ЦП I м сэ \vW\- . . • у\ \ ' " - • оту ->//г .- 4 i IWfMttw 1 . [ Cw»i к . з ч л л а х л л "• |4<м> V»» ^ 1 | в® Рис. 1.27. Графическая иллюстрация начальной популяции Рассмотрим работу алгоритма (рис. 1.28): а) выберем двух особей для скрещивания. Для этого необходимо нажать кнопку «Селекция». Пусть были выбраны особи под номерами 1 и 7 (метод селекции - панмиксия); б) произведем скрещивание выбранных особей. Для этого необходимо нажать кнопку «Скрещивание». Пусть особи обменялись участками хромосом после 16-го разряда, в результате образовалось два потомка; в) произведем мутацию потомков. Для этого необходимо нажать кнопку «Мутация». Пусть мутация произошла в разрядах 2, 4, 12 первого потомка и в разрядах I. 15, 16 второго. Таким образом, получилось два мутированных потомка; г) выберем одного из потомков для добавления его в популяцию. Для этого необходимо нажать кнопку «Выбор потомка». Пусть был выбран второй потомок: 30
д) добавим выбранного потомка в популяцию. Для этого необходимо нажать кнопку' «Добавить потомка в популяцию». Поставим его на место особи номер 3, имеющей наихудшую приспособленность. Добавленный потомок выделен желтым цветом. Особыо с наихудшей приспособленностью теперь становится особь под номером 20 . м «*»» •юно: *Л(Г О’ГОП г l.'ltv) cum и 0*10)1 i ; vrp Л (ТИП mttv « 1&НИ MKI iiwii. ? 11»»Л '130(01 0СЮ31 • IV *Д пня и uingu / га»; <Г((Г* } • »v; СОЮ) юизо * •НИИ ого» и «.*« 0(>1(О1 1Ч0Я г ШН1 •мггп 1П«|1 1* >.*»(» 0(00*13 MIC 0 1) ;«>»• •’«о 10(1» к ом 0(ШО) очш Г» <о*:п СГООЮ) НИИ W .0*1 0(11 эимо I» «О С) ошяу: CU XI •• * 1Я1» ОСИН) ючю 19 »»* СПИ) к ю» •• >»г** ■ • т Сопм*<т«^мм .I -С rojwvill UYV ».’ • Q -iKDIUIAOi inenoi овсом-гм мс-чсожсчонтп мнигмпомог юн ncnoroxoioor им юиоюиосоопмоп ГСНГФИКЮСОСЧМ »К11<>Л1<ЛЛиииЛХ1 и ♦»« !**> 1 t <1' ••me носи 9 13:00 :o»oi Г*К#« J /гн .‘•«IIP 'irrm • iPTli mi?C. UOMI. 5 •11! 7? I'COOC :<r:e' к 1WJW .1*1/1 .11104 9 'A'/J ri(|/1 ЛИ1 0 1У4) OB i c* 141 0) 9 till Iffirc JOKO) 10 40..W ICMOC 110(0* |< 1*4 1'. I ftnn 4*r*l Hf 71 :ooo I me.) м Mil I'OOOC 10010) 14 Clit rente :*moi и 00471 'сиг: mm и :oi ат mm 1? •ЛХ :*rc :ooioj ю 4/VI ГС171 10MI) 1» ЮНН. IOKO) Д1 »;*i* N»W ' t M ias®a I I J-O. I MM Рис I 28 Результаты применения генетических операторов Во вкладке «Графика» (рис. 1.29) на графике слева появился желтый квадратик, соответствующий вновь добавленной в популяцию особи. При этом исчез прежний красный квадратик, который соответствовал замещенной особи (рис. 1.27). Красным цветом теперь отмечен квадратик, соответствующий особи с наименьшей функцией приспособленности в измененной популяции. Так как новая популяция еще не сформирована, то график справа остается без изменений. J touipixi мд«р«де> •« itojfl Рис. 1.29. Иллюстрация процесса замещения особей в популяции
Для того, чтобы сформировать новую популяцию, необходимо нажать на кнопку «Создать новую популяцию». Полученная популяция будет иметь вид, представленный на рис. 1.30. С? Информация о популяции № *1 0.25330 . «.4014... «2524 .. 0.70394 0.03545 0 4 324 0.89514 1.82699 •1.1996 10 056164... 11 0.11714 12 1.4305 13 0.81634 14 0.12720 15 0.604&. 16 0.3659 17 1J7964 18 1.1399 19 1.36/53 20 0.3855 м2 0.1792.. 0.939С.. 0 0528.. 0.36959 1.0704 1.25048 0.1770.. 1.46992 1.56360 0.36996 •1.1837 . 1.53620 1.15264 0.5616 '.55577. 0.5733... 1.42270 1.25733. 1.СС444 О 4520 Фу^имв пристало 0.49347012395602 123 009102940463 2.92739981375644 1.6736594-369981 115.779281890*22 115.143686114164 95.7230721553305 138.972754 33S53 6.3892903037523 «4В0ЭО1229643О64 144.167133686017 31.9386794 579S36 23.7224258594832 34.1498431446315 •144 Л 24054 93613 51.8S375C96OS203 23.2540Г65759798 •4.734189634X629 •75.082449741 Н/ 38.001233344599 и<тер ю<тер СПОм*чиЛ1 гре£1 яосмч«чД2 rpetf 576 466 1001000000 поиосооо 011101 сою 01001* КГ 1 409 272 0 10011001 0*01010101 сюоокооо 01Ю01100С 447 436 01101Ш11 оюпосооо 0111110010 оюоооюи 691 606 1010110011 1111101010 1001011110 110111С0С1 571 738 10ГК001001 1100001101 0011101110 001С011001 ЦТ 831 0110010001 0101011001 1100111111 10Ю100000 740 466 1011100100 1110010110 ОПЮ1СОЮ 010С1110П 927 897 1110011111 *1001010000 1101110111 1011001100 205 911 0311001101 0010101011 1110001111 юоюоюсо 655 606 1010001111 111100*000 1001011110 110111000! 541 209 1000011101 110001001» 001Ю1СОО*. ооюп юо: 146 Я04 001 со: оою 0011011011 1ПООС1СОО 1001001100 720 806 1011010000 1110111000 1100Ю01Ю 10ЮП0101 544 368 10ПГ100ПСС *1100110000 0101110000 0111001000 357 909 0101100101 0111010111 11100С1101 1001001011 418 365 0110100010 0101110011 0101101101 0111011011 064 875 1101100000 1011310000 1101101011 1011011110 220 833 0311011100 00*0110010 1ЮЮ0СО01 101110000» 86* 768 1101011101 10111Ю011 ноооосоои ююоооооо 413 396 0110011101 0101010011 0110001100 0101 союю 3«леи>м цветом стмпчв** особь с к/и пучив й приспособленностью Красным цветом отмечена особь с нлм**зше<> г>с»*спос об леностью Рис. 1.30. Новая популяция Во вкладке «Графика» (рис. 1.31) на фафике слева изображены точки, соответствующие новой популяции. На графике справа появилось наибольшее значение целевой функции в новой популяции. Также это значение добавилось в таблицу правее графика. Ярко-красным цветом на графике отмечены промежуточные значения целевой функции при переходе от одной популяции к другой, темно-красным цветом отмечено наибольшее значение целевой функции, соответствующее последней сформированной популяции. ю» : Q7- ^ г || I Рис. 1.31 Графическая иллюстрация новой популяции 32
Сформируем заданное количество популяций. Для этого надо нажать на кнопку «Получить ответ». Конечная популяция имеет вид, представленный на рис. 1 32 и 1.33. № к1 х2 Ф ужииа гфмелосо ►♦тгер »<гср ДОС*А#«,*1 грей! AOOU****? грей2 1 0.54207 0.30332.. 0.21068708056 76П 650 505 101С001010 1111001111 100*001101 110110Ю11 2 053424 0.29941 •0.2385080920ЭС008 640 596 1010001000 1111001100 10010G1100 11011СЮ*С 3 U3483 1.55577. 0.150991747751249 827 909 1100111011 1010100110 111X01101 1X1X1011 4 1.09393 . 1.1S56S.. 0.0089226338580352 791 817 ПОС01О111 1010011100 11X110001 10Ю101Х1 5 1.10358 1.27788 0.2 ЗСОЯ6213970171 795 е.36 1100011011 1010С1С110 1101X0110 1011103101 Б 0.54207 0.29549 O./0396S5S3845492 6SC 587 101СС01010 11110П1111 1СС-001011 1101101110 7 1.20962 1.70091 0.224106592154008 841 946 1101001001 1011101101 111011X10 1X1101011 а 1.94324.. 0,29158 . 1215.15415404141 1008 586 1111110000 1000001000 1X1X1010 1101101111 я *.09031 1 19360 0.02175Г37ПЯ3046ЛЕ 790 618 11X010110 1010011101 110011СС10 ююююп ю 0.62035 0.35420 O.237948SO7757130 67С 602 101СС1П1С *1111010001 1ХЮ110Ю 1101110111 11 1.03301 .. 1.19360 0.02*2503739304635 790 818 1100010110 1010011101 11X11X10 1010101011 12 1.00510 1.19360 О.О473465О707С8Г4 789 018 1100010101 1010011111 11X11X10 ЮЮЮЮП 13 1.14491 V35225 0.1944532712596 ПК 004 857 1100100100 1010110110 1101011001 10*1110101 14 1.09001... 1.19360. 0.02* 75032393C4636 79С 816 1100010110 1010011101 11X11 сою ююююп 15 0.57729 0.31115. 0.2276067Я528С632 659 531 1010010011 1111011010 ICC’Onim nonoiao 18 1.1Б046 1.30528 0.197196954871092 0П6 645 110С101000 ЮЮ11110П 1101X110’ 1011101011 17 1,09794 1.19360 0.0127779045362313 732 818 •1ПС011000 1010010100 110011 сою ююююп 16 1.18048 1.31311 0.1 •05ПЛ75‘Ж32396 ЙП6 847 1100101000 Ю10111100 1101X1111 1011101X0 19 0.57729 0.32681 0.16285467963696 659 595 1010010011 1111011010 1Х*С1Х11 1101111010 20 1.27738 *.63796 0.07969*6656451556 836 9ЭС 1101000*10 1011100101 1110* ссою ЮО1110011 Дел^и»**' цветом (гмячлмл осгйь с нлилу*ш»£ п£>спасобле»>иостыо брвсиь#* и*«том опгмвчлив особь с нлмиудтвй приспособпл**юстмО Я Информпция о популяции Рис 1.32. Последняя популяция Л 4 вЛ.'П» 1 ttvn* ч ии>>/ 1 «О.**»» 1* вг»;»м I* вСИ»>» И «МГУ» о ео;**> н Ul<4« 15 «U'M U «и.»/* •у «• вп;»т» it оо.*»* Л «WIP 7* ИСФ a icii*»» n «о;п* :« «с»:*»* я :LiE Рис. 1.33. График изменения наибольшего значения целевой функции в популяции Таким образом, получен ответ: - значение функции приспособленности / = -0,008923; - значение целевой функции / = -0,008923; - значения координат Х\ = 1,093933, - 1,195695. Точное решение задачи имеет вид /* = 0,Х| = 1,х2 = 1 33
Пример 1.8. Рассмотрим решение задачи поиска условного глобального максимума квадратичной функции при помощи генетического алгоритма с бинарным кодированием. Во вкладке «Постановка задачи и параметры алгоритма» в поле «Название функции» выберем многочлен второй степени. Целевая функция имеет вид: /(*) = -с,х,2 - С2Х,Х2~ съх2 " с4*1 “ с$х2 ~ С6 • Постановка задачи: /(х) = шах, X € Z) х = (х, | Х2) , /)= {^ х, bj) 1 = 1,2}. Задача решена при следующих параметрах (рис. 1.34): - множество допустимых решений: - 2 s х, s 2, - 2 s х2 £ 2; - коэффициенты целевой функции q = 1,с2 = 1,с3 = 1,с4 = 1,с5 = 1,с6 = 1; - метод селекции - панмиксия; - количество элитных особей - 1; - метод скрещивания - одноточечное скрещивание; - метод мутации - обыкновенная с вероятностью инверсии 0,2; - размер популяции - 20 особей; - количество популяций - 50; - длина битовой строки первого гена - 10; - длина битовой строки второго гена - 10. к-*-».- >**• -•* /Сл) - шах V.9 Ж - г (ft* V X, Ъ Ь,. 1 * 1.2) •’ * Г(* > - Гг»;»: " ф/ - <■«<1 <•>*» п О * О* Ог- >мнй« LI I Cl I '1 I C« I n I :c » .J Рис. 1 34. Задание параметров примера 1.8 и алгоритма Создадим начальную популяцию, нажав на кнопку «Создать начальную популяцию». Результат представлен на рис. 1.35. При этом автоматически открывается вкладка «Ход решения» 34
Л bw.tpMo* мд*р»м»«1 яевв .AJxM л-*-и *0 «/• — <»Г»м1 «мг w •r- »W» (Mil 1 .сил псыч» •KB1 1 ДЛА» СТА A ccci 9 ; ъ:ч. ними WTI 1 9 ; umii ffOVI % •пиы Olftl'f 1 т о • (tMUfW/DVM 1 * AMA МАЛА (Venn « 1 ччо СМ’г run 4 t IT* 1 и n в • тм Ml АП А1НГИ l«IH» ,M»WW >1. О *HXMAV.» дисл*»*ш» % i m ii'flnrt tllfrr «. НПО 11| л> «И 1H К if'1 1ГГ*» MAIM 7 IV»» чмг»: • i «.»• • in IAA * >.V»* ннт •I1»l 6 i ve III-*» IIITII я 1 ¥Д СПИ» 6 AM A lit.» СИИ* САП « С А» И» 0411» All HO IA ftAll «А M All AT II WtfT АТАГИ «Ml I» >Vi* АГАЛ. А.1ЛМ V ипн* мни* MA I 1/ 1 ЧПМ All II .Ilf ■ II CIA Л •imv-a UlIMM*»! иьнм> 1 i/v»• II KKt •Г1МА nrftif м ;.**%! CiMII All»»» 14 : »ta ir<A1l А110ПГ т* '.ОХ *7 0(10 0) ОМ re А* ■»»*« IA :aoc* i(tao 0"0* С 22%Я •r »c 18 ®'00l 14 ;жс 1(1 Oil 0CI00I 1/ 1 ТУП KCT'll 1? »l*b uen Mac«( « яиг in»:»: c*eo 14 ’■ Ж1 113001 1CI0U :v.% ffCVII 00 0JD IA 01УП ffCDK X 4IIMI 0*00* Л (All Kill »сiooi Рис 1.35. Анализ начальной популяции Рассмотрим полученную популяцию. Особи под номером 7 соответствует наименьшее значение функции приспособленности, то есть она обладает наихудшей приспособленностью. Данная особь в списке выделена красным цветом (цвет текста) и будет заменена образованным потомком. Особи под номером 10 соответствует наибольшее значение функции приспособленности, то есть она обладает наилучшей приспособленностью. Данная особь выделена зеленым цветом и является элитной особыо, то есть автоматически переходит в следующую популяцию Чтобы получить дополнительную информацию о популяции, надо нажать на кнопку «Информация о популяции» (рис. 1.36). а Информаць» о популяции . ■ . Ijjl g jfaW № Ml *2 Фу«ц»«в присгосо истер wcrep flOOM*A**Vl rpKil дбОН'п>»2 roe*? 1 1.7024 1.11438 2.6548909C909595 77 796 C00100110! 0001101011 11000111C0 1010010010 2 0 82C2S 1 8523 2 9525871355198 721 38 •011010001 1110111001 03001 xnc oacoi Ю101 3 •0 4638 •1 8221 •303464144499952 393 46 0110301001 0101001101 0300131110 00С01ПС01 4 1.53688 €.43623 •6.19587976814374 504 623 1110001000 10010С110П 1X1101111 1101011CCO 5 0.95171 0.9/30 1.9051815/483056 755 263 10Ш1С011 1110001010 01000X111 01100X100 6 1.4748 0.1817 1.81971619441952 135 465 001Э00С111 00110C0100 011Ю100С1 0100111CC1 7 1.91803 . 1.57567.. •13.677ЭООГ 762736 1002 914 11111010Ю 1000011111 1ГС0100Ю 10Q1011C11 а 050397 0 33497 ? 37396438158ЗПЯ 640 597 •monoconn 111100П00П 10П1П10101 11П1111111 9 1.25188 1.93200 •1.9023925838012 631 1C05 1100111111 ЮЮ1СОООО 11111011C1 1000011011 10 -0.2824 •0.5138 -0.69148(1196805651 444 380 0110111100 ттюсою 010Ш1100 0111C00010 11 1.5690 01Л6/ З.СС4/7ЛС7//997 111 303 0001101111 000101ШХ 0100101111 OllUIIICCO 12 0.6365 0.85267 1.Й656С6Я4497193 349 729 0101011101 0111110311 10U0110C1 11101101C1 13 1.21736 0.70402 6.05249505732145 623 712 •1001101 г 10101C1100 10-1031000 1110101100 14 1 17775 0 9851 2.335974854 73715 612 260 1103101100 1010111010 OlOOOXiCO 01100X110 15 •10224 •0 3775 200047582725115 250 262 0C11*11010 0010CC0111 O’OCOXHO 01100X101 IS 113296 10963 2 2800779315J65S 601 231 11001UUJ01 10Ш11ОЛЛ 1ХГ1100111 XI0010110 17 1.6/110 0.23419 6.13953713673576 528 571 1110101010 1001111111 1000111011 r.uoioono 18 011600 1 19299 3 08691657038427 54? 616 1000011110 1104X1000' ПООПООСЮ 1010101cco 19 0.3350 1.9779 Э.Э7559062146129 426 6 0110101010 0101111111 ООООСЭОГО oaxxxici 20 1.32487 1.09681 7.83312856372398 650 792 1101010010 1011111011 iiooonoco Ю100Ю1СО Зелем** ueero* отме-ена особь с иде/Аией го.*сгособле»*«сстыо Ксасиьм цветом отмечена особь с игик^си.ем прмспособое*#о:тыо Рис 1.36 Подробная информация о начальной популяции 35
Во вкладке «Графика» (рис. 1.37) можно увидеть графическое изображение популяции (слева) и график изменения наибольшего значения целевой функции при переходе от одной популяции к другой (справа). На графике слева отмечены линии уровня целевой функции и точки, соответствующие особям в популяции. Красный квадратик соответствует особи с наименьшей функцией приспособленности. Зеленый квадратик соответствует элитной особи. Также можно добавить линию уровня, соответствующую заданному значению функции. Для этого необходимо ввести значение целевой функции в поле снизу и нажать на кнопку «Добавить линию уровня». На графике справа изображено наибольшее значение целевой функции в начальной популяции. Также это значение занесено в таблицу правее графика. Д i.«— •#) Рис. 1.37 Графическая иллюстрация начальной популяции Рассмотрим работу алгоритма (рис. 1.38): 1) выберем двух особей для скрещивания Для этого необходимо нажать кнопку «Селекция (отбор родителей)». Пусть были выбраны особи под номерами 15 и 6; 2) произведем скрещивание выбранных особей. Для этого необходимо нажать кнопку «Скрещивание». Пусть особи обменялись участками хромосом после 15-го разряда, образовалось 2 потомка; 3) произведем мутацию потомков Для этого необходимо нажать кнопку «Мутация». Пусть мутация произошла в разряде 1, 5, 6, 11 первого потомка и в разрядах 1, 2, 5, И, 14, 16 второго Таким образом, получилось два мутированных потомка; 4) выберем одного из потомков для добавления его в популяцию. Для этого необходимо нажать кнопку «Выбор потомка». Пусть был выбран второй потомок: 36
5) добавим выбранного потомка в популяцию. Для этого необходимо нажать кнопку «Добавить потомка в популяцию». Потомок встанет на место особи, имеющей наихудшую приспособленность. Добавленный потомок выделен желтым цветом. Особью с наихудшей приспособленностью теперь становится особь под номером 9. Рис 1.38 Результаты применения генетических операторов Во вкладке «Графика» (рис. 1.39) на графике слева появился желтый квадратик, соответствующий вновь добавленной в популяцию особи. При этом исчез прежний красный квадратик, который соответствовал замещенной особи Красным цветом теперь отмечен квадратик, соответствующий особи с наименьшей функцией приспособленности в измененной популяции Так как новая популяция еще не сформирована, то график справа остается без изменений. Л UllfMI ид«у»м»м Рис. I 39 Иллюстрация процесса замещения особей в популяции 37
Для того чтобы создать новую популяцию, необходимо нажать на кнопку «Сформировать новую популяцию». Полученная популяция будет иметь вид, представленный на рис. 1.40. й Ииформаимл о популлцнм [Щ (L 1I&B1 м? х1 X? ПрмСПОСО *<тв(: *<тар грей! лво^**>м2 грем2 1 0.93348 •1.0156 1.87284141911221 750 252 1011101110 1110011001 Х111111Х ооюсохю 2 1,17221.. 0.51853 _ 4.91171667541101 811 644 1100101011 1010111110 101Q0001X 11110П0110 Э •1.7035. 0.48336 •2.0064120465225 77 635 0001001101 0С01101011 1X1111011 1101X3110 4 0.44422 0.39334 •2.36436747714861 625 612 1001110001 1101X1001 IX’IXIX 110101Э110 5 0.95171 0.9730.. 1.905! 0157483С50 755 283 1011110011 П10ХЮ10 С1000С0111 01100Х1Х S •1.4748 O.10I7 •1 8I971619441S52 135 485 00)000041 001100С100 011101С001 01X111X1 7 •1.2739 0.3111.. -1.53109660945633 *86 432 0310111010 0011100111 01131100W 0101101X0 8 0.50397 0.33497 2.37396438156X13 Ш 537 ioicooouou ппзасооо IX'010101 1101111111 9 0.37881 0.8434 1.02592284902631 5» 236 1001010011 1101111010 01X101 ох 0110111100 10 0.2824 0.5138 0.69148С09Б8С565* 444 390 0110111100 010110С010 0101111100 ошхэою 11 020156 •1.1135 •1.14413624ЗЭ5С78 563 227 100С110011 1100101010 00П0ХП 031X1X10 12 0.6385 0.85267 1 €0560694497193 349 729 oioioinoi 011111X11 1011011X1 1110110101 13 1.17812 0.7925 2.462835237X379 Г2 309 1100101100 ююшою 010311010! 0110101111 14 1.17775 O.S851 •2 38957409473719 012 250 110С10П00 1010И1010 оюэхох 0Н0СХ110 15 •1 0224 0.9775.. 2.00047582725115 250 282 0011111010 0010ХС111 0103ХС110 01100X101 16 1.13296 * 0983 2.2800779315С659 801 23! моокшл ЮЮ11СС01 Х111Х11! 001X13100 17 •*.5382 0.24461 1.75239065414118 119 574 0301110111 0X1X400 1000111110 11X100X1 18 1.0313 0.1311 1.05358818325604 248 478 oonmoco Х1030С100 0111011110 01X110X1 19 1.03131 •1.5039 229889591415474 775 128 110С000111 10W0X1X Х130000Х XI1X3X0 2С 0 7495 0.5816 0.987013683311588 32С 386 оююооосо 011110СХО 010111ХХ 011К01 хс Зелень** цвете* особь с нвмлучиеЭ пр*спсгобле>ь«С1ыо Колотым цветом отмечена особь с нлниуашеб прмслэсобпе*т«>стыо Рис I 40 Новая популяция Во вкладке «Графика» (рис. 1.41) на графике слева изображены точки, соответствующие новой популяции. На графике справа появилось наибольшее значение целевой функции в новой популяции Также это значение добавилось в таблицу правее графика. Ярко-красным цветом на графике отмечены промежуточные значения целевой функции при переходе от одной популяции к другой, темно-красным цветом отмечено наибольшее значение целевой функции, соответствующее последней сформированной популяции. Рис 141 Графическая иллюстрация новой популяции 3,4
Сформируем заданное нам количество популяций. Для этого необходимо нажать на кнопку «Получить ответ» Конечная популяция будет иметь вид, НОВ» Информация о популяции N: х1 •1.951Q. «о.збзе ■0.3346... 0.3199 ■0.3150 0.3346 03659 0.3542 0.3638 0 3542 О.Э5<2 . 12 0.3737 13 0.2954 14 0 3424 15 0.3189 16 0.3385 17 0.3150 18 0.3033 19 0.2934. 20 0.3150 х? 0,33463. О.ЗЗЭ7 . 0.2934 . 0 3591... 0.3424 02954 0.2354 02954.. 0.2954 . 0.2954 . 02954 О 2394 . 03581 0.3581 03737 0.3307. 0.3581... 0.3337. 0.3581.. 0.3542 Фумсцмя приспхо 2.64933881227476 0.887912575927938 0.6677747098С89S3 С 68713132991S846 0.66691695995684 0.688050444047013 0.667927895496724 0 66774407267129 0.668050444047013 O.667744072G7129 0.66774407267123 0.66808* С61184585 ■С .6 6 7774 7С58С8662 0667590886983429 0.667927895496724 0.6868Р70914/5048 0.667161967057418 0.667652161256574 С.68 759С 69596 34 29 0 667054737075915 k^rep 13 417 426 43С 431 426 418 421 417 421 421 416 424 430 425 431 434 435 431 VHI ер 597 427 435 420 424 4% 436 436 436 436 4 36 435 420 420 416 427 420 427 420 421 £(Юкчны31 000С 001101 0110100001 0110101010 0110101110 011С10П11 0110101010 0110100010 0110100*01 0110100001 0110100Ю1 011С100101 ОПСКХЮОО 0110110100 0110101(300 0110101110 0110101001 0110101111 0110110010 011С110011 0110101111 грс«1 0000001011 0101110001 0101111111 010Ш1001 0101111000 0101111111 01011 icon 0101110111 010111С001 0101110111 0101110111 СЮ111СООО 01011011Ю 0101111100 0101111001 0101111Ю1 oioimooo 010110*011 0101101СЮ oioimooo fl !>»**♦ «Э/ 1001010101 0113101011 01101 icon 01Ю100100 0110Ю1000 0110110100 011011П100 0113110100 0113110100 0110ПС100 01Ю11С100 01Ю11С0П 0110100100 0110100100 011010000П 0110101011 0110100100 0110101011 0110100100 0110100101 rp*ft2 1101111111 010III1I10 0101101010 0101110110 0101111100 01СЛЮП10 0101101110 010110111С 0101101110 0101101110 0101101110 0101101010 0101110110 Ш01119110 0101110000 0101111110 0101110110 0101111110 0101110110 0101110111 Зепемьм цветом отмечена особь с мамлучшей при:посо5оеиностыо Красны* цветом отмечена особь с клмхчашей присг>хобг»е»*«остыо Рис. 1.42. Последняя популяция ЛШШШ 11 ез ! 1 г | 1 га 1— j 1 ~ ^ N 11 - -- t 1 \ \ \ 1 1 .. I I 1. • • 1* и туи* COUK г J|V«< ) 1 Э(НЖ ъ ci** с ос»; .ч* ? «г.ч» Ш 1 о«»; л» и я» r.w V VI/. л» 1} ос»;л» О oi/j;i» II «с»; л» М»5?1» К «<е«; 1? #«»*«» и Я1Й1И «У Vl*<f я ОП’Ш * аими и Vl%*1|l п л owhj» - F~ I К'ГЙв Г Рис. 1.43. График изменения наибольшего значения целевой функции в популяции Таким образом, получен ответ: ■ значение функции приспособленности / = -0,666687; ■ значение целевой функции / = -0,666687; ■ значения координат Х\ = -0,338552, = -0,330724. Точное решение задачи имеет вид /* = -|,Х| = -^,х2 = -^. 39
Пример 1.9. Рассмотрим решение задачи поиска условного глобального максимума функции одной переменной при помощи генетического алгоритма с бинарным кодированием. Во вкладке «Постановка задачи и параметры алгоритма» в поле «Название функции» выберем соответствующую функцию. Целевая функция имеет вид: /(х) = - С, COS (X, - с2) - X,2 . Постановка задачи: fix) -> max, Х = Х,, £> = {Д) х, £/>(}. В той же вкладке введем следующие параметры задачи (рис. 1.44): - множество допустимых решений: - 2 s х( s 2; - коэффициенты целевой функции с( =5, с2 = 0.4; с3 = 1; - метод селекции - панмиксия; - количество элитных особей - 1; - метод скрещивания - одноточечное скрещивание; - метод мутации - обыкновенная с вероятностью инверсии 0,2; - размер популяции - 20 особей; - количество популяций - 50; - длина битовой строки первого гена - 10. /(*) - mat itO О в (а < V .< Ь) 11г»п.1.цгм ;/(*)*- Г|СО|(*| fj) fi*,* %* >J Л а Рис. I 44 Задание параметров примера 1.9 и алгоритма Создадим начальную популяцию, нажав на кнопку «Создать начальную популяцию». Результат представлен на рис. 1.45. При этом автоматически открывается вкладка «Ход решения» •ю
3IPKM V*l f К* «* Ч* i»« Uk г л «ДО 1Т.Ш :гт »М1*Э »ГЮ> )Л.Ч) 4V»/> Ж! I* 4ЯЛ) '• <Я1.* ) 054* Л 422VS мл ««Ч tmrr 31 II: ю-auoc •10)» ilirc II *1 . и or: IffOItt UMUC 1Г1Г1 ever' ir**i Сч^мм № vjn 0 •>,»«. - iy<«ii5K)4r; U«»4 IV —• —— —■*• т w. 1 1 «Л1 ivht I IV) ниш ) : вм 1‘l) I « 1«317 (01000 S iwi 11*00 « )0U« C1H04 / 4У1/ 1) AT* 4 l»M« ; 1 V« HI’I ю iXM •110*1 11 • ы* ЮТ0 «7 1X5 VWOO !Э 4%U cor ct II 1 «ЗА1 U4A1 Л -4КТГ Wl*4 ML *«M • *>#» 1* • ял • »•*<« )» 5 ал 1111Ф1 1Э )®Ч OXtl я *„04 m»1 Рис. 1 45. Анализ начальной популяции Чтобы получить дополнительную информацию о популяции, необходимо нажать на кнопку «Информация о популяции» (рис. 1.46). Информаций о популяции N: ill x2 Ф yvAiim ripMCf xrcu i*ii ep ии1вр at>CM«0A«1 rpmll 1 •1.1433 1.42819446523858 218 С0110П010 X1C110111 2 1.90032 3.96330464485369 997 111110СЮ1 1XX10111 3 -0.8175 2.39891191351761 X3 01X101111 011C111XO 4 •1.0061 1.83173756067826 254 001 111 1110 X1COOOX1 5 0.48855 •5.21939549652632 636 1001111100 110100X10 6 0.6033 3.05243002233389 357 0101100101 0111010111 7 0.22337 4.971710578337C3 568 1000111000 11X10O1X e •0.0683 4 46501342195029 494 0111101110 o-cconxi 9 0.65691... «5.26742947153213 679 1010100111 11111101X 10 0.05053 •5 2244832740613 729 Ю110ПХ1 1110110101 11 124030 4.86444X9944630 OX 1100111110 wio’omci ’2 0J9952S •5 130529C6S30431 766 1011111110 111C00X01 13 •15449.. *0.55343644696022 117 0X1110101 0Х1ХП11 14 •1.1237 •1 49782373931195 224 xnaoxu 001C010UUU 15 127487 •4.83077410759726 837 11019X101 Ю11100111 IS 1.51921 •4 489Э62С0705747 900 111OX01X 10ПС00110 17 0.57002 5.25283263105715 657 101091 CXI 1111011X1 IS 0.56781 5.25217433359X7 657 101011 CXI 1111011X1 19 0.415S 3.59951229260122 405 011X10101 0Ю1011111 20 0.84200 5 2284527571705? 727 1011010111 11101111X Зепемым цветом отменил особ» с мамл/чи*<* п0»<поо5ленк>ггью Кхикныч светом отмечен особь с иви/уошвй прРСпо:обле»^5стыо Рис. I 40 Подробная информация о начальной популяции Рассмотрим полученную популяцию (см. рис. 1.45 и 1.46). Особи под номером 9 соответствует наименьшее значение функции приспособленности, то есть она обладаег наихудшей приспособленностью. Данная особь в списке выделена красным цветом (цвет текста) и будет заменена образованным потомком Особи под номером 13 соответствует наибольшее значение функции 41
приспособленности, то есть она обладает наилучшей приспособленностью. Данная особь выделена зеленым цветом и является элитной особью, то есть автоматически переходит в следующую популяцию. Значения целевой функции и функции приспособленности совпадают. Во вкладке «Графика» (рис. 1.47) можно увидеть графическое изображение популяции (слева) и график изменения наибольшего значения целевой функции при переходе от одной популяции к другой (справа). На графике слева изображен график целевой функции и точки, соответствующие особям в популяции. Красный квадратик соответствует особи с наименьшей функцией приспособленности. Зеленый квадратик соответствует элитной особи. На графике справа изображено наибольшее значение целевой функции в начальной популяции. Также это значение занесено в таблицу правее графика. Рис I 47. Графическая иллюстрация начальной популяции Рассмотрим работу алгоритма (рис. 1.48): 1) выберем двух особей для скрещивания. Для этого необходимо нажать кнопку «Селекция (отбор родителей)». Пусть были выбраны особи под номерами 12 и 6; 2) произведем скрещивание выбранных особей. Для этого необходимо нажать кнопку «Скрещивание». Пусть особи обменялись участками хромосом после 5-го разряда, образовалось 2 потомка; 3) произведем мутацию потомков. Для этого необходимо нажать кнопку «Мутация». Пусть мутация произошла в разрядах 1, 3, 9 первого потомка и в разрядах I, 2 второго. Таким образом, получилось два мутированных потомка; 4) выберем одного из потомков для добавления его в популяцию. Для этого необходимо нажать кнопку «Выбор потомка» Пусть был выбран второй потомок
5) добавим выбранного потомка в популяцию. Для этого необходимо нажать кнопку «Добавить потомка в популяцию». Потомок встанет на место особи, имеющей наихудшую приспособленность. Добавленный потомок выделен желтым цветом. Особью с наихудшей приспособленностью теперь становится особь под номером 17. rwt и И. W№. |Т*ЛН Ч»» — МиГ**.' f 44 Г .Wl— 1 1«М »ie*ic г зхза ■ xccc 04u—< • 1 J.IW- *"*■” . 4 ЮИП oiiflprr * 1 ХЧ IK XT л CVNX 1 5NWO N1110 ; » Х-Г1** «ИПГ* » • 4 НАС OK® II ■ *• • л*и 1110110 ».«**»• и . с iKiil 5iW> 4n*0»)»ll 11МШ |> <*Wi oor an 14 1 *vo лиогмл 15 1ТПГЛ Л «««% IX Ю» •г *.а;и tinm * 1111011 11 iwx 01СЮП а »я*л НЧ1П к .l*UK«OMV • 1&МЛП*«М7? I 1001*11 • не нпп ♦и 14ЛП 001011 oxr vno /*W 01 HIM •I r.tll Oil опт ' If Iff ом* ЛОЛ» MfWV - нес oicoc- 4 IS? i.>l noil 4MU4 -llftlf MW 10ПГ c-rx ooeia i.rci oninm «»w mu 44» .X10C M1K* 5 ТЕ* -1П0» 31* 01(101 VJ* -11011 — I Рис 1.48 Результаты применения генетических операторов Во вкладке «Графика» (рис. 1.49) на графике слева появился желтый квадратик, соответствующий вновь добавленной в популяцию особи. При этом исчез прежний красный квадратик, который соответствовал замещенной особи. Красным цветом теперь отмечен квадратик, соответствующий особи с наименьшей функцией приспособленности в измененной популяции Так как новая популяция еще не сформирована, то график справа остается без изменений. ] at Ы *>44 4— 1 л 1 «««Ж I i | ~V *ГТ V. *д V. >Л*Ч« 4 | г.; 4ИЧ | П=“| Рис 1 49 Иллюстрация процесса замещения особей в популяции 43
Для того чтобы создать новую популяцию, необходимо нажать на кнопку «Сформировать новую популяцию». Полученная популяция будет иметь вид, представленный на рис. 1.50. ‘Я Информация о популяции ЛПГБ1К1 ГГ *1 *2 прислосо жгер . митар.. д»о»мый1 грвй1 двл*мь»ч2 грей2 1 1 -1.1493 •1.42819446523866 218 0011011010 С010110111 2 1 гт} -3.963.30464486366 99? 1111100101 1000010111 11 3 0.81/5 2.368СП91351761 303 0*00101111 0110111000 4 1.0051 1 8Э173796С678Э6 264 0011111110 00*0000001 5 1.7279 0 3419217219926*4 70 О0С10ГО1Ю С0С11СС101 6 0 6030 3.0524 3082 23 336S 357 0191100101 0111010111 7 •1.5070. С.45€99558221’219 1С6 COD* 101010 С001011111 6 •0.5577 •3.167S5326595023 369 С10111С001 0111001001 9 1.06000 4.ОС14CG76605065 985 1111011101 1000110011 1 10 1.06908 4.0С140576605665 96$ 1111011101 1ССЭ-1 :э* 1 11 * 69828 •3 9681126145954 996 1111100100 10Э001С110 12 4)600/ •3.05915722С86002 358 01011С0110 0111010101 13 •1.5449 -С .5594 364 4 6 $6 032 117 0001110101 ССО-ООШ1 14 1.1237 •1.49782373931196 224 ПШ11СОООО ooinoiooco 15 1 j5B70a -4J9066246663689 917 1110010101 1001011111 • * • • •• 16 1.69Я8 946684*3153864/ 103 0001100111 00СИЛ0100 11 17 0.2759 1.976765»- 99417 441 0110111001 0101100101 18 1.62622 4.33357568600717 927 1110011111 1С0’010000 10 0.4150 3.55961229260122 4С5 споо^сю- 0101011111 20 1.9941 0.Х9473634327243 2 оооооооою 0000000011 Зит цяагтпм отособ» с млоушай приспособ/т+саю Кде***' имтом отмвчй*.« особ» с и*и>узш*£ приспособлвииостыа Рис. I 50 Новая популяция Во вкладке «Графика» (рис. 1.51) на графике слева изображены точки, соответствующие новой популяции. На графике справа появилось наибольшее значение целевой функции в новой популяции. Также это значение добавилось в таблицу правее графика. Ярко-красным цветом на графике отмечены промежуточные значения целевой функции при переходе от одной популяции к другой, темно-красным цветом отмечено наибольшее значение целевой функции, соответствующее последней сформированной популяции. ВНННННННННВВННбЩ fiwwi »* г» ■ И Т»-* « >М|ММ Рис 1.51. Графическая иллюстрация новой популяции -1-1
Сформируем заданное нам количество популяций. Для этого необходимо нажать на кнопку «Получить ответ». Конечная популяция будет иметь вид, представленный на рис. 1.52 и 1.53. MaliaO № х1 *2 Фу*иив прмелзео v*ftcp rpeftl 1 •1.0606 C.2789S79455C90T 34 OOOCIOOOIO 0000110011 2 *1.8884.. 0278149060'‘6642 29 ОООСС11Ю1 OOCOOICOII 3 •1.8834 0 278143083118642 29 030C011101 000001 con 4 •1.8334 0.278149060118642 29 ОЗОСОШ01 OOCOOICOII 5 1.8834 0.?;8149060116642 29 ooocomoi QC000*001'. 6 •1.8834 0.278149060116642 29 ODOCOlllOl 0000010011 7 •1.8834 0.278149060" 8642 29 0000011101 OCOOOIMU 0 •1.0034 0.270149063116С42 23 ooocomoi ОССОО'ССП 9 •1.8834 0.278149063П 6642 29 ooocomoi ooooo* cor 10 •1 8894 0 278149060118642 29 ooocomoi 00С0ЭСС11 11 •1.6884 0.278149060118642 29 ooocumci 0000Л0011 12 •1.8034 0 270149063116642 23 ooocomoi 000001C011 13 1 8834 0.278149063* 16642 29 ooocomoi 000001C011 14 •1.6834 0.278149063116642 29 ooocomoi onnomccn 15 1.8834 0.278149060116642 29 ooocomoi ОГСОЗ’ООП 1Б •1.8034. 0.278149063116642 29 000001Г.01 0000310011 17 •1 6884 0.2781490601Т6642 29 ooocomoi ПС00010011 16 •1.8834 . 0.278149060'16642 29 030C011101 0CCC01CCII 19 •1 8834 0.278149063116642 29 ОЭ0С0111С1 oooooicon 20 •1.6884 О 27814906011664? 29 ooocomoi 0000310011 Зелень* цветом стмвчэив оссбь г мвилучивЛ пеклоссбпвиностыо Кдасиьм иеото* сгг*е*ен4 особь с маихуошоб пежпособевгеюстью Рис. 1.52 Последняя популяция NRI6H Рис. 1.53. График изменения наибольшего значения целевой функции в популяции Таким образом, получен ответ. - значение функции приспособленности / = - 0,278; - значение целевой функции / = -0,278; -значение координаты х( =-1,888. Точное решение задачи имеет вид: /* = -0.278; Х\ = -1.886. 3 Информация о популяции 45
Глава 2. ГЕНЕТИЧЕСКИЙ АЛГОРИТМ УСЛОВНОЙ ОПТИМИЗАЦИИ С ВЕЩЕСТВЕННЫМ КОДИРОВАНИЕМ 2.1. ПОСТАНОВКА ЗАДАЧИ Дана целевая функция f(x) = f(x,,x7 хп), определенная на множестве допустимых решений D<^Rn. Требуется найти условный глобальный макси¬ мум функции /(*) на множестве D, то есть такую точку е что f(x*) = msxf(x), (2.1) x*D где х = (х1,х2,...,х„)т,D = (x\x, е(а,,/>,],/ = 1.2 п). 2.2. СТРАТЕГИЯ ПОИСКА РЕШЕНИЯ Рассматриваемая в задаче (2.1) целев функция f(x) эквивалентна при¬ родному понятию приспособленности живого организма. Вектор параметров х = (хх,хг,...,х„)т целевой функции называется фенотипом, а отдельные его координаты xteR - признаками, / = 1,2,..., Каждый допустимый вектор х = (Х|,х2,...,дсл)7 € Dявляется возможным решением поставленной оптимиза¬ ционной задачи. Такова общая идея, используемая генетическими алгоритмами (ГА) с би¬ нарным и с вещественным кодированием. Принципиальным отличием послед¬ них является отсутствие операций кодирования и декодирования, т е. любой вектор х = (хьх2,...,х„)Т е D считается хромосомой особыо), а ка¬ ждая его координата x,eR представляет собой ген. Длина хромосомы опреде¬ ляется размерностью пространства поиска (числом л), а каждый ген представ¬ ляет собой вещественное число - значение соответствующей координаты век¬ тора х (рис. 2.1). Его точность будет определяться разрядной сеткой компью¬ тера, на котором реализуется ГА. Таким образом, фенотип совпадает с геноти¬ пом, а поиск фактически производится в пространстве фенотипов. 1-й 2-й -й ген ген ген хромосома Рис. 2.1 Структура хромосомы 4(»
На множестве допустимых решений D вводится так называемая функция приспособленности ц(х): D—У—► /?, где R- множество вещественных чисел, аналогичная целевой функции /(х). Функцией ц(х) может быть любая функция, удовлетворяющая следующе¬ му условию: Vxl,x2 е D :х1 *х2,если /(х')>/(х2),то ц(х')>ц(х2). Таким образом, решение исходной оптимизационной задачи /(х*) = max /(х) сводится к поиску решения х’ другой оптимизационной зада- xeD чи: ц(х*) г шахц(х). (2.2) н xgD В силу выбора функции ц(х), решения задач (2.1) и (2.2) (хромосома) сов¬ падают: х* = aig max f{x) = arg max ц(х) = x*. (2.3) xeD jfc О И При решении задачи (2.2) используются конечные наборы у = {а* = (xf ,xl х*)Т, к = 1,2 D возможных решений, называемые попу¬ ляциями, где sk- хромосома с номером к, т- размер популяции, хк - ген с номером /. Применение ГА сводится к исследованию множества D при помо¬ щи перехода от одной популяции к другой. Из условия задания функции при¬ способленности следует, что чем больше значение ц(х*), тем более подходит хромосома х* в качестве решения. 2.3. АЛГОРИТМ РЕШЕНИЯ ЗАДАЧИ Генетический алгоритм имитирует эволюцию начальной популяции /0 = {x\A' = ],2,...,m|x* =(x,\xj д*); €/>}, где т - размер популяции, как цик¬ лический итерационный процесс, во время которого к популяции применяются основные биологические операторы, селекция (отбор), скрещивание (кроссин- говер, кроссовер), мутация, и происходит ее смена на новую, к которой, если решение не найдено, опять применяются биологические операторы, и т.д. до выполнения условия окончания (рис. 2.2). Если одно из условий окончания вы¬ полнено, то в качестве приближенного решения исходной задачи (2.1) из по¬ следней популяции выбирается особь с наилучшим значением целевой функ¬ ции (функции приспособленности). 47
Рис. 2 2 Общая схема работы ГА Шаг /. Создание начальной популяции. 1. Задается номер популяции / = 0, максимальное количество популяций /1ШХ, номер итерации цикла М = 1, в котором формируется новая популяция; размер популяции т. 2. Случайным образом формируется начальная популяция /0. Для этого с помощью равномерного распределения на единичном интервале т раз генери¬ руем последовательность из п случайных точек / = 1,...,н, * = 1,2 т на отрезке (0,11. a, if Ь, Рис. 2.3 Механизм формирования начальной популяции Используя линейное преобразование, каждая точка отображается на соот- ветствующий ей промежуток \nhb, |: ff = (/>, -Oj)Pfk (рис. 2.3). Составляя векторы и? точек последовательности мри фиксированных к, получаем т начальных векторов хк = (xf,xf xxf = = 1,2,..., , координаты которых л-,- имеют равномерное распределение на отрезках |л,,А;|, 1аким образом, может быть сформирована начальная популяция /., ■» {д'.Л Я 1.2 />/|дг* — (л**,х* )' € О). 4S
3. Вычисляется значение функции приспособленности для каждой особи т хк € /{): р* = ух(х )ук = 1,2,...,т, и популяции /0 в целом: р = . к = \ Шаг 2. Селекция. Селекция - это операция, которая осуществляет отбор особей (хромосом) хк в соответствии со значениями функции приспособленности ц(.хк) для по¬ следующего их скрещивания. Вероятность участия в скрещивании обычно пропорциональна относительной приспособленности —^ особи хк. Опера- й торы селекции ГА с бинарным кодированием используются и в ГА с вещест¬ венным кодированием. Виды селекции. 1. Случайный равновероятный отпор. Особи - «родители» случайным образом выбираются из всей популяции, причем любая может стать членом не¬ скольких пар. Вероятность участия особи в селекции составляет рк = — . т 2. Рулетка. Отбирает особей с помощью а «запусков» рулетки (если вы¬ бирается пара родителей, то о = 2). Колесо рулетки содержит по одному секто¬ ру для каждого члена популяции. Размер к - го сектора пропорционален соот¬ ветствующей величине рк, вычисляемой по формуле: рк = ——. И 3. Турнирныи отбор. Реализует о турниров, чтобы выбрать о особей (ес¬ ли выбирается пара родителей, то о = 2). В каждом турнире случайным обра¬ зом выбирается v элементов из популяции, а затем лучшая особь среди них. Наиболее распространен турнирный отбор с v-2. В ГА может применяться гак называемая стратегия олитизма Ее суть в том, что небольшое количество особей s* (как правило, одна или две) перехо¬ дит в следующее поколение без изменений, не участвуя в селекции и после¬ дующем скрещивании. Результатом шага 2 являются две особи .т'и л2, выбранные в качестве ро¬ дительской пары с помощью одного из операторов селекции. Шаг 3. Скрещивание. Скрещивание - это операция, при которой из нескольких, обычно двух хромосом (особей), называемых родителями, порождается одна или несколько новых, называемых потомками. В ГА с бинарным кодированием операторы скрещивания работают с битовыми строками, поэтому они не подходят. Боль¬ шинство ГЛ с вещественным кодированием генерируют новые векторы - по¬ томки в окрестности родительских пар. Пусть имеются две родительские хро¬ мосомы jt1 *2 = (xj\*2,...,*2)r, выбранные одним из операто¬ ров селекции. 49
Виды скрещивания. 1. Плоский кроссовер. Создается один потомок хч = (х%,...,х%)т, где xf,i = l,...,n - случайное число из промежутка |л/',Х/2|. Здесь считается, что х} ixj. Если это неравенство не выполняется, значения меняются местами. 2. Простейший кроссовер. Из множества {1,2,...,л -1 } выбирается слу¬ чайное число р и генерируются два потомка: х” =(x1l,...,xj,)x2+1...,x2)r; _ / 2 у»2 у 1 \\Т X — (.Vj Xp+iЛп) . 3. Арифметический кроссовер. Создаются два потомка х,! = (xj?1,...,x^1) , х’2=(х*2 xj}2)r,где xf1 = n х} + (1 - п) х}, / = 1,2,..., л, х?2 =т\х? + (1 - Т|) дс*, где п - константа из интервала (0,1). Пример 2.1. Пусть т\ = 0,5, для генов родителей под номером /' выполнено условие: х,2 * xj; xf] может принимать указанные на рисунке значения; о - число из интервала (0; 0,5). Для гена xf2 ситуация симметрична (рис. 2.4). 7 = 0.5 7 = 0.5+а 7 = 0.5 - а -I • * Н "I ,, Ь> Л» Рис 2 4 Арифметический кроссовер 4. Геометрический кроссовер. Создаются два потомка хя\ хч2, где xf ‘(xj I = 1,2,...,л, X?2 =(х? )’ (xj где q - случайное число из интервала (0; I). Заметим, что при отрицательных значениях генов родителей могут возникать вычислительные проблемы. 50
Пример 2.2. Пусть ц = 0,5,для генов родителей под номером / выполнено условие: х}i. xj. Рассмотрим ситуацию для гена xf2Для гена xf11 ситуация симметрична (рис. 2.5). v - 0.5 г) = 0.5 - а 7 = 0,5 +<г Рис. 2.5. Геометрический кроссовер 5. Дискретный кроссовер. Создается один потомок хч = (xf хяп )Т, где xf выбирается из двух значений jc/, xjслучайное вероятностью 0,5 для всех / = 1,...,л. 6. Смешанный кроссовер. Генерируется один потомок хч, где xf,/ = 1,...,я - случайное число из промежутка [Xj mi„ - д и, + Д a), xt min = min { xj, ), Xj ,Iiax = max ( xj, xf }, A = x, nm - x-t n,in, где а - параметр (рекомендуется а = 0,5). При а = 0 смешанный кроссовер превращается в плоский. Пример 2.3. Пусть а = 0,5, х2 t xj, тогда xf будет принимать одно из значений диапазона, указанного на рис. 2.6. La La -t “ *1 RUT. *>2 = Xi Ш . Рис. 2.6. Смешанный кроссовер 7. Линейный кроссовер Создаются три потомка хя\ хя2, хя3, с\ xj + х} Q2 3 X/1 - xf *3 - xj + 3 xf . f где xf1 = -, xf = —xf* = ——L, , e 1 Пример 2.4. Пусть x2 г xj, тогда гены xf, xf2, 3 соответствующих по¬ томков расположатся следующим образом (рис. 2.7). "Г J .2 f *• xf *' xf b' Рис. 2 7 Линейный кроссовер 51
8. Расширенный линейный кроссовер. Создается один потомок хя, где xf = xj +Ti • ( xf -х}), i-1где п - случайное число из промежутка 1-0,25; 1,25 ]. Пример 2.5. Пусть xf * х}, тогда xf будет принимать одно из значений диапазона, указанного на рис. 2.8. А~* V Г-' > : i \ 1 ! } а, х! х? Ь, Рис. 2.8. Расширенный линейный кроссовер 9. Кроссовер, имитирующии двоичный. Создаются два потомка xql, хя2, где х?' “^lO-V)*/1 + 0 + П1)*2 Ь xf * ^10 +л2) xf + (1 - л2) xf ), где лу. У = 1.2 - числа, полученные по формуле I л' = (2 л)Сч, «5 0,5, L У = 1,2, 1 >с+| и > 0,5, 2(1 - в) j и - случайное число, равномерно распределенное на (0; 1), Се [2; 51 - пара¬ метр Результатом шага 3 являются один, два или три потомка хяХ> хч2, xvJ, по¬ лученные после применения одного из операторов скрещивания к хромосомам - родителям д* и д2. Координаты хромосом-иотомков должны принадлежать множеству допус¬ тимых решений. Если полученная в результате скрещивания (при помощи смешанного, линейного, линейного расширенного кроссоверов) / -я координата не принадлежит отрезку то она заменяется случайным числом, равно¬ мерно распределенным на \nhbt\. IlUr 4 Мутация Мутация - это преобразование хромосомы, случайно изменяющее обычно один (реже несколько) из ее генов. Оператор мутации предназначен для того, чтобы поддерживать разнообразие особей в популяции
Виды мутации. I. Случайной. Поочередно рассматривается каждый потомок, полученный выбирается один с номером ре л}, подлежащий замене. Его новое значе¬ ние Хр случайным образом выбирается из промежутка \а1пЬр\ изменения вы¬ бранной координаты хр. 2. Неравномерная. Поочередно рассматривается каждый потомок, полу¬ ченный в результате скрещивания. Среди генов х,случайно (с вероятно¬ стью —) выбирается один, подлежащий замене: где и - случайное число, выбранное с вероятностью 0,5 из множества {0; 1}; б(*,у) - функция, определяющая значение на промежутке [0, у]: г - случайное на отрезке [0,11 число, /)Пах - максимальное число итераций, С - параметр оператора. Результатом шага 4 являются потомки, найденные на шаге 3, с одним из¬ мененным геном каждый: хА/|,.тА/2,хЛ/3. Шаг5. Формирование новой популяции. С равной вероятностью из потомков - мутантов предыдущего шага выбирается один. Пусть это будетхА/|. Выбранный потомок добавляется в популяцию вместо хромосомы, которой соответствует наименьшее среди эле¬ ментов популяции значение функции приспособленности, вычисляется значе¬ ние функции приспособленности цА/, = ц(хЛ/|). Проверяются условия: а) если Л/ < от, то положить Л/ = М + 1 и перейти к шагу 2; б) если М = от, то положить г = / + I и перейти к шагу 6. Шаг 6. Проверка условий окончания работы Г А. Применяются следующие условия окончания работы ГА: 1) сформировано заданное число популяций / = /||Ш ; 2) популяция достигла заданного качества (например, приспособленность каждой особи превысила некоторый порог); 3) достигнут некоторый уровень сходимости, то есть особи стали настолько подобны, что их дальнейшее улучшение происходит крайне медюнно. в результате скрещивания. Среди генов х,,...,хя случайно (с вероятностью —) п п 5(/,у) = у I — \ 53
Проверка условий окончания: а) если ни одно из условий не выполнено, то полагаем 1 и переходим к шагу 2; б) если хотя бы одно условие окончания работы выполнено, то в качестве решения (приближенного) задачи ц(х*) = тахц(х) выбирается особь с лучшим xeD значением функции приспособленности из текущей популяции: х* з х* = arg max м(х*), а по нему определяется приближенное решение поставленной задачи /(х*) = max /(х): х* = х* Х€ D и 2.4. ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ. АНАЛИЗ ЭФФЕКТИВНОСТИ МЕТОДА На основе изложенного алгоритма сформирована программа поиска ус¬ ловного глобального максимума методом ГА с вещественным кодированием. Среда разработки Microsoft Visual Studio 2005, язык программирования Cti. Пользовательский интерфейс включает формы для ввода данных и отображе¬ ния получаемых результатов, кнопочную панель для управления ходом вычис¬ лительного процесса (возможно получить решение сразу или по шагам). Работа программы начинается с ввода начальных данных: типа оптимизируемой функции, диапазонов изменения переменных, а также задания параметров ал¬ горитма: характеристик популяции (размера, максимального количества), типа операторов селекции, скрещивания, мутации, количества элитных особей (если применяется сгратегия элитизма). Анализируя полученные в примерах 2.6-2.8 результаты, можно сделать вывод о том, что решения задач поиска максимума функции одной переменной и квадратичной функции находятся без затруднений. Процесс максимизации функции Розенброка со сложным рельефом линий уровня практически всегда приводит к окрестности точного решения. Пример 2.6. Рассмотрим работу программы на примере поиска условно¬ го глобального максимума функции Розенброка при помощи генетического алгоритма с вещественным кодированием. Во вкладке «Постановка задачи и параметры алгоритма» в поле «Название функции» выберем функцию Розен¬ брока. Целевая функция имеет вид: /(х) = -С|(х2 - X,2)2 - (Х| - I)2. Постановка задачи: /(л) -> max, хс D х = (х,,х2)г, D ={я, s х, 5 bi, I = 1,2}. 54
Задача решена при следующих параметрах (рис. 2.9): множество допустимых решений: - 2 £ Х| £ 2. - 2 2; коэффициент целевой функции Cj =100; метод селекции - панмиксия; количество элитных особей - 1; метод скрещивания - плоский кроссовер; • метод мутации - случайная; • размер популяции - 20 особей; ■ количество популяций - 50. Г.(Л1Мк^ /(jc)-iiui* a49 x -* (jt*.Xy)T.D %• (o, i Xi £ bi.l 1.2} C v r*. 23%- ‘П. Рис. 2.9. Задание параметров примера 2 6 и алгоритма Создадим начальную популяцию, нажав на кнопку «Создать начальную популяцию». Результат представлен на рис. 2.10. Заметим, что автоматически открылась вкладка «Ход решения». м ,и-- Г»~1 M *%мм»ч» ■r ««•*. r#»i rw Ф)1) i «V 1 m:« 1 ЖК «ЖП» 2 «Ч1Л * 'XT «им *.»!» ■>■> ■ J 2 tec: пои: «uni 1 1 (1ЧГ О'Ю •jaw* i «5»Г • MW 0СИЛ 1 4 ИО *CJD 12Ж* i »*:i 1ЙГ1 0(«n « •>:«• • ». 1 • x«1t i •ЖИ ««:• o:mhi • ••ми • «№ С •(» • «ri «1Э1* 1 «;*v >»»•: ватга » 1Я1 о;чс; • :2»;и 1 ЯМ о-i» —— ■ ■ — - <—• •» - * — • • зли i X)I1 «нж 9 *»«Ч 1 *»14 ere* 9 *»r • ПК «;вп •> *1Ю • :«*» • «Ж» О 1 ЛЛ i *.чл •» Л/iX) lar/*; 11 4-i) 1 JUb*’ их:* Ч а.ш* 4ЖИ1 *sv; 1) 1ЛП* «Ml о;л*: ■1 <г:<» OAK 11 iXH ««£' 0,»*) «« ««ИМ ;ММ<«МЧ%«%И« 1* 111* 1 1 «VII *Ж‘7 •1 СИ Ч'т »U< •;ак< 11 <и»: • U* «2 Vi* •1 <тл i xr: «:аи; «n«#% »• hp*cm>« 1» uo:i •1 *02 «7 :ei;» «•же «»(*• 1? «•.•«I • «г«* •э ;»»* l.KO 1» •re: «та* 1 •awe uva • МП 11 «»:• nw • :cn 21 **>« • С1Л 6М«Г » ЧХ» win о;ж») Рис. 2 10. Анализ начальной популяции 55
Рассмотрим полученную популяцию. Особи под номером 11 соответст¬ вует наименьшее значение функции приспособленности, то есть она обладает наихудшей приспособленностью. Данная особь в списке выделена красным цветом (цвет текста) и будет заменена образованным потомком. Особи под но¬ мером 12 соответствует наибольшее значение функции приспособленности, то есть она обладает наилучшей приспособленностью. Данная особь выделена зе¬ леным цветом и является элитной особью, то есть автоматически переходит в следующую популяцию. Значения целевой функции и функции приспособлен¬ ности совпадают. Чтобы получить дополнительную информацию о популяции, необходимо нажать на кнопку «Информация о популяции». При этом откроется новое окно, в котором красным цветом отмечена особь с наихудшей приспособленностью, зеленым цветом отмечена особь с наилучшей приспособленностью (рис. 2.11). Информация о популяции (Ж) Nt х1 х2 Функция прислосо 1 1.469? •1.36057 1238.63974887955 2 1.10602 •0.1159 •179 82623810/962 3 1.27004 0.80473 •65.4032197969029 4 1.15632 •0.66605 •403.133“ 685/3847 5 •1.50838 0.03016 -504.С18355СС773 6 0.48653 0.52357 •58.066436376598 7 •0.35152 0.27927 •4 25097020590532 Я 1.28319 0.12286 •326.216545392321 9 •1.31194 0.33075 •198.676450303178 10 1.20945 •1.42427 •985.383475911814 11 •1.90077 •1.09677 *2649.33411901623 12 0.38968 0.22542 •2.47245760011164 13 •1.85221 0.81559 892.005658112669 ' 4 •1.43293 •1.28647 •1121.31775533589 15 •1.6476 •0.22261 •869.721679016198 1В •1.76012 0.50842 •1308.26095125273 17 1.5Я845 1.10581 •201.238174877136 18 •1.61452 1.10021 •233.77934335361 19 1.99451 0.36271 •1208.07194440249 20 0.01375 Г.86802 •76.2874783425879 3«л*ным цвет о» и отмечена особь с намлучшем приспособленностью Красны* цветом отмечена особь с наихудаей приспособленностью Рис 2 11 Подробная информации о начальном популяции По нклалкс «Графика» (рис. 2.12) можно увидеть графическое изображе¬ ние популяции (слева) и график изменения наибольшего значения целевой функции при переходе от одной популяции к другой (справа). На графике сле¬ ва отмечены линии уровня целевой функции и точки, соответствующие особям в популяции. Красный квадратик соответствует особи с наименьшей функцией приспособленности. Зеленый квадратик соответствует элитной особи. Также можно добавить линию уровня, соответствующую заданному значению функ¬ 56
ции. Для этого необходимо ввести значение целевой функции в поле снизу и нажать на кнопку «Добавить линию уровня». На графике справа изображено наибольшее значение целевой функции в начальной популяции. Также это значение занесено в таблицу правее графика. Рассмотрим работу алгоритма (рис. 2.13): 1) выберем двух особей для скрещивания. Для этого необходимо нажать на кнопку «Селекция (отбор родителей)». Пусть были выбраны особи под номерами 4 и 20; 2) произведем скрещивание выбранных особей. Для этого необходимо на¬ жать на кнопку «Скрещивание». Образовался один потомок; 3) произведем мутацию потомков. Для этого необходимо нажать на кнопку «Мутация». Таким образом, получился мутированный потомок; 4) выберем потомка для добавления в популяцию. Для этого необходимо нажать на кнопку «Выбор потомка» В данном случае потомок всего один; 5) добавим полученного потомка в популяцию. Для этого необходимо на¬ жать на кнопку «Добавить потомка в популяцию». Потомок встанет на место особи, имеющей наихудшую приспособленность Добавленный потомок выделен желтым цветом Особью с наихудшей приспособленно¬ стью теперь становится особь под номером 16. 57
>14» »nwi — ч ч»*л » с _ «• Г*. Гт» • емс* •вс • *:с • им: )мг$ Хв£ ’ .’»Ю4 ЭЮ.П «Я 1Б • наго д» « «Ц*1« •*v»M UMf.l JWA# 1ЛИ# • MU и/ги> МЛ ■Mt vi/.%k •чвог 1 <ч • 1*14 W пы 1IMK к* т • W /ЛЛЙ • VW лак IV. • гм i’ll м •PJ I.KC ыо •*•7* оаж 1 Xf* V*: w •; ■м>\ \\гм aim VC i»W <ХЛй> IV, 1 о а;* 1.1.1 0*Ш1 О ХМ (JTW }ХД1 >лоо • • «ц / *4п n W ЧГ.1 'м \ }»Ч кк <ХА1 j •лез IIM3 :na ) i'.e: 1Л< « шч 1ISC3 емг ь \‘лмш JU*r« с а**.) *иы / • ЛЛ VMM J /w ■ JA-'I • ПН i'/J* • •AI • ям I* *** 1 «и* i UCI II нн Л WM 1 ДЛИ II f«T}4 VAI 1} iuer |«Л 311») II •i г: ОЛ> 1.ЧИ1 1! mn •icm <22Ж l •1 У») • нее Г1МО И г* я 1'Ж 1-ИГ И 2AJV • DQ UN? И я»; l?V.* )»П г: >Я1 •О)* :mci нл«||-ия <• Г=£] Рис 2.13. Результаты применения генетических операторов Во вкладке «Графика» (рис. 2.14) на графике слева изображены точки, соответствующие новой популяции. На графике справа появилось наибольшее значение целевой функции в новой популяции. Также это значение добавилось в таблицу правее графика. Ярко-красным цветом на графике отмечены проме¬ жуточные значения целевой функции при переходе от одной популяции к дру¬ гой, темно-красным цветом отмечено наибольшее значение целевой функции, соответствующее последней сформированной популяции. JIB Щ. ■’У*/;1 ■ • • * 4\ % - / • «»*>•< ,in > J < К* 155.1 L Т'т“т. I Рис 2 14 Иллюстрация процесса замещения особей в популяции Для того чтобы создать новую популяцию, необходимо нажать на кнопку «Сформировать новую популяцию». Полученная популяция будет иметь вид, представленный на рис 2.15 58
=й Информация о популяции III ЕЖ*] N! х1 х2 Функция приелссо... 1 0.33935 0.67984 •32,3229868192889 2 1.10882 •0.1159 •179.826238182982 3 1.27004 0.80473 •65.4032197969029 4 0.158Б8 0.64054 45.0260436269488 5 •0,87667 0.3253 •123,172735741561 6 0.48653 •0.52357 •58.066438378598 7 •0.35152 0.27927 •4.25097020590532 8 0.3422 1.34166 •150.387214473991 9 •0.00542 0.62288 •39.8051593082909 10 1.09471 0.0272 •154.594890896724 11 0.30268 1.25049 •134.785339469143 12 •0.38968 0.22542 •2.47245760011164 13 0.41169 0.73033 •82.960230042661 14 1.14415 0.93288 •14.1733647234605 15 0.39995 •0.65997 67.588580902465 16 0.88538 •0.02638 •69.2096600513952 17 1,26414 0,20999 •192.740809531836 18 0.0993 0.22927 -6.02251379784401 19 •0.11202 0.46609 •21.8065794805077 20 0.01375 0.86803 •76.2874783425879 I Зеленым цветом отмечена особь с на* лучшей приспособленностью Краоъм цветом отмечена особь с нвмхуашей приспособленностью Рис. 2.15. Новая популяция Во вкладке «Графика» (рис. 2.16) на ( рафике слева изображены точки, соответствующие новой популяции. На графике справа появилось наибольшее значение целевой функции в новой популяции. Также это значение добавилось в таблицу правее графика. Ярко-красным цветом на графике отмечены проме¬ жуточные значения целевой функции при переходе от одной популяции к дру¬ гой, темно-красным цветом отмечено наибольшее значение целевой функции, соответствующее последней сформированной популяции. Д fcyi luge»» иву» т ,1 Г- ffa V Рис. 2.16. Графическая иллюстрация новой популяции 59
Сформируем заданное количество популяций. Для этого необходимо на¬ жать на кнопку «Получить ответ». Конечная популяция будет иметь вид, пред¬ ставленный на рио2.17 и 2.18. I Информация о популяции ! № х1 х2 Ф умкция прмслосо . 1 1 0.48744 0,25074 •0.279989617643831 2 0.85909 0.39678 •0.25774326993823 1 з 0,58388 0.33357 •0.1785520120866 4 0.55881 0.33171 •0.233495835052445 ! 5 0.4 Л 32 0.24853 •0.34913233425918 1 6 0.5137 0.30933 •0.442988043813609 ! 7 0.59892 0.32138 0.284648107551499 8 0.60537 0.31234 0.4487692399842 3 0.41869 0.19497 0.376607028735812 ! ю 0.47437 0.2545 0.363153277534323 | и 0.43561 0.22371 •0.43382299408384 ! 12 0.5729 0.33164 •0.18358787668481 1 13 0.63957 0.41759 •0.1372033122S5427 • 14 0.56229 0.33036 •0.211725520944395 S 15 0.49002 . *1.82593 . -411.762607033076 16 0.64143 0.35603 0.435515534989753 ! 12 0.775 0.60539 0.0528955224999999 18 0.51382 0.29662 0.342705730065686 19 0.44663 0.21804 0.340671816357178 20 0.39353 0.12932 •0.433064961812215 Зеле**ум цветом отмечена ос л Ль с Кампучией приспособленностью KpdOfttM цветом отмечена особь с какхушией приспособленностью. Рис. 2.17. Последняя популяция .1 0*ц|ли««и I "— I Рис 2 18 График изменения наибольшего значения целевой функции в популяции Таким образом, получен ответ: - значение функции приспособленности (целевой функции) / = -0,052896; - значения координат х, = 0,775; х2 =0,60539. Точное решение задачи имеет вид /* = 0,xj = 1,х2 = 1. ('О
Пример 2.7. Рассмотрим решение задачи поиска условного глобального максимума квадратичной функции при помощи генетического алгоритма с ве¬ щественным кодированием. Во вкладке «Постановка задачи и параметры алго¬ ритма» в поле «Название функции» выберем многочлен второй степени. Целевая функция имеет вид: /(х) = - с,*,2 - c2xtx2 - с3х| - сАх{ - csx2 - с6. Постановка задачи: /(*) = max, «О х = (xux2)r,D = {я, SX, ib,, 1,2). В той же вкладке введем следующие параметры задачи (рис. 2.19): - множество допустимых решений: - 2 s jq £ 2, -2 й х2 £2; - коэффициенты целевой функции с( = 1,с2 = 1,е3 = 1,с4 = 1,с5 = 1,с6 = 1; - метод селекции - панмиксия; - количество элитных особей - 1; - метод скрещивания - линейный кроссовер; - метод мутации - случайная; - размер популяции - 20 особей; - количество популяций - 50. х - Ог,.Х|)г.О - (п. ч Х| а* Ь,. ( - 1.2) , Им#.»гчм<|||«а v I f[r) т -Г,Ж** - Г.*- Г-Ж,* - "f|*l - »и* • ч М и U О 19 См » О I) (6 I) •v> rti О* Г* «1 Ос— I "— 1 Рис. 2.19 Задание параметров примера 2 7 и алгоритма Создадим начальную популяцию, нажав на кнопку «Создать начальную популяцию». Результат представлен на рис. 2.20. Заметим, что автоматически открылась вкладка «Ход решения». 61
Рис 2 20 Анализ начальной популяции Чтобы получить дополнительную информацию о популяции, необходимо нажать на кнопку «Информация о популяции». При этом откроется новое окно, в котором красным цветом отмечена особь с наихудшей приспособленностью, зеленым цветом отмечена особь с наилучшей приспособленностью (рис. 2.21). Я Информация о популяции 1Ш1 N: х1 *2 Фикция прнспосо.. 1 0.3366 0.43629 •2.2238156761 2 1.75736 0.28274 •6.7052320436 3 1.83113 1,8893 •15.1024754759 4 •1.60013 0.41009 •1.8823503129 5 0.50994 1.50129 2.2692482903 Б 1.23538 0.73126 1.6534009532 7 •0.3997 0.04254 •0.7874065036 8 1 73944 •1.33227 •3.8903611377 9 •0.14776 ■0.19612 •0.7453947632 10 1 С6’44 0.62007 •4.8509187793 11 1 62463 •1.24505 •3.54700743S9 12 1.90041 0.23149 •7.2369716991 13 1 S9452 0.59739 •9.1184011453 14 1.89585 1.9874 •14.8792482725 15 1.56869 0.17114 1.8240616091 16 0.33868 1.60164 •2.2820782672 17 1.5568 0.25ССЗ •2.0885579449 16 0.76595 1.9t 314 4.0330636451 19 0.64491 1.693 4.2384152781 20 •1.94718 0.59275 •2.6342415899 Звле**»м цветом отмечена особь с май лучшей приспособленностью Краоъм цветом отмечена особь с ьаикуашей приспособленностью Рис 2 21 Полробмая информация о начальной популяции о2
Рассмотрим полученную популяцию (рис. 2.20 и 2.21). Особи под номе¬ ром 3 соответствует наименьшее значение функции приспособленности, то есть она обладает наихудшей приспособленностью. Данная особь выделена в списке красным цветом (цвет текста) и будет заменена образованным потом¬ ком. Особи под номером 9 соответствует наибольшее значение функции при¬ способленности, то есть она обладает наилучшей приспособленностью. Данная особь выделена зеленым цветом и является элитной особью, то есть автомати¬ чески переходит в следующую популяцию. Значения целевой функции и функ¬ ции приспособленности совпадают. Во вкладке «Графика» (рис. 2.22) можно увидеть графическое изображе¬ ние популяции (слева) и |рафик изменения наибольшего значения целевой функции при переходе от одной популяции к другой (справа). На графике сле¬ ва отмечены линии уровня целевой функции и точки, соответствующие особям в популяции. Красный квадратик соответствует особи с наименьшей функцией приспособленности. Зеленый квадратик соответствует элитной особи. На гра¬ фике справа изображено наибольшее значение целевой функции в начальной популяции. Также это значение занесено в таблицу правее графика. 1» в. МНЯЯЯ WlfHM'g Рассмотрим работу алгоритма (рис. 2.23): 1) выберем двух особей для скрещивания. Для этого необходимо нажать кнопку «Селекция (отбор родителей)». Пусть были выбраны особи под номерами 1 и 7; 2) произведем скрещивание выбранных особей. Для этого необходимо на¬ жать кнопку «Скрещивание». Образовалось три потомка; 3) произведем мутацию потомков. Для этого необходимо нажать кнопку «Мутация». Таким образом, получились мутированные потомки; 4) выберем потомка для добавления в популяцию. Для этого необходимо нажать кнопку «Выбор потомка» Пусть был выбран первый потомок; 63
5) добавим полученного потомка в популяцию. Для этого необходимо на¬ жать кнопку «Добавить потомка в популяцию». Потомок встанет на ме¬ сто особи, имеющей наихудшую приспособленность. Добавленный пото¬ мок выделен желтым цветом. Особью с наихудшей приспособленностью теперь становится особь под номером 14. УI Змеиная «««•рям ШЛВМ) \ятт УУЩН и,- W •*.*« )ГО • гяг JM4A. I «НМ '« ИЛ А 1А.СГ « •I 1Л9/ • «ей 3 IО» I л .‘САЧ » )Ы ««ял • ГГ* О ЗИЛ )7«У1 - «ап о«>ш • VT 4 1**»;Ч • >**» • от/ о 84Л* /*•• t ви: • н7* • owxr *W«4* ».*W • liJH «/ЯП **V • *•••• IK, l»'l 4*» 9*71*1 I 1C V* )ЛХ1 мая CJU )*** «И» (КК « >*.« 7JM С ХАЛ 4'4«* 01 гг, ()ШЛ (Ж :*г.ч ovw «Ми очл* е*!«м >v* юг**, «:<м •Ц.Ч* 0«.'*Я '•J rw 1 2 ОХ о:>* 700» J «х»; l*V* 5ЖТ1 э «/»< 4«Г*5 « - яг, «аса) UKta А 72ГЩ. -1УГЛ» «.vnr с 1 /г* «ГИЯ 7 0 2%2* )«• ЭС4Л- • ж: t ПН4 1Ш7 1 41*7*1 С ***2 «. «ПК КС* «4 : кло-- 11 ЗАГС. «cm# иы 1HUII ///14» П • п* HKf/ « U •«*.*! м»г. 13*/« И «л: •AJ 4* ГП’* •1 * ж: JUKI l*J4« V l»l слов: 1 «зле )/«* IJ13U 0/44“* ItM Г ;w IWII :3vn Г«ТЯ4*«« Рис 2.23 Результаты применения генетических операторов Во вкладке «Графика» (рис. 2.24) на графике слева изображены точки, соответствующие новой популяции. На графике справа появилось наибольшее значение целевой функции в новой популяции. Также это значение добавилось в таблицу правее графика. Рис. 2 24 Иллюстрация процесса замещения особен в популяции Для того чтобы создать новую популяцию, необходимо нажать на кнопку «Сформировать новую популяцию». Полученная популяция будет иметь вид, представленный на рис. 2.25 (>4
^5 Информация о популяции N 8 х1 *2 функция приспосо 1 0.3368 0.43629 2.2238156761 2 *0.18897 0.8892 •23585841769 ~ 3 •0.03145 0.24945 •0.7901596075 4 •1.60013 0.41008 •1.8823503129 5 0.50994 •1.50129 •2.2682482903 6 •1.23538 0.73126 •1.6534009532 7 *0.3997 0.04254 •0.7874065036 е 0.56332 0.08306 0.79Л 790268 9 •0.14776 •0.19612 •0.7453947632 10 •1.53636 0.77314 •2.0071061388 11 ■1.00263 1.06776515723568 •2.13995112554301 12 •0.01822 •0.82694 •0.8540685788 13 •0.63341 0.83237 •1.7657765633 14 •1.61997 0.507 •1.9470570109 15 •1.56869 0.17114 •1.8240616091 ! 16 •0.33668 •1.60164 •2.2820782872 , 17 •1.5568 •0.25003 •2.0685579449 18 0.47349 0.846350781082339 •1.16690301232167 19 •0.71301 •0.47007 0.8814336757 20 0.36035 0.38-44 •1.1589866921 I Зеленым и лет см отмечем* особь с маилучшей приспособлен мост ыо Красным иветом отмечена особь с неимущем приспособленностью Рис. 2 25. Новая популяция Во вкладке «Графика» (рис. 2.26) на графике слева изображены точки, соответствующие новой популяции. На графике справа появилось наибольшее значение целевой функции в новой популяции. Также это значение добавилось в таблицу правее графика. Ярко-красным цветом на графике отмечены проме¬ жуточные значения целевой функции при переходе от одной популяции к дру¬ гой, темно-красным цветом отмечено наибольшее значение целевой функции, соответствующее последней сформированной популяции. Рис 2.26 Графическая иллюстрация новой популяции 65
Сформируем заданное количество популяций. Для этого необходимо на¬ жать кнопку «Получить ответ». Конечная популяция будет иметь вид, пред¬ ставленный на рис. 2.27 и 2.28. Информация о популяции имиа № к1 м2 Функция приспосо... 1 •0,35471 •0.3563 0.6681420471 2 ■0.3444 -0.3122 •0.66700188 :э;!: J0^1S347242t3b^r, 4 -0.30717 •0.38065 0.6683520919 5 -0.38892 ■0.31567 0.6690866917 б •029597 •0.30918 •0.6695485179 1 7 ■0.34767 •02808 •0.6688788049 8 •029161 0.38633 •0.6690049523 9 -028235 0.39405 0.6698569425 10 0.27954 •0.36358 0.6688481812 11 0.33338 025464 0.6728556372 . 12 0.38626 •0.36661 0.6723364583 i 13 •0.33889 0.27399 •0.6698894233 ‘ 14 0.41234 02564 0.6727492116 . 15 02754 •0.34939 •0.6693505381 16 0.35356 0.33954 0.6672398476 17 0.30682 0.34642 •0.6671939132 16 0.41194 •0.32892 •0.6725182348 19 0.33622 0.29264 •0.6682134788 20 0.28283 •0.42876 0.6735041373 Зелееьм цветом отмечен» особь с нвигучшей приспособленность» КИ&Ы4 цветом отмечена особь с нвюуошей приспособленностью Рис 2.27. Последняя популяция С'-. Гг* Рис 2 28 График изменения наибольшего значения целевой функции в популяции Таким образом, получен ответ: - значение функции приспособленности (целевой функции) / = -0,667; ■ значения координат Х| = -0,3444; х2 - -0,3122. Точное решение задачи имеет вид /**~2/3,Х| =-1/3,Х2 =-1/3. 66
Пример 2.8. Рассмотрим решение задачи поиска условного глобального максимума функции одной переменной при помощи генетического алгоритма с вещественным кодированием. Во вкладке «Постановка задачи и параметры алгоритма» в поле «Название функции» выберем соответствующую функцию. Целевая функция имеет вид: /Ос) = - с, cos(x, - с2) - с3х,2. Постановка задачи: /(х) -> шах, «О х = х,, £> = {о, Sx, Si,}. В той же вкладке введем следующие параметры задачи (рис. 2.29): - множество допустимых решений: - 2 х, s 2; - коэффициенты целевой функции С| =5, = 0,4; с3 = 1; - метод селекции - панмиксия; * количество элитных особей - 1; - метод скрещивания - линейный кроссовер; - метод мутации - случайная; - размер популяции - 20 особей; - количество популяций - 50. ГМ -ииу D - [а £ л С Ь] Их) а -Г» ГО«(*, - <•,) - CjJT,7 О >1 О )• О п о О rw. о*. С*»г> Or— Оли С* с— О £ р г? Рис. 2.20 Задание параметров примера 2.8 и алгоритма Создадим начальную популяцию, нажав на кнопку «Создать начальную популяцию». Результат представлен на рис. 2.30. Автоматически открылась вкладка «Ход решения». 67
Рис. 2 30 Анализ начальной популяции Чтобы получить дополнительную информацию о популяции, необходимо нажать на кнопку «Информация о популяции». При этом откроется новое окно, в котором красным цветом отмечена особь с наихудшей приспособленностью, зеленым цветом отмечена особь с наилучшей приспособленностью (рис. 2.31). Ш Информация о популяции SOS©® N: *1 х2 Функция грмспосо.. 1 0.66654 •5,26771565340673 2 1.976S1 •3.8776G497249976 3 1.14337 •4.988255053S7861 4 0.С7918 •4.44313588966558 5 0.92278 •5.18268543464485 В 0.95492 •5.16158517147061 7 0.72133 5.26439799454512 6 0.32675 •5.09335765234009 9 •1.61041 •0.465470850704625 10 С.55741 •3.18S9C4 7393431 11 0.27404 3.98163038517313 12 0.2117 •4.1381616062С645 13 0.43С74 •5.18317476462038 14 0.09697 4.78158657514263 15 0.41616 3.59830799809738 16 0.0294 •4.6614154С270478 17 •1.22514 •1.2293833751839 16 1.1556В •1.41117501796479 19 0.98776 1.88574989030421 20 0.93197 •5.17761556211657 Зеленый цветом отмечена особь с мам лучи ей приспособленностью Коаоыи цветом отмечена особь с наихудшем приспособленностью Рис 2 31 Подробная информация о начальной популяции Рассмотрим полученную популяцию (см. рис 2.30 и 2.31). Особи под но¬ мером I соответствует наименьшее значение функции приспособленности, то есть она обладает наихудшей приспособленностью Данная особь выделена в
списке красным цветом (цвет текста) и будет заменена образованным потом¬ ком. Особи под номером 9 соответствует наибольшее значение функции при¬ способленности, то есть она обладает наилучшей приспособленностью Данная особь выделена зеленым цветом и является элитной особью, то есть автомати¬ чески переходит в следующую популяцию. Во вкладке «Графика» (рис. 2.32) можно увидеть графическое изображе¬ ние популяции (слева) и график изменения наибольшего значения целевой функции при переходе от одной популяции к другой (справа). На графике слева изображен график целевой функции и точки, соответствующие особям в попу¬ ляции. Красный квадратик соответствует особи с наименьшей функцией при¬ способленности. Зеленый квадратик соответствует элитной особи. На графике справа изображено наибольшее значение целевой функции в начальной популяции. Также это значение занесено в таблицу правее графика. Рис 2.32 Графическая иллюстрация начальной популяции Рассмотрим работу алгоритма (рис. 2.33): 1) выберем двух особей для скрещивания. Для этого необходимо нажать кнопку «Селекция». Пусть были выбраны особи под номерами 5 и 14; 2) произведем скрещивание выбранных особей. Для этого необходимо нажать кнопку «Скрещивание». Образовалось три потомка; 3) произведем мутацию потомков. Для этого необходимо нажать кнопку «Мутация» Таким образом, получились мутированные потомки; 4) выберем потомка для добавления в популяцию. Для этого необходимо нажать кнопку «Выбор потомка». Пусть был выбран второй потомок; 5) добавим полученного потомка в популяцию. Для этого необходимо нажать кнопку «Добавить потомка в популяцию». Потомок встанет на место особи, имеющей наихудшую приспособленность. Добавленный потомок выделен желтым цветом. Особью с наихудшей приспособленно¬ стью теперь становится особь под номером 7. 69
Рис 2 33 Результаты применения генетических операторов Во вкладке «Графика» (рис. 2.34) на графике слева появился желтый квадратик, соответствующий вновь добавленной в популяцию особи. При этом исчез прежний красный квадратик, который соответствовал замещенной особи. Красным цветом теперь отмечен квадратик, соответствующий особи с наименьшей функцией приспособленности в измененной популяции. Так как новая популяция еще не сформирована, то график справа остается без изменений. Рис 2 34 Иллюстрация процесса замещения особей в популяции Для того чтобы создать новую популяцию, необходимо нажать на кнопку «Сформировать новую популяцию». Полученная популяция будет иметь вид, представленный на рис. 2.35. 70
г<?1 Информация о популяции ЖВВ № х! х2 Фунщия прмслосо. .. 1 •1.78048 •0.307068256334692 ЖШSMESeaL-::- *3.87760497249976 3 •1.70089 •0.365138481915135 4 •0.98067 •1.9066283834841 5 •0.55495 •3.196217366637S8 8 Л.97863 •0.301017691504363 7 •0.62643 •2.98179512093208 6 •0.66302 •2.87077223517853 9 •1.61041 •0.465470850704625 10 •0.55741 •3.1889047393431 п •1.56024 -0.535979834485993 | 12 •1.30074 •1.04403309304668 13 •0.7925 •2,47474520411771 14 •0.36181 •3.74884585754403 : 15 •0.41616 •3.59830793809738 ! is •1.8435 •0282977687825535 I 17 -1 «22514 •1.2293833751839 ; 18 •1.15568 1.41117501796479 19 •0.98776 •1.88574989030431 20 •0.9958 •1.86214024244337 : Зелмм цветом отмечена особь с иаил^чшей приспособленностью Кдосньм цветом отмечена особь с ндмхуошей приспособленностью Рис. 2 35. Новая популяция Во вкладке «Графика» (рис. 2.36) на графике слева изображены точки, соответствующие новой популяции. На графике справа появилось наибольшее значение целевой функции в новой популяции. Также это значение добавилось в таблицу правее графика. Ярко-красным цветом на графике отмечены проме¬ жуточные значения целевой функции при переходе от одной популяции к дру¬ гой, темно-красным цветом отмечено наибольшее значение целевой функции, соответствующее последней сформированной популяции. С=1 L^J l2=J r ’ . 1 ~i_ 1— 4 i -1 T V-v- I il J ( | vv [ ] A • A *1 Гм,«л **n i \ /_ 1 s\ . ' 1—J \ \ к Г. j л X r U Г, / — — 1 ——— л-.. — Рис. 2.36 Графическая иллюстрация новой популяции 71
Сформируем заданное количество популяций. Для этого необходимо на¬ жать кнопку «Получить ответ». Конечная популяция будет иметь вид, пред¬ ставленный на рис. 2.37 и 2.38. г •J? Информация о популяции 1Ш=_ЬЖ] 1 ; № х1 х2 Функция приспосо ; 1 •1.88653 •0.278139281529012 2 •1.88653 •0.278139281529012 ' 3 •1.88653 •0.278139281529012 < •1.88653 0.278139281529012 * 5 •1.88653 •0.278139281529012 ' 6 •1.88653 0.278133261529012 ; 7 •1.88653 -0.278139281529012 8 •1.88653 0.278139281529012 9 -1.88653 •0.278139281529012 ' 10 •1.88653 •0.278139281529012 11 •1.88653 0.278139281529012 12 -1.88653 0.278139281529012 13 •1.88653 •0.278139281529012 14 •1.88653 0.278139281529012 15 •1.88653 0.278139281529012 ! 16 •1.88653 0.278139281529012 • 17 •1.88653 0.278139281529012 18 •1.88653 ■0.278139281529012 19 •1.88653 -0.278139281529С12 i20 •1.88653 •0.278139281529012 1 Зелень^ цветом отменил ссобь с нлипучием приспособленностью. Красный цветом отмечена особь с наихущием приспособленностью Рис. 2.37. Последняя популяция Таким образом, получен ответ. значение функции приспособленности (целевой функции) / - -0,278; значение координат х, = -1,887. Точное решение задачи имеет вид /* = -0,278; xj = -1,886. 72
Глава 3. МЕТОД ДИФФЕРЕНЦИАЛЬНОЙ ЭВОЛЮЦИИ 3.1. ПОСТАНОВКА ЗАДАЧИ Дана целевая функция /(х) = /(Х|,х2,определенная на множестве допустимых решений Dс R"Требуется найти условный глобальный минимум функции /(х) на множестве D, то есть такую точку х* е D, что Дх*)= min/(x), (3.1) xeD где х = (х,,х2 х„)т, Д = {х|х, €|й,.6(). / = 1.2 и}. 3.2. СТРАТЕГИЯ ПОИСКА РЕШЕНИЯ Данный метод относится к методам нулевого порядка, поскольку при поиске решения используется информация только о величине целевой функции. Сначала на множестве допустимых решений генерируется конечный набор /0 = {хк%к = 1,2с D векторов, называемый начальной популяцией, где NP - размер популяции. Как правило, для этого используется равномерное распределение на множестве допустимых решений D . Далее идет циклический процесс замены текущей популяции новой. Он заканчивается, когда количество сформированных популяций оказывается равным установленной величине М . Для формирования новой популяции проводится NP испытаний. При этом последовательно выбирается каждый элемент текущей популяции (он называется аекпюром-мишеныо х1) и принимается решение, остается ли он в новой популяции или нет. Опишем процедуру на примере. Пусть в начальной популяции выбран вектор-мишень х1 = .vl. Среди остальных ее членов случайным образом выбираются три вектора, отличных друг от друга и от вектора-мишени. ха%х*\хс (рис. 3.1). Пара векторов x(\xh определяет вектор приращения хы-хь. Этот вектор, умноженный на масштабирующую постоянную F (весовой коэффициент), складывается с вектором хс. В результате данной операции, называемой мутацией, получается новый вектор Xе : дгс1 = .Vе т F(x‘* -xh). Если какая-либо координата (например, с номером / ) сформированного вектора л*'1 вышла из множества допустимых решений, она заменяется сгенерированной при помощи равномерного распределения на отрезке \ahbt\ случайной величиной. Поскольку зри вектора выбираются случайно, метод гарантирует, что множество допустимых решений будет исследовано во всех направлениях. 73
Рис. 3.1. Формирование вектора х<] Далее вектор-мишень х' и сгенерированный вектор хс] подвергаются операции скрещивания. Результатом скрещивания является вектор дг5, называемый вектором-образцом. При этом задается параметр операции скрещивания CR. Каждая координата вектора-образца Xs совпадает либо с соответствующей координатой вектора-мишени х\ либо с соответствующей координатой сгенерированного вектора хс| (рис. 3.2). Новый сгенерированный Вектор-мишень Вектор-образец вектор Рис 3.2. Результат скрещивания Если при фиксированном номере # случайное число Ut , равномерно распределенное на отрезке |0;1|, больше CR, то берется координата вектора- 7-J
мишени х', иначе - координата вектора хс|. Последняя координата вектора хЛ (/ = «) всегда определяется координатой сгенерированного вектора хс1. Это делается для того, чтобы даже при СЛ = О вектор Xs отличался от вектора- мишени х' хотя бы одной (последней координатой). Заметим, что при CR - I вектор-образец полностью совпадает со сгенерированным вектором .хс|. Для формирования новой популяции сравниваются значения целевой функции для вектора-мишени х'и вектора-образца (рис. 3.3). Если оно меньше для вектора-образца, то он замешает в популяции вектор-мишень, иначе вектор-мишень остается. Векторы новой популяции становятся мишенями при последующих испытаниях. Выбранный вектор-мишень Результат случайного выбора трех членов полуляаин Рис 3.3 Схема метода дифференциальной эволюции 75
3.3. АЛГОРИТМ РЕШЕНИЯ ЗАДАЧИ Шаг I.Задать размер популяции весовой коэффициент F; параметр оператора скрещивания СЯ; максимальное количество популяций М . Шаг 2. Формирование начальной популяции. Выбрать в множестве D допустимых решений NP векторов: xl,x2,...,xNP, каждая координата которых полагается случайной на отрезке = Положить число популяций т = 0. Шаг 3 Положить j = I (вектором-мишенью выбран вектор х' = х1). Шаг 4. Из числа оставшихся членов популяции случайным образом выбрать три различных члена: xa,xh,xc, отличающихся от вектора-мишени х' Шаг 5. Сформировать вектор .xcl: хс| = хс + F(xa - хь), проверяя принадлежность каждой координаты (/ = l,...,/i) сформированного вектора отрезку | . Если xf е то положить = я, +{b,-al) Ul, где U-, - случайное число, равномерно распределенное на промежутке (0;1). Шаг 6. Сформировать вектор-образец Xs. Для этого положить i = 1 и выполнить следующие действия: а) получить равномерно распределенное на |0;1] случайное число U, \ б) найти xf: - если / = п, то xf = xf1; - если / * и, то сравнить число U, с параметром CR : - если U, s CR,то xf = xf; - если Uj >CR, то xf = xf; в) проверить выполнение неравенства 12 п: - если неравенство выполнено, то процедуру формирования вектора х1 завершить; - если нет, положить /' = /' + I и перейти к шагу 6,а. Шаг7. Формирование новой популяции. Подсчитать значения целевой функции для вектора-образца х* и вектора-мишени Сравнить полученные величины /< v*) и f(x'): а) если f(xx) < fix'), то поместить вектор-образец х* в новую популяцию. б) если /(xs) 2 fix1),то поместить вектор-мишень х' в новую популяцию Шаг X. Проверить выполнение неравенства j 2 NP. а) если неравенство выполнено, то переход к новой популяции завершен, перейти к шагу 9; б) если нет, то положить j - j ^ I. х' = х* (вектором-мишенью выбран вокюр .х' - х1 ) и перейти к шагу 4. 76
Шаг 9. Проверить условие окончания: а) если число сформированных популяций т < М , то положить т = т + 1 и перейти к шагу 3; б) если т = А/, то процесс закончить. Выбрать в полученной популяции вектор, которому соответствует наименьшее значение целевой функции, и считать его приближенным решением задачи. Замечания 3.1. 1. Обычно полагают NP = (5 + 10) п; 0,4 £ F z 1; 0 £ CR £ 1. Рекомендуется: начинать, например, со значения ^ = 0,5, а затем увеличивать Г\ начинать с CR = 0,9 или CR = 1 перед тем, как пробовать CR = 0,1 или CR = 0 . 2. На шагах 3-5 осуществляется операция мутации, а на шаге 6 - скрещивание. 3. В [59] предложены другие варианты линейного оператора дифферен¬ циации, используемого на шаге 5 алгоритма: а) xcl = хе + F(xa + хь - хс - х^), где вместо трех элементов популяции выбираются пять; б) ХС'=ХЛе1, + /Ч.Х°-*А)> где вместо хс выбирается элемент хш популяции, которому соответствует наилучшее значение целевой функции; в) хс| = х^, + F(x° + xb - хс - xd); г) Xc1 = X1 + MXhest - + F(xh - хс), где xf - вектор-мишень. В [43-44] предложены тригономегрическая и направленная схемы, расширяющие возможности метода. 4. В [45] изложено обобщение известных схем в форме хг1 =р + /~6, где р - базисный вектор, 5 - вектор различий (направление поиска), F - коэффициент влияния. Вектор р получается двумя способами: а) в популяции случайным образом выбирается элемент без учета информации о целевой функции; б) в популяции находится элемент xbcsl с наилучшим значением целевой функции. Вектор 5 определяется также двумя способами: а) различиями между случайно выбранными элементами (двумя, четырьмя и т.д.); б) направлением (оно принимается за «хорошее» направление поиска), имитирующим градиентное, поскольку характеризуется различиями между наилучшим элементом Х/*Л/ и случайно выбранным из популяции 77
В результате получены четыре группы методов. Первая группа. Базисный вектор и направление поиска определяются по случайно выбранным элементам текущей популяции без учета значений целевой функции: а) в популяции выделяются два класса С и С'\ содержащих п' и п" элементов соответственно; б) находятся барицентры каждого класса: I Л‘ 1 л" п /-1 п /-! где х‘ - элементы популяции, входящие в данные классы; в) базисный вектор р находится одним из двух способов: - peC'UC"; - peC’UC"; г) сгенерированный вектор находится по формуле xcl =£+ F(VC.-VC), где F выбирается из множества (-1, 0) U (0, 1). Вторая группа. По сравнению с формулой п.«г» первой группы методов в качестве базисного вектора выбирается наилучший элемент из класса С': *с1 = хшс- + F We- - vc) • Третья группа. Вектор различий формируется с учетом информации о величине целевой функции: а) в популяции выбираются два класса С, и С. с числом элементов п+ и «_ соответственно так, что значение целевой функции для каждого элемента из класса С, меньше значения целевой функции для любого элемента из класса С.: Дх‘)s f(xJ), i = I я*;у = I,. б) в каждом классе находятся «минимальный» и «максимальный» элементы: лг",ш, , Хс*",*с*х ,для которых выполняются условия /(хГ) * Дх1)* /<*£“) Vx' е С*; /(x£,n) i fix1) z fixVx' e C.; в) в каждом классе находятся приращения !/♦ _ v*nin шзх I/“ - vmin vmax 5 “ XC. “ XC. » vs - V. “ XC\ 78
./ v? + VS и среднее приращение 2 * в) находятся барицентры классов С+ и С.: г) сгенерированный вектор находится по формуле xci = Ус. +Г<Ус, ~^с +Vs)- Заметим, что по сравнению с классической формулой параметр F может принимать как положительные, так и отрицательные значения. Четвертая группа. В формуле п.«г» третьей группы в качестве базисного вектора используется наилучший элемент в классе С+: Выделение описанных четырех групп позволяет в рамках каждой группы выделять еше несколько различных стратегий поиска. Исследования [45] показывают, что в общем случае минимизации функций со многими локальными экстремумами использование при поиске «наилучшего» элемента и «хороших» направлений делает процесс нахождения глобального экстремума более стабильным, но менее эффективным. 3.4. ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ. АНАЛИЗ ЭФФЕКТИВНОСТИ МЕТОДА Разработана программа поиска глобального минимума, реализующая вышеописанный метод. Среда разработки Microsoft Visual Studio, язык программирования С#. Главное окно программы состоит из панелей выбора: - тестового примера, - оптимизационного метода, - параметров решения задачи, - кнопок управления, - панели вывода результатов, - панели формирования графика, меню и других вспомогательных опций (рис. 3.4). Работа с программой начинается с выбора тестового примера из предложенного списка. Потом выбирается, каким методом оптимизации требуется решить пример: методом имитации отжига или методом дифференциальной эволюции. Рассмотрим работу со вторым методом; алгоритмическое и программное обеспечение метода имитации отжига будет рассмотрено в гл. 5. -W. *ПУс.-Ус.+У5)- 79
После этого задаются: множество допустимых решений D, параметры метода NP,F,CR,M и опции визуализации процесса работы и вывода результатов. Далее выбирается вид расчетов: получение решения сразу или по шагам; в зависимости от желаемого режима нажимается кнопка управления (кнопка « Выполнить» или « Выполнить » соответственно). При нажатии на кнопку « Выполнить» программа производит расчет и выводит конечные результаты: искомый вектор х* и соответствующее значение целевой функции/(*•). Для вычисления по шагам следует нажать на кнопку «Выполнить одну итерацию'». В этом случае алгоритм произведет формирование новой популяции, а программа выведет промежуточные результаты: вектор x,nin из новой популяции, которому соответствует наименьшее значение целевой функции, и /(xmin); на графике отобразятся векторы сформированной популяции в виде «жирных» точек, для одномерного случая - на графике функции (рис. 3.4), для двумерного случая - на изображении линий уровня (рис. 3.5). Рис 3.4 Ввод параметров постановки задами Разработанная среда позволяет регулировать масштаб графика удобными и простыми в использовании способами. Например, на рис. 3.7 показана увеличенная область, обведенная штриховой линией на рис. 3.6. so
».«I Wn»«r« awчц»».» ■» , Wt Стах V*U S*5fl4»-K« ' /1*1 - :v,; *> .^v, ♦ у/ - 3.T, i\\)* Эл,* «■ 4л/ - 2Дмм(У| «.51 * / 1л| -<2T-lj*-.'*binU) r flM * .Чоцл -0.4) • xl - М*»-»дг,- a.V+d-y,)1 'им^ин* 1 t* Л* и ** 1 * № (\миму» Ml* |4)ут«1*'« г*м» iT'sfe * к. г Kw s«w »«M i rovk'M'tMM) ® :г*л.т*»1 W •20 // / ' Я ' % \ \ •• у л ч ! \ ^ * /у : ! /[ У/ п 1 • / • / \ • V и • « • 1 Рис. 3 5. Процесс поиска минимума функции Розенброка 14 Со?*"*!» X | 0.41*. I ПЩ w40-*ww»liirt-ia51 »<wci£l|:tM *Ч‘ мскг *)иmi,6.414 }ЦУ1 ИГ I)хг » -4 М. ‘ИЯ’ 4 !•! 2И 4.»Х: ? 1 3 Oil С 4*41 Util* Miiii » К 75* -*170) П . .«« »»ИЦ -viHil *li Рис. 3.8. Таблица итераций Наряду с надписями к осям графика предусмотрена возможность определить координаты любой точки на графике, подведя к ней курсор «мыши». Результаты всех расчетов заносятся в таблицу, вызов которой осуществляется нажатием кнопки «Таблица результатов»; промежуточные результаты для каждого шага отображаются в таблице, открываемой кнопкой «Окно итерации» (рис. 3.8). Таблица результатов может сортироваться по значениям целевой функции, номеру шага или величинам параметров 8)
Пример 3.1. Целевая функция /(х) = (х2-х,2)2+(1-х^2. Аналитическое решение задачи: х* = (1;1)г, /(х*) = 0 - глобальный минимум. Результаты численного решения приведены в табл. 3.1. Таблица 3.1 Множество допустимых решений Параметры метода Результаты NP F CR м х*г Л*‘) х, е[-1000; 1000] х2е[-1000; 1000] 12 0,8 0,9 120 (0,9999; 0,9999) 0,0000 х,€[-10000; 10000] х; €[-10000; 10000] 20 0,8 0,9 200 (1,0000; 1,0000) 0,0000 х, €[-10000; 10000] х, е[-10000; 10000] 20 0,8 0,2 500 (1,0000; 1,0000) 0,0000 *,€[-10; 8] х, е[-50; 10000) 15 0,9 0,9 200 (1,0000; 1,0000) 0,0000 Пример 3.2. Целевая функция /(х) = Зх2 + 4х2 + 23cos(x( -0,5). Аналитическое решение задачи: х* = (-2,0709; 0)г, /(х*) =-6,4892 - глобальный минимум Ближайший к глобальному минимуму локальный минимум: (2,8162;0)7 , /(2,8162;0) = 8,1927. Результаты численного решения приведены в табл. 3.2. Таблица 3.2 Множество допустимых решений Парамет ры метода Результаты NP /<• CR м х*г /(*’) г,€| -5000 . 5000] х.е[ 5000; 5000] 10 0,8 0,95 70 (-2,0742; 0,0039) -6,4890 х, е|0; 50000] х.е[0; 100000] 15 0,8 0,8 90 (2,8123; 0,0156) 8,1939 х. е[0; 50000] х, € [ 0, 100000) 15 0,8 0.8 90 (2,8202; 0,0870) 8,2232 х,е[-10"; 10'] х. €[-107; 107] 10 0,9 0,9 150 (-2,0708; -0,0003) - 6,4892 *,€[ 3; -2) х. € | 1000; 1000) 10 0,9 0,9 40 (-2,0655; -0,0110) - 6,4884 82
Пример 3.3. Целевая функция Глобальный минимум: х* = (6/7;—3/7/ а (0,857!,-0,4285)т, Дх*)«-1.2857. Численное решение приведено в табл. 3.3, а также на рис. 3.9. Таблица 3.3 Множество допустимых решений Параметры метода Результаты NP F CR м х*г /(**) дг, е[-50; 50] х, е[-50 ; 50] 10 0,8 0,9 20 (0,872; - 0,425) - 1,285 х, €[-50; 50] х. е[-50; 50] 10 0,8 0,9 70 (0,857; - 0,428) - 1,285 X, €(-50; 50] х, €[-50; 50] 10 0,8 0,1 70 (0,713; -0,700) - 1,131 х, е[-50 ; 50] х:е[-50; 50] 10 0,8 0,1 150 (0,857; -0,43) - 1,285 €[-50; 50] х,е[-50; 50] 10 0,8 0,8 70 (0,856; - 0,428) -1,285 х|е[-10!->; 10у] х, е [ —5* 10°; 5-10’] 10 0,8 0,9 150 (0,858; - 0,429) - 1,285 Рис. 3.9. Результат решения задачи Рис. 3.10. Результат решения задачи минимизации квадратичной функции одномерной минимизации 83
Пример 3.4. Целевая функция /(х) = 5cos(x-0,4) + x2. Глобальный минимум: х*х-1,886, /(*♦) = 0,278. Ближайший к глобальному минимуму локальный минимум: х, = 2.335. Численное решение приведено в табл. 3.4, а также на рис. 3.10. Таблица 3.4 Множество допустимых решений Параметры метода Результаты NP Г CR м X* /(**) *€[-50, 50] 10 0.8 0,9 20 -1,888 0,278 *€[-50;50] 4 0.8 0,9 20 2,335 3,671 *€(-50; 50] 4 0.8 0,9 20 -1,880 0,278 *е[-10''; 10v) 10 0,65 0,9 50 -1,857 0,280 .rct-lO1*, 10В] 10 0,65 0,1 100 -1,652 0,413 де( -10IS; 10'5] 10 0,65 0,9 100 -1,886 0,278 Список примеров, предлагаемых для тестирования метода: 1. /(*) = 2х2 + х}х2 + *2 - Зх| - квадратичная функция, имеющая один глобальный минимум; 2. /(.х) = Зх2 + 4.yj • 23 cos (х,-0.5) - имеет много локальных и один глобальный минимум; 3. /(л) = (2.x -1)2 + 30sin х - имеет много локальных и один глобальный минимум; 4 /(.v) ~ 5cos(x - 0,4) f х2 - имеет много локальных и один глобальный минимум; 5. f(x) = (х2 - х,2)2 +(1 -*|)2 (функция Розенброка) - имеет один глобальный минимум. Сравнивая результаты численных и аналитических решений задачи (3.1) для приведенных примеров целевых функций, можно сделать вывод о том, что при правильном выборе параметров метод дифференциальной эволюции дает высокую точность приближения к глобальному минимуму функции. S4
Глава 4. МЕТОД ЧАСТИЦ В СТАЕ 4.1. ПОСТАНОВКА ЗАДАЧИ Дана функция f(x) = /(дс,,jc2.—»**), определенная на множестве допустимых решений Dс Л", где х = (x1>x2,...,x„)r, = {х|х, е |д,А1> / = 1,...,л}. Требуется найти условный глобальный минимум функции /(х) на множестве D ,т.е. такую точку х* е D, что Дх*) = min/(x). jce D 4.2. СТРАТЕГИЯ ПОИСКА РЕШЕНИЯ Основная идея метода состоит в моделировании поведения стаи животных при поиске пищи. Если один из членов стаи видит путь к цели, то остальные особи очень быстро последуют его примеру. В [39] приведен следующий иллюстрирующий пример. Если повесить за окном кормушку, то за несколько часов к ней слетится много птиц, даже если до этого кормушку никогда не вешали. Как же птицы узнают о еде? Предполагается, что птица, увидев, что её «соплеменник» начинает куда-то быстро перемещаться, подражает его поведению, т.е. перемещается в том же направлении и примерно с той же скоростью. Другой член сгаи, обнаружив, что его соссд, который до этого отдыхал на ветке, куда-то улетает, также поднимется в воздух и полетит за соседом. Таким образом, животные, следуя довольно простым правилам, избегают опасности и находят пишу. Каждый член стаи рассматривается как частица в многомерном пространстве, которая имеет положение и скорость (она появляется в процессе движения). Каждая частица изменяет свое положение, запоминая наилучшее, которому соответствовало наименьшее значение целевой функции Члены стаи сообщают информацию о хороших позициях друг другу и используют ее для корректировки своего положения и скорости на каждой итерации. Каждая частица, используя свой прошлый опыт, ищет свое решение задачи. Известно несколько способов выбора «соседей» для обмена информацией между частицами. Можно использовать расстояние, но практика показывает, что у «близких» соседей, как правило, нет ценной информации. Идея использовать наилучший результат среди членов стаи возможна, но далека от реальной ситуации. Поэтому предполагается, что частица случайным образом выбирает заданное число «соседей» (также случайное в заданном диапазоне) и собирает от них желаемую информацию. 85
Процедура поиска заканчивается при достижении максимального числа итераций. В качестве приближенного решения выбирается наилучшее среди всех членов стаи. При реализации метода частиц в стае используются следующие основные принципы, взятые из природы: - для достижения цели используется множество особей (частиц); - каждая особь получает информацию о передвижении соседей; - движение по направлению к цели осуществляется путем подражания действиям соседа; - учитывается информация о цели (величина целевой функции /(*)), получаемая через органы чувств (например, запах пищи); - используется собственный прошлый опыт. При этом моделируются тенденции живого организма повторять успешное в прошлом поведение, особенно в случае локальной неудачи; подражать успеху остальных; двигаться за лидером, выбираемым среди соседей. Пусть имеегся стая из NP частиц с позициями {х',х2 xw}c с Па каждом этапе (итерации) у частицы с номером выбирается случайное число соседей NI'~ /?[/V/niin, /V/niax] из членов стаи, определяемое равномерным (Л) распределением на отрезке [Wn>in* WmmcL где /V/inin - минимальное число соседей, - максимальное число соседей (не превышающее NP). Среди соседей находится частица с номером я, и позицией хя,'к, которой соответствует наименьшее значение целевой функции. Каждая частица с номером j хранит информацию о своей лучшей позиции достигнутой в течение к итераций. Скорость частицы у'**1 с учетом текущего положения и скорости, своей наилучшей позиции xj'k в прошлом, позиции х"' '* лидера среди соседей вычисляется по формуле: где к - номер итерации; vJ'k,xJ,k - скорость и позиция частицы на к-й итерации соответственно; <о - весовой параметр, характеризующий инерцию (память) частицы; аир- параметры, учитывающие степень влияния лидера среди соседей и прошлого опыта частицы (весовые коэффициенты) на её последующую скорость; г, и г2 - случайные параметры, заданные равномерным законом распределения Я[0;|]. Новое положение частицы находится суперпозицией текущего положения и перемещения частицы в единицу времени (т.е. скорости): (4-1) v,/.*-T _ xJ.k + I (4.2) S6
Если новая позиция +| оказалась лучше, чем , необходимо в качестве наилучшей позиции Jc-'-**1 принять xJ,k+|. Расчёт новой скорости и новой позиции по формулам (4.1) и (4.2) производится для j = \,...,NP,т.е. для всех частиц стаи. После этого выполняется следующая итерация, затем следующая, и так до выполнения условий окончания расчета. В качестве условия окончания обычно выбирается равенство числа итераций к некоторому наперед заданному числу (максимальному числу итераций), но такое условие не гарантирует близости к минимуму целевой функции в конце расчета. 4.3. АЛГОРИТМ РЕШЕНИЯ ЗАДАЧИ Шаг 1. Задать NP - количество частиц в стае; A7ulin, Nlimx - параметры выбора числа «соседей» в стае; N - максимальное число итераций; весовой коэффициент ад, характеризующий инерцию; параметры аир, используемые при вычислении скорости частицы. Шаг 2. Сформировать стаю частиц: - положить число итераций к = 0; - в области D допустимых решений задать NP частиц с позициями *'-0,х2’0 Для этого использовать равномерный закон распределения, т.е. для каждой частицы с номером = I NP найти позицию х/0 = (х/° х'я)т, полагая - rt[e„A,], / = I п; - положить начальные скорости равными нулю: v-' 0 = 0, = I,..., NP. Шаг 3. Для каждой частицы j = 1,..., NP найти: - случайное число N/7 соседей при помощи равномерного распределения на отрезке Л7|Пах]. среди них найти частицу с номером и позицией х",,к, которой соответствует наименьшее среди выбранных соседей значение целевой функции, - наилучшую позицию xJ,k в течение к итераций (при 0 положить х1»шх»). Шаг 4. Для каждой частицы в стае ( j = 1 найти скорость и положение на следующей итерации: v> **' =(avJ,k + аГ|(х;>* - лс^*)+юРг2^хя>'* (4.3) xj.k*\ я xj.k + yj.k+l ' (4 4) где v'k,xjk - скорость и положение частицы с номером на й итерации; г,, г2 - случайные параметры, заданные равномерным законом распределения на отрезке (0;1). 87
Если f(xJ,k*l)< /(х■'•*), то запомнить новую наилучшую позицию: Xj'k41 = х*'к*\ f[xj,k*1) = f(xJ,kt’])t положить к = к + 1. Шаг 5. Проверить условие окончания: а) если к = УУ, то процесс закончить. Найти частицу в стае с наименьшим значением целевой функции и принять её положение в качестве приближенного решения задачи; б) если к < N у то перейти к Шагу 3. Замечания 4.1. 1. Рекомендуемые в результате выполненных различными авторами исследований значения параметров алгоритма: со е [0,01; 0,7|; ЛТ = {30,50,100}, = 15> wm« =25> * = 200*500; аир близки к I, но меньше. 2. Существуют различные модификации изложенного метода, в которых предлагается [56]: а) пересчет скорости вместо (4.1) производить по формуле г'-**1 -ой''-* + аг,(ху* - ху**)* а>рг2^хЯу’* - xjk J + coyAjZ, (4.5) где г* - случайное число, заданное равномерным законом распределения на [0;I]; z - вектор скорости выбранного случайным образом (на основе равномерного распределения) соседа; у - параметр, меньший I (рекомендуется начать с у-510'*4, а затем увеличивать для преодоления «притяжения» к локальным минимумам); б) пересчет положения вместо (4.2) производить по формуле xJ.k+\ _ xJ.k (4.6) где 6 - случайное число, равномерно распределенное на отрезке [-0,5;0,5). в) вместо вычислений по формуле (4.2) на каждой итерации дополнительно производить локальный поиск по положению, задавая параметр nstcp е (5;15], получая последовательность решений: Л-'"**1 XJ* + »>>•**'f/w nstep 2 - l\ m = nstep% (4.7) ) где nstep параметр, определяющий число решений в локальном поиске, пмер ] nstcp ,, w - целая часть числа . Среди полученных решении лу,АИ .v^ A 41 выбрать то, которому соответствует наименьшее значение целевой функции.
4.4. ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ. АНАЛИЗ ЭФФЕКТИВНОСТИ МЕТОДА На основе разработанного алгоритма сформировано программное обеспечение на языке CU в среде Microsoft Visual Studio 2005. Разработан интерфейс пользователя, позволяющий: - вводить параметры постановки задачи; - задавать параметры метода; - использовать модификации алгоритма; - контролировать шаги работы алгоритма с необходимой визуализацией; - анализировать полученный результат; - проводить серию одинаковых опытов для изучения работы алгоритма. Для анализа эффективности алгоритма и сформированного программного обеспечения выбраны задачи минимизации типовых целевых функций: квадратичной с линиями уровня в виде эллипсов и функции Розенброка с линиями уровня, имеющими овражную структуру. Пример 4.1. Дана функция /(х) = х2 + 2х2, х = (х,,х2)Г. Множество допустимых решений D = [- 1;3]х [- 1;3]. Требуется найти глобальный минимум функции /(х) на множестве D . Выберем следующие параметры алгоритма: NP = 30, N = 50, jV/mill - 15, /V/„,ax = 25, со = 0,5; а = р = 0,5. На рис.4.1 показан общий вид интерфейса программы. Слева указываются значения параметров задачи (коэффициенты целевой функции, границы множества допустимых решений) и параметров метода (коэффициенты, определяющие пересчет скорости и положения каждой частицы в стае), справа графически отображается ход решения задачи (линии уровня целевой функции и положение частиц в стае), указываются параметры иллюстрации поиска решения. Имеются возможности производить вычисления по шагам с соответствующей иллюстрацией (рис.4.3) или выполнить все шаги алгоритма и проанализировать полученное в результате решение (рис. 4.4). Программа позволяет наблюдать текущую и наилучшую позиции каждой частицы, а также её скорость во время поиска решения (рис.4.2). Пользователю предоставляется возможность выбрать желаемые модификации алгоритма из числа описанных в п.2 замечаний 4.1, а также производить серию повторяющихся опытов для анализа эффективности метода. Программа позволяет получить иллюстрацию работы алгоритма по шагам или сразу найти искомое приближенное решение. 89
Рис. 4.1. Ввод параметров постановки задачи м •1 «1 •1 •• .3 .1 ••*1 .4 • **• • «mu* 1 пин »**>:» • У»’»!* :иш1 • tun • иза: 9Х4Л» 4СИ1М •0.)U'XX 1 : OIM4 .мп> i СМИ; air**. itMA. itum SJWM jOURI.V* j - % 1Г»М UMU сл*е*1 4I4U* i пт* 4*«**•' J’.-Mi. e.ivtf oau»* •ce.'nix- ! j • ;тм ttDMI 1ИШ I"M' 1Ш1 ucusm . й^СЯ' ЛГУ j i • *9МПМ ’■ют ’•/ЛЯ1 ‘«г** • lire* A*!*» inm* ШЕКШ n'.u*4 с ■' ал С JTJB' »*r?n (CWI : вне? с *n» 1ЖК 4МОД ДОШ1ЯХ г ou\wi «-w ‘ 9ЛНС • тип «ия-ц 9ХМ»! «»*# : o»«i хч . с с ит tf «' •AXJ « ' К4И МПЙ* :vm* • 4*911 , 9^11 .ГМ1.Ц | ABMVe >«яиху. V в/гим <>••«« 0>ЛП 0» 4/ i«VM» tx«r* с :л>м oa.ui ftMNWI •1 • ИЛИ HAII tmmr «1ЙИ1 • влм Aim»** :imay • X'AU «»*•*>» * лпм !UHV 4*»:u ■IJJf’l* C*C Л* 1ДСТ: m«N «гит . СА Рис 4.2 Текущая информация о положении частиц в стае Информация, представленная на рис. 4.2, позволяет анализировать параметры, входящие в формулу (4.1), т.е. для каждой частицы из стаи отражаются ее текущее положение, координаты наилучшей позиции после произведенных к итераций, координаты наилучшей позиции среди соседей и соответствующие значения целевой функции. оо
Число итераций = 5. Число итераций = 13. ТКГ и ■ \ \ 1 ’ V \ \ * Число итераций к = 36. Рис. 4.3 Промежуточные результаты решения примера 4.1 На рис. 4.3 показано изменение положения частиц в стае с ростом числа итераций. Очевидно, все большее число частиц находит решение поставленной задачи минимизации квадратичной функции. 91
a fi Рис 4 4 Результаты решения примеров 4 1 и 4 2 при so Точное решение залами известно - это точка ,х*(0;0)г, значение функции в точке минимума /(*•) = о. Это позволяет оценить точность приближенного решения, которое получается в результате работы алгоритма. Программа дает следующее приближенное решение (рис. 4.4, координаты точки минимума (3,1 I0'6; 8-10~7)г, минимальное значение целевой функции равно 1,09• I0-11. Таким образом, отклонение решения, полученного программой, по величине функции от истинного решения задачи имеет порядок I0"11. Рассмотренный пример показывает, что задачу минимизации квадратичной функции метод частиц в стае достаточно точно решает даже без использования модификаций. Пр.. мер 4.2. Решим пример 4.1, но будем использовать меньшее число соседей, гс. Л7т||| =5, /V/imx = 10. Процесс поиска решения представлен на рис 4 5 Результат работы программы отражен на рис. 4.4,Сг. координаты точки минимума (-1,1-10 1,1 •КГ3)7’, минимальное значение целевой функции равно 3,48 • 10_ь. Таким образом, отклонение приближенного решения, полученного программой, по величине функции ог истинного решения задачи имеет порядок 10"°, т.е в 1СР раз больше, чем отклонение решения примера 4.1 с большим числом соседей. Рассмотренный пример показывает, что чем больше число опрашиваемых соседей, тем точнее получаемое решение. 02
Процесс пошагового решения примера 4.2 отражен на рис. 4.5. Начало поиска решения, к = 1 Число итераций = 13. Рис 4.5. Промежуточные результаты решения примера 4.2 Пример 4.3. Решим задачу минимизации функции Розенброка с рекомендуемыми параметрами метода (см. п.1 замечаний 4.1 и пример 4.1). Дана целевая функция /(х) = 1 Oo(jc2 - xff + (1-Х|)2, дс = (х|,х2)г. Множество допустимых решений D = [- 1;3]х [-1;3]. Требуется найти глобальный минимум функции /(х) на множестве D. 93
Пусть NP= 30, yv = 50, yv/mjlJ=15, /V/niax = 25, a> = 0,5; a = p = 0,5. Процесс пошагового решения примера 4.3 изображен на рис. 4.6. С ростом числа итераций частицы в стае постепенно приближаются к точке минимума целевой функции (в данном случае функции Розенброка, имеющей достаточно сложный рельеф линий уровня). Число итераций £ = 14. Число итераций «3. J 1 и Число итераций 36. Рис 4 6 Промежуточные результаты решения примера 4.3 <4
щ 4 м. ДЛ.И*Г,<|, f,«* .М» «с *• ; * и ■•1» ( •» М { С ЛИ |> j/; /уУ У ' '• L - .•>/ «;• я «Л : €1 «V 4 — г- т ^ ! У Г* ПГ?.ГГГ5=П t : т9ттт I и» Я 1 • днмиш 'Цлчмтм -: •**> ate ; 1 il! 1 Т! I ‘ 1! |Ч || Рис. 4.7. Результат решения примера 4.3 при * ■ so Точное решение задачи известно: = (i,i)r, /(**) = 0. Результат работы программы (рис.4.7): координаты точки минимума (0,79; 0,62)г, минимальное значение целевой функции равно 0,04. Отклонение приближенного решения, полученного программой, от истинного решения задачи имеет порядок 10"2. Из приведенного примера видно, что овражная структура целевой функции оказывает существенное влияние на точность решения и предъявляет более жесткие требования к алгоритму поиска глобального экстремума. Модификации метода частиц в стае (см. п. 2 замечаний 4.1) повышают точность численного решения задачи. Разработанное программное обеспечение позволяет сравнить различные модификации метода частиц в стае. Пример 4.4. Для исследования модификаций метода рассмотрим решение примера 4.3, но будем выполнять большее число итераций. Дана функция /(.v) = 10o(.r2-.v2)"+(1-х,)2, = (дГ|,.т2)г. Множество допустимых решений D -[- 1;3]х [- 1;3| Требуется найти глобальный минимум функции /(х) на множестве Пусть NP = 30, N =300, NFmm = 15, = 25, <о = 0,5; а = р = 0,5. Задача была решена программой 100 раз методом частиц в стае, а затем его модификациями и комбинациями этих модификаций (табл. 4.1). Результат оценивался путем сравнения с точным решением x = (l,l)r. Если результат решения попадал в окрестность точки минимума радиусом е, то решение задачи считалось успешным. 95
Таблица 4.1 Модификация Параметры модификации Число успехов (из 100), е = 0.01 Число успехов(из 100), е = 0,001 — — 39 22 Применение формулы (4.3) для пересчёта скорости у = 0,01 40 19 Применение формулы (4.4) для пересчёта положения — 21 4 Применение формул (4.3) и (4.4) у = 0,01 26 3 Использование локального поиска(4.5) nstep = 10 100 100 Применение формулы (4.3) для пересчёта скорости и локального поиска (4.5) у =0,01, nstep = 10 100 100 Как видно из приведенной табл.4.1, использование локального поиска существенно улучшает метод частиц в стае и позволяет «обходить» овражную структуру функции Розенброка. Если повысить точность расчетов, то преимущество метода частиц в стае с локальным поиском над другими модификациями становится ещё более очевидным. При добавлении локального поиска точность повышается сразу на несколько порядков. Если модифицировать процедуру пересчета скорости, то отклонение от истинного решения задачи по величине функции имеет порядок I0”5, а если добавить ещё и локальный поиск, то эта величина даже в худшей ситуации будет порядка I0“,J. а для болсс благоприятных исходов она становится практически неразличимой для компьютера 4.S. ПРИМЕНЕНИЕ МЕТОДА ЧАСТИЦ В СТАЕ ДДЯ СИНТЕЗА ОПТИМАЛЬНОГО УПРАВЛЕНИЯ ДИСКРЕТНЫМИ ДЕТЕРМИНИРОВАННЫМИ СИСТЕМАМИ Рассматривается применение метода частиц в стае к задаче синтеза оптимально! о управления дискретными детерминированными системами, описываемыми разностными уравнениями (см П.1). Для частного случая, когда система линейная, разработана программа, позволяющая решать задачу при различных значениях параметров постановки задачи и выбранного метода параметрической оптимизации. С помощью программы было решено несколько тестовых примеров, которые позволили проанализировать эффективность применения метода частиц в стае. *>(»
Общая постановка задачи. Поведение модели объекта управления описывается разностным уравнением *(' +1) = /М0,и(0), I = 0.1 I, (4.8) где х - вектор состояния системы, xeR"; и - вектор управления, ме(/(/)£ R’; 7/(0 - некоторое замкнутое выпуклое множество допустимых значений управления; / - дискретное время, /е7' = [0,1,...,Л/-1], число шагов N задано; f(i,x,u) = [fx(t,x,u)y...,fn(t,x,u))г- непрерывно дифференцируемая вектор- функция. Заметим, что по сравнению с моделью, описанной в приложении, дискретное время обозначено переменной t вместо переменной , используемой в методе частиц в стае для обозначения номера итерации. Начальное состояние системы задано: *(0) = х„. (4.9) Правый конец траектории свободен. Предполагается, что при управлении используется информация только о дискретном времени /, т.е. применяется так называемое программное управление. Множество допустимых процессов ?)(0,х0) - это множество пар d = (*(•),/<(•)), включающих траекторию х(-) = {хо,х(1),...,х(Л0} и управление «(•) = {h(0),m(1),...,m(/V-1)}, i/(i) €(/(/), удовлетворяющих уравнению состояния (4.8) с начальным условием х(0) = х0. На множестве допустимых процессов 7)(0,хо) определен функционал качества управления т = £/uM')."('>W(*(ao), (4.Ю) 1-0 где fn(t,x,u),У(х) - заданные непрерывно дифференцируемые функции. Требуется найти такую пару </* = (х* (•),// * (•)) е ?)(0,Хо), что /(</*)= min 1(d). /4 | ,ч dflHO.Xb) V*1 1 J Для простоты реализации в постановке задачи были сделаны следующие упрощения. Уравнение состояния (4.8) полагалось линейным: х{1 +1) = >4х(/) т I = 0,1 Л -1, х(0) = х0, (4.12) где А - матрица размеров п*п, в - матрица размеров nxq. Функционал качества управления считался квадратичным (л = 2) или линейно-квадратичным (для случая п = I): 97
Hd)=Z\xT(t)Sx(t) + uT(t)Qu(t)\ + xT(N)Lx(N), (л = 2), (4 13) 1(d) = J^\Sx2(t)+Qu2(l)\ + Lx(N),(/» = 1), (4 14) /-0 4 где S - симметрическая неотрицательно определенная матрица размеров лхл, £ - симметрическая неотрицательно определенная матрица размеров qyq, А - симметрическая неотрицательно определенная матрица размеров пуп (при л = 2) или число при п = I. Множество допустимых значений управления (/(/) для каждого / полагалось равным прямому произведению отрезков [л,,£,],/ = 1,...,<7. В рассматриваемых далее примерах для простоты было выбрано q = 1, т.е. имеется скалярное управление, значения которого принадлежат отрезку \а,Ь\. Стратегия решения задачи. При использовании метода частиц в сгае для решения задач (4.12),(4.13) или (4.12),(4.14) будем оптимизировать значение функционала (4 10) с помощью выбора управления м( ). С точки зрения теории оптимизации - это задача поиска минимума целевой функции N переменных //(0),//(l)%...,//(ZV -1), значение которой определяется формулой (4.10), на множестве допустимых решений, заданном ограничениями на значения управления- м(/) €(/(/), / = 0,1,...,/V-1. Позиция частицы под номером / на А-й итерации представляет собой вектор-строку u,J =(//'4(0).и'*(1) w'*(N-i)). Для получения значения целевой функции f(uJ'k) потребуется: а) найти траекторию системы дгм = (хи,*'4(1) дг,4(УУ)), соответствующую управлению I/' ‘, из уравнения состояния (4.8) с начальным условием (4.9); б) вычислить значение критерия (4.10), соответствующее /Л4 и дг 4. Алгоритм. Описанная стратегия решения реализуется с помощью общего алгоритма метода частиц в стае, описанного в разд. 4.3. Она состоит из следующих шагов. Шаг I. Задать NT - количество частиц в стае; Л7т,ч - параметры выбора числа «соседей» в стае; К - максимальное число итераций; весовой коэффициент (о, характеризующий инерцию; параметры аир, используемые при вычислении скорости частицы. Шаг 2. Сформировать стаю частиц: - положить число итераций А' =0; - на множестве допустимых решений задать NP частиц с позициями .//* \ \ Для этого использовать равномерный закон распределения, тс, для каждой частицы с номером j*\%...%NP найти позицию
uJfl = (и,{°,|). полагая и/*0 равномерно распределенной случайной величиной на отрезке (о,Л); - положить начальные скорости равными нулю: v>M 0, 1 . Шаг 3. Для каждой частицы j = 1 NPнайти: - случайное число N1' соседей при помощи равномерного распределения на отрезке [NI^.NI^], среди них найти частицу с номером «у и позицией «"'•*, которой соответствует наименьшее среди выбранных соседей значение целевой функции; - наилучшую позицию uJi в течение итераций (при 0 положить *I А\ и1, = и* ). Шаг 4. Для каждой частицы в стае (у = I NP) найти скорость и положение на следующей итерации по формулам (4.3) и (4.4). Если запоминается новая наилучшая позиция частицы: мЛ*+| /(» Шаг 5. Проверка условия окончания работы алгоритма. Если полагаем k=k + \ и переходим к Шагу 3. Если к = К, расчёт закончен. В качестве решения задачи и* =(и*(0).м’0)... -I)) выбирается позиция частицы в стае с наименьшим значением целевой функции и вектор х — (х,.дг*(I)... ,х*(Л')), который рассчитывается по уравнению состояния (4.8) и начазьному условию (4.9). Программное обеспечение. На основе разработанного алгоритма сформировано программное обеспечение на языке C# в среде Microsoft Visual Studio 2005. Разработан интерфейс пользователя, позволяющий: - вводить параметры постановки задачи; - задавать параметры метода; - использовать модификации алгоритма; - анализировать полученный результат; - сохранять результат в памяти компьютера для последующего анализа. Пример 4.5. Даны модель объекта управления *(/ + !) = *(/) + «(/), где дгей, »/е R, / = 0.1, ,.,/v-1; начальное условие jr(0) = jr„ и функционал /= £_Lm2(/) + 2 х(ло. /to ' + | Требуется найти минимальное значение функционала и оптимальный процесс (/(•).«*(•))» на котором это значение достигается. 99
Сравнивая постановку задачи с (4.12) и (4.14), имеем: я = 1, <7 = 1, л = 1, 5 = 1, S - 0» (? = tJ^ , I- - 2. Будем использовать рекомендуемые значения параметров метода частиц в стае: NP = 30, N = 50, A7mjo =15, NIinM = 25, « = 0,5, а = р = 0,5. Д|%* ЮАМИ1* mOA«> Рк^н Рис 4 8 Задание параметров постановки задачи и метода решения Структура главного окна программы такова (рис. 4.8): слева вводятся условие задачи и параметры метода частиц в стае, кроме того, можно выбрать один из тестовых примеров для решения; справа внизу находятся кнопки управления программой, а справа вверху отображается результат работы программы таблицы, содержащие оптимальное управление, оптимальную траекторию и минимальное значение функционала. Для ввода условия задачи необходимо заполнить поля ввода и таблицы на вкладках в левой части окна. В качестве значений параметров метода частиц в стае но умолчанию выбираются рекомендуемые параметры, это отображается в полях ввода Значения этих параметров можно изменить. При выборе одного из тестовых примеров (4 5 или 4.6) все поля заполняются автоматически. Для решения задачи необходимо нажать кнопку «Расчет». Программа не поддерживает пошаговое отображение процесса поиска решения, так как это действие существенно увеличивает время работы алгоритма. По окончании процесса поиска решения результат отображается в таблицах справа и на графиках, которые вызываются по кнопке «Графики» (рис. 4.9). 100
4ое *• 4 «С »«•*••» L. V. ПИ ULi В S 1 1 I «!••? »4»429 *>291* ) Рис 4.9. Результат решения примера 4.5 Полученный результат можно сохранить в памяти компьютера, чтобы он был доступен после закрытия программы. Для этого необходимо нажать кнопку «Сохранить результат». Для просмотра файла с записанным в него результатом необходимо нажать кнопку «Протокол». Ниже приведен протокол решения примера 4.5 при N = 4 и х0 =3 (рис. 4.10). С*Д' гумм Форам! 1*4 (|фм«1 «атр«п*а 1.00 матраса %: 1.00 O'oa-^.»—■ -а управ*»***: •loo a uit>(o; < loo t. ‘ О 00 ijijp. 0: . «отрмц» l : 4 «0: ) Тр»0у»*С» f.U*. p6«(nrw.'BM-4>« »<П 1 Г#*»**» Лр0и1»»д**0 »»TO*0<# м»<’ми В C***. Параметра# метода г м* - )0; *l*ln - IS: biui - 2»; к - 100. o**ga - 0.5; «If» - o.S; bat a • 0.1. rtlyivT»? p»i(N4i: и*: -1.41.*90*1 HUS o.cMisnuiri: 2.0»09Ю1)9)6)11 -l.lMlO'ltlWfll 1 1.1»; 0904 nm -i.4»S10€4461'2S? -i.5:»;es;»s»isA4 ♦ .Wl'm*10»S46 ■ Ю l - • 2.»4S«29*0291941 J Рис 4 10 Сведения о решении задачи: оптимальная траектория, оптимальное управление, минимальное значение функционала 101
Точное решение задачи известно (пример П.2): и*(/) = -/-1, х* (Г) = xq - ^i(t» I), min / = 2x0 - N(N + I). Для и x„ = 3 решение будет выглядеть так: и'(0) = -1, и‘( 1) = -2, и’(2) = -3, и‘(3) = -4, х’(0) = хо = з, х*(1) = 2, х'(2) = 0, х*(3) = -3, х*(4) = -7, min/ = -4. Таким образом, можно оценить точность решения, которое получается в результате работы алгоритма. Результат можно улучшить, решив задачу методом частиц в стае с использованием локального поиска, выбрав соответствующую модификацию метода (рис. 4.11). * — гчж£Ш£ЗШШ р/*Н а + ягг,(г** - X I*) 4 - Jf *■*) ♦ ыуг5г 6-R |-0.5;0.5| „д./> + _ i) т — 1 плГгр € (S; 1SJ '-«• •• 6J С«□ Рис. 4.11. Выбор модификации метода частиц в стае т»йл Пмю (r««iu (Vxr^til )1Х««й «rt*il«4-tftl*s*y(t). t-O-.M.i 4: 00 .М41р«ч.А ■: 1.00 Огр4Н*ч»м*в -a ynpi(M>M ООО « w(t?r01 4 100 >4u*(«(»)*TM,<(tj*u(c)AT*0,u(t).t«O. . ч-ОччМ. s: 0.00 И««р«и4 О. 1.00 I ; .'.ОО Л р«6у«тс« М4<*Т« *1п I Г**гУИ« -рО"Ц«Д«^0 W4T0JOM М4СТИ1 • (Т|« П4р*у«тру KtiOJJ' '» - 10; Nialn « 11. щчая - 21; к - 100; - ИГЯОЙ%|й||ЛС1 АОИ(| с Al(tll«fpcw n«tap < p«iy»yv** pmik.i: о. *9«t)9«tf»02e«4$> 1 419V1 1.0000000121/i »I ■* .OCOOOOOCIJtfKX* I* . I /.owMuvio/vm /. >i к• V* '.uowovoi.'mki Mn i - Рис 4.12. Результат использования локального поиска 102
Как видно из протокола, приведенного на рис. 4.12, использование модификации с локальным поиском дает приближенное решение, практически совпадающее с оптимальным. Пример 4.6. Даны модель объекта управления х,(/ +1) = *.(/), X; (/ + !) = X, (I)-11(f), где xeR\ |м|£|, / = 0.1; начальные условия х,(0) = 2, х,(0) = -3 и функционал I =xt (2) + х* (2). Требуется найти минимальное значение функционала и оптимальный процесс (х’( ),«’(•)), на котором это значение достигается. Сравнивая постановку задачи с (4.12) и (4.13), имеем: 2, , -С :).-(.•,).•■(: :)■«•-■■(::) Программа позволяет вводить матрицы, характеризующие систему управления (рис. 4.13). «5* Синю оптимального управления дискретной системен методе х I ^ МУ И ПоС1й»-ГЖДЛ ЛИДЛ'*' Общи** ей a j Раамерюсти | Начатые условия | М-Эфи^з А Матрица В [ Матрице S ) Матрица Q ] Матрица L [ Рис. 4 13. Задание параметров постановки задачи Решение задачи производилось с использованием рекомендуемых значений параметров метода частиц в стае NP = 30, /V = 50, Nfmin = 15, Л7|ПЯХ = 25, о = 0,5, а = р = 0,5. Результат работы программы (рис. 4.14, 4.15): м‘(0) = 0,62, «’(!) =-1.04, х*(0) = х„ -(2 -3)г, х*(1) = (-3 1,38)г, х*(2) = (1,38 -1,9б)г, min/ = 5.751. Данное решение несколько отличается от оптимального (пример П З). Чтобы его улучшить, применим одну из модификаций, описанных в п. 2 замечаний 4.1. 103
I АЛЛ'»» Jl(C«l)*A*M[t2«B*v[t). «-0 .1-1 *etp*VB A 'U.C<C 1.00 Ii.oo o.oo 1.0 ггр'»*-**»' -• y*r»ae*«w«* i < «(oro: * ( .'-}fca(i(tJ*T«s*a(l)'vf(J'T'Q*Mr«).C-0. .N 1)»к(м)*Т"1*я(«). foST.* 0.00 0.00 M«vp*(*» о У.00 •.JTMUJ 4: i oo o.oe o.oo i.oo • 7 Ю: a -i ip«6y«K* Mir» «*,»•, o6«(ri44iav« «1я 1 >M»n« npo»ia«A*«u micwim «Utm ■ lUf. Л||К|«||« МГЛА* я* - 90; ftta<n - It; alaai - >»; К • 100; oawqi . O.t: »lfi rejy/kiBT pftxoaa: о>:азт«гшт .i.oi*ioi*»oo6i;.» .i;?7704t;*4<M4i .|.мтмж)И1 «in t • i.:n:*no)MOii Рис. 4.14. Сведения о решении задачи: оптимальная траектория, оптимальное управление, минимальное значение функционала /в | ~ 1 J ь нм ~чт —— .19» • .19# ■9 «С I 1 а ИЗСЕЕЗЭ №-П *Л Vy> , •V» / z V J • i*y 109 f »••»*•« 1 -17913411COMOU I [lll + IHH on I [ 0~m | »» *4* Г чаос»**'** I Г ( 4: ) [♦"». j ++ Ola* ' •rl.) Л'ЗОЮЖОМ Г с* Рис. 4 15 Графики оптимального управления и оптимальной траектории в примере 4.6 НМ
Применив модификацию с использованием локального поиска (рис. 4.16), получим м*(0)* 1, »/‘(1) = -1, ДС*(0) = Jcft «(2 -3)г, х*(1) = (-3 1)', х*(2) = (I -2)\ min / = 5, т.с. точное решение поставленной задачи (см. пример П.З). •Л . .«маша» • ©*Лл Пр»аи Оормаг P-J CnpiiL* ^ Постдю«ьд лдд»чи . t-O..N-1 мдтрицд д: 0.00 1.00 1,00 0.00 матриц» В: 0.00 -1.00 Ограничены* м» управление: •1 « uCt)(0] * i % J-»tn(*:tjAfVx[»)TuCtjAfQ-u[t).t-0. .N-1 )ax(NjAfU-K[N3. матрица s 0,00 0,00 0.00 0.00 матрица Q: 0.00 матрица l: 1.00 0.00 0,00 1.00 * - 2 *0: 2 -3 требуете» найти хв.и*. обеспечивающие »1п ! Реьеиие громэаедено методой частиц а стае, параметры метода: мг - 30; Hietn - is; ьхпах - 23; к - 100: о»ео» - о.З; alfa - 0,3; bera - 0.5. мсполмаоаалс» гоиальммА по*с« < гараметроч nstep - ю. геаультат рещение- и*; 1 -1 *•: 2 -3 •3 1 1 -2 «Иг I • 5 Рис 4 16. Результат использования локального поиска Пример 4.7. Решим пример 4.5 при значении конечного дискретного момента времени, равного N = 20. Значения параметров метода возьмем те же, что и в примерах 4.5 и 4.6. Дополнительно будем использовать локальный поиск, поскольку результаты решения предыдущих примеров показывают значительное увеличение эффективности применения метода при его применении. Результат решения приведен в табл. 4.2 и отражен на рис. 4.17. Таблица 4.2 t 0 1 2 3 4 5 6 «*(/) -091 - 1.91 -2.90 -3.93 -5.27 -5 86 -6 71 V*(/) _ 3 00 .. 2.09 0.18 -2.72 - 6.65 - 11.92 17 79 t -7 8 9 10 11 12 13 U*( 1) -8.14 -8.89 - 10.05 lows - 12.05 - 13.07 -74.59 X*(t) - 24.49 - 32.64 -41,52 -51.57 f.w • • J.I 7-1 - 87.67 L . 14 _L5 . 16 _ _L7_ ._ AS. 19 ... 20 H*(t) - 14.93 - 16 49 . -1.6.72 - 18 11 - 18 97 - 19 95 x*(l) - 101.40 - 116.33 - 132 82 140 - 167 66 - 186 62 - 206.58 min I — —203,923 22195245 105
1 Л till:#’ 1*"*J 1??J L-*^?5—. ut> Л 30 i-rr.n 1N.*T U4.M Чм у*л» .и♦■» •m* ~r*€T j ->r •—"G- T ~т<—Г-a—<r >j *T м^^-x. 11 £ 5] fTj В Я L^rr_. ям I • >20) 17И771Э1ЗД dfc~" Рис 4.17. Графики оптимального управления и оптимальной траектории в примере 4.7 Точное минимальное значение критерия для N = 20 и г0 = 3 подсчитаем по формуле, приведенной в примере 4.5: min / = - 204. Отклонение решения, полученного методом частиц в стае с использованием локального поиска, от точного решения имеет порядок 10"1, т.е. выше, чем при N = 4. При использовании метода частиц в стае без модификаций решение становится еще менее точным Таким образом, увеличение временного отрезка, на котором ищется оптимальное управление, приводит к ухудшению точности, поскольку возрастает число переменных в задаче оптимизации. Следует заметить, что аналогичные выводы справедливы и при решении большинства типовых проблем поиска экстремума классическими методами. Таким образом, в данной главе сначала исследована эффективность метода частиц в стае для решения типовых задач теории оптимизации. Выявлено существенное влияние применяемых модификаций на качество получаемого решения Предложен подход к применению данного метода при решении задачи поиска оптимального программного управления дискретными детерминированными системами. Показано, что при правильном выборе параметров метода может быть получено приближенное решение, достаточно близкое к оптимальному или совпадающее с ним. 106
Глава 5. МЕТОД ИМИТАЦИИ ОТЖИГА 5.1. ПОСТАНОВКА ЗАДАЧИ Задана целевая функция /(х) = /(х|,...,х„), определенная на множестве Л". Требуется найти глобальный безусловный минимум функции /( ), т.е. такую точку х*е Rn,что /(х*)= min/(х), (5.1) где х = (х хп)т. 5.2. СТРАТЕГИЯ ПОИСКА РЕШЕНИЯ Рассмотрим стратегию поиска глобального минимума, реализованную в методе имитации отжига, и поясним основные используемые термины. Метод имитации отжига относится к классу стохастических. Он характеризуется тем, что на каждой итерации разрешается переход в состояние с более высоким значением целевой функции с вероятностью, рассчитываемой исходя из распределения Больцмана-Гиббса, что и послужило основанием для его названия. Действительно, при охлаждении жидкого металла переход термодинамической системы из состояния с энергией £| в состояние с энергией Е2 происходит с вероятностью -<r2’£t) Р = е кТ. (5.2) где к - постоянная Больцмана; Т - температура [27]. Чтобы достичь состояния с минимальной энергией, что соответствует отжигу, нужно обеспечить возможность выхода из локальных энергетических минимумов, а значит, увеличить параметр р, что обеспечивается выбором большого начального значения температуры Т. При оптимизации аналогом энергии является целевая функция, а для выхода из областей притяжения локальных минимумов разрешается переход в точки с худшим значением целевой функции с определенной вероятностью. Для целей глобальной оптимизации стратегия поиска, основанная на использовании распределения (5.2), стала применяться, начиная с работы [53]. Её реализация позволяет проскочить локальные минимумы оптимизируемой функции и попасть в область притяжения глобального минимума. Попадание в эту область происходит с определенной вероятностью, поэтому метод имитации отжига не гарантирует нахождения глобального минимума функции. Однако при правильной политике выбора траектории изменения «температуры» Г происходит не только улучшение начального приближения, 107
ио и существенное приближение к глобальному экстремуму. Как правило, необходимая эвристическая политика реализуется за счет выбора удачного начального приближения, высокого значения «температуры» и постепенного её снижения. В ходе решения поставленной задачи на множестве Rп задается начальная точка х°. Далее на каждом шаге для текущего решения хк случайным образом генерируется некоторое новое решение у из его окрестности. Если значение целевой функции для нового решения меньше значения, соответствующего текущему решению, то новое решение заменяет текущее. В противном случае, вычисляется вероятность замены: генерируется случайное число на промежутке (0.1) и сравнивается со значением выражения v Если сгенерированное число оказывается меньше, то в качестве следующей точки выбирается у, а иначе остается хк. Выражение (5.3) получается из правой части выражения (5.2) путем замены физической постоянной к в (5.2) на параметр С. За счет выбора значения этого параметра происходит управление процессом. Процедура заканчивается при достижении максимального числа итераций. 5.3. АЛГОРИТМ РЕШЕНИЯ ЗАДАЧИ Шаг /. Задать начальное значение глобального параметра (температуры) Г(), параметр закона распределения Больцмана С>0, параметр уменьшения температуры (3 е |0,8; 0,99], N - максимальное число итераций. Шаг 2. Задать начальную точку х° е Rn. Вычислить значение целевой функции /( v°). Положить число итераций к = 0. Шаг J. Сгенерировать случайный вектор Дл\ описываемый гауссовой I -|М1: плотностью вероятности р(Ах) = , ~ С.\р(—"——). V(2*/;r 2'/; Шаг 4. Вычислить: у -хк t Ах, /(у), Д/ = /(у)-/(**)• Шаг 5.11айти новое решение - если в точке у значение целевой функции меньше, чем в точке хк, то перейти в точку у\ положить хк4] = у \ - если в точке у значение целевой функции больше, то сгенерировать согласно равномерному закону распределения случайное число на промежутке [о.]) и сравнить с величиной схр(-А//СТк). Если сгенерированное число меньше, в качестве следующей точки хк~* выбрать у, иначе положить ms
Вычислить значение целевой функции /(х*+|). Ша? 6. Уменьшить параметр Тк: 7’*+| = Р Шаг 7. Проверить условие окончания: а) если к = N -I, то процесс закончить: = x*+I, fix*) = /(x*+l); б) если к < N - 1, то положить к = к + 1 и перейти к шагу 3. 5.4. ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ. АНАЛИЗ ЭФФЕКТИВНОСТИ МЕТОДА Разработана программа поиска глобального минимума, реализующая вышеописанный метод. Среда разработки Microsoft Visual Studio, язык программирования С#. Главное окно программы состоит из панелей выбора тестового примера, задания начальной точки х° и параметров метода, кнопок управления, панели вывода результатов, панели формирования графика, меню и других вспомогательных опций (рис. 5.1). Работа с программой начинается с выбора тестового примера из предложенного списка. После этого задаются компоненты вектора х°, параметры метода 7|),С,р, N и опции визуализации процесса работы и вывода результатов. Далее выбирается вид расчетов: получение решения сразу или по шагам; в зависимости от выбранного режима нажимается кнопка управления (кнопка « Выполнить» или « Выполнить одну итерацию» соответственно). При нажатии на кнопку' «Выполнить» программа производит расчет и выводит конечные результаты: вектор хщ и значение /(**); на графике отобразятся: х°, х*; дня одномерного случая - график функции (рис. 5.2), для двумерного случая - изображение линии уровня, проходящей через точку х" (рис. 5.3). Для вычисления по шагам следует нажать на кнопку « одну итерацию» В этом случае алгоритм произведет один шаг, а программа выведет промежуточные результаты: вектор х*+1 и значение /(х*+|); на графике отобразятся: х* («жирная» точка на графике), х*+1 (символ «звездочка» на графике), для одномерного случая - график функции, для двумерного случая - изображение линии уровня, проходящей через точку хк *1 По умолчанию в случае, если х*+| = х* (те. на к-и шаге процесс не перешел в новую точку у), на графике появляется и «мигает» в течение нескольких секунд отброшенная точка у и соединительная линия между точками х* и у (рис. 5.4). Другими словами, на графике видно, как алгоритм «прощупывает» множество допустимых решений. 109
Рис. 5.1 Ввод параметров постановки задачи •' :'tx) * Jv,j. 41/ - 1\*иЦХ% - 0.5) •• /(*» (jv I)* * .•<>nn(.v| • /<%!-• 4’w(t 0.4) • |д Их} tx, л,)' •••[3 S5» Рис. 5.2. Результат решения задачи одномерной минимизации
Л* 1 - 2*i* 4 Vi * V * *yi /l-v) - Д»,J ♦ 4x,: ♦ :.Uo*( v, 0.5) /(jr1-(lv l); ДОмЦх) /|л)* 5соИд ~lW) f x' •* I П* *•» ии Рис. 5.3. Результат поиска минимума функции Розенброка Рис. 5.4. Иллюстрация процесса поиска В ходе вычислений по шагам получаемые решения лс*+1 отображаются на графике, где строится линия, последовательно соединяющая предыдущее решение с текущим («траектория»), а для двумерного случая дополнительно для каждого решения х*+1 строится соответствующая линия уровня (рис. 5.5). Разработанная среда позволяет регулировать масштаб графика удобными и простыми в использовании способами. Например, на рис. 5.6 показана увеличенная область, обведенная штриховой линией на рис. 5.5. ill
Рис 5.5. «Траектория поиска» Рис. 5.6. Изменение масштаба Для «очистки» рабочей области графика в двумерном случае следует нажать на кнопку «Очистить». Тогда на фафике останется текущая точка х* и соответствующая линия уровня. Наряду с подписями к осям графика предусмотрена возможность определить координаты любой точки на графике, подведя к ней курсор «мыши». Результаты каждого расчета заносятся в таблицу, вызов которой осуществляется нажатием кнопки «Таблица результатов»', промежуточные значения параметров и промежуточные результаты для каждого шага отображаются в таблице, открываемой кнопкой «Окно итерации». Таблицы могут сортироваться по значениям целевой функции, номеру шага или величинам параметров Список примеров, предлагаемых для тестирования, полностью совпадает с приведенным в разд. 3.4. Пример 5.1. Целевая функция /(.v) = 2х} + ххх2 + л'* - ЗХ|. Аналитическое решение задачи: *•«(6/7.-3/7)' s (0,8571,-0.4285)', /(.v*) = -1,2857. Численное решение, полученное с помощью программы, приведено в табл. 5.1. Таблица 5.1 11ача111>пая ючка Параметры метода Результаты г" -V с* Т„ р X*’ /(*•) (500; 500) Ю1 0.85 1000 0.99 (0.8571;-0,4286) - 1,2857 ( 15; 0) Ю1 0,85 100 0,99 (0,8201;-0,3837) - 1,2826 ( 150. 48) 10' 0,85 100 0,96 (-0,1137; 1,7179) 3,1226 ( 150. 48) 10* 0,85 100 0,96 (-1,5590; 5,3302) 29,6393 (- 150; 48) 10' 0,85 100 0,99 (0,8698; - 0,3452) - 1,2774 (- 150; 48) 300 0.85 1000 0.96 (0,8258;-0,3989) - 1.2838 (2. 5) 100 0.05 20 0.96 (0,8257;-0,3954) - 1,2837 ( 500; 500) 1^ 0,85 1000 0,99 (0.8571;-0,4286) - 1,2857 и:
Пример 5.2. Целевая функция /( х) = 3xt2 + 4xj + 23cos(x( - 0,5). Анал итическое решение задачи: х* = (-2,0709; 0)г, /(**) = - 6,4892. Ближайший к глобальному минимуму локальный минимум; (2,8162;0)' .Численное решение приведено в табл. 5.2. Таблица 5.2 Начальная точка Параметры метода Результаты х"т N С '« Р /(**) (120;-80) 10J 0,88 50 0,99 (-2,0794; 0.0150) -6,4874 (7; 1) 300 0,88 15 0,97 (2,8268; 0,0072) 8,1942 (7; 1) 104 0,88 15 0,99 (-2,0759; 0,0136) - 6,4882 (-17; 1) 105 0,88 150 0,99 (- 2,0709; 0,0000) - 6,4892 (0; 0) 500 0,85 10 0,99 (- 2,1347;-0,0411) - 6,4303 Пример 5.3. Целевая функция /(jc) = (jc2 -xj2)2 +(1 -*|)2. Аналитическое решение задачи: х* = (1;1)’, /(**) = о. Численное решение представлено на рис. 5.3: х* = (0,995; 1,004)г, /(лс*) = о.ооо; процесс поиска решения проиллюстрирован на рис. 5.4. Пример 5.4. Целевая функция f = 5cos(x-0,4) + Аналитическое решение задачи: х*г-1,886, /(*•) = 0,278. Ближайший к глобальному минимуму локальный минимум: = 2,335 Численное решение приведено в табл. 5.3, а также на рис. 5.2. Таблица 5.3 Начальная точка Параметры метола Результаты х° N С тп Р X* /(х*) 5 10^ 0,85 1 0,990 - 1,886 0,278 5 10‘ 0,85 1 0,970 2,336 3,671 26 2 10* 0,85 5 0,990 - 1,886 0,278 - 1500 10* 0,85 700 0,990 - 1,802 0,297 - 1500 10( 0,85 700 0,987 - 1,916 0,280 - 1500 1,2 -10^ 0,85 700 0,987 - 1,886 0,278 Сравнивая результаты численных и аналитических решений задачи (5.1), получаем, что при правильном выборе параметров метод имитации отжига дает высокую точность приближения к глобальному минимуму функции, однако в некоторых случаях для этого потребуется большое число итераций. Возможность «увидеть» процесс решения задачи избранным методом отличает разработанный программный продукт от аналогичных и позволяет результативно формировать политику выбора параметров, что имеет решающее значение при пользовании эвристическими методами оптимизации. ИЗ
Глава 6. МЕТОД МУРАВЬИНЫХ КОЛОНИЙ 6.1. ПОСТАНОВКА ЗАДАЧИ Пусть имеется ориентированный граф G(V,IV), где V = {v|,v2,...,vn} - множество вершин, а W = - множество дуг vy). который задан матрицей смежности = -1 > те‘ квадратной матрицей порядка я, у которой _ К (v»>v/)e и/» |о. \vi'vj)е w • Рис. 6.1. Постановка задачи 1 Каждой дуге (v/,vy)eH/ ставится в соответствие весовой коэффициент - видимость вершины Vj из вершины vi9 г\ц = —-,где d# - длина дуги. dv Требуется найти кратчайший путь из вершины А е V в вершину В е V, т.е. такую последовательность дуг = (w0 = /I, wp = начинающуюся в вершине А и оканчивающуюся в вершине В (рис. 6.1), чтобы выполнялось условие L'AB=m\n{LAB}. (6.1) где LaB - длина пути из вершины А в вершину В (сумма длин входящих в путь дуг), р - число дуг в пути. 6.2. СТРАТЕГИЯ ПОИСКА РЕШЕНИЯ Основная идея метода состоит в моделировании поведения колонии Муравьёв при поиске оптимального маршрута в изменяющейся среде обитания. Муравьиная колония представляет собой популяцию. Популяция самовоспроизводящаяся группа особей (отдельных организмов) одного вида, населяющая определённую территорию в течение многих поколений. Общение между отдельными особями осуществляется двумя способами: прямым и непрямым. Прямой способ заключается в непосредственном контакте особей. Нас же будет интересовать непрямой способ, который у Муравьёв реализуется следующим образом. При прохождении по какому-либо участку пути муравей откладывает особое пахучее вещество, называемое феромоном. Другой муравей, попавший на этот участок, почувствует феромон, и, скорее всего, пройдёт по этой же тропе (так как будет знать, что здесь уже побывал кто-то из in
его колонии). Чем сильнее концентрация феромонов на тропе, тем более привлекательна она для других муравьев. Если поведение отдельной особи выглядит примитивно, то поведение всей популяции таковым не является. В качестве примера рассмотрим, как будет вести себя колония при появлении препятствия на пути от муравейника к пище (пример взят из [29]). На рис.6.2 ,апоказан установившийся маршрут пути муравьев, на рис.6.2,6 на пути от муравейника к пище поставлено препятствие. После этого у каждого муравья возникает альтернатива - идти налево от препятствия, т.е. по пути 1, или направо, т.е. по пути 2 (рис.6.2, в).Так как путь 1 будет короче, чем путь 2, за одно и то же время через путь 1 пройдёт большее количество Муравьёв, чем через путь 2. Соответственно, на пути 1 уровень феромонов будет больше, чем на пути 2, и всё больше Муравьёв будут стремиться выбрать путь I. Феромон обладает свойством испаряться со временем, а значит, уровень феромонов на пути 2 будет уменьшаться. В конце концов все муравьи из колонии будут выбирать путь I (рис.6.2,г). Из рассмотренного примера видно, что выбор оптимального пути происходит за счёт влияния длины (и связанной с ней видимостью) и испарения. Метод муравьиных колоний, применяемый для решения задач оптимизации, основан на идеях, многие из которых в живой природе осуществляет популяция Муравьёв. : Зь- } Пюш Рис 6 2. Поведение муравьиной колонии при изменении среды обитания При реализации метода муравьиных колоний используются следующие основные принципы: • для сбора информации на каждом этапе используется множество Муравьёв (особей); • направление движения муравья определяется вероятностным образом с использованием влияния длины пути и испарения; • для выбора оптимального пути используется память 115
На каждом этапе поиск лучшего пути осуществляет поколение особей. Под поколением здесь подразумевается группа из т муравьев, действующая в момент времени и, к - номер поколения. Отдельная особь поколения муравьев стартует из вершины А и ищет путь в вершину независимо от остальных. Под словами «ищет путь» подразумевается, что муравей переходит из одной вершины графа в другую по дугам до тех пор, пока не попадет в вершину В. При этом каждая последующая вершина выбирается вероятностным образом. Введём для каждой вершины v, множество соседних с ней вершин N, = {vy : ,<ty *0 }, т.е. множество вершин, в которые можно перейти по дуге из вершины V;. Для каждого муравья будем формировать список уже пройденных вершин Q. На начальном этапе в список Q записывается вершина А, а затем после каждого перехода новая вершина, в которую попал муравей. Исходя из того, что кратчайший путь не должен содержать циклов, введём множество М, - Njо (И \@), которое назовём множеством вершин, допустимых для перехода из вершины v,. Будем полагать вероятность перехода в вершину, не принадлежащую множеству Mj, равной нулю. Введём также положительную величину т^(/*) - уровень феромонов на дуге (vhvj)в момент времени tk. Уровни феромонов на всех дугах образуют матрицу (itjOktyj-i• Предположим, что в начальный момент времени /п на каждой дуге задано некоторое положительное значение уровня феромонов Рассмотрим процедуру перехода из одной вершины графа в другую. Выбор каждой последующей вершины осуществляется вероятностным образом на основе двух величин (видимости и уровня феромонов), взятых в определённой пропорции Вероятность перехода из вершины v, в вершину vy вычисляется по формуле w ГЧгЬ'<6'2) Z ) П-, 1с М, где - иидимость вершины vy из вершины v, , а - относительная значимость уровня феромонов, р - относительная значимость видимости. Коэффициенты а и р в совокупности определяют, что важнее: результаты исследований предыдущих поколений или выбор оптимального на данном этапе пути. В качестве коэффициентов относительной значимости можно использовать не а и р, а а и I - а , так как важны не сами коэффициенты, а их соотношение. После вычисления всех вероятностей перехода отрезок [0; 1 ] разбивается на промежутки [0;l] = (J/y,y € Л/м длины которых равны РцЦк). Далее запускается j датчик случайных чисел, который генерирует случайную величину м. 116
Следующая вершина пути муравья определяется индексом промежутка, в который попала величина ы. Поиск кратчайшего пути с использованием формулы (6.2) позволяет избежать выбора на каждом шаге вершины с наилучшей видимостью (расстояние до которой является наименьшим из возможных для данной вершины) за счёт использования опыта предыдущих поколений, который отражен в уровне феромонов тy(tk). Построение пути муравьем завершается, если выполняются условия: 1) достигнута вершина В; 2) достигнута уже пройденная ранее вершина. Это означает, что произошло зацикливание. Путь, в котором произошло зацикливание, убирается из рассмотрения. После того, как построен путь 0.AB(tk) для каждого муравья, из совокупности путей выбирается оптимальный на данном этапе путь С1°Ав0к) ~ ПУТЬ наименьшей длины из всех путей для данного поколения муравьев и оптимального пути для предыдущего поколения, т.е. £%('*) = } (6.3) Далее происходит обновление уровня феромонов на дугах графа. Этот процесс осуществляется по следующей формуле: т (I> = 1(1-е>М'*> + Ат1- (v»vy)en%<'*>’ (64ч ’’ **' | (1-р)Х/;(/*). (»’(.»’/)« где р - параметр, характеризующий испарение; Ах - добавка феромона. Величина добавки феромона в данном случае считается постоянной. После этого генерируется новое поколение, для него повторяется описанный выше процесс, и так далее, пока не выполнится условие окончания цикла генерирования новых поколений: отношение разности длин оптимальных путей для к -го и (к - 1)-го поколения к длине оптимального для к -го поколения пути станет меньше некоторого наперед заданного числа е, т.с. I ^лвОк)- I-лвОк-1)I < с. Заметим, что на начальных итерациях может случиться так, что два раза подряд в качестве оптимального пути для поколения будет выбран не самый короткий путь. Со временем всё больше муравьев будут выбирать верный путь и вероятность выбора неопти.мального пути станет мала. Для предотвращения преждевременного выхода из цикла вводится величина Т - момент времени, до достижения которого условие окончания процесса не проверяется. 117
Таким образом, условие окончания процесса поиска пути будет иметь следующий вид: ^лв^к) ~ ) ^лв((к) tk*T. <е, (6.5) 6.3. АЛГОРИТМ РЕШЕНИЯ ЗАДАЧИ Шаг I. Инициализация переменных и задание начальных условий. Задаются е, Г, номер поколения к = 0, начальный момент времени »0, число муравьев т, степень испарения р, начальный уровень феромонов т,у(г0), добавка к уровню феромона Ат, коэффициенты относительной значимости аир. Шаг 2. Моделирование прохождения А:-го поколения Муравьёв через граф. Для каждого муравья выполняется следующая последовательность действий: 1. Начало. Добавление в список пройденных вершины А, формирование списка непройденных вершин. 2. Поиск пути из вершины А в вершину В : а) выбор следующей вершины вероятностным образом в соответствии с вероятностью перехода, задаваемой формулой (6.2); б) добавление новой вершины в список пройденных, исключение её из списка непройденных вершин; в) проверка условий окончания построения пути муравьем. Если выполняются, перейти к п.З, в противном случае перейти к п. а) 3. Если последняя вершина совпадает с предпоследней, из списка пройденных удаляются все вершины и поиск считается неудачным. Если же последняя вершина совпадает с 5, список пройденных вершин определяет один из возможных оптимальных путей. ///</.• 3. Выбор оптимального на данном этапе пути, т.е. пути, удовлетворяющего условию (6.3). Шаг 4 Обновление уровня феромонов на всех дугах по формуле (6.4). Шаг 5. Проверка условий окончания работы алгоритма (6.5). Если условия выполнены, в качестве оптимального пути берётся оптимальный на последнем этапе, т.е. = Здесь tK - момент окончания работы алгоритма, К - номер последнего поколения Муравьёв. Если же условия не выполнены, полагаем /**| = + I, +1 и переходим к Шагу 2. I IS
п* = d,j * 0 1 1 1' 1 0 1 1 1 1 0 1 1 1 1 0 Пример 6.1. Дан граф с множеством вершин И = {vi. v2, v3, v4}, где v, =(10,0), v2 =(25,70), v3 =(20,100), v4 =(50,10), в скобках указаны координаты вершин на плоскости. Значения видимости вычисляются по формуле п* = —. гДе riy - J(Xj - Ху)2 + (у,- - у7)2 , а матрица смежности имеет вид S = Требуется найти кратчайший путь из вершины v} в вершину v4. Для решения задачи составим матрицу видимости ' 0 0,02 0,01 0,02' 0,02 0 0,03 0,02 0,01 0,03 0 0,01 ч0,02 0,02 0,01 0 , Шаг 11.Пусть Т = 9; е = 0,01; /л = 5; р = 0,1; к =0, /0 = 0; т^(0)= 0,1; Дт = 0,04; а-1,0-2. Шаг2/. Путь ищет нулевое поколение Муравьёв. Первый муравей. 1. Начало пути - вершина v3, т.е. (? = [vj], список непройденных вершин K\(? = [v,,v2,v4]. 2. Поиск пути: а) найдём вероятности перехода в другие вершины на данном этапе: ^з.(0) = Рзг(0) = ^(0) = T3l<0)*il? + + *м(Р)*|£ О’1 °>°l2 + °>1 тдг(°)п32 _ 0,1 тз|(°)пз1 0,1 *31 (0)431 + т32^0)г132 + ти(0)пи 0,1 0,012+0,1 *34(°)434 0Л 0,1 0,012 +0,10,032 +0,1 0,012 II 0,0 И 0,032 +0,1 0,012 II = Т7*0,09; 0,032 0,032 + 0,1 0,012 II = — * 0,82; 0,012 = — *0,09. Запускаем датчик случайных чисел: о = 0,81. Выбираем вершину v2(cm. стратегию поиска решения); б) список пройденных вершин Q = [v3,v2], список непройденных вершин r\(? = h,v4]; в) вершина v4 не достигнута и зацикливания не произошло, значит, переходим к п. а). 119
а) />2,(0) = /*24(0) = Ц1*0)Т^ 0,1 0,02 х2|(°)П21 + т24(0)л224 0,1 0,022 +0,1 0,02Т ‘ °’5 ’ Т24<°)П24 0,1-0,022 05 ^2|(°)П21 + х24(0)п224 0,1 0,022 +0,1 0.022 “ ’ ' Запускаем датчик случайных чисел: ш = 0,54. Выбираем вершину v4; б) список пройденных вершин Q = [v3>v2, v4], список непройденных вершин К \ Q = [v, ]; в) так как муравей попал в нужную нам вершину г4, переходим к п.З. 3. Q = {(v'j, v2^,(v2, v4)} - возможный оптимальный путь. В дальнейшем для сокращения записи будем указывать список пройденных вершин, т е. ° = (vJ.v2<v4l Второй муравей и последующие ищут путь из вершины v3 в вершину v4 точно так же, как и первый. Приведем только результаты поиска (табл. 6.1). Таблица 6.1 № муравья Пройденный путь Длина пути 1 h.vj.rj 95,41 2 145,41 3 h-J 95,41 4 h. vj 145,41 5 95,41 Шаг.?/. П(||(0) = [v}, v2, v4] - оптимальный на первом этапе путь, его длина /?4<0)- 95.41. Шаг 4,. Происходит обновление уровня феромонов Например, для дуги (v>,v4): т24(1) = (1 - р)[т24<0) + Ат) = (1 -0,1)(0,1 + 0.04) = 0,126, а для дуги (v,,v3): т,з<1) = (I - р)х,з(0) = (I - 0,1)- 0,1 =0,09. Матрица уровня феромонов будет иметь следующий вид: ( 0 0,09 0,09 0,09) 0,09 0 0.09 0,13 0,09 0,13 0 0,09 (0,09 0,09 0,09 0 , Шаг 5,.Проверим условия окончания работы алгоритма. Число итераций равно I (10), значит, условие окончания работы алгоритма не выполнено. 11оложнм к -I, г, - 1 н переходим к шагу 2. М>)= 120
Шаг 22. Путь ищет поколение муравьев № 1. Приведём сразу результаты поиска. Таблица 6.2 № муравья Пройденный путь Длина пути 1 [v,.v„v„vj 145,41 2 145,41 3 k.vj.v,,»-,] 145,41 4 k.v„vj 95,41 5 (vj.Vj.vvJ 145,41 Шаг 3>. Оз4(1) = [w3, v2, »^4] - оптимальный на втором этапе путь. В качестве примера специально была взята задача, правильный ответ в которой очевиден. Пока мы видим, что правильный путь ещё не найден. Посмотрим, что же будет дальше. Шаг 4]. Происходит обновление уровня феромонов. Матрица уровня О 0,08 0,08 0,08^1 0,08 0 0,08 0,15 0,08 0,15 0 0,08 v0,08 0,08 0,08 0 J Шаг 52-Проверим условия окончания работы алгоритма. Число итераций равно 2 (<Ю), значит, условие окончания работы алгоритма не выполнено. Положим к = 2, переходим к шагу 2. Шаг 2}. Путь ищет поколение Муравьёв № 2. Таблица 6.3 феромонов будет иметь следующий вид: (т,у(2)) = № муравья Пройденный путь Длина пути 1 lvj>v:> vj] 95,41 2 Iwvj 95,41 3 h.vj.vj 95,41 4 lv»*vi> vj] 95,41 5 h.»'2,v4] 95,41 Шаг 3). Пз4<2) = [v3,v2, v4] - оптимальный на третьем этапе пу ть. Шаг 4). Происходит обновление уровня феромонов: 0 0,07 0,07 0,07^1 0,07 0 0,07 0,17 0,07 0,17 0 0,07 ч0,07 0,07 0,07 0 , Шаг 5з. Проверим условия окончания работы алгоритма. Число итераций равно 3 (<Ю), значит, условие окончания работы алгоритма не выполнено. Положим к = 3, переходим к шагу 2. (ч,(3))= 121
Ситуация изменяется только при Шаг 2Л. Путь ищет поколение муравьев № 5. Таблица 6.4 № муравья Пройденный путь Длина пути 1 h.’J 94,87 2 [‘V’j.vvvJ 145,41 3 95,41 4 95,41 5 95,41 Шаг Зл. fi$4(5) = [v3, v4] - оптимальный на шестом этапе путь, его длина Z$4(5) = 94,87. Шаг 4Л. Происходит обновление уровня феромонов: (т/>(6)) = О 0,05 0,05 0,05' 0,05 0 0,05 0,19 0,05 0,19 0 0,09 ,0,05 0,05 0,05 0 Шаг 5Л. Проверим условия окончания работы алгоритма. Число итераций равно 6 (< 10), значит, условие окончания работы алгоритма не выполнено. Положим к = 6, переходим к шагу 2. Шаг 27.Путь ищет поколение Муравьёв № 7. Таблица 6.5 № муравья Пройденный путь Длина пути 1 95,41 2 95,41 3 h.vj 94,87 4 K.v’j.v4] 95,41 5 95,41 Шаг 37- П34(6) = h,v4] - оптимальный на седьмом этапе путь. Шаг 4? Происходит обновление уровня феромонов: (м?>)= ' 0 0,05 0,05 0,05^1 0,05 0 0,05 0,17 0,05 0,17 0 0,12 ,0,05 0,05 0,05 0 , 122
Шаг 57.Проверим условия окончания работы алгоритма. Число итераций равно 7 (<Ю), значит, условие окончания работы алгоритма не выполнено. Положим к = 8, переходим к шагу 2. Аналогичный процесс продолжается до = 9. Шаг 2ю- Путь ищет поколение муравьев № 9. Таблица 6.6 № муравья Пройденный путь Длина пути 1 h.vj 94,87 2 h.vj 94,87 3 h-^J 94,87 4 95,41 5 94,87 Шаг 3ю-Пз„(9) = 0®4(8) = [vj, v4] - оптимальный на десятом этапе путь. Шаг 4ю- Происходит обновление уровня феромонов Мо>)« О 0,04 0,04 ,0,04 0,04 0 0,14 0,04 0,04 0,04 0 0,04 0,04"! 0,14 0,17 О Шаг 5ю■ Проверим условия окончания работы алгоритма. Число итераций равно 10. Поскольку ik=T = 9 и к°лв( = 94,87, то условия (6.5) окончания работы алгоритма выполняются. Таким образом, найден кратчайший путь из вершины v3 в вершину v4: = Л§4<9) = [v^, v4]. В данной задаче легко проверить, что это правильный ответ. Заметим, что результат работы алгоритма сильно зависит от параметров метода. Если выбрать а - 3, р = 2, т.е. больше полагаться на опыт предыдущих поколений, то в качестве кратчайшего пути метод муравьиных колоний все чаще будет находить неоптимальный путь [vj, v2, J. 6.4. ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ. АНАЛИЗ ЭФФЕКТИВНОСТИ МЕТОДА На основе разработанного алгоритма сформировано программное обеспечение на языке Of в среде Microsoft Visual Studio 2005. Разработан интерфейс пользователя, позволяющий: - вводить параметры постановки задачи, - задавать параметры метода; - контролировать шаги работы алгоритма с необходимой визуализацией; - анализировать полученный результат. 123
С помощью программы была решена задача, рассмотренная в разд.6.3. В качестве иллюстрации приведём промежуточные этапы работы программы и окончательный результат (рис. 6 3 - 6.7). Рис 6.3. Промежуточный результат работы программы в момент времени /0 = 0. •у Выбор ~сысрл следующей в ершимы пути У;\ ; /£^=W^4HBII j Мом^т I • | i Wypeen* It 5иэ 5 ! "«дЛА'гсе О «#ждм*ие It 3 » Pscrp# ев петые ееооятостей I осечте* •ерогтност* ? ПИИ • Ъ k и ; ! ! 2 040 * 3 ООО }. 4 041 \ nerv***«e w • 0 62 L « J j Рис 6.4 Выбор номера следующей вершины пути 124
IVa^cc ffto* t щ» MMtO Чирчл tvв * Прохжутр.^Д р*^мм >я.^ММ 2)4 ► I аий::?л v&?M lm? 2 atm о сот» '9»?4. 1 ac/21 0201 0 322tt . 4 ’оета'^стз ;.оы MewilptKWlt) '*r— | » fW Д»м«Ау*> 1 Щ|)24 *41 • р 2 324 54.41 г Э К14 *U)23 » з:и U3 23 Е 5 34 кг If cej Рис. 6.5. Промежуточный результат работы программы в момент времени / 3 ГЬхжс m*«< Mj9*> Hjthj rfowwfl сеос wwh Грсмгжую^нм) рг>,АЫ*Т lo/caUoJ Uxc*** пргм** I • 7 Mihi <% •» |00«:t 3*74 0.1130. 0 50i7| ‘о 1Г4 0 4!*4 | * ^Vw ШШу £>•* V 1 ; ш 3 Ш4 143 2) i 4 ).4 3 3.4 *» Г. 0C47* 0O*'i 0 K«T:-'~ Т7Г1 • V; цмаг ИМ? OW* oe«7 с ’*4» о ш 0 0.1- 0 Rvnnvn; CnwMiwriHiawnwxnn (34; ilv^ ЩТИ 5* 57 Рис. 6 6 Промежуточный результат работы программы в момент времени /-7 г -1*хтжвтштймж • •, Рис 6.7. Результат работы алгоритма 125
Пример 6.2. Для демонстрации возможностей разработанного программного обеспечения приведем решение задачи большей размерности. Дан граф с множеством вершин V = {v,,v:o}, координаты вершин на плоскости представлены в табл. 6.7. Таблица 6.7 № 1 2 3 4 5 6 7 8 9 10 А' 57 31 78 27 6 15 42 96 71 83 У 3 89 4 62 66 2 13 20 21 6 № 11 12 13 14 15 16 17 18 19 20 X 76 29 85 94 58 83 45 87 54 95 ~ У "1 30 32 40 37 96 98 Г 80 73 15 7 Значения видимости вычисляются по формуле г\ц =—, где dy - J(xf - Ху)2 + (у, - уу)2 % а матрица смежности имеет вид матрицы с единичными элементами, кроме элемента stz - 0 и элементов главной диагонали, равных нулю. Требуется найги кратчайший путь из вершины \\ в вершину Задача была решена программой со следующими значениями параметров: 7 =30; с = 0,01; /// = 5; р = 0,1; т|у(0) = 0,1; Дт = 0,04; а = I, (5 = 2. Результаты отражены на рис. 6.8 и 6.9. •J rWw<r гр»/rv » fp<>4* «Х'ОАЗ» r«c»v«r» ."XeAfc ... - r Ч*с*о «л» о* ’ 90 : о* И^ого )ico : I ] ||>к fc/wi I I I I 1 ' •“W*»-o-p I Bmi i г»С0’0«ал» M«>u« 4p6i'a<4 * • v.V Л kLA>\> \ Чвт 1 2 1 4 1 с ? S 1 ИГГ) 0X01 oocv 0^»84 :омг 5.М2! вех 2 о.еэг; в 0151? оси: 0 01»? 0Ci»7 С СП? :с» S см;з 0«Г 0 0.С4СО oxci 2С4С» &:•*? ссч е сот C.JM’ ОСЯ’ 0 ?:<?• КО? о :т ::м 5 СЛЬЛ ОХЬЗ см:* ОСЮ! 0 э:я.‘ СОЛ Ь С 0*1» 0>*?1 ос я: 0С4С2 9 оси? :см * » Ям| Л е * ГУ Рис 6 S 1(ромежуточныи результат работы программы в момент времени t 9 12<»
_ ; \ 2 S _« * » ИЩ^эои оаю гост: ООО*1 с *00042 СОСО* ООО* 0 ЛЛ4 J «и0*1 С0041 '2000 3X0 с V»» iOX-t )Э6*4 О MX ооон эоис с»? оседл i(A4i ’float ’;хо соис ЭКУ) NM 1Ю77 :оом W « г ' **У "| *» ОНИ arnnvart t«yw % % ч*^г*4»а 31 Рис 6 9 Результат работы алгоритма Оптимальный путь, найденный с помощью программы: 0|2 =[>',,v„1v:], его длина ^,=96,56. В алгоритме есть элемент случайности, поэтому при повторном решении задачи был найден другой путь ££ =[v,,v)7,v,], и он оказался меньшей длины С: =95,39. В процессе поиска при указанных выше значениях параметров метода муравьиных колоний программа не всегда находит путь наименьшей длины, но отличие, как правило, незначительное. Реишм задачу при другом соотношении параметров и Пусть 4, Р = 1. Так как тч < I и г/,{< 1, больший вклад в распределение вероятностей при выборе следующей вершины пути в данном случае будет со стороны элементов матрицы видимости. При этом алгоритм все чаще будет действовать по принципу «жадного» алгоритма, а такой способ не приводит к нахождению пути наименьшей длины (рис. 6.10). » 1 1 OIW7 а о чип 4 ООО. 2 etc*; ’эго.’-' оса* J я по ОСГХ77 в *поа 4 ссс; ОМ) С X 27 0 1 эсск 0 1570 С Э07* оос* % 0900 оосх еэсг ООО. Г С ССл; 0С02? оасз* 0 У> 0 о ш: 3 002? охх< ООО. в • 1» . — *v ’ (3 20 1C 3» 13 7 114 $Л £/•«• с «%»• 115 2* Рис 6.10. Результат решения при а = 4, р = 1 127
Пусть теперь а = 1, р- 4. При таком соотношении параметров при выборе следующей вершины пути распределение вероятностей будет больше зависеть от уровня феромонов. Это означает, что алгоритм все чаще будет включать в путь ребра, которые выбирались предыдущими поколениями муравьев. Решение задачи в целом будет лучше, чем при а = 4, р = 1, но оно все же сильно будет зависеть от выбора вершин на начальных итерациях (рис. 6.11). 2 У 4 & с 7 1 - > 1 0C4I1 OjMH 9 МЛ 9MU ОМ), *00131 001.» 2 09&Л_ Э ГИЛ ом?» ©мл 9 0&Л. 3 аил зи.ч с ОМЛ 0.ИЛ аил 3CA31 ОМ? 4 956Л Э CS34 СИЛ 0 С.М14 9 Mil ЭСИ1 СО» *9МЛ 005! * оаал 5ил ’а мл 0 5Q6J1 1 ОМИ змл сил аил 0.0И4 0 90531 СМ? 4 - 1 «W1 лно« щ л mi * » II 1 ? ) 4 5 1 ? t • i ► 1 ан:ю' :сс оз е.со» сост» Q.XH 0 90СС ©*v i 2 0ЮМ 0 ЭСС» С 00^1 0Ж7* 0.0С») СЯ1 Q0C. ) С.(СП оосо 0 С 0079 оос >г 3J06?) сэох coo: 4 С007Э ОССЮ оэсл ’с 0X90 000)1 0007) ooc: 1 5WM ОСОИ экъ 00009 0 С007) с хз^ oacv 1 УОЛС ООО.*) 9 Л 4» CU9N С A4J 0 0',/ЛС ООС/ * r/VI1 м «УН «»н» «УЧ «УН • ф л ® ! -J l 5 ) 4 • » i ШН crn« arc*» • W> 2 с cow 0 С LOW COO»* ) soo*; ел** ’e ’soo « C№3 ex*; ex*; *e t гое*: С0С5» :oo«: ол t о oo*; coo*: Чх»; Чоо- t 500*1 0960 ’:oow *эх» • 5 00*3 cxo cxw COO t « * О»— «Ч—^ TH, В*»шч+*тшMr«evw МК > Л О. Рис 6 11. Процесс решения и результат работы алгоритма при а = I, р = 4 128
Наконец, выберем параметры а и следующим образом: а = 1, и снова решим задачу (рис. 6.12). При таких значениях параметров был найден путь П], который и является точным решением этой задачи. При многократном повторении процесса решения было замечено, что чаще всего программа находила путь = [v„,vl7,v,] именно при значениях а = 1, Р = I. Хорошие результаты получались и для значений параметров 1, 2. Рис. 6.12. Результат решения при or = I, = 1 Таким образом, при решении задач значения параметров акр следует выбирать или равными, или так, чтобы выполнялось условие а значение параметра р было не слишком велико по сравнению с а. Точные значения параметров, при которых получаются хорошие результаты, зависят от конкретной задачи. Приведенные решения примеров 6.1 и 6.2 демонстрируют эффективность сформированного алгоритма и соответствующего программного обеспечения. Для обеспечения большей надежности результата требуется многократный запуск программы. При этом находится решение задачи, по крайней мере, близкое к оптимальному. Значительная свобода выбора параметров алгоритма дает возможность подстроить вычислительный процесс поиска экстремума к конкретной проблеме. 129
Приложение 1. СИНТЕЗ ОПТИМАЛЬНЫХ ДИСКРЕТНЫХ ДЕТЕРМИНИРОВАННЫХ СИСТЕМ ПРИ НЕПОЛНОЙ ИНФОРМАЦИИ П.1.1. ПОСТАНОВКА ЗАДАЧИ Рассматривается задача нахождения оптимального управления дискретными детерминированными системами при наличии информации лишь о части координат вектора состояния. На основе принципа расширения сформулированы достаточные условия оптимальности и получены соотношения для нахождения оптимального управления. Исследованы предельные случаи информированности о векторе состояния, в которых установлена связь с известными результатами: принципом максимума и уравнением Веллмана для дискретных детерминированных систем. Приведены примеры, иллюстрирующие применение выведенных соотношений, в которых найдены точные решения поставленной задачи. Пусть объект управления описывается системой разностных уравнений х(к + 1) = /(А,х(А),»/(А)), к = 0,1 -1; х(0) = х0, (П.1) где х е н" - вектор состояния; и е //с К- вектор управления; U- выпуклое множество допустимых значений управления; А - {0,1,..., - 1} - дискретное время, число N - задано, Тс У = (0,1,..., N); вектор-функция ,м) непрерывна по совокупности переменных и непрерывно дифференцируема по х. Множество допустимых программных управлений образуют последовательности векторов «О = {«(*)}* «"о. где е U. Обозначим .<(•) = {д(А) )£,0 - траекторию системы, являющуюся решением уравнения (П.1). Обозначим: х- (г1,.г2)7 , .г1 - (х,,...,.г(П)г е Hm; = (.г„)+| х„)е К"~ш, 0 /(А,г,и) = (/■<А,г.«»),/2(*,х,«))Г, /'(А, *,и) = (/’|(А,лг,и) /в1(А,.г,«))Г,/2(А,х,«/) = . Предположим, что при управлении используется информация только о дискретном времени к и первых m координатах вектора состояния, т.е. 0 векторе д*1. Заметим, что вектор дг1 содержит все используемые в управлении координаты вектора состояния, а вектор х2- неиспользуемые Начальное состояние х(1 принадлежит ///-мерному многообразию Q: е О = [х |.г2 - уо(х])у д*1 € Rm ) , (П.2) где Гц(V1) -- y„(rl) У - заданная непрерывная вектор-функция. Рассмотрим класс 14m синтезирующих функций и(к,х{): Т х Rm -> U , которые на граекториях системы (111), удовлетворяющих начальным условиям 1
(П.2), порождают последовательности из множества допустимых программных управлений: «О = {"(*) = и(к,х\к)) . Таким образом, применяемое в каждый дискретный момент времени е управление имеет вид управления с обратной связью по неполному вектору состояния (рис. П.1). и(к) ш и(к,х\к)) Рис. П. I. Структурная схема дискретной системы Совокупность пар d = (х(), »/(•)), удовлетворяющих уравнению (П.1) при »/() е '^о с начальным условием дг(0) = назовем множеством допустимых процессов ?)(х0). На множестве Ю(хо) определим функционал качества управления 1(d) = -£/°(к,х(к)Мк)) + , (П.3) *=о где / '(к,х,и),1'(х) - заданные непрерывно дифференцируемые функции. Рассмотрим две формулировки постановки задачи. Задача 1 (нахождение оптимального процесса). Требуется найти такую пару d* е ©(*(,), что /(</•)= min (П.4) rfeU(*„) Задача 2 (нахождение оптимальной синтезирующей функции на множестве Q). Требуется найти такую функцию и * (А,*1) е *Mm, что /(</*)= min Vx0€«, (П.5) где d* = jx * (•) = {х * (к)}£„, // • ( ) = {« * (кх"(к)) К J. Решив задачу 2, можно найти решение задачи I, выбрав соответствующее начальное состояние из множества П и найдя решение уравнения (П.1) совместно с управлением и*(*,х'). Искомая оптимальная синтезирующая 131
функция обеспечивает минимальное значение функционала для всех начальных состояний из множества П. Замечания П.1. 1. Предполагается, что минимум в (П.4),(П.5) и функция и’(Л,*1) существуют. 2. Подчеркнем, что число используемых в управлении координат вектора состояния совпадает с размерностью множества начальных состояний П. При т- 0 множество О совпадает с точкой х(), для которой ищется оптимальное программное управление и • (•) е а при т - множество П совпадает с Л" и ищется оптимальное управление с полной обратной связью * (*,х) е (Ып. 11.1.2. ДОСТАТОЧНЫЕ УСЛОВИЯ ОПТИМАЛЬНОСТИ Введем в рассмотрение множество функций ф(А,х) : 7'х -»• и конструкции R(k,x,u) = if(k + 1,/(А,х,м)) - /°(*,х,м) - ф(*,х), к = 0,1,...,- I, (П.6) (!(N,x) = <р(N,x) + F(x). Предположим, что существует множество Ф функций ф(А,х), для которых конструкции (П.6) достигают экстремальных значений r(k) = max maxR(k,x,ti)> * = 0,1,..., 1; Vx1 е Л"', (П.7) у = mill G(N, х) Vx1 е R'". х*е К"" Будем описывать поведение траекторий системы (П.1), исходящих из множества 12 под действием управления «(А.х1) при помощи следующих соотношений: ;'(* + 1.x1) = /\к,хх,\Ц,хх),и(^,хХ)), = 0,1,...,ЛГ-1; Vx1 б (П.8) Г(к + 1.x1) = /2(А,х1,у(А:,х,),м(А:,х1)), Э’(0,х') =• уо(х'), We/Г, (П.9) где \ik, х) - функция, характеризующая связь векторов х2 и х1 при текущем значении дискретного времени к : х2 = д-(А-,х1)); функции zl(k f 1.x1),г2(* +1,х1) описывают зависимость х'(А + 1),х2(Л + I) от х'(А) при известном управлении.
Решая уравнение (П.8) с начальным условием (П.9) при фиксированном к, получаем г'(Л + 1,х*),г2(* + l,x'). Исключая х1, находим связь г2 =>•(* +1, г1) и, переобозначая переменные г2=х2,г1 = х*, получаем искомую зависимость х2 = у(к + 1,х1). Таким образом, для всех е можно найти связь между неиспользуемыми в управлении компонентами вектора состояния (вектор х2) и используемыми (вектор х1). Пусть имеется управление и *<Лг,х1) е Уш и функция = 0,1 получаемая в результате решения системы (П.8)-(П.9). Утверждение П.1 (достаточные условия оптимальности в задаче 2). Если существуют такие функция v(k,x) е Ф и управление и * (А.х1) е Ыту что 1) R(k,xl,y *(k,xl),u *(А.х1)) = r(k). = 0,1,..., ЛГ 1, Vx1 6 , 2) C(JVI*l,y*(W,*,)).g, Vx'€/r, то управление и * (k, x1) удовлетворяет условию (П.5), m.e. является оптимальной синтезирующей функцией на множестве П. Замечание П.2. Без ограничения общности величины r(k),g в (П.7) можно положить равными нулю. При этом минимальное значение функционала вычисляется по формуле: min /(</) = -cp(0,xo), Vro е П (П.10) deT)( дг„) Доказательство. Применим принцип расширения, использовавшийся в работах В.Ф. Кротова и В.И. Гурмана для получения различных достаточных условий оптимальности. Определим множество V пар J = (*(•),//(•)), где элементы пар по сравнению с входящими в множество 0)(дго) необязательно связаны разностным уравнением (П.1), но х(0) - х0 с П,//() е Таким образом, множество Ю(дг0) с К и расширение построено. Доопределение функционала (П.З) на множестве V производится с помощью задания функции ф(Лг, х). На множестве V определим функционал ;V-1 L(d) = G(N,x(N))~ £ »/(*)) -<р(0,х„). (П.11) А=0 На множестве ?)(дг0), где между элементами пар J имеется связь в виде разностного уравнения (Г1.1), с учетом (П.6) справедливо: .V-I /.(</) = <p(A/,x(jV)) + Л(х(Л/)) - £ (<?(* + I - /'\k,x{k)Mk)) - X =0 133
ЛГ-1 - ср(*,х(А))) - (p(0,xo) = ф(ЛГ,х<ЛО) + F(x(N)) - £[<р(А: + 1,х(А: + 1)) - <г=0 - /"(к,х(к),»(к)) ~ ФЛк))) ~ 4*0, х(0)) = . Таким образом, функционалы 1(d) и на множестве Ю(х0) совпадают. Поведение функционала /.(</) на множестве Р\£>(х()) полностью определяется выбором функции <р(*, х). Пусть имеется функция #,г)еФ и управление Найдем минимум функционала L(d) на множестве V. Третий член в (П.11) при заданной функции ф(*,х) и известном начальном состоянии х0 вычисляется и в плане минимизации не рассматривается. Операции нахождения экстремума в первых двух слагаемых могут быть выполнены по отдельности в силу свойств элементов х( ),«(•), образующих пары Для функции ф(*,х)еФ выполняются равенства (П.7), поэтому их можно переписать в виде r(k) = max max R(k,x,u), к = 0,1,..., N I; = min G(N,x), xt R" afV jre/t" так как правые части в (П.7) не зависят от х1. Тогда min L(d) = g -£ r(k) - <р(0, (П. 12) dcV *=о Рассмотрим произвольное начальное состояние х0 € П, т.е. удовлетворяющее условию (П.2). Решая уравнение (П.1) с начальным условием х(о) = х0 е О и управлением ия (к,х]) можно получить пару d* »(гЧ), //•() = «•(-, X1 •(•)))€ Ю(х0), где * Та же пара может быть получена по имеющимся функциям у *(*,х'),и * (*, х1): г1 *(* + I) = /|(*,хи(*),у*(*,х,<*)),«*(*,г| *(*))), е г'*(0) = xi. В результате имеем х'*() и пару </* = (х *(•),и *(•))€ ,где хя(к)а(хХя(к),х2я(к))* уя(к.хх*(к))) VAef, V*e7\ Так как условия 1,2 утверждения П.1 выполняются для всех х1 е то они справедливы и дпя х1 я(к) при ке Т,т.е. R(k, х* (к),и * (к)) = г(к), к еТ\ 131
Из этих равенств и (П.11 ),(П. 12) следует, что /.(</•) = min /.(</), т.е. /.(</*) s Vd6 V. Поскольку d* e ?)(x0) с 1', то L(d 5 L(d) V</ e J)(x0). Но на множестве £>(x0) справедливо тождество l.(d) a /(d). Поэтому /(</*) s 1(d) e 7)(x0), что соответствует определению минимума функционала (П.З). Доказательство утверждения следует из произвольности начального состояния Поясним замечание к утверждению. Если существует функция ф(*,х) е Ф, удовлетворяющая условиям 1,2 при /-(А) * О, # * О, то, применяя прямую подстановку в (П.7), можно найти, что функция также удовлетворяет этим условиям при г'(к) = 0, е х'= 0 • В этом случае из выражения для определения минимума функционала L(d) и доказанного утверждения следует min/.(</) = min /(</) = -<p’(0,r„) Vx„ efl. •/ь ч ф(М) + £г(Д * = 0,1,...,ЛГ-1, Ф (*>*) = • ,Т1 ф(А,х)-#, Л - Л' </€»)( гJ П.1.3. СООТНОШЕНИЯ ДЛЯ НАХОЖДЕНИЯ ОПТИМАЛЬНОГО УПРАВЛЕНИЯ Будем искать функцию ф(А,х) € Ф в виде ф(А,х) = И'ЧА.х1)- '£t'Vj(k,x]) xj, (П.13) у=///+1 где И'(А,х,),Ч'/(*,х1),./ = ж + 1 м - неизвестные функции. Подставляя (П. 13) в (П.6), имеем jmm+l - f(k,x,u)-W(k,xx)- 't'Vj(k,xl) xJ, (П.14) у=///+1 04 А/, х) = W(N%xx) + f■ X; + /••<*). у=ш+1 Применим необходимые условия экстремума по г2 в (П.7) с учетом (П. 14) и условий 1, 2 утверждения П. 1: е/Цк,х> //) = 0f j = m + l,. ^Гу х2 = у * (А:,*1),// = л * 135
dG(N,x) дх, > , =0, = x2 = у •(*,*) В результате получаем у;(»У). w(t,J1.J. • (*,J1),. • (*,х'»_4 _ _, = да +1,...,/»; Vx1 € Л™ (П. 15) дх, где //(*,х,и) = >Т(А + 1,/'(*,*,«)) + !>,(* y=w+l Для нахождения максимума в (П.7) по управлению воспользуемся необходимым условием экстремума « tW(*,x',.y*(*,*1),») ,=i ./, I ]s0 v«el/, и * (к,х) (П.16) С учетом замечания к утверждению, полагая г(к)*0,х = 0 в (П.7), получаем l*'(к,х1) = * (Л,х'),и * (Л,х1)) - ^^(Л.х'Туу^.х1); к = 0,1,...,Л/-1 у =//»-#-! (П.17) И'СЛ^.х1) = -F(x\y*(N,x1))- j=ni'И Таким образом, для нахождения оптимального управления с обратной связью но неполному вектору состояния требуется решить систему (П.8),(П.9), (И 15) (II 17) При этом минимальное значение функционала вычисляется по формуле: пип /(</) = -ИЧО,^)- УЧЧО.х'о)>• (xi) , Vx/, е К"'. (П 18) «'«"<**> j-.t*i 3 а м е ч а н и с П.З. Если функция Н(к,хл) вогнутая по и, то структура оптимального управления находится из соотношения и * (А\дг*) = ат£\тхН(к%х\у * (А,*1),//), к = 0,1,.- 1. uni-' 136
П.1.4. ПРЕДЕЛЬНЫЕ СЛУЧАИ ИНФОРМИРОВАННОСТИ О ВЕКТОРЕ СОСТОЯНИЯ I. да = 0 (информация о векторе состояния отсутствует). Множество П задается точкой х(0) = у0 = х0и ищется оптимальное программное управление «*(•)€ 14ц.Система (П.8),(П.9), (П.15)-(П.17) преобразуется к известным необходимым условиям оптимальности: х*(к + 1) = fj(k,xm(k),H*(k)), х*(0) = Хуо, = 0 (П.19) т (,;) дН(к,х*(к),и*(к))' 7 Лу . * 7 1 дН(к,х*(к) dxj J 0 V»eU, =0,1 Л-1, U \К) где Н(к,х,и) = W(k +1) + £ Vj(k +1) • fj(k,x,u) - / 7=1 Решая систему (П. 19), можно найти искомый оптимальный процесс <1* -(х * (•),// * ( )), а затем, решая уравнение Щк) =//(*, »•(*),«•(*))-fvyW.xjW, * = 0,1,...,ЛГ-1, (П.20) /“1 с конечным условием ИЧЛО = -/-(х * (.V)) - У/ЛО • (П.21) /=I которые следуют из (П. 17) при т 0, найти минимальное значение функционала: min 1(d) = - 1Р(0) - ■ х.0. (П.22) deV(x„) ~ У 1 При условии выпуклости вектограммы [18] данные соотношения совпадают с соотношениями дискретного принципа максимума, т.е. последнее условие в системе (11.19) заменяется на условие максимума гамильтониана: и * (Л) = arg max// (х * . (П.23) ueU 2. да = «(имеется полная информация о векторе состояния). Множество П = К"и ищется оптимальное управление с полной обратной связью. Система (П.8),(П.9), (П. 15)—(П. 17) преобразуется в уравнение Веллмана для дискретных систем: W(k,x) = max [w(k + I,/(*,*,«)) - }. ueV (П.24) W(N,x) = -F(x), 137
а минимальное значение функционала вычисляется по формуле: min /(</) = - ИЧО.хп) Vx0 е П = Л" . (П.25) de1Hx„) П.1.5. ПРИМЕРЫ Пример П.1. Дан объект управления (П.1), описываемый уравнениями х,(А +1) = х,(А) + , 0,1, х2(А + I) = 2х,(А) + х2(А), где н(к) 6 Я, кеТ = {0,1}, F = {0,1,2}, N = 2, /,(Л,х,и) = х, +м, /2(*,х,м) = 2х, + х2. Начальное состояние принадлежит одномерному многообразию (П.2): х0 е 0= {х |х2 =^х,, xi е/?}, ТС. ^„(х1) = у0(х[) = х,, m = I. Функционал качества управления (П.З) квадратичный: /(<0 = j S 1"2(*) + *2(*) + *2<*)1 + 1-2(2), где /п(к,х,и) = |(»/2 + X)2 + х2), Г(х) = х2. Предполагается, что при управлении используется информация о дискретном времени и координате х, вектора состояния х = (х(,х2)г, т.е. х1 - Х|, х2 - х2 . Требуется: а) найти такую функцию м*(А,Х|), которая обеспечивает минимум функционала для любых начальных состояний из заданного многообразия Q (решение задачи 2); б) для начальных состояний (2;I)7 ,(8;4)Л найти оптимальные пары «/* (решение задачи 1). □ Для нахождения искомой оптимальной синтезирующей функции и‘(к,х|) составим уравнения (П.8),(П.9), (П. 15)-(П. 17): г'(А * 1,х,) = Х| < и*(*,Х|), А: =0,1, :2(к + 1, Х|) = 2Х| +>'*(*,X]), у*(0,х,) = |х,, Н(к.х.и) = IV (к + |,Х| + и) + + 1,Х| + »/)• (2х| + х2) -^(м2 + х2 + х^), 138
4Ч*.х,) = аЯ(А, x|t у » (A, ), » ( А, X,)) сх2 = 4'(А + 1,х, + «*(*,Х|))-у*(А,х,), 442.x,) = - * = 0,1 af(x,,y*(2,x,)) л Г и < дх2 ая(А,х,,у*(А,х |),н) ди и*(*,Х|) • [и — и * (А, Х|)] S О Vw е Я, fV(k, х,) = Я(А, х„ у • (к,х,), и * (Ас, Х|)) - 4ЧА, X!) • • х,) = = W(k + 1, х, + и * (А, х,)) + 4>(А + 1, х, + и * (А, х,)) • (2х, + у• (А, х,)) - -![«•(*, х, )2 +х,2 + у *(А,х,)2| - 4’(А,х,) • у * (*,Xi) , И'(2, х,) = -/-(х, ,у• (2, х,)) - 442, х,) • * (2, х,). Будем искать неизвестные функции, входящие в полученную систему, в форме: У(к,хх) = У|(А)х,, 4'(А,х,) = 4',(А) х„ W'(*,x1) = -iA'2(*) x12, где функции у|(*),Ч'|(*),/:2(*), * = 0,1,2, подлежат определению. Тогда г'(А + l,Xj) = X| +М*(*,Х|), * = 0,1, г2(* + I,х,) = 2х| + у, *(*) хь Я(А,х,м) =±К2(к+ 1) [х, +«12 + +1)• [Х| +н|• Г2х| +х2]- -{(м2 + х2 + х2), *F|(Ar) - xj = 4*|(* + 1) • [х| + « * (*,Х|)1~ у| *(*) • Х|, 4*i(2) х, = О, ■jА'2(*) х2 =jK2(k + I)-|.Х| +«*(*,х,)]2 +4',(* + 1) Гх, +н*(*,х,)1- f2x, + у, * (*) • х, j - In * (А, х,)2 - ft,2 - iy, * (A)2 • x,2 - 4',(A) x, • y, * (A) x, , 1K2 (2) x,2 = -x,2 - 4', (2) • x, • y, * (2) • x,, 139
дН(к,хх,у*(к,хх),и) I = K2(k + |x, +«•<*,x,)l + ди |и*(А:,х,) + 4',(* + l)[2x, +/, * (A:) • xj - и * ■ Решение системы: yi’(0) = f у,*( 1> = f, (2) = 26, ¥,(0) = -Э, 4'1(1) = -.&, 4*1 (2) = О, к2(0) = -£, tf2(l) = i§*, *2(2) = -2, а оптимальное управление и*(А, *|), удовлетворяющее условию ЭЯ(А:,х,,у>*(*.*|)>ц) Л/ = 0, имеет вид: « (*.Х|) » • <*■ X, > = ’*'■«* *1 > -|2<| * j’1 • 1 - 0 ■ I - А 2 (Л: + 1) При к = 0 и*(0,Х|) = — ixj, а при А = 1 * (l.x^ = -^Х|. Таким образом, найдено решение задачи 2. Минимальное значение функционала находится по формуле, следующей из (П 18): min /(d) = - W(0,х,) - 440, Xj) х,) = </eD<x,>) = -1 К2(0)х,2 - 4', (0)х, • 1 х, = *£ х,2 Vx, 6 Найдем решение задачи 1 для заданных начальных состояний. При х0 = (2; 1)г получаем «•(0) «'(0.x,(0)) = -|xl(0) = -f х, *(D = *,(0)+ «•(<)) = 2-•£ = !, х2 * (I) = 2х|(0) + х2(0) = 5, и* (1) = и * (1.x, * (1)) = -|х, * (1) = -j, .v,*(2) = x,*(l)^H*(I) = |-i = i, *(2) = 2х, *(I) + х2 *(I) = -у. Минимальное значение функционала min = #х2(0) = 16,25 </с1>(Дц) При х0 * (8; 4)г получаем « * (0) = // * (0,Х|(0)) = - £х,(0) = -5, х, * (1) = Х|(0) + // * (0) = 3, I 10
х2 * (1) = 2х|(0) + х2(0) = 20, и * (1) = // * (1,х, * (I)) = -|х, • (I) = -2, х, * (2) = х, • (I) + и * (I) = I, х2 • (2) = 2х, * (1) + х2 * (1) = 26. Минимальное значение функционала min =tj-x?(0) = 260. <*еЩхо) 16 Аналогичные результаты могут быть получены и для других начальных состояний, принадлежащих многообразию Q, а их достоверность проверена с помощью прямого метода решения поставленной задачи как задачи нелинейного программирования. Таким образом, оптимальное управление с неполной обратной связью для каждого начального условия, принадлежащего заданному многообразию, порождает соответствующее оптимальное программное управление и оптимальную траекторию. ■ Пример П.2. Даны модель объекта управления х(к + 1) = х(£) + и{к)> х(0) = х0, к = 0,1,..., N - 1, где хе/?; uqR, и функционал fJ*yl иЦк) + 2х(Л0-> mill. Требуется найти оптимальную пару (х*(•),«*(•)) >на которой достигается минимум функционала. □ Сравнивая с общей постановкой задачи (П.1)-(П.З), имеем: и2 f(k,x,u) = х + и, f0(k,x,u) = , Fix) = 2х, U = R, wi = 0. Количество шагов к +1 /V * I фиксировано. и2 1. Составляем гамильтониан Н(к,Ч'.х,м)= Ч* • (х + и)-—-. 2. Находим максимум гамильтониана по управлению. Так как ограничения на управление отсутствуют, можно применить необходимые с, flH(k,'V + l), х(Л), м(Л)) | \ 2 Л условия безусловного экстремума: —^1 — —+ 1) <- - 0. к +1 Отсюда и'{к)= }1(к +1). Найденное управление обеспечивает максимум функции Н(к,^(к + \\х{к),и) по управлению, так как удовлетворяются достаточные условия локального максимума гамильтониана: о2//(Аг,У(*. )ЫФ'(*)) : :0 flu2 Поскольку в данной задаче гамильтониан является вогнутой функцией, то локальный максимум совпадаете глобальным. 141
3. С учетом п.2 составляем краевую задачу (П. 19), так как = 0: х'(к + |) = х •(*) + «*(*) = х*(*) + + к~ - 1, х’(0)=х0; дН(к, ¥(А + 1),х * (к), и » (к))t ^ dF(x * (N)) дх ’ dx 4. Решение краевой задачи: Ч^А:) = -2,к = и 1, = 0,1,..., - 1; • ^^"1 1с(1с -f Н X (Л) = л*, + £ « • (у) = х0 - £ O' +1) = *0 - . * = 0.1,.... *. /■О j-0 * Минимальное значение функционала: г %;'[м*(А)12 - ..... ^‘И-П2 л г l„/w ,v, mm/ = X",- +2x*(N) = £ J——-!- + 2 Ixo--^(^ + 01 = кш0АС + I *=0 * + 1 ^ ЛМ . . = 2х0 - N(N +1) + £(* +1) =2хо - ЛГ(ЛГ +1) +±N(N + 1) = 2х<,+1). ■ 2 2 Пример П.З. Даны модель объекта управления х,(*■*-!)=х2(*), М*1’ х2(* + 1) = х,(*)-м(*), =0,1 с начальными условиями Х)(0) = 2, х2(0)=-3 и функционал / = Х|2(2)+ х22(2)-» min. Требуется найти оптимальное программное управление м*(-) и соответствующую ему траекторию х*(). □ Здесь v = (.\|.x2)r с Л2, управление входит в правую часть разностного уравнения линейно и ограничено по модулю: |«|sl, « е t/ = [-1,l], /°(А,х,и) = 0, /'(х)=Х|2 ч х2"\ Л' -2. /|(Л.х.м)=х2, /2(А:,х,м)=Х|-и, правый конец траектории свободен I. Составляем гамильтониан: //(А,Ч\х.м)= 4», х2 + Ч'2 [Х( - ]. 2 Находим структуру оптимального управления. Множество допустимых значений управления ограничено: i/=[-l,l]. Оптимальное управление и* можег быть внутренней (м* е (-1,1)) или граничной (//* = х!) точкой этого 112
множества. Если //* - внутренняя точка, то выполняется условие с>//(*,У(А: + 1\х(к), »(*})__+ Q £сли м„ - граничная точка, то ди выполняется условие из системы (П. 19): - +!)[« - н*1 S 0 Vm € (—1,1). Отсюда следует, что управление = 1 будет оптимальным, если - S*2(* + l)f« - 11 < 0 Vh е 1-1,11, т.е. при +1) < 0. Аналогично управление «* = -1 будет оптимальным, если Y2(/r + l)>0. Поэтому структура оптимального управления имеет вид: «*(*)= - I, 4'2(Лг + I) > 0, 1-1,1], W + O-O, *=0,1, I, Ч/2(* + 1)<0. 3. С учетом п.2 составляем краевую задачу (П.19): х,*(* + 1) = х2(*), ■*!* (0) = 2, х'2(к +1) = аг,"’(*)-//*(*), х]{0)=-3, S',(*) = •*•’)»* *(*).»*(*)) = у, + j)t у((2)-.. 0Flx* = -2х‘{ (2), dtj ~ дхх ц.атчч»».,•(*),««(*». ц + 0 Уа(г)..а^-о». дх2 йх2 4. Решаем краевую задачу. Учитывая начальные условия, выражаем координаты вектора состояния: х,(1) = х2(0) = -3, х2(1) = х,(0) - и* (0) = 2 - • (0), *,(2) = -т2(1) = 2 - « * (0), х2(2) = х,(1) - * (1) = -3 - * (1). Поскольку |м *| s 1, то лс,(2) > 0,дс2(2) < 0. Тогда ¥2(2) = -2х2(2) > 0 и 4^(1) = ЧР,(2) = -2.T,(2) < 0. Следовательно, и * (1) = -1,м * (0) = 1. Теперь находим оптимальную траекторию х\ (0) - 2, х;(0)=-3; -tj*(l)=- 3, ^(1)= I; (2) = 1, -^(2)=-2 и минимальное значение функционала min / = I2 + (~2)2 = 5 ■ 143
Приложение 1. СИНТЕЗ ОПТИМАЛЬНЫХ НЕПРЕРЫВНЫХ ДЕТЕРМИНИРОВАННЫХ СИСТЕМ ПРИ НЕПОЛНОЙ ИНФОРМАЦИИ П.2.1. ПОСТАНОВКА ЗАДАЧИ Пусть поведение модели объекта управления описывается обыкновенным дифференциальным уравнением ^ = /(/,х(0,и (О), х(/0) = х0, (П.26) (it где х - вектор состояния системы, = (х',х2)те х] =(х1,...,х„)г, т2 = ...,.тя)г, 0 i m s я (предположим, что о компонентах вектора х[ € Rm известна текущая информация, а о компонентах вектора х2 е Rn'm она отсутст¬ вует), и - вектор управления, не Uс R4,U - некоторое заданное множество; I - время, Iе Т' -[г0, i\] = Т U {/о}U {'i}. Тпромежуток времени функциониро¬ вания системы, моменты времени /0 и tзаданы, внешние воздействия на объ¬ ект управления отсутствуют, /(/, х,и): Т‘ х Rn * U Rn - непрерывно диффе¬ ренцируемая функция. Обозначим: В = Rn,Bl -■ Rm>B2 = Rn~m\ /?", [/o<'i]x Начальные условия x(t0) = x0 заданы многообразием с размерность которого равна т, т.е. хОо) ь П = {х| х2 = у0(*')* х1 t Лт = В, }, (П.27) глс Уо/(х'), у = /я + !,...,л,- заданные непрерывно дифференцируемые функ¬ ции. При т -0 множество Q является точкой, а при т - п совпадает с множе¬ ством R" Условия на вектор состояния на правом конце промежутка времени Т не заданы. Предполагается, что при управлении используется информация только о времени i и о компонентах вектора х1. т.е. управление «(/), применяемое в каждый момент времени /е Т', имеет вид управления м(/) = u(t,х1 (/)) с непол¬ ной обратной связью по вектору состояния (рис. П.2). Множество допустимых управлений с неполной обратной связью об¬ разуют функции и(Лх'): T'xBt->U такие, что функции У}(г,х,и(/,х')), / - I и, определены на £>’. непрерывны вместе с частными производными по х. кусочно-непрерывны но л При этом управление «(/) = и(г,х'(0) кусочно- непрерывно по /, а в точках разрыва значение управления определяется как предел справа Определим множество допустимых элементов £>(f0,xrt) как множество пар (I( v(r).«(/)), удовлетворяющих уравнению (П.26) с начальным условием 1<14
(П.27) почти всюду на 7”, где VteT' х(/)е Rn,u{t)eU, функции x(t) непре¬ рывны и кусочно-дифференцируемы, a u(t) U0 кусочно-непрерывны. u(t) = u(t,xl(t)) Рис. П.2. Структурная схема непрерывной системы На множестве 0(/о>*о) определим функционал качества управления 'i 1(d) = \ /°(г,х(0,н(/))Л + F(x(/,)). (П.28) 4> где /°(/, х. u),F(x)~ заданные непрерывно дифференцируемые функции. Требуется найти такую функцию «‘(г,*1) е , что /(</*)= tnin /(rf) Vx0eft, (П.29) </€ f){\|. -Кг») где rf' = (jc‘(/), «*(/) = tt*(f,x'’(0) . Функция называется оптимальной синтезирующей функци¬ ей на множестве Q. Для каждого начального условия из множества fi она по¬ рождает оптимальную пару, т.е. оптимальную траекторию х*(/) и оптимальное программное управление »<*(/). Предполагается, что минимум в (П.29) и функ¬ ция u'(t%xl) существуют. Подчеркнем, что число используемых в управлении координат вектора состояния совпадает с размерностью множества начальных состояний Q. При т-О множество Q является точкой х0, для которой ищется оптимальное про¬ граммное управление //*(/). а при т -п множество Q совпадает с «-мерным евклидовым пространством и ищется оптимальное управление с полной обрат¬ ной связью по вектору состояния и'(г.х). 145
П.2.2.ДОСТАТОЧНЫЕ УСЛОВИЯ ОПТИМАЛЬНОСТИ Рассмотрим задачу (П.29). Поведение траекторий уравнения (П.26), исхо¬ дящих из множества О , предлагается описывать с помощью вектор-функции у(/,х' ):Т'уВ, -» В2, удовлетворяющей системе уравнений: Уравнениями характеристик этой системы являются уравнения для коор¬ динат вектора состояния, образующие (П.26): У>(0 = //(/.xl(r),y(r),u(r,x'(r))), j =» + 1,...,л, С^- Рещение системы (П.30),(П.31) устанавливает связь между используемы¬ ми и неиспользуемыми в управлении компонентами вектора состояния: х2 = .v(/,x‘) v(/,x') € Т'х Я,. Предполагается, что размерность множества, опи¬ сываемого соотношением х2 = у(/,х'), равна m V/ е . Для получения траекторий, исходящих из множества С2, требуется решить систему (П.ЗО),(П.31) при известном управлении (/, х1), а затем систему Если значения координат вектора х'(0 в момент t е Т известны, то можно най- Введем в рассмотрение множество функций <р(/,х): Г' х -> непрерыв¬ но дифференцируемых всюду, за исключением конечного числа сечений х при фиксированных t, и конструкции. + .y(i,x'),u(t,x1)), =да+ 1,...,л, yj(lo>xi) = yoj(xX), = +1,..., (П.30) (П.31) *i(t) = (/)).«(/,x'(O)). = 1 vx'(f0) = Xq e J?i. Tl и значения координат вскгора состояния х: x(f) = (х'(0»*2(0 = . (П.32) C(/i,х) -<р(/|,х) + F(x). 146
Применим принцип расширения с заданием множества V и поиском удачного доопределения функционала / на этом множестве. Определим множество V пар d = (х(/),«(/)), где элементы пар по сравне¬ нию с входящими в 0(/о,хо) необязательно связаны дифференциальным урав¬ нением (П.26); х(г0) = *0 е О; допускаются разрывы первого рода функций x(t) на множестве Г'. Таким образом, множество 0(1о,Хо)сК - расширение по¬ строено. Доопределение функционала / на множестве V производится с по¬ мощью задания функции <г(/, х). На множестве V определим функционал £(rf) = <?(/,,*(/,))- J R(t,xо). ь На множестве £>(Г0,хо) с V, где между функциями х(/) и м(/) существует диф¬ ференциальная связь (П.26), с учетом (П.32) и равенства х(/0) = х0 справедливо R(t,x(t),u(t)) = г'-(/^-/)} + '£д*(,'Х{')) Mt,x(t),u(0) - = dt f:f dXj - . ,o0txil)t я _/0(/) ot Д dXi dt и поэтому L(d) = <*/,, *(/,)) + F(x(tx)) - j I _70(/) x(f)t <1t-<p(r0,X0) = fi = <p(/|, x(/,)) + FixOi)) - [ф(г,,х(/,)) - ф(/0, x0)] + f it,x{t), u(t))dt - <p(t0, x0) = 1(d). h Таким образом, на множестве V функционалы 1(d) и L(d) совпадают. Поведение функционала L(d) на множестве V \ Ю полностью определяется выбором функции ф(/,х). Перейдем к формулировке и доказательству достаточных условий опти¬ мальности. Предположим, что существует множество Ф функций ф(Лдг), для которых конструкции (П.32) достигают экстремальных значений: г(/) = max шах Л(/, х, //) V(f, х1) € Т х В\, (П.33) g = min <?(/,, х) Vx* € (П.34) х g В} 147
где r(t)~ кусочно-непрерывная функция на множестве Т. Пусть имеются управление и*(/,х’) е 2/т и соответствующее решение у*(*»•**) системы (П.30), (П.31). Утверждение П.2 (достаточные условия оптимальности в задаче (П.29)). Если существует такая функция ф(г,х) Ф, что: 1) Л(/, .т1, у’(/, х1),и*(/, х1)) = r(t) почти всюду на Т, Vx1 е 2) <5(fl,xl,y'(rl,xl)) = g Vx1 € В,, mo управление и’(/,х') является оптимальной синтезирующей функцией на множестве П. Функцию r(t) и величину g можно вез ограничения общности положить равными нулю. Тогда минимальное значение функционала опреде:1яется форму¬ лой min 1(d) --<р(/о,*о) Vx0eQ. (П.35) Доказательство. Пусть имеется функция (р(/,х)бФ. Найдем минимум функционала L(d) на множестве V. Его третий член при заданной функции <р(Лх) и известном начальном состоянии х0 вычисляется и в плане минимиза¬ ции не рассматривается. Операции нахождения экстремума в первых двух сла¬ гаемых могут быть выполнены по отдельности благодаря свойствам функций х(/),м(/), образующих пары d е V . Так как для функции <р(/,*) € Ф выполняются равенства (П.33),(П.34), они могут быть переписаны в виде г(г) - max max Л(Л дс, //), g = min <?(/», х), хъВ utU хьВ поскольку их правые части не зависят от х1. Тогда 'I min L(d) = g - I r(l) - <p00, *o). dtV J Aj Рассмотрим произвольное начальное состояние х0 еП. Решая уравнение (11.26) с начальным условием х(г„) = х0 и управлением «'(г.х1), можно полу¬ чить пару d' =(х*(/),«*(/) = а*(г,х1*(/)))€ /?(/0,х0). Та же пара может быть по¬ лучена по имеющимся функциям у’(/,х').и*(/.х1) при решении системы *,(') = /i(,.^l(0,/(f.Jcl(0),«*(6-x1(/))), х,(/„) = хш, / = I В результате имеем л-1 * (г) и пару d' (x*(f) - (х'*(/),х2’(0 = >*0,xu(l))f ,н* = и*(г.х'*(/))|€ (f0,x0). ЫН
Так как условия 1,2 утверждения П.2 выполняются V*1 «= By, то они спра¬ ведливы и для х'*(0>т.е. Из условий утверждения следует, что на паре выполняется равенство №) = min L(d), т.е. L(d’)nL(d) VdeV. Так как е , то deV L(d')z L(d) Vdt 0(to,xo). Но на множестве справедливо равенство L(d)-!(d). Поэтому I(d’)z [(d) Vrfe о). что соответствует определе¬ нию минимума функционала (П.28). Доказательство утверждения следует из произвольности начального состояния х0 е О. Если существует функция <р(/,х) € Ф, удовлетворяющая условиям 1,2 ут¬ верждения П.2 с r(r)*0,g * 0, можно показать, что функция также удовлетворяет этим условиям при ?(/) в 0, = 0. Действительно, При этом min L(d) = min 1(d) = - ф(г0,х0) Vx0 e Q. Доказательство закончено. tleV de V 11.2.3. СООТНОШЕНИЯ ДЛЯ НАХОЖДЕНИЯ ОПТИМАЛЬНОГО УПРАВЛЕНИЯ Будем искать функцию ср(г, д:) в виде где W(t%*|)и|/у(Лх,),У = т + - неизвестные функции, подлежащие оп¬ ределению. Подставляя (П.36) в (П.32), получаем /?(/, х‘ (0, и (0) = г(/), / е Т\ <?(/,, х- (/,)) = g. '1 g = min {<p(f,,x) - g + F(x)} = 0 Vx1 e B\. X € Bj (П.36) 149
ы. \ дЩ1,х1) £ dVj(t,xx) £dW(t,x') ч Л(/, jc, w) = ^ + £ — xj + X— j-m*I 1-1 dxi п т Лщ V/ л«\ я + L*y• Z » /#(Л*»«) + £ ч>у(/,дс|) /у(/,х,и)-/0(/,х,к)= (П.37) У=т+1 i=l y*m+l аи^.х1) £ avyfc*1) = —Z —г;— ), д* y'sm+l *(400 О/ = И^(/,,х‘)+ £ ч/у^.х^ ху + F(x). У s/|f 4 1 Здесь функция «Л \ £ дИЧ/.Х1) г/. ч £ £ ^уС',*1) Ч Я(/,х,м)=У—^— Lfi(t,x,u)+ у Ху у //(',*,«) + Я 5х, у.„+, Я 2х, + Z Чj(r,x')-fj(t,X,U)-f°(t,X,u). j-m+\ Определяя максимум в (П.ЗЗ) с учетом условия 1 утверждения П.2 и (П.37), находим H'(t,xl,y’(t,xx)) = max H(ttxlty'(t,xl),u). (П.38) ucU Предположим, что функции в (П.37) непрерывно дифференцируемы относи¬ тельно х2. Поэтому можно применить необходимые условия безусловного экстремума в (П.ЗЗ), (П.34) по х2 с учетом условий 1,2 утверждения П.2: a/ty.je1,>>*(/,х1),**^,*1)) ft . ————ii—i-:—— = 0, у =/л +1,...,л , аху а ху Отсюда с учетом (П.37) имеем л aG(/|,xl,/(f,,x1)) . . . —iJJ— 1 — = 0, у = /л + 1,...,л. >4,0.* )..j>W(>.«Vo.*1» Jsmtl „ v(.,V)er«e„ St dXj M’y^i. x1) = - — — ’■/ , j = Я1 + 1,...,Л, Vx1 € at. axy «50
max u*U Положив в (П.33), (П.34) /•(/) = 0, g = 0, с учетом (П 37) и последних соот¬ ношений получим £ г/Г(,'х'У(,'х,)}у’(г,х1) + //(/.х1./(/.х1),»)} = 0 I J.m*l 2xJ I щ г)я ^ x>) -flx'./ft.x1)) Vx'e2?„ Jrnm* l ЙХУ где Н‘Ц,х\у*Ц,х')) определяется выражением (П.38), а функция у* (г.*1) явля¬ ется решением системы (П.30),(П.31) с управлением и*(Лх1), структура которо¬ го находится из условия u'(t,x\y*(t,x1)) = argmax H(ttx\y*(t,xl),u). ueU Таким образом, для определения оптимальной синтезирующей функции на множестве П в задаче (П.29) требуется решить систему из 2(я - + 1 урав¬ нений в частных производных первого порядка с 2(л - +1 краевыми усло¬ виями на концах промежутка Т‘: dyjO,x ) =_ ' У^‘,Х-■fl(t,xi,y'(t,xl),u'(t,xt)) + dt Пи oxi + fj(',xl,y’(ttxl),u'(t,x1)), I,...,л, y*(/„,x') = y0y(xl). y = m +1 л, = 0, max{ - £ 3H’(t,xlyv,xl)) .(, i} + H(t,x\y(t,x[),u) I >«m.l = - iH {1'X''? y = rn + | л, (П.39) 3/ dxj i dF(xl,y(/|,x*)) . . Vy(/1,x') = ^— . -m + I,..., л, / 3xy ^(/„xl)= f aF(x‘;J> (,|’X‘)-)-j>;«i,x1)-/,(x1,/(/„x1)), 151
где H'(t,xl,y'(l,x1)) = max /(/,*'), и). ueU Минимальное значение функционала (П.28) можно вычислить по форму¬ ле (П.35) с учетом (П.36): min 1(d) = - И^(/0,хо) - £ . Vx0eQ. (П-40) ;.m+1 МЕТОДИКА ПРИМЕНЕНИЯ ОПТИМАЛЬНЫХ СИНТЕЗИРУЮЩИХ ФУНКЦИЙ Первый этап - нахождение оптимальной синтезирующей функции u*(t%x[). 1. Для рассматриваемой постановки задачи записать систему (П.39). 2. Найти максимум функции H(t%xl9y*(t%xl)9u) по управлению. В резуль¬ тате определяется структура оптимальной синтезирующей функции um(t,x*)y включающая в себя функции ^(г,*1), (/,**) и их производные. 3. Полученные выражения подставить в систему (П.39). 4 В результате решения системы определить явный вид функций Vj(f%д*1) и оптимальной синтезирующей функции u*(t,x]), структура которой найдена в п.2. Получено решение задачи (П.29) 5. Определить минимальное значение функционала качества управления по формуле (П.40), если это требуется Второй этап - применение оптимальной синтезирующей функции и * (Лх1) Оля управления детерминированной системой (П 26) (нахождение ре¬ шения задачи для фиксированного начального состояния из множества Q). 1 Задать начальное состояние л(/0) е П. 2 Решить уравнение (П.26) совместно с найденной на предыдущем этапе оптимальной синтезирующей функцией «# ^ (/,дг1) для начального состояния д*(/0) •: С). В результате определяется пара d - (л*"(/), //*(0 = ы*(лх|#(/))), т.е. оп¬ тимальная траектория и оптимальное управление. Этот процесс функциониро¬ вания оптимальной системы с неполной обратной связью отражается структур¬ ной схемой, изображенной на рис. П.2. 3. Перейти к п. I данного этапа для задания нового начального состояния. \ а м е ч а н и и П.4. 1. Четвертое и пятое соотношения в (П.39) - следствия применения необ¬ ходимых условий экстремума соответствующих функций Поэтому если найде¬ но решение полученной системы, то это еще не означает, что управление 152
и*(/,х') оптимальное. Однако уравнения системы еще не залают до конца функцию ф(г, дг), используемую в формулировке утверждения П.2, определяя для ее доопределения. 2. В предельных случаях информированности о векторе состояния (им соответствуют различные способы задания множества начальных состояний П) система (П.39) преобразуется к соотношениям принципа максимума и уравне¬ нию Веллмана. При т = 0 множество П является точкой х(10) = х0 и ищется оптимальное программное управление «’(/). Соотношения (П.39) для общего случая преоб¬ разуются к соответствующим принципу максимума: После решения системы (П.40) можно проинтегрировать уравнение для функции IV(r) и вычислить минимальное значение функционала по формуле Если т = п, то множество Cl - R" и ищется оптимальное управление и *(t,x) с полной обратной связью. Система (П.39) для общего случая преобра¬ зуется к уравнению Веллмана для непрерывных систем: лишь ее первую производную по координатам вектора х2 и оставляя произвол *}(/)-fj(t,x'(t),и'(0), х*(/0)=х0у, 7 = 1,..., (П.41) где H(t,x,u) = £ У j(0- Функция И /{{)определяется решением уравнения с конечным условием Их* (h)). п d е
Пример П.4. Даны модель объекта управления в форме х,(/) = «(/), -*2(0 = JC|(0 и квадратичный функционал / =— j u2(i)dt + — [xi2(2) + x22(2)]->min. 1 о 1 Начальные условия заданы множеством О : 4 х(г0)€П = {х|х2 =-~Х\,х, еЛ}. Требуется найти оптимальную синтезирующую функцию a’(/,xt) на мно¬ жестве а. □ Здесь хеЛ2, ueR, /е[0;21, /°(/,х,м) = ^м2, = -Мх,2 + х22], л* L /,(г,х.н) = «. /2(г,х,н) = хь т= 1. Выпишем систему (П.39) для данной задачи с учетом того, что I ? 4 х =х,, х =х2, Уо(-*|) = - у*1. ф('.л) = И^(/,х1) + ч/(/,х1)-х2, и/. \ dW(t,xA Зч/(/,х.) 1 Н(/,х,и) = — -и+—;—*-мх2 + ч'(/,х1)х, -—и , дх\ ох | 2 н'(/. х,, у(1,х,)) = шах #(/, Х|, у(/, х,), и). U Она имеет вид rW(/,x.) dW(ttXi) . , . 1 .2/ . Л ■—- + — 7Г~~1~и+ 2(г,х,) = 0, /5/ дх} 2 И'(2.х,) = -^л12+1у2(2,х|), aV|/(z,JC,) _ v _ v = " <'• *1). ф(2, X,) = - у(2, х,), д/ ЙХ| at Зх, 3 Используя необходимые условия экстремума для нахождения максимума по управлению и, определим структуру оптимального управления: . гИЧ/.х,) + с>»р(/,х1) _ s
Будем искать неизвестные функции, входящие в записанную выше систе¬ му, в виде л(0 + л(0 xi> i) = j K2(i) х,2 + х, + K0(t), v(r,x,) = v|/(r) + ^(r)x,, где y0(/),yi(/), АГ0(/), К|(0. ^г(0.ч»(0.^(0-функции, подлежащие определению. Тогда получим H'(t,X\,y(i,Xi)) = max I (Кгх, + *,)« + + у, х,) « + (v + х,)х, -^«2 •, И*(/,Х1) = К2Х{ +*1 +^ (Уо +У, Jf|). Здесь и далее аргументы функций для краткости опущены. Подставляя ^(/.x^.W^f.x'j.vK/.x'KH’f/.Xi) в систему и приравнивая чле¬ ны при одинаковых степенях х( нулю, получаем >о + >Ч>) = 0. Уо(0) = 0. у, +у, A'j -1 + у,2// = 0, yi(0) = ~j, Ч/ = -ЛГ2у0-ЛГАГ1, Ч/(2) = -у0<2), N = -К2 N-У\N2, Л'(2)=-у,(2), K2 + Kj + 2N-N 2 yf = О, АГ2(2) = -1 + у2(2), А", + А', *2 + ч/ - у, у„ = О, Кх(2) = у, (2) у0(2), *0 lylN2 = 0, *0(2) = j Уо(2). Решение данной системы имеет вид у0(/)=ад=ад * ч-(о=т=о. у,(/)=-(2:;,)(4:/). ад=- 1 2(3-/) (3-/) С использованием связи х2 - y(t,xj) определим явный вид искомой опти¬ мальной синтезирующей функции и выражение для вычисления минимального значения функционала качества: И*(/,Х,) = -у1уХ, , <(К'о • *) = ^(0, х,) + ч>(0, х,) х2 = - ~х2 = - min Ух е О ■ 6 deVOa.xо) 155
БИБЛИОГРАФИЧЕСКИЙ СПИСОК 1. Батищев Д.И. Генетические алгоритмы решения экстремальных задач /Под ред. Я. Е. Львовича: Учебное пособие. Воронеж, 1995. 2. Батищев Д.И., Исаев С.А. Оптимизация многоэкстремальных функций с помощью генетических алгоритмов // Высокие технологии в технике, медицине и образовании: Межвуз. сб. науч. тр. Ч. 3. Воронеж, ВГТУ, 1997. С. 4-17. 3. ВасильевФ.П. Численные методы решения экстремальных задач. - М.: Наука, 1980. 4. Ганелина И.Д., Фроловский В.Д. Решение задачи поиска гамильтонова цикла на отрезках методом муравьиных колоний // Сайт в Интернете http://www.graphicon.ru/2005/ proceedings/ papers/Ganelina.pdf. 5 Гладков В.А., КурейчикВ.В., Куреичик В.М Генетические алгоритмы. - М.: ФИЗМАТЛИТ, 2006. 6. Жиглтский А.А., Жилинскас А.Г. Методы поиска глобального экстре¬ мума. - МНаука, 1991. 7. Интернет-ресурс, посвященный оптимизации на основе метода муравьи¬ ных колоний: // http://iridia.ulb.ac.be/-mdorigo/ACO/ index.html. 8. Исаев С.Популярно о генетических алгоритмах. Оптимизация много¬ экстремальных функций с помощью генетических алгоритмов // Сайт в Интернете www.algolist.manual.ru. 9 Остро,viud Б.Методики дрессировки "цифровых муравьев" // Сайт в Интернете http://itc.ua/node/10475/. 10. Пикши И. BaseGroup Labs. Непрерывные генетические алгоритмы - математический аппарат И Cam в Интернете http://www.bascgroup.ru/ gcnctic/rcal coded_ga.htm. 11. Пантелеев А.В. Достаточные условия оптимальности управления дискретными детерминированными системами с ограниченным составом точных измерений // Автоматика и телемеханика. 2007. №4 С. 67-78. 12. Пантелеев А.В. Оптимальные нелинейные системы: синтез при непол¬ ной информации - М.: Вузовская книга, 2008. 13. Пантелеев А.В.. Алешина Б.А. Разработка алгоритмического и прог¬ раммного обеспечения метода муравьиных колоний // Научный вестник МГТУ ГА Сер. Прикладная математика. Информатика. 2008. 132(8). С. 38-48. 14 Пантелеев А.В.. Алешина Б.А. Разработка алгоритмического и прог¬ раммного обеспечения метода частиц в стас // Научный Вестник МГТУ ГА. 145(8) 2009 С. 32-39. 150
15. Пантелеев АН., Апостол Н Разработка модифицированного генетического алгоритма условной оптимизации с бинарным кодированием /7 Научный Вестник МГТУ ГА. Сер. Прикладная математика. Информатика, 2007. 120(10). С. 24-31. 16. Пантелеев А.В., Апостол Н.П. Формирование генетического алгоритма поиска условного экстремума с вещественным кодированием // Теоретические вопросы вычислительной техники и программного обеспечения: Межвузовский сб. науч. тр. МИРЭА, 2008. С. 115-121. 17. Пантелеев А Н., Апостол Н.П. Алгоритмическое и программное обеспечение модифицированного генетического алгоритма условной оптимизации с бинарным кодированием.- Вестник МАИ. Т. 15. №2. С. 113-123. 2008. 18. Пантелеев А.В., Бортаковский А.С. Теория управления в примерах и задачах. - М.: Высш. шк., 2003. 19. Пантелеев А.Н., )[митраков И.Ф.Анализ сравнительной эффективности метода имитации отжига для поиска глобального экстремума функций многих переменных // Научный Вестник МГТУ ГА. 145(8). 2009. С. 26-31. 20. Пантелеев А.Н., Летова Т.А.Методы оптимизации в примерах и задачах. - М.: Высш. шк., 2008. 21. Поведение муравьев можно успешно использовать для разработки съемочных сетей GPS // Сайт в Интернете http://www.navgeocom.ru/projects/ ants/. 22. ПолякБ.Т. Введение в оптимизацию. - М.: Наука, 1983. 23. РастригинЛ.А. Случайный поиск. - М.: Знание, 1979. 24. Стариков A., BaseGroup Labs. Генетические алгоритмы - математичес¬ кий аппарат // Сайт в Интернете http://www. basegroup.ru/genetic/ ath.htm. 25. Стручков Т. Что такое генетические алгоритмы // Сайт в Интернете www neuroproject.ru/genealg.htm. 26. Сухарев А.У. Глобальный экстремум и методы его отыскания. - М.: Изд- во МГУ, 1981. 27. Трофимова Т.Н. Курс физики -М.: Высш. шк., 1990. 28. Цой Ю. Генетические и нейроэволюционные алгоритмы // Сайг в Интернете http://qai.narod.ru. 29 Чураков М.,Якушев А. Муравьиные алгоритмы // Сайт в Интернете http://rain.ifmo.ru/cat/view.php/theory/unsorted/ant-algo2006. 30. AartsF..HJ... van Ixiarhoven P.J.M. Simulated Annealing: Theory and Applications. London, Kluwer, 1987. 157
31. Homze I.М., CsendesТ., Horst, R., Partial as P.M., eds. Developments in Global Optimization. London, Kluwer, 1997. 32. Chakraborty U.K.(ed) Advances in differential evolution, Springer, 2008. 33. CtercM. Particle swarm optimization, 2006. 34. Come D., Dorigo М., Glover /*'. New ideas in optimization (Advanced topics in computer science), Me Graw-Hill Inc., 1999. 35. De.long K.A. Analysis of the Behavior of a Class of Genetic Adaptive Systems. PhD thesis. Dept, of Computer and Communication Sciences, University of Michigan, 1975. 36. Dixon L.C.W.,Szegti G.P. (eds). Towards Global Optimization 2. North- Holland, 1978. 37 Dorigo М., Gamhardella L.M. Ant colonies for the traveling salesman problem // Сайт в Интернете http://www.cs.nott.ac.uk/ ~gxk/courses/g5baim/papers/ nts-002.pdf. 38. Dorigo М., T.StutzleAnt colony optimization - MIT Press, 2004. 39. Eberhart, R.C.. and Kennedy, ./. A New Optimizer using Particle Swarm Theory, Proceedings Sixth Symposium on Micro Machine and Human Science, IEEE Service Center, Piscataway, NJ, 1995. 40. Engelbrecht A.P. Fundamentals of computational swarm intelligence, 2006. 41. Evtushenko Yu. G., Potapov M. A., Korotkich V. V. Recent Advances in Global Optimization. Prinston, Pnnceton University Press, 274-297, 1992. 42. HerreraI.ozano М., Verdegay Tackling real-coded genetic algorithms: operators and tools for the behavior analysis// Artificial Intelligence Review. V. 12, № 4,265-319, 1998. 43. Hui-Yuan Fun, JouniLampinen A trigonometric mutation approach to differential evolution. Evolutionary methods for design, optimization and control with application to industrial problems, 65-70, Athens, 2001. 44 Hui-Yuan ban. Jouni Lampinen A direct mutation operation for the differential evolution algorithm // International Journal of Industrial Engineering: Theory, Applications and Practice, 1(10), 6-15, 2003. 45. FeoktistovV. Differential Evolution In Search of Solutions, Springer, 2006. 46 Glover F.W., Kochenberger G.A.(eds) Handbook of Metaheuristics. - 2003. 47 .GoldbergD. Genetic Algorithms in Search, Optimization and Machine learning Addison-Wesley, 1989. 48 Gomez S.. Levy A.V. The Tunneling Method Applied to Global Optimization. SIAM, Numerical Optimization, 213-244, 1985. 158
49. Holland J.N. Adaptation in Natural and Artificial Systems. Ann Arbor, Michigan: Univ. of Michigan Press, 1975. 50. Ingher A., Simulated Annealing Applied to Combinatorial Optimization. Control and Cybernetics 25 (]), 33-54 (1996). 51. Ingber L.. Very fast simulated re-annealing. Mathematical Computer Modelling 12 (.8), 967-973 (1989). 52. Kennedy, ./. and Eberharl, R. Particle Swarm Optimization // Сайт в Интернете http://www.engr.iupui.edu/~shi/Coference/psopap4. html. 53. Kirkpatrick S., Gelatt С. IX,Vecchi R. Optimization by simulated annealing. Science. V.220(1983), 671-680. 54. Michalewicz Z. Genetic algorithms, Numerical optimization and constraints// Proceedings of the 6lh International conference on genetic algorithms, 151-158, 1995. 55. Michalewicz Z, Fogel D. How to solve it: modem heuristics, Springer, 2004. 56. Mishra. S.K. Global Optimization by Differential Evolution and Particle Swann Methods: Evaluation on Some Benchmark Functions, Munich Personal RePEc Archive (MPRA), 2006. 57. Mitchell M. An introduction to Genetic Algorithm. MIT Press, 1996 / CRC press, 1996. 58. Neumaier А. Личная страница, набор тестовых функций // Сайт в Интернете http://www.mat.univie.ac.at/~neum/glopt/ test_results.html. 59. Price К, Stom /?., J.Lampinen Differential evolution - a practical approach to global optimization, Springer, 2005. 60. Rinnoy Kan A.H.G.,Timmcr G.T. Stochastic Global Optimization Methods // Mathematical programming, 39, 27-78, 1987. 61. Shi Y. Swann intelligence. - Morgan Kaufmann, 2001. 62. Storn R., Price K., Differential Evolution - a Simple and Efficient Heuristic for Global Optimization over Continuous Spaces, Journal of Global Optimization, Kluwer Academic Publishers, 1997, Vol. 11, 341 - 359. 63. ToniA. Global Optimization as a Combination of Global and Local Search. Turku, Abo Akademi University, 1974. 64 David H. Wolpert, Williams G. Macready No free lunch theorems for optimization // IEEE Trans, on evolutionary computation, 1(1), 67-82, 1997. 65 Wright A. Genetic algorithms for real parameter optimization// Foundations of Genetic Algorithms, V. I, P. 205-218, 1991. 159