Есть ли разница между генетическими алгоритмами и эволюционными алгоритмами?
Я прочитал несколько статей, в которых говорилось о генетических или эволюционных алгоритмах, и, хотя они очень похожи, я думаю, что они могут быть разными.
Есть ли разница между генетическими алгоритмами и эволюционными алгоритмами?
Я прочитал несколько статей, в которых говорилось о генетических или эволюционных алгоритмах, и, хотя они очень похожи, я думаю, что они могут быть разными.
Генетический алгоритм — это класс эволюционного алгоритма. Хотя генетические алгоритмы являются наиболее часто встречающимся типом эволюционного алгоритма, существуют и другие типы, такие как Эволюционная стратегия. Итак, эволюционные алгоритмы включают в себя генетические алгоритмы и многое другое.
Генетические алгоритмы используют кроссовер (отсюда и слово «ген» в их названии) и мутацию для поиска в пространстве возможных решений.
Эволюционное программирование использует в основном мутацию.
Как уже сообщалось, оба являются типами эволюционных алгоритмов.
Из З. Михалевича 1996 г. - «Генетические алгоритмы + структуры данных = программы эволюции» [стр. 289]:
Эволюционные программы в значительной степени заимствуют генетические алгоритмы. Однако они включают в себя знания, специфичные для конкретной задачи, используя «естественные» структуры данных и чувствительные к проблеме «генетические» операторы. Основное различие между ГА и ОП состоит в том, что первые классифицируются как слабые, не зависящие от проблемы методы, чего нельзя сказать о последних.
Таким образом, ГА должен быть в состоянии решить любую из проблем, которые решает EP/EA, но EP/EA не сможет решить все проблемы, решаемые GA. Конечно, за универсальность ГА приходится платить эффективностью.
Также кажется, что алгоритм не является EA/EP, если решения-кандидаты не обмениваются информацией напрямую друг с другом (Д. Саймон 2013 - "Эволюционные алгоритмы оптимизации" [стр. 243]).
PS: D. Саймон 2013 – "Эволюционные алгоритмы оптимизации" – ПОТРЯСАЮЩАЯ книга!
Я знаю, что эта ветка устарела, но мне самому было трудно понять ее просто из одного места, поэтому я объясняю это здесь. Алгоритмы, которые следуют законам эволюции, называются «эволюционными алгоритмами». Существует два подкласса EA. Во-первых, генетический алгоритм, который использует кроссовер вместе с мутацией в качестве операторов ГА. Во-вторых, эволюционное программирование, в котором в качестве оператора используется только мутация.
Эволюционные стратегии (Рехенберг, 1973) и генетические алгоритмы (Холланд, 1975) основаны на эволюционных теориях Дарвина. Эволюционные стратегии являются основой эволюционных вычислений, следовательно, эволюционных алгоритмов. В принципе генетические алгоритмы (ГА) являются подклассом АП.
В отличие от EA, GA требует использования генетического представления в смысле вычислительного представления (генотип) и его представления в реальном мире (фенотип).