Научная статья на тему 'Метод мета-оптимизации поисковых алгоритмов оптимизации'

Метод мета-оптимизации поисковых алгоритмов оптимизации Текст научной статьи по специальности «Математика»

CC BY
1680
551
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ГЕНЕТИЧЕСКИЙ АЛГОРИТМ / НЕЙРОННАЯ СЕТЬ

Аннотация научной статьи по математике, автор научной работы — Карпенко А. П., Свианадзе З. О.

Рассматривается задача параметрической оптимизации алгоритмов поисковой оптимизации (задача мета-оптимизации). Предложен метод мета-оптимизации, основная особенность которого заключается в отыскании оптимальной стратегии алгоритма в процессе нормальной эксплуатации реализующей его программы. Метод использует кластеризацию множества задач рассматриваемого класса с помощью сети Кохонена и решение собственно задачи мета-оптимизации с помощью непрерывного генетического алгоритма.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по математике , автор научной работы — Карпенко А. П., Свианадзе З. О.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Метод мета-оптимизации поисковых алгоритмов оптимизации»

электронное научно-техническое издание

НАУКА и ОБРАЗОВАНИЕ

_Эя №<М1 77 - 30569. Государственндд регистрация №0421100025. IS5N 1994-0408_

Метод мета-оптимизации поисковых алгоритмов оптимизации # 01, январь 2011

авторы: Карпенко А. П., Свианадзе З. О.

УДК 519.6

МГТУ им. Н.Э. Бумана

Введение

В современных алгоритмах поисковой оптимизации обычно имеется значительное число свободных параметров. К примеру, в методе оптимизации роем частиц (particle swarm optimization - PSO) такими параметрами являются коэффициенты, определяющие веса инерционной, когнитивной и социальной компонентов вектора скорости частицы, размер популяции, топология соседства частиц и т.д. [1]. Вектор значений свободных параметров алгоритма называется стратегией алгоритма.

Стратегия алгоритма оптимизации в значительной степени определяет его эффективность. Поэтому возникает задача поиска оптимальной стратегии этого алгоритма, которая называется задачей мета-оптимизации. Оптимизируемый алгоритм и соответствующая программа называются базовыми, а алгоритм и программа решения задачи мета-оптимизации - мета-алгоритмом и мета-программой.

Известен ряд работ, посвященных теоретическому анализу влияния различных стратегий на эффективность некоторых базовых алгоритмов. Например, в работах [2-4] рассматривается выбор оптимальных значений параметров метода роя частиц; в работах [5, 6] - выбор оптимального

размера популяции, а в работах [7 - 9] - оптимальной вероятности мутаций для генетических алгоритмов. Однако исследования такого сорта основаны на сильных упрощениях базового алгоритма и имеют, поэтому, ограниченную практическую ценность.

Вследствие сказанного обычно задачу мета-оптимизации решают численными методами, которые можно разделить на две группы - методы управление параметрами и методы настройки параметров [10, 11].

В методах настройки параметров задача мета-оптимизации решается для некоторого класса задач. Найденные оптимальные стратегии базового алгоритма фиксируются и используются для решения других задач данного класса. Методы разделяются на методы однократной настройки и методы перманентной настройки.

Методы однократной настройки являются классическими методами мета-оптимизации. Идея методов состоит в том, что базовый алгоритм оптимизации многократно выполняется при различных стратегиях на большом числе задач, принадлежащих рассматриваемому классу задач. На основе результатов исследования выбирается стратегия с наилучшими показателями эффективности.

Исторически методы однократной настройки были впервые широко использованы, вероятно, при мета-оптимизации генетических алгоритмов [10, 12]. В указанных работах были получены стратегии этих алгоритмов, оптимальные для некоторых тестовых задачах. При этом полагалось, что свободные параметры генетических алгоритмов устойчивы к вариациям задач, то есть их оптимальные значения примерно одинаковы для широкого класса задач. Отметим, что современный взгляд на генетические алгоритмы иной - в настоящее время понятно, что оптимальные стратегии генетических алгоритмов существенно различны для различных классов задач.

В работе [13] методом однократной настройки получена стратегия базового алгоритма Нелдера-Мида, которая обычно и используется в этом алгоритме. В некоторых программных библиотеках, включающих в себя реализацию алгоритма Нелдера-Мида, данная стратегия используется по умолчанию (библиотека NAG [14]), а в других библиотеках параметры этой стратегии даже не являются настраиваемыми (библиотека системы MATLAB [15]).

Основной проблемой данного метода является экспоненциальный рост вычислительных затрат при увеличении числа параметров в стратегии базового алгоритма. Так, уже при четырех свободных параметрах алгоритма и всего пяти возможных значениях каждого из них, необходимо

протестировать 54 = 625 стратегий. Если тестирование базового алгоритма производится на 100 задачах, то это потребует 62500 запусков алгоритма. Из-за невозможности исчерпывающего исследования, полученная в результате стратегия может оказаться далекой от оптимальной.

В методе перманентной настройки мета-алгоритм в процессе функционирования базового алгоритма непрерывно собирает информацию об эффективности различных стратегий решения конкретных задач рассматриваемого класса и варьирует эти стратегии, пытаясь повысить эффективность базового алгоритма. Пример реализации такого подхода рассмотрен в работе [16], где в качестве базового алгоритма использован алгоритм метода роя частиц. В этой же работе на основе данного подхода предложен мета-алгоритм для базового алгоритма Нелдера-Мида.

В методах управления параметрами задача мета-оптимизации решается в процессе решения исходной задачи оптимизации (с помощью базового алгоритма). Основная идея состоит в том, что поскольку для каждой задачи оптимизации оптимальной является, вообще говоря, своя стратегия, поиск этой стратегии необходим производить в процессе каждого запуска базового

алгоритма. Методы управления параметрами разделяются на методы адаптивного управления и методы само-адаптивного управления [10, 11].

В методах адаптивного управления алгоритм мета-оптимизации надстраивается над базовым алгоритмом оптимизации и использует информацию, получаемую в процессе функционирования последнего. В роли алгоритма мета-оптимизации при этом может выступать какое-либо эвристическое правило (например, «правило 1/5» [17]). Часто в качестве мета-алгоритмов применяют эволюционные алгоритмы, которые эффективны в задачах оптимизации высокой размерности и которые позволяют достаточно быстро найти приближенно оптимальную стратегию. Например, в работе [18] над алгоритмом метода роя частиц надстраивается эволюционный алгоритм, который в процессе решения задачи оптимизирует параметры метода роя частиц. В работе [19] над алгоритмом роя частиц, как базовым алгоритмом, в качестве алгоритма метаоптимизации также надстраивается алгоритм роя частиц. При этом частицы первой популяции называются «подчиненными» (subswarms), а частицы второй популяции -«главными» (superswarms).

В методах само-адаптивного управления параметры стратегии включаются в вектор варьируемых параметров исходной задачи, расширяя тем самым пространство поиска. Эти же параметры участвуют в формировании целевой функции, модифицируя, таким образом, целевую функцию исходной задачи. В результате базовый алгоритм начинает выполнять функции мета-алгоритма. Методы само-адаптивного управления получили распространение при мета-оптимизации эволюционных базовых алгоритмов.

Основное число публикаций, посвященных мета-оптимизации на основе управления параметрами, связано с использованием в качестве базовых алгоритмов именно генетических алгоритмов. Например, в работе [10]

с помощью метода управления параметрами в качестве оптимальных стратегий найдены стратегии, существенно отличающиеся от стратегий, полученных в упомянутой выше классической работе [12].

Отметим следующее важное обстоятельство. В работах [20, 21] показано, что на различных этапах функционирования базового генетического алгоритма оптимальными являются различные его стратегии. Например, на ранних этапах эволюции предпочтительным является большой шаг изменения параметров мутации, обеспечивающий широкое исследование пространства поиска. На поздних этапах эволюции, напротив, этот шаг должен быть уменьшен, чтобы обеспечить высокую точность решения. Аналогичные выводы справедливы по отношению и к другим свободным параметрам генетического алгоритма. Поэтому в настоящее время идет интенсивный поиск простых и, в то же время, эффективных эвристических правил изменения этих параметров, т.е. поиск динамических стратегий генетических алгоритмов. Значительным стимулом для данных исследований является тот факт, что применение даже простого правила варьирования стратеги базового генетического алгоритма часто дает существенный выигрыш в эффективности алгоритма по сравнению использованием приближенно оптимальных статических стратегий [11]. Аналогичные выводы справедливы также для других современных алгоритмов оптимизации, например, для поведенческих методов.

Важным преимуществом методов управления параметрами по сравнению с методами настройки параметров является то, что первые методы позволяют относительно просто синтезировать динамические стратегии мета-оптимизации.

В данной работе предлагается вариант метода мета-оптимизации на основе перманентной настройки, основная идея которого заключается в отыскании оптимальной стратегии базового алгоритма в процессе

нормальной эксплуатации соответствующей базовой программы. При этом базовая программа перед началом вычислении посылает мета-программе априорную информацию о параметрах решаемой задачи, а после завершения вычислений - апостериорную информацию о тех же параметрах Программная реализация идеи приводит к распределенной мета-программной системе, центральная часть которой в процессе своего функционирования накапливает информацию о параметрах задач, когда-либо решавшихся в системе. При предъявлении системе априорных значений параметров новой задачи, система на основе накопленной информации возвращает базовой программе приближенно-оптимальную стратегию базового алгоритма.

Отметим, что предлагаемый метод мета-оптимизации, как и всякий метод перманентной настройки, реализует поиск оптимальных стратегий базовых алгоритмов в процессе решения не тестовых, а реальных задач оптимизации.

1. Постановка задачи мета-оптимизации

Рассмотрим задачу глобальной безусловной оптимизации

min Ф(Х) = Ф(Х *) = Ф\ X е Rn, (1)

X

где Ф(Х) - скалярная целевая функция, X - мерный вектор варьируемых

параметров, Rn - n-мерное арифметическое пространство, X* - искомый вектор оптимальных значений компонентов вектора варьируемых параметров, Ф* - искомое оптимальное значение целевой функции.

Некоторый класс задач вида (1) обозначим T = {t.,i = 1,2,...}, где t{ = t одна из задач этого класса.

Пусть a(Q) - рассматриваемый базовый алгоритм решения задач класса T, где Q = (ql5 q2,..., qM} - стратегия этого алгоритма. Положим, что для каждого из компонентов qi стратегии Q заданы интервалы его

допустимых значений , q*, так что определено множество DQ допустимых стратегий

DQ = [qi\q;< qt < qt,i e [1: M]}.

Совокупность алгоритмов, которую определяет множество Dq ,

обозначим

A = {a(Q)\Q e DQ }. Поставим прежде следующую вспомогательную задачу мета-

оптимизации.

*

Задача 1. Для задачи t e T найти стратегию Q (а тем самым, и алгоритм

a* = a(Q ) e A), которая обеспечивает минимальное значение критерия оптимальности J (t, Q):

min J(t, Q)=J(t, Q*), Q e DQ. (2)

Здесь J (t, Q) - критерий оптимальности стратегии Q при решении задачи t.

*

Подчеркнем, что стратегия Q в данном случае имеет смысл оптимальной стратегии только для задачи t e T .

Очевидно, что можно предложить целый ряд критериев J(t, Q), отражающих разные аспекты представлений лица, принимающего решения, об оптимальности стратегии QQ . Так что задачу (2), вообще говоря, следует рассматривать как многокритериальную задачу. Обозначим частные критерии оптимальности этой задачи Jt (t, Q), i = 1,2,...

В качестве одного из критериев Jt (t, Q) (пусть это будет критерий J1(t, Q)) обычно используют оценку времени решения задачи t с помощью

алгоритма а(б). Это время состоит из двух основных компонентов -времени испытаний (вычислений значений целевой функции Ф(Х) и, возможно, ее производных) и времени вычислений, связанных с реализаций итерационной формулы базового алгоритма. В практически важных задачах первое время многократно превышает второе. Поэтому будем считать, что

Jl(t, б) = тZв (I, б), (3)

где т - быстродействие вычислительной системы (среднее время выполнения одной арифметической операции), Zв ^, б) - суммарное число испытаний при решении задачи t алгоритмом а(б).

В качестве другого критерия оптимальности Ji ^, б) (пусть это будет критерий J2(t, б)) логично использовать оценку вычислительных затрат на решение собственно задачи мета-оптимизации (2). Например, по аналогии с формулой (3) можно положить, что

J 2^, б) = тZм ^, б),

где Zм ^, б) - суммарное число арифметических операций, необходимых для решения задачи метаоптимизации (2).

С помощью, например, аддитивной скалярной сверки [22] векторный критерий оптимальности Ji^,б), i = 1,2,... сведем к скалярному критерию

J а, б) = 1V,- а, б), (4)

г

где \ - вещественный неотрицательный весовой множитель.

Решение задачи 1 предполагает необходимость варьирования стратегии базового алгоритма а(б) в процессе решения задачи t, т.е. задача 1 представляет собой задачу адаптивного управления параметрами базового алгоритма.

*

Задача 2. Для класса задач T найти стратегию Q (а тем самым и алгоритм a * = a(Q) е A), которая обеспечивает минимальное значение критерия оптимальности J (t, Q):

min J(T, Q)= J(T, Q*), Q е DQ . (5)

Здесь J (T, Q) - критерий оптимальности стратегии Q при решении класса

*

задач T . Таким образом, здесь стратегия Q имеет смысл оптимальной стратегии для класса функций T.

В данном случае также можно предложить целый ряд критериев оптимальности J (T, Q) и задачу 2 следует рассматривать как задачу многокритериальную оптимизации. Частные критерии оптимальности этой задачи обозначим Jt (T, Q), i = 1,2,...

Во-первых, критерии Jt (T, Q) можно построить на основе рассмотренного выше критерия оптимальности J(t, Q), t е T. Например, примем, что один из критериев Jt (T, Q) (пусть это будет критерий J1(T, Q)) представляет собой максимальное гарантированное значение критерия J(t, Q) на классе задач T:

J1(T, Q) = max J(t , Q), tj е T.

j

Аналогично можно положить, что

J2 (T,Q)= m[J(tj,Q)J (6)

и

J з (T, Q)=J., Q)J, (7)

где m, с - символы оценок математического ожидания и среднего квадратичного отклонения критерия J(t, Q) на классе задач T.

Во-вторых, критерии Ji (Т, б) можно строить без использования критерия J ^, б). Используем, например, в качестве критерия оптимальности J4(Т, б) оценку вероятности р(Т, б) не локализации минимума функции Ф-;л.) на классе задач Т базовым алгоритмом а(б):

J 4 (Т, б) = Р(Т, б). (8)

С помощью, к примеру, аддитивной скалярной сверки [22] векторный критерий оптимальности Ji(Т,б), г = 1,2,... сведем к скалярному критерию

J (Т, б) = 1V, (Т, б),

г

аналогичному критерию (4).

Решение задачи 2 не предполагает варьирование стратегии базового алгоритма в процессе решения каждой из задач t класса Т. Напротив, предполагается варьирование этой стратегии лишь после решения некоторых порций задач класса Т. Таким образом, задача 2 представляет собой задачу перманентной настройки параметров базового алгоритма.

2. Схема метода

Введем в рассмотрение вектор С^) = (с^),с2^),...,сы^)) атрибутов задачи t е Т. Примерами атрибутов задачи могут служить константа Липшица функции Ф(Х) (если эта функция является липшицевой), максимальное значение градиента этой функции (если она дифференцируема), число локальных минимумов и вычислительная сложности той же функции и т. д. Совокупность всех возможных значений вектора С{ обозначим

DC = {С ^ )| t е Т}.

Заметим, что атрибуты С (?) можно разделить на три следующих класса:

- функциональные атрибуты, полностью определяемые математическими свойствами функции Ф(Х) (константой Липшица этой функции, например);

- вычислительные атрибуты, определяемые вычислительной сложностью функции Ф( X) и, быть может, ее производных;

- точностные атрибуты, определяющие точность решения задачи (число итераций, к примеру).

Значения всех атрибутов ),с2(?),...,ск(?) задачи ?еТ должны быть заданы до решения задач метаоптимзации. Значения некоторых из этих атрибутов могут уточняться в процессе решения базовой задачи. Назовем эти атрибуты апостериорными и обозначим О(?) = (о1(?),о2(?),...). Остальные компоненты вектора С (?) назовем априорным и обозначим I (?) = №), 12(?),...).

Основная идея метода состоит в следующем:

- в процессе нормальной эксплуатации базовой программы (т.е. в процессе решения задач класса Т) формируется и непрерывно

с

пополняется множество D ;

- производится сначала кластеризация, а затем, периодически,

с

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

рекластеризация этого множества - выделяются кластеры , i е [1: К];

С *

- каждому из кластеров ставится в соответствие стратегия Qi ;

С С

- для задачи ?(С) е Т среди кластеров Д выбирается кластер Di ,

которому принадлежат значения атрибутов С (?) задачи;

*

- соответствующая стратегия Qi по некоторому правилу варьируется и полагается оптимальной стратегий базового алгоритма для задачи ?(С) е Т .

Метод требует решения двух следующих основных задач:

с

1) задача кластеризации множества D ;

2) задача оптимизации стратегий б* (т.е. собственно задача мета-оптимизации).

с

2.1. Задача кластеризации множества D . Классические подходы к задаче кластеризации многомерных векторов основаны на сравнении векторов между собой в смысле некоторой меры близости, которой называется величина, имеющая предел и возрастающая с увеличением сходства объектов [23]. В качестве меры близости числовых векторов часто используется евклидово расстояние между ними.

Большое распространение получили алгоритмы кластеризации, основанные на оптимизации некоторой функции, характеризующей качество кластеризации. Среди данных алгоритмов выделяют алгоритмы семейства ^ средних. В этом случае указанная функция представляет собой сумму квадратов взвешенных отклонений координат векторов от центров искомых кластеров, которые, полагается, имеют сферическую или эллиптическую формы [23].

В работе для решения задачи кластеризации множества D используется высокоэффективный алгоритм на основе самоорганизующихся карт Кохонена (Self-OrganizingMap - SOM). Карта Кохонена представляет собой соревновательную нейронную сеть с обучением без учителя, которая кроме решения задачи кластеризации решает также и задачу визуализации результатов кластеризации (методом проецирования многомерного пространства в пространство с более низкой размерностью) [24].

Чаще всего сети Кохонена реализуют с помощью однослойной нейронной сети, в которой каждый нейрон получает все компоненты входного вектора С = (с1, с2,..., cN) (рисунок 1).

= (™иъ2,...,wi,м) - вектор входных весов нейрона Н Рисунок 1 - Структура однослойной сети SOM

Число рекластеризаций множества D назовем числом эр метода.

2.2. Задача оптимизации стратегии Q*. К мета-алгоритму предъявляются следующие требования:

- поскольку для современных алгоритмов оптимизации характерна высокая размерность вектора стратегий Q, мета-алгоритм должен успешно функционировать в пространствах высокой размерности;

- вследствие того, что мета-оптимизация производится в процессе нормальной эксплуатации базового программного обеспечения, мета-алгоритм должен обеспечивать быстрое получение приближенно оптимальных стратегий, т.е. высокую скорость сходимости;

- мета-алгоритм должен быть алгоритмом глобальной оптимизации.

Указанным требованиям удовлетворяют эволюционные алгоритмы

оптимизации, из всего многообразия которых в работе используется генетический алгоритм, как наиболее развитый представитель эволюционных алгоритмов.

Как отмечалось выше, пространство поиска в задаче мета-оптимизации может иметь высокую размерность. Традиционный двоичный алфавит для кодирования хромосом в этих условиях может приводить к неприемлемо большим размерам хромосом [25]. Поэтому используем подход, основанный на представлении генов напрямую вещественными числами, в результате чего хромосома представляется в виде вектора вещественных чисел. Такой подход делает возможным поиск в пространствах высокой размерности, а также увеличивает скорость работы мета-алгоритма за счет отсутствия операций кодирования/декодирования, которые необходимы при двоичном представлении генов [25]. Назовем генетический мета-алгоритм, использующий представление генов вещественными числами, непрерывным генетическим мета-алгоритмом, а соответствующие хромосомы -непрерывными хромосомами.

При реализации непрерывного генетического мета-алгоритма не могут быть использованы классические операторы скрещивания (кроссовера) и мутации, поскольку они ориентированы на битовое представление хромосом.

Набор простых непрерывных кроссоверов рассмотрен, например, в работе [25]. Однако эффективность этих кроссоверов невысока. В настоящее время известны улучшенные варианты указанных непрерывных кроссоверов, одним из наиболее популярных среди которых является так называемый улучшенный бинарный кроссовер SBX (Simulated Binary Crossover), имитирующий классический бинарный кроссовер [26].

Поясним суть алгоритма SBX-кроссовера. Пусть С1 = (c\c\...clN),

С2 = (с2с22...с2) - непрерывные родительские хромосомы, а H1 = (h^...^), H2 = (h2h2...h2) - такие же хромосомы потомков. Здесь cj, hj - гены соответствующих хромосом; i е [1:2], j е [1: N].

В SBX-кроссовере потомки H \ H2 формируются по правилу

hj = 0,5 [(1 - P)c) + (1 + A)c;2 ], hj = 0,5 [(1 - p2)c) + (1 + P2)cj. ],

где

P(u)

(2u)v+1, u[0;1] > 0,5, , u[0;1] > 0,5;

f 1 V+1

2(1 - u)

u[0;1] - случайное число, равномерно распределенное на интервале [0,1], v е [2:5] - свободный параметр кроссовера, увеличение которого влечет за собой увеличение вероятности появления потомка в окрестности родителя и наоборот.

Отметим, что сила поиска (search power) кроссовера SBX равна силе поиска классического одноточечного двоичного кроссовера [26].

В качестве оператора непрерывной мутации наибольшее

распространение получили операторы случайной и неравномерной мутации.

При случайной мутации ген, подлежащий изменению, принимает случайное

значение из допустимого интервала своих значений. В неравномерной

мутации значение j-го гена после выполнения оператора мутации равно

c}. + Л(s, (b. - c.)), ш = 0, c -Л(s,(b. -c.)), ш = 1,

где

Л^, x) = x

1 - r

v

s

1-

ь

ш - целое случайное число, принимающее значение 0 или 1; ^ - номер эпохи; Ьу - свободный параметр алгоритма; г е [0,1] - случайное вещественно число;

етах - максимальное число эпох алгоритма; V - свободный параметр.

3. Программная реализация метода

Программная реализация метода имеет клиент-серверную архитектуру, которая позволяет перенести вычислительные затраты, связанные с мета-оптимизаций, на сервер приложений. Используется трехзвенная архитектура программного обеспечения, включающая в себя рабочие станции, сервер приложений и сервер баз данных. Такая архитектура обеспечивает хорошую масштабируемость системы, малую дополнительную нагрузку на рабочие станции клиентов, надежность и высокую безопасность данных.

В работе клиентской и серверной программ предусмотрена обработка следующих исключительных ситуаций.

1) Пользователь перед запуском базовой программы оптимизации имеет возможность отказаться от мета-оптимизации. В этом случае клиентская программа использует «умолчательные» значения параметров базового алгоритма («умолчательную» стратегию).

2) Соединение с серверной программой прерывается по тайм-ауту. При этом клиентская программа запускает базовую программу с «умолчательной» стратегией базового алгоритма.

3) В том случае, если в момент обращения клиентской программы серверная программа осуществляет поиск нового поколения стратегий (с помощью генетического алгоритма), последняя программа возвращает клиентской программе лучшую стратегию текущего поколения.

4) Если в момент обращения клиентской программы серверная программа осуществляет переобучение нейронной сети для рекластеризации

данных, то эта программа возвращает клиентской программе «умолчательную» стратегию базового алгоритма.

После задания пользователем значений атрибутов С(^ решаемой задачи t е Т, клиентская и серверная части программного обеспечения выполняют следующие основные действия:

- клиентская программа посылает серверной программе вектор С ^);

- получив этот вектор, серверная программа

• определяет кластер Di , которому принадлежит вектор С^),

*

• выбирает соответствующую этому кластеру стратегию Qi ,

варьирует эту стратегию и отсылает клиентской программе

**

измененную стратегию Qi ;

**

- клиентская программа, получив стратегию ^ , запускает процесс

решения задачи t с помощью алгоритма а^ );

- завершив решение задачи t, клиентская программа

• формирует вектор О(:) значений апостериорных атрибутов этой задачи,

• отсылает вектор О^) серверной программе;

- получив вектор О^) серверная программа фиксирует его в своей базе данных.

Кластеризация множества D в серверной программе реализована с помощью самоорганизующихся карт Кохонена. Серверная программа

поддерживает периодическую рекластеризацию множества D с увеличением его мощности. На начальном этапе функционирования

системы, когда мощность этого множества мала, используется только один

С

кластер. С ростом мощности множества D число кластеров увеличивается. Поскольку каждое увеличение числа кластеров требует значительных http://technomag.edu.ru/doc/164546.html Страница 17

вычислительных затрат на переобучение нейронной сети, на которой реализована карта Кохонена, интервал между переобучениями может возрастать по заданному закону.

*

Решение задачи оптимизации стратегии Qt реализовано в серверной программе с помощью непрерывного генетического алгоритма, использующего кроссовер SBX и неравномерную мутацию (см. раздел 2).

с

При этом для каждого из кластеров D создается своя популяция генетического алгоритма. В качестве функции приспособленности индивидов во всех случаях используется критерий оптимальности J(T,Q) (см. раздел 1).

3.1. Серверное приложение. Существует большое число серверов приложений, наиболее развитыми из которых являются сервера, построенные на платформе JavaEE (сервера приложений таких компаний, как IBM, Oracle/Sun, Borland, Apache). Среди свободно распространяемых серверов приложений одним из самых популярных и развитых является сервер приложений Apache Tomcat, который и используется в проекте (версия 6.0).

Серверная программа запускается на сервере приложений, принимая и обрабатывая сообщения от клиентской программы. В качестве платформы разработки серверной части программы использована платформа Java2SE, как платформа, имеющая широкий набор библиотек и функций для разработки серверных приложений.

Как известно, программы, написанные на языке программирования Java, транслируются в байт-код, исполняемый виртуальной машиной JVM, реализации которой существуют для широкого круга операционных систем. Это обстоятельство делает код программы независимым от операционной системы и оборудования. Кроме того, исполнение программы полностью контролируется виртуальной машиной, что повышает безопасность использования приложений. Любое несанкционированное действие

программы (попытка доступа к закрытым данным, установление связи с другим приложением) ведет к прерыванию исполнения программы.

К недостаткам концепции использования виртуальной машины для интерпретации байт-кода относится снижение производительности приложений и алгоритмов, реализованных на языке Java. Однако в современных версиях языка Java используются технологии, позволяющие существенно повысить производительность приложений. Например, трансляция байт-кода в машинный код непосредственно во время работы программы (JIT-технология), широкое использование платформенно-ориентированного кода в стандартных библиотеках, использование аппаратных средств, обеспечивающих ускоренную обработку байт-кода (технология Jazelle, поддерживаемая некоторыми процессорами фирмы ARM).

Для рассматриваемого приложения наиболее важными являются следующие достоинства языка Java: наличие простых средств создания сетевых приложений; наличие классов, позволяющих выполнять HTTP-запросы и обрабатывать ответы; унифицированный доступ к базам данных на уровне SQL-запросов; возможность параллельного выполнения программ.

Серверная программа обеспечивает параллельное выполнение программ, реализующих генетический алгоритм и алгоритм обучения нейронной сети Кохонена. Причем эти программы выполняются в отдельных от основного приложения потоках, что позволяет во время их выполнения принимать и обрабатывать запросы клиентских приложений.

В серверном приложении реализована концепция сервис-ориентированной архитектуры. Так что приложение представляет собой набор модулей, которые интегрированы в общую среду исполнения. Такая архитектура серверного приложения упрощает его разработку, обеспечивает гибкость использования и возможность масштабирования приложения.

Серверное приложение принимает сообщения от клиентских приложений в формате SOAP, который является стандартным протоколом передачи сообщений между удаленными приложениями. Протокол используется для обмена произвольными сообщениями в формате XML и может быть использован с любым протоколом прикладного уровня (SMTP, FTP, HTTP, HTTPS и др.). В качестве входных параметров серверная программа принимает строковый аргумент, в качестве ответа программа также возвращает строку.

Серверная программа представляет собой веб-сервис, описанный с помощью языка WSDL, который позволяет определять операции веб-сервиса, типы данных и способы доставки сообщений. Для поддержки возможности расширения базовых алгоритмов оптимизации создан модуль-фасад к веб-сервисам, который позволяет принимать сообщения от клиентских приложений и распределять их по необходимым веб-сервисам. Такая организация серверной программы позволяет легко расширять набор поддерживаемых базовых алгоритмов без вмешательства в работу остальных приложений (путем добавления новых веб-сервисов).

Работа с базой данных в серверной программе реализуется с помощью JDBC драйвера базы данных, подключенного в виде библиотеки. В программе реализованы запросы и методы обращения к базе данных для извлечения из нее стратегий, внесения информации о задачах и результатах запуска алгоритмов, а также другие запросы и методы.

Сервер баз данных реализован на основе MySQL Community Server 5.1, так как данный продукт поддерживает стандарт ANSI 92 и является свободно распространяемым продуктом.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

База данных содержит следующие основные таблицы.

1) Таблица стратегий, содержащая стратегии-индивиды, которые серверная программа передает клиентской программе для запуска базового

алгоритма оптимизации и которые генетический алгоритм использует с целью формирования новых поколений стратегий.

2) Таблица эффективностей стратегий, предназначенная для накопления результатов использования различных стратегий из предыдущей таблицы. На основе данных из этой таблицы генетический алгоритм вычисляет значение функции приспособленности каждого индивида и выбирает родителей для формирования нового поколения.

3) Таблица счетчиков, в которой хранятся данные о числе запусков каждого из базовых алгоритмов с той или иной стратегией из таблицы стратегий. По достижении определенного числа использований каждой из стратегий данного поколения, запускается генетический алгоритм для формирования нового поколения.

4) Таблица апостериорной информации, хранящая сведения обо всех ранее решенных задачах. Эти сведения используются для кластеризации задач - при накоплении определенного числа задач, решенных данным базовым алгоритмом, проводится переобучение нейронной сети Кохонена с учетом новых данных.

3.2. Клиентское приложение. Клиентская программа реализована на платформе MATLAB и использует в качестве базового алгоритма для мета-оптимизации модифицированную библиотечную реализацию метода Нелдера-Мида [13]. С помощью модификации обеспечена возможность варьирования свободных параметров (стратегии) этого метода, которая отсутствует в его MATLAB-реализации. Отметим, что клиентскую программу можно реализовать для любой библиотеки оптимизации. Платформа MATLAB выбрана только благодаря наличию в ней удобных средств работы с серверами приложений - библиотечных методов формирования сообщений в формате SOAP, методов отправки сообщений на сервер и т.д.

Для оценки константы Липшица минимизируемой функции Ф(Х)

клиентская программа ведет локальную базу данных, содержащую значения компонентов вектора варьируемых параметров X во всех точках испытаний, а также соответствующие значения функции Ф(X). Клиентская программа, кроме того, реализует оценку значений апостериорных атрибутов задачи 0($). Так, в этой программе определяется число локальных минимумов задачи.

4. Исследование эффективности метода 4.1. Исходные данные. Рассматривается базовый алгоритм а метода Нелдера-Мида (метода деформируемого многогранника), относящийся к классу прямых детерминированных методов оптимизации [13].

Пусть = {Х/, / е [1: (п +1)]} - текущий многогранник, где Х/ - вектор координат его /-ой вершины, г - номер итерации. Метод Нелдера-Мида использует следующие операции над многогранником.

Операция отражения вершины многогранника относительно центра тяжести остальных вершин. В результате отражения j-й вершины

многогранника 8Г получаем новый многогранник

+1 = {ХГ+1 = ХГ,i е [1: (п +1)],i * j,X;+1 = ХС + а(Хгс - Х;Г)},

где ХС - вектор координат центра тяжести остальных вершин многогранника (за исключением отраженной вершины), а «1 - коэффициент отражения.

Операция редукции. Операция приводит к уменьшению длин всех ребер

многогранника в одно и то же число раз, так что многогранник 8Г преобразуется в многогранник

+1 = {ХГ+1 = ХГ + 3(ХГ - ХГ;),/ е [1: (п +1)],/ * j,Х;+1 = ХГ},

где XГ - вершина многогранника, к которой производится редукция, 8 е (0,1) - коэффициент редукции.

Операция сжатия - стягивание вершины многогранника к центру тяжести его остальных вершин. Если выполняется сжатие вершины X;

многогранника Sr, то получаем новый многогранник

Sr +1 = {хг+1 = хг,i е [1:(п +1)],i * ],Хгк +1 = ХС + р(XГ - ХС)}, где р е (0,1) - коэффициент сжатия.

Операция растяжения - удаления одной из вершин многогранника от центра тяжести его остальных вершин. В результате растяжения вершины

XГ многогранника Sr получаем многогранник

Sr+1 = {X;+1 = X;, i е [1:(И+1)], i * X;+1 = X;: + у ( X; - X;)}, где у е (0,1) - коэффициент растяжения.

В качестве свободных параметров алгоритма Нелдера-Мидла рассматриваются параметры а,8, р,у. Таким образом, стратегия алгоритма а(() задается (М = 4)-мерным вектором Q = (ч1,q2,q3,q4), где q1 = а, q2 = 8 , q3 = р, q4 = у. Множество допустимых стратегий имеет вид

DQ = к < qi, / е [1: 4]},

где = 0,9; = 1,0; ч2- = 0; ч2+ = 1,0; ч- = 0; ч3+ = 1,0; = 2,0; ч4+ = 3,0.

Класс задач Т = Т^ построен на основе совокупности следующих восьми тестовых функций, графики которых приведены в Приложении А.

Двухмерная функция Химмельблау (рисунок А.1), имеющая четыре локальных минимума и один локальный максимум,

Ф(., х2) = (. + х2 - (а2 + Ь ))2 + (. + .22 - (а + Ь2 ))2, где а, Ь - случайные числа из интервала [0;10]. Здесь, а также в других тестовых функциях, имеющих случайные параметры, имеются в виду

псевдослучайные числа, равномерно распределенные в соответствующих интервалах.

Двухмерная функция Розенброка (рисунок А.2), имеющая вытянутый овраг, внутри которого расположен глобальный минимум функции,

Ф(х1, х2) = (1 - х1 )2 + 100(х2 + х12 )2.

Двумерная функция Шафера (рисунок А.3), обладающая большим числом локальных минимумов,

х2 + х22) - 0,5

Ф( x1, x2) = 0,5 +

(l + 0,001(х2 + x22 ))2 ' Трехмерная функция «сфера» (рисунок А.4), обладающая одним глобальный минимумом

Ф(Xj, x2 , x3 ) = x2 + x22 + x32. Пятимерная функция Step

ФФ(Xj, X2 , X3 , X4, X5 ) — |Xj I + + |x41 + |x5 J .

Двумерная функция Экли (рисунок А.5), которая имеет множество локальных минимумов и один глобальный минимум,

,-0,2

Ф(X) = е 0,2 д/xj + x22 + 3(cos 2x1 + sin 2x2).

Двумерная функция Растригина (рисунок А.6), которая имеет множество локальных минимумов и один глобальный минимум,

Ф(X) = ¿(x2 -10cos2лх. +10).

Двумерная функция Шекеля (рисунок А.7), обладающая множеством глубоких локальных максимумов и одним глобальным максимумом,

ф(Х) = £ -^Т"1-».

/-1 с j .1х - аj,/ у

В качестве критерия оптимальности алгоритма а(() на классе функций используется критерий

3 (Т, () = Т Zв (Т, ()] + ^ Zв (Т, ()] + Я3 (1 - р(Т, ()) (см. формулы (6 - 8)).

Принято, что трехмерный (N = 3) вектор С( ?) атрибутов задачи

t(С) е включает в себя следующие атрибуты:

- - константа Липшица функции Ф(X);

- - число локальных минимумов функции Ф(Х);

- с3(?) - точность решения задачи.

Из числа этих атрибутов константа Липшица с1( ?) и число локальных минимумов с2(?) являются апостериорными атрибутами.

Для сокращения времени исследования, параметры генетического алгоритма, с помощью которого решается задача собственно метаоптимизации, были выбраны, несколько отличными от параметров, рекомендованных в работе [10]:

- размер популяции - 20;

- число использований каждого индивида - 15;

- число поколений - 10;

Здесь число использований каждого индивида - это число запусков метода со стратегией, определяемой данным индивидом, которое необходимо для оценки приспособленности индивида в популяции. Число поколений - параметр, необходимый для определения числа задач ? е Т^, которые нужно решить для начала процедуры смены эры (реструктуризации множества DC). Точнее говоря, смена эры производится, если число решенных задач ? е таково, что в каждом из текущих кластеров D(c,

, е [1: К] сменилось не менее 10 поколений стратегий (*.

4.2. Результаты исследования. Приведенные ниже результаты получены на основе решения более 150 тысяч задач из множества задача 7^.

С С

Число кластеров Di , выделенных во множестве D , к моменту завершения исследования достигло К = 14. При этом максимальное поколение, до которого дошло развитие стратегий, было равно 17, т.е. к моменту завершения исследования наиболее развитый (чаще всего используемый) кластер прошел 17 смен поколений.

Обозначим QR стратегию алгоритма Нелдера-Мида, рекомендованную в работе [13] и назовем рекомендованной стратегией.

Динамику развития некоторого кластера Di иллюстрирует рисунок 2. Рисунок показывает, что с ростом числа поколений £ значение критерия оптимальности 3(7,Q) быстро уменьшается, т.е. генетический алгоритм

мета-оптимизации для данного кластера быстро находит стратегию, близкую

*

к оптимальной стратегии Qi .

■пт

Рисунок 2 - Динамика развития одного из кластеров

Отметим, что поскольку алгоритм мета-оптимизации создает начальные стратегии случайным образом, в начале развития кластеров в среднем

требуется большее число испытаний для решения задач t е Т^, чем базовому алгоритму с рекомендованной стратегией. Аналогично, в начале имеет место меньшая вероятность локализации минимума функций Ф(X). Ситуация меняется на противоположную всего после нескольких поколений.

с

Спустя 14 эр развития кластеров Di было выполнено исследование эффективности найденных оптимальных стратегий Q*. Использовались N = 100 случайных задач из множества задач Т^. Результаты исследования иллюстрирует рисунок 3. Для сравнения для тех же задач на рисунке приведены результаты, полученные для рекомендованной стратегии @. Алгоритмы а(0*), а) запускались из одинаковых начальных точек, с одинаковой требуемой точностью решения. Интегральные результаты данного исследования представлены в таблице 1.

п|_I_I_I_I_1_I_I_I_I__„

0 10 20 30 40 50 60 70 80 90 100 дг

Рисунок 3 - К исследованию эффективности оптимальных стратегий Таблица 1 - Интегральные результаты исследования оптимальных стратегий

Число испытаний 2В Рекомендованная стратегия ф Оптимальная стратегия *

Среднее 161 130

Минимальное 35 16

Максимальное 600 600

Рисунок 3 и таблица 1 показывают, что вычислительная эффективность алгоритма Нелдера-Мида при использовании стратегий О* выше той же эффективности при использовании рекомендованной стратегии Ог.

с

Спустя 14 эр развития кластеров Di было проведено также исследование эффективности лучших стратегий О** этих кластеров. Как и в предыдущем случае, исследование проводилось на Nt = 100 функциях, случайно выбранных из множества функций 7^. Некоторые результаты исследования представлены на рисунке 4, интегральные результаты -в таблице 2.

Рисунок 4 - К исследованию эффективности лучших стратегий

Таблица 2 - Интегральные результаты исследования лучших стратегий

Число

Рекомендованная Лучшая

испытаний ZH стратегия Qr стратегия Q

Среднее 213 115

Минимальное 24 13

Максимальное 1000 350

Результаты исследований показывают, что стратегии, найденные мета-алгоритмом, обеспечивают по сравнению с рекомендованной стратегией значительно более высокую производительность. Так таблица 1 показывает, что по числу испытаний оптимальные стратегии Q* в среднем на 19%

эффективнее рекомендованной стратегии Qr, из таблицы 2 вытекает, что

лучшие стратегии Q**, найденные мета-алгоритмом, на 46% эффективнее той

же рекомендованной стратегии Qr.

Заключение

В работе предложен метод мета-оптимизации базового алгоритма оптимизации в процессе нормальной эксплуатации соответствующей базовой программы. Метод представляет собой вариант метода мета-оптимизации на основе перманентной настройки свободных параметров алгоритма оптимизации.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Выполнена программная реализация метода, имеющая трехзвенную клиент-серверную архитектуру. Реализация выполнена на основе платформы Java Standard Edition, в качестве сервера приложений использован Apache Tomcat 6.0, сервер баз данных реализован на основе MySQL Community Server 5.1, клиентское приложение выполнено на основе платформы MatLab.

Важными компонентами метода являются кластеризация множества значений атрибутов решаемых задач, а также определение для каждого из полученных кластеров приближенно оптимальной стратегии базового

алгоритма. Кластеризация указанного множества реализована с помощью самоорганизующейся карты Кохонена. Для определения оптимальных стратегий используется непрерывный генетический алгоритм с SBX-кроссовером.

Экспериментальное исследование эффективности метода выполнено на примере мета-оптимизации алгоритма Нелдера-Мида, как базового алгоритма. Исследование выполнено на классе функций, который порождают восемь тестовых функций (функции Химмельблау, Розенброка, Шафера и т.д.) при случайном изменении их некоторых параметров. Результаты исследования показывают перспективность предложенного метода.

Отметим, что клиент-серверная архитектура разработанного программного обеспечения метода вносит в систему накладные расходы, обусловленные коммуникациями между клиентской и серверной частями программного обеспечения. Для задач, имеющих невысокую вычислительную сложность, это обстоятельство может приводить к неэффективности мета-оптимизации, поскольку выигрыш в числе испытаний может быть перевешен накладными расходами. Однако в задачах, представляющих практический интерес, типичной является высокая вычислительная сложность целевой функции, обеспечивающая малый удельный вес указанных коммуникационных расходов. Как следует из результатов исследования, в такой ситуации мета-оптимизация базового алгоритма оптимизации может обеспечить значительный положительный эффект.

В работе в качестве исходной задачи оптимизации рассмотрена задача многомерной безусловной оптимизации. Для решения задач условной оптимизации в вычислительной практике широко используются методы штрафных и барьерных функций, сводящие задачу условной оптимизации к совокупности задач безусловной оптимизации [25]. Таким образом,

полученные в работе результаты представляют интерес и для задач условной оптимизации.

С другой стороны, имеется большое число методов решения задач условной оптимизации, которые не используют сведение ее к задаче безусловной оптимизации [25]. Это обстоятельство делает актуальной модификацию предложенного в работе метода и программного обеспечения для решения задач условной оптимизации, как самостоятельного класса задач.

Задача мета-оптимизации базового алгоритма представляет собой, по сути, задачу многокритериальной оптимизации. В работе для решения этой задачи использован простейший метод решения многокритериальных задач -метод сведения их с помощью аддитивной скалярной свертки к однокритериальным задачам. Представляется перспективной модификация предложенного в работе метода и программного обеспечения, использующая более тонкие методы решения задач многокритериальной оптимизации [20].

Литературы

1. Карпенко А.П., Селиверстов Е.Ю. Глобальная оптимизация методом роя частиц. Обзор // Информационные технологии, 2010, № 2, с. 2534.

2. Bergh F. An Analysis of Particle Swarm Optimizers / Faculty of Natural and Agricultural Science.- Pretoria: University of Pretoria, 2001. PhD thesis.

3. Trelea I. The particle swarm optimization algorithm: convergence analysis and parameter selection // Information Processing Letters, 2003, Vol. 85, pp. 317-325.

4. Clerc M., Kennedy J. The particle swarm - explosion, stability, and convergence in a multidimensional complex space // IEEE Transactions on Evolutionary Computation, 2002, Vol. 6, pp. 58-73.

5. Goldberg D., Miller B., Harik G., Cantu-Paz E. The gambler's ruin problem, genetic algorithms, and the sizing of populations / Proceedings of the 4th IEEE Conference on Evolutionary Computation: IEEE Press, 1997, pp. 7-12.

6. Clark J., Goldberg D., Deb K. Genetic algorithms, noise, and the sizing of populatons // Complex Systems, 1992, Vol. 6, pp. 333-362.

7. Thierens D., Goldberg D., Deb K. Toward a better understanding of mixing in genetic algorithms / Procedding of the 4th International Conference on Genetic Algorithms.- Morgan Kaufmann, 1991, pp. 190-195.

8. Thierens D., Goldberg D. Mixing in genetic algorithms / Proceedings of the 4th International Conference on Genetic Algorithms.- Morgan Kaufmann, 1991, pp. 31-37.

9. Back T. Optimal mutation rates in genetic search / Proceedings of the 5th International Conference On Genetic Algorithms.- Morgan Kaufmann, 1993, pp. 2-8.

10. Grefenstette, J. J. Optimization of control parameters for genetic algorithms // IEEE Transaction Systems, Man and Cybernetics, 1986, Vol. 16, pp. 122-128.

11. Michalewicz Z., Hinterding R., Eiben A. E. Parameter Selection. Evolutionary Optimization.- NewYork: Springer, 2003, Vol. 48, No. 11, pp. 279306.

12. De Jong K. A. Analysis of the Behavior of a Class of Genetic Adaptive Systems.- Michigan (USA): University of Michigan, 1975, PhD dissertation.

13. Nelder J. A., Mead R. A simplex method for function minimization // The Computer Journal, Vol. 7, No. 4.- Oxford: Oxford University Press, 1965.

14. NAG (Numerical Algorithms Group) (http://www.nag.co.uk/).

15. Курбатова Е.А. MATLAB 7. Самоучитель. -М.: «Диалектика», 2005. -С. 256

16. Pedersen M. E. H., Chipperfield A. J. Simplifying particle swarm optimization // Applied Soft Computing, 2010, Vol.. 10, No. 2, pp. 618-628.

17. Rechenberg R. Evolution strategie: Optimierung technischer Syseme nach Prinzipen der biologischen Evolution.- Stuttgart: Frommann-Holzboog, 1973.

18. Hong Zhang, Masumi Ishikawa. Evolutionary Canonical Particle Swarm Optimizer - A Proposal of Meta-Optimization in Model Selection. Berlin : Springer-Verlag, 2008.

19. Grefenstette J. Adapting operator probabilities in genetic algorithms / Proceedings of the 1st International Conference on Genetic Algorithms and Their Applications.- Lawrence Erkbaum Associates, 1989, pp. 61-69.

20. Syswerda G. Schedule optimization using genetic algorithms. Handbook of Genetic Algorithms.- Van Nostrand Reinhold, 1991, pp. 332-349.

21. Штойер Р. Многокритериальная оптимизация. Теория, вычисления и приложения.- М.: Радио и связь, 1992.- 504 с.

22. Олдендерфер М. С., Блэшфилд Р. К. Кластерный анализ / Факторный, дискриминантный и кластерный анализ: пер. с англ.; Под. ред. И. С. Енюкова. - М.: Финансы и статистика, 1989.- 215 с.

23. Дебок Г., Кохонен Т. Анализ финансовых данных с помощью самоорганизующихся карт. -Альпина Паблишер, 2001.- 317 с.

24. Паклин Н. Непрерывные генетические алгоритмы -математический аппарат.

(http://www.basegroup.ru/library/optimization/real coded ga/).

25. Deb K., Kumar A. Real coded genetic algorithms with simulated binary crossover: Studies on multi modal and multi objective problems // Complex Systems, 1995, Vol. 9, No. 6, pp. 431-454.

26. Банди Б. Методы оптимизации. Вводный курс: Пер. с англ. М. Радио и связь, 1988. 128 С.

Приложение А. Графики тестовых функций

Рисунок А.1 - Функция Химмельблау

Рисунок А.2 - Функция Розенброка

шп*

Рисунок А.3 - Функция Шафера

/

Рисунок А.4 - Функция «сфера»

30 К

я»

5,

. ... ■ ■ ■ ■ 10 ''^^^И.Цд'^'МцячУТ™^ ^..^г***"*:го

Рисунок А.5 - Функция Экли

.................

Рисунок А.6 - Функция Растригина

20 ЭИеке! ЩййМв

Рисунок А.7 - Функция Шекеля

i Надоели баннеры? Вы всегда можете отключить рекламу.