Znalostné systémy
-
Upload
aileen-pierce -
Category
Documents
-
view
36 -
download
2
description
Transcript of Znalostné systémy
![Page 1: Znalostné systémy](https://reader030.fdocument.pub/reader030/viewer/2022020117/56812c0e550346895d907d31/html5/thumbnails/1.jpg)
Znalostné systémy
Riešenie úloh a využívanie znalostí
Ing. Štuller
ÚI AV ČR
www.cs.cas.cz/~stuller
![Page 2: Znalostné systémy](https://reader030.fdocument.pub/reader030/viewer/2022020117/56812c0e550346895d907d31/html5/thumbnails/2.jpg)
2. marca 2006 Znalostné systémy 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á)
![Page 3: Znalostné systémy](https://reader030.fdocument.pub/reader030/viewer/2022020117/56812c0e550346895d907d31/html5/thumbnails/3.jpg)
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.
![Page 4: Znalostné systémy](https://reader030.fdocument.pub/reader030/viewer/2022020117/56812c0e550346895d907d31/html5/thumbnails/4.jpg)
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
![Page 5: Znalostné systémy](https://reader030.fdocument.pub/reader030/viewer/2022020117/56812c0e550346895d907d31/html5/thumbnails/5.jpg)
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
![Page 6: Znalostné systémy](https://reader030.fdocument.pub/reader030/viewer/2022020117/56812c0e550346895d907d31/html5/thumbnails/6.jpg)
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á
![Page 7: Znalostné systémy](https://reader030.fdocument.pub/reader030/viewer/2022020117/56812c0e550346895d907d31/html5/thumbnails/7.jpg)
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
![Page 8: Znalostné systémy](https://reader030.fdocument.pub/reader030/viewer/2022020117/56812c0e550346895d907d31/html5/thumbnails/8.jpg)
2. marca 2006 Znalostné systémy 8
Algoritmy
Informované: využívajú znalosti o danej úlohe
Neinformované: nevyužívajú …
![Page 9: Znalostné systémy](https://reader030.fdocument.pub/reader030/viewer/2022020117/56812c0e550346895d907d31/html5/thumbnails/9.jpg)
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)
![Page 10: Znalostné systémy](https://reader030.fdocument.pub/reader030/viewer/2022020117/56812c0e550346895d907d31/html5/thumbnails/10.jpg)
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
![Page 11: Znalostné systémy](https://reader030.fdocument.pub/reader030/viewer/2022020117/56812c0e550346895d907d31/html5/thumbnails/11.jpg)
2. marca 2006 Znalostné systémy 11
Algoritmus Breadth-First Search
1. IF s0 C THEN END
2. OPEN = {s0}, CLOSED = {}
3. If OPEN = {} THEN END
(riešenie neexistuje)
4. Presuň „prvý stav“ skj
z OPEN do CLOSED
![Page 12: Znalostné systémy](https://reader030.fdocument.pub/reader030/viewer/2022020117/56812c0e550346895d907d31/html5/thumbnails/12.jpg)
2. marca 2006 Znalostné systémy 12
Breadth-First Search
5. Expanduj stav skj :
IF no children OR all moved to CLOSED
(všetci už boli expandovaní)
THEN GOTO 3
6. WRITE all children of skj not in CLOSED
at the end of OPEN
7. IF any child of skj C THEN END
ELSE GOTO 3
![Page 13: Znalostné systémy](https://reader030.fdocument.pub/reader030/viewer/2022020117/56812c0e550346895d907d31/html5/thumbnails/13.jpg)
2. marca 2006 Znalostné systémy 13
Algoritmus Depth-First Search
1. IF s0 C THEN END
2. OPEN = {s0} , CLOSED = {}
3. IF OPEN = {} THEN END
(riešenie neexistuje)
4. Presuň „prvý stav“ skj
z OPEN do CLOSED
![Page 14: Znalostné systémy](https://reader030.fdocument.pub/reader030/viewer/2022020117/56812c0e550346895d907d31/html5/thumbnails/14.jpg)
2. marca 2006 Znalostné systémy 14
Depth-First Search- s obmedzením hĺbky
5. IF depth of skj = MAD (maximal allowed depth)
THEN GOTO 3
6. Expanduj stav skj :
IF no children OR all moved to CLOSED
THEN GOTO 3
7. WRITE all children of skj not in CLOSED
at the beginning of OPEN
8. IF any child of skj C THEN END
ELSE GOTO 3
![Page 15: Znalostné systémy](https://reader030.fdocument.pub/reader030/viewer/2022020117/56812c0e550346895d907d31/html5/thumbnails/15.jpg)
2. marca 2006 Znalostné systémy 15
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
![Page 16: Znalostné systémy](https://reader030.fdocument.pub/reader030/viewer/2022020117/56812c0e550346895d907d31/html5/thumbnails/16.jpg)
2. marca 2006 Znalostné systémy 16
Príklad: prelievanie vody
2 nádoby väčšia A obsah a litrov menšiaB 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 …
![Page 17: Znalostné systémy](https://reader030.fdocument.pub/reader030/viewer/2022020117/56812c0e550346895d907d31/html5/thumbnails/17.jpg)
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
![Page 18: Znalostné systémy](https://reader030.fdocument.pub/reader030/viewer/2022020117/56812c0e550346895d907d31/html5/thumbnails/18.jpg)
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
![Page 19: Znalostné systémy](https://reader030.fdocument.pub/reader030/viewer/2022020117/56812c0e550346895d907d31/html5/thumbnails/19.jpg)
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)
![Page 20: Znalostné systémy](https://reader030.fdocument.pub/reader030/viewer/2022020117/56812c0e550346895d907d31/html5/thumbnails/20.jpg)
2. marca 2006 Znalostné systémy 20
Neinformované algoritmy
pre najjednoduchšie príklady nehľadajú optimálne riešenie metodologický základ
![Page 21: Znalostné systémy](https://reader030.fdocument.pub/reader030/viewer/2022020117/56812c0e550346895d907d31/html5/thumbnails/21.jpg)
2. marca 2006 Znalostné systémy 21
Informované metódy
Hodnotiaca funkcia f 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
![Page 22: Znalostné systémy](https://reader030.fdocument.pub/reader030/viewer/2022020117/56812c0e550346895d907d31/html5/thumbnails/22.jpg)
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
![Page 23: Znalostné systémy](https://reader030.fdocument.pub/reader030/viewer/2022020117/56812c0e550346895d907d31/html5/thumbnails/23.jpg)
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
![Page 24: Znalostné systémy](https://reader030.fdocument.pub/reader030/viewer/2022020117/56812c0e550346895d907d31/html5/thumbnails/24.jpg)
2. marca 2006 Znalostné systémy 24
Príklad: „Lišiak“
1 2 3
8 4
7 6 5
![Page 25: Znalostné systémy](https://reader030.fdocument.pub/reader030/viewer/2022020117/56812c0e550346895d907d31/html5/thumbnails/25.jpg)
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 )
![Page 26: Znalostné systémy](https://reader030.fdocument.pub/reader030/viewer/2022020117/56812c0e550346895d907d31/html5/thumbnails/26.jpg)
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 >
![Page 27: Znalostné systémy](https://reader030.fdocument.pub/reader030/viewer/2022020117/56812c0e550346895d907d31/html5/thumbnails/27.jpg)
2. marca 2006 Znalostné systémy 27
Algoritmus Best-First Search
1. IF s0 C THEN END
2. OPEN = {s0} , CLOSED = {}3. IF OPEN = {} THEN END
(riešenie neexistuje)
4. Find { skm } : („stavy“)
f ( skm ) = min { f (sk); sk OPEN }
![Page 28: Znalostné systémy](https://reader030.fdocument.pub/reader030/viewer/2022020117/56812c0e550346895d907d31/html5/thumbnails/28.jpg)
2. marca 2006 Znalostné systémy 28
Best-First Search
5. IF exists skm C THEN END
6. Select one skn { skm
}
7. Move skn from OPEN into CLOSED
8. Expand skn
9. For all children skd of { skn
}
compute f ( skd )
![Page 29: Znalostné systémy](https://reader030.fdocument.pub/reader030/viewer/2022020117/56812c0e550346895d907d31/html5/thumbnails/29.jpg)
2. marca 2006 Znalostné systémy 29
Best-First Search
10. 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
11. GOTO 3
![Page 30: Znalostné systémy](https://reader030.fdocument.pub/reader030/viewer/2022020117/56812c0e550346895d907d31/html5/thumbnails/30.jpg)
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
![Page 31: Znalostné systémy](https://reader030.fdocument.pub/reader030/viewer/2022020117/56812c0e550346895d907d31/html5/thumbnails/31.jpg)
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*
![Page 32: Znalostné systémy](https://reader030.fdocument.pub/reader030/viewer/2022020117/56812c0e550346895d907d31/html5/thumbnails/32.jpg)
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
![Page 33: Znalostné systémy](https://reader030.fdocument.pub/reader030/viewer/2022020117/56812c0e550346895d907d31/html5/thumbnails/33.jpg)
2. marca 2006 Znalostné systémy 33
Príklad: „Lišiak“
1 2 3
8 4
7 6 5
![Page 34: Znalostné systémy](https://reader030.fdocument.pub/reader030/viewer/2022020117/56812c0e550346895d907d31/html5/thumbnails/34.jpg)
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
![Page 35: Znalostné systémy](https://reader030.fdocument.pub/reader030/viewer/2022020117/56812c0e550346895d907d31/html5/thumbnails/35.jpg)
2. marca 2006 Znalostné systémy 35
Príklad: „Lišiak“
1 2 3
4 5 6
8 7
![Page 36: Znalostné systémy](https://reader030.fdocument.pub/reader030/viewer/2022020117/56812c0e550346895d907d31/html5/thumbnails/36.jpg)
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 …
![Page 37: Znalostné systémy](https://reader030.fdocument.pub/reader030/viewer/2022020117/56812c0e550346895d907d31/html5/thumbnails/37.jpg)
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*
![Page 38: Znalostné systémy](https://reader030.fdocument.pub/reader030/viewer/2022020117/56812c0e550346895d907d31/html5/thumbnails/38.jpg)
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.
![Page 39: Znalostné systémy](https://reader030.fdocument.pub/reader030/viewer/2022020117/56812c0e550346895d907d31/html5/thumbnails/39.jpg)
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 = 0Algoritmus Uniform-Cost Search
(~ s rovnomernou cenou)
![Page 40: Znalostné systémy](https://reader030.fdocument.pub/reader030/viewer/2022020117/56812c0e550346895d907d31/html5/thumbnails/40.jpg)
2. marca 2006 Znalostné systémy 40
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že s OPEN algoritmus využíva iba vlastné údaje o stavovom priestore
(nemá žiadne dodané znalosti …)
![Page 41: Znalostné systémy](https://reader030.fdocument.pub/reader030/viewer/2022020117/56812c0e550346895d907d31/html5/thumbnails/41.jpg)
2. marca 2006 Znalostné systémy 41
Algoritmus náhodného prehľadávania
g = 0, h = 0
![Page 42: Znalostné systémy](https://reader030.fdocument.pub/reader030/viewer/2022020117/56812c0e550346895d907d31/html5/thumbnails/42.jpg)
2. marca 2006 Znalostné systémy 42
Algoritmus Best-First Search
1. IF s0 C THEN END
2. OPEN = {s0}, CLOSED = {}3. IF OPEN = {} THEN END
(riešenie neexistuje)
4. Find { skm } : („stavy“)
f (skm ) = min { f (sk); sk OPEN }
![Page 43: Znalostné systémy](https://reader030.fdocument.pub/reader030/viewer/2022020117/56812c0e550346895d907d31/html5/thumbnails/43.jpg)
2. marca 2006 Znalostné systémy 43
Best-First Search
5. IF exists skm C THEN END
6. Select one skn { skm
}
7. Move skn from OPEN into CLOSED
8. Expand skn
9. For all children skd of { skn
}
compute f (skd)
![Page 44: Znalostné systémy](https://reader030.fdocument.pub/reader030/viewer/2022020117/56812c0e550346895d907d31/html5/thumbnails/44.jpg)
2. marca 2006 Znalostné systémy 44
Best-First Search
10. 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
11. GOTO 3
![Page 45: Znalostné systémy](https://reader030.fdocument.pub/reader030/viewer/2022020117/56812c0e550346895d907d31/html5/thumbnails/45.jpg)
2. marca 2006 Znalostné systémy 45
Algoritmus náhodného prehľadávania
g = 0 , h = 0 Krok 6 v Best-First Search
![Page 46: Znalostné systémy](https://reader030.fdocument.pub/reader030/viewer/2022020117/56812c0e550346895d907d31/html5/thumbnails/46.jpg)
2. marca 2006 Znalostné systémy 46
g = 1 , h = 0
g(s) Hĺbka uzlu s Slepé prehľadávanie do šírky