Evolúciós algoritmusok
Evolúciós algoritmusok Alapelvük a megoldások egy populációján történő keresés, melyet a biológiából megismert törvényszerűségek vezérelnek A populáció egyedei a feladat egy-egy megoldását jelentik A populáció fejlődik, egyre jobb egyedeket kapunk EVOLÚCIÓS ALGORITMUSOK BEVEZETÉS 2
A kezdetek Az ötlet, hogy használjunk szimulált evolúciót mérnöki és tervezési problémák megoldására az 1950-es években megjelenik már Az 1960-as években kialakul a három fő klasszikus terület: Evolúciós programozás (Lawrence Fogel, 1962), Genetikus algoritmusok (Holland, 1975) Evolúciós Stratégiák (Rechenberg, 1965 & Schwefel, 1968) Az egyes technikák kifejlesztői megmutatták, hogy a módszerük alkalmas a következő probléma típusok megoldására Fogel előrejelzési problémákkal foglalkozott Rechenberg & Schwefel paraméter optimalizációs problémákkal Holland robusztus adaptív rendszerek fejlesztésével EVOLÚCIÓS ALGORITMUSOK BEVEZETÉS 3
Optimalizációs módszerek Determinisztikus Calculus alapú Hegymászó módszer Sztochasztikus Véletlen keresés Szimulált lehűtés Evolúciós algoritmusok: sztochasztikus módszerek, melyek a természetes evolúció folyamatát szimulálják felhasználva a legalkalmasabb egyed túlélésének törvényét EVOLÚCIÓS ALGORITMUSOK BEVEZETÉS 4
Terminológia Gén: funkcionális entitás, mely az egyed egy speciális tulajdonságát kódolja (pl. hajszín) Allél: a gén értéke (pl. szőke) Egyed: kromoszóma, egy megoldás jelölt a problémára Genotípus: egy egyed alléljainak egy speciális kombinációja Fenotípus: az egyed külső-belső tulajdonságainak összessége Locus: egy gén pozíciója a kromoszómán belül Populáció: egyszerre együtt élő egyedek összessége EVOLÚCIÓS ALGORITMUSOK BEVEZETÉS 5
A populáció evolúciója Egyedek eloszlása a 0. generációban Egyedek eloszlása a N. generációban EVOLÚCIÓS ALGORITMUSOK BEVEZETÉS 6
Genetikus algoritmus kezdeti populáció létrehozása egyedek rangsorolása szelekció keresztezés mutáció visszahelyettesítés EVOLÚCIÓS ALGORITMUSOK GENETIKUS ALGORITMUSOK 7
Az egyed Az egyed egy megoldás jelölt a problémára A probléma egy lehetséges megoldása valamilyen formában az egyedbe van kódolva pl. bináris, vagy valós Fitnesz érték (alkalmassági érték): az egyedeket valamilyen kritérium szerint értékeljük ki, aszerint, hogy mennyire jó megoldást adnak a feladatra Jobb egyednek nagyobb a fitnesz értéke, és nagyobb eséllyel él túl EVOLÚCIÓS ALGORITMUSOK GENETIKUS ALGORITMUSOK 8
Szelekciós módszerek többféle kiválasztási módszer terjedt el minél jobb az egyed, annál nagyobb az esély a kiválasztására Rulett kerék szelekció: az egyedek a fitnesz értékükkel arányos szeletet kapnak a gurításnál a nagyobb fitnesz értékű egyedek nagyobb eséllyel választódnak ki EVOLÚCIÓS ALGORITMUSOK GENETIKUS ALGORITMUSOK 9
Keresztezés (Crossover) Véletlenszerű keresztezési pont kiválasztása a két szülőn Utódok létrehozása az információ kicserélődésével a keresztezési pont alapján EVOLÚCIÓS ALGORITMUSOK GENETIKUS ALGORITMUSOK 10
Mutáció Gén értékének véletlenszerű megváltoztatása pm valószínűséggel (mutációs arány) EVOLÚCIÓS ALGORITMUSOK GENETIKUS ALGORITMUSOK 11
Egy példa (Goldberg) Egyszerű probléma: x 2 maximumának megkeresése a {0,1,,31} alaphalmazon Genetikus algoritmussal: Reprezentáció: bináris, pl. 01101 13 Populáció méret: 4 Keresztezés, mutáció Rulett kerék szelekció Véletlenszerű inicializálás EVOLÚCIÓS ALGORITMUSOK GENETIKUS ALGORITMUSOK 12
Egy példa: szelekció EVOLÚCIÓS ALGORITMUSOK GENETIKUS ALGORITMUSOK 13
Egy példa: keresztezés EVOLÚCIÓS ALGORITMUSOK GENETIKUS ALGORITMUSOK 14
Egy példa: mutáció EVOLÚCIÓS ALGORITMUSOK GENETIKUS ALGORITMUSOK 15
Alternatív keresztezés operátorok n-pontos: uniform: EVOLÚCIÓS ALGORITMUSOK GENETIKUS ALGORITMUSOK 16
Valós GA Keresztezés például: szülők: x1,,xn és y1,,yn utód1: αx+(1-α)y a másik utódra felcserélve pl.: (a = 0.5) Mutáció: x= x1,,xn x = x 1,,x n xi,x i [LBi,UBi] EVOLÚCIÓS ALGORITMUSOK GENETIKUS ALGORITMUSOK 17
Evolúció stratégia (1+1)-ES: egy szülő egy mutált utódot hoz létre és a jobbat fogadjuk el (iteratív javítás) (μ+1)-es: μ szülő hoz létre 1 utódot (μ+λ)-es: μ szülő hoz létre λ utódot, és a legjobb μ fog túlélni az egyesített szülő és utód populációból (μ,λ)-es: μ szülő hoz létre λ utódot, és a legjobb μ fog túlélni az utód populációból EVOLÚCIÓS ALGORITMUSOK EVOLÚCIÓ STRATÉGIÁK 18
Evolúció stratégiák kódolás: fenotípus (valós szám, egész) szelekció mutáció μ: populáció mérete λ: leszármattak száma (μ,λ)-es: diszkrét modell (μ+λ)-es: folytonos modell (µ+λ)-es λ gyerek mutáció rangsor legjobb µ egyed µ egyed Populáció(t) Populáció(t+1) EVOLÚCIÓS ALGORITMUSOK EVOLÚCIÓ STRATÉGIÁK 19
Különböző evolúció stratégiák (µ+λ)-es szülők gyerekek (1,1)-ES: véletlen keresés szülő gyerek (1+1)-ES: hegymászó alg. (1+λ)-ES: többpontos szomszédos keresés (µ+1)-es: állandósult Steady-state állapotú GA szülők szülő szülő gyerek gyerekek gyerek EVOLÚCIÓS ALGORITMUSOK EVOLÚCIÓ STRATÉGIÁK 20
Bakteriális evolúciós algoritmusok Természetből ellesett optimalizációs technika A baktériumok evolúciós folyamatán alapul Alkalmas bonyolult optimalizációs problémák megoldására Egyed: egy megoldás a problémára Intelligens keresési stratégia eléggé jó megoldás keresésére (kvázi optimum) Gyors konvergencia (feltételesen) EVOLÚCIÓS ALGORITMUSOK BAKTERIÁLIS EVOLÚCIÓS ALGORITMUSOK 21
Az algoritmus Kezdeti populáció véletlenszerű létrehozása Bakteriális mutáció végrehajtása minden egyeden Génátadás végrehajtása a populációban Ha megfelelő eredményt értünk el, akkor megállunk, különben folytatjuk a bakteriális mutációs lépéssel n. generáció (n+1). generáció EVOLÚCIÓS ALGORITMUSOK BAKTERIÁLIS EVOLÚCIÓS ALGORITMUSOK 22
Bakteriális mutáció 1. rész i. rész n. rész Egy rész véletlenszerű kiválasztása Az i. részt változtatjuk az N klón számú másolatban, de az eredeti baktériumban nem A legjobb baktérium átadja az i. részt a többi baktériumnak Ismételjük addig, amíg az összes részt ki nem választottuk EVOLÚCIÓS ALGORITMUSOK BAKTERIÁLIS EVOLÚCIÓS ALGORITMUSOK 23
Génátadás 1. A populációt 2 részre osztjuk, jó egyedekre, és rossz egyedekre 2. Egy baktériumot véletlenszerűen kiválasztunk a jobbik alpopulációból (forrásbaktérium) egy másikat pedig a rossz egyedek közül (célbaktérium) 3. A forrásbaktérium egy része felülírja a célbaktérium egy részét Ez a ciklus ismétlődik N inf -szer ( infekciók száma) jó egyedek rossz egyedek EVOLÚCIÓS ALGORITMUSOK BAKTERIÁLIS EVOLÚCIÓS ALGORITMUSOK 24
Paraméterek Ngen: generációk száma Nind: egyedek száma Nklón: másolatok (klónok) száma a bakteriális mutációban Ninf: génátadások (infekciók) száma a génátadásnál EVOLÚCIÓS ALGORITMUSOK BAKTERIÁLIS EVOLÚCIÓS ALGORITMUSOK 25
Különbségek a GA és a BEA között A GA az emlősállatok evolúciós folyamatát utánozza, míg a BEA a baktériumok fejlődését Az információ terjesztésére a GA a keresztezés operátort használja, a BEA pedig a génátadást A bakteriális mutáció hatékonyabb a GA klasszikus mutációjánál A bakteriális evolúciós algoritmusban nincs szelekció, viszont van osztódás EVOLÚCIÓS ALGORITMUSOK BAKTERIÁLIS EVOLÚCIÓS ALGORITMUSOK 26
Genetikus programozás John Koza (~1990) A genetikus programozás a genetikus algoritmusok alapötletét alkalmazza a lehetséges programok terére Különbözőnek tűnő problémák különböző területekről átfogalmazhatók egy számítógépes program-keresési feladattá EVOLÚCIÓS ALGORITMUSOK GENETIKUS PROGRAMOZÁS 27
Egy számítógépes program EVOLÚCIÓS ALGORITMUSOK GENETIKUS PROGRAMOZÁS 28
Egy számítógépes program C nyelven int foo (int time) { int temp1, temp2; if (time > 10) temp1 = 3; else temp1 = 4; temp2 = temp1 + 1 + 2; return (temp2); } EVOLÚCIÓS ALGORITMUSOK GENETIKUS PROGRAMOZÁS 29
Program fa (+ 1 2 (IF (> TIME 10) 3 4)) EVOLÚCIÓS ALGORITMUSOK GENETIKUS PROGRAMOZÁS 30
Véletlen programok létrehozása Rendelkezésre álló függvények: pl. F = {+, -, *, %, IF} Rendelkezésre álló terminálisok: pl. T = {X, Y, konstansok} A véletlen programok: szintaktikailag érvényesek végrehajthatók A fák különböző méretűek és alakúak lehetnek EVOLÚCIÓS ALGORITMUSOK GENETIKUS PROGRAMOZÁS 31
Genetikus operátorok a GP-ben Reprodukció Mutáció Keresztezés Reprodukció: szülő kiválasztása (fitness alapján) változatlan lemásolása a populáció következő generációjába EVOLÚCIÓS ALGORITMUSOK GENETIKUS PROGRAMOZÁS 32
Mutáció 1 szülő kiválasztása (fitness alapján) A fa egy pontjának kiválasztása A kiválasztott pontnál lévő részfa törlése Új részfa növesztése a mutációs pontnál hasonló módon, mint a kezdeti véletlen fa létrehozásánál Az eredmény egy szintaktikailag érvényes, végrehajtható program legyen A leszármazott elhelyezése a populáció következő generációjába EVOLÚCIÓS ALGORITMUSOK GENETIKUS PROGRAMOZÁS 33
Függvény mutáció kiválasztott csomópont * + T4 * + T4 + T3 T6 * T1 T2 T5 T7 új részfa a függvény mutáció után EVOLÚCIÓS ALGORITMUSOK GENETIKUS PROGRAMOZÁS 34
Terminális mutáció * * + T4 + T4 + T3 + T5 T1 T2 kiválasztott csomópont T1 T2 megváltozott csomópont EVOLÚCIÓS ALGORITMUSOK GENETIKUS PROGRAMOZÁS 35
Keresztezés 2 szülő kiválasztása (fitness alapján) Az első szülő fájában egy pont véletlen kiválasztása A második szülő fájában egy pont véletlen kiválasztása A két kiválasztott ponthoz tartozó részfák kicserélése Az eredmények szintaktikailag érvényes, végrehajtható programok legyenek A leszármazottak elhelyezése a populáció következő generációjába EVOLÚCIÓS ALGORITMUSOK GENETIKUS PROGRAMOZÁS 36
Keresztezés EVOLÚCIÓS ALGORITMUSOK GENETIKUS PROGRAMOZÁS 37
Előkészítő lépések A terminálisok halmazának meghatározása A függvények halmazának meghatározása A fitness mérték meghatározása A futtatás paramétereinek meghatározása A megállási feltétel meghatározása EVOLÚCIÓS ALGORITMUSOK GENETIKUS PROGRAMOZÁS 38
Egy példa: szimbolikus regresszió Független változó (X) Függő változó (Y) -1.00 1.00-0.80 0.84-0.60 0.76-0.40 0.76-0.20 0.84 0.00 1.00 0.20 1.24 0.40 1.56 0.60 1.96 0.80 2.44 1.00 3.00 EVOLÚCIÓS ALGORITMUSOK GENETIKUS PROGRAMOZÁS 39
Előkészítő lépések Cél: Találjunk egy egybemenetű (X független változó) számítógépes programot, amelynek a kimenete megegyezik a kívánt kimenettel. 1 Terminális halmaz: T={X, konstansok} 2 Függvény halmaz: F={+, -, *, %} 3 Fitness: A program kimenetei és a kívánt kimenetek közötti különbségek abszolútértékeinek összege. 4 Paraméterek: Populáció mérete: M=4 5 Megállási feltétel: Ha kialakul egy olyan egyed, amelynél az abszolút hibák összege kisebb, mint 0.1. EVOLÚCIÓS ALGORITMUSOK GENETIKUS PROGRAMOZÁS 40
Szimbolikus regresszió (x 2 +x+1) 4 véletlenszerűen létrehozott egyed populációja (0. generáció): EVOLÚCIÓS ALGORITMUSOK GENETIKUS PROGRAMOZÁS 41
Szimbolikus regresszió (x 2 +x+1) A 4 egyed fitness értéke a 0. generációban: x+1 x 2 +1 2 x 0.67 1.00 1.70 2.67 EVOLÚCIÓS ALGORITMUSOK GENETIKUS PROGRAMOZÁS 42
Szimbolikus regresszió (x 2 +x+1) 1. generáció: (a) másolata (c) mutánsa mutációs pont a 2 -nél (a) és (b) keresztezésének első leszármazottja keresztezési pont a + -nál (a) és a legbaloldalibb x -nél (a) és (b) keresztezésének második leszármazottja keresztezési pont a + -nál (a) és a legbaloldalibb x -nél EVOLÚCIÓS ALGORITMUSOK GENETIKUS PROGRAMOZÁS 43