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.

Slides:



Advertisements
Hasonló előadás
Készítette: Kosztyán Zsolt Tibor
Advertisements

A vállalkozás vagyona A vállalkozások vagyonának vizsgálata
A bizonytalanság és a kockázat
ILLYÉS LÁSZLÓ Sapientia Egyetem, Csíkszereda Kiegyensúlyozott csoportok kialakítása egyetemi projektekhez.
I. előadás.
Miskolci Egyetem Gépészmérnöki és Informatikai Kar Alkalmazott Informatikai Tanszék 2013/14 1. félév 7. Előadás Dr. Kulcsár Gyula egyetemi docens.
Állóeszköz-gazdálkodás
4. Előadás: A mohó algoritmus
Genetikus algoritmusok
INFOÉRA Kombinatorikai algoritmusok (Horváth Gyula és Szlávi Péter előadásai felhasználásával) Juhász István-Zsakó László: Informatikai.
Valószínűség számítás
Programozás alapjai.
Hogyan lehet több millió Ft-ra szert tenni befektetés nélkül ! Figyelem ! Az egész rendszer egy vásárlói közösségre van ráépítve ! Az azonnali jövedelem.
Bevezetés a gépi tanulásba február 16.. Mesterséges Intelligencia „A számítógépes tudományok egy ága, amely az intelligens viselkedés automatizálásával.
Metal/plastic foam projekt
Hitelfelvételi problémák
Genetikus algoritmusok
Szállítási feladatok Optimalitás vizsgálat
Informatika.
BIOLÓGIA I..
OPERÁCIÓKUTATÁS Kalmár János, 2012 Tartalom A nulla-egy LP megoldása Hátizsák feladat.
Matematikai modellek a termelés tervezésében és irányításában
Miskolci Egyetem Gépészmérnöki és Informatikai Kar Alkalmazott Informatikai Tanszék 2013/14 1. félév 4. Előadás Dr. Kulcsár Gyula egyetemi docens.
A Mendel-i öröklődés Falus András
Fuzzy rendszerek mérnöki megközelítésben I
IRE 5 /18/ 1 Óbudai Egyetem, NIK Dr. Kutor László2011. TÁMOP – I ntelligens R endszerek E lmélete 5.
Evolúciós algoritmus. Az evolúciós algoritmus Darwin fajfennmaradási elméletén alapszik, és a függvény-minimum meghatározására szolgál. Alapfogalmak:
Miskolci Egyetem Informatikai Intézet Általános Informatikai Tanszé k Pance Miklós Adatstruktúrák, algoritmusok előadásvázlat Miskolc, 2004 Technikai közreműködő:
Lineáris programozás Definíció: Olyan matematikai programozási feladatot nevezünk lineáris programozási feladatnak, amelyekben az L halmazt meghatározó.
Algoritmus. Folyamatábrák
A diákat készítette: Matthew Will
Befektetési döntések Bevezetés
Controlling a gyakorlatban
Kovács Dániel László Kovács Dániel László BME-VIK, Méréstechnika és Információs Rendszerek Tanszék Önálló laboratórium.
TARTALOM: Általánosságok Algoritmusok ábrázolása:
Sapientia-Csíkszereda ILLYES LÁSZLÓ Grundfoci-csapatválasztás. A Pál utcai fiúk és két célfüggvény.
Problémás függvények : lokális optimalizáció nem használható Globális optimalizáció.
1 Mössbauer-spektrumok illesztése: vonalalak A kibocsátott  -sugárzás energiaspektruma Lorentz-görbe alakú: I : sugárzás intenzitása  : frekvencia 
Alapsokaság (populáció)
Alapfogalmak.
Többtényezős ANOVA.
A molekuláris evolúció neutrális elmélete
A hálózatok világában Gulyás László
Az üzleti rendszer komplex döntési modelljei (Modellekkel, számítógéppel támogatott üzleti tervezés) II. Hanyecz Lajos.
I. előadás.
Dr. Bánkuti Gyöngyi Klingné Takács Anna
A genom variabilitás orvosi jelentősége Gabor T. Marth, D.Sc. Department of Biology, Boston College Orvosi Genomika kurzus – Debrecen, Hungary,
Genetikus algoritmusok
Genetikus algoritmusok Kezdőknek és haladóknak
Genetikus algoritmusok
Többdimenziós valószínűségi eloszlások
Menetrend optimalizálása genetikus algoritmussal
Genetikus algoritmus “A genetikus algoritmusok segítségével óriási méretű paraméter teret vizsgálhatunk meg, hogy megtaláljuk különböző dolgok optimális.
1 Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda ABR ( Adatbázisrendszerek) 2. Előadás : Műveletek a relációs modellben 2.2 Műveletek a.
 A matematikai statisztika a természet és társadalom tömeges jelenségeit tanulmányozza.  Azokat a jelenségeket, amelyek egyszerre nagyszámú azonos tipusú.
Csoportkeresési eljárások Vassy Zsolt. Tematika Girvan Newman klaszterezés Diszkrét Markov lánc: CpG szigetek Rejtett Markov lánc ADIOS.
Struktúra predikció Struktúra lehet Felügyelt tanulási probléma
OPERÁCIÓKUTATÁS TÖBBCÉLÚ PROGRAMOZÁS. Operáció kutatás Több célú programozás A * x  b C T * x = max, ahol x  0. Alap összefüggés: C T 1 * x = max C.
1  BME Híradástechnikai Tsz komhal20.ppt Kommunikációs hálózatok tervezése 20. előadás Izsó Tamás Híradástechnikai tanszék 2000 Budapesti Műszaki.
2004 május 27. GÉPÉSZET Komplex rendszerek szimulációja LabVIEW-ban Lipovszki György Budapesti Műszaki Egyetem Mechatronika, Optika és Gépészeti.
A jólét (és a környezeti fenntarthatóság) statisztikai mérési kísérleteiből adódó tapasztalatok egy hazai empirikus vizsgálat alapján Málovics György Szegedi.
Sapientia - Erdélyi Magyar Tudományegyetem (EMTE) Csíkszereda
Operációkutatás I. 1. előadás
Genetikus algoritmusok
Haladó Pénzügyek Vezetés szervezés MSC I. évfolyam I
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE)
Komenczi Bertalan Információelmélet
Számításelmélet Tárgykód: NGM_IN006_1 és LGM_IN006_1
Nem módosítható keresések
Haladó Pénzügyek Vezetés szervezés MSC I. évfolyam I
Előadás másolata:

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

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

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

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

1 ajánlat2 ajánlat3 ajánlat4 ajánlat5 ajánlat6 ajánlat fd i befektetés b i jövedelem O1O2O2O3O3O4O4O5O5O6O 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 egységet és a várható jövedelme 2.105egység. Ha a befektetőnek csak egység befektetni valója van, akkor ez a kromoszóma egy nem érvényes egyedet jelképez. 5

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

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

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

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

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={ } P2={ } O1={ } O2={ } 10

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[]={ } for(int i=0 ;i<n;i++){ vector2[i]=(secondParent.getStructure())[i]; intermediate[i]=(secondParent.getStructure())[i] } //vector2[]=intermediate[]={ } 11

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

A példapopuláció 4 egyedből (kromoszómából) áll. P P P P f i fd i Az eredmények skálázása: ff 1 =1605/( )=0.314 ff 2 =1800/( )=0.352 ff 3 =1705/( )=

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

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

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

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

P1 (első kromoszóma) P2 (második kromoszóma) O1 (első leszármazott) O P P O O 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:

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

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

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

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

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

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

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

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

Á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

Á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

Átrendező operátorok PMX-Partially Mixed Crossover Gyerekek (offsprings) A B A’A’ B’ 29

Átrendező operátorok PMX-Partially Mixed Crossover Gyerekek (offsprings) A B A’A’ B’ 30

Átrendező operátorok OX - Order Crossover Gyerekek (offsprings) A B A’A’ B’ 31

Átrendező operátorok OX - Order Crossover Gyerekek (offsprings) A B A’A’ B’ 32

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

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

Átrendező operátorok CX - Cycle Crossover Gyerekek (offsprings) A B A’A’ B’ 35

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

Á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

Á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

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

Reprezentáció és kódolás Változó hosszúságú kromoszóma Kétdimenziós kromoszóma

Reprezentáció és kódolás 5. Listás kromoszóma ábrázolás 6. Fa-struktúrájú kromoszóma ábrázolás

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

MTSP –több utazóügynök probléma Egy kromoszómás technika Két kromoszómás technika 43

MTSP –több utazóügynök probléma 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