FAV-ZCU/KIV UIR/04. Evoluční a genetické algoritmy.md

90 lines
3.6 KiB
Markdown

# 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)
1. získáme sumu fitness funkcí $= S$
2. generujeme náhodné číslo z $\langle 0, S\rangle = r$
3. procházíme populaci a sčítáme fitness (sčítáme do $x$)
- pokud $r > x$ zastav a vrať daný chromozóm
- roztřídění nejlepších (rank selection)
- steady-state selection
- elitism
**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**
1. náhodná populace o $n$ chromozómech
2. ohodnoť každý chromozóm fitnenss funkcí
3. vytvoř novou populaci
- vyber rodiče z populace
- vytvoř z rodičů potomky
- zmutuj potomky
- přidej potomky do populace
4. starou populaci nahraď novou
5. 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