genetikai algoritmusok

Embed Size (px)

Citation preview

  • 8/11/2019 genetikai algoritmusok

    1/128

    ELTE

    GENETIKUS ALGORITMUSOK

    SPECI ANYAGA

    Ksztette:

    Salamon Andrs

    2003. Janur 30.

  • 8/11/2019 genetikai algoritmusok

    2/128

    GA speci anyaga 1

    Kivonat

    A jegyzet a Genetikus Algoritmusok cm u speci eloadsait fogja ssze. Az elso fe-jezet megprblja elhelyezni a genetikus algoritmusokat a szmtstechnikn bell. Abiolgia jtkokat tartalmaz bevezets utn az egyszerubb optimalizlsi mdszere-ket tekinti t, vgl a genetikus algoritmusokat is tartalmaz evolcis algoritmusokatismerteti.

    A msodik fejezet mutatja be a genetikus algoritmusokat. A kanonikus GA ismer-tetse utn, az algoritmus egyes elemeit vizsglja meg alaposabban. A fejezet vgn amatematikai httr alapjai is megtallhatak.

    A kvetkezo fejezet az eredeti GA algoritmus tovbbfejlesztseirol szl. Az ismerte-tett mdszereket hasznlva az algoritmus kpes az eredetinl bonyolultabb problmksikeresebb megoldsra is. A fejezet tartalmazza az utazgynk problma szmos k-lnbzo reprezentcit hasznl megoldst is.

    A negyedik fejezet a korbbi fejezetekben lert elmletre pl o alkalmazsokat is-mertet. A bemutatott problmkra pldnknt egy-kt eltro elven mukdo genetikusmegoldst mutat a teljessg ignye nlkl. A bemutatott megoldsok nem felttlenl a

    legsikeresebbek, de megmutatjk, hogy a korbban ismertett elmleti mdszerek tbb-sgt miknt lehet a gyakorlatban alkalmazni.Az utols fejezet a GALOPPS nevu GA csomagot mutatja be. A csomag egyike

    azon GA csomagoknak, melyek ingyenesen elrhetoek s segtsget nyjtanak, ha egyproblmt genetikus algoritmusok segtsgvel szeretnnk megoldani.

  • 8/11/2019 genetikai algoritmusok

    3/128

    Tartalomjegyzk

    1. Biolgira plo algoritmusok 61.1. letjtk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

    1.1.1. Szablyok . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.1.2. Alakzatok . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

    1.2. A Rka-Nyl jtk . . . . . . . . . . . . . . . . . . . . . . . . . . . 121.2.1. Szablyok . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121.2.2. A populcik vltozsa a szimulci sorn . . . . . . . . . . 13

    1.2.3. A populcik vltozsa a Fldn . . . . . . . . . . . . . . . . 131.2.4. A jtk tovbbfejlesztsei . . . . . . . . . . . . . . . . . . . 141.3. Optimalizlsi feladatok . . . . . . . . . . . . . . . . . . . . . . . . 14

    1.3.1. Vletlen keress . . . . . . . . . . . . . . . . . . . . . . . . 141.3.2. Hegymsz mdszer . . . . . . . . . . . . . . . . . . . . . . 151.3.3. Iterlt hegymsz mdszer . . . . . . . . . . . . . . . . . . . 151.3.4. Szimullt lgyts . . . . . . . . . . . . . . . . . . . . . . . . 16

    1.4. Evolcis Algoritmusok . . . . . . . . . . . . . . . . . . . . . . . . 161.4.1. Evolcis Programozs . . . . . . . . . . . . . . . . . . . . . 181.4.2. Evolcis Stratgia . . . . . . . . . . . . . . . . . . . . . . . 191.4.3. Genetikus Algoritmusok . . . . . . . . . . . . . . . . . . . . 191.4.4. Osztlyoz Rendszerek . . . . . . . . . . . . . . . . . . . . . 201.4.5. Genetikus Programozs . . . . . . . . . . . . . . . . . . . . 21

    2. A genetikus algoritmusok ismertetse 232.1. Az evolci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232.2. Genetika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

    2.2.1. Gnek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242.2.2. Szaporods . . . . . . . . . . . . . . . . . . . . . . . . . . . 252.2.3. Mutci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

    2.3. A genetikus algoritmusok alapmodellje . . . . . . . . . . . . . . . . 26

    2.3.1. Az ltalnos GA pszeudo-kdja . . . . . . . . . . . . . . . . 262.4. Egy plda a GA mukdsre . . . . . . . . . . . . . . . . . . . . . . 272.4.1. A feladat . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

    2

  • 8/11/2019 genetikai algoritmusok

    4/128

    GA speci anyaga 3

    2.4.2. A megolds . . . . . . . . . . . . . . . . . . . . . . . . . . . 272.5. Szloprok s tllok kivlasztsa . . . . . . . . . . . . . . . . . . . 29

    2.5.1. Rulettkerk mdszer . . . . . . . . . . . . . . . . . . . . . . 302.5.2. Genercis szakadk . . . . . . . . . . . . . . . . . . . . . . 30

    2.6. A kromoszmareprezentci mdjai . . . . . . . . . . . . . . . . . . 312.6.1. SClekpezsek . . . . . . . . . . . . . . . . . . . . . . 31

    2.7. Mutci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352.7.1. +/- mdszer . . . . . . . . . . . . . . . . . . . . . . . . . . 352.7.2. Gray kd . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362.7.3. Fenotpusos mutcik . . . . . . . . . . . . . . . . . . . . . 37

    2.8. Keresztezs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372.8.1. 1-pontos keresztezs . . . . . . . . . . . . . . . . . . . . . . 372.8.2. Tbbpontos keresztezs . . . . . . . . . . . . . . . . . . . . 382.8.3. Uniform keresztezs . . . . . . . . . . . . . . . . . . . . . . 392.8.4. A keresztezsi mdszerek sszehasonltsa . . . . . . . . . . 392.8.5. Egyb keresztezsi mdszerek . . . . . . . . . . . . . . . . . 40

    2.9. Fitneszfggvny . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

    2.9.1. A fitneszfggvnyek fajti . . . . . . . . . . . . . . . . . . . 412.9.2. Szlovlasztsi technikk . . . . . . . . . . . . . . . . . . . 442.10. A sma elmlet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

    2.10.1. Kivlaszts . . . . . . . . . . . . . . . . . . . . . . . . . . . 472.10.2. Keresztezs . . . . . . . . . . . . . . . . . . . . . . . . . . . 482.10.3. Mutci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

    2.11. Minimlis csalfa problma . . . . . . . . . . . . . . . . . . . . . . . 502.12. Implicit prhuzamossg . . . . . . . . . . . . . . . . . . . . . . . . . 54

    3. Fejlett technikk 563.1. A gn lkusznak kezelse . . . . . . . . . . . . . . . . . . . . . . . 56

    3.1.1. Mutci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 573.1.2. Keresztezs . . . . . . . . . . . . . . . . . . . . . . . . . . . 583.1.3. Permutci optimalizlsa . . . . . . . . . . . . . . . . . . . 61

    3.2. Az utazgynk problma . . . . . . . . . . . . . . . . . . . . . . . 613.2.1. Szomszdsgi vektor . . . . . . . . . . . . . . . . . . . . . . 613.2.2. Sorrendi reprezentci . . . . . . . . . . . . . . . . . . . . . 623.2.3. tvonal-vektor . . . . . . . . . . . . . . . . . . . . . . . . . 633.2.4. Evolcis stratgiban alkalmazott reprezentls . . . . . . . 653.2.5. Mtrixalap reprezentci 1. . . . . . . . . . . . . . . . . . . 663.2.6. Mtrixalap reprezentci 2. . . . . . . . . . . . . . . . . . . 67

    3.3. Prhuzamos Genetikus Algoritmusok . . . . . . . . . . . . . . . . . 683.3.1. Globlis prhuzamosts . . . . . . . . . . . . . . . . . . . . 693.3.2. Durva szemcss prhuzamosts . . . . . . . . . . . . . . . . 70

  • 8/11/2019 genetikai algoritmusok

    5/128

    GA speci anyaga 4

    3.3.3. Finom szemcss prhuzamosts . . . . . . . . . . . . . . . . 713.4. lettr megoszts . . . . . . . . . . . . . . . . . . . . . . . . . . . . 723.5. Diploidits s dominancia . . . . . . . . . . . . . . . . . . . . . . . . 753.6. A GA paramtereinek meghatrozsa . . . . . . . . . . . . . . . . . 76

    3.6.1. Meta-GA . . . . . . . . . . . . . . . . . . . . . . . . . . . . 773.6.2. Adaptv GA . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

    4. Alkalmazsok 814.1. VLSI tervezs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

    4.1.1. A feladat . . . . . . . . . . . . . . . . . . . . . . . . . . . . 814.1.2. Megolds GA-val . . . . . . . . . . . . . . . . . . . . . . . . 82

    4.2. Ktszemlyes jtkok . . . . . . . . . . . . . . . . . . . . . . . . . . 854.2.1. Minimax algoritmus . . . . . . . . . . . . . . . . . . . . . . 854.2.2. Ktszemlyes jtkok s a GA . . . . . . . . . . . . . . . . . 894.2.3. Sakk GA-val . . . . . . . . . . . . . . . . . . . . . . . . . . 904.2.4. Tron GP-vel . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

    4.3. Grfrajzols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

    4.3.1. GRAPH-1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 934.3.2. GRAPH-2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 954.3.3. Eredmnyek . . . . . . . . . . . . . . . . . . . . . . . . . . 97

    4.4. Gpi tanuls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 984.4.1. GABIL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

    4.5. rarendkszts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1024.5.1. Reprezentci . . . . . . . . . . . . . . . . . . . . . . . . . . 1034.5.2. Opertorok . . . . . . . . . . . . . . . . . . . . . . . . . . . 1034.5.3. Prhuzamossg . . . . . . . . . . . . . . . . . . . . . . . . . 104

    4.6. Szlltsi feladat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1054.6.1. Megolds inicializl fggvnnyel . . . . . . . . . . . . . . . 106

    4.6.2. Mtrixos reprezentci . . . . . . . . . . . . . . . . . . . . . 1084.6.3. Eredmnyek . . . . . . . . . . . . . . . . . . . . . . . . . . 111

    5. GALOPPS 1125.1. A kromoszma felptse . . . . . . . . . . . . . . . . . . . . . . . . 1135.2. A paramterek meghatrozsa . . . . . . . . . . . . . . . . . . . . . 1145.3. Callback fggvnyek . . . . . . . . . . . . . . . . . . . . . . . . . . 1155.4. A work alknyvtr . . . . . . . . . . . . . . . . . . . . . . . . . . . 1155.5. Egy egyszeru plda . . . . . . . . . . . . . . . . . . . . . . . . . . . 1165.6. Prhuzamossg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

    5.6.1. Master File (.mst) formtuma . . . . . . . . . . . . . . . . . 119

    5.7. Utazgynk problma megoldsa . . . . . . . . . . . . . . . . . . . 1215.8. Plda vltoz mezomretre . . . . . . . . . . . . . . . . . . . . . . . 122

  • 8/11/2019 genetikai algoritmusok

    6/128

    GA speci anyaga 5

    5.9. Megszaktott futs folytatsa . . . . . . . . . . . . . . . . . . . . . . 124

    A. Ksznetnyilvnts 125

  • 8/11/2019 genetikai algoritmusok

    7/128

    1. fejezet

    Biolgira plo algoritmusok

    A biolgiban tbb olyan jelensggel tallkozhatunk, melyet rdemes lemsolni, ut-nozni. Elg csak a madarak replst nzni, egyes lolnyek hoszigetelsi kpessgeit,vagy a geprd futst megvizsglni. rdekes dolgokat vehetnk szre, ha az egyes l-latok helyett llatok populcijt vizsgljuk. A populci egyazon fajba tartoz, meg-hatrozott idoben s terleten egytt lo, egymssal keresztezodo egyedek csoportja[Moh96]. A populciban lvo egyedek hatssal vannak egymsra, nha segtik, nhaakadlyozzk egymst. Populcibiolgirl bovebben a [SZ95] jegyzetben olvasha-tunk.

    Most kt olyan szimulcis jtkot vizsglunk meg, melyekben lolnypopul-cik vltozst figyelhetjk meg. Mindkt jtk azt prblja demonstrlni, hogy br aszimullt lolnyek viselkedst nagyon egyszeru szablyok hatrozzk meg, az elo-lnypopulcik megfigyelsvel mgis olyan jelensgeket szlelhetnk, melyeket csak a szablyok ismerete alapjn nem tudtunk volna megjsolni.

    Erre azrt van szksg, mert a gyakorlatban sikeresen alkalmazhat geneti-kus algoritmusok alapjai is egyszeru szablyok. A kvetkezo rsz bebizonytja, hogy

    rdemes egyszeru biolgiai szablyokra plo algoritmusokkal foglalkozni.

    1.1. letjtk

    AConwayltal kitallt letjtk az egyik legegyszerubb szmtgpes szimulci. Azletjtk egy olyan egyszeru biolgiai szimulci, melyben a szimullt lolnyek moz-dulatlanok, llapotukat nem vltoztatjk (kivve a szletst s a hallt). Az egyszeruszablyok miatt az letjtk knnyen implementlhat szmtgpen, problmt csakaz okoz, hogy az lettr elmletileg vgtelen nagy, ami nyilvn nem valsthat megszmtgpen.

    Az letjtk egy nagyon j szmtgpes megvalstsa a [Hen] shareware pro-gram. A program tbb rdekes pldt is tartalmaz, melyekbol jobban megismerhetjka jtkot.

    6

  • 8/11/2019 genetikai algoritmusok

    8/128

    GA speci anyaga 7

    1.1.1. Szablyok

    A jtktr egy vgtelen nagy sakktbla. A sakktbla mezoit egyformnak tekintjk,teht nem tesznk klnbsget a mezok szne alapjn. Minden mezonek 8 szomszdjavan.

    A sakktbla mezoin egysejtuek tenysznek, egy mezo lehet res, vagy foglalt, egymezon maximum egy egysejtu lehet. Nincs meghatrozva az, hogy kezdetben melyik

    mezon van egysejtu, s melyiken nincs, tetszoleges mdon helyezhetjk el oket. A[Hen] szmtgpes programban lehetosgnk van a kezdeti llst file-bl beolvasni,vagy a kpernyon interaktvan elhelyezni az egysejtueket.

    Egy szimulcis lps sorn szlethetnek j egysejtuek, a rgi egysejtuek kzlpran meghalhatnak. A szlets s a hall a kvetkezo szablyok szerint trtnik:

    Ha egy mezo res, a kvetkezo lpsben is res marad, kivve, ha pontosan 3szomszdos mezoje foglalt.

    Ha az res mezonek pontosan 3 szomszdos mezojn van egysejtu, akkor a k-vetkezo lpsben j egysejtu szletik a mezon.

    Haamezon egysejtu van, akkor az egysejtuamezon marad a kvetkezo lpsbenis, ha a mezonek 2 vagy 3 szomszdjn van egysejtu.

    Ha egy egysejtu szomszdos mezoin 2-nl kevesebb, vagy 3-nl tbb egysejtuvan, akkor a mezon tallhat egysejtu az elszigeteltsg, illetve a tlnpesedsmiatt meghal.

    A fenti paramterek termszetesen mdosthatak, de ltalban ezt a paramterezstszoktk alkalmazni. Conway is ksrletezett klnfle paramterezssel, de gy talltaa tbbi esetben tl kiismerheto a szimulci.

    A jtk egyes szmtgpes megvalstsaiban egy idokorltot is bevezetnek, egysejt csak a megadott ideig lhet, az ido leteltekor akkor is meghal, ha tovbbra is 2 vagy

    3 szomszdja van. Ez a korltozs teljesen megvltoztatja a jtkot, ezrt tovbbiakbanfelttelezzk, hogy nincs ilyen korltozs.

    1.1.2. Alakzatok

    Knnyen nyomon tudjuk kvetni az egysejtueket, ha a szmtgpes szimulci sornoket fekete, az res mezoket fehr ngyzettel jelljk.

    Ha a szimulci elg gyors, s elg nagy terletet figyelnk egyszerre, mr nemtudjuk megklnbztetni az egyes egysejtueket, csak csoportjaikat tudjuk nyomon k-vetni. Leginkbb gyorsan, s ltszlag ssze-vissza vltoz csoportokat ltunk a szi-mulci sorn, de szrevehetnk rdekes csoportokat is. Ezentl ezeket az egysejtu

    csoportokat alakzatnak nevezzk. Az alakzat egysejtui nem felttlenl rintkeznek fi-zikailag, de vizulisan egyv tartoznak rezzkoket.

  • 8/11/2019 genetikai algoritmusok

    9/128

    GA speci anyaga 8

    1.1. bra. Mozdulatlan alakzatok

    Most nhny rdekesebb alakzatot mutatunk be, termszetesen a teljessg ignyenlkl. A bemutatand alakzatok eleinte egyszeruek, majd egyre bonyolultabbak lesz-nek. Az egyszerubb alakzatoknl knnyen ellenorizheto az, hogy tnyleg a lertak sze-rint viselkednek, a bonyolultabb alakzatok ellenorzshez szmtgpes program java-solt. A [Hen] program segti az ellenorzst azzal, hogy lehetosget nyjt a szimulcilpsenknti futtatsra. (A lpsek elott gombnyomsra vr, gy minden lps utn jlmegfigyelheto a jtktr.)

    Mozdulatlan alakzatok

    A legegyszerubbek a mozdulatlan alakzatok (1.1. bra), vagyis azok az alakzatok, me-lyek nem vltoznak meg az ido mlsval. (Hacsak egy msik, hozzjuk kzel kerloalakzat meg nem vltoztatja oket.) A gyorsan vltoz jtktren knnyen szrevehe-toek, gy tunik, mintha nem vonatkoznnak rjuk a szablyok. Egy ilyen alakzatotmegvizsglva mr rtheto a mozdulatlansguk.

    A 1.1. brn bal oldalon lthat alakzatnl (melyet blokknak neveznek) az sszesegysejtunek 3 egysejtu-szomszdja van, gyok a szablyok alapjn nem halnak meg.Az alakzattal szomszdos res mezoknek 1 vagy 2 egysejtu-szomszdjuk van, gy j

    egysejtu sem szlethet.A jobb oldali brn (mhkas) minden egysejtunek 2 egysejtu-szomszdja van, a kt

    res belso mezonek 5 (tl sok), a klso res mezoknek 1 vagy 2 (tl kevs) egysejtu-szomszdja van.

    Oszcilll alakzatok

    Knnyen felismerhetoek az oszcilll alakzatok is, melyek vltoznak ugyan az idomlsval, de egy megadott peridusido elteltvel az eredeti alakzatot kapjuk vissza.A peridusido nagysga a klnfle alakzatoknl eltro lehet, a legegyszerubb ilyenalakzatnl, avillognl(1.2. bra) pldul 2.

    A villog 3 darab, sorban elhelyezkedo egysejtubol ll. Nzzk meg, mi trt-nik egy szimulcis lps sorn. A kzpso egysejtunek kt egysejtu-szomszdja van,

  • 8/11/2019 genetikai algoritmusok

    10/128

    GA speci anyaga 9

    1. generci 2. generci 3. generci

    1.2. bra. A villog

    1.generci 2.generci 3.generci 4.generci 5.generci

    1.3. bra. A sikl mozgsa

    ezrt nem hal meg. A kt szlso egysejtunek azonban csak 1-1 egysejtu-szomszdjavan, ezrt azok meghalnak. A kzpso egysejtu mellett lvo res mezok kzl ketto-nek pontosan 3 egysejtu-szomszdja van, ezrt kt j egysejtu szletik a kt mezon.Knnyen ellenorizheto, hogy a kvetkezo lpsben, a meghalt egysejtuek helyn jegysejtuek szletnek, az elozo lpsben szletett egysejtuek azonban meghalnak, gyjra visszakapjuk a kezdeti alakzatot.

    Mozg alakzatok

    Az egyik legrdekesebb alakzat, amit knnyen felfedezhetnk, az asikl(1.3. bra).A sikl egy olyan alakzat, amelyik az oszcilll alakzatokhoz hasonlan, egy adottperidusido elteltvel visszanyeri az alakjt, de ekzben elmozdul a jtktren. Az 1.3.brn lthat a sikl, mely 4 idoegysgenknt egy egysggel jobbra-le mozdul el a

    jtktren. Ha a szimulci elg gyors, gy tunik mintha egy kis llat futna (siklana)t a kpernyon. Termszetesen az eredeti alakzatot elforgatva, az elmozduls a msik3 tls irnyba is megtrtnhet.

    Tallhatunk olyan alakzatot is, mely a siklhoz hasonlan mozog a jtktren, dea mozgs nem tls irnyban trtnik, hanem fggolegesen vagy vzszintesen. A leg-kisebb ilyen alakzat az LWSS (Light Weight SpaceShip = Knnyu urhaj) (1.4. bra).

    Az alakzat a nevt onnan kapta, hogy egy urhaj replshez hasonlt a mozgsa. Azbrn lthat LWSS vzszintesen mozog, de az alakzatot elforgatva knnyen megkap-hatjuk a fggolegesen mozg LWSS-t.

  • 8/11/2019 genetikai algoritmusok

    11/128

    GA speci anyaga 10

    1.generci 2.generci 3.generci 4.generci 5.generci

    1.4. bra. LWSS mukds kzben

    Sikl

    Sikl

    gy

    1.5. bra. A siklgy mukds kzben

    A siklgy

    Az eddig vizsglt alakzatok oszcilllnak, mozognak, de nem kpesek elszaporodni.

    Eleinte nem tudtk megvlaszolni azt a krdst, van-e olyan alakzat, mely korltlanulnvekszik, vagyis az ltala lefoglalt mezok szma minden hatron tl nvekszik. (Eznem jelenti felttlenl azt, hogy a mezok szma a vgtelenbe tart, hiszen a konvergencianem biztostott)

    Conway 50 dollr jutalmat tuztt ki a feladatra, s rgtn adott egy tippet is: Egysiklgytkell alkotni, vagyis egy olyan alakzatot, mely vgtelen szm siklt bocsjtki magbl. Az alakzatot vgl aMIT1 dikjai talltk meg. Egy ilyen alakzatot lt-hatunk a 1.5. brn. Az alakzat nevt rgtn megrtjk, ha mukds kzben figyeljkmeg. Olyan, mintha egy hatalmas gy idonknt kilone egy-egy siklt, melyek a ki-lvs utn gyorsan replnnek, minl messzebb az gytl. Az brn azt a pillanatotlthatjuk, amikor mr kt siklt kibocstott az gy. A kt sikl jobbra-le repl, a fent

    lthat (a kt sikl egysejtuit leszmtva az sszes brn lthat egysejtu az gy rsze)1Massachusetts Institute of Technology

  • 8/11/2019 genetikai algoritmusok

    12/128

    GA speci anyaga 11

    1.6. bra. Siklgy szletse

    gy pedig a kvetkezo siklt gyrtja.Lthat, hogy br a siklgy segtsgvel egyre tbb cella lesz foglalt, a nveke-

    ds csak lineris, s az lettrnek csak egy kis rszn lesznek foglalt cellk (az gyterletn, s a siklk vkony svjban). Ismert azonban olyan alakzat, ahol a nveke-ds ngyzetes, olyan ahol exponencilis. Mivel a jtktr is vgtelen nagy, az lettrlefedettsge tbbnyire az exponencilisan nvekedo alakzatoknl is alacsony. Ismertazonban olyan alakzat is, ahol a lefedettsg a 1/2-hez tart. Ilyen, s ezeknl mg rde-kesebb alakzatokat tallhatunk a [Hen] shareware programban.

    Ha megnzzk a siklgyt (1.5. bra), akkor egy olyan bonyolult alakzatot l-tunk, melyrol fel sem ttelezzk, hogy vletlenl is ltrejhet. AMITdikjai, azonbanmeglepo felfedezst tettek: 13, megfeleloen elhelyezett sikl tkzsbol siklgyszlethet. A 1.6. brn egy egyszerubb vltozatot ltunk, itt elg 8 sikl tkztetse asiklgy szletshez. Teht, ha az brn lthat mdon elhelyeznk 8 siklt, akkora siklk sszetkznek, s az sszetkzsekbol ltrejn egy siklgy, ami rgtn elis kezd siklkat kibocstani magbl.

    nreprodukl automata

    Az letjtk a sejtautomatk kz tartozik. A sejtautomatk megjelense utn szintergtn az nreprodukci problmjval kezdtek el foglalkozni a kutatk. Olyan auto-matt prbltak kszteni, mely kpes lemsolni nmagt, gy bizonyos szempontblmestersges lolnynek tekinthetjk. MrNeumann Jnosis ksztett ilyen automa-tt, 29 klnbzo llapotot vehettek fel a sejtek, az automata kb. 200000 sejtbol llt.Ksobb persze egyre kisebb nreprodukl automatt ksztettek, a rekordot egy 12sejtbol ll automata tartja, a sejteknek 6 klnbzo llapota, s 57 llapottmenetiszablya van.

    Kzs jellemzoje ezeknek az automatknak, hogy mr a szablyok megalkotsakor

    figyelembe vettk, hogy az automata clja az nreprodukci. Sokkal letszerubb azletjtk, mely sokkal egyszerubb szablyokkal rendelkezik, melyek megalkotsakornem vettk figyelembe az nreprodukcit.

  • 8/11/2019 genetikai algoritmusok

    13/128

    GA speci anyaga 12

    AConwayltal lert nreprodukl automata egy megfelelo programmal elltottuniverzlis szmtgp lesz, hasonlanNeumannautomatjhoz.

    Ngyfle alakzat elg az nreprodukl automata felptshez: sikl, siklgy,blokk, mindenevo. A mindenevo egy olyan alakzat, amely a nekitkzo siklt mintegymegeszi. Ezt az alakzatot hasznlhatjuk a felesleges siklk eltntetsre.

    Kt sikl sszetkzse ltrehozhat blokkot, mindenevot, s sszetkzhetnek gyis, hogy mindkt sikl eltunik (Eltnteto tkzs). Az n. Visszavero tkzsnl azegyik sikl eltunik, a msik visszafordul. Siklk sszetkzsvel teht mind a ngy-fle alakzatot elo lehet lltani.

    Ha kt megfeleloen elhelyezett sikl nekimegy egy blokknak, akkor a blokkot 3mezovel kzelebb hozza. Harminc (30) megfelelo sikl, a blokkot hrom mezovel el-tolja. Ezt felhasznlva egyszeru memrit tudunk kszteni, ahol egy blokk tvolsgahatrozza meg a troland szmot.

    A szmtgp felptshez huzalokra, s logikai kapukra lesz szksgnk. Mivela sejtek kt dimenziban vannak, a huzalok keresztezse problmt okozhat.

    Siklkat hasznlhatunk huzalnak, a 0 s 1 szmjegyekkel kdolt nreproduklautomatt ler informcit siklk ramlatval tudjuk elkldeni.

    Br siklgykkal siklkat knnyen tudunk gyrtani, mivel az gyink elg gyak-ran tzelnek, tartani kell a siklk sszetkzstol. Szerencsre hrom siklgyblritktott siklgyksztheto, amely tetszoleges frekvencival tzelhet. Ezzel megol-dottuk a huzalok keresztezsnek problmjt.

    Ha ritktott az ramlat akkor az zenetek keresztezhetik egymst. A logikai kapukatis a ngy alapalakzatbl ptjk meg. Anem-kapu egy gyt, azs-kapu egy gyt segy mindenevot tartalmaz.

    A belso memria egy zrt hurokban keringo nagyon hossz zenet. A klso mem-ria nem egy vgtelenl hossz paprszalag, hanem tetszolegesen nagy szm. Az ilyenszmoknak egy-egy blokk alakzat gptol val tvolsga jelenti.

    A tovbbi technikai problmk kikszblsrol (pl. huzalok meghajltsa) is a

    [Hen] knyvben olvashatunk.Az univerzlis szmtgphardware-e megkaphat siklk sszetkzsvel. Ngy

    klnbzo irnybl rkezo siklflotta kpes ltrehozni a gpet.

    1.2. A Rka-Nyl jtk

    Az ebben a rszben ismertetendo jtk tbb nven ismert, pldul Hiz-Nyl, Macska-Egr, Cpa-Hal.

    1.2.1. SzablyokA jtk lnyege, hogy az lettren egy ragadoz s egy prda llatfaj egyedei lnek.A pldnkban termszetesen a rka a ragadoz, a nyl a prda. Az lettr klnbzo

  • 8/11/2019 genetikai algoritmusok

    14/128

    GA speci anyaga 13

    alak lehet, tbbnyire az lettr egy nagy sakktbla. Egy mezon egyszerre csak egyllat lehet.

    A nyulak vletlenszeruen mozognak a jtktren (mindig valamelyik szomszdosmezore lpnek), de nem tkzhetnek ssze. A nyulak termszetesen szaporodni is k-pesek, ez gy trtnik, hogy egy lps utn az eredeti helyen hagynak egy jszlttnyulat. A jtkban az egyszerusg kedvrt nem kap szerepet a nyulak neme, gy aszaporodshoz sem kell kt nyl. Termszetesen nem minden lps utn szletik jnyl. Elore adott, hogy a lpsek hny szzalknl szletik j nyl. Ez a szzalkfejezi ki a nyulak szaporodsi kpessgt.

    A rkk a nyulakhoz hasonlan mozoghatnak, szaporodhatnak (a rkk szaporo-dsi kpessge klnbzhet a nyulak szaporodsi kpessgtol), de sszetkzhetneka nyulakkal, sot ez a cljuk, az sszetkzs sorn a rka megeszi a nyulat. Ha egyrka hosszabb ideig nem tallkozik nyllal, nem jut tpllkhoz s elpusztul. (A nyu-lak fvet esznek, ami boven tallhat a jtktren, gyok sohasem halnak hen.)

    1.2.2. A populcik vltozsa a szimulci sorn

    Ha megvizsgljuk a rkk s a nyulak szmnak vltozst, oszcillcit figyelhetnkmeg. A nyulak ltszma idoben ingadozik, s ezt az ingadozst szorosan kveti a rkkltszmnak ingadozsa. Mirt van ez? Kpzeljk el, hogy a nyulak nagyon elszapo-rodnak az lettrben. Ekkor a rkk boven jutnak tpllkhoz, ezrt elszaporodnak. Atbb rka azonban nagyon sok nyulat megeszik, gy a nyulak ltszma lecskken. Akevs nyl nem ad elg tpllkot a sok rknak, gy a rkk kezdenek hen halni.Miutn gy lecskken a rkk szma, az letben maradt nyulakat nem fenyegeti nagyveszly, gy el tudnak szaporodni, s ezzel visszartnk a kezdeti llapothoz. Az igaz-sghoz tartozik, hogy ezt az oszcillcit megkapjuk, jl kell belltani a rkk s nyulakszaporodsi s egyb paramtereit. Ha a rkk tl nehezen szaporodnak, s tl hamarhen halnak, elkpzelheto, hogy a rkk mg nagyon sok nyl kztt sem kpesek el-

    szaporodni, ezrt kihalnak. Ha a nyulak szaporodnak tl lassan, s a rkk nagyon jlbrjk az hezst, elkpzelheto, hogy a rkk elszaporodsukkor kipuszttjk az sszesnyulat, s ezzel nmagukat is hallra tlik, mert ezutn az sszes rka hen hal.

    1.2.3. A populcik vltozsa a Fldn

    A szimulci sorn a termszetet prbltuk utnozni, a termszetben ltott pldk alap-jn hatroztuk meg a szimulci szablyait. Felmerl a krds, mennyire sikerlt ut-nozni a termszetet, a valsgban is gy oszcilll-e a prda s a ragadoz llatfajokpopulcijnak nagysga.

    A krds megvlaszolst nehezti, hogy a laboratriumi krlmnyeket leszmtvanem tallunk olyan terletet, ahol csak kt llatfaj l, az egyik egy prda, a msik egycscsragadoz. Az oszcillci igazolsra legtbbszr a Hudson bl Trsasg rszre

  • 8/11/2019 genetikai algoritmusok

    15/128

    GA speci anyaga 14

    csapdba ejtett hizok s nyulak szmnak ingadozst hasznljk fel. A trsasg tbbmint kt vszzadon keresztl vezetett feljegyzst a prmvadszok zskmnyrl, sadatok valban a vrt mdon ingadoznak (tzves peridussal). Br legtbben elfo-gadjk bizonytknak az adatokat, vannak akik figyelmeztetnek, hogy a prmvadszokelsosorban nem az lovilgot szerettk volna megfigyelni, hanem meglhetsk mi-att ejtettk csapdba az llatokat. gy elkpzelheto, hogy az ingadozs nem kolgiai,hanem gazdasgi ciklusokat kvet.

    1.2.4. A jtk tovbbfejlesztsei

    A jtk tbb irnyban is tovbbfejlesztheto. Az elso lehetosg egy bonyolultabb tpl-lklnc szimullsa. Teht nem csupn 1 prda s 1 ragadoz llatfajunk lenne, hanemlennnek prda llatfajok, lennnek olyan fajok melyek a prdallatokkal tpllkozn-nak, ugyanakkor zskmnyai lennnek tovbbi llatokfajoknak, s gy tovbb egszena cscsragadozkig, melyeket mr nem fenyegetne msik llatfaj. A bonyolultabb tp-llklnc szimulcijrl, illetve a valsgban megtallhat bonyolultabb tpllkln-cokrl a [Sig93] knyvben olvashatunk tbbet.

    Egy msik tovbbfejlesztsi lehetosg, ha az llatokat felruhzzuk intelligencival,a ragadozkat klnfle keressi stratgival, a prdkat meneklsi mdszerekkel. Haa klnbzo stratgival rendelkezo llatokat helyeznk el az lettren, megfigyelhet-

    jk melyik stratgia jobb, melyik rosszabb.

    1.3. Optimalizlsi feladatok

    Mivel a dolgozat htralvo rszben ismertetendo algoritmusokat az esetek nagy r-szben optimalizlsi feladatok megoldsra hasznljk, definilnunk kell mit rtnkoptimalizlsi feladaton. Ezutn nhny hagyomnyos mdszert mutatunk be, melye-

    ket ilyen feladatok megoldsra hasznlnak.Az optimalizlsi feladatok sorn egy adott halmazon (melyet keressi trnek ne-

    veznek, s S-sel jellnk) definilt fggvny (fitneszfggvnynek nevezik, f-fel fogjukjellni, f :S R) maximumhelyt (vagy minimumhelyt) keressk. Az egyszerusgkedvrt a tovbbiakban mindig maximumot keresnk.

    1.3.1. Vletlen keress

    A legegyszerubb keressi mdszer, ha a keressi trbol vletlenszeruen (esetleg szisz-tematikusan, de a kapott eredmnyektol fggetlenl) vlasztunk ki pontokat, s nzzkmeg a fitneszfggvny rtkt az adott pontban. A megvizsglt pontok kzl azt a pon-tot vlasztjuk megoldsnak, amelyik pontban a fitneszfggvny rtke a legmagasabb.A mdszer nmagban nem alkalmazhat a gyakorlatban.

  • 8/11/2019 genetikai algoritmusok

    16/128

    GA speci anyaga 15

    A

    B

    C

    D

    Fitness

    1.7. bra. A hegymsz mdszer

    1.3.2. Hegymsz mdszer

    A hegymsz, ms nven gradiens mdszer sorn kivlasztunk egy vletlen pontot akeressi trben, majd megnzzk a kivlasztott pont szomszdait, s kzlk mindig alegmagasabb fitneszrtku pontot vlasztjuk kvetkezo megvizsgland pontnak, ha-sonlan egy kds idoben a cscsra feljutni vgy hegymszhoz, aki mindig mere-deken felfel mszik. A mdszer megtallja a maximumot az egy csccsal rendelkezofitneszfggvnyeknl, a tbb csccsal rendelkezoeknl pedig loklis maximumot tall.

    Az 1.7. brn egy egyszeru pldt lthatunk a hegymsz mdszerre. Br a mdszerltvnyosabb, haStbb dimenzis, az egyszerubb brzols miatt a pldban S1 di-menzis. Az brn azApontbl indtva a keresst, a mdszer megoldsknt aBpontotadja, ami csak loklis maximum, hiszen mind aC, mind aD pontokkal jellt cscsmagasabb nla.

    1.3.3. Iterlt hegymsz mdszer

    Az elobb megismert kt mdszer kombincijaknt kaphatjuk meg ezt a mdszert. Akeressi trben vletlenszeruen vlasztunk ki pontokat, s a pontokban egy hegym-sz keresst indtunk el. A hegymszs utn j pontot vlasztunk, s jraindtjuk a

    hegymsz mdszert. A mdszer az egyes hegymszsok utn kapott loklis maximu-mok maximumt adja eredmnyl. Lthat, hogy a mdszer, br jobb az elozoeknl,tovbbra semoriz meg informcit a mr feldertett keressi trrol.

  • 8/11/2019 genetikai algoritmusok

    17/128

    GA speci anyaga 16

    1.3.4. Szimullt lgyts

    A hegymsz mdszer egy msik tovbbfejlesztse a npszeru szimullt lgyts. Ne-vt arrl a folyamatrl kapta, melynek sorn egy fmet eloszr felhevtenek, majd fo-kozatosan lehutenek. A mdszernek tbb vltozata van, egy rvid sszefoglalst olvas-hatunk rla a [Yao95] cikkben.

    A keressi tr egy pontjban llva, vletlenszeruen vlasztjuk meg a lps irnyt.

    Ha a lpssel magasabb helyre jutunk, akkor megtesszk a lpst, mg ha alacsonyabbpontra lpnnk, akkor a lpstp(t)valsznusggel fogadjuk el, aholtaz idot jelli. Avalsznusget legtbbszr a kvetkezo kplet alapjn szmoljk ki:

    p(t) =eXT(t) (1.1)

    Xjelli a magassgklnbsget (X

  • 8/11/2019 genetikai algoritmusok

    18/128

    GA speci anyaga 17

    sszekeverhetok, ebben a rszben egy rvid lerst adunk rluk, melyben rvilg-tunk a kztk lvo klnbsgekre. Ha az olvast jobban rdekli valamelyik mdszer, a[HB98] cikkben egy-egy rvid lerst, s bosges irodalomjegyzket tall.

    Az sszes algoritmus kzs vonsa, hogy egy populcit kezelnek, melyben k-lnfle egyedeket tallhatunk. Amint lttuk, az sszetettebb biolgiai jtkokban s avaldi evolciban a populci egyedei a krnyezettel szemben sajtos viselkedst mu-tatnak, mintegy valamilyen megoldst adnak egy krnyezeti problmra. Ennek meg-feleloen az evolcis algoritmusokban az egyedek a megoldand problma egy-egylehetsges megoldst reprezentljk. A cl, hogy egy minl jobb megoldst talljunka problmra. Az esetek tbbsgben nincs esly a legjobb megoldst megtallni, meg-elgsznk azzal, ha egy elg j megoldst tudunk adni.

    A populciban lvo egyedek az llatokhoz hasonlan vltoznak. Az egyedek k-pesek szaporodni, ilyenkor j egyedek szletnek. Egy egyednek lehet tbb szloje is,ekkor a szlok kztt keresztezs trtnik. A szaporods sorn elofordulhat mutciis. Vgl az egyedek meg is halhatnak, ekkor egy j egyed foglalja el helyket a popu-lciban.

    A populci minden egyedhez egy fitneszrtk van hozzrendelve, ez annl ma-

    gasabb minl jobb az egyed ltal reprezentlt megolds. A szaporods sorn elonybenrszeslnek a magas fitneszrtkkel rendelkezo egyedek, ezrt az ilyen egyedeknekvrhatan tbb utduk lesz, gy a populci vrhatan egyre magasabb fitneszrtkek-kel rendelkezo egyedeket fog tartalmazni.

    Az ltalnos evolcis algoritmus pszeudo-kdja a kvetkezo:

    1.1. algoritmusEvolcis Algoritmusokt 0 {Kezdeti ido belltsa}initpopulci Pt{Kezdeti populci ltrehozsa (tbbnyire vletlenszeruen)}fitnesz_szmtPt{Fitnesz rtkek kiszmtsa}whileamg nincs kszdo

    Pt := szlokivlasztsPt{Szlok vlasztsa}keresztezPt {A szlok gnjeinek keresztezse}mutciPt {Vletlen mutci}fitnesz_szmtPt {Az j fitnesz kiszmtsa}Pt+1:= tlloPt, Pt {Az j populciba kerlnek az egyedek}t := t + 1

    end while

    Vizsgljuk meg a kdot! Az algoritmus elejn feltltjk a populcit. Ez tbbnyirevletlen egyedekkel val feltltst jelent, elofordulhat azonban, hogy mr ismernk pregyedet, s ezekkel tltjk fel a populcit. A feltlts utn kiszmtjuk az egyedek

    fitneszrtkt.Egy szimulcis lps sorn az egyedek kzl kivlasztunk nhnyat, ezek lesz-

    nek a kvetkezo generci szloi. A kivlasztott szlok keresztezsvel ltrehozzuk a

  • 8/11/2019 genetikai algoritmusok

    19/128

    GA speci anyaga 18

    leszrmazottakat. A termszetben jelen lvo mutcit szimullva, a leszrmazottakategy rszt kiss megvltoztatjuk. Most mr megszlethetnek az utdok, ezrt kisz-mtjuk a leszrmazottak fitneszrtkt. Mivel nem szeretnnk, ha tl sok egyed lenne apopulciban, ezrt az elozo generci egyedei, s a leszrmazottak kzl kivlasztjukazokat, melyek a kvetkezo generciban is jelen lesznek. A tbbi egyedet eltvoltjuka populcibl,ok meghalnak.

    Krds mg, meddig tartson a szimulci. A szimulci sorn az egyedek egyre in-kbb hasonltanak egymsra, ezrt egy ido utn a populci mr alig vltozik. Amikora populci vltozsa mr nagyon kicsi, azt mondjuk, konverglt az algoritmus. Ha azalgoritmus konverglt, akkor meglltjuk, s a populciban tallhat legjobb egyedet(pontosabban az ltala reprezentlt megoldst) adjuk megoldsknt.

    Nem hatroztuk meg eddig, hogyan mukdik a szlok kivlasztsa, a keresztezs,a mutci, a tllok kivlasztsa, s azt sem miknt reprezentlunk egy megoldsta populciban. Azrt nem hatroztuk meg ezeket, mert a klnfle evolcis algo-ritmusokban klnflekppen mukdhetnek, ez alapjn tudjuk megklnbztetni azevolcis algoritmusok most bemutatsra kerlo osztlyait. Az egyes osztlyok kzttszoros kapcsolat, sot gyakran tfeds van, vagyis knnyen tervezhetnk olyan algorit-

    must, mely bizonyos jellemzoiben az egyik, mg ms jellemzoiben egy msik osztlybatartozik.

    1.4.1. Evolcis Programozs

    Az evolcis programozs sorn is egy adott problma lehetsges megoldsaibl llpopulcit kezelnk. Az evolcis programozs sorn nincs megkts a megoldsokbrzolsi mdjra, az eredeti feladat ltal meghatrozott formban troljuk a meg-oldsokat. Teht ha pldul optimlis neuronhlkat keresnk, magt a neuronhlttroljuk, nincs szksg arra, hogy elkdoljuk a neuronhlkat (pldul bitvektorr).

    Itt is egy vletlenl vlasztott populcival indul az algoritmus, egy lps sorn

    eloszr az sszes egyedrol msolatot ksztnk, majd a lemsolt egyedek mutcinesnek t. A mutci klnbzo mrtku lehet, de a kisebb mutciknak nagyobb avalsznusge, mint a nagy vltozst okozknak.

    A mdosult egyedek fitneszrtknek kiszmtsa utn mr csak annak az eldn-tse van htra, hogy az eredeti populci s a megvltozott populci mely egyedeikerlnek az j populciba. Ez a kivlaszts tbbnyire egy bajnoksg segtsgvel tr-tnik. A legegyszerubb vltozata a bajnoksgnak, ha vletlenl kivlasztunk 2 egyedet,s a nagyobb fitneszrtkkel rendelkezo kerl az j populciba. Ezt addig ismteljk,amg fel nem tltodik az j populci.

    Az evolcis programozs sorn az esetek dnto rszben nem alkalmaznak ke-

    resztezst, gy biolgiai szemszgbol nzve ez olyan, mint amikor tbb faj fejlodstvizsgljuk, hiszen a fajok kztt sincs keresztezods. Teht az egyedek itt egy-egy fajtkpviselnek. Pusztn biolgiai szemszgbol nzve itt nem is hasznlhatnnk a popul-

  • 8/11/2019 genetikai algoritmusok

    20/128

    GA speci anyaga 19

    ci kifejezst, hiszen az azonos fajba tartoz egyedek csoportjt jelli. Az egysgessgkedvrt itt is a populci szt hasznljuk, remlhetoen ez nem zavarja meg az olvast.

    1.4.2. Evolcis Stratgia

    A foknt technikai problmk megoldsra hasznlt evolcis stratgia az evolcisalgoritmusok legbonyolultabb, s egyben legsikeresebb fajtja. A technikai problmkmegoldsai sorn a megolds paramtereinek optimlis rtkt keressk. A populci-ban lvo egyedek teht a paramtereket tartalmazzk, az esetek dnto rszben sz-mokat.

    Az algoritmusnak tbb vltozata ltezik. A legegyszerubb [(1+1)-es] vltozatnlgenercinknt 1 szlo generl 1 leszrmazottat, s az evolcis programozshoz (1.4.1.rsz) hasonlan a kisebb mutcik valsznusge nagyobb, a nagyobb mutcik va-lsznusge kisebb. (Mivel az egyedek szmokat tartalmaznak, a mutci a szmokmegvltoztatst jelli. Knnyen elrheto, hogy a kisebb mutcik valsznusge na-gyobb, a nagyobb mutcik valsznusge kisebb legyen, pldul egy 0 vrhat rtku,normlis eloszls vletlenszmot kell a paramterhez adni) Keresztezsrol 1 szlonl

    nyilvn nincs rtelme beszlni. A szlo helyt nem felttlenl foglalja el az utd, csakabban az esetben, ha a fitneszrtke nagyobb. Felfedeztk, hogy az algoritmus akkorhatkony (vagyis akkor oldja meg sikerrel a feladatokat), ha az sszes mutcinak az1/5 rsze sikeres. (Vagyis tlagosan minden tdik mutcinl nagyobb az utd fitne-szrtke a szlo fitneszrtknl.)

    Amennyiben nem 1 szlot vlasztunk, hanemm-et, akkor mr a keresztezs is sze-repet jtszik. A kvetkezo ltalnosts, ha nem 1, hanem lutdot generlunk mindengenerciban.

    Attl fggoen, hogy a tllok kivlasztsnl figyelembe vesszk-e a szloket, be-szlhetnk pluszs vesszostratgirl. A plusz stratginl [(m+ l)] a tlloket azmszlo s az l leszrmazott kzl vlasztjuk ki, a vesszo stratginl [(m, l)] csak a

    leszrmazottak kzl vlasztunk. Mg a plusz stratginl elofordulhatnak halhatatlanegyedek (melyek mindig tkerlnek a kvetkezo generciba), a vesszo stratginlminden megszletett egyed elobb-utbb meghal.

    Azm/larny megvlasztsa nagyban befolysolja a konvergencit. Ha gyors kon-verglst szeretnnk valamelyik loklis maximum fel, akkor j lehet az (5,100) arny,ha a globlis maximumot clozzuk meg, s a sebessg kevsb fontos, akkor j lehet a(15,100) arny.

    1.4.3. Genetikus Algoritmusok

    A genetikus algoritmus sorn a lehetsges megoldsokat nem az eredeti feladatnakmegfelelo formban troljuk a populciban (mint az evolcis programozs (1.4.1.rsz) sorn), hanem a trols elott minden lehetsges megoldshoz egy-egy bitvektort

  • 8/11/2019 genetikai algoritmusok

    21/128

    GA speci anyaga 20

    (kromoszmt) rendelnk hozz. A tovbbiakban minden muveletet (pldul: keresz-tezs, mutci) a kromoszmkon hajtunk vgre.

    A szlok kivlasztsa a genetikus algoritmus sorn a kvetkezokpp trtnik: feleannyi szloprt kpeznk, mint a populci mrete. gy tlagban minden egyed egyprban szerepel, de a kivlaszts sorn elonyt lveznek a magasabb fitneszrtkkelrendelkezo egyedek. Minden szlopr kt utdot generl. Az utdok generlsa sornkeresztezs s mutci trtnhet.

    A tllok kivlasztsa nagyon egyszeru: a rgi populci minden egyede meghal,helyket az j populci egyedei foglaljk el.

    1.4.4. Osztlyoz Rendszerek

    Az osztlyoz rendszereket nha az evolcis algoritmusok nll gnak, nha a ge-netikus algoritmusok egy specilis alkalmazsnak tekintik. Az osztlyoz rendszere-ket legegyszerubben az animat segtsgvel ismerhetjk meg. Az animat [Asz96] szaz animal + robot (llat + robot) szavak sszevonsval keletkezett.

    Az animat egy ngy rszbol ll szerkezetet takar:

    1. krnyezet2. rzkelok

    3. manipultorok4. irnyt rendszer

    Az animat egykrnyezetbenl, ez a krnyezet ltalban csak a szmtgpben ltezovirtulis vilg, de ha megptnk egy animatot, akkor lehet pldul egy szoba is. Azanimat az rzkeloivelfigyeli a krnyezett. Az rzkelok egy megptett animatnllehetnek fotocellk, nyomsrzkelok, mikrofonok, kamerk. Az animat amanipul-toraivalreagl az rzkeloi ltal szlelt dolgokra. A manipultorok lehetnek kerekek,

    lbak, lnctalpak a mozgshoz, kezek a krnyezet trgyainak megfogshoz, illetveszj a tpllkozshoz. Az animat reakciit az irnyt rendszerirnytja, ez mondjameg, milyen ingerre, mi a helyes reakci.

    Az irnyt rendszer elso megkzeltsben egy fekete doboz. A fekete dobozt atovbbiakban egy egyszeru szmtgpnek tekintjk. A szmtgpen fut programnagyon egyszeru. Adott tbb if-then szably a memriban, a szmtgp az inputnakmegfelelo szablyt vlaszt ki, s az adott szably szerint viselkedik. Az if-then szab-lyokat viszonylag egyszeruen tudjuk azonos hosszsga bitvektorokk konvertlni, azegyszerubb kezels rdekben.

    A fentiek taln jobban rthetok, ha megnzzk az egyik legismertebb animatot,mely egy bkt modellez. Az animat neve Kermit, rszletesebb lerst a [HB98] cikk-ben tallhatjuk. A bknk egy kis tban l, szemei segtsgvel rzkeli a krnyezetet,lbai segtsgvel tud mozogni, s kpes bekapni a legyeket. A bka mellett klnfle

  • 8/11/2019 genetikai algoritmusok

    22/128

  • 8/11/2019 genetikai algoritmusok

    23/128

    GA speci anyaga 22

    genetikus programozs sorn a keresztezs a legfontosabb opertor, mutcit az eseteklegnagyobb rszben nem hasznlnak. A keresztezs a kifejezsfknl a kt kifejezsfavletlen rszfjnak cserjt jelenti.

    Az amerikai MIT kutatintzetben ksztettek egy genetikus programozsra ploalkalmazst, mely sikeresen mukdik. rdemes mg megemlteni, hogy az alkalmazssorn eredmnyl kapott programok, br kpesek megoldani az eredeti problmt, sotelg j eredmnyt adnak, ttekinthetetlenl bonyolultnak tunnek egy ember szmra.

  • 8/11/2019 genetikai algoritmusok

    24/128

    2. fejezet

    A genetikus algoritmusok ismertetse

    Ebben a fejezetben a genetikus algoritmusok elmlett vizsgljuk meg. Eloszr az evo-lci s a genetika alapfogalmaival ismerkednk meg, majd a genetikus algoritmusokvza, alapfogalmai kvetkeznek. A tovbbiakban a genetikus algoritmusok egyes r-szeinek alaposabb elemzse, illetve tovbbfejlesztsi lehetosgei kvetkeznek. A feje-zetben megismerkednk a genetikus algoritmusok matematikai elmletnek alapjaivalis.

    2.1. Az evolci

    A tovbbiakban megvizsgland algoritmusokhoz szksgnk van a darwini evolci,azaz a trzsfejlods ismeretre. Darwin elott gy gondoltk, Isten megteremtette azsszes llat- s nvnyfajt, s a fajok azta lnyegben vltozatlan formban lnek aFldn.

    Ma mr ismert, hogy a valsgban a fajok kzt, s az egyes egyedek kztt sznte-

    len versengs folyik. Az letkpesebb, a tbbi egyednl valamilyen terleten jobbnakmutatkoz egyed nagyobb valsznusggel ri meg az ivarrett kort, vrhatan tbbutda lesz, mint egy gyengbb egyednek. A termszetes kivlasztds sorn az lo-lnyek versengse rendkvl vltozatos lehet. Dnthet az lolnyek kztt a tpllk-szerzs gyessge (melyik oroszln ri utol az antilopokat), a tpllkk vls elker-lsnek kpessge (melyik antilop tud elfutni az oroszlnok elol), fajon belli harc anostnyekrt (szarvasbikk kzdelme), a turokpessg mrtke (ki li tl a szrazs-got), az alkalmazkods kpessge (ki tud alkalmazkodni a felmelegedett idojrshoz).

    A kivlasztdst irnythatja az ember is, ekkor beszlnk mestersges kivlaszt-dsrl. A fajok folytonos vltozsa eredmnyezi azt, hogy egy faj tbb alpopulciraoszlsa utn, ha az elklnls hosszabb ideig tart j alfajok, mg hosszabb elkln-

    ls utn j fajok keletkeznek.Az evolciban az egyik legrdekesebb vons az, hogy minden irnytottsg nlkl

    (kivve az ember faj- vagy fajtanemestseit) ltvnyos eredmnyeket r el. Term-

    23

  • 8/11/2019 genetikai algoritmusok

    25/128

    GA speci anyaga 24

    szetesen az evolci is vezethet zskutcba, amikor egy faj olyan irnyban fejlodik,melynek vgn kihal. Ez legtbbszr a tlzottan specializldott fajokkal fordul elo,melyek kptelenek alkalmazkodni a krnyezet megvltozshoz, pldul egy msik fajkipusztulshoz.

    2.2. Genetika

    Mr az osidokben szrevettk az emberek, hogy az azonos fajhoz tartoz lolnyek,noha nagyon hasonltanak egymsra, mgsem egyformk. Szerettek volna rjnni, mihatrozza meg az egyes tulajdonsgokat. A tudomnyos kvncsisg legfobb oka azvolt, hogy egyre tkletesebb hzillatokat, termesztett nvnyeket szerettek volna.

    szrevettk, br az utdnak nha olyan tulajdonsgai vannak, melyet egyik sz-loben sem lehet szlelni, (Pldul kt fekete kecsknek tarka kiskecskje szletik) azutdok mgis nagymrtkben hasonltanak szleikre. A felfedezs lehetov tette a ne-mestst, egyszeruen a psztorok csak a legjobb llatok szaporodst engedtk, a n-vnytermesztok pedig kigyomlltk a nemkvnt egyedeket. Nem tudtk ugyanakkormegmagyarzni, mitol fgg, hogy egy utd hasonlt-e valamelyik szlojre.

    Mint ltjuk, alkalmazni mr tudtk a genetikt, de az rklods szablyait nemismertk. A problmt neheztette, hogy a kzpkorban mg elfogadott volt azosnem-zs tana, azaz hogy bizonyos lolnyek maguktl keletkeznek (roml hsbl nyvek,homokbl bolha), ami nyilvn ellentmond az rklodsnek, hiszen nincs honnan r-klni a tulajdonsgokat. ltalnosan elfogadott volt az is, hogy az embereknl a gyer-mek tulajdonsgait (nagyobbrszt) az aptl rkli. Ez termszetesen nem gtolta megaz embereket abban, hogy a lenygyermekek szletsrt az anykat okoljk. Tovbbinehzsget jelentett, hogy tbb tulajdonsgrl nehz eldnteni, hogy rklodik-e. (Masem eldnttt, mitol lesz valakibol zseni, rkli a szleitol a kpessget, vagy a soktanuls az oka, esetleg mindketto)

    Az rklods tulajdonsgainak alapjait vgl Mendel fedezte fel a XIX. szzadkzepn. A tovbbiakban a genetika alapveto fogalmait ismerjk meg, a genetikrltbbet a [LG83], [Ber89] s [Moh96] knyvekbol tudhatunk meg.

    2.2.1. Gnek

    Az rkltt tulajdonsgokat a gnekhatrozzk meg. Egy gnnek kt fontos jellem-zoje van, a funkcija, s lkusza (helye). A gn funkcija azt mondja meg, melyiktulajdonsgot hatrozza meg a gn.

    A gnek lehetsges rtkei azalllok. Egy gnnek az egyszerubb esetekben kt al-llja van, de pldul az AB0 vrcsoportrendszerben a vrcsoportot ler gnnek hrom

    alllja van (0,IA,IB)A gnekkromoszmkatalkotnak, egy kromoszma egyms utn fuztt gnekbol

    ll. Egy gn lkusza a gn helye a kromoszmban. Ha egy lolny kromoszmjban

  • 8/11/2019 genetikai algoritmusok

    26/128

    GA speci anyaga 25

    kicserlnnk kt gnt, csak a gnek lkuszai vltoznnak meg, funkcijuk vltozatlanmaradna, gy az lolny tulajdonsgai elvileg nem vltoznnak.

    A kromoszmk sszessgtkromoszmaszerelvnynekis nevezik. Bizonyos lo-lnyekben egy kromoszmaszerelvny van, azaz egy gn egyszeruen meghatroz egytulajdonsgot. Ezekethaploidszervezeteknek nevezzk. Haploid szervezetek pldulaz ivartalanul szaporod egysejtuek, tbb gombafaj, s a hm mhek.

    Az ltalunk ismert lolnyek nagy rszben (pldul az emberben is) kt kromosz-maszerelvny tallhat (ezeket nevezzkdiploidszervezeteknek) , azaz minden tulaj-donsgot kt gn szeretne meghatrozni. Leggyakrabban a gn egyik alllja dominnsa msikkal szemben, azaz ha a kt alll klnbzik, az lolny olyan tulajdonsg lesz,amilyen tulajdonsgot a dominns gn meghatroz.

    A pldbl lthat, hogy meg kell klnbztetni az lolny megjelenst (fenot-pust) s az lolny ltal tartalmazott alllokat (genotpust).

    Lteznek olyan lolnyek, melyek kettonl tbb kromoszmaszerelvnyt tartal-maznak, ezek apoliploidszervezetek. Ilyen nvny pldul a burgonya.

    2.2.2. Szaporods

    A szaporods sorn az lolnyek utdokat hoznak ltre, s egyttal sajt gnkszletketmentik t a kvetkezo generciba.

    A szaporodst kt fo csoportra kell osztani, az ivartalan, s ivaros szaporodsra.Ivartalan szaporodsnl az utdnak egy szloje van, s az utd a ksobb emltendomutcit nem szmtva teljesen megegyezik szlojvel. Ivaros szaporodsnl azutdnak kt szloje van, s genetikai anyaga a kt szlo genetikai anyagnak keverke,teht az utd genotpusaklnbzik a szlok genotpustl. rdemes megjegyezni,hogy az ivartalanul szaporod lolnyek jelentos rsznl szintn van md a genetikaianyagok keveredsre.

    2.2.3. Mutci

    Mind az ivartalan, mind az ivaros szaporodsnl elofordul, hogy a genetikai anyagmsolsa kzben hiba trtnik, vagyismutcijelentkezik. Megvltozhat egy gn r-tke, kromoszmarszek maradhatnak ki, kettozodhetnek meg, esetleg meg is fordul-hatnak. Elofordul a kromoszmk eltrse, a letrt kromoszmadarabok elveszhet-nek, vagy egy msik kromoszmhoz tapadhatnak hozz. Elofordulhat a kromoszma-szm megvltozsa is. (Kromoszmaszm megvltozs okozza a Down-krt, Turner-s Klinefelter-szindrmt.) A mutcik egy rsze spontn mutci, de a mutagn anya-gok is kivlthatnak mutcit. Vgezetl meg kell emlteni, hogy a pldktl eltroen

    a mutci nem egyrtelmuen negatv dolog, vannak pozitv mutcik, s a mutcielosegti a genetikai vltozatossgot is.

  • 8/11/2019 genetikai algoritmusok

    27/128

    GA speci anyaga 26

    2.3. A genetikus algoritmusok alapmodellje

    Mint tudjuk a genetikus algoritmusok egyfajta evolcis algoritmusok. Meg kell hat-roznunk, hogy az evolcis algoritmusok ltalnos modelljben nyitottan hagyott pon-tok (reprezentci, szlokivlaszts, keresztezs, mutci, tllok kivlasztsa) mikntvannak a genetikus algoritmusokban meghatrozva, miben klnbznek a genetikusalgoritmusok az evolcis algoritmusok tbbi vltozattl.

    A genetikus algoritmus sorn a populci egy egyede a megoldand problma egylehetsges megoldsnak felel meg. (Teht nem magnak a megold programnak, minta genetikus programozsban (1.4.5. rsz).)

    A lehetsges megoldsokat nem az eredeti feladatnak megfelelo formban troljuka populciban (mint az evolcis programozs (1.4.1. rsz) sorn), hanem a trolselott minden lehetsges megoldshoz egy-egy kromoszmt rendelnk hozz. A tovb-biakban minden muveletet (pldul: keresztezs, mutci) a kromoszmkon hajtunkvgre. Teht e genetikus algoritmus mukdse sorn nem a keressi tr (S) pontjaivaldolgozunk, hanem az gynevezett kromoszmatr (C) pontjaival. A kromoszmatrrels a kromoszmatrre trtno lekpezssel (SC) a 2.6. rszben foglalkozunk.

    A szlok kivlasztsa a genetikus algoritmus sorn a kvetkezokpp trtnik: feleannyi szloprt kpeznk, mint a populci mrete. gy tlagban minden egyed egyprban szerepel, de a kivlaszts sorn elonyt lveznek a magasabb fitneszrtkkelrendelkezo egyedek. Minden szlopr kt utdot generl. Az utdok generlsa sornkeresztezs s mutci trtnhet.

    A tllok kivlasztsa a legtbb genetikus algoritmus sorn nagyon egyszeru: argi populci minden egyede meghal, helyket az j populci egyedei foglaljk el.

    2.3.1. Az ltalnos GA pszeudo-kdja

    Az ltalnos genetikus algoritmus pszeudo-kdja nem sokban klnbzik az ltal-

    nos evolcis algoritmusok pszeudo-kdjtl (1.1. algoritmus), a klnbsg a szlokkivlasztsnak mdjban van.

    A kezdeti populci feltltse az ltalnos evolcis algoritmusokhoz hasonl m-don trtnik. Tbbnyire vletlenl vlasztott egyedeket helyeznk a populciba, deha mr ismernk sikeres egyedeket, velk is feltlthetjk a populcit.

    A fitneszrtkek kiszmtsa problmafggo, a genetikus algoritmusok sorn csakannyit kvetelnk meg, hogy a fitneszfggvny rtkei ne legyenek negatvok, s a jobbmegoldsokhoz magasabb fitneszrtk tartozzon. Tovbbi felttel, hogy a keressi tr-ben tallhat illeglis megoldsoknl a fitneszfggvny rtke 0 legyen. (Vagyis ha afitneszfggvny rtelmezsi tartomnya szukebb a keressi trnl, akkor a fitneszfgg-vnyt ki kell terjeszteni, hogy rtelmezsi tartomnya megegyezzen a keressi trrel.)A fitneszfggvnyekrol bovebben a 2.9. rszben olvashatunk.

  • 8/11/2019 genetikai algoritmusok

    28/128

    GA speci anyaga 27

    2.1. algoritmusGAt 0 {Kezdeti ido belltsa}initpopulci Pt{Kezdeti populci ltrehozsa (tbbnyire vletlenszeruen)}fitnesz_szmtPt{Fitnesz rtkek kiszmtsa}whileamg nincs kszdo

    Pt+1= {} {Kvetkezo populci itt mg res}fori:=0 to populci_mret / 2do

    E1,E2:= szloprPt{Egy szlopr vlasztsa}keresztezE1,E2{A szloprok gnjeinek keresztezse}mutciE1{Vletlen mutci}mutciE2{Vletlen mutci}fitnesz_szmtE1{Az j fitnesz kiszmtsa}fitnesz_szmtE2{Az j fitnesz kiszmtsa}Pt+1=Pt+1+ E1+ E2{Az j populciba kerlnek az egyedek}

    end fort := t + 1

    end while

    2.4. Egy plda a GA mukdsre

    2.4.1. A feladat

    A feladat azx (sin(x) + 1)fggvny maximalizlsa,x [0, 20 ]esetn.Eloszr is vizsgljuk meg a maximalizland fggvnyt. Az x sin(x)fggvny-

    nek tbb cscspontja van, radsul ezek a cscspontok klnbzo magassgak. Ide-lisnak tunik teht a fggvny, hogy teszteljk vele a genetikus algoritmusokat. Mivel afitneszfggvny rtke nem lehet negatv ezrt mdostani kell azx sin(x)fggvnyt.Ennek legegyszerubb mdja, hasin(x)rtkt megnveljk eggyel. gy kapjuk meg ax (sin(x) + 1)fggvnyt.

    2.4.2. A megolds

    Mivel csak x szerint kell optimalizlni, a kromoszmnk egyetlen gnt fog tartalmazni.A gn lehetsges rtkei megegyeznek x lehetsges rtkeivel. A gn reprezentlsakora legegyszerubb mdszert vlasztjuk, bitvektorral reprezentljuk (2.6.1. rsz) a gnt.A bitvektort tetszolegesen hosszra vlaszthatjuk, minl hosszabb a bitvektor, annlpontosabb eredmnyt kapunk. (s annl lassabb lesz az algoritmus.) A teszt sorn abitvektor hossza 20 bit lesz, gy x kt szomszdos rtke kztt a tvolsg kb.0.00006.

    A genetikus algoritmus tovbbi paramtereinek a kvetkezoket vlasztottuk: Populci mrete: 10

  • 8/11/2019 genetikai algoritmusok

    29/128

  • 8/11/2019 genetikai algoritmusok

    30/128

  • 8/11/2019 genetikai algoritmusok

    31/128

    GA speci anyaga 30

    1

    1

    2

    2

    2

    21

    3

    4

    2.2. bra. A rulettkerk mdszer

    2.5.1. Rulettkerk mdszer

    Egy kpzeletbeli rulettkereket ksztnk, melyen minden egyedhez fitneszrtkvelarnyos szm rekesz tarozik. A kpzeletbeli rulettkereket megprgetve megfigyeljk,hogy a kpzeletbeli goly melyik rekeszbe esik. Amelyik egyed rekeszbe esik, azt azegyedet vlasztjuk szlonek. Mivel a rekeszekbe egyforma esllyel esik a goly, s arekeszek szma a fitneszrtkkel arnyos, a kivlaszts eslye is a fitneszrtkkel leszarnyos. Egy ilyen rulettkereket lthatunk a 2.2. brn. Az bra azt az esetet mutatjabe, amikor a populci 9 egyedbol ll, melyek fitneszrtkei rendre: 2, 3, 1, 4, 2, 2, 2,1, 1. A rulettkerk teht 18 (2+3+1+4+2+2+2+1+1) rekeszbol ll, az azonos egyedheztartoz rekeszeket vkony, a klnbzo egyedekhez tartoz rekeszeket vastag vonalvlasztja el az brn.

    2.5.2. Genercis szakadk

    Genercis szakadknak nevezzk azoknak az egyedeknek az arnyt, melyeket kicse-rlnk a genercivlts sorn. A kanonikus GA sorn ez az arny 1. A termszetbenez az arny csak a rvid letu llatoknl 1 (a szlo meghal mielott kikelne az utd),a hosszabb letu llatoknl a szlo is l mg az utd szletsnl. Ez egyrszt leheto-sget ad a leszrmazottak nevelsre (ezt nem hasznljuk ki a GA sorn), msrszt azegymst kveto nemzedkek kztti versengst is lehetov teszi.

    Ha a genercis szakadkot a leheto legkisebbre cskkentjk (kt egyedet cser-lnk mindig), akkor igen kiegyenslyozott genercivltst kapunk. Ebben az esetbennemcsak a szlok kivlasztsval kell trodnnk, hanem el kell dntennk, hogy me-

  • 8/11/2019 genetikai algoritmusok

    32/128

    GA speci anyaga 31

    lyik kt egyed helyre tesszk a leszrmazottakat.Tbb lehetosg kzl nhny:

    Szlokivlaszts fitnesz alapjn, helyettests vletlenszeruen.

    Szlokivlaszts vletlenszeruen, helyettests az inverz fitnesz alapjn.

    Szlokivlaszts fitnesz alapjn, helyettests az inverz fitnesz alapjn.Fontos klnbsg a hagyomnyos GA-val szemben, hogy itt minden egyes proso-

    ds utn el kell vgezni bizonyos statisztikai szmtsokat (pl. tlagos fitneszrtk), shogy a leszrmazottak azonnal rendelkezsre llnak a prosodsra. Ez lehetosget adarra, hogy a sikeres gnek hamarabb elterjedjenek a populciban. Egyes kutatk sze-rint ez komoly elony, msok szerint ugyanezt a hatst el lehet rni a kanonikus GA-nlis pldul a fitnesz mdostsval.

    2.6. A kromoszmareprezentci mdjai

    A genetikus algoritmusok sorn a feladattl fggoen klnbzo kromoszmateret hasz-nlhatunk. A kromoszmatr ltalban felrhatC = n alakban, ahol n a kromo-szma hossza s egy vges bc. leggyakrabban kt elemet tartalmaz (0,1), eb-ben az esetben minden kromoszma egy-egy bitvektor. Mivel ez a leggyakoribb slegjobban elemzett eset, a tovbbiakban kivve nhny specilis esetet a kromo-szmkat bitvektornak tekintjk. Hakettonl tbb elemet tartalmaz, akkor a kromo-szmkat karaktervektornak (sztringnek) tekintjk, selemeit kis- s nagybetukkel

    jelljk.

    2.6.1. S C

    lekpezsekrdemes megvizsglni, milyen mdon tudjuk a keressi teret a kromoszmatrre lek-pezni. A tovbbiakban megismerjk a keressi tr kt leggyakrabban elofordul vl-tozatt s a vltozatokhoz tartoz lehetsges lekpezsi mdokat. Ltunk pldt egyritkbban hasznlt keressi trre is, melyet neuronhlk optimalizlsnl alkalmaz-hatunk. A tovbbiakban az egyszerusg kedvrt felttelezzk, hogy a keressi tr 1dimenzis. Az 1 dimenzis esetek megvizsglsa utn szt ejtnk a tbbdimenzisesetrol is.

    S= [a, b] R

    A leggyakrabban elofordul eset, hogy egy adott intervallumba eso szmot keresnk.Mivelelemszma vges, nem tudunk az intervallum minden pontjhoz egy kromo-szmatrbeli pontot rendelni. Eloszr teht diszkretizlni kell az intervallumot.

  • 8/11/2019 genetikai algoritmusok

    33/128

    GA speci anyaga 32

    2.4. tblzat. Diszkretizls (a=1.0 b=4.5 k=3)

    Diszkrt pontok: 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5Bitvektor: 000 001 010 011 100 101 110 111

    Vegynk2k pontot, a pontok legyenek egyenletesen elosztva az intervallumon be-ll. Azi.pont (i [0, 2k 1]) helye teht (2

    k1i)a+ib2k1 .

    Az gy kapott 2k pontot mr knnyen tudjuk kezelni. Legyen a kromoszmatrC = {0, 1}k, vagyis a kromoszma egy k bitbol ll bitvektor. Ha a bitvektort mintbinris szmot tekintjk, megkapjuk az brzolt pont sorszmt. Nzznk egy egy-szeru pldt! Ha egy 1.0 s 4.5 kztti szmot keresnk (S = [1.0, 4.5]), s 3 bitenszeretnnk a szmot brzolni (C={0, 1}3), akkor az intervallum 8 pontjhoz tudunkbitvektort hozzrendelni. A pontokat s a hozzjuk tartoz bitvektorokat a 2.4. tblzattartalmazza.

    Tbb kutat azt javasolja, hogy ne kdoljuk el a vals szmokat bitvektorr, vagyis

    a kromoszma vals (lebegopontos) szmokat tartalmazzon. A mdszer elonye, hogyknnyen alkalmazhatunk problma-specifikus keresztezst s mutcit. Lehetsges mu-tcis mdszer pldul, ha a vals szmhoz egy 0 vrhat rtku, normlis eloszlsvletlenszmot adunk hozz.

    |S|

  • 8/11/2019 genetikai algoritmusok

    34/128

    GA speci anyaga 33

    2.5. tblzat. A keressi tr pontjainak hozzrendelse a bitvektorokhoz

    Keressi tr pontjai: A B C D E F A BBitvektor: 000 001 010 011 100 101 110 111

    Az elso kt mdszer nagyon hasonlt egymsra, mindketto hibja, hogy olyan kromo-szmkat is illeglisnak vagy nagyon gyengnek tekint, melyekben a kromoszma msterletein sikeres gnek tallhatak.

    A 3. mdszernek tbb vltozata ltezik, a mdszerek rvid sszefoglalst pldula [BBM93b] cikkben tallhatjuk meg. A tovbbiakban az egyik legegyszerubb vltoza-tot ismerhetjk meg. A 8 lehetsges bitvektor kzl az elso 6-hoz sorban hozzrendel-

    jk a keressi tr egy pontjt (000 A, 001 B . . . ). A fennmarad 2 bitvektorhoz akeressi tr 2 tetszoleges pontjt rendeljk hozz (a pldban (2.5. tblzat) 110 A,111 B). Mivel mind a 8 bitvektorhoz hozzrendeltk a keressi tr egy pontjt, nemkell attl tartani, hogy keresztezods vagy mutci hatsra olyan bitvektor keletkezik,melyet nem tudunk kezelni. A mdszer hibja, hogy a keressi tr egyes pontjaihozegy bitvektort rendeltnk (C, D, E, F), mg ms pontokhoz kettot (A, B), ezrt egyespontok elonyt lveznek a tbbiekkel szemben.

    Ha a felhasznlt bitek szmt megnveljk, akkor az elony mrtke cskken. Hapldul 4 bitet hasznlunk az elozo pldban, akkor 16 lehetsges bitvektort kapunk. Akeressi tr 2 pontjhoz ketto-ketto, 4 pontjhoz hrom-hrom bitvektort rendelhetnk(2 2 + 4 3 = 16). Ebben az esetben az elonyt lvezo pontokhoz 32-szer tbb bitvektortartozik mint az elonyt nem lvezo pontokhoz. Hrom bit felhasznlsnl ez az arny2volt.

    Neuronhlk reprezentlsa

    Ha mestersges neuronhlkat szeretnnk optimalizlni, akkor a keressi tr a neuron-hlk halmaza. A gyakorlatban a neuronhlknak csak egy szukebb csoportjt szoktkvizsglni.

    Most egy olyan reprezentlsi mdot ismerhetnk meg [Jel96], mellyel azokat aneuronhlkat tudjuk reprezentlni, melyek megfelelnek a kvetkezo feltteleknek:

    A neuronhlban nincs irnytott kr. A neuronhlnak 3 input neuronja van. A neuronhlnak 1 output neuronja van. A rejtett rtegek szma legfeljebb 4.

    Egy rtegen bell legfeljebb 4 neuron tallhat.A 2.3. brn lthatunk egy neuronhlt, s a neuronhlt reprezentl bitvektort. A

    bitvektor rteg kontrol biteket s neuron kontrol biteket tartalmaz. Az input s output

  • 8/11/2019 genetikai algoritmusok

    35/128

    GA speci anyaga 34

    1011 1011 1110 1100 1010

    OutputInput

    Neuron kontrol blokkokRteg kontrol

    Rejtett rtegek

    2.3. bra. Neuronhl reprezentlsa

    rtegek kztt tallhatak a rejtett rtegek, legfeljebb 4 darab. A rteg kontrol mondjameg, hogy a 4 lehetsges rejtett rtegbol melyik szerepel a neuronhlban. Az brn azelso, harmadik s negyedik rteg szerepel, ezrt a rteg kontrol tartalma 1011. Mindenrteghez neuron kontrol bitek tartoznak. A neuron kontrol bitek adjk meg, hogy artegen belli neuronok kzl melyik szerepel a neuronhlban. Az brn a harmadik

    rtegben az elso s msodik neuron szerepel, a harmadik s negyedik nem, ezrt aneuron kontrol blokk tartalma 1100.A bitvektor hosszt knnyen ki tudjuk szmtani: 4 + 4 * 4 = 20 bit. Teht C =

    {0, 1}20.

    Tbbdimenzis keressi tr

    Ha a keressi tr tbbdimenzis akkor egyszerre tbb paramtert (gnt) kell reprezen-tlnunk. Az egyes paramterekhez kln-kln rendelhetnk hozz bit- vagy string-vektort, majd ezeket sszefuzve kapjuk meg a kromoszmt. Mivel nehz egy olyankromoszmt kezelni melynek egyes rszei bit-, ms rszei stringvektorok, ezrt vagy

    az sszes paramtert bitvektorra, vagy az sszeset stringvektorra kpezzk le.Ha megvannak az egyes paramterekhez rendelt kromoszmadarabok, mr csak

    ssze kelloket f uzni. Krds, milyen sorrendben fuzzkoket ssze? Knnyen lthat,

  • 8/11/2019 genetikai algoritmusok

    36/128

    GA speci anyaga 35

    hogy han >1 darab gnnk van, akkor a lehetsges sorrendek szma n!2. (A kettovel

    val oszts azrt szerepel, mert az egsz kromoszmt megfordthatjuk.) A gnsorrendakkor j, ha az sszefggo gnek kzel vannak egymshoz a kromoszmban, a fg-getlenek tvol [BBM93a]. A feltteleknek nehz eleget tenni, hiszen az egyes gnekkzti kapcsolat erossgt sokszor nem ismerjk elgg. Ilyen esetekben hasznos lehet,ha olyan reprezentcit vlasztunk, melyben a gn funkcija fggetlen a lkusztl(2.2.1. rsz). Ilyen reprezentcirl a 3.1. rszben olvashatunk.

    2.7. Mutci

    A mutci a genetikai anyag vletlen megvltozsa. A termszetben megismert mut-cit (2.2.3. rsz) rdemes alkalmazni a genetikus algoritmusokban is.

    Mr a termszetben jelentkezo mutci sorn is emltettk, hogy a mutci lehethasznos s kros is. A genetikus algoritmusok sorn nem kell tlzottan tartani a krosmutciktl, hiszen az gy keletkezo rossz egyedek nagyon hamar kihalnak, gy nemveszik el a helyet a sikeresebb egyedektol. Tl sok mutci azonban mr kros lehet,mivel tl sok letkptelen egyed szletne. A mutci valsznusgt ezrt elg alacso-nyan szoktk meghatrozni, egy bit mutcijnak valsznusge tbbnyire 0.0010.01.

    A legegyszerubb mutcinl a mutci hatsnak kitett bit rtkt megvltoztatjk(0-bl 1, 1-bol 0 lesz). Nha a bit j rtkt vletlenszeruen vlasztjk, gy az esetekfelben nem vltozik a bit rtke. Ha a kromoszma nem bit-, hanem stringvektor,akkor az j rtket vletlenl vlasztjk, de nem biztos, hogy az egyes vlasztsoknakegyforma a valsznusge.

    Ha a gnek rtkt binrisan kdoljuk, felmerlhet mg egy problma: Kpzeljkel, hogy 5 biten brzoljuk egy gn rtkt. A gn rtke 0 s 31 kztt lehet. Te-gyk fel, hogy az optimum a 16-os rtk, s a kromoszmnkban a gn rtke 15, aminagyon kzel van az optimumhoz. Ha binrisan brzoljuk a kt rtket (15: 01111,

    16: 10000), szrevehetjk, hogy a bitek rtke pronknt klnbzo, vagyis 5 egymsutni mutcira lenne szksg, hogy a 15-s rtkbol 16-ot kapjunk, aminek nagyonkicsi az eslye.

    Tovbbi problma a mutcival, hogy mivel minden bitnl ugyanakkora a mut-ci valsznusge, ugyanakkora az esly arra, hogy a gn rtkt 1-el vltoztatjuk (haa 0. bitek trtnik a mutci), mint arra, hogy 16-tal (ha a 4. biten trtnik a mut-ci). Ez ellentmond annak a megfigyelsnek, hogy a kisebb mutcik valsznubbek,a nagyobbak ritkbbak. Kt megoldsi javaslat van a problmkra:

    2.7.1. +/- mdszer

    AMessaltal javasolt +/- mdszerben a gn rtkhez hozzadunk, vagy kivonunkbelole egy szmot. Az szm ketto hatvnya 1 s2M kztt, teht egy olyan szm,

  • 8/11/2019 genetikai algoritmusok

    37/128

    GA speci anyaga 36

    2.6. tblzat. Gray kdok

    0 1 2 3 4 5 6 7Binris kdols 000 001 010 011 100 101 110 111Gray kdok 000 001 011 010 110 111 101 100

    mely binrisan brzolva pontosan egy db 1-es bitet tartalmaz (az 1-es bit pozcijtjelljk i-vel).

    Ha a mdostand gn i. bitje 0, akkor hozzadsa utn a bit 1 lesz, hasonlana hagyomnyos mutcihoz. Ugyanazt az eredmnyt kapjuk akkor is, ha a bit rtke1 volt, s kivontuk belole -t. A klnbsg akkor jelentkezik, ha a bit rtke 1, shozzadjuk -t, vagy ha a bit rtke 0, s kivonjuk. Az elobbi pldban ha a 15-hz(01111) epszilon=1-et (00001) hozzadunk, egy lpsben megkapjuk a 16-ot (10000).

    Ltezik a mdszernek egycskkenovltozata is, melyben kezdetben vletlenszeru-en vlasztjuk 1 s2M kztt rtkt, ksobb, az algoritmus elorehaladtval azonban

    fokozatosan kizrjuk a nagyobb rtkeket, gy megnvelve a kisebb mutci valsz-nusgt.

    2.7.2. Gray kd

    A Gray1 kd hasznlata esetn nem kell vltoztatnunk a mutci algoritmusn, csak agnek rtknek brzolsi mdjn.

    A Gray kdols esetn is a binris kdolsnl kapott bitvektorokat hasznljuk, dems sorrendben rendeljk hozz a szmokhoz. A Gray kdolsnl kt szomszdosszm mindig olyan bitvektorokat rendelnk, melyek kztt csak egy bitben van el-trs. (Teht kt szomszdos bitvektor Hamming tvolsga mindig 1.) Ennek kszn-

    heto, hogy elg egyetlenegy mutci, hogy a gn rtkt 1-el megvltoztassuk. A 07rtkek binris s Gray kdolst lthatjuk a 2.6. tblzatban.

    Br a mutcik tbbsge a Gray kdoknl kis mutci lesz, nagyon nagy mutcikis elofordulhatnak, olyan nagyok is, melyek a hagyomnyos binris kdolsnl nem

    jelentkezhettek. Ha a gn rtke 0 (000), akkor a 2. bit megvltoztatsval 100-t ka-punk, ami a Gray kdolsnl a 7-et kdolja. Vagyis a mutcival a leheto legnagyobbvltozst idztk elo, a legkisebb elembol a legnagyobbat kaptuk.

    1A mdszer neveFrank Graynevbol szrmazik, nem az angol szrke (gray, grey) szbl, gy Gray-

    nak kell rni

  • 8/11/2019 genetikai algoritmusok

    38/128

    GA speci anyaga 37

    2.7.3. Fenotpusos mutcik

    Az eddig ttekintett mutcik kzs vonsa, hogy nem trodnek azzal, hogy az egyesbitek, szmok mit reprezentlnak, pusztn az egyed genotpust veszik figyelembe. En-nek a szemlletnek tagadhatatlan elonye, hogy ezek a mdszerek univerzlisak. Br-milyen problmt prblunk megoldani GA-val, ezeket a mdszereket hasznlhatjuk.

    Ez az univerzalits ksrtetiesen emlkeztet az MI oskorban hasznlt GPS-ekre

    (General Problem Solver). A kutatk olyan ltalnos mdszert kerestek, mely segt-sgvel a megoldand problmk tbbsgt meg lehet oldani, vagyis a mdszer nemhasznl fel semmit a problma-specifikus tudsrl. Kiderlt, hogy ilyen mdszereketelmletben knnyu gyrtani, a gyakorlatban azonban a kombinatorikus robbans miattcsak a legegyszerubb ms mdszerekkel is knnyen megoldhat problmkatoldja meg. A GPS-ek sikertelensge hossz tvra visszavetette az MI kutatsokat.

    Hasonl jelensg tapasztalhat a GA-nl is. A kanonikus GA, mely nem hasz-nl fel problma-specifikus informcit, elmletileg minden olyan problmt kpesmegoldani, melyet le lehet rni a GA szmra. A gyakorlatban azonban az ilyen GAnem hatkonyabb mind a hagyomnyos mdszerek, s komolyabb feladat megoldsranem alkalmas. A hatkonysg nvelsre a problma-specifikus tudst be kell gyaznia GA-ba. Specilis reprezentlst, specilis genetikai opertorokat kell hasznlni. Hapldul binris fkat brzolunk, akkor elkpzelheto, hogy rdemes egy olyan mutcithasznlni, mely kt rszft megcserl. A kromoszma szerkezettol fggoen egy ilyenmutci sorn esetleg sok bit rtke megvltozik. Egy ilyen mutcira a hagyomnyosmutcis mdszereket hasznlja nagyon kis esly van.

    A ksobbiekben amikor konkrt GA alkalmazsokat vizsglunk meg, tbb ilyenmutcira ltunk majd pldt.

    2.8. Keresztezs

    A genetikus algoritmusok fontos eleme a keresztezs, ennek segtsgvel tudjk egyesegyedek genetikai anyaguk egy rszt kicserlni. A keresztezs azrt fontos, mert akeresztezs sorn a szlokben kln-kln jelenlvo tulajdonsgok keveredhetnek azutdban. Az utdok generlsakor nem minden esetben trtnik keresztezs, lehetos-get adva arra, hogy a szlok gnkszlete vltozatlan formban kerljn a kvetkezogenerciba. A keresztezs valsznusgt tbbnyire 6070 %-ban hatrozzk meg.

    A tovbbiakban a klnfle keresztezsi mdszereket nzzk t.

    2.8.1. 1-pontos keresztezs

    A legegyszerubb keresztezsi mdszernl egy vletlen helyen (keresztezodsi pont-ban) elvgjuk a kromoszmkat, s a keresztezodsi pont utni kromoszmadarabokatfelcserljk. A 2.4. brn lthat egy egyszeru 1-pontos keresztezs. Keresztezodsi

  • 8/11/2019 genetikai algoritmusok

    39/128

    GA speci anyaga 38

    1 0 0 0 0 01 1 1 1

    1 1 1 1 1 10000

    1 0 0 1 0 1 0 0 1 1

    1 1 0 1 0 1 1 0 0 1

    Szlok Leszrmazottak

    2.4. bra. 1-pontos keresztezs

    pontnak a 6. s 7. gn kztti helyet vlasztottuk, ezt jelzi a fggoleges vonal. Megfi-gyelheto, hogy a leszrmazottak kromoszmja mindkt szlo kromoszmjbl tar-talmaz egy-egy darabot, s az is, hogy a ltrejvo j kromoszmk mindkt szlo kro-moszmjtl klnbznek.

    2.8.2. Tbbpontos keresztezs

    Az 1-pontos keresztezst knnyen mdosthatjuk gy, hogy nem egy, hanem tbb ke-resztezodsi pontot vlasztunk, s az gy feldarabolt kromoszmk megfelelo rszeitcserljk ki.

    2-pontos keresztezs

    A tbbpontos keresztezs leggyakrabban hasznlt vltozata a 2-pontos keresztezs.Ktpontos keresztezsnl nem egy, hanem kt keresztezsi pontot vlasztunk, s a

    kt pont kztti rszt cserljk ki.A ktpontos keresztezsnl a kromoszmt nemcsak lineris sztringnek, hanem

    egy gnekbol kpzett nyaklncnak is tekinthetjk. (Teht a kromoszma eleje s vge

    sszekapcsoldik.) A 2.5. brn lthatunk egy ilyen kromoszmt, a fggoleges vo-nal jelli azt a pontot, ahol a kromoszma eleje s vge sszekapcsoldik. Ebbol aszemszgbol vizsglva az 1-pontos keresztezst, az 1-pontos keresztezs felfoghategy olyan 2-pontos keresztezsnek, ahol az egyik keresztezodsi pont mindig a kro-moszma elejn tallhat.

    Minl tbb keresztezodsi pontot vlasztunk, annl jobban sszekeveredik a sz-lok genetikai anyaga, ami egyrszt hasznos, hiszen gy no a genetikai vltozatossg,msrszt kros, hiszen ha az egyik szlonl tbb j gn tallhat egyms mellett, nagya valsznusge, hogy egy keresztezodsi pont elvlasztja egymstl a gneket, s aleszrmazottban mr nem lesz megtallhat a j gnsorozat.

    A tbbpontos keresztezsek mellett szl, hogy amikor a populci mr nagyrsztkonverglt, kevs keresztezodsi pont esetn a leszrmazottak az esetek nagy rszben

  • 8/11/2019 genetikai algoritmusok

    40/128

  • 8/11/2019 genetikai algoritmusok

    41/128

    GA speci anyaga 40

    1 0 1 1 1 1 1 110 0 0 0 0 0 0 0 0

    0 1 1 1 0 0 0 0 0 01 10 1 1 1 1 1

    0 10 0 0 0 0 0 01 1 1 1 11 0 1 1

    0 0 0 1 0 0 0 1 1 0 0 1 1 0 1 0 0 0

    0 1 1 1 1 1 1 1 1 10 0 0 0 1 1 1 1

    Keresztezsi maszk:

    1. Szlo

    2. Szlo

    1. Utd

    2. Utd

    2.6. bra. Uniform keresztezs

    Szles krben elfogadott, hogy a 2-pontos keresztezsi mdszer elorelps az 1-pontoshoz kpest, a tovbbi keresztezodsi pontok felvtelvel kapcsolatban nincsegyetrts.

    ltalnosan a kvetkezo mondhat: 2-pontos keresztezst rdemes hasznlni vi-szonylag nagy populcinl, uniform keresztezst kis populcinl. Rvid kromosz-mnl kevs, hosszabb kromoszmnl tbb keresztezodsi pontot rdemes vlasztani.

    Ha a kromoszmban j a gnek sorrendje (2.6.1. rsz), akkor a 2-pontos keresztezsajnlott, a uniform keresztezst nem befolysolja mennyire j a gnsorrend.

    2.8.5. Egyb keresztezsi mdszerek

    Az elobb ismertetett mdszereken kvl tbb viszonylag j, mg nem elgg elterjedtmdszer ltezik. Tovbbi keresztezsi mdszereket ismerhetnk meg a 3.1.2. rszben,az ott ismertetsre kerlo mdszerek ellenttben az itt lertakkal helyesen mukd-nek abban az esetben is, ha megklnbztetjk a gn funkcijt s lkuszt. A konkrtalkalmazsokrl szl rszben fenotpusos keresztezodsekkel is tallkozhatunk.

  • 8/11/2019 genetikai algoritmusok

    42/128

    GA speci anyaga 41

    2.9. Fitneszfggvny

    A genetikus algoritmusoknl a fitneszfggvny rtke alapjn dntjk el, mely egyed-eket vlasztjuk ki, kinek a leszrmazottai kerlnek a kvetkezo populciba. A fit-neszfggvny minden megoldand problmnl ms s ms, ezrt nagyon fontos amegfelelo fitneszfggvny kivlasztsa. Br a fitneszfggvny mindig a megoldandproblmtl fgg, rdemes megismerni a klnbzo tpus fitneszfggvnyeket.

    Mint ltni fogjuk, megfelelo fitneszfggvny vlasztsa esetn is elofordulhat, hogyolyan problmk jelentkeznek, melyeket a fitneszfggvny futs kzbeni mdosts-val tudunk orvosolni. Meg fogjuk ismerni ezeket a problmkat, s azokat a mdsze-reket, melyek segtsgvel a problmk megoldhatak.

    2.9.1. A fi tneszfggvnyek fajti

    A feladatok egy rsznl nagyon egyszeru a fitneszfggvny kivlasztsa, hiszen haegy fggvnyt kell maximalizlnunk, akkor a maximalizland fggvnyt vlaszthat-

    juk fitneszfggvnynek. A tovbbiakban olyan eseteket vizsglunk, amikor nem ilyen

    egyszeru a fitneszfggvny meghatrozsa.

    Kzelto fitneszfggvny

    A feladatok egy rszben a fitnesz fggvny tl bonyolult, lassan szmolhat. Hibatudjuk pontosan lerni, a nagy szmtsigny miatt az algoritmus lassan fog futni, ezrtnem biztos, hogy a rendelkezsre ll idon bell megfelelo eredmnyt kapunk. Ebbenaz esetben segthet az, ha az eredeti fitneszfggvny helyett egy msik fggvny r-tkt szmoljuk ki, egy olyan fggvnyt, mely elg jl kzelti az eredeti fggvnyt,ugyanakkor sokkal gyorsabban kiszmolhat. Ha j fggvnyt vlasztunk, akkor tb-bet nyernk azzal, hogy az algoritmus ugyanazon ido alatt tbb genercit tud kirt-

    kelni, mint amit elvesztnk az ltal, hogy nem az eredeti fggvnyt hasznljuk.Goldberg knyvben lthatunk pldt [Gol89, 138. oldal] egy olyan alkalmazsra,ahol orvosi kpeket vizsgltak, s az sszes kppont vizsglata helyett (az lett volna azeredeti fitneszfggvny), csak a pontok egy rszt vizsgltk, s gy lnyegesen jobberedmnyt kaptak.

    Rszclokat kezelo fitneszfggvny

    Kpzeljk el, hogy rarendet kell ksztennk. A megoldsoknak tbb felttelt kellkielgtenik (pldul: egy tanr egyszerre legfeljebb egy rt tart, egy teremben egy-szerre legfeljebb egy osztly tartzkodik). Knnyen lthat, hogy ha a lehetsges meg-

    oldsokat vizsgljuk, az esetek nagy rszben valamelyik felttel nem teljesl. Mivela keressi tr legtbb pontja illeglis megoldst reprezentl, a fitneszfggvny rtkemajdnem mindenhol nulla.

  • 8/11/2019 genetikai algoritmusok

    43/128

    GA speci anyaga 42

    Ha valban 0-nak vesszk a fitneszrtkeket az ilyen pontokban, akkor a GA a v-letlen keresshez hasonlan mukdik, mivel minden hibs megoldst egyformn rossz-nak tl. Az lenne j, ha az ilyen pontokban a fitneszfggvny azt fejezn ki, milyen k-zel van a ponthoz egy leglis megolds. Nyilvn nem tudjuk ilyen egyszeruen megadnia fitneszfggvnyt, hiszen a leglis megoldsok ismeretlenek, pont azokat keressk.

    Egyik lehetsges megolds, ha a clt tbb kisebb rszcll bontjuk, s egy pontfitneszrtkt a teljestett rszclokbl szmtjuk ki. Az rarendksztsnl a rszcloklehetnek az egyes osztlyok, tanrok felttelnek megfelelo beosztsai.

    Bntetofggvny segtsgvel generlt fitneszfggvny

    Az elozo problma msik megoldsa, ha azt rjuk le egy bntetofggvny segtsgvel,mennyire rossz az illeglis megolds, mennyi (s milyen fontos) felttelt srt meg.

    A fitneszfggvnyt gy kaphatjuk meg, hogy egy megfelelo konstansbl kivonjuka bntetofggvnyt.Richardsons trsai vgeztek kutatst a tmban, s azt talltk([BBM93a]), akkor j a bntetofggvny, ha azt fejezi ki, milyen kltsggel lehet azilleglis kromoszmbl leglisat kszteni. Bntetofggvnyre pldt a 4.5. rszben

    tallhatunk.

    Ember, mint fitneszfggvny

    A [BBM93a] cikkben olvashatunk aC. CaldWells V. S. Johnstonltal alkalmazottrdekes fitneszfggvnyrol. A feladat rendorsgi fantom-kpek ksztse. Az emberiarc klnbzo rszekre van bontva (szem, orr, ll, szj, fl . . . ), minden alkotrszbolszmos tallhat az adatbzisban, s a gyanstottra leginkbb hasonlt kpet keres-sk.

    A m ukds sorn a GA vletlen arcokat generl, a tannak aki ltta a tettest ki kell vlasztania azt a kt kpet, amelyik legjobban hasonlt a gyanstottra. A kvet-

    kezo kpsorozatban a kpek mr jobban hasonltanak a kivlasztott kpekre. Ennl azalkalmazsnl a fitneszfggvny szerept a tan vette t.

    Tbbrtku fitneszfggvny

    Elofordulhat, hogy nem egy fggvnyt szeretnnk optimalizlni, hanem egyszerre tb-bet, esetleg nhny fggvnyt optimalizlni, msokat minimalizlni szeretnnk. Azok-ban az esetekben, amikor a fggvnyekbol ssze tudunk lltani egy j fitneszfgg-vnyt, nincs problma, hiszen az j fitneszfggvnyt kell maximalizlnunk. Nhnyesetben nem tudunk j fitneszfggvnyt kpezni. Gondoljunk arra, hogy egyszerre kellminimalizlni a termelsi kltsget s a munkahelyi balesetek szmt. Mg a termelsi

    kltsg forintban adott, egy munkahelyi baleset nehezen kifejezheto forintban.Vizsgljunk meg egy egyszeru pldt, ahol kt fggvnyt szeretnnk egyszerre mi-

    nimalizlni. A 2.7. brn lthatunk tbb lehetsges megoldst. Br nem tudjuk egyr-

  • 8/11/2019 genetikai algoritmusok

    44/128

    GA speci anyaga 43

    N

    Kltsg

    Balesetek szma

    A

    B

    C

    D

    E

    F

    GH

    I

    J

    K

    L

    M

    2.7. bra. Tbbrtku fitneszfggvny

    telmuen eldnteni melyik a legjobb, tbb megoldst ki tudunk zrni. szrevehetjk,hogy az A megolds mindkt fggvnynl kisebb rtket ad mint a G megolds, tehtaz A minden vizsglt szempontban jobb a G-nl. Ezt gy mondjuk, hogy az A domi-nlja G-t. A dominltsg alapjn parcilis rendezst(

  • 8/11/2019 genetikai algoritmusok

    45/128

    GA speci anyaga 44

    Eloszr megkeressk a dominlatlan egyedeket, ezek mind egyes sorszmot kap-nak. A kettes sorszm egyedek megkeresshez eloszr eltvoltjuk a populcibl azegyes sorszm egyedeket, s az gy kapott populciban keressk meg a dominlat-lan egyedeket. Az gy kapott egyedek lesznek a kettes sorszmak. A kettes sorszmegyedek eltvoltsa utn keletkezo populci dominlatlan egyedei a hrmas sorsz-mak. Az eljrst addig folytatjuk, mg el nem fogy az sszes elem.

    A sorszmok kiosztsa utn a kivlaszts mr a sorszmoktl fgg, minl kisebbegy egyed sorszma, annl nagyobb esllyel kerl kivlasztsra. Az brn (2.7.) lthatpldban egyes sorszmot kap az A, B, E, F, kettes sorszmot a G, C, D, M, hrmassorszmot a H, I, J, ngyes sorszmot a K, L, vgl ts sorszmot az N.

    Mivel a tbbrtku fitneszfggvnyeknl ltalban tbb lehetsges megolds is van(a dominlatlan egyedek), hasznos, ha a GA nemcsak egy, hanem lehetoleg minl tbblehetsges megoldst megad, ezrt a mdszert gyakran hasznljk egytt az lettrfelosztssal, s fajokra tagoldssal (3.4. rsz).

    2.9.2. Szlovlasztsi technikk

    Tudjuk, hogy a szlok kivlasztsnl elonyt lveznek a magasabb fitneszrtkkel ren-delkezo egyedek. Az egyik legegyszerubb mdszernl, a rulettkerk mdszernl (2.5.rsz) a kivlaszts a fitneszrtkkel arnyos. Bizonyos esetekben ez problmhoz ve-zethet.

    A kezdeti populciban tbbnyire tallunk nhny a tbbi egyedhez kpest kiemelkedo egyedet. Ekkor ez a nhny egyed nagyon hamar dominnss vlhat. Eztneveziktl korai konvergencinak. Ilyenkor a keressi tr csak kis rszt vizsglja azalgoritmus, s valsznuleg csak loklis maximumot ad. Az esetet gy tudjuk kiksz-blni, ha a kiemelkedo egyedeknek arnyosan cskkentjk az eslyeit.

    A msik problma bizonyos rtelemben az elozo problma ellentetje. Ha az algo-ritmus mr sok genercit vizsglt, akkor a populci mr nagy mrtkben konverglt,

    kicsi az eltrs az egyedek kztt. Mivel kicsi az eltrs az egyedek fitneszrtke k-ztt is, ezrt a legjobb egyedek kivlasztsnak valsznusge alig nagyobb a gyen-gbb egyedeknl. Ilyenkor a keress alig jobb mint egy egyszeru vletlen keress. Itta megolds az, ha a jobb egyedeknek nveljk az eslyeit.

    Az emltett problmk megoldsra tbb mdszer ismert. A mdszerek egy rsz-nl a fitneszfggvny rtkt mdostjk, s a mdostott rtkek alapjn trtnik akivlaszts (ezek az explicit fitneszfggvny lekpezsek), ms rsznl nem mdo-stjk a fitneszfggvnyek rtkt, hanem msknt rnek el hasonl hatst (ezek azimplicit fitneszfggvny lekpezsek).

    Explicit fitneszfggvny lekpezsekFitnesz sklzs. Elterjedt mdszer a lineris fitnesz sklzs. A mdszer clja, hogya fitneszrtkek megvltoztatsval (egy lineris fggvny segtsgvel), elrje, hogy

  • 8/11/2019 genetikai algoritmusok

    46/128

    GA speci anyaga 45

    a legjobb elem fitneszrtke az tlagos fitneszrtk kontansszorosa legyen. Jelljk akontanstCmult-tal. A konstans rtkre tbbnyire 1.2 s 2.0 kztti rtkeket vlasz-tanak, leggyakrabban 2.0-t. A tovbbiakban a [Gol89] knyvben bemutatott sklzstvizsgljuk meg. A lineris sklzsban az j fitneszfggvnyt (f), a kvetkezokppenkapjuk meg az eredeti (f) fitneszfggvnybol: f =a f+ b. A feladata sbrtknekhelyes megvlasztsa. Jelljk az tlagos fitneszrtket favg -vel, a maximlisatfmax-szal, a minimlisatfmin-nel. A sklzsra a kvetkezo egyenleteknek kell teljeslni:

    fmax = Cmult favg (2.1)

    favg = favg (2.2)

    Tovbbi felttel, hogy a fitneszfggvny rtkeinek nemnegatvnak kell maradniuk.Feltve hogyCmult >1, ez teljesl, hafmin 0. Amennyibenasbrtkeit a kvet-kezokpp vlasztjuk:

    a = (Cmult 1) favg

    fmax favg

    b = favg fmax Cmult favgfmax favg

    knnyen belthat, hogy a 2.1. s a 2.2. egyenletek teljeslnek:

    fmax = fmax (Cmult 1) favg

    fmax favg+

    favg(fmax Cmult favg )

    fmax favg

    =fmax Cmult favg f

    2avg Cmult

    fmax favg=

    Cmult favg (fmax favg )

    fmax favg= Cmult favg

    f

    avg =

    favg (Cmult 1) favg

    fmax favg +

    favg (fmax Cmult favg )

    fmax favg

    = favg fmax f

    2avg

    fmax favg=

    favg (fmax favg )

    fmax favg=favg

    Azfmin-re vonatkoz felttel (fmin 0) sajnos nem teljesl mindig:

    fmin =fmin (Cmult 1) favg

    fmax favg+

    favg (fmax Cmult favg )

    fmax favg> 0

    fmin (Cmult 1) favg + favg (fmax Cmult favg ) > 0

    fmin (Cmult 1) + (fmax Cmult favg ) > 0

    Amennyiben az egyenlotlensg nem teljesl, akkor nem tudjuk vgrehajtani a sklzsta megadott felttelekkel. EkkorCmultrtkt annyira lecskkentjk, hogyfmin = 0s

  • 8/11/2019 genetikai algoritmusok

    47/128

    GA speci anyaga 46

    favg =favgteljesljn. Ekkor a kvetkezoa,bsCmultrtket kell vlasztani:

    a = favgfavg fmin

    b = fmin favg

    favg fmin

    Cmult = fmax fminfavg fmin

    Fitnesz ablakozs. A mdszertGrefenstetteGenesis [Gre90] programjbl ismer-hetjk meg. A mdszer alapja egy, az elobb ismertetettnl egyszerubb lineris sklzs.A lineris sklzs ezen vltozatnl minden fitneszrtkbol kivonnak egy szmot, gynvelve a legjobb s az tlagos fitneszrtk kzti arnyt.

    A fitnesz ablakozs sorn minden lpsben fel kell jegyezni a legkisebb fitneszr-tkkel rendelkezo egyed fitneszrtkt. A feljegyzett rtkekbol csak az utolsndara-bot vesszk figyelembe. Az n szmot nevezzk az ablak mretnek (nltalban 10). Afitneszrtkekbol kivonand szm az utolsnminimumrtk minimuma.

    Fitnesz rangsorols. A mdszernl az egyedeket sorbarendezik fitneszrtkk alap-jn, s a tovbbiakban a sorrendben elfoglalt hely alapjn trtnik a kivlaszts. Asorbarendezs miatt gy teljesen mindegy, hogy mennyivel volt jobb az egyik egyed amsiknl, gy a kiemelkedoen j egyedek sem tudnak tlzottan elszaporodni. A md-szer hasznos akkor is, ha tl kicsi volt a klnbsg az egyedek fitneszrtkei kztt.

    A sorrend alapjn trtno lekpezs trtnhet akr linerisan, akr exponencilisanis.

    Implicit fitneszfggvny lekpezsek

    Bajnoksg. Ha a szloket bajnoksg segtsgvel vlasztjuk ki, nincs szksg a fit-neszfggvny rtknek mdostsra. A legegyszerubb bajnoksg esetn kivlasztunkvletlenszeruen kt egyedet a populcibl, majd a magasabb fitneszrtkkel rendel-kezot helyezzk a szlok kz. Ezt addig ismteljk, mg a kvnt szm szlot megnem kapjuk. Lehetosgnk van nagyobb bajnoksgra is, ha nem 2, hanem tbb egyedkzl vlasztjuk ki a legjobbat szlonek.

    Tovbbi tovbbfejlesztsi lehetosg, ha a legnagyobb fitneszrtku egyed nem min-dig, csakp (0.5< p

  • 8/11/2019 genetikai algoritmusok

    48/128

    GA speci anyaga 47

    othello . . . ) jtkosokat reprezentlnak, akkor kt egyed sszehasonltsa egyszeru,hiszen csak egyms ellen kell oket jtszatni, mikzben egy egyedhez nehezen tudnnkfitneszrtket rendelni.

    2.10. A sma elmlet

    A genetikus algoritmusok vizsglata sorn eljutottunk arra a pontra, amikor mr az ol-vas tisztban van a genetikus algoritmusok m ukdsvel, kpes lenne szmtgpenimplementlni az algoritmust. Tudjuk miknt mukdik az algoritmus, de nem vizsgl-tuk mg azt, hogy mirt mukdik.

    Br a genetikus algoritmusok alapja a biolgiai evolci, rdemes megvizsglni amatematikai alapokat. A genetikus algoritmusok alapveto elmlettHollanddolgoztaki 1975-ben.

    Eloszr is a sma fogalmt kell megismernnk. Jelljk a kromoszma hosszt L-el. A kromoszmk a {0, 1} bc feletti Lhosszsg szavak. Bovtsk ki az bc-ta jellel. Az gy kapott {0, 1, } bc feletti Lhosszsg szavakat nevezzk s-mknak. Mivel az bc elemszma 3, sszesen 3L sma ltezik. Azt mondjuk, hogyegy string megfelel a smnak, ha a smban lvo 1-esek helyn a stringben is 1-esektallhatk, a smban lvo 0-k helyn 0-k tallhatk. (Ahelyn teht mind 0, mind1 llhat.) Teht a H = 10 1smnak megfelelnek a 00100010, 00100011,. . . stringek. Ahogyan egy smnak tbb string is megfelelhet, gy minden string tbbsmnak felel meg. (Pontosan2L-nek, mivel minden helyen a string megfelelo elemevagy llhat)

    Lthat, hogy minl tbbvan a smban, annl tbb string felel meg neki. A Hsmban lvo 1-esek s 0-k szmnak sszegt (azaz a fix pozcik szmt) nevezzk asma rangjnak s jelljk o(H)-val. Teht pldulo( 10 1) = 3. A sma rangj-nak segtsgvel mr le tudjuk rni az egyes smknak megfelelo stringek szmt: Egy

    Hsmnak2(Lo(H))

    string felel meg.AHsmban tallhat legelso s legutols fix (0 vagy 1) elem indexnek klnb-sgt a sma meghatroz hossznak nevezzk, s (H)-val jelljk. Teht pldul( 10 1) = 4, mivel az elso fix elem indexe 3, az utols 7, s7 3 = 4. Azegyetlen fix elemmel rendelkezo smknl az elso s utols fix elem megegyezik, gya meghatroz hossz 0. (pldul( 1 ) = 0)

    Azon stringek szmt a t. lps utni populciban, melyek megfelelnek a Hs-mnakm(H,t)-vel jelljk.

    2.10.1. Kivlaszts

    Akkor mondhatnnk, hogy az algoritmus jl mukdik, ha a j smknak, az ido m-lsval egyre tbb string felel meg. Vizsgljuk meg azt az esetet eloszr, ahol nin-csen mutci s keresztezs, csak kivlaszts. Minl nagyobb fitneszrtk tartozik a

  • 8/11/2019 genetikai algoritmusok

    49/128

    GA speci anyaga 48

    0* * * * * *1

    2.8. bra. Lehetsges keresztezodsi pontok

    stringhez, annl nagyobb valsznusggel vlasztjuk ki. Ha a kivlasztsnl a rulettke-rk mdszert (2.5. rsz) hasznljuk, akkor az Aistring kivlasztsnak valsznusge

    pi =fi/n

    j=1 fj , aholfiaz i. stringhez tartoz fitneszrtk (njelli a populci mre-tt). Mivel az j populci isnelembol ll, aHsmnak megfelelo stringek szma akvetkezokppen mdosul at.st + 1.idopillanat kztt:

    m(H, t+ 1) =m(H, t) n f(H)n

    j=1 fj(2.3)

    AHsmnak megfelelo stringek tlagos fitneszrtkt jelltkf(H)-val. szre-vehetjk, hogyn

    j=1fj /n a populci tlagos fitneszrtke, jelljk ezt f-sal. gy

    kapjuk a kvetkezo kpletet:

    m(H, t+ 1) =m(H,