You are on page 1of 24

Ekspertni sustavi

predavanje 02

Ekspertni sustavi

dr. sc. Branko itko

(c) 2009 Slavomir Stankov, Branko itko

Sadraj
Koncept ekspertnog sustava Elementi ekspertnog sustava Sustavi zasnovani na pravilima Paradigme programiranja ekspertnih sustava

(c) 2009 Slavomir Stankov, Branko itko

Koncept ekspertnog sustava


Ekspertni sustavi su grana umjetne inteligencije koji koriste specijalizirano znanje za rjeavanje problema poput ljudskih strunjaka. Ekspertni sustav = sustav zasnovan na znanju = ekspertni sustav zasnovan na znanju
Baza znanja injenice Korisnik ekspertiza Mehanizam zakljuivanja Ekspertni sustav

Problemsko znanje Podruno znanje

Prednosti ekspertnih sustava


Smanjuju troak troak pruanja ekspertize korisnicima je smanjen Smanjuju opasnost mogu se koristiti u okruenjima opasnih po ovjeka Trajnost ne umara se za razliku od ljudskih strunjaka Viestruka ekspertiza mogu se kombinirati Poveana pouzdanost ekspertni sustavi mogu dati drugo miljenje Objanjavanje eksplicitno i detaljno pojanjavanje zakljuivanja Brz odgovor brz odgovor i odgovor u realnom vremenu je ponekad presudan spreman, bez emocija, potpun odgovor u stresnim situacijama ljudski strunjak moe grijeiti inteligentni tutor mogu pomoi prilikom uenja i pouavanja (objanjavanjem zakljuivanja) inteligentna baza podataka optimizirati pristup podacima na inteligentan nain

Koncept ekspertnog sustava


Klasini ekspertni sustavi su zahtijevali upotrebu inenjera znanja
Baza znanja ekspertnog sustava eksplicitno dijalog

Inenjer znanja

Strunjak

Ogranienost dananjih ekspertnih sustava


nemaju uzrono znanje
imaju povrno znanje (esto heuristiko) nemaju duboko znanje

Elementi ekspertnog sustava


Komponente tipinog ekspertnog sustava
Korisniko suelje nain komuniciranja korisnika i ekspertnog sustava. Modul za objanjavanje pojanjava postupak zakljuivanja korisniku. Baza znanja baza pravila Radna memorija opa baza injenica za pravila. Mehanizam zakljuivanja vri zakljuivanje: odluivanje koje pravilo zadovoljava injenice, postavljanje prioriteta pravilima, izvravanje pravila. Agenda lista pravila s prioritetima, kreirana od strane mehanizma zakljuivanja. Modul za prikupljanje znanja za automatizirano unoenje znanja od strane korisnika.
Mehanizam zakljuivanja

Baza znanja (pravila)

Agenda

Radna memorija (injenice)

Modul za objanjavanje

Modul za prikupljanje znanja

Korisniko suelje

Elementi ekspertnog sustava


Korisniko suelje od jednostavnog tehnikog do sofisticiranog grafikog suelja i/ili suelja s prirodnim jezikom itd. Baza znanja se u pravilima zasnovanim ekspertnim sustavima zove memorija produkcija. Produkcija za dva pravila
svjetlo je crveno stani svjetlo je zeleno kreni

if-then oblik produkcije


Pravilo: zeleno-svjetlo IF svjetlo je zeleno THEN kreni Pravilo: crveno-svjetlo IF svjetlo je crveno THEN stani

Svako pravilo je identificirano nazivom Unutar IF bloka je uvjetni dio ili LHS (Left-side hand) pravila. Uvjetni dio sastoji se od uvjeta. Uvjet moe biti injenica ili uzorak injenice.

Unutar THEN bloka su posljedice ili RHS (Right-side hand) pravila. Posljedice se sastoje od akcija.

Elementi ekspertnog sustava


Mehanizam zakljuivanja sustava temeljenog na pravilima (rule-based system) ima 2 osnovne metode zakljuivanja:
ulanavanje unaprijed (forward chaining) od injenica prema cilju (zakljuku) ulanavanje unatrag (backward chaining) od pretpostavke do injenica

Aktivacija je pravilo iji su uvjeti zadovoljeni Vie aktivacija se nalaze u agendi mehanizma zakljuivanja.
tada mehanizam zakljuivanja mora odluiti koje pravilo e se izvriti.

Mehanizam zakljuivanja radi po ciklusima:


ciklus prepoznavanja ciklus izbora i izvravanja ciklus situacija-odgovor ciklus situacija-akcija

Elementi ekspertnog sustava


Rjeenje konflikta (ciklus izbora)
Ako ima vie aktivacija, onda izaberi onu s najveim prioritetom, inae izlaz.

Djelovanje (ciklus situacije-akcije)


Sekvencijalno izvravanje akcija RHS aktivacije. Brisanje aktivacije iz agende

Podudaranje (ciklus prepoznavanja)


Dodavanje u agendi akcija iji su LHS uvjeti zadovoljeni Brisanje aktivacija iz agende iji LHS uvjeti nisu zadovoljeni

Produkcijski sustavi
Ekspertni sustavi zasnovani na pravilima su popularna vrsta ekspertnih sustava jer:
imaju modularnu arhitekturu imaju modul za pojanjavanje imaju sline kognitivne karakteristike kao i ljudi

POST produkcijski sustav se koristio u simbolikoj matematikoj logici.


Post (1943) pokazao kako bilo koji matematiki ili logiki sustav moe biti opisan produkcijama. Post-ove produkcije koriste se i u lingvistici za definiranje gramatike jezika. Raunalni jezici su esto opisani u Backus-Naum formi (BNF) Ideja Post-ove produkcije je promjena ulaznog niza znakova u novi niz znakova
osoba ima temperaturu uzmi aspirin IF osoba ima temperaturu THEN uzmi aspirin IF osoba ima temperaturu AND temperatura vea od 38 THEN uzmi aspirin

Produkcijski sustavi
1. auto ne radi provjeri akumulator 2. auto ne radi provjeri gorivo 3. provjeri akumulator AND akumulator ne radi zamijeni akumulator 4. provjeri gorivo AND goriva nema napuni gorivo

Ako je ulazni niz znakova "auto ne radi" tada se ne zna hoe li pravilo 1. i 2. biti aktivirano. Nedostatak POST produkcijskog sustava je nedostatak strategije upravljanja.

Produkcijski sustavi
Markov algoritam
nudi kontrolu u produkcijskom sustavu ureeni skup produkcija

Markov algoritam zavrava ako


posljednja produkcija nije primjenjiva na ulazni niz znakova primjeni se produkcija koja zavrava s tokom

Primjer
produkcija: AB HIJ ulazni niz znakova: GABKAB izlazni niz znakova: GHIJKHIJ

specijalni znak ^ predstavlja brisanje znakova (prazni niz znakova);


npr. A ^ brie svako pojavljivanje znaka A u nizu znakova

mali znakovi se koriste kao varijable od jednog znaka


npr. AxB BxA mijenja poloaj od A i B

grka slova se koriste za oznaavanje privremenog (pomonog) znaka

Produkcijski sustav
Primjer Markov-og algoritma
1. xy yx 2. ^ 3. ^
pravilo 1 2 3 1 1 1 2 aktiviranost ne ne da da da ne da niz znakova ABC ABC ABC BAC BCA BCA BCA

Produkcijski sustav
Primjer ulanavanja unaprijed
sortiranje nizova znakova od a, b i c. pravila

1. ba ab 2. ca ac 3. cb bc

Pojasniti da se primjenjuje samo jedan put za razliku od Markov korak niz znakova konfliktni skup odabrano pravilo
0 1 2 3 4 5 6 cbaca cabca acbca acbac acabc aacbc aabcc 312 2 32 31 2 3 1 2 2 1 2 3

Produkcijski sustav
Primjer ulanavanja unatrag
od x doi do y pravila

1. sp wy 2. qs p 3. wr q

4. tu q 5. v s 6. x vrq

korak 0 1
2 3 4

niz znakova x xvrq


xvrqs xvrqsp xvrqspwy

konfliktni skup 6 65
652 6521

odabrano pravilo 6 5
2 1

Paradigme programiranja
Paradigme programiranja
proceduralna paradigma neproceduralna paradigma

Algoritam konaan niz elementarnih koraka koji vode rjeenju problema. proceduralno programiranje prebacivanje algoritma u program neproceduralno programiranje programiranje od cilja, a sustav odreuje nain dostizanja cilja.

Proceduralna paradigma
Imperativno programiranje
eksplicitno nizanje naredbi (odgovara von Neumann-ovoj arhitekturi raunala) "top-down" pristup pogodno za razvoj ljuski ekspertnih sustava nije pogodno za programiranje umjetne inteligencije kombiniranje jednostavnih funkcija radi dobivanja sloenijih funkcija "bottom-up" pristup nije pogodno za razboj ljuski ekspertnih sustava pogodno za programiranje umjetne inteligencije
proceduralni jezici

Funkcijsko programiranje

imperativni

funkcijski

ADA

Pascal

LISP

APL

Proceduralna paradigma
Funkcijski jezici se temelje na funkciji f:XY Primjer
f(x)+(2*f(x)) ima za rezultat 3*f(x) u funkcijskom jeziku f(x) + (2*f(x)) nee biti jednaka 3*f(x) ako se parametar x prenosi po adresi i promjeni se tijekom izvoenja funkcije f

Funkcijski jezici imaju 5 osnovnih vrsta elemenata:


objekte podataka primitivne funkcije za rad nad objektima podataka funkcijske forme sinteza funkcija u novu funkciju aplikacijske operacije nad funkcijama koje vraaju vrijednost nazivanje procedura za identifikaciju novih funkcija

LISP (LISt Processing) - objekti podataka su simboli (liste ili atomi) APL (A Programming Language) - objekti podataka su polja

Neproceduralna paradigma
Deklarativna paradigma odvaja cilj od metoda za dostizanje cilja Objektno-orijentirana paradigma je djelomino imperativna i deklarativna
podaci se tretiraju kao objekti i dodaju im se operativna svojstva

neproceduralni jezici

deklarativni objektnoorijentirani SmallTalk C++ zasnovani na pravilima CLIPS ART OPS5 zasnovani na okvirima KEE

nedeklarativni zasnovani na indukciji Umjetne neuronske mree

logiki

PROLOG

Neproceduralna paradigma
Logiko programiranje
1956 Newel & Simon razvili Logic Theorist (dokazivanje matematikih teorema) General Problem Solver (GPS) dizajniran za rjeavanje bilo kojih logikih problema GPS prvi jasno odvojio podruno znanje (domain knowledge) od problemskog znanja (problem knowledge) 1985 Kowalski pokazao kako je raunanje poseban oblik mehanike logike dedukcije
primjenom ulanavanja unazad na izjave oblika "zakljuak ako uvjeti" (Hornove klauzule) se omoguilo dokazivanje teorema

1972 Kowalski stvorio PROLOG (PROgramming LOGic) logiko programiranje s ulanavanjem unatrag nad Hornovim klauzulama.

Neproceduralna paradigma
Ulanavanjem unatrag se moe prikazati deklarativno znanje i kontrolirati proces zakljuivanja Primjer deklarativnog znanja
Svi ljudi su smrtni Sokrat je ovjek

Hornova klauzula
netko je smrtan ako je netko ovjek Sokrat je ovjek ako je istina

zakljuivanje znanje

PROLOG je vie od jezika jer posjeduje:


mehanizam zakljuivanja bazu podataka (za injenice i pravila) prepoznavanje uzoraka zvano unifikacija mehanizam praenja unatrag (backtracking)

Primjer.
Moe kupiti gorivo ako ima gotovinu ili ima kreditnu karticu
prvi podcilj ulanavanjem unatrag se trai injenica koja vodi podcilju drugi podcilj praenjem unatrag se vraa na podcilj

Neproceduralna paradigma
Pravilo
A B C

se moe prikazati u Hornovoj klauzuli


A B C

Neproceduralna paradigma
Nedeklarativno programiranje
induktivno programiranje program ui po primjerima

Umjetne neuronske mree


Problem velikog skupa podataka brzo rjeiv pomou neuronskih mrea

Primjer: problem trgovakog putnika


broj_ruta = (broj_gradova-1)! s poveanjem broja grafova dolazi do kombinatorne eksplozije za 10 gradova ima 9! = 362880 ruta za 30 gradova ima 30! = 8.8*1030 ruta ako CPU za 1 sat rjeava 30 gradova onda za 30 sati e rijeiti 31 grad, za 330 sati -> 32 grada neuronske mree rjeavaju jednakom brzinom 10 gradova kao i 30 gradova
broj gradova 1 2 3 4 rute 1 1-2-1 1-2-3-1 1-3-2-1 1-2-3-4-1 1-2-4-3-1 1-3-2-4-1 1-3-4-2-1 1-4-2-3-1 1-4-3-2-1

Neproceduralna paradigma
X1 ulaz za uenje kod upotrebe

X2 ulaz ... Neuron izlaz

Skriveni sloj
Xn

Ulazni sloj
ulaz za uenje

Neuron

Izlazni sloj

Slojevi neuronske mree