26
Gregorics Tibor Mesterséges intelligencia Evolúciós algoritmusok

Mesterséges Intelligencia Alapjai I. · 2019-04-06 · Gregorics Tibor Mesterséges intelligencia Evolúció, mint kereső rendszer A problémára adható néhány lehetséges választ,

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Mesterséges Intelligencia Alapjai I. · 2019-04-06 · Gregorics Tibor Mesterséges intelligencia Evolúció, mint kereső rendszer A problémára adható néhány lehetséges választ,

Gregorics Tibor Mesterséges intelligencia

Evolúciós algoritmusok

Page 2: Mesterséges Intelligencia Alapjai I. · 2019-04-06 · Gregorics Tibor Mesterséges intelligencia Evolúció, mint kereső rendszer A problémára adható néhány lehetséges választ,

Gregorics Tibor Mesterséges intelligencia

Evolúció, mint kereső rendszer

❑ A problématérnek egyszerre több egyedét (a problémára

adható lehetséges válaszokat) tároljuk az ún. populációban.

❑ Egy többnyire véletlen populációból indulunk ki, amelyet

lépésről lépésre javítjuk azért, hogy megjelenjen benne egy

célegyed vagy egy összességében jó populációhoz jussunk.

❑ Az egyedeket egy ún. rátermettségi függvény segítségével

hasonlítjuk össze. Minden lépésben 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

nem-módosítható stratégiájú keresés.

Page 3: Mesterséges Intelligencia Alapjai I. · 2019-04-06 · Gregorics Tibor Mesterséges intelligencia Evolúció, mint kereső rendszer A problémára adható néhány lehetséges választ,

Gregorics Tibor Mesterséges intelligencia

❑ 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:

• 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.

Evolúciós operátorok

és a terminálási feltétel

Page 4: Mesterséges Intelligencia Alapjai I. · 2019-04-06 · Gregorics Tibor Mesterséges intelligencia Evolúció, mint kereső rendszer A problémára adható néhány lehetséges választ,

Gregorics Tibor Mesterséges intelligencia

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

ADAT := kezdeti érték

while terminálási feltétel(ADAT) loop

SELECT SZ FROM alkalmazható szabályok

ADAT := SZ(ADAT)

endloop

Page 5: Mesterséges Intelligencia Alapjai I. · 2019-04-06 · Gregorics Tibor Mesterséges intelligencia Evolúció, mint kereső rendszer A problémára adható néhány lehetséges választ,

Gregorics Tibor Mesterséges intelligencia

n-királynő probléma 1.

❑ Egyed: a királynők olyan

elrendezése, ahol minden oszlop

pontosan egy királynőt tartalmaz

❑ Reprezentáció:

oszloponként a királynők sor-

pozícióit tartalmazó sorozat

❑ Rátermettségi függvény: ütésben

nem levő királynő párok száma

♛ ♛

♛ ♛

3 2 7 5 2 4 1 1

rátermettségi érték: 23

Page 6: Mesterséges Intelligencia Alapjai I. · 2019-04-06 · Gregorics Tibor Mesterséges intelligencia Evolúció, mint kereső rendszer A problémára adható néhány lehetséges választ,

Gregorics Tibor Mesterséges intelligencia

Evolúciós ciklus

24748552

32752411

32752411

24415124

24748552 ~ 24

32752411 ~ 23

24415124 ~ 20

32543213 ~ 11

szelekció

rekombináció

>15

lehetőleg

a jobbakat

15-nél jobbak

közül

24752411

32748552

32752124

24415411

Page 7: Mesterséges Intelligencia Alapjai I. · 2019-04-06 · Gregorics Tibor Mesterséges intelligencia Evolúció, mint kereső rendszer A problémára adható néhány lehetséges választ,

Keresztezés

2 4 7

5 2 4 1 1

♛ ♛

♛ ♛

4 8 5 5 2

3 2 7

Page 8: Mesterséges Intelligencia Alapjai I. · 2019-04-06 · Gregorics Tibor Mesterséges intelligencia Evolúció, mint kereső rendszer A problémára adható néhány lehetséges választ,

Gregorics Tibor Mesterséges intelligencia

Evolúciós ciklus

24748552

32752411

32752411

24415124

24753411 ~ 21

32748252 ~ 23

32752144 ~ 25

24415411 ~ 20

24748552 ~ 24

32752411 ~ 23

24415124 ~ 20

32543213 ~ 11

24752411

32748552

32752124

24415411

szelekció

rekombináció mutáció

visszahelyezés

>15

lehetőleg

a jobbakat

15-nél jobbak

közül

lehetőleg

a jobbakat

a rosszabbak

helyére

értékek

módosítása

Page 9: Mesterséges Intelligencia Alapjai I. · 2019-04-06 · Gregorics Tibor Mesterséges intelligencia Evolúció, mint kereső rendszer A problémára adható néhány lehetséges választ,

Gregorics Tibor Mesterséges intelligencia

2 8 7 5 4 1 6 3

rátermettségi érték: 23

n-királynő probléma 2.

❑ 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 sor-

pozícióit tartalmazó permutáció

Rátermettségi függvény: ütésben

nem levő királynő párok száma

Page 10: Mesterséges Intelligencia Alapjai I. · 2019-04-06 · Gregorics Tibor Mesterséges intelligencia Evolúció, mint kereső rendszer A problémára adható néhány lehetséges választ,

Gregorics Tibor Mesterséges intelligencia

Evolúciós ciklus

16375428

28754163

28713465

64713825

24375168 ~ 24

18752463 ~ 25

64713825 ~ 26

68713524 ~ 27

16375428 ~ 21

28754163 ~ 23

28713465 ~ 22

64713825 ~ 26

16375168

28754423

24713465

68713825

szelekció

rekombináció mutáció

visszahelyezés

24375168

18756423

24713865

68713425

javítás

16375168

28754423

24713465

68713825

mindet

párok

cseréje

duplikátumok cseréje

Page 11: Mesterséges Intelligencia Alapjai I. · 2019-04-06 · Gregorics Tibor Mesterséges intelligencia Evolúció, mint kereső rendszer A problémára adható néhány lehetséges választ,

Gregorics Tibor Mesterséges intelligencia

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.: (x1x2 x5) (x1x3) (x1 x4) (x2 x5)

egy megoldás: x1 = true, x2 = false, x3 = false, x4 = true, x5 = true

❑ Egyed: egy lehetséges igazság kiértékelés

❑ Reprezentáció: logikai érték (bitek) sorozata

❑ Rátermettségi függvény: Az adott formula igazra értékelt

klózainak száma

Page 12: Mesterséges Intelligencia Alapjai I. · 2019-04-06 · Gregorics Tibor Mesterséges intelligencia Evolúció, mint kereső rendszer A problémára adható néhány lehetséges választ,

01000 11000

11010

01100

01000

11010

11010

11000

Gregorics Tibor Mesterséges intelligencia

Evolúciós ciklus

(x1x2 x5) (x1x3) (x1 x4) (x2 x5)

11010

01000

11010

11000

szelekció

rekombináció mutáció

01010

11000

11010

11000

01011 ~ 4

11110 ~ 3

11010 ~ 3

11001 ~ 3

01000 ~ 2

11010 ~ 3

01100 ~ 1

11000 ~ 2

Rulett kerék

Page 13: Mesterséges Intelligencia Alapjai I. · 2019-04-06 · Gregorics Tibor Mesterséges intelligencia Evolúció, mint kereső rendszer A problémára adható néhány lehetséges választ,

Gregorics Tibor Mesterséges intelligencia

❑ 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.

Evolúciós algoritmus tervezése

Page 14: Mesterséges Intelligencia Alapjai I. · 2019-04-06 · Gregorics Tibor Mesterséges intelligencia Evolúció, mint kereső rendszer A problémára adható néhány lehetséges választ,

Gregorics Tibor Mesterséges intelligencia

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

Page 15: Mesterséges Intelligencia Alapjai I. · 2019-04-06 · Gregorics Tibor Mesterséges intelligencia Evolúció, mint kereső rendszer A problémára adható néhány lehetséges választ,

5

Gregorics Tibor Mesterséges intelligencia

Gráf színezési probléma

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.

1

7

3 4

6

521. 2. 3. 4. 5. 6. 7.

2 4315 6 7

1

7

4

6

52

f = 10

f = 6

1

7

3 4

6

52

1

4

6

2

33

Az i-dik lépésben az x[i]-dik csúcsot

színezzük ki a lehető legvilágosabb

színnel a szomszédjaihoz igazodva, ha lehet.

Direkt kódolás

Indirekt kódolás

Az x[i] az i-dik csúcs színe.

f a kiszínezett csúcsok száma

f a jó élek száma.

Page 16: Mesterséges Intelligencia Alapjai I. · 2019-04-06 · Gregorics Tibor Mesterséges intelligencia Evolúció, mint kereső rendszer A problémára adható néhány lehetséges választ,

Gregorics Tibor Mesterséges intelligencia

A kő-papír-olló játék stratégiája

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.

Page 17: Mesterséges Intelligencia Alapjai I. · 2019-04-06 · Gregorics Tibor Mesterséges intelligencia Evolúció, mint kereső rendszer A problémára adható néhány lehetséges választ,

JelekK ~ 0

P ~ 1

O ~ 2

Gregorics Tibor Mesterséges intelligencia

Egy stratégia (egyed) kódja: {0,1,2}0..80

Az összes lehetséges stratégia száma: 381

Előzmény (ÉnŐÉnŐ)KKKK

KKKP

KKKO

KKPK

OOOP

OOOO

Kódolás

Előzmény (ÉnŐÉnŐ)KKKK ~ 0000

KKKP ~ 0001

KKKO ~ 0002

KKPK ~ 0010

OOOP ~ 2221

OOOO ~ 2222

VálaszP

O

K

P

O

K

A stratégia: 1201 … 20

Előzmény (ÉnŐÉnŐ)KKKK ~ 0000 ~ 0

KKKP ~ 0001 ~ 1

KKKO ~ 0002 ~ 2

KKPK ~ 0010 ~ 3

OOOP ~ 2221 ~ 79

OOOO ~ 2222 ~ 80

VálaszP ~ 1

O ~ 2

K ~ 0

P ~ 1

O ~ 2

K ~ 0

Page 18: Mesterséges Intelligencia Alapjai I. · 2019-04-06 · Gregorics Tibor Mesterséges intelligencia Evolúció, mint kereső rendszer A problémára adható néhány lehetséges választ,

Gregorics Tibor Mesterséges intelligencia

Rátermettség kiértékelése

Minta:Játékos:0002221222001000

Ellenfél:0102112220101011

Stratégia: 1201 … 20 JelekK ~ 0

P ~ 1

O ~ 2

Eset → Javaslat Ellenfél Érték

0001 → 2 0 vereség -1

0001 → 2 1 győzelem +1

0100 → 1 1 döntetlen 0

...

2221 → 2 1 győzelem +1

2222 → 0 0 döntetlen 0

Page 19: Mesterséges Intelligencia Alapjai I. · 2019-04-06 · Gregorics Tibor Mesterséges intelligencia Evolúció, mint kereső rendszer A problémára adható néhány lehetséges választ,

Gregorics Tibor Mesterséges intelligencia

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.

Page 20: Mesterséges Intelligencia Alapjai I. · 2019-04-06 · Gregorics Tibor Mesterséges intelligencia Evolúció, mint kereső rendszer A problémára adható néhány lehetséges választ,

Gregorics Tibor Mesterséges intelligencia

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ó)

Page 21: Mesterséges Intelligencia Alapjai I. · 2019-04-06 · Gregorics Tibor Mesterséges intelligencia Evolúció, mint kereső rendszer A problémára adható néhány lehetséges választ,

Gregorics Tibor Mesterséges intelligencia

Keresztezés

❑ Egy- illetve többpontos keresztezés

– Kódszakaszokat cserélünk

❑ Egyenletes keresztezés

– Jeleket cserélünk

0 0 1 0 1

1 1 1 1 0

0 1 1 0 1

1 0 1 1 0

0 0 1 0 1

1 1 1 1 0

1 0 1 0 1

0 1 1 1 0

Page 22: Mesterséges Intelligencia Alapjai I. · 2019-04-06 · Gregorics Tibor Mesterséges intelligencia Evolúció, mint kereső rendszer A problémára adható néhány lehetséges választ,

Gregorics Tibor Mesterséges intelligencia

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

2 7 4 2 4 6 7

1 3 1 5 5 3 6

duplikátumok keresése

és párba állítása

duplikátumpárok

cseréje

Page 23: Mesterséges Intelligencia Alapjai I. · 2019-04-06 · Gregorics Tibor Mesterséges intelligencia Evolúció, mint kereső rendszer A problémára adható néhány lehetséges választ,

2 3 1 2 4 6 7

1 7 4 5 5 3 6

Gregorics Tibor Mesterséges intelligencia

Permutációk keresztezése 2.

❑ Ciklikus keresztezés1. Választ egy véletlen i ∊ [1..length] -t

2. ai bi

3. Keres olyan j ∊ [1..length] -t (ji), amelyre aj =ai,

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 1 2 4 6 7

2 7 4 5 5 3 6

1 3 4 2 4 6 7

2 7 1 5 5 3 6

1 3 4 2 5 6 7

2 7 1 5 4 3 6

2 3 1 2 4 6 7

1 7 4 5 5 3 6

1 3 1 2 4 6 7

2 7 4 5 5 3 6

1 3 4 2 4 6 7

2 7 1 5 5 3 6

duplikátum keresése a felső utódban,

majd csere azon a pozíción is

csere az adott

pozíción

Page 24: Mesterséges Intelligencia Alapjai I. · 2019-04-06 · Gregorics Tibor Mesterséges intelligencia Evolúció, mint kereső rendszer A problémára adható néhány lehetséges választ,

Gregorics Tibor Mesterséges intelligencia

Rekombináció vektorokra

❑ Köztes rekombináció

– A szülők (x, y) által kifeszített hipertégla környezetében lesz az utód (u).

– i=1…n : ui = aixi + (1-ai)yi ai[-h, 1+h] véletlen

❑ Lineáris rekombináció

– A szülők (x, y) által kifeszített egyenesena szülők környezetében vagy a szülők között lesz az utód (u).

– i=1…n : ui = axi + (1-a)yi a[-h, 1+h] véletlen

x

y

x

y

Page 25: Mesterséges Intelligencia Alapjai I. · 2019-04-06 · Gregorics Tibor Mesterséges intelligencia Evolúció, mint kereső rendszer A problémára adható néhány lehetséges választ,

Gregorics Tibor Mesterséges intelligencia

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 : zi = xi domaini ⋅ p

❑ Bináris tömbbel való kódolásnál kis p valószínűséggel:

− i=1…n : zi = 1 - xi 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.

Page 26: Mesterséges Intelligencia Alapjai I. · 2019-04-06 · Gregorics Tibor Mesterséges intelligencia Evolúció, mint kereső rendszer A problémára adható néhány lehetséges választ,

Gregorics Tibor Mesterséges intelligencia

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.

− ha u=v, akkor feltétlen cseréről van szó

− ha u<v, akkor egy utód több példánya is bekerülhet

− ha u>v, akkor az utódok közül szelektál

utódok száma

populáció száma

populáció száma

lecserélendő egyedek száma

utódképzési ráta (u) =

visszahelyezési ráta (v) =

további szelekció

két szelekció is kell

további szelekció