XI. Křížení a mutace
Úvod
Křížení a mutace jsou dva základní operátory GA. Výkonnost GA na nich silně závisí. Typ i implementace těchto operátorů závisí na kódování a na samotném problému.
Existuje mnoho způsobů, jak provádět křížení a mutaci. Tato kapitola přináší jen několik příkladů a doporučení pro jejich použití u několika druhů kódování.
Binární kódování
Křížení
Jednobodové křížení - vybere se jeden bod křížení. Binární řetězec od začátku chromozomu po bod křížení se zkopíruje z jednoho rodiče a zbytek se zkopíruje z druhého rodiče.
![]()
11001011+11011111 = 11001111
Dvoubodové křížení - vyberou se dva body křížení. Binární řetězec od začátku chromozomu po první bod křížení se zkopíruje z jednoho rodiče, část od prvního do druhého bodu křížení se zkopíruje z druhého rodiče a zbytek zase z prvního rodiče.
![]()
11001011 + 11011111 = 11011111
Uniformní křížení - bity se náhodně kopírují z prvního nebo druhého rodiče.
![]()
11001011 + 11011101 = 11011111
Aritmetické křížení - k vytvoření nového potomka se provede nějaká aritmetická operace.
![]()
11001011 + 11011111 = 11001001 (AND)
Mutace
Invertování bitů - vybrané bity se obrátí.
![]()
11001001 => 10001001
Permutační kódování
Křížení
Jednobodové křížení - vybere se jeden bod křížení. Do tohoto bodu se permutace zkopíruje z prvního rodiče. Potom se projde druhý rodič a přidávají se všechna čísla, která ještě v potomkovi nejsou.
Poznámka: existuje více způsobů, jak vytvořit zbytek za bodem křížení.(1 2 3 4 5 6 7 8 9) + (4 5 3 6 8 9 7 2 1) = (1 2 3 4 5 6 8 9 7)
Mutace
Změna pořadí - vyberou se dvě čísla a prohodí se.
(1 2 3 4 5 6 8 9 7) => (1 8 3 4 5 6 2 9 7)
Hodnotové kódování
Křížení
Lze použít všechny metody křížení z binárního kódování.
Mutace
Přičtení malého čísla (pro kódování reálných hodnot) - k vybraným hodnotám se přičte nebo odečte malé číslo.
(1.29 5.68 2.86 4.11 5.55) => (1.29 5.68 2.73 4.22 5.55)
Stromové kódování
Křížení
Stromové křížení - v každém rodiči se vybere jeden bod křížení. Rodiče se v tomto bodě rozdělí a vymění si části pod bodem křížení, čímž vzniknou noví potomci.
![]()
Mutace
Změna operátoru, čísla - vybrané uzly se změní.