znalostné systémy
DESCRIPTION
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 ) - PowerPoint PPT PresentationTRANSCRIPT
Znalostné systémy
Riešenie úloh a využívanie znalostí
Ing. Štuller
ÚI AV ČR
www.cs.cas.cz/~stuller
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á)
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é: využívajú znalosti o danej úlohe
Neinformované: 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
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
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
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
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
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
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 …
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 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
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 }
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 )
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
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 = 0Algoritmus Uniform-Cost Search
(~ s rovnomernou cenou)
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 …)
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
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 }
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)
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
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