Чем заменить недопустимые решения?

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

Луис


person Luis    schedule 08.09.2010    source источник


Ответы (3)


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

person rmeador    schedule 08.09.2010

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

person Jesse Naugher    schedule 08.09.2010

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

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

person JohnIdol    schedule 10.09.2010