znalostné systémy

Post on 30-Dec-2015

36 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

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

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

top related