keresÉs (search)
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 PresentationTRANSCRIPT
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
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
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
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
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)
?
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)
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)
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
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
KERESÉS 11
N KIRÁLYNŐ PROBLÉMA
reprezentációs gráf – inkrementális megfogalmazás
startcsúcs
célcsúcsok
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!
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
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 ??
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)
KERESÉS 16
CSELEKVÉSTERVEZÉS
Előrefelé haladókeresés
Hátrafelé haladókeresés
Kétirányú keresés
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.
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 ???
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. . .
. . .
VAK KERESÉSEK (BLIND 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
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
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
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
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?
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
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
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ó
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
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
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)
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
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
HEURISZTIKUS KERESÉSEK (HEURISTIC 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)
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!
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ő)
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
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)
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
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.
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
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
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
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)
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
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
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
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
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 . . .
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.
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
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
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
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
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
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.
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
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
PROBLÉMA-REDUKCIÓ
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
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
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
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
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
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
KÉTSZEMÉLYES JÁTÉKOK (ADVERSARY
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)
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
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!!
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
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
?
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
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
. . .
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"
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
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
?
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
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 !
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