Download presentation
Presentation is loading. Please wait.
Published byChrista Gerber Modified over 6 years ago
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.