Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Informatikai Rendszerek Tervezése 5. Előadás: Genetikus algoritmusok Illyés László Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT.-5.

Hasonló előadás


Az előadások a következő témára: "Informatikai Rendszerek Tervezése 5. Előadás: Genetikus algoritmusok Illyés László Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT.-5."— Előadás másolata:

1 Informatikai Rendszerek Tervezése 5. Előadás: Genetikus algoritmusok Illyés László Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT.-5. kurzus 1 1

2 Tartalom Bevezető A kanonikus genetikus algoritmus A genetikus algoritmusok biológiai alapjai Történelem A genetikus algoritmusok helye az optimalizálásban A genetikus algoritmusok elméleti alapjai Permutációs adatstruktúrák Speciális reprezentációk Saját reprezentációk Könyvészet 2

3 Bevezető Charles Darwin elmélete és G.J. Mendel statisztikai kísérletei egy minőségi ugrást jelentettek a biológiában. J.D. Watson és F. Crick készítették el először a DNS struktúrát, ahogy ma is ismerjük. A komplexitás elmélet és az operációkutatás nagy hatással voltak a kutatásokra, kimutatva, hogy a valós, komplex problémák nem oldhatók meg polinomiális idő alatt Keresték az olyan algoritmusokat, amelyek modelezni és utánozni tudnák a nagy túlélőt: a Természetet. 3

4 A kanonikus genetikus algoritmus A problémát a hátizsák problémán keresztül vizsgáljuk, amelyik egy befektetési portfólióról szól. Egy befektetőnek c tőkéje van, amit be szeretne fektetni. Választhat n befektetésből. Az összes lehetséges befektetés értéke nagyobb, mint a tőke, ami rendelkezésére áll. Az i-edik befektetés összege fd i és a várható nyereség b i s i -kiválasztási vektor: s i =1 ha kiválasztjuk az i-edik variáns, másképp s i =0 A matematikai modell: 4

5 1 ajánlat2 ajánlat3 ajánlat4 ajánlat5 ajánlat6 ajánlat fd i befektetés2.0002.2002.5003.0003.200 b i jövedelem300400500600700705 O1O2O2O3O3O4O4O5O5O6O6 110011 Kodifikálás. Egyszerre több kromoszómával (egyeddel) dolgozunk, amelyek populációt alkotnak. Az első generáció általában pszeudó- aleatorikus Az alábbi kodifikáció azt jelenti, hogy a befektető elfogadta a {O1, O2, O5, O6} ajánlatokat, vagyis befektetett 10.800 egységet és a várható jövedelme 2.105egység. Ha a befektetőnek csak 10.000 egység befektetni valója van, akkor ez a kromoszóma egy nem érvényes egyedet jelképez. 5

6 Inicializálás és szelekció Az algoritmus központi eleme a POPULÁCIÓ. Egy populáció a kromoszómák egy halmaza, amelyek a megoldások terében egy lehetséges megoldást kódolnak. Az algoritmus iterációi során újabb egyedek keletkeznek, amelyek egy újabb populációt alkotnak: a következő generációt. Az inicializálás folyamán egy pszeudo-aleatorikus, kezdeti (P 0 ) populációt állítunk elő. Szelekció: – a populáció egyedeiből (kromoszómákból) az algoritmus kiválaszt egyeseket, a jósági értékükkel arányos valószínűséggel, akik szülővé válnak, s amelyek génjeit örökli a következő generáció. 6

7 A célfüggvény és a fitnessz függvény (fitness function): A fitnessz függvény a célfüggvényből alakul ki. Azt mutatja meg, hogy mennyire jó a kromoszóma által kodifikált megoldás. A kanonikus genetikus algoritmus esetében a fitnessz függvény megegyezik a célfüggvénnyel, vagyis f i = Skáláznunk kell az eredményeket, hogy megállapíthassunk egy relatív jóságot is. 7

8 A kromoszóma és a populáció-inicializálása private boolean[] structure=new boolean[6]; private Random rand=new Random(); public void init(){ for(int i=0;i<structure.length;i++){ structure[i]=rand.nextBoolean(); } public void compFitness(int InitValues[][]){ TotalSum=0; FitnessValue=0; for(int i=0;i<InitValues[0].length;i++){ if(structure[i]){ TotalSum=TotalSum+InitValues[0][i]; FitnessValue=FitnessValue+InitValues[1][i]; } 8

9 public static void main(String[] args) { int InitValues[][]=new int[2][6]; initValues[0][0]=2000; initValues[0][1]=2200; initValues[0][2]=2500; initValues[0][3]=3000; initValues[0][4]=3200; initValues[0][5]=3200; initValues[1][0]=300; initValues[1][1]=400; initValues[1][2]=500; initValues[1][3]=600; initValues[1][4]=700; initValues[1][5]=705; int cardPop=50; int cardGen=100; int mutationPercent=1; List Population=new ArrayList(); crmzClass Chromosome; //Az első populáció inicializálása for(int i=0;i<cardPop;i++){ crmzClass=new Chromosome(); crmzClass.init(); Population.add(crmzClass); } 9

10 for(int i=0;i<cardPop;i++){ //fitness kiszámítása int sumFitness=0; for(int j=0;j<Population.size();j++){ ((Chromosome)Population.get(j)).calcFitness(initValues); sumFitness=sumFitness+((Chromosome)Population.get(j)).getFitnessValue(); ((Chromosome)Population.get(j)).set ScaledFitness(sumFitness) //eredmények skálázása } //kiválasztás //keresztezés //mutáció //reprodukció } P1={0101110011} P2={1001100101} O1={0101100101} O2={1001110011} 10

11 private List xOver(Chromosome firstParent, Chromosome secondParent, int locus){ boolean vector[],vector2[],intermediate[]; List offspringList=new ArrayList(); //új kromoszóma objektumokat hozunk létre a gyerekeknek Chromosome offSpring=new Chromosome(); Chromosome offSpring2=new Chromosome(); vector=new boolean[n]; vector2=new boolean[n]; intermediate=new boolean[n]; for(int i=0; i<n; i++){ vector[i]=(firstParent.getStructure())[i]; } //vector[]={0101100101} for(int i=0 ;i<n;i++){ vector2[i]=(secondParent.getStructure())[i]; intermediate[i]=(secondParent.getStructure())[i] } //vector2[]=intermediate[]={1001100101} 11

12 for(int i=0;i<locus;i++){ intermediate[i]=vector[i]; } //intermediate[]={0101100101} for(int i=locus;i<vector.length;i++){ vector2[i]=vector[i];} //vector2[]={1001110011} offSpring.setStructure(intermediate); offSpring2.setStructure(vector2); offspringList.add(offSpring); offspringList.add(offSpring2); return offspringList; 12

13 A példapopuláció 4 egyedből (kromoszómából) áll. P1 100101 P2 001110 P3 010101 P4 110110 f i fd i 16058200 18008700 17058400 200010400 Az eredmények skálázása: ff 1 =1605/(1605+1800+1705)=0.314 ff 2 =1800/(1605+1800+1705)=0.352 ff 3 =1705/(1605+1800+1705)=0.333 13

14 Bináris sztringek egypontos keresztezése 1001010101 0101100100 1001100100 0101010101 Keresztezés locusSzülők Gyerekek (offsprings) P1 P2 O1 O2 14

15 Bináris sztringek kétpontos keresztezése 1001010101 0101100100 1001100101 0101010100 Keresztezés locusok Szülők Gyerekek (offsprings) P1 P2 O1 O2 15

16 Bináris sztringek uniform keresztezése 1001010101 0101100100 1001110101 0101000100 Szülők Gyerekek (offsprings) P1 P2 O1 O2 0.5-0.5 valószínűséggel egyik vagy másik szülőtől 16

17 Bináris sztringek mutációja 1001010101 1000010101 1001010101 1101000001 Csak egy gén mutálódik A gének egymástól függetlenül mutálódnak P1 O1 P1 O1 17

18 P1 (első kromoszóma) 100101 P2 (második kromoszóma) 001110 O1 (első leszármazott) 101110 O2 000101 P2 001110 P3 010101 O3 001101 O4 010110 Feltételeztük, hogy a kiválasztás a következő kromoszóma-párokat adta {P1, P2} és {P2, P3} Alkalmazva az 1 pontos keresztezést, a következő generáció a következő képpen néz ki, feltételezve, hogy még a 2-es gyerek mutációja az 5-ös génben is megtörtént: 101110 000111 001101 010110 18

19 A genetikus algoritmus helye az optimalizálásban optimalizálási eljárások gradiens alapú módszereksztochasztikuskimerítő keresésen alapuló direktindirektDinamikus programozástabu algoritmus szimulált lehűtés evolúciós algoritmusok evolúciós stratégiák genetikus algoritmusok párhúzamossoros Álmos A. et.all, Genetikus algoritmusok, Typotex, Budapest, 2002, pp. 21 19

20 Történeti áttekintés -minden rendszer egy olyan populáció kialakítására épül, amely egy adott probléma megoldási lehetőségeit tartalmazza 1965,73 – Rechenberg – evolúciós stratégiák 1966 – Fogel, Owens és Walsh – evolutív programozás 1975 – Holland J. – genetikus algoritmusok – a kanonikus genetikus algoritmus 1992,94 – Koza J.R. – genetikus programozás 20

21 A genetikus algoritmusok biológiai háttere Miért használható? Sok számítási feladat megoldásakor szükségünk van egy adaptációs lehetőségre, vagyis arra, hogy az algoritmus robusztus legyen változó környezetben is Robotikában, a robotirányításban, meg kell oldani olyan feladatokat, amelyek változó környezetben zajlanak, a program használható kell legyen más felhasználó számára is. A túlélési versenyben, az erősebb egyedeknek (akik jobban megoldanak egy problémát, több energiaforráshoz jutnak) nagyobb az esélyük, hogy szaporodjanak, a gyerekeik örökölni fogják a kromoszóma-állományuk egy részét. 21

22 A genetikus algoritmus és a biológiai megfelelője BiológiaGenetikus algoritmusok KromoszómaSztring Génjellemző génváltozat (allél)Jellemző értéke Gén helye (locus)Sztring-pozíció GenotípusStruktúra FenotípusEgy megoldás Álmos A. et.all, Genetikus algoritmusok, Typotex, Budapest, 2002, pp. 40 22

23 A szaporodás Az egyszerű, vagy a generációs szaporodás: lecseréli a szülő (régi) populációt. Ennek kiegészítése képpen, használatos az elitizmus princípiuma, amelyben a populáció legjobb elemei továbbélnek a következő generációban is. 23

24 A genetikus algoritmus elméletei A sémaelmélet. (Holland) GA egy komplex keresést végezve bejárja a hipertér particióit. (*10)-egy él, (*1*) egy sík a 3 dimenziós térben. Azon sztring, amely tartalmaz * séma vagy sablon 24

25 Elméleti alapok A sémák egymással versengenek, hogy megvalósítsák a célfüggvényt (meta-egyedek versengése) Holland szerint az adaptív rendszereknek két fontos tulajdonságuk van: Új területek felfedezése (exploration) A régi adaptációk felhasználása (exploitation) Ezen tulajdonságok használatának egyensúlya jó eredményekhez vezet a megoldások terében. A mutáció ki tudja mozdítani az algoritmust egy lokális optimumból. A felfedezés a mutációs operátor által valósul meg, a kiaknázás pedig a keresztezés operátor által. 25

26 Más elméleti megközelítések Building block hyphotesis (Goldberg) Markov láncokkal Mechanikai statisztika 26

27 Átrendező operátorok Permutációkra kidolgozott Az utazóügynök problémát megoldó Egy olyan genetikus anyag, amelyben minden gén más-más információt hordoz- nincs 2 egyforma gén A permutációs jelleg megmarad 27

28 Átrendező operátorok INVERZIÓ-művelete KTLOSPFH KSOLTPFH “Egy valódi gén funkciója gyakran független annak a kromoszómán belüli pozíciójától (habár egy helyhez tartozó gének gyakran együttműködnek)” A A’A’ 28

29 Átrendező operátorok PMX-Partially Mixed Crossover 98456713210 87123 9546 98423 1 8156794 Gyerekek (offsprings) A B A’A’ B’ 29

30 Átrendező operátorok PMX-Partially Mixed Crossover 98456713210 87123 9546 98423 1657 8 15679243 Gyerekek (offsprings) A B A’A’ B’ 30

31 Átrendező operátorok OX - Order Crossover 98456713210 87123 9546 9845671 8123 94 Gyerekek (offsprings) A B A’A’ B’ 31

32 Átrendező operátorok OX - Order Crossover 98456713210 87123 9546 56723 1984 23 5679481 Gyerekek (offsprings) A B A’A’ B’ 32

33 Átrendező operátorok CX - Cycle Crossover 98217451063 123456789 9 1 Gyerekek (offsprings) A B A’A’ B’ 33

34 Átrendező operátorok CX - Cycle Crossover 98217451063 123456789 9146 1469 Gyerekek (offsprings) A B A’A’ B’ 34

35 Átrendező operátorok CX - Cycle Crossover 98217451063 123456789 923154786 1824765 93 Gyerekek (offsprings) A B A’A’ B’ 35

36 Edge rekombináció A szülők permutáció sorszámai közti szomszédos kapcsolatokat öröklik 36

37 Átrendező operátorok ERC – Edge Recombination Crossover GDMHBJFIAKEC P1 P2 CEKAGBHIJFMD AG, I, -K BG, -H, J CD, -E, G DC, G, -M E-C, -K FI, -J, M csúcslista Amely elemek 2-szer vannak jelen, külön megjelöljük – jellel. Ezeknek prioritásuk lesz az elkövetkezőkben. 37

38 Átrendező operátorok ERC – Edge Recombination Crossover GDMHBJFIAKEC P1 P2 CEKAGBHIJFMD GA, B, C, D H-B, I, M IA, F, H, J JB, -F, I K-A, -E M-D, F, H csúcslista Ez a megközelítés akkor állja a helyét, ha szimmetrikus a költségmátrix és az utazó- ügynök vissza kell térjen a bázishelyre 38

39 Reprezentáció és kódolás 1001010101 1. Klasszikus, rögzített hosszúságú bináris sztring 2. Egészértékű kódolás 324516815427937127 1.13.254.39.712.87.316.015.8 3. Lebegőpontos kódolás 39

40 Reprezentáció és kódolás 10010111 4. Változó hosszúságú kromoszóma 010110100 10010 5. Kétdimenziós kromoszóma 010011 011001 101100 111010 40

41 Reprezentáció és kódolás 5. Listás kromoszóma ábrázolás 6. Fa-struktúrájú kromoszóma ábrázolás 31563416 35 8 141 17 56 23 41

42 Reprezentáció és kódolás b c x - a 1 + + x - + xx ac b -1.23.5 2.5 Programok kódolása fa-struktúrában 42

43 MTSP –több utazóügynök probléma 25146111813-24103-3121597 Egy kromoszómás technika 211343244132123 251461118134103121597 Két kromoszómás technika 43

44 MTSP –több utazóügynök probléma 2514611181341031215974434 Kétrészű kromoszóma technika A kromoszóma első részére lehet alkalmazni bármilyen rekombinációs műveletet. A második részére a kromoszómának ki kell találni egy másfajta keresztezés vagy mutációs műveletet 44


Letölteni ppt "Informatikai Rendszerek Tervezése 5. Előadás: Genetikus algoritmusok Illyés László Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT.-5."

Hasonló előadás


Google Hirdetések