Evolúciós algoritmusok

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

2. Visszalépéses keresés

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

1. Milyen hatással van a heurisztika általában a keresõ rendszerek mûködésére?

Képrekonstrukció 9. előadás

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

Keresések Gregorics Tibor Mesterséges intelligencia

Genetikus algoritmusok

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,

Képrekonstrukció 6. előadás

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

Mesterséges Intelligencia MI

Mesterséges intelligencia

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

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

Párhuzamos genetikus algoritmus

2. Visszalépéses stratégia

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

Véletlen sorozatok ellenőrzésének módszerei. dolgozat

Bevezetés az informatikába

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)

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

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

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

Informatikai Rendszerek Tervezése

Mesterséges Intelligencia MI

Modellezés Gregorics Tibor Mesterséges intelligencia

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

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

end function Az A vektorban elõforduló legnagyobb és legkisebb értékek indexeinek különbségét.. (1.5 pont) Ha üres a vektor, akkor 0-t..

INFORMATIKA javítókulcs 2016

Felvételi vizsga mintatételsor Informatika írásbeli vizsga

Diszkrét matematika 2. estis képzés

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

BACKTRACKING Visszalépéses keresés

Kétszemélyes játékok

ÖSSZEFOGLALÁS a Bsc záróvizsga mesterséges intelligenciáról szóló témaköréhez

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

Algoritmusok bonyolultsága

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

Alkalmazott modul: Programozás. Programozási tételek, rendezések Giachetta Roberto

Algoritmuselmélet 2. előadás

Logika és számításelmélet. 11. előadás

Fájlszervezés. Adatbázisok tervezése, megvalósítása és menedzselése

Algoritmusok helyességének bizonyítása. A Floyd-módszer

Mesterséges intelligencia. Gregorics Tibor people.inf.elte.hu/gt/mi

Konjugált gradiens módszer

Felvételi tematika INFORMATIKA

1. Alapfogalmak Algoritmus Számítási probléma Specifikáció Algoritmusok futási ideje

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

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

Bánsághi Anna 2014 Bánsághi Anna 1 of 68

Algoritmusok bonyolultsága

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

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

Programozási segédlet

Összetett programozási tételek Rendezések Keresések PT egymásra építése. 10. előadás. Programozás-elmélet. Programozás-elmélet 10.

Shannon és Huffman kód konstrukció tetszőleges. véges test felett

1. Jelölje meg az összes igaz állítást a következők közül!

Véletlenszám generátorok és tesztelésük. Tossenberger Tamás

Bonyolultságelmélet. Thursday 1 st December, 2016, 22:21

Algoritmizálás. Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Programozás alapjai. 5. előadás

Komputeralgebra Rendszerek

Populációgenetikai. alapok

Gráfelméleti feladatok. c f

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

Adatszerkezetek. Nevezetes algoritmusok (Keresések, rendezések)

Hatékonyság 1. előadás

Diszkrét matematika 2.C szakirány

EGYSZERŰ, NEM IRÁNYÍTOTT (IRÁNYÍTATLAN) GRÁF

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

Gráfkeresések A globális munkaterületén a startcsúcsból kiinduló már feltárt utak találhatók (ez az ún. kereső gráf), külön megjelölve az utak azon

Visszalépéses keresés

A félév során előkerülő témakörök

Tartalom Keresés és rendezés. Vektoralgoritmusok. 1. fejezet. Keresés adatvektorban. A programozás alapjai I.

Algoritmizálás, adatmodellezés tanítása 7. előadás

Rendezések. A rendezési probléma: Bemenet: Kimenet: n számot tartalmazó (a 1,a 2,,a n ) sorozat

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

Keresés és rendezés. A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán

Bonyolultságelmélet. Monday 26 th September, 2016, 18:50

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport

GROVER-algoritmus. Sinkovicz Péter. ELTE, MSc II dec.15.

Adatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája

1. AZ MI FOGALMA. I. Bevezetés. Tulajdonságok. Kezdet ELIZA. Első szakasz (60-as évek)

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

Mesterséges Intelligencia alapjai

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

II. Állapottér-reprezentáció

A 2017/2018 tanévi Országos Középiskolai Tanulmányi Verseny első fordulójának feladatai. INFORMATIKA II. (programozás) kategória

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

Specifikáció. B logikai formula, a bemeneti feltétel, K logikai formula, a kimeneti feltétel, A az algoritmus, amelyre az állítás vonatkozik.

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

Keresési algoritmusok, optimalizáció

Adatszerkezetek 2. Dr. Iványi Péter

Optimalizálási eljárások MSc hallgatók számára. 11. Előadás

A programozás alapjai előadás. Amiről szólesz: A tárgy címe: A programozás alapjai

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

Átírás:

Evolúciós algoritmusok

Evolúció, mint kereső rendszer A problémára adható néhány lehetséges választ, azaz a problématér több egyedét tároljuk egyszerre. Ez a populáció. Kezdetben egy többnyire véletlen populációt választunk. A cél egy bizonyos célegyed vagy egy jó populáció előállítása. Az egyedeket egy rátermettségi függvény alapján hasonlítjuk össze. A populációt lépésről lépésre javítjuk úgy, hogy a kevésbé rátermett egyedek egy részét a rátermettebbekhez hasonló egyedekre cseréljük le. Ez a változtatás visszavonhatatlan. Ez tehát egy nemmódosítható stratégiájú keresés.

Szelekció: Kiválasztunk néhány (lehetőleg rátermett) egyedet szülőnek. Rekombináció (keresztezés): Szülőkből utódok készülnek úgy, hogy a szülők tulajdonságait örököljék az utódok. Mutáció: Az utódok tulajdonságait kismértékben módosítjuk. Visszahelyezés: Új populációt alakítunk ki az utódokból és a régi populációból. Terminálási feltétel: Evolúciós operátorok és a terminálási feltétel ha a célegyed megjelenik a populációban ha a populáció egyesített rátermettségi függvény értéke egy ideje nem változik.

ADAT := kezdeti érték while terminálási feltétel(adat) loop SELECT SZ FROM alkalmazható szabályok ADAT := SZ(ADAT) endloop Procedure EA populáció := kezdeti populáció while terminálási feltétel nem igaz loop szülők := szelekció(populáció) utódok := rekombináció( szülők ) utódok := mutáció(utódok) populáció := visszahelyezés(populáció, utódok) endloop Evolúció alapalgoritmusa

n-királynő probléma 1. Egyed: a királynők olyan elrendezése, ahol minden oszlop pontosan egy királynőt tartalmaz 3 2 7 5 2 4 1 1 rátermettségi érték: 23 Reprezentáció: oszloponként a királynők sorpozícióit tartalmazó sorozat Rátermettségi függvény: ütésben nem levő királynő párok száma

Evolúciós ciklus 24748552 32752411 32752411 24415124 szelekció >15 lehetőleg a jobbakat 15-nél jobbak közül 24748552 ~ 24 32752411 ~ 23 24415124 ~ 20 32543213 ~ 11 rekombináció

Keresztezés 2 4 7 4 8 5 5 2 3 2 7 5 2 4 1 1

Evolúciós ciklus 24748552 32752411 32752411 24415124 szelekció >15 rekombináció lehetőleg a jobbakat 15-nél jobbak közül 24748552 ~ 24 32752411 ~ 23 24415124 ~ 20 32543213 ~ 11 24752411 32748552 32752124 24415411 lehetőleg a jobbakat a rosszabbak helyére visszahelyezés 24753411 ~ 21 32748152 ~ 23 32752164 ~ 25 24415411 ~ 20 értékek módosítása mutáció

n-királynő probléma 2. 2 8 7 5 4 1 6 3 rátermettségi érték: 23 Egyed: a királynők olyan elrendezése, ahol minden sor és oszlop pontosan egy királynőt tartalmaz Reprezentáció: oszloponként a királynők sorpozícióit tartalmazó permutáció Rátermettségi függvény: ütésben nem levő királynő párok száma

Evolúciós ciklus szelekció 16375428 28754163 28713465 64713825 rekombináció mindet 16375168 28754423 24713465 68713825 16375428 ~ 21 28754163 ~ 23 28713465 ~ 22 64713825 ~ 26 javítás lehetőleg a jobbakat a rosszabbak helyére 24375168 18756423 24713865 68713425 visszahelyezés 24375168 ~ 24 18752463 ~ 25 64713825 ~ 26 68713524 ~ 27 mutáció párok cseréje

Kielégíthetőségi probléma (SAT) Adott egy n változós Boolean formula KNF alakban. A változók milyen igazság kiértékelése mellett lesz formula igaz? E.g.: (x 1 x 2 x 5 ) (x 1 x 3 ) ( x 1 x 4 ) ( x 2 x 5 ) egy megoldás: x 1 = true, x 2 = false, x 3 = false, x 4 = true, x 5 = true Egyed: Reprezentáció: Rátermettségi függvény: egy lehetséges igazság kiértékelés logikai érték (bitek) sorozata Az adott formula igazra értékelt klózainak száma

01000 11010 01000 11000 11010 11010 Rulett kerék 11000 01100 Evolúciós ciklus (x 1 x 2 x 5 ) (x 1 x 3 ) ( x 1 x 4 ) ( x 2 x 5 ) 11010 01000 11010 11000 szelekció rekombináció 01000 ~ 2 11010 ~ 3 01100 ~ 1 11000 ~ 2 01010 11000 11010 11000 01011 ~ 4 11110 ~ 3 11010 ~ 3 11001 ~ 3 mutáció

Evolúciós algoritmus elemei problématér egyedeinek reprezentációja: kódolás rátermettségi függvény (fitnesz függvény) kapcsolat a kódolással és a céllal evolúciós operátorok szelekció, rekombináció, mutáció, visszahelyezés kezdő populáció, megállási feltétel (cél) stratégiai paraméterek populáció mérete, mutáció valószínűsége, utódképzési ráta, visszahelyezési ráta, stb.

Kódolás Egy egyedet egy jelsorozattal (kromoszómával) kódolunk. A jelsorozatnak ki kell elégítenie a kód-invariánst. Az egyedeket az őket reprezentáló kódjukon keresztül változtatjuk meg. Egy jel vagy jelcsoport, azaz a gén írja le az egyed egy tulajdonságát (attribútum-érték párját). Sokszor egy génnek a kódsorozatban elfoglalt pozíciója (lókusza) jelöli ki a gén által leírt attribútumot, amelynek értéke maga a gén (allél). A kód ekkor tulajdonságonként feldarabolható: egy rövid kódszakasz megváltoztatása kis mértékben változtat az egyeden. Gyakori megoldások: Vektor: valós vagy egész számok rögzített hosszú tömbje Bináris kód: bitek rögzített hosszú tömbje Véges sok elem permutációja

Gráf színezési probléma kódolása és rátermettségi függvénye Adott egy véges egyszerű gráf, amelynek a csúcsait négy szín felhasználásával kell úgy kiszínezni, hogy a szomszédos csúcsok eltérő színűek legyenek. Direkt kódolás 1 6 1. 2. 3. 4. 5. 6. 7. 2 7 5 Az x[i] az i-dik csúcs színe. 3 4 f a jó élek száma. f = 10 Indirekt kódolás 2 5 1 3 4 6 7 Az i-dik lépésben az x[i]-dik csúcsot színezzük ki a lehető legvilágosabb 2 színnel a szomszédjaihoz igazodva, ha lehet. f a kiszínezett csúcsok száma 1 3 f = 6 7 6 4 5

A kő-papír-olló játék stratégiájának kódolása és rátermettségi függvénye Alakítsunk ki jó stratégiát egy kő-papír-olló világbajnokságra! Olyan függvényre van szükségünk, amelyik a korábbi csaták kimenetele alapján javaslatot tesz a soron következő lépésünkre. Például két korábbi csata alapján: Előzmény: Én: K P Javaslat: K Ő: O O Ez még nem a teljes stratégia, mert nem csak a fenti előzményre, hanem az összes lehetséges előzményre kell soron következő lépést javasolni.

Kódolás Egy stratégia (egyed) kódja: {0,1,2} 0..80 Az összes lehetséges stratégia száma: 3 81 Signal K ~ 0 P ~ 1 O ~ 2 Előzmény (ÉnŐÉnŐ) KKKK ~ 0000 ~ 0 KKKP ~ 0001 ~ 1 KKKO ~ 0002 ~ 2 KKPK ~ 0010 ~ 3 OOOP ~ 2221 ~ 79 OOOO ~ 2222 ~ 80 A stratégia: 1201 20 Válasz P ~ 1 O ~ 2 K ~ 0 P ~ 1 O ~ 2 K ~ 0

Rátermettség kiértékelése Stratégia: 1201 120 Mintajáték: Én: 0002221222011000 Ő: 0102112220001011 Jel K ~ 0 P ~ 1 O ~ 2 Eset Javaslat Ellenfél Érték 0001 2 0 Vereség -1 0001 2 1 Győzelem +1 0010 1 1 Döntetlen 0 2221 2 1 Győzelem +1 2222 0 0 Döntetlen 0

Szelekció Célja: a rátermett egyedek kiválasztása úgy, hogy a rosszabbak kiválasztása is kapjon esélyt. Rátermettség arányos (rulett kerék algoritmus): minél jobb a rátermettségi függvényértéke egy elemnek, annál nagyobb valószínűséggel választja ki Rangsorolásos: rátermettség alapján sorba rendezett egyedek közül a kisebb sorszámúakat nagyobb valószínűséggel választja ki Versengő: véletlenül kiválasztott egyedcsoportok (pl. párok) legjobb egyedét választja ki. Csonkolásos v. selejtezős: a rátermettség szerint legjobb (adott küszöbérték feletti) valahány egyedből véletlenszerűen választ néhányat.

Rekombináció A feladata az, hogy adott szülő-egyedekből olyan utódokat hozzon létre, amelyek a szüleik tulajdonságait "öröklik". Keresztezés: véletlen kiválasztott pozíción jelcsoportok (gének) vagy jelek cseréje Rekombináció: a szülő egyedek megfelelő jeleinek kombinálásával kapjuk az utód megfelelő jelét Ügyelni kell a kód-invariáns megtartására: vizsgálni kell, hogy az új kód értelmes lesz-e (permutáció)

Keresztezés Egy- illetve többpontos keresztezés Kódszakaszokat cserélünk 0 0 1 0 1 1 1 1 1 0 0 1 1 0 1 1 0 1 1 0 Egyenletes keresztezés Jeleket cserélünk 0 0 1 0 1 1 1 1 1 0 1 0 1 0 1 0 1 1 1 0

Permutációk keresztezése 1. Parciálisan illesztett keresztezés Egy szakasz cseréje után párba állítja és kicseréli azokat a szakaszon kívüli elemeket, amelyek megsértik a permutáció tulajdonságot. 2 3 1 5 4 6 7 1 7 4 2 5 3 6 2 7 4 2 4 6 7 1 3 1 5 5 3 6 1 7 4 2 5 6 3 2 3 1 5 4 7 6

Permutációk keresztezése 2. Ciklikus keresztezés 1. Választ egy véletlen i [1..length] -t 2. a i b i 3. Keres olyan j [1..length] -t (j i), amelyre a j =a i, 4. Ha nem talál, akkor vége, különben i:=j 5. goto 2. 2 3 1 5 4 6 7 1 7 4 2 5 3 6 2 3 1 2 4 6 7 1 7 4 5 5 3 6 1 3 4 2 4 6 7 2 7 1 5 5 3 6 1 3 1 2 4 6 7 2 7 4 5 5 3 6 1 3 4 2 5 6 7 2 7 1 5 4 3 6

Rekombináció vektorokra x Köztes rekombináció y A szülők (x, y) által kifeszített hipertégla környezetében lesz az utód (u). i=1 n : u i = a i x i + (1-a i )y i a i [-h, 1+h] véletlen Lineáris rekombináció A szülők (x, y) által kifeszített egyenesen a szülők környezetében vagy x a szülők között lesz az utód (u). y i=1 n : u i = ax i + (1-a)y i a [-h, 1+h] véletlen

Mutáció A mutáció egy egyed (utód) kis mértékű véletlen változtatását végzi. Valós tömbbel való kódolásnál kis p valószínűséggel: i=1 n : z i = x i range i * (1-2*p) Bináris tömbbel való kódolásnál kis p valószínűséggel: i=1 n : z i = 1 - x i if random[0..1]<p Permutáció esetén egy jelpár cseréje egy kódszakaszon a jelek ciklikus léptetése vagy megfordítása vagy átrendezése.

Visszahelyezés A visszahelyezés a populációnak az utódokkal történő frissítése: Kiválasztja a populációnak a lecserélendő egyedeit, és azok helyére a kiválasztott utódokat teszi. utódok száma utódképzési ráta (u) = populáció száma lecserélendő egyedek száma visszahelyezési ráta (v) = populáció száma ha u=v, akkor feltétlen cseréről van szó további szelekció ha u<v, akkor egy utód több példánya is bekerülhet további szelekció ha u>v, akkor az utódok közül szelektál két szelekció is kell