НАУЧНОЕ ИЗДАНИЕ МГТУ ИМ. Н.Э. БАУМАНА
НАУКА и ОБРАЗОВАНИЕ
Эл № ФС 77 - 48211. Государственная регистрация №0421200025. ISSN 1994-0408
электронный научно-технический журнал
Гибридный метод глобальной оптимизации на основе искусственной иммунной системы
# 08, август 2012
Б01: 10.7463/0812.0433381
Карпенко А. П., Шуров Д. Л.
УДК 519.6
Россия, МГТУ им. Н.Э. Баумана [email protected] ёшйгу. 51шгоу@.таП. ги
Введение
Искусственные иммунные системы (ИИС) - это информационная технология, использующая понятия, аппарат и некоторые достижения теоретической иммунологии для решения прикладных задач. На основе ИИС разработано большое число различных методов для численного решения прикладных задач анализа данных, распознавания образов, компьютерной безопасности, диагностики неисправностей технических объектов, оптимизации и т.д.
Методы ИИС, ориентированные на решение задачи глобальной оптимизации, вдохновлены некоторыми аспектами поведения иммунной системы человека в процессе защиты ею организма от внешних факторов (патогенов и антигенов). Защитные клетки иммунной системы (антитела) при этом претерпевают множество изменений, целью которых является создание клеток, обеспечивающих наилучшую защиту от данного фактора. В результате создается большое число различных антител, и в борьбе с патогеном побеждают те из них, которые оказались наилучшим образом приспособлены для защиты. Иммунная система человека сохраняет в своей «памяти» победившие антитела, на основании чего именно такие антитела производятся при повторном проникновении в организм схожего патогена.
При разработке методов оптимизации на основе ИИС не ставится цель в точности воспроизвести детали функционирования живых иммунных систем. Авторы таких методов ограничиваются применением лишь некоторых принципов функционирования ИИС для конструирования механизмов оптимизации. Например, степень близости антител и антигенов формализуют в виде евклидовой нормы в пространстве варьируемых параметров, степень приспособленности антитела для борьбы с данным антигеном - в виде инвертированного значения целевой функции и т.д.
Основной целью публикации является представление оригинального гибридного метода глобальной оптимизации на основе ИИС. Метод получил наименование SIA (Subplex Immune Algorithm). В качестве базового метод использует известный метод HIA [1]. Модификация заключается, прежде всего, в отказе от процедуры мутации, как средства локального поиска. Вместо этого метод SIA использует для локального поиска алгоритм SUBPLEX [2], благодаря чему гарантируется, что до завершения полной проверки из популяции не будут исключены изначально кажущиеся плохими решения. Научная новизна работы заключается в новизне предложенного метода глобальной оптимизации.
Работа организована следующим образом.
В первом разделе дана постановка задачи глобальной оптимизации и общая схема иммунных методов ее решения.
Второй раздел содержит обзор значительного числа методов глобальной оптимизации, построенных на основе ИИС, в частности, в этом разделе дано описание базового метода HIA.
Третий раздел представляет разработанный метод SIA. Здесь же на основе сравнительного исследования эффективности алгоритмов локальной оптимизации, реализованных в известной программной библиотеке NLopt [3], обосновано использование алгоритма SUBPLEX.
Четвертый раздел посвящен разработке программного обеспечения, реализующего метод SIA. Реализация выполнена на языке программирования
общего назначения C++. Разработанное программное обеспечение SIA Search представляет собой многофункциональную расширяемую систему для тестирования и исследования эффективности методов оптимизации. В этом же разделе с использованием известных тестовых функций Розенброка, Растригина, и Химмельблау [4] выполнено тестирование SIA Search, показавшее корректность его функционирования.
В пятом разделе представлены результаты исследования эффективности алгоритма SUBPLEX, метода SIA, а также результаты сравнительного исследования эффективности методов HIA, SIA и методов глобальной оптимизации CRS, MLSL, ISRES из библиотеки NLopt.
В заключении сформулированы основные результаты работы и очерчены перспективы ее развития.
1. Постановка задачи и общая схема методов иммунной оптимизации
Рассматриваем задачу глобальной условной минимизации скалярной целевой функции f (x) вещественных переменных x в области допустимых значений D:
min f (x) = f (x •) = f •. (1)
xeD с Rn
Здесь n - размерность вектора x. Общее число ограничений, определяющих область D, обозначаем ND. Если далее не оговорено противное, то имеется в виду частный случай задачи (1) - задача безусловной оптимизации, когда D = Rn . Полагаем, что для этой задачи задана область поиска в виде параллелепипеда
П = {x I xmin ^ xi ^ xmax, i е [1: n]}, где xmin , xmax - заданные константы.
В работе используем следующие основные понятия:
n
• клетка, антитело — решение x е R ;
• аффинность — величина, обозначающая полезность клетки и равная соответствующему значению целевой функции, взятому с противоположным знаком;
• популяция — множество клеток;
• клон — клетка, образованная из другой клетки путем ее полного копирования;
• мутация — случайное изменение компонентов вектора x.
Используем также следующие обозначения указанных и других
сущностей:
• p — клетка;
• ./ ^) — значение целевой функции, соответствующее данной клетке;
• P = {pi, i е [1: п ]} — популяция клеток;
• Pi1, 2,..., Pin — компоненты клетки pi еP;
• (р{ = -/(pi) — аффинность клетки pi;
• M — популяция клеток памяти (не являющихся частью популяции P);
• Ci — множество клонов клетки pi, созданных на текущей итерации метода;
• С = {Ci, I е [1: np ]} — множество клонов всех клеток текущей популяции;
• p(Cг — у -й клон клетки pi;
• P<ъlst — лучший клон клетки pi , то есть клон, которому соответствует минимальное значение целевой функции;
• пс — число клонов, порождаемых каждой из клеток популяции Р;
• f * — минимальное значение целевой функции, найденное методом численной оптимизации;
• /* — среднее по мультистартам значение целевой функции, найденное этим методом;
• nj- — среднее по мультистартам число вычислений целевой функции
(число испытаний).
Во введенных обозначениях основные особенности методов иммунной оптимизации можно сформулировать следующим образом.
1) Все методы иммунной оптимизации работают с популяцией клеток
р={pt, i е [1: np]},
в которой клетка pt = (pn, pi2,...,pin) представляет собой вектор в
пространстве варьируемых переменных.
2) Над клетками популяции осуществляют процедуры клонирования и мутации. При клонировании клетки pt создают множество клеток Q , идентичных исходной:
Ci = {pCi : pi' = pi - j е [1: nc]}. (2)
При мутации компоненты вектора pCl изменяют случайным образом по схеме
p% = p% + Aj,k, k е [1: n], (3) где Aj k — шаг мутации, способ вычисления которого различен для
различных методов иммунной оптимизации.
3) В результате процедуры клонального отбора лучшие из потомков замещают родителей по формуле
pt, если f [p^est )>f (pi )>
pi
(4)
pbS- " C
'C t, если f (p(Clest ^ f (pi )
4) Процедура сжатия популяции устраняет избыточность, исключая
худшее из решений pJ■, pk, удовлетворяющих условию
к/ - Pk|| < ЬГ > /' * k > (5)
где - символ некоторой меры близости клеток, например, евклидова
норма; Ьг - порог сжатия.
5) Множество клеток памяти M хранит некоторое число наилучших решений, найденных за все время работы метода.
Процедуры клонирования и мутации обеспечивают локальную оптимизацию в окрестности каждой из клеток. Процедура сжатия популяции преследует цель ускорения сходимости метода и сокращения вычислительных затрат.
2. Обзор методов иммунной оптимизации
Последовательно рассматриваем методы CLONALG, opt-AiNet, BCA, HIA, I-opt-AiNet и, наконец, метод T-Cell Model.
2.1. Метод CLONALG
Метод CLONALG [5] был разработан для решения задач машинного обучения и распознавания образов. Позднее метод адаптировали для задач оптимизации. Основные принципы метода: наличие клеток памяти, отбор и клонирование наиболее полезных антител, исключение наименее полезных антител, выбор клонов пропорционально их полезности, обеспечение и сохранение разнообразия популяции антител.
Общая схема метода CLONALG имеет следующий вид [5].
1) Определяем полезность щ каждого из антител pt множества Р ; iе [1: np].
2) Во множестве Р оставляем некоторое число антител с наибольшей полезностью, а остальные антитела исключаем.
3) Клонируем антитела из модифицированного множества Р пропорционально их полезности и помещаем полученные клоны во множество С.
4) Множество клонов С подвергаем мутации, интенсивность а которой уменьшается с ростом полезности по формуле
а = exP(- Р Щ),
где р — положительный свободный параметр.
5) Определяем полезность всех мутировавших клонов множества С, и находим на этой основе клетку с наивысшей аффинностью. Если полезность данной клетки выше, чем у соответствующей ему клетки памяти, то заменяем последнюю указанным мутировавшим клоном.
6) Осуществляем замену й -ой части антител из множества Р новыми клетками. Здесь й - свободный параметр метода.
2.2. Метод opt-AiNet
Главной особенностью метода opt-AгNet является сохранение всех найденных локальных и глобальных оптимумов целевой функции. Метод использует динамический размер популяции, управляемый механизмом сжатия [6].
Схему метода opt-AгNet передает следующая последовательность его основных шагов.
1) Инициализируем популяцию клеток.
2) Определяем полезность всех клеток популяции и нормализуем значениях этих величин так, чтобы нормализованная полезность принадлежала интервалу [0; 1]; г е [1: п{} ].
3) Порождаем пс клонов для каждой из клеток.
4) Осуществляем мутацию каждого клона пропорционально полезности его родительской клетки по формуле
Pi' = Pi+ Щ N(0;1) , аг= в ехр(- ф ),
где p■ — решение после мутации клетки pi ; в — свободный
положительный параметр метода.
5) Определяем полезность мутировавших клонов.
6) Для каждой родительской клетки и ее клонов выбираем наилучшее решение и исключаем из популяции остальные решения.
7) Вычисляем среднюю полезность популяции, и если она уменьшилась по сравнению с предыдущим шагом, то возвращаемся к шагу 2.
8) Определяем расстояние между всеми клетками популяции и
осуществляем сжатие тех клеток, расстояние между которыми ниже заданного порога Ьг (см. формулу (5)). Оставшиеся клетки помещаем во множество клеток памяти.
9) Вводим в популяцию d -ю часть случайно сгенерированных клеток. Здесь и далее N (а; Ь) - нормальная случайная величина c
математическим ожиданием а и среднеквадратическим отклонением Ь.
В работе [13] рекомендованы следующие значения свободных параметров метода: Ьг = 0,2; nc = 10; d = 0,4; в = 100 . Начальный размер популяции np рекомендован равным 20. Гибридизация метода opt-AiNet с
методом локального поиска рассмотрена в работе [7]. В этом случае к рассмотренной схеме метода добавляется этап, предполагающий локальную оптимизацию наилучшего решения.
2.3. Метод BCA (B-cell algorithm)
Метод BCA, как и метод opt-AiNet, основан на принципе клонального отбора [8]. Метод ориентирован на поиск глобального оптимума целевой функции, имеющий сложный ландшафт, и может обеспечить высокую эффективность поиска при небольших размерах начальной популяции np = 3 + 5 . Особенностью метода является использование оператора так
называемой смежной гипермутации (contiguous somatic hypermutation), который предполагает мутацию не отдельных случайных компонентов клетки, а целой области из нескольких смежных (соседних по номерам) компонентов. Схема метода BCA представлена ниже [8].
1) Инициализируем популяцию клеток.
2) Вычисляем полезность всех клеток популяции.
3) Для каждой клетки pt порождаем набор клонов Q, число клеток в котором равно начальному размеру популяции, то есть nc = np; i е [1: np ].
4) Из каждого набора клонов Ci случайно выбираем одну клетку и
осуществляем случайное изменение ее компонентов аналогично методу
CLONALG.
5) Ко всем клонам применяем оператор гипермутации.
5) Вычисляем полезность всех мутировавших клонов. Для каждого набора клонов определяем клетку с наибольшей полезностью и, если ее полезность превышает полезность родительской клетки, заменяем последнюю первой.
6) Если условие окончания итераций не выполнено, то переходим к шагу 2.
2.4. Метод HIA
Метод HIA (Hybrid Immune Algorithm) [1] можно рассматривать как модификацию метода opt-AiNet. В отличие от последнего метода, размер популяции метода HIA остается постоянным в процессе всего итерационного процесса; каждая из клеток имеет дополнительный атрибут, называемый возрастом клетки; мутацию клонов осуществляют двумя способами - независимо для каждой компоненты клетки, либо только для одной ее компоненты. Метод HIA применяет стратегию, в соответствие с которой новые клетки создаются не на основе равномерного распределения по всей области поиска, как в методе opt-AiNet, а с использованием распределения Гаусса с динамически изменяющимися параметрами. Это приводит к постепенному сужению области поиска, но, благодаря второму типу мутации, не препятствует широкому исследованию пространства поиска.
В соответствии с работой [1 ] схему алгоритма HIA можно представить в следующем виде.
1) Инициализируем популяцию клеток.
2) Осуществляем клонирование, при котором каждая клетка популяции порождает одинаковое число nc клонов.
3) Подвергаем клоны мутации.
4) Для каждой родительской клетки определяем лучший клон, и если полезность этого клона превосходит полезность родителя, заменяем родительскую клетку этим клоном. В противном случае возраст родителя увеличиваем на единицу.
5) Клетки, возраст которых достиг заданного значения перемещаем из основной популяции во множество клеток памяти (п.3).
6) Осуществляем сжатие клеток памяти и, если число этих клеток после сжатия превышает заданную величину, исключаем худшие из них.
7) Если не выполнен критерий окончания итераций, то переходим к шагу 2.
Первый способ мутации определяет формула
p'(t) = N(p(t X a(t)),
где
а ) = 12 (p(t -1) - p' (t -1)) f (p' (t -1)) < f (p(t -1)),
[ a(t -1), иначе.
Второй способ мутации осуществляется в 20 % случаев и заключается в замене одной случайно выбранной компоненты pt s родительской клетки pt
на случайное число, равномерно распределенное в заданном интервале
(x min; xLx); i е [1: np L s е [1: n].
2.5. Метод I-opt-AiNet
Метод I-opt-AiNet представляет собой модификацию метода opt-AiNet, которая преследует цель уменьшить число испытаний в процессе поиска решения [9]. Изменения касаются определения числа выбираемых для клонирования решений и способа их выбора, числа удаляемых из популяции и добавляемых в нее решений, способа выбора решений для клонирования и числа порождаемых ими клонов, а также критерия остановки. Метод использует понятие лучшей средней полезности по всем предыдущим итерациям (Best Fitness Average, BFA), обозначаемой (pBFA. Для того, чтобы предотвратить повторные ресурсоемкие вычисления полезности клеток, в процессе работы метода те клетки, значение полезности которых однажды уже было вычислено, помечают как «вычислены».
Схема метода I-opt-AiNet имеет следующий вид [9].
1) Инициализируем популяцию клеток.
2) Вычисляем полезность всех клеток популяции и эти клетки помечаем как «вычислены».
3) Из популяции исключаем клетки, полезность которых ниже величины (рврА .
4) Осуществляем клонирование клеток пропорционально их полезности, так что
Псг = Фг ттах , Фг = ^ Р '; 1 е [1: Пр ].
ртах - Р тт
Здесь ттах — максимальное число клонов, которое может быть порождено клеткой; ртах , рт-п — максимальное и минимальное текущие значения полезности среди всех клеток популяции соответственно; фг — нормированная полезность клонируемой клетки.
5) Осуществляем мутацию клонов по схеме метода ор^АгЫ^. Мутацию принимаем лишь в том случае, если результирующая клетка расположена в рассматриваемой части области поиска.
6) Вычисляем полезность всех клонированных клеток и помечаем их как «вычислены».
7) Из полученной популяции исключаем те клетки, полезность которых ниже рвРА.
8) В каждой паре клеток, расстояние между которыми меньше заданной величины Ьг, исключаем клетку с меньшей полезностью.
9) В популяцию добавляем случайно сгенерированные клетки, число которых равно числу клеток, исключенных на шаге 3.
10) Если не выполнен критерий окончания итераций, то переходим к шагу 2.
В работе [9] рекомендованы следующие значения свободных параметров метода: максимальное число клонов каждой клетки ттах = 10; порог сжатия Ьг = 0,2; начальное число клеток пр = 10 + 100.
2.6. Метод T-Cell Model
В отличие от рассмотренных выше методов, метод T-Cell Model предназначен для решения задач глобальной условной оптимизации [10]. Метод использует три субпопуляции клеток - свободные клетки PF , исполнительные клетки PE и клетки памяти M. Свободные клетки обеспечивают разнообразие поиска и представляются двоичными строками в коде Грея. С помощью исполнительных клеток, также представляемых в коде Грея, исследуют части пространства поиска, лежащие вне области поиска, но недалеко от ее границы. Клетки памяти кодируют вещественными числами и используют для организации локального поиска в окрестностях лучших найденных решений.
Для того чтобы повысить вероятность локализации глобального экстремума целевой функции, метод T-Cell Model использует так называемый динамический допуск ADTF (Dynamic Tolerance Factor, DTF). Величину ADTF назначают для каждой из трех указанных выше субпопуляций по следующему правилу:
- вычисляем для каждой из субпопуляций величину аг, равную сумме значений ограничивающих функций, для которых клетками данной субпопуляции нарушено хотя бы одно из ограничений;
соответственно, где Nf , Ne - числа клеток в этих популяциях;
- если для субпопуляции PF имеет место неравенство <гг < 0,0001, то принимаем для этой субпопуляции A DTF = 0,1;
- в той же ситуации для субпопуляции PE принимаем ADTF = 0,001;
- для субпопуляции M во всех случаях принимаем A DTF = const = 0,0001.
Для субпопуляции PF мутацию клеток не используют. Для клеток субпопуляций PE , M, используют следующие законы мутации.
- полагаем
для субпопуляции PF , PE
1.1) Вариант p е PE , p £ D . Определяем величину наиболее
клетки р инвертируем с вероятностью 0,01 ^ 0,2. В противном случае по тому же правилу инвертируем биты только одной случайно выбранной компоненты клетки.
1.2) Вариант р е РЕ , р е В . Каждый бит клетки р инвертируем с вероятностью 0,01 ^ 0,2.
2) Вариант р е М. Мутацию клетки р производим по формуле
где U(0; 1) — случайное число, равномерно распределенное в интервале
Важной в методе T-Cell Model является процедура отсеивания клеток, обеспечивающая сохранение лучших найденных решений. Для клеток, находящихся в области допустимых значений D, при отсеивании учитывают значения целевой функции, а для клеток вне этой области — величину аг.
Любая из клеток, принадлежащих области D, считается лучше любой из клеток вне этой области.
Схема метода T-Cell Model состоит из следующих основных шагов.
1) Случайно генерируем заданное число свободных клеток.
2) Вычисляем значение динамического допуска ADTF для популяции
свободных клеток.
3) С учетом динамического допуска определяем, какие из свободных клеток принадлежат области D, а какие на принадлежат.
4) Заданный процент свободных клеток включаем в популяцию исполнительных клеток.
5) Вычисляем значение динамического допуска для популяции исполнительных клеток.
нарушенного ограничения, и если она превышает
каждый бит
(0;1); к — целое число (свободный параметр метода).
6) Повторяем 50 раз процедуру мутации исполнительных клеток и определяем, какие из исполнительных клеток лежат в области В с учетом их динамического допуска, а какие не лежат.
7) Заданный процент исполнительных клеток включаем в популяцию клеток памяти.
8) Повторяем 100 раз для клеток памяти действия, указанные в 6.
9) Описанные выше шаги выполняем заданное число раз.
2.7. Резюме
Во всех рассмотренных методах иммунной оптимизации задача интенсификации поиска (задача поиска локальных минимумов) решается с помощью операторов клонирования и мутации, которые на основе уже существующих в иммунной системе клеток продуцируют множество дочерних клеток. Задача диверсификации поиска (исследования пространства поиска) решается, преимущественно, путем введения в область поиска новых случайно сгенерированных решений. С целью сокращения вычислительных затрат, некоторые из рассмотренных методов имеют средства устранения близких решений. Наконец, все рассмотренные методы используют множество «клеток памяти», содержащее лучшие найденные решения.
Сравнительная характеристика рассмотренных методов представлена в таблице 1.
Вероятно, самой сильной стороной методов оптимизации на основе ИИС является наличие механизма памяти. Клетки памяти хранят информацию
о найденных ранее наилучших решениях и позволяют использовать ее для повышения эффективности глобального поиска. Однако, на наш взгляд, рассмотренные методы не в полной мере используют потенциальные преимущества этого механизма, поскольку новые клетки в этих методах включаются в популяцию случайно по всей области поиска, независимо от состояния памяти. Единственным исключением в этом смысле является метод Н1А, в котором с увеличением номера итерации информация о ландшафте целевой функции, хранящаяся в клетках памяти, все в большей степени влияет
на генерацию новых решений. Благодаря этому неперспективные области пространства параметров исключаются из рассмотрения, и поиск постепенно концентрируется в окрестности наилучших из найденных решений, что позволяет значительно повысить эффективность глобального поиска.
Таблица 1 — Сравнение методов иммунной оптимизации
Основные свойства Метод оптимизации
сьоыльо Орі-ЛіКеі всл НІЛ І-орі-ЛіКеі Т-Се11 Моёе1
локальный поиск мутация мутация мутация два вида мутации мутация мутация
наличие клеток памяти + + - + - +
адаптивность - - - + + +
сжатие популяции - + - + + +
Другой важной отличительной особенностью рассмотренных методов является использование ими процедуры сжатия множества решений, которая устраняет клетки, расположенные в пространстве поиска слишком близко к другим клеткам. Такая процедура позволяет уменьшить избыточность популяции и, в результате, повысить скорость поиска. Поскольку размер популяции обычно невелик, вычислительные затраты на сжатие оказываются небольшими и оправдываются за счет уменьшения числа испытаний.
Главная слабость рассмотренных методов оптимизации состоит в низкой эффективности используемой ими процедуры локального поиска на основе мутации клеток. Эта процедура, по сути, представляет собой один из вариантов случайного поиска, эффективность которого, как хорошо известно, резко снижается с увеличением размерности задачи. Если даже начальное приближение сгенерировано в области притяжения глобального минимума, данная процедура может привести к потере этого решения, поскольку другие решения, находящиеся в областях притяжения локальных минимумов, могут иметь лучшие значения целевой функции.
3. Метод SIA
Разработка метода SIA имела целью преодолеть главный недостаток рассмотренных в предыдущем разделе методов иммунной оптимизации (низкую эффективность процедуры локального поиска) путем использования современного высокоэффективного алгоритма локальной оптимизации. Кроме того, метод SIA использует оригинальную адаптивную процедуру генерации начальных приближений, которая учитывает информацию о ранее найденных локальных решениях, хранящихся в клетках памяти.
Для выбора алгоритма локального поиска было проведено сравнительное тестирование алгоритмов, представленных в программной библиотеке NLopt [3]. В качестве тестовой функции использована овражная
функция Розенброка (п. 4), имеющая в точке минимума значение f * = 0. При
тестировании был применен один из стандартных для библиотеки NLopt
критерий окончания итераций: |Ахг • хг| < 10-4 для всех г е [1: п] . Здесь
Axi - текущий шаг по г-ой компоненте вектора варьируемых параметров;
- текущее значение этой компоненты. Использовано число мультистартов,
равное 100. Рассмотрены три критерия эффективности алгоритма:
- минимальное достигнутое значение целевой функции / *;
- среднее по мультистартам значение указанного критерия ) ;
- среднее по мультистартам число испытаний Пf.
Из результатов тестирования, представленых в таблицах 2 - 4, следует, что алгоритмы NEWUOA, SUBPLEX показывают примерно одинаково хорошие результаты. Однако поскольку алгоритм NEWUOA может иметь низкую эффективность в случае, когда вторая производная целевой функции не существует [3], для гибридизации нами был выбран алгоритм SUBPLEX.
Таблица 2 — Сравнение методов локального поиска по критерию f *
n f *
COBYLA BOBYQA NEWUOA PRAXIS Nelder-Mead SUBPLEX
5 0,0018550214 0,0000000027 0,0000000000 0,0000000000 0,0000000013 0,0000290945
10 - 0,0000003437 0,0000000000 0,0000000000 0,0000000033 0,0000213709
15 - 0,0000021825 0,0000000000 0,0000000001 0,0000000203 0,0000201872
20 - 0,0000012164 0,0000000000 0,0000000002 0,0000002865 0,0000196823
25 - - 0,0000000000 0,0000000003 3,5218957616 0,0000202895
30 - - 0,0000000000 0,0000000003 28,645998068 0,0000205485
40 - - 0,0000000000 0,0000000006 178,22271606 0,0000201778
50 - - 0,0000000000 0,0000000052 377,55999308 0,0000203529
Таблица 3 — Сравнение методов локального поиска по критерию f *
n f *
COBYLA BOBYQA NEWUOA PRAXIS Nelder-Mead SUBPLEX
5 3,8251309919 6,1604925340 0,7861683016 1122,8381968 42,639742522 1,2029188862
10 - 7,3035006557 0,9966453960 3950,7566576 594,36308318 1,0263534747
15 - 6,1797479486 0,9966561687 2218,9049581 1456,7683033 1,2378582278
20 - 1,4042984061 0,9169236137 9513,7499555 7684,8646762 1,1782738197
25 - - 0,9567898536 12494,782606 12975,972222 0,7384074490
30 - - 0,9966560931 9791,7841058 22780,663647 0,9086361899
40 - - 1,1959871958 18631,417218 36132,595863 0,8660988796
50 - - 0,9169236141 28088,890355 53856,724822 0,6491565486
Алгоритм SUBPLEX (subspace-searching simplex) предназначен для оптимизации сложных зашумленных недифференцируемых функций с большим числом варьируемых параметров. Метод разработан на основе симплекс-метода Нелдера-Мида [11] и использует его сильные стороны, устраняя недостатки. SUBPLEX осуществляет разбиение вектора варьируемых параметров x на подвекторы и применяет алгоритм Нелдера-Мида независимо к каждому из этих подвекторов. Таким образом, метод SUBPLEX осуществляет поиск в совокупности подпространств пространства
варьируемых параметров Rn (см. ниже).
Таблица 4 — Сравнение методов локального поиска по критерию п^
п п Г
СОБУЬЛ БОБУОЛ КЕ^^ОЛ РЯЛХБ КеЫег-Меаё БПБРЬЕХ
5 43416,7 603,4 419,2 587,7 687,1 158801,1
10 - 12986,9 1351,0 1889,4 4868,9 217677,0
15 - 11172,9 2619,6 13607,2 19739,1 566363,4
20 - 71910,0 3912,5 10596,2 39310,0 402161,0
25 - - 5445,9 30484,8 58691,0 470694,0
30 - - 7303,6 40116,9 90294,4 739809,0
40 - - 11460,7 51475,8 168064,0 719550,1
50 - - 17105,3 106220,4 272035,4 905081,6
Схема метода Б1А имеет следующий вид.
1) Инициализируем популяцию с заданным числом клеток.
2) Методом БиБРЬЕХ для каждой из клеток популяции выполняем локальный поиск и заменяем координаты этой клетки на координаты, полученные в результате локального поиска.
3) Перемещаем все клетки популяции во множество клеток памяти, исключаем их из популяции, и добавляем в популяцию новые клетки с координатами
р-,] = ы{рш,]; о-) - е [1: пр ] ] е [1: пЬ
где
О = Ъ ) = -1) + {1 - в Ь;
в = во (1 -{1 - 1
у; = тах
к, 1
Рм - Рм
Р-,к Рц
, к,1 е [1: п].
Здесь в - значение коэффициента обучения на текущей итерации ?; рМ, Рм - клетки текущего множества памяти; в0 и q — коэффициенты, задающие скорость обучения, рекомендованные значения которых равны во = 0,8; q = 5 [1].
4) Осуществляем сжатие множества клеток памяти: для каждой пары этих клеток вычисляем расстояние между ними; если это расстояние меньше заданного порога Ьг, то исключаем клетку с худшим значением целевой функции; если число клеток памяти после сжатия превышает величину т, то оставляем т лучших из них.
5) Если условия окончания итераций выполнены, то завершаем вычисления. В противном случае переходим к шагу 2.
В завершении раздела рассмотрим метод БиБРЬЕХ. Метод использует следующие свободные параметры:
а - коэффициент отражения (а > 0);
в - коэффициент расширения (0 < в < 1);
у - коэффициент сужения (у > 1);
3 - коэффициент сжатия (0 < 3 < 1);
у - коэффициент уменьшения симплекса (0 < у < 1);
т - коэффициент уменьшения шага (0 < т < 1);
£0 — начальное значение компонентов вектора шагов;
птт , птах - минимальная и максимальная размерности подпространств,
подчиненные ограничениям
1 < n < n < n, n = ceil
min max * min
где cell [x] - ближайшее целое большее x.
В работе [2] рекомендованы следующие значения указанных параметров: а = 1; в = 0,5 ; у = 2; 3 = 0,5 ; щ = 0,25 ; ш = 0,1; nmin = min (2,n);
nmax=min (5,n).
Последовательность основных шагов метода SUBPLEX имеет следующий вид.
1) Определяем величины компонентов вектора шагов.
2) Выделяем подпространства в пространстве поиска.
3) Для каждого из подпространств применяем классический метод
max
поиска Нелдера-Мида с так называемым внутренним критерием окончания итераций.
4) Проверяем выполнение внешнего условия окончания итераций. Если это условие не выполнено, то переходим к шагу 1. В противном случае завершаем вычисления.
Определение величины компонент вектора шагов. Компоненты этого вектора определяют величину и ориентацию начальных симплексов. На первой итерации все эти компоненты инициализируем значением ^ . На последующих итерациях сначала масштабируем вектор шагов я по формуле
s(t) =
min
max
IN I1,
Ґ АН л II / \ \
' 1
rn
а
V V / і i'll1 y ' “У
у s(t -1), если ns = 1,
s(t -1), если ns > 1,
где Лх — вектор приращения решения по сравнению с предыдущей итерацией; ns — число подпространств, выделенных на предыдущей
n
итерации; x I. = У xJ . Затем корректируем компоненты вектора шагов по
i=1
формуле
Г sign (Лхі ) |si |, если Axi ф 0, s = і
si, если Лх:= 0.
Выделение подпространств в пространстве поиска. В результате выполнения этого этапа определяем число подпространств, размерность каждого из подпространств, а также координатные оси, задающие эти подпространства. Основная идея формирования подпространств состоит в том, чтобы направление вектора шагов находилось преимущественно в первом подпространстве. Число и размерности подпространств должны удовлетворять условиям
ns
У n = n, n ■ < n < n ,
t-i i ’ min i max ’
i=1
где nt — размерность i -го подпространства.
Первым этапом определения подпространств является сортировка компонентов вектора шагов по убыванию их величин. Обозначаем исходный и отсортированный векторы шагов Ах = (Ax1,...,Axn) , Ax' = (Ax1',Axn')
соответственно, где К- 1^1Ах i+1
I - е [l:(n-1)].
На втором этапе определяем размерность n1 первого подпространства как целое число к e[nmin; nmax ], которое обеспечивает максимальное значение функции
||(Ax1., Ах’к ) li ||(Axk+1,., Axn) li
r(k )
к n - к
||(AxI Ax'n ) I1
-, если к < n,
если к = n
n
при условии
n ■ = ceil
min
< (n - к)
Выполнение этого условия гарантирует, что на основе оставшейся части вектора х также могут быть сформированы следующие подпространства.
По аналогичной схеме определяем n2 , n3 и т.д.
Поиск в подпространстве выполняем с помощью классического метода Нелдера-Мида до тех пор, пока размер симплекса не уменьшится, по меньшей мере, в у раз по сравнению с его начальным размером (внутренний
критерий останова). В качестве размера симплекса используем евклидово расстояние между наилучшей и наихудшей его вершинами.
Проверка внешнего условия окончания итераций. Локальный поиск по методу SUBPLEX останавливаем, когда выполнен внешний критерий остановки
max (|Ax||х ,||s||х у)
max\\\x
Их
У)
<е.
где s — заданная погрешность; ||x|| = max |xi |.
х ie[1: n]
4. Программная реализация
При выборе программных средств для реализации метода SIA были рассмотрены следующие варианты:
- реализация на языке программирования общего назначения;
- реализация на специализированном языке одного из математических пакетов.
Последний вариант упрощает и ускоряет разработку вычислительных программ, но имеет несколько недостатков, главные из которых - это невозможность осуществления низкоуровневой оптимизации программы, зависимость от среды выполнения, возможное снижение скорости вычислений при интерпретации программы средой выполнения. Реализация на стандартном языке программирования общего назначения позволяет обеспечить максимальную производительность вычислений за счет оптимизации программы, не требует установки дорогостоящих программных пакетов и, что очень важно, обеспечивает возможность включения разработанной программы в состав другого программного обеспечения в виде библиотечной процедуры. На основе этих соображений было принято решение о реализации метода SIA на языке программирования C++, как одном из наиболее распространенных языков для решения подобных задач.
Разработанная программа, названная нами SIA Search, представляет собой расширяемую систему для тестирования и исследования эффективности методов оптимизации. Основными функциями SIA Search являются:
- задание множества значений свободных параметров метода, интересующих исследователя;
- автоматическое исследование эффективности метода в режиме мультистарта при всех заданных значениях свободных параметров;
- возможность введения в программу новой целевой функции без перекомпиляции программы;
- возможность расширения программы новыми методами оптимизации.
Поясним используемые в программе SIA Search правила, на основании которых задается указанное выше множество значений свободных параметров метода.
Пусть B = (b1, b2,...,bu) - вектор интересующих исследователя
свободных параметров рассматриваемого метода оптимизации, а
db ={B I biе [b-; b+ Li е [1: u]} -
- параллелепипед допустимых значений компонентов этого вектора.
Множество подлежащих исследованию значений свободных параметров должно быть задано в виде
B = (B1 ®B2 ®... ® Bu),
где Bi = (bn, bi2,...biv } - набор допустимых значений свободного параметра bt; vi - число значений этого параметра; i е [1: ju].
Программа SIA Search для каждой из возможных комбинаций (b1j, b2j2,...,bu ju) е B выполняет мультистарт с заданным числом запусков,
для каждого запуска определяет значения указанных в п.3 критериев оптимальности метода, по завершении мультистарта находит средние значения этих критериев и представляет результаты исследования в виде таблицы.
Введение в программу SIA Search новой целевой функции осуществляется с помощью динамической библиотеки. Единственное условие для создания библиотеки - это наличие в операционной системе компилятора GCC.
4.1. Структура классов программы
Программа состоит из нескольких классов, структуру которых иллюстрирует рисунок 1. Сплошной линией на рисунке обозначено отношение наследования, а пунктиром - отношение «использует».
1) Класс OptFunction содержит информацию о целевой функции. Его конструктор принимает строковое имя целевой функции в виде экземпляра
вспомогательного класса Name, размерность целевой функции и указатель на функцию языка программирования C^ тип которой определен с помощью оператора typedef в виде
typedef double (*f)(unsigned int n, double* x).
Multi start i
OptResult
1
OptParams 1 OptFunction
\ | /
\ /
А 1 А
OptMethod
Cell ait
\ AIS /
Ч
SIA HIA
Рисунок 1 - Структура основных классов программы SIA Search
Класс OptFunction включает в себя следующие общедоступные функции:
• double value(vector<double> x) - вычисляет значение целевой функции в точке, заданной вектором x;
• unsigned int dimension() - возвращает размерность целевой функции;
• Name name () - возвращает имя целевой функции.
2) Класс OptParams осуществляет смену значений параметров, для которых осуществляется исследование эффективности метода оптимизации. Каждый параметр исследуемого метода представлен набором значений, заданных классом OptParamVector. Интерфейс класса OptParamVector составляют конструктор, осуществляющий функции добавления параметров,
и функция step (), реализующая последовательный перебор заданных значений параметров. Задание множества параметров осуществляется с помощью функции
double get(Name name, vector<double> values). Получение текущего значения параметра осуществляется обращением по его имени с помощью функции
double get(const char* name).
3) Класс OptResult предназначен для формирования результатов работы метода оптимизации и включает в себя следующие функции:
• vector<double> coords () - возвращает координаты наилучшего найденного решения;
• double value() - возвращает значение целевой функции, соответствующее наилучшему найденному решению;
• unsigned int iterations() - возвращает число итераций метода, затраченных на поиск полученного решения;
• unsigned int evaluations () - возвращает общее число
вычислений целевой функции.
4) Виртуальный класс OptMethod является базовым классом для всех методов оптимизации. Его конструктор принимает класс целевой функции OptFunction и экземпляр класса OptParams, содержащий параметры используемого метода. Класс OptMethod имеет единственную общедоступную функцию start (), которая запускает метод оптимизации и по его завершении возвращает экземпляр класса OptResult с результатами оптимизации.
Класс OptMethod имеет защищенные функции, обязательные для определения в производных классах:
• void setParams(OptParams p);
• void init();
• void iterate();
• bool stop();
• OptResult bestResult() .
Функция setParams() предназначена для получения параметров метода по их строковым идентификаторам и инициализации внутренних переменных класса, соответствующих этим параметрам.
Функция init() предназначена для задания начальных условий, требуемых для работы метода. Данная функция вызывается один раз для данного набора параметров.
Функция iterate() осуществляет выполнение основной итерации рассматриваемого метода оптимизации. Реализация данной функции полностью зависит от этого метода.
Функция stop() проверяет критерий окончания итераций (стагнация в течение заданного числа итераций либо достижение заданного числа вычислений целевой функции).
Функция bestResult() возвращает лучший найденный на текущей итерации результат.
5) Класс Multistart предназначен для сбора, обобщения и вывода результатов исследования. В его задачи входит подсчет числа проведенных запусков исследуемого метода оптимизации, хранение результатов оптимизации по каждому запуску, осреднение этих результатов по всем проведенным стартам, вывод в файл в виде таблицы осредненных результатов и лучшего результата по всему мультистарту.
6) Каждая клетка искусственной иммунной системы является экземпляром класса Cell, который имеет функции, осуществляющие клонирование и мутацию клеток, вычисление расстояния между клетками, а также получение вектора координат клетки.
7) Класс AIS включает в себя функции, реализующие процедуры, специфические для методов иммунной оптимизации:
• Cell randomCell() - создает клетку, координаты которой генерируются случайно в пределах области поиска;
• vector<Cell> clone(Cell& A, unsigned int Nc) -порождает множество клонов заданной клетки и возвращает массив, содержащий эти клоны;
• bool stagnation() - определяет наличие ситуации стагнации, когда отсутствует улучшение значения целевой функции для лучшей из клеток памяти в течение заданного числа итераций;
• OptResult bestResult() — возвращает экземпляр класса OptResult, содержащий информацию о наилучшей из клеток памяти;
• void replace(unsigned int i, const Cell& cell) — удаляет клетку pt популяции и помещает на ее место клетку, заданную
параметром cell;
• void selectBest(vector<Cell>& P, unsigned int N) -осуществляет сортировку популяции клеток по возрастанию значения целевой функции и сокращает популяцию до указанного размера;
• void suppress(vector<Cell>& P, double D) -осуществляет процедуру сжатия популяции с порогом сжатия D.
8) Класс SIA является основным классом, реализующим метод SIA. В данном классе определена функция iterate(), выполняющая все шаги метода; функция generateNew(), создающая новые клетки популяции на основе состояния клеток памяти; вспомогательная функция maxDeltaCoords(unsigned int coord), определяющая максимальную разность координат клеток памяти.
9) Класс HIA был разработан для реализации сравнительного исследования эффективности метода SIA. Функции класса HIA близки к рассмотренным функциям класса SIA. Наиболее существенное отличие заключается в наличии функции mutate(vector<Cell>& P, Cell& p), которая осуществляет локальный поиск с помощью указанных в п.2.4 видов мутации.
4.2. Тестирование программы
Тестирование метода и программы SIA Search выполнено на функциях Розенброка, Химмельблау и Растригина [4].
Функция Розенброка является унимодальной, но овражной, и имеет вид
Область поиска ограничиваем гиперкубом П , размеры которого равны хт1п = -2,048, хтах = 2,048 . В этой области минимум /* = 0 функция
достигает в точке х * = .
Функция Химмельблау
двумерна и имеет четыре локальных минимума, являющихся одновременно глобальными минимумами:
Важно, что все точки минимума функции, кроме первой, имеют иррациональные значения координат.
Функция Растригина по каждому из измерений представляет собой сумму квадратичной и косинусоидальной составляющих, благодаря чему функция имеет большое число регулярно расположенных локальных минимумов. Функцию определяет формула
Область поиска ограничивает гиперкуб, границы которого задают константы хт;п =-5,12, хтах = 5,12. Глобальный минимум /* = 0 функция достигает в точке х* = (0; 0;...; 0).
f (x •)= f (3,0; 2,0) = 0,0; f(x)= f(- 2,8051; 3,1313) = 0,0; f(x') = f(-3,7793; -3,2832) = 0,0; f(x•)= f(3,5844; -1,8481) = 0,0.
f(x) = 10n + £ x2 - 10cos (2лх,-)]
Далее нам понадобятся также тестовые функции Швефеля и Шекеля.
Функция Швефеля [4] является многоэкстремальной и обладает так называемым ложным глобальным минимумом. Многие методы поиска в этой ситуации склонны сходиться к последнему. Функцию Швефеля определяет формула
Поиск осуществляем в гиперкубе П, в котором хт1п =-2,048, хтах = 2,048.
Глобальный минимум функции в этом случае равен /* = - 418,9829 п и
достигается в точке х* = (420,9687; 420,9687;,,,,; 420,9687) .
Функция Шекеля [4] замечательна тем, что положение и глубину всех минимумов этой функции задает сам пользователь. Функция имеет вид
где k - число минимумов; at = (an, ai2,...,ain) - вектор, определяющий координаты i-го минимума; ct - константа, задающая значение этого минимума.
Результаты тестирования программы SIA Search для двумерных вариантов функций Розенброка, Химмельблау и Растригина представлены в таблице 5. В верхних подстроках таблицы приведены значения, полученные с помощью метода SIA, а в нижних подстроках - аналитические значения. Таблица показывает корректность метода и его программной реализации.
i=1
f (x) =
j=1
Таблица 5 — Результаты тестирования метода SIA^. п = 2
Функция у * у ‘ * х х*
Розенброка 0,0000000214 (1,00004; 1,00006)
0 (1; 1)
0,0000000573 (3,58440; -1,84815)
0 (3,584; -1,848)
0,0000000777 (-2,80513; 3,13127)
Химмельблау 0 (-2,805; 3,131)
0,0000000191 (2,99998; 2,00003)
0 (3;2)
0,0000000400 (-3,77931; -3,28315)
0 (-3,779; -3,283)
Растригина 0,000000122 (-0,00002; 0,00001)
0 (0; 0)
5. Исследование эффективности
В данном разделе представлены некоторые результаты исследования эффективности алгоритма SUBPLEX, метода SIA, а также результаты сравнительного исследования эффективности методов HIA, SIA и алгоритмов глобальной оптимизации CRS, MLSL, ISRES, представленных в программной библиотеке NLopt.
5.1. Алгоритм SUBPLEX.
Результаты исследования эффективности алгоритма SUBPLEX представлены в таблице 6. Исследование выполнено для функции Розенброка, имеющей размерность от 50 до 800. Во всех случаях использован мультистарт из 30 запусков. Таблица показывает, что для всех размерностей каждый из запусков обеспечил высокую точность локализации минимального значения функции. Очень важно, что при этом наблюдается почти линейная зависимость числа испытаний Пу от числа варьируемых параметров п .
Таблица 6 — Исследование эффективности алгоритма БиБРЬЕХ:
функция Розенброка
п 50 100 200 400 800
/ * 0,0000203529 0,0000206184 0,0000204257 0,0000207587 0,0000206517
~ * 0,6491565486 0,7223015334 0,8812430192 0,8390497163 0,7193811945
пг 905081 2047319 4364204 8683773 16748447
5.2. Метод SIA.
Прежде было выполнено исследование эффективности метода при поиске глобального минимума функции Растригина размерностью 12, 16, 20, 24, 28, а также смещенной функции Растригина тех же размерностей. Область поиска, как и ранее, была ограничена гиперкубом
П = (X I Хшт ^ X ^ Хпах> , е [1: п]) , где Хтт = -5,12, Хтах = 5,12 . ГлобаЛьный
минимум последней функции в этой области расположен в точке
• (5 5 5 5
Х =1 Т’ о"’ т"’’’ ’’ _
^ 12 3 п
Во всех случаях использован мультистарт из 100 запусков.
Результаты исследования представлены в таблице 7, которая показывает, что метод успешно находит точный глобальный минимум функции Растригина, имеющей размерность, не превышающую 20. При более высоких размерностях, когда число локальных минимумов становится чрезвычайно большим, метод находит локальные минимумы, близкие к точке глобального минимума.
Таблица 7 — Результаты тестирования метода Б1А: функция Растригина; тшах = 80
Функция п 12 16 20 24 28
Растригина / ‘ 0,000000000 0,000000000 0,000000000 0,994959027 1,989918055
Т * 0,527328284 1,890421901 3,472405898 6,626423396 9,173515079
Растригина (смещенная) / ‘ 0,000000001 0,000000004 0,000000007 0,000000009 1,989918075
Т 2,616741867 5,780709701 9,133717740 13,33243873 15,44174748
Параметрическое исследование метода Б1А выполнено для функций Растригина и Шекеля, имеющих размерности 16, 24, 30, 36, 42. В качестве варьируемых параметров рассмотрены порог сжатия Ьг, максимальное число клеток памяти ттах е {10; 20; 40}, коэффициент обучения в0 е {0,7; 0,8; 0,9}, коэффициент q е {4; 5; 6} . Использован фиксированный размер популяции пР = 5 . В каждом исследовании варьировался только один из
рассматриваемых свободных параметров, а остальные параметры принимали свои «базовые» значения Ьг = 0,04 ; в0 = 0,8 ; q = 5 ; ттах = 10 для функции Шекеля и ттах = 100 для функции Растригина. Число мультистартов принято равным 100. В качестве критерия окончания итераций во всех случаях использована стагнация в течение 20 итераций.
Результаты исследования показали, что только параметр ттах оказывает существенное влияние на эффективность метода. На этом основании приводим зависимости рассматриваемых критериев оптимальности только от этого параметра (рисунок 2).
Результаты исследования показывают, что среднее по мультистарту
значение целевой функции /* уменьшается (улучшается) с ростом числа клеток памяти ттах до величины, примерно равной 90, которая слабо зависит от размерности этой функции (рисунок 2б). С другой стороны, с увеличением
ттах увеличивается среднее число испытаний пу . Таким образом, как и следовало ожидать, увеличение значений параметра ттах повышает качество поиска ценой увеличения числа испытаний.
а) б)
/*
14 -г----------------------------------
20 40 60 80
в)
► - п = 16, ▲ - п = 24, ▼ - п = 30, ♦ - п = 36, ■ - п = 42
Рисунок 2 - Эффективность метода £ІЛ: функция Растригина; варьируемый параметр ттах
Для функции Шекеля зависимость эффективности метода SIA от числа клеток памяти имела иной характер. Наилучшие результаты для всех указанных выше размерностей целевой функции были достигнуты в этом случае при mmax = 10, а для всех остальных mmax были получены примерно
одинаковые результаты.
Разный характер зависимости критериев эффективности от параметра mmax для функции Растригина и Шекеля объясняется существенным различием ландшафтов этих функций.
5.4. Методы SIA, HIA, CRS, MLSL, ISRES Сравнительное исследование эффективности указанных методов выполнено для функций Растригина и Шекеля, имеющих размерность 16, 24, 32, 40, 50. Для функции Растригина использована область поиска, указанная в п. 5.3. В случае функции Шекеля число минимумов к принято равным размерности целевой функции (к = n); положения минимумов определяют константы
aij = - - j, 1 е[1: к L j е[1: n];
3 7
глубину минимумов задают величины ci=~, - е [1: к]. Область поиска для
функции Шекеля ограничена гиперкубом со стороной, равной 10, и центром в начале координат:
П = {г | х- е [xmin; xmax J, i е [1: n]}, xmin = - 5, xmax = 5.
Для метода SIA использованы следующие значения свободных параметров:
mmax = 10 для функции Шекеля и mmax = 100 для функции Растригина;
= 0,04; nP= 5; = 0,8; q = 5.
Аналогично для метода HIA:
mmax=10; nc=1500; np =5; br= 0,02; amax =5; в0 = 0,8; q =5.
В качестве значений свободн^1х параметров методов CRS, MLSL, ISRES использованы их умолчательные значения, предлагаемые библиотекой NLopt [3].
Применен отличный от использованных ранее критерий окончания итераций - достижение заданного числа вычислений целевой функции, равного
птах = 50000 п .
Результаты исследования представлены в таблицах 8, 9.
Таблица 8 - Сравнительная эффективность методов SIA, HIA, CRS, MLSL,
ISRES: функции Растригина
n Метод
SIA HIA CRS MLSL ISRES
f * f * f * f * f * f * f * f * f * f *
1б 0,000 1,333 0,002 0,032 0,994 11,332 4,974 1б,371 2,984 12,б1б
24 0,000 5,571 0,003 0,104 3,979 1б,755 14,924 39,052 11,939 21,958
32 1,989 12,297 0,033 0,201 4,974 21,182 3б,813 б7,428 17,909 33,490
40 2,984 19,093 0,070 0,35б 2,984 19,859 бб,бб2 99,057 23,879 43,101
50 8,954 29,599 0,131 0,5б9 4,974 2б,137 б8,б51 13б,975 32,833 57,021
Таблица 9 - Сравнительная эффективность методов SIA, HIA, CRS, MLSL,
ISRES: функции Шекеля
n Метод
SIA HIA CRS MLSL ISRES
f * f * f * f * f * f * f * f * f * f *
1б -3,729 -2,815 -3,724 -2,501 -5,774 -3,935 -3,729 -2,бб9 -3,729 -2,3б1
24 -3,370 -2,б19 -2,582 -1,823 -3,370 -1,539 -2,58б -2,119 -1,723 -1,323
32 -2,383 -2,113 -1,970 -1,451 -1,410 -1,251 -1,973 -1,бб8 -1,22б -1,039
40 -2,254 -1,918 -2,232 -1,213 -1,119 -1,0б2 -1,594 -1,330 -1,119 -0,944
50 -1,303 -1,303 -1,191 -0,95б -0,9б3 -0,891 -1,195 -1,04б -1,195 -0,870
Из таблиц 8, 9 следует, что предложенный метод глобальной оптимизации SIA показал очень хорошие результаты на тестовой функции Шекеля, найдя наилучшее решение среди всех рассмотренных методов. Для функции Растригина по всем критериям метод показал третий результат.
Сильное влияние на эффективность метода оказывает свободный параметр mmax . Для функции Растригина оптимальное значение этого параметра равно 80, а для функции Шекеля - 10.
Заключение
В работе предложен оригинальный гибридный метод глобальной оптимизации SIA, основанный на технологии искусственных иммунных систем. Метод представляет собой глубокую модификацию известного гибридного алгоритма HIA, который для локального поиска использует процедуру мутации. В методе SIA для этой цели применен алгоритм SUBPLEX, реализованный в известной программной библиотеке NLopt.
Разработано программное обеспечение, реализующее метод SIA, которое представляет собой многофункциональную расширяемую систему для тестирования и исследования эффективности методов оптимизации.
На тестовых функциях Розенброка, Растригина, и Химмельблау, Швефеля и Шекеля выполнено исследование эффективности алгоритма SUBPLEX, метода SIA, а также сравнительное исследование эффективности методов HIA, SIA и алгоритмов глобальной оптимизации CRS, MLSL, ISRES библиотеки NLopt. Результаты исследования показывают высокую эффективность метода SIA для целевых функций, имеющих размерность, не превышающую 50, что является достаточным для широкого круга практически важных задач оптимизации.
Для повышения эффективности метода SIA при поиске минимума функции, характер ландшафта которой неизвестен (что является типичной для приложений ситуацией), предполагается модификация метода на основе самоадаптации его ключевых свободных параметров [12]. Предполагается
также разработка параллельных вариантов метода для кластерных вычислительных систем, а также для графических процессорных устройств.
Литература
1. Lucinska M., Wierzchon S.T. Hybrid Immune Algorithm for Multimodal Function Optimization // Recent Advances in Intelligent Information Systems, 2009, pp. 301-313. (http://iis.ipipan.waw.pl/2009/proceedings/iis09-30.pdf).
2. Rowan T.H. Functional Stability Analysis of Numerical Algorithms, Ph.D. Thesis, Department of Computer Sciences, University of Texas at Austin, 1990.
(http://reference.kfupm.edu.sa/content/f/u/functional_stability_analysis_of_numeric_1308737.pdf).
3. The NLopt nonlinear-optimization package.
(http://ab-initio.mit.edu/wiki/index.php/NLopt).
4. Molga M., Smutnicki C. Test functions for optimization needs. 2005.
(http://www.zsd.ict.pwr.wroc.pl/files/docs/functions.pdf).
5. De Castro L.N., Von Zuben F.J. Learning and Optimization Using the Clonal Selection Principle // IEEE Transactions on Evolutionary Computation, 2002, vol. 6, No. 3, pp. 231-259.
(http://www.idi.ntnu.no/emner/tdt4/2010%20articles/ clonalselection- 13.10.pdf).
6. De Castro L.N., Timmis J. An Artificial Immune Network for Multimodal Function Optimization // Proceedings of IEEE Congress on Evolutionary Computation (CEC'02), 2002, May, Hawaii, vol. 1, pp. 699-674.
(http://neuro.bstu.by/ai/To-dom/My_research/Papers-0/Etc-done/wais02.pdf).
7. Yildiz A.R. A novel hybrid immune algorithm for global optimization in design and manufacturing // Robotics and Computer-Integrated Manufacturing, 2009, vol. 25, pp. 261-270.
8. Kelsey J., Timmis J. Immune Inspired Somatic Contiguous Hypermutation for Function Optimisation, 2003.
(http://www.cs.york.ac.uk/rts/docs/ GECC0_2003/papers/2723/ 27230207.pdf).
9. Agiza H.N., Hassan A.E., Salah A.M. An Improved Version of opt-AiNet Algorithm (I-opt-AiNet) for Function Optimization // IJCSNS International Journal of Computer Science and Network Security, March 2011, vol. 11, No. 3, pp. 80-85.
(http://paper.ij csns.org/07 book/201103/20110313.pdf).
10. Aragon VS., Escuivel S.C., Coello Coello C.A. Solving Constrained Optimization using a T-Cell Artificial Immune System, 2008.
(http://polar.lsi.uned.es/revista/index.php/ia/article/viewFile/579/563).
11. Nelder J. A., Mead R. A simplex method for function minimization // The Computer Journal, 1965, Vol. 7, p. 308-313.
12. Eiben A. E., Michalewicz Z., Schoenauer M., Smith J. E. Parameter Control in Evolutionary Algorithms / Parameter Setting in Evolutionary Algorithms.- Springer Verlag, 2007, pp. 19-46.
SCIENTIFIC PERIODICAL OF THE BAUMAN MSTU
SCIENCE and EDUCATION
EL № FS 77 - 4821 1. №0421200025. ISSN 1994-0408
electronic scientific and technical journal
A hybrid global optimization method based on artificial immune system
# 08, August 2012
DOI: 10.7463/0812.0433381
Karpenko A.,P., Shurov D.L.
Russia, Bauman Moscow State Technical University
dmitry. shurov@mail. ru
The paper presents an original hybrid method of global optimization - SIA - which based on the artificial immune systems technology. The method represents extreme modification of the hybrid optimization method HIA (Hybrid Immune Algorithm) which uses mutation procedure for local search. On the contrary, in SIA method for this purpose the known SUBPLEX algorithm is used. The authors give a description of this method and its program implementation. In addition, the authors investigate efficiency of the proposed method and present the results of this research.
Publications with keywords: global optimization, hybridization, immune algorithm, SUBPLEX Publications with words: global optimization, hybridization, immune algorithm, SUBPLEX
References
1. Lucinska M., Wierzchon S.T. Hybrid Immune Algorithm for Multimodal Function Optimization. In: Recent Advances in Intelligent Information Systems, 2009, pp. 301313. Available at: http://iis.ipipan.waw.pl/2009/proceedings/iis09-30.pdf .
2. Rowan T.H. Functional Stability Analysis of Numerical Algorithms. Ph.D. Thesis. Department of Computer Sciences, University of Texas at Austin, 1990. Available at: http://reference.kfupm.edu.sa/content/f/u/functional stability analysis of numeric 130 8737.pdf .
3. The NLopt nonlinear-optimization package. Available at: http://ab-
initio.mit.edu/wiki/index.php/NLopt .
4. Molga M., Smutnicki C. Test functions for optimization needs, 2005. Available at: http://www.zsd.ict.pwr.wroc.pl/files/docs/functions.pdf .
5. De Castro L.N., Von Zuben FJ. Learning and Optimization Using the Clonal Selection Principle. IEEE Transactions on Evolutionary Computation, 2002, vol. 6, no. 3, pp. 231-259. Available at: http://www.idi.ntnu.no/emner/tdt4/2010%20articles/ clonalselection-13.10.pdf .
6. De Castro L.N., Timmis J. An Artificial Immune Network for Multimodal Function Optimization. Proc. of IEEE Congress on Evolutionary Computation (CEC'02), May 2002, Hawaii, vol. 1, pp. 699-674. Available at: http ://neuro .bstu.by/ai/To-dom/My research/Papers-0/Etc-done/wais02.pdf .
7. Yildiz A.R. A novel hybrid immune algorithm for global optimization in design and manufacturing. Robotics and Computer-Integrated Manufacturing, 2009, vol. 25, pp. 261-270.
8. Kelsey J., Timmis J. Immune Inspired Somatic Contiguous Hypermutation for Function Optimisation, 2003.
Available at: http://www.cs.york.ac.uk/rts/docs/ GECCO_2003/papers/2723/
27230207.pdf .
9. Agiza H.N., Hassan A.E., Salah A.M. An Improved Version of opt-AiNet Algorithm (I-opt-AiNet) for Function Optimization. IJCSNS International Journal of Computer Science and Network Security, March 2011, vol. 11, no. 3, pp. 80-85. Available at: http://paper.ijcsns.org/07 book/201103/20110313.pdf .
10. Aragon VS., Escuivel S.C., Coello Coello C.A. Solving Constrained Optimization using a T-Cell Artificial Immune System, 2008.
Available at: http://polar.lsi.uned.es/revista/index.php/ia/article/viewFile/579/563.
11. Nelder J. A., Mead R. A simplex method for function minimization. The Computer Journal, 1965, vol. 7, pp. 308-313.
12. Eiben A. E., Michalewicz Z., Schoenauer M., Smith J. E. Parameter Control in Evolutionary Algorithms. In: Parameter Setting in Evolutionary Algorithms. Springer Verlag, 2007, pp. 19-46.