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