Genetikus algoritmusok Mesterséges Intelligencia Genetikus algoritmusok
Genetikus algoritmusok Bevezetés Az algoritmus mechanizmusa a darwini evolúciós elméleten (1859) és a genetika alapjain nyugszik. Optimalizálási és keresési problémákra alkalmazható. Charles Darwin (1809-1882)
Genetikus algoritmusok A genetikus algoritmus a feladat összes lehetséges megoldását tartalmazó keresési tér elemei között párhuzamosan egyszerre több potenciális jelölttel dolgozik. A tér elemei alkotják a feladat lehetséges megoldásait, amelyeket egyedeknek (individual) nevezünk.
Genetikus algoritmusok Az elemek együttese alkotja a populációt (population), melynek újabb és újabb, időben együtt létező egyedekből álló generációi (generation) jönnek létre az algoritmus során. A genetikus algoritmusoknál az adott probléma potenciális megoldásait (az egyedeket) egy kromoszómaszerű adatstruktúrában tárolják (string).
Genetikus algoritmusok A biológiai öröklődés mintájára az algoritmus különféle rekombinációs (evolúciós) műveleteket hajt végre. Ennek során a populációban generációról generációra lépve a biológiai szaporodás mechanizmusát másoló műveletek alkalmazásával biztosítja a legjobb tulajdonságokkal rendelkező megoldásegyedek elterjedését.
Genetikus algoritmusok Ugyanaz történik mint a törzsfejlődés során. A gyenge egyedek, fajok kihalnak, és azoknak a fajoknak, egyedeknek van esélye a túlélésre, elterjedésre amelyek a legerősebbek, legellenállóbbak, leginkább képesek alkalmazkodni a környezetükhöz. A genetikus algoritmusok ugyanilyen ciklusos működés során fejtik ki hatásukat.
Genetikus algoritmusok Kezdeti populáció kiválasztása. Következő generáció létrehozásának előkészítése. Az új egyedek létrehozása reprodukciós műve- letekkel. Az új generáció meghatározása, az új egyedek jóságának kiszámítása a szülők és gyerekek közül a legjobb egyedek kiválasztása.
Genetikus algoritmusok
Genetikus algoritmusok A probléma szempontjából lényeges tulajdonságok kiválasztását és kódolását reprezentációnak nevezzük. A populációban az egyes megoldásokat valamilyen rögzített adatstruktúrában kell tárolni. E struktúra neve kromoszóma (chromosome). A kromoszóma génekből áll, ahol egy gén egy bitet, vagy egy számot, szimbólumot tartalmazhat. A genetikus műveletek (keresztezés, mutáció) a kromoszómákon, illetve ezek génjein működnek.
Genetikus algoritmusok A genetikus algoritmusok másik fő összetevője a jósági vagy fitnesz-függvény. Az egyes megoldások jóságát tükrözi. Egy új generáció létrehozásához az algoritmus kiválasztja a szülőegyedeket (szelekció), melyekből a genetikus műveletek segítségével létrejönnek az utódok.
Genetikus algoritmusok A kiválasztás alapja az egyedek fitneszértéke. A jobb értékekkel rendelkező egyedek kerülnek nagyobb valószínűséggel kiválasztásra. Ezzel utánozza az algoritmus a természetben történő jelenséget miszerint a jobb tulajdonságokkal rendelkező egyedeknek nagyobb a valószínűsége a szaporodásra.
Genetikus algoritmusok A következő lépés az új generáció létrehozása keresztezés és mutáció segítségével.
Genetikus algoritmusok Az algoritmus egy kiindulási populáció (initial population) létrehozásával kezdődik amely véletlenszerűen kiválasztott kromoszómákból áll. Ezután következik a kódolt megoldások kiértékelése, és ennek alapján dől el az egyes egyedek reprodukciós lehetősége. Azok a kromoszómák számíthatnak nagyobb valószí- nűséggel fennmaradásra amelyek jobb megoldást képviselnek.
Példa: Róka-Nyúl játék Nézzük a nyulak populációját: Néhányan gyorsabbak, mint mások és ezért elmondhatjuk, hogy ezek a nyulak kiemelkedő fitneszértékkel rendelkeznek, mert nagyobb esélyük van a róka elől elmenekülni és ezután szaporodni. Ezért a jó fitneszértékű egyedek maradnak fenn, ha a két szülő jó fitnesszel rendelkezik akkor a gyermek, még jobb értékkel fog rendelkezni és nagyobb esélyük lesz a fennmaradásra.
Biológiai háttér Minden élőlény sejtekből épül fel, melyek mindegyike ugyanazokat a kromoszómákat tartalmazza. Egy kromoszóma génekre osztható, melyek különböző funkciókhoz tartoznak, egy-egy fehérjét kódolva. Egy-egy gén egy-egy jellemzőt (pl. szemszín) ír le. Minden gén a kromoszóma egy adott helyén (pozícióján) helyezkedik el (locus).
Biológiai háttér Sok élőlény több kromoszómát is tartalmaz a sejtjeiben. A kromoszómák összessége a génkészlet (genome). A genotípus (genotype) a gének egy konkrét halmaza adott génváltozatokkal. Ha két egyed génkészlete teljesen megegyezik, akkor azonos a genotípusuk. A genotípus alapján fejlődik ki a fenotípus (phenotype).
Biológiai háttér Azokat a szervezeteket amelyeknek megkettőzött kromoszómái vannak, diploidnak hívják, míg az egyszeres kromoszóma- állománnyal rendelkezőeket haploidnak. Az embernek 23 pár kromoszómája van. A keresztezés általában két haploid szülő génkészlete között történik. A mutáció véletlenszerűen változtatja meg a gének értékét.
Természetes és mesterséges genetikus terminológia Kromoszóma(a sejtek örökletes tulajdonságokat hordozó anyaga) Karakterfűzér (sztring) Gén(az öröklődő tulajdonságokkat hordozó kromoszóma egy része, (nukleinsav molekula)) Jellemző, karakter Genotípus (az örökletes tulajdonságok összessége) Karakterfüzér szerkezet Fenotípus(az élőlény alaktani és élettani sajátosságainak összessége. Az örökletes és a környezet együttes hatására létrejött megjelenési alak) Paraméter készlet
Genetikus algoritmusok Ezeknél az algoritmusoknál a kromoszóma általában egy, az adott problémára adható megoldást jelöl, gyakran bitsztringként kódolva. Az adott génpozícióhoz tartozó génváltozatok lehetnek 0 és 1 (bináris eset), vagy más szám vagy szimbólum (nem bináris eset).
Kanonikus genetikus algoritmusok Tegyük fel, hogy adott egy jól definiált probléma, egy kromoszóma reprezentáció a lehetséges megoldásokra és egy célfüggvény amely minden megoldáshoz hozzárendel egy eredményességi értéket.
Kanonikus genetikus algoritmus Po Pt Pt+1/2 Pt+1’ ff i f
Kanonikus genetikus algoritmus Az inicializáció után egy ciklus következik. A ciklusban történik a különböző egyedek felkutatása. Egy kilépési feltétel alapján fejeződhet be az iterációs hurok.
Inicializálás A populáció a megoldásegyedek, kromo- szómák egy halmaza. Az aktuális populáció generációról generációra változik, az egymást követő generációkban újabb és újabb populációk alakulnak ki. Az algoritmus a kezdő populációt véletlen- szerűen határozza meg.
Inicializálás A kanonikus genetikus algoritmusban L hosszú bitsztringeket használunk kromo- szómákként. Minden bitet 50%-os valószí- nűséggel állítunk 0-ra vagy 1-re. Mindegyik kromoszómaváltozat 1/(2L) való- színűséggel adódhat. A populáció mérete a benne levő egyedek száma. Leggyakrabban állandó (N).
Példapopuláció
Kiválasztás (szelekció) A kiválasztás (selection) a populációban található egyedek közül választ ki egyeseket aszerint, hogy milyen a fitneszértékük. Ez az eljárás hasonló a természetes kiválasztáshoz. A reprodukciós képesség az adott megoldás jóságától függ.
Kiválasztás A kiválasztás előtt a következőket kell tenni: Az aktuális populációban található egyedek célfüggvény értékeinek (fi) a kiszámítása. A fitneszértékük meghatározása skálázással. Ebben a példában a célfüggvény az x bináris egész négyzetét vesszük (x=101, célfüggvény: 52=25).
Kiválasztás
Kiválasztás A kanonikus algoritmusnál a legegyszerűbb kiválasztási módszert alkalmazzuk. Ez a rulettkerék vagy fitneszarányos kiválasztás (roulette wheel, fitness based). A szülőgenerációból egyszerre egy elemet választunk ki úgy, hogy minden populációbeli egyed kiválasztási valószínűsége a jósági mértékével arányos.
Rulettkerék (roulette wheel, fitness based) Kiválasztás Rulettkerék (roulette wheel, fitness based)
Kiválasztás Ugyanazt a kromoszómát többször is ki lehet választani, az egyes kiválasztási műveletek egymástól függetlenek.
Kiválasztás A rulettkerék módszer egyszerű, de néha más módszerrel jobb eredményeket kapunk. Például: Sorrend alapú kiválasztás (rank based) Versengő kiválasztás (tournament based)
Kiválasztás A szelekciós műveletet annyiszor hajtja végre az algoritmus, ahány eleme van a populációnak (N). A kiválasztott egyedek egy új, átmeneti populációt alkotnak. Ezzel a módszerrel biztosítani tudjuk, hogy a populáció mérete ne változzon. t (régi) t+ ½ (átmeneti) Az átmeneti populáció kialakítása után következnek a genetikus műveletek, melyek segítségével létrejön az új generáció populációja.
f ff f f ff Skálázás = i - az adott egyed kiértékelése i az átlagos célfüggvény érték az adott populációban f ff i - az egyed jósága
f = 25359 Skálázás Az előző táblázatban Az első egyed fitnesze 24649/25359=0.972 A fitneszérték határozza meg az egyes egyedek reprodukciós esélyeit. A kiválasztás során ez az érték útmutatást ad az algoritmusnak, hogy mely populáción belüli kromoszómák közül válasszon. Az egyes egyedek kiválasztásának valószínűsége a fitneszértéküktől függ.
Genetikus műveletek Az átmeneti populációban található, reprodukcióra kiválasztott szülőpárokból kiindulva jön létre az egyedek utódgenerációja. t+ 1/2 (átmeneti) t+1’ ( utódok) A két leggyakrabban alkalmazott genetikus operátor a keresztezés és a mutáció.
Genetikus műveletek Először a keresztezés kerül végrehajtásra, amely egy szülőpár két tagjából, azok véletlenszerű kombinálásával hoz létre két új utódegyedet. Majd az így létrejött utódokon alkalmazza az algoritmus a mutáció műveletét, amely egyszerre egy egyeden működik, véletlen- szerűen megváltoztatva annak kromoszómáját.
Genetikus műveletek Az így létrejött egyedekből kiindulva alakul ki a következő generáció. t+ 1/2 (átmeneti) t+1’ (utódok) mutáció keresztezés
Keresztezés (rekombinácó) A keresztezés (recombination) művelete alapvetően két szülőegyedből hoz létre egy vagy két új utódot. Az egyes szülőpárok esetén az algoritmus pc valószínűséggel fogja azokat keresztezni. Ha a műveletre nem kerül sor, a két utód a két szülő módosítás nélküli változata lesz.
Keresztezés (rekombinácó) A bitsztringek esetén alkalmazott legprimi- tívebb változat az egypontos keresztezés. Ez az eljárás két szülőkromoszómát véve, mindkettőt ugyanabban a véletlenszerűen megválasztott pozícióban elvágja, majd ezeket a két ős között felcserélve ragasztja ismét össze. Az így keletkezett két új egyed tekinthető a szülők utódjának.
Keresztezés (rekombinácó) 10000101 00110011 Keresztezés után 10000011 00110101
Keresztezés (rekombinácó) Az egypontos keresztezés mellett léteznek annak általánosított változatai: Kétpontos keresztezés N-pontos keresztezés
Uniform keresztezés A gyermekkromoszómák génjei az azonos pozícióban lévő szülőgének közül kerülnek ki, adott, általában 0.5-0.5 valószínűséggel az egyik vagy a másik szülőtől.
Mutáció A mutáció művelete úgy működik, hogy egy meglévő kromoszómát kismértékben módosít. Ennek leggyakoribb módja, hogy a gének közül egyet véletlenszerűen kiválaszt, majd ennek értékét egy szintén véletlenszerűen választott másikra cseréli. A mutáció elsődleges funkciója a keresési tér újabb területeinek felkutatása.
Mutáció A művelet a korábban létrejött két utódot egymástól függetlenül mutálja. Lehetséges, hogy ezt egy véletlenszerűen választott pozícióban, vagy minden pozícióban egymástól függetlenül végzi el.
Mutáció A teljes kromoszómára, illetve az egyes bitekre a mutáció valószínűsége pm. A művelet után az algoritmus az utódegyedeket elhelyezi az új populációban. A mutáció tehát véletlenszerűen átváltoztat néhány bitet a kromoszómában. 00110110 01110110 példa a mutációra A mutáció a sztring mindegyik pozíciójában megtörténhet egy megadott valószínűséggel, ami általában viszonylag kicsi (0.001).
Mutáció A mutációhoz tartozik még egy speciális művelet, az inverzió. Ez véletlenszerűen kiválasztja a kromoszóma egy szakaszát, majd azt megfordítva illeszti vissza.
Reprodukció Az új generáció alapját az előállított utódpopuláció adja. Az új populációt a reprodukció lépése hozza létre a létrejött új egyedekből és a régi generációból. Erre is több módszer van. Az egyszerű vagy generációs reprodukció (simple, generational) teljesen lecseréli a régi populációt. Az összes szülő elvész, csak az utódok maradnak fenn.
Reprodukció Ehhez kiegészítésként szokták alkalmazni az elitizmust (elitism): a szülőpopuláció legjobb egyedét meghagyjuk, és az új generáció egyik (véletlenszerűen kiválasztott, vagy a legrosszabb) egyede helyett örökítjük át.
Kilépési feltétel Az algoritmus leállását a kilépési függvény szabályozza, mely a kilépésről különféle feltételek alapján dönthet: Adott számú generáció után véget ér az algoritmus futása. A kilépés független az aktuális generáció jóságától és konvergenciájától. Az aktuális generáció állapota. Például ha a legjobb egyed fitneszértékét összehasonlítva a populáció átlagos fitneszével, az arány elér egy adott értéket, azaz a generációban található legalább egy nagyon jó megoldás. Másik lehetőség a kilépésre ha az egyes egyedek szórása egy adott érték alá esik. Ez azt jelenti, hogy a keresési térben az egész populáció egy adott területre koncentrálódik.
Kilépési feltétel Az algoritmus leállása függhet a populáció vagy a legjobb egyedének konvergenciájától is. A konvergenciát többféleképpen lehet definiálni. Egy gén konvergál, ha az egész populációban az adott gén értéke pl. 95%-ban azonos. Egy populáció konvergál, ha minden gén konvergál.
Megjegyzések A genetikus algoritmusok tipikus generáció- számának értéke 50 és 500 között mozog. A generációk egy teljes sorozatát nevezünk egy futtatásnak. Más-más futtatás eltérő eredményeket produkálhat. A bemutatott algoritmus csak alapul szolgál a gyakorlatban használatos algoritmusokhoz. A genetikus algoritmus sikerességét befo- lyásolja a populáció mérete (N), a keresztezés és a mutáció valószínűsége (pc, pm), és még sok más tényező.
GA - Nyolc királynő A 8-királynő állapotnak a 8 királynő pozícióját kell specifikálnia, mindegyik egy 8 négyzetet tartalmazó oszlopban, így 8xlog28=24 bitre van szükség. Az állapotot 8 számjeggyel is lehet jellemezni, melyek mindegyike az 1-8 tartományból való. Az alábbi (a) ábra egy olyan populációt mutat be, mely négy, a 8-királynő állapotait reprezentáló 8 számjegyes füzérből áll.
GA - Nyolc királynő Az (a)-beli populációt (b)-ben fitness-függvény alapján rangsoroljuk, aminek eredménye a (c)-ben látható reprodukáló párok adják. A létrehozott utódok a (d)-ben láthatók, melyekre még hat a mutáció (e).
GA - Nyolc királynő A következő generáció előállítása az (a)-(e) ábrán láthatók. A (b)-ben minden állapotot a kiértékelő függvény (fitnesz függvény) alapján rangsoroljuk. A fitnesz függvénynek a jobb állapotokra magasabb értéket kell visszaadni. A 8-királynőnél fitnesz függvényként a nem támadó királynőpárok számát használjuk. Ennek értéke egy megoldás esetén 28. A négy állapot értéke 24, 23, 20 és 11.
GA - Nyolc királynő A szaporodásra való kiválasztás valószínűsége a fitnesz értékkel egyenesen arányos. A százalékos mennyiségek a fitnesz értékek mellett láthatók. A (c)-ben két párt véletlenszerűen választunk ki reprodukcióra, a (b)-beli valószínűségnek megfelelően. Egy egyedet kétszer, másikat pedig egyszer sem választottunk ki.
GA - Nyolc királynő Minden keresztezendő párnál egy keresztezési (crossover) pontot választunk a füzérbeli pozíciók közül (az első párnál a harmadik számjegy után, a második párnál az ötödik számjegy után). A (d)-ben az utódok generálását látjuk, a szülő füzéreket a keresztezési pontoknál keresztezve. Az első pár első gyereke az első szülőtől kapja az első három számjegyét, a másik szülőtől a többit.
GA - Nyolc királynő Az árnyalt oszlopok a kereszteződés során elvesznek, a nem árnyalt oszlopok megmaradnak. Ha a két szülő állapot igen különböző, a keresztezés eredménye mindkét szülőtől igen távol eshet.
GA - Nyolc királynő Sokszor előfordul, hogy a keresési folyamat elején a populáció eléggé változatos, és a keresztezés nagy léptekkel halad előre, majd később, ha az egyedek többsége már igen hasonlít egymásra, kisebb lépések követ- keznek. Végül az (e)-ben a füzér minden elemét valamilyen kis független valószínűséggel mutáció (mutation) alá vetjük.
GA - Nyolc királynő Az első, a harmadik és az ötödik utódban egy-egy számjegyet mutáltunk. A 8-királynő problémában ez annak felel meg, hogy egy királynőt véletlen módon kiválasztunk, és egy, az oszlopban szintén véletlen módon kiválasztott mezőre áthelyezzük.
Genetikus algoritmusok A genetikus algoritmus kombinálja a hegymászó tendenciát, a véletlen feltárást és a paralell keresési szálak közötti információ- cserét. A genetikus algoritmus előnye a keresztezéstől származik.
Séma-elmélet (schema) Ha az első 3 királynőt például a 2, 4 és 6 pozícióba helyezzük (nem támadják egymást), egy hasznos blokk alakul ki, amit más blokkokkal kombinálva egy megoldás nyerhető. Ennek működését a genetikus algoritmusok elmélete a séma (schema) fogalommal magyarázza. A séma egy olyan részfüzér, amelyben bizonyos pozíciók nem specifikáltak. A 246***** séma az öszes olyan 8-királynő állapotot leírja, ahol az első 3 királynő a 2., 4., és 6. pozícióban van. A sémára illeszkedő füzérek, mint például a 24613578 füzér, a séma példányai (instances).
Vége