460 likes | 635 Views
Znalostné systémy. Riešenie úloh a využívanie znalostí Ing. Štuller ÚI AV ČR www.cs.cas.cz/~stuller. Deklaratívne v. Procedurálne. Deklaratívne reprezentované poznatky (znalosti) popisujú stavy riešenia (tvoria BD produkčného systému )
E N D
Znalostné systémy Riešenie úloh a využívanie znalostí Ing. Štuller ÚI AV ČR www.cs.cas.cz/~stuller
Deklaratívne v. Procedurálne • Deklaratívnereprezentované poznatky (znalosti) popisujú stavy riešenia (tvoria BDprodukčného systému) • Procedurálnereprezentované poznatky (znalosti) popisujú prechody medzi stavmi (produkčné pravidlá) Znalostné systémy
Prehľadávanie • Stavová reprezentácia úloh je teoretickým, prípadne metodickým, základom väčšiny metód a technik UI • Úloha: ~ transformáciapočiatočného stavu do požadovaného postupnosťou operácií • Riešenie konkrétneho problému: kombinácia • klasických algoritmov a • prehľadávania. Znalostné systémy
Riadiaci mechanizmus realizuje riadiacu stratégiu • algoritmus poskytujúci návod na výber pravidiel z konfliktnej množiny pravidielv každom kroku prehľadávania stavového priestoru • generujestrom • podgraf orientovaného grafu reprezentujúceho stavový priestor Znalostné systémy
Priamy režim (~ priame riadenie) • Začiatok: generuje sa a expanduje počiatočný uzol Expanzia uzlu: nájdenie množiny všetkých možných bezprostredne nasledujúcich uzlov • Následne: expandovanie niektorých užnájdených uzlov • Koniec: nájdenie cieľového uzla Znalostné systémy
Riadiaca stratégia Úspešná: musí splňovať2základné vlastnosti: • viesť k prehľadávaniu • spôsobovať pohyb • zabraňovať cyklom (v postupnosti pravidiel) • byť systematická Znalostné systémy
Efektivita Systematické prehľadávanie (stavovéhopriestoru) môže byť veľmi neefektívne (zbytočne sa môže prehľadávať značná časť stavového priestoru, ktorá nevedie k cieľu) • Možné obmedziťvyužitím znalostío riešenom probléme • Pokiaľ majú empirický charakter:heuristiky Znalostné systémy
Algoritmy • Informované: • využívajú znalosti o danej úlohe • Neinformované: • nevyužívajú … Znalostné systémy
Neinformované metódy prehľadávania ~ Slepé prehľadávanie • do šírky • do hĺbky (Hĺbka stromu: počet hrán na ceste od počiatočného uzlu k danému uzlu) Znalostné systémy
Slepé prehľadávanie do šírky • Začiatok expanduje sa uzol s minimálnou hĺbkou • Zaveďme dva zoznamy: • OPEN • zoznam neexpandovaných stavov • CLOSED • zoznam expandovaných stavov Znalostné systémy
Algoritmus Breadth-First Search • IF s0 C THEN END • OPEN = {s0}, CLOSED = {} • If OPEN = {} THEN END (riešenie neexistuje) • Presuň „prvý stav“ skj z OPEN do CLOSED Znalostné systémy
Breadth-First Search • Expandujstav skj : IF no childrenOR all moved toCLOSED (všetci už boli expandovaní) THEN GOTO 3 • WRITE all children of skj not inCLOSED at the endof OPEN • IF any child of skj C THEN END ELSE GOTO 3 Znalostné systémy
Algoritmus Depth-First Search • IF s0 C THEN END • OPEN = {s0}, CLOSED = {} • IF OPEN = {} THEN END (riešenie neexistuje) • Presuň „prvý stav“ skj z OPEN do CLOSED Znalostné systémy
Depth-First Search- s obmedzením hĺbky • IF depth of skj= MAD(maximal allowed depth) THEN GOTO 3 • Expandujstav skj : IF no childrenOR all moved toCLOSED THEN GOTO 3 • WRITE all children of skj not inCLOSED at the beginningof OPEN • IF any child of skj C THEN END ELSE GOTO 3 Znalostné systémy
Vlastnosti • Klad • Slepé prehľadávanie je úplné • Pokiaľ existuje cesta k cieľu, bude vždy nájdená • Zápor • Môže byť expandovaný neúmerne väčší počet uzlov, než je potrebné k riešeniu Znalostné systémy
Príklad: prelievanie vody • 2 nádoby • väčšia A obsah a litrov • menšia B obsah b litrov • Počiatočný stav: obidve prázdne • Cieľ: A prázdna, B nech má 2(a-b) litrov • Stav: (cA, cB), (0,0) -> (0, 2(a-b)) • Prechody: • vyliať, • naplniť a • preliať z … do … Znalostné systémy
Produkčné pravidlá • P1: cA > 0 -> vylej A • P2: cB > 0 -> vylej B • P2: cA < a -> naplň A • P4: cB < b -> naplň B • P5: cA > 0, cB < b ->prelej z A do B • P6:cA < a, cB > 0 -> prelej z B do A Znalostné systémy
Prehľadávanie • Do šírky • Do hĺbky • Do hĺbky: nižšie nároky na pamäť • Do šírky: nájde najkratšiu cestu Znalostné systémy
Algoritmus DFID • Depth-first iterative deepening • Začiatok: úplné prehľadávanie do hĺbky • Po každej iterácii rastie povolená hĺbka • Prvé nájdené riešenie je optimálne (v zmysle najkratšej cesty) Znalostné systémy
Neinformované algoritmy • pre najjednoduchšie príklady • nehľadajú optimálne riešenie • metodologický základ Znalostné systémy
Informované metódy • Hodnotiaca funkciaf • každému uzlu stromu priradí jeho ohodnotenie • Intuícia: • Pokiaľ funkcia fdobre postihuje vlastnosti a charakter úlohy • Budú expandované „najperspektívnejšie“ uzly • Neprehľadávajúsa cesty, ktoré nevedú k cieľu Znalostné systémy
Gradientný algoritmus • (Hill-climbing algorithm) • Expanduje uzol, ktorý bol vyhodnotený pomocou hodnotiacej funkcie ako najlepší • Vyhodnocuje jeho nasledovníkov • Rodič aj súrodenci sú ihneď zabudnutí • Uchováva si v pamäti ibapráve expandovaný uzol Znalostné systémy
Gradientný algoritmus • Koniec ~ dosiahnutý stav, ktorý má lepšie hodnotenie ako nasledovníci • Globálny i lokálnyextrém • Lišiak Znalostné systémy
Príklad: „Lišiak“ Znalostné systémy
Precíznejšia formulácia • Usporiadanú dvojicu (S, O) nazveme stavový priestora budeme značiťS = (S, O) • ÚlohaU nad stavovým priestorom S je dvojica U = ( s0, C), kde • s0je počiatočný stav • C je množina cieľovýchstavov (C S) Znalostné systémy
Algoritmus Best-First Search ~ Algoritmus usporiadaného prehľadávania Rozšírenie gradientného algoritmu o pamäť: • OPEN a CLOSED • prvky sú trojice: < názov uzlu, hodnotaf, názov rodiča > Znalostné systémy
Algoritmus Best-First Search • IF s0 C THEN END • OPEN = {s0}, CLOSED = {} • IFOPEN = {} THEN END (riešenie neexistuje) • Find{ skm } : („stavy“) f (skm ) = min {f (sk); skOPEN} Znalostné systémy
Best-First Search • IF existsskm CTHEN END • Select oneskn{ skm } • Moveskn from OPEN into CLOSED • Expandskn • For all children skd of { skn } computef (skd) Znalostné systémy
Best-First Search • IF skd not in ( OPEN U CLOSED ) THEN Writeskd in OPEN ELSE IF f (skd)> the existing one in (OPEN U CLOSED) THEN moveskd to OPEN • with new value f (skd)together • with the changeof parent • GOTO 3 Znalostné systémy
Beam-Search with Aperture ~ Paprskové prehľadávanie s aperturou k Modifikácia: • OPEN ma konečnú dĺžkuk • Do OPEN sa zapisujú novo expandované uzly iba ak majú lepšie ohodnotenie ako existujúce • Ak by ich bolo celkove viac ako k, najhoršie sa vyškrtávajúaž do splnenia tejto podmienky Znalostné systémy
Hodnotiaca funkcia f • f(s) = g(s) + h(s) : • g: cena optimálnej cestyz s0 do stavu s • h: cena optimálnejcesty z sdo c C ~ f(s) je cena prechoduz s0do c cez s • Algoritmus A • g a hnepoznáme • Odhady: g* a h* Znalostné systémy
f* • g* : minimálna známa cena z s0 do s • h* : odhad ceny z s do c • heuristická funkcia (nositeľ heuristickej informácie) • podstatná pre efektívne prehľadávanie Znalostné systémy
Príklad: „Lišiak“ Znalostné systémy
Príklad: „Lišiak“ • h*:heuristická funkcia • Odhadvzdialenosti do cieľového stavu ~ počet kameňov, ktoré nie sú v cieľovej pozícii Znalostné systémy
Príklad: „Lišiak“ Znalostné systémy
Optimálna versus najkratšia cesta • Nech cena cesty nie je odvodená z počtu krokov (~ cena presunu nebude jednotková) • Optimálnanemusí byť najkratšia … Znalostné systémy
Prípustnýalgoritmus prehľadávania ~ ak vždy nájde optimálnu cestu, pokiaľ táto existuje. • Platí: Ak 0 < h*(s) h(s), algoritmus A je prípustný • h* je prípustnáheuristická funkcia • Algoritmus A* Znalostné systémy
Vlastnosti • Čím je h*lepší(dolný) odhad h, tým sa prehľadáva menšiačasť stavového priestoru pri hľadaní optimálneho riešenia. • Ak h* = h, a existuje optimálne riešenie, algoritmus A* expanduje iba stavy na ceste k cieľovému riešeniu. Znalostné systémy
Charakteristiky • g: aká dobrá/lacná bola cesta z s0 do s • h: ako rýchlo/lacnosa dá dostať z s do c • g: pre optimalizáciucesty (bez optimalizácie: g = 0) • h = 0Algoritmus Uniform-Cost Search (~ s rovnomernou cenou) Znalostné systémy
AlgoritmusBranch-and-Bound ~ Algoritmus vetví a medzí Hľadá optimálnu cestu(minimálnu cenu) ~ Rozšírenýbest-first algoritmus (usporiadaného prehľadávania): • pamätá si cenu riešenia • pokračuje • uzly s vyššou cenou mažes OPEN • algoritmus využíva iba vlastné údaje o stavovom priestore (nemá žiadne dodané znalosti …) Znalostné systémy
Algoritmus náhodného prehľadávania • g = 0, h = 0 Znalostné systémy
Algoritmus Best-First Search • IF s0 C THEN END • OPEN = {s0},CLOSED = {} • IF OPEN = {} THEN END (riešenie neexistuje) • Find { skm } : („stavy“) f (skm ) = min {f (sk); skOPEN} Znalostné systémy
Best-First Search • IF existsskm CTHEN END • Select oneskn{ skm } • Movesknfrom OPEN into CLOSED • Expandskn • For all children skd of { skn } computef (skd) Znalostné systémy
Best-First Search • IF skd not in ( OPEN U CLOSED ) THEN Writeskd in OPEN ELSE IF f (skd)> the existing one in (OPEN UCLOSED) THEN moveskd to OPEN • with new value f (skd)together • with the changeof parent • GOTO 3 Znalostné systémy
Algoritmus náhodného prehľadávania • g = 0, h = 0 • Krok 6vBest-First Search Znalostné systémy
g = 1, h = 0 • g(s) • Hĺbka uzlus • Slepé prehľadávanie do šírky Znalostné systémy