evolúciós algoritmusok informatikai... · –evolúciós programozás (lawrence fogel, 1962),...
TRANSCRIPT
Evolúciós algoritmusok
Evolúciós algoritmusok
• Alapelvük a megoldások egy populációjántörténő keresés, melyet a biológiábólmegismert törvényszerűségek vezérelnek–A populáció egyedei a feladat egy-egymegoldását jelentik
–A populáció fejlődik, egyre jobbegyedeket 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ő klasszikusterület:–Evolúciós programozás (Lawrence Fogel, 1962),–Genetikus algoritmusok (Holland, 1975)–Evolúció 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ípusokmegoldá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
3EVOLÚCIÓS ALGORITMUSOK BEVEZETÉS
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: sztochasztikusmó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 egyspeciá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
5EVOLÚCIÓS ALGORITMUSOK BEVEZETÉS
A populáció evolúciója
Egyedek eloszlása a 0. generációban
Egyedek eloszlása a N. generációban
6EVOLÚCIÓS ALGORITMUSOK BEVEZETÉS
Genetikus algoritmus
egyedek rangsorolása
kezdeti populáció létrehozása
szelekció
keresztezés
mutáció
visszahelyettesítés
7EVOLÚCIÓS ALGORITMUSOK GENETIKUS ALGORITMUSOK
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): azegyedeket valamilyen kritérium szerintértékeljük ki, aszerint, hogy mennyire jómegoldást adnak a feladatra
• Jobb egyednek nagyobb a fitnesz értéke, ésnagyobb eséllyel él túl
8EVOLÚCIÓS ALGORITMUSOK GENETIKUS ALGORITMUSOK
Szelekciós módszerek
• többféle kiválasztásimódszer terjedt el
• minél jobb az egyed, annálnagyobb az esély a kiválasztására
• Rulett kerék szelekció: azegyedek a fitnesz értékükkelarányos szeletet kapnak
• a gurításnál a nagyobbfitnesz értékű egyedeknagyobb eséllyelvá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ásapm valószínűséggel (mutációs arány)
EVOLÚCIÓS ALGORITMUSOK GENETIKUS ALGORITMUSOK 11
Egy példa (Goldberg)
• Egyszerű probléma: x2 maximumánakmegkeresé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ódothoz 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ítettszü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ó
(µ+λ)-ES
µ
egyed
λ gyereklegjobb µ
egyedmutáció
Populáció(t)
rangsor
Populáció(t+1)
19
• μ: populáció mérete
• λ: leszármattak száma
• (μ,λ)-ES: diszkrét modell
• (μ+λ)-ES: folytonos modell
EVOLÚCIÓS ALGORITMUSOK EVOLÚCIÓ STRATÉGIÁK
Különböző evolúció stratégiák
(µ+λ)-ES
szülők gyerekek
(µ+1)-ES: Steady-state GA
szülők gyerek
(1,1)-ES: véletlen keresés
szülő gyerek
(1+1)-ES: hegymászó alg.
szülő gyerek
(1+λ)-ES: többpontos
szomszédos keresésszülő gyerekek
(µ+1)-ES: állandósult állapotú GA
20EVOLÚCIÓ STRATÉGIÁKEVOLÚCIÓS ALGORITMUSOK
Bakteriális evolúciós algoritmusok
•Természetből ellesett optimalizációstechnika
•A baktériumok evolúciós folyamatánalapul
•Alkalmas bonyolult optimalizációsproblé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)
21EVOLÚCIÓS ALGORITMUSOK BAKTERIÁLIS EVOLÚCIÓS ALGORITMUSOK
Az algoritmus
• Kezdeti populációvéletlenszerűlétrehozása
• Bakteriális mutációvégrehajtása mindenegyeden
• Génátadás végrehajtásaa populációban
• Ha megfelelő eredménytértünk el, akkormegállunk, különbenfolytatjuk a bakteriálismutációs lépéssel
n. generáció
(n+1).generáció
22EVOLÚCIÓS ALGORITMUSOK BAKTERIÁLIS EVOLÚCIÓS ALGORITMUSOK
Bakteriális mutáció
23EVOLÚCIÓS ALGORITMUSOK BAKTERIÁLIS EVOLÚCIÓS ALGORITMUSOK
Génátadás1. A populációt 2 részre
osztjuk, jó egyedekre, és rossz egyedekre
2. Egy baktériumotvéletlenszerűenkiválasztunk a jobbikalpopulációból(forrásbaktérium) egymásikat pedig a rosszegyedek közül(célbaktérium)
3. A forrásbaktérium egyrésze felülírja a célbaktérium egy részét
Ez a ciklus ismétlődikNinf -szer (“infekciók” száma)
24EVOLÚCIÓS ALGORITMUSOK BAKTERIÁLIS EVOLÚCIÓS ALGORITMUSOK
…
…
Rossz
egyedek
Jó
egyedek
Populáció
Paraméterek
• Ngen: generációk száma
• Nind: egyedek száma
• Nklón: másolatok (klónok) száma a bakteriálismutá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átutánozza, míg a BEA a baktériumok fejlődését
• Az információ terjesztésére a GA a keresztezésoperátort használja, a BEA pedig a génátadást
• A bakteriális mutáció hatékonyabb a GA klasszikusmutációjánál
• A bakteriális evolúciós algoritmusban nincsszelekció, 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 genetikusalgoritmusok 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 egyszámítógépes program-keresési feladattá
27EVOLÚCIÓS ALGORITMUSOK GENETIKUS PROGRAMOZÁS
Egy számítógépes program
28EVOLÚCIÓS ALGORITMUSOK GENETIKUS PROGRAMOZÁS
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);
}
29EVOLÚCIÓS ALGORITMUSOK GENETIKUS PROGRAMOZÁS
Program fa
(+ 1 2 (IF (> TIME 10) 3 4))
30EVOLÚCIÓS ALGORITMUSOK GENETIKUS PROGRAMOZÁS
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ó
*
+ T4
T3
T2T1
+
*
+ T4
*T6
T5 T7
kiválasztottcsomópont
új részfa a függvény mutáció után
34EVOLÚCIÓS ALGORITMUSOK GENETIKUS PROGRAMOZÁS
Terminális mutáció
*
+ T4
T3
T1 T2
+
*
+ T4
T5
T1 T2
+
kiválasztottcsomópont
megváltozottcsomópont
35EVOLÚCIÓS ALGORITMUSOK GENETIKUS PROGRAMOZÁS
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
37EVOLÚCIÓS ALGORITMUSOK GENETIKUS PROGRAMOZÁS
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ó (x2+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ó (x2+x+1)
• A 4 egyed fitness értéke a 0. generációban:
x+1 x2+1 2 x
0.67 1.00 1.70 2.67
EVOLÚCIÓS ALGORITMUSOK GENETIKUS PROGRAMOZÁS 42
Szimbolikus regresszió (x2+x+1)
• 1. generáció:
(a) másolata
(c) mutánsa
mutációs ponta “2”-nél
(a) és (b) keresztezésénekelső leszármazottja
keresztezési pont a “+”-nál(a) és a legbaloldalibb “x”-nél
(a) és (b) keresztezésénekmásodik leszármazottja
keresztezési pont a “+”-nál(a) és a legbaloldalibb “x”-nél
EVOLÚCIÓS ALGORITMUSOK GENETIKUS PROGRAMOZÁS 43
Evolúciós elméletek
• Jean-Baptiste Lamarck
• A szerzett tulajdonságok öröklésének elmélete
• Ha egy organizmus változik az élete során, hogy ezáltal jobbanadaptálódjon a környezetéhez, ezeket a változásokat továbbadja azutódainak
• Charles Darwin
• A szerzett tulajdonságok nem öröklődnek
• Az organizmus élete során bekövetkező változásai nincsenekhatással a faj fejlődésére
• James M. Baldwin
• Új faktor az evolúcióban
• A szerzett tulajdonságok indirekten öröklődhetnek
EVOLÚCIÓS ALGORITMUSOK MEMETIKUS ALGORITMUSOK 44
Memetikus algoritmusok
• Az evolúciós algoritmusoknak lokális keresőoperátorokkal történő olyan kombinációja, ahol a lokális keresés az evolúciós ciklusonbelül zajlik
• A memetikus algoritmusokat Moscatojavasolta (~1989)
• A lokális keresést élethosszig tartótanulásnak lehet tekinteni
• Terminológia:–mém = a kulturális evolúció alapegysége(„génje”) (Dawkins: Az önző gén, 1976)
–”mimema”: utánzás
EVOLÚCIÓS ALGORITMUSOK MEMETIKUS ALGORITMUSOK 45
Miért kombináljuk őket?
• Evolúciós algoritmusok
• Nagy, durva keresési teret járnak be
• Nehézségek a finomhangolással
• Lokális kereső technikák
• Gyorsan optimizálnak, konvergálnak
• Lokális optimumokba ragadnak
• Hátrányok:
• A tanulás költséges
• A tanulás nem mindig jó
EVOLÚCIÓS ALGORITMUSOK MEMETIKUS ALGORITMUSOK 46
Bakteriális memetikus algoritmus
• Kezdeti populációvéletlenszerű létrehozása
• Bakteriális mutációvégrehajtása mindenegyeden
• Lokális keresésvégrehajtása mindenbaktériumon
• Génátadás végrehajtása a populációban
• Ha megfelelő eredménytértünk el, akkormegállunk, különbenfolytatjuk a bakteriálismutációs lépéssel (n+1).
generáció
Bakteriális mutáció
Génátadás
n. generáció
Lokális keresés
MEMETIKUS ALGORITMUSOKEVOLÚCIÓS ALGORITMUSOK 47
Az intelligencia elemei biológiai rendszerekben
RAJINTELLIGENCIA BEVEZETÉS 48
Evolúció
Versengés
Reprodukció
RajzásKommunikáció
Tanulás
Rajintelligencia
49
• Egy kollektív rendszer, amely képes bonyolult feladatok elvégzésére dinamikus és változó környezetben bármilyen külső irányítás és központi koordináció nélkül
• Olyan kollektív teljesítmény elérésére képes, amelyet általában az élőlény önmagában nem tud elérni
• Ennek alapján egy természetes modellt tudunk felállítani, amely alkalmas az elosztott problémamegoldásra
RAJINTELLIGENCIA BEVEZETÉS
Rajintelligencia
50RAJINTELLIGENCIA BEVEZETÉS
Rajintelligencia
51RAJINTELLIGENCIA BEVEZETÉS
Rajintelligencia
52RAJINTELLIGENCIA BEVEZETÉS
Részecske raj optimalizáció (PSO)
53
• A PSO a szociális interakció koncepcióját alkalmazza a problémamegoldásra
• Számos úgynevezett részecskét használ, amelyek rajban mozognak a keresési térben a legjobb megoldást keresve
• Az egyes részecskéket térbeli pontként kezeli, amely a „repülését” a saját repülési tapasztalata, valamint más részecskék repülési tapasztalata alapján módosítja
RAJINTELLIGENCIA RÉSZECSKE RAJ OPTIMALIZÁCIÓ (PSO)
Részecske repülési modell
54
• pbest: a részecske által eddig elért legjobb megoldás
• gbest: az egész raj által eddig elért legjobb megoldás
• A PSO alapelve, hogy az egyes részecskék felgyorsulnak a pbest és a gbest helyek felé, minden alkalommal véletlenszerűen súlyozott gyorsulással
RAJINTELLIGENCIA RÉSZECSKE RAJ OPTIMALIZÁCIÓ (PSO)
Részecske repülési modell
55
ks
kpbest
kgbest
kv
1kv
1ks
kpbestd
kgbestd
1 2
k kpbestk gbestd dv w w 11 ()c rw and
22 ()c rw and
kv∆
∆
RAJINTELLIGENCIA RÉSZECSKE RAJ OPTIMALIZÁCIÓ (PSO)
Részecske repülési modell
56
• minden részecske a következő információk alapján módosítja a pozícióját:
• a jelenlegi pozíció• a jelenlegi sebesség• a távolság a jelenlegi
pozíció és a pbest között• a távolság a jelenlegi
pozíció és a gbest közöt
ks
kpbest
kgbest
kvkv
1kv 1kv
1ks
kpbestd
kgbestd
1 2
k kpbestk gbestd dv w w 11 ()c rw and
22 ()c rw and
kvkv
∆
∆
RAJINTELLIGENCIA RÉSZECSKE RAJ OPTIMALIZÁCIÓ (PSO)
PSO példa
57RAJINTELLIGENCIA RÉSZECSKE RAJ OPTIMALIZÁCIÓ (PSO)
PSO példa – inicializálás
58RAJINTELLIGENCIA RÉSZECSKE RAJ OPTIMALIZÁCIÓ (PSO)
PSO példa – 5 generáció után
59RAJINTELLIGENCIA RÉSZECSKE RAJ OPTIMALIZÁCIÓ (PSO)
PSO példa – 10 generáció után
60RAJINTELLIGENCIA RÉSZECSKE RAJ OPTIMALIZÁCIÓ (PSO)
PSO példa – 15 generáció után
61RAJINTELLIGENCIA RÉSZECSKE RAJ OPTIMALIZÁCIÓ (PSO)
PSO példa – 20 generáció után
62RAJINTELLIGENCIA RÉSZECSKE RAJ OPTIMALIZÁCIÓ (PSO)
PSO példa – 25 generáció után
63RAJINTELLIGENCIA RÉSZECSKE RAJ OPTIMALIZÁCIÓ (PSO)
PSO példa – 100 generáció után
64RAJINTELLIGENCIA RÉSZECSKE RAJ OPTIMALIZÁCIÓ (PSO)
PSO példa – 500 generáció után
65RAJINTELLIGENCIA RÉSZECSKE RAJ OPTIMALIZÁCIÓ (PSO)
PSO példa – eredmény
66
iteráció gBest
0 416.245599
5 515.748796
10 759.404006
15 793.732019
20 834.813763
100 837.911535
5000 837.965771
optimum 837.9658
400
450
500
550
600
650
700
750
800
850
1 4 16 64 256 1024 4096
"sample.dat"
RAJINTELLIGENCIA RÉSZECSKE RAJ OPTIMALIZÁCIÓ (PSO)
Mi a számítási intelligencia?
•A számítási intelligencia technikáklegfontosabb közös jellemzője, hogyképesek elfogadható szuboptimális, közelítő megoldást adni, miközben a számítási bonyolultságot kezelhető, általában alacsony fokú polinomszintjén tartják
67SZÁMÍTÁSI INTELLIGENCIA
Számítási intelligencia
• A számítási intelligencia technikák képesekelfogadható közelítő megoldást adni a problémára, miközben a számításibonyolultságot kezelhető szintjén tartják
• Fuzzy rendszerek: szabályalapú megközelítés
• Neurális hálózatok: minták alapján történőtanulás
• Evolúciós algoritmusok: optimalizálás, tanítás
68SZÁMÍTÁSI INTELLIGENCIA