В эволюционных вычислениях дифференциальная эволюция ( DE ) — это метод, который оптимизирует проблему, итеративно пытаясь улучшить возможное решение с учетом заданной меры качества. Такие методы широко известны как метаэвристики , поскольку они делают мало или вообще не делают предположений об оптимизированной задаче и могут искать в очень больших пространствах возможных решений. Однако метаэвристика, такая как DE, не гарантирует, что оптимальное решение когда-либо будет найдено.
DE используется для многомерных вещественных функций , но не использует градиент оптимизируемой задачи, что означает, что DE не требует, чтобы задача оптимизации была дифференцируемой , как того требуют классические методы оптимизации, такие как градиентный спуск и методы квазиньютона. . Таким образом, DE также можно использовать для решения задач оптимизации, которые даже не являются непрерывными, зашумлены, изменяются со временем и т. д. [1]
DE оптимизирует проблему, поддерживая совокупность решений-кандидатов и создавая новые решения-кандидаты, комбинируя существующие в соответствии с простыми формулами, а затем сохраняя то решение-кандидат, которое имеет лучший результат или пригодность для решения рассматриваемой задачи оптимизации. Таким образом, задача оптимизации рассматривается как черный ящик, который просто обеспечивает меру качества данного возможного решения, и поэтому градиент не нужен.
Сторн и Прайс представили DE в 1990-х годах. [2] [3] Были опубликованы книги по теоретическим и практическим аспектам использования DE в параллельных вычислениях , многокритериальной оптимизации , ограниченной оптимизации , а также книги содержат обзоры областей применения. [4] [5] [6] [7] Обзоры многогранных исследовательских аспектов DE можно найти в журнальных статьях. [8] [9]
Алгоритм
Базовый вариант алгоритма DE работает за счет наличия совокупности возможных решений (называемых агентами). Эти агенты перемещаются в пространстве поиска с помощью простых математических формул для объединения позиций существующих агентов из популяции. Если новая позиция агента является улучшением, то она принимается и образует часть популяции, в противном случае новая позиция просто отбрасывается. Процесс повторяется, и при этом есть надежда, но не гарантия, что в конечном итоге будет найдено удовлетворительное решение.
Формально, пусть это функция приспособленности, которую необходимо минимизировать (обратите внимание, что максимизацию можно выполнить, рассматривая вместо этого функцию). Функция принимает в качестве аргумента вариант решения в виде вектора действительных чисел . На выходе он выдает действительное число, которое указывает на пригодность данного кандидата решения. Градиент неизвестен . _ Цель состоит в том, чтобы найти решение для всех в пространстве поиска, что означает глобальный минимум.
Обозначим кандидата решения (агента) в популяции. Базовый алгоритм DE можно описать следующим образом:
Выберите параметры , , и .
— размер популяции, т.е. количество агентов-кандидатов или «родителей»; типичная настройка — 10 .
Параметр называется вероятностью пересечения , а параметр называется дифференциальным весом . Типичные настройки: и .
Эти варианты могут сильно повлиять на производительность оптимизации; см. ниже.
Инициализируйте всех агентов со случайными позициями в пространстве поиска.
Пока не будет выполнен критерий завершения (например, количество выполненных итераций или достижение адекватной пригодности), повторяйте следующее:
Для каждого агента в популяции выполните:
Выберите трех агентов и случайным образом из популяции, они должны отличаться друг от друга, а также от агента . ( называется «базовым» вектором.)
Выберите случайный индекс , в котором указана размерность оптимизируемой задачи.
Вычислите потенциально новую позицию агента следующим образом:
Для каждого выберите равномерно распределенное случайное число.
Если или то установите иначе установите . (Индексная позиция наверняка заменяется.)
Если затем заменить агент в популяции улучшенным или равным кандидатом решения .
Выберите агента из популяции, который имеет наилучшую пригодность, и верните его как наилучшее найденное решение-кандидат.
Выбор параметров
Выбор параметров DE может оказать большое влияние на производительность оптимизации. Поэтому выбор параметров DE, обеспечивающих хорошие характеристики, стал предметом многочисленных исследований. Практические правила выбора параметров были разработаны Storn et al. [3] [4] и Лю и Лампинен. [10] Математический анализ сходимости в отношении выбора параметров был выполнен Захари. [11]
Обработка ограничений
Дифференциальная эволюция также может использоваться для оптимизации с ограничениями. Распространенный метод включает в себя изменение целевой функции для включения штрафа за любое нарушение ограничений, выраженного как: . Здесь представляет собой либо нарушение ограничения (штраф L1), либо квадрат нарушения ограничения (штраф L2).
Однако этот метод имеет определенные недостатки. Одной из существенных проблем является правильный выбор штрафного коэффициента . Если установлено слишком низкое значение, ограничения могут быть неэффективны. И наоборот, если оно слишком велико, это может значительно замедлить или даже остановить процесс конвергенции. Несмотря на эти проблемы, этот подход по-прежнему широко используется из-за его простоты и того, что он не требует изменения самого алгоритма дифференциальной эволюции.
Существуют альтернативные стратегии, такие как проецирование на допустимое множество или уменьшение размерности, которые можно использовать для случаев с прямоугольными или линейно ограниченными ограничениями. Однако в контексте общих нелинейных ограничений наиболее надежные методы обычно включают штрафные функции.
Варианты
Варианты алгоритма DE постоянно разрабатываются с целью повышения эффективности оптимизации. В приведенном выше базовом алгоритме возможно множество различных схем выполнения скрещивания и мутации агентов, см., например, [3]
^ Рокка, П.; Оливери, Дж.; Масса, А. (2011). «Дифференциальная эволюция применительно к электромагнетизму». Журнал IEEE «Антенны и распространение» . 53 (1): 38–49. дои :10.1109/MAP.2011.5773566. S2CID 27555808.
^ Сторн, Р.; Прайс, К. (1997). «Дифференциальная эволюция - простая и эффективная эвристика для глобальной оптимизации в непрерывных пространствах». Журнал глобальной оптимизации . 11 (4): 341–359. дои : 10.1023/А: 1008202821328. S2CID 5297867.
^ abc Сторн, Р. (1996). «Об использовании дифференциальной эволюции для оптимизации функций». Проводимая раз в два года конференция Североамериканского общества обработки нечеткой информации (NAFIPS) . стр. 519–523. дои : 10.1109/NAFIPS.1996.534789. S2CID 16576915.
^ ab Прайс, К.; Сторн, Р.М.; Лампинен, Ю.А. (2005). Дифференциальная эволюция: практический подход к глобальной оптимизации. Спрингер. ISBN978-3-540-20950-8.
^ Феоктистов, В. (2006). Дифференциальная эволюция: в поисках решений. Спрингер. ISBN978-0-387-36895-5.
^ GC Onwubolu и BV Babu, «Новые методы оптимизации в технике» . Проверено 17 сентября 2016 г.
^ Чакраборти, Великобритания, изд. (2008), Достижения в дифференциальной эволюции, Springer, ISBN978-3-540-68827-3
^ С. Дас и П.Н. Сугантан, «Дифференциальная эволюция: обзор современного состояния», IEEE Trans. по эволюционным вычислениям, Vol. 15, № 1, стр. 4–31, февраль 2011 г., DOI: 10.1109/TEVC.2010.2059031.
^ С. Дас, С. С. Маллик, П. Н. Сугантан, «Последние достижения в области дифференциальной эволюции - обновленный обзор», Swarm and Evolutionary Computation, doi: 10.1016/j.swevo.2016.01.004, 2016.
^ Лю, Дж.; Лампинен, Дж. (2002). «О задании управляющего параметра метода дифференциальной эволюции». Материалы 8-й Международной конференции по мягким вычислениям (MENDEL) . Брно, Чехия. стр. 11–18.
^ Захари, Д. (2002). «Критические значения управляющих параметров алгоритмов дифференциальной эволюции». Материалы 8-й Международной конференции по мягким вычислениям (MENDEL) . Брно, Чехия. стр. 62–67.