8) Ekspertni sustavi Flashcards
Objasniti razliku izmedu ekspertnih sustava i drugih simboličkih pristupa UI
Cilj ranih sustava bilo je rješavanje općih problema. Ekspertni sustavi (sustavi temeljeni na znanju) oponašaju rasuđivanja stručnjaka u nekoj uskoj domeni.
Skicirati i objasniti arhitekturu ekspertnog sustava
dvije arhitekturne karakteristike:
1) Razlikovanje izmedu stroja za zaključivanje (engl. inference engine) i baze znanja (engl. knowledge base) - stroj za zaključivanje dohvaća pravila i činjenice iz baze znanja
2) Uporaba deklarativnog stila prikazivanja znanja
pravila su podatkovne strukture s vlastitom semantikom, a ne dio programskog koda u kojem je implementirano stroj za zaključivanje
Stroj za zaključivanje odvojen je od baze znanja ⇒ različite baze mogu se koristiti kao “plug-inovi”
Definirati ljusku ekspertnog sustava i navesti primjere
Ljuska ekspertnog sustava (engl. expert system shell): alat za
izgradnju ekspertnog sustava
I stroj za zaključivanje
I uredivač baze znanja
I korisničko sučelje i modul za objašnjavanje zaključka
Primjeri - CLIPS u C-u, JESS u Javi, PyCLIPS u Pythonu, PyKE - Prologom inspiriran
Objasniti i ilustrirati ulančavanje unaprijed i unazad te tipične primjene
ULANČAVANJE PRAVILA PREMA NAPRIJED
započinjanje sa znanim podacima i napredovanje
prema zaključku, za kad ima malo podataka i
puno mogućih rješenja
(za problemske domene koje uključuju sintezu:
za dizajniranje, planiranje, raspoređivanje, za nadzor i
dijagnostiku sustava za rad u stvarnim vremenu)
(engl. forward chaining (forchaining), data driven processing,
event driven, bottom-up, antecedent, pattern directed processing reasoning)
ULANČAVANJE PRAVILA UNATRAG
izbor mogućeg zaključka (hipoteza) i pokušaj
dokazivanja valjanosti hipoteze traženjem valjanih
potpora (dokaza, engl. evidence), za kad je malo
mogućih zaključaka/ciljeva i puno znanih podataka
Za probleme dijagnosticiranja, klasificiranja
(engl. backward chaining (backchaining), goal driven processing, goal driven, top-down, consequent, expectation driven processing)
Primijeniti ulančavanje unaprijed na zadani skup pravila i činjenica
uzimamo na skup konfliktnih pravila sva pravila koja mogu paliti s trenutno dostupnim informacijama, a iskorištavamo ono pravilo koje ima najmanji broj.
Primijeniti ulančavanje unazad na zadani skup pravila i ciljnu hipotezu
počinje sa željenim ciljem i praznom bazom činjenica
1) Oblikuj stog inicijalno sastavljen od najvažnijih ciljeva (hipoteza) koje treba dokazati
2) Na vrhu stoga je hipoteza koju treba dokazati. Ako je stog prazan, onda je KRAJ
3) Izdvoji sva pravila koja mogu zadovoljavati dani cilj (tj.
izdvoji sva pravila čija se DESNA strana podudara s ciljem)
4) Za svako od tih pravila učini redom:
a) Ako su sve premise pravila zadovoljene (svaki parametar premise ima vrijednost sadržanu u radnoj memoriji)
tada izvrši pravilo, tj. DESNU stranu tog pravila, tj. dodaj zaključke u radnu memoriju. Ne razmatraj više pravila za taj cilj - vrijednost cilja upravo je izvedena paljenjem tog pravila.
Ako je cilj bio vršni cilj tada ukloni cilj sa stoga & vrati se na korak 2.
Ako je cilj bio međucilj tada ukloni cilj sa stoga & vrati se privremeno suspendiranom cilju
b) Ako se vrijednost parametra nađena u memoriji ne podudara sa vrijednošću parametra premise onda ne izvršavaj to pravilo
c) Ako premise pravila nisu zadovoljene zato što jedna od
parametarskih vrijednosti te premise nije u radnoj memoriji,
tada potraži pravilo čija desna strana izvodi vrijednost tog parametra.
Ako barem jedno takvo pravilo postoji tada odredi taj parametar kao podcilj, tj. postavi taj parametar na vrh stoga & idi na korak 2
d) Ako korak (c) ne može naći pravilo koje izvodi potrebnu
vrijednost tekućeg parametra tada pitaj korisnika za tu vrijednost parametra & dodaj vrijednost u radnu memoriju.
Idi na korak 4a i razmatraj sljedeću premisu tekućeg
pravila
5. Ako su sva pravila koja mogu zadovoljavati tekući cilj
provjerena i ako ni jedno nije uspjelo izvesti vrijednost cilja
tada cilj ostaje neodređen. Makni cilj sa stoga i prijeđi na
korak 2