keresÉs (search)

62
KERESÉS (SEARCH)

Upload: salma

Post on 12-Jan-2016

26 views

Category:

Documents


0 download

DESCRIPTION

KERESÉS (SEARCH). KERESÉS. Keresés – módszeres próbálkozás Problémák: Mit kell tudni egy feladat megoldásához? – akciók, állapotok, célok Hogyan kell az ismereteket leírni? – MI-ben: reprezentáció Hogyan kell a megoldást keresni? – MI-ben: keresés Reprezentáció: - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: KERESÉS (SEARCH)

KERESÉS (SEARCH)

Page 2: KERESÉS (SEARCH)

KERESÉS 2

Keresés – módszeres próbálkozás Problémák:

Mit kell tudni egy feladat megoldásához? – akciók, állapotok, célok

Hogyan kell az ismereteket leírni? – MI-ben: reprezentáció Hogyan kell a megoldást keresni? – MI-ben: keresés

Reprezentáció: állapottér (state space), kezdeti- és célállapotok

reprezentálása: gráf (graph) csomópont (node) - állapot (state) él (arc) - művelet (action)

probléma redukció – részfeladatokra bontás reprezentálása: gráf

csomópont – problémaleírás él - művelet (probléma részproblémává redukálása)

KERESÉS

Page 3: KERESÉS (SEARCH)

KERESÉS 3

Reprezentációs gráf keresés közben építjük fel (implicit leírás) irányított ciklusmentes gráf (egyszerűsítés: fává alakítjuk)

gyökér (root)

szülõ (parent)

gyerek (children)

szint (level)

elágazási tényezõ

(branching factor)

levél (leaf)

célállapot (goal node)

költség (cost)

KERESÉS

Page 4: KERESÉS (SEARCH)

KERESÉS 4

Keresési probléma: kezdeti állapot, operátorok, célteszt/ célállapot, költségek

A keresés folyamata: állapottér, út, megoldás kiterjesztés, stratégia

A keresés technikája: keresési fa, csomópont, gyökér, levél keresési algoritmus: melyik csomópontot érdemes kiterjeszteni?

Keresés hatékonyságának mérése: talál-e megoldást? talált megoldás jó megoldás-e? (alacsony költségű – útköltség) keresési eljárás költsége (idő- és memóriaigény) keresés költsége: út költsége + keresési eljárás költsége

KERESÉS

Page 5: KERESÉS (SEARCH)

KERESÉS 5

MISSZIONÁRIUSOK ÉS KANNIBÁLOK PROBLÉMÁJA

m>=ccsónak kapacitása 2

kezdeti állapot … célállapot … útköltség ...

Modell: híd, lyukas csónak, evező … frame probléma

Reprezentáció: node ?? - nevek ?? – bal part:(3M, 3K, Cs) akció ?? - ki merre megy a csónakban – (1M), (1K), (1M 1K), (2M), (2K)Keresés: megszorítások az operátorok alkalmazására:

– csak legális állapotba– csak új állapotba

(3M, 3K, Cs)

(3M, 2K) (3M, 1K)

(3M, 2K, Cs)

(2M, 2K)

(3M, 2K, Cs)

?

Page 6: KERESÉS (SEARCH)

KERESÉS 6

HANOI TORNYAI

reprezentáció … állapottér modell állapot - melyik korong melyik rúdon, pl. (1, 1, 1, 1) művelet - korong áthelyezése i. rúdról j. rúdra (1 i, j 3)

(1,1,1)

(2,1,1)

(2,3,1)

(1,3,1) (1,2,1)

(2,2,2) (3,2,2) (3,1,2) (1,1,2) (1,1,3) (2,1,3) (2,3,3) (3,3,3)

(3,1,1)

(3,2,1)

(2,2,1)

(2,2,3)

(1,2,3)

(1,3,3)(2,1,2) (3,1,3)

(2,3,2) (3,2,3)

(3,3,1)

(3,3,2)

(1,3,2)

(1,2,2)

Page 7: KERESÉS (SEARCH)

KERESÉS 7

HANOI TORNYAI

1. 3.

2.

Hipotetikus megoldás

Probléma redukció

(3; 1 3)

(2; 1 2) (1; 1 3) (2; 2 3)

(1; 1 2)(1; 1 3) (1; 3 2) (1; 2 3)(1; 2 1) (1; 1 3)

Page 8: KERESÉS (SEARCH)

KERESÉS 8

4 x 4-es PUZZLE

15

14

13

12 11

10

9

87 6

5

4

3

2

1

1

5

9

2 3

6

12

1513 14

11

8

4

7

10

reprezentációállapotok – lapok helyzete – 4 x 4 -es mátrixállapottér – elérhetőség !akció - ? adott lap mozgatása fel, le, jobbra, balra

lyuk mozgatása (4 lehetséges akció)költség – az akciók száma (az út hossza)megoldás – minimális költségű út a kezdeti és a célállapot közöttcéltól való távolság

hány lépés van a célig (S) – nem tudjuk becslésrossz helyen levő lapok száma (H1)Manhattan távolság (H2)H1, H2: alsó becslésekH2 H1H2 jobban informált becslés

Page 9: KERESÉS (SEARCH)

KERESÉS 9

N KIRÁLYNŐ PROBLÉMA

reprezentáció állapot – egy állás (N x N-es mátrix) állapottér – lehetséges állások 1..N királynővel

– mezők megcímkézése (KN, ütésben, szabad)

nem lehetnek ütésben álló KN-k KN=N esetén célállapot

művelet – 1 KN elhelyezése ütésben álló mezők száma nő korlátozás kielégítés (constraint satisfaction)költség – minden megoldás költsége azonos (N hosszú műveletsorozat)kezdőállapot – üres táblacélállapot – N királynő a táblán

Page 10: KERESÉS (SEARCH)

KERESÉS 10

N KIRÁLYNŐ PROBLÉMA

reprezentációs gráf – inkrementális megfogalmazás

startcsúcs

célcsúcsok

Page 11: KERESÉS (SEARCH)

KERESÉS 11

LEFEDÉSI PROBLÉMA

"bamba módszer" : próbálgatás lehetséges állapotok száma igen nagy elágazási tényező nagy

MI-t csak akkor szabad használni, ha a természetes kifogy!

Page 12: KERESÉS (SEARCH)

KERESÉS 12

CSELEKVÉSTERVEZÉS

lehet-e ezt keresési feladatként felfogni?akciósorozat (akciósorrend??)

kezdőállapot célállapot (forward reasoning) - itt reménytelen

célhoz hiányzó feltételekcélállapot kezdőállapot (backward reasoning)

Page 13: KERESÉS (SEARCH)

KERESÉS 13

CSELEKVÉSTERVEZÉS

Előrefelé haladókeresés

Hátrafelé haladókeresés

Kétirányú keresés

Page 14: KERESÉS (SEARCH)

KERESÉS 14

ÁLTALÁNOS KERESÉSI ALGORITMUS

adott: kezdeti állapot célteszt/ célállapot műveletek

keresési algoritmus:1. Legyen L a kezdeti állapoto(ka)t tartalmazó lista.

2. Ha L üres, akkor leállás - a keresés sikertelen;egyébként legyen n egy csomópont L-ből.

3. Ha n célállapot, akkor leállás - eredmény megadása;egyébként n törlése L-ből,

n gyermekeinek előállítása,

n gyermekeinek hozzáadása L-hez,

visszalépés 2-re.

Page 15: KERESÉS (SEARCH)

KERESÉS 15

ÁLTALÁNOS KERESÉSI ALGORITMUS

keresőgráf (search graph) nyílt csúcsok (open nodes) kiterjesztés (extension)

sikertelen keresés több célállapot melyik nyílt csúcsot válasszuk ???

Page 16: KERESÉS (SEARCH)

KERESÉS 16

PÉLDA: ÁLTALÁNOS KERESŐ JÁTÉK

adott: két kétjegyű szám (kiindulási- és célszám) feladat: eljutni a kiindulási számtól a célszámig akció: egy számjegy növelése vagy csökkentése,

kétszer nem lehet ugyanazt a számjegyet változtatni,0-t csökkenteni, 9-t növelni nem lehet

Pl. kiindulási szám 25, célszám 44

1. L={25}2. n=253. L={15 (25), 35 (25), 24 (25), 26 (25)}2. n=153. L={35 (25), 24 (25), 26 (25), 14 (15|25), 16 (15|25)}

melyik számot választjuk a listáról?hova, milyen sorrendben tesszük a gyerekeket?célfüggvény

25

15 35 24 26

14 16. . .

. . .

Page 17: KERESÉS (SEARCH)

VAK KERESÉSEK (BLIND SEARCH)

Page 18: KERESÉS (SEARCH)

KERESÉS 18

SZÉLESSÉGI KERESÉS (BREADTH-FIRST SEARCH)

L open lista:

újrégi

QUEUE

A keresési fában mindig a legmagasabb szinten lévő csomópontok valamelyikét terjeszti ki

A

CB

FED

KJIH

G

ONM

L

open lista (L):

AB CC D ED E F GE F G H I JF G H I JG H I JH I J K LI J K L MJ K L M N OK L M N O

Page 19: KERESÉS (SEARCH)

KERESÉS 19

SZÉLESSÉGI KERESÉS (BREADTH-FIRST SEARCH)

Az általános keresési algoritmus módosítása:

2. n az első csomópont L-ből

3. n gyermekeinek hozzáadása L végéhez

Az algoritmus tulajdonságai: memóriaigény: bd

időigény: 1 + b + b2 + ... + bd bd teljes optimális

Page 20: KERESÉS (SEARCH)

KERESÉS 20

MÉLYSÉGI KERESÉS (DEPTH-FIRST SEARCH)

A keresési fában mindig a legmélyebben lévő csomópontok valamelyikét terjeszti ki

A

CB

FED

KJIH

G

ONM

L

L open lista:új régi

STACK

open lista (L):

AB CD E CH I J E CM I J E CI J E CN O J E C

Page 21: KERESÉS (SEARCH)

KERESÉS 21

MÉLYSÉGI KERESÉS (DEPTH-FIRST SEARCH)

Az általános keresési algoritmus módosítása:

2. n az első csomópont L-ből

3. n gyermekeinek hozzáadása L elejéhez

Az algoritmus tulajdonságai: memóriaigény - megoldás méretével arányos - b*d időigény: bd

nem teljes (végtelen ág lehet) nem optimális

Page 22: KERESÉS (SEARCH)

KERESÉS 22

KORLÁTOZOTT MÉLYSÉGŰ KERESÉS(DEPTH-LIMITED SEARCH) Mélységi keresés mélységi korláttal.

A keresési fában mindig a legmélyebben lévő csomópontok valamelyikét terjeszti ki, feltéve, hogy az nincs egy előre adott mélységi korlát (l) alatt.

Az algoritmus tulajdonságai: memóriaigény: b*l időigény: bl

teljes (ha l nagyobb, mint a megoldás mélysége, d) nem optimális

Hogyan válasszuk meg előre a mélységi korlátot?

Page 23: KERESÉS (SEARCH)

KERESÉS 23

ITERATÍV MÉLYÍTÉS (ITERATIVE DEEPENING)

Megkerüli a mélységi korlát meghatározását. Korlátozott mélységű keresés egyre növekvő l = 0, 1,

2, ... mélységi korlát mellett. Mintha a csomópontoknak a mélységi korlát alatt nem

lehetnének leszármazottai. Ha a célt nem sikerült így elérni, eggyel növeli a korlátot és újraindítja az egész keresést.

Az algoritmus tulajdonságai: memóriaigény: megoldás méretével arányos – b*d időigény: bár redundáns (a fa „teteje” ismétlődik) – bd

teljes optimális

Page 24: KERESÉS (SEARCH)

KERESÉS 24

ITERATÍV MÉLYÍTÉS (ITERATIVE DEEPENING)

A

CB

FED

KJIH

G

ONM

L

open lista (L):

l=0 Al=1 A

B CC

l=2 AB CD E CE CCF GG

open lista (L):

l=3 AB CD E CH I J E CI J E CJ E CE CCF GGK L

Page 25: KERESÉS (SEARCH)

KERESÉS 25

ITERATÍV MÉLYÍTÉS (ITERATIVE DEEPENING)

redundáns - Nagy teher ez? Lásd az alábbi példát: Legyen b = 10, d = 5. Ekkor a csomópontok száma:

1 + 10 + 100 + 1 000 + 10 000 + 100 000 = 111 111 A legalsó szinten a csomópontokat egyszer kell kiterjeszteni,

eggyel magasabb szinten kétszer, stb. Azaz a kiterjesztések teljes száma:6*1 + 5*10 + 4*100 + 3*1 000 + 2*10 000 + 100 000 = 123 456

Ebben a példában ez a szükségesnél 11% -kal több kiterjesztést jelent.

Előnyei: mélységi keresés csekély memóriaigénye szélességi keresés teljessége biztosítja, hogy a keresési fa nem lesz mélyebben feltárva, mint

amilyen mélyen maga a cél található

Page 26: KERESÉS (SEARCH)

KERESÉS 26

EGYENLETES KERESÉS (UNIFORM-COST SEARCH)

A keresési fában mindig a pillanatnyilag legkisebb költségű csomópontok valamelyikét terjeszti ki

A

CB

FED

KJIH

G

ONM

L

open lista (L):

A(0)B(3) C(4)C(4) D(5) E(7)D(5) E(7) F(7) G(7)I(6) E(7) F(7) G(7) J(7) H(8)E(7) F(7) G(7) J(7) H(8) N(8) O(8)F(7) G(7) J(7) H(8) N(8) O(8)G(7) J(7) H(8) N(8) O(8)J(7) H(8) N(8) O(8) K(9) L(10)H(8) N(8) O(8) K(9) L(10)N(8) O(8) K(9) L(10) M(11)

3 4

2 4 3 3

3 1 2

2 2

2 3

Page 27: KERESÉS (SEARCH)

KERESÉS 27

EGYENLETES KERESÉS (UNIFORM-COST SEARCH)

Az általános keresési algoritmus módosítása:2. n az első csomópont L-ből3. n gyermekeinek hozzáadása L-hez, majd L rendezése a

csomópontok növekvő költsége szerint.

Az algoritmus tulajdonságai: memóriaigény: bd

időigény: bd teljes optimálisspeciális változata: szélességi keresés (élek egységnyi

költségűek)

Page 28: KERESÉS (SEARCH)

KERESÉS 28

VAK KERESÉSI STRATÉGIÁK ÖSSZEHASONLÍTÁSA

b: elágazási tényeződ: megoldás mélységel: mélységi korlát

teljesség időigény memóriaigény optimalitás

szélességi igen bd bd igen

egyenletes igen bd bd igen

mélységi nem bd b*d nem

korlátozott mélységű

ha d ≤ l bl b*l nem

iteratív mélyítés

igen bd b*d igen

Page 29: KERESÉS (SEARCH)

HEURISZTIKUS KERESÉSEK (HEURISTIC SEARCH)

Page 30: KERESÉS (SEARCH)

KERESÉS 30

HEURISZTIKUS KERESÉSEK

vak keresési algoritmusok hatékonyságának javítása feladatmegoldások számításigényének csökkentése keresés korlátozott erőforrások mellett feladathoz kapcsolódó információk figyelembe vétele

Heurisztika általános jelentés: bármely tanács, mely gyakran

hatékony, ám nem biztos hogy minden esetben érvényes

technikai jelentés: heurisztikus kiértékelő függvény, amely a probléma egy állapotához egy számot rendel

(pl. sakk: egy pozíció ereje)

Page 31: KERESÉS (SEARCH)

KERESÉS 31

HEURISZTIKUS KERESÉSEK

Heurisztika a keresésben: A még ki nem terjesztett csomópontok (L) kiértékelése:

mennyire van közel a célhoz?

Algoritmus típusok legjobbat-először keresés: a legjobbnak tűnő csomó-

pont kiterjesztése (előretekintő keresés, A*, IDA*)

iteratív javítás: elmozdulás a legjobbnak tűnő irányba (hegymászó keresés, szimulált hűtés, genetikus

algoritmus)

A legjobb csomópont megtalálása elvben nem könnyebb, mint maga a keresési feladat!

Page 32: KERESÉS (SEARCH)

KERESÉS 32

HEURISZTIKUS KERESÉSEK

Heurisztikus kiértékelő függvény

Célja: 1. a feladat megoldásával járó számításigény csökkentése

2. adott erőforrás használat mellett a lehető legjobb megoldás megtalálása

Kompromisszum a számításigény és a megoldás minősége között

Már kevés alkalmazás-függő szakismeret is nagyban segíthet akár 1), akár 2) célok érdekében.

Gyakori heurisztikus kiértékelő függvény: Annak a költségnek a becslése, mely egy célállapotnak a

pillanatnyi állapotból való elérésével jár.

(pl. 4x4-es játék, útkeresés városok között, 8-királynő)

Page 33: KERESÉS (SEARCH)

KERESÉS 33

HEGYMÁSZÓ KERESÉS (HILL-CLIMBING SEARCH)

A keresés során egy csomópont közvetlen leszármazottjait vizsgálja csak, és ezek közül mindig a legjobbat választja

Algoritmus1. Legyen n a kezdeti állapot.2. Ha n egy célállapot, akkor állj le és add vissza eredményként.3. Egyébként

állítsd elő n valamennyi n’ leszármazottját;legyen n = a legjobb n’;menj vissza 2-re.

Tulajdonságok Nem tárolja a keresési gráfot, csak a pillanatnyilag vizsgált

csomópontot - így minimális memória igény Sikere nagyban függ a felület alakjától

L open lista:új régi

rendezés (csak az új node-okat)

Page 34: KERESÉS (SEARCH)

KERESÉS 34

HEGYMÁSZÓ KERESÉS (HILL-CLIMBING SEARCH)

Problémák lokális maximum azonos értékű felület nyereg probléma (gerinctúra lenne jó, de arra nem vezet út)

Módosítások: több pontból újraindítás (véletlen újraindítású hegymászó

keresés) „lefelé vezető” lépések megengedése (szimulált hűtés)

Előnyei: memóriaigény kicsi jó helyzetből indulva gyorsan célhoz ér

Page 35: KERESÉS (SEARCH)

KERESÉS 35

ELŐRETEKINTŐ KERESÉS (BEST-FIRST SEARCH)

Elv: megtalálni egy célt, amilyen gyorsan csak lehetséges Kiértékelés alapja: egyedül a céltól való távolság Mindig a célhoz legközelebb levő csomópontot terjeszti ki – becslés

Algoritmus1. Legyen L a kezdeti állapotokat tartalmazó lista.2. Ha L üres, akkor állj le – a keresés sikertelen;

egyébként legyen n az a csomópont L-ből, amelyik várhatóan a legközelebb van a célhoz.

3. Ha n egy célállapot, akkor állj le és add vissza (a hozzá vezető úttal együtt) eredményként;

egyébként töröld n-t L-ből;állítsd elő n gyermekeit;jegyezd fel a hozzájuk vezető utat;add a gyermekeket L-hez;menj vissza 2-re.

Page 36: KERESÉS (SEARCH)

KERESÉS 36

ELŐRETEKINTŐ KERESÉS (BEST-FIRST SEARCH)

Csomópont költsége: f(n) = h(n) – becsült távolság a céltól

kiterjesztés sorrendje

8 1.

6 2.

4 3.

2 4.

0 5.

7

4

0

nem optimális

élek költsége a példában egységnyi

Page 37: KERESÉS (SEARCH)

KERESÉS 37

A ALGORITMUS

egyenletes keresés és előretekintő keresés előnyös tulajdonságait egyesíti

keresés biztonságának megtartása kiterjesztések számának csökkentése - előretekintő heurisztikával

Kiértékelés alapja: a már megtett út, és a még várható út költsége

kiértékelő függvény:f(n) = g(n) + h(n) h(n) 0

ahol: g(n): n tényleges távolsága a kezdeti állapottól h(n): n becsült távolsága a céltól

f(n) minimális kifejtésre kerülő csúcs

ismert becsült

g(n) h(n)

f(n)

start n cél

Page 38: KERESÉS (SEARCH)

KERESÉS 38

A ALGORITMUS

h(n) f(n)

3 3

2 3

1 3

1 4

1 5

4 5

nem feltétlenül optimális

1 6

2 4

0 3

élek költsége a példában egységnyi

Page 39: KERESÉS (SEARCH)

KERESÉS 39

A* ALGORITMUS

olyan A algoritmus, melynek heurisztikus függvénye minden csúcsban alsó becslésn: h(n) h*(n)h(n) megengedhető (admissible)

Az A* algoritmus mindig optimális megoldást talál (ha létezik megoldás).1. A kiterjesztésre választott bármely n csúcsra f(n) f*. (f* - optimális mo.

költsége)

ha az algoritmus n csúcsot választja m helyett:f(n) f(m) = g(m) + h(m) g(m) + h*(m) = f*(m) = f*

2. A talált megoldás optimális (indirekt bizonyítás)Tfh eljutunk t végpontba, amely nem optimális f(t) f*1. szerint f(t) f* ellentmondás

optimális mo, költsége f *

nyílt csúcsok

n m

f(m)=g(m)+h(m)

Page 40: KERESÉS (SEARCH)

KERESÉS 40

M 1 (7)

P 0 (7) Q 0 (9)

A* ALGORITMUS

1. L = {A(3)} 2. L = {B(3) D(3) C(4)}3. L = {E(3) D(3) C(4)}4. L = {D(3) C(4) K(6) J()}5. L = {I(3) C(4) K(6) H(7) J()}6. L = {C(4) N(5) K(6) H(7) J() O()}7. L = {F(4) N(5) K(6) H(7) J() O() G()}8. L = {N(5) K(6) L(6) H(7) J() O() G()}

A 3 (3)

B 2 (3) C 2 (4) D 2 (3)

E 1 (3) F 1 (4) G H 2 (7) I 1 (3)

K 0 (6) L 0 (6) N 0 (5)J O

12

1

1 1 1 14

1 4 3 1 3 1

1 3

Page 41: KERESÉS (SEARCH)

KERESÉS 41

A* ALGORITMUS

h h* csak az útba eső node-okat fejti ki h 0 egyenletes keresés h 0 és élek költsége egységnyi szélességi keresés h1, h2 megengedhető becslések

h2 h1 (minden pontban) exp(h1) exp(h2)

h1 jobban informált becslés ideális kiértékelő függvény:

célállapotban visszaadja a megoldás költségét

h(n) = 0 és f(n) = g(n) a célban nem változik, ha bármely állapotból optimális lépést teszünk (tökéletes

becslő)

ha h(n) tökéletesen becsli a céltól való távolságot, nincs letérés az optimális útról

becslés költsége . . .

Page 42: KERESÉS (SEARCH)

KERESÉS 42

IDA* ALGORITMUS (ITERATIVE DEEPENING A*)

Alapötlet: az iteratív mélyítés csökkentette a vak keresés memóriaigényét – alkalmazzuk most heurisztikus keresésre

Iteratív mélyítés, mélységi korlát helyett "jósági" korlát f(n)-re ciklusonként mélységben-először keresés mozgó korlát

Mintha a csomópontoknak a "jósági" korlát alatt nem lehetnének leszármazottjai. – Ha a célt nem sikerült így elérni, növeli a korlátot és újraindítja az egész keresést.

Jósági korlát meghatározása: Hatékonyabb, ha az aktuális korlátot nem léptetve növeli,

hanem az előző iterációs ciklusban választja ki.

Page 43: KERESÉS (SEARCH)

KERESÉS 43

IDA* ALGORITMUS (ITERATIVE DEEPENING A*)

Tulajdonságok teljes és optimális (úgy, mint A*) memóriaigény – lineárisan nő a cél mélységével időigény – bár redundáns, marad exponenciális (erősen függ h-tól) NIDA* NA* N: kiterjesztett node-ok száma

1 4

0 4

0 5

1 3

2 3

2 2

1 2

1 4

1 3

1 5

c = 1c = 2

c = 3

Page 44: KERESÉS (SEARCH)

KERESÉS 44

SZIMULÁLT HŰTÉS (SIMULATED ANNEALING)

Alapötlet: fémöntési technikával való analógia

Algoritmus nem a legjobb lépést választja, hanem véletlenül választ ha a lépés javít a pillanatnyi helyzeten, elfogadja és megteszi bizonyos valószínűséggel elfogad olyan lépést is, amely ront a

pillanatnyi helyzeten hőmérséklet: befolyásolja a rontó lépések elfogadásának

valószínűségét kisebb hőmérsékleten kisebb az esély a keresés előrehaladtával a hőmérséklet csökken (végül hegymászó

keresés)

p %

100 %T

z

ep

z: jelenlegi - következő érték

Page 45: KERESÉS (SEARCH)

KERESÉS 45

GENETIKUS ALGORITMUS (GENETIC ALGORITHM)Alapötlet: Keresés a természetes kiválasztódás (durva) utánzásával.

Fogalmak egyed (egy lehetséges megoldás – állapot) populáció (a lehetséges megoldások egy halmaza) rátermettség – fitness (célfüggvény) genetikus kód (az egyed reprezentációja) genetikus műveletek: kereszteződés, mutáció

0 1 1 0 1 1 0 0 0 1 0 1 1 0 1

1 0 0 1 1 1 1 0 1 1 0 0 1 0 0

0 1 1 0 1 1 0 0

1 0 0 1 1 1 1 0

0 1 0 1 1 0 1

1 1 0 0 1 0 0

0 1 1 0 1 1 0 0

1 0 0 1 1 1 1 0 0 1 0 1 1 0 1

1 1 0 0 1 0 0

0 1 1 0 1 1 0 0 0 1 0 1 1 0 1

0 1 1 0 1 1 0 1 0 1 0 1 1 0 1

Page 46: KERESÉS (SEARCH)

KERESÉS 46

GENETIKUS ALGORITMUS (GENETIC ALGORITHM)

Algoritmus

1. Töltsd fel a kezdeti populációt.

2. Ha a leállási feltétel teljesül, akkor állj le és add vissza a legjobb egyedeket eredményként.

3. Egyébként válassz ki néhány egyedet a populációból;

alkalmazd rájuk a genetikus műveleteket;

értékeld ki az új egyedeket;

dobd el a legrosszabb egyedeket;

menj vissza 2-re.

Page 47: KERESÉS (SEARCH)

KERESÉS 47

ÖSSZEGZÉS – KERESÉSEK

Feladatmegfogalmazás: akciók, állapotok, célok Vak vagy informált keresés

az információ segíthet, de néha nehéz megszerezni Tulajdonságok: teljesség, optimalitás, idő- és memóriaigény Mikor mit érdemes használni?

szélességi keresés: csak ha kicsi az elágazási tényező (ritka eset)

mélységi keresés: csak ha a reménytelen ágak nem lehetnek túl hosszúak

legjobb általános vak keresés: iteratív mélyítés

előretekintő keresés, A* keresés: fontos a cél távolságának becslése

iteratív javító algoritmusok:jó távolságbecslés

nem szabad lokális optimumokban leragadni

Page 48: KERESÉS (SEARCH)

KERESÉS 48

ÖSSZEGZÉS – KERESÉSEK

Meta-szintű döntések: reprezentáció és módszer választás Nyitott kérdések

minden operátor (akció) egyformán fontos

nem lehet darabokból összerakni egy utat

többet kell tudni (és reprezentálni) az akciókról; előfeltételeikről, hatásaikról, és kölcsönhatásaikról

Page 49: KERESÉS (SEARCH)

KÉTSZEMÉLYES JÁTÉKOK (ADVERSARY

SEARCH)

Page 50: KERESÉS (SEARCH)

KERESÉS 50

JÁTÉKFÁK KERESÉSE

Feltételezések: két játékos felváltva lép megadott szabályok szerint a játékosok teljes információjúak nincs szerepe a véletlennek, a szerencsének minden állásban véges számú lépés közül lehet

választani a játék véges számú lépésben befejeződik játszma végén egyik játékos nyer, másik veszít (lehet

döntetlen is)

sakk, malom, snóbli, bridzs, amőba, Othello, triel ???

cél: nyerés lehetőségének és módjának meghatározása (egyik játékos szempontjából)

Page 51: KERESÉS (SEARCH)

KERESÉS 51

JÁTÉKFÁK KERESÉSE játékfa:

csúcsok: állások (állapotok) élek: lépések (akciók) szintek (MIN, MAX)

játékfa tartalmazza az összes lehetséges játszmát (exponenciális) – teljes játékfa felépítése??

játszma: kezdőcsúcstól egy végcsúcsba vezető út a fán levelek értéke ismert közbenső csúcsok értékének

meghatározása

-1

1

1 1

1

1

1

1 1

1

-1

-1

1

-1

-1

-1

-1

-1

MAX

MIN

MAX

MIN

MAX

MIN

Page 52: KERESÉS (SEARCH)

KERESÉS 52

JÁTÉKFÁK KIÉRTÉKELÉSE MÉLYSÉGI KERESÉSSEL

a két játékos szempontjából különböző kiértékelés!

p

x

v

v

p

x

MIN v = min(v , v )p xp

induláskor: max node értéke , min node értéke p

x v

vp

x

MAXv = max(v , v )p p x

-1

1

1

1-1

-1

-1

-1

-1

jobb!!

Page 53: KERESÉS (SEARCH)

KERESÉS 53

MINIMAX ELJÁRÁS

módszer a soron következő játékos legjobb első lépésének kiválasztására (legnagyobb biztos előnyszerzés elve)

játékfa adott mélységű generálása terminális csúcsok értékeinek meghatározása a maximális, ill. minimális értékek fölfelé terjesztése

MAX

MIN

MAX

MIN0 9 6 7 4 8 -3 -1 -4 -2

9 8 -1

8 -1

8

Page 54: KERESÉS (SEARCH)

KERESÉS 54

(M, N) ÁTLAGOLÓ KIÉRTÉKELÉS

kiértékelő függvény megbízhatósága

tévedések mértékének csökkentése - átlagoló kiértékelés max szinten - m legnagyobb átlaga min szinten - n legkisebb átlaga

8

8 4

9

8 9

8

-2

8

9

?

5 7 -30 -1

MAX

MIN

MAX

MIN

?

Page 55: KERESÉS (SEARCH)

KERESÉS 55

STATIKUS KIÉRTÉKELŐ FÜGGVÉNY

probléma: a teljes fát felépíteni általában nem tudjuk

megoldás: bizonyos mértékig felépített fa leveleire becslés statikus kiértékelő függvény (az adott állástól függ)

sakk…

finomítások…

Othello…

w b

w b

Page 56: KERESÉS (SEARCH)

KERESÉS 56

JÁTÉKFA KIÉRTÉKELÉSE

konstans mélység szelektív keresés

kiértékelés kis mélységben

következő mélységű bővítés csak a jobb node-okra

(pl. sakkozó gondolkodása – feltehetően jó részeket mélyebben vizsgálja) – iteratív mélyítési technika

nyugalmi helyzet

taktikai részek - gyorsan változó értékek

+8 -7

+9

. . .

Page 57: KERESÉS (SEARCH)

KERESÉS 57

JÁTÉKFA KIÉRTÉKELÉSE

szinguláris kiterjesztés

horizont effektus

. . .

ellenfél egyik lépése sokkal jobb a többinél

"kikényszerített lépés"

nagyobb mélységben történõ kiértékelés

"gyilkos lépés"

Page 58: KERESÉS (SEARCH)

KERESÉS 58

ALFA-BÉTA ELJÁRÁS

minimax eljárás javított változata - kevesebb csúcs kiértékelése terminális csúcs azonnali kiértékelése

vjMIN

vjMAX

vj csak csökkenhet – felső korlát – eddigi legjobb lépés értéke

vj csak növekedhet – alsó korlát – eddigi legjobb lépés értéke

Page 59: KERESÉS (SEARCH)

KERESÉS 59

ALFA-BÉTA ELJÁRÁS

= 10

= 15

15

10

MAX

?

alfa - vágás

= 25

= 20

20

25

MINbéta - vágás

?

Page 60: KERESÉS (SEARCH)

KERESÉS 60

ALFA-BÉTA ELJÁRÁS

Alfa-béta eljárás hatékonyságának növelése: fa csúcsainak rendezése

cáfoló lépés alkalmazása (az ellenfél erős válaszlépését a következő lépésnél először próbáljuk ki)

jó lépések

Page 61: KERESÉS (SEARCH)

KERESÉS 61

ALFA-BÉTA ELJÁRÁS

= 18

= 15

15

18

MAXnincs alfa - vágás

= 8

= 18

= 15

15

18

MAX

nincs béta - vágás

8 = 10

= 8

= 18

= 15

15

18

MAX

8

10

vágás !

Page 62: KERESÉS (SEARCH)

KERESÉS 62

ALFA-BÉTA ELJÁRÁS

1

4

1 6

2 1 5 4 6 11 1

MAX

MIN

MAX

MIN

4 2

4

Minimax eljárással

Alfa-béta eljárással

1 4

= 4

= 4

= 5 = 1

= 4

= 2

= 2

4 < 5 vágás

2 < 4 vágás

5 2 1