Московский государственный университет путей сообщения
Опубликован: 10.10.2014 | Доступ: свободный | Студентов: 869 / 193 | Длительность: 22:10:00
Лекция 11:

Роевые и муравьиные алгоритмы

Аннотация: В последнее десятилетие при решении задач оптимизации все шире используются новые методы, которые фактически примыкают к эволюционным вычислениям по своей идеологии и основаны на моделировании социального поведения живых организмов. К ним относятся, прежде всего, роевые алгоритмы (PSO–particle swarm optimization), которые, в основном, используются в численной оптимизации, и муравьиные алгоритмы (ACO – ant colony optimization), применяемые, как правило, при решении задач комбинаторной оптимизации (прежде всего на графах). Далее кратко рассмотрим основные концепции и функциональные операции для этих двух новых направлений.

11. Роевые алгоритмы

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

Роевые алгоритмы (РА), также как и эволюционные, используют популяцию особей – потенциальных решений проблемы и метод стохастической оптимизации, который навеян (моделирует) социальным поведением птиц или рыб в стае или насекомых в рое (рис.11.1)[1]. Аналогично эволюционным алгоритмам здесь начальная популяция потенциальных решений также генерируется случайным образом и далее ищется (суб)оптимальное решение проблемы в процессе выполнения РА. Первоначально в РА предпринята попытка моделировать поведение стаи птиц, которая обладает способностью порой внезапно и синхронно перегруппироваться и изменять направление полета при выполнении некоторой задачи. В отличие от ГА здесь не используются генетические операторы, в РА особи (называемые частицами- particle) летают в процессе поиска в гиперпространстве поиска решений и учитывают успехи своих соседей. Если одна частица видит хороший (перспективный) путь (в поисках пищи или защиты от хищников), то остальные частицы способны быстро последовать за ней, даже если они находились в другом конце роя. С другой стороны, в рое, для сохранения достаточно большого пространства поиска, должны быть частицы с долей "сумасшествия" или случайности в своем поведении (движении).

Стаи птиц, рыб и рой насекомых.

Рис. 11.1. Стаи птиц, рыб и рой насекомых.

11.1. Основной роевой алгоритм

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

Каждая i-я частица характеризуется в момент времени t своей позицией x_i(t) в гиперпространстве и скоростью движения v_i(t). Позиция частицы изменяется в соответствии со следующей формулой:

x_i(t+1)=x_i(t)+v_i(t+1),\mbox{где }x_i(0)\sim(x_{\min},x_{\max}) ( 11.1)

Вектор скорости v_i(t+1) управляет процессом поиска решения и его компоненты определяются с учетом когнитивной и социальной составляющей следующим образом:

v_{ij}(t+1)=v_{ij}(t)+c_1r_{1j}(t)[y_{ij}(t)-x_{ij}(t)]+c_2r_{2j}(t)[\hat y_{j}(t)-x_{ij}(t)] ( 11.2)

Здесь v_{ij)(t)- j-ая компонента скорости (j=1,\dots,n_x) i-ой частицы в момент времени t, x_{ij}(t)- j-я координата позиции i-й частицы, c_1 и c_2 – положительные коэффициенты ускорения (часто полагаемые 2), регулирующие вклад когнитивной и социальной компонент, r_{1j}(t),r_{2j}(t)\sim(0,1)- случайные числа из диапазона [0,1], которые генерируются в соответствии с нормальным распределением и вносят элемент случайности в процесс поиска. Кроме этого y_{ij}(t)- персональная лучшая позиция по j-й координате i-ой частицы, а \hat y_{j}(t)–лучшая глобальная позиция роя, где целевая функция имеет экстремальное значение.

При решении задач минимизации персональная лучшая позиция в следующий момент времени (t+1) определяется следующим образом:

y_i(t+1)=\begin{cases}y_i(t)if\ f(x_i(t+1))\ge f(y_i(t))\\x_i(t+1)if\ f(x_i(t+1))< f(y_i(t))\end{cases} ( 11.3)

где f:R^{n_{\infty}}\to R- фитнесс-функция. Как и в эволюционных алгоритмах фитнесс-функция измеряет близость текущего решения к оптимуму.

Глобальная лучшая позиция \hat y_j(t) в момент t определяется в соответствии с

\hat y_j(t)\in\{y_0(t),\dots,y_{n_s}(t)\}|f(\hat y_j(t))=\min\{f(y_0(t)),\dots,f(y_{n_s}(t))\}, ( 11.4)

где n_s – общее число частиц в рое.

В процессе поиска решения описанные действия выполняются для каждой частицы роя. Укрупненный основной роевой алгоритм представлен ниже.


Рассмотрим влияние различных составляющих при вычислении скорости частицы в соответствии с (11.2). Первое слагаемое в (11.2) v_i(t) сохраняет предыдущее направление скорости i-й частицы и может рассматриваться как момент, который препятствует резкому изменению направления скорости и выступает в роли инерционной компоненты. Когнитивная компонента c_1r_1(y_i-x_i) определяет характеристики частицы относительно ее предистории, которая хранит лучшую позицию данной частицы. Эффект этого слагаемого в том, что оно пытается вернуть частицу назад в лучшую достигнутую позицию. Третье слагаемое c_2r_2(\hat y-x_i) определяет социальную компоненту, которая характеризует частицу относительно своих соседей. Эффект социальной компоненты в том, что она пытается направить каждую частицу в сторону достигнутого роем (или его некоторым ближайшим окружением) глобального оптимума.

Графически это наглядно иллюстрируется для двумерного случая, как это показано на рис.11.2.

Геометрическая иллюстрация изменения позиции и скорости частицы.

Рис. 11.2. Геометрическая иллюстрация изменения позиции и скорости частицы.

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