Strokovne razprave Zlepki v objektno usmerjenem okolju Mojca Indihar Štemberger, Janez Grad Univerza v Ljubljani, Ekonomska fakulteta, Kardeljeva ploščad 17,1000 Ljubljana mojca.stemberger@uni-ij.si. janež.grad@uni-lj,si Povzetek Zaradi zagotavljanja konkurenčnih prednosti organizacije vse bolj uporabljajo različna orodja za analiziranje podatkov, kot so na primer orodja za rudarjenje po podatkih, Zlepki so odsekoma polinomske funkcije, ki se uporabljajo tudi pri nekaterih tovrstnih orodjih. Razen tega se jih veliko uporablja pri računalniško podprtem geometrijskem oblikovanju. Prispevek predstavlja objektni model zlepkov, ki je neodvisen od konkretne programske rešitve in lahko služi za osnovo vsake programske rešitve, ki uporablja zlepke. Tako se zmanjšuje neskladje med tovrstnimi programskimi rešitvami in povečuje njihova združljivost. Za modeliranje sva uporabila standardni jezik za objektno modefiranje UML, Predlagava tudi shranjevanje zlepkov v bazi podatkov, ki podpira standard ODMG, Opisan je tudi prototip sistema, ki sva ga razvila v programskem jeziku Java. Abstract Data analysis like Data Mining Is getting more and more important every day because the organizations want to get their competitive advantage. Splines are piecewise polynomial functions that are used for analysis by some Data Mining tools. Besides, they are widely used in CAGD applications for designing. The article presents the object model of splines that is independent of the concrete application but can serve as basis for any application which uses splines and reduces tire gap among such applications and their incompatibility. It has been modeled by standard object-oriented modeling language UML. We also propose saving splines In an ODMG compliant database. In the article the prototype of a system that has been developed in Java is presented as well. 1. UVOD Če hoče organizacija v vse težjih pogojih uspešno poslovati in si zagotavljati konkurenčne prednosti, mora s podatki upravljati kot s pomembnimi viri. To je glavni razlog vse večjega uveljavljanja različnih orodij za analiziranje podatkov, kot so na primer orodja O LAP (angl. On-Une Analitical Processing) ali pa orodja za rudarjenje po podatkih (angl. Data Mining). Ena izmed metod, ki jih orodja za rudarjenje po podatkih uporabljajo za odkrivanje povezav med velikimi količinami podatkov, je tudi aproksimacija oziroma regresija, pri čemer gre za to, da dobimo povezave med spremenljivkami v obliki matematičnih funkcij. Na ta način dobimo tudi napoved za vrednosti neke vhodne spremenljivke v točki, kjer njene vrednosti ne poznamo. Takšne metode so uporabne predvsem pri napovedovanju, ki lahko služi kot osnova za bolj kakovostno odločanje. Razvoj na področju matematike in statistike je pokazal, da so v ta namen najprimernejše funkcije zlepki. To so odsekoma polinomske funkcije, ki omogočajo lokalne j So aproksimacijo, v stičiščih pa gladko pre- hajajo ena v drugo. Orodja, ki nam omogočajo aproksimacijo in s tem povezano napovedovanje, temeljijo na teoriji aproksimacije s pomočjo zlepkov (De boor, 197«), (Friedman, 1991), (Eubank, 1999), (Pagan, Ullah, 1999). Slika 1 prikazuje orodje za rudarjenje po podatkih MARS {kratica za angl. Multivariate Adaptive Regression Splines), ki ga razvija podjetje Salford Systems. Razen za aproksimacijo se zlepke veliko uporablja tudi na področju računalniško podprtega geometrijskega oblikovanja (angl. Computer Aided Geometric Design - CAGD). Z zlepki so npr. v računalniku predstavljeni znaki, razen tega so del vsakega zmogljivejšega paketa za oblikovanje (npr, CorelDraw). Modernega oblikovanja si brez zlepkov pravzaprav ne moremo predstavljati. Razvoj oblikovanja z zlepki se je začel v šestdesetih letih v Franciji in ZDA zaradi potreb avtomobilske in letalske industrije (Farin, 1997). Zlepki so na kratko opisani v razdelku 2, Bralec, ki z njimi ni seznanjen, lahko o zlepki h prebere več v navedeni literaturi. i<7*mil;j ml NFO-R M AT IKA 2000 ŠtevilkaletnikVIII Mojca Indiliar Štemberger, Janez Grad: Zlepki v objektno usmerjenem okolju Slikal: orodje MARS za rudarjenje po podatkih, ki uporablja zlepke. Problem, ki ga vidiva na področju uporabe zlepkov, je neskladje med različnimi programskimi rešitvami, ki zlepke uporabljajo, in njihova nezdružljivost Predlagava uporabo enotnega objektnega modela, ki je neodvisen od konkretne programske rešitve, sistema za upravljanje baze podatkov (SUBP) in programskega jezika. Za razvoj modela sva uporabila standardni jezik za objektno modeliranje UML (Booch, Kumbaugh, Jacobson, 1999), Kazviti model zajema uporabo zlepkov tako na področju aproksimarije kot na področju računalniške grafike ali na katerem drugem področju in predstavlja osnovo tovrstne programske rešitve. Zaradi lastnosti objektne usmerjenosti ga je mogoče razširiti s potrebami konkretne programske rešitve. Opisan je v razdelku 3. Prispevek predstavlja tudi rešitev za shranjevanje zlepkov v objektni bazi podatkov (razdelek 4). Pri tem sva uporabila standard ODMC (Cattell at al., 2000), ki ga razvija istoimenska organizacija. Standard je neodvisen od uporabljenega programskega jezika in sistema za upravljanje baze podatkov. Mogoče ga je uporabiti za transparentno shranjevanje v "pravi" objektni bazi podatkov in preko posebne preslikave med objekti in relacijami tudi v relacijskih bazah podatkov. Peti razdelek prispevka je namenjen kratki predstavitvi prototipa sistema, ki sva ga razvila s pomočjo programskega jezika Java in objektne baze podatkov Poet, šesti pa zaključku. 2. ZLEPKI Pred razvojem, katerega rezultat so zlepki, se je za interpolacijo in aproksimacijo največ uporabljalo poli- nome, saj je relativno enostavno izračunati njihove koeficiente. Vendar z naraščanjem števila točk, ki jih želimo in-terpolirati ali aproksimirati, ni vedno mogoče najti zadovoljive funkcije v razredu polinomov. Polinomi višjega reda lahko oscilirajo (Schumaker, 1993), kar pomeni, da je bilo potrebno vpeljati nov razred funkcij. Zlepki, to so odsekoma polinomske funkcije, ki v stičiščih gladko prehajajo ena v drugo, so takšen razred funkcij. Zlepek je možno izraziti kot zaporedje polinomov definiranih na posameznih odsekih ali pa v posebni obliki kot B-zlepke ali Beziereve krivulje {de Boor, 1978), (Farm, 1997), {Schumaker, 1993). Zlepki, s katerimi se srečujemo pri orodjih za rudarjenje po podatkih, običajno sodijo v prvo skupino, saj funkcijo največkrat želimo izraziti v obliki poli-nomskih odsekov. Slika 2 prikazuje kubični zlepek, sestavljen iz dveh odsekov: x<\ 2xi — 3x2 +3.y-1; a*>1 Kot je razvidno s slike, je funkcija v točki * = l gladka. B-zlepki, ki služijo za posebno predstavitev poli-nomskih zlepkov, imajo še dodatne prednosti, kot je npr. večja numerična stabilnost (Schumaker* 1993). J_l_L J_L Slika 2: kubični zlepek. 2000 Številka 4 letnik VIK i ipmif u trrlMFOfl M AT IK A 249 Mojca Indiliar Štemberger, Janez Grad: Zlepki v objektno usmerjenem okolju Definiramo jih lahko na več načinov, najenostavneje Slika prikazuje tudi njen kontrolni poligon, to je lom- pa s pomočjo rekurzivne formule: 'i+i 1 fi*t. 1 pa imata vrednost 0 kadar je tl+k_t - t, - 0 sli '/♦* -tM =0- 250 B-zlepek reda k Bik(x) je polinom reda k, ki ima pomembne lastnosti: £,,(.v)>0/ko .ve (/,,/, J, £,((.v) = 0,ko xe J. Razlog za vpeljavo B-zlepkov je definicija B-funkcij in B-ki ivu!j. Prve se uporablja predvsem za interpolacijo ali aproksimacijo, slednje pa pri oblikovanju. [i-funkeija reda k z zaporedjem vozlišč t = (¡: je vsaka linearna kombinacija B-zlepkov reda A: f(x)=£alč,Jx), /=0 kjer so «,,/ = 0.1.....m realna Števila. Znanih je veliko algoritmov za interpolacijo ali aproksimacijo z B-funkcijami {De Boor, 1978), {Eubank, 1999) (Pagan, Ullah, 1999). B-krivulja je izražena parametrično z (Farin, 1997): ■ B-zlepki reda k, a zaporedjem vozlišč t = (/,)[",',' in ■ kontrolnimi točkami K>}'\____, Vm, kjer ima vsaka .v in v koordinati: Vt =(_v.,_i'j). Slika prikazuje kubično B-krivuljo (reda 4) s kontrolnimi točkami l'' "V N Raziskovalec Interpolacija z ziepki Shranjevanje zlepka «Includfti q «includes^r Spreminjanje oblike zlepita Oblikovalec Oblikovanje z ziepki «IncludM»* o Tvorjenje zlepka Slika 4: Diagram primerov uporabe sistema. 2000 ■ številka 4 - letnik VIII ki, drugi pa s primerom uporabe Oblikovanje z ziepki. Vsi trije Omenjeni primeri uporabe vsebujejo (oziroma uporabljajo) primer uporabe Shranjevanje zlepkov, tretji pa še Spreminjanje oblike zlepka in Tvorjenje zlepka. S pomočjo diagramov zaporedja sva podrobneje modelirala primer uporabe Spreminjanje oblike zlepka. Siika 5 prikazuje diagram zaporedja za B-krivulje, podoben diagram pa lahko narišemo tudi za Beziere-ve krivulje. Nahaja se v (Indihar Štemberger, 2000). Oblikovalec B-krivulja premakni kontrolno točko T vstavi nova vozliiia premakni rôtirai spremeni velikost Slika S: diagram zaporedja za B-krivulje. Strukturo sistema sva modelirala s pomočjo razrednih diagramov. Pri tem sva si pomagala s sporočili iz diagramov zaporedja, ki se preslikajo v operacije ustreznih razredov. Slika 6 prikazuje glavni razredni diagram sistema, ki sva jih razporedila v štiri pakete. —I I i I osnovni poiioomski ziepki Ë - ziepki limera ve krivulje Slika 6: glavni razredni diagram sistema. Paket Osnovni vsebuje razrede, ki predstavljajo osnovo za izgradnjo ostalih razredov, npr. Polinom, Interval in Točka. Kot je razvidno s slike 7, ki prikazuje glavni razredni diagram paketa, imajo vsi modelirani razredi konstruktor tvori in destruktor odstrani. Pomen ostalih atributov in operacij je razviden s slike. Paket vsebuje tudi razrede LinearnaFunkcija, Kvad-ratnaFunkcija in KubičnaFunkcija, ki so najpogosteje I tp, mih Kil NFOR M ATIKA 251 Mojca Indiliar Štemberger, Janez Grad: Zlepki v objektno usmerjenem okolju v rabi. Ti razredi podedujejo atribute iti operacije od razreda Polinom, vendar so nekatere enostavnejše. Paket Polinomski zlepki vsebuje razrede, ki so potrebni za predstavitev odsekoma polinomskih funkcij. Osrednji razred paketa se imenuje OdsekomaPolin-omskaFunkcija, modeliranih pa je še več razredov, ki so vsi nasledniki tega razreda. Podrobnosti v zvezi z atributi in operacijami so razvidne s slike H, ki prikazuje glavni razredni diagram paketa. Vsi razredi v paketu so zbirke polinomov, kjer je zbirka lahko seznam, polje ali drugega tipa. Paket D-zlepki sestavljajo razredi, ki modelirajo B-zlepke, B-funkcije in B-krivulje. Povezave med razredi, ter njihovi atributi in operacije so prikazani na sliki 9, Pomen večine atributov in operacij je očiten, zato ne potrebujejo komentarja. Mnogo operacij razreda BKrivulja je dobljenih iz sporočil v diagramu zaporedja. Operacija premakniKontrolnoTočko na primer služi premikanju kontrolne točke, kar povzroči, da je potrebno ponovno narisati del krivulje. Razrede povezuje agregacija, Paket Beziereve krivulje je zelo podoben paketu B-/!epki, zato ga ne bova podrobneje opisa la. V (Indihar Štemberger, 2000) se nahaja še več diagramov in podrobnejši opisi predstavljenega objektnega modela zlepkov. Zelo pomembno je, da je opisani model neodvisen od namena uporabe zlepk- Sllka 7: razredni diagram paketa Osnovni. ov in lahko služi kot osnova sistema, kjer se zlepki uporablja za aproksimacijo ali interplolacijo ali pa sistema, ki omogoča oblikovanje z zlepki. 4. SHRANJEVANJE ZLEPKOV Pri sodobnih informacijskih sistemih se srečujemo z vse kompleksnejšimi objekti, za katerih shranjevanje klasične relacijske baze podatkov ne zadoščajo več. Zato je šel razvoj tudi na tem področju naprej in se je pokazal v obliki objektnih ter objektno-relacijskih baz podatkov. Zdaj je pojem baze podatkov razširjen do te mere, da vsebuje tudi izvrševanje procesov in torej ločevanje med uporabniškimi rešitvami in bazami podatkov ni več potrebno (Domanjko, Heričko, Rozman, 1997). V literaturi ni splošno doseženega dogovora, kaj pravzaprav pomeni "objektna baza podatkov". Ta pojem razumevajo kot kombinacijo zmogljivosti baz podatkov in objektne usmerjenosti. To pomeni, da lahko v to kategorijo uvrščamo tako "prave" objektne baze podatkov kot objektne razširitve sistemov za upravljanje z relacijskimi bazami poslika 8: razredni diagram paketa Polinomski zlepki. datkov, kot je na primer Oracle. Odsekoma Poli nomska Funkcija ^ SlevIloOdsekov: sfiort ^ stopnja r short odseki i Col le etion (Polinom) .^stikaliiia Collection ,-/re;nostvS[ikoii!Cih: Collection(sfiorl) nari£i (j odvod j) v, integral 0 v. vrednost VToiki (k) -jtvoriO -vOdstranl() -^pretvoroVBFuokciJoO Odsekom aLi ne ama Funkcij a ^stopnja : stat = 1 ^odseki: CoilectionfLificaraFunkclja) v> odvod)) •vlitlegraiO 0 ds e koma Kubi i naFun kcij a stopnja stal - 3 odseki: Collection(KubidnaFunkcija) ^ni£le() ^odvoi() ^¡ntegraio 0 dsekom aKvadratnaFunkcija .stopnja : stiort <• 2 ^odseki: CnlleciionjKvadratnaFtirtaia) -jniileO ^odvodi) ^ integrali) jijjijhiJ)! Nf Ofi M ATIKA 2000 - številka 4 - letnik VIII Mojca Indiliar Štemberger, Janez Grad: Zlepki v objektno usmerjenem okolju Slika 9: razredni diagram paketa B-zlepki. Definition Language - ODI,). Odločila sva se za slednjo možnost. Slika 10 prikazuje definicijo sheme za polinomske zlepke. Definicija sheme /.a vse ostale razrede, ki so det sistema, se nahaja v (Indihar Štemberger, 2000), 5. PROTOTIP SISTEMA Izdelala sva tudi prototip sistema, za izgradnjo katerega sva uporabila obetavni programski jezik Java, ki se vse bolj uveljavlja. Prednost tega jezika je predvsem neodvisnost delovanja od strojne opreme in operacijskega sistema, ima pa Še veliko drugih dobrih lastnosti. Prototip se nanaša na uporabo zlepkov na področju aproksimacije, saj so ravno na tem področju potrebe po shranjevanju zlepkov, ki jih kreirajo orodja zn analizo podatkov, v bazi podatkov največje. Uporabniku omogoča vnos točk, ki jih želi aproksimirati, iskanje kubičnega aproksimadjskega zlepka ter njegovo shranjevanje. Razen tega je možno tudi ponovno prikazati že shranjene zlepke. Uporabniški vmesnik prototipa je prikazan na sliki 11. Uporabniku omogoča vnos točk, ki jih želi aproksimirati s Za shranjevanje kompleksnih objektov, s katerimi se srečamo tudi pri programskih rešitvah, ki uporabljajo zlepke, so objektne baze podatkov prava rešitev. Na področju računalniške grafike se za shranjevanje nekaterih posebnih primerov zlepkov že uporabljajo objektne baze podatkov {Cattell, 1994), ne uporablja pa se jih pri orodjih za rudarjenje po podatkih. Odločila sva se za uporabo standarda ODMG (Cattell et al., 2000), ki je neodvisen od programskega jezika in od uporabe konkretnega sistema za upravljanje baze podatkov. Standard razvija organizacija ODMG {Object Data Management Group). Zato lahko za shranjevanje zlepkov uporabimo tako "pravo" objektno kot objektno-relacijsleis bazo podatkov, Po standardu ODMG je možno načrt sheme baze podatkov napisati v enem izmed programskih jezikov, za katerega obstaja jezikovna povezava (C+ +, Smalltalk in Java) ali v neodvisnem jeziku za definicijo objektov (angl, Object classOdsekomaPolinomskaFunkcija attribute short stopnja attribute short številoOdsekov; attribute Arrays^Polinom:» odsek i; attribute a rra y < f I o at > 11 k a I i šča; void tvori(); void odstranil Jraisesini funkcije); void nariši)); float v rednost VTočkif in floatx (raises (n definirana); bag<)loat>ničle(); Odsekoma Po linomska Funkcija odvod(); OdsekomaPolinomskaFunkcija integral); B Funkcij a pretvoriVBFunkcijo(). } class Odsekoma Linearna Funkcija extends OdsekomaPolinomskaFunkcija ( a tlf i b ute A r ray < L inea rna Fu nkcij a> odsek, bagničle(); arrayodvod(); O d s e ko m aKvad ra tna Fu n kaj a i ntegra l(); class Od se koma Kvadrata a Funkcija extends OdsekomaPolinomskaFunkcija { a Mrl b ute A r ray Kvadra tna F unkcij a> od sek; bagničle(). Od sekoma L i ne am a Fu nkcija odvod (): Odsekoma Kubična Funkcija integral)); class Odse ko m aKubična Funkcija extends OdsekomaPolinomskaFunkcija { a tt ri b ut e A rray< K u bična F u n kcija>ods ek; bagcfloat>niile(); Odse koma Kvad ra ta a F u nk ci ja od vodO; Odsekoma Poli no m ska Funkcija integral;); Slika 10: definicija sheme za razrede OdsekomaPolinomskaFunkcija, OdsekomaLlne-a rna Funkcija, OdsekomaKvadratnaFunkcija in OdsekomaKubičnaFtinkcija. class KubienilnterpolacijSkiZlepek extends 0 dse ko rn aKu bicna F un kc ij a { void interpoliraj(in Settocke); I class KubicniAproksimacijskiZlepek extends 0 dsekoma K ub ic n a F u n kci ja { void aproksimirajjirt Setlo£ke); } class NaravmKubicniZlepek extends KubicnilnterpolacijskiZlepek { void mlerpolirajfin Settocke); ) class KubicniZlepekZOdvod extends K ub ii ni I nle r p o I ac ij skiZte p ek f void interpolirajfln Settocke); in float odvZ, In float odvK); ) class PenodicniKubiini2lepek extends Ku bi ¿n i I nte r po laci js kiZle pek void interpolirajfln Scttocke); 200Q- Številka A- letnik VIII iipembruANFQRMATIKA 253 Mojca Indiliar Štemberger, Janez Grad: Zlepki v objektno usmerjenem okolju kubičnim zlepkom, iskanje aproksima ci j skega zlepka po eni i/med metod opisanih v (Eubank, 1999), njegovo shranjevanje in branje shranjenih zlepkov. Razred, ki je rezultat aproksimacije, ustreza razredu OdsekomaKubičnaFunkcija in je naslednik tega razreda, saj je opremljen še z dodatnimi operacijami. Odločila sva se za shranjevanje objektov v objekt ■ ni bazi Poet, vendar bi bilo zaradi neodvisnosti razvitega modela od platforme, ki sva jo dosegla z uporabo standarda ODMG, mogoče uporabiti katerikoli SUHP, ki ima povezavo s tem standardom. Preko preslikave objektov v relacije (na primerjava Rlend) bi bilo mogoče uporabiti tudi relacijsko bazo podatkov. m ApproxtmKlon with cubic spline its ) | ^JVH J ffeiid Slika 11: uporabniški vmesnik prototipa. 6. ZAKLJUČEK Meniva, da predstavljeni model lahko služi kot "skupni imenovalec" sistema, ki uporablja zlepke. Na njem lahko temelji vsaka tovrstna programska rešitev, ki ponavadi model razširja z dodatnimi razredi, ki pa so nasledniki modeliranih razredov. Prepričana sva, da je izbira jezika UM L pravilna, saj je primeren za veliko okolij. Uporaba standarda ODMG, pri razvoju katerega sodeluje večina proizvajalcev sistemov za upravljanje objektnih baz podatkov, je prav tako pravil- na, saj je to edini obstoječi industrijski standard na tem področju {Alagič, 1999), ki zagotavlja največjo možno neodvisnost od platforme in prenosljivost sistema. Pomembno je, da ne shranjujemo samo atributov, ampak tudi metode objektov. Namen razvoja prototipa je bil preizkus modela, ne pa razvoj orodja za rudarjenje po podatkih. Morda pa lahko opisane ideje s pridom uporabijo proizvajalci takšnih orodij. Viri in literatura 1. Alagič Suad: A Family of the ODMG Object Models, Third East European Conference ADBiS'99 (Lecture Notes in Computer Science, Vol 1691), Berlin et al.: Springer, 1999, str, 14-30. 2. Booch Grady. Rumbaugh James, Jacobson Ivar: The Unified Modeling Language User Guide. Reading [etc.]: Addison Wesiey Longman. 1999. 3. Cattell Rick G. G.: Object Data Management. Reading: Ad d i son-We s ley Publishing Company, 1994, 4. Cattell Rick G. G, et a!.: The Object Database Standard ODMG 3.0. San Francisco: Morgan Kuufmann Publishers, 2000. 5. De Boor Carl: A practical Guide to Splines. New York: Springer-Verlag. 1978. S. Domanjko Tomaž, Heričko Marjan. Rozman (van: Uporaba objektnih podatkovnih baz. COTL, 1 (1997), 2, (URL: http:// lisa.uni-mb.si/cot/cotl/apnl97/index.shtml). 7. Eubank Randall L,: Nonparametrie Regression and Splme Smoothing (Statistics, Textbooks and Monographs, V. 157), Marcel Dekker, 1999. 8. Farin Gerald: Curves and Surfaces for CAGD. Boston: Academic Press, 1997. 9. Friedman J.H.: Multivariate Adaptive Regression Splines. Annals of Statistics, 19 (1991), str. 1-141. 10. Indihar Štemberger Mojca: Zlepki v okolju objektnih baz podatkov. Doktorska disertacija, Ljubljana: Univerza v Ljubljani, Ekonomska fakulteta, 2000. 11. Kim Won, urednik: Modern Database systems - The Object Model, Interoperability and Beyond. New York: Addison-Wesley Publishing Company, 1995. 12. K ho 5 li aii an Setrag, Abnous Razmik: Object Orientation. New York: John Wiley B& Sons. 1995. 13. Object Data Management Group, [URL: http://www.pd mg.org'). 14. Object Management Group, [URL: http://www.omg.org']. 15. Pagan Adrian, Ullah Aman: Nonparametrie Econometrics, Cambridge: Cambridge University Press, 1999, 16. Poet, [URL: http://www.poet.eom/l. 17. Salford Systems, [URL: http://www.salford-systems.com/]. 18. Schumaker Larry L.: Spline Functions: Basic Theory. Malabar, Florida: Krieger Publishing Company, 1993 ♦ Dr. Mojco I ndi ha i Štemberger je po osnovni izobrazbi matematik. Leta 1996 je magistrirala na Fakulteti za računalništvo in informatiko, leto 2000 pa doktorirala iz informacijsko upravljalskih ved na Ekonomski fakulteti, kjer je tudi zaposlena kot asistentka za informatiko Ukvarja se s poslovno informatiko, optimizacijo in bazami podatkov. ♦ Dr. Janez Grad je magistriral tz matematike na Univerzi v Birmingliamu, Anglija, leta 1973 pa doktoriral iz matematičnih znanosti na Vseučilišču v Zagrebu. Od leta 1973 sodeluje kot učitelj za informatiko na Ekonomski fakulteti, najprej kot docent, od leta 1979 dalje kot izredni profesor, od 1985 pa kot redni profesor. Ukvarjal se je s programiranjem na računalniku in z reševanjem problema lastnih vrednosti in vektorjev matrik, v zadnjih letih pa se ukvarja z reševanjem problemov s področja operacijskega raziskovanja in s področja baz podatkov. iijj()rnin lui N FO RM ATI K A 2000 - številka 4 - letnik VIII