Почему дифференциальная эволюция работает так хорошо?

В чем заключается идея мутации в дифференциальной эволюции и почему такая мутация должна работать хорошо? Я не вижу в этом никакой хорошей геометрической причины.

Может ли кто-нибудь указать мне какое-то техническое объяснение этого?


person JAV    schedule 29.11.2018    source источник


Ответы (1)


Как и все эволюционные алгоритмы, DE использует эвристику, поэтому мое объяснение будет немного сумбурным. Как и все эволюционные алгоритмы, DE пытается выполнять случайный поиск, который не является слишком случайным. Оператор мутации DE сначала вычисляет вектор между двумя случайными членами популяции, а затем добавляет этот вектор к третьему случайному члену популяции. Это хорошо работает, потому что использует текущую численность населения как способ выяснить, насколько большой шаг нужно сделать и в каком направлении. Если население широко рассредоточено, то разумно предпринять большие шаги; если сильно сконцентрировано, то разумно делать маленькие шаги.

Есть много причин, по которым DE работает лучше, чем GA Голдберга, но, сосредоточившись на операторах вариации, я бы сказал, что самая большая разница заключается в том, что DE использует переменные с реальным кодом, а GA использует двоичное кодирование. При оптимизации непрерывного пространства двоичное кодирование не является хорошим выбором. Это было известно с начала 1990-х годов, и одним из первых результатов встречи между преимущественно немецким сообществом Стратегии Эволюции и преимущественно американским сообществом Генетических Алгоритмов был Симулированный Бинарный Кроссовер Деба. Этот оператор действует как оператор пересечения GA, но с вещественно-кодированными переменными.

person Matthew Woodruff    schedule 19.12.2018