Professional Documents
Culture Documents
Osnovne strukturne komponente ES su Baza Znanja (BZ) (Knowledge Base), Mehanizam Zakljuivanja, (MZ), Radna Memorija (RM) i Korisniki Interface (KI) (User Interface) Mehanizam zakljuivanja u toku rada ES pretrauje bazu znanja i na osnovu sadraja baze znanja i stanja podataka i injenica u radnoj memoriji vri zakljuivanje Rezultat zakljuivanja mogu biti nove injenice u radnoj memoriji koje MZ nadalje moe ravnopravno da koristi za donoenje novih zakljuaka Rad MZ traje do postizanja odgovarajudeg cilja ili do stanja u RM kada vie nije mogude izvesti nijedan zakljuak
Osim znanja o problemu koji se reava, ekspertni sistemi poseduju i znanje o sopstvenoj strukturi i operacijama, pomenuto meta znanje To omogudava da korisnik moe u toku rada da od ES trai da obrazloi logiki redosled svojih zakljuaka, tj. da rekonstruie put zakljuivanja kojim je doao do odgovarajudeg zakljuka Obrazloenje bi trebalo da bude to potpunije i po mogudstvu u formi to blioj prirodnom jeziku Znaaj obrazloenja je u tome da olakava pradenje rada ES i traenje i ispravku eventualnih greki
Ne mogu da prepoznaju i reavaju probleme za koje je njihovo znanje nedovoljno ili neprimenljivo. Osnovna pretpostavka je naravno da se ES adekvatno koristi za reavanje problema Nemaju nezavisna sredstva za proveravanje svojih zakljuaka Nemaju dovoljno znanja o svojim ogranienjima i mogudnostima Obrazloenja o zakljucima su dosta uprodena Jezik za izraavanje injenica i odnosa je dosta uproden
Interpretacija
Zadatak interpretacije je izvoenje odgovarajudih zakljuaka, tumaenja ili objanjenja na osnovu nekog skupa podataka Pri tome je osnovni zahtev da tumaenje bude korektno i saglasno sa podacima Ako je mogude vie razliitih interpretacija podataka, onda je poeljno da razmatranje pojedinih mogudih interpretacija bude sistematsko Odbacivanje pojedinih mogudnosti se pri tome vri samo kada se sa sigurnodu utvrdi da dati sluaj interpretacije ne zadovoljava za dati skup podataka
Interpretacija
Jedan od osnovnih problema pri interpretaciji podataka je neizbeno prisustvo uma i greki um nastaje usled raznih smetnji i neeljenih uticaja na podatke koji se interpretiraju Usled toga se meu korisnim podacima nalaze i lani podaci koji u odsustvu uma ne bi ni bili prisutni, i koje na neki nain treba detektovati i razdvojiti od pravih podataka Uticaj greki je drugaiji, jer nema novih lanih podataka, ved su vrednosti pravih podataka izmenjene u izvesnoj meri
Interpretacija
Mogudi su i kombinovani efekti, i to naroito u sluaju kada su lane vrednosti usled uma i vrednosti pravih podataka istog reda veliine Konkretni postupci za umanjivanje ili otklanjanje uticaja uma i greki znaajno zavise od vrste konkretnog problema i fizike prirode podataka koji se interpretiraju
Dijagnostika
Pod dijagnostikom se podrazumeva proces iji je cilj da se ustanovi mesto (lokalizacija), vrsta i uzrok neispravnosti u nekom sistemu Kao to je dobro poznato sistem moe biti ivo bide, kada dijagnozom treba da se ustanovi mesto i vrsta oboljenja ili povrede tkiva ili organa Dijagnostika u medicini konkretno predstavlja veoma vanu oblast primene ES koji su se tu pokazali kao veoma uspeni, o emu svedoe uspene realizacije ES MYCIN, ONCOCYN Zadatak dijagnostike se delimino zasniva i na ved pomenutom zadatku interpretacije podataka koji mogu predstavljati na pr. simptome oboljenja ili nekog kvara
Dijagnostika
Od velikog znaaja za dijagnostiku je i poznavanje datog problemskog domena i veza koje postoje izmeu podsistema i ispitivanog sistema Najvaniji problemi koji se javljaju u dijagnostici su: Ako istovremeno u sistemu postoje dva ili vie defekata (kvarova, neispravnosti, oboljenja, povreda) moe dodi do pojave da simptomi jednog defekta maskiraju simptome drugog defekta Mogude je da ureaji za ispitivanje i merenje na sistemu daju netane podatke, tako da treba unapred raunati sa takvim mogudnostima i izvriti redundantna merenja koja de dati nesaglasne rezultate u sluaju neispravnosti
Dijagnostika
Simptomi nekada mogu biti privremeni, to zahteva pradenje ponaanja ispitivanog sistema u duem vremenskom periodu monitoring Neophodno potrebni podaci za dijagnozu mogu biti teko dostupni ili skopani sa raznim opasnostima
Monitoring
Kod zadatka monitoringa potrebno je kontinualno pratiti jednu ili vie veliina koje su od znaaja indikatori za ispravno funkcionisanje ispitivanog sistema esto je za uspeno pradenje procesa neophodno i adekvatno tumaenje izmerenih vrednosti, tako da je u tom sluaju kao podzadatak ukljuena i interpretacija Za zadatak monitoringa karakteristino je to da je vremenski kritian, tj. vri se u realnom vremenu i ON LINE
Monitoring
Ovi pojmovi su detaljno objanjeni u predmetu akvizicija podataka i to u odeljku o digitalnim merenjima Monitoring podrazumeva prepoznavanje i signaliziranje u sluaju kritinih situacija kada mereni podaci mogu da poprimaju nedozvoljene vrednosti, da se menjaju nedozvoljenom brzinom, da budu u nekoj nedozvoljenoj kombinaciji itd Da li de se neka konkretna situacija prepoznati kao kritina, moe da zavisi i od stanja sistema u celini
Prognoza je predvianje toka dogaaja u bududnosti na osnovu poznavanja modela sistema i ponaanja u prolosti i sadanjosti Prognoza kao zadatak VI uvek podrazumeva nemogudnost egzaktnog predvianja ponaanja nekog sistema bilo zato to ne postoji odgovarajudi model, ili podaci kojima se raspolae nisu potpuni Sluaj kada je mogude egzaktno odrediti ponaanje nekog sistema ne predstavlja problem i nije od interesa za VI Rezultat prognoze su razne mogude varijante i teorije bududih dogaaja, kao i procena njihove osetljivosti u odnosu na zavisnost od promene ulaznih podataka Po mogudstvu, dobro je koristiti podatke iz razliitih izvora.
Prognoza
Planiranje je sastavljanje redosleda akcija koje treba izvriti u odreenom redosledu, da bi se ostvario neki cilj Tei se optimalnom planu, kojim de se uz to manji utroak sredstava (vremena, energije, finansija) istovremeno zadovoljiti svi postavljeni zahtevi Ako doe do konflikta izmeu postavljenih ciljeva, treba odrediti prioritet ciljeva Problem planiranja moe da bude vrlo sloen, tako da je teko odrediti sve posledice koje mogu da nastupe u raznim sluajevima U sluaju velikog mnotva detalja, treba razmatrati prvo one najvanije Ako je podruje planiranja nedovoljno poznato, javlja se i neodreenost kao problem koji treba reiti
Planiranje
Projektovanje
Zadatak projektovanja je izrada detaljne dokumentacije o izgradnji nekog sistema koja zadovoljava razne zahteve Postoji znaajna slinost izmeu projektovanja i planiranja Raznorazna ogranienja koja postoje u vezi projekta po pravilu ne omogudavaju primenu jedinstvene teorije koja de omoguditi usklaivanje ogranienja i usvojenih reenja Obimni i sloeni projekti zahtevaju podelu na vedi broj manjih potprojekata, to opet stvara dodatne probleme njihovog usklaivanja, poto su vrlo retko sasvim nezavisni U toku izrade obimnih projekata, potrebno je voditi evidenciju o usvojenim reenjima i odgovarajudim razlozima To moe mnogo da pomogne pri modifikaciji projekta, kada je potrebno ponovo razmotriti razne varijante
U prethodnom odeljku navedeni tipski zadaci ES predstavljaju i osnov za klasifikaciju ES. Neki tipovi ES namenjeni su upravo reavanju pojedinih odgovarajudih problema, i to su na pr. ES za interpretaciju, monitoring, dijagnostiku, prognozu, planiranje i projektovanje Neki drugi sloeniji ES mogu da obuhvataju i vie osnovnih zadataka kao na primer obuavanje i upravljanje ES za interpretaciju namenjeni su nalaenju opisa situacije ili stanja, davanju objanjenja na osnovu podataka sa kojima raspolau. Tipine konkretne primene su za prepoznavanje oblika, razumevanje govora, analizu slike, odreivanje hemijske strukture jedinjenja, analizu signala itd.
ES za interpretaciju namenjeni su nalaenju opisa situacije ili stanja, davanju objanjenja na osnovu podataka sa kojima raspolau. Tipine konkretne primene su za prepoznavanje oblika, razumevanje govora, analizu slike, odreivanje hemijske strukture jedinjenja, analizu signala itd. ES za prognozu izvode mogude logine posledice na osnovu date situacije u sistemu koji se ispituje. Tu spadaju vremenska prognoza, demografska prognoza, prognoza stanja na putevima, prognoza letine, prognoza vojnopolitike situacije, kretanja u ekonomiji itd.
ES sistemi za projektovanje izgrauju konfiguraciju sistema koja treba da zadovoljava ogranienja data projektnim zadatkom. U te zadatke spadaju sinteza i sastavljanje elektronskih ureaja, projektovanje graevinskih objekata, predvianje budeta itd. Jedan od dodatnih zahteva koji se postavljaju pred zadatak projektovanja moe biti minimizacija u odnosu na trokove na primer. ES za planiranje projektuje plan rada. Ovde spadaju automatsko programiranje, planiranje kretanja robota, planiranje u projektovanju, sastavljanje marruta, planiranje komunikacija, planiranje eksperimenata, planiranje vojnih operacija itd.
Istorijski pregled ES
Prvi ES se javljaju sredinom 60 - tih godina. Oblast primene i problematika ovih ES je vezana za medicinu, hemiju, matematiku, rudarstvo, izgradnju raunarskih sistema, dijagnostiku kvarova na ureajima i postrojenjima, analizu i razumevanje glasa, itd. Ovde de kao ilustracija i primer ukratko biti pomenuta dva izuzetno znaajna ES, DENDRAL i MYCIN. Veliki znaaj ovih ES je osim injenice da su bili izuzetno uspeni u svom domenu, i taj da su predstavljali svojevrsne uzore i time odreivali dalji smer razvoja ES.
DENDRAL
DENDRAL je jedan od prvih ES razvijen na Univerzitetu Stanford, koji se koristi u oblasti hemije za odreivanje strukturne formule organskih jedinjenja. Zadatak DENDRAL-a i nain koridenja sastoji se u tome da asistira istraivau i sistematski razmatra sve mogudnosti u saglasnosti sa nametnutim ogranienjima koja suavaju i usmeravaju pretragu za kandidatima Problem je dosta sloen, s obzirom da za datu poznatu kvantitativnu hemijsku formulu moe da postoji veliki broj organskih jedinjenja sa razliitim strukturnim formulama.
DENDRAL
Ulazni podaci na osnovu kojih se vri analiza su izmeu ostalog rezultati merenja masenim spektrometrom, kao i sve poznate injenice (postojanje karakteristinih atomskih grupa, hemijskih veza, itd. ) u vezi jedinjenja koje se ispituje. Na osnovu ulaznih podataka postavljaju se ograniavajudi uslovi (constraints), koji omogudavaju suavanje broja kandidata (mogudih strukturnih formula) za reenje. Primenjena strategija reavanja problema podseda na pretraivanje prostora stanja pri emu se pretraivanje usmerava i suava pomenutim ogranienjima.
Cilj se postie nalaenjem jednog ili vie kandidata koji ispunjavaju sve postavljene uslove i ogranienja. Osnovnu strukturu DENDRAL-a sainjavaju Planner, CONGEN, MSPRUNE, MSRANK. Planner je deo ES koji asistira korisniku pri postavljanju ogranienja koja mogu biti neophodna i tipa zabrane. Neophodna ogranienja se baziraju na ved poznatim injenicama u vezi jedinjenja koje se ispituje i zahtevu da kandidati imaju odreene osobine.
DENDRAL
Zabrane potiu od neslaganja mogudih struktura sa eksperimentalnim podacima, kao i zbog hemijske nestabilnosti takvih struktura. CONGEN (CONstrained GENerator) na osnovu poznatog algoritma sistematski generie mogude kandidate u skladu sa postavljenim ogranienjima i uslovima. Mogudi kandidati se prezentiraju korisniku - hemiaru istraivau koji vri dalje suavanje - selekciju kandidata na osnovu nekih novih podataka ili na osnovu hipoteza. Do reenja, tj. do traene strukturne formule jedinjenja dolazi se iterativno posle vie ponovljanja ciklusa generisanja i odabiranja kandidata.
DENDRAL
DENDRAL
MSPRUNE je zaduen za automatsko generisanje ogranienja u saglasnosti sa rezultatima ispitivanja metodom masene spektrometrije Na osnovu izmerene mase dobijenih fragmenata ispitivanog sloenog molekula, moe se iskljuiti izvestan broj kandidata koji ne mogu da daju takve fragmente. Preostali kandidati, dakle strukture koje se na osnovu datih ogranienja ne mogu iskljuiti iz razmatranja, rangiraju se programom MSRANK na osnovu eksperimentalno opaenih fragmenata.
DENDRAL
DENDRAL je ES koji je namenjen da se koristi interaktivno, kao alatka od strane strunjaka, a ne za samostalno reavanje problema. Po strategiji reavanja zadatka predstavlja modifikaciju ranijih sistema za pretraivanje prostora stanja problema.
MYCIN
MYCIN je ES razvijen na Univerzitetu Stanford poetkom sedamdesetih godina, i namenjen je odreivanju terapije antibioticima za leenje bakterijskih infekcija. Predlaganje terapije zasniva se na dijagnozi, u ovom sluaju utvrivanju bakterije uzronika infekcije. Uzronik infekcije se utvruje na osnovu rezultata laboratorijskih ispitivanja uzoraka krvi obolelog pacijenta Opte je poznato da dijagnozu postavljaju i terapiju odreuju lekari - strunjaci iz oblasti medicine, uz neizbenu mogudnost greke u jednom ili drugom, to najbolje ilustruje sloenost zadatka koji ES reava u ovom sluaju.
Osnovnu strukturu ES MYCIN ine sledede komponente: baza znanja, dinamika baza podataka pacijenta, program za konsultaciju, program za objanjenja, program za prikupljanje novih znanja. Blok dijagram sistema MYCIN prikazan je na slededoj slici
Lekar Korisnik ES Program za konsultaciju Dinamika baza podataka pacijenta
MYCIN
Baza Znanja
Lekar Ekspert
U bazi znanja ES MYCIN znanje se predstavlja na vie naina, od kojih je najvaniji koridenjem pravila. injenice u okviru pravila mogu imati ogranienu tanost to se postie koridenjem faktora izvesnosti - CF (Certainty Factor). Podaci o svakom pojedinanom sluaju - pacijentu organizuju se u vidu kontekstnog drveta (Context Tree) i prikazani su na slededoj slici
MYCIN
MYCIN
Pacijent Kultura 1 Kultura 2 Kultura 3 Operacija
Organizam 1
Organizam 2
Organizam 3
Lek 1
Lek 2
Ovi podaci mogu biti na pr. u vezi sa uzetim uzorcima krvi koji se analiziraju, bakterije identifikovane iz uzoraka, antibioticima koji deluju na te bakterije, podaci u vezi prethodnih infekcija, operacija itd.
Razmatranje svakog pojedinanog sluaja u cilju odreivanja antibiotske terapije vri program za konsultaciju. Putem dijaloga sa korisnikom formira se kontekstno stablo sa podacima za konkretni sluaj koji se razmatra. Mehanizam zakljuivanja koristi metod ulanavanja unazad (Backward Chaining) - od cilja prema podacima, pri pretraivanju baze znanja da bi se odredila konkretna terapija. Pri pretraivanju baze znanja ili zakljuivanju formira se tzv. I/ILI drvo (AND/OR tree).
MYCIN
MYCIN
Koren tog drveta odgovara cilju - preporuenoj terapiji, ravanje predstavlja svoenje na podciljeve, dok su listovi injenice koje se moraju zadati. Eventualno potrebna opravdanja za dobijene zakljuke mogu se dobiti iz programa za objanjenja na osnovu memorisanog redosleda izvravanja programa i odgovarajudih delova baze znanja. Modifikacije baze znanja u cilju dodavanja novih pravila i izmene postojedih vre se programom za prikupljanje novih znanja.
Ocenjivanje ES
ES DENDRAL i MYCIN se dosta razlikuju po svojoj strukturi, strategiji reavanja problema, nainu rada, tako da se razlikuju i naini za ocenjivanje njihove uspenosti. Poto DENDRAL ne reava problem samostalno, ved u saradnji sa korisnikom, jedan od pokazatelja moe biti to u kolikoj meri je DENDRAL koristan alat u praksi. Podaci da je DENDRAL bio dostupan preko kompjuterske mree za stotine korisnika u svetu dnevno, da se koristio za analizu jedinjenja kao to su antibiotici, da su nalaena alternativna reenja u odnosu na ona koja su bila objavljena najbolje o tome govore.
ES MYCIN je interesantno ocenjivati u odnosu na rezultate, tj. terapiju koju predlau lekari. U eksperimentu sa 10 razliitih sluajeva (oboljenja), za svaki sluaj dato je 10 raznih predloga terapija, od toga 9 od strane eksperata, a jedan od ES. Tim lekara od 8 eksperata je ocenjivao predloge terapija, ne znajudi od koga potiu terapije. Svaka prihvatljiva terapija se boduje kao 1, a neprihvatljiva kao 0. Od max. 80 bodova, MYCIN je osvojio najvedi broj bodova 52, dok se rezultati lekara kredu od 24 do 50.
Ocenjivanje ES
Izdvojena logika, tj mehanizam zakljuivanja, ne mora da bude uslovljena konkretnim sadrajem baze znanja, ved se moe na isti nain primenjivati na razliite sadraje. To omogudava da se ekspertni sistem izgrauje i prilagoava konkretnoj problematici pre svega formiranjem potrebne baze znanja za taj problem. U sluaju kada treba izvriti izmene ekspertnog sistema u cilju prilagoavanja dovoljno je napraviti izmene samo u bazi znanja. Kod klasinih programa pravila zakljuivanja su ugraena u algoritam, a samim tim i u proceduralni deo programa.
Podsistem za obrazlaganje zakljuaka najede funkcionie tako to omogudava identifikovanje koraka u procesu zakljuivanja, i izlistavanje aktiviranih elemenata baze znanja u toku izvravanja programa. Izmene u bazi znanja se kao to je ved pomenuto mogu vriti manuelno, dakle od strane inenjera znanja ili eksperta u datom domenu, ili automatski bez ovekove intervencije. Automatske izmene u bazi znanja podrazumevaju mainsko uenje ime se generalie iskustvo u formi novog znanja.
KORISNI^ KI INTERFACE
Baza znanja
Neophodna pretpostavka za funkcionisanje ekspertnog sistema je da raspolae znanjem u vezi problema koji reava. Postoje razliita miljenja o tome ta je znanje i kako ga blie odrediti i definisati. Jedno od prihvatljivih odreenja znanja je da je to relativno istinito uverenje prihvadeno na osnovu stroge i nepristrasne procene vrednosti. Tokom razvoja AI postepeno se prelazilo od sistema zasnovanih na pretraivanju, ka sistemima zasnovanim na znanju.
Baza znanja
Znanje koje je odreenom tehnikom reprezentovano u memoriji raunara tako da mu se moe po potrebi na adekvatan i efikasan nain pristupiti, naziva se baza znanja. Postoje razliiti naini za reprezentovanje znanja u ES od kojih su najpoznatiji produkciona pravila, semantike mree, trojke OAV, frame-ovi, objekti itd. Kod klasinih proceduralnih programa (jezici kao Basic, Pascal, Fortran, C) znanje je algoritamskog tipa proceduralno i izraeno je samom programskom procedurom, to znai da je pogodno za simboliko predstavljanje putem dijagrama toka (flow chart).
Baza znanja
Suprotno tome je deklarativno znanje koje je opisnog karaktera, i u programima se nalazi u bazi podataka. Praksa pokazuje da je za ES najvanije znanje koje ne pripada iskljuivo ni jednoj ni drugoj kategoriji. Znanje od najvedeg znaaja za ES je tzv. conditional knowledge ili u prevodu uslovno znanje. Znanje kod ES moe imati veoma sloenu strukturu. U literaturi se dosta esto sredu razni predlozi za podelu znanja po tipu, sastavu, funkciji, odnosu, nivou.
Baza znanja
Jedna od mogudih podela po tipu, je na know what i know how Know what bi u tom sluaju odgovaralo deklarativnom znanju, dok bi know how odgovaralo proceduralnom znanju. Podela znanja analogna sa razdvajanjem baze znanja i mehanizma zakljuivanja kod ES, je na upravljako i domensko znanje. Domensko znanje odreuje ta je poznato o domenu - oblasti primene, dok upravljako znanje odreuje nain primene domenskog znanja.
Baza znanja
esto se smatra da je domensko znanje deklarativno, dok je upravljako znanje proceduralno. Van Harmelen meutim pokazuje da to nije ispravno stanovite, jer da li de znanje biti deklarativnog ili proceduralnog karaktera zavisi od usvojenog naina reprezentacije znanja. Na taj nain, i domensko i upravljako znanje moe biti deklarativno, ako se predstavi na pr. logiki, ili proceduralno ako se predstavi produkcionim pravilima.
Baza znanja
Jo neke podele znanja su: Prema odnosu (relationship) - Deklarativno i proceduralno znanje Prema funkciji (function) - Sutinsko, bitno (essential) i heuristiko znanje Prema nivou (level) - Plitko (shallow) i duboko (deep) znanje
Produkciona pravila su dosta est nain predstavljanja znanja kod ES, i omogudavaju da se u bazi znanja predstavi i memorie ono znanje koje je po svom karakteru zakljuivanje, a koje se moe izraziti u obliku AKO - TADA (IF - THEN). Ovako predstavljeno znanje se moe opisati i operacijom matematike logike - => implikacijom. U AKO (IF) delu, koji se jo naziva i levi deo pravila (left hand side rule) nalazi se uslov - supporting condition (jo se koriste i termini IF klauzula - IF clause, antecedent - antecedent, premisa premise).
Produkciona pravila
Produkciona pravila
Ovaj uslov moe biti zadovoljen ili ne. Uslov moe biti i neki sloeniji logiki izraz dobijen kombinovanjem pojedinih uslova logikim operatorima konjukcije I (AND), disjunkcije ILI (OR) ili negacije (NOT). Ako se moe utvrditi da je uslov istinit, zakljuak u ONDA (THEN) delu (koriste se i termini THEN klauzula - THEN clause, konsekvens - consequence) prihvata se kao istinit. Ovakav nain zakljuivanja kod produkcionih pravila odgovara nainu zakljuivanja koji se u matematikoj logici naziva modus ponens.
Ako su p i q iskazi, onda je matematiki zapis pravila zakljuivanja modus ponens slededi : p, p q = q Ako je istinita vrednost iskaza p i implikacije p => q tana, onda je i iskaz q takoe taan. Za iskaz q se u tom sluaju kae da je semantika posledica formula p i p => q. p u tom sluaju odgovara uslovu kod produkcionih pravila, dok q odgovara zakljuku. Znaajan uticaj na primenu produkcionih pravila ima teza M. Rychener-a u kojoj je ukazano na osnovne pogodnosti ovog metoda.
Produkciona pravila
Pravila predstavljaju nezavisne elemente znanja (chunks). Programer, ili inenjer znanja (knowledge engineer) ne mora da vodi rauna o redosledu primene pravila u bazi znanja, niti je vaan fiziki redosled kojim su pravila uneta ili zapisana u bazi znanja. To omogudava postupno (incremental) razvijanje baze znanja bez potrebe da se menjaju postojeda pravila (naravno, samo ako su tana i adekvatna problemu koji se reava). Sintaksa koja se koristi kod razliitih programskih sistema (OPS5, I2+, CLIPS, Eclipse) koji se baziraju na produkcionim pravilima moe biti dosta razliita, tako da se u ovom razmatranju nede ulaziti u sintaksne detalje.
Produkciona pravila
Produkciona pravila
Sa druge strane, sintaksa de biti data u delu gde se razmatraju karakteristike sistema I2+, i kod novijeg i savremenijeg sistema CLIPS 6.22. Sve informacije o CLIPS-u kao i besplatni download programa i dokumentacije na web adresi: www.ghg.net/clips/CLIPS.html - stara adresa! Nova adresa: http://clipsrules.sourceforge.net/
Ako se u istom ili u nekom drugom uslovu istog pravila pojavljuje ista promenljiva na vie razliitih mesta, podaci iz radne memorije koji odgovaraju toj promenljivoj moraju imati istu vrednost kao podatak koji odgovara prvom pojavljivanju te promenljive. Isto oznaene lokalne promenljive u uslovima razliitih pravila su nezavisne. Pravilo iji su uslovi zadovoljeni elementima radne memorije, i koje je samim tim i aktivirano, naziva se konkretan uzorak pravila (rule instantiation).
Neka injenica moe biti prisutna u radnoj memoriji iz dva osnovna razloga: unoenje od strane korisnika, uitavanje iz datoteke, rezultat neke spoljanje procedure, itd. kao posledica izvravanja desne strane nekog drugog prethodno aktiviranog i izvrenog pravila. U zavisnosti od stanja radne memorije, istovremeno moe biti aktivirano nijedno, jedno ili vie pravila. Jedno isto pravilo istovremeno moe biti aktivirano razliitim elementima radne memorije, tj. mogu postojati razliiti konkretni uzorci jednog istog pravila.
Na desnoj strani pravila (Right Hand Side - RHS) moe biti jedan ili vie zakljuaka ili akcija. Akcije su procedure koje izvravaju neki algoritamski zadatak. Prema tome, rezultat izvravanja aktiviranog pravila (rule firing) moe biti izvoenje jednog ili vie zakljuaka sa desne strane pravila, kao i izvravanje odgovarajudih akcija. Izvoenje zakljuka znai da se odgovarajuda injenica upisuje u radnu memoriju ravnopravno sa ostalima. Ove injenice menjaju stanje radne memorije, tako da je mogude da rezultat izvravanja pravila bude aktiviranje novih pravila iz baze znanja.
Efekat izvravanja pravila moe takoe da bude i brisanje ved po+stojedih injenica iz radne memorije, to moe dovede do deaktiviranja ved aktiviranih pravila. U sluaju da baza znanja sadri veliki broj pravila, proces poreenja levih strana pravila sa injenicama u radnoj memoriji moe vremenski dugo da traje, ak i na brzim raunarima. Zato se koriste razni postupci u cilju povedanja efikasnosti poreenja. Do sada najefikasniji postupak za to je izraen tzv. RETE, algoritmom.
Ovaj algoritam je jedinstven zato jer je najmanje nekoliko puta bri od bilo kog drugog algoritma, a sa porastom broja pravila u bazi znanja, relativna brzina u odnosu na ostale algoritme raste. Tek primenom ovog algoritma produkcioni sistemi postaju dovoljno modni i za tako ozbiljne primene kao to je na pr. izuzetno uspeni R1, ES za konfiguraciju raunara VAX firme DEC (Digital Equipment Corporation), kasnije preimenovan u XCON.
Ranije pomenuta mogudnost istovremenog aktiviranja dva ili vie pravila iz baze znanja, donosi problem izbora samo jednog pravila koje de se izvriti. Reavanje tog problema naziva se rezolucija konflikta (conflict resolution). Postoje razni naini i kriterijumi koji se mogu koristiti, tako da se kod pojedinih sistema moe birati izmeu vie raznih strategija, na pr. 7 kod sistema CLIPS 6.0 Kod nekih produkcionih sistema broj konfliktnih pravila se smanjuje brojanim izraavanjem prioriteta pravila (salience kod CLIPS-a), tako da su konfliktna samo ona aktivirana pravila koja imaju isti najvedi prioritet.
Rezolucija konflikta
Neki od principa na kojima se moe bazirati rezolucija konflikta su: refrakcija, starost injenica u radnoj memoriji, specificitet. Refrakcija je pojava u biologiji da jednom nadraeni neuron koji zato proizvede impuls, ne moe odmah ponovo da proizvede novi impuls iako je nadraaj prisutan, ved je potrebno da protekne neko vreme posle koga neuron ponovo moe da reaguje na nadraaj. Analogno tome, uklanja se aktivacija neposredno izvrenog pravila, iako uslovi za aktiviranje tog pravila mogu i dalje biti zadovoljeni podacima u radnoj memoriji.
Rezolucija konflikta
Rezolucija konflikta
Na osnovu starosti, mogu se birati pravila koja su zadovoljena sa najstarijim ili najsveijim injenicama iz radne memorije. Takoe, pravila se mogu ureivati prema specificitetu, tj. prema broju uslova pravila, itd.
Ulanavanje unapred je jedna od dve osnovne strategije pretraivanja baze znanja koju moe da koristi mehanizam za zakljuivanje kod produkcionih sistema pri zakljuivanju. Aktiviranje nekog pravila iz baze znanja odreeno je trenutnim sadrajem injenica u radnoj memoriji (context). Datim injenicama u radnoj memoriji odgovara odreeni skup aktiviranih pravila ili konkretnih uzoraka pravila, pri emu uslovima na levoj strani svakog aktiviranog pravila odgovara neki podskup injenica u radnoj memoriji.
Ulanavanje unapred
Pravila koja su aktivirana nazivaju se i konfliktna pravila, poto se samo jedno od aktiviranih pravila moe izvriti. Postupkom rezolucije konflikta, bira se samo jedno iz skupa konfliktnih pravila. Izabrano pravilo se izvrava, to znai da se zakljuci na desnoj strani smatraju istinitim i upisuju se u radnu memoriju kao nove poznate injenice. Eventualno postojede procedure na desnoj strani se izvravaju, to takoe moe da dovede do promena u radnoj memoriji.
Ulanavanje unapred
Kao rezultat izvravanja pravila radna memorija moe da se promeni, i novo stanje moe da dovede do aktiviranja nekih novih pravila koja ranije nisu bila aktivirana. Takoe, moe se desiti da neka prethodno aktivirana pravila vie nisu zadovoljena, pa se zato ukljanjaju sa liste aktiviranih pravila (agenda). Upravo izvrena pravila se uvek uklanjaju sa liste aktiviranih pravila, da ne bi dolo do eventualnog ponovnog aktiviranja, ukoliko su uslovi na levoj strani pravila i dalje zadovoljeni. Uklanjanje se vri u saglasnosti sa principom refrakcije koji je pomenut kod rezolucije konflikta.
Ulanavanje unapred
Ulanavanje unapred
Proces zakljuivanja traje sve dok postoji bar jedno aktivirano pravilo na listi. Ako se prethodno ne doe do reenja, stanje u radnoj memoriji koje ne daje ni jedno aktivirano pravilo znai da se do reenja ne moe dodi sa datim skupom pravila u bazi znanja, zatim koridenih ulaznih podataka, kao i izabrane strategije rezolucije konflikta. Neto od toga onda treba promeniti da bi se dolo do reenja. Odavde se vidi da je postupak ulanavanja pravila unapred voen ili upravljan podacima.
Ulanavanje unapred
Uvek se ide od datog skupa podataka - injenica u radnoj memoriji, prema novim zakljucima koji dakle zavise od podataka, ali i od izabrane strategije rezolucije konflikta. Promenom strategije rezolucije konflikta mogude je promeniti i nain rada mehanizma za zakljuivanje. Kod sistema koji koriste strategiju ulanavanja unapred, vremenski najdue traje faza poreenja uslova na levoj strani pravila sa injenicama u radnoj memoriji (pattern matching). Jedan od najefikasnijih algoritama za poreenje je ved pomenuti RETE algoritam, kome je posveden jedan od slededih odeljaka tekudeg poglavlja.
Druga osnovna strategija koju moe da koristi mehanizam zakljuivanja kod produkcionih sistema je ulanavanje pravila unazad (backward chaining). Za razliku od prethodne strategije ulanavanja unapred, polazi se ne od podataka, ved od cilja (goal) koji treba dokazati. Jedan ili vie ciljeva se unapred postavljaju, a zadatak mehanizma za zakljuivanje je da na osnovu baze znanja i konteksta odredi koji se od postavljenih ciljeva mogu ostvariti. U sluaju kada ima vie ciljeva, mogu se hijerarhijski organizovati od strane programera, analogno naslovima i podnaslovima u sadraju knjige.
Ulanavanje unazad
Kod nekih sistema, na pr. kod koridenog Insight 2+ (I2+)., postoji mogudnost da korisnik uestvuje u izboru cilja koji de se dokazivati. Jednom od specijalnih naredbi kojima se moe u izvesnoj meri kontrolisati proces zakljuivanja, GOALSELECT, zadaje se da li de korisnik modi da uestvuje u izboru cilja koji de se dokazivati, ime se vri veoma vano usmeravanje koje moe znaajno da skrati vreme pretraivanja baze znanja pri zakljuivanju. U tom sluaju korisnik ima mogudnost da bira jedan od ciljeva istog hijerhijskog nivoa.
Ulanavanje unazad
Proces zakljuivanja poinje od liste ciljeva najvieg hijerarhijskog nivoa. Ukoliko korisnik izabere neki od ciljeva datog nivoa, prikazuju se dalje eventualno postojedi ciljevi nieg nivoa za izabrani cilj. Na taj nain ako je korisnik u stanju da odredi cilj, to mu se i omogudava, sve do cilja najnieg nivoa. Ako korisnik ne moe da se opredeli za neki od prikazanih ciljeva datog nivoa, postoji mogudnost da odgovori sa nepoznato (unknown), kada mehanizam za zakljuivanje automatski preuzima dalju pretragu hijerarhije ciljeva.
Ulanavanje unazad
Najede se radi o sistematskom pretraivanju ciljeva. Da bi se mogao dokazati cilj nekog nivoa, baza znanja treba da ima neko znanje o tom cilju. To znai da treba da postoji bar jedno ili vie pravila sa zakljukom na desnoj strani pravila koji je doslovce (literally) jednak cilju koji se dokazuje. Mehanizam za zakljuivanje pronalazi takva pravila u bazi znanja. Sva takva pravila ako ih ima vie, sainjavaju tzv. ILI klasu (OR class) pravila koja odgovaraju cilju.
Ulanavanje unazad
Ulanavanje unazad
Izbor jednog pravila iz ILI klase pravila moe da podseda na rezoluciju konflikta kod ulanavanja unapred. Meutim sutinska razlika je u tome to sva ta pravila imaju isti zakljuak - jednak cilju, dok kod ulanavanja unapred situacija moe biti znatno sloenija, jer konfliktna pravila mogu imati sasvim razliite zakljuke, tako da se izmenom pravila koje de se izvriti (promenom strategije rezolucije konflikta), menja i kontekst, odnosno samo zakljuivanje. Izbor jednog pravila iz ILI klase vri se najede na osnovu faktora pouzdanosti (certainty factor - CF) koji se moe dodeliti pravilima u toku razvoja baze znanja.
Ako za jedan ili vie uslova na levoj strani pravila ne postoje elementi u radnoj memoriji koji odgovaraju ovim uslovima, onda se trai da li u bazi znanja postoje pravila sa zakljukom koji je jednak uslovu na levoj strani pravila. Ako takva pravila / pravilo postoji, onda se razmatraju uslovi na levoj strani tog pravila. Na taj nain se vri povezivanje - ulanavanje (chaining) pravila. Kada se stigne do uslova na levoj strani pravila koji se ne moe odrediti na osnovu drugih pravila jer takva pravila ne postoje u bazi znanja, a u radnoj memoriji takoe nema elemenata koji odgovaraju tom uslovu, onda se od korisnika oekuje da unese odgovarajudu vrednost podatka.
Ulanavanje unazad
Rezultat ovakvog ulanavanja pravila u bazi znanja je da se formira svojevrsno I / ILI (AND / OR) stablo. Koren ovakvog stabla je cilj koji se dokazuje, vorovi koji se granaju su podciljevi - zakljuci pravila, a grane odgovaraju uslovima na levoj strani pravila, koji mogu biti povezani sa I i ILI operacijama. Listovi drveta odgovaraju uslovima na levoj strani pravila za koje ne postoje pravila u bazi znanja sa istim zakljukom. Kada se u procesu pretraivanja baze znanja stigne do listova, od korisnika se zahteva da unese potrebne podatke.
Ulanavanje unazad
Ulanavanje unazad
U sluaju da korisnik ne zna odgovarajude podatke, ili su podaci takvi da ne potvruju cilj koji se dokazuje, dalji rad mehanizma za zakljuivanje pretraivanje baze znanja se obustavlja. Iako cilj u tom sluaju nije dokazan, dobijeni meuzakljuci mogu da predstavljaju pokazatelj dokle se dolo u reavanju problema. Ovde treba napomenuti da mehanizam zakljuivanja uvek prvo proverava da li odgovarajudi podaci koji odgovaraju uslovima pravila moda ved postoje u radnoj memoriji.
Ulanavanje unazad
Ako su odgovarajudi podaci prisutni u radnoj memoriji, ulanavanje se ne vri, ak iako postoji jedno ili vie pravila sa zakljukom jednakim ispitivanom uslovu. Razlog za to je da prisustvo potrebnih podataka u radnoj memoriji znai da je uslov ved zadovoljen i da samim tim nikakvo daljnje pretraivanje baze znanja nije potrebno. Jo jedna dodatna mogudnost za kontrolisanje procesa zakljuivanja, tj. pretraivanje baze znanja je redosled uslova sa leve strane pravila.
Redosled provere uslova sa leve strane pravila jednak je redosledu kojim su ti uslovi navedeni u listingu baze znanja sa leve strane pravila koje se ispituje. Redosled uslova moe da utie na brzinu pretraivanja baze znanja. Na poetku treba da se nalaze elementi koji se bre mogu proveriti, a elementi koji zahtevaju duu proveru, tj. iza kojih se nalazi dui lanac treba da budu na kraju. Kada su elementi uslova povezani sa logikim operatorom AND,. provera se prekida kada se doe do prvog uslova pravila koji nije zadovoljen.
Ulanavanje unazad
Ulanavanje unazad
Redosled uslova moe biti i logiki nametnut, ako postoji meuzavisnost izmeu pojedinih elemenata uslova. Na primer, proces ispitivanja (lanac pravila) nekog od uslova pravila moe da postavi odreene podatke - na pr. vrednosti promenljivih u kontekstu, koje se koriste pri ispitivanju drugih uslova koji su na taj nain zavisni od pravila u lancu koja postavljaju te podatke. U tom sluaju uslovi koji zavise od drugih uslova u okviru istog pravila treba da budu navedeni posle ovih uslova na levoj strani pravila u listingu baze znanja.
Kod sistema za ulanavanje unazad, moe da se koristi jo i mogudnost izvravanja alternativne grane na desnoj strani pravila iza ELSE, kada jedan ili vie uslova na levoj strani pravila nisu zadovoljeni. Do izvravanja desne strane pravila iza ELSE, dolazi samo u sluaju kada se do tog pravila doe pri ulanavanju unazad. Kada bi takva mogudnost postojala kod sistema sa ulanavanjem unapred, izvravanje takve alternativne grane ne bi ni izbliza bilo u toj meri determinisano, ved bi se teoretski moglo izvriti bilo kada, kada dati uslovi na levoj strani pravila nisu zadovoljeni.
Ulanavanje unazad
U sluaju kada postoji vie uslova na levoj strani koji su povezani sa AND, desna strana iza ELSE se u optem sluaju izvrava kada bilo koji od uslova na levoj strani nije zadovoljen. Meutim, ako je potrebno da se deo iza ELSE izvri samo kada odreeni uslovi na levoj strani nisu ispunjeni, onda je potrebno obezbediti da ostali uslovi na levoj strani budu ispunjeni. To se moe postidi na taj nain, to se u lancima koji odgovaraju uslovima koji treba da budu zadovoljeni ugrade mehanizmi koji obezbeuju da je uslov ili zadovoljen ili ako to nije mogude, onda ES dolazi do nekog drugog cilja, i korisniku se signalizira da se dati cilj ne moe postidi.
Ulanavanje unazad
Jedan od naina da se postigne ispunjenje uslova je da se kada je to mogude, stalno ispituju novi podaci sve dok se ne nau oni sa kojima je uslov zadovoljen (primenom petlje sa FORGET i LOOP). U tom sluaju podaci koji se ispituju ne nalaze se u radnoj memoriji, ved u nekoj bazi podataka. Dakle u oba sluaja i kada je uslov zadovoljen i kada nije zadovoljen, ne izvrava se alternativni deo pravila iza ELSE to je i bio cilj. To znai da moemo biti sigurni da de se deo iza ELSE izvriti samo u sluaju neispunjavanja tano odreenih uslova na levoj strani pravila, a ne bilo kojih.
Ulanavanje unazad
Ulanavanje unazad
Naravno da se konstrukcija IF THEN ELSE moe realizovati i bez koridenja ELSE, ali uz koridenje dva ili vie pravila umesto jednog. Jedno pravilo bi odgovaralo ispunjenju svih uslova na levoj strani, kada se izvrava deo iza THEN a druga bi imala negaciju (NOT) samo onih uslova kada se hode izvravanje dela iza ELSE (sada bi to bilo iza THEN, ali ovog drugog pravila). Na taj nain se eksplicitno navodi koji uslovi treba da budu zadovoljeni a koji ne, i ne moraju se uzimati u obzir nikakva dodatna razmatranja.
Ulanavanje unazad
Osnovna razlika izmeu metoda ulanavanja unapred i unazad, je u tome da kada su uslovi na levoj strani pravila zadovoljeni, kod sistema unapred dato pravilo se istog trenutka aktivira i stavlja na mesto u listi (agenda) odreeno prethodno usvojenom strategijom reavanja konflikta. Kod sistema unazad, injenica da je leva strana pravila zadovoljena sa trenutnim kontekstom stanja, uope ne mora da znai da de se to pravilo ikada i razmatrati, ukoliko se do njega ne doe pri ulanavanju unazad.
Ulanavanje unazad
Obrnuto, moe se redi da de se dato pravilo razmatrati nezavisno da li je uslov na levoj strani ved zadovoljen ili ne, ako se do tog pravila doe pri ulanavanju unazad, tj. ako je zakljuak tog pravila jednak uslovu na levoj strani nekog drugog pravila koje se razmatra.
Postavlja se pitanje kada i u kom sluaju koristiti metodu predstavljanja znanja pomodu produkcionih pravila. Osim ved pomenutih razloga koji su u vezi predstavljanja znanja koje se teko ili ne moe formalizovati (izraziti algoritamski), i uvek onda kada se znanje moe na pogodan nain izraziti preko velikog broja uslova (tipa IFTHEN kod proceduralnih programa). U tom sluaju, produkciona pravila su prirodniji nain izraavanja takvog znanja od odgovarajudeg proceduralnog programa.
Semantike mree
Semantike mree predstavljaju sutinski drugaiji nain predstavljanja znanja kod ES u odnosu na produkcione sisteme. Dok je kod produkcionih sistema osnovna karakteristika predstavljanje iskustvenog, specifinog, heuristikog znanja, semantike mree se koriste za predstavljanje znanja o pojmovima, odnosa izmeu pojmova, za odreivanje hijerarhijske pripadnosti pojmova, i tome slino. Za simboliko predstavljanje semantikih mrea koriste se grafovi.
Semantike mree
Primena mrea za predstavljanje znanja poinje sa idejom da se ljudsko znanje predstavi pomodu mrene strukture koja se sastoji od vorova i usmerenih grana. vorovi su oznaeni imenima i predstavljaju pojmove. Usmerene grane koje povezuju vorove, takoe su oznaene imenima i odreuju vrste veza izmeu vorova, tj. pojmova koje predstavljaju. Jedna od veoma znaajnih osobina semantikih mrea, koja se koristi i kod drugih metoda predstavljanja, je mogudnost nasleivanja (inheritance) osobina vorova.
vorovi na niim hijerarhijskim nivoima mogu da nasleuju osobine vorova na viim hijerarhijskim nivoima ako postoje odgovarajude grane, tj. veze. Nasleivanje donosi utede u memorijskom prostoru, ali na raun smanjenja brzine rada programa.
Semantike mree
Pojam na najviem hijerarhijskom nivou na slici 13 je Elementarna estica. vorovi Naelektrisanje, Masa i Spin predstavljaju karakteristike vora Elementarna estica.
Elementarna estica je ima Foton Naelektrisanje Lepton je je Masa je je je ima Hadron ima je Spin
Semantike mree
e , e , e , e
ima Elektronski Leptonski Broj
, , ,
ima Mionski Leptonski Broj
Mezon
Barion
ima
Barionski Broj
Pojmovi na slededem niem hijerarhijskom nivou su Foton, Lepton i Hadron. Pojmovi na niim hijerarhijskim nivoima nasleuju osobine pojmova sa viih nivoa. Tako Fotoni, Leptoni, Hadroni (Mezoni i Barioni) takoe imaju svojstva Masa, Naelektrisanje i Spin nasleena od vora Elementarna estica. vorovi sa elektronskim i mionskim leptonskim esticama imaju i odgovarajude leptonske brojeve, dok barioni imaju barionski broj. Ali leptoni nemaju barionski broj, niti barioni leptonski to i sledi iz putanja nasleivanja na slici
Semantike mree
Trojke OAV
Specijalan sluaj semantikih mrea kada postoje samo tri vrste vorova, su trojke OAV. U tom sluaju vorovi mogu da predstavljaju Objekte, Atribute objekata i Vrednosti atributa OAV. vorovi mogu biti povezani sa samo dve vrste veza iji su nazivi jeste (IS A) i ima (HAS A). Usmerene grane Objekat -> Atribut su tipa ima, dok su grane Vrednost -> Atribut tipa jeste. U sluaju ako je u sistemu predstavljen samo jedan objekat, trojke OAV se redukuju na parove AV, kada nema ni nasleivanja.
Trojke OAV
Grafik Ima Max je 1063 Min je 213 Ima Ima X Opseg je 0 - 1023 Ima Y Opseg je 0 - 1100
Okviri (Frames) su nain predstavljanja znanja koji je slino semantikim mreama prilagoen predstavljanju strukture pojmova, ali koji za razliku od mrea jo objedinjava i procedure. Okvir odgovara nekom pojmu koji se predstavlja, i sastoji se od niza slotova (slots). Slotovi predstavljaju atribute kojima se pojam opisuje, i sadre odgovarajude vrednosti koje atributi mogu da imaju. Osim odgovarajudih vrednosti, slotovima mogu da budu pridruene i procedure koje se pozivaju ili aktiviraju kada se na neki nain pristupa slotovima, na pr. kada se unose vrednosti, ili kada se ved unesene vrednosti menjaju.
Okviri
Ovakve procedure se nazivaju i demoni (demons) i mogu da na odreeni nain izraunavaju vrednost slota ili da rade neto drugo. Slino vorovima kod semantikih mrea, i okviri su meusobno povezani vezama. Ove veze mogu da odgovaraju odnosu klasa superklasa ili klasa - primerak klase (objekat) Kod okvira takoe postoji nasleivanje atributa i vrednosti atributa od hijerarhijski viih okvira. Pri tome specifine vrednosti atributa hijerarhijski niih okvira imaju prednost nad nasleenim vrednostima od hijerarhijski viih okvira.
Okviri
Okviri
U sluaju ako nije poznata konkretna vrednost atributa nekog okvira, onda se uzima nasleena vrednost od odgovarajudeg atributa hijerarhijski vieg okvira. Jedan okvir moe da nasledi atribute i vrednosti atributa ne samo od jednog okvira, nego i od dva ili vie okvira. U tom sluaju za okvir se kae da ima vie od jednog pretka (ancestor). Odgovarajudi graf koji predstavlja hijerarhijsku strukturu okvira onda nije drvo, jer u sluaju drveta, svaki vor moe da ima samo jednog pretka, dok predak moe da ima vie potomaka (descendent).
Objektno Orijentisano Programiranje OOP (Object Oriented Programming) je danas jedan od veoma vanih i iroko zastupljenih naina programiranja pored klasinog proceduralnog, zatim programiranja baziranog na pravilima, konekcionistikog naina programiranja koje se bazira na neuralnim mreama i dr. Objektno programiranje ima slinosti sa pedstavljanjem znanja pomodu frame-ova, jer je i tu zastupljeno objedinjavanje predstavljanja osobina objekata i procedura koje se koriste, kao i hijerarhijsko nasleivanje
Objekti
Osnovne razlike zbog kojih je OOP napredniji nain programiranja je mogudnost nasleivanja ne samo osobina (slots) ved i samih procedura od hijerarhijski viih klasa. Neke od osnovnih osobina OOP su apstrakcija, nasleivanje, enkapsulacija, polimorfizam. Bitne karakteristike nekog realnog sistema predstavljaju se slotovima klase objekata koja reprezentuje model sistema. Objekti su konkretni primeri klase objekata (instances), i imaju konkretne vrednosti slotova. Slotovi objekata su dobijeni od klase kojoj objekti pripadaju.
Objekti
Klasa moe da nasledi slotove kako od direktnih nadklasa (direct superclass), tako i od svih klasa du staze nasleivanja (inheritance path). Komunikacija izmeu objekata vri se preko poruka (messages). Da bi objekat mogao da odgovori na poruku odreenog imena (message name) koja mu je upudena, mora postojati odgovarajudi proceduralni programski kod (message handler). Ovaj kod se pridruuje odreenoj klasi, i izvrava se kada objekat te klase primi poruku odgovarajudeg imena.
Objekti
Isto kao i slotovi, i kod za odgovarajudu poruku moe se naslediti od viih klasa du putanje nasleivanja. Enkapsulacija predstavlja svojstvo da se objektu moe pristupati samo na strogo odreeni nain, tj. iskljuivo preko poruka. Na primer, slotovima nekog objekta moe se pristupiti bilo u cilju dobijanja njihovih vrednosti ili promene vrednosti samo preko sistema poruka, tj. slanjem odgovarajudih poruka. Jedna od interesantnih mogudnosti je da iste poruke upudene objektima koji potiu od razliitih klasa, mogu da daju sasvim razliite efekte.
Objekti
Efekat odgovarajude poruke zavisi ne samo od same poruke, ved i od klase objekta kome se upuduje. Razliite klase mogu imati sasvim razliite programske kodove koji se aktiviraju porukom istog imena. Ova osobina naziva se polimorfizam (polymorphism). Ovaj koncept se moe proiriti i na funkcije, tako da se definicija neke funkcije proiri analognim mogudnostima i za neke sasvim druge vrste podataka. Jednostavan primer je sabiranje brojeva, koji mogu biti tipa INTEGER ili FLOAT. U sluaju stringova, analogna operacija sabiranja predstavlja operaciju konkatenacije stringova, tj. nadovezivanje stringova. Izbor operacije koja de se izvriti pozivom date funkcije, zavisi od tipa argumenata te funkcije, pri emu programer ne mora da vodi rauna o tome, ved se izbor vri automatski.
Objekti
Radna memorija kao komponenta ES fiziki predstavlja deo RAM memorije raunara u kome se u toku rada ES belee i uvaju sve poznate injenice i podaci sa kojima ES u tom trenutku raspolae. Sadraj radne memorije ES u nekom trenutku naziva se kontekst (context) situacije ili problema. Sadraj radne memorije je promenljiv, jer se radom ES, tj. zakljuivanjem dolazi do novih injenica, od korisnika se moe zahtevati unos potrebnih podataka itd. Kod ES koji koriste mehanizam zakljuivanja unapred, radna memorija sadri i listu trenutno aktiviranih pravila (agenda).
Radna memorija
Aktivacija pravila kao to je reeno, zavisi od konteksta. Redosled aktiviranih pravila zavisi od izabrane strategije reavanja konflikta. Izvravanjem pravila na vrhu liste, moe da doe do promene i konteksta i samim tim i liste aktiviranih pravila. Pravilo koje se izvrava u THEN delu (desna strana) moe da potvrdi (assert) neke nove injenice, kao i da povue (retract) neke od postojedih injenica. Time se menja kontekst, a samim tim i lista pravila koja odgovara novom kontekstu.
Radna memorija
U radnoj memoriji se uvaju i vrednosti lokalnih i globalnih promenljivih. Kod sistema koji koriste okvire i objekte, vrednosti slotova uvaju se u radnoj memoriji. Mogudnosti ES da daju objanjenja dobijenih zakljuaka u toku rada, najede se bazira na memorisanju redosleda izvravanja pravila, to se takoe uva u radnoj memoriji. Kod sistema sa ulanavanjem unazad, za svaki uslov ispitivanog pravila kome ne odgovara nijedan od podataka u radnoj memoriji trai se da li postoji pravilo u bazi znanja koje ima isti zakljuak kao i uslov pravila koje se ispituje.
Radna memorija
Radna memorija
Ako takvo pravilo postoji, onda se vri ulanavanje, dok se u suprotnom trai od korisnika da unese traeni podatak koji se upisuje u radnu memoriju.
Podatak jednom upisan u radnu memoriju, ES moe da koristi do kraja procesa zakljuivanja, ukoliko se pre toga nekom naredbom ova vrednost ne obrie ili promeni.
Mehanizam za zakljuivanje
Mehanizam za zakljuivanje (MZ) (Inference Engine) je komponenta ES koja se za razliku od baze znanja i radne memorije u daleko manjoj meri prilagoava konkretnom problemu koji se reava. Kod softverskih alata za razvoj ES, kao to su ES Building Tools (ESBT) ili ES Shells, MZ je zamiljen da slui univerzalno za bilo koji konkretan sluaj problematike koja se reava primenom ES. Naime, uoeno je u praksi da se ista ili slina pravila za zakljuivanje mogu koristiti u velikom mnotvu konkretnih sluajeva.
Kod ES sa pravilima, razmotreni su neki osnovni opti principi rada mehanizma za zakljuivanje pri ulanavanju unapred i unazad. Zavisno od konkretnog ESBT, mogu postojati razne mogudnosti prilagoavanja mehanizma za zakljuivanje konkretnom problemu koji se razmatra. Pre svega, neki ESBT omogudavaju izbor metoda zakljuivanja unapred/unazad. Kontrola rada mehanizma za zakljuivanje kod sistema sa ulanavanjem unapred je pre svega u tome da se moe birati jedna od vie mogudih strategija razreavanja konflikta
Mehanizam za zakljuivanje
Mogude je zatim bazu znanja podeliti u vie nezavisnih segmenata ili modula, od kojih svaki ima svoju nezavisnu listu konfliktnih pravila. Na taj nain, mehanizam za zakljuivanje nezavisno radi u svakom modulu ime se postie strukturiranost baze znanja, posebno kod velikih sistema koji mogu imati vie stotina ili hiljada pravila. Kod sistema sa ulanavanjem unazad, u sluaju kada postoji hijerarhijska struktura ciljeva moe se kontrolisati izbor ciljeva tako da se izbor prepusti korisniku, ili da mehanizam za zakljuivanje sam sistematski pokuava da dokae jedan ili vie ciljeva.
Mehanizam za zakljuivanje
Moguda su i neka druga podeavanja, kao na primer izbor kada de i kakve poruke MZ da ispisuje, proizvoljno postavljanje praga za vrednost faktora pouzdanosti, sistematsko ispitivanje ILI (OR) klase pravila koridenjem naredbi MULTI i EXHAUSTIVE, itd. Kod sistema zasnovanih na okvirima i objektima, proces zakljuivanja je drugaiji nego kod sistema zasnovanih na pravilima. Zakljuivanje kod ovih sistema je manje oigledno, i odvija se kroz proces nasleivanja, izvravanja procedura pridruenih slotovima i klasama objekata koje se iniciraju nekim dogaajima - demoni, ili sistemom predaje poruka objektima.
Mehanizam za zakljuivanje
Kod sistema sa ulanavanjem unapred gde je proces zakljuivanja voen podacima, potrebno je vriti proveru tj. poreenje leve strane pravila u bazi znanja sa podacima, kada god doe do bilo kakve promene injenica u radnoj memoriji. Pod promenom se podrazumeva dodavanje nove, izmena ili brisanje ved postojede injenice u radnoj memoriji. U sluaju velikog broja injenica u radnoj memoriji, kao i baze znanja sa velikim brojem pravila, ovaj proces moe da bude dugotrajan i da znantno usporava ukupni rad ES.
RETE algoritam
RETE algoritam
Naivan prilaz problemu provere radne memorije i utvrivanju pravila ija je leva strana zadovoljena injenicama iz radne memorije, je da se svako pravilo poredi sa svim podacima iz radne memorije, to je naravno sasvim neprihvatljivo. Pomenuti RETE algoritam se pri pretraivanju radne memorije ograniava samo na promenjene podatke, i na ona pravila iz baze znanja iji uslovi mogu biti zadovoljeni izmenjenim podacima. Najpribliniji po performansama RETE algoritmu za prepoznavanje uzoraka je TREAT
RETE algoritam
Prema tvrenjima firme Haley Enterprise, RETE je nekoliko puta bri od TREAT algoritma za manji broj pravila, a sa povedanjem broja pravila taj odnos se uvedava u korist RETE algoritma. U odnosu na ostale postojede algoritme, RETE je bri za redove veliina.
Sistem za vezu sa korisnikom (User Interface) omogudava komunikaciju sa ES u raznim fazama razvoja, kao i za razne potrebe programera inenjera baze znanja ili krajnjeg korisnika. Mogudnosti koje prua korisniki interface mogu biti raznovrsne i u velikoj meri zavise od konkretno izabranog alata za razvoj (ESBT). Da bi ES mogao uspeno da komunicira sa korisnikom, jedan od osnovnih zahteva je da ES osim domenskog znanja o problemu koji se reava takoe poseduje i neophodno znanje o komunikaciji sa korisnikom.
Veza sa korisnikom
Veza sa korisnikom
Ovaj zahtev je poznat i pod nazivom Tredi zakon ekspertnih sistema Mogudnosti koridenog alata za razvoj ES I2+, su mnogobrojne, i uslovno se mogu grupisati na slededi nain: Rad sa bazom znanja Rad sa proceduralnim Pascal-skim programima Rad sa bazom podataka Programska komunikacija sa korisnikom Prve tri stavke vezane su za razvojnu fazu komponenata ES (baza znanja, Pascal-ski programi, baza podataka), dok se zadnja etvrta stavka odnosi na komunikaciju u toku rada samog ES.
Rad sa bazom znanja obuhvata editovanje samog teksta - izvornog koda baze znanja u file-u tipa PRL (skradeno od PRoduction Rules), kao i kompilaciju u kod u file-u tipa KNB (skradeno od KNowledge Base) koji neposredno obrauje mehanizam za zakljuivanje. U toku rada ES, tj. pretraivanja baze znanja, ES moe da ispisuje poruke korisniku, kao i da zahteva unos onih podataka do kojih se na drugi nain ne moe dodi. Poruke ES mogu se podeliti na poruke o grekama, i na sve ostale poruke koje se odnose na domen baze znanja kada sistem ispravno funkcionie.
Veza sa korisnikom
Veza sa korisnikom
Kada se proces zakljuivanja ES prekine radi ispisa neke poruke ili se eka na unos podataka, korisnik moe da postavi zahtev za obrazloenje postupka zakljuivanja, kao i za obrazloenje zbog ega se zahteva unos podatka od korisnika. Ovaj vid komunikacije sa korisnikom je obrazloen u slededem odeljku,
Tokom rada ES najede dolazi do niza meuzakljuaka koji prethode konanom reenju problema. Korisnik tokom procesa rada ES daje potrebne podatke koje ES od njega trai i koristi u daljem procesu reavanja problema. Komunikacija ES sa korisnikom je od znaaja kako za rad samog ES, tako i za razumevanje rezultata rada ES od strane korisnika. U toku rada ES korisnik moe da postavi zahtev ili upit (query) ES u cilju dobijanja dodatnog obrazloenja za podatke koje ES trai od korisnika, kao i obrazloenje za zakljuke do kojih je ES doao.
Kao odgovor na pitanje tipa kako, ES na pr. u sluaju koridenog sistema I2+ sa ulanavanjem unazad, moe da da hronoloki prikaz niza dobijenih zakljuaka sve do tekudeg pravila koje se razmatra, ili hronoloki niz podataka koje je uneo korisnik i na osnovu toga dobijenih zakljuaka. Takoe, u toku rada je mogud prikaz kompletne baze znanja sa ulananim pravilima (AND / OR tree). Na pitanje zato odgovor se moe dobiti prikazom tekudeg pravila koje ES razmatra.
Mogud je i kompletan pregled tekudeg konteksta baze znanja, gde se moe videti pouzdanost (certainty factor, confidence) i vrednost svake injenice (fact) i promenljive. U tom pregledu, podaci su grupisani po tipovima proste injenice (simple facts), numeriki (numeric), string i sloene objekat - atribut. Osim toga, za svaki podatak je dato i poreklo oznaeno odgovarajudim slovom
Prikupljanje znanja (Knowledge Acquisition - KA) je sutinski vana i nezaobilazna faza u razvoju svakog ES. Usled raznih tekoda i problema koji mogu da prate ovu fazu, esto se smatra da ova faza predstavlja usko grlo u razvoju ES. Pri tome se podrazumeva da u razvoju ES uestvuju najmanje dve osobe ili grupe ljudi, i to ekspert strunjak za datu oblast iz koje je i problem koji se reava, i programer - inenjer baze znanja koji iskustvo i znanje eksperta ugrauje u bazu znanja ES, koristedi pritom jednu ili vie metoda za predstavljanje znanja.
Prikupljanje znanja
Prikupljanje znanja
Osnovni uzroci tekoda kod prikupljanja znanja su slededi: Ljudsko znanje je vrlo sloeno i moe biti nedovoljno sistematizovano ili loe formulisano Ljudi esto imaju problema da na jasan nain izraze znanje koje imaju, kao i na koji nain ga koriste za reavanje problema Ako neko sve vie postaje strunjak u datoj oblasti, sve manje je svestan sloenih misaonih procesa koji vode do reenja, pa samim tim ima i tekoda u egzaktnom izraavanju naina na koji je doao do reenja, a to je neophodno radi ugraivanja u bazu znanja
Prikupljanje znanja
Znanje koje se od eksperta dobija najede ne samo da nije formulisano u formi pogodnoj za bazu znanja, ved ga je potrebno i eksplicitno izraziti Naravno, mogude je da ekspert i programer budu jedna ista osoba, u kom sluaju se moe redi da su navedeni problemi manje izraeni, ali u sutini pomenuti problemi ostaju i dalje. Ovde treba dodati i to da zahtevi razvoja vedih ekspertnih sistema najede prevazilaze mogudnosti samo jednog oveka.
Prikupljanje znanja
Za sam proces dobijanja, izvlaenja, crpljenja znanja od strunjaka (Knowledge Elicitation), moe se redi da predstavlja akviziciju znanja u uem smislu. Akvizicija znanja u irem smislu pored toga obuhvata i tano definisanje uloge, zadataka i strukture ES, kao i neizbeno testiranje, otklanjanje greaka i usavravanje postojedeg znanja. Pokuaji za reavanje problema akvizicije znanja kao uskog grla usmereni su na usavravanje klasinih tehnika i razvijanje sistema za mainsko automatsko uenje.
Prikupljanje znanja
Klasine tehnike akvizicije znanja obuhvataju razgovor sa strunjakom, posmatranje strunjaka na delu kada reava nove sluajeve kao i ved reene, audio - vizuelno snimanje u cilju kasnije detaljne analize i sl. Sistemi za mainsko uenje se uglavnom zasnivaju na analizi vedeg broja ulaznih podataka za ved reene probleme. Zadatak sistema je da pronae pravila kojima se eksplicitno izraava znanje koje kao implicitno postoji u podacima test primera.
Prikupljanje znanja
Ovakvi sistemi vre induktivno zakljuivanje pri nalaenju novih pravila. Razvijeno je vie ovakvih sistema u raznim oblastima primene. Jedan od vrlo interesantnih primera za automatsko uenje je sistem RULES koji primenom jednostavnog algoritma za induktivno uenje analizira dati skup test primera,.i nalazi odgovarajudi skup pravila. Svako naeno pravilo se ispituje da li sadri irelevantne uslove, tj. uslove koji su redundantni za dati skup test primera.
Sistem nije zavisan od problemske oblasti, i testiran je na primerima iz razliitih oblasti. Naena pravila omogudavaju reavanje problema tipa klasifikacije. RULEARN je sistem za automatsko uenje koji je razvijen za potrebe procene brzine korozije kod metala Ovaj sistem nalazi pravila koja izraavaju zavisnost brzine korozije od uslova u kojima se metali nalaze temperatura, koncentracija kiseline, procentualni sadraj silicijuma u metalu. Pravila naena sistemom za induktivno uenje se koriste u ES za reavanje novih problema.
Prikupljanje znanja
Pored svog neprikosnovenog informativnog sadraja, karakteristika ljudskog znanja je i nepouzdanost ili nesigurnost. Izvori nepouzdanosti u znanju, samim tim i kod ES mogu se podeliti na nepouzdanosti kod podataka, nepouzdanosti u samom pojednostavljenom problemskom modelu predstavljenom u bazi znanja, kao i na nepouzdanosti kod uverenja. Osnovni izvori nepouzdanosti kod podataka ili injenica su greke merenja, um, nepotpunost, ili poznavanje sa odreenom verovatnodom.
Predstavljanje nepouzdanosti
Domensko znanje sadrano u problemskom modelu moe biti nepotpuno, aproksimativno, neadekvatno i ogranieno samim modelom. Uverenja ugraena u bazu znanja mogu biti nedovoljno konzistentna ili nedovoljno opravdana. Poto se nabrojane nepouzdanosti ne mogu izbedi, potrebno je da se pre svega uoe tamo gde postoje i da se adekvatno predstave u okviru ES. S obzirom na raznovrsnost mogudih nepouzdanosti, postoje i razni pristupi ovom problemu. Sve pristupe bi mogli podeliti na one kod kojih se sama nepouzdanost eksplicitno ne predstavlja, kao i na one sa eksplicitnim predstavljanjem.
Predstavljanje nepouzdanosti
U prvu grupu izmeu ostalih spada i takav pristup kod koga se sama strategija reavanja problema prilagoava tako da se to je u mogudoj vedoj meri smanji uticaj nepouzdanosti. U prvu grupu izmeu ostalih spada i takav pristup kod koga se sama strategija reavanja problema prilagoava tako da se to je u mogudoj vedoj meri smanji uticaj nepouzdanosti. Neke od metoda za eksplicitno predstavljanje nepouzdanosti kod ES su raun verovatnode, faktori izvesnosti (certainty factors, confidence), fuzzy logika, koji de u slededim odeljcima biti ukratko razmotreni.
Predstavljanje nepouzdanosti
Klasian nain za predstavljanje nepouzdanosti je raun verovatnode. U sluaju na pr. produkcionih pravila koja povezuju zakljuak pravila sa n uslova, za izraunavanje verovatnode zakljuka z, kada su poznate pojedinane verovatnode uslova ui, moe da se primeni izraz za uslovnu verovatnodu:
P ( z , u1 , u 2 , u 3 ,...u n ) P z | u1 , u 2 , u 3 ,...u n Pu1 , u 2 , u 3 ,...u n
Verovatnoda
Neposredna primena gornjeg izraza zahteva poznavanje zdruenih verovatnoa u razlomku, to najee nije sluaj, pogotovo ako su uslovi ui zavisni.
Verovatnoda
P( z , u1 , u 2 , u 3 ,...u n ) Pz
Uslovna verovatnoa za premise u prisustvu zakljuka u brojiocu zadnjeg izraza, laka je za procenu, i moe se najee proceniti na osnovu prakse. Dalje uproavanje je mogue, ukoliko se moe
Faktori pouzdanosti predstavljaju neto drugaiji i jednostavniji nain za tretman nepouzdanosti, nego to je to sluaj sa koridenjem rauna verovatnode. Osnovni problem kod koridenja verovatnode je izraunavanje zdruene verovatnode meusobno povezanih uslova, zbog ega se i koristi ponekad neadekvatna aproksimacija da su uslovi nezavisni. Takoe se postavlja pitanje i koliko su procene verovatnoda subjektivne, pa samim tim i opravdanost primene rauna verovatnode. Faktorima pouzdanosti se kvantitativno izraava mera sigurnosti uslova - premisa ili zakljuka i to u okviru nekog intervala brojeva, najede od 0 do 100, mada moe biti i neki drugi interval.
Faktori pouzdanosti
Minimalna vrednost intervala, na pr. 0 znai da je uslov ili zakljuak pravila sigurno neistinit, dok maksimalna vrednost (100) znai potpunu istinitost. Ostale vrednosti izmeu ekstremnih oznaavaju proporcionalnu meru pouzdanosti, to je vrednost veda, veda je i pouzdanost. Dodeljeni faktor pouzdanosti uslova ima zadovoljavajudu vrednost ukoliko je vedi od vrednosti praga pouzdanosti (Threshold). U sluaju da je vrednost dodeljenog faktora pouzdanosti manja od praga, uslov se smatra neistinitim.
Faktori pouzdanosti
Faktori pouzdanosti
Ako pravilo ima vie uslova ui sa razliitim faktorima pouzdanosti CFi, rezultujuda pouzdanost se odreuje u zavisnosti od logikih operacija koje povezuju uslove. Rezultujuda pouzdanost vie uslova povezanih operacijom AND jednaka je faktoru pouzdanosti sa minimalnom vrednodu, dok je u sluaju kada su uslovi povezani operacijama OR, rezultujuda pouzdanost jednaka faktoru pouzdanosti sa maksimalnom vrednodu.
Negacija uslova ui sa NOT menja pripadajudu dodeljenu pouzdanost CFi u CFi kao
CFi ' 100 CFi
Faktori pouzdanosti
Pouzdanost zakljuka pravila CFp izraunava se kao proizvod rezultujueg faktora pouzdanosti uslova CFrez i dodeljenog faktora pouzdanosti zakljuka CFz.
CF p CFrez CFz / 100
vredost se deli sa sto, da bi se rezultat doveo u interval 0 - 100. U sluaju da vrednost nekog podatka korisniku nije poznata, podatak se evidentira kao nepoznat (Unknown).
Uslov ija se istinitost ne moe odrediti zbog nepoznatog podatka takoe se tretira kao nepoznat. Ukoliko pored nepoznatog uslova postoji jo neki uslov pravila sa faktorom pouzdanosti vedim od praga, zakljuak pravila se moe izvesti. Faktori pouzdanosti dolaze do izraaja i kada u bazi znanja postoji vie pravila sa istim zaljukom. Mehanizam zakljuivanja u tom sluaju daje prioritet pravilu iji zakljuak ima najvedi faktor pouzdanosti.
Faktori pouzdanosti