91 lines
3.6 KiB
Markdown
91 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
|