Evolúciós algoritmusok

Hasonló dokumentumok
Számítógépes döntéstámogatás. Genetikus algoritmusok

Algoritmusok Tervezése. 9. Előadás Genetikus Algoritmusok Dr. Bécsi Tamás

Intelligens Rendszerek Elmélete. Párhuzamos keresés genetikus algoritmusokkal

Evolúciós algoritmusok

Genetikus algoritmusok

értékel függvény: rátermettségi függvény (tness function)

Informatikai Rendszerek Tervezése

Dr. habil. Maróti György

Intelligens Rendszerek Elmélete. Párhuzamos keresés genetikus algoritmusokkal. A genetikus algoritmus működése. Az élet információ tárolói

Universität M Mis is k k olol cic, F Eg a y kultä etem t, für Wi Gazda rts ságcha tudfts o w máis n s yen i scha Kar, ften,

A genetikus algoritmus, mint a részletes modell többszempontú és többérdekű "optimálásának" általános és robosztus módszere

Genetikus algoritmusok az L- rendszereken alapuló. Werner Ágnes

Képrekonstrukció 9. előadás

értékel függvény: rátermettségi függvény (tness function)

Mesterséges Intelligencia MI

HÁROM KÖR A HÁROMSZÖGBEN

Intelligens technikák k a

Automatikus tesztgenerálás formális protokollspecifikáció alapján

Képrekonstrukció 6. előadás

Hátterükben egyetlen gén áll, melynek általában számottevő a viselkedésre gyakorolt hatása, öröklési mintázata jellegzetes.

Bevezetés az informatikába

Zenegenerálás, majdnem természetes zene. Bernád Kinga és Roth Róbert

Intelligens számítástechnikai modellek identifikációja evolúciós és gradiens alapú tanuló algoritmusokkal

Mesterséges Intelligencia MI

DOKTORI (PhD) ÉRTEKEZÉS BALOGH SÁNDOR KAPOSVÁRI EGYETEM GAZDASÁGTUDOMÁNYI KAR

Evolúciós alapfogalmak, általános algoritmusok

Az evolúció folyamatos változások olyan sorozata, melynek során bizonyos populációk öröklődő jellegei nemzedékről nemzedékre változnak.

Mesterséges intelligencia 3. laborgyakorlat

Természetes szelekció és adaptáció

Számítógép és programozás 2

HÁLÓZATSZERŰEN MŰKÖDŐ LOGISZTIKÁVAL INTEGRÁLT TERMELÉSÜTEMEZÉS MEGOLDÁSA GENETIKUS ALGORITMUS ALKALMAZÁSÁVAL. OLÁH Béla

Keresési algoritmusok, optimalizáció

Adaptív dinamikus szegmentálás idősorok indexeléséhez

Evolúció. Dr. Szemethy László egyetemi docens Szent István Egyetem VadVilág Megőrzési Intézet

Evolúció. Dr. Szemethy László egyetemi docens Szent István Egyetem VadVilág Megőrzési Intézet

Tartalomjegyzék. Tartalomjegyzék... 3 Előszó... 9

Mesterséges Intelligencia alapjai

Miskolci Egyetem Gépészmérnöki és Informatikai Kar Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék

TARTALOMJEGYZÉK. TARTALOMJEGYZÉK...vii ELŐSZÓ... xiii BEVEZETÉS A lágy számításról A könyv célkitűzése és felépítése...

Adatszerkezetek és algoritmusok

Populációgenetikai. alapok

Osztott jáva programok automatikus tesztelése. Matkó Imre BBTE, Kolozsvár Informatika szak, IV. Év 2007 január

Sodródás Evolúció neutrális elmélete

Algoritmusok és adatszerkezetek gyakorlat 07

Közösség detektálás gráfokban

Intelligens Rendszerek Elmélete. Versengéses és önszervező tanulás neurális hálózatokban

Gépi tanulás. Neurális hálók, genetikus algoritmus. Közlekedési informatika MSc. Földes Dávid St. 405.

Szakdolgozat. Miskolci Egyetem. A genetikus algoritmus alkalmazási lehetőségei. Készítette: Biró Szilárd 5. Programtervező informatikus

Számítógép és programozás 2

Szelekció. Szelekció. A szelekció típusai. Az allélgyakoriságok változása 3/4/2013

FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI

Új típusú döntési fa építés és annak alkalmazása többtényezős döntés területén

1.1 Genetikus algoritmusok

Heurisztikák algoritmusok ütemezési problémákra. 1. Állapottér és a megoldások kezelése

Mesterséges Intelligencia I. (I602, IB602)

Adatszerkezetek I. 7. előadás. (Horváth Gyula anyagai felhasználásával)

10. előadás Speciális többágú fák

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek

A sz.ot.ag. III. Magyar Számítógépes Nyelvészeti Konferencia december 8. Bíró Tamás, ELTE, Budapest / RUG, Groningen, NL 1/ 16

Universität M Mis is k k olol ci c, F Eg a y kultä etem t, für Wi Gazda rts ságcha tudft o sw máis n s yen i scha Kar, ften,

Mintavételes szabályozás mikrovezérlő segítségével

Simon Károly Babes Bolyai Tudományegyetem

Borgulya I. PTE KTK 1. Fuzzy-rendszerek. Fuzzy rendszerekről általában

Gépi tanulás a gyakorlatban. Lineáris regresszió

Keresések Gregorics Tibor Mesterséges intelligencia

Függvények. Programozás alapjai C nyelv 7. gyakorlat. LNKO függvény. Függvények(2) LNKO függvény (2) LNKO függvény (3)

Kupac adatszerkezet. A[i] bal fia A[2i] A[i] jobb fia A[2i + 1]

Programozás alapjai C nyelv 7. gyakorlat. Függvények. Függvények(2)

Alkalmazott modul: Programozás. Programozási tételek, rendezések. Programozási tételek Algoritmusok és programozási tételek

Párhuzamos genetikus algoritmus

Matematikai alapok és valószínőségszámítás. Valószínőségi eloszlások Binomiális eloszlás

Többgénes jellegek. 1. Klasszikus (poligénes) mennyiségi jellegek. 2.Szinte minden jelleg több gén irányítása alatt áll

A Hardy-Weinberg egyensúly. 2. gyakorlat

A következő feladat célja az, hogy egyszerű módon konstruáljunk Poisson folyamatokat.

Neumann János Számítógép-tudományi Társaság Programozás, robotprogramozás szakkör Három félév 3 * 8 foglalkozás

Dr. Kalló Noémi. Termelés- és szolgáltatásmenedzsment. egyetemi adjunktus Menedzsment és Vállalatgazdaságtan Tanszék. Dr.

RSA algoritmus. P(M) = M e mod n. S(C) = C d mod n. A helyesség igazoláshoz szükséges számelméleti háttér. a φ(n) = 1 mod n, a (a 1,a 2,...

Mesterséges Intelligencia. Csató Lehel. Csató Lehel. Matematika-Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 2007/2008

Osztályozás, regresszió. Nagyméretű adathalmazok kezelése Tatai Márton

B-fa. Felépítés, alapvető műveletek. Programozás II. előadás. Szénási Sándor.

Fák Témakörök. Fa definíciója. Rekurzív típusok, fa adatszerkezet Bináris keresőfa, bejárások Bináris keresőfa, módosítás B-fa

Amortizációs költségelemzés

V. Kétszemélyes játékok

2. Visszalépéses stratégia

Megkülönböztetett kiszolgáló routerek az

Hidraulikus hálózatok robusztusságának növelése

Mesterséges Intelligencia MI

HÁZI FELADAT PROGRAMOZÁS I. évf. Fizikus BSc. 2009/2010. I. félév

Megerősítéses tanulás 7. előadás

ÓRARENDTERVEZÉS GENETIKUS ALGORITMUS SEGÍTSÉGÉVEL

BASH script programozás II. Vezérlési szerkezetek

Algoritmuselmélet. 2-3 fák. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 8.

Fuzzy-rendszerek. Fuzzy halmazm veletek. Fuzzy logika m veletek. Borgulya I. PTE KTK 2. 1.Fuzzy rendszerekr l általában

Kétszemélyes játékok Gregorics Tibor Mesterséges intelligencia

Valószínűségi változók. Várható érték és szórás

Dobzhansky: In Biology nothing makes sense except in the light of Evolution.

Hatwágner Ferenc Miklós

Optimalizáció és modularitás evolúciós hálókban

Branch-and-Bound. 1. Az egészértéketű programozás. a korlátozás és szétválasztás módszere Bevezető Definíció. 11.

Programozási módszertan. Mohó algoritmusok

Átírás:

Evolúciós algoritmusok

Evolúciós algoritmusok Alapelvük a megoldások egy populációján történő keresés, melyet a biológiából megismert törvényszerűségek vezérelnek A populáció egyedei a feladat egy-egy megoldását jelentik A populáció fejlődik, egyre jobb egyedeket kapunk EVOLÚCIÓS ALGORITMUSOK BEVEZETÉS 2

A kezdetek Az ötlet, hogy használjunk szimulált evolúciót mérnöki és tervezési problémák megoldására az 1950-es években megjelenik már Az 1960-as években kialakul a három fő klasszikus terület: Evolúciós programozás (Lawrence Fogel, 1962), Genetikus algoritmusok (Holland, 1975) Evolúciós Stratégiák (Rechenberg, 1965 & Schwefel, 1968) Az egyes technikák kifejlesztői megmutatták, hogy a módszerük alkalmas a következő probléma típusok megoldására Fogel előrejelzési problémákkal foglalkozott Rechenberg & Schwefel paraméter optimalizációs problémákkal Holland robusztus adaptív rendszerek fejlesztésével EVOLÚCIÓS ALGORITMUSOK BEVEZETÉS 3

Optimalizációs módszerek Determinisztikus Calculus alapú Hegymászó módszer Sztochasztikus Véletlen keresés Szimulált lehűtés Evolúciós algoritmusok: sztochasztikus módszerek, melyek a természetes evolúció folyamatát szimulálják felhasználva a legalkalmasabb egyed túlélésének törvényét EVOLÚCIÓS ALGORITMUSOK BEVEZETÉS 4

Terminológia Gén: funkcionális entitás, mely az egyed egy speciális tulajdonságát kódolja (pl. hajszín) Allél: a gén értéke (pl. szőke) Egyed: kromoszóma, egy megoldás jelölt a problémára Genotípus: egy egyed alléljainak egy speciális kombinációja Fenotípus: az egyed külső-belső tulajdonságainak összessége Locus: egy gén pozíciója a kromoszómán belül Populáció: egyszerre együtt élő egyedek összessége EVOLÚCIÓS ALGORITMUSOK BEVEZETÉS 5

A populáció evolúciója Egyedek eloszlása a 0. generációban Egyedek eloszlása a N. generációban EVOLÚCIÓS ALGORITMUSOK BEVEZETÉS 6

Genetikus algoritmus kezdeti populáció létrehozása egyedek rangsorolása szelekció keresztezés mutáció visszahelyettesítés EVOLÚCIÓS ALGORITMUSOK GENETIKUS ALGORITMUSOK 7

Az egyed Az egyed egy megoldás jelölt a problémára A probléma egy lehetséges megoldása valamilyen formában az egyedbe van kódolva pl. bináris, vagy valós Fitnesz érték (alkalmassági érték): az egyedeket valamilyen kritérium szerint értékeljük ki, aszerint, hogy mennyire jó megoldást adnak a feladatra Jobb egyednek nagyobb a fitnesz értéke, és nagyobb eséllyel él túl EVOLÚCIÓS ALGORITMUSOK GENETIKUS ALGORITMUSOK 8

Szelekciós módszerek többféle kiválasztási módszer terjedt el minél jobb az egyed, annál nagyobb az esély a kiválasztására Rulett kerék szelekció: az egyedek a fitnesz értékükkel arányos szeletet kapnak a gurításnál a nagyobb fitnesz értékű egyedek nagyobb eséllyel választódnak ki EVOLÚCIÓS ALGORITMUSOK GENETIKUS ALGORITMUSOK 9

Keresztezés (Crossover) Véletlenszerű keresztezési pont kiválasztása a két szülőn Utódok létrehozása az információ kicserélődésével a keresztezési pont alapján EVOLÚCIÓS ALGORITMUSOK GENETIKUS ALGORITMUSOK 10

Mutáció Gén értékének véletlenszerű megváltoztatása pm valószínűséggel (mutációs arány) EVOLÚCIÓS ALGORITMUSOK GENETIKUS ALGORITMUSOK 11

Egy példa (Goldberg) Egyszerű probléma: x 2 maximumának megkeresése a {0,1,,31} alaphalmazon Genetikus algoritmussal: Reprezentáció: bináris, pl. 01101 13 Populáció méret: 4 Keresztezés, mutáció Rulett kerék szelekció Véletlenszerű inicializálás EVOLÚCIÓS ALGORITMUSOK GENETIKUS ALGORITMUSOK 12

Egy példa: szelekció EVOLÚCIÓS ALGORITMUSOK GENETIKUS ALGORITMUSOK 13

Egy példa: keresztezés EVOLÚCIÓS ALGORITMUSOK GENETIKUS ALGORITMUSOK 14

Egy példa: mutáció EVOLÚCIÓS ALGORITMUSOK GENETIKUS ALGORITMUSOK 15

Alternatív keresztezés operátorok n-pontos: uniform: EVOLÚCIÓS ALGORITMUSOK GENETIKUS ALGORITMUSOK 16

Valós GA Keresztezés például: szülők: x1,,xn és y1,,yn utód1: αx+(1-α)y a másik utódra felcserélve pl.: (a = 0.5) Mutáció: x= x1,,xn x = x 1,,x n xi,x i [LBi,UBi] EVOLÚCIÓS ALGORITMUSOK GENETIKUS ALGORITMUSOK 17

Evolúció stratégia (1+1)-ES: egy szülő egy mutált utódot hoz létre és a jobbat fogadjuk el (iteratív javítás) (μ+1)-es: μ szülő hoz létre 1 utódot (μ+λ)-es: μ szülő hoz létre λ utódot, és a legjobb μ fog túlélni az egyesített szülő és utód populációból (μ,λ)-es: μ szülő hoz létre λ utódot, és a legjobb μ fog túlélni az utód populációból EVOLÚCIÓS ALGORITMUSOK EVOLÚCIÓ STRATÉGIÁK 18

Evolúció stratégiák kódolás: fenotípus (valós szám, egész) szelekció mutáció μ: populáció mérete λ: leszármattak száma (μ,λ)-es: diszkrét modell (μ+λ)-es: folytonos modell (µ+λ)-es λ gyerek mutáció rangsor legjobb µ egyed µ egyed Populáció(t) Populáció(t+1) EVOLÚCIÓS ALGORITMUSOK EVOLÚCIÓ STRATÉGIÁK 19

Különböző evolúció stratégiák (µ+λ)-es szülők gyerekek (1,1)-ES: véletlen keresés szülő gyerek (1+1)-ES: hegymászó alg. (1+λ)-ES: többpontos szomszédos keresés (µ+1)-es: állandósult Steady-state állapotú GA szülők szülő szülő gyerek gyerekek gyerek EVOLÚCIÓS ALGORITMUSOK EVOLÚCIÓ STRATÉGIÁK 20

Bakteriális evolúciós algoritmusok Természetből ellesett optimalizációs technika A baktériumok evolúciós folyamatán alapul Alkalmas bonyolult optimalizációs problémák megoldására Egyed: egy megoldás a problémára Intelligens keresési stratégia eléggé jó megoldás keresésére (kvázi optimum) Gyors konvergencia (feltételesen) EVOLÚCIÓS ALGORITMUSOK BAKTERIÁLIS EVOLÚCIÓS ALGORITMUSOK 21

Az algoritmus Kezdeti populáció véletlenszerű létrehozása Bakteriális mutáció végrehajtása minden egyeden Génátadás végrehajtása a populációban Ha megfelelő eredményt értünk el, akkor megállunk, különben folytatjuk a bakteriális mutációs lépéssel n. generáció (n+1). generáció EVOLÚCIÓS ALGORITMUSOK BAKTERIÁLIS EVOLÚCIÓS ALGORITMUSOK 22

Bakteriális mutáció 1. rész i. rész n. rész Egy rész véletlenszerű kiválasztása Az i. részt változtatjuk az N klón számú másolatban, de az eredeti baktériumban nem A legjobb baktérium átadja az i. részt a többi baktériumnak Ismételjük addig, amíg az összes részt ki nem választottuk EVOLÚCIÓS ALGORITMUSOK BAKTERIÁLIS EVOLÚCIÓS ALGORITMUSOK 23

Génátadás 1. A populációt 2 részre osztjuk, jó egyedekre, és rossz egyedekre 2. Egy baktériumot véletlenszerűen kiválasztunk a jobbik alpopulációból (forrásbaktérium) egy másikat pedig a rossz egyedek közül (célbaktérium) 3. A forrásbaktérium egy része felülírja a célbaktérium egy részét Ez a ciklus ismétlődik N inf -szer ( infekciók száma) jó egyedek rossz egyedek EVOLÚCIÓS ALGORITMUSOK BAKTERIÁLIS EVOLÚCIÓS ALGORITMUSOK 24

Paraméterek Ngen: generációk száma Nind: egyedek száma Nklón: másolatok (klónok) száma a bakteriális mutációban Ninf: génátadások (infekciók) száma a génátadásnál EVOLÚCIÓS ALGORITMUSOK BAKTERIÁLIS EVOLÚCIÓS ALGORITMUSOK 25

Különbségek a GA és a BEA között A GA az emlősállatok evolúciós folyamatát utánozza, míg a BEA a baktériumok fejlődését Az információ terjesztésére a GA a keresztezés operátort használja, a BEA pedig a génátadást A bakteriális mutáció hatékonyabb a GA klasszikus mutációjánál A bakteriális evolúciós algoritmusban nincs szelekció, viszont van osztódás EVOLÚCIÓS ALGORITMUSOK BAKTERIÁLIS EVOLÚCIÓS ALGORITMUSOK 26

Genetikus programozás John Koza (~1990) A genetikus programozás a genetikus algoritmusok alapötletét alkalmazza a lehetséges programok terére Különbözőnek tűnő problémák különböző területekről átfogalmazhatók egy számítógépes program-keresési feladattá EVOLÚCIÓS ALGORITMUSOK GENETIKUS PROGRAMOZÁS 27

Egy számítógépes program EVOLÚCIÓS ALGORITMUSOK GENETIKUS PROGRAMOZÁS 28

Egy számítógépes program C nyelven int foo (int time) { int temp1, temp2; if (time > 10) temp1 = 3; else temp1 = 4; temp2 = temp1 + 1 + 2; return (temp2); } EVOLÚCIÓS ALGORITMUSOK GENETIKUS PROGRAMOZÁS 29

Program fa (+ 1 2 (IF (> TIME 10) 3 4)) EVOLÚCIÓS ALGORITMUSOK GENETIKUS PROGRAMOZÁS 30

Véletlen programok létrehozása Rendelkezésre álló függvények: pl. F = {+, -, *, %, IF} Rendelkezésre álló terminálisok: pl. T = {X, Y, konstansok} A véletlen programok: szintaktikailag érvényesek végrehajthatók A fák különböző méretűek és alakúak lehetnek EVOLÚCIÓS ALGORITMUSOK GENETIKUS PROGRAMOZÁS 31

Genetikus operátorok a GP-ben Reprodukció Mutáció Keresztezés Reprodukció: szülő kiválasztása (fitness alapján) változatlan lemásolása a populáció következő generációjába EVOLÚCIÓS ALGORITMUSOK GENETIKUS PROGRAMOZÁS 32

Mutáció 1 szülő kiválasztása (fitness alapján) A fa egy pontjának kiválasztása A kiválasztott pontnál lévő részfa törlése Új részfa növesztése a mutációs pontnál hasonló módon, mint a kezdeti véletlen fa létrehozásánál Az eredmény egy szintaktikailag érvényes, végrehajtható program legyen A leszármazott elhelyezése a populáció következő generációjába EVOLÚCIÓS ALGORITMUSOK GENETIKUS PROGRAMOZÁS 33

Függvény mutáció kiválasztott csomópont * + T4 * + T4 + T3 T6 * T1 T2 T5 T7 új részfa a függvény mutáció után EVOLÚCIÓS ALGORITMUSOK GENETIKUS PROGRAMOZÁS 34

Terminális mutáció * * + T4 + T4 + T3 + T5 T1 T2 kiválasztott csomópont T1 T2 megváltozott csomópont EVOLÚCIÓS ALGORITMUSOK GENETIKUS PROGRAMOZÁS 35

Keresztezés 2 szülő kiválasztása (fitness alapján) Az első szülő fájában egy pont véletlen kiválasztása A második szülő fájában egy pont véletlen kiválasztása A két kiválasztott ponthoz tartozó részfák kicserélése Az eredmények szintaktikailag érvényes, végrehajtható programok legyenek A leszármazottak elhelyezése a populáció következő generációjába EVOLÚCIÓS ALGORITMUSOK GENETIKUS PROGRAMOZÁS 36

Keresztezés EVOLÚCIÓS ALGORITMUSOK GENETIKUS PROGRAMOZÁS 37

Előkészítő lépések A terminálisok halmazának meghatározása A függvények halmazának meghatározása A fitness mérték meghatározása A futtatás paramétereinek meghatározása A megállási feltétel meghatározása EVOLÚCIÓS ALGORITMUSOK GENETIKUS PROGRAMOZÁS 38

Egy példa: szimbolikus regresszió Független változó (X) Függő változó (Y) -1.00 1.00-0.80 0.84-0.60 0.76-0.40 0.76-0.20 0.84 0.00 1.00 0.20 1.24 0.40 1.56 0.60 1.96 0.80 2.44 1.00 3.00 EVOLÚCIÓS ALGORITMUSOK GENETIKUS PROGRAMOZÁS 39

Előkészítő lépések Cél: Találjunk egy egybemenetű (X független változó) számítógépes programot, amelynek a kimenete megegyezik a kívánt kimenettel. 1 Terminális halmaz: T={X, konstansok} 2 Függvény halmaz: F={+, -, *, %} 3 Fitness: A program kimenetei és a kívánt kimenetek közötti különbségek abszolútértékeinek összege. 4 Paraméterek: Populáció mérete: M=4 5 Megállási feltétel: Ha kialakul egy olyan egyed, amelynél az abszolút hibák összege kisebb, mint 0.1. EVOLÚCIÓS ALGORITMUSOK GENETIKUS PROGRAMOZÁS 40

Szimbolikus regresszió (x 2 +x+1) 4 véletlenszerűen létrehozott egyed populációja (0. generáció): EVOLÚCIÓS ALGORITMUSOK GENETIKUS PROGRAMOZÁS 41

Szimbolikus regresszió (x 2 +x+1) A 4 egyed fitness értéke a 0. generációban: x+1 x 2 +1 2 x 0.67 1.00 1.70 2.67 EVOLÚCIÓS ALGORITMUSOK GENETIKUS PROGRAMOZÁS 42

Szimbolikus regresszió (x 2 +x+1) 1. generáció: (a) másolata (c) mutánsa mutációs pont a 2 -nél (a) és (b) keresztezésének első leszármazottja keresztezési pont a + -nál (a) és a legbaloldalibb x -nél (a) és (b) keresztezésének második leszármazottja keresztezési pont a + -nál (a) és a legbaloldalibb x -nél EVOLÚCIÓS ALGORITMUSOK GENETIKUS PROGRAMOZÁS 43