Кіріспе

Оператор хромосомалардың бағдарламасын бір ұрпақтан келесі ұрпаққа өзгерту үшін қолданылады. Генетикалық алгоритмдер мен эволюциялық есептеулерде кроссовер, сондай-ақ рекомбинация деп аталатын бұл оператор, екі ата-ананың генетикалық ақпаратын біріктіре отырып, жаңа ұрпақтарды жасауға арналған генетикалық оператор болып табылады. Бұл – қолданыстағы популяциядан жаңа шешімдерді ықтималдық бойынша жасаудың бір жолы және биологиядағы жыныстық көбею кезінде жүретін кроссоверге ұқсас. Шешімдерді қолданыстағы шешімдерді клондау арқылы да жасауға болады, бұл жыныссыз көбеюге ұқсас. Жаңа жасалған шешімдер популяцияға қосылмас бұрын мутацияға ұшырауы мүмкін. Эволюциялық есептеудегі әртүрлі алгоритмдер генетикалық ақпаратты сақтау үшін әртүрлі дерек құрылымдарын пайдалана алады, ал әр генетикалық ұсынылым әртүрлі кроссовер операторларымен қайта біріктірілуі мүмкін. Кроссовер арқылы қайта біріктірілетін кең таралған дерек құрылымдары – биттік массивтер, нақты сандардың векторлары немесе ағаштар. Төменде келтірілген операторлар тізімі толық емес және осы диадтық генетикалық оператор түрін мысал ретінде көрсетуге арналған. Қосымша операторлар мен толық мәліметтерді әдебиеттен табуға болады.

Бинарлық массивтер үшін кроссовер

Дәстүрлі генетикалық алгоритмдер генетикалық ақпаратты биттер массиві арқылы көрсетілген хромосомада сақтайды. Биттік массивтерге арналған кроссовер әдістері кең таралған және генетикалық рекомбинацияның нақты мысалы болып табылады.

Бір нүктелі кроссовер

Ата-аналардың хромосомаларындағы бір нүкте кездейсоқ таңдалып, "кроссовер нүктесі" деп белгіленеді. Осы нүктеден оңға қарайғы бөліктер екі аталық хромосома арасында ауыстырылады. Бұл нәтижеде екі ұрпақ пайда болады, олардың әрқайсысы ата-аналарынан генетикалық ақпараттың бір бөлігін алып келеді.

Екі нүктелі және k нүктелі кроссовер

Екі нүктелі кроссоверде екі кроссовер нүктесі ата-ана хромосомаларынан кездейсоқ таңдалады. Екі нүкте арасындағы биттер ата-ана организмдері арасында алмастырылады. Екі нүктелі кроссовер – әртүрлі кроссовер нүктелерімен екі бір нүктелі кроссоверді орындаумен тең. Бұл стратегияны кез келген оң бүтін сан k үшін k нүктелі кроссоверге жалпылауға болады, k кроссовер нүктесін таңдап алу арқылы.

Бірыңғай кроссовер

Біркелкі кроссоверде әдетте әр бит ата-ананың бірінен тең ықтималдықпен таңдалады. Кейде басқа араласу коэффициенттері қолданылады, нәтижесінде ұрпақтардың біреуінен екіншісіне қарағанда көбірек генетикалық ақпарат мұраға жетеді. Біркелкі кроссоверде хромосоманы бөліктерге бөлмейміз, керісінше әр генді жеке қарастырамыз. Мұнда, әр ген үшін монета лақтырып, оның ұрпаққа енгізілуін немесе енгізілмеуін шешеміз.

Бүкіл сандық немесе нақты мәнді геномдар үшін кроссовер

Жоғарыда ұсынылған кроссовер операторлары және бит тізбектері үшін көптеген басқа кроссовер операторлары да, әрқайсысы бүтін немесе нақты саннан тұратын гендері бар бүтін сан немесе нақты санды геномдарға да сәйкес қолданылуы мүмкін. Жеке биттердің орнына, бүтін немесе нақты сандар жай ғана бала геномға көшіріледі. Ұрпақтар екі ата-анасы құратын гипердененің қалған төбелерінде орналасады, мысалы, үш өлшемді жағдайда қоса берілген суретте көрсетілгендей.

Дискреттік рекомбинация

Егер биттік тізбектерге бірыңғай кроссовер ережелері қолданылса, мұны дискретті рекомбинация деп те атайды.

Пермутацияларды қиыстыру

Комбинациялық тапсырмалар үшін әдетте геномдар үшін арнайы жасалған пермутациялар қолданылады, олар өзі жиынның пермутациялары болып табылады. Негізгі жиын әдетте 1 немесе n нүктелік немесе бүтін геномдар үшін бірыңғай кроссовер қолданылса, бала геномда кейбір мәндер екі рет кездесуі мүмкін, ал басқалары жоқ болуы мүмкін. Бұл генетикалық түзету арқылы шешіледі, мысалы, басқа бала геномнан жоғалғандарымен орындық сәйкестік бойынша артық гендерді алмастыру арқылы. Жарамсыз ұрпақтардың пайда болуын болдырмау үшін пермутацияларға арналған арнайы кроссовер операторлары жасалды, олар пермутацияларға арналған операторлардың негізгі талаптарын орындайды, атап айтқанда, бастапқы пермутацияның барлық элементтері жаңа пермутацияда да болуы керек және тек реті ғана өзгеруі керек. Комбинаторлық тапсырмаларды, барлық тізбектерге рұқсат етілген жағдайлар мен рұқсат етілмейтін ішінара тізбектер түрінде шектеулер бар жағдайларға бөлуге болады. Бірінші типті тапсырманың белгілі бір мысалы – саяхатшы сатушысының мәселесі (TSP), ондағы мақсат – ең қысқа маршрутпен қалалар жиынтығына дәл бір рет бару. Шектелген тапсырма түрінің мысалы – бірнеше жұмыс процестерін жоспарлау. Жұмыс процестері кейбір жеке жұмыс қадамдарының тізбектелген шектеулерін қамтиды. Мысалы, жұмыс дайындамасында тиісті тесік бұрғыланғанша жіпті кесуге болмайды. Мұндай мәселелер реттілікке негізделген пермутациялар деп те аталады. Келесіде екі кроссовер операторы мысал ретінде ұсынылады: TSP-ге негізделген ішінара карталанған кроссовер (PMX) және реттілікке негізделген пермутацияларға арналған реттік кроссовер (OX1). Әрбір жағдайда ата-ана хромосомаларын алмастыру арқылы екінші ұрпақты да жасауға болады.

Ішінара карталанған кроссовер (PMX)

PMX операторы ТСП сияқты проблемалар үшін рекомбинациялық оператор ретінде әзірленген. Процедураның түсіндірмесі мысал арқылы көрсетіледі: Процедура мысал мысал хромосома берілген бір жиынның екі пермутациясын қарастырайық және . Кездейсоқ түрде ген сегментін құрайтын екі кроссовер нүктесін таңдаңыз, мысалы, 4-тен 6-ға дейінгі гендер. Таңдалған бөлім бала хромосомасына сол күйінде көшіріледі. Бос орындар сұрақ белгілерімен көрсетіледі. Бірінші кроссовер нүктесінен басталатын тиісті сегментте көшірілмеген гендерді іздеңіз. Табылған әрбір ген үшін (деп атайық), ұрпақта оның орнына қандай элементтің (деп атайық) көшірмесінен көшірілгенін анықтаңыз, егер ол орын бос болса, көшірмеден сол орынға қараңыз. Әйтпесе, келесі қадамға өтіңіз. Ген – бұл тиісті сегменттегі бірінші көшірілмеген ген: Ген – оның орнына көшірілді. -нің орны ең оң жақ орны және ол сол жерге орналастырылады. Егер ұрпақта -нің орны басқа элементпен алынған болса, онда - оның орнына қойылады. Келесі ген – және ол бала хромосомасына көшірілді. Осылайша, келесі өңдеуге жататын геннің орны -ның орнында болады. Алайда, бұл орынды ген алып жатыр. Сондықтан, таңдалған сегменттен гендерді өңдегеннен кейін, ұрпақтағы қалған орындар әлі көшірілмеген гендермен, олардың пайда болу ретімен толтырылады. Нәтижесінде баланың геномдық құрамы толыққанды болады. Көшірілген гендер – және .