Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

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.

Hasonló előadás


Az előadások a következő témára: "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."— Előadás másolata:

1 KERESÉS (SEARCH)

2 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

3 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) KERESÉS

4 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

5 KERESÉS 5 ÚTKERESÉS VÁROSOK KÖZÖTT kezdeti állapot: Nyíregyházán vagyunk operátorok: utazás szomszédos városok között állapotok: egyes városokban vagyunk cél teszt: Fehérgyarmaton vagyunk már? költség: megtett út hossza optimális megoldás: minimális költségű út a kezdeti és a célállapot között

6 KERESÉS 6 MISSZIONÁRIUSOK ÉS KANNIBÁLOK PROBLÉMÁJA 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

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

8 KERESÉS 8 HANOI TORNYAI Hipotetikus megoldás Probléma redukció

9 KERESÉS 9 4 x 4-es PUZZLE 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ött céltól való távolság hány lépés van a célig (S) – nem tudjuk  becslés rossz helyen levő lapok száma (H1) Manhattan távolság (H2) H1, H2: alsó becslések H2  H1 H2 jobban informált becslés

10 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ábla célállapot – N királynő a táblán

11 KERESÉS 11 N KIRÁLYNŐ PROBLÉMA reprezentációs gráf – inkrementális megfogalmazás

12 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!

13 KERESÉS 13 KRIPTO-ARITMETIKA (BETŰSZÁMTAN) 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

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

15 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ételek célállapot  kezdőállapot (backward reasoning)

16 KERESÉS 16 CSELEKVÉSTERVEZÉS

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

18 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 ???

19 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 L={25} 2. n=25 3. L={15 (25), 35 (25), 24 (25), 26 (25)} 2. n=15 3. 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

20 VAK KERESÉSEK (BLIND SEARCH)

21 KERESÉS 21 SZÉLESSÉGI KERESÉS (BREADTH-FIRST SEARCH) A keresési fában mindig a legmagasabb szinten lévő csomópontok valamelyikét terjeszti ki A C B FED KJIH G ONM L open lista (L): A B C C D E D E F G E F G H I J F G H I J G H I J H I J K L I J K L M J K L M N O K L M N O

22 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: b d időigény: 1 + b + b b d  b d teljes optimális

23 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 C B FED K J IH G ONM L open lista (L): A B C D E C H I J E C M I J E C I J E C N O J E C

24 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: b d nem teljes (végtelen ág lehet) nem optimális

25 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: b l 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?

26 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) – b d teljes optimális

27 KERESÉS 27 ITERATÍV MÉLYÍTÉS (ITERATIVE DEEPENING) A C B FE D K J IH G ONM L open lista (L): l=0A l=1A B C C l=2A B C D E C E C C F G G open lista (L): l=3A B C D E C H I J E C I J E C J E C E C C F G G K L

28 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: = 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* * * = 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ó

29 KERESÉS 29 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 C B 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)

30 KERESÉS 30 EGYENLETES KERESÉS (UNIFORM-COST 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-hez, majd L rendezése a csomópontok növekvő költsége szerint. Az algoritmus tulajdonságai: memóriaigény: b d időigény: b d teljes optimális speciális változata: szélességi keresés (élek egységnyi költségűek)

31 KERESÉS 31 VAK KERESÉSI STRATÉGIÁK ÖSSZEHASONLÍTÁSA b: elágazási tényező d: megoldás mélysége l: mélységi korlát teljességidőigénymemóriaigényoptimalitás szélességiigenbdbd bdbd egyenletesigenbdbd bdbd mélységinembdbd b*dnem korlátozott mélységű ha d ≤ lblbl b*lnem iteratív mélyítés igenbdbd b*digen

32 KERESÉS 32 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.

33 HEURISZTIKUS KERESÉSEK (HEURISTIC SEARCH)

34 KERESÉS 34 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)

35 KERESÉS 35 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!

36 KERESÉS 36 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ő)

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

38 KERESÉS 38 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 Algoritmus 1.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

39 KERESÉS 39 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

40 KERESÉS 40 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 Algoritmus 1.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.

41 KERESÉS 41 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 nem optimális élek költsége a példában egységnyi

42 KERESÉS 42 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

43 KERESÉS 43 A ALGORITMUS h(n)f(n) nem feltétlenül optimális élek költsége a példában egységnyi

44 KERESÉS 44 A* ALGORITMUS olyan A algoritmus, melynek heurisztikus függvénye minden csúcsban alsó becslés  n: 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

45 KERESÉS 45 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

46 KERESÉS 46 A* ALGORITMUS Konzisztencia feltevés él költsége

47 KERESÉS 47 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

48 KERESÉS 48 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 

49 KERESÉS 49 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...

50 KERESÉS 50 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.

51 KERESÉS 51 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) N IDA*  N A* N: kiterjesztett node-ok száma

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

53 KERESÉS 53 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

54 KERESÉS 54 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)  z: jelenlegi - következő érték

55 KERESÉS 55 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ó

56 KERESÉS 56 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.

57 KERESÉS 57 Ö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

58 KERESÉS 58 Ö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

59 PROBLÉMA-REDUKCIÓ

60 KERESÉS 60 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??

61 KERESÉS 61 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é) 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

62 KERESÉS 62 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) Költség: 9 Költség: 8

63 KERESÉS 63 FELADATMEGOLDÁS PROBLÉMA-REDUKCIÓVAL alulról felfelé terjesztés bizonytalanságot terjesztjük felfelé (kivétel cél node: pontos érték) költsége: csomópontból a célhalmazba vezető részfa költsége pontos becsült

64 KERESÉS 64 FELADATMEGOLDÁS PROBLÉMA-REDUKCIÓVAL

65 KERESÉS 65 FELADATMEGOLDÁS PROBLÉMA- REDUKCIÓVAL

66 KÉTSZEMÉLYES JÁTÉKOK (ADVERSARY SEARCH)

67 KERESÉS 67 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)

68 KERESÉS 68 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

69 KERESÉS 69 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! induláskor: max node értéke , min node értéke 

70 KERESÉS 70 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

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

72 KERESÉS 72 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…

73 KERESÉS 73 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

74 KERESÉS 74 JÁTÉKFA KIÉRTÉKELÉSE szinguláris kiterjesztés horizont effektus

75 KERESÉS 75 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 v j csak csökkenhet  – felső korlát – eddigi legjobb lépés értéke v j csak növekedhet  – alsó korlát – eddigi legjobb lépés értéke

76 KERESÉS 76 ALFA-BÉTA ELJÁRÁS

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

78 KERESÉS 78 ALFA-BÉTA ELJÁRÁS

79 KERESÉS 79 ALFA-BÉTA ELJÁRÁS Minimax eljárással Alfa-béta eljárással 14  = 4  = 4  = 5  = 1  = 4  = 2  = 2 4 < 5  vágás 2 < 4  vágás 521


Letölteni ppt "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."

Hasonló előadás


Google Hirdetések