Генетический алгоритм выбора рулетки - возвращение 2 родительских хромосом

Я хочу реализовать выбор колеса рулетки в своем алгоритме GA. Я попробовал следующее руководство /questions/43628798/vyibor-ruletki-v-geneticheskih-algoritmah/43628803#43628803 но оно отправляет обратно новое население вместо 2 лучших родителей. Предположим, я уже нашел оценку пригодности для начальной популяции, и теперь мне нужно выбрать две родительские хромосомы для популяции в соответствии с их пригодностью. А дальше идет процесс кроссовера и мутации. В следующем случае, как я могу найти 2 лучших родителей для кроссовера на основе выбора колеса рулетки?

population = [[text1],[text2],[text3],.....[textnum]]
fitnesses = [0.8057515980834005, 1.2151126619653638, 0.6429369518995411, ... 0.805412427797966]
num = 50

1 ответ

Решение

Это не отправляет обратно новое население, просто num родители. Если вы хотите, чтобы 2 родителя позвонили roulette_select сюда:

roulette_select(population, fitnesses, 2)

Часто оператор кроссовера GA ожидает двух родителей, но существуют вариации со многими родителями (например, генетические алгоритмы с рекомбинацией с несколькими родителями - AE Eiben, PE. Raué, Zs. Ruttkay).

Есть также операторы самокроссовера.

Итак, имея num входные параметры имеют смысл.

Другие вопросы по тегам