Что такое дифференциальная эволюция и как она соотносится с генетическим алгоритмом?
Из того, что я читал до сих пор, они кажутся очень похожими. Дифференциальная эволюция использует вместо этого числа с плавающей точкой, а решения называются векторами? Я не совсем уверен, что это значит. Если бы кто-то мог дать обзор немного о преимуществах и недостатках обоих.
2 ответа
Ну, и генетические алгоритмы, и дифференциальная эволюция являются примерами эволюционных вычислений.
Генетические алгоритмы довольно тесно связаны с метафорой генетического воспроизводства. Даже язык в основном один и тот же - оба говорят о хромосомах, оба говорят о генах, гены - разные алфавиты, оба говорят о кроссовере, и кроссовер довольно близок к низкому уровню понимания генетической репродукции и т. Д.
Дифференциальная эволюция в том же стиле, но соответствия не такие точные. Первое большое изменение заключается в том, что DE использует действительные действительные числа (в строгом математическом смысле - они реализованы как числа с плавающей запятой, или двойные числа, или что-то еще, но в теории они охватывают область действительных чисел.) В результате Идеи мутации и кроссовера существенно различаются. Оператор мутации изменен настолько, что мне трудно даже понять, почему он называется мутацией, как таковой, за исключением того, что он служит той же самой цели - вырвать вещи из локальных минимумов.
С другой стороны, есть несколько результатов, показывающих, что DE часто более эффективны и / или более эффективны, чем генетические алгоритмы. И когда вы работаете с числовой оптимизацией, приятно иметь возможность представлять вещи как реальные числа, вместо того чтобы сначала переходить к хромосомному типу представления. (Примечание: я читал о них, но я не слишком разбирался с ними, поэтому не могу комментировать из первых рук.)
С отрицательной стороны, я не думаю, что было какое-либо доказательство сходимости для DE, пока.
Дифференциальная эволюция на самом деле является специфическим подмножеством более широкого пространства генетических алгоритмов со следующими ограничениями:
- Генотип представляет собой некоторую форму вещественного вектора
- Операции мутации / кроссовера используют разницу между двумя или более векторами в совокупности для создания нового вектора (обычно путем добавления некоторой случайной пропорции разности к одному из существующих векторов плюс небольшое количество случайного шума)
DE работает хорошо в определенных ситуациях, потому что векторы можно рассматривать как "облако", которое довольно эффективно исследует области с высокими значениями пространства решений. В некотором смысле это довольно тесно связано с оптимизацией роя частиц.
Однако у него все еще есть обычная проблема GA - застревание в локальных минимумах.