Genetické algoritmy Informační a komunikační technologie ve zdravotnictví
Přehled přednášky Úvod Historie Základní pojmy Principy genetických algoritmů Možnosti použití Související metody AI Příklad problém obchodního cestujícího Příklad umělý život Dotazy Zdroje
Úvod Aplikace Darwinovy evoluční teorie na informatiku Hlavní myšlenka vyhovující organismus lze získat přirozenou selekcí, křížením a mutacemi
Přírodní motivace Metafora Darwinovy evoluční teorie o vývoji druhu Pravděpodobnostní metody přiblížení technického základu k ideálu podle přírodních genetických a vývojových principů Nejčastěji používané ze skupiny evolučních optimalizačních algoritmů jsou Genetické algoritmy
Historie 960 - I. Rechenberg "Evolution strategies 975 - John Holland "Adaption in Natural and Artificial Systems 992 John Koza - Genetic programming"
Vlastnosti GA Robustnost Efektivní způsob vyhledávání mnohonásobným opakování jednoduchých operací Paralelní prohledávání celého prostoru ve více směrech současně Schopnost vyváznout z lokálního extrému GA hledá celou skupinu přípustných řešení výběr nejlepšího
Základní pojmy Jedinec nositel genetické informace Genom genetický materiál určitého druhu Gen řetězec nukleotidů kódující jednu vlastnost Genotyp x fenotyp genetická informace o řešení vs. Konkrétní hodnoty parametrů řešení Chromozom řetězec genů
Reprezentace chromozomu Volba závisí na charakteru problému Binárně Permutace přirozených čísel Sekvence hodnot Stromová struktura
Binární reprezetace chromozomu Chromozom je reprezentován řadou a 0 Velké množství možností s malým počtem genů Jednoduchá realizace Příklad použití problém plného batohu 0 0 0 0 0 0 0 0 0 0 0
Reprezetace permutací čísel Každý gen reprezentuje pořadí v sekvenci Ideální pro úlohy řešící řazení Příklad problém obchodního cestujícího 4 2 7 9 3 5 8 6 7 4 8 2 5 3 6 9
Posloupnost hodnot Gen reprezentuje nějakou složitější hodnotu Přirozená reprezentace mnoha problémů Pro křížení jsou nutné speciální operátory.54 2.95 4.92.32 4.07 A A B A F E D E A C E B C G G (back) (left) (left) (forward)
Stromová struktura Chromozom je stromová struktura obsahující ve svých uzlech a větvích nějaké objekty Příklady použití: list + 0 list 3 a * 2 3 x Genetické programování Regresní analýza
Algoritmus - schéma
Algoritmus Vytvoř první populaci jedinců Ohodnoť jedince v populaci Vytvoř novou populaci Vyber rodiče některou metodou selekce Vytvoř nové jedince křížením a mutací Ohodnoť nové jedince Přidej potomky do populace Nahraď starou populaci novou Opakuj dokud nejsou splněny podmínky zadání
Inicializace počáteční populace Náhodná inicializace Náhodný výběr zvoleného počtu chromozomů (náhodný generátor 0 a s p-stí 0,5) Žádná apriorní znalost o podobě hledaného řešení Spoléhá pouze na šťastné navzorkování celého prohledávaného prostoru omezeným počtem příkladů Informovaná inicializace Využívá apriorní znalost Může vést jednak k nalezení lepších řešení Může zkrátit celkový výpočet Může způsobit nevratné nasměrování GA k suboptimálnímu řešení
Inicializace počáteční populace Předzpracování jedinců pro počáteční populaci
Algoritmus Vytvoř první populaci jedinců Ohodnoť jedince v populaci Vytvoř novou populaci Vyber rodiče některou metodou selekce Vytvoř nové jedince křížením a mutací Ohodnoť nové jedince Přidej potomky do populace Nahraď starou populaci novou Opakuj dokud nejsou splněny podmínky zadání
Fitness funkce Určuje úspěšnost jedince Na výsledku závisí jakou měrou se jedinec projeví v následující generaci Příklad: hledání největší Euklidovské vzdálenosti vzdálenosti a,b rozsah hodnot 0-3, binární kódování 2 2 fitness: f(a,b)=a +b
Algoritmus Vytvoř první populaci jedinců Ohodnoť jedince v populaci Vytvoř novou populaci Vyber rodiče některou metodou selekce Vytvoř nové jedince křížením a mutací Ohodnoť nové jedince Přidej potomky do populace Nahraď starou populaci novou Opakuj dokud nejsou splněny podmínky zadání
Selekce a metody selekce Uplatnění Darwinovy teorie Nejlepší přežijí a stvoří potomky Ruletové kolo Rank Selection Turnaj
Ruletové kolo Pravděpodobnost výběru jedince x 0 x k f( x) - suma fitness funkcí všech - fitness jedinců funkce pro - fitness i-tého funkce jedince pro i-tého jedince p i f x 0 x k i f ( x) f i f i Algoritmus: Spočti celkovou sumu všech v fitness funkcí = S Generuj náhodnn hodné číslo z intervalu < 0, S > = r Procházej populaci a sčítej s fitness fci. Když r < aktuáln lní součet zastav a vrať daný chromozóm
Pořadová selekce (rank selection) Obdoba ruletového kola nepracujeme s hodnotami fitness funkcí ale s pořadovým číslem jedince: N je počet jedinců v populaci, funkce rank(i) vrací pořadí i-tého jedince v populaci shift udává hodnotu f' nejhoršího jedince v populaci Nejhoršímu jedinci přiřadíme, dalšímu 2, atd. Pro problémy, kde je velký rozdíl hodnot fitness funkcí Pomalejší konvergence
Turnaj Náhodně vybraní jedinci z populace podstupují souboj o přežití Vybrán je jedinec s lepším ohodnocením Výhody - jednoduchá implementace, zajišťuje rozmanitost i selekční tlak
Algoritmus Vytvoř první populaci jedinců Ohodnoť jedince v populaci Vytvoř novou populaci Vyber rodiče některou metodou selekce Vytvoř nové jedince křížením a mutací Ohodnoť nové jedince Přidej potomky do populace Nahraď starou populaci novou Opakuj dokud nejsou splněny podmínky zadání
Křížení Metoda, jejímž použitím získáme nové jedince, kteří nebyli součástí předchozí populace Dle typu úlohy existuje několik typů operátorů křížení Crossover Edge recombination crossover A mnoho dalších 0 0 0 0 0 0 0 0 0 0 0 0
Způsoby křížení Jednobodové 000000 000000 0000 0000000 maska 000000000 Dvoubodové 000000 000000 000000 0000000 maska 0000000 Rovnoměrné (uniform) 000000 00000 00000000 0000000 maska 00000
Mutace Náhodná změna vybraných genů jedince Rozšiřuje prohledávaný prostor o řešení, které nelze dosáhnou křížením Zabraňuje uváznutí v lokální maximu / minimu 0 0 0 0 0
Nahrazovací strategie Určuje jak velká část populace (a kteří jedinci konkrétně) bude nahrazena v jednom generačním kroku Generační strategie Stará populace je kompletně nahrazena novou populací Steady-state Pouze část populace je nahrazena, ostatní jedinci zůstávání
Elitářství Do další generace je zachováno beze změny několik nejlepších jedinců Zajišťuje zachování dosud nejlepších jedinců Může znatelně urychlit řešení
Parametry genetických algoritmů Počet jedinců v generaci Pravděpodobnost křížení Pravděpodobnost mutace
Pravděpodobnost křížení a mutace: 2 nejzákladnější parametry GA. Pravděpodobnost křížení: Udává četnost křížení 0% nová populace je kopií původní. 00% každý potomek je stvořen pomocí křížení Pravděpodobnost mutace: Udává četnost mutace nových potomků. 00% Každý chromozóm je pozměněn 0 % Ani jeden není pozměněn.
Předčasná konvergence
Stagnace
Škálování Škálování - úprava ohodnocení jedinců, aby bylo dosaženo požadovaného selekčního tlaku: f max σ f Lineární škálování: ' i avg f a f b Parametry a, b jsou spočítány tak, aby platilo: průměrná hodnota fitness se nezmění (takže f'avg = favg) a maximální hodnota f'max bude nejvýše c f'avg. c je parametrem metody (,5 2,0) i
Efekt lineárního škálování
Teorie schémat Teorie schémat Založena na protěžování dominantních vzorů, zastoupených v aktuální populaci Propagovány s velkou frekvencí do dalších generací. Z těchto vzorů je poskládáno výsledné optimální řešení. Nutný předpoklad: problém musí být dekomponovatelný na menší podproblémy
Teorie schémat Schéma Řetězec obsahující 0,, * ( cokoliv ) Schéma zahrnuje právě 2r řetězců, kde r je počet * ve schématu Příklad schématu: 0**0* Jedinci odpovídající výše uvedenému schématu: 00000, 0000, 0000, 000, 0000, 000, 000, 00
Teorie schémat Řád schématu O(S) je počet specifikovaných pozic ve schématu S pro S = (0,,*,*,0,,*)» o(s) = 4 schéma řádu o(s) pokrývá 2L-o(S) řetězců Definiční délka schématu (kompaktnost) d(s) je největší vzájemná vzdálenost dvou specifických symbolů Schéma S = (0,,*,*,0,,*) má d(s) = 5 Schémata řádu 0 a mají definiční délku 0 Fitness schématu f(s) je průměrná fitness všech řetězců v populaci, pokrytých daným schématem Četnost výskytu schématu v populaci v čase t: m(s,t)
Vlastnosti genetických algoritmů (+) Dají se použít pro řešení problémů jinak těžko řešitelných (například, když interakce mezi jednotlivými částmi jsou těžko popsatelné). (+) Většinou neuváznou v lokálním extrému. (+) Vždy poskytnou nějaké řešení. (+) Jsou snadno implementovatelné a paralerizovatelné. ( ) Nemáme žádnou záruku, že nalezené řešení je optimální. ( ) Někdy mohou být velmi pomalé (obzvlášt pokud nejsou dobře navrženy reprezentace jedinců a operátory křížení a mutace). ( ) Vyžadují vhodné nastavení většího množství parametrů algoritmu (naprˇ. PC, PM, p).
Využití Optimalizační úlohy Úlohy, kde neznáme algoritmus řešení, nebo je tento algoritmus výpočetně příliš náročný Rozvrhování Automatické navrhování elmech. systémů Optimalizace rozmístění telekomunikačních zařízení Učení neuronových sítí Učení robotů Zkoumání a vývoj léků
Příklady aplikací GA Optimalizace nákládání kontejnerů Učení chování robotů. Optimalizace infrastruktury pro mobilní komunikaci. Optimalizace struktury molekul. Návrh uspořádání výrobních hal. Různé plánovací problémy (např. když jednotlivé úlohy jsou navzájem závislé). Predikce akciových trhů