znalostné systémy

46
Znalostné systémy Riešenie úloh a využívanie znalostí Ing. Štuller ÚI AV ČR www.cs.cas.cz/~stuller

Upload: aileen-pierce

Post on 30-Dec-2015

36 views

Category:

Documents


2 download

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 Presentation

TRANSCRIPT

Page 1: Znalostné systémy

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

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

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

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

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

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

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

2. marca 2006 Znalostné systémy 8

Algoritmy

Informované: využívajú znalosti o danej úlohe

Neinformované: nevyužívajú …

Page 9: Znalostné systémy

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2. marca 2006 Znalostné systémy 24

Príklad: „Lišiak“

1 2 3

8 4

7 6 5

Page 25: Znalostné systémy

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

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

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

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

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

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

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

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

2. marca 2006 Znalostné systémy 33

Príklad: „Lišiak“

1 2 3

8 4

7 6 5

Page 34: Znalostné systémy

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

2. marca 2006 Znalostné systémy 35

Príklad: „Lišiak“

1 2 3

4 5 6

8 7

Page 36: Znalostné systémy

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

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

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

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

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

2. marca 2006 Znalostné systémy 41

Algoritmus náhodného prehľadávania

g = 0, h = 0

Page 42: Znalostné systémy

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

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

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

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

2. marca 2006 Znalostné systémy 46

g = 1 , h = 0

g(s) Hĺbka uzlu s Slepé prehľadávanie do šírky