# 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