Дифференциальная эволюция, оптимизирующая двухмерную функцию Экли.
В эволюционных вычислениях, дифференциальная эволюция (DE) - это метод, который оптимизирует проблему посредством итеративно, пытаясь улучшить кандидата. решение с учетом заданного показателя качества. Такие методы широко известны как метаэвристика, поскольку они делают мало предположений или не делают никаких предположений об оптимизируемой проблеме и могут искать очень большие пространства возможных решений. Однако метаэвристика, такая как DE, не гарантирует, что когда-либо будет найдено оптимальное решение.
DE используется для многомерных функций с действительным знаком , но не использует градиент оптимизируемой задачи, что означает, что DE не требует решения задачи оптимизации. дифференцируемый, как требуется классическими методами оптимизации, такими как градиентный спуск и квазиньютоновские методы. Следовательно, DE может также использоваться для задач оптимизации, которые даже не непрерывны, являются шумными, меняются со временем и т. Д.
DE оптимизирует проблему, поддерживая совокупность возможных решений и создавая новые возможные решения, комбинируя существующие в соответствии с его простыми формулами, а затем сохраняя любое возможное решение, имеющее лучший результат или соответствие рассматриваемой задаче оптимизации. Таким образом, проблема оптимизации рассматривается как черный ящик, который просто обеспечивает меру качества при наличии возможного решения, и поэтому градиент не нужен.
DE изначально принадлежит Сторну и Прайсу. Были опубликованы книги по теоретическим и практическим аспектам использования DE в параллельных вычислениях, многокритериальной оптимизации, ограниченной оптимизации, а также книги содержат обзоры областей применения. Обзоры по многогранным исследовательским аспектам DE можно найти в журнальных статьях.
Содержание
- 1 Алгоритм
- 2 Выбор параметров
- 3 Варианты
- 4 См. Также
- 5 Ссылки
- 6 Внешние ссылки
Алгоритм
Базовый вариант алгоритма DE работает, имея совокупность возможных решений (называемых агентами). Эти агенты перемещаются в пространстве поиска с помощью простых математических формул для объединения позиций существующих агентов из совокупности. Если новая позиция агента является улучшением, то она принимается и составляет часть популяции, в противном случае новая позиция просто отбрасывается. Процесс повторяется, и тем самым можно надеяться, но не гарантировать, что в конечном итоге будет найдено удовлетворительное решение.
Формально, пусть будет фитнес-функцией. который должен быть минимизирован (обратите внимание, что максимизацию можно выполнить, рассматривая вместо этого функцию ). Функция принимает возможное решение в качестве аргумента в виде вектора из действительных чисел и выдает действительное число в качестве выходных данных, которое указывает пригодность данного решения-кандидата. градиент для неизвестен. Цель состоит в том, чтобы найти решение , для которого для всех в пространстве поиска, что означает, что - глобальный минимум.
Пусть обозначает возможное решение (агента) в совокупности. Базовый алгоритм DE может быть описан следующим образом:
- Выберите параметры , и . - размер популяции, то есть количество кандидатов в агенты или «родителей»; классическая настройка - 10 . Параметр называется вероятностью кроссовера, а параметр называется дифференциальным весом. Классические настройки: и . Эти варианты могут сильно повлиять на производительность оптимизации; см. ниже.
- Инициализировать всех агентов со случайными позициями в пространстве поиска.
- До достижения критерия завершения выполняется (например, количество выполненных итераций или достижение адекватной пригодности), повторите следующее:
- Для каждого агента в генеральной совокупности do:
- Выберите трех агентов и из произвольной совокупности, они должны отличаться друг от друга, а также от агента . (называется «базовым» вектором.)
- Выберите случайный индекс где - размерность оптимизируемой задачи.
- Вычислить потенциально новую позицию агента следующим образом:
- Для каждого выберите равномерно распределенное случайное число
- Если
- Если f (y) ≤ f (x) {\ displaystyle f (\ mathbf {y}) \ leq f (\ mathbf {x})}затем замените агент x {\ displaystyle \ mathbf {x}}в совокупности улучшенным или равным кандидатом решение y {\ displaystyle \ mathbf {y}}.
- Выберите агента из популяции, которая имеет наилучшую приспособленность, и верните его как наилучшее найденное возможное решение.
Выбор параметров
Обзор производительности, показывающий, как базовая DE в совокупности выполняет задачи тестов Sphere и Rosenbrock при изменении двух параметров DE
NP {\ displaystyle {\ text {NP}}}и
F {\ displaystyle {\ text {F}}}с фиксированным
CR {\ displaystyle {\ text {CR}}}= 0.9.
Выбор параметров DE F, CR {\ displaystyle F, {\ text {CR}}}и NP {\ displaystyle {\ text {NP}}}могут иметь большое влияние по оптимизации производительности. Поэтому выбор параметров DE, обеспечивающих хорошую производительность, стал предметом многочисленных исследований. Эмпирические правила для выбора параметров были разработаны Storn et al. и Лю и Лампинен. Математический анализ сходимости в отношении выбора параметров был выполнен Захари.
Варианты
Варианты алгоритма DE постоянно разрабатываются с целью повышения эффективности оптимизации. В базовом алгоритме, приведенном выше, возможно множество различных схем для выполнения скрещивания и мутации агентов, см., Например,
См. Также
Ссылки
Внешние ссылки
- Домашняя страница Storn на DE с исходным кодом для нескольких языков программирования.