keresÉs (search)

80
KERESÉS (SEARCH)

Upload: aron

Post on 12-Jan-2016

34 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

ÚTKERESÉS VÁROSOK KÖZÖTT

kezdeti állapot: Nyíregyházán vagyunkoperátorok: utazás szomszédos városok közöttállapotok: egyes városokban vagyunkcél teszt: Fehérgyarmaton vagyunk már?költség: megtett út hosszaoptimális megoldás: minimális költségű út a kezdeti és a

célállapot között

Nyíregyháza

Záhony

Kisvárda

Vásárosnamény

RohodBaktaFehér- gyarmat

Nagyecsed

Máté- szalka

NyírbátorNagykálló

Nagyhalász

29

40

2959

347

27

31

15 27

2025

31

22 21

2529

3028

N y í r e g y h á z a1 ) k e z d e t i á l l a p o t

N y í r e g y h á z a2 ) a k e z d e t i á l l a p o tk i t e r j e s z t é s e u t á n

N a g y k á l l ó B a k t a K i s v á r d a N a g y h a l á s z

Page 6: KERESÉS (SEARCH)

KERESÉS 6

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 7: KERESÉS (SEARCH)

KERESÉS 7

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 8: KERESÉS (SEARCH)

KERESÉS 8

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 9: KERESÉS (SEARCH)

KERESÉS 9

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 10: KERESÉS (SEARCH)

KERESÉS 10

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 11: KERESÉS (SEARCH)

KERESÉS 11

N KIRÁLYNŐ PROBLÉMA

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

startcsúcs

célcsúcsok

Page 12: KERESÉS (SEARCH)

KERESÉS 12

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 13: KERESÉS (SEARCH)

KERESÉS 13

KRIPTO-ARITMETIKA (BETŰSZÁMTAN)

S E DNMO R E

O N E YM

reprezentáció állapot – értéklista, néhány betű számmal

helyettesítve akció – újabb betűhöz szám rendelése végállapot – minden betűnek számértéke van célállapot – kijön az összegútköltség??sorrend??hány megoldást keresünk?probléma redukciókorlátozás kielégítés

S E DNMO R E

O N E YM

S E DN1 O R E

O N E Y1

Page 14: KERESÉS (SEARCH)

KERESÉS 14

KERESZTREJTVÉNY REJTÉS

reprezentáció állapot – részben/teljesen kitöltött rejtvény akció – egy (értelmes) szó beírása végállapot - minden mezőn betű

sorrend??időben meghatározott visszalépés (cronological backtrack)függőségvezérelt visszalépés (dependency-directed backtrack)

LAOP

NTAL

B

AA

T

OO

S PL

L AA L Y

Y

N

PO

LAPMAP

.

.TAP

LAY..

TONAL ??

Page 15: KERESÉS (SEARCH)

KERESÉS 15

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 16: KERESÉS (SEARCH)

KERESÉS 16

CSELEKVÉSTERVEZÉS

Előrefelé haladókeresés

Hátrafelé haladókeresés

Kétirányú keresés

Page 17: KERESÉS (SEARCH)

KERESÉS 17

Á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 18: KERESÉS (SEARCH)

KERESÉS 18

Á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 19: KERESÉS (SEARCH)

KERESÉS 19

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 20: KERESÉS (SEARCH)

VAK KERESÉSEK (BLIND SEARCH)

Page 21: KERESÉS (SEARCH)

KERESÉS 21

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 22: KERESÉS (SEARCH)

KERESÉS 22

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 23: KERESÉS (SEARCH)

KERESÉS 23

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 24: KERESÉS (SEARCH)

KERESÉS 24

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 25: KERESÉS (SEARCH)

KERESÉS 25

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 26: KERESÉS (SEARCH)

KERESÉS 26

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 27: KERESÉS (SEARCH)

KERESÉS 27

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 28: KERESÉS (SEARCH)

KERESÉS 28

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 29: KERESÉS (SEARCH)

KERESÉS 29

ITERATÍV SZÉLESÍTÉS (ITERATIVE BROADENING)

mélységi keresés egyre növekvő szélességi korlát mellett

gyermek node-ok sorba állítása – heurisztika

(nem biztos, hogy lokálisan jó node globálisan is jó)

Tulajdonságai: memóriaigény : c*d, c – szélességi korlát időigény: bár redundáns (a fa „bal oldala” ismétlődik) –

cd

nem teljes nem optimális

Page 30: KERESÉS (SEARCH)

KERESÉS 30

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 31: KERESÉS (SEARCH)

KERESÉS 31

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 32: KERESÉS (SEARCH)

KERESÉS 32

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átc: szélessé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

iteratív szélesítés

nem cd c*d nem

Page 33: KERESÉS (SEARCH)

KERESÉS 33

KERESÉS GRÁFON

Egyazon csomóponthoz több út is vezethet. (pl. útkeresés) A keresés hatékonysága javítható, ha sikerül felfedezni, hogy egy

állapotba több út is vezet.

Ismétlődő állapotok kezelése: kiterjesztés tiltva a szülő felé az elődök felé az összes, már kiterjesztett csomópont felé.

Megéri a széleskörű ellenőrzés? Ha sok a hurok az állapottérben, akkor igen. A

B

C

D

A

B B

C C C C

Page 34: KERESÉS (SEARCH)

HEURISZTIKUS KERESÉSEK (HEURISTIC SEARCH)

Page 35: KERESÉS (SEARCH)

KERESÉS 35

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 36: KERESÉS (SEARCH)

KERESÉS 36

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 37: KERESÉS (SEARCH)

KERESÉS 37

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 38: KERESÉS (SEARCH)

KERESÉS 38

HEURISZTIKUS KERESÉSEK

keresett objektum költsége: megtett út költsége (ismert)

+ hátralevő út költsége (becsülni tudjuk)

f(n) = g(n) + h(n)

Milyen legyen a kiértékelő függvény? hatékonyan számítható ne becsülje túl a tényleges költséget

Problémák: a kiértékelés lehet igen drága (idő, memória) csak becslésen alapulhat (így félre is

vezethet)

L open lista:új régi

rendezés

Page 39: KERESÉS (SEARCH)

KERESÉS 39

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 40: KERESÉS (SEARCH)

KERESÉS 40

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 41: KERESÉS (SEARCH)

KERESÉS 41

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 42: KERESÉS (SEARCH)

KERESÉS 42

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 43: KERESÉS (SEARCH)

KERESÉS 43

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 44: KERESÉS (SEARCH)

KERESÉS 44

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 45: KERESÉS (SEARCH)

KERESÉS 45

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 46: KERESÉS (SEARCH)

KERESÉS 46

A* ALGORITMUS

Alkalmazása gráfon (DAG) egy keresési pontba többféleképpen is el lehet jutni open listába többször is bekerülhet ugyanaz a pont (kisebb

költséggel) cél: egy node-ba először a legkisebb költséggel érjünk

0 5

1 5

2 5

0 4

1 5 4

1 4

1 3

1 2

2 2

1 2

0 5

1 4

1 3

1 5

2 4

3 4

Page 47: KERESÉS (SEARCH)

KERESÉS 47

3 5

0 11

1 9

1 7 6 !!

5 8

9 9

3

2

2

4

3

3

! ! !

A* ALGORITMUS

Konzisztencia feltevés

3

2

2

4

3

3

n

m

h(m)

h(n)

egyenlõtlenség teljesül minden n, m csúcspárra

az elsõ út a legjobb

él költsége

3 5

0 11

1 9

1 6

2.5 5.5

9 9

3

2

2

4

3

3

O. K.

2

h=2.5 h=1

2

h=5 h=1

Page 48: KERESÉS (SEARCH)

KERESÉS 48

b

a

h(a)

h(b)

c

g(c)g(b)

s1 s2

most: g(b) + s1 < g(c) + s2 (1)

korábban: a --> b f(a) < f(b)

A* ALGORITMUS

ha minden ∆ egyenlőtlenség teljesül nincs újraállítás ha van újraállítás van sértett ∆ egyenlőtlenség

c: g(c) + s2 + h(a) < g(b) + h(b)

g(b) + s1 +h(a) < g(b) +h(b)

megsérül a Δ egyenlőtlenség

Page 49: KERESÉS (SEARCH)

KERESÉS 49

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 50: KERESÉS (SEARCH)

KERESÉS 50

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 51: KERESÉS (SEARCH)

KERESÉS 51

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 52: KERESÉS (SEARCH)

KERESÉS 52

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 53: KERESÉS (SEARCH)

KERESÉS 53

SMA* ALGORITMUS (KORLÁTOZOTT MEMÓRIÁJÚ A*)

korlátozott méretű fa a memóriában

+ információ a node-okról (emlékek tárolása)

A 12 (12)

B 5 (15)

J 0 (24)

C 5 (25) D 0 (20)

F 0 (30)

G 5 (13)

H 2 (18) I 0 (24)

K 5 (29)E 5 (35)

10

10 10

10 10

8

8

8 8

16

A 12 A 12

B 15

A 13

B 15

G 13

A 13

G 13

18 ooH

(15)A 24

(15)

G 24

I 24

o(o )

A 15

B 15

G 24

A

B 15

15 (24)

C 25 oo

B 20

20 (24)

oo( )

D 20

A

Page 54: KERESÉS (SEARCH)

KERESÉS 54

SMA* ALGORITMUS (KORLÁTOZOTT MEMÓRIÁJÚ A*)

f = g + h új gyerekek csökkenthetik, új végpontok növelhetik f

értékét legnagyobb f értékű node elfelejtése felfüggesztett node-ok értékének megőrzése ha a rendelkezésre álló memória elégséges a

legsekélyebb megoldás tárolására teljes ha a rendelkezésre álló memória elégséges a

legsekélyebb optimális megoldás tárolására optimális

Page 55: KERESÉS (SEARCH)

KERESÉS 55

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 56: KERESÉS (SEARCH)

KERESÉS 56

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 57: KERESÉS (SEARCH)

KERESÉS 57

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 58: KERESÉS (SEARCH)

KERESÉS 58

Ö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 59: KERESÉS (SEARCH)

KERESÉS 59

Ö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 60: KERESÉS (SEARCH)

PROBLÉMA-REDUKCIÓ

Page 61: KERESÉS (SEARCH)

KERESÉS 61

FELADATMEGOLDÁS PROBLÉMA-REDUKCIÓVAL

független részproblémák dekompozíció - egyszerűbb problémák ÉS-VAGY fa

csúcsok: problémaleírások (levelek – megoldható primitív problémák) élek: probléma részproblémává redukálása, élköteg – hiperél: egy csúcsból

induló, egy redukciós operátorhoz tartozó élköteg megoldás: részfa – hiperút (minden csúcsából 1 hiperél indul ki)

ÉS (AND) node megoldva, ha mindegyik részfeladat megoldott VAGY (OR) node megoldva, ha valamelyik részfeladat megoldott

ÉS/VAGY egymás utáni rétegei??

E

AB

D

C

G

FI

Z

H K

J

2

1

133

24

22

12 5

23 3

33

A - Z / F A - Z / G

A - Z

A - F F - Z A - G G - Z

VAGY

ÉS

Page 62: KERESÉS (SEARCH)

KERESÉS 62

FELADATMEGOLDÁS PROBLÉMA-REDUKCIÓVAL

ÉS-VAGY fa útközben generálódik hiperút költsége: utat alkotó hiperélek költsége

ÉS csúcsnál minden gyerek a megoldásban VAGY csúcsnál egy gyerek a megoldásban (több csak a költséget

növelné)

D

A

B

IH

FE

C

G1

1

1

32

1

6

2

3

minimális költségű fa ?? él költsége: alatta levő csomópont

elérésének értéke csomópont költsége: a

csomópontból a célcsúcs(halmaz)ba vezető út min. költsége - előre nem ismert becslés

Page 63: KERESÉS (SEARCH)

KERESÉS 63

FELADATMEGOLDÁS PROBLÉMA-REDUKCIÓVAL

hogy becsülhetjük a node-ok költségét ? heurisztikus keresés a költségeket alulról felfelé kell terjeszteni annál pontosabb, minél előrébb haladtunk a fa építésében (egy lépéssel előre gondolkodó keresés)

D

A

B

IH

FE

C

G1

1

1

32

1

6

2

3

D

A

B

H

E1

1

1

6

A

F

C

G1

2

2

3

HKöltség: 9 Költség: 8

Page 64: KERESÉS (SEARCH)

KERESÉS 64

FELADATMEGOLDÁS PROBLÉMA-REDUKCIÓVAL

alulról felfelé terjesztés

i ii

H(N) : min (C(N,N ) H(N )) i ii

H(N) : (C(N,N ) H(N ))

bizonytalanságot terjesztjük felfelé (kivétel cél node: pontos érték)

NCél H(N) = h(n)

költsége: csomópontból a célhalmazba vezető részfa költsége

pontos

becsült

N

N

C(N, N )

. . .

i

i

ORN

N . . .i

AND

Page 65: KERESÉS (SEARCH)

KERESÉS 65

FELADATMEGOLDÁS PROBLÉMA-REDUKCIÓVAL

F(N )

N

N . . .i

MF(N) := C(M, N) + H(N)

F(N) = C(M, N) + min(C(N, N ) + H(N ))i

i i

F(N) = C(M, N) + F(N )i i

i

OR

AND

F(start) := 0

Page 66: KERESÉS (SEARCH)

KERESÉS 66

FELADATMEGOLDÁS PROBLÉMA-REDUKCIÓVAL

D

A

B

IH

FE

C

G1

1

1

32

1

6

2

3 F(A) = 0

A

B C1 3

F(B) = 1 F(C) = 3

D

A

B

E1

1

1

C3

F(B) = 3F(C) = 3

F(E) = 7D

A

B

H

E

C

1

1

1

6

3

F(C) = 3F(B) = 9

A

F

C

G12

3

A

IH

F

C

G1

32

2

3

F(F) = 4F(C) = 8

Page 67: KERESÉS (SEARCH)

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

SEARCH)

Page 68: KERESÉS (SEARCH)

KERESÉS 68

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 69: KERESÉS (SEARCH)

KERESÉS 69

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 70: KERESÉS (SEARCH)

KERESÉS 70

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 71: KERESÉS (SEARCH)

KERESÉS 71

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 72: KERESÉS (SEARCH)

KERESÉS 72

(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 73: KERESÉS (SEARCH)

KERESÉS 73

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 74: KERESÉS (SEARCH)

KERESÉS 74

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 75: KERESÉS (SEARCH)

KERESÉS 75

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 76: KERESÉS (SEARCH)

KERESÉS 76

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 77: KERESÉS (SEARCH)

KERESÉS 77

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 78: KERESÉS (SEARCH)

KERESÉS 78

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 79: KERESÉS (SEARCH)

KERESÉS 79

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 80: KERESÉS (SEARCH)

KERESÉS 80

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