Genetikus Algoritmus

Download Report

Transcript Genetikus Algoritmus

Genetikus algoritmus


“A genetikus
algoritmusok
segítségével óriási
méretű paraméter teret
vizsgálhatunk meg, hogy
megtaláljuk különböző
dolgok optimális
kombinációját.
Olyan megoldásokat,
amelyeket egyébként egy
egész életen át
kereshetnénk.”
Salvatore Mangano
Computer Design, May 1995
Biológiai gén felépítése – a kettős spirál
1. oldal
Genetikus Algoritmus
Biológiai háttér (a sejt)
• Minden biológiai sejt nagy számú apró „komplex rendszer”
(termelő-, fogyasztó egységek) együttes működése
• Melynek a sejtmag a központja.
• A sejtmag tartalmazza a genetikus információt.
2. oldal
Genetikus Algoritmus
Biológiai háttér (a kromoszómák)
• A genetikus információt a kromoszómák tartalmazzák
• Minden kromoszóma DNS-ből (dezoxiribonuklein savból) épül fel.
• Az ember kromoszómái ún. párokból állnak.
• Az emberi kromoszómában 23 pár van.
• A kromoszómák kisebb részekből állnak, ezek a: gének.
• A gének kódolják a tulajdonságokat.
• Egy tulajdonság tárolását a génben
allél-nek nevezzük.
• Minden génnek meghatározott poziciója van a kromoszómában ez a locus.
3. oldal
Genetikus Algoritmus
Biológiai háttér (a kromoszómák)
Egy sejt összes metafázisú kromoszómája méret és más jellemzők
szerint rendezve
metafázis: a gén sejtosztódás egyik szakasza, amelynek folyamán a kromoszómák a sejt egyenlítői
sikjában helyezkednek el.
4. oldal
Genetikus Algoritmus
Biológiai háttér (reprodukció)
• A genetikai információ reprodukálása
• Mitosis
• Meiosis
• Mitosis ugyanazon genetikai
információ másolása
egy új egyedbe: nincs
információ változtatás
A mitosis a több cellából álló
rendszerek növekedésének
normális útja, ilyenek például
a szervek.
5. oldal
Genetikus Algoritmus
Biológiai háttér (reprodukció)
• Meiosis a sexuális reprodukció alapja
• A meiotikus osztódás után 2 gametes
jelenik meg az eljárásban
• A reprodukciós eljárásban a 2
gameter összekapcsolódik egy
zygotává, amely egy új egyeddé válik
• Így a genetikus információ (adott
arányaban) a két szülőtől származik
és az új egyed ezekkel a genetikus
információkkal rendelkezik
6. oldal
Genetikus Algoritmus
Biológiai háttér (reprodukció)
• A reprodukció alatt „hibák” történnek
• Ezek a „hibák” genetikus variációkat hoznak létre
• A legjelentősebb „hibák” :
• Rekombináció (keresztezés)
• Mutáció
7. oldal
Genetikus Algoritmus
Biológiai háttér
(természetes kiválasztódás)
• A fajok fennmaradása: „A kecsegtető variációk megőrzése
és a kevésbé értékes variációk visszautasítása”
• Általánosan több egyed születik, mint amennyi képes a
túlélésre így folyamatos a küzdelem a túlélésért.
• Azok az egyedek maradnak fenn, amelyek (egyre) jobb
tulajdonságokkal rendelkeznek a túléléshez: csak a legjobb
egyed/struktúra éli túl a többi kevésbé sikeres
egyedet/struktúrát.
8. oldal
Genetikus Algoritmus
A genetikus algoritmus
műszaki feladatoknál


Közvetlen (direkt) kereső algoritmus, amely a
biológiai evolúció mechanizmusán alapul.
John Holland, (University of Michigan) dolgozta ki az
1970-es években.
 Hogy megértse az adaptív (alkalmazkodási)
folyamatokat a természetes rendszerekben.
 Hogy olyan mesterségesen intelligens programot
hozzon létre, amely utánozza a természetes
rendszerek robosztus viselkedését.
9. oldal
Genetikus Algoritmus
A genetikus algoritmus
műszaki feladatoknál


Egy effektív, gyors optimalizációs technika a
gépi tanulási / tanítási alkalmazásokhoz.
Széles körben alkalmazzák napjainkban a
gazdasági, tudományos és műszaki életben
egyaránt.
10. oldal
Genetikus Algoritmus
Keresési eljárások osztályai
Search techniques
Calculus-based techniques
Direct methods
Finonacci
Guided random search techniques
Indirect methods
Newton
Evolutionary algorithms
Evolutionary strategies
11. oldal
Dynamic programming
Genetic algorithms
Parallel
Centralized
Simulated annealing
Enumerative techniques
Distributed
Sequential
Steady-state
Generational
Genetikus Algoritmus
Keresési eljárások osztályai
Keresési eljárások
Irányított véletlen keresési technikák
Szimulált hűtés
Evolúciós algoritmus
Evolúciós stratégiák
Genetikus algoritmus
Sorrendi
Központosított
12. oldal
Párhuzamos
Elosztott
Állandósult
Generációs
Genetikus Algoritmus
A genetikus algoritmus elemei
Egy probléma amit meg kell oldani, valamint...






kódolási technika
(gén, kromoszóma)
inicializációs eljárás
(populáció létrehozása)
célfüggvény meghatározás (a keresési térben)
szülők kiválasztása
(reprodukció)
genetikus operátorok (keresztezés, mutáció)
paraméter beállítások (gyakorlat és művészet)
13. oldal
Genetikus Algoritmus
Egyszerű genetikus algoritmus
{
a populáció létrehozása;
a populáció célfüggvénye(i)nek kiszámítása;
while megállási_feltétel_nem teljesül
{
szülők kiválasztása az új elem(ek) létrehozásához;
keresztezés és mutáció;
a populáció célfüggvénye(i)nek kiszámítása;
}
}
14. oldal
Genetikus Algoritmus
A genetikus algoritmus
keresési ciklusa
új elemek
másolat készítés
szülő elemek
inicializálás
populáció
törölt
elemek
kiértékelt elemek
módosítás
módosított
elemek
értékelés
törlés
15. oldal
Genetikus Algoritmus
Populáció
inicializálás
populáció
A kromoszómák (a populáció elemei ) lehetnek:






bit stringek
(010101001011011010)
valós számok
(43.2, -33.1, ... 0.0, 89.2)
elemek permutációja
(E11, E3, E7, ... E1, E15)
szabályok listája
(R1, R2, R3, ... R22, R23)
program elemek
(genetic, programming)
... bármilyen adat struktúra ...
16. oldal
Genetikus Algoritmus
Bitstring kromoszóma
paraméterek
kromoszoma (bit string)
a gén = 1 bit
egész számok tartománya
lineáris dekódolás
paraméter értékhatárok
17. oldal
x=26+13*(4/31) = 27.68
Genetikus Algoritmus
Bitstring kromoszóma
A függvény:
f(x1, x2) = 20-(x1–x10)^2 + (x2–x20)^2
ahol x10 és x20 konstans értékek
18. oldal
Genetikus Algoritmus
Valós számok kromoszóma
gén = egy valós szám
x0
x1
Valós szám kromószóma = valós számok vektora
19. oldal
Genetikus Algoritmus
Elemek permutációja kromoszóma
kromoszóma (az elemek sorrendje)
gén = egy sorszám adott pozición
reprezentáció gráf segítségével
20. oldal
Genetikus Algoritmus
Reprodukció
másolat készítés
kiválsztott szülők
lehetséges szülők
populáció
•Véletlenszerűen kiválasztott szülők,
•a kiválasztás valószínűsége a kromoszómához
rendelt függvényértékkel (jósági értékkel,
fitness value) arányos.
21. oldal
Genetikus Algoritmus
Reprodukció: Fitness Function
Bitstring kromoszóma
Valós számok kromoszóma
22. oldal
Fitness(x,y) bármilyen
számított érték
Genetikus Algoritmus
Reprodukció: Fitness Function
kromoszóma (elemek sorrendje)
Fitness ( kromoszóma )
például a távolság az adott
poziciókban lévő pontok
között
23. oldal
Genetikus Algoritmus
Rulett kerék kiválasztási eljárás
A fitness értékek „tortája”
a populációban
F[pv4]
F[pv5]
F[pv3]
F[pv2
]
F[pv6]
F[pv1]
F[pv7]
F[pv8]
terület = fitness(x7,y7)
24. oldal
Genetikus Algoritmus
Reprodukció: Sorrendi kiválasztás






Sorrendbe állítás egy szülő kiválasztási eljárás, amely az
egyes kromoszómák sorrenjén alaőpul.
Minden kromoszómát sorrendbe állítunk a hozzá tartozó
fitness érték alapján.
r1 értéket rendeljük a legrosszabb fitness értékhez; r2 értéket
a második legrosszabhoz és így tovább...
Magasabb fitness értéknek magasabb sorrendi értéke (is) van,
ami azt jelenti, hogy nagyobb valószínűséggel lesz kiválasztva
szülőként.
Határozzuk meg a a sorrendek összegét: eredmény az Rsum.
Szülő választás: Véletlen szám generálás 0 és Rsum között.
25. oldal
Genetikus Algoritmus
Reprodukció: Kiválasztás versenyeztetéssel



Versenyeztetéses kiválasztás a genetikus
algoritmusoknál alkalmazott sok kiválasztási eljárás közül
az egyik, amely néhány véletlenszerűen kiválasztott
populáció elem közül a legjobb fitness értékkel rendelkezőt
választja ki a keresztezéshez.
Ha a versenyeztetett elemek száma nagyobb a gyengébb
(fitness értékű) elemek kiválasztásának esélye kisebb lesz.
Az egy elemet kiválasztó verseny megegyezik a véletlen
kiválasztással.
26. oldal
Genetikus Algoritmus
Módosítás
kiválasztott szülők
módosítás
gyermek(ek)
A módosításokat sztochasztikusan idézzük elő:
 Műveletek típusai:

Keresztezés ( a keresztezés valószínűségével )

Mutáció
27. oldal
( a mutáció valószínűségével )
Genetikus Algoritmus
Módosítás: Keresztezés
vágás
P1
P2
(0 1 1 0 1 0 0 0)
(1 1 0 1 1 0 1 0)
(1 1 0 0 1 0 0 0)
(0 1 1 1 1 0 1 0)
Ch1
Ch2
A keresztezés a genetikus algoritmus fontos tulajdonsága:
 Nagymértékben gyorsítja a keresését a populáció kezdeti
keresési lépéseinél
 A sémák nagyon hatásos kombinációját hozza létre
(részmegoldásokat a különböző kromoszómákon)
28. oldal
Genetikus Algoritmus
Módosítás: Mutáció
véletlen kiválasztott pozició(k)
Bitstring kromoszóma
Előtte:
(1 0 1 1 0 1 1 0)
Utána:
(0 1 1 0 0 1 1 0)
Valós szám kromoszóma


Előtte:
(1.38 -69.4 326.44 0.1)
Utána:
(1.38 -67.5 326.44 0.1)
Paraméter változtatást okoz a keresési térben (lokális
vagy globális változást)
Helyreállítja az elvesztett információt a populációban
29. oldal
Genetikus Algoritmus
Értékelés
értékkel rendelkező
gyermekek
gyermek(ek)
kiértékelő


A kiértékelő dekódolja a kromoszóma által hordozott
bemeneti paraméter értékeket és hozzárendeli a
kiszámított függvény értéket (jósági értéket, fitness
value).
A kiértékelő csak egy kapcsolat az egyszerű klasszikus
genetikus algoritmus és a megoldandó probléma között.
30. oldal
Genetikus Algoritmus
Törlés
populáció
törölt
egyedek


törlés
Generációs genetikus algoritmus:
az eredeti populáció minden elemét helyettesítjük
minden iterációban.
Állandósult állapotú genetikus algoritmus:
csak adott számú elemet helyettesítünk minden
generációban.
31. oldal
Genetikus Algoritmus
A folyamat animált formában
32. oldal
Genetikus Algoritmus
“A géntechnológia még ma is minden szempontból a
legkifinomultabb programozási rendszer.”
“The Gene is by far the most sophisticated program around.”
- Bill Gates, Business Week, June 27, 1994
33. oldal
Genetikus Algoritmus
Egy egyszerű példa
Az utazó ügynök problémája (TSP):
Kersssük meg az útvonalat különböző
városok között a következő feltételekkel:

minden várost csak egyszer látogathatunk
meg
 az városok között megtett teljes útvonalat
minimalizálnunk kell
34. oldal
Genetikus Algoritmus
Kódolás (TSP)
A problémát a városok egy sorrendi
listájával kódoljuk. A számok így
egy sorrend alapú GA-t valósítanak meg.
1) London
2) Velence
VárosLista1
VárosLista2
35. oldal
3) Budapest
4) Singapur
5) Peking 7) Tokió
6) Phoenix 8) New York
(3 5 7 2 1 6 4 8)
(2 5 7 6 8 1 3 4)
Genetikus Algoritmus
Keresztezés (TSP)
A keresztezés együttesen alkalmazza az
inverziót és a rekombinációt:
véletlenül kiválasztott poziciók
Szülő2
*
*
(3 5 7 2 1 6 4 8)
(2 5 7 6 8 1 3 4)
Gyermek
(5 8 7 2 1 6 3 4)
Szülő1
36. oldal
Genetikus Algoritmus
Mutáció (TSP)
A mutáció a lista elemeinek sorrendjét
változtatja meg:
véletlenül kiválasztott poziciók
Előtte:
*
*
(5 8 7 2 1 6 3 4)
Utána:
(5 8 6 2 1 7 3 4)
37. oldal
Genetikus Algoritmus
Utazó ügynök probléma
38. oldal
Genetikus Algoritmus
Hátizsák csomagolás
A probléma:
Van N darab tárgyunk, mindegyik meghatározott értékkel és tömeggel.
Rendelkezünk egy hátizsákkal amelynek X kg tömeg a teherbírása.
A feladat, hogy válogassunk össze úgy tárgyakat, hogy a lehető
legnagyobb értéket vihessük magunkkal, de ne lépjük túl a hátizsák
teherbírását.
A probémát genetikus algoritmussal oldhatjuk meg. A kromoszómák
az egyes esetek, a gének pedig azt jelentik, hogy az adott tárgy benne
van a zsákban vagy nem (bitstring kromoszóma). A felső mátrix
tartalmazza a szülő kromoszómákat, az alsó a keresztezett és mutált
kromoszómákat. A mátrixok mellett lévő szám a tárgyak összértéke, azaz
a jósági függvény érteke.
39. oldal
Genetikus Algoritmus
Hátizsák csomagolás
40. oldal
Genetikus Algoritmus
Függvény maximum értéke
Függvény maximum érték meghatározása
(FVM):
Keressük meg egy bementi paramétereivel adott
függvény maximális függvényértékét
(a globális maximumot):
 a bementi paraméterek értelmezési
tartományával megadott paraméter térben
41. oldal
Genetikus Algoritmus
Kódolás (FVM)
A kromoszómát a bemeneti paraméterek
valós számokból álló vektorával kódoljuk.
x = { -20.0, +12.0 }
y = { -20.0, +100.0 }
x1 értelmezési tartomány
x2 értelmezési tartomány
k(i) = [ x(i), y(i) ]
A kromoszóma alakja
k(1) = [ 3.234, 5.111 ]
k(2) = [ 22.12, -3.9234 ]
kromoszóma(1)
kromoszóma(2)
42. oldal
Genetikus Algoritmus
Keresztezés (FVM)
Szülő(1)= [x(1), y(1)];
Szülő(2) = [x(2), y(2)];
a = véletlen szám {0..1} között
Új elem(1) = [ a*x(1) +
a*y(1) +
Új elem(2) = [ {1-a}*x(1)
{1-a}*y(1)
43. oldal
/ típus! /
{1-a}*x(2),
{1-a}*y(2) ] / limitek!!! /
+ a*x(2),
+ a*y(2) ] / limitek!!! /
Genetikus Algoritmus
Mutáció (FVM)
A mutáció a kiválasztott elem értékeinek
véletlenszerű megváltoztatása:
a, b = véletlen számok {0..1} között / típus! /
c = konstans { pl.= 0.25 }
Előtte: [ x1, y1 ]
Utána: [ x1 + (x1max - x1min)*a*c, / limitek!!! /
y1 + (y1max - y1min)*b*c ] / limitek!!! /
44. oldal
Genetikus Algoritmus
Véletlenszám típusok:
Egyenletes eloszlású
 1

f ( x )   (b  a )
0

45. oldal
if a  x  b
egyébként
Genetikus Algoritmus
Véletlenszám típusok:
Exponenciális eloszlású
  e  x
f (x)  
0
46. oldal
for 0  x
egyébként
Genetikus Algoritmus
Véletlenszám típusok:
Normál eloszlású
1

 y
f (x)  
  e
  2  
( x  ) 2
y
2  2
47. oldal
Genetikus Algoritmus
Véletlenszám típusok:
Háromszög eloszlású
checkpoint = ( usual -minimum ) / (
maximum - minimum );
triangledistribution = ( random <=
checkpoint )?
sqrt ( random * ( maximum - minimum
) * (usual - minimum) )+minimum :
maximum - sqrt ((1random)*(minimummaximum)*(usual-maximum)) ;
48. oldal
Genetikus Algoritmus
Függvény maximum értéke
A függvény:
f(x, y) = 20 - (x1 - x0)^2 + (y1 - y0)^2
ahol x0 és y0 konstans értékek
A függvény minimum értékét is
kereshetjük, ilyenkor a -f(x,y)
függvényt maximalizáljuk.
49. oldal
Genetikus Algoritmus
Függvény maximum értéke
2

f ( x )  20   xi   5.0
i 1

2
x10 = 5.0
x20 = 5.0
50. oldal
Genetikus Algoritmus
Függvény maximum értéke
f ( x )  20   xi   xi0
N
2
i 1
x10 = 0.0
x20 = 1.1
x30 = 2.2
x40 = 3.3
.
.
x14 = 4.4
51. oldal
Genetikus Algoritmus
Függvény alak
(struktúra keresése)
Rendelkezésünkre állnak adott bemeneti paraméter
értékekhez tartozó mérési adatok.
Például legyenek ezek egy kör sugara (r) és a hozzá
tartozó mért terület értéke (Area).
Szeretnénk meghatározni azt a függvényt (függvény
alakot, struktúrát), amely megadja a bemeneti és
kimeneti adatok közötti kapcsolatot, az Area(r)
függvényt.
52. oldal
Genetikus Algoritmus
Függvény alak
(struktúra keresése)
53. oldal
Genetikus Algoritmus
Genetikus algoritmus
alkalmazások felépítése

Válasszunk ki az alapvető struktúrákat és eljárásokat:

a kromoszóma kódolását

a populáció méretét, mutációs faktort, ...

kiválasztási és törlési stratégiákat

keresztezési és mutációs operátorokat

Definiáljuk a megállási feltételt

Ügyeljünk a megjelenítésre, skálázhatóságra


A megoldásunk minősíthető költségfüggvény tudjuk létrehozni.
A megoldásunk olyan pontos lesz, mint amilyen pontosnak
minősíthető költségfüggvény tudjuk létrehozni.
54. oldal
Genetikus Algoritmus
A genetikus algoritmus előnyei





Könnyű megérteni a működését.
Moduláris, (könnyen) elválasztható az
optimalizálandó probléma programjától.
Támogatja a több célfüggvénnyel rendelkező
optimalizációkat (is).
Alkalmas „zajos környezetben” történő
optimalizálásra.
Minden esetben ad legalább egy megoldást.
A megoldás az idő (iterációs lépések)
előrehaladtával egyre jobb (pontosabb) lesz.
55. oldal
Genetikus Algoritmus
A genetikus algoritmus előnyei




Számos eljárással felgyorsíthatjuk és autonóm módon
fejleszthetjük genetikus algoritmust alkalmazó
programjainkat, úgy hogy folyamatosan beépítjük az
újabb ismereteket a problémáról, illetve a keresési tér
határairól.
Könnyű kiterjeszteni korábbi megoldásokat, illetve
alternatív megoldásokat létrehozni.
Könnyen építhető blokkokat tartalmaz hibrid
alkalmazásokhoz.
Belső működése alapvetően párhuzamos, könnyű a
futtatása elosztott számítógép hálózaton.
56. oldal
Genetikus Algoritmus
Mikor alkalmazzunk
genetikus algoritmust




Ha más megoldások túlságosan lassúak vagy
túlságosan komplikáltak.
Ha szükségünk van egy kísérleti eszközre az új
elgondolás (algoritmus) kipróbálására.
Ha problémához hasonló feladatot korábban már
sikeresen megoldottunk GA-al.
Ha egy már meglévő GA megoldás kiterjesztését
valósítjuk meg.
57. oldal
Genetikus Algoritmus
Néhány genetikus algoritmus
alkalmazás típus
Terület
Típus
Szabályozás
pneumatikus, hidraulikus rendszerek irányítása,
rakéta (robot) mozgó tárgy követése
integrált áramkör terevezés, repülőgép tervezés,
kommunikációs hálózatok optimalizálása
gyártórendszerek működése, erőforrás elosztás és
telepítés, raktárazási feladatok tervezése végrehajtása
trajektória tervezés
Tervezés
Ütemezés
Robot vezérlés
Gépi tanulás
Játék elmélet
neurális hálózatok tervezése,osztályozó rendszerek
fejlesztése, osztályozó rendszerek, minimális elemű
algoritmus tervezése
szűrők tervezése, zajos jel információtartatlmának
“kihámozása”
póker, egyéb kártyjátékok és játékgép algoritmusok
Kombinatorikus
optimalizálás
utazó ügynök, adott szempontok szerinti útvonal
keresés (pl. raktár), optomális csomagméret
megállapítása
Jelfeldolgozás
58. oldal
Genetikus Algoritmus