Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
PROLOG(III DEO)
EKSPERTNI SISTEMI
Ekspertni sistemi su softverski proizvodi veštačke
inteligencije. Počev od ekspertnih sistema koji su se
razvili za medicinsku dijagnostiku iz sedamdesetih
godina, pa preko prvih ekspertnih sistema razvijenih u
oblastima geologije, elektronike, finansija, matematike
i obrazovanja, do danas su ekspertni sistemi osvojili
skoro sva polja ljudske aktivnosti.
Ekspertni sistemi obuhvataju znanja eksperata iz
neke oblasti i simuliraju funkciju čoveka, eksperta za
tu oblast. Osnovne komponente ekspertnih sistema su:
baza znanja, baza podataka, mehanizam
zaključivanja i korisnički interfejs.
EKSPERTNI SISTEMI
Mehanizam zaključivanja je irelevantan u odnosu naoblast za koju se projektuje ekspertni sistem.
U opštem slučaju zaključivanje može biti vođenociljem (unazad, povratno ulančavanje) ili vođenopodatkom (unapred, direktno ulančavanje).
Kod zaključivanja vođenog ciljem polazi se od zadatogcilja, pa se upotrebom zadatih pravila u smeru odzaključka (cilja) ka preduslovima ispituje da li suispunjene sve činjenice koje zahteva dati cilj.
Kod zaključivanja vođenog podatkom proces je obrnut; na osnovu pretpostavki upotrebom pravila u smeru od preduslova ka zaključcima određuju se svimogući zaključci, pa postoji mogućnosteksponencijalnog rasta prostora činjenica i "lutanja" u tom prostoru.
PROLOG-sistem primenjuje zaključivanje vođeno
ciljem. Početkom osamdesetih godina razvijeni su
prvi ekspertni sistemi na programskom jeziku
PROLOG.
Do danas su pomoću njega izgrađeni mnogi
ekspertni sistemi za različite oblasti ljudskog
delovanja.
Poznatije među ekspertnim sistemima razvili su
Darvas i Hammond (za medicinu), Bundy i
Welham (za rešavanje jednačina), Sergot i Cory
(za zakonodavstvo), Swinson, Markusz i Darvas
(za arhitekturu i dizajn), Kriwaczek (za
finansijsku analizu i podršku odlučivanju).
Sledeći pojednostavljeni primeri ilustruju korišćenjePROLOG-a u projektovanju ekspertnih sistema. U navedenim primerima podaci su bili 100% pouzdani.
Međutim, u ekspertizi mogu da se jave i elementineizvesnosti. Naime, u praksi se često dešava dapojedine činjenice u radnoj bazi nisu apsolutno tačne, već važe sa određenim faktorima pouzdanosti. Semtoga, nepouzdanost se može pojaviti i u pravilima.
Zbog toga se svakom pravilu, odnosno njegovojposledici pridružuje faktor pouzdanosti izražen u procentima ili u celim brojevima, najčešće iz intervala-100, 100, pri čemu negativan faktor označavapouzdanost netačnosti posledice.
Pouzdanost zaključka za nepouzdane činjenice inepouzdana pravila ukoliko su činjenice, odnosnopravila međusobno nezavisna utvrđuje se premapravilima koja su navedena u literaturi.
Ukoliko postoji zavisnost među činjenicama ilipretpostavkama koriste se uslovne verovatnoće, Bajesova formula za izračunavanje uslovnihverovatnoća, rasplinuti (fuzzy) skupovi
Primer. Pretpostavlja se da se u bazi podataka
nalaze sledeće činjenice:
C1. Boki jede meso.
C2. Boki ima dlaku.
C3. Boki ima tamne pruge.
C4. Boki je oker boje.
C5. Toza ima oštre zube.
C6. Cica ima kanže.
C7. Cica ima oči unapred usmerene.
C8. Roza daje mleko.
C9. Ćira ima perje.
C10. Ćira leti.
C11. Koko nosi jaja.
C12. Moki ima tamne pege.
Neka se u bazi znanja nalaze pravila:
P1. Ako životinja ima dlaku ili životinja daje mleko, onda je životinja sisar.
P2. Ako životinja ima perje ili životinja leti i nosi jaja, onda je životinja ptica.
P3. Ako je životinja sisar i (životinja jede meso ili imaoštre zube i ima kandže i ima oči usmereneunapred), onda je životinja mesožder.
P4. Ako je životinja mesožder i oker je boje i ima tamnepege, onda je životinja leopard.
P5. Ako je životinja mesožder i oker je boje i ima tamnepruge, onda je
životinja tigar.
Želi se proveriti da li je tačna rečenica: "Boki je tigar".
Rešenje: Jezičke formulacije zamenjuju se zapisima:
Cilj C: tigar(boki)
Baza podataka:
C1. jedemeso(boki)
C2. imadlaku(boki)
C3. tamnepruge(boki)
C4. okerboje(boki)
C5. imaostrezube(toza).
C6. kandze(cica).
C7. imaociunapred(cica).
C8. dajemleko(roza).
C9. imaperje(cira).
C10. leti(cira).
C11. nosijaja(koko).
C12. tamnepege(moki).
Baza znanja:
P1. imadlaku(Z1) dajemleko(Z1) sisar(Z1)
P2. imaperje(Z1) (leti(Z1) nosijaja(Z1)) ptica(Z1)
P3. (sisar(Z1) jedemeso(Z1))
(sisar(Z1) imaostrezube(Z1) kandze(Z1) imaociunapred(Z1))
mesozder(Z1)
P4. mesozder(Z1) okerboje(Z1) tamnepege(Z1) leopard(Z1)
P5. mesozder(Z1) okerboje(Z1) tamnepruge(Z1) tigar(Z1)
Izvrši se formalizacija datog problema na PROLOG -
jeziku. Disjunkcije u pravilima se mogu izbeći, pa se
umesto pravila P1. uvode dve klauzule:
sisar(Z1):-imadlaku(Z1).
sisar(Z1):-dajemleko(Z1).
Takođe se zbog disjunkcije umesto pravila P2. uvode
dve klauzule:
ptica(Z1):-imaperje(Z1).
ptica(Z1):-leti(Z1),nosijaja(Z1).
Još dve klazule se uvode umesto pravila P3.:
mesozder(Z1):-sisar(Z1), jedemeso(Z1).
mesozder(Z1):-sisar(Z1), imaostrezube(Z1),
kandze(Z1),imaociunapred(Z1).
Pravila P4. i P5. se predstavljaju sa po jednom klauzulom.
Pravilo P4. predstavlja se klauzulom:
leopard(Z1):-
mesozder(Z1),okerboje(Z1),tamnepege(Z1).
Dok se pravilo P5. predstavlja klauzulom:
tigar(Z1):-
mesozder(Z1),okerboje(Z1),tamnepruge(Z1).
Ĉinjenice su predstavljene preko 12 klauzula.
Program na PROLOG-u je sledećeg izgleda:
jedemeso(boki).
imadlaku(boki).
tamnepruge(boki).
okerboje(boki).
imaostrezube(toza).
kandze(cica).
imaociunapred(cica).
dajemleko(roza).
imaperje(cira).
leti(cira).
nosijaja(koko).
tamnepege(moki).
sisar(Z1):-imadlaku(Z1).
sisar(Z1):-dajemleko(Z1).
ptica(Z1):-imaperje(Z1).
ptica(Z1):-leti(Z1), nosijaja(Z1).
mesozder(Z1):-sisar(Z1), jedemeso(Z1).
mesozder(Z1):-sisar(Z1), imaostrezube(Z1), kandze(Z1),imaociunapred(Z1).
leopard(Z1):- mesozder(Z1), okerboje(Z1), tamnepege(Z1).
tigar(Z1):-mesozder(Z1), okerboje(Z1), tamnepruge(Z1).
Za potvrđivanje cilja postavlja se pitanje:
?-tigar(boki).
i dobija se odgovor:
True
PROLOG-sistem na osnovu datih čiinjenica i
pravila uspeva da izvede pobijanje za postavljeni
cilj, što znači da važi tvrđenje: "Boki je tigar".
SISTEMI BAZIRANI NA ZNAJU
Sistemi bazirani na znanju su inteligentni sistemi, ali ne
zato što imaju bazu znanja, nego zato što poseduju
mehanizam za svrsishodno korišćenje tog znanja. To je
mehanizam zaključivanja koji se zasniva na nekom od
sistema automatskog rezovovanja (SAR).
Savremene inteligentne sisteme bazirane na znanju
karakteriše adaptivnost. Adaptivnost omogućuje da se
ponašanje sistema prilagodi individualnim osobinama
korisnika u meri koju dopuštaju implementirana rešenja
o modelu korisnika.
MODELITETI PRIMENE SAR U NASTAVI I
UČENJU
Dijalog učenika i računara svodi se na izbor iz menia,
unos naredbi ili šifrovanih podataka uz pomoć tastature,
uz pomoć miša ili upisivanje kraćih odgovora, odnosno
upita na ograničenom prirodnom jeziku.
Obično je takav dijalog daleko od dijaloga u pravom
smislu, kako po kvantitetu, tako i po kvalitetu.
Kvalitet dijaloga zavisi od stepena slobode korisnika, šta
sve može da zahteva od računara, kako te zahteve
formuliše, šta mu se i na koji način prezentira kao
odgovor.
DIJALOG IZMEĐU UĈENIKA I
RAĈUNARA
U obrazovnom procesu koristi se mogućnostdirektne komunikacije između učenika iračunara.
Računar može, zahvaljujući određenim"inteligentnim" softverskim rešenjima, da dajeodgovore na različita pitanja učenika(podrazumevajući pod ovim pojmom i studente ipolaznike kurseva), da vodi učenika kroz procesučenja i razmišljanja.
Pri tome se povećava samostalnost i nezavisnostprocesa učenja, što doprinosi individualizacijinastavnog procesa i omogućava napredovanjeučenika u zavisnosti od njegovih predznanja, sposobnosti, želja i mogućnosti.
Sistemi automatskog rezonovanja modeliraju
proces logičkog rasuđivanja na računaru,
zadavanjem opšte procedure rezonovanja koja je
nezavisna od problemske oblasti, čime je
upravljanje radom računara podignuto na jedan
viši nivo.
Analizom mogućnosti sistema automatskog
rezonovanja u smislu deduktivnog sistema za
automatsko dokazivanje teorema i postignutim
praktičnim rezultatima u razvoju automatskih
dokazivača teorema, PROLOG-jezika i ekspertnih
sistema otvorene su mogućnosti za njihovu
primenu u obrazovanju.
Upotreba sistema automatskog rezonovanja
doprinosi povećanju inteligentnih svojstava
dijaloga učenika i računara. Na bazi deduktivnih
svojstava sistem automatskog rezonovanja
obezbeđuje kvalitetniji dijalog učenika i
računara, što se posebno odnosi na povećanje
stepena slobode učenika u smislu postavljenih
pitanja, zahteva, ali i prezentiranih odgovora.
Ovakvi sistemi se u nastavi mogu primeniti za:
dobijanje odgovora na pitanja koja postavi učenik
(dedukovanje odgovora na osnovu unetih činjenica),
proveru hipoteza koje postavlja učenik,
otkrivanje protivurečnosti u izjavama učenika.
U narednim primerima biće detaljnije razmotrene
mogućnosti primene sistema automatskog
rezonovanja u dijalogu učenika i računara, uz
navođenje primera nastavnih situacija iz oblasti
geografije, istorije i književnosti, koji su
implementirani na PROLOG-u.
DEDUKOVANJE ODGOVORA
NA POSTAVLJENO PITANJE
Polazni uslovi za ovu opciju su:
U bazu znanja SAR uneta su opšta i specifična domenski
orijentisana znanja,
Učenik unosi relativne činjenice (podatke) u vezi sa tom
problematskom oblašću,
Učenik formuliše pitanje na ograničenom prirodnom
jeziku.
Mogući odgovori SAR:
Odgovor je dedukovan i saopštava se učeniku,
Sistem traži od učenika dodatnu informaciju,
Sistem saopštava da ne može da odgovori na pitanje.
DEDUKOVANJE ODGOVORA
NA PITANJE UČENIKA
Primer. U bazi znanja sadržani su podaci o rekama i pritokama za određeni region, u obliku: "reka X1 uliva se u reku Y1".
Učenik postavlja pitanje: "Gde se uliva Timok?". Kako se, po pretpostavci, u bazi znanja ne nalazeinformacije o Timoku, sistem automatskogrezonovanja traži od učenika da kaže šta zna o Timoku. Ako je učenik saopštio rečenicu (u oblikupravila): "Timok se uliva u istu reku kao iMorava", onda sistem automatskog rezonovanjana osnovu podataka o Moravi ("Morava se uliva u Dunav") dedukuje odgovor: "Timok se uliva u Dunav".
Da bi se ovo ilustrovalo na PROLOG-u potrebno je izvršitiformalizaciju na ovom jeziku. Neka se koristi predikatuliva(X1,Y1) sa značenjem "reka X1 uliva se u reku Y1".
Jezička formulacija pravila zamenjuje se zapisom:
uliva(Morava,Z1) uliva(Timok,Z1)
što se zapisuje kao klauzula na jeziku logičkog programiranjaPROLOG:
uliva(timok,Z1):-uliva(morava,Z1).
Podatak da se Morava uliva u Dunav zapisuje se kaočinjenica:
uliva(morava,dunav).
Formalizacijom postavljenog pitanja dobija se:
(V1) uliva(Timok,V1)
odnosno, pošto se dokaz vrši metodom opovrgavanja negira se pitanje:
uliva(Timok,V1)
što se na PROLOG-u zapisuje kao:
?-uliva(timok,V1).
Na taj način, primer iz oblasti geografije realizovan je na
PROLOG-u ima sledeći izgled:
uliva(timok,Z1):-uliva(morava,Z1).
uliva(morava,dunav).
Na postavljeno pitanje:
?-uliva(timok,V1).
PROLOG-sistem saopštava odgovor:
V1=dunav
1 Solution
što se tumači kao: "Timok se uliva u Dunav". Iz primera
se vidi da je PROLOG-sistem u mogućnosti da dedukuje
činjenice koje se eksplicitno ne nalaze u bazi znanja.
PROVERA HIPOTEZA
Polazni uslovi za primenu ove opcije su isti kao kao kod dedukovanja, odnosno generisanje odgovora, s tom razlikomšto učenik umesto pitanja, formuliše svoju hipotezu u oblikutvrĎenja, za koje želi da utvrdi da li važi pod pretpostavkamakoje postoje u bazi SAR.
SAR pokušava da dokaže hipotezu kao teoremu, na osnovuaksioma iz baze.
Mogući odgovori SAR:
Hipoteza važi – dokazano je da logički sledi iz baze znanjasistema,
Hipoteza nije tačna – dokazano je da negacija hipoteze sledi izbaze znanja,
Neizvesno – sistem ne može da potvrdi, niti da odbaci hipotezu.
PROVERA UČENIČKIH HIPOTEZA
Primer. Učenik postavlja hipotezu iz oblasti istorije: "Boj na
Ĉegru je bio posle boja na Marici".
Neka baza sadrži podatke o značajnim istorijskim
datumima:
"Boj na Marici je bio 1371.godine",
"Boj na Kosovu je bio 1389.godine".
U bazi nema datuma boja na Ĉegru, već baza sadrži
informaciju:
"Boj na Ĉegru je bio posle boja na Kosovu"
kao pretpostavku pod kojom se dokazuje hipoteza.
Koristi se znanje da je:
boj na mestu X1 bio je posle boja na mestu Z1 ako je boj na mestu X1 bio godine U1, a boj na mestu Z1godine U2, pri čemu je U1 U2
i svojstvo relacije posle(X1,Z1):
ako je X1 posle Y1 i Y1 posle Z1, onda je X1 posleZ1.
NAPOMENA: Zbog opštosti zadatka i da se ne bi upalou beskonačni ciklus kod realizacije relacije posle(X1,Z1), koja je rekurzivnog karaktera potrebno je uvesti ipomoćni relaciju kasnije(X1,Y1).
Dakle, prilikom rešavanja ovog problema koriste se relacije:
boj(X1,U1) sa značenjem da je boj na mestu X1 bio godine U1,
kasnije(X1,Y1) sa značenjem da je boj na mestu X1 bio kasnije od boja na mestu Y1,
posle(X1,Z1) sa značenjem da je boj na mestu X1 bio posleboja na mestu Z1.
Vrši se formalizacija na PROLOG-jeziku.
Hipoteza se na PROLOG-jeziku predstavlja kao:
?-posle(cegar,marica).
Podaci se na PROLOG-jeziku predstavljaju kao:
boj(marica,1371).
boj(kosovo,1389).
Informacija da je boj na Ĉegru bio kasnije (posle) od boja naKosovu se na PROLOG-jeziku predstavlja kao:
kasnije(cegar,kosovo).
Znanje o relaciji kasnije(X1,Y) predstavlja se pomoću pravila:
kasnije(X1,Y1):-boj(X1,U1),boj(Y1,U2),U1>U2.
Relacija posle(X1,Z1) predstavlja se pomoću dva pravila:
posle(X1,Y1):-kasnije(X1,Y1).
posle(X1,Z1):-kasnije(X1,Y1),posle(Y1,Z1).
Program napisan na PROLOG-jeziku je sledećegizgleda:
domains
mesto=symbol
god=integer
predicates
boj(mesto,god).
kasnije(mesto,mesto).
posle(mesto,mesto).
clauses
boj(marica,1371).
boj(kosovo,1389).
kasnije(cegar,kosovo).
kasnije(X1,Y1):-boj(X1,U1),boj(Y1,U2),U1>U2.
posle(X1,Y1):-kasnije(X1,Y1).
posle(X1,Z1):-kasnije(X1,Y1),posle(Y1,Z1).
Da bi učenik proverio hipotezu potrebno je da postavi
pitanje (cilj):
?-posle(cegar,marica).
na koje PROLOG-sistem sopštava odgovor:
True
Iz saopštenog odgovora učenik zaključuje da je
njegova hipoteza tačna (True), tj. da je boj na Ĉegru
bio posle boja na Marici (boj na Ĉegru je bio posle boja
na Kosovu, a boj na Kosovu posle boja na Marici).
Učenik može da eksperimentiše na osnovu znanja koje
poseduje i da pokušava da potvrdi ili da odbaci
postavljene hipoteze pod različitim pretpostavkama.
OTKRIVANJE PROTIVUREČNOSTI
Polazni uslovi za ovu opciju korišćenja SAR su:
Baza znanja u vezi sa odreĎenom oblašću,
Izjava (odgovor) učenika.
SAR pokušava da izvede protivrečnost izjave učenika u
odnosu na bazu, ili protivrečnost negacije izjave u odnosu
na bazu.
Mogući odgovori SAR:
Izjava (odgovor) protivreči bazi znanja – nije tačna,
Izjava je tačna – negacija izjave protivreči bazi znanja (koja
je neprotivrečna)
Neizvesno – izjava, niti njena negacija ne protivreče bazi
znanja.
OTKRIVANJE PROTIVUREČNOSTI
U IZJAVAMA UČENIKAPrimer. Neka su u bazi sadržani podaci iz književnosti o piscima i njihovim delima.
Koristi se struktura delo(X1,Y1,Z1) sa značenjem:
"delo pod nazivom Y1 napisao je pisac po imenu X1".
Pomoću PROLOG-jezika ova baza se predstavlja na sledeći način:
delo("Laza Lazarevic","Vetar").
delo("Laza Lazarevic","Verter").
delo("Laza Lazarevic","Na bunaru").
delo("Laza Lazarevic","Svabica").
delo("Ivo Andric","Na Drini cuprija").
delo("Ivo Andric","Travnicka hronika").
delo("Ivo Andric","Gospodjica").
delo("Ivo Andric","Prokleta avlija").
delo("Ivo Andric","Ex ponto").
delo("Borisav Stankovic","Necista krv").
delo("Borisav Stankovic","Kostana").
delo("Borisav Stankovic","Tasana").
delo("Borisav Stankovic","Gazda Mladen").
Ako je učenik naveo među delima Laze
Lazarevića roman Gospođica PROLOG-sistem
će otkriti protivurečnost. Odnosno, ako se proveri
pomoću ovog sistema izjava učenika, tj. postavi
pitanje da li je tačno da je Laza Lazarević napisao
delo Gospođica:
?-delo("Laza Lazarevic","Gospodjica").
sistem daje odgovor:
False
što znači da ova izjava učenika nije tačna.
Učenik zatim može proveriti koja su značajnija
dela Laze Lazarevića i da se među njima ne
nalazi roman Gospođica.
Na postavljeno pitanje "Koja su značajnija dela Laze Lazarevića?"
?-delo("Laza Lazarevic",V1).
PROLOG-sistem daje odgovore:
V1=Vetar
V1=Verter
V1=Na bunaru
V1=Svabica
4 Solutions
To znači da su značajnija dela Laze Lazarevića pohranjena u baziznanja: Vetar, Verter, Na bunaru i Švabica.
Da bi saznao ko je autor dela Gospođica učenik može postavitipitanje:
?-delo(X1,"Gospodjica").
na koje sistem daje odgovor
X1=Ivo Andric
1 Solution
što znači da je autor dela Gospođica Ivo Andrić.
Osim toga, učenik može da proveri izjavu da je Ivo Andrić pisac delaGospođica, što formuliše kao pitanje "Da li je Ivo Andrić pisac delaGospođica?":
?-delo("Ivo Andric","Gospodjica").
na koje sistem daje odgovor:
True
što znači da važi izjava, tj. da Ivo Andrić jeste pisac dela Gospođica.
Naravno, učenik može i da postavi pitanje koja sve dela je napisao Ivo Andrić
?-delo("Ivo Andric",V1).
na šta dobija odgovore:
V1=Na Drini cuprija
V1=Travnicka hronika
V1=Gospodjica
V1=Prokleta avlija
V1=Ex ponto
5 Solutions
Iz dobijenih odgovora učenik se uverava da se među delima Ive Andrićanalazi i Gospođica, odnosno da je prema podacima koji se nalaze u bazi on autor dela: Na Drini ćuprija, Travnička hronika, Gospođica, Prokletaavlija i Ex ponto.
Izloženi pojednostavljeni primeri iz različitih
nastavnih situacija upućuju na mogućnost
projektovanja inteligentnih dijaloških
programskih sistema uz razvijanje adekvatnog
korisničkog interfejsa i iz drugih nastavnih
oblasti, jer su sistemi automatskog rezonovanja
nezavisni od oblasti primene.