ROBUST’2004
c JČMF 2004
PRAVDĚPODOBNOST A MATEMATICKÁ STATISTIKA V INFORMATICKÝCH OBORECH Alena Koubková, Jaroslav Král Klíčová slova: Teorie pravděpodobnosti, matematická statistika, informatika. Abstrakt: Cílem tohoto příspěvku je podnítit diskusi o použití pravděpodobnostních a statistických metod v informatice, o spolupráci informatik˚ u a statistik˚ u při řešení teoretických i praktických úloh z nejr˚ uznějších oblastí informatiky a hlavně o výuce pravděpodobnosti a statistiky pro studenty informatických obor˚ u.
1
Kde mohou informatici uplatnit pravděpodobnost a statistiku?
Pokud si někdo pod označením informatik představuje jen rutinního programátora známých algoritm˚ u, správce serveru nebo tv˚ urce webových stránek, pak bude celkem oprávněně tvrdit, že informatika se bez pravděpodobnosti a statistiky obejde. Musíme bohužel konstatovat, že tuto představu má nejen většina laické veřejnosti, ale i nezanedbatelná část student˚ u, kteří se na naší fakultě na tento obor hlásí. Práce informatika ovšem zahrnuje i analýzy problém˚ u, které se mají řešit, návrhy nových algoritm˚ u a zkoumání jejich vlastností, testování programových systém˚ u v r˚ uzných podmínkách provozu atd. A zde už se prostor pro pravděpodobnostní a statistické metody najde. Následující přehled není v žádném případě vyčerpávající a ani dostatečně reprezentativní. Vycházíme pouze z našich osobních zkušeností a víme, že řada našich koleg˚ u by ho mohla doplnit o zajímavé příklady ze své praxe. Příklad 1: Teoretická analýza algoritm˚ u Analýza algoritm˚ u se kromě d˚ ukaz˚ u správnosti zabývá také odhadováním rychlosti a paměťové náročnosti výpočtu (tzv. časové a prostorové složitosti) v závislosti na rozsahu vstupních dat. Jde tedy vlastně o nalezení nějaké funkce f takové, že doba výpočtu (resp. velikost použité paměti) pro data velikosti n je f (n). Protože hledaná funkce by měla mít obecnou platnost bez ohledu na to, v jakém jazyce bude daný algoritmus naprogramován a na jakém konkrétním počítači bude výpočet realizován, měří se časová složitost ne v jednotkách času, ale počtem provedených operací. Přitom aditivní i multiplikativní konstanty se ve výpočtech zanedbávají, protože asymptoticky pro velká n nehrají podstatnou roli. Je zřejmé, že jeden a tentýž algoritmus m˚ uže pracovat r˚ uzně rychle pro dvě stejně velké, ale jinak uspořádané množiny vstupních dat. Z toho d˚ uvodu se rozlišuje složitost v nejhorším případě a očekávaná složitost. Zatímco v prvním případě je hodnota f (n) dobou výpočtu pro nejhorší možná data, tj. dobou, která pro ostatní data dané velikosti
202
Alena Koubková, Jaroslav Král
rozhodně nebude překročena, ve druhém případě je to střední (očekávaná) hodnota doby výpočtu, která závisí na pravděpodobnostním rozložení vstupních dat. Ta by měla být doplněna ještě alespoň o rozptyl nebo odhady pravděpodobností velkých odchylek. Jenže tyto výpočty mohou být i pro velmi jednoduché algoritmy komplikované, a to i tehdy, když předpokládáme, že vstupní data mají rovnoměrné rozdělení. Často se ani samotnou střední hodnotu nepodaří spočítat přesně a musíme se spokojit s nějakým jejím horním či dolním odhadem. Rozptyl nebo další momenty se většinou z d˚ uvodu obtížnosti ani nepočítají. Řadu ukázkových analýz tohoto typu lze najít např. v monografiích [2], [3], [17]. Je z nich vidět, že člověk, který má podobné výpočty provádět, musí být schopný matematik a rozhodně nevystačí s pouhou definicí střední hodnoty nebo vytvořující funkce. Musí to tedy být buď informatik s rozsáhlými matematickými znalostmi, nebo matematik se zájmem o informatické problémy. Teoretická informatika, jejíž částí je i analýza algoritm˚ u, má v˚ ubec k matematice velmi blízko a pro člověka zabývajícího se pravděpodobností by mohla být docela zajímavou aplikací. Příklad 2: Randomizované algoritmy Takzvané randomizované (nebo také pravděpodobnostní) algoritmy se od klasických deterministických liší v tom, že v některých krocích provádějí náhodnou volbu, která určuje další pokračování výpočtu. Typickým příkladem jsou třeba náhodné procházky na grafech. Tato náhodná volba m˚ uže v některých případech výpočet urychlit, v jiných zpomalit. Podstatné je ovšem to, že spustíme-li takový algoritmus několikrát na naprosto stejných datech, dostaneme pokaždé jiný pr˚ uběh a tím i jinou dobu výpočtu. U randomizovaných algoritm˚ u má tedy smysl pouze očekávaná složitost, která závisí na pravděpodobnostním rozdělení náhodně generovaných hodnot. Některé pravděpodobnostní algoritmy mají navíc tu vlastnost, že v některých případech m˚ užeme dostat naprosto chybný výsledek. Je jasné, že aby takový algoritmus byl v˚ ubec použitelný, musíme umět odhadnout pravděpodobnost takové chyby a tato pravděpodobnost musí být zanedbatelná. Pravděpodobnostní algoritmy se často používají k řešení velmi obtížných úloh, kdy přesný výpočet deterministickým algoritmem by trval neúnosně dlouho. Z pravděpodobnostních metod se při analýze randomizovaných algoritm˚ u uplatní kromě r˚ uzných technik výpočtu střední hodnoty a dalších moment˚ u také markovské procesy. Více se lze dočíst např. v monografii [14]. Příklad 3: Experimentální algoritmika Experimentální algoritmika je empirickým protějškem teoretické analýzy algoritm˚ u. Má několik cíl˚ u. Předně chce navržené algoritmy uvést do praxe, to znamená vytvořit efektivní implementace a ve formě programových knihoven je nabídnout uživatel˚ um. Dále prakticky prověřit chování algoritm˚ u nebo pomocí experiment˚ u odhadnout očekávanou složitost v případech, kdy ji teoreticky spočítat neumíme. Výsledky experimnt˚ u pak mohou zpětně pomáhat teoretické analýze. V neposlední řadě je úkolem experimentální algoritmiky vytvořit knihovny testovacích dat pro experimentování s algoritmy a posloužit tak tv˚ urc˚ um algoritm˚ u i jejich uživatel˚ um.
Pravděpodobnost a matematická statistika v informatických oborech
203
Experimentální algoritmika nabízí možnost prověřit chování algoritm˚ u pro nejr˚ uznější typy rozdělení vstupních dat, pokud tato data umíme nasimulovat. Při vyhodnocování výsledk˚ u experiment˚ u jsou použitelné např. statistické testy o střední hodnotě a dalších charakteristikách a zejména regrese při snaze experimentálně určit funkční závislost doby výpočtu algoritmu na velikosti vstupních dat. Aktuální jsou otázky o potřebném počtu provedených měření, aby získané výsledky byly statisticky pr˚ ukazné, uplatnilo by se i plánování experiment˚ u. Vše bývá náležitě komplikováno tím, že data získaná při experimentech většinou nesplňují ideální předpoklady běžně známých statistických metod, zejména všudypřítomnou nezávislost a normalitu rozdělení, a je zde tedy opět zapotřebí zkušenějšího statistika. Statistické povědomí je nutné i při závěrečné interpretaci výsledk˚ u. Experimentální algoritmika je poměrně velmi mladou disciplínou, její rozvoj byl umožněn zejména možností publikovat v elektronické formě a získávat programové produkty a datové soubory po internetu. Zájemce o tuto problematiku odkazujeme např. na časopis Journal of Experimental Algorithmics vydávaný Association for Computing Machinery (ACM) nebo na publikace [11] a [13]. Příklad 4: Datové struktury a databáze Teoreticky patří tento obor do analýzy algoritm˚ u, zabývá se ale jen speciálními algoritmy, které umožňují vyhledávání v datech, vkládání nových záznam˚ u, mazání starých, třídění apod. Při r˚ uzném zp˚ usobu uložení dat v počítači dosahují tyto algoritmy r˚ uzné efektivity. Úkolem tedy je najít takový zp˚ usob reprezentace dat, který je optimální pro nejčastěji prováděné operace. Mírou časové složitosti algoritm˚ u pracujících nad datovými strukturami uloženými v interní paměti počítače je opět počet provedených operací (především porovnávání klíč˚ u), u algoritm˚ u pracujících nad databázemi uloženými na externích médiích je to počet přenos˚ u datových blok˚ u mezi externí pamětí (diskem) a interní pamětí, protože tato operace je časově nejnáročnější. Problémy spojené s výpočtem střední hodnoty této míry jsou tytéž jako v Příkladu 1. Datovými strukturami a jejich analýzou se zabývá např. monografie [10]. Příklad 5: Dokumentografické informační systémy V těchto systémech se pracuje s databázemi speciálního typu. Záznamy v nich nejsou přísně strukturované, ale jsou to texty. Proto se v nich nevyhledává podle hodnot nějakého klíče, ale podle jakéhosi dotazu uživatele. Příkladem jsou třeba rešeršní systémy, kde m˚ užeme vyhledávat nejen podle jména autora nebo názvu publikace, ale i podle tématu nebo klíčových slov. Účelem ovšem není vyhledat všechny články, ve kterých se zadané heslo vyskytne alespoň jednou, protože většina z nich by se patrně ukázala jako irelevantní. Proto se hledají modely, v nichž se termín˚ um v dokumentech i v dotazech přiřazují váhy podle d˚ uležitosti, a stanovují se míry podobnosti mezi dokumentem a dotazem. Na základě této podobnosti by měl systém s velkou pravděpodobností vyhledat relevantní dokumenty. Pravděpodobnost se zde používá jednak v procesu stanovení vah, ale i jako charakteristika úspěšnosti
204
Alena Koubková, Jaroslav Král
práce systému. Konkrétně se používají např. metody bayesovské analýzy, bayesovské sítě a shluková analýza. Nejjednodušší pravěpodobnostní modely dokumentografického informačního systému lze najít např. v [16]. Příklad 6: Data mining Je opravdu těžké si představit disciplínu, která by více vybízela informatiky a statistiky ke vzájemné spolupráci. Místo ní jsme ale leckdy svědky řevnivosti až nesnášenlivosti, pohrdání partnerem a snahy přivlastnit si tento obor a veškeré zásluhy o jeho rozvoj. Jako lidé, kteří se ve svém životě zabývali jak statistikou tak informatikou, máme možnost vidět společné i rozdílné znaky obou disciplín. Společná je především snaha najít vhodný model pro analyzovaná data, případně detekovat odchylky od tohoto modelu, hledat závislosti, trendy, předpovídat budoucí vývoj. Rozdílný je zp˚ usob získávání dat a hlavně jejich objem. Zatímco klasická statistika pracuje obvykle s výběrem nevelkého rozsahu, na jehož základě dělá závěry platné (s nějakou přípustnou statistickou chybou) pro celý základní soubor, data mining chce využít všechna dostupná data. Neuplatní se zde tedy příliš metody výběrových šetření nebo plánování experiment˚ u. Před vlastní analýzou je nutno potřebné záznamy v databázích efektivně vyhledat, odfiltrovat z nich nadbytečné údaje, vyřadit záznamy neúplné nebo nějak poškozené a podobně, což je informatická záležitost. Kv˚ uli obrovskému objemu vstupních dat se vhodnost statistické metody musí posuzovat i z hlediska časové náročnosti výpočtu, je třeba na ni pohlížet jako na kterýkoli jiný algoritmus, který má být analyzován a efektivně implementován, což je opět informatický problém. Naopak výsostně statistická je volba správné metody, ověření jejích předpoklad˚ u a závěrečná interpretace výsledk˚ u. Statistický a informatický přístup by se zde tedy měl vhodně doplňovat. Příklad 7: Operační systémy Z pohledu statistika není operační systém nic jiného než systém hromadné obsluhy, kde obslužným zařízením je procesor (nebo server, sdílená tiskárna apod.) a zákazníci jsou procesy (klientské terminály, požadavky na tisk). Úkolem je najít strategii režimu fronty a stanovování priorit, která by byla optimální jak z hlediska provozu systému, tak z hlediska čekajících uživatel˚ u, což bývá často v přímém rozporu. O možném použití teorie front v operačních systémech pojednávají některé kapitoly [1] nebo [9]. Příklad 8: Počítačová grafika V počítačové grafice se pravděpodobnostní metody dají použít např. při analýze a rekonstrukci digitálního obrazu. Na obraz se pohlíží jako na pole bod˚ u (pixel˚ u) r˚ uzných barev oddělených mikrohranami a případně doplněných dalšími charakteristikami (např. příslušností k určité textuře apod). K obrazu bývá často přimíchán šum, který se tam m˚ uže dostat třeba nekvalitním nasnímáním nebo při přenosu dat. Úkolem je tento šum odstranit a co nejlépe zrekonstruovat originál. Jinou úlohou m˚ uže být popis a následné syntetické generování textur a mnoho dalších. Dají se použít r˚ uzné osvědčené heuristiky, ale také např. bayesovská analýza nebo rovinná markovská pole. Zájemce o tuto problematiku odkazujeme na publikace [7], [8], [18].
Pravděpodobnost a matematická statistika v informatických oborech
205
Příklad 9: Tvorba softwarových systém˚ u Statistika se zde m˚ uže uplatnit z několika d˚ uvod˚ u. Předně i balíky statistických program˚ u vytvářejí informatici, takže by měli mít alespoň nějakou povědomost o tom, co vlastně programují. V programech pro ekonomickou sféru se uplatní metody analýzy dat, v systémech pro podporu managementu třeba teorie rizik atd. Kromě toho, ať už je softwarový systém určen pro použití v jakékoli oblasti, bude vždy posuzován z hlediska spolehlivosti, jeho tv˚ urci tedy musí řešit takové otázky, jako kdy se ještě vyplatí programy dále upravovat a ladit a odkdy už je lepší je kompletně přepsat. V tom jim mohou pomoci znalosti z teorie spolehlivosti. Příklad 10: Kryptografie Kryptografie již dávno není pouze předmětem zájmu tajných služeb, ale stává se záležitostí doslova každého z nás. Problematika elektronických podpis˚ u, internetové bankovnictví či ochrana dat všeho druhu si zasluhuje nejvyšší pozornost. Kryptografie sice stojí hlavně na teorii čísel, ale i statistické metody se zde uplatní, a to hlavně při náhodném generování klíč˚ u. V kryptografii se nedají použít jednoduché kongruenční generátory, protože jsou málo náhodné a snadno dešifrovatelné. Navíc klíčem by obvykle mělo být hodně velké prvočíslo, řádově o stovkách cifer. Protože není možné tak velké prvočíslo efektivně spočítat, generuje se posloupnost cifer náhodně a výsledek se podrobuje test˚ um, zda je to skutečně prvočíslo či ne. Řada těchto test˚ u jsou randomizované algoritmy. Dalším problémem je d˚ ukladná pravděpodobnostní analýza algoritm˚ u používaných v tzv. veřejných kryptografických systémech. Jde o to, aby algoritmy, pomocí nichž by mohla zpráva být i bez znalosti klíče dešifrována, měly exponenciální složitost nejen v nejhorším, ale i v pr˚ uměrném případě. Více se lze dočíst např. v [15].
2
Jak to vypadá s výukou?
Před zhruba patnácti lety se studenti informatiky na MFF UK neučili pravděpodobnost a statistiku v˚ ubec. Situace se od té doby výrazně změnila k lepšímu. V současné době mají studenti jednosemestrální přednášku z pravděpodobnosti a jednosemestrální přednášku ze statistiky, obojí se cvičeními, výuku zajišťuje KPMS. Tato výuka sice není striktně povinná, ale tyto předměty se až do letošního roku zkoušely u státnic jako součást všeobecného základu, takže je většina student˚ u navštěvovala. V začínajícím reformovaném studiu dokonce ještě jeden semestr přibude. V bakalářském studiu bude povinná jednosemestrová přednáška ze základ˚ u pravděpodobnosti a statistiky, na ni budou navazovat v magisterském studiu (alespoň pro některé obory) semestr pravděpodobnosti a semestr statistiky věnované pokročilejším partiím, které budou alespoň v některých specializacích povinné či povinně volitelné. Kromě toho existuje i několik výběrových přednášek zaměřených pouze na některé vybrané kapitoly potřebné pro daný obor a přednášek snažících se ukázat aplikace stochastických metod v r˚ uzných oborech informatiky, které
206
Alena Koubková, Jaroslav Král
si jednotlivé katedry informatické sekce zajišťují samy. Obecně ale požadavky z pravděpodobnosti a statistiky nebudou nadále součástí státních závěrečných zkoušek. S počtem hodin i s tématy přednášek m˚ užememe být celkem spokojeni, přesto podle nás výuka zcela nesplňuje sv˚ uj účel. Proč? Jeden d˚ uvod je, že je zařazena až do vyšších ročník˚ u. V současnosti si ji studenti sice mohou zapsat kdykoli, ale z nejr˚ uznějších d˚ uvod˚ u to odkládají, dokud je k tomu okolnosti nedonutí. Těmi okolnostmi bývá nejčastěji to, že na něco ze statistiky narazí při práci na diplomce. K tomu dojde až na samém konci studia, takže to, co se naučí, už nemohou použít v jiných odborných předmětech a často se ani nedozvědí, kde všude by se jim to mohlo hodit. Učitelé řady odborných předmět˚ u se dostávají do situace, že potřebné partie z pravděpodobnosti si buď musí sami odpřednášet (na úkor něčeho jiného a často i v r˚ uzných předmětetch opakovaně), nebo se těm témat˚ um, kde by je potřebovali, prostě vyhnout. Najde se i pár dobrodruh˚ u, kteří předpokládají, že to studenti znají, a když ne, že mají možnost se to naučit v předmětech k tomu určených, ale ti většinou spláčou nad výsledkem, protože pro studenty se pak jejich přednáška stane nesrozumitelnou (a neoblíbenou). V reformovaném studiu se situace poněkud zlepší u magistr˚ u, ale bakaláři na tom budou prakticky stejně, protože pravděpodobnost je zařazena až do třetího, tj. posledního ročníku jejich studia. Druhým d˚ uvodem k nespokojenosti je, že studenti většinou považují statistiku za nezajímavou a hlavně pro ně nepotřebnou. Protože současné studium už tak jako tak dobíhá, bavme se dále pouze o reformovaném studiu. Přeřadit výuku pravděpodobnosti a statistiky do druhého ročníku se zdá být momentálně nepr˚ uchodné. Počet vyučovacích hodin v nižších ročnících je pevně daný a je třeba do nich doslova nacpat množství odborných předmět˚ u, bez kterých studenti nemohou začít pracovat na závěrečném projektu. Taková je alespoň momentální představa a teprve dalších několik let ukáže, zda je správná a jediná možná. Teorie (a to nejen pravděpodobnost) se zkrátka z tohoto hlediska jeví jako postradatelný luxus. Přednáška z pravděpodobnosti pro bakaláře tak bude mít význam hlavně pro ty z nich, kteří budou ve studiu pokračovat, pokud s ní ovšem něco neuděláme. Nelze-li posunout výuku pravděpodobnosti a statistiky do nižších ročník˚ u, tak, aby bylo možno student˚ um v odborných předmětech ukázat její využití, nezbývá zřejmě nic jiného, než zařadit příklady aplikací v informatice přímo do této přednášky. Namísto příklad˚ u “ze života”, kde se statisticky vyhodnocuje třeba vývoj kojenecké úmrtnosti, znečištění životního prostředí nebo závislost barvy očí a barvy vlas˚ u, je třeba volit příklady z obor˚ u, které naši studenti studují. To bude vyžadovat úzkou spolupráci učitel˚ u z obou stran, vybrat vhodné příklady totiž v˚ ubec nebude lehké. Bylo by vhodné, aby zvolené příklady pokrývaly co nejvíce informatických disciplín, bude tedy zapotřebí spolupráce většího počtu lidí. Navíc bude nutná synchronizace s odbornými předměty, aby nedocházelo k opačnému extrému, že by se v prav-
Pravděpodobnost a matematická statistika v informatických oborech
207
děpodobnosti počítal příklad z oboru, který studenti ještě neměli, a naopak statistik by jim musel vysvětlovat jeho základy. A kromě toho, opravdu jednoduchých učebnicových příklad˚ u nebude nijak mnoho. Ideální by bylo mít časem skripta nebo učebnici pravděpodobnosti a statistiky přímo pro informatiky, podobnou, jako je ve svém oboru monografie [12]. V současné době bude ale zřejmě kamenem úrazu nedostatek času na obou stranách, protože rozbíhající se bakalářské studium s sebou přináší např. větší počet zkoušek, vedení a oponování většího počtu diplomových prací a v začátcích i podstatné změny ve vyučovaných předmětech.
3
Víme, co chceme?
K tomu, co zde o významu pravděpodobnosti a statistiky pro informatiku již bylo řečeno, dodejme ještě, že v poslední době zaznamenáváme úvahy o tom, jaký by vlastně měl být profil absolventa oboru informatika na matematicko-fyzikální fakultě (viz např. [4], [5], [6]). Jestli by to měl být v první řadě zručný programátor nebo spíš všestranněji vybavený člověk, který by se uplatnil při analýze problém˚ u a návrzích jejich řešení, dovedl by se orientovat v množství již existujících program˚ u a programových komponent a posoudit jejich výkonnost, spolehlivost i cenu, který by dovedl jednat s uživatelem a měl i základní manažerské schopnosti. Je jasné, že statistika m˚ uže k všestrannosti informatika podstatně přispět. Schopnost odhadnout a porovnat parametry systém˚ u nebo program˚ u, určit spolehlivost, odhadnout rizika volby apod. se m˚ uže jedině hodit. Na druhé straně doufáme, že i statistici si uvědomují, že informatika pro ně neznamená jen to, že mohou mít na stole počítač s editorem pro psaní vědeckých publikací a s přístupem na internet, ale že ji chápou jako jednu z aplikací svého oboru. Že se o ni budou zajímat stejně jako o ekonomii, biologii nebo fyziku, že si někteří z nich osvojí terminologii a základy některého z informatických obor˚ u a budou řešit problémy, které mohou být i ze statistického hlediska zajímavé. V některých situacích by zcela jistě bylo jednodušší vysvětlit statistikovi několikařádkový algoritmus, na jehož pravděpodobnostní analýzu by mohl vynaložit všechny své zkušenosti získané léty studií a vlastní odborné práce, než učit informatika pět let statistiku, aby si tu analýzu mohl udělat sám. Co říci na závěr? Snad jen to, že doufáme, že diskuse na toto téma bude pokračovat a spolupráce statistik˚ u a informatik˚ u se bude prohlubovat k užitku všech.
Reference [1] Hansen P.B. (1979). Principy operačních systém˚ u. STNL Praha. [2] Hofri M. (1987). Probabilistic analysis of algorithms. Springer-Verlag, New York, Berlin, Heidelberg. [3] Knuth D. (1973). The art of computer programming. Sorting and Searching 3, Addison-Wesley, Reading, Massachusetts.
208
Alena Koubková, Jaroslav Král
[4] Král J., Töpfer P. (2000). Education of software experts for changing world. 2nd Global Congress on Engineering Education, Wismar, Germany, Z. Pudlowski ed. UICEE. 267 – 271 [5] Král J., Žemlička M. (2004). What literacy for software developers. (Manuscript). [6] Král J., Žemlička M. (2004). Mathematical statistics in SW engineering education. Information Technology and Organizations: Trends, Issues, Challenges and Solutions, M. Khosrow–Pour ed. Idea Group Publishing, Hershey, PA, U.S.A. 889 – 890. [7] Statistics and Images: 1. (1993). Advances in Applied Statistics, Carfax Publ. Comp. K. V. Mardia and G. K. Kanji eds. [8] Statistics and Images: 2. (1994). Advances in Applied Statistics, Carfax Publ. Comp. K. V. Mardia ed. [9] McDermid J.A. (1991). Software engineer’s reference book. ButterworthHeinemann, Oxford, London. [10] Mehlhorn K. (1984). Data structures and algorithms 1: Sorting and searching. Springer-Verlag, Berlin, Heidelberg, New York. [11] Mehlhorn K., Näher S. (1999). The LEDA platform of combinatorial and geometric computing. Cambridge Univeristy Press. [12] Meloun M., Militký J. (1994). Statistické zpracování experimentálních dat. PLUS, Praha. [13] Moret B.M.E. (2002). Towards a discipline of experimental algorithmic. DIMACS Series in Discrete Mathematics and Theoretical Computer Science 59, 197 – 213. [14] Motwani R., Raghavan P. (1995). Ranomized algorithms. Cambridge University Press. [15] Neuenschwander D. (2004). Probabilistic and statistical methods in cryptology: An introduction by selected topics. Lecture Notes in Comp. Sci. 3028, Springer-Verlag, Berlin, Heidelberg, New York, Tokyo. [16] van Rijsbergen C.J. (1979). Information retrieval (second ed.). London, Butterworths. [17] Sedgewick R., Flajolet P. (1996). An introduction to the analysis of algorithms. Addison-Wesley, Reading, Massachusetts. [18] Winkler G. (1995). Image analysis, random fields and dynamic Monte Carlo methods. Springer-Verlag, Berlin, Heidelberg. Adresa: A. Koubková, J. Král, Katedra softwarového inženýrství, Matematicko-fyzikální fakulta UK, Malostranské nám. 25, 118 00 Praha 1 E-mail :
[email protected],
[email protected]