230 likes | 413 Views
Genetikus algoritmusok. Hatwágner F. Miklós, 2009. Evolúciós számítások. Evolúciós stratégiák Rechenberg (1973), Schwefel Repülőgépszárnyak valós paramétereinek optimalizálása Evolúciós programozás Fogel (1966), Owens, Walsh
E N D
Genetikus algoritmusok Hatwágner F. Miklós, 2009
Evolúciós számítások • Evolúciós stratégiák • Rechenberg (1973), Schwefel • Repülőgépszárnyak valós paramétereinek optimalizálása • Evolúciós programozás • Fogel (1966), Owens, Walsh • Egyszerű problémák véges automaták állapot-átmeneti mátrix véletlenszerű változtatása
Evolúciós számítások • Genetikus programozás • Koza (1992) • Szg. programok (LISP) automatikus fejlesztése • Genetikus algoritmusok • Holland (1975) • A szelekció és adaptáció számítógépes és matematikai modellezése, optimalizációs módszer.
Genetikus algoritmusok • Problémák széles körére alkalmazható • Általában nem használ területfüggő tudást (problémafüggetlen metaheurisztika) • Globális optimalizáció • Lehetséges megoldások populációja • Egyedek (individual) • A lehetséges megoldáshoz kódoló függvénnyel jól manipulálható jelsorozatot rendelünk (genotípus)
Genetikus algoritmusok • Az előállított jelsorozat: fenotípus. • Genotípus pozíciói: gének, ezek értékei: allélok. • Rátermettségi függvény (fitness function) • Szelekciós operátor (selection) • Rekombináció/keresztezés operátor (recombination/crossover) • Mutációs operátor (mutation)
Az algoritmus általános szerkezete • kezdetiPopulációLétrehozása(P0); • t = 0; • while(!kilépés(Pt)) { • Pt’ = újEgyedek(Pt); /* szelekció, keresztezés, mutáció */ • Pt+1 = újPopuláció(Pt’, Pt) ; • t++; • }
Tipikus paraméter-értékek • Populáció elemszáma: 50-100 • Kezdeti populáció feltöltése véletlenszerű értékekkel. • Kilépés feltétele: általában a szükséges számú (1000-500000) generáció létrejötte • Ha Pt’ elemszáma == Pt elemszáma generációs • Ha csak egy új elemet hozunk létre: helybeni (steady state) • Régi generáció legrátermettebb egyedének átvitele: elitista (elitist)
Gráfszínezési probléma • Irányítatlan gráf, k-színezés • Megoldások kódolása: direkt kódolás, sorrendi kódolás eltérő módon megvalósított operátorok
Direkt kódolás • Színek megfelelő sorrendben történő felsorolása • Könnyű előállítani véletlenszerű színezést és rátermettségi függvényt („hibás” élek száma eredeti érték mínusz egyszerese, reciproka) • Rekombináció: pl. egypontos keresztezés (single point crossover) vagy egyenletes keresztezés (uniform crossover) lehet • Mutáció: minden gén kis valószínűséggel változhat
P Z P F P Direkt kódolás Színek: Piros Fehér Zöld Egy egyed fenotípusa pl.: PPFPZ 1 2 3 5 4
Egypontos keresztezés PPFFZ PPFFP PFFFP
Egyenletes keresztezés ZPFFZ ZFFFP PFFFP
Mutáció PPFFZ PZFPZ
Sorrendi kódolás • Meghatározzuk a színek felhasználásának sorrendjét: legyen pl. • Piros • Fehér • Zöld • Egyszerű heurisztika: bejárjuk a gráf csúcsait, és mindig a lehető legkisebb sorszámú olyan színt használjuk fel, amivel még nem keletkezik hibás él. Ha ez lehetetlen, üresen hagyjuk a csúcsot.
F Z F P F Sorrendi kódolás 1 2 32145 3 5 4
Sorrendi rekombináció (OX) • Két keresztezési pont kiválasztása • Második szülő „középső” génjei átkerülnek a gyermekbe, azonos pozícióra • A gyermekből hiányzó értékek milyen sorrendben fordulnak elő az első szülőben? • Ebben a sorrendben, a második keresztezési ponttól kezdve beírjuk ezeket a gyerekbe.
Sorrendi rekombináció (OX) A második szülőből nem került át: 1, 2, 4. Ezek ilyen sorrendben bukkannak fel az első szülőben: 1, 4, 2. 31452 42351 21354
Sorrendi mutáció Permutáció: 21354 25314
Problémafüggetlen komponensek • Rátermettség-arányos szelekció: minél nagyobb a rátermettség a populáció átlagos rátermettségéhez képest, annál nagyobb a kiválasztás valószínűsége.
Problémafüggetlen komponensek Egy rátermettség-arányos szelekció: rulettkerék (roulette wheel)
Problémafüggetlen komponensek • Pár-versenyszelekció (tournament) • Rangsorolás (ranking) a „beragadás” elkerülésére; rátermettség szerint sorba rendezés, majd rátermettség módosítása pl. lineáris fv. segítségével. • Speciális operátorok beépítése: hegymászó (hill climber), niching, elitizmus, kényszerített mutáció, stb.
Érdekességek • Tesztfüggvények • Alkalmazások: • HelloWorld • Saját GA implementáció • MATLAB GA Toolbox • H. A.: hengerfej optimalizálása