Когда вы разрабатываете свой генетический алгоритм, вам нужно сопоставить ваши «гены» с одной или несколькими хромосомами. Похоже, ваш вопрос звучит так: «Каков эффект наличия нескольких хромосом?»
Во время фазы размножения новый (дочерний) геном создается из двух существующих (родительских) геномов. Вообще говоря, для каждой хромосомы вы делаете следующее:
- Выберите, с какой родительской хромосомы начать.
- Пройдите линейно вниз по хромосоме, копируя биты (или любой другой ваш кодон) в создаваемую дочернюю хромосому.
- В каждом бите переверните случайное число, чтобы увидеть, следует ли вам «перекреститься» с другой родительской хромосомой в качестве источника для копии.
- По мере копирования каждого бита переверните другое случайное число, чтобы увидеть, следует ли «мутировать» бит.
Итак, внутри хромосомы степень смешения родительского генетического материала определяется скоростью кроссинговера.
Если у вас очень низкий (или нулевой) уровень кроссинговера и у вас только одна хромосома, то каждый ребенок, скорее всего, будет копией одного из родителей или другого. Как правило, этого следует избегать, так как это устраняет важный компонент генетического смешения, который может значительно улучшить производительность генетического алгоритма.
Если у вас две хромосомы, то с вероятностью 50% ребенок будет копией одного из родителей и с вероятностью 50% будет половинкой.
Если у вас десять хромосом, то вероятность того, что ребенок будет копией одного из родителей, составляет один из 512.
Другими словами, наличие хотя бы нескольких хромосом приводит к хорошему генетическому смешению при половом размножении (независимо от используемой скорости кроссинговера).
Если у вас есть один «ген» на хромосому, то вы получите случайное смешивание родительских генов в каждом поколении. Это означает, что ваш генетический алгоритм не может отбирать хорошие комбинации генов, находящихся в одной и той же хромосоме. Как правило, этого следует избегать, так как это устраняет важный компонент генетического смешения, который может значительно улучшить производительность генетического алгоритма.
Мой совет — следовать примеру природы и использовать число хромосом в диапазоне от 5 до 50. Вы можете попробовать изменить число хромосом и посмотреть, как это повлияет на производительность вашего приложения.
person
Rob
schedule
19.04.2017