Дифференциальная эволюция - Differential evolution
В эволюционных вычислениях , дифференциальная эволюция ( DE ) представляет собой метод , который оптимизирует проблему путем итеративного пытаясь улучшить кандидат решения в отношении данного показателя качества. Такие методы обычно известны как метаэвристики, так как они делают мало предположений об оптимизируемой проблеме или не делают никаких предположений и могут искать очень большие пространства возможных решений. Однако метаэвристика, такая как DE, не гарантирует, что когда-либо будет найдено оптимальное решение.
DE используется для многомерных функций с действительным знаком, но не использует градиент оптимизируемой задачи, что означает, что DE не требует, чтобы задача оптимизации была дифференцируемой , как того требуют классические методы оптимизации, такие как градиентный спуск и квазиньютоновские методы. . Следовательно, DE также может использоваться для задач оптимизации, которые даже не являются непрерывными , имеют шум, изменяются со временем и т. Д.
DE оптимизирует проблему, поддерживая популяцию решений-кандидатов и создавая новые решения-кандидаты, комбинируя существующие в соответствии с его простыми формулами, а затем сохраняя то решение-кандидат, которое имеет лучший результат или соответствие рассматриваемой задаче оптимизации. Таким образом, проблема оптимизации рассматривается как черный ящик, который просто обеспечивает меру качества для данного варианта решения, и поэтому градиент не нужен.
DE был представлен Storn and Price в 1990-х годах. Были опубликованы книги по теоретическим и практическим аспектам использования DE в параллельных вычислениях , многокритериальной оптимизации , оптимизации с ограничениями ; книги также содержат обзоры областей применения. Обзоры по многогранным исследовательским аспектам DE можно найти в журнальных статьях.
Алгоритм
Базовый вариант алгоритма DE работает, имея совокупность возможных решений (называемых агентами). Эти агенты перемещаются в пространстве поиска с помощью простых математических формул для объединения позиций существующих агентов из популяции. Если новая позиция агента является улучшением, то она принимается и формирует часть популяции, в противном случае новая позиция просто отбрасывается. Процесс повторяется, и тем самым можно надеяться, но не гарантировать, что в конечном итоге будет найдено удовлетворительное решение.
Формально, пусть будет фитнес-функцией, которая должна быть минимизирована (обратите внимание, что максимизация может быть выполнена путем рассмотрения функции ). Функция принимает решение кандидата в качестве аргумента в виде вектора из действительных чисел и производит действительное число , как выход , который указывает на пригодность данного кандидата решения. Градиент от неизвестно. Цель состоит в том, чтобы найти решение для всех в пространстве поиска, что означает, что это глобальный минимум.
Обозначим кандидата решения (агента) в популяции. Тогда основной алгоритм DE можно описать следующим образом:
- Выберите параметры , и . - размер популяции, то есть количество кандидатов в агенты или «родителей»; классическая настройка - 10 . Параметр называется вероятностью кроссовера, а параметр - дифференциальным весом . Классические настройки есть и . Эти варианты могут сильно повлиять на производительность оптимизации; см. ниже.
- Инициализируйте всех агентов со случайными позициями в пространстве поиска.
- Пока не будет выполнен критерий завершения (например, количество выполненных итераций или достижение адекватной пригодности), повторите следующее:
- Для каждого агента в популяции выполните:
- Выберите трех агентов , и из совокупности наугад, они должны отличаться друг от друга, а также от агента . ( называется «базовым» вектором.)
- Выберите случайный индекс, где размерность оптимизируемой задачи.
- Вычислите потенциально новую позицию агента следующим образом:
- Для каждого выберите равномерно распределенное случайное число
- Если или, то установить иначе установить . (Позиция индекса наверняка заменена.)
- Если тогда замените агент в популяции улучшенным или равноценным кандидатным решением .
- Для каждого агента в популяции выполните:
- Выберите агента из группы, который имеет наилучшую пригодность, и верните его как наиболее подходящее возможное решение.
Выбор параметра
Выбор параметров DE и может иметь большое влияние на производительность оптимизации. Поэтому выбор параметров DE, обеспечивающих хорошую производительность, стал предметом многочисленных исследований. Эмпирические правила выбора параметров были разработаны Storn et al. и Лю и Лампинен. Математический анализ сходимости в отношении выбора параметров был проведен Захари.
Варианты
Варианты алгоритма DE постоянно разрабатываются с целью повышения эффективности оптимизации. В базовом алгоритме, приведенном выше, возможно множество различных схем для выполнения кроссовера и мутации агентов, см., Например,
Смотрите также
- Алгоритм оптимизации Mayfly
- Алгоритм искусственной пчелиной семьи
- CMA-ES
- Стратегия эволюции
- Генетический алгоритм