Как заменить недопустимые решения? - PullRequest
0 голосов
/ 09 сентября 2010

Я строю генетический алгоритм для максимизации математической функции. Начальная популяция выбирается случайным образом, скажем, из 20 особей. Лучшее сохраняется для следующего поколения. 18 турниров проводятся таким образом, что впоследствии отдельные лица могут быть случайным образом выбран для формирования девяти пар. Из девяти пар «рождаются» девять детей. Здесь моя проблема. Некоторые из этих детей не встречают допустимых критерии. Я решил удалить эти элементы из следующего поколения. Совет, который мне нужен, касается замены людей, которые удаляются из-за недопустимости. Я думал о генерации новых людей в случайном порядке. У вас есть другие идеи?

Луис

Ответы [ 3 ]

1 голос
/ 10 сентября 2010

Почему бы вам не внедрить какой-то специальный кроссовер, чтобы генерировать «допустимое» потомство?

Это стандартная практика.но если это предложение не подходит, не могли бы вы сформулировать, что вы подразумеваете под «не допустимым»?

1 голос
/ 09 сентября 2010

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

0 голосов
/ 09 сентября 2010

Я не использую половое размножение, что я и думаю.У меня есть хорошие, которые доживают до следующего поколения в неизменном виде, а плохие заменяются мутациями хороших (обычно создающих «детей» из каждого из них лучше, чем порог в последовательности, поэтому дети не все связанык тому же «хорошему» человеку).Обратите внимание, что под мутацией я подразумеваю внесение небольших случайных изменений в свойства одного из хороших «существ», а не создание нового совершенно случайного человека.По крайней мере, это, на мой взгляд, моделирует размножение людей бесполым путем и небольшое количество мутаций, внедряемых в детскую ДНК.Выяснить, сколько мутаций необходимо, - это то, с чем вам придется экспериментировать.Большие популяции с большим количеством поколений и более низким уровнем мутаций, кажется, работают лучше, но это не всегда так.

...