1 / 80

KERESÉS (SEARCH)

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

aron
Download Presentation

KERESÉS (SEARCH)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. KERESÉS (SEARCH)

  2. 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ó: • á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)

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

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

  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. 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. 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. HANOI TORNYAI Hipotetikus megoldás Probléma redukció

  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. 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. N KIRÁLYNŐ PROBLÉMA reprezentációs gráf – inkrementális megfogalmazás

  12. LEFEDÉSI PROBLÉMA "bamba módszer" : próbálgatáslehetsé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. 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. 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. 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. CSELEKVÉSTERVEZÉS

  17. ÁLTALÁNOS KERESÉSI ALGORITMUS • adott: • kezdeti állapot • célteszt/ célállapot • műveletek • keresési algoritmus: • Legyen L a kezdeti állapoto(ka)t tartalmazó lista. • Ha L üres, akkor leállás - a keresés sikertelen; egyébként legyen n egy csomópont L-ből. • 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. Á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. 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 • L={25} • n=25 • L={15 (25), 35 (25), 24 (25), 26 (25)} • n=15 • 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. 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 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 A C B D E F G H I J K L M N O

  22. SZÉLESSÉGI KERESÉS (BREADTH-FIRST SEARCH) Az általános keresési algoritmus módosítása: • n az első csomópont L-ből • 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

  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 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 C B D E F G H I K L J M N O

  24. MÉLYSÉGI KERESÉS (DEPTH-FIRST SEARCH) Az általános keresési algoritmus módosítása: • n az első csomópont L-ből • 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

  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?

  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

  27. ITERATÍV MÉLYÍTÉS (ITERATIVE DEEPENING) open lista (L): l=3 A 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 open lista (L): l=0 A l=1 A B C C l=2 A B C D E C E C C F G G A C B E F G D H I K L J M N O

  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ó

  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

  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 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) A 3 4 C B 3 3 2 4 D E F G 3 2 2 3 1 H I J K L 2 2 M N O

  31. EGYENLETES KERESÉS (UNIFORM-COST SEARCH) Az általános keresési algoritmus módosítása: • n az első csomópont L-ből • 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ális speciális változata: szélességi keresés (élek egységnyi költségűek)

  32. 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 c: szélességi korlát

  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.

  34. HEURISZTIKUS KERESÉSEK (HEURISTIC SEARCH)

  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)

  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!

  37. HEURISZTIKUS KERESÉSEK Heurisztikus kiértékelő függvény Célja: • a feladat megoldásával járó számításigény csökkentése • 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ő)

  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)

  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 Algoritmus • Legyen n a kezdeti állapot. • Ha n egy célállapot, akkor állj le és add vissza eredményként. • 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

  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

  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 Algoritmus • Legyen L a kezdeti állapotokat tartalmazó lista. • 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. • 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.

  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. élek költsége a példában egységnyi 6 2. 7 4 3. 4 nem optimális 2 4. 0 0 5.

  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

  44. A ALGORITMUS h(n) f(n) élek költsége a példában egységnyi 3 3 2 3 4 5 1 3 2 4 nem feltétlenül optimális 1 4 0 3 1 5 1 6

  45. 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). • 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* • 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

  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

  47. A* ALGORITMUS Konzisztencia feltevés él költsége

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

  49. A* ALGORITMUS A 3 (3) • L = {A(3)} • L = {B(3) D(3) C(4)} • L = {E(3) D(3) C(4)} • L = {D(3) C(4) K(6) J()} • L = {I(3) C(4) K(6) H(7) J()} • L = {C(4) N(5) K(6) H(7) J() O()} • L = {F(4) N(5) K(6) H(7) J() O() G()} • L = {N(5) K(6) L(6) H(7) J() O() G()} 1 1 2 B 2 (3) C 2 (4) D 2 (3) 1 1 4 1 1 E 1 (3) F 1 (4) G  H 2 (7) I 1 (3) 1 1 3 1 4 3 J  O  K 0 (6) L 0 (6) M 1 (7) N 0 (5) 1 3 P 0 (7) Q 0 (9)

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

More Related