PROŠIRENJE INTERPRETERA XProlog FAZI UNIFIKACIJOM FUZZY UNIFICATION EXSTENSION TO THE XProlog INTEPRETER

Similar documents
Projektovanje paralelnih algoritama II

Mathcad sa algoritmima

KLASIFIKACIJA NAIVNI BAJES. NIKOLA MILIKIĆ URL:

Fajl koji je korišćen može se naći na

TEORIJA SKUPOVA Zadaci

A L A BA M A L A W R E V IE W

Red veze za benzen. Slika 1.

ADAPTIVE NEURO-FUZZY MODELING OF THERMAL VOLTAGE PARAMETERS FOR TOOL LIFE ASSESSMENT IN FACE MILLING

Algoritam za množenje ulančanih matrica. Alen Kosanović Prirodoslovno-matematički fakultet Matematički odsjek

ANALYSIS OF INFLUENCE OF PARAMETERS ON TRANSFER FUNCTIONS OF APERIODIC MECHANISMS UDC Života Živković, Miloš Milošević, Ivan Ivanov

Osobine metode rezolucije: zaustavlja se, pouzdanost i kompletnost. Iskazna logika 4

Slika 1. Slika 2. Da ne bismo stalno izbacivali elemente iz skupa, mi ćemo napraviti još jedan niz markirano, gde će

Uvod u relacione baze podataka

APPROPRIATENESS OF GENETIC ALGORITHM USE FOR DISASSEMBLY SEQUENCE OPTIMIZATION

PRIPADNOST RJEŠENJA KVADRATNE JEDNAČINE DANOM INTERVALU

Rešenja zadataka za vežbu na relacionoj algebri i relacionom računu

FIZIKALNA KOZMOLOGIJA VII. VRLO RANI SVEMIR & INFLACIJA

Neke primene teorije fazi skupova i fazi logike u procesiranju slika

MATHEMATICAL ANALYSIS OF PERFORMANCE OF A VIBRATORY BOWL FEEDER FOR FEEDING BOTTLE CAPS

Šta je to mašinsko učenje?

NEURONSKE MREŽE 1. predavanje

PRIMENA FAZI LOGIKE ZA REŠAVANJE NP-TEŠKIH PROBLEMA RUTIRANJA VOZILA I

FTN Novi Sad Katedra za motore i vozila. Drumska vozila Uputstvo za izradu vučnog proračuna motornog vozila. 1. Ulazni podaci IZVOR:

AIR CURTAINS VAZDU[NE ZAVESE V H

Đorđe Đorđević, Dušan Petković, Darko Živković. University of Niš, The Faculty of Civil Engineering and Architecture, Serbia

INVESTIGATION OF UPSETTING OF CYLINDER BY CONICAL DIES

ANALYTICAL AND NUMERICAL PREDICTION OF SPRINGBACK IN SHEET METAL BENDING

Zadatci sa ciklusima. Zadatak1: Sastaviti progra koji određuje z ir prvih prirod ih rojeva.

Uvod u analizu (M3-02) 05., 07. i 12. XI dr Nenad Teofanov. principle) ili Dirihleov princip (engl. Dirichlet box principle).

Programiranje u realnom vremenu Bojan Furlan

Metode praćenja planova

ANALYSIS OF THE RELIABILITY OF THE "ALTERNATOR- ALTERNATOR BELT" SYSTEM

CATAVASII LA NAȘTEREA DOMNULUI DUMNEZEU ȘI MÂNTUITORULUI NOSTRU, IISUS HRISTOS. CÂNTAREA I-A. Ήχος Πα. to os se e e na aș te e e slă ă ă vi i i i i

ZANIMLJIV NAČIN IZRAČUNAVANJA NEKIH GRANIČNIH VRIJEDNOSTI FUNKCIJA. Šefket Arslanagić, Sarajevo, BiH

P a g e 5 1 of R e p o r t P B 4 / 0 9

5 th INTERNATIONAL CONFERENCE Contemporary achievements in civil engineering 21. April Subotica, SERBIA

BROJEVNE KONGRUENCIJE

AN EXPERIMENTAL METHOD FOR DETERMINATION OF NATURAL CIRCULAR FREQUENCY OF HELICAL TORSIONAL SPRINGS UDC:

T h e C S E T I P r o j e c t

Software Process Models there are many process model s in th e li t e ra t u re, s om e a r e prescriptions and some are descriptions you need to mode

HENDERSON'S APPROACH TO VARIANCE COMPONENTS ESTIMATION FOR UNBALANCED DATA UDC Vera Djordjević, Vinko Lepojević

VELOCITY PROFILES AT THE OUTLET OF THE DIFFERENT DESIGNED DIES FOR ALUMINIUM EXTRUSION

ON SPACE AND TIME IN QUANTUM COSMOLOGY UDC

Iskazna logika 1. Matematička logika u računarstvu. oktobar 2012

176 5 t h Fl oo r. 337 P o ly me r Ma te ri al s

EXPERIMENTAL ANALYSIS OF THE STRENGTH OF A POLYMER PRODUCED FROM RECYCLED MATERIAL

Le classeur à tampons

DEVELOPMENT OF MATHEMATICAL MODELS TO PREDICT THE EFFECT OF INPUT PARAMETERS ON FEED RATE OF A RECIPROCATORY TUBE FUNNEL FEEDER

DYNAMIC HEAT TRANSFER IN WALLS: LIMITATIONS OF HEAT FLUX METERS

OH BOY! Story. N a r r a t iv e a n d o bj e c t s th ea t e r Fo r a l l a g e s, fr o m th e a ge of 9

NAPREDNI FIZIČKI PRAKTIKUM 1 studij Matematika i fizika; smjer nastavnički MJERENJE MALIH OTPORA

Nonlinear Statistical Methodology Applied on Modeling the Growth Correlation of Some Global Macroeconomic Parameters

Ash Wednesday. First Introit thing. * Dómi- nos. di- di- nos, tú- ré- spi- Ps. ne. Dó- mi- Sál- vum. intra-vé-runt. Gló- ri-

Preliminarno ispitivanje sadrž aja slike pomoć u histograma slike koris ć enjem SVM algoritma i neuronske mrež e

Sortiranje podataka. Ključne riječi: algoritmi za sortiranje, merge-sort, rekurzivni algoritmi. Data sorting

PRECIPITATION FORECAST USING STATISTICAL APPROACHES UDC 55:311.3

Sveučilište J. J. Strossmayera u Osijeku Odjel za matematiku Sveučilišni nastavnički studij matematike i informatike. Sortiranje u linearnom vremenu

On the relation between Zenkevich and Wiener indices of alkanes

Konstrukcija i analiza algoritama

DISTRIBUIRANI ALGORITMI I SISTEMI

A SPECTRAL ATLAS OF λ BOOTIS STARS

P a g e 3 6 of R e p o r t P B 4 / 0 9

Karakterizacija problema zadovoljenja uslova širine 1

DIRECT-MAT. WP4: Uklanjanje asfaltnih kolovoza i reciklaža putnih materijala u asfalt. Dr Milorad Smiljanić, Institut za puteve, Beograd

EXPERIMENTAL INVESTIGATION OF EXTRUSION SPEED AND TEMPERATURE EFFECTS ON ARITHMETIC MEAN SURFACE ROUGHNESS IN FDM- BUILT SPECIMENS

Algoritam za odre divanje ukupnog poravnanja dva grafa poravnanja parcijalnog ure daja

Use precise language and domain-specific vocabulary to inform about or explain the topic. CCSS.ELA-LITERACY.WHST D

DIZAJNIRANJE ORGANIZACIONE STRUKTURE UPRAVNIH ORGANA LOGISTIKE KORIŠĆENJEM FUZZY PRISTUPA

A COMPARATIVE EVALUATION OF SOME SOLUTION METHODS IN FREE VIBRATION ANALYSIS OF ELASTICALLY SUPPORTED BEAMS 5

FINITE-DIFFERENCE MODELING OF DIELECTRIC INTERFACES IN ELECTROMAGNETICS AND PHOTONICS

LLL Seminari u okviru TEMPUS projekta

APPLICATION OF NIR TECHNOLOGY IN THE ANIMAL FOOD INDUSTRY

Metoda parcijalnih najmanjih kvadrata: Regresijski model

PLANIRANJE SAOBRAĆAJA - Izvod iz vježbi -II dio-

DESIGN AND CALCULATION OF RING SPRINGS AS SPRING ELEMENTS OF THE WAGON BUFFER UDC : Jovan Nešović

Kontinualni lokacijski modeli. Jelena Panić 748/15 Vidosava Antonović 819/15

DEVELOPMENT OF A MATHEMATICAL MODEL TO PREDICT THE PERFORMANCE OF A VIBRATORY BOWL FEEDER FOR HEADED COMPONENTS

Summary Modeling of nonlinear reactive electronic circuits using artificial neural networks

U VOD U ALGOR IT ME I S T RUKT URE P ODATAK A

Product Function Matrix and its Request Model

MAGNETIC FIELD OF ELECTRICAL RADIANT HEATING SYSTEM

TemidaLib sistem za rad sa velikim brojevima TemidaLib Multiprecision Arithmetic Library

APPLICATION OF THOMAS-FERMI MODEL TO FULLERENE MOLECULE AND NANOTUBE UDC 547. Yuri Kornyushin

RELACIONI MODEL PODATAKA

c. What is the average rate of change of f on the interval [, ]? Answer: d. What is a local minimum value of f? Answer: 5 e. On what interval(s) is f

IMPROVEMENT OF HIPPARCOS PROPER MOTIONS IN DECLINATION

Executive Committee and Officers ( )

LIQUID VISCOSITY DETERMINATION BY CORIOLIS FLOW METER

Asian Journal of Science and Technology Vol. 4, Issue 08, pp , August, 2013 RESEARCH ARTICLE

LINGVISTIČKE FAZI PROMENLJIVE KAO ALAT ANALIZE U MENADŽMENTU INVENTARA


Some Observations on the Topological Resonance Energy of Benzenoid Hydrocarbons*

IDENTIFICATION OF DONOR LINES FOR IMPROVING FRUIT YIELD OF K 35 x K 12 EGGPLANT HYBRID

Rešavanje problema uspostavljanja uslužnih objekata primenom heurističkih metoda

NON-SPECIFIC METHODS FOR DETECTING RESIDUES OF CLEANING AGENTS DURING CLEANING VALIDATION

THE ROLE OF SINGULAR VALUES OF MEASURED FREQUENCY RESPONSE FUNCTION MATRIX IN MODAL DAMPING ESTIMATION (PART II: INVESTIGATIONS)

Modified Zagreb M 2 Index Comparison with the Randi} Connectivity Index for Benzenoid Systems

An Algorithm for Computation of Bond Contributions of the Wiener Index

Quantum Statistical Aspects of Charge Transfer on Electrodes~'

Transcription:

PROŠIRENJE INTERPRETERA XProlog FAZI UNIFIKACIJOM FUZZY UNIFICATION EXSTENSION TO THE XProlog INTEPRETER Milan Segedinac, Đorđe Obradović, Zora Konjović {mseg, obrad, ftn_zora}@uns.ns.ac.yu Fakultet tehničkih nauka, Novi Sad Sadržaj U ovom radu prikazan je proširen i delimično izmenjen model Prolog interpretera otvorenog koda, XProlog. Izmene i proširenja imala su za cilj da se omogući jednostavna implementacija proizvoljnih algoritama unifikacije fazi konstanti. Implementirana su tri algoritama fazi unifikacije: slaba unifikacija, relaksirana unifikacija i usmerena fazi unifikacije. Abstract This paper presents an extended and partially modified model of an open source Prolog interpreter, XProlog. The aims of the modifications and exstensions was to facilitate simple implementation of a new unification algorithms for fuzzy constants. Three fuzzy unification algorithms: weak unification, relaxed unification, and directional fuzzy unification are implemented. 1. UVOD Klasična unifikacija polazi od dva terma koje treba unifikovati. Ukoliko je moguće izvršiti unifikaciju, unifikacija uspeva i vraća se najopštiji unifikator tih termova, a ukoliko termovi nisu unifikabilni unifikacija ne uspeva. U klasičnoj unifikaciji termovi koji se unifikuju mogu da budu ili potpuno unifikabilni ili potpuno neunifikabilni. To znači da će klasična unifikacija biti neuspešna ukoliko se javi bilo kakva nejasnoća vezana za podatke. Znanja vezana za pojave iz realnog sveta često su nesigurna, pa su i podaci vezani za ta znanja često neprecizni. Zbog toga se velik broj problema koji se odnose na fenomeme iz realnog sveta ne može rešavati primenom logičkog programiranja koje se oslanja na klasičnu unifikaciju. Kada nije poznata tačna vrednost podataka može se koristiti fazi unifikacija. Fazi unifikacija za zadata dva terma pronalazi najopštiji unifikator i stepen unifikacije ukoliko je moguće izvrštit fazi unifikaciju zadatih termova. Ukoliko to nije moguće, unifikacija ne uspeva. Stepen unifikacije pokazuje u kojoj meri su unifikovani temrovi unifikabilni. Logičko programiranje koje se oslanja na fazi unifikaciju može se koristiti i za rešavanje problema opisanih nepreciznim znanjima. 1. ALGORITAMI FAZI UNIFIKACIJE Postoje različiti pristupi koji se bave problemom fazi unifikacije. Reference [1, 2] posvećene su algoritmu slabe unifikacije (weak unification). U [3, 4] izlaže se algoritam relaksirane unifikacije (relaxed unification) a u [5, 6] algoritam usmerene unifikacije (directed fuzzy unification). U [7] je izložen jedan algoritma fazi unifikacije zasnovan na sličnosti, a u [8] algoritam S Unifikacije. U ovom radu posebna pažnja je posvećena algoritmima slabe unifikacije, relaksirane unifikacije i direknte fazi unifikacije. Navedeni algoritmi implementirani su u okviru softverskog rešenja otvorenog koda, XProloga [9]. Implementacija podržava fazi konstantu, fazi broj koji je predstavljen trapezoidnom funkcijom pripadnosti. 2. XPROLOG Implementacija fazi unifikacije u Prologu oslanja se na XProlog, rešenje otvorenog koda napisano u Javi. XProlog je razvio Jean Vaucher u edukativne svrhe. Kako je namenjen upravljanju znanjem i zaključivanjem za potrebe Java Agenata, kratak je i relativno brz, a pošto je napisan u Javi, i portabilan. Na slici 1 prikazan je objektni model xprologa. Deo koji se odnosi na parser, odnosno klase Parser, ParserTokenManager i Token, kao i interfejs ParserConstants su generisani pomoću JavaCC. Za dalji rad nije potrebno detaljno objašnjenje ovih klasa. Konstruktor klase Engine koji kao parametar prima Prolog program, obezbeđuje parsiranje tog programa i kreiranje baze znanja klase KnowlegeBase. Postavljanje upita metodom setquery(string query) klase Engine, osim što parsira upit metodom getlist(string query) klase Parser, poziva metodu solve() klase Engine. Ova metoda obezbeđuje usklađen rad bektreking (backtracking) algoritma definisanog metodom backtrack() klase Engine i unifikacije deifnisane metodom unify(term t,stack s) klase Term. Term t je term sa kojim se term za koji je pozvana metoda unify(term t,stack s) unifikuje, a stek s je stek iz klase Engine na koji se smeštaju vrednosti koje će koristiti bektreking algoritam za određivanje sledeće putanje unifikacije. Ovaj stek će biti iskorišćen i za smeštanje vrednosti potrebnih za evaluaciju fazi unifikacije. 3. PROŠIRENJE XPROLOGA ZA PODRŠKU FAZI UNIFIKACIJE Za potrebe implementacije fazi unifikacije, dizajn XProloga, prikazan na slici 1 je proširen i delimično izmenjen, kako bi mogao da podrži jednostavnu implementaciju proizvoljnog algoritma unifikacije. Dijagrami klasa na slikama 2, 3, 4 i 5 predstavljaju relevantne detalje dizajna implementiranog interpretera koji podržava algoritme fazi (fleksibilne) unifikacije. Na slici x.x možemo videti da je unifikacija izdvojena iz klase Term u posebnu apstraktnu klasu Unification čija metoda unify(term t1, Term t2, Stack s) unifikuje termove t1 i t2, a vrednosti potrebne za bektreking ostavlja na steku klase Engine. Vraća realnu vrednost koja je indikator uspešnosti izvršvanja.

KnowledgeBase ht : Hashtable prim itives : HashSet reset () consult (java.lang.boolean fname) addprimitive (Clause clause) addclause (Clause clause) assert (Term term ) retract (T erm term, Stack stack) retractall (Term term, Term arity) dump (boolean full) list (Term term, Term arity) KnowledgeBase ht : Hashtable prim itives : HashSet reset () consult (java.lang.boolean fname) addprimitive (Clause clause) addclause (Clause clause) assert (Term term ) retract (T erm term, Stack stack) retractall (Term term, Term arity) dump (boolean full) list (Term term, Term arity) db db Engine unifi cation Unification : 2 retractclause solve () backtrack () doprimitive () consult (java.lang.string fname) setquery (java.lang.string query) run () truthlevel unbind (Term t1) unify (T erm t1, T erm t2, Stack s) TruthLevel : 2 Com putet ruthlevel (Stack s) clause Clause ChoicePoint nextclause term List goallist term call T erm List tostring () Step next retractcl ause Engine solve () backtrack () doprimitive () consult (java.lang.string fname) setquery (java.lang.string query) run () T erm Clause ref functor arity bound varid deref bind () unbind () unify (T erm t, Stack s) refresh (Term l[]) cleanup () dup () tostring () args Prim itive clause ChoicePoint nextclause goallist call tostring () term List T erm : 2 term T erm Li st Prim i tive Step next functor arity bound varid deref : java.lang.stri ng Num ber val Cut refresh (Term l[]) cleanup () dup () tostring () ParserConstants ParserT okenm anager getnext oken () : T oken Slika 2. Modelovanje unifikacije. tokensource next Parser token kind im age T oken Slika 1. Dijagram klasa interpretera xprolog

Za uključivanje proizvoljnog algoritma unifikacije, potrebno je algoritam implementirati u klasi koja nasleđuje klasu Unification. Metoda unbind(term t) razvezuje varijablu od njoj dodeljene vrednosti i poziva se iz metode solve() klase Engine. Deo koji se odnosi na parser, odnosno klase Parser, ParserTokenManager i Token, kao i interfejs ParserConstants su generisane pomoću JavaCC. Za dalji rad nije potrebno detaljno objašnjenje ovih klasa. Na slici 2 možemo videti da je unifikacija izdvojena iz klase Term u posebnu apstraktnu klasu Unification čija metoda unify(term t1, Term t2, Stack s) unifikuje termove t1 i t2, a vrednosti potrebne za bektreking ostavlja na steku klase Engine. Vraća realnu vrednost koja je indikator uspešnosti izvršvanja. Na slici 3 vidimo da je klasa Term proširena semantičkom komponentom modelovanom klasom SemanticComponent. Klasa SemanticComponent ima dva steka za semštanje fazi konstanti (sstack i gstack), jedan stek opšte namene (universalstack) i stek namenjen za smeštanje akcija (actionstack). Ovakva struktura je dovoljna za implementaciju analiziranih algoritama fazi unifikacije, odnosno algoritam slabe unifikacije, relaksirane unifikacije i direktne fazi unifikacije. Klasa Term nasleđena je u klasi FuzzyConstant koja ima funkciju pripadnosti modelovanu klasom MembershipFunction. Podrazumeva se da je funkcija pripadnosti trapezoidna i noramalizovana i da je data nad skupom realnih brojeva. Na slici 4 prikazan je deo modela koji se odnosi na stepen unifikacije. Za razumevanje modela, potrebno je detaljnije objasniti specifičnosti implementiranih algoritama. Alogritam slabe unifikacije računa stepen unifikacije u toku rezolucije. Nakon unifikacije dva terma, određuje se sličnost ta dva terma i tnorma dobijene vrednosti i vrednosti prethodnog stepena unifikacije postaje aktuelna vrednost stepena unifikacije. Nakon dobijenog odgovora, potrebno je vratiti se na prethodni čvor odluke, da bi se tražili i ostali mogući odgovori, a to podrazumeva i vraćanje stepena unifikacije na vrednost koja odgovara tom čvoru odluke. U implementiranom rešenju se za čuvanje vrednosti stepena unifikacije koristi universalstack klase SemanticComponent na koji se nova vrednost stepena unifikacije smešta metodom execute() klase UnifySimilarlyAction. FuzzyConstant : 1 getvalueinpoint (double x) getp (double x) getco G () : dou ble : dou ble : dou ble M em bershipfunction x : d ouble [] m f TruthLevel : 1 {ab stract} Com putet ruthlevel (Stack s) 1..1 ref fu nctor arity bo und varid de ref refresh (Term l []) clean Up () du p () to S tring () T erm : 1 : java.la ng.s tring : boo lean : boo lean : java.la ng.s tri ng a rgs SimilarityRelation : 2 {a bstract} si m i la ri ty Rel axeduni fica ti onlevel <<Override>> Com putet ruthlevel (Stack s) Un ificati ondegreele vel Nuber val : d ouble Cut <<Override>> Com putet ruthlevel (Stack s) Si m il ari tyleve l sccontret scid g S tack ss ta ck u niversalsta ck a ctio n S tack sc S em an ticco m po nent : 2 i se m p ty () : bo olean : S tack<fuzzycon stant> : S tack<fuzzycon stant> : S tack : S tack<a ction> 1..1 <<Override>> Com putet ruthlevel (Stack s) T Norm : 3 {abstra ct} compute (double x1, double x2 ) Slika 4. Modelovanje stepena unifikacije za implementirane algoritme Slika 3. Modelovanje semantičke komponente

Objekat klase FuzzyConstant, čija semantička komponenta sadrži informaciju o stepenu unifikacije, smešta se na stek klase Engine. Kada se u metodi backtrack() klase Engine naiđe na objekat klase Term, poziva se metoda unbind(term t) klase Unification. Ovde se metodom unbind(term t), ukoliko je term instanca klase FuzzyConstant, izvršava metoda unexecute() objekta klase UnifySimilarlyAction koji je na vrhu steka acija tog objekta klase FuzzyConstant i time se poništava uticaj koji je prethodna unifikacija izvršila na vrednost stepena unifikacije. Implementacija algoritma relaksirane unifikacije podrazumeva da će, za fazi konstantu koja se unifikuje, biti sačuvane sve fazi konstante sa kojima se unifikovala u toku rezolucije, kako bi se, nakon rezolucije, mogla odrediti vrednost stepena unifikacije. Stek gstack klase SemanticComponent koristi se za smeštanje fazi konstanti sa kojima se fazi konstanta kojoj ta semantička komponenta pripada unifikuje. Smeštanje fazi konstante na gstack klase SemanticComponent ostvaruje se pozivanje metode execute() objekta klase UnifyFCandVAction, u toku unifikacije dva fazi konstante. Da bi se mogla poništiti ova akcija, na stek klase Engine se smešta fazi konstanta sa semantičkom komponentom za koju je pozvana ta akcija. Poništavanje akcije postiže se pozivanjem metode unexecute() za objekat klase UnifyFCandVAction koji je bio na vrhu steka akcija fazi konstante na koju je bektreking algoritam naišao. Implementacija algoritma direktne fazi unifikacije podrazumeva da će, za fazi konstatu koja se unifikuje, biti sačuvane fazi konstante sa kojima je unifikaovana, i to tako da su fazi konstante koje označavaju specifična znanja odvojene od fazi konstanti koje označavaju opšta znanja. Za potrebe čuvanja fazi konstanti pri unifikaciji, koriste se stekovi gstack i sstack klase SemanticComponent. Na gstack se semštaju fazi konstante koje se odnose na opšta, a na sstack posebna znanja. Smeštanje fazi konstanti na stekove obavjla se pozivanjem metode execute() akcije koja je objekat klase UnifyFCandFCAction, UnifyFCandVAction, UnifyVandFCAction ili UnifyVandVAction. Nakon izvršene unifikacije, fazi konstanta sa semantičkom komponentom kojoj ta akcija pripada se smešta na stek klase Engine, da bi poništavanje te akcije u metodi backtrack() klase Engine bilo moguće. Akcija se poništava metodom unexecute() klase naslednice klase Action. Nakon uspešnog izvođenja odgovora računa se vrednosti stepena unifikacije, pozivanjem metode computetruthlevel(stack s) objekta koji je instanca klase naslednice apstraktne klase TruthLevel. Za slučaj slabe unifikacije to je objekat klase WeakUnificationLevel, za slučaj relaksirane unifikacije objekat klase RelaxedUnificationLevel i objekat klase UnificationDegreeLevel u slučaju usmerene fazi unifikacije. Deo koji se odnosi na modelovanje akcija prikazan je na slici 5. Un i fyfca n d FCA cti o n Un i fyv a n d FCA ti o n SemanticComponent : 1 scco n tre t : i n t scid : i n t g S ta ck ss ta ck u n i ve rsa l S ta ck a cti o n S ta ck i se m p ty () : b o o l e a n u n u n Un i fys i m i l a rl ya cti o n << O ve rri d e > > << O ve rri d e > > u n : S ta ck<fu zzyco n sta n t> : S ta ck<fu zzyco n sta n t> : S ta ck : S ta ck<a cti o n > sc2 fc1 fc2 sc1 sc2 g sa d d i ti o n L e n g th ssa d d i ti o n L e n g th u n sc1 <<O ve rri d e >> <<O ve rri d e >> Un i fyfca n d V A cti o n << O ve rri d e >> << O ve rri d e >> Slika 5. Modelovanje akcija Un i fyv a n d V A cti o n A cti o n u n u n fc1 : Fu zzyco n sta n t : Fu zzyco n sta n t : S e m a n ti cco m p o n e n t : S e m a n ti cco m p o n e n t : i n t : i n t FuzzyConstant : 2 getvalueinpoint (double x) g e tp (d o u b l e x) g e tco G () fc2 Uvođenje klase Action omogućuje jednostavno poništavanje efekata unifikacije u bektreking algoritmu pozivanjem metode unexecute(). Klase nasleđene iz klase Action, odnosno klase UnifyVandFCAtion, UnifyVandVAction, UnifyFCandFCAction, UnifyFCandVAction i UnifySimilarlyAction odnose se na akcije koje je potrebno izvršavati u toku rezolucije podržane implementiranim algoritmima. Deo modela koji se odnosi na algoritme unifikacije prikazan je na slici 6. U okviru implementiranih algoritama moguće je koristiti proizvoljnu tnormu, što primenu fazi unifikacije čini fleksibilnijom. Deo modela kojim su opisane relacije prikazan je na slici 7. SimilarityRelation je apstraktna klasa koja modeluje relacije sličnosti, DistanceRelation je apstraktna klasa koja modeluje relacije udaljnosti. Implementirane relacije sličnosti računaju sličnost između fazi konstanti na osnovu udaljenosti fazi konstanti. Procenu sličnosti fazi brojeva, koja je potrebna za procenu stepena unifikacije, jednostavno je izmeniti implemenatacijom nove relacije sličnosti fazi brojeva u okviru klase naslednice klase SimilarityRelation.

T No rm : 1 Relation compute (double x1, double x2 ) com pute (T erm t1, T erm t2) : doubl e T Norm : 2 L u ka si e wi tzt No rm M in P rod u ctt No rm compute (double x1, double x2) d Ra letion DistanceRelation : 2 S im il a rityre lation : 3 Uni ficationdegree We a kun ifica tion 1..1 sre lati o n di stance di stance <<Override>> compute (Term t1, Term t2) DistanceRelation : 1 SimilarityRelation : 1 <<O ve rri d e>> <<O ve rri d e>> bindinverese (T erm t1, T erm t2, Stack s) bind (T erm t1, T erm t2, Stack s) : d o u b le M axi m um Distance Re laxe Un ifica tion bindinverese (T erm t1, T erm t2, Stack s) bind (T erm t1, T erm t2, Stack s) : d o u b le <<Override>> compute (Term t1, Term t2) COGDi stance <<Override>> compute (Term t1, Term t2) Dire cti o n a lfu zzyun i fica ti on bindinverese (T erm t1, T erm t2, Stack s) bind (T erm t1, T erm t2, Stack s) : d o u b le ChenDistance <<Override>> compute (Term t1, Term t2) ReciprocalDistanceSi m il arity Unification : 1 <<Override>> compute (Term t1, Term t2) Norm alizeddistancesi m il arity : b o o l e a n <<Override>> com pute (T erm t1, T erm t2) : doubl e Slika 6. Modelovanje algoritama unifikacije Slika 7. Modelovanje relacija 4. PRIMERI KORIŠĆENJA Primena proširenog XProloga biće prikazana na jednostavnim primerima fazi unifikacije algoritmima relaksirane unifikacije, slabe unifikacije i usmerene fazi unifikacije. Relaksirana unifikacije može se primeniti na unifikaciju proizvoljnih termova koji mogu biti sintaktički različiti. Međutim, kako je cilj ovog rada prikazivanje proširenja modela XProloga fazi unifikacijom, relaksirana unifikacija biće ilustrovana na primerima koji se odnose na fazi skupove. U algoritmima relaksirane unifikacije i slabe unifikacije, koriste se Čenovo rastojanje [10], presek fazi skupova računa se kao standardni presek [11], a sličnost fazi skupova određuje se kao standardni komplement rastojanja fazii skupova [10]. U algoritmu relaksirane unifikacije, korektnost terma računa se kao tnorma sličnosti između svih pojedinih termova koji se nalaze u skup terma za koji se računa korektnost. Tako će vrednosti stepena unifikacije za relaksiranu i slabu unifikaciju biti jednak. Na primeru 1 vidimo rezultate fazi unifikacije za bazu znanja koja ima samo jednu činjenicu i nema ni jedno pravilo zaključivanja. Primer 1 Baza znanja:,190)). Upit:.3,190)).

Primenom relaksirane ili slabe inifikacije dobija se sledeća vrednost stepena unifikacije. Odgovor: R:0.9302325581395324 >>> Answer:.3,190)) ( 0 ms.) Ukoliko se koristi algoritam usmerene fazi unifikacije, dobiće se: Odgovor: R:1.0 >>> Answer:.3,190)) ( 16 ms.) Primerom 2 je ilustrovana razlika između zaključaka dobijenih primenom algoritama relaksirane ili slabe unifikacije i primenom algoritma usmerene fazi unifikacije. Ukoliko se koristi algoritam usmerene fazi unifikacije, dobijaju se intuitivno prihvatljivija rešenja. Baza znanja sastoji se od dve činjenice i jednog pravila zaključivanja Primer 2 Baza znanja:,190)). visina(petar,fuzzyconstant(170,175,18 3,188)). visok(x): visina(x,fuzzyconstant(175,180,200,20 0)). Upit: visok(jova). Primenom relaksirane ili slabe unifikacije dobija odgovor: R:0.13793103448275862 >>> Answer: visok(jova) ( 0 ms.) Primenom algoritma usmerene unifikacije dobija se odgovor: R:1.0 >>> Answer: visok (jova) ( 0 ms.) 5. ZAKLJUČAK U ovom radu prikazan je proširen i delimično izmenjen model Prolog interpretera XProlog. Izmene i proširenja obezbedila su mogućnost jednostavne implementacije proizvoljnog algroritma unifikacije, što je ilustrovano implementacijom više algoritama fazi unifikacije, odnosno algoritma slabe unifikacije, relaksirane unifikacije i usmerene fazi unifikacije. U implementiranim algoritmima podržani su fazi brojevi pretstavljeni trapezoidnim funkcijama pripadnosti. Jedan od pravaca daljih istraživanja odnosio bi se na implementaciju algoritama koji bi podržavali veći broj tipova fazi skupova. Osim ovoga, dalji rad mogao bi da se odnosi i na implementaciju fazi aritmetike u okviru implementiranih rešenja, implementaciju novih algoritam unifikacije (ne bi morali biti implementirani jedino algoritmi fazi unifikacije), kao i na primenu implementiranog rešenja u realnim uslovima. LITERATURA [1] Sessa, M. I., Approximate Reasoning by Similaritybased SLD Resolution, Theoretical Computer Science, Volume 275, Number 1, pp. 389426(38), 28 March 2002 [2] Formato, F., Gerla, G., Sessa, M. I., Similaritybased Unification, Fund. Inform. 40, 2000 [3] AbouAssaleh, T., Cercone, N., Relaxed Unification Proposal, Proceedings of the 15th Conference of the Canadian Society for Computational Studies of Intelligence on Advances in Artificial Intelligence, pp. 364365, 2002. [4] AbouAssaleh, T., Cercone, N., Kelšelj, V., An Overview of the Theory of Relaxed Unification, Proceedings of the International Conference on Advances in the Internet, Processing, Systems, Interdisciplinary Research, IPSI2003, Sveti Stefan, Montenegro, Former Yugoslavia [5] Alsinet, T., Godo,L., Fuzzy Unification Degree, Proceedings of Logic Programming and Soft Computing'98, in conjunction with JICSLP'98, Manchester, June 1998. [6] RiosFilho, L. G., Sandri, S. A., Contextual Fuzzy Unification, Poreceedings 5th IFSA 95 Congress, ppn 8184, Sao Paulo, Brazil, 1995. [7] Medina, J., OjedaAciego, M., Vojtaš, P., A Multi Adjoint Approach to Similarity Based Unification, Electronic Notes in Theoretical Computer Science 66 No. 5, 2002 [8] Virtanen, H., E., Vague Domains, SUnification and Logic Programming, Electronic Notes in Theoretical Computer Science 66 No. 5, 2002. [9] http://www.iro.umontreal.ca/~vaucher/xprolog/ [10] Johanyak, Z. C., Kovacz, S. Distance Based Similarity Measure of Fuzzy Sets, www.bmf.hu/conferences/sami2005/szilveszter.pdf [11] Klir, G. J., Fuzzy Sets and Fuzzy Logic: Theory and Applications, Prentice Hall PTR, 1995. NAPOMENA: Rezultati rada su deo projekta tehnološkog razvoja Alternativa za eupravu bazirana na otvorenim standardima i otvorenom kodu koji finansira Ministarstvo za nauku i tehnološki razvoj Republike Srbije.