V. Operátory GA


Přehled

Jak je vidět ze schématu genetického algoritmu, křížení a mutace patří mezi nejdůležitější části genetického algoritmu. Jeho výkonnost je ovlivněna především těmito dvěma operátory. Než si křížení a mutaci popíšeme podrobněji, je užitečné říct si několik věcí o chromozomech.



Kódování chromozomu

Chromozom musí nějakým způsobem obsahovat informaci o řešení, které reprezentuje. Nejpoužívanějším kódováním je binární řetězec. Chromozom pak může vypadat takto:

Chromozom 1 1101100100110110
Chromozom 2 1101111000011110

Každý chromozom má jeden binární řetězec. Každý bit v tomto řetězci může reprezentovat nějakou vlastnost řešení. Nebo může celý řetězec reprezentovat jedno číslo - to bylo použito v základním ukázce GA.

Samozřejmě existuje mnoho dalších způsobů kódování. Záleží hlavně na řešeném problému. Lze takto kódovat například celá nebo reálná čísla, někdy je užitečné kódovat i nějaké permutace a podobně.


Křížení

Jakmile se rozhodneme, jaké kódování použít, můžeme přejít ke křížení. Křížení vybírá geny z rodičovských chromozomů a vytváří nové potomky. Nejjednodušší způsob je zvolit náhodný bod křížení, zkopírovat vše před tímto bodem z prvního rodiče a potom zkopírovat vše za tímto bodem z druhého rodiče.

Křížení pak může vypadat takto (| je bod křížení):

Chromozom 1 11011 | 00100110110
Chromozom 2 11011 | 11000011110
Potomek 1 11011 | 11000011110
Potomek 2 11011 | 00100110110

Existují i jiné způsoby, jak křížení provést. Můžeme například zvolit více než jeden bod křížení. Křížení může být poměrně složité a silně závisí na kódování chromozomu. Metoda křížení navržená pro konkrétní problém může zlepšit výkonnost genetického algoritmu.


Mutace

Po provedení křížení následuje mutace. Jejím účelem je zabránit tomu, aby celá populace ustrnula v lokálním optimu řešeného problému. Mutace náhodně mění nové potomky. U binárního kódování můžeme přepnout několik náhodně vybraných bitů z 1 na 0 nebo z 0 na 1. Mutace pak může vypadat takto:

Původní potomek 1 1101111000011110
Původní potomek 2 1101100100110110
Zmutovaný potomek 1 1100111000011110
Zmutovaný potomek 2 1101101100110100

Stejně jako křížení závisí i mutace na kódování. Například při kódování permutací může mutace znamenat prohození dvou genů.