Presentation is loading. Please wait.

Presentation is loading. Please wait.

Znalostné systémy Riešenie úloh a využívanie znalostí Ing. Štuller

Similar presentations


Presentation on theme: "Znalostné systémy Riešenie úloh a využívanie znalostí Ing. Štuller"— Presentation transcript:

1 Znalostné systémy Riešenie úloh a využívanie znalostí Ing. Štuller
ÚI AV ČR

2 Deklaratívne v. Procedurálne
Deklaratívne reprezentované poznatky (znalosti) popisujú stavy riešenia (tvoria BD produkčného systému) Procedurálne reprezentované poznatky (znalosti) popisujú prechody medzi stavmi (produkčné pravidlá) 2. marca 2006 Znalostné systémy

3 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ácia poč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. 2. marca 2006 Znalostné systémy

4 Riadiaci mechanizmus realizuje riadiacu stratégiu
algoritmus poskytujúci návod na výber pravidiel z konfliktnej množiny pravidiel v každom kroku prehľadávania stavového priestoru generuje strom podgraf orientovaného grafu reprezentujúceho stavový priestor 2. marca 2006 Znalostné systémy

5 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 2. marca 2006 Znalostné systémy

6 Riadiaca stratégia Úspešná: musí splňovať 2 základné vlastnosti:
viesť k prehľadávaniu spôsobovať pohyb zabraňovať cyklom (v postupnosti pravidiel) byť systematická 2. marca 2006 Znalostné systémy

7 Efektivita Systematické prehľadávanie (stavového priestoru) 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 2. marca 2006 Znalostné systémy

8 Algoritmy Informované: Neinformované: využívajú znalosti o danej úlohe
nevyužívajú … 2. marca 2006 Znalostné systémy

9 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) 2. marca 2006 Znalostné systémy

10 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 2. marca 2006 Znalostné systémy

11 Algoritmus Breadth-First Search
IF s C THEN END OPEN = {s0}, CLOSED = {} If OPEN = {} THEN END (riešenie neexistuje) Presuň „prvý stav“ skj z OPEN do CLOSED 2. marca 2006 Znalostné systémy

12 Breadth-First Search Expanduj stav skj :
IF no children OR all moved to CLOSED (všetci už boli expandovaní) THEN GOTO 3 WRITE all children of skj not in CLOSED at the end of OPEN IF any child of skj C THEN END ELSE GOTO 3 2. marca 2006 Znalostné systémy

13 Algoritmus Depth-First Search
IF s C THEN END OPEN = {s0} , CLOSED = {} IF OPEN = {} THEN END (riešenie neexistuje) Presuň „prvý stav“ skj z OPEN do CLOSED 2. marca 2006 Znalostné systémy

14 Depth-First Search - s obmedzením hĺbky
IF depth of skj = MAD (maximal allowed depth) THEN GOTO 3 Expanduj stav skj : IF no children OR all moved to CLOSED WRITE all children of skj not in CLOSED at the beginning of OPEN IF any child of skj C THEN END ELSE GOTO 3 2. marca 2006 Znalostné systémy

15 Vlastnosti Klad Zápor 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 2. marca 2006 Znalostné systémy

16 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 … 2. marca 2006 Znalostné systémy

17 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 2. marca 2006 Znalostné systémy

18 Prehľadávanie Do šírky Do hĺbky Do hĺbky: nižšie nároky na pamäť
Do šírky: nájde najkratšiu cestu 2. marca 2006 Znalostné systémy

19 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) 2. marca 2006 Znalostné systémy

20 Neinformované algoritmy
pre najjednoduchšie príklady nehľadajú optimálne riešenie metodologický základ 2. marca 2006 Znalostné systémy

21 Informované metódy Hodnotiaca funkcia f Intuícia:
každému uzlu stromu priradí jeho ohodnotenie Intuícia: Pokiaľ funkcia f dobre postihuje vlastnosti a charakter úlohy Budú expandované „najperspektívnejšie“ uzly Neprehľadávajú sa cesty, ktoré nevedú k cieľu 2. marca 2006 Znalostné systémy

22 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 iba práve expandovaný uzol 2. marca 2006 Znalostné systémy

23 Gradientný algoritmus
Koniec ~ dosiahnutý stav, ktorý má lepšie hodnotenie ako nasledovníci Globálny i lokálny extrém Lišiak 2. marca 2006 Znalostné systémy

24 Príklad: „Lišiak“ 1 2 3 8 4 7 6 5 2. marca 2006 Znalostné systémy

25 Precíznejšia formulácia
Usporiadanú dvojicu ( S, O ) nazveme stavový priestor a budeme značiť S = (S, O) Úloha U nad stavovým priestorom S je dvojica U = ( s0, C ), kde s0 je počiatočný stav C je množina cieľových stavov ( C S ) 2. marca 2006 Znalostné systémy

26 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 , hodnota f , názov rodiča > 2. marca 2006 Znalostné systémy

27 Algoritmus Best-First Search
IF s C THEN END OPEN = {s0} , CLOSED = {} IF OPEN = {} THEN END (riešenie neexistuje) Find { skm } : („stavy“) f ( skm ) = min { f (sk); sk OPEN } 2. marca 2006 Znalostné systémy

28 Best-First Search IF exists skm C THEN END Select one skn { skm }
Move skn from OPEN into CLOSED Expand skn For all children skd of { skn } compute f ( skd ) 2. marca 2006 Znalostné systémy

29 Best-First Search IF skd not in ( OPEN U CLOSED )
THEN Write skd in OPEN ELSE IF f (skd) > the existing one in (OPEN U CLOSED) THEN move skd to OPEN with new value f (skd) together with the change of parent GOTO 3 2. marca 2006 Znalostné systémy

30 Beam-Search with Aperture
~ Paprskové prehľadávanie s aperturou k Modifikácia: OPEN ma konečnú dĺžku k 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 2. marca 2006 Znalostné systémy

31 Hodnotiaca funkcia f f(s) = g(s) + h(s) :
g: cena optimálnej cesty z s0 do stavu s h: cena optimálnej cesty z s do c C ~ f(s) je cena prechodu z s0 do c cez s Algoritmus A g a h nepoznáme Odhady: g* a h* 2. marca 2006 Znalostné systémy

32 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 2. marca 2006 Znalostné systémy

33 Príklad: „Lišiak“ 1 2 3 8 4 7 6 5 2. marca 2006 Znalostné systémy

34 Príklad: „Lišiak“ h* : heuristická funkcia
Odhad vzdialenosti do cieľového stavu ~ počet kameňov, ktoré nie sú v cieľovej pozícii 2. marca 2006 Znalostné systémy

35 Príklad: „Lišiak“ 1 2 3 4 5 6 8 7 2. marca 2006 Znalostné systémy

36 Optimálna versus najkratšia cesta
Nech cena cesty nie je odvodená z počtu krokov (~ cena presunu nebude jednotková) Optimálna nemusí byť najkratšia … 2. marca 2006 Znalostné systémy

37 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* 2. marca 2006 Znalostné systémy

38 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. 2. marca 2006 Znalostné systémy

39 Charakteristiky g: aká dobrá / lacná bola cesta z s0 do s
h: ako rýchlo / lacno sa dá dostať z s do c g: pre optimalizáciu cesty (bez optimalizácie: g = 0) h = 0 Algoritmus Uniform-Cost Search (~ s rovnomernou cenou) 2. marca 2006 Znalostné systémy

40 Algoritmus Branch-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že s OPEN algoritmus využíva iba vlastné údaje o stavovom priestore (nemá žiadne dodané znalosti …) 2. marca 2006 Znalostné systémy

41 Algoritmus náhodného prehľadávania
g = 0, h = 0 2. marca 2006 Znalostné systémy

42 Algoritmus Best-First Search
IF s C THEN END OPEN = {s0}, CLOSED = {} IF OPEN = {} THEN END (riešenie neexistuje) Find { skm } : („stavy“) f (skm ) = min { f (sk); sk OPEN } 2. marca 2006 Znalostné systémy

43 Best-First Search IF exists skm C THEN END Select one skn { skm }
Move skn from OPEN into CLOSED Expand skn For all children skd of { skn } compute f (skd) 2. marca 2006 Znalostné systémy

44 Best-First Search IF skd not in ( OPEN U CLOSED )
THEN Write skd in OPEN ELSE IF f ( skd ) > the existing one in (OPEN U CLOSED) THEN move skd to OPEN with new value f (skd) together with the change of parent GOTO 3 2. marca 2006 Znalostné systémy

45 Algoritmus náhodného prehľadávania
g = 0 , h = 0 Krok 6 v Best-First Search 2. marca 2006 Znalostné systémy

46 g = 1 , h = 0 g(s) Hĺbka uzlu s Slepé prehľadávanie do šírky
2. marca 2006 Znalostné systémy


Download ppt "Znalostné systémy Riešenie úloh a využívanie znalostí Ing. Štuller"

Similar presentations


Ads by Google