Вопрос о брачном пуле, выборе и кроссовере - PullRequest
0 голосов
/ 14 апреля 2020

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

Я планирую найти решение для турнира.

Что я знаю Так далеко, что мне нужно выбрать случайное число кандидатов, а также выбрать «наиболее подходит» и первого родителя. Повторите шаг и найдите второго родителя. кроссовер друг друга. Но сколько кроссоверов мне нужно сделать? До тех же размеров численности населения, которые я установил. тогда как насчет моего первоначального населения?

Может ли кто-нибудь мне помочь?

1 Ответ

1 голос
/ 14 апреля 2020

Ваше первоначальное население умирает. Если вы хотите сохранить лучшее решение (я), вы можете скопировать его в новое население (это называется elitism ). Затем вы создаете потомство, пока ваше новое население не будет заполнено. Взгляните на этот набросок базового c Geneti c Алгоритма .

Пересечение - это всего лишь один из способов отличить детей от родителей (в дополнение к мутации ). Это не зависит от того, как вы выбираете хороших родителей (например, турниры). Но обратите внимание, что существует так много вариантов GA, что это может быть не так для всех них.

Я бы хотел начать с только мутации (без перекрестного перехода). Это гораздо проще реализовать, а иногда и достаточно хорошо. Вы всегда можете добавить переход позже и посмотреть, получите ли вы улучшение.

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