Подтвердить что ты не робот

Каковы различия между генетическими алгоритмами и стратегиями эволюции?

Я прочитал несколько вступительных разделов книг, а также несколько статей по обеим темам, и мне кажется, что эти два метода практически одинаковы. Тем не менее, у меня еще не было времени для глубокого изучения тем, поэтому я могу ошибаться.

Каковы различия между генетическими алгоритмами и стратегиями эволюции? Что отличает их, и где они похожи?

4b9b3361

Ответ 1

В стратегиях эволюции индивиды кодируются как векторы действительных чисел. При воспроизведении родители выбираются случайным образом, а наиболее подходящие потомки отбираются и вставляются в следующее поколение. Индивидуумы ES самоадаптируются. Размер шага или "сила мутации" кодируется в индивидууме, поэтому хорошие параметры попадают в следующее поколение, выбирая хороших людей.

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

Это теория. На практике иногда трудно различить оба эволюционных алгоритма, и вам необходимо создать гибридные алгоритмы (например, целочисленные (цепочки битов) индивидуумов, которые кодируют параметры генетических операторов).

Ответ 2

В большинстве новых учебников по GA в качестве альтернативы целочисленному вводится вещественное кодирование, то есть индивидуумы могут быть закодированы как векторы действительных чисел. Это называется непрерывным параметром GA (см., Например, Haupt и Haupt, "Практические генетические алгоритмы", J.Wiley & Sons, 1998). Таким образом, это практически идентично кодированию реального числа ES.

Что касается выбора родителя, для GA существует много разных стратегий. Я не знаю их всех, но я предполагаю выбор среди всех (не только лучшее было использовано для некоторых приложений).

Ответ 3

Основное отличие состоит в том, что генетический алгоритм представляет собой решение, использующее последовательность целых чисел, тогда как стратегия эволюции использует последовательность действительных чисел - reference: http://en.wikipedia.org/wiki/Evolutionary_algorithm#

Ответ 4

Как источник wikipedia (http://en.wikipedia.org/wiki/Genetic_algorithm) и @Vaughn Cato сказал, что разница в обоих методах зависит от реализации. Использование EA действительные числа и GA используют целые числа.

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

Ответ 5

Просто наткнулся на эту тему при исследовании Evolution Strategies (ES).

Как заметил ранее Пол, здесь нет особой разницы в кодировке, поскольку это деталь реализации конкретных алгоритмов, хотя в ES она встречается чаще.

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

Следовательно, индивид состоит из двух частей:

  • y (k) - набор параметров объекта (например, вектор значений real/int), которые обозначают отдельный генотип
  • s (k) - набор параметров стратегии (например, вектор значений real/int снова), который, например, может управлять статистическими свойствами мутации)

Эти два вектора отбираются, мутируют, рекомбинируют вместе.

Основное различие между GA и ES заключается в том, что в классическом GA нет различия между типами параметров алгоритма. На самом деле все параметры задаются "извне", поэтому в терминах ES они экзогенные.

Есть и другие незначительные различия, например, в ES политика выбора обычно одна и та же, а в GA есть несколько разных подходов, которые можно взаимозаменять.

Вы можете найти более подробное объяснение здесь (см. Главу 3): Стратегии эволюции. Комплексное введение