IZPELJANKE ALGORITMA LZW

Size: px
Start display at page:

Download "IZPELJANKE ALGORITMA LZW"

Transcription

1 Jure Sreš IZPELJKE LGORITM LZW Diplomsko delo Maribor, september 2016

2 IZPELJKE LGORITM LZW Diplomsko delo Študent(ka): Jure Sreš Študijski program: Računalništvo in informacijske tehnologije (U) Smer: / Mentor: doc. dr. Bogdan Lipuš

3 i

4 Zahvala Zahvaljujem se vsem, ki so kakorkoli pripomogli k nastanku tega dela. ii

5 Ključne besede: stiskanje podatkov, stiskanje s slovarjem, primerjava algoritmov UDK: (043.2) Povzetek lgoritmi za stiskanje podatkov so v računalništvu prisotni že od samega začetka. Igrajo pomembno vlogo pri prenosu in shranjevanju velikih količin podatkov, razdelimo pa jih lahko na več načinov. Poznamo izgubno in brezizgubno stiskanje. Glede na način izvajanja ločimo statistično in stiskanje s slovarjem. V tem diplomskem delu bomo predstavili algoritme LZW, LZP, LZMW in LZY, ki uporabljajo slovar in podatke stisnejo brezizgubno. Predstavili bomo njihovo delovanje in primerjali rezultate. iii

6 Variants of the LZW algorithm Keywords: data compression, dictionary-based compression, algorithm comparison UDK: (043.2) bstract Data compression algorithms are present in the computer science from the very beginning. They play a major role in transmitting and storing a large amount of data and can be divided in various ways. In general, they can be entropy or dictionary-based. compression can be performed lossy or lossless. We present the algorithms LZW, LZP, LZMW and LZY, that compress data losslessly and use dictionary in the process. We examine the presented algorithms and the results of compression. iv

7 KZLO VSEBIE 1 UVOD STISKJE PODTKOV S SLOVRJEM LGORITEM LZW KODIRJE DEKODIRJE IMPLEMETCIJ LGORITEM LZMW KODIRJE DEKODIRJE IMPLEMETCIJ LGORITEM LZP KODIRJE DEKODIRJE IMPLEMETCIJ LGORITEM LZY KODIRJE DEKODIRJE IMPLEMETCIJ REZULTTI LZW LZP LZY SKLEP v

8 KZLO PREGLEDIC Preglednica 2.1: Razvrstitev algoritmov...4 Preglednica 3.1: Postopek kodiranja z algoritmom LZW...6 Preglednica 3.2: Slovar po koncu kodiranja...6 Preglednica 3.3: Postopek dekodiranja z algoritmom LZW...7 Preglednica 4.1: Postopek kodiranja z algoritmom LZMW...11 Preglednica 4.2: Vnosi v slovar po končanem izvajanju algoritma LZMW...11 Preglednica 4.3: Postopek dekodiranja z algoritmom LZMW...12 Preglednica 5.1: Postopek kodiranja z algoritmom LZP...15 Preglednica 5.2: Vnosi v slovar po končanem izvajanju algoritma LZP...15 Preglednica 5.3: Postopek dekodiranja z algoritmom LZP...16 Preglednica 6.1: Postopek kodiranja z algoritmom LZY...19 Preglednica 6.2: Vnosi v slovar po končanem izvajanju algoritma LZY...20 Preglednica 6.3: Postopek dekodiranja z algoritmom LZY...21 Preglednica 7.1: Rezultati algoritma LZW...27 Preglednica 7.2: Rezultati algoritma LZP...28 Preglednica 7.3: Rezultati algoritma LZY...28 KZLO SLIK Slika 3.1: Psevdokod kodiranja z algoritmom LZW...8 Slika 3.2: Psevdokod dekodiranja z algoritmom LZW...9 Slika 4.1: Psevdokod kodiranja z algoritmom LZMW...13 Slika 5.1: Psevdokod kodiranja z algoritmom LZP...17 Slika 6.1: Psevdokod kodiranja z algoritmom LZY...22 Slika 6.2: Psevdokod dekodiranja z algoritmom LZY...23 Slika 7.1: Grafikon primerjav faktorjev stiskanja algoritmov...25 Slika 7.2: Grafikon primerjave porabljenega časa pri kodiranju...25 Slika 7.3: Grafikon primerjave porabljenega časa pri dekodiranju...26 vi

9 1 UVOD Stiskanje podatkov je proces, katerega cilj je pretvoriti podatke tako, da ti po obdelavi zasedejo čim manj prostora, vendar ohranijo informacije. Ideja o stiskanju podatkov je prisotna že od nekdaj, najbolj pa je ta problem postal očiten z izumom računalnika in njegovo vsesplošno prisotnostjo. V začetku razvoja je bil glavni razlog za zmanjševanje velikosti podatkov cena pomnilniškega prostora, ki ni bil pretirano velik, datoteke pa so postajale vse večje (slike, zvočne datoteke, video). ekoliko kasneje je prišel v ospredje prenos datotek preko omrežij, kjer je pomembna hitrost. Dandanes so cene nizke, hitrosti pa visoke, vendar je tudi podatkov bistveno več, ti pa so zaradi zviševanja kvalitete tudi vse večji. In ker je zmanjšanje podatkov na polovico prvotne velikosti ekvivalentno podvojitvi velikosti pomnilniškega prostora ali hitrosti prenosa, jih je smiselno obdelati, še posebej zato, ker je obdelava z modernimi procesorji izredno hitra. Stiskanje podatkov je tako v računalništvu nenehno prisotno. lgoritme za stiskanje podatkov delimo v dve skupini. V prvo sodijo algoritmi, ki pri stiskanju nekaj podatkov izgubijo (angl. lossy algorithms). Uporaba teh algoritmov je smiselna pri datotekah, kjer izguba podatkov nima usodnega pomena ali pa je sploh ni mogoče opaziti. ajpogosteje so to slikovne, zvočne in video datoteke. V drugo skupino sodijo algoritmi, ki podatke stisnejo brez izgub (angl. lossless algorithms). Ti so v glavnem manj učinkoviti, vendar si pri določenih vrstah datotek, kot na primer pri tekstovnih in izvršljivih datotekah, izgub ne smemo privoščiti. Obojim pa je skupno, da sestojijo iz kodirnika, s katerim podatke stisnemo, in dekodirnika, s katerim podatke povrnemo v prvotno obliko [11]. Vsi algoritmi stiskanja podatkov temeljijo na izkoriščanju redundance, ki je prisotna pri nenaključnih podatkih, kar pomeni, da povečujejo entropijo podatkov. Preprosto stiskanje je tako že zamenjava daljših nizov istih simbolov. Tak niz lahko na primer zamenjamo s simbolom, kateremu sledi število ponovitev tega simbola. Drug preprost primer iz vsakdanjega življenja je krajšanje besed v pisnem komuniciranju, predvsem preko 1

10 elektronskih naprav z omejitvijo dolžine sporočil, kjer recimo besedo»jutri«skrajšamo v»ju3«. ekateri algoritmi podatke kodirajo glede na pogostost pojavljanja posameznih besed ali simbolov. Vzorce, ki se pojavljajo pogosteje, zapišemo s krajšimi kodami. Dober primer tega je Morsejeva abeceda [10]. ačinov za stiskanje podatkov je veliko, v diplomskem delu pa bomo obravnavali algoritme, ki pri stiskanju podatkov uporabljajo slovar. ajprej bomo podrobneje predstavili stiskanje s slovarjem, nato pa opisali algoritem LZW ter tri izpeljanke, LZMW, LZP in LZY. Za vsak algoritem bomo razložili postopek kodiranja in dekodiranja, ter delovanje predstavili na primeru. Opisali bomo njihovo implementacijo, kjer si bomo pomagali s psevdokodom. V zaključku diplomskega dela bomo algoritme primerjali med sabo, predstavili njihovo učinkovitost in podali mnenje ter končne ugotovitve. 2

11 2 STISKJE PODTKOV S SLOVRJEM Stiskanje podatkov s slovarjem temelji na zamenjavi nizov z žetoni oziroma kodami iz slovarja. Slovar vsebuje kode in njim dodeljene nize, ter je lahko vnaprej določen, statičen ali dinamičen. Če je slovar vnaprej določen, je podan kot del algoritma. V primeru statičnega slovarja kodirnik analizira vhodne podatke ter zgradi slovar, ki ga posreduje dekodirniku. V tem primeru je slovar shranjen skupaj s stisnjenimi podatki. Kodirnik in dekodirnik v primeru dinamičnega slovarja zgradita identičen slovar iz vhodnih podatkov, zato ta ni shranjen, ampak se v obeh primerih gradi od začetnega stanja. Enostaven primer stiskanja z vnaprej določenim slovarjem je stiskanje besedila v slovenskem jeziku s pomočjo slovarja, ki vsebuje pogoste slovenske besede. Slovar torej sestavljajo kode oziroma števila, ter njim dodeljene besede. Pri stiskanju besedila preberemo besedo, jo poiščemo v slovarju, in namesto nje zapišemo število. Če besede nismo našli, jo izpišemo nespremenjeno. Pri dekodiranju števila enostavno zamenjamo z besedami iz slovarja. To preprosto stiskanje se obnese pri povprečnem besedilu, vendar se nam zatakne že pri besedilih, ki vsebujejo manj pogoste besede. Če poznamo strukturo vhodnih podatkov, pa lahko izberemo prilagojen slovar. Tak način stiskanja je torej primeren za v naprej poznane podatke, ki jim lahko slovar prilagodimo, saj s tem dosegamo zelo dobre rezultate. Bolj splošno uporaben je način stiskanja s statičnim slovarjem, ki ga zgradi kodirnik. ajprej obdelamo besedilo in glede na pogostost pojavitev zgradimo slovar, ki ga nato uporabimo pri stiskanju in razširjanju. Tak pristop ima dve pomanjkljivosti. Prva je očitna, saj porabimo več časa, ko obdelujemo besedilo in gradimo slovar. Druga pa je del razširjanja, saj dekodirnik potrebuje slovar, ki ga je zgradil kodirnik. Tega je torej treba shraniti skupaj s stisnjenimi podatki, kar vpliva na velikost in s tem na razmerje stiskanja. V splošnem je tako najprimernejša uporaba dinamičnega slovarja. Ta se prilagaja glede na vhodne podatke, saj se kode in pripadajoči nizi v slovar dodajajo sproti. Začnemo z majhnim slovarjem, na primer z abecedo ali naborom SCII, nato pa dodajamo nize, ki jih sestavimo iz vhodnih podatkov. Slovar ima omejeno število vnosov, zato ga ob zapolnitvi ponastavimo in začnemo graditi znova. Pri dekodiranju 3

12 gradimo identičen slovar, vendar ravno obratno. a ta način lahko v večini primerov stiskamo ostale vrste datotek enako uspešno kot tekstovne datoteke, zato je precej priljubljen [10]. lgoritmi, ki uporabljajo slovar, spadajo v skupino entropičnih algoritmov in lahko načeloma pri dovolj velikih datotekah niz dolžine n simbolov stisnejo na velikost nh, kjer H predstavlja entropijo. Entropija je količina za merjenje informacije. Vsebnost informacije simbola v podatkih je v logaritemski odvisnosti od verjetnosti ponovitve simbola [10]. Entropijo poljubnega niza izračunamo po enačbi 2.1: n H (x)= P i log 2 Pi (2.1) i=1 Tu je: n število simbolov Х spremenljivka, ki vsebuje n vrednosti xi Pi verjetnost simbola xi lgoritme, obravnavane v tem delu, lahko delimo glede na povečevanje vhodnega niza in dodajanja vnosov v slovar. lgoritem LZW napreduje po en simbol, in v slovar dodaja po en vnos za niz. Slovar se v tem primeru povečuje dokaj počasi, s tem pa je tudi prilagajanje vhodnim podatkom počasno. Ta problem skuša odpraviti algoritem LZMW, ki napreduje po več simbolov hkrati, kar pomeni, da v slovar dodaja daljše nize in se s tem bolje prilagaja vhodnim podatkom. jegove pomanjkljivosti poskuša odpraviti algoritem LZP, ki deluje podobno, vendar v slovar dodaja nov niz za vsak vhodni simbol, kar pomeni, da se prilagaja hitreje. Obstaja še četrta različica. To je algoritem LZY, ki niz povečuje za en simbol in za vsakega doda nov vnos v slovar [10]. Preglednica 2.1: Razvrstitev algoritmov Dodajanje v slovar Povečava niza za En simbol: Več simbolov: Za niz Za simbol LZW LZY LZMW LZP 4

13 3 LGORITEM LZW lgoritem LZW sodi v družino popularnih algoritmov LZ in je izpeljan iz algoritma LZ78 (občasno se zanj uporablja kratica LZ2), ki sta ga leta 1978 predstavila braham Lempel in Jacob Ziv [10]. Predhodnik tega algoritma je LZ77. LZW je leta 1984 razvil Terry Welch in ga tudi patentiral [10]. lgoritem je po izteku patenta postal popularen zaradi dobrih razmerij pri stiskanju različnih vrst podatkov in dokaj preproste implementacije. Stiskanje temelji na zamenjavi daljših nizov znakov s krajšimi kodami. Te nize sestavljamo iz vhodnih podatkov pri branju in jih dodajamo v slovar, ki sestoji iz začetnih in dodanih nizov ter njim dodeljenih kod. Začetni slovar je lahko implementiran iz različnih naborov znakov. Lahko je na primer napolnjen s črkami abecede, največkrat pa se uporablja nabor 265 znakov tabele SCII zaradi dolžine oziroma velikosti posameznega znaka, ki je 8 bitov (1 zlog). Slovarja ni potrebno ohranjati, zato ga ne rabimo shranjevati skupaj s stisnjenimi podatki. Dolžina kod, ki jih dodajamo v slovar je lahko poljubna, vendar mora biti vsaj 9 bitov. Pogosto se uporabljata dolžini 12 in 16 bitov. Ko slovar napolnimo, ga izbrišemo in začnemo graditi znova [4][14]. lgoritem mora pri dekodiranju graditi enak slovar, kot ga je gradil kodirnik, vendar je pri tem postopek bolj zapleten, saj se nizi v slovar dodajajo z zamikom. Tako se lahko zgodi, da nam niz s prebrano kodo še ni poznan, saj se še ne nahaja v slovarju. a to posebnost bomo naleteli tudi v spodnjem primeru. Rešitev tega problema je preprosta, saj je le ta prisoten zgolj v primeru, da se niz začne in konča na isti znak, torej lahko na konec dodamo začetni znak in ta niz nato dodamo v slovar [2][6]. 3.1 KODIRJE Prikažimo postopek kodiranja z vhodnim nizom B (preglednica 3.1). Začetni slovar zaradi preglednosti inicializiramo s posameznimi znaki tega niza, tako da le ta vsebuje znake, B in. V preglednici 3.2 je začetno stanje slovarja ločeno od nadaljnjih 5

14 vnosov v slovar s širšo črto. Kode jim dodelimo zaporedno, začnemo z 0. V slovar bomo tako nadaljevali z vnosi pri zaporedni številki 3. Začnemo z znakom in preverimo, če se v slovarju nahaja niz, sestavljen iz trenutnega in naslednjega znaka. Ta niz še ni v slovarju, zato ga dodamo in mu dodelimo prosto zaporedno število, v tem primeru 3, ter na izhod zapišemo znak oziroma kodo 0. Sedaj je trenutni znak, niza pa prav tako ni v slovarju. Izpišemo (kodo 2) in niz dodamo v slovar. adaljujemo po istem postopku, trenutni znak je, ki ga izpišemo, saj niza B še ni v slovarju. iz dodamo v slovar pod zaporedno številko 5. aslednji je na vrsti znak B. Ponovimo postopek, torej izpišemo B oziroma 1, ter dodamo niz B v slovar. V naslednjem koraku je sestavljeni niz, tega pa smo že dodali v slovar. Tako niz postane trenutni niz, sestavljen niz pa dodamo v slovar, ker ga tam še ni. Ker pa poznamo kodo za niz, lahko ta niz izpišemo kot 3. adaljujemo z, in ponovno sestavimo, ki je v slovarju, zato je to naš trenutni niz. V naslednji iteraciji torej sestavimo niz, ki je prav tako v slovarju. In ker smo dosegli konec ( ), temu nizu ne moremo dodati novega znaka, zato ga izpišemo. S tem smo zaključili s kodiranjem, naš stisnjen niz pa je 0, 2, 0, 1, 3, 7. Sestoji torej iz šestih znakov, medtem ko začetni niz vsebuje devet znakov (0, 2, 0, 1, 0, 2, 0, 2, 0). Začetni niz smo tako zmanjšali za tretjino. Preglednica 3.1: Postopek kodiranja z algoritmom LZW Preglednica 3.2: Slovar po koncu kodiranja Trenutni niz aslednji znak Izhod Vnos v slovar Koda iz (0) (3) 0 (2) (4) B 1 B (0) B (5) 2 B B (1) B (6) 3 4 B 5 B 6 7 (3) (7) (7) 6

15 3.2 DEKODIRJE Izhod kodiranja so kode 0, 2, 0, 1, 3, 7. Dekodiranje (preglednica 3.3) pričnemo z istim začetnim slovarjem, kot pri kodiranju. Ker pa sedaj gradimo slovar z zamikom, se nam lahko zgodi, da naletimo na kodo niza, ki je v slovarju še ni in bi bila dodana šele v istem koraku. To izjemo rešimo tako, da začetni znak niza dodamo tudi na konec. a vhodu preberemo 0 in izpišemo znak. Ker predhodnik ne obstaja, nadaljujemo z. Sedaj lahko sestavimo niz in ker le tega še ni v slovarju, ga dodamo, znak pa izpišemo. aslednji znak je, sestavljeni niz pa, ponovno niz dodamo v slovar in izpišemo znak. V naslednji iteraciji še enkrat ponovimo postopek, izpišemo torej B in B dodamo v slovar. ova prebrana koda je 3, torej gre za niz, ki ga izpišemo. ov niz sedaj tvorimo iz predhodnega znaka in iz prvega znaka niza, torej je nov vnos v slovar niz B. V zadnjem koraku pa naletimo na posebnost, saj prebrane kode 7 še ni v slovarju. Tja bi jo po običajnem postopku vpisali v tem koraku, ko bi sestavili niz. To se zgodi v primeru, da se niz začne in konča na isti znak, torej v tem koraku na konec niza dodamo in s tem tvorimo iskan niz, ki ga izpišemo in dodamo v slovar. S tem smo končali dekodiranje in obnovili začetni niz B. Preglednica 3.3: Postopek dekodiranja z algoritmom LZW Vhod Predhodni niz 0 Izhod Vnos v slovar 2 (3) 0 (4) 1 B B (5) 3 B B (6) 7 (7) 7

16 3.3 IMPLEMETCIJ Za implementacijo slovarja pri kodiranju smo uporabili podatkovno strukturo map, kamor podatke shranimo v obliki para, ki sestoji iz ključa in se uporablja pri iskanju, ter vrednosti. Za dolžino kod smo izbrali 16 bitov (uint16_t), kar poenostavi zapisovanje podatkov (zapišemo lahko minimalno en zlog). Maksimalno število vnosov v slovar je tako 2 16 (65536). Drugi pogost način je uporaba kod dolžine 12 bitov, kar pomeni 4096 vnosov v slovar. iz smo definirali kot std::vector<char> (v psevdokodu 3.1 je zapisan kot IZ). Slovar je torej oblike std::map<std::vector<char>, uint16_t>. Znak je tipa char in je v psevdokodu 3.1 predstavljen s c. WHILE ( lahko preberemo nov zlog v c ) { IZ = IZ + c // nizu dodamo zlog c IF ( IZ ni v slovarju ) { slovar[iz] = naslednja prosta koda IZ = IZ - $ // nizu odstranimo zadnji znak PRIT slovar[iz] // izpišemo kodo za IZ IZ = c // IZ inicializiramo na vrednost c } } if ( IZ ni prazen ) PRIT slovar[iz] Slika 3.1: Psevdokod kodiranja z algoritmom LZW Preverjanje napolnjenosti slovarja na slikah ni prikazano, saj za razumevanje poteka ni bistvenega pomena. V kodi je izvedeno s pogojem, ki enači kodo zadnjega niza z maksimalno velikostjo slovarja. Ob zapolnitvi se slovar v celoti izbriše in nato ponastavi na začetno stanje (na prvih 256 mest vnesemo znake tabele SCII). Velikost slovarja je definirana s konstantno spremenljivko. Pri dekodiranju je slovar implementiran na nekoliko drugačen način in je oblike 8

17 std::vector<std::vector<char>>. iz je v psevdokodu 3.2 ponovno predstavljen z IZ, koda pa je označena s K. WHILE ( lahko preberemo novo kodo v K ) { IF ( K == trenutna velikost slovarja ) // posebni primer { slovar[naslednja prosta koda] = IZ + IZ[0] } ELSE { IF ( IZ ni prazen ) { slovar[naslednja prosta koda] = IZ + slovar[k][0] } } PRIT slovar[k] IZ = slovar[k] } Slika 3.2: Psevdokod dekodiranja z algoritmom LZW 9

18 4 LGORITEM LZMW vtorja tega algoritma sta Victor Saul Miller in Mark Wegman, ime pa izvira iz začetnic priimkov [10]. Predstavljen je bil leta Cilj je izboljšati prilagajanje vhodnim podatkom, kar je izvedeno z dvema spremembama. Prva je brisanje najstarejšega vnosa v slovarju, ko se ta zapolni. Privzetih vrednosti ni dovoljeno brisati. Druga sprememba je pri dodajanju novih vnosov v slovar. Ti so sestavljeni iz ujemajočega niza in celotnega trenutnega niza. V tem se razlikuje od algoritma LZW, kjer ujemajočem nizu dodamo samo prvi znak trenutnega niza. S tem dosežemo dodajanje daljših nizov v slovar (celih besed ali pa celo besednih zvez), posledično pa tudi boljše prilagajanje vhodnim podatkom, saj so dodani nizi v bolj vsakdanji obliki [7][10]. lgoritem ima tri slabosti. Zaradi oblike slovarja je podatkovna struktura manj preprosta kot pri LZW, prav tako pa se lahko isti niz v slovar doda dvakrat. Pri iskanju najdaljšega ujemajočega niza lahko pride do vračanja (angl. backtracking), kar še dodatno upočasni iskanje [10]. 4.1 KODIRJE Postopek delovanja tudi tokrat prikažimo na nizu B (preglednica 4.1). Začetno stanje slovarja ponovno inicializiramo s tremi simboli, ki sestavljajo niz. Končno stanje slovarja je prikazano v preglednici 4.2, začetno je ločeno z odebeljeno črto. Vsak korak pričnemo z iskanjem najdaljšega ujemajočega niza v slovarju. Prvi prebran znak je, in ker v slovarju ni niza, je ujemajoči niz, ki ga izpišemo s kodo 0. aslednji najdaljši ujemajoči niz je. Izpišemo kodo 2 in iz predhodnega niza sestavimo nov niz, ki ga dodamo v slovar s kodo 3. V naslednjem koraku je koda ponovno 0, sestavljen niz pa. Izpišemo torej 0 in v slovar dodamo niz s kodo 4. Postopek ponovimo s kodo 1 za vhodni simbol B in z vnosom B s kodo 5 v slovar. V petem koraku pa je najdaljši ujemajoč niz s kodo 3. Sestavljen niz je B, s kodo 6. Ker smo prebrali dva znaka iz 10

19 vhodnih podatkov, se za toliko mest tudi premaknemo. aslednji znak je tako, ponovno pa je najdaljši ujemajoč niz, zato spet izpišemo kodo 3. Sestavljen niz je tokrat. Opazimo lahko, da so sestavljeni nizi in s tem vnosi v slovar daljši kot pri LZW. Zadnji prebran znak je, ker se pomaknemo za dve mesti. Izpišemo kodo 0, sestavljen niz pa dodamo v slovar. S tem smo zaključili s kodiranjem, naš stisnjen niz pa je 0, 2, 0, 1, 3, 3, 0. Tokrat smo vhodni niz sicer zmanjšali iz 9 na 7 simbolov, vendar gre za kratek niz. Bolj pomembno je prikazati razliko v dolžini nizov v slovarju. Preglednica 4.1: Postopek kodiranja z algoritmom LZMW Predhodni niz Ujemajoč niz Sestavljen niz Vnos v slovar (0) (2) (3) (0) (4) B (1) B B (5) B (3) B B (6) (3) (7) (0) (8) Preglednica 4.2: Vnosi v slovar po končanem izvajanju algoritma LZMW Koda iz 0 B B 5 B

20 4.2 DEKODIRJE Postopek dekodiranja, prikazan v preglednici 4.3, je praktično enak kot pri dekodiranju z algoritmom LZW, spremeni se zgolj dodajanje vnosov v slovar, ki je enako kot pri kodiranju. Zaradi drugače stisnjenih vhodnih podatkov in dodajanja nizov v slovar se posebno stanje pri dekodiranju ne pojavi. Preglednica 4.3: Postopek dekodiranja z algoritmom LZMW Vhod Predhodni niz 0 () Izhod Vnos v slovar 2 () (3) 0 () (4) 1 (B) B B (5) 3 () B B (6) 3 () (7) 0 () (8) 4.3 IMPLEMETCIJ lgoritem LZMW je za implementiranje zahtevnejši od ostalih treh, obravnavanih v tem delu, čeprav se ob pogledu na psevdokod 4.1 od njih bistveno ne razlikuje. Podatke v slovar dodajamo v daljših nizih, kar pomeni, da iskanje s povečevanjem za en simbol ne deluje. Ta problem lahko rešimo tako, da v podatkovno strukturo dodajamo tudi podnize, zraven pa vodimo še seznam, kateri vnosi v slovarju so namenjeni iskanju in kateri uporabi pri izpisovanju kod. Če se naslednji potencialni niz ne ujema, se je potrebno pri iskanju vračati nazaj na krajši niz v slovarju, kar še dodatno oteži implementacijo. Zaradi zahtevnosti implementacije te različice nismo implementirali in vključili v praktično primerjavo. 12

21 WHILE ( i <= velikosti vhodnih podatkov ) { k = najdaljše ujemanje s slovarjem // koda najdaljšega ujemanja PRIT k S = niz, ki pripada kodi k i = i + dolžina niza S IF ( S' + S ni v slovarju) { slovar[naslednja prosta koda] = S'S } S' = S } Slika 4.1: Psevdokod kodiranja z algoritmom LZMW 13

22 5 LGORITEM LZP Ta algoritem je leta 1988 razvil James Storer in je nadgradnja algoritma LZMW [10]. Črki P v imenu pomenita»all prefixes«(vse predpone), kar nam pove, kako poteka dodajanje v slovar. Dodajamo namreč več vnosov za eno ujemanje, te pa sestavimo iz predhodnega ujemajočega niza in trenutnega niza. Sestavimo jih tako, da predhodnemu nizu dodamo vse podnize trenutnega niza, kjer začnemo s prvim znakom in se pomikamo po en znak naprej. Tako recimo za predhodni niz SLO in trenutni niz VR v slovar dodamo SLOV, SLOV in SLOVR [10]. Slovar se pri tej različici povečuje hitreje, kar pomeni hitrejše prilagajanje podatkom in s tem nekoliko boljše razmerje stiskanja. Tudi iskanje v slovarju poteka hitreje, ker se ni treba vračati pri iskanju najdaljšega ujemanja [1]. 5.1 KODIRJE Postopek je precej podoben tistemu pri algoritmu LZMW, glavna razlika je pri vnosih v slovar. Prikaz delovanja je v preglednici 5.1. Ponovno smo izbrali niz B, izhodni podatki pa so v tem primeru enaki tistim iz poglavja 4.1. Prva razlika v postopku je v petem koraku, kjer je predhodni niz B in trenutni oziroma ujemajoči niz. Sestavimo torej niza B in B s kodama 6 in 7. V naslednjem koraku sta predhodni in ujemajoči niz enaka, sestavimo pa niz, ki ga v slovar dodamo s kodo 8, ter s kodo 9. S tem smo že presegli končno število vnosov v slovar pri algoritmu LZW (7), pa tudi algoritmu LZMW (8). a koncu ponovno sestavimo niz, ki pa je že v slovarju, zato ga ne dodamo. 14

23 Preglednica 5.1: Postopek kodiranja z algoritmom LZP Predhodni niz Ujemajoč niz Sestavljen niz Vnos v slovar (0) (2) (3) (0) (4) B (1) B B (5) B (3) B B (6), B (7) (3) (8), (9) (0) Preglednica 5.2: Vnosi v slovar po končanem izvajanju algoritma LZP Koda iz 0 B B 5 B 6 B DEKODIRJE Postopek dekodiranja je ponovno zelo podoben tistemu pri algoritmih LZW ter LZMW in je prikazan v preglednici 5.3. Tudi tokrat se spremeni zgolj dodajanje vnosov v slovar. Posebno stanje se pri tem algoritmu ne pojavi. 15

24 Preglednica 5.3: Postopek dekodiranja z algoritmom LZP Vhod Predhodni niz 0 () Izhod Vnos v slovar 2 () (3) 0 () (4) 1 (B) B B (5) 3 () B B (6), B (7) 3 () (8), (9) 0 () 5.3 IMPLEMETCIJ Za slovar smo izbrali podatkovno strukturo map, za dolžine kod pa 16 bitov. Oblika slovarja je std::map<std::deque<char>, uint_16>. Podatkovno strukturo deque smo izbrali, ker smo potrebovali enostaven dostop tudi do začetka nizov. Gre za obojestransko vrsto (angl. double ended que). Pri iskanju najdaljšega ujemanja smo prebrali simbol, nato pa dodajali po en simbol in vsakič preverjali ujemanje. Pri tem nam je bila v veliko pomoč funkcija unget(), s katero smo se lahko po vhodnem toku podatkov premaknili za en simbol nazaj, ko smo naleteli na neujemanje. Pri dodajanju vnosov v slovar smo morali biti pozorni na zapolnitev pri vsakem novem vnosu (slednje v psevdokodu 5.1 ni prikazano). Vnosi se dodajajo v zanki in povečujejo za en simbol. Zraven smo preverjali še prisotnost niza v slovarju, da ne pride do podvojitve vnosov. Prav tako smo morali biti pozorni na konec vhodnega toka podatkov pri iskanju najdaljšega ujemanja. Če dosežemo konec med iskanjem najdaljšega ujemanja, izpišemo samo zadnji prebran simbol. Dekodiranje poteka precej podobno kot pri algoritmu LZW, vendar smo tukaj zaradi preprečevanja podvojitve vnosov potrebovali še možnost iskanja po slovarju, zato smo vodili dva identična slovarja, implementirana z dvema podatkovnima strukturama. Slovar, ki smo ga uporabljali za izpisovanje, je oblike std::vector<std::vector<char>>, za iskanje pa std::map<std::vector<char>, uint_16>. Tudi pri dekodiranju smo potrebovali dostop do začetka niza. Za razliko od kodiranja, kjer smo izpisovali kode, tu izpisujemo nize, kar nam je zaradi dodajanja na začetek otežilo uporabo podatkovne strukture deque, zato 16

25 smo uporabili vector. Problem se pri uporabi obojestranske vrste pojavi pri zapisovanju v datoteko, kjer izpisujemo nize tako, da podamo njihov začetek in velikost. Ker ta struktura ne zagotavlja pravilnega zaporedja elementov lahko pride do popačenja izhodnih podatkov. WHILE ( lahko preberemo nov zlog v c ) { input = input + c DO { // iskanje najdaljšega ujemanja preberemo naslednji simbol cn input = input + cn } WHILE ( lahko najdemo input v slovarju ) v vhodnem toku se premaknemo za en simbol nazaj input = input - $ // odstanimo zadnji zlog longest_match = input prev_match = input PRIT slovar[longest match] // izpišemo kodo DO { // dodajanje novih nizov d = d + longst_match[0] REMOVE longest_match[0] // odstranimo prvi zlog IF ( d ni v slovarju ) { slovar[naslednja prosta koda] = d } } WHILE ( longest_match ni prazen niz ) d = prev_match } Slika 5.1: Psevdokod kodiranja z algoritmom LZP 17

26 6 LGORITEM LZY lgoritem LZY je četrta izpeljanka algoritma LZW, ki smo jo obravnavali v diplomskem delu. vtor je Daniel J. Bernstein, ki je algoritem iznašel 26. decembra 1990 [1]. Črka Y v imenu je iz niza Yabba, ki je del niza, s katerim je bil algoritem prvotno testiran. Pri kodiranju in gradnji slovarja si pomagamo s trenutnim najdaljšim ujemanjem, ki je na začetku prazno. Ko preberemo nov simbol, pred dodajanjem v slovar preverimo, če je najdaljše ujemanje skupaj s prebranim simbolom že v slovarju, zgrajenem pred začetkom najdaljšega ujemanja. Če je temu tako, je nov niz trenutno najdaljše ujemanje. V nasprotnem primeru izpišemo kodo najdaljšega ujemanja in tega ponastavimo na samo prebran simbol. V slovar dodamo nov niz, odstranimo prvi simbol tega niza in ponovimo ta korak. Pri dekodiranju preberemo kodo in v slovarju poiščemo pripadajoč niz. ato poiščemo prvi simbol tega niza in posodobimo slovar na enak način kot pri kodiranju. Ta simbol izpišemo in ga odstranimo iz začetka niza. Ta korak ponovimo, dokler lahko iz niza preberemo prvi znak. adaljujemo z naslednjo kodo, dokler ne dekodiramo vhodnih podatkov [1]. 6.1 KODIRJE Ker izhodni podatki niso sinhronizirani z dodajanjem nizov v slovar, tega razdelimo na dva dela. Prvi del vsebuje nize, ki jih lahko izpišemo, v drugega pa začasno dodajamo nove, ki jih kasneje premaknemo v prvega. To je podrobneje opisano v poglavju 6.3, v tem prikazu pa smo dodajanje v slovar zaradi preglednosti nekoliko poenostavili. V preglednici 6.1 smo uporabili spremenljivke c, oc, o, mc in m. S c smo označili vhodni simbol, oc predstavlja sestavljen niz iz o in c, medtem ko je o pomožni niz. Ker so vsi podnizi trenutnega najdaljšega ujemanja prav tako v slovarju, lahko shranjujemo zgolj tega, za kar uporabimo m. V mc shranimo sestavljen niz iz m in c. Ponovno prikažimo delovanje z nizom B. Slovar na začetku vsebuje, B in (preglednica 6.2 nad 18

27 odebeljeno črto). Ostale spremenljivke so prazne. Pričnemo s prvim znakom vhoda. Preberemo simbol in sestavimo niz oc, ki je prav tako, saj je o na začetku prazen. Tudi spremenljivki mc in m sta v tem koraku. aslednji prebran simbol je, sestavljen niz oc pa. Ker oc ni v slovarju, izpišemo kodo za o (ta je, torej 0) in v o shranimo c. Sestavljen niz mc je. V vsakem koraku temu nizu odstranimo prvo črko in ponovno preverimo, če se nahaja v slovarju (če se ne, ga dodamo). To ponavljamo, dokler niz ni v slovarju. ato v m shranimo mc. V slovar smo tako v tem koraku dodali s kodo 3, v m pa je sedaj shranjen. V naslednjih treh korakih je postopek enak, izpišemo pa 2 (), 0 (), in 1 (B), ter v slovar dodamo (4), B (5) in B (6). ato preberemo, oc pa je sedaj niz, ki že obstaja v slovarju, zato v o shranimo oc. Tudi mc je v slovarju, zato v m že takoj shranimo mc, ki je. V naslednjem koraku preberemo in sestavimo. Ker tega niza ni v slovarju, v o shranimo c. Izpišemo (3), sestavimo mc (), ter v slovar dodamo (7), m pa postane (najdaljše ujemanje s slovarjem). V naslednjem koraku je sestavljen niz ponovno, mc pa je tokrat (v slovar ta niz dodamo s kodo 8). ajdaljše ujemanje (m) postane. Sledi še zadnji simbol iz vhoda,. Sestavimo, tako da je o sedaj, izpišemo 3 (), mc in m pa sta prav tako. Sedaj na vhodu več ni podatkov, zato zgolj izpišemo kodo za o (0). Izhodni niz sestoji iz kod 0, 2, 0, 1, 3, 3, 0. Zaradi kratkega vhodnega niza je rezultat enak kot pri algoritmih LZMW in LZP. Končni slovar ima tokrat 8 vnosov. Preglednica 6.1: Postopek kodiranja z algoritmom LZY Vhod (c) oc o B mc m 0 () (3) 2 () (4) B B 0 () B B B (5) B 1 (B) B B (6) (7) (8) Izhod 3 () 3 () Vnos v slovar 0 () 19

28 Preglednica 6.2: Vnosi v slovar po končanem izvajanju algoritma LZY Koda iz 0 B B 5 B DEKODIRJE Postopek dekodiranja je enak kot pri kodiranju. Začetni slovar in spremenljivke so enaki. Preberemo prvo kodo in v slovarju poiščemo pripadajoči niz. ato poiščemo prvi simbol v nizu in gradimo slovar kot smo to počeli pri kodiranju, dokler niz ni prazen. Prav tako izpišemo c in ga odrežemo od začetka niza. Prva koda je 0, kar pomeni, da smo prebrali. Prvi simbol je torej, mc in m prav tako. aslednji prebran niz in prvi simbol tega niza je (koda 2). Tako kot pri kodiranju sestavimo mc, ki je, ter preverimo, če je v slovarju. Ker ga tam ni, ga dodamo (koda 3), nato pa odstranimo prvi simbol in ponovno preverimo prisotnost v slovarju. Ker je v slovarju, je to sedaj najdaljši ujemajoč niz. Sedaj izpišemo c in ga odstranimo iz začetka niza o. Pri naslednjih dveh korakih je postopek enak. V naslednjem preberemo niz (koda 3). Prvi simbol c je, sestavljen simbol (mc) pa B (v prejšnjem koraku je m bil B). V slovar dodamo B s kodo 6, najdaljši ujemajoč niz (m) pa je. Izpišemo c () in ta simbol odstranimo iz začetka o, kjer je sedaj samo. Ker o še ni prazen, v naslednjem koraku ne preberemo nove kode, ampak ponovimo postopek, le da je sedaj v c shranjen. Sestavljen niz mc je tako, ki pa je v slovarju, zato tokrat ne dodamo novega vnosa. aslednja koda je ponovno 3 (), torej je c sedaj, mc pa. Tega niza še ni v slovarju, zato ga s kodo 7 tja dodamo, m pa postane. Izpišemo c in posodobimo o, ki še ni prazen, zato je v novem koraku c, nove kode pa ne preberemo. Sestavimo mc, ki je. iz dodamo v slovar (koda 8), m postane, 20

29 izpišemo pa c (). V zadnjem koraku preberemo kodo 0. Sestavimo niz, ki je v slovarju, zato je tudi m sedaj, v slovar pa ne dodamo ničesar. Izpišemo (c), ker pa novih kod na vhodu ni več, smo z dekodiranjem končali. Preglednica 6.3: Postopek dekodiranja z algoritmom LZY Vhod (o) c mc m 0 () 2 () (3) 0 () (4) 1 (B) B B B (5) B 3 () B B (6) (7) (8) 3 () 0 () Vnos v slovar Izhod 6.3 IMPLEMETCIJ Za dolžino kod smo, enako kot pri ostalih implementacijah, izbrali 16 bitov, slovar za postopek kodiranja pa smo implementirali kot std::map<std::vector<char>, uint_16>. Tokrat smo potrebovali še pomožen slovar, ki je prav tako podatkovna struktura std::map<std::vector<char>, uint_16>. Spremenljivki o in m sta std::vector<char>, c pa char. Postopek ponastavljanja slovarja v psevdokodu 6.1 ni prikazan, je pa nekoliko zahtevnejši, kot pri ostalih treh algoritmih, saj je slovar sestavljen iz dveh delov, prav tako pa izhod ni sinhroniziran z dodajanjem v slovar. V literaturi ta postopek ni opisan, zato smo pri implementaciji imeli proste roke. Ob zapolnitvi slovarja je v začasnem slovarju lahko več nizov, pozorni pa moramo biti na že izpisane kode. ajpreprostejši način je bil uporaba števcev za prebrane in izpisane kode, ob zapolnitvi slovarja pa iz konca najdaljšega ujemanja izpišemo toliko simbolov, kot je razlika med števcema, nato pa vse spremenljivke skupaj s slovarjem ponastavimo. 21

30 slovar = začetni slovar T = pomožni slovar o = m = prazen niz WHILE ( lahko preberemo { IF ( slovar vsebuje { o = oc } ELSE { PRIT slovar[o] o = c slovar = Slovar CLER T } nov zlog v c ) oc ) + T // izpraznimo T WHILE ( mc ni v slovar ali T ) { T[naslednja prosta koda] = mc REMOVE m[0] // izbrišemo prvi simbol v m } m = mc } PRIT slovar[o] Slika 6.1: Psevdokod kodiranja z algoritmom LZY Pri implementiranju dekodiranja smo pri tem algoritmu zaradi iskanja tako kod kot nizov potrebovali dva slovarja, implementirana z različnimi podatkovnimi strukturami. Za prvega smo uporabili std::vector<vector<char>>, za drugega pa std::map<vector<char>, uint_16>. Drugi možni način bi bil uporaba podatkovne strukture bimap<>. Ob zapolnitvi slovarjev oba ponastavimo na začetno vrednost, kar pa v psevdokodu 6.2 ni prikazano, ker ni ključno za razumevanje algoritma. Dodajanje vnosov v slovar je izvedeno z enako zanko, kot pri kodiranju, le da v tem primeru zaradi uporabe dveh slovarjev nov vnos dodamo v oba. 22

31 WHILE ( lahko preberemo novo kodo k ) { o = Slovar[k] // poiščemo niz, ki ga koda predstavlja WHILE ( o ni prazen niz ) { c = o[0] // v c shranimo prvi simbol niza o WHILE ( mc ni v slovarju ) { Slovar[naslednja prosta koda] = mc REMOVE m[0] // izbrišemo prvi simbol v m } PRIT c REMOVE o[0] // izpišemo c // odstanimo prvi simbol v nizu o } } Slika 6.2: Psevdokod dekodiranja z algoritmom LZY 23

32 7 REZULTTI lgoritme smo testirali na šestih datotekah, ki se razlikujejo po tipu in velikosti. Izbrali smo slikovno (.bmp), izvršljivo oziroma binarno (.exe) in zvočno (.mp3) datoteko ter štiri tekstovne (.txt) datoteke: slika lenna.bmp v velikosti 463 KB, standardna slikovna datoteka namenjena testiranju, fotografija Lene Söderberg [5], binarna datoteka putty.exe v velikosti 512 KB, SSH in Telnet klient [8], zvočna datoteka step.mp3 v velikosti 207 KB, posnetek govora eila rmstronga ob prvem pristanku na Luni [12], frankenstain.txt v velikosti 419 KB, Frankenstein, novela Mary Shelley [3], republic.txt v velikosti 680 KB, Platonov sokratski dialog Država [9] in war_and_peace.txt v velikosti 3194 KB (v nadaljevanju war.txt), Vojna in mir, roman Leva. Tolstoja [13]. Zvočna datoteka je v stisnjenem formatu, da smo lahko preverili stiskanje na podatkih z nizko redundanco. lgoritme smo testirali s procesorjem i5-4670k (takt ure 4 GHz) in 1600 Hz pomnilnikom. Implementirani so v razvojnem okolju Microsoft Visual Studio 2015 na operacijskem sistemu Windows 10. V nadaljevanju smo v preglednicah prikazali rezultate algoritmov za vsako datoteko. Izmerili smo čas kodiranja ter dekodiranja, razmerje stiskanja (enačba 7.1) in faktor stiskanja (enačba 7.2): Razmerje stiskanja= Faktor stiskanja= Velikost izhodnih podatkov Velikost vhodnih podatkov Velikost vhodnih podatkov Velikost izhodnih podatkov (7.1) (7.2) 24

33 2,5 Faktor stiskanja 2,0 1,5 1,0 LZW LZP LZY 0,5 Slika 7.1: Grafikon primerjav faktorjev stiskanja algoritmov 14,00 12,00 10,00 8,00 Čas (s) 6,00 4,00 2,00 LZW LZP LZY 0,00 Slika 7.2: Grafikon primerjave porabljenega časa pri kodiranju 25

34 6,00 5,00 4,00 Čas (s) 3,00 2,00 1,00 LZW LZP LZY 0,00 Slika 7.3: Grafikon primerjave porabljenega časa pri dekodiranju 7.1 LZW Kljub temu, da med algoritmi ni večjih razlik pri uspešnosti stiskanja, se je v večini primerov algoritem LZW obnesel najbolje. Razlog za to je ponastavitev slovarja ob zapolnitvi pri vseh implementiranih algoritmih. Zaradi preproste implementacije je tudi zelo hiter, saj ne iščemo najdaljših ujemanj. Tako kot ostali algoritmi se je dobro odnesel pri stiskanju tekstovnih datotek, ne glede na njihovo dolžino. ajmanj uspešen, tako kot ostali algoritmi, je bil pri stiskanju zvočne datoteke, saj je tam entropija zaradi že obdelanih podatkov nizka. V primerjavi z ostalimi algoritmi je najslabše stisnil binarno datoteko, ker se na vhodne podatke prilagaja počasneje. Pri stiskanju slikovne datoteke med algoritmi ni bistvene razlike. Uspešnost stiskanja bi lahko izboljšali, če bi spremenili način brisanja vnosov iz slovarja. Ob zapolnitvi bi tako lahko na primer brisali zadnji uporabljen vnos, ali pa bi na mesto da slovar brišemo, sproti preverjali razmerje stiskanja in bi ga ponastavili zgolj takrat, ko bi razmerje padlo pod določeno mejo. 26

35 Preglednica 7.1: Rezultati algoritma LZW Datoteka Čas Čas kodiranja (s) dekodiranja (s) Razmerje Faktor Zmanjšanje (%) lenna.bmp 0,5529 0,0638 0,64 1,55 35,64 putty.exe 0,4245 0,0857 0,80 1,26 20,31 step.mp3 0,2089 0,0424 0,95 1,05 4,83 frankenstain.txt 0,3123 0,0414 0,45 2,23 55,13 republic.txt 0,5004 0,0595 0,41 2,41 58,53 war.txt 2,3397 0,2836 0,43 2,31 56, LZP Izredno hitro prilagajanje algoritma LZP je lahko prednost, vendar se lahko izkaže tudi kot slabost. Rezultati kažejo, da se pri stiskanju ni izkazal za najboljšega, čeprav je v teoriji pri stiskanju uspešnejši od algoritma LZW. Glavni razlog je brisanje celotnega slovarja. Brisanje najstarejših vnosov omogoča boljše prilagajanje vhodnim podatkom ob zapolnitvi, do katere pri tem algoritmu pride prej, kot pri ostalih. S tem, ko se slovar pogosto gradi od začetka, se na izhod izpisujejo krajši nizi, posledično pa več kod, kar pomeni večjo končno datoteko. V primerjavi z algoritmom LZW bi LZP bistveno bolje stisnil datoteko, v kateri je večje število ponovitev istega simbola. Pri stiskanju zvočne datoteke je bila stisnjena oblika podatkov večja od prvotne, vendar je tudi pri ostalih algoritmih faktor stiskanja približno 1. lgoritem za kodiranje podatkov porabi več časa kot ostali algoritmi, saj iskanje najdaljšega ujemanja precej vpliva na hitrost. Dekodiranje je kljub temu hitro, ker zgolj preverjamo, če je vnos že v slovarju. Izboljšanje hitrosti izvajanja bi lahko dosegli s implementacijo bolj prilagojene podatkovne strukture. 27

36 Preglednica 7.2: Rezultati algoritma LZP Datoteka Čas Čas kodiranja (s) dekodiranja (s) Razmerje Faktor Zmanjšanje (%) lenna.bmp 2,9015 0,8641 0,65 1,54 35,21 putty.exe 2,6698 0,7087 0,78 1,29 22,27 step.mp3 1,2646 0,3032 1,02 0,98-1,93 frankenstain.txt 1,5611 0,4706 0,47 2,10 52,51 republic.txt 2,5573 0,7953 0,44 2,27 56,03 12,0249 3,7199 0,47 2,15 53,44 war.txt 7.3 LZY lgoritem LZY je izmed vseh najbolje stisnil binarno, malenkost bolje pa tudi slikovno datoteko. Pri tekstovnih datotekah ni veliko zaostajal za algoritmom LZW, vendar smo tudi tukaj brisali celoten slovar. Čas izvajanja kodiranja je nekoliko boljši, kot pri algoritmu LZP. Večja razlika v trajanju izvajanja pa je pri dekodiranju, kjer se je algoritem izkazal za najpočasnejšega. Razlog za to je postopek gradnje slovarja, ki se pri tem algoritmu izvaja na enak način pri kodiranju in dekodiranju. Pri optimalni implementaciji naj bi v teoriji ta algoritem bil v splošnem nekoliko uspešnejši od algoritma LZW, vendar bi bil ne glede na to še vedno počasnejši, saj ga ni mogoče pohitriti do te mere, da bi se po hitrosti primerjal z LZW [1]. Preglednica 7.3: Rezultati algoritma LZY Datoteka Čas Čas kodiranja (s) dekodiranja (s) Razmerje Faktor Zmanjšanje (%) lenna.bmp 1,4540 1,1672 0,64 1,56 35,85 putty.exe 1,4286 0,9917 0,76 1,31 23,63 step.mp3 0,6037 0,4456 0,99 1,01 0,48 frankenstain.txt 0,8322 0,6687 0,46 2,19 54,41 republic.txt 1,3744 1,1154 0,43 2,34 57,35 war.txt 6,4152 5,1279 0,45 2,21 54,92 28

37 8 SKLEP V diplomskem delu smo prikazali osnovne koncepte ter prednosti in slabosti algoritmov, ki pri stiskanju podatkov uporabljajo slovar. Predstavili smo postopke za algoritem LZW in njegove izpeljanke, ter razlike med njimi. Ugotovili smo, da niso primerni za stiskanje vseh vrst datotek, saj je pri nekaterih stisnjena različica celo večja od prvotne. Spet pri drugih je razmerje stiskanja nezadovoljivo. Bolj kot za naključne so ti algoritmi primerni za podatke, kjer je ponavljanje vzorcev večje. Pri implementiranju smo pri vseh algoritmih slovar ob zapolnitvi v celoti ponastavili, za to so rezultati pri algoritmih LZP in LZY v povprečju nekoliko slabši od rezultatov algoritma LZW. Pri teh algoritmih je ob zapolnitvi slovarja priporočeno brisanje najstarejših vnosov. Druga možna izboljšava je brisanje slovarja, ko razmerje stiskanja pade pod zadovoljivo mejo. Za enako ravnanje s slovarjem pri vseh algoritmih smo se odločili, ker lahko izboljšave implementiramo tudi pri algoritmu LZW in s tem vplivamo na uspešnost stiskanja. Primerjavo algoritmov bi lahko razširili še z implementacijo slovarjev za različne dolžine kod. Pri stiskanju manjših datotek bi razmerja zaradi krajših kod bila nekoliko boljša, ker večjega slovarja ne bi zapolnili, kode pa bi bile daljše. ajvečja razlika med algoritmi pa je vidna pri hitrosti izvajanja. lgoritmi, pri katerih je prisotnega več iskanja po slovarju ter obdelave podatkov so počasnejši, prav tako pa zahtevnejši za implementacijo. Prednost algoritma LZW je torej njegova preprosta oblika, posledica katere je hitro izvajanje in enostavnejša implementacija, kar je bistvenega pomena za njegovo popularnost in množično uporabo. 29

38 VIRI [1] Bernstein, D. J. Y coding: Draft 4b. 19 marec, 1991 [2] Bhat, S. LZW Data Compression Dostopno na: [ ] [3] frankenstain.txt, Dostopno na: [ ] [4] Lelewer, D.., Hirschberg, D. S. Data Compression. Poglavje 5.1. Dostopno na: [ ] [5] lenna.bmp. Dostopno na: [ ] [6] Marshall, D. Lossless Compression lgorithms Dostopno na: [ ] [7] Miller Victor S., Wegman Mark. Variations on a theme by Ziv and Lempel, Research Report, 1984 [8] putty.exe. Dostopno na: [ ] [9] republic.txt. Dostopno na: [ ] [10] Salomon D., Motta G., Handbook of Data Compression, 5. izdaja. ew York: Springer, 2010 [11] Smith S. W., Chapter 27 V: The Scientist and Engineer's Guide to Digital Signal Processing. California Technical Pub, 1997, str [12] step.mp3, Dostopno na: [ ] [13] war_and_peace.txt, Dostopno na: [ ] [14] Welch T.., Technique for High-Performance Data Compression. Computer, vol.17, št. 6, str. 8-19, junij

Reševanje problemov in algoritmi

Reševanje problemov in algoritmi Reševanje problemov in algoritmi Vhod Algoritem Izhod Kaj bomo spoznali Zgodovina algoritmov. Primeri algoritmov. Algoritmi in programi. Kaj je algoritem? Algoritem je postopek, kako korak za korakom rešimo

More information

Zgoščevanje podatkov

Zgoščevanje podatkov Zgoščevanje podatkov Pojem zgoščevanje podatkov vključuje tehnike kodiranja, ki omogočajo skrajšan zapis neke datoteke. Poznan program za zgoščevanje datotek je WinZip. Podatke je smiselno zgostiti v primeru

More information

Primerjava brezizgubnih algoritmov za stiskanje podatkov s sistemom ALGator

Primerjava brezizgubnih algoritmov za stiskanje podatkov s sistemom ALGator UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Miloš Pisarević Primerjava brezizgubnih algoritmov za stiskanje podatkov s sistemom ALGator DIPLOMSKO DELO VISOKOŠOLSKI STROKOVNI ŠTUDIJSKI

More information

OFF-LINE NALOGA NAJKRAJŠI SKUPNI NADNIZ

OFF-LINE NALOGA NAJKRAJŠI SKUPNI NADNIZ 1 OFF-LINE NALOGA NAJKRAJŠI SKUPNI NADNIZ Opis problema. Danih je k vhodnih nizov, ki jih označimo s t 1,..., t k. Množico vseh znakov, ki se pojavijo v vsaj enem vhodnem nizu, imenujmo abeceda in jo označimo

More information

Attempt to prepare seasonal weather outlook for Slovenia

Attempt to prepare seasonal weather outlook for Slovenia Attempt to prepare seasonal weather outlook for Slovenia Main available sources (ECMWF, EUROSIP, IRI, CPC.NCEP.NOAA,..) Two parameters (T and RR anomally) Textual information ( Met Office like ) Issued

More information

UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA POLONA ŠENKINC REŠEVANJE LINEARNIH DIFERENCIALNIH ENAČB DRUGEGA REDA S POMOČJO POTENČNIH VRST DIPLOMSKO DELO

UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA POLONA ŠENKINC REŠEVANJE LINEARNIH DIFERENCIALNIH ENAČB DRUGEGA REDA S POMOČJO POTENČNIH VRST DIPLOMSKO DELO UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA POLONA ŠENKINC REŠEVANJE LINEARNIH DIFERENCIALNIH ENAČB DRUGEGA REDA S POMOČJO POTENČNIH VRST DIPLOMSKO DELO LJUBLJANA, 2016 UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA

More information

TOPLJENEC ASOCIIRA LE V VODNI FAZI

TOPLJENEC ASOCIIRA LE V VODNI FAZI TOPLJENEC ASOCIIRA LE V VODNI FAZI V primeru asociacij molekul topljenca v vodni ali organski fazi eksperimentalno določeni navidezni porazdelitveni koeficient (P n ) v odvisnosti od koncentracije ni konstanten.

More information

Multipla korelacija in regresija. Multipla regresija, multipla korelacija, statistično zaključevanje o multiplem R

Multipla korelacija in regresija. Multipla regresija, multipla korelacija, statistično zaključevanje o multiplem R Multipla koelacia in egesia Multipla egesia, multipla koelacia, statistično zaklučevane o multiplem Multipla egesia osnovni model in ačunane paametov Z multiplo egesio napoveduemo vednost kiteia (odvisne

More information

Iskanje najcenejše poti v grafih preko polkolobarjev

Iskanje najcenejše poti v grafih preko polkolobarjev Univerza v Ljubljani Fakulteta za računalništvo in informatiko Veronika Horvat Iskanje najcenejše poti v grafih preko polkolobarjev DIPLOMSKO DELO VISOKOŠOLSKI STROKOVNI ŠTUDIJSKI PROGRAM PRVE STOPNJE

More information

OPTIMIRANJE IZDELOVALNIH PROCESOV

OPTIMIRANJE IZDELOVALNIH PROCESOV OPTIMIRANJE IZDELOVALNIH PROCESOV asist. Damir GRGURAŠ, mag. inž. str izr. prof. dr. Davorin KRAMAR damir.grguras@fs.uni-lj.si Namen vaje: Ugotoviti/določiti optimalne parametre pri struženju za dosego

More information

Stiskanje slik z algoritmi po vzorih iz narave

Stiskanje slik z algoritmi po vzorih iz narave Stiskanje slik z algoritmi po vzorih iz narave Gregor Jurgec Univerza v Mariboru Fakulteta za elektrotehniko, računalništvo in informatiko Smetanova 17, Maribor gregor.jurgec@gmail.com Iztok Fister Univerza

More information

Metode rangiranja spletnih strani

Metode rangiranja spletnih strani UNIVERZA V LJUBLJANI FAKULTETA ZA DRUŽBENE VEDE David Primc Metode rangiranja spletnih strani Diplomsko delo Ljubljana, 2015 UNIVERZA V LJUBLJANI FAKULTETA ZA DRUŽBENE VEDE David Primc Mentor: doc. dr.

More information

Izvedbe hitrega urejanja za CPE in GPE

Izvedbe hitrega urejanja za CPE in GPE Univerza v Ljubljani Fakulteta za računalništvo in informatiko Jernej Erker Izvedbe hitrega urejanja za CPE in GPE DIPLOMSKO DELO UNIVERZITETNI ŠTUDIJ RAČUNALNIŠTVA IN INFORMATIKE Mentor: doc. dr. Tomaž

More information

Razpoznavanje znakov prstne abecede na osnovi računalniškega vida

Razpoznavanje znakov prstne abecede na osnovi računalniškega vida Univerza v Ljubljani Fakulteta za računalništvo in informatiko Grega Kres Razpoznavanje znakov prstne abecede na osnovi računalniškega vida diplomsko delo na visokošolskem strokovnem študiju doc. dr. Iztok

More information

Uporaba preglednic za obdelavo podatkov

Uporaba preglednic za obdelavo podatkov Uporaba preglednic za obdelavo podatkov B. Golli, PeF Pedagoška fakulteta UL Ljubljana 2012 Kazalo 1 Uvod 1 2 Zgled iz kinematike 2 2.1 Izračun hitrosti................................... 2 2.2 Izračun

More information

Vsebina vaj: Komunikacije v Avtomatiki Avditorne vaje. 1. Postopki cikličnega kodiranja (CRC). 2. Postopki zgoščevanja podatkov (Huffman).

Vsebina vaj: Komunikacije v Avtomatiki Avditorne vaje. 1. Postopki cikličnega kodiranja (CRC). 2. Postopki zgoščevanja podatkov (Huffman). Laboratorij za strojni vid, Fakulteta za elektrotehniko, Univerza v Ljubljani Komunikacije v Avtomatiki Avditorne vaje Vsebina vaj: 1. Postopki cikličnega kodiranja (CRC). 2. Postopki zgoščevanja podatkov

More information

UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE. O neeksaknotsti eksaktnega binomskega intervala zaupanja

UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE. O neeksaknotsti eksaktnega binomskega intervala zaupanja UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE Zaključna naloga (Final project paper) O neeksaknotsti eksaktnega binomskega intervala zaupanja (On the inexactness

More information

ENERGY AND MASS SPECTROSCOPY OF IONS AND NEUTRALS IN COLD PLASMA

ENERGY AND MASS SPECTROSCOPY OF IONS AND NEUTRALS IN COLD PLASMA UDK621.3:(53+54+621 +66), ISSN0352-9045 Informaclje MIDEM 3~(~UU8)4, Ljubljana ENERGY AND MASS SPECTROSCOPY OF IONS AND NEUTRALS IN COLD PLASMA Marijan Macek 1,2* Miha Cekada 2 1 University of Ljubljana,

More information

MECHANICAL EFFICIENCY, WORK AND HEAT OUTPUT IN RUNNING UPHILL OR DOWNHILL

MECHANICAL EFFICIENCY, WORK AND HEAT OUTPUT IN RUNNING UPHILL OR DOWNHILL original scientific article UDC: 796.4 received: 2011-05-03 MECHANICAL EFFICIENCY, WORK AND HEAT OUTPUT IN RUNNING UPHILL OR DOWNHILL Pietro Enrico DI PRAMPERO University of Udine, Department of Biomedical

More information

R V P 2 Predavanje 05

R V P 2 Predavanje 05 R V P 2 Predavanje 05 Kreiranje programskih modulov - Scripts RVP2 Kreiranje programskih modulov 1/44 Programski moduli -Scripts Možnosti: Omogočajo: Izvajanje ukazov Izvajanje logičnih operacij Ob določenih

More information

Domen Perc. Implementacija in eksperimentalna analiza tehnike razvrščanja podatkov s konsenzom

Domen Perc. Implementacija in eksperimentalna analiza tehnike razvrščanja podatkov s konsenzom UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Domen Perc Implementacija in eksperimentalna analiza tehnike razvrščanja podatkov s konsenzom DIPLOMSKO DELO NA UNIVERZITETNEM ŠTUDIJU Mentor:

More information

USING THE DIRECTION OF THE SHOULDER S ROTATION ANGLE AS AN ABSCISSA AXIS IN COMPARATIVE SHOT PUT ANALYSIS. Matej Supej* Milan Čoh

USING THE DIRECTION OF THE SHOULDER S ROTATION ANGLE AS AN ABSCISSA AXIS IN COMPARATIVE SHOT PUT ANALYSIS. Matej Supej* Milan Čoh Kinesiologia Slovenica, 14, 3, 5 14 (28) Faculty of Sport, University of Ljubljana, ISSN 1318-2269 5 Matej Supej* Milan Čoh USING THE DIRECTION OF THE SHOULDER S ROTATION ANGLE AS AN ABSCISSA AXIS IN COMPARATIVE

More information

Topološka obdelava slik

Topološka obdelava slik Univerza v Ljubljani Fakulteta za računalništvo in informatiko Fakulteta za matematiko in fiziko Matjaž Cerar Topološka obdelava slik DIPLOMSKO DELO UNIVERZITETNI INTERDISCIPLINARNI ŠTUDIJ RAČUNALNIŠTVA

More information

AKSIOMATSKA KONSTRUKCIJA NARAVNIH

AKSIOMATSKA KONSTRUKCIJA NARAVNIH UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA Poučevanje: Predmetno poučevanje ŠPELA ZOBAVNIK AKSIOMATSKA KONSTRUKCIJA NARAVNIH ŠTEVIL MAGISTRSKO DELO LJUBLJANA, 2016 UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA

More information

Fakulteta za matematiko in fiziko Univerza v Ljubljani. Seminar. Kvantni računalniki. Avtor: Matjaž Gregorič. Mentor: prof. N.S.

Fakulteta za matematiko in fiziko Univerza v Ljubljani. Seminar. Kvantni računalniki. Avtor: Matjaž Gregorič. Mentor: prof. N.S. Fakulteta za matematiko in fiziko Univerza v Ljubljani Seminar Kvantni računalniki Avtor: Matjaž Gregorič Mentor: prof. N.S. Mankoč Borštnik Ljubljana, november 7 Povzetek V seminarju so predstavljene

More information

OA07 ANNEX 4: SCOPE OF ACCREDITATION IN CALIBRATION

OA07 ANNEX 4: SCOPE OF ACCREDITATION IN CALIBRATION OA07 ANNEX 4: SCOPE OF ACCREDITATION IN CALIBRATION Table of contents 1 TECHNICAL FIELDS... 2 2 PRESENTING THE SCOPE OF A CALIBRATION LABOORATORY... 2 3 CONSIDERING CHANGES TO SCOPES... 6 4 CHANGES WITH

More information

Samo-nastavljivo vodenje z DMC-jem in proporcionalnim regulatorjem

Samo-nastavljivo vodenje z DMC-jem in proporcionalnim regulatorjem Samo-nastavljivo vodenje z DMC-jem in proporcionalnim Matija Arh, Igor Škrjanc Fakulteta za elektrotehniko, Univerza v Ljubljani Tržaška cesta 25, 1000 Ljubjana matija.arh@fe.uni-lj.si, igor.skrjanc@fe.uni-lj.si

More information

Projektovanje paralelnih algoritama II

Projektovanje paralelnih algoritama II Projektovanje paralelnih algoritama II Primeri paralelnih algoritama, I deo Paralelni algoritmi za množenje matrica 1 Algoritmi za množenje matrica Ovde su data tri paralelna algoritma: Direktan algoritam

More information

LISREL. Mels, G. (2006). LISREL for Windows: Getting Started Guide. Lincolnwood, IL: Scientific Software International, Inc.

LISREL. Mels, G. (2006). LISREL for Windows: Getting Started Guide. Lincolnwood, IL: Scientific Software International, Inc. LISREL Mels, G. (2006). LISREL for Windows: Getting Started Guide. Lincolnwood, IL: Scientific Software International, Inc. LISREL: Structural Equation Modeling, Multilevel Structural Equation Modeling,

More information

Uvod v odkrivanje znanj iz podatkov (zapiski predavatelja, samo za interno uporabo)

Uvod v odkrivanje znanj iz podatkov (zapiski predavatelja, samo za interno uporabo) Uvod v odkrivanje znanj iz podatkov (zapiski predavatelja, samo za interno uporabo) Blaž Zupan 29. julij 2017 Kazalo 1 Odkrivanje skupin 7 1.1 Primer podatkov.................................. 7 1.2 Nekaj

More information

Vinko Vodopivec. Abstract. Ključne besede: Veneti, Reti, Stari Frigi, slovenščina, latinščina Key Words: Veneti, Rhaeti, Old Phrygian, Slovene, Latin

Vinko Vodopivec. Abstract. Ključne besede: Veneti, Reti, Stari Frigi, slovenščina, latinščina Key Words: Veneti, Rhaeti, Old Phrygian, Slovene, Latin 107 Vinko Vodopivec STATISTIČNA PRIMERJAVA ČRK IN BESED Ključne besede: Veneti, Reti, Stari Frigi, slovenščina, latinščina Key Words: Veneti, Rhaeti, Old Phrygian, Slovene, Latin Abstract Statistics comparison

More information

ENAČBA STANJA VODE IN VODNE PARE

ENAČBA STANJA VODE IN VODNE PARE ENAČBA STANJA VODE IN VODNE PARE SEMINARSKA NALOGA PRI PREDMETU JEDRSKA TEHNIKA IN ENERGETIKA TAMARA STOJANOV MENTOR: IZRED. PROF. DR. IZTOK TISELJ NOVEMBER 2011 Enačba stanja idealni plin: pv = RT p tlak,

More information

Linearna regresija. Poglavje 4

Linearna regresija. Poglavje 4 Poglavje 4 Linearna regresija Vinkove rezultate iz kemije so založili. Enostavno, komisija je izgubila izpitne pole. Rešitev: Vinko bo kemijo pisal še enkrat. Ampak, ne more, je ravno odšel na trening

More information

Univerza v Ljubljani Fakulteta za matematiko in fiziko. Oddelek za fiziko. Seminar - 3. letnik, I. stopnja. Kvantni računalniki. Avtor: Tomaž Čegovnik

Univerza v Ljubljani Fakulteta za matematiko in fiziko. Oddelek za fiziko. Seminar - 3. letnik, I. stopnja. Kvantni računalniki. Avtor: Tomaž Čegovnik Univerza v Ljubljani Fakulteta za matematiko in fiziko Oddelek za fiziko Seminar - 3. letnik, I. stopnja Kvantni računalniki Avtor: Tomaž Čegovnik Mentor: prof. dr. Anton Ramšak Ljubljana, marec 01 Povzetek

More information

UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE

UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE Zaključna naloga Uporaba logistične regresije za napovedovanje razreda, ko je število enot v preučevanih razredih

More information

UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO. Gregor Kralj PARITETNE KODE Z NIZKO GOSTOTO DIPLOMSKO DELO NA UNIVERZITETNEM ŠTUDIJU

UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO. Gregor Kralj PARITETNE KODE Z NIZKO GOSTOTO DIPLOMSKO DELO NA UNIVERZITETNEM ŠTUDIJU UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Gregor Kralj PARITETNE KODE Z NIZKO GOSTOTO DIPLOMSKO DELO NA UNIVERZITETNEM ŠTUDIJU Ljubljana, 2010 UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO

More information

Univerza na Primorskem. Fakulteta za matematiko, naravoslovje in informacijske tehnologije. Zaznavanje gibov. Zaključna naloga

Univerza na Primorskem. Fakulteta za matematiko, naravoslovje in informacijske tehnologije. Zaznavanje gibov. Zaključna naloga Univerza na Primorskem Fakulteta za matematiko, naravoslovje in informacijske tehnologije Boštjan Markežič Zaznavanje gibov Zaključna naloga Koper, september 2011 Mentor: doc. dr. Peter Rogelj Kazalo Slovarček

More information

MICROWAVE PLASMAS AT ATMOSPHERIC PRESSURE: NEW THEORETICAL DEVELOPMENTS AND APPLICATIONS IN SURFACE SCIENCE

MICROWAVE PLASMAS AT ATMOSPHERIC PRESSURE: NEW THEORETICAL DEVELOPMENTS AND APPLICATIONS IN SURFACE SCIENCE UDK621.3:(53+54+621 +66), ISSN0352-9045 Informacije MIDEM 38(2008)4, Ljubljana MICROWAVE PLASMAS AT ATMOSPHERIC PRESSURE: NEW THEORETICAL DEVELOPMENTS AND APPLICATIONS IN SURFACE SCIENCE T. 8elmonte*,

More information

Minimizacija učne množice pri učenju odločitvenih dreves

Minimizacija učne množice pri učenju odločitvenih dreves Univerza v Ljubljani Fakulteta za računalništvo in informatiko Ivan Štajduhar Minimizacija učne množice pri učenju odločitvenih dreves Diplomska naloga Mentor: prof. dr. Ivan Bratko Ljubljana, 2001 Izjava

More information

Računalnik iz domin. Škafar, Maja Šafarič, Nina Sangawa Hmeljak Mentor: Vid Kocijan

Računalnik iz domin. Škafar, Maja Šafarič, Nina Sangawa Hmeljak Mentor: Vid Kocijan Računalnik iz domin Primož Škafar, Maja Šafarič, Nina Sangawa Hmeljak Mentor: Vid Kocijan Povzetek Naša naloga je bila ugotoviti kako sestaviti računalnik (Turingov stroj) iz domin in logičnih izrazov.

More information

ZDRAVLJENJE BOLNICE S VON WILLEBRANDOVO BOLEZNIJO TIPA 3 IN INHIBITORJI

ZDRAVLJENJE BOLNICE S VON WILLEBRANDOVO BOLEZNIJO TIPA 3 IN INHIBITORJI ZDRAVLJENJE BOLNICE S VON WILLEBRANDOVO BOLEZNIJO TIPA 3 IN INHIBITORJI B. Faganel Kotnik, L. Kitanovski, J. Jazbec, K. Strandberg, M. Debeljak, Bakija, M. Benedik Dolničar A. Trampuš Laško, 9. april 2016

More information

Optimizacija delovanja in povečanje obiska na spletni strani

Optimizacija delovanja in povečanje obiska na spletni strani UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Jure Adlešič Optimizacija delovanja in povečanje obiska na spletni strani DIPLOMSKO DELO NA VISOKOŠOLSKEM STROKOVNEM ŠTUDIJU Mentor: doc.

More information

NIKJER-NIČELNI PRETOKI

NIKJER-NIČELNI PRETOKI UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA ALJA ŠUBIC NIKJER-NIČELNI PRETOKI DIPLOMSKO DELO LJUBLJANA, 2016 UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA Dvopredmetni učitelj: matematika - računalništvo ALJA

More information

Excel. Matjaž Željko

Excel. Matjaž Željko Excel Matjaž Željko Elektronska preglednica Excel Excel je zmogljiv kalkulator. Omogoča izdelavo grafikonov statistično analizo podatkov lepo oblikovanje poročila za natis Podatke predstavljamo tabelarično,

More information

UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE

UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE Zaključna naloga Primerjava modernih pristopov za identifikacijo pomembno izraženih genov za dve skupini (Comparison

More information

Rudarjenje razpoloženja na komentarjih rtvslo.si

Rudarjenje razpoloženja na komentarjih rtvslo.si Univerza v Ljubljani Fakulteta za računalništvo in informatiko Brina Škoda Rudarjenje razpoloženja na komentarjih rtvslo.si DIPLOMSKO DELO UNIVERZITETNI ŠTUDIJSKI PROGRAM PRVE STOPNJE RAČUNALNIŠTVO IN

More information

Vsebina Od problema do načrta programa 1. del

Vsebina Od problema do načrta programa 1. del Vsebina Od problema do načrta programa 1. del Osnovne strategije iskanja rešitev problema Načini opisovanja rešitev problema Osnovni gradniki rešitve problema Primeri Napišite postopek za kuhanje kave

More information

UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE. Ekstremne porazdelitve za odvisne spremenljivke

UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE. Ekstremne porazdelitve za odvisne spremenljivke UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE Zaključna naloga Ekstremne porazdelitve za odvisne spremenljivke (Extremal Distributions for Dependent Variables)

More information

The consequences of quantum computing

The consequences of quantum computing University of Ljubljana Faculty of Computer and Information Science Kokan Malenko The consequences of quantum computing BACHELOR S THESIS UNDERGRADUATE UNIVERSITY STUDY PROGRAM COMPUTER SCIENCE AND MATHEMATICS

More information

Miha Troha. Robotsko učenje in planiranje potiskanja predmetov

Miha Troha. Robotsko učenje in planiranje potiskanja predmetov UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Miha Troha Robotsko učenje in planiranje potiskanja predmetov DIPLOMSKO DELO NA UNIVERZITETNEM ŠTUDIJU Mentor: prof. dr. Ivan Bratko Ljubljana,

More information

Preverjanje optimiziranosti spletnih strani

Preverjanje optimiziranosti spletnih strani UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Boštjan Hozjan Preverjanje optimiziranosti spletnih strani DIPLOMSKO DELO NA UNIVERZITETNEM ŠTUDIJU Ljubljana, 2016 UNIVERZA V LJUBLJANI

More information

Dejan Petelin. Sprotno učenje modelov na podlagi Gaussovih procesov

Dejan Petelin. Sprotno učenje modelov na podlagi Gaussovih procesov UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Dejan Petelin Sprotno učenje modelov na podlagi Gaussovih procesov DIPLOMSKO DELO NA UNIVERZITETNEM ŠTUDIJU Mentor: doc. dr. Janez Demšar

More information

(Received )

(Received ) 79 Acta Chim. Slov. 1997, 45(1), pp. 79-84 (Received 28.1.1999) THE INFLUENCE OF THE PROTEINASE INHIBITOR EP475 ON SOME MORPHOLOGICAL CHARACTERISTICS OF POTATO PLANTS (Solanum tuberosum L. cv. Desirée)

More information

Ivan Pucelj: RIMSKE ŠTEVILKE IN RAČUNANJE Z NJIMI. List za mlade matematike, fizike, astronome in računalnikarje

Ivan Pucelj: RIMSKE ŠTEVILKE IN RAČUNANJE Z NJIMI. List za mlade matematike, fizike, astronome in računalnikarje List za mlade matematike, fizike, astronome in računalnikarje ISSN 0351-6652 Letnik 12 (1984/1985) Številka 3 Strani 110 119 Ivan Pucelj: RIMSKE ŠTEVILKE IN RAČUNANJE Z NJIMI Ključne besede: matematika.

More information

UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA SAŠO ZUPANEC MAX-PLUS ALGEBRA DIPLOMSKO DELO

UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA SAŠO ZUPANEC MAX-PLUS ALGEBRA DIPLOMSKO DELO UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA SAŠO ZUPANEC MAX-PLUS ALGEBRA DIPLOMSKO DELO Ljubljana, 2013 UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA ODDELEK ZA MATEMATIKO IN RAČUNALNIŠTVO SAŠO ZUPANEC Mentor:

More information

Verifikacija napovedi padavin

Verifikacija napovedi padavin Oddelek za Meteorologijo Seminar: 4. letnik - univerzitetni program Verifikacija napovedi padavin Avtor: Matic Šavli Mentor: doc. dr. Nedjeljka Žagar 26. februar 2012 Povzetek Pojem verifikacije je v meteorologiji

More information

Distance reduction with the use of UDF and Mathematica. Redukcija dolžin z uporabo MS Excel ovih lastnih funkcij in programa Mathematica

Distance reduction with the use of UDF and Mathematica. Redukcija dolžin z uporabo MS Excel ovih lastnih funkcij in programa Mathematica RMZ Materials and Geoenvironment, Vol. 54, No. 2, pp. 265-286, 2007 265 Distance reduction with the use of UDF and Mathematica Redukcija dolžin z uporabo MS Excel ovih lastnih funkcij in programa Mathematica

More information

Cveto Trampuž PRIMERJAVA ANALIZE VEČRAZSEŽNIH TABEL Z RAZLIČNIMI MODELI REGRESIJSKE ANALIZE DIHOTOMNIH SPREMENLJIVK

Cveto Trampuž PRIMERJAVA ANALIZE VEČRAZSEŽNIH TABEL Z RAZLIČNIMI MODELI REGRESIJSKE ANALIZE DIHOTOMNIH SPREMENLJIVK Cveto Trampuž PRIMERJAVA ANALIZE VEČRAZSEŽNIH TABEL Z RAZLIČNIMI MODELI REGRESIJSKE ANALIZE DIHOTOMNIH SPREMENLJIVK POVZETEK. Namen tega dela je prikazati osnove razlik, ki lahko nastanejo pri interpretaciji

More information

Open Data Structures (za programski jezik Java) v slovenščini. Izdaja 0.1F. Pat Morin

Open Data Structures (za programski jezik Java) v slovenščini. Izdaja 0.1F. Pat Morin Open Data Structures (za programski jezik Java) v slovenščini Izdaja 0.1F Pat Morin Kazalo 1 Uvod 1 1.1 Zahteva po učinkovitosti.................... 2 1.2 Vmesniki............................. 4 1.2.1

More information

Multimedijska predstavitev globalne poravnave dveh nizov

Multimedijska predstavitev globalne poravnave dveh nizov Radovan Bajković Multimedijska predstavitev globalne poravnave dveh nizov Diplomsko delo Maribor, september 2011 I Diplomsko delo univerzitetnega študijskega programa MULTIMEDIJSKA PREDSTAVITEV GLOBALNE

More information

22. državno tekmovanje v znanju računalništva (1998) NALOGE ZA PRVO SKUPINO. Kaj izpiše naslednji program? Rešitev: str. 8

22. državno tekmovanje v znanju računalništva (1998) NALOGE ZA PRVO SKUPINO. Kaj izpiše naslednji program? Rešitev: str. 8 1998.1.1] 1 22. državno tekmovanje v znanju računalništva (1998) Naloge Rešitve I 1 2 3 4 1 2 3 4 II 1 2 3 4 1 2 3 4 III 1 2 3 4 1 2 3 4 1998.1.1 NALOGE ZA PRVO SKUPINO Kaj izpiše naslednji program? Rešitev:

More information

USING SIMULATED SPECTRA TO TEST THE EFFICIENCY OF SPECTRAL PROCESSING SOFTWARE IN REDUCING THE NOISE IN AUGER ELECTRON SPECTRA

USING SIMULATED SPECTRA TO TEST THE EFFICIENCY OF SPECTRAL PROCESSING SOFTWARE IN REDUCING THE NOISE IN AUGER ELECTRON SPECTRA UDK 543.428.2:544.171.7 ISSN 1580-2949 Original scientific article/izvirni znanstveni ~lanek MTAEC9, 49(3)435(2015) B. PONIKU et al.: USING SIMULATED SPECTRA TO TEST THE EFFICIENCY... USING SIMULATED SPECTRA

More information

Razvoj spletnega slovarja slovenskega znakovnega jezika

Razvoj spletnega slovarja slovenskega znakovnega jezika Univerza v Ljubljani Fakulteta za računalništvo in informatiko Luka Cempre Razvoj spletnega slovarja slovenskega znakovnega jezika DIPLOMSKO DELO UNIVERZITETNI ŠTUDIJ RAČUNALNIŠTVA IN INFORMATIKE Mentor:

More information

UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE. Verjetnostni algoritmi za testiranje praštevilskosti

UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE. Verjetnostni algoritmi za testiranje praštevilskosti UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE Zaključna naloga Verjetnostni algoritmi za testiranje praštevilskosti (Algorithms for testing primality) Ime in

More information

UDK : ISSN Original scientific article/izvirni znanstveni ~lanek MTAEC9, 46(5)471(2012)

UDK : ISSN Original scientific article/izvirni znanstveni ~lanek MTAEC9, 46(5)471(2012) UDK 621.9.025.5:620.191.35 ISSN 1580-2949 Original scientific article/izvirni znanstveni ~lanek MTAEC9, 46(5)471(2012) Y. KAZANCOGLU et al.: APPLICATION OF A TAGUCHI-BASED NEURAL NETWORK FOR FORECASTING...

More information

VAJE 2: Opisna statistika

VAJE 2: Opisna statistika VAJE : Opisna statistika Na računalniških vajah se za urejanje in prikazovanje statističnih podatkov uporabi statistični programski paket SPSS in podatkovna datoteka podatki.sav. NALOGE: 1. Analiza vzorčnih

More information

Verodostojnost in kvaliteta spletno dostopnih informacij

Verodostojnost in kvaliteta spletno dostopnih informacij Univerza v Ljubljani Filozofska fakulteta Oddelek za bibliotekarstvo, informacijsko znanost in knjigarstvo Verodostojnost in kvaliteta spletno dostopnih informacij Mentor: dr. Jure Dimec Lea Očko Katja

More information

NALOGE ZA PRVO SKUPINO. Kaj izpiše naslednji program? R: 9 Odgovor primerno utemelji!

NALOGE ZA PRVO SKUPINO. Kaj izpiše naslednji program? R: 9 Odgovor primerno utemelji! 1998.1.1] 1 22. državno tekmovanje v znanju računalništva (1998) 1998.1.1 NALOGE ZA PRVO SKUPINO Kaj izpiše naslednji program? R: 9 Odgovor primerno utemelji! program Ego; const S: array [1..21] of string

More information

Pohitritev izvajanja evolucijskih algoritmov z večprocesorskimi in multiračunalniškimi sistemi

Pohitritev izvajanja evolucijskih algoritmov z večprocesorskimi in multiračunalniškimi sistemi Elektrotehniški vestnik 69(3-4): 227 233, 2002 Electrotechnical Review, Ljubljana, Slovenija Pohitritev izvajanja evolucijskih algoritmov z večprocesorskimi in multiračunalniškimi sistemi Simon Vavpotič,

More information

Grafični gradnik za merjenje kvalitete klasifikatorja s pomočjo krivulj

Grafični gradnik za merjenje kvalitete klasifikatorja s pomočjo krivulj UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Miha Biček Grafični gradnik za merjenje kvalitete klasifikatorja s pomočjo krivulj DIPLOMSKO DELO NA UNIVERZITETNEM ŠTUDIJU Mentor: doc. dr.

More information

Calculation of stress-strain dependence from tensile tests at high temperatures using final shapes of specimen s contours

Calculation of stress-strain dependence from tensile tests at high temperatures using final shapes of specimen s contours RMZ Materials and Geoenvironment, Vol. 59, No. 4, pp. 331 346, 2012 331 Calculation of stress-strain dependence from tensile tests at high temperatures using final shapes of specimen s contours Določitev

More information

Katja Tuma Generiranje in reševanje sudokuja

Katja Tuma Generiranje in reševanje sudokuja Univerza v Ljubljani Fakulteta za računalništvo in informatiko Katja Tuma Generiranje in reševanje sudokuja DIPLOMSKO DELO UNIVERZITETNI BOLONJSKI ŠTUDIJSKI PROGRAM PRVE STOPNJE RAČUNALNIŠTVA IN INFORMATIKE

More information

Analiza variance in linearna regresija

Analiza variance in linearna regresija Analiza variance in linearna regresija Aleš Žiberna 28. november 2011 Kazalo 1 Uporabljeni podatki 2 2 Analiza variance (ANOVA) 2 2.1 Enofaktorska analiza variance za neodvisne vzorce....... 3 2.2 Večfaktorska

More information

PROBLEM SIMETRIČNEGA TRGOVSKEGA POTNIKA IN OPTIMIZACIJA Z GENETSKIMI ALGORITMI

PROBLEM SIMETRIČNEGA TRGOVSKEGA POTNIKA IN OPTIMIZACIJA Z GENETSKIMI ALGORITMI 1 Janko Juršič PROBLEM SIMETRIČNEGA TRGOVSKEGA POTNIKA IN OPTIMIZACIJA Z GENETSKIMI ALGORITMI Diplomsko delo Maribor, september 2010 2 Diplomsko delo univerzitetnega študijskega programa PROBLEM SIMETRIČNEGA

More information

Vrednotenje gibov in kretenj roke kot vhodne naprave za komunikacijo človek stroj v navideznih okoljih

Vrednotenje gibov in kretenj roke kot vhodne naprave za komunikacijo človek stroj v navideznih okoljih Elektrotehniški vestnik 71(1-2): 13 19, 2004 Electrotechnical Review, Ljubljana, Slovenija Vrednotenje gibov in kretenj roke kot vhodne naprave za komunikacijo človek stroj v navideznih okoljih Peter Rulić,

More information

UNIVERZA V MARIBORU FAKULTETA ZA ELEKTROTEHNIKO, RAČUNALNIŠTVO IN INFORMATIKO. Filip Urh DINAMIČNI PARALELIZEM NA GPE.

UNIVERZA V MARIBORU FAKULTETA ZA ELEKTROTEHNIKO, RAČUNALNIŠTVO IN INFORMATIKO. Filip Urh DINAMIČNI PARALELIZEM NA GPE. UNIVERZA V MARIBORU FAKULTETA ZA ELEKTROTEHNIKO, RAČUNALNIŠTVO IN INFORMATIKO Filip Urh DINAMIČNI PARALELIZEM NA GPE Diplomsko delo Maribor, september 2015 DINAMIČNI PARALELIZEM NA GPE Diplomsko delo

More information

JERNEJ TONEJC. Fakulteta za matematiko in fiziko

JERNEJ TONEJC. Fakulteta za matematiko in fiziko . ARITMETIKA DVOJIŠKIH KONČNIH OBSEGOV JERNEJ TONEJC Fakulteta za matematiko in fiziko Math. Subj. Class. (2010): 11T{06, 22, 55, 71}, 12E{05, 20, 30}, 68R05 V članku predstavimo končne obsege in aritmetiko

More information

Modelska Analiza 1. University of Ljubljana Faculty of Mathematics and Physics. 3. naloga - Numeri na minimizacija

Modelska Analiza 1. University of Ljubljana Faculty of Mathematics and Physics. 3. naloga - Numeri na minimizacija University of Ljubljana Faculty of Mathematics and Physics Modelska Analiza 1 3. naloga - Numeri na minimizacija Avtor: Matic Lubej Asistent: dr. Simon ƒopar Predavatelj: prof. dr. Alojz Kodre Ljubljana,

More information

Problem umetnostne galerije

Problem umetnostne galerije Problem umetnostne galerije Marko Kandič 17. september 2006 Za začetek si oglejmo naslednji primer. Recimo, da imamo v galeriji polno vrednih slik in nočemo, da bi jih kdo ukradel. Seveda si želimo, da

More information

ACTA BIOLOGICA SLOVENICA LJUBLJANA 2012 Vol. 55, [t. 1: 29 34

ACTA BIOLOGICA SLOVENICA LJUBLJANA 2012 Vol. 55, [t. 1: 29 34 ACTA BIOLOGICA SLOVENICA LJUBLJANA 2012 Vol. 55, [t. 1: 29 34 Survey of the Lynx lynx distribution in the French Alps: 2005 2009 update Spremljanje razširjenosti risa v francoskih Alpah: 2005 2009 Eric

More information

Hadamardove matrike in misija Mariner 9

Hadamardove matrike in misija Mariner 9 Hadamardove matrike in misija Mariner 9 Aleksandar Jurišić, 25. avgust, 2009 J. Hadamard (1865-1963) je bil eden izmed pomembnejših matematikov na prehodu iz 19. v 20. stoletje. Njegova najpomembnejša

More information

Naloge iz LA T EXa : 3. del

Naloge iz LA T EXa : 3. del Naloge iz LA T EXa : 3. del 1. V besedilo vklju ite naslednjo tabelo skupaj z napisom Kontrolna naloga Dijak 1 2 Povpre je Janko 67 72 70.5 Metka 72 67 70.5 Povpre je 70.5 70.5 Tabela 1: Rezultati kontrolnih

More information

Hibridizacija požrešnih algoritmov in hitrega urejanja

Hibridizacija požrešnih algoritmov in hitrega urejanja Univerza v Ljubljani Fakulteta za računalništvo in informatiko Nina Vehovec Hibridizacija požrešnih algoritmov in hitrega urejanja DIPLOMSKO DELO INTERDISCIPLINARNI UNIVERZITETNI ŠTUDIJSKI PROGRAM PRVE

More information

Obisk iz rezultatov iskanj na iskalniku Google

Obisk iz rezultatov iskanj na iskalniku Google Univerza v Ljubljani Fakulteta za računalništvo in informatiko Uroš Okorn Obisk iz rezultatov iskanj na iskalniku Google DIPLOMSKO DELO VISOKOŠOLSKI STROKOVNI ŠTUDIJSKI PROGRAM PRVE STOPNJE RAČUNALNIŠTVO

More information

Simulation of multilayer coating growth in an industrial magnetron sputtering system

Simulation of multilayer coating growth in an industrial magnetron sputtering system RMZ Materials and Geoenvironment, Vol. 57, No. 3, pp. 317 330, 2010 317 Simulation of multilayer coating growth in an industrial magnetron sputtering system Simulacija rasti večplastnih prevlek v industrijski

More information

UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA LUKA VIKTOR ROGAČ KONČNI AVTOMATI DIPLOMSKO DELO

UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA LUKA VIKTOR ROGAČ KONČNI AVTOMATI DIPLOMSKO DELO UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA LUKA VIKTOR ROGAČ KONČNI AVTOMATI DIPLOMSKO DELO LJUBLJANA, 2015 UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA Univerzitetni študijski program 1. stopnje: Dvopredmetni

More information

Mehki regulator za avtonomno vožnjo kolesa

Mehki regulator za avtonomno vožnjo kolesa Univerza v Ljubljani Fakulteta za računalništvo in informatiko Miha Mohorčič Mehki regulator za avtonomno vožnjo kolesa DIPLOMSKO DELO UNIVERZITETNI ŠTUDIJSKI PROGRAM PRVE STOPNJE RAČUNALNIŠTVO IN INFORMATIKA

More information

JEDRSKA URA JAN JURKOVIČ. Fakulteta za matematiko in fiziko Univerza v Ljubljani

JEDRSKA URA JAN JURKOVIČ. Fakulteta za matematiko in fiziko Univerza v Ljubljani JEDRSKA URA JAN JURKOVIČ Fakulteta za matematiko in fiziko Univerza v Ljubljani Natančnost časa postaja vse bolj uporabna in pomembna, zato se rojevajo novi načini merjenja časa. Do danes najbolj natančnih

More information

UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE

UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE Zaključna naloga (Final project paper) Grafi struktur proteinov: Uporaba teorije grafov za analizo makromolekulskih

More information

NALOGE ZA PRVO SKUPINO

NALOGE ZA PRVO SKUPINO 1999.1.1 3] 1 23. državno tekmovanje v znanju računalništva (1999) 1999.1.1 NALOGE ZA PRVO SKUPINO Podjetje Import Eskort te je najelo za svetovalca za rešitev R: 11 njihovega problema letnice 2000. V

More information

2A skupina zemeljskoalkalijske kovine

2A skupina zemeljskoalkalijske kovine 1. NALOGA: V ČEM SE RAZLIKUJETA BeO IN MgO? 1. NALOGA: ODGOVOR Elementi 2. periode (od Li do F) se po fizikalnih in kemijskih lastnostih (diagonalne lastnosti) znatno razlikujejo od elementov, ki so v

More information

OPTIMIZACIJA Z ROJEM DELCEV

OPTIMIZACIJA Z ROJEM DELCEV UNIVERZA V MARIBORU FAKULTETA ZA ORGANIZACIJSKE VEDE Smer: organizacijska informatika OPTIMIZACIJA Z ROJEM DELCEV Mentor: doc. dr. Igor Bernik Kandidat: Matjaž Lipovšek Kranj, december 2005 Izjava: "Študent

More information

Saponification Reaction System: a Detailed Mass Transfer Coefficient Determination

Saponification Reaction System: a Detailed Mass Transfer Coefficient Determination DOI: 10.17344/acsi.2014.1110 Acta Chim. Slov. 2015, 62, 237 241 237 Short communication Saponification Reaction System: a Detailed Mass Transfer Coefficient Determination Darja Pe~ar* and Andreja Gor{ek

More information

NEODLOČLJIVI PROBLEMI V TEORIJI IZRAČUNLJIVOSTI

NEODLOČLJIVI PROBLEMI V TEORIJI IZRAČUNLJIVOSTI UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA LUKA VIKTOR ROGAČ NEODLOČLJIVI PROBLEMI V TEORIJI IZRAČUNLJIVOSTI MAGISTRSKO DELO LJUBLJANA, 2017 UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA POUČEVANJE, PREDMETNO

More information

GEOMETRIJSKE FAZE V KVANTNI MEHANIKI

GEOMETRIJSKE FAZE V KVANTNI MEHANIKI GEOMETRIJSKE FAZE V KVANTNI MEHANIKI LARA ULČAKAR Fakulteta za matematiko in fiziko Univerza v Ljubljani V članku so predstavljene geometrijske faze, ki nastopijo pri obravnavi kvantnih sistemov. Na začetku

More information

2002.X.1 Mobilni milijonar

2002.X.1 Mobilni milijonar 2002.X.1 2] 1 Dodatne naloge Včasih se ob pripravljanju nalog za tekmovanje nabere več nalog, kot jih tisto leto potrebujemo. Nekaj nalog torej ostane neuporabljenih, kar pa še ne pomeni, da so slabe ali

More information

Gručenje z omejitvami na podlagi besedil in grafov pri razporejanju akademskih člankov

Gručenje z omejitvami na podlagi besedil in grafov pri razporejanju akademskih člankov Univerza v Ljubljani Fakulteta za računalništvo in informatiko Tadej Škvorc Gručenje z omejitvami na podlagi besedil in grafov pri razporejanju akademskih člankov MAGISTRSKO DELO MAGISTRSKI PROGRAM DRUGE

More information

Luka Taras Korošec ANALIZA IN NADGRADNJA APLIKACIJE ZA DELO Z GRAFI

Luka Taras Korošec ANALIZA IN NADGRADNJA APLIKACIJE ZA DELO Z GRAFI UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA Luka Taras Korošec ANALIZA IN NADGRADNJA APLIKACIJE ZA DELO Z GRAFI DIPLOMSKO DELO LJUBLJANA, 2016 UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA UNIVERZITETNI ŠTUDIJSKI

More information

UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE. Naknadna stabilizacija videoposnetkov

UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE. Naknadna stabilizacija videoposnetkov UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE Zaključna naloga Naknadna stabilizacija videoposnetkov (Subsequent video stabilization) Ime in priimek: Kevin Sedevcic

More information

UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE

UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE Zaključna naloga Inženirski pristop k načrtovanju in implementaciji reševalca Sudoku za mobilne naprave (Engineering

More information