Применение мутации в стационарном генетическом алгоритме - PullRequest
4 голосов
/ 17 марта 2011

Я реализую устойчивый генетический алгоритм для выполнения символической регрессии.

Мои вопросы касаются связи между операторами мутации и кроссовера.

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

  • Первый вопрос:

Мутация должна применяться ТОЛЬКО к детям, полученным после кроссовера (или другого генетического оператора), или может применяться непосредственно к одному из родителей для генерации новогоиндивидуальный?

  • Второй вопрос:

Дети, полученные после операции кроссовера, всегда должны попробовать мутацию (конечно, с Pm)?

Спасибо всемзаранее.

Ответы [ 3 ]

4 голосов
/ 17 марта 2011

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

Причина этого заключается в том, что если вы применяете мутацию к родителям, то в основном происходит «слишком много мутаций» (предполагая, что частота мутаций одинакова, вы удваиваете вероятность того, что что-то будет зашифровано).

Даже если бы я никогда не видел, чтобы это делалось так, конечно, вы могли бы сделать это, но вам бы пришлось «перемасштабировать» мутацию, чтобы она не мешала процессу эволюции (слишком много мутаций -> случайное блуждание).

Все стандартные темпы развития, которые я когда-либо использовал в качестве эталона, даны для ребенка, так что это еще одна причина для этого.

0 голосов
/ 18 марта 2011

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

Свойство высокой «локальности» желательно для генетических операторов в большинстве случаев.Локальность относится к тому, насколько локализовано влияние оператора на человека - радикально ли оно его изменяется, или оно вносит небольшие изменения, подталкивая человека к соседнему месту в пространстве поиска.Оператор с низкой локальностью создает большие несвязанные скачки в пространстве поиска, что затрудняет постепенный прогресс, вместо этого полагаясь на удачные удары.Если вы хотите применить кроссовер и мутацию за один шаг, то изменения эффективно объединяются, создавая операцию с более низкой локальностью, чем если бы они применялись индивидуально.

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

0 голосов
/ 17 марта 2011

В каждом случае вы можете сделать либо.Различные схемы кроссовера и мутации могут хорошо работать для разных задач;попробуйте разные вещи для вашей проблемы и посмотрите, как они работают.(Но, конечно, если вы (1) говорите, что мутация применяется только к детям после кроссовера, и (2) говорите, что дети после кроссовера не мутируют, то в результате у вас нет мутации :-), так что комбинациявероятно, не очень хороший.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...