Что такое дифференциальная эволюция и как она соотносится с генетическим алгоритмом? - PullRequest
16 голосов
/ 01 марта 2012

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

Ответы [ 2 ]

16 голосов
/ 02 марта 2012

Ну, и генетические алгоритмы, и дифференциальная эволюция являются примерами эволюционных вычислений.

Генетические алгоритмы очень близки к метафоре генетического воспроизводства. Даже язык в основном один и тот же - оба говорят о хромосомах, оба говорят о генах, гены - разные алфавиты, оба говорят о кроссовере, и кроссовер довольно близок к низкому уровню понимания генетической репродукции и т. Д.

Дифференциальная эволюция в том же стиле, но соответствия не такие точные. Первое большое изменение заключается в том, что DE использует действительные действительные числа (в строгом математическом смысле - они реализованы как числа с плавающей запятой, или двойные числа, или что-то еще, но в теории они охватывают область действительных чисел.) В результате Идеи мутации и кроссовера существенно различаются. Оператор мутации изменен настолько, что мне трудно даже понять, почему он называется мутацией как таковой, за исключением того, что он служит той же самой цели - вырвать вещи из локальных минимумов.

С положительной стороны, есть несколько результатов, показывающих, что DE часто более эффективны и / или более эффективны, чем генетические алгоритмы. И когда вы работаете с числовой оптимизацией, хорошо иметь возможность представлять вещи как реальные числа, вместо того, чтобы сначала переходить к хромосомному типу представления. (Примечание: я читал о них, но я не слишком разбирался с ними, поэтому не могу комментировать из первых рук.)

Что касается отрицательной стороны, я не думаю, что было какое-либо доказательство сходимости для DE, пока.

9 голосов
/ 02 марта 2012

Дифференциальная эволюция на самом деле является специфическим подмножеством более широкого пространства генетических алгоритмов со следующими ограничениями:

  • Генотип - это некая форма вещественного вектора
  • Операции мутации / кроссовера используют разницу между двумя или более векторами в совокупности для создания нового вектора (обычно путем добавления некоторой случайной пропорции разницы к одному из существующих векторов плюс небольшое количество случайного шума )

DE работает хорошо в определенных ситуациях, поскольку можно рассматривать векторы, образующие «облако», которое довольно эффективно исследует области больших значений пространства решений. В некотором смысле это довольно тесно связано с оптимизацией роя частиц.

У него все еще есть обычная проблема GA - застревание в локальных минимумах.

...