250 likes | 435 Views
ČVUT v Praze – fakulta Stavební. Genetické algoritmy. Filip Dušek. 2004 – V 53. Úvod. začátkem 60. let vzniká nový směr v rozvoji informatiky – genetické algoritmy tyto algoritmy vycházejí z Darwinovy teorie o vývoji druhu. úspěšně se používají k řešení optimalizačních problémů.
E N D
ČVUT v Praze – fakulta Stavební Genetické algoritmy Filip Dušek 2004 – V 53
Úvod • začátkem 60. let vzniká nový směr v rozvoji informatiky – genetické algoritmy • tyto algoritmy vycházejí z Darwinovy teorie o vývoji druhu. • úspěšně se používají k řešení optimalizačních problémů
Genetický algoritmus • algoritmus určený pro řešení optimalizačních úloh prostřednictvím opakovaného používání genetických operací na jeho jedincích (genech) • mezi základní genetické operace řadíme reprodukci, mutaci a křížení
Princip genetického algoritmu • podle teorie Charlese Darwina v přírodě přežívají silnější jedinci a tito pak mají šanci předat svoji genetickou informaci do další generace. Důležité přitom je, že každý organismus je potomkem dvou rodičů a tudíž se v něm mísí genetické informace obou rodičů. Neboli informace uložené v jeho chromozómech jsou z části převzaté od jednoho z rodičů a z části od rodiče druhého. Na těchto základních principech pracuje i genetický algoritmus. Algoritmus tedy pracuje s jistými jedinci (populací jedinců), jejichž vlastnosti má reprezentovány v určité struktuře, která je připodobněním chromozómu tohoto organismu. Cílem algoritmu je přitom vytvářet v populaci jedinců stále silnější jedince. Tato vlastnost předurčuje algoritmus k použití na řešení optimalizačních problémů.
Základnípojmy • gen -konkrétní symbol v chromozómu • chromozóm - genetická informace ve tvaru řetězce • jedinec - nositel genetické informace (jedno konkrétní zakódované řešení) • generace - je populace jedinců v určitém kroku genetického algoritmu • populace - větší množství jedinců, na kterou aplikujeme různé genetické operace • křížení - ze dvou jedinců vzniknou dva noví, každý má část genů od prvního jedince a část od druhého
mutace - náhodná změna jednoho genu některého jedince, rozšiřuje prohledávaný prostor o řešení, které není možno dosáhnout křížením, protože nebyla součástí inicializace populace • reprodukce - jedinci jsou kopírováni do nové populace podle výše své hodnotící funkce (jedinci s lepšími vlastnostmi s větší pravděpodobností)
Ukázka postupu vývoje populace při optimalizaci funkce f jedinec gen 1 1 0 1 0 1 1 1 chromozóm
Genetický algoritmus pracuje s populací řetězců, proto musíme před spuštěním algoritmu nějakou generaci již mít. Tuto generaci získáme tak, že řetězce vytvoříme náhodně. • Necháme naší funkci f zjistit, jak dobré řetězce jsme dostali. náhodně vytvořená generace kvalita náhodně vytvořené generace
Reprodukce • Při reprodukci se do nové generace kopírují řetězce ze staré generace. • Čím je řetězec lepší, tím větší je pravděpodobnost, že bude do nové generace okopírován. Jedním ze způsobů reprodukce je výběr pomocí rulety. pravděpodobnosti pro vylosování. velikost výsečí na ruletě
kvalita vylosované generace Porovnáme-li průměrnou kvalitu řetězce původní a vylosované generace, zjistíme, že zde došlo k výraznému nárůstu. Tento výsledek není nijak překvapující, neboť díky způsobu výběru řetězců pro další generaci jsme dávali přednost lepším řetězcům.
Kdybychom tedy pro vývoj generace používali pouze opakovaně prováděnou reprodukci, degenerovala by generace takovým způsobem, že by se v ní po čase objevovalo několik nejlepších řetězců z počáteční generace. Nedosáhli bychom tak v žádném případě toho, že by se v nových generacích objevovali řetězce, které by byly lepší, než řetězce v počáteční generaci. Za účelem zlepšování kvality řetězců jsou zde dvě operace. • Křížení Tato operace spočívá ve výměně informací mezi řetězci. Celý mechanismus křížení začíná tak, že se z nově vylosované populace náhodně vyberou dva řetězce. Tyto dva řetězce lze chápat jako dva rodiče. Jejich potomci budou potom obsahovat genetické informace svých rodičů. rodiče potomci
Křížením nám vzniknou dva zcela nové řetězce, které si ovšem nesou některé informace od svých rodičů. Podívejme se, jaká je kvalita potomků vzešlých z křížení. f(00000000) = 0 f(01100111) = 9,631 První potomek dopadl při vyhodnocení zcela katastrofálně a díky nulové kvalitě nemá šanci projít přes další provedení reprodukce. Oproti tomu druhý potomek je silnější než kterýkoli z jeho rodičů. • Mutace Rozšiřuje prohledávaný prostor o řešení, které není možno dosáhnout křížením, protože nebyla součástí inicializace populace. Extrémním případem takové situace je například stav, kdy se do první, náhodně vylosované generace dostane jeden velmi silný řetězec a zbytek řetězců bude slabý. V takovém případě může nastat situace, kdy se do další generace dostane dostanou pouze exempláře jediného silného řetězce. Nastane-li takováto situace, můžeme dostat jiný řetězec pouze tak, že některý z exemplářů zmutujeme. Tato funkce mutace funguje i v neextrémních případech, kdy nám pomáhá udržet různorodost generace.
Ukažme si ještě, jaký vliv by mohla mít mutace na některý z řetězců v naší generaci. Například zmutuje-li poslední řetězec – 01100111 na čtvrté pozici 01100111 01110111 potom f(01100111)= 9,631 f(01110111)= 9,956 mutace nám v tomto případě pomohla zlepšit kvalitu daného řetězce. mutovanýgen
Křížení • je operace, při níž nová generace vznikne z té předchozí tak, že rodiče si vymění část svého kódu a tato kombinace tvoří potomky Druhy křížení : • jednobodové - při tomto typu křížení vybereme náhodně jednu pozici, na níž jedince rozdělíme a jejich části navzájem vyměníme • dvoubodové - dvoubodové křížení je obdobou křížení jednobodového, jen se vyberou náhodně dvě dělící pozice a prostřední části jedinců se navzájem vymění • uniformní - pro každý gen náhodně určí, do kterého z nových jedinců se zařadí
Mutace • genetická operace, kdy jedince v další generaci získáme z nějakého jedince v předchozí generaci změněnou jednoho znaku v jeho kódu Druhy mutace : • uniformní -mění hodnotu genu u jedince zcela náhodně v definovaném rozmezí • hranicová - mění hodnotu genu, se stejnou pravděpodobností, buď na horní nebo dolní hranici povoleného intervalu • Gaussova - nová hodnota genu je určena z Gausova rozložení, kde střed rozložení je v nule a rozptyl je roven staré hodnotě genu. Nová hodnota musí ležet v předem definovaném rozmezí účelové funkce
Reprodukce • operace, která na základě kvality jedince vybírá příští generaci Druhy výběru : • nejlepší - tento operátor vybere z populace vždy jedince z nejvyšším skórem • ruleta - tato metoda výběru jedince je založena na poměru skóre jedince vzhledem ke zbytku populace, čím větší skóre jedinec má, tím má větší šanci na to, že bude vybrán • turnaj - tento selektor používá předchozí metodu k výběru dvou jedinců, z nichž vybere toho s vyšším skóre. Tato metoda typicky vybere jedince s vyšším skóre častěji, než metoda rulety
deterministický - selektor užívá dvoufázové selekční procedury. V první fázi se vypočítá předpokládané skóre jedince. Dočasná populace je naplněna jedinci s nejvyššími očekávanými hodnotami. Ostatní pozice jsou obsazeny původními jedinci s nejvyšší pozicí v seznamu setříděném podle desetinné části jejich skóre. Druhá fáze je uniformní náhodnou selekcí z dočasné populace • stochastický - selektor také využívá dvoufázové selekční procedury. První fáze počítá předpokládané skóre a naplní dočasnou populaci jedinci s nejvyššími hodnotami. Každá desetina očekávaného skóre dá jednici pravděpodobnost být vybrán. Druhá fáze je opět uniformní náhodnou selekcí z této dočasné populace.
uniformní - tento selektor vybírá jedince náhodně z celé populace. Každý jedinec má stejnou pravděpodobnost, že bude vybrán
Předpoklady využití • jestliže je nutno nalézt nejvhodnější z velkého počtu alternativ • alternativy je možno popsat konečným počtem vlastností • neexistuje algoritmus, jak explicitně vybrat nejlepší alternativu nebo tento algoritmus je natolik složitý, že je vhodnější použít náhodný výběr • existuje jednoznačně definovaná funkce, která hodnotí kvalitu každé z alternativ, pokud již je specifikována
Hledání maxima účelové funkce – program GaVisualiser Příklad účelové funkce - Schwefel
První generace jedinců – náhodně vybraná Max. funkce
Graf evoluce • znázorňuje průběh evoluce v čase, resp. znázorňuje skóre populace vzhledem ke generacím. Skóre populace se znázorňuje jako skóre nejlepšího jedince.
Podklady • http://ivopeterka.mysteria.cz/index2.php • http://cs.felk.cvut.cz/~xobitko/ga/ • http://neuralnets.czweb.org/ • http://www.sweb.cz/jaroslav.teda/ • http://kocour.ms.mff.cuni.cz/~petricek/papers/ga/ • http://www-troja.fjfi.cvut.cz/~kucharik/projects/ga/gen.html~