Научная статья на тему 'Эволюционные операторы популяционных алгоритмов глобальной оптимизации. Опыт систематизации'

Эволюционные операторы популяционных алгоритмов глобальной оптимизации. Опыт систематизации Текст научной статьи по специальности «Математика»

CC BY
458
55
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ГЛОБАЛЬНАЯ ОПТИМИЗАЦИЯ / GLOBAL OPTIMIZATION / ПОПУЛЯЦИОННЫЙ АЛГОРИТМ / POPULATION-BASED ALGORITHM / МЕТАЭВРИСТИЧЕСКИЙ АЛГОРИТМ / META-HEURISTIC ALGORITHM

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

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

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

Evolutionary Operators for Global Optimization Population-Based Algorithms. Experience of Systematization

The paper formulates a global optimization problem and a general scheme of the P-algorithms to solve it. This multilevel classification of the main search operators of P-algorithms at the highest level of the hierarchy identifies the following operators: initialization of the population and the end of the search; coding of individuals; randomization; selection; crossing; population management; local search.

Текст научной работы на тему «Эволюционные операторы популяционных алгоритмов глобальной оптимизации. Опыт систематизации»

Математика U Математическое

моделирование

Сетевое научное издание http://mathmelpub.ru

Ссылка на статью:

// Математика и математическое моделирование. 2018. № 01. С. 59-89

DOI: 10.24108/шаШш.0118.0000103

Представлена в редакцию: 27.01.2018

© НП «НЕИКОН»

УДК 519.6

Эволюционные операторы популяционных алгоритмов глобальной оптимизации. Опыт систематизации

Карпенко А.П.1' 'аркафепко@гааЛ:ги

1МГТУ им. Н.Э. Баумана, Москва, Россия

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

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

Введение

Различают траекторные и популяционные алгоритмы глобальной поисковой оптимизации. Траекторные (классические) алгоритмы (single-state algorithms) предполагают обновление на каждой итерации положения лишь одного кандидата в решение задачи. При этом общее число кандидатов может быть большим единицы, и на разных итерациях могут перемещаться разные кандидаты. В популяционных алгоритмах (population-based algorithms), во-первых, число кандидатов (особей) больше единицы, а, во-вторых, на каждой из итераций перемещаются либо все особи, исключая, возможно, лишь некоторые из них (например, «лучшие» особи), либо, по меньшей мере, некоторое число особей, превышающее единицу. В разных публикациях популяционные алгоритмы глобальной поисковой оптимизации (П-алгоритмы) называют поведенческими, интеллектуальными, мета-эвристическими, вдохновленными (инспирированными) природой, роевыми, многоагент-ными и т.д. [1].

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

Популяционные алгоритмы (П-алгоритмы) многочисленны и весьма разнообразны. Так в книге [3] представлено более 130 таких алгоритмов, и продолжают появляться новые П-алгоритмы.

В силу многообразия П-алгоритмов известно несколько их классификаций, например, в [1] выделены следующие классы П-алгоритмов:

- эволюционные алгоритмы (генетические алгоритмы, эволюционная стратегия, эволюционное программирование, дифференциальная эволюция);

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

- алгоритмы, инспирированные неживой природой (гармонический поиск, алгоритм гравитационного поиска, электромагнитный поиск и др.);

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

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

В [3] различают традиционные П-алгоритмы (эволюционные алгоритмы, алгоритмы на основе искусственных иммунных систем, моделирование отжига, поиск с запретами, роевые алгоритмы) и инновационные алгоритмы - П-алгоритмы, вдохновленные биологией (Biology-based), физикой (Physics-based), химией (Chemistry-based), математикой (Mathematics-based).

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

Исходим из следующей общей схемы эволюции популяции в П-алгоритме. Популяция S' = {s{, s'2,...} формируется путем выбора из текущей популяции S = S(t) = , s2,...} всех или некоторого числа наиболее приспособленных особей (этап селекции). Все или некоторые особи популяции S' подвергаются трансформации с помощью поисковых операторов (search operators) для того, чтобы сформировать популяцию

s 2 = S (t+1) = к, s2,...}.

Мощность популяции S (число особей в ней) обозначаем |S|.

Различаем унарные поисковые операторы (unary transformations operators), которые порождают новую особь путем изменения только одной особи, а также поисковые операторы высокого порядка (higher-order transformations operators), создающие новую особь путем комбинирования двух и более различных особей.

Известно небольшое число работ, в той или иной мере посвященных различным аспектам анализа П-алгоритмов. Так, в фундаментальных работах [5, 6] представлены базовые алгоритмы и операторы эволюционных алгоритмов. Для широкого круга оптимизационных задач рассмотрены методы кодирования особей, операторы селекции, а также такие поисковые операторы, как мутация и скрещивание. Использовано представление операторов в виде псевдо-кода, так что, например, общая схема оператора селекции имеет вид: Input: /, Я, q, S, S' , р Output: S" for i = 1 to /

s2= SELECT (S, S ', р, q) return {sj2 sj,...} .

Здесь S , S , S - популяции после выполнения операторов рекомбинации, мутации и селекции соответственно; р - фитнесс-функция; SELECT - оператор селекции; q - давление селекции; |S| = /, |S '| = Я .

Общие схемы П-алгоритмов и их операторов представлены в работе [7] также в форме псевдокода, например, схема абстрактного эволюционного алгоритма имеет следующий вид:

S ^ Build Initial Population

Best ^ Empty

repeat

AssessFitness (S)

for each individual s G S do if Best = Empty or Fitness (s ) > Fitness (Best) then Best ^ s S ^ Join (S, Breed (S)) until Best is the ideal solution or we have run out of time return Best.

Здесь AssessFitness - функция, вычисляющая приспособленности особей текущей популяции; операция Breed осуществляет селекцию особей из популяции и их улучшение (путем мутации и рекомбинации) для получения потомства; операция Join либо полностью заменяет родителей потомками, либо включает в следующее поколение наиболее приспособленных родительских особей и потомков.

Высокоуровневый формализм, восходящий к работам Дж. Холланда и ориентированный на описание адаптивных П-алгоритмов, предложен в работе [8] в контексте обсу-

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

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

select

S ^ S",

где S" - промежуточная популяция.

В работе [10] также используются описания операторов П-алгоритмов в виде формул, например, общая схема эволюционного (поискового) оператора в эволюционном алгоритме представлена в виде

S" =evolve ( S )=survival selection (reproduction (parent selection ( S ))), где parent selection, reproduction, survival selection - операторы отбора родительских пар, скрещивания и формирования новой популяции соответственно.

Представляем постановку задачи глобальной оптимизации. Рассматриваем следующие группы поисковых операторов и операций: инициализация популяции и окончание поиска; кодирование особей; рандомизация; селекция; скрещивание; управление популяцией; локальный поиск.

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

[1, 3].

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

1. Постановка задачи глобальной оптимизации и основные обозначения

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

min f ( x ) = f ( x *) = f *, (1)

где | X | - размерность вектора варьируемых параметров X = (xi, i e [1: |X|]) ; f (X) - целевая функция (Ц-функция) со значениями в пространстве R ; X*, f * - искомые оптимальные решение и значение Ц-функции соответственно.

Полагаем, что поиск решения задачи (1) начинается в |X| -мерном параллелепипеде

пх= {X|X~< X < X+}, где X-= (x;, i e[1: |X|]), X += (x+, i e[1: |X|]) - его нижняя и

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

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

min f (x) = f (x•) = /, (2)

X eQc Rx'

где Q - выпуклое множество допустимых значений вектора X .

Полагаем, что фитнесс-функция (Ф-функция) П-алгоритма (p(X) также подлежит минимизации.

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

Q^Q Р^ j^system.control _£уг

где O - наименование оператора; A - алгоритм, реализующий данный оператор; Q, P -наборы, возможно пустые, аргументов и свободных параметров оператора соответственно. Полагаем, что в число аргументов Q входит вектор S , идентифицирующий рассматриваемую популяцию. Строки system, control определяют оператор на двух верхних классификационных уровнях, строка ID, являющаяся, вообще говоря, составной - идентифицирует оператор с необходимым уровнем детализации. Строка system определяет, является ли данный оператор детерминированным (deterministic) или стохастическим (stochastic), а строка control - статическим (static), динамическим программным (program) или динамическим адаптивным (adaptive) соответственно. Говоря более строго, имеют место следующие соотношения:

systems {det, stoch}; controls {stat, prog, adapt).

Полагаем, что запись результатов оператора в представленном виде, означает, что этими результатами являются векторы переменных состояния V' и вектор характеристик популяции C' [4]. Если этот факт необходимо подчеркнуть, то используем запись вида

O(Q, P)| A;y'tem.contml = {SVC'}.

С другой стороны, полагаем, что указание популяции S в качестве одного из аргументов оператора означает, что аргументами этого оператора являются также векторы V , C. Явное указание этого факта записываем в виде

O(Q, P)|As/I;tem.contml = {S ', VC'}, {V, C} e Q .

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

Q^Q Р^ ^system.control _X' Р^ ^system.control _ д ^t p^ ^system.control _ д2 у"'

2. Инициализация и окончание поиска

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

раторов инициализации и окончания поиска), а также детерминированные и стохастические операторы.

2.1. Инициализация

Говоря об инициализации П-алгоритма, различаем инициализацию популяции и инициализацию прочих сущностей алгоритма. Инициализация сущности П-алгоритма означает инициализацию свободных параметров, определяющих эту сущность, а также начальных значений характеристик сущностей [4]. Применительно к популяции, к этому перечню следует добавить инициализацию начального состояния популяции, то есть определение начальных значений V(0) = V0 компонентов X, ЛХ, Л2Х вектора состояния V. Инициализация векторов X, ЛХ, Л2Х, в общем случае, осуществляется по разным правилам, с использованием различные операторы инициализации. Ограничимся рассмотрением операторов инициализации компонентов вектора X. Заметим, что важнейшим свободным параметром популяции S является число особей в ней |S| (мощность популяции).

Рекомендации по выбору этой величины даны, например, в работе [6].

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

INIT (Q, P)|A;y'tem-co"tro1 = S(0) = S°, где, полагаем, инициализируемая сущность входит в число аргументов Q .

Компонентами набора P в операторах инициализации являются константы x;, Xj, j e[1: |х|] (п.1). Заметим, что если в процессе инициализации популяции некоторая компонента xk, к e [1: |Х|] вектора X должна, например, принять значение, равное xl, то

для этого в определении области Qx достаточно положить x; = xj = x° .

Преимущественно в П-алгоритмах используют равномерное случайное распределение особей в параллелепипеде Qx (стратегия «дробовика» [9]. Некоторые П-алгоритмы используют также равномерное детерминированное начальное распределение. Так, в алгоритме растущих деревьев (Saplings Sowing and Growing up, SSG) на этапе инициализации (посадки) особи (саженцы) случайным образом равномерно располагают в области поиска - создают равномерный сад (uniform garden) [21]. Области, в которых осуществляется инициализация других сущностей П-алгоритма, также чаще всего имеют форму параллелепипеда соответствующей размерности. Компоненты векторов свободных параметров, которые определяют эти сущности, могут использовать равномерное детерминированное и случайное распределение своих значений в указанной области.

Выделяем следующие группы операторов инициализации:

- INIT(Q, P)|Adetstatw = S(0) = S0 - статический оператор, реализующий детерминированное распределение особей в параллелепипеде Qx;

- INIT (Q, P)|A;t°och-statw = S(0) = S0 - статический оператор случайного распределения

особей в том же параллелепипеде.

Пример 1. Детерминированный статический оператор равномерного распределения

INIT (S, P)| Afmic = X (0) = X0, P = (|S|, IX, nJ, xj, xj; j e [1: |X| ]) реализует равномерное детерминированное распределения особей в параллелепипеде Qx. Здесь n, . .. - числа узлов сетки по соответствующим измерениям, покрывающей параллелепипед Qx, в которых должны располагаться особи популяции S. Должно выпол-

X

няться очевидное условие ^ = |S|. Алгоритм оператора обеспечивает распределение

j=1

особей s , i e [1: |S|] популяции S по узлам указанной сетки и может быть задан формулой

(7-1)(х+-хТ)

хи = х- + --^ , , е[1: |5|], ] е [1: |Х|] □

Пример 2. Детерминированный статический оператор ЛП-тау распределения: 1М1Т (5, Р^Гши = X(0) = X0, Р = (|5|, |Х|, п], х~}, х); ] е [1: |х|]) .

Оператор обеспечивает аналогичное оператору 1Ы1Т ■АипуогШ детерминированное

распределение особей в параллелепипеде с использованием ЛП-тау последовательностей [13] □

Пример 3. Стохастический статический оператор равномерно случайного распределения:

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

1М1Т (5, Р)АЦ^Т = X(0) = X0, Р = (|5|, |Х|, х~], х); ] е [1: |х|]) .

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

X0 = X-+ и]х| (0; 1) ® (X+ - X-), , е [1: ] □

Пример 4. Стохастический статический оператор нормального случайного распределения

1М1Т (X, Р) = X(0) = X0, Р = (|5, Ш, а; ] е [1: X])

в терминах [9] реализует стратегию фокусировки и предполагает нормальное случайное

распределение особей в окрестности точки X = , j е [1: ]) е , являющейся «подоз-

*

рительной» на наличие в ее окрестности искомого решения X задачи оптимизации (1). Здесь т, а - математическое ожидание и среднее квадратичное отклонение компонентов случайного вектора |(ш, а) (одинаковые для всех этих компонентов). Алгоритм оператора определяет формула

X0 = X + N]x](m, a), i e [1: |S|] □

Оператор вида INT.Аь^Тис может быть использован, например, в алгоритме HCIAC [22] для инициализации такой сущности этого алгоритма, как окрестность особи (зона видимости муравья).

Пример 5. Стохастический статический оператор с разделением пространства поиска (region-partition initialization):

init x r^f=X(0), p=(S. XI. . ; j e i1: IX]).

Здесь алгоритм оператора реализует указанную декомпозицию области и генерацию в каждой из подобластей случайной начальной точки. Идея оператора состоит в разделении области Qx на |S| параллелепипедов равного объема и в последующей генерации начальных положений особей внутри этих подобластей случайным образом на основе равномерного закона распределения^

Оператор INITА^ОСшТпитМт использует, например, улучшенный алгоритм эволюции

разума (Improved MEC, IMEC) c целью предотвращения преждевременной сходимости алгоритма [23].

2.2. Завершение поиска

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

END(Q, P)|А^е—1 = X(t) ,

где t - номер последней итерации.

В качестве решения исходной задачи оптимизации (1) ЛПР обычно использует вектор X*(?) = X* и соответствующее значение Ц-функции f (X*) = f *. Может также использоваться лучшее решение, достигнутое популяций на интервале [0 : t].

В вычислительной практике кроме собственно решения X *, f * для исследователя интерес могут представлять многие другие величины, например, конечные значения всех компонентов вектора состояний популяции V (t), полная или частичная история эволюции всех или некоторых особей популяции и т.д. Мы этот нюанс в модели оператора END опускаем. Заметим, что это обстоятельство, как само собой разумеющееся, не обсуждается также в работах, представляющих П-алгоритмы.

Алгоритм оператора END реализует следующие действия:

- проверка выполнимости критерия (или критериев) окончания поиска (условий сходимости итераций);

- возврат требуемых результатов решения задачи оптимизации (1), если этот критерий (критерии) выполнены;

- возврат в нужную точку алгоритма и продолжение поиска в противном случае.

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

- достижение максимально допустимого числа поколений эволюции популяции t (группа операторов END.Adetetatw);

- стагнация (stagnation) итерационного процесса по значениям Ф-функции или по значениям компонентов вектора X (группа операторов ENDА^ф , END .А^Т;

- достижение заданного состояния популяции (группа операторов END.AdsfatbetatiC). Под стагнацией итерационного процесса по значениям Ф-функции понимаем одну

из двух следующих ситуаций:

- на протяжении 8t итераций имеет место не превышение улучшений значений этой

функции величины s ; е > 0, 8t> 0 - заданные свободные параметры;

- приспособленности всех особей популяции р = <р(Xi), i e [1: |S|] опустились ниже

некоторого заданного порога (речь, напомним, идет о задаче минимизации Ф-функции).

Аналогично, стагнация итерационного процесса по значениям компонентов вектора X имеет место в следующих ситуациях:

- на протяжении 8t итераций в некоторой метрике максимальное расстояние между

двумя положениями особи не превышает заданную величину ех ; sX > 0, 8t > 0 - свободные параметры;

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

Пример 6. Детерминированный статический оператор, использующий критерий достижения максимально допустимого числа поколений:

END (t, S, P)|AdeLeta"c = X(t), P = (S |, |X|, ?).

Алгоритм оператора определяет очевидная формула t = t □ Пример 7. Детерминированный статический оператор на основе стагнации фенотипа особей имеет вид

END(S, S(t - 8), Ppdaa^ = X(t); P = (|S |, |X|, *,, 8t),

где алгоритм оператора задает формула

abSp( Xb (t))-р( Xb (t-8t )))<sv.

Здесь X b (t) - текущее положение лучшей (в смысле минимума Ф-функции) особи популяции; Xb(t — 8t) - положение той же особи на итерации t - 8tU

Пример 8. Детерминированный статический оператор на основе стагнация генотипа особей:

END(S, S(t-st), Pj/egnXi = X(t); P = (|S |, |X|, ^х, St} .

Здесь алгоритму оператора соответствует формула

IX(t)- X(t -st )|| <Sx 0

Пример 9. Детерминированный статический оператор на основе разнообразия популяции:

END(S, P)|Adetstat'c = X(t); P = (IS I, |X|, e„}.

4 /\ state.variance 4 / N I I I И-J

Оператор предполагает окончание поиска при падении текущего разнообразия (variance) популяции ниже заданного уровня. Алгоритм оператора реализует условие окончания поиска /л(X) < e , где /и(X) - метрика разнообразия популяции равная

и(X) = max <г, (X) ,

je[1: S|] J У

Y (x,-x У Yxit j x = ■г=1

< (X) = -, ^ = , j e [1: X].

Здесь величина <.(X) представляет собой оценку дисперсии решений по j- ой компоненте вектора X □

3. Кодирование (представление) особей

В терминах генетического алгоритма, в подавляющем большинстве П-алгоритмов используют монохромосомное вещественное кодирование или представление (coding, representation) особей. Иногда с целью рандомизации и диверсификации поиска применяют, как вспомогательное, бинарное кодирование на основе обычных двоичных кодов или двоичных кодов Грея. Напомним, что при вещественном кодировании особей компоненты вектора варьируемых параметров (гены хромосомы в генетическом алгоритме) напрямую кодируют в виде вещественных чисел, точность которых ограничена только используемой в ЭВМ разрядной сеткой [1].

При построении самоадаптивных генетических и иных П-алгоритмов находит место мультихромосомное вещественное кодирование особей, когда вектор X варьируемых параметров задачи (1) (базовой задачи) расширяют за счет параметров, определяющих стратегию данного П-алгоритма. Первую часть полученной мультихромосомы иногда называют экзоном (exon), а вторую часть - интроном (intron) [1].

Даже применительно к рассматриваемой задачи непрерывной оптимизации (1) мыслима ситуация, когда различные компоненты вектора X, кодируют по-разному. Кодирование особей различных их объединений [4] также могут быть различными (хотя автору такие П-алгоритмы неизвестны.).

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

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

CODE(Q, P)|А^ет-соп'гЫ = Xrepres, X е Q, где в случае бинарного кодирования represe {binary,; Gray}, а в случае вещественного -repres = real или repres = EMPTY .

Пример 1. Детерминированный статический оператор обычного бинарного кодирования в общем случае имеет вид

CODE(X, P) A^c = Xbynary, P = (|X|, j e [1: |X|]),

где |h| - длина бинарного кода hy компоненты xy вектора X ; j e [1: |X|]) . Алгоритм оператора реализует алгоритм обычного бинарного кодирования. Чаще всего используют равные значения всех величин |hy.1, когда справедливы равенства |P| = 2 ; P = (|X|, |h|) □

Пример 2. Детерминированный статический оператор на основе бинарного кода Грея определяет выражение

CODE (X, P)| Ad^at,c = XGray,

где для вектора свободных параметров P справедливы предыдущие соотношения. Алгоритм оператора представляет собой алгоритм бинарного кодирования Грея [ 1 ] □

Пример 3. Детерминированный статический оператор вещественного кодирования задает выражение

CODE(X, P)|Ad^¡attc = Xreal = X, P = (|X|) .

Здесь алгоритм оператора реализует вещественное представление компонентов вектора ХП

4. Рандомизация поиска

Поскольку все П-алгоритмы относятся к классу стохастических, в процессе синтеза П-алгоритмов методам рандомизации (стохастизации) поиска в этих алгоритмах уделяется большое внимание. В эволюционных алгоритмах основным средством рандомизации является мутация. В других П-алгоритмах механизм мутации напрямую используется нечасто и обычно лишь в контексте гибридных П-алгоритмов [1].

Для рандомизации эволюции особи s , i е [1: |] в П-алгоритмах используют (в том числе, совместно) рандомизацию текущего положения Xi особи, ее скорости AXi, уско-

рения Д2 Х1, а также свободных параметров алгоритма. Все эти средства могут использоваться не на каждом шаге эволюции популяции (итерации поиска), но лишь через некоторое число шагов Д, которое представляет собой свободный параметр алгоритма, могущий изменяться по неадаптивному или адаптивному, детерминированному или стохастическому законам [4].

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

Идея рандомизации текущего состояния данной особи заключается в замене одного или нескольких компонентов ее вектора состояния V (генов - в генетическом алгоритме) их случайными значениями. Реализация этой идеи состоит из трех этапов:

1) выбор подлежащих рандомизации особей;

2) выбор подлежащих рандомизации компонентов состояния обобранных особей;

3) случайное изменение этих компонентов по тому или иному правилу.

Оператор рандомизации реализует все эти этапы или, по меньшей мере, только третий этап.

Выбор подлежащих рандомизации особей ^ и компонентов их векторов X р I £ [1: ], У £ [1: |Х|] может быть реализован с помощью правил, используемых, например, в алгоритмах равномерной мутации, равномерной компонентной мутации, неравномерной компонентной мутации и т.д. В генетических алгоритмах указанные алгоритмы называются, соответственно, алгоритмами равномерной хромосомной мутации, равномерной генной мутации, неравномерной генной мутации. Случайное изменение компонента или компонентов вектора Х , выбранных на первом этапе, может быть осуществлено, к примеру, с помощью операторов случайной мутации, граничной мутации, гауссовой мутации, арифметического вещественного сдвига, геометрического вещественного сдвига и так далее [1].

В качестве общих обозначений операторов рандомизации (RaNDomization) используем обозначения вида

шб о р, х) = х ', х £ о.

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

Можно выделить следующие функциональные назначения свободных параметров Р оператора рандомизации:

- вероятности рандомизации данной особи и данной компоненты вектора Xi;

- число подлежащих рандомизации компонентов последнего вектора;

- параметры, определяющие статические или динамические законы распределения случайных величин, используемых оператором;

- уровень рандомизации.

Кроме классификации рандомизирующих операторов, которую определяют строки system, control, могут использоваться классификации на основе других признаков. Так, различают бинарные и вещественные, условные и безусловные операторы, операторы, использующие методы аддитивной, мультипликативной и смешанной рандомизации, и т.д. [6]. Заметим, что среди условных операторов могут быть выделены операторы, использующие генотип особей, и операторы, использующие одну или несколько их характеристик [4].

Общее описание бинарных операторов рандомизации имеет вид

JQJP) (Q p^^iystem.control _^tbinary j^binary q

Пример 1. Бинарный статический оператор рандомизации с инверсией битов имеет вид [1]

J^f j^binary p\\y^system-static _binary p _ s Ij^binaryk

^ ' '\ binary.invers 5 I I

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

где величина n задает число инвертируемых битов, а алгоритм оператора - правила выбора этих битов. В зависимости от характера алгоритма оператор является детерминированным или стохастическим □

Пример 2. Бинарный статический оператор рандомизации с перестановкой битов [1]:

pj^-j-y/j^binar^p\\^systelm.statlc_j^r binary р _ s \j^binary k ^ ' '\ binary.shift 5 у

Здесь алгоритм оператора определяют детерминированные либо стохастические правила выбора переставляемых битов □

Общее описание вещественных операторов рандомизации имеет вид

RND (Q, P)|As2Z0ntr0i = X ', X e Q. Пример 3. BGA стохастический статический вещественный рандомизирующий оператор

RND (X, P)| = X', P = (b, k, |X|)

определяет особь s в окрестности особи s по формуле

x = xt ± b (x+-, i e[1: |X|]. (2)

Здесь знаки плюс, минус выбирают с равной вероятностью; b - свободный параметр оператора (рекомендуемое значение равно 0,5); öi - величина шага мутации, для вычисления которой может быть использовано правило

8 = 2-ku e[2-k; 1], u = ^(0;1) , (3)

где k e [4 : 20] - целый свободный параметр, определяющий диапазон возможных значений öi. Таким образом, алгоритм оператора реализуют правила (2), (3)D

Пример 4. Стохастический динамический (программный) оператор Михалевича RND (X, P)Astach.prog = X', P = (b, |X|).

4 yl real .Michalewicz I I

Алгоритм оператора определяет формула

д Х+- Х)> Щ = ° г е [1: Ш].

[X,. -дЦ, Х1-Х1 ), щ = 1,

Здесь щ = и* - целое случайное число, с равной вероятностью принимающее значение 0 или 1; функцию д(1, у) определяет выражение

( (, t ? Л

S(t, y) = y

1 -щ

V J

где случайное число щ = U (0; 1); b - свободный параметр оператора, определяющий степень зависимости значений функции от числа поколений (рекомендуемое значение b = 5

5. Селекция

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

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

Можно предложить несколько классификаций методов селекции и реализующих их операторов.

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

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

На третьем уровне иерархии выделяем следующие группы операторов селекции (SeLeCtion) [4]:

- операторы 5ЬС\А^ТРаТго1, не учитывающие близость особей в том или ином из пространств;

- операторы SLC\Al~ntro1, SLCA'X^™01, SLC^-TaT01, использующие оценки близости особей в Ф-пространстве , пространстве поиска Rx и в топологическом пространстве R соответственно;

- комбинированные операторы SLC^^^nf на основе близости особей в нескольких из указанных пространств.

Операторы селекции на основе близости особей в данном пространстве могут быть построены на основе метрик близости особей в этих пространствах, например, отобранными можно считать все особи, принадлежащие некоторой окрестность Q.Rx (st) особи si [4]. Наиболее известными методами (статическими) селекции на основе близости приспо-собленностей особей (то есть в пространстве R>) являются: метод рулетки или метод пропорционального отбора (proportional sampling) и его различные модификации; метод турнирного (tournament) отбора; метод рангового (rank-based) отбора, метод отбора на основе элитизма (elitism-based) [1]. Приспособленность особей при этом может вычисляться не только на основе исходной Ф-функции ((X), но и на основе аддитивной свертки одной или нескольких вспомогательных Ф-функций. Подобный подход использует, например, алгоритм оптимизации роем светлячков (Glowworm swarm optimization, GSO) [24]. К методам селекции на основе близости особей в пространстве соседства R относится метод отбора вытеснением (crowding) [1].

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

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

множества требуемого числа особей с помощью одного из одноступенчатых операторов [1].

Пример 1. Стохастический статический оператор, основанный на методе панмиксии (panmixia) [1]:

SLC (S, X, P)|Ast0ckstat,c = (X , X , . . . , X. ), P = (IS|, |X|, n).

4 no-space.panpix 4 '1 '2 lnJ I I I I

Здесь и далее в этом разделе n - число отбираемых особей, если не говорено иное. Схему алгоритма SLCAm-PpaT^nmix передает следующая последовательность шагов:

1) ставим в соответствие каждой из особей s популяции S вероятность ^ = т1; i е [1: S ];

2) методом рулетки последовательно выбираем из популяции S векторы

Xi,Xi ,...,xt □

h '2 'п

Пример 2. Детерминированный статический оператор селективного отбора, использующий только приспособленность особей:

SLC (S, X, PpZZZc = (X. X,,X,), P = (|S |, 14 n).

Суть метода селективного отбора заключается в следующем: вероятность отбора наименее приспособленных особей с ростом номера поколения должна убывать или, что, то же самое, вероятность отбора наиболее приспособленных особей должна увеличиваться [1]. Оператор селективного отбора, таким образом, является адаптивным (программным). Схема алгоритма представлена ниже.

1) Вычисляем приспособленности p(st) = щ, i е [1: |S|] всех особей популяции (если они еще не вычислены).

_ _ , j е [1: |SP

2) Определяем величину р = р (S) = —-¡—:- - среднюю приспособленность

lSl

особей популяции.

3) Выбираем из популяции S особей s , i,- е [1: |S|], j е [1: n], приспособленность

j J II

которых удовлетворяют условию p(sf ) = pt > If)

Пример 3. Стохастический статический оператор инбридинга (inbreeding), основанный на близости генотипов особей, предполагает выбор из популяции только двух особей [1]:

SLC (S, X, PtfZZ^ = (X,, X, ); р = (|S [ X|) .

Схему алгоритма определяет следующая последовательность шагов.

1) По схеме метода панмиксии выбираем из популяции S особь sf ; i е [1: |S|].

2) Вычисляем в некоторой метрике расстояние /(s^,si) от особи s^ до всех особей популяции s ; i е [1: |S|], i ^ i .

3) Ставим в соответствие каждой из указанных особей s вероятность ^, пропорциональную величине /(st, st).

4) По схеме метода рулетки на основе вероятностей ^ выбираем из числа особей s, i е [1: |S|], i ^ i особь s □

Пример 4. Стохастический статический оператор на основе близости особей в топологическом пространстве R, реализующий метод вытеснения (crowding) [1]:

зьс (з, х, р^а::^=(и, х2). р=(з ^ и, «> •

Оператор обеспечивает разнообразие отбираемых особей путем удаления из текущей популяции в некотором смысле близких особей. Схема оператора представлена ниже.

1) Для популяции 3 = , I е[1: |3|]} формируем матрицу Я = {ди, I, ] е [1: |3|]) расстояний между ее особями, где д . = д(5г, я. ) .

2) Выбираем элемент д . матрицы Я, имеющий минимальное значение, и исключаем из дальнейшего рассмотрения с равной вероятностью особь 5 или особь 5,. .

Л

3) Аналогично выбираем из числа оставшихся в матрице элементов элемент д

2 ,J2

и оставляем особь s либо особь s .

'2 J 2

4) И так далее до тех пока не останется требуемое число особей п □

6. Скрещивание

В П-алгоритмах оператор скрещивания или репродукции (crossing, reproduction) является одним из основных поисковых операторов. Суть скрещивания заключается в создании особей-потомков из нескольких особей-родителей путем их рекомбинации (recombination). Оператор скрещивания реализует процесс, посредством которого особи, имеющие более высокую приспособленность, получают большую возможность для воспроизводства (репродукции) потомков, чем «худшие» особи [25]. В П-алгоритмах скрещивание может быть использовано для моделирование социального поведения особей (см., например, алгоритм роя части (Particle Swarm Optimization, PSO) [1].

Операторы скрещивания не инвариантны к используемому методу кодирования особей. Поэтому по отдельности рассматриваем бинарные и вещественные операторы. Большинство операторов скрещивания порождает особей-потомков в некоторой окрестности родительских особей.

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

Используем следующее общее обозначение операторов бинарного и вещественного скрещивания (CRoSsing) соответственно:

fJT^Q (jrbinary jrbinary jrbinary р\ \ л system.control _ jrtbinary jrtbinary jrtbinary

( 'i ' i2 in ' ^ binary... ~ ji ' j2 jm ,

CRS (X ,X ,..., X , P)|A^ystrcontro1 = X' , X'. ,..., X' .

v 'i ' h7 ' 'П j\ real... Л' J2 ' ' Jm

Полагаем, что вектор P включает в себя величины n, m - числа скрещиваемых (родительских) особей и особей-потомков соответственно.

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

Пример 1. Стохастический статический одноточечный (single-point или one-point) бинарный оператор скрещивания - классический бинарный оператор, использованный еще в работах Холланда (J. Holland) [1]:

z^DO/ ^rbinary ^rbinary ту\ ¿stock.static _ / ^rtbinary ~ytbinary\ r> _ Л

CRS (X1 , Xx , р) \Ab,nary.one-point = (X1 ' X 2 ) , P = (|X \) •

Схему оператора можно представить в следующем виде.

1) Генерируем натуральное случайное число i = Ui(1: |xbinary|) и выбираем i-й разряд особи в качестве точки скрещивания.

2) Копируем векторы Xbmary, Xbbna,y в векторы X[hinary, X'2mary соответственно.

3) Все биты вектора X2nary, расположенные правее точки скрещивания, передаем

вектору X binary , так что получаем

т^/binary _ / binary binary binary binary\

X1 = (XU '•••' X1,i-1 ' 2,i X2,\X| ) •

4) Аналогично, все биты вектора Xbma,y, расположенные правее точки скрещивания, передаем вектору X'binary:

rbinaty _ / binaty binaty binaty „binaty \

уfbinaty _ / hwiai'y bmaiy bmaiy .o/ikin' \ i—i

2 — V-*2,l •>••••> 2j' 1,?' >•••> 1,|X| '

Пример 2. Стохастический статический вещественный простейший (simple) оператор скрещивания на основе двух родительских особей продуцирует две особи-потомка:

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

CRS(X1, X1,р) = (X ,X2), р = (X|) •

Оператор генерирует две особи-потомка по следующему правилу.

1) Находим натуральное случайное число i = Ux(l: (X| -1)) •

2) В качестве X[, X'2 используем векторы

= (^lvs^/jj^/j+lvs^lxl)' X2 = Пример 3. Стохастический статический вещественный рандомизирующий эвристический (heuristic) оператор скрещивания на основе двух родительских особей продуцирует одну особь-потомка:

CRS (X X P) ХД*0^0^ = x' р = (IXI)

^ 2 ' I real heuristic 5 I I

Если приспособленность особи X1 выше приспособленности особи X2, то алгоритм оператора создает вектор X такой, что

х'. = и(х1 ,-х21) + и xl;, / е [l: |х|], и = U^O; 1) □

Пример 4. Стохастический статический вещественный рандомизирующий оператор скрещивания, имитирующий бинарный оператор скрещивания (Simulated Binary Crossover, SBX) на основе двух родительских особей продуцирует две особи-потомка:

CRS(X, X2, P) ^^ = (Xj , X2) , P = (b, |X|).

Правило, которое реализует алгоритм оператора имеет вид

x'l,, = 0,5 ((1 - U1)x!,, + (1 + U1)X2,, ), x2,i = 0,5 ((1 " U1)X2,, + (1 + U1)X1,, ^ где i e [ 1: |X|]; щ, щ - случайные величины, плотность вероятности которых подчинена закону

т=

1

ь+1

(2u) 1

2(1 -u)

ь+1

u > 0,5, u < 0,5.

Здесь b е [2: 5] - натуральное число (свободный параметр оператора) □

вида

7. Управление популяцией

Используем общее обозначение операторов управления (PoPuLation) популяцией

PPL (Q, P) A;ystem.contro1 = S', S e Q . Выделяем следующие группы операторов управления популяцией:

- сжатие (compression) популяции PPL.A%S*m''

control ,

..control ,

- расширение (expansion) популяции PPL -ассоциация (association) популяций PPLAsytem.contml;

- репликация (replication) популяции PPL.A^ystem.contro1 ■

replic...

- декомпозиция (splitting) популяции PPL.AfpStim'

control

- репродукции (reproduction) популяции PPLA^m"

.control

.control

Операторы сжатия популяции PPL. АОртС предназначены для продуцирования копии части заданной популяции Общий формат операторов данной группы имеет вид

control

= S'; |S| > М = n,

PPL (Q, P)\. compr...

где алгоритм оператора определяет правило отбора n особей популяции S для помещения их в популяцию S' и является, по сути, оператором селекции. Таким образом, операторы

DDT A system.control т~»

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

Пример 1. Детерминированный статический оператор сжатия популяции PPLA^mSZbSt реализует отбор из популяции S лучших особей числом n для включения их в популяцию S':

PPL (n, S, P) | Adm^L = S'; S'I = n < SI, P = (IS) •

Алгоритм оператора имеет следующий вид.

1) Вычисляем приспособленности р = р(Xi), i g [1: |S|] всех особей популяции S.

2) Сортируем особей популяции S в порядке возрастания значений величин р (напомним, что, полагается, мы заинтересованы в минимизации Ф-функции).

3) Включаем в популяцию S' первые n особей полученного списка^

DDT ¿system.control

Операторы расширения популяции PPL.AХрап... увеличивают размер популяции за счет отбора, возможно, с повторами ее особей. Общий формат оператора расширения:

PPL(Q, P)|Asep:;contml = S'; S 1 = IS + n, {n,S} g Q •

Здесь, аналогично оператором предыдущей группы, алгоритм оператора реализует

~ DDT Asystem. control

некоторый оператор селекции, так что операторы PPL.A^OT также можно интерпретировать как макро-операторы.

Пример 2. Детерминированный статический оператор PPL.A^nb'C расширяет популяцию S за счет ее лучших особей числом n:

PPL (n, S, P) \AXp^:st = S1; S1 I = SI+ n, P = (|S) • Схема алгоритма оператора имеет следующий вид.

1) Вычисляем приспособленности р = р(Xi), i g [1: |S|] всех особей популяции S.

2) Сортируем особей популяции S в порядке возрастания значений величин р (напомним, что, полагается, мы заинтересованы в минимизации Ф-функции).

3) Добавляем в популяцию S' первые n особей полученного списка^ Операторы PPL.Asytem.contro1 ассоциации популяций предназначены для объединения

популяций S J, ,..., S п в одну популяцию S заданной мощности т. Общий формат операторов данной группы имеет следующий вид

PPL(Q, P) \AZ:::;contro1 = S , |S| = m, {n, S2,..., S„}g Q •

Пример 3. Детерминированный статический оператор ординарной (ordinary) ассоциации имеет вид

PPL(n, S\, S2,..., Sn, P) ASoSaZ.n = S = S u S2 u... u Бя, SI = m, P = (S).

где |S = E |Sl = m; алгоритм оператора определяет выражение

S1 = S1,1,..., = S1,| S |, 1+1 = s2,1,..., l + l S,| = S2,| SJ,..., S|S| = sn,| Si 0

k|

k=1

Операторы PPL.ASyttem'...contro репликации популяции создают копию S исходной популяции S, возможно, с той или иной перенумерацией ее особей. Общий формат операторов данной группы:

PPL(Q, P)\ASPjmontro1 = S; SI = SI.

Пример 4. Детерминированный статический оператор ординарной репликации

isystem.contrt replic.ordin

system .control

PPL.A'din продуцирует копию S исходной популяции S , сохраняя нумерацию осо

бей:

PPL (s, p) AüOdn = S; Si = IS, P = (IS) •

Алгоритм оператора, очевидно, определяет выражение

sM = s, i g [1: S ] □

Пример 5. Стохастический статический оператор репликации с тасованием (shuffle) производит случайное изменение номеров особей популяции S и помещает «перетасованных» особей в популяцию S . Формат оператора:

PPL (S, P) AiChf = Si; Si = S, P = (IS) • Оператор используется, например, в тасующем алгоритме прыгающих лягушек

(shuffledfrog leaping algorithm) [ 1 ] □

DDT Asystem. control г

Операторы декомпозиции PPL.Asp¡it разбивают популяцию на заданное число n

подпопуляций или объединений особей. В первом случае общий формат операторов данной группы имеет вид

PPL(Q, P) lAPS!rontro1 = {Si, S2,..., Sn} ; {n, S} g Q, P = (|Sj, |S2|,..., |Sn|, |S|),

n

где Si, |S2|,..., |Sj - требуемые размеры субпопуляций; ^|S¿| = |S| . Алгоритм оператора

i=1

реализует то или иное правило отбора особей популяции S в субпопуляции.

Пример 6. Стохастический статический оператор декомпозиции производит случайное распределение особей популяции S по субпопуляциям без повторов. Формат оператора' PPL Asystem.control

п

PPL (n, S, P) \Apc^c = {Si, S2,...,Sn); P = (|Si, |Жг|,...,|Sn|, |S|), S,| = |S| □

i=1

DDT Asystem.control г

Оператор репродукции популяции PPL.Are,prod... вызывает уничтожение наиболее

«слабых» особей и клонирование наиболее «сильных», сохраняя размер исходной популяции. Общий формат оператора:

ppl(q, p)| apez-t™' =s1, p=(n, |s| ), si=si , n < s|, n g Q .

Правила отбора «слабых» и «сильных» особей определяет алгоритм оператора. Один из вариантов оператора репродукции использует, например, алгоритм бактериальной оптимизации (BacterialForaging Optimization, BFO) [1].

8. Локальный поиск

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

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

Общие подходы к гибридизации П-алгоритмов рассмотрены, например, в [1]. Гибридизацию П-алгоритма с алгоритмом или алгоритмами локального поиска выполняют по схеме гибридизации вложением. В соответствии с общими принципами этого типа гибридизации выделяем

- низкоуровневое (low-level) вложение,

- высокоуровневое (high-level) вложение одного алгоритма (one-meme) локального

поиска,

- высокоуровневая мультимемеевая (multi-memes) адаптивная гибридизация.

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

а) Определить правило выбора окрестности, в которой должен производиться локальный поиск. Например, в алгоритме летучих мышей (Bat-Inspired, BI) локальный поиск

производится с заданной вероятностью ^ в окрестности лучшего решение X*, найденного особью s за все предшествующие итерации [26].

б) Фиксировать правила использования результаты поиска. В том же алгоритме BI найденное в результате локального поиска решение принимаем в качестве нового текущего положения особи s ; i е [1: |S|].

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

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

Используем следующее общее обозначение гибридизируемых операторов локального (LOCal) поиска:

LOC(Q, P)| А= ~ , i e [1: |S|], s, e Q, где hybrid e {meme, memes} .

8.1. Одно-мемеевые алгоритмы

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

Пример 1. Детерминированный статический (не адаптивный) одно-мемеевый алгоритм Нелдера-Мида (нулевого порядка):

LOC(s, P)|¿^«т-мш = ~, i e [1: SI], P = a ¡, у, XI).

Здесь a, 3, у - свободные параметры алгоритма [1]Q

Алгоритм LOC.AmmaNeider-Mead используется, например, в П-алгоритме CIAC [20].

Пример 2. Стохастический статический (не адаптивный) одно-мемеевый алгоритм, используемый в алгоритме летучих мышей (Bat-InspiredAlgorithm, BIA) [27].

-rs^s-t, .stoch.static ^ I. ii

LOC(Si, P)lAmenie,A = ~ , i" e [1: SI], P = (a, IX) .

Здесь a - текущее среднее значение громкостей ai всех особей (мышей) популяции; алгоритм оператора определяет следующая последовательность шагов.

1) Случайным образом варьируем текущее положение мыши si в соответствии с формулой

Xj = Xt + a U|x| (-1; 1).

2) Вычисляем значение Ф-функции в новой точке (р(Xj) = ср\.

3) Если (р\ > щ , то завершаем процедуру локального поиска, в противном случае фиксированное число раз возвращаемся к шагу 1 □

8.2. Мультимемеевые алгоритмы

В современных П-алгоритмах широко используют мультимемеевые адаптивные алгоритмы. Для идентификации такого алгоритма необходимо определить а) используемый набор (рой) мемов (среди которых могут быть как детерминированные, так и стохастические), б) стратегию использования того или иного мема из роя доступных мемов, то есть, гиперэвристику (hyperheuristic) алгоритма; характеристики мемов и/или текущего исследуемого фрагмента области решения, на основе которых производится их выбор. Наиболее известны три следующие категории гиперэвристик, используемых в мультимемеевых

алгоритмах - случайные (random), жадные (greedy), гиперэвристики c функцией выбора (choice-Junction hyperheuristics) [1].

Случайные гиперэвристики. В этой категории гиперэвристик самой простой является стратегия простого случайного выбора (simple random choice), когда в каждой точке принятия решения мем выбирают случайным образом из роя мемов M и вероятность выбора каждого из мемов не меняется в процессе итераций. Данная стратегия, по сути, является основой для всех остальных стратегий.

Другой известной стратегией данной категории гиперэвристик является стратегия случайного спуска (random descent choice). Здесь на первом шаге мем выбирают из роя M случайным образом. Выбранный мем используют до тех пор, пока он не перестанет обеспечивать локальные уточнения решений. Затем случайным образом выбирается другой мем и т.д.

Вариантом последней стратегии является стратегия спуска со случайной перестановкой (random permutation descent choice). В этом варианте вначале фиксируется случайная

перестановка M мемов m, j е [1 : |M|]. После того, как используемый мем m. исчерпает себя, циклически используют следующий мем m .+1 в перестановке M .

Жадные гиперэвристики предполагают, что сначала все мемы m, j е [1 : M|] применяются к каждому из агентов популяции S', а затем выбирается мем, показавший наилучший результат. Недостатком данной эвристики являются высокие вычислительные затраты.

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

Простейшей является стратегия прямого выбора (straight choice), предполагающая, что на каждом шаге принятия решения выбирается мем m , который обеспечивает наилучшее значение функции выбора <(m', m ) :

<(mm) = max <(m , mk ).

je[1:|M|], j*k J

В стратегии ранжированного выбора (ranked choice) прежде мемы m, j е [1 : M|] ранжируют согласно их текущим значениям функции выбора <(m}, m ). Затем проводят

эксперименты по локальному уточнению текущих решений с помощью нескольких лучших мемов. В качестве мема m' используют мем, обеспечивший наибольшее относительное уменьшение значения фитнесс-функции.

Стратегия рулеточного выбора (roulette choice) основана на выборе мема m' = m с вероятностью

{l - «m»m ) , I s[1: |M|].

S ' )

j-1

В стратегии декомпозиционного выбора (decomposition choice) в первую очередь формируют набор мемов M — (m, m^ , mh, mu }, которые обеспечивают максимальные значения функций (fr^m^, m ), ф2 (mj, mk ), ф3 (mj, m ), ф(m ., m ) соответственно; jj, j2, j3, j4 s [1 : Ml ] » j'i, j*2, h, j a ^ k . Затем проводят эксперименты по локальному уточнению текущих решений с помощью каждого из мемов роя M . Аналогично стратегии ранжированного выбора, в качестве мема m' используют лучший из испытанных мемов.

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

Известна также стратегия выбора с запретами (tabu-search choice), в которой на

основе функции выбора , Шк ) сначала рой мемов M сужают до роя M путем формирования в каждой точке принятия решения списка запрещенных мемов (tabu-list). Затем

из роя M выбирают мем m ' по схеме стратегии декомпозиционного выбора.

Гиперэвристики могут строиться также на основе идеи декомпозиции на подзадачи (sub-problem decomposition). Эта идея предполагает 1) динамическое разбиение области решения на подобласти, а самой задачи оптимизации - на соответствующие подзадачи; 2) выбор наиболее подходящего мема для каждой из этих подзадач. При выборе мема такие гиперэвристики использует информацию, накопленную в процессе решения задачи, об эффективности каждого из мемов роя M в соответствующей подобласти поиска. В результате для каждой из подобластей в пределе применяется свой мем, что, как правило, значительно повышает эффективность поиска.

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

Таким образом, используем общее обозначение мультимемеевого оператора локального поиска вида

LOCQ P)\AsystemTP: — ~ , i s[1: S], S s Q,

memes .h-heur... 1 L I lJ 1 ^

где h - heur s (random, greedy; choice - funct} .

Отметим следующее обстоятельство. Наряду с высокоуровневой мультимемеевой адаптивной гибридизацией известна мультимемеевая само-адаптивная гибридизация. Са-мо-адаптирующиеся мультимемеевые алгоритмы представляют собой меметическую модификацию генетического алгоритма. Каждую особь si, i s [1 : |S|] популяции S в этом

случае кодируют мультихромосомой X = (X , Щ ), h g [1: Ml], первая часть которой

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

Заключение

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

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

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

Работа поддержана РФФИ (проект 16-07-00287).

Список литературы

1. Карпенко А.П. Современные алгоритмы поисковой оптимизации: учебное пособие. М.: Изд-во МГТУ им. Н.Э. Баумана, 2014. 446 с.

2. Onwubolu G.C., Babu B.V. New optimization techniques in engineering. B.; N.Y.: Springer, 2004. 712 p.

3. Bo Xing, Wen-Jing Gao. Innovative computational intelligence: A rough guide to 134 clever algorithms. Cham: Springer, 2014. 451 p.

4. Карпенко А.П. Основные сущности популяционных алгоритмов глобальной оптимизации. Опыт систематизации // Интернет-журнал «Науковедение». 2017. Т. 9. № 6.

Режим доступа: https://naukovedenie.ru/PDF/46TVN617.pdf (дата обращения 05.01.2018).

5. Evolutionary computation 1. Basic algorithms and operators / Ed. by T. Back, D.B. Fogel and Z. Michalewicz. Bristol; Phil.: Inst. of Physics Publ., 2000. 339 p.

6. Evolutionary computation 2. Advanced algorithms and operators / Ed. by T. Back, D.B. Fogel and Z. Michalewicz. Bristol; Phil.: Inst. of Physics Publ., 2000. 270 p.

7. Luke S. Essentials of metaheuristics. Режим доступа:

http://cs. gmu. edu/~sean/book/metaheuristics/ (дата обращения 06.01.2018).

8. Brownlee J. Clever algorithms: Nature-inspired programming recipes. Режим доступа: http://www.cleveralgorithms.com/nature-inspired/index.html (дата обращения 06.01.2018).

9. Скобцов Ю.А., Сперанский Д.В. Эволюционные вычисления: учеб. пособие. М.: Нац. открытый ун-т ИНТУИТ, 2015. 326 с.

10. De Jong K.A. Evolutionary сomputation: a unified approach. Camb., Mass.: MIT Press, 2006. 256 p.

11. Fister I.Jr., Yang X.S., Fister D., Fister I. Cuckoo search: A brief literature review. Режим доступа: https://arxiv.org/abs/1408.5343 (дата обращения 07.01.2018).

12. Levy distribution. Режим доступа: https://en.wikipedia.org/wiki/Levy_distribution (дата обращения 21.01.2018).

13. Соболь И.М. Равномерно распределенные последовательности с дополнительным свойством равномерности // Журнал вычислительной математики и математической физики. 1976. Т. 16. № 5. С. 1332-1337.

14. Мун Ф. Хаотические колебания: пер. с англ. М.: Мир, 1990. 311 с. [Moon F.C. Chaotic vibrations. N.Y.: Wiley, 1987. 309 p.].

15. Jianxia Liu, Nan Li, Keming Xie. Application of chaos mind evolutionary algorithm in antenna arrays synthesis // J. of Computers. 2010. Vol. 5. No. 5. Pp. 717-724.

DOI: 10.4304/jcp.5.5.717-724

16. Xiao-Min Hu, Jun Zhang, Yun Li. Orthogonal methods based ant colony search for solving continuous optimization problems // J. of Computer Science and Technology. 2008. Vol. 23. No. 1. Pp. 2-18. DOI: 10.1007/s11390-008-9111-5

17. Сидняев Н.И. Теория планирования эксперимента и анализ статистических данных: учеб. пособие. М.: Юрайт, 2011. 399 с.

18. Koziel S., Ciaurri D.E., Leifsson L. Surrogate-based methods // Computational optimization, methods and algorithms. B.; Hdbl.: Springer, 2011. Pp. 33-59. DOI: 10.1007/978-3642-20859-1 3

19. Filho C.J.A.B., De Lima Neto F.B., Lins A.J.C.C., Nascimento A.I.S., Lima M P. Fish school search // Nature-inspired algorithms for optimization. B.: Springer, 2009.

Pp. 261- 277. DOI: 10.1007/978-3-642-00267-0 9

20. Dreo J., Siarry P. Continuous interacting ant colony algorithm based on dense heterarchy // Future Generation Computer Systems. 2004. Vol. 20. No. 5. Pp. 841-856.

DOI: 10.1016/j .future.2003.07.015

21. Karci A. Theory of saplings growing up algorithm // Adaptive and natural computing algorithms: 8th Intern. conf. on adaptive and natural computing algorithms: ICANNA 2007 (Warszaw, Poland, April 11-14, 2007): Proc. Pt. I. B.; Hdbl.: Springer, 2007. Pp. 450-460. DOI: 10.1007/978-3-540-71618-1 50

22. Dreo J., Siarry P. Hybrid continuous interacting ant colony aimed at enhanced global optimization // Algorithmic Operations Research. 2007. Vol. 2. No. 1. Pp. 52-64. Режим доступа: http://journals.hil.unb.ca/index.php/AOR (дата обращения 13.03.2018).

23. Jing Jie, Jianchao Zeng, Youzhi Ren. Improved mind evolutionary computation for optimizations // 5th world congress on intelligent control and automation: WCICA 2004 (Hang-zhou, China, June 15-19, 2004): Proc. Vol. 3. N.Y.: IEEE, 2004. Pp. 2200-2204.

DOI: 10.1109/WCICA.2004.1341978

24. Krishnanand K.N., Ghose D. Glowworm swarm optimization for simultaneous capture of multiple local optima of multimodal functions // Swarm Intelligence. 2009. Vol. 3. No. 2. Pp. 87-124. DOI: 10.1007/s11721-008-0021-5

25. Биоинспирированные методы в оптимизации / Л.А. Гладков и др. М.: Физматлит, 2009. 380 с.

26. Pei-Wei Tsai, Jeng-Shyang Pan, Bin-Yih Liao, Ming-Jer Tsai, Vaci Istanda. Bat algorithm inspired algorithm for solving numerical optimization problems // Applied Mechanics and Materials. 2012. Vol. 148 & 149. Pp. 134-137.

DOI: 10.4028/www.scientific.net/AMM.148-149.134

27. Xin-She Yang. A new metaheuristic bat-inspired algorithm // Nature inspired cooperative strategies for optimization: NISCO 2010. B.; Hdbl.: Springer, 2010. Pp. 65-74.

DOI: 10.1007/978-3-642-12538-6 6

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

Mathematics & Mathematical Modelling

Electronic journal http://mathmelpub.ru

Mathematics and Mathematical Modeling, 2018, no. 01, pp. 59-89.

DOI: 10.24108/mathm.0118.0000103

Received: 27.01.2018

© NP "NEICON"

Evolutionary Operators for Global Optimization Population-Based Algorithms. Experience of

Systematization

i *

A.P. Karpenko '

apkarp enko •fflmail.ru

1Bauman Moscow State Technical University, Moscow, Russia

Keywords: global optimization, population-based algorithm, meta-heuristic algorithm

There are a large number of examples of using the population-based algorithms (P-algorithms) to have a successful solution for complex practical tasks of global optimization, for instance, problems of computer-aided design, synthesis of complex chemical compounds, optimal control of dynamic systems, etc. P-algorithms are also successfully used in multi-criteria optimization, when a preliminary construction of some Pareto set (front) approximation is required. P-algorithms are numerous and very diverse - over 100 such algorithms are known, and new algorithms continue to appear. In this connection, the problem of systematizing expressive means of P-algorithms is of relevance. We consider one of the components of this problem that is the problem of classification of the search operators of P-algorithms.

The paper formulates a global optimization problem and a general scheme of the P-algorithms to solve it. This multilevel classification of the main search operators of P-algorithms at the highest level of the hierarchy identifies the following operators: initialization of the population and the end of the search; coding of individuals; randomization; selection; crossing; population management; local search.

These operators at the next hierarchical level are divided into deterministic and stochastic ones. Further, we distinguish static, dynamic program and dynamic adaptive operators. The following classification levels are "operator dependent", that is, generally speaking, different for each operator. We reveal the essence of these operators and give the use cases in various P-algorithms.

Although the paper uses the names of operators such as selection, crossing, our orientation is not only to evolutionary algorithms. A description scheme of operators presented in this paper can be used to determine any population-based algorithms.

The work development expects extending a set of operators presented, and, above all, using this set and a set of basic essences of population algorithms, the formalization of which was earlier proposed by the author, systematizing the most known algorithms of this class.

References

1. Karpenko A.P. Sovremennye algoritmy poiskovoj optimizatsii [Modern algorithms of search engine optimization]: a textbook. Moscow: Bauman MSTU, 2014. 446 p. (in Russian).

2. Onwubolu G.C., Babu B.V. New optimization techniques in engineering. B.; N.Y.: Springer, 2004. 712 p.

3. Bo Xing, Wen-Jing Gao. Innovative computational intelligence: A rough guide to 134 clever algorithms. Cham: Springer, 2014. 451 p.

4. Karpenko A.P. The main essentials of population-based algorithms of global optimization. Systematization experience. Internet-zhurnal "Naukovedenie" [Internet J. Naukovedenie], 2017, vol. 9, no. 6. Available at: https://naukovedenie.ru/PDF/46TVN617.pdf, accessed 05.01.2018 (in Russian).

5. Evolutionary computation 1. Basic algorithms and operators / Ed. by T. Back, D.B. Fogel and Z. Michalewicz. Bristol; Phil.: Inst. of Physics Publ., 2000. 339 p.

6. Evolutionary computation 2. Advanced algorithms and operators / Ed. by T. Back, D.B. Fogel and Z. Michalewicz. Bristol; Phil.: Inst. of Physics Publ., 2000. 270 p.

7. Luke S. Essentials of metaheuristics. Available at: http://cs.gmu.edu/~sean/book/metaheuristics/, accessed 06.01.2018.

8. Brownlee J. Clever algorithms: Nature-inspired programming recipes. Available at: http://www.cleveralgorithms.com/nature-inspired/index.html, accessed 06.01.2018.

9. Skobtsov Yu.A., Speranskij D.V. Evolutsionnye vychisleniia [Evolutionary computation]: a textbook. Moscow, 2015. 326 p. (in Russian).

10. De Jong K.A. Evolutionary computation: a unified approach. Camb., Mass.: MIT Press, 2006. 256 p.

11. Fister I.Jr., Yang X.S., Fister D., Fister I. Cuckoo search: A brief literature review. Available at: https://arxiv.org/abs/1408.5343, accessed 07.01.2018.

12. Levy distribution. Available at: https://en.wikipedia.org/wiki/Levy_distribution, accessed 21.01.2018.

13. Sobol I.M. Uniformly distributed sequences with an additional uniform property. USSR Computational Mathematics and Mathematical Physics, 1976, vol. 16, no. 5, pp. 236-242. DOI: 10.1016/0041 -5553(76)90154-3

14. Moon F.C. Chaotic vibrations. N.Y.: Wiley, 1987. 309 p. (Russ. ed.: Moon F.C. Khaoticheskie kolebaniia. Moscow: Mir Publ., 1990. 311 p.).

15. Jianxia Liu, Nan Li, Keming Xie. Application of chaos mind evolutionary algorithm in antenna arrays synthesis. J. of Computers, 2010, vol. 5, no. 5, pp. 717-724.

DOI: 10.4304/jcp.5.5.717-724

16. Xiao-Min Hu, Jun Zhang, Yun Li. Orthogonal methods based ant colony search for solving continuous optimization problems. J. of Computer Science and Technology, 2008, vol. 23, no. 1, pp. 2-18. DOI: 10.1007/s11390-008-9111-5

17. Sidniaev N.I. Teoriia planirovaniia eksperimenta i analiz statisticheskikh dannykh [Theory of experiment planning and statistical data analysis]: a textbook. Moscow: Yurajt Publ., 2011. 399 p. (in Russian).

18. Koziel S., Ciaurri D.E., Leifsson L. Surrogate-based methods. Computational optimization, methods and algorithms. B.; Hdbl.: Springer, 2011. Pp. 33-59. DOI: 10.1007/978-3-64220859-1 3

19. Filho C.J.A.B., De Lima Neto F.B., Lins A.J.C.C., Nascimento A.I.S., Lima M.P. Fish school search. Nature-inspired algorithms for optimization. B.: Springer, 2009.

Pp. 261- 277. DOI: 10.1007/978-3-642-00267-0 9

20. Dreo J., Siarry P. Continuous interacting ant colony algorithm based on dense heterarchy. Future Generation Computer Systems, 2004, vol. 20, no. 5, pp. 841-856.

DOI: 10.1016/j .future.2003.07.015

21. Karci A. Theory of saplings growing up algorithm. Adaptive and natural computing algorithms: 8th Intern. conf. on adaptive and natural computing algorithms: ICANNA 2007 (Warszaw, Poland, April 11-14, 2007): Proc. Pt. I. B.; Hdbl.: Springer, 2007. Pp. 450-460. DOI: 10.1007/978-3-540-71618-1 50

22. Dreo J., Siarry P. Hybrid continuous interacting ant colony aimed at enhanced global optimization. Algorithmic Operations Research, 2007, vol. 2, no. 1, pp. 52-64. Available at: http://journals.hil.unb.ca/index.php/AOR, accessed 13.03.2018.

23. Jing Jie, Jianchao Zeng, Youzhi Ren. Improved mind evolutionary computation for optimizations. 5th world congress on intelligent control and automation: WCICA 2004 (Hangzhou, China, June 15-19, 2004): Proc. Vol. 3. N.Y.: IEEE, 2004. Pp. 2200-2204.

DOI: 10.1109/WCICA.2004.1341978

24. Krishnanand K.N., Ghose D. Glowworm swarm optimization for simultaneous capture of multiple local optima of multimodal functions. Swarm Intelligence, 2009, vol. 3, no.2, pp. 87-124. DOI: 10.1007/s11721-008-0021-5

25. Bioinspirirovannye metody v optimizatsii [Bioinspired methods in optimization] / L.A. Gladkov a.o. Moscow: Fizmatlit Publ., 2009. 380 p. (in Russian).

26. Pei-Wei Tsai, Jeng-Shyang Pan, Bin-Yih Liao, Ming-Jer Tsai, Vaci Istanda. Bat algorithm inspired algorithm for solving numerical optimization problems. Applied Mechanics and Materials, 2012, vol. 148 & 149, pp. 134-137. DOI: 10.4028/www.scientific.net/AMM.148-149.134

27. Xin-She Yang. A new metaheuristic bat-inspired algorithm. Nature inspired cooperative strategies for optimization: NISCO 2010. B.; Hdbl.: Springer, 2010. Pp. 65-74.

DOI: 10.1007/978-3-642-12538-6 6

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