Fakultet prometnih znanosti Diplomski studij · • Ontologija - proučavanje bitka ili suštine...
Transcript of Fakultet prometnih znanosti Diplomski studij · • Ontologija - proučavanje bitka ili suštine...
1.3.2009
1
Umjetna inteligencija
- Inteligentni sustavi -
47895/47816 UMINTELI
HG/2008-2009
Sveučilište u Zagrebu
Fakultet prometnih znanostiDiplomski studij
Uvod
• Računalni inteligentni ekspertni/stručni
sustav ima znanje o odreĎenom području
• Znanje je teorijsko i praktično razumijevanje
odreĎenog područja, skup trenutno poznatog
• Stručnjak posjeduje iskustvo, vještinu i
znanja kojima učinkovito rješava probleme iz
odreĎenog uskog područja
1.3.2009
2
Ontologije i baze znanja
• Ontologija - proučavanje bitka ili suštine značenja pojmova
• Opis klasa pojmova i njihovih odnosa
• Elementi u izgradnji ontologije:– Klase pojmova
– Obilježja pojmova koja opisuju značajke i atribute (uloge) pojmova
– Ograničenja na uporabu obilježja
• Ontologija sa skupom primjera pojmova tvori bazu znanja
• Programski alati za izgradnju ontologije– http://protege.stanford.edu/
Predstavljanje znanja
• Znanje: – Skup sistematiziranih sudova
– Prikuplja se percepcijom
• Znanje: Spoznaja + Logika
• Spoznaja – uključuje nepropozicijsko razumijevanje (percepcija, pamćenje,refleks) i propozicijsko razumijevanje te razumijevanje sudova o nepropozicijskom razumijevanju
• Logika – znanost koja proučava načela koja vode do ispravnih zaključaka
1.3.2009
3
Baza znanja
• Baza znanja – Apstraktni prikaz radne
okoline ili svijeta u kojem sustav treba
rješavati zadatke.
• Baza znanja:
– Znanje iz problemske domene
– Znanje o načinu kako se problem rješava
Baza znanja sadrži
– Objekte i relacije meĎu njima
– Činjenice i nesigurne činjenice
– Pravila svijeta i pravila odlučivanja
– Opise motivacije,cilja i stanja sustava
– Metode rješavanja problema i heuristiku
– Opis ponašanja
– Hipoteze
– Opise tipičnih situacija
– Procese
– Ograničenja
– Metaznanje
– Znanje iz problemske domene
– Znanje o načinu kako se problem rješava
1.3.2009
4
Prikaz znanja pravilima
• Stručnjak izražava znanje o načinu
rješavanje problema pravilima
– produkcijska pravila
• Primjer: Pravila za prijelaz preko
pješačkog prijelazaP1: AKO je na ‗semaforu‘ zeleno svjetlo
ONDA ‗kretanje‘ je prelazi
P2: AKO je na ‗semaforu‘ crveno svjetlo
ONDA ‗kretanje‘ je čekaj
Struktura pravila
• Struktura pravila:AKO <činjenica/uvjet/premisa>
ONDA <djelovanje/akcija/zaključak/posljedica>
– Pravilo se može sastojati od više uvjeta povezanih
veznikom ―i‖ (konjunkcija, and) ili veznikom ―ili‖
(disjunkcija, or). Najčešće u jednom pravilu jedna
vrsta veznika
– Zaključak se može sastojati od više akcija
• Pravilo daje opis kako riješiti problem
• Jednostavni oblik za sastavljanje i razumijevanje
1.3.2009
5
Struktura uvjeta/posljedice
• Uvjet/posljedica pravila se sastoji od:
– Objekta (lingvistički objekt) – semafor
– Vrijednosti objekta – {zeleno | crveno}
• Objekt i vrijednost su povezani operatorom
(je, jesu, nije, nisu, ...)
• Operator označava objekt i pridružuje mu
vrijednost
Operatori
• Operatori pridružuju lingvističkim objektima:
– Simboličke vrijednosti
– Numeričke vrijednosti
• Numerički operatori u uvjetnom dijelu pravilaAKO je starost_vozača > 80
I dioptrija > 3
ONDA vozačku_dozvolu‘ ne izdati
• Numerički operatori u posljedičnom dijelu pravila AKO je oporezivi_dio > 1000
ONDA pristojba = oporezivi_dio * 1.5 /100
1.3.2009
6
Upotreba pravila ...
• Pravila prikazuju relacije, preporuke, uredbe, planove postupanja i heuristike
• Prikaz relacijeAKO je rezervoar_goriva prazan
ONDA je vozilo u_mirovanju
• Prikaz preporukeAKO je godišnje_doba jesen
I nebo je oblačno
I prognoza je kiša
ONDA je savjet uzeti_kišobran
Upotreba pravila
• Prikaz uredbeAKO je vozilo u_mirovanju
I rezervoar_za_gorivo je prazan
ONDA uradi napuni_gorivo
• Prikaz plana postupanjaAKO je vozilo u_mirovanju
ONDA provjeri rezervoar_za_gorivo
korak1 je izveden
AKO je korak1 izveden
I rezervoar_za_gorivo je pun
ONDA djelovanje je provjeri_akumulator
korak2 je izveden
1.3.2009
7
Ekspertni sustav
• Računalo sa unesenim stručnim znanjem
– Ponaša se kao pametni suradnik
– Rješava probleme na način stručnjaka
– U bazu znanja uključuje novo znanje
– Prikazuje znanje u čitljivom i razumljivom
obliku
– Komunicira jednostavnim prirodnim jezikom
– Objašnjava postupak zakjučivanja
Jezgra ekspertnog sustava
• Osnova za razvoj ekspertnih sustava
zasnovanih na pravilima zaključivanja
• Ekspertni sustav bez baze znanja
• Inženjer znanja dodaje znanje u obliku
pravila i podatke potrebne za rješavanje
problema
1.3.2009
8
Model produkcijskog sustava
Kratkotrajna memorijaDugotrajna memorija
Produkcijska
pravila
Baza podataka
Činjenice
Zaključivanje
Zaključak
Čovjek rješava problem primjenom znanja (izraženog produkcijskim pravilima i
pohranjenog u dugotrajnoj memoriji) na zadani problem opisan karakterističnim
informacijama, činjenicama (pohranjenim u kratkotrajnoj memoriji).
Osnovna struktura ekspertnog sustava
Baza podatakaBaza znanja
Pravila: AKO-
ONDA
Baza podataka
Činjenice
Mehanizam zaključivanja
Mehanizam objašnjavanja
{Zašto?|Kako?}
Korisničko sučelje
Korisnik
1.3.2009
9
Struktura ekspertnog sustava
• Primjena na usko
specijalizirano područje
• Koristi se heuristički način
zaključivanja
• Jednostavno objašnjavanje
postupka zaključivanja
• Simboličko zaključivanje –
nenumerički podaci
• Približno zaključivanje sa
nepotpunim i neizvjesnim
podacima
Ekspertni sustav
Baza podatakaBaza znanja
Stručnjak
Vanjski programi
Pravila: AKO-
ONDA
Baza podataka
Činjenice
Mehanizam zaključivanja
Mehanizam objašnjavanja
Korisničko sučelje Razvojno sučelje
Inženjer znanjaKorisnik
Vanjska
baza
podataka
Razvoj ekspertnog sustavaRazvojni tim ekspertnog sustava
Voditelj projekta
Korisnik sustava
Inženjer znanja ProgramerStručnjak domene
Ekspertni sustav
1.3.2009
10
Usporedba stručnjaka, stručnog sustava i
računalnog programa
Stručnjak Stručni sustav Računalni program
Za rješavanje problema koristi
približno, heurističko znanje
Za rješavanje problema uskog
područja koristi znanje izraženo
pravilima i simboličko zaključivanje
Za rješavanje općenito numeričkih
problema koristi algoritme i podatke
Znanje u povezanom obliku Znanje odvojeno od mehanizma
obradbe znanja
Znanje nije odvojeno od upravljačke
strukture programa
Može detaljno objasniti slijed
zaključivanja
Prati slijed aktiviranja pravila i
objašnjava kako je dostignut odreĎeni
zaključak te zašto se zahtjevaju
odreĎeni podaci
Ne može objasniti kako je dostignut
odreĎeni rezultat i zašto je tražen
pojedini podatak
Koristi približno zaključivanje i može
zaključivati na temelju nepotpunih i
neizrazitih informacija
Omogućava približno zaključivanje
nepotpunim, neizvjesnim i neizrazitim
podacima
Rješava probleme za koje su postoje
potpuni i točni (egzaktni) podaci
Može pogriješiti kada su informacije
nepotpune ili neizrazite
Može pogriješiti kada su informacije
nepotpune ili neizrazite
Kada su podaci nepotpuni ili neizraziti
ne daje (ispravno) rješenje
Kakvoća rješavanja se povećava
učenjem i praksom. Postupak je
polagan, neučinkovit i skup
Kakvoća rješavanja se povećava
dodavanjem novih pravila ili
prilagodbom starih. Novoprikupljena
znanja jednostavno zamijenjuju
postojeća
Kakvoća rješavanja se povećava
promjenom programskog koda što
utječe na postojeće znanje u programu
i način njegove obrade. Promjene
dijelova programa je teško izvoditi
Zaključivanje ekspertnog sustava
• Znanje ekspertnog sustava izraženo:– skupom pravila AKO-ONDA i
– skupom činjenica o trenutnom stanju
• Mehanizam zaključivanja usporeĎuje pravila iz baze znanja sa trenutnim činjenicama iz baze podataka
• Kada se uvjetni dio pravila preklopi sa činjenicom, pravilo se aktivira i izvede se posljedični dio pravila
• Aktiviranje pravila, dodavanjem nove činjenice, mijenja bazu podataka
1.3.2009
11
Ciklus mehanizma zaključivanja
Činjenice
Pravilo: AKO A je
x ONDA B je y
Baza podataka
Baza znanja
Činjenica: A je x
Činjenica: B je y
Preklapanje Aktiviranje
A, B: Pojmovi ili stanja
Objašnjavanje postupka zaključivanja
• Preklapanje podatka sa AKO dijelom pravila
proizvodi sljedove (lance) zaključaka koji
pokazuju način primjene pravila u postupku
zaključivanja ekspertnog sustava –
objašnjenje zaključivanja
1.3.2009
12
Primjer zaključivanja
• Baza podataka početno sadrži činjenice A, B,
C, D i E, a baza znanja 3 pravila:P1: AKO je Y istinito, I D je istinito, ONDA je Z istinito
P2: AKO je X istinito, I je B istinito, I je E istinito, ONDA je Y istinito
P3: AKO je A istinito, ONDA je X istinito
A
Y
E
B
X
D
Z
A
Y
E
B
X
D
Z
A
Y
E
B
X
D
Z
A
Y
E
B
X
D
Z
Primjena pravila
• Mehanizam zaključivanja donosi odluku o
redoslijedu primjene (aktiviranju) pravila:
– Zaključivanje prema naprijed
• Induktivno zaključivanje
– Od pojedinačnog prema općem
– Zaključivanje prema natrag
• Deduktivno zaključivanje
– Od općeg prema pojedinačnom
1.3.2009
13
Zaključivanje prema naprijed
• Zaključivanje od poznatih podataka
– Zaključivanje pokretano podacima
– U svakom ciklusu se izvodi kao prvo najviše
pravilo u nizu
– Aktiviranjem pravilo dodaje podatak u bazu
podataka
– Svako pravilo se izvodi samo jednom
– Postupak aktiviranja pravila se zaustavlja
kada više nije moguće aktivirati pravila
Primjer zaključivanja prema naprijed ...
Prijepis pravila u konjunktivni oblik, dopuna s dva pravila
P1: Y & D → Z
P2: X & B & E → Y
P3: A → X
P4: C → L
P5: L & M → N
1.3.2009
14
Primjer zaključivanja prema naprijed
1. ciklus 2. ciklus 3. ciklus
Baza podataka Baza podataka Baza podataka Baza podataka
Baza znanja Baza znanja Baza znanja Baza znanja
Preklap. Aktivir. Preklap. Aktivir. Preklap. Aktivir. Preklap. Aktivir.
Primjena zaključivanja prema naprijed
• Ekspertni sustavi sadrže stotine pravila koja
proizvode nove valjane činjenice za nadopunu
baze podataka
• Prikupljanje podataka i zaključivanje koje uvijek ne
pridonosi opravdanju postavljenog cilja:
• Ako se želi zaključiti odreĎena činjenica, zaključivanje
prema naprijed je neučinkovito
• Pravilo P4: C → L ne doprinosi cilju, npr.utvrĎivanju Z
1.3.2009
15
Zaključivanje prema natrag
• Zaključivanje pokretano ciljem– Ekspertni sustav ima poznati cilj (hipotetičko rješenje) i
mehanizam zaključivanja pokušava pronaći činjenice kojima opravdava, dokazuje cilj
• Pretraživanjem baze znanja se traže pravila koja mogu imati traženo rješenje u svom akcijskom dijelu pravila
• Ako se pronaĎe takvo pravilo, a uvjetni dio pravila se preklapa sa činjenicama u bazi podataka, pravilo se aktivira i cilj je dokazan (rijedak slučaj)
• Zato se pravilo privremeno pohranjuje u privremenu memoriju (složnik) i postavlja novi cilj, podcilj
• Pretraživanjem baze znanja se traže pravila koja mogu dokazati podcilj
• Postupak pohrane pravila se ponavlja sve dok više nema pravila kojima bi se dokazao trenutni podcilj
Primjer zaključivanja prema natrag ...
Cilj: Z Podcilj: Y Podcilj: X
Baza podataka Baza podataka Baza podataka
Baza znanja Baza znanja Baza znanja
1. prolaz 3. prolaz 2. prolaz
1.3.2009
16
Primjer zaključivanja prema natrag
Baza podataka Baza podataka Baza podataka
4. prolaz 6. prolaz 5. prolaz
Podcilj: Y Podcilj: X Cilj: Z
Baza znanja Baza znanja Baza znanja
Preklap. Aktivir. Preklap. Aktivir. Preklap. Aktivir.
Programski alati za izgradnju
ekspertnih sustava
• Ljuska ekspertnih sustava
– Mehanizam zaključivanja
– Sučelja prema stručnjaku i korisniku
– Bez baze znanja
• Programski jezik Prolog
– http://www.swi-prolog.org/
• Programsko pomagalo za razvoj ekspertnih
sustava CLIPS (C Language Integrated Production
Systems)
– http://clipsrules.sourceforge.net/
1.3.2009
17
Programski jezik Prolog
• Programiranje u logici
– Deklarativno programiranje
• Prolog sustav sadrži mehanizam za obradu
činjenica i produkcijskih pravila
• Simbolička (nenumerička) obrada
– Rješavanje problema koji se mogu opisati
objektima i relacijama meĎu objektima
• Izgradnja baze podataka i baze znanja
Programiranje u Prolog-u /1
roditelj(K,L).
roditelj(K,D).
roditelj(T,D).
roditelj(D,V).
roditelj(D,G).
roditelj(V,R).
roditelj(V,S).
?- roditelj(X,R).
X = V
?- roditelj(K,Y).
?- roditelj(K,X),roditelj(X,Y).
?- roditelj(X,D),roditelj(X,L).
Činjenice baze podataka
Upiti na bazu podataka
1.3.2009
18
Programiranje u Prolog-u /2
spol(K, muski).
spol(T, zenski).
spol(L, zenski).
musko(X):-spol(X, muski).
zensko(X):-spol(X, zenski).
majka(X,Y):-zensko(X),roditelj(X,Y).
djed(X,Z):-musko(X),roditelj(X,Y),roditelj(Y,Z).
sestra(X,Y):-
zensko(X),
roditelj(Z,X),
roditelj(Z,Y),
\=(X,Y).
predak(X,Z):-roditelj(X,Z).
predak(X,Z):-roditelj(X,Y),predak(Y,Z)
Baza znanja – produkcijska praila
Prikaz znanja
a b c
d
e
d1 d2
d3
d4
d2
d5
grana(a, b, d1).
grana(a, d, d2).
grana(b, c, d2).
grana(c, d, d3).
grana(c, e, d4).
grana(d, e, d5).
Kolika je udaljenost između čvora c i e?
?- grana(c, e, X).
grana(c, e, d4).
Između kojih čvorova udaljenost iznosi
d2?
?- grana(X, Y, d2).
grana(a, d, d2),
grana(b, c, d2),
1.3.2009
19
Heurističko znanje – Pronalaženje puta
• Ako je čvor X = čvoru Y, onda je popis putova prazan, P = [].
• U protivnom slučaju, pronaći put P‘ koji počinje u čvoru Z do čvora Y i pronaći put od čvora X do čvora Z, izbjegavajući čvorove koji se već nalaze na putu P‘.
put(X, Y, P). clan(X, [X | _]).
put(X, Y, P) :- clan(X, [_ | Y]):-
grana(X, Z, U); clan(X, Y).
grana(Z, X, U)),
not(clan(Z, P)),
put(Z, Y, [Y | P]).
Primjena heurističkog znanja
a b c
d
e
d1 d2
d3
d4
d2
d5
Koji putevi povezuju čvorove a i b?
?- put(a, b, X).
[a, b]
[a, d, c, b]
[a, d, e, c, b]
....................
1.3.2009
20
Klasifikacija objekata
pravilo(1,kat,prometna_sign,cestovna_sign,[1 ,2]).
pravilo(2,kat,cestovna_sign,semafor,[3]).
praviIo(3,kat,prometna_sign,cestovna_sign,[4]).
..............
svojstvo(1, [nalazi,se,uz,krizanje]).
svojstvo(2,[sadrzi,crvenu,boju]).
svojstvo(3,[mijenja,boju]).
..............
Prometna signalizacija
Cestovna signalizacija Željeznička signalizacija
Semafor Znak zabrane Elektronički ureĎaj
Predsignal
Znak opasnosti
++++++++++++++++++++++++++++++++++++++++++
+ FPZ—Prolog V.000623 +
+ Prolog sustav za logicko modeliranje u +
+ tehnologiji prometa +
++++++++++++++++++++++++++++++++++++++++++
?— [emklap].
Ekspertni modul za klasifikaciju objekata u prometu
-------------------------------------------------------------------
Baza znanja ( Upisati naziv datoteke ili “nova” ): klap.
IZBOR AKTIVNOSTI
----------------------------
Pocetak konzultacija (k)
Pregled pravila (p)
Upravljanje bazom (u)
Kopiranje baze pravila u datoteku (d)
Izlaz iz programa (i)
Izbor? k
Naziv najopcenitije poznate kategorije: prometna_signalizacija
Da li je istina nalazi se in krizanje ? d
Da li je istina sadrzi crvenu boju ? i
ISPIS toka zakljucivanja UKLJUCEN
Da li je istina sadrzi crvenu boju ? d
Kategorija:
“cestovna_signalizacija” je podkategorija od “prometna_signalizacija” koristenjem ( Pravilo 3 )
Da li je istina mijenja boju ? zasto
Pokusava se ustanoviti ( Pravilo 2 ) da kategorija
“cestovna_signalizacija” ima podkategoriju “semafor”
I:
Utvrdjeno je ( Pravilo 1 ) da
kategorija “prometna_signalizacija” ima podkategoriju “cestovna_signelizacija” jer: —
nalazi se uz krizanje
i sadrzi crvenu boju.
I:
Utvrdjeno je “prometna_signa1izacija” kao pocetna kategorija konzultacije.
Rad ekspertnog sustava za klasifikaciju /1
1.3.2009
21
Da li je istina mijenja boju ? n
Da li je istina trokutastog je oblika ? n
Da li je istina kruznog je oblika ? n
Podkategorija “cestovna_signalizacija” se ne moze
utvrditi.
Da li zelite dodati novo klasifikacijsko pravilo? d
Koju podkategoriju kategorije “cestovna_signalizacija”
promatrate? stop
Molim upisati svojstva koja su istinita za “stop” da bi
predstavljala podkategoriju od “cestovna_signalizacija” (
zavrsiti s „.„ ) : sesterokutni oblik i ima bijeli rub.
Moze li se kategorija “stop” dalje kategorizirati? n
Pohranjena tvrdnja: sesterokutni oblik
Pohranjena tvrdnja: ima bijeli rub
Dodano pravilo:
Pravilo 21:
Kategorija “stop”
je podkategorija od “cestovna_signalizacija”
ako:
sesterokutni oblik
ima bijeli rub
Zakljucak:
Na temelju postojecih cinjenica se zakljucuje
da zakljucnu kategoriju od “prometna_signalizacija”
predstavlja “stop”.
KRAJ IZBORA
Pregled postojecih kategorija (k)
Pregled postojecih tvrdnji (t)
Pregled toka zakljucivanja (z)
Prikaz izbora (i)
Prestanak konzultacija (p)
Izbor? - z
Rad ekspertnog sustava za klasifikaciju /2
Utvrdjeno ( Pravilo 21 ) da kategorija
“cestovna_signalizacija” ima podkategoriju “stop”
Utvrdjeno ( Pravilo 1 ) da
kategorija “prornetna_signalizacija” irna podkategoriju “cestovna_signalizacija” jer: —
nalazi se uz krizanje
i sadrzi crvenu boju
Utvrdjeno je “prometna_signalizacija” kao pocetna kategorija konzultacije.
Izbor? t
Utvrdjene tvrdnje su:
nalazi se uz krizanje
nije istina mijenja boju
nije istina trokutastog je oblika
nije istina kruznog je oblika
sesterokutni oblik
ima bijeli rub
Izbor? k
Kategorije su:
prometna_signalizacija stop cestovna_signalizacija
Izbor? p
IZBOR AKTIVNOSTI
----------------
Pocetak konzultacija (k)
Pregled pravila (p)
Upravljanje bazom (u)
Kopiranje baze pravila u datoteku (d)
Izlaz iz programa (i)
Izbor? k
Naziv najopcenitije poznate kategorije: prometna_signalizacija
Rad ekspertnog sustava za klasifikaciju /3
1.3.2009
22
Da li je istina nalazi se uz krizanje ? np
Da li je istina pored prolaze automobili ? np
Da li je istina nalazi se uz prugu ? d
Kategorija:
“zeljeznicka_signalizacija” je podkategorija od “prometna_signalizacija” koristenjem ( Pravilo 4 )
Da li je istina ima elektricno napajanje ? d
Kategorija:
“elektronicki_uredjaj” je podkategorija od “zeljeznicka_signalizacija” koristenjem ( Pravilo 5 )
Da li je istina sluzi za svjetlosnu signalizaciju ? n
Podkategorija “elektronicki_uredjaj” se ne moze utvrditi.
Razlog je:
nije poznato nalazi se uz krizanje
nije poznato pored prolaze autonobili
Zelite li dodati novo klasifikacijsko pravilo? d
Koju podkategoriju kategorije “elektronicki_uredjaj” promatrate? racunalo
Molim upisati svojstva koja su istinita za “racunalo” da bi predstavljala podkategoriju od
“elektronicki_uredjaj” ( zavrsiti s „.„) : nalazi se uz krizanje.
Moze li se kategorija “racunalo” daije kategorizirati? n
Svojstvo nalazi se uz krizanje
nije konzistentno s prethodno utvrdjenom tvrdnjom
nije poznato nalazi se uz krizanje
Pravilo nije prihvaceno.
Zelite li pokusati ponovo? d
Koju podkategoriju kategorije “elektronicki_uredjaj” promatrate? racunalo
Molim upisati svojstva koja su istinita za “racunalo” da bi predstavljala podkategoriju od
“elektronicki_uredjaj” ( zavrsiti s „.„ ): sluzi za prijenos podataka.
Rad ekspertnog sustava za klasifikaciju /4
Moze li se kategorija “racunalo” dalje kategorizirati? n
Pohranjena tvrdnja: sluzi za prijenos podataka
Dodano pravilo:
Pravilo 22:
Kategorija “racunalo”
je podkategorija ad “elektronicki_uredjaj”
ako:
sluzi za prijenos podataka
Zakljucak:
Na temelju postojecih cinjenica se zakljucuje
da zakljucnu kategoriju od “prometna_signalizacija” predstavlja “racunalo”.
KRAJ IZBORA
-----------
Pregled postojecih kategorija (k)
Pregled postojecih tvrdnji (t)
Pregled toka zakljucivanja (z)
Prikaz izbora (i)
Prestanak konzultacija (p)
Izbor? p
IZBOR AKTIVNOSTI
----------------
Pocetak konzultacija (k)
Pregled pravila (p)
Upravijanje bazon (u)
Kopiranje baze pravila u datoteku (d)
Izlaz iz programa (i)
Izbor? i
?- Rad ekspertnog sustava za klasifikaciju /5
1.3.2009
23
Ekspertni sustavi sa pravilima
• Durkin, J. (1994). Expert Systems Design and Development. Prentice Hall, Englewood Cliffs, NJ.
• Feigenbaum, L.A., Buchanan, B.G. and Lederberg, J. (1971). On generality and problem solving: a case study using the DENDRAL program, Machine Intelligence 6, B. Meltzer and D. Michie, eds, Edinburgh University Press, Edinburgh, Scotland, pp.165—190.
• Giarratano, J. and Riley, G. (1998). Expert Systems: Principles and Programming, 3rd edn. PWS Publishing Company, Boston.
• Negnevitsky, M. (1996). Crisis management in power systems: a knowledge based approach, Applications of Artificial Intelligence in Engineering XI, R.A. Adey, G. Rzevski and AK. Sunol, eds, Computational Mechanics Publications, Southampton, UK, pp.122—141.
• Newell, A. and Simon, HA. (1972). Human Problem Solving. Prentice Hall, Englewood Cliffs, NJ.
• Shirai, Y. and Tsuji, J. (1982). Artificial Intelligence: Concepts, Technologies and Applications. John Wiley, New York.
• Shortliffe, E.H. (1976). MYCIN: Computer-Based Medical Consultations. Elsevier Press, New York.
• Waterman, D.A. (1986). A Guide to Expert Systems. Addison-Wesley, Reading, MA.
• Waterman, D.A. and Hayes-Roth, F. (1978). An overview of pattern-directed inference systems, Pattern-Directed Inference Systems, D.A. Waterman and F. Hayes-Roth, eds, Academic Press, New York.