Genetikus algoritmusok Hatwágner F. Miklós, 2009
Evolúciós számítások Evolúciós stratégiák Evolúciós programozás 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 Genetikus algoritmusok 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
Direkt kódolás Színek: Piros Fehér Zöld Egy egyed fenotípusa pl.: PPFPZ 1 2 P P 3 F 5 P Z 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.
Sorrendi kódolás 1 2 F F 32145 3 P 5 F Z 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-verseny szelekció (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