3.6 KiB
3.6 KiB
Evoluční algoritmy
Cílem je modelování evolučních procesů pro účely, které nemají nic společného s biologií.
Společné rysy evol. algoritmů
- pracují zároveň s celou skupinou možných řešení zadaného problému místo práce s jednotlivými řešeními
- řešení postupně vylepšují zařazováním nových řešení , získaných kombinací původních
- kombinace řešení jsou následovány náhodnými změnami a vyřazováním nevýhodných řešení
Druhy evol. algoritmů
- algoritmy napodobující přirozené evoluční procesy - genetické algoritmy
- algoritmy napodobující činnost mozku - umělé neuronové sítě
Genetické algoritmy
Základní myšlenkou genetických algoritmů je snaha napodobit vývoj a učení nějakého živočišného druhu a takto vzniklý algoritmus použít při řešení úloh, které se vyskytují ve složitém, případně i měnícím se prostředí, v němž člověk není schopen dopředu nadefinovat všechny vzniklé případy a správné reakce na ně.
Založeny na třech různých operacích
- reprodukce - každý jedinec je jiný; pokud mu odlišnost umožní lépe přežít, zanechá po sobě více potomků
- křížení - geny se mohou křížit, část od otce, část od matky
- mutace - ovlivnění jedinců jejich prostředím - malé náhodné změny
Chromozóm
- základní prvek generace
- možnost reprezentace
- binárně
- permutací přirozených čísel
Populace
- množina chromozómů tvoří populace
- každý chromozóm uchovává jedno řešení daného problému
- první populace je náhodně vygenerována
- základní parametr: velikost populace (počet chromozomů v ní)
Křížení
- ze dvou chromozómů (otec a matka) se spojením vytvoří 1 nebo více nových potomků
- chromozómy (otec a matka) se rozdělí na stejném náhodném místě
- vznikne potomek/potomci
- použije se jedna část chromozómu od matky a druhá část od otce
- u dalšího potomka to může být naopak
Mutace
- používá se, aby se neuvázlo v lokálním optimu
- náhodná genetická změna některých genů právě vytvořeného potomka
- příklad: 11011 -> 11001 (na 3. indexu)
Fitness funkce
- udává sílu daného chromozomu
- má vliv na to, které chromozómy zůstanou v populaci
Selekce
- Darwinova teorie: nejlepší přežijí a stvoří potomky
- různé metody výběru nejlepšího
- ruletové kolo (rulet wheel selection)
- získáme sumu fitness funkcí
= S
- generujeme náhodné číslo z
\langle 0, S\rangle = r
- procházíme populaci a sčítáme fitness (sčítáme do
x
)- pokud
r > x
zastav a vrať daný chromozóm
- pokud
- získáme sumu fitness funkcí
- roztřídění nejlepších (rank selection)
- steady-state selection
- elitism
- ruletové kolo (rulet wheel selection)
Pravděpodobnost křížení
- udává četnost křížení
- 0% -> nová populace kopií původní
- 100% -> každý potomek stvořen křížením
Pravděpodobnost mutace
- udává četnost mutace nových potomků
- 0% -> ani jeden chromozóm nebyl změněn
- 100% -> každý chromozóm je pozměněn
Algoritmus
- náhodná populace o
n
chromozómech - ohodnoť každý chromozóm fitnenss funkcí
- vytvoř novou populaci
- vyber rodiče z populace
- vytvoř z rodičů potomky
- zmutuj potomky
- přidej potomky do populace
- starou populaci nahraď novou
- pokud není dosaženo konce, vrať se na 2.
Využití - optimalizační úlohy
- rozvrhy
- chování robotů
- automatické navrhování mechanických systémů
- optimalizace rozmístění komunikací, telekomunikací
- teorie her
- problém batohu