Razširitev sistema ALGator za dolocanje mej parametrov testnih primerov

Velikost: px
Začni prikazovanje s strani:

Download "Razširitev sistema ALGator za dolocanje mej parametrov testnih primerov"

Transkripcija

1 Univerza v Ljubljani Fakulteta za računalništvo in informatiko Miha Stele Razširitev sistema ALGator za določanje mej parametrov testnih primerov DIPLOMSKO DELO VISOKOŠOLSKI STROKOVNI ŠTUDIJSKI PROGRAM PRVE STOPNJE RAČUNALNIŠTVO IN INFORMATIKA Mentor: doc. dr. Tomaž Dobravec Ljubljana, 2018

2 Copyright. Rezultati diplomske naloge so intelektualna lastnina avtorja in Fakultete za računalništvo in informatiko Univerze v Ljubljani. Za objavo in koriščenje rezultatov diplomske naloge je potrebno pisno privoljenje avtorja, Fakultete za računalništvo in informatiko ter mentorja. Besedilo je oblikovano z urejevalnikom besedil L A TEX.

3 Fakulteta za računalništvo in informatiko izdaja naslednjo nalogo: Tematika naloge: Sistem ALGator omogoča izvajanje algoritmov na podanih testnih primerih in primerjalno analizo indikatorjev izvajanja. V diplomskem delu zasnujte logiko opisa testnega primera s pomočjo enega ali več parametrov ter razširite sistem ALGator tako, da bo znal samostojno ustvarjati testne primere s podanimi vrednostmi parametrov. Sistemu dodajte tudi logiko avtomatskega izvajanja algoritmov na testnih primerih, ki jih dobimo s sistematičnim pregledovanjem naborov parametrov. Glavni cilj naloge naj bo izdelava postopka, s katerim sistem ALGator za podan problem določi meje za parametre testnih primerov, pri katerih se algoritmi še izvedejo v razumnem času.

4

5 Kazalo Povzetek Abstract 1 Uvod 1 2 Orodja in ogrodja Linux Splošno o jedru Linux Linux distribucije Linux Fedora NetBeans Java Javadoc Tekstovni urejevalniki Git Github in Gitlab Prototip Struktura novih modulov v programu Podatkovne strukture sistema Struktura novih modulov v projektu Povezava sistema in projekta

6 4 Pristopi k reševanju Povezovanje testnih primerov z novimi metodami sistema AL- Gator Prevajanje sistema Reševanje problema kombinacij Ugnezdene zanke Zasnovana rešitev Obvladovanje glavne zanke Reševanje s kazalci Globoko preiskovanje Težave Napačno obvladovanje glavne zanke Integriranje novih funkcionalnosti Neželeni preskoki kombinacij Analiza Vzorec rezultata Urejanje Rezultati Razcep na prafaktorje Rezultati Sklep Ugotovitve Možne izboljšave Izboljšava prostorske zahtevnosti Izboljšava časovne zahtevnosti Zaključek Literatura 42

7 Povzetek Naslov: Razširitev sistema ALGator za določanje mej parametrov testnih primerov Avtor: Miha Stele ALGator je sistem za ocenjevanje kakovosti algoritmov in analizo rezultatov. Glavna naloga diplomskega dela je bila izdelava avtomatskega preiskovanja razumnih mej za poljubne parametre. Naloga je bila posredna, saj je bilo za dosego rezultata potrebno mnogo modulov implementirati. V grobem smo napravili štiri različne sklope, in sicer definirali smo strukture celotne rešitve, zbrali in razčlenili smo konfiguracije, izdelali smo logiko za generiranje in obvladovanje kombinacij parametrov ter logiko za globljo preiskavo parametrov. V prvi sklop spada tudi raziskovanje obstoječega sistema, kjer smo poskušali uporabiti že obstoječe metode in sestaviti čim manj novih razredov. Najbolj zahteven problem je bil pri glavni logiki, kjer je nastopalo obvladovanje kombinacij in logika za globljo preiskavo. Ta ni zahtevala pretirano obsežne kode, vendar pa je sistem zahteval zelo natančno logiko in med seboj odvisne komponente. Posledično je pri tem prihajalo do največ hroščev, ki pa jih je bilo tudi najtežje odpraviti. Ključne besede: programska oprema, integracija, avtomatizacija.

8

9 Abstract Title: Extension of ALGator system for defining parameter limits Author: Miha Stele ALGator is a system for evaluating quality of algorithms and for analysing its results. In this diploma work, the main goal was to develop an automatic search for the adequate limits of any parameters. The task could not be made directly since we had to build more modules to achieve the goal. In general, our implementation consisted of four parts: definition of the whole structure, gathering and parsing the configuration data, generating and handling the combinations and logic for deep searching of a parameter. The most complex part was the main logic, which did not contain too many lines of code, but I had to be very accurate. Consequently, the hardest bugs to fix occurred there. Keywords: software, integration, automation.

10

11 Poglavje 1 Uvod ALGator (logotip je prikazan na sliki 1.1) je sistem za izvajanje algoritmov na podanih testnih podatkih ter analizo rezultatov izvajanja. Sistem omogoča dodajanje in upravljanje poljubnega števila projektov. V okviru enega projekta je definiran problem, testne množice vhodnih podatkov ter način reševanja nalog tega problema. Projekt lahko vsebuje poljubno število algoritmov, ki naloge rešujejo na predpisan način. Sistem omogoča analizo izvajanja posameznega algoritma ter primerjavo med algoritmi istega projekta [1]. Govorili bomo o dveh implementacijah skozi delo, tj. programa in projekta. Program je zbirka razredov, zadolžena za izvajanje projekta. Projekt je skupek algoritmov, ki rešujejo isti problem. Slika 1.1: Logotip sistema ALGator (vir slike: [1]) 1

12 2 Miha Stele V diplomskem delu smo nadgradili sistem tako, da je sposoben izmeriti razumne meje oz. meje, v katerih se program še izvede v dovolj hitrem času. Zaradi zanimanja nad algoritmi in delom na nelastnih projektih smo se odločili, da je to izziv oziroma tematika za nas. Večkrat bomo omenili besedo parameter. Ta predstavlja argument, ki je pomemben za delovanje algoritma. Dobi jih algoritem na vhod preko funkcije, v kateri se izvaja. Vsak ima svoj opis, kjer definiramo naslednje lastnosti: 1. opis parametra oz. njegov namen, ki je koristen za uporabnika, 2. zaloga vrednosti, definirana na dva načina: (a) neposredni vnos vrednosti (parameter tipa enum), (b) meje oz. želeno preiskovalno območje, npr. od vrednosti 100 do (parameter tipa long), 3. opcije, npr. način preskakovanja. Strukture programa smo se lotili tako, da je program v zelo veliki meri nastavljiv. Usposobili smo nastavljanje parametrov tudi preko klicnih argumentov. Za preskakovanje vrednosti parametra smo omogočili dva načina, tj. z množenjem ali s prištevanjem konstante. Odprli smo možnosti raznih načinov urejanja parametrov. Urejanje parametrov nam določa, s katerim parametrom začnemo delati kombinacije. Kombinacije se delajo s parametri tako, da se sprehodi čez vse diskretne vrednosti (parameter tipa long sestavi diskretno zalogo vrednosti s pomočjo opisa, parameter tipa enum pa je že podan v diskretni obliki). Pri parametru tipa long vemo, da je številska vrednost in da večje število pomeni večje breme za algoritem, zato smo zmožni te parametre preiskovati bolj natančno oz. podrobno z globokim preiskovanjem (glej 4.4.2). Pri tipu enum pa imamo že diskretno zalogo vrednosti in ni nujno, da je število, zato ne vemo, pri kateri vrednosti bo trajalo najdlje.

13 Diplomska naloga 3 Parametre uredimo padajoče (implementacija se mora za zdaj obvezno najprej urediti po tipu tako, da so parametri tipa long prvi na vrsti pri tvorjenju kombinacij, nato pa še padajoče), kjer algoritem začne delati kombinacije najprej s prvim parametrom. Gre za optimizacijo, saj se tako sprehajamo čez večje nabore števil najprej in jih že takoj omejimo. Za lažjo predstavo pa si oglejte poglavje

14 4 Miha Stele

15 Poglavje 2 Orodja in ogrodja Sistem Algator je v veliki meri že zasnovan, zato smo se odločili uporabljati orodja, ki so bila uporabljena že pri zasnovi. Za specifične opravke pa smo uporabili poljubna orodja. 2.1 Linux Splošno o jedru Linux Linux spada v družino odprtokodne programske opreme, zgrajene na osnovi jedra Linux. Uporablja se na osebnih računalnikih in strežnikih v obliki Linux distribucij, na raznih vgrajenih sistemih, kot so usmerjevalniki, brezžične dostopne točke, sprejemniki FTA, telefoni, pametne televizije, video snemalniki in pripomočki NAS (Network Attached Storage). Leta 1991 ga je Linus T. razvil za svoj osebni računalnik. Ni imel namena, da bi ga podprl za več platform, vendar je to sčasoma vseeno storil za veliko računalniških arhitektur [8] Linux distribucije Linux distribucija je operacijski sistem, ki za svoje delovanje uporablja jedro Linux. Obstaja veliko distribucij, kjer je lahko posamezna distribucija 5

16 6 Miha Stele specializirana za določen pomen. Primeri distribucij: Za splošno rabo: Ubuntu, Mint, Fedora, opensuse, Elementary OS... Za strežniško rabo: Ubuntu, Fedora, CentOS, RHEL... Poudarek na zasebnosti: Tails Poudarek na testiranju varnosti: Kali Linux Fedora Fedora je distribucija, ki se verjetno najhitreje posodablja. Iz izkušenj trdimo, da pridejo posodobitve tedensko, nova različica sistema pa izide vsakega pol leta. Dobra lastnost s strani razvijalcev je, da distribucija v repozitoriju razpoložljive programske opreme ponuja samo odprtokodne aplikacije. 2.2 NetBeans NetBeans je integrirano razvojno okolje (IDE) za programski jezik Java. Net- Beans omogoča razvijanje aplikacij iz nabora modularnih komponent programske opreme, imenovanih modulov. NetBeans deluje na operacijskem sistemu Windows, MacOS, Linux in Solaris. Poleg podpore za Javo ima razširitve tudi za druge jezike, kot so PHP, C, C ++, HTML5 in Javascript [9]. 2.3 Java Java je objektno usmerjen programski jezik, ki ga je razvil Sun Microsystems leta Splošno o Javi: je posplošitev jezika C in C + +. Svojo obliko je dobila iz jezika C in OOP funkcije iz C++,

17 Diplomska naloga 7 programi so neodvisni od platforme, kar pomeni, da jih je mogoče zagnati v poljubnem operacijskem sistemu s poljubnim procesorjem, če je na tem sistemu na voljo tolmačenje Jave, ko prevedemo program, ga lahko zaženemo s poljubnega računalnika, ki podpira Javo, programski jezik za delovanje potrebuje JVM. To pa je komponenta, ki je sestavljena v programskem jeziku C in C++, zato je odvisna od platforme [6]. 2.4 Javadoc Javadoc je generator dokumentacije, ki ga je ustvaril Sun Microsystems za generiranje API dokumentacije v obliki HTML iz izvorne kode Java. Format doc comments, ki ga uporablja Javadoc, je industrijski standard za dokumentiranje javanskih razredov. Nekateri IDE, kot IntelliJ IDEA, Net- Beans in Eclipse, samodejno ustvarjajo Javadoc HTML. Mnogi urejevalniki datotek pomagajo uporabniku pri izdelavi vira Javadoc in uporabijo to informacijo kot notranje priporočilo za programerja. Javadoc nudi tudi API za ustvarjanje dockletov in oznak, ki uporabnikom omogočajo analizo strukture aplikacije Java. Tako lahko JDiff ustvari poročila o tem, kaj se je spremenilo med dvema različicama API-ja. Javadoc ne vpliva na zmogljivost Jave, saj so vsi komentarji odstranjeni v času urejanja. Pisanje komentarjev in Javadoc sta namenjena boljšemu razumevanju kode in s tem boljšemu vzdrževanju [7]. 2.5 Tekstovni urejevalniki Programska oprema NetBeans lahko deluje kot običajni tekstovni urejevalnik. Zaradi prevelikega števila različnih javanskih razredov in konfiguracij sem se

18 8 Miha Stele odločil uporabljati še tekstovne urejevalnike. Uporabljal sem Atom, Geany in sistemski tekstovni urejevalnik, ki ga ponuja operacijski sistem Fedora Git Git je sistem za nadzor različic programske opreme, torej z njim lahko porazdelimo razvoj programske opreme za več razvijalcev na prijazen način. Primarno se uporablja za upravljanje izvorne kode, vendar je sposoben upravljati poljubne datoteke. 2.7 Github in Gitlab V obeh primerih gre za spletno gostovanje za git repozitorije, ki obvladujejo verzioniranje in shranjevanje kode. Običajno ponujajo upravljanje dostopa in druge funkcionalnosti, tj. sledenje težavam (hroščem), prošnje za implementacijo funkcionalnosti, upravljanje opravil in zahtev, dokumentacijo za vse projekte in drugo. Projekti na omenjenih platformah so lahko dostopni preko ukazne vrstice, kjer so podprti vsi ukazi sistema git. V repozitorije je mogoče dostopati oz. so vidni preko spletnega brskalnika. Za ogled javnih repozitorijev se ni potrebno registrirati na Githubu, na Gitlabu pa je za ogled pogoj vsaj registracija. Dostop do Github funkcionalnosti je mogoč tudi preko namiznih in mobilnih aplikacij [3]. Github je verjetno bolj priljubljen, vendar brezplačno dovoli samo javne repozitorije. Javne komponente smo objavili na Github, zasebne komponente, kot so npr. nekateri projekti, pa na Gitlab.

19 Poglavje 3 Prototip Pri implementaciji smo morali dopolniti program in projekt. Program je kljub integraciji ostajal v veliki meri neodvisen od drugih funkcionalnosti, ki jih ponuja. Pri projektu pa podpiramo popolnoma enako strukturo kot prej, le da za izvajanje novih funkcionalnosti potrebujemo nekaj novih datotek. Med njima poteka interakcija tako, da program prevede projekt in ga uporabi v svojem izvajanju. Za poenostavitev postopka nam programski jezik celo omogoča nastaviti abstraktne razrede, ki nam omogočajo lažji pristop glede interakcije kot pa npr. v neobjektnih programskih jezikih, kot je C. 3.1 Struktura novih modulov v programu Slika 3.1 prikazuje strukturo vseh razredov, ki nastopajo v programu pri iskanju mej. Pa začnimo pri glavnem razredu Evaluate. Ta je zadolžen za vse nastavitve v programu, ki so potrebne za pravilno delovanje. Sem spada razčlenjevanje opisa parametrov, pri čemer ga pretvori v seznam parametrov, opisan v poglavju Razbere tudi klicne oz. vhodne argumente, pri čemer lahko nastavimo nekaj podrobnosti, kot npr. zagon specifičnega algoritma, nastavitev maksimalnega časa izvajanja ene kombinacije, opis parametrov (kar preko argumenta) in drugo. Evaluate najprej pogleda za opis parametrov v datoteki./tests/[ime-projekta]-tcd.atrd, nato pa razred 9

20 10 Miha Stele Slika 3.1: ALGatorjev razredni diagram novih metod (programa) ParameterInterceptor pogleda še opis datoteke v argumentu, katere vrednosti nato prepiše v primeru, da so podane. V programu uporabljamo tudi dve entiteti, tj. ParameterData in TestCase. Razred ParameterData predstavlja entiteto, v kateri se nahajajo vsi podatki o parametru. V njem obenem dobimo tudi podatek, za kateri tip parametra gre v obliki naštevalnega (angl. enum) razreda, imenovanega ParameterType. Entiteto TestCase so napravili drugi sodelujoči, uporabljam pa jo za komunikacijo s projektom, saj prenese parametre v zagon algoritma. Jedro delovanja, kjer se izvajata avtomatsko testiranje in iskanje razumnih mej, je vidno na sliki 3.1 v paketu si.fri.algotest.execute. Sestavili smo dva razreda za obvladovanje generiranja kombinacij, iskanje razumnih mej in poganjanje algoritmov, tj. EvaluationExecutionHandler in CombinationsProvider. Nameravali smo ju združiti, vendar bi zaradi prevelike količine vrstic postalo zelo nepregledno. CombinationsProvider vsebuje logiko za generiranje kombinacij in za globlje preiskovanje parame-

21 Diplomska naloga 11 trov, EvaluationExecutionHandler pa je postal zadolžen za izvajanje nastalih kombinacij. Razred AbsTestCaseGenerator pa poskrbi, da se podatki parametrov v obliki razpršilne tabele pretvorijo v entito TestCase Podatkovne strukture sistema Seznam V sekciji 3.1 smo zasledili uporabo seznama za shranjevanje parametrov. V Javi za uporabo seznama uporabljamo implementacijo ArrayList. Prednost te strukture je generičnost, zato lahko shranjuje tudi razrede tipa ParameterData. Lahko bi rešili problem tudi z uporabo tabele v Javi, vendar v tem primeru ni fleksibilna, kajti velikost deniramo samo enkrat. Razred ParameterData lahko štejemo tudi kot podatkovno strukturo, saj je njegov namen ohranjati lep zapis podatkov in optimalno obdelavo. Razred ParameterData Razred je entitetni, saj shranjuje podatke o parametrih v obliki atributov. Ohranja tri atribute, tj. ime, tip parametra in metapodatke. Sposoben je obvladovati tudi vse potrebne funkcije za obvladovanje podatkov, saj ponuja podatke preko metod v želeni obliki. Razpršilna tabela Glavna predstavitev parametrov se nahaja v razredu CombinationsProvider kot razpršilna tabela, kamor se shranjujejo pari (ključ, vrednost) v obliki (ime parametra, trenutna vrednost parametra). Struktura ima vlogo shranjevanja vrednosti parametrov o trenutnem pogonu in prenosu teh algoritmu za obdelavo. Program generira kombinacije po vrsti tako, da za vsako kombinacijo hrani svoj unikatni indeks in s pomočjo tega indeksa sestavi ustrezno kombinacijo parametrov. Za podrobnejši opis o generiranju kombinacij si oglejte poglavje Odražanje kombinacij glede na indeks

22 12 Miha Stele pa opisuje poglavje Zamislimo si, da poganjamo i-to kombinacijo parametrov, hkrati pa hranimo tudi vrednosti parametrov s prejšnjega pogona oz. pogona (i-1)-te kombinacije. Glavni problem je, da v primeru prekinitve algoritma dobimo vrednost parametra, ki ni ustrezna in zato z globljim preiskovanjem (predstavljeno v podpoglavju 4.4.2) poiščemo ustrezno mejo med zadnjo in predzadnjo vrednostjo parametra. Atribut, imenovan metapodatki, izhajajoč iz razreda ParameterData, je razpršilna tabela. Namen tega razreda je opis pomembnih podatkov parametra za generiranje želenih kombinacij. Vsebovani podatki so tukaj lahko različni glede na tip parametra, kar naredi program bolj modularen. Zavedati pa se je treba, da to prinese tudi več možnih scenarijev, kjer delovanje programa ni pravilno. 3.2 Struktura novih modulov v projektu Struktura projekta se ne razlikuje veliko od prejšnje strukture. Definirati moramo le dve novi datoteki, tj. razred TestCaseGenerator in datoteka, ki opisuje parametre. Datoteka se mora nahajati v direktoriju [ime projekta]/tests in biti definirana kot [ime projekta]-tcd.atrd, kjer tcd pomeni test case description. Razred TestCaseGenerator smo naredili po vzorcu TestSetIteratorja. Struktura projekta je vidna na sliki Povezava sistema in projekta Sistem ALGator in projekt, ki se poda ALGatorju, sta strukturirana skladno, torej projekt vsebuje algoritem in še nekaj datotek za integracijo. Glavna povezava (v primeru, ko zaženemo razred Evaluate) sestoji iz razredov, razvidnih na sliki 3.3. Pri povezavi imata glavni vlogi AbsTestGenerator in AbsAlgorithm. AbsTestGenerator preko svoje metode prenese (glavno, omenjeno s poglavja 3.1.1) razpršilno tabelo s sistema v projekt. Projekt

23 Diplomska naloga 13 Slika 3.2: Razredni diagram projekta nima primarnega razreda, zato ALGator požene njegov algoritem preko razreda AbsAlgorithm. Ker je v projektu več algoritmov, definiramo tu še abstraktni razred, ki ga nato vsak algoritem podeduje. Glavna vloga razreda TestCase je prenos ustreznih podatkov o testnem primeru oz. vrednosti parametrov na vhod algoritma. TestCaseGenerator pa je zadolžen le za ustrezno preslikavo podatkov.

24 14 Miha Stele Slika 3.3: Povezava ALGatorja in projekta

25 Poglavje 4 Pristopi k reševanju 4.1 Povezovanje testnih primerov z novimi metodami sistema ALGator Java je objektno usmerjen programski jezik, zato omogoča sistemu ALGator zgraditi abstraktne razrede, ki so temelj projekta. Projekt podeduje abstraktne razrede, ki jih potem avtor projekta razširi za pravilno interakcijo. ALGator se poveže s to implementacijo tako, da deklarira nove instance svojih abstraktnih razredov, ki se izpeljejo s pomočjo projekta, ki ga navedemo v ukazu. V vsakem projektu imamo štiri razrede, ki podedujejo razrede ALGatorja, tj. TestCase, TestCaseGenerator, AbsAlgorithm in TestSetIterator. TestSetIterator je neodvisen od diplomskega dela, zato bomo opis tega izpustili. Razred TestCase predstavlja le entiteto posameznega testnega primera, ki smo jo uporabili zaradi skladnosti z ostalim sistemom. AbsAlgorithm je še vedno abstraktni razred, ki predstavlja poenoteno obliko vseh implementacij algoritmov v projektu. TestCaseGenerator je na novo dodan modul, ki pa je zadolžen za pošiljanje zgeneriranih testnih primerov s sistema ALGator v entiteto TestCase, ki se kasneje poda v algoritem in izvede. 15

26 16 Miha Stele 4.2 Prevajanje sistema Sistem ALGator je napisan v celoti v programskem jeziku Java. Podpira pa projekte napisane v programskem jeziku Java ali C. Postopek prevajanja pa je enoten. Skrbnik sistema oz. uporabnik ALGatorja mora prevesti izvorno kodo sistema samo enkrat oz. jo lahko dobi tudi že prevedeno s spleta. Projektov v glavnem ni treba prevajati, lahko pa prevaja uporabljene knjižnice. Primarni razredi v sistemu delujejo tako, da prvič ali po presoji uporabnika kar v izvajanju programa prevedejo projekt in razred lahko potem dostopa do vsebine. 4.3 Reševanje problema kombinacij Za avtomatizirano testiranje moramo generirati teste. Ena od možnih rešitev je generiranje vseh kombinacij. Najenostavnejša rešitev so ugnezdene zanke za vsak parameter, kjer se vsaka zanka sprehodi čez vse vrednosti. Generiranje vseh kombinacij za veliko število parametrov ni idealna rešitev, saj jih današnji procesorji niso sposobni izvesti v realnem času, saj je časovna zahtevnost O(n 1 n 2... n m ), kjer je n i obseg vrednosti i-tega parametra. Naša naloga je torej, da omejimo parametre tako, da se bodo algoritmi izvajali v smiselnih mejah parametrov Ugnezdene zanke Implementacija je enostavna, sprehodimo se čez vse vrednosti parametrov, kjer za vsak parameter naredimo ugnezdeno zanko, ki se sprehodi čez vrednosti. Nastaneta dva problema, tj. problem poljubnega števila parametrov in omejitve. Napisati ugnezdene zanke je trivialno, če bi imeli vsi projekti enako število parametrov. V poenostavljenem primeru bi lahko rekli, da imajo vsi projekti tri parametre. Tako bi lahko generirali algoritme z algoritmom s slike 4.1. Rešitev je zelo nerodna, saj v praksi dobimo v projektih različno število parametrov. Za to implementacijo se nismo odločili, saj rešuje le

27 Diplomska naloga 17 problem nespreminjajočega števila parametrov. Slika 4.1: Psevdo koda vgnezdene for zanke Zasnovana rešitev Ena od možnih iterativnih rešitev je razvidna na sliki 4.2. Deluje preprosto tako, da se sprehodi čez vse kombinacije in odvisno od točno določene kombinacije postavi kazalce na pravo vrednost. Najprej definiramo števec, ki predstavlja, katero kombinacijo bo generiral (drugače rečeno, predstavlja indeks kombinacije). Zamišljen algoritem predvidoma odpove le pri ničti kombinaciji, zato postavimo števec na 1 in prvo kombinacijo ročno vnesemo pred zanko. Definiramo tudi število vseh kombinacij in kazalec (na indeks v seznamu) za vsak posamezen parameter. Nato sledi zanka, v kateri iteriramo čez vse kombinacije. To enostavno naredimo s preverjanjem, ali je števec manjši od števila vseh kombinacij. Za vsak indeks kombinacije se sprehodimo po kazalcih parametrov in preverimo, ali je kazalec smiselno premakniti. Premik kazalca pomeni zamenjati vrednost, pri algoritmu pa premaknemo kazalec takrat, ko se generirajo vse kombinacije iz prejšnjih kazalcev. Kazalec prvega parametra premikamo konstantno, torej se sprememba zgodi za vsak indeks. Naslednji kazalec parametra se premakne, ko se prvi sprehodi čez vse vrednosti, to pa je ravno velikost nabora vrednosti v prvem parametru (slika 4.3). Tako pridemo do dejstva, da je sprememba parametra odvisna od prejšnjih velikosti naborov vrednosti parametrov, zato jo lahko izračunamo po rekurzivni formuli: n 1 a n = i=1 a i

28 18 Miha Stele Slika 4.2: Primer psevdokode zasnovane rešitve Slika 4.3: Nastop spremembe vrednosti parametrov

29 Diplomska naloga 19 Pri tem je a n indeks spremembe ter indeks spremebe prvega parametra je a 1 = 1, saj on vedno spremeni vrednost (bodisi poviša vrednost bodisi se postavi na prvo stanje ob spremembi drugih parametrov). 4.4 Obvladovanje glavne zanke V poglavju bomo naleteli na besedo uboj, s katero se bomo sklicevali na prekinitev izvajanja algoritma zaradi predolgega izvajanja Reševanje s kazalci V programu smo pripravili primerne podatkovne strukture za generiranje kombinacij (predstavljeno na 3.1.1). Pripravil sem še seznam kazalcev za vsak parameter in indeks kombinacije. Pri vsakem indeksu so se parametri postavili na kombinacijo, pripadajočo unikatnemu indeksu. Zelo pomembno je, da se kazalci postavijo na vsakem indeksu, čeprav hočemo določeno kombinacijo preskočiti. Kombinacije se generirajo s pomočjo indeksa, kjer se kazalci skladno z njim povečujejo. S pomočjo kazalca se referenciramo na pravo vrednost določene kombinacije. Za preskoke odvečnih kombinacij smo si morali zapomniti zadnji kazalec, ki se je povečal pri določenem indeksu, saj v njem dobimo pomembne informacije. Zadnji spremenjeni parameter nam namreč pove, kateri parameter se je povečal v primeru, da gre za tip parametra long. Vsi prejšnji parametri, ki so se tudi spremenili, so se postavili le na prvo vrednost, ki jo kaže njihov kazalec. Za lažjo predstavo generiranja kombinacij si oglejte sliko 4.3, kjer se ob nastopu spremembe drugega parametra (z naborom vrednosti 10 in 11) pri spremembi postavi prvi parameter na minimalno vrednost oz. kazalec na prvo vrednost. Pri spremembi tretjega parametra (z naborom vrednosti 100 in 101) pa se postavita kazalca prejšnjih parametrov na prvo vrednost.

30 20 Miha Stele Globoko preiskovanje Parameter tipa long se iz opisa pretvori v zalogo vrednosti svojih večkratnikov oz. seštevkov. Zaželeno je, da vsebuje vsaj dve vrednosti. Globoko preiskovanje se izvede, ko so pri vrednosti parametra na i-tem indeksu, kjer indeks kaže na vrednost iz zaloge vrednosti parametra, izvajanje algoritma ubije, medtem ko se vrednost pred tem še uspešno izvede, vendar se ni dovolj približala časovni omejitvi. Rekurzivna razdelitev po delih Prvi pristop implementacije globokega preiskovanja smo naredili že rekurzivno. Najprej smo razliko med ubito vrednostjo in vrednostjo pred ubojem razdelili na desetinke in čeznje izvedel iteracijo. Med izvajanjem teh vrednosti so pravila ostajala ista, torej, če se vrednost pred ubojem še vedno ni dovolj približala časovni meji, sta se vrednosti spet razdelili na desetinke. Integracija bisekcije Odločili smo se raje uporabiti bisekcijo namesto razdeljevanja. Pojavili so se problemi s skladnostjo sistema, kljub temu da je rešitev še vedno rekurzivna, saj jo je možno uporabljati na več načinov [15]. Rekurzija pri bisekciji ima dva vstopa v rekurzijo, torej si lahko premakne levo ali desno mejo na sredino. Previdni smo morali biti, da se je pravilen čas shranil in da ni izpisovalo odvečnih vrstic. 4.5 Težave V delu je večkrat prihajalo do težav. Težave so se pojavljale že na začetku pri snovanju arhitekture, kjer je bilo veliko premisleka o posledicah uporabe raznih podatkovnih struktur. Kasneje smo našli napake tudi pri implementaciji. Pri teh smo potrebovali kar veliko premisleka, saj je bilo težko najti točno določen del, ki je povzročal nevšečnosti. Po posredovanju diplome

31 Diplomska naloga 21 mentorju se je našlo še nekaj napak, ki so bile kritične. V poglavju bomo našteli le nekaj bistvenih napak Napačno obvladovanje glavne zanke Glavna zanka nastopi pri obvladovanju generiranja in izvajanja kombinacij. Zanka je sestavljena iz veliko komponent, tj. območje generiranja, obvladovanje preskokov, logika za globlje preiskovanje itd. Pravilno strukturiranje zanke je bilo bistvenega pomena, saj vsaka napaka povzroči povsem neuporaben program. Morali smo pokriti veliko robnih pogojev. Že ničta kombinacija je v zanki povzročala težave, saj je ostanek pri deljenju z nič v matematiki nedefinirana operacija. Morali smo preverjati tudi za unikatne pojavitve posameznih parametrov, saj je lahko pri enakih vrednosti parametrov tipa enum obstajalo več različnih mej istega parametra tipa long. Preskakovanje neželenih kombinacij je v kar veliki meri zahtevalo premišljene pogojne stavke, primer pripadajoče težave je opisan v poglavju Integriranje novih funkcionalnosti Nove oz. pozabljene funkcionalnosti so povzročile zastoj pri implementaciji, saj se je morala funkcionalnost skoraj vedno integrirati z obstoječo kodo. Primer nove funkcionalnosti se je zgodil pri omogočanju uporabniku, pri parametru tipa long, povečevanje parametra v obliki prištevanja vrednosti. V osnovi je podpiral le množenje prejšnje vrednosti, npr. večkratnik si določil 10 in tako se je vrednost povečevala za 10x, 100x, 1000x in tako naprej. Še en znan primer funkcionalnosti je bila integracija bisekcije, opisan v poglavju Neželeni preskoki kombinacij Za razumevanje problema se moramo zavedati nekaterih stvari. Kot že znano, sistem preiskuje vse kombinacije in jih filtrira, tj. če se pri določenem parametru program prekine, preskoči vse kombinacije z vsebovanim večjim številom.

32 22 Miha Stele Predstavljamo si lahko dva parametra A in B, kjer je A tipa long in ima zalogo vrednosti [10, 100, 1000, 10000], B pa tipa enum in ima vrednosti ["primer1", "primer2"]. Parameter A se povečuje in išče mejo od 10 do za vse kombinacije parametra B (saj išče meje za vse kombinacije enumov), tj. za "primer1" in "primer2". Predpostavimo, da se je program prekinil zaradi predolgega izvajanja pri vrednosti 1000, zato sistem preskoči kombinacijo parametra A, ki vsebuje vrednost Ne smemo zamešati tudi tipov parametra enum in long s primitivnimi tipi programskih jezikov, npr. z Javo. Enum tukaj pomeni, da lahko algoritmu podamo parameter, ki bodisi ni celo število bodisi ga nočemo preiskovati globlje. Primer enuma si lahko predstavljamo v projektu urejanje, kjer algoritmom kot parameter povemo, ali gre za urejen vhod podatkov ali za naključno urejen ali za alternirajoče ipd. Pri generiranju vseh kombinacij hočemo, da se generirajo vse kombinacije parametrov tipa enum za vsak parameter tipa long. Pri parametrih tipa long pa vemo, da so številski in da manjša vrednost parametra pomeni manjšo obremenitev algoritma. Te parametre brez zahtevnih pogojev preiščemo globlje. Parametri v sistemu se uredijo po tipu, torej se long parametri prvi pojavijo na seznamu. Predpostavili smo, da imajo parametri tipa enum manjšo zalogo vrednosti in smo jih z vidika pristopa rešitve s for zankami postavili v zunanje zanke. Drugače rečeno, gre za optimizacijo. Dejanje je olajšalo implementacijo, hkrati pa imamo lahko shranjeno število parametrov tipa long, ki nam je v tem primeru koristno. V programu se je pojavljala kritična napaka, saj je logika za preskakovanje preskočila tudi vse kombinacije tipa enum. V primeru prekinitve, če je zadnji spremenjen parameter tipa enum, je preskočilo tudi vse njegove naslednje vrednosti.

33 Poglavje 5 Analiza Za analizo posameznega projekta je treba razumeti tudi stikala, ki so navedena pri zagonu programa kot argumenti: e - vedno izvedi. V primeru podanega stikala se program izvede vedno, sicer pa le v primeru zastarelosti. c - vedno prevedi. V primeru podanega stikala se program prevede tudi v primeru, da je enkrat že bil preveden. o - optimiziraj s pomočjo urejanja. Stikalo je dodano na novo in podpira več načinov urejanja parametrov za optimizacijske potrebe. Trenutno podpira le osnovno urejanje po tipu parametra, ki je nujno za delovanje programa. Implementirali pa bomo lahko tudi še dodatno urejanje po velikosti zaloge vrednosti parametrov, ki bi predstavljalo primer optimizacije. l - omejitev izvajanja ene kombinacije. Novo stikalo, ki ga nastavimo v sekundah. v - izpisuj podatke med izvajanjem programa. Med izvajanjem uporabniku izpisuje zanimive informacije, količina izpisa pa je odvisna od nastavljenega nivoja. 23

34 24 Miha Stele a - zagon posameznega algoritma. V primeru, da nas zanima le posamezen algoritem, lahko nastavimo to stikalo in mu podamo ime želenega algoritma. Vse projekte bom pognal z argumenti -e -c -l 1.6 [ImeProjekta]. 5.1 Vzorec rezultata Rezultat sistema se izpiše na koncu v obliki formata JSON. Število rezultatov je zmnožek velikosti parametrov tipa enum pomnoženo s številom parametrov tipa long. Slika 5.1: Primer opisa parametrov Primer iz slike 5.1 vsebuje osem vrednosti v rezultatih, saj ima dva parametra tipa enum (C in D) z dvema vrednostima (C ima X in O, D pa Y in Z) in dva različna parametra tipa long (A in B).

35 Diplomska naloga Urejanje Številni računalniški znanstveniki menijo, da je urejanje najbolj temeljni problem študija algoritmov [14]. Urejanje predstavlja algoritem, ki postavlja elemente v določen vrstni red. Najpogosteje uporabljena sta številčni in leksikografski vrstni red. Izhod poljubnega algoritma za urejanje mora izpolnjevati dva pogoja: vsak element ni manjši od prejšnjega elementa glede na želeni vrstni red, izhod je permutacija (je preurejen in ohranja vse izvorne elemente) [11]. Pri urejanju poznamo več algoritmov, na primer InsertionSort, BubbleSort, SelectionSort, HeapSort, MergeSort, ShellSort, in Quicksort. V projektu imamo definirana parametra N in Group. N nam pove, koliko elementov je treba urediti. Group nam pove način urejenosti podatkov, ki pridejo na vhod, in je tipa enum, zato vsebuje naslednje vrednosti: RND - urejen naključno, SORTED - urejen naraščajoče, INVERSED - urejen padajoče Rezultati V projektu se nahajajo štirje algoritmi, to so BubbleSort, InsertionSort, JavaSort in Quicksort. Rezultati bodo prikazani glede na opis parametrov, ki je definiran na sliki 5.2. Primerjavo vseh rezultatov vidimo na sliki 5.3, povprečnih pa na sliki 5.4. Na hitro lahko razberemo, da je pri urejenem vhodu InsertionSort zdaleč najboljši algoritem. Pri naključnih podatkih se najbolj odreže JavaSort, takoj za tem pa že Quicksort. Pri padajoči urejenosti so vsi neučinkoviti in dosežejo podobne rezultate.

36 26 Miha Stele Slika 5.2: Opis parametrov za urejanje Slika 5.3: Primerjava vseh rezultatov urejanja

37 Diplomska naloga 27 Slika 5.4: Primerjava povprečja rezultatov urejanja BubbleSort Urejanje z mehurčki ali BubbleSort temelji na primerjanju in zamenjavi parov sosednjih elementov, dokler niso vsi elementi urejeni [13]. Sprehodi se čez vse pare sosedov in to tolikokrat, kolikor ima elementov. Iz tega lahko razberemo, da ima algoritem časovno zahtevnost vedno O(n 2 ). Če na podlagi omenjene zahtevnosti primerjamo rezultate urejanja (glej sliko 5.5), lahko opazimo, da rezultati - ne glede na urejenost - konvergirajo k istemu oziroma zelo podobnemu številu. V rezultatih vidimo, da zaradi svoje časovne kompleksnosti doseže v vseh primerih najslabše rezultate. BubbleSort je bistveno počasnejši od QuickSorta v naključni urejenosti vhoda, pri čemer ima QuickSort povprečno časovno zahtevnost O(n log n). Pri urejenih podatkih pa je dosegel podobne rezultate, saj tudi QuickSort takrat pokaže

38 28 Miha Stele svojo najslabšo časovno zahtevnost, tj. O(n 2 ). Slika 5.5: Tri iteracije rezultatov urejanja z algoritmom BubbleSort InsertionSort Algoritem deluje tako, da si najprej zamislimo urejeni in neurejeni del tabele. Urejeni del je najprej prazen, nato pa se sprehodimo skozi neurejeno tabelo in vstavljamo elemente na ustrezna mesta v urejeni del. Algoritem tako nima veliko dela pri že urejeni tabeli (to je razvidno iz rezultatov na sliki 5.6). Slika 5.6: Tri iteracije rezultatov urejanja z InsertionSort JavaSort JavaSort predstavlja optimizirano različico algoritma Quicksort, zasnovanega v Javi [12]. Za podrobnejši opis si oglejte QuickSort. Iz rezultatov vidimo, da gre pri JavaSort res za optimizirano različico QuickSorta, saj ima skoraj povsod boljše rezultate.

39 Diplomska naloga 29 Slika 5.7: Tri iteracije rezultatov urejanja z JavaSort Quicksort Hitro urejanje ali QuickSort je učinkovit algoritem za urejanje podatkov v tabeli [4]. Je primer metode deli in vladaj, saj pri hitrem urejanju tabelo razdelimo na dve podtabeli, ki ju nato uredimo z enakim postopkom. Postopek je naslednji: Izberemo delilni element, ki ga imenujemo pivot, elemente v tabeli premečemo, uredimo podtabeli elementov pred in za pivotom [4]. Znano je, da algoritem, ko ima vhodne podatke urejene, deluje najpočasneje v primerih in to časovno zahtevnostjo O(n 2 ). To nam prikazujejo tudi rezultati izvedb, kjer doseže podobne rezultate kot InsertionSort in Bubblesort. Slika 5.8: Tri iteracije rezultatov urejanja s QuickSort

40 30 Miha Stele 5.3 Razcep na prafaktorje Algoritmi v projektu skušajo razbiti število na produkt dveh manjših števil. Razcep na prafaktorje pri velikih številih v računalništvu še vedno predstavlja problem. Za zdaj še ni odkritega učinkovitega algoritma, vendar pa še ni dokazano, da ne obstaja. Trenutno najhitrejši algoritmi razcepa na prafaktorje delujejo tako, da razcepijo z generiranjem manjših pomožnih števil z uporabo preprostih tehnik, kot je npr. deljenje s preskušanjem (angl. Trial Division) [16]. V projektu imamo definirana parametra probsize in Group. Parameter probsize nam pove, do katere zgornje meje naj generira naključna števila. Group imamo vrednosti za število, ki ga hočemo razcepiti, določene kot: RND - naključno število, PRIME - naključno praštevilo, 2PRIME - naključno število, sestavljeno iz zmnožka dveh praštevil, ODDRND - naključno liho število, EVENRND - naključno sodo število Rezultati V projektu se nahajajo štirje algoritmi, to so BrentsFactorization, FermatsFactorization, PollardsRhoFactorization in TrialDivision. Rezultati bodo prikazani glede na opis parametrov, ki je definiran na sliki 5.9. Primerjavo vseh rezultatov vidimo na sliki 5.10, povprečnih pa na Na prvi pogled zgleda TrialDivision prevladujoči s svojimi rezultati in zato je videti najučinkovitejši. Problem je v tem, da v analizi nismo pokrili dovolj velike zgornje meje. Na splošno vidimo, da je najpotratnejše razbijanje pri vseh algoritmih za praštevila. S tega lahko trdimo, da so algoritmi neučinkoviti za dokazovanje praštevila. PollardsRhoFactorization se izkaže za najboljši algoritem razbijanja števila, ki je zmnožek dveh praštevil.

41 Diplomska naloga 31 Slika 5.9: Opis parametrov za razcep na prafaktorje Slika 5.10: Primerjava vseh rezultatov urejanja

42 32 Miha Stele Slika 5.11: Primerjava povprečja rezultatov urejanja TrialDivision Po navadi, ko govorimo o algoritmu TrialDivision, govorimo o iskanju vseh prafaktorjev števila. Tokrat pa bomo za skladno primerjavo z drugimi algoritmi uporabljali tako, da uspešno razcepi število samo enkrat in se zaključi. Definirajmo iskano število n in števec i. Algoritem deluje tako, da povečuje i do velikosti n in preverja, ali je n deljiv z i. Algoritmu tako pripišemo časovno kompleksnost O(n 1 2 ). V rezultatu na sliki 5.12 vidimo, da je algoritem skoraj pri vseh primerih zelo učinkovit, razen pri zmnožku dveh velikih praštevil. To je razumljivo, saj da prišteje do velikih praštevil, potrebuje več časa, kot pa npr. prištevanje do števila 2. Analiza nam prikaže rezultate le do razpona števil do 10 18, kar pomeni, da algoritem deluje dobro v tem območju. Za še večje razpone pa nimamo dovolj podatkov z analize,

43 Diplomska naloga 33 kateri algoritmi so najboljši, vendar TrialDivision zagotovo ni učinkovit v primerjavi z drugimi hevrističnimi metodami. Slika 5.12: Tri iteracije rezultatov razcepa na prafaktorje z uporabo algoritma TrialDivision FermatsFactorization S podanim številom n algoritem FermatsFactorization poišče cela števila x in y tako, da bo n = x 2 y 2 [2]. Če zapišemo enačbo v razstavljeni obliki, dobimo razcepljeno število na faktorja (x + y) in (x y) [2]. Naša implementacija FermatsFactorizationa je vidna na sliki Tako iz re- Slika 5.13: Psevdokoda algoritma FermatsFactorization zultata kot iz izvorne kode razberemo, da pri sodih številih program deluje

44 34 Miha Stele zelo hitro. Zanimivo je, da program deluje dobro s števili, ki so zmnožek dveh praštevil. Pri tem je boljše rezultate pokazal le PollardsRhoFactorization. Z rezultati povprečnega delovanja, tj. s popolnoma naključnim številom, je program v delovanju primerljiv z drugi algoritmi. Algoritem v primeru, da gre za praštevilo, potrebuje n korakov [2]. V rezultatih na sliki 5.14 je to dobro razvidno, saj ima tam bistveno slabše rezultate. Ugotovili smo, da je FermatsFactorization slab algoritem za preverjanje, ali gre za praštevilo. Slika 5.14: Tri iteracije rezultatov razcepa na prafaktorje z uporabo algoritma FermatsFactorization PollardsRhoFactorization PollardsRhoFactorization je algoritem tipa Monte Carlo. Algoritem Monte Carlo se izvaja s pomočjo naključnih števil, ki se preračunavajo z neko formulo za aproksimirano rešitev. Take vrste algoritem se konča, ko dobimo zadosti natančen rezultat. Delovanje algoritma PollardsRhoFactorization je vidno na sliki Funkcija g(x) je v našem primeru x mod n. Algoritem se bo zaradi poskušanja iskanja dveh deljiteljev praštevila izvajal v nedogled [10]. V rezultatu na sliki 5.16 vidimo, da program nikoli ne doseže več, kot je minimalna vrednost v opisu. Program je s tako vrednostjo nakazal, da se je prekinil že pri prvem zagonu.

45 Diplomska naloga 35 Slika 5.15: Psevdokoda algoritma PollardsRhoFactorization Slika 5.16: Tri iteracije rezultatov razcepa na prafaktorje z uporabo algoritma PollardsRhoFactorization

46 36 Miha Stele BrentsFactorization Richard P. Brent je razvil učinkovitejšo različico algoritma PollardsRhoFactorization [5]. Naša implementacija poteka po korakih na sliki Slika 5.17: Psevdokoda algoritma BrentsFactorization V rezultatih na sliki 5.18 opazimo, da se posledično tudi ta algoritem izvaja v nedogled pri praštevilih. Opazimo tudi, da se pri zmnožku dveh praštevil algoritem v vseh treh primerih prekine. Drugi rezultati pa nakazujejo, da algoritem doseže razcep manjših števil od PollardsRhoFactorization. Vzroki za take rezultate niso znani, kandidati pa so lahko slabša implementacija BrentsFactorizationa v projektu, nepoštena (v smislu dodelovanja) izbira naključnih števil, ali pa sploh nismo našli pravih vhodnih podatkov, kjer je algoritem smiseln oz. koristen.

47 Diplomska naloga 37 Slika 5.18: Tri iteracije rezultatov razcepa na prafaktorje z uporabo algoritma BrentsFactorization

48 38 Miha Stele

49 Poglavje 6 Sklep 6.1 Ugotovitve Problem je bil na prvi pogled videti trivialen. Sčasoma se je izkazalo, da je problem kar kompleksen in za dobro rešitev potrebuje kar veliko časa. Izdelana rešitev je prestala veliko ročnega testiranja, zato si upam trditi, da v veliki meri deluje pravilno, vendar bi samo rešitev lahko izboljšali še na načine, ki so predstavljeni v podpoglavju Možne izboljšave Izboljšave so možne z več vidikov. Program ni optimalen ne s prostorske niti s časovne zahtevnosti. Implementacija je bila odvisna od kratkoročnega časa, zato smo gledali le na enostavnost in čim večjo pravilnost programa Izboljšava prostorske zahtevnosti Pri implementaciji sem uporabljal razrede skoraj za vsako predstavitev različnih delov. Nastajajo isti podatki drugačne oblike, kar predstavlja breme prostoru. Kot primer lahko vzamemo parametre, kjer jih imamo predstavljene kot entitete, nato pa te razbijemo še na razpršilne tabele posamičnih zalog vrednosti parametrov. Optimalno pa bi lahko uporabili le tabele, kjer se 39

50 40 Miha Stele hranijo le osnovni podatki. generirali podatke, ko so ti potrebni. S teh bi lahko na račun časovne zahtevnosti Izboljšava časovne zahtevnosti Za generiranje testnih primerov smo se odločili kar za generiranje vseh kombinacij. Zanima nas le maksimalna vrednost vsakega posameznega parametra, pri čemer so ostali parametri na minimalni vrednosti. Trdim, da je to možno rešiti optimalnejše, vendar je tudi ta implementacija zadovoljiva, saj običajno ni prevelikega nabora parametrov, zalogo vrednosti pa po navadi sami definiramo tako, da ne preišče preveliko nesmiselnih vrednosti. 6.3 Zaključek V diplomskem delu sem se naučil nekaj pomembnih stvari, med drugim je to delo na projektu, ki ga nisem ustvaril sam. Začetki so bili težki, saj mi veliko stvari ni bilo jasnih. Sčasoma sem projekt vedno bolj usvojil in tako z lahkoto začel integrirati nove funkcionalnosti. Ker so te nove in neodvisne od ostalega sistema, so bile izdelane v ločenih razredih. Vseeno se mi zdi, da reševanje takšnih problemov pride zelo prav, saj se moraš v industriji večinoma prilagoditi že obstoječim sistemom.

51 Diplomska naloga 41

52 42 Miha Stele

53 Literatura [1] Algator. master/doc/algator.docx. [Dostopano ]. [2] Fermat s factorization method. Fermat%27s_factorization_method. [Dostopano ]. [3] Github. [Dostopano ]. [4] Hitro urejanje. [Dostopano ]. [5] An improved monte carlo factorization algorithm. [Dostopano ]. [6] Java introduction. intro/. [Dostopano ]. [7] Javadoc. [Dostopano ]. [8] Linux kernel. [Dostopano ]. [9] Netbeans. [Dostopano ]. 43

54 44 Miha Stele [10] Pollard s rho algorithm for prime factorization. https: // [Dostopano ]. [11] Sorting algorithm. algorithm. [Dostopano ]. [12] Source for java.util.arrays. java/util/arrays-source.html. [Dostopano ]. [13] Urejanje z mehurčki. Urejanje_z_mehur\unhbox\voidb@x\bgroup\let\unhbox\voidb@ x\setbox\@tempboxa\hbox{c\global\mathchardef\accent@ spacefactor\spacefactor}\accent20c\egroup\spacefactor\ accent@spacefactorki. [Dostopano ]. [14] Thomas H. Cormen, Clifford Stein, Ronald L. Rivest, and Charles E. Leiserson. Introduction to Algorithms. McGraw-Hill Higher Education, 2nd edition, [15] E. Roberts. Thinking Recursively. Wiley, [16] S.S. Wagstaff. The Joy of Factoring. Student mathematical library. American Mathematical Society, 2013.

RAM stroj Nataša Naglič 4. junij RAM RAM - random access machine Bralno pisalni, eno akumulatorski računalnik. Sestavljajo ga bralni in pisalni

RAM stroj Nataša Naglič 4. junij RAM RAM - random access machine Bralno pisalni, eno akumulatorski računalnik. Sestavljajo ga bralni in pisalni RAM stroj Nataša Naglič 4. junij 2009 1 RAM RAM - random access machine Bralno pisalni, eno akumulatorski računalnik. Sestavljajo ga bralni in pisalni trak, pomnilnik ter program. Bralni trak- zaporedje

Prikaži več

Strojna oprema

Strojna oprema Asistenta: Mira Trebar, Miha Moškon UIKTNT 2 Uvod v programiranje Začeti moramo razmišljati algoritmično sestaviti recept = napisati algoritem Algoritem za uporabo poljubnega okenskega programa. UIKTNT

Prikaži več

Microsoft Word - M docx

Microsoft Word - M docx Š i f r a k a n d i d a t a : ržavni izpitni center *M15178112* SPOMLNSKI IZPITNI ROK Izpitna pola 2 Četrtek, 4. junij 2015 / 90 minut ovoljeno gradivo in pripomočki: Kandidat prinese nalivno pero ali

Prikaži več

Datum in kraj

Datum in kraj Ljubljana, 5. 4. 2017 Katalog znanj in vzorci nalog za izbirni izpit za vpis na magistrski študij Pedagoško računalništvo in informatika 2017/2018 0 KATALOG ZNANJ ZA IZBIRNI IZPIT ZA VPIS NA MAGISTRSKI

Prikaži več

Turingov stroj in programiranje Barbara Strniša Opis in definicija Definirajmo nekaj oznak: Σ abeceda... končna neprazna množica simbolo

Turingov stroj in programiranje Barbara Strniša Opis in definicija Definirajmo nekaj oznak: Σ abeceda... končna neprazna množica simbolo Turingov stroj in programiranje Barbara Strniša 12. 4. 2010 1 Opis in definicija Definirajmo nekaj oznak: Σ abeceda... končna neprazna množica simbolov (običajno Σ 2) Σ n = {s 1 s 2... s n ; s i Σ, i =

Prikaži več

Učinkovita izvedba algoritma Goldberg-Tarjan Teja Peklaj 26. februar Definicije Definicija 1 Naj bo (G, u, s, t) omrežje, f : E(G) R, za katero v

Učinkovita izvedba algoritma Goldberg-Tarjan Teja Peklaj 26. februar Definicije Definicija 1 Naj bo (G, u, s, t) omrežje, f : E(G) R, za katero v Učinkovita izvedba algoritma Goldberg-Tarjan Teja Peklaj 26. februar 2009 1 Definicije Definicija 1 Naj bo (G, u, s, t) omrežje, f : E(G) R, za katero velja 0 f(e) u(e) za e E(G). Za v V (G) definiramo presežek

Prikaži več

Chapter 1

Chapter 1 - 1 - Poglavje 1 Uvod v podatkovne baze - 2 - Poglavje 1 Cilji (Teme).. Nekatere domene, kjer se uporabljajo podatkovne baze Značilnosti datotečnih sistemov Problemi vezani na datotečne sisteme Pomen izraza

Prikaži več

GHOSTBUSTERS navodila za učitelje O PROJEKTU S tem projektom se učenci sami naučijo izdelati igro. Ustvariti morajo več ikon (duhcov ali kaj drugega)

GHOSTBUSTERS navodila za učitelje O PROJEKTU S tem projektom se učenci sami naučijo izdelati igro. Ustvariti morajo več ikon (duhcov ali kaj drugega) GHOSTBUSTERS navodila za učitelje O PROJEKTU S tem projektom se učenci sami naučijo izdelati igro. Ustvariti morajo več ikon (duhcov ali kaj drugega) in za vsako napisati svojo kodo. Dve ikoni imata isto

Prikaži več

MATLAB programiranje MATLAB... programski jezik in programersko okolje Zakaj Matlab? tipičen proceduralni jezik enostaven za uporabo hitro učenje prir

MATLAB programiranje MATLAB... programski jezik in programersko okolje Zakaj Matlab? tipičen proceduralni jezik enostaven za uporabo hitro učenje prir MATLAB programiranje MATLAB... programski jezik in programersko okolje Zakaj Matlab? tipičen proceduralni jezik enostaven za uporabo hitro učenje priročno programsko okolje tolmač interpreter (ne prevajalnik)

Prikaži več

Poročilo za 1. del seminarske naloge- igrica Kača Opis igrice Kača (Snake) je klasična igrica, pogosto prednaložena na malce starejših mobilnih telefo

Poročilo za 1. del seminarske naloge- igrica Kača Opis igrice Kača (Snake) je klasična igrica, pogosto prednaložena na malce starejših mobilnih telefo Poročilo za 1. del seminarske naloge- igrica Kača Opis igrice Kača (Snake) je klasična igrica, pogosto prednaložena na malce starejših mobilnih telefonih. Obstaja precej različic, sam pa sem sestavil meni

Prikaži več

Zbornica zdravstvene in babiške nege Slovenije Zveza strokovnih društev medicinskih sester, babic in zdravstvenih tehnikov Slovenije Stanje:

Zbornica zdravstvene in babiške nege Slovenije Zveza strokovnih društev medicinskih sester, babic in zdravstvenih tehnikov Slovenije Stanje: Zbornica zdravstvene in babiške nege Slovenije Zveza strokovnih društev medicinskih sester, babic in zdravstvenih tehnikov Slovenije Stanje: 17.07.2013 Ver. 2.9.1.2 Spletni portal članov uporabniška navodila

Prikaži več

Microsoft Word - UP_Lekcija04_2014.docx

Microsoft Word - UP_Lekcija04_2014.docx 4. Zanka while Zanke pri programiranju uporabljamo, kadar moramo stavek ali skupino stavkov izvršiti večkrat zaporedoma. Namesto, da iste (ali podobne) stavke pišemo n-krat, jih napišemo samo enkrat in

Prikaži več

Optimizacija z roji delcev - Seminarska naloga pri predmetu Izbrana poglavja iz optimizacije

Optimizacija z roji delcev - Seminarska naloga pri predmetu Izbrana poglavja iz optimizacije Univerza v Ljubljani Fakulteta za matematiko in fiziko Seminarska naloga pri predmetu Izbrana poglavja iz optimizacije 2. junij 2011 Koncept PSO Motivacija: vedenje organizmov v naravi Ideja: koordinirano

Prikaži več

Microsoft PowerPoint - OAPS1- Uvod.ppt

Microsoft PowerPoint - OAPS1- Uvod.ppt Univerza v Ljubljani Fakulteta za računalništvo in informatiko Igor Rožanc Osnove algoritmov in podatkovnih struktur I ( OAPS I ) 2. letnik VSP Računalništvo in informatika, vse smeri Študijsko leto 2006/07

Prikaži več

NAVODILA ZA UPORABO K01-WIFI Hvala, ker ste se odločili za nakup našega izdelka. Pred uporabo enote skrbno preberite ta Navodila za uporabo in jih shr

NAVODILA ZA UPORABO K01-WIFI Hvala, ker ste se odločili za nakup našega izdelka. Pred uporabo enote skrbno preberite ta Navodila za uporabo in jih shr NAVODILA ZA UPORABO Hvala, ker ste se odločili za nakup našega izdelka. Pred uporabo enote skrbno preberite ta in jih shranite za prihodnjo rabo Vsebina 1. Pregled 2. Sistem 3. Prednosti 4. Upravljanje

Prikaži več

NEVTRIN d.o.o. Podjetje za razvoj elektronike, Podgorje 42a, 1241 Kamnik, Slovenia Telefon: Faks.: in

NEVTRIN d.o.o. Podjetje za razvoj elektronike, Podgorje 42a, 1241 Kamnik, Slovenia Telefon: Faks.: in NEVTRIN d.o.o. Podjetje za razvoj elektronike, Podgorje 42a, 1241 Kamnik, Slovenia Telefon: +386 1 729 6 460 Faks.: +386 1 729 6 466 www.nevtrin.si info@elektrina.si USB RFID READER Navodila za uporabo?

Prikaži več

COBISS3/Medknjižnična izposoja

COBISS3/Medknjižnična izposoja 3/Medknjižnična izposoja 2.2 KATALOG Katalog nam omogoča: iskanje gradiva prikaz izbranih bibliografskih zapisov ali pripadajočih podatkov o zalogi iz lokalne baze podatkov v formatu COMARC vpogled v stanje

Prikaži več

Delavnica Načrtovanje digitalnih vezij

Delavnica Načrtovanje digitalnih vezij Laboratorij za načrtovanje integriranih vezij Univerza v Ljubljani Fakulteta za elektrotehniko Digitalni Elektronski Sistemi Osnove jezika VHDL Strukturno načrtovanje in testiranje Struktura vezja s komponentami

Prikaži več

Document ID / Revision : 0519/1.3 ID Issuer System (sistem izdajatelja identifikacijskih oznak) Navodila za registracijo gospodarskih subjektov

Document ID / Revision : 0519/1.3 ID Issuer System (sistem izdajatelja identifikacijskih oznak) Navodila za registracijo gospodarskih subjektov ID Issuer System (sistem izdajatelja identifikacijskih oznak) Navodila za registracijo gospodarskih subjektov Gospodarski subjekti Definicija: V skladu z 2. členom Izvedbene uredbe Komisije (EU) 2018/574

Prikaži več

Microsoft Word - avd_vaje_ars1_1.doc

Microsoft Word - avd_vaje_ars1_1.doc ARS I Avditorne vaje Pri nekem programu je potrebno izvršiti N=1620 ukazov. Pogostost in trajanje posameznih vrst ukazov računalnika sta naslednja: Vrsta ukaza Štev. urinih period Pogostost Prenosi podatkov

Prikaži več

ŠTEVCI PROMETA IN NJIHOVA UPORABA ZA NAMENE STATISTIK ČRT GRAHONJA

ŠTEVCI PROMETA IN NJIHOVA UPORABA ZA NAMENE STATISTIK ČRT GRAHONJA ŠTEVCI PROMETA IN NJIHOVA UPORABA ZA NAMENE STATISTIK ČRT GRAHONJA Navdih Poizvedovanje po BD podatkovnih virih, ki imajo časovno dimenzijo in so dostopni. Večji promet pomeni večje število dobrin in močnejšo

Prikaži več

Prekinitveni način delovanja PLK Glavni program (OB1; MAIN) se izvaja ciklično Prekinitev začasno ustavi izvajanje glavnega programa in zažene izvajan

Prekinitveni način delovanja PLK Glavni program (OB1; MAIN) se izvaja ciklično Prekinitev začasno ustavi izvajanje glavnega programa in zažene izvajan Prekinitveni način delovanja PLK Glavni program (OB1; MAIN) se izvaja ciklično Prekinitev začasno ustavi izvajanje glavnega programa in zažene izvajanje prekinitvene rutine Dogodek GLAVNI PROGRAM (MAIN-OB1)

Prikaži več

BYOB Žogica v vesolju Besedilo naloge Glavna ideja igre je paziti, da žoga ne pade na tla igralne površine, pri tem pa zbrati čim več točk. Podobno ig

BYOB Žogica v vesolju Besedilo naloge Glavna ideja igre je paziti, da žoga ne pade na tla igralne površine, pri tem pa zbrati čim več točk. Podobno ig BYOB Žogica v vesolju Besedilo naloge Glavna ideja igre je paziti, da žoga ne pade na tla igralne površe, pri tem pa zbrati čim več točk. Podobno igro najdemo tudi v knjigi Scratch (Lajovic, 2011), vendar

Prikaži več

Osnove matematicne analize 2018/19

Osnove matematicne analize  2018/19 Osnove matematične analize 2018/19 Neža Mramor Kosta Fakulteta za računalništvo in informatiko Univerza v Ljubljani Funkcija je predpis, ki vsakemu elementu x iz definicijskega območja D f R priredi natanko

Prikaži več

Microsoft Word - CNC obdelava kazalo vsebine.doc

Microsoft Word - CNC obdelava kazalo vsebine.doc ŠOLSKI CENTER NOVO MESTO VIŠJA STROKOVNA ŠOLA STROJNIŠTVO DIPLOMSKA NALOGA Novo mesto, april 2008 Ime in priimek študenta ŠOLSKI CENTER NOVO MESTO VIŠJA STROKOVNA ŠOLA STROJNIŠTVO DIPLOMSKA NALOGA Novo

Prikaži več

Priloga 1: Pravila za oblikovanje in uporabo standardiziranih referenc pri opravljanju plačilnih storitev Stran 4012 / Št. 34 / Uradni lis

Priloga 1: Pravila za oblikovanje in uporabo standardiziranih referenc pri opravljanju plačilnih storitev Stran 4012 / Št. 34 / Uradni lis Priloga 1: Pravila za oblikovanje in uporabo standardiziranih referenc pri opravljanju plačilnih storitev Stran 4012 / Št. 34 / 24. 5. 2019 Uradni list Republike Slovenije PRILOGA 1 PRAVILA ZA OBLIKOVANJE

Prikaži več

PowerApps

PowerApps ko tehnologija postane brezmejna strast Microsoft PowerApps Uporabniška navodila Avtorji Brina Gomboc, Lucija Kos, Damjana Krampač Mentorici dr. Simona Sternad Zabukovšek Sara Cokan, mag. ekon. in posl.

Prikaži več

Diapozitiv 1

Diapozitiv 1 9. Funkcije 1 9. 1. F U N K C I J A m a i n () 9.2. D E F I N I C I J A F U N K C I J E 9.3. S T A V E K r e t u r n 9.4. K L I C F U N K C I J E I N P R E N O S P A R A M E T R O V 9.5. P R E K R I V

Prikaži več

Urejevalna razdalja Avtorji: Nino Cajnkar, Gregor Kikelj Mentorica: Anja Petković 1 Motivacija Tajnica v posadki MARS - a je pridna delavka, ampak se

Urejevalna razdalja Avtorji: Nino Cajnkar, Gregor Kikelj Mentorica: Anja Petković 1 Motivacija Tajnica v posadki MARS - a je pridna delavka, ampak se Urejevalna razdalja Avtorji: Nino Cajnkar, Gregor Kikelj Mentorica: Anja Petković 1 Motivacija Tajnica v posadki MARS - a je pridna delavka, ampak se velikokrat zmoti. Na srečo piše v programu Microsoft

Prikaži več

DN5(Kor).dvi

DN5(Kor).dvi Koreni Število x, ki reši enačbo x n = a, imenujemo n-ti koren števila a in to označimo z n a. Pri tem je n naravno število, a pa poljubno realno število. x = n a x n = a. ( n a ) n = a. ( n a ) m = n

Prikaži več

PKP projekt SMART WaterNet_Opis

PKP projekt SMART WaterNet_Opis PKP projekt SMART WaterNet Po kreativni poti do znanja (PKP) opis programa Program Po kreativni poti do znanja omogoča povezovanje visokošolskih zavodov s trgom dela in tako daje možnost študentom za pridobitev

Prikaži več

Microsoft Word - M docx

Microsoft Word - M docx Š i f r a k a n d i d a t a : Državni izpitni center *M17178111* SPOMLADANSKI IZPITNI ROK Izpitna pola 1 Četrtek, 1. junij 2017 / 90 minut Dovoljeno gradivo in pripomočki: Kandidat prinese nalivno pero

Prikaži več

Orodje za izvoz podatkov

Orodje za izvoz podatkov Pomoč uporabnikom -NA-SI-200, V6.13-00 IZUM, 2018 COBISS, COMARC, COBIB, COLIB, IZUM so zaščitene znamke v lasti javnega zavoda IZUM. KAZALO VSEBINE 1 Uvod... 1 2 Predstavitev orodja za izvoz podatkov...

Prikaži več

Microsoft Word - M doc

Microsoft Word - M doc Državni izpitni center *M11145113* INFORMATIKA SPOMLADANSKI IZPITNI ROK NAVODILA ZA OCENJEVANJE Petek, 10. junij 2011 SPLOŠNA MATURA RIC 2011 2 M111-451-1-3 IZPITNA POLA 1 1. b 2. a 3. Pojem se povezuje

Prikaži več

Avtomatizirano modeliranje pri celostnem upravljanju z vodnimi viri

Avtomatizirano modeliranje pri celostnem upravljanju z vodnimi viri Univerza v Ljubljani Fakulteta za gradbeništvo in geodezijo 36. Goljevščkov spominski dan Modeliranje kroženja vode in spiranja hranil v porečju reke Pesnice Mateja Škerjanec 1 Tjaša Kanduč 2 David Kocman

Prikaži več

Gimnazija Bežigrad Peričeva Ljubljana OPERACIJSKI SISTEM Predmet: informatika

Gimnazija Bežigrad Peričeva Ljubljana OPERACIJSKI SISTEM Predmet: informatika Gimnazija Bežigrad Peričeva 4 1000 Ljubljana OPERACIJSKI SISTEM Predmet: informatika KAZALO 1. Uvod...3 2. Predstavitev programa Windows 98...5 3. Raziskovanje računalnika...5 4. Raziskovanje Interneta...6

Prikaži več

Navodila za uporabo Mini prenosna HD kamera s snemalnikom

Navodila za uporabo Mini prenosna HD kamera s snemalnikom Navodila za uporabo Mini prenosna HD kamera s snemalnikom www.spyshop.eu Izdelku so priložena navodila v angleščini, ki poleg teksta prikazujejo tudi slikovni prikaz sestave in delovanja izdelka. Lastnosti

Prikaži več

Podatkovni model ER

Podatkovni model ER Podatkovni model Entiteta- Razmerje Iztok Savnik, FAMNIT 2018/19 Pregled: Načrtovanje podatkovnih baz Konceptualno načtrovanje: (ER Model) Kaj so entite in razmerja v aplikacijskem okolju? Katere podatke

Prikaži več

STAVKI _5_

STAVKI _5_ 5. Stavki (Teoremi) Vsebina: Stavek superpozicije, stavek Thévenina in Nortona, maksimalna moč na bremenu (drugič), stavek Tellegena. 1. Stavek superpozicije Ta stavek določa, da lahko poljubno vezje sestavljeno

Prikaži več

Zavod sv. Stanislava Škofijska klasična gimnazija Programiranje v Pythonu Program za računanje Maturitetna seminarska naloga iz informatike Kandidat:

Zavod sv. Stanislava Škofijska klasična gimnazija Programiranje v Pythonu Program za računanje Maturitetna seminarska naloga iz informatike Kandidat: Zavod sv. Stanislava Škofijska klasična gimnazija Program za računanje Maturitetna seminarska naloga iz informatike Kandidat: Tinkara Čadež Mentor: Helena Starc Grlj Ljubljana Šentvid, april 2019 POVZETEK

Prikaži več

CODEKS IP KAMERA

CODEKS IP KAMERA CODEKS IP KAMERA uporabniška navodila Vse pravice pridržane. Noben del uporabniških navodil se ne sme reproducirati v kakršnikoli obliki ali na kakršen koli način - grafični, elektronski ali mehanski,

Prikaži več

3. Metode, ki temeljijo na minimalnem ostanku Denimo, da smo z Arnoldijevim algoritmom zgenerirali ON bazo podprostora Krilova K k (A, r 0 ) in velja

3. Metode, ki temeljijo na minimalnem ostanku Denimo, da smo z Arnoldijevim algoritmom zgenerirali ON bazo podprostora Krilova K k (A, r 0 ) in velja 3. Metode, ki temeljijo na minimalnem ostanku Denimo, da smo z Arnoldijevim algoritmom zgenerirali ON bazo podprostora Krilova K k (A, r 0 ) in velja AV k = V k H k + h k+1,k v k+1 e T k = V kh k+1,k.

Prikaži več

Vaja 2 Virtualizacija fizičnih strežnikov in virtualni PC A. Strežnik Vmware ESX Namestitev strežnika VMware ESX 3.5 na fizični strežnik 2. Nas

Vaja 2 Virtualizacija fizičnih strežnikov in virtualni PC A. Strežnik Vmware ESX Namestitev strežnika VMware ESX 3.5 na fizični strežnik 2. Nas Vaja 2 Virtualizacija fizičnih strežnikov in virtualni PC A. Strežnik Vmware ESX 3.5 1. Namestitev strežnika VMware ESX 3.5 na fizični strežnik 2. Nastavitve strežnika ESX 3. Namestitev in nastavitve VM

Prikaži več

1 MMK - Spletne tehnologije Vaja 5: Spletni obrazci Vaja 5 : Spletni obrazci 1. Element form Spletni obrazci so namenjeni zbiranju uporabniških podatk

1 MMK - Spletne tehnologije Vaja 5: Spletni obrazci Vaja 5 : Spletni obrazci 1. Element form Spletni obrazci so namenjeni zbiranju uporabniških podatk 1 MMK - Spletne tehnologije Vaja 5: Spletni obrazci Vaja 5 : Spletni obrazci 1. Element form Spletni obrazci so namenjeni zbiranju uporabniških podatkov in njihov prenos med spletnimi mesti. Obrazec v

Prikaži več

PowerPointova predstavitev

PowerPointova predstavitev INTRANET - DETEKTIV Detektivska zbornica Republike Slovenije Pozdravljeni, v kratki predstaviti in navodilih za delo z intranet sistemom Detektiv. Intranet članom Detektivske zbornice RS omogoča, da: -

Prikaži več

NETGEAR R6100 WiFi Router Installation Guide

NETGEAR R6100 WiFi Router Installation Guide Blagovne znamke NETGEAR, logotip NETGEAR in Connect with Innovation so blagovne znamke in/ali registrirane blagovne znamke družbe NETGEAR, Inc. in/ali njenih povezanih družb v ZDA in/ali drugih državah.

Prikaži več

Navodila za programsko opremo FeriX Namestitev na trdi disk Avtor navodil: Martin Terbuc Datum: December 2007 Center odprte kode Slovenije Spletna str

Navodila za programsko opremo FeriX Namestitev na trdi disk Avtor navodil: Martin Terbuc Datum: December 2007 Center odprte kode Slovenije Spletna str Navodila za programsko opremo FeriX Namestitev na trdi disk Avtor navodil: Martin Terbuc Datum: December 2007 Center odprte kode Slovenije Spletna stran: http://www.coks.si/ Elektronski naslov: podpora@coks.si

Prikaži več

6.1 Uvod 6 Igra Chomp Marko Repše, Chomp je nepristranska igra dveh igralcev s popolno informacijo na dvo (ali vec) dimenzionalnem prostoru

6.1 Uvod 6 Igra Chomp Marko Repše, Chomp je nepristranska igra dveh igralcev s popolno informacijo na dvo (ali vec) dimenzionalnem prostoru 6.1 Uvod 6 Igra Chomp Marko Repše, 30.03.2009 Chomp je nepristranska igra dveh igralcev s popolno informacijo na dvo (ali vec) dimenzionalnem prostoru in na končni ali neskončni čokoladi. Igralca si izmenjujeta

Prikaži več

Vzpostavitev več nivojske varnostne infrastrukture S pomočjo Elektro Maribor, McAfee SIEM, CISCO ISE, NGFW Zorna Varga, Sfera IT d.o.o in Klemen Bačak

Vzpostavitev več nivojske varnostne infrastrukture S pomočjo Elektro Maribor, McAfee SIEM, CISCO ISE, NGFW Zorna Varga, Sfera IT d.o.o in Klemen Bačak Vzpostavitev več nivojske varnostne infrastrukture S pomočjo Elektro Maribor, McAfee SIEM, CISCO ISE, NGFW Zorna Varga, Sfera IT d.o.o in Klemen Bačak, Sfera IT d.o.o. 1 Priprava na: Vzpostavitev več nivojske

Prikaži več

Slide 1

Slide 1 Tehnike programiranja PREDAVANJE 10 Uvod v binarni svet in računalništvo (nadaljevanje) Logične operacije Ponovitev in ilustracija Logične operacije Negacija (eniški komplement) Negiramo vse bite v besedi

Prikaži več

Teorija kodiranja in kriptografija 2013/ AES

Teorija kodiranja in kriptografija 2013/ AES Teorija kodiranja in kriptografija 23/24 AES Arjana Žitnik Univerza v Ljubljani, Fakulteta za matematiko in fiziko Ljubljana, 8. 3. 24 AES - zgodovina Septembra 997 je NIST objavil natečaj za izbor nove

Prikaži več

Najboljša skupaj Kontrola pristopa + registracija delovnega časa

Najboljša skupaj Kontrola pristopa + registracija delovnega časa Najboljša skupaj Kontrola pristopa + registracija delovnega časa Globalna rešitev prilagojena lokalnemu okolju Rešitev Time&Space je na voljo v 15-ih jezikih ter podpira latinico, cirilico in arabsko pisavo.

Prikaži več

Navodila Trgovina iCenter

Navodila Trgovina iCenter Napredovanja v plačne razrede javnih uslužbencev 2019 S pomočjo SAOP programa Kadrovska evidenca lahko ob dokupljeni kodi vodimo napredovanja javnih uslužbencev. Za napredovanja v letu 2019 je potrebno

Prikaži več

INFORMATOR BIROKRAT 1/2011

INFORMATOR BIROKRAT 1/2011 ta Veleprodaja Maloprodaja Storitve Računovodstvo Proizvodnja Gostinstvo Turizem Hotelirstvo Ticketing CRM Internetna trgovina Izdelava internetnih strani Grafično oblikovanje NOVOSTI IN NASVETI ZA DELO

Prikaži več

Področje uporabe

Področje uporabe Regulator Področja uporabe Regulator DIALOG EQ je namenjen predvsem vodenju in nadziranju sistemov ogrevanja in hlajenja, lahko pa se uporabi tudi na različnih področjih avtomatizacije in inteligentnih

Prikaži več

Zadeva: Ponudba

Zadeva: Ponudba Navodila za urejanje Spletne strani CTEK.si 1. Dodajanje novega polnilnika Za dodajanje novega polnilnika nikoli ne prepisujte že objavljenih vsebin, ampak sledite tem navodilom. Ta so zagotovilo, da bodo

Prikaži več

Microsoft Word - NAVODILA ZA UPORABO.docx

Microsoft Word - NAVODILA ZA UPORABO.docx NAVODILA ZA UPORABO VODILO CCM-18A/N-E (K02-MODBUS) Hvala ker ste se odločili za nakup našega izdelka. Pred uporabo enote skrbno preberite ta Navodila za uporabo in jih shranite za prihodnjo rabo. Vsebina

Prikaži več

Ime in priimek: Vpisna št: FAKULTETA ZA MATEMATIKO IN FIZIKO Oddelek za matematiko Verjetnost Pisni izpit 5. februar 2018 Navodila Pazljivo preberite

Ime in priimek: Vpisna št: FAKULTETA ZA MATEMATIKO IN FIZIKO Oddelek za matematiko Verjetnost Pisni izpit 5. februar 2018 Navodila Pazljivo preberite Ime in priimek: Vpisna št: FAKULTETA ZA MATEMATIKO IN FIZIKO Oddelek za matematiko Verjetnost Pisni izpit 5 februar 018 Navodila Pazljivo preberite besedilo naloge, preden se lotite reševanja Nalog je

Prikaži več

Kazalo 1 DVOMESTNE RELACIJE Operacije z dvomestnimi relacijami Predstavitev relacij

Kazalo 1 DVOMESTNE RELACIJE Operacije z dvomestnimi relacijami Predstavitev relacij Kazalo 1 DVOMESTNE RELACIJE 1 1.1 Operacije z dvomestnimi relacijami...................... 2 1.2 Predstavitev relacij............................... 3 1.3 Lastnosti relacij na dani množici (R X X)................

Prikaži več

resitve.dvi

resitve.dvi FAKULTETA ZA STROJNISTVO Matematika Pisni izpit. junij 22 Ime in priimek Vpisna st Navodila Pazljivo preberite besedilo naloge, preden se lotite resevanja. Veljale bodo samo resitve na papirju, kjer so

Prikaži več

EVROPSKA KOMISIJA Bruselj, C(2018) 6665 final IZVEDBENI SKLEP KOMISIJE (EU).../ z dne o določitvi ukrepov za pripravo seznama os

EVROPSKA KOMISIJA Bruselj, C(2018) 6665 final IZVEDBENI SKLEP KOMISIJE (EU).../ z dne o določitvi ukrepov za pripravo seznama os EVROPSKA KOMISIJA Bruselj, 15.10.2018 C(2018) 6665 final IZVEDBENI SKLEP KOMISIJE (EU).../ z dne 15.10.2018 o določitvi ukrepov za pripravo seznama oseb, ki so v sistemu vstopa/izstopa (SVI) identificirane

Prikaži več

PREDMETNI KURIKULUM ZA RAZVOJ METEMATIČNIH KOMPETENC

PREDMETNI KURIKULUM ZA RAZVOJ METEMATIČNIH KOMPETENC MATEMATIKA 1.razred OSNOVE PREDMETA POKAZATELJI ZNANJA SPRETNOSTI KOMPETENCE Naravna števila -pozna štiri osnovne računske operacije in njihove lastnosti, -izračuna številske izraze z uporabo štirih računskih

Prikaži več

Microsoft Word - M docx

Microsoft Word - M docx Š i f r a k a n d i d a t a : Državni izpitni center *M15245112* JESENSKI IZPITNI ROK Izpitna pola 2 / 90 minut Dovoljeno gradivo in pripomočki: Kandidat prinese nalivno pero ali kemični svinčnik in računalo.

Prikaži več

INTERAKTIVNE REŠITVE PROMETHEAN

INTERAKTIVNE REŠITVE PROMETHEAN INTERAKTIVNE REŠITVE PROMETHEAN Promethean je vodilni svetovni ponudnik interaktivne tehnologije na področju izobraževanja. S svojim inovativnim pristopom in vizijo prihodnosti, spreminjajo način sodelovanja

Prikaži več

Protokoli v računalniškem komuniciranju TCP, IP, nivojski model, paket informacij.

Protokoli v računalniškem komuniciranju TCP, IP, nivojski model, paket informacij. Protokoli v računalniškem komuniciranju TCP, IP, nivojski model, paket informacij. Protokoli - uvod Protokol je pravilo ali zbirka pravil, ki določajo načine transporta sporočil po računalniškem omrežju

Prikaži več

Linksys PLEK500 User Guide

Linksys PLEK500 User Guide Uporabniški priročnik Linksys PLEK500 Omrežni vmesnik Powerline Vsebina Pregled............... 2 Funkcije..................... 2 Kako deluje omrežje Powerline 3 Primer namestitve 3 Namestitev omrežja Powerline.....

Prikaži več

Diapozitiv 1

Diapozitiv 1 Računalništvo in informatika Program: Mehatronika dr. Hubert Fröhlich, univ. dipl. el. Podatkovne baze 2 Podatkovne baze Podatki osnova za odločanje in izvajanje akcij tiskana oblika elektronska oblika

Prikaži več

Navodila za pripravo oglasov na strani Med.Over.Net v 2.2 Statistično najboljši odziv uporabnikov je na oglase, ki hitro in neposredno prenesejo osnov

Navodila za pripravo oglasov na strani Med.Over.Net v 2.2 Statistično najboljši odziv uporabnikov je na oglase, ki hitro in neposredno prenesejo osnov Navodila za pripravo oglasov na strani Med.Over.Net v 2.2 Statistično najboljši odziv uporabnikov je na oglase, ki hitro in neposredno prenesejo osnovno sporočilo. Izogibajte se daljših besedil in predolgih

Prikaži več

VPELJAVA MDM V DRŽAVEM ZBORU MATJAŽ ZADRAVEC

VPELJAVA MDM V DRŽAVEM ZBORU MATJAŽ ZADRAVEC VPELJAVA MDM V DRŽAVEM ZBORU MATJAŽ ZADRAVEC Državni zbor v številkah 90 poslancev 9 + 1 poslanska skupina 150+ mobilnih naprav (OS Android, ios) 500+ internih uporabnikov, 650+ osebnih računalnikov, 1100+

Prikaži več

Spoznajmo PowerPoint 2013

Spoznajmo PowerPoint 2013 Spoznajmo PowerPoint 2013 13 Nova predstavitev Besedilo v predstavitvi Besedilo, ki se pojavlja v predstavitvah lahko premaknemo kamorkoli v diapozitivu. Kadar izdelamo diapozitiv z že ustvarjenimi okvirji

Prikaži več

Slide 1

Slide 1 Projektno vodenje PREDAVANJE 7 doc. dr. M. Zajc matej.zajc@fe.uni-lj.si Projektno vodenje z orodjem Excel Predstavitev Najbolj razširjeno orodje za delo s preglednicami Dva sklopa funkcij: Obdelava številk

Prikaži več

APS1

APS1 Algoritmi in podatkovne strukture 1 Visokošolski strokovni študij Računalništvo in informatika Algoritmi in problemi Jurij Mihelič, UniLj, FRI Algoritmi Izvor izraza al-khwārizmī algoritmi Sem Muhammad

Prikaži več

INFORMATOR BIROKRAT 1/2011

INFORMATOR BIROKRAT 1/2011 ta Veleprodaja Maloprodaja Storitve Računovodstvo Proizvodnja Gostinstvo Turizem Hotelirstvo Ticketing CRM Internetna trgovina Izdelava internetnih strani Grafično oblikovanje NOVOSTI IN NASVETI ZA DELO

Prikaži več

Microsoft Word - A-3-Dezelak-SLO.doc

Microsoft Word - A-3-Dezelak-SLO.doc 20. posvetovanje "KOMUNALNA ENERGETIKA / POWER ENGINEERING", Maribor, 2011 1 ANALIZA OBRATOVANJA HIDROELEKTRARNE S ŠKOLJČNIM DIAGRAMOM Klemen DEŽELAK POVZETEK V prispevku je predstavljena možnost izvedbe

Prikaži več

Nove različice programske opreme GE Podjetje GE Digital, vodilni svetovni proizvajalec programske opreme za področje avtomatike, je izdalo kar nekaj n

Nove različice programske opreme GE Podjetje GE Digital, vodilni svetovni proizvajalec programske opreme za področje avtomatike, je izdalo kar nekaj n Nove različice programske opreme GE Podjetje GE Digital, vodilni svetovni proizvajalec programske opreme za področje avtomatike, je izdalo kar nekaj novosti na področju SCADA sistemov (ifix Productivity

Prikaži več

Slide 1

Slide 1 Univerza v Ljubljani Fakulteta za elektrotehniko PROCES PISANJA PROGRAMOV Mitja Nemec Univerza v Ljubljani, Fakulteta za elektrotehniko, Tržaška 25, 1000 Ljubljana, SLOVENIJA e-mail: mitjan@fe.uni-lj.si

Prikaži več

Microsoft Word - vaje2_ora.doc

Microsoft Word - vaje2_ora.doc II UKAZI 1. Napišite zaporedje ukazov, ki vrednost enobajtne spremenljivke STEV1 prepiše v enobajtno spremenljivko STEV2. Nalogo rešite z neposrednim naslavljanjem (zaporedje lahko vsebuje le 2 ukaza v

Prikaži več

IZGRADNJA PREDSTAVITVENE SPLETNE STRANI GLUCOWATCH Avtor: Marko Zajko Projekt delno financira Evropska unija, in sicer iz Evropskega socialnega sklada

IZGRADNJA PREDSTAVITVENE SPLETNE STRANI GLUCOWATCH Avtor: Marko Zajko Projekt delno financira Evropska unija, in sicer iz Evropskega socialnega sklada IZGRADNJA PREDSTAVITVENE SPLETNE STRANI GLUCOWATCH Avtor: Marko Zajko UPORABLJENE TEHNOLOGIJE Za izdelavo predstavitvene spletne strani smo izbrali tehnologije, ki zagotavljajo: Hitro delovanje spletne

Prikaži več

ISOFT , računalniški inženiring

ISOFT , računalniški inženiring ISOFT, računalniški inženiring Marko Kastelic s.p. Sad 2, 1296 Šentvid pri stični Spletna stran podjetja:http://www.isoft.si podjetja ISOFT Spletna stran sistema sledenja vozil track.si: http://www.track.si

Prikaži več

PRIPOROČILA ZA OBLIKOVANJE KATALOGOV ZNANJA ZA MODULE V PROGRAMIH VIŠJEGA STROKOVNEGA IZOBRAŽEVANJA

PRIPOROČILA ZA OBLIKOVANJE KATALOGOV ZNANJA ZA MODULE V PROGRAMIH VIŠJEGA STROKOVNEGA IZOBRAŽEVANJA KATALOG ZNANJA 1. IME PREDMETA ZBIRKE PODATKOV I ZBIRKE PODATKOV II 2. SPLOŠNI CILJI Splošni cilji predmeta so: razvijanje sposobnosti za uporabo znanstvenih metod in sredstev, razvijanje odgovornosti

Prikaži več

Microsoft Word - eDenar - navodila za uporabo osebnega portala clana doc

Microsoft Word - eDenar - navodila za uporabo osebnega portala clana doc Navodila za uporabo osebnega portala člana 13.11.08 Pozor: Ta navodila so le v pomoč uporabnikom. V kolikor so navodila v nasprotju s splošnimi pogoji poslovanja kluba, veljajo splošni pogoji poslovanja

Prikaži več

Univerza v Ljubljani FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Tržaška c. 25, 1000 Ljubljana Realizacija n-bitnega polnega seštevalnika z uporabo kvan

Univerza v Ljubljani FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Tržaška c. 25, 1000 Ljubljana Realizacija n-bitnega polnega seštevalnika z uporabo kvan Univerza v Ljubljani FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Tržaška c. 25, 1000 Ljubljana Realizacija n-bitnega polnega seštevalnika z uporabo kvantnih celičnih avtomatov SEMINARSKA NALOGA Univerzitetna

Prikaži več

Microsoft PowerPoint - Java_spremenljivke

Microsoft PowerPoint - Java_spremenljivke Java Spremenljivke, prireditveni stavek Spremenljivke Prostor, kjer hranimo vrednosti Ime Znak, števka, _ Presledkov v imenu ne sme biti! Tip spremenljivke int (cela števila) Vse spremenljivke napovemo

Prikaži več

FGG14

FGG14 Iterativne metode podprostorov Iterativne metode podprostorov uporabljamo za numerično reševanje linearnih sistemov ali računanje lastnih vrednosti problemov z velikimi razpršenimi matrikami, ki so prevelike,

Prikaži več

INDUSTRIJA 4.0: PRILOŽNOSTI DIGITALNE PREOBRAZBE PROCESA RAZVOJA BARV IN PREMAZOV TOMAŽ KERN, BENJAMIN URH, MARJAN SENEGAČNIK, EVA KRHAČ

INDUSTRIJA 4.0:  PRILOŽNOSTI DIGITALNE PREOBRAZBE PROCESA RAZVOJA BARV IN PREMAZOV TOMAŽ KERN, BENJAMIN URH, MARJAN SENEGAČNIK, EVA KRHAČ INDUSTRIJA 4.0: PRILOŽNOSTI DIGITALNE PREOBRAZBE PROCESA RAZVOJA BARV IN PREMAZOV TOMAŽ KERN, BENJAMIN URH, MARJAN SENEGAČNIK, EVA KRHAČ AGENDA IZZIV OZADJE RAZISKAVE POSNETEK STANJA ANALIZA STANJA in

Prikaži več

Microsoft PowerPoint - Lapajne&Randl2015.pptx

Microsoft PowerPoint - Lapajne&Randl2015.pptx RAZISKAVA OB PREDVIDENI SELITVI KNJIŽNIC OHK Raziskava je potekala v okviru predmetov Raziskovalne metode in Uporabniki informacijskih virov in storitev pod mentorstvom treh profesorjev (dr. Pisanski,

Prikaži več

Microsoft Word - SI_vaja1.doc

Microsoft Word - SI_vaja1.doc Univerza v Ljubljani, Zdravstvena fakulteta Sanitarno inženirstvo Statistika Inštitut za biostatistiko in medicinsko informatiko Š.l. 2011/2012, 3. letnik (1. stopnja), Vaja 1 Naloge 1. del: Opisna statistika

Prikaži več

Komisija za študijske zadeve UL Medicinske fakultete Vrazov trg 2 SI-1000 Ljubljana E: T: Režim študija Predmet: Uvod

Komisija za študijske zadeve UL Medicinske fakultete Vrazov trg 2 SI-1000 Ljubljana E: T: Režim študija Predmet: Uvod Komisija za študijske zadeve UL Medicinske fakultete Vrazov trg 2 SI-1000 Ljubljana E: ksz@mf.uni-lj.si T: +386 1 543 7700 Režim študija Predmet: Uvod v medicino, modul Informatika Študijski program: EMŠ

Prikaži več

EU-TPD 1 PODROBNOSTI KODIRANJA Informacije za trgovino JB za DCTA, (Final 1.2) Obveznost kodiranja izdelka, urejena s predpisom EU-TPD se n

EU-TPD 1 PODROBNOSTI KODIRANJA Informacije za trgovino JB za DCTA, (Final 1.2) Obveznost kodiranja izdelka, urejena s predpisom EU-TPD se n EU-TPD 1 PODROBNOSTI KODIRANJA Informacije za trgovino Obveznost kodiranja izdelka, urejena s predpisom EU-TPD se nanaša na tobačne izdelke na trgu EU in na tobačne izdelke, izdelane v EU, vključno s tistimi

Prikaži več

PowerPointova predstavitev

PowerPointova predstavitev Dostopnost elektronskih virov za slepe, slabovidne in druge osebe z motnjami branja Kristina Janc ZSSML - 27. Seja TIFLO sekcije 22.3.2012 Možnost izkoriščanja elektronskih virov za slepe, slabovidne in

Prikaži več

'Kombinatoricna optimizacija / Lokalna optimizacija'

'Kombinatoricna optimizacija / Lokalna optimizacija' Kombinatorična optimizacija 3. Lokalna optimizacija Vladimir Batagelj FMF, matematika na vrhu različica: 15. november 2006 / 23 : 17 V. Batagelj: Kombinatorična optimizacija / 3. Lokalna optimizacija 1

Prikaži več

Sestavljanje in re\unhbox \bgroup \let \unhbox \setbox \hbox {s\global \mathchardef \spacefactor }\ac

Sestavljanje in re\unhbox \bgroup \let \unhbox \setbox \hbox {s\global \mathchardef \spacefactor }\ac Univerza v Ljubljani Fakulteta za računalništvo in informatiko Tadej Bukovec Sestavljanje in reševanje igre sudoku DIPLOMSKO DELO VISOKOŠOLSKI STROKOVNI ŠTUDIJSKI PROGRAM PRVE STOPNJE RAČUNALNIŠTVO IN

Prikaži več

TRGOVSKI PORTAL SPLETNA APLIKACIJA NAMENJENA TRGOVCEM POGOSTA VPRAŠANJA IN ODGOVORI Ljubljana, Verzija 1.0

TRGOVSKI PORTAL SPLETNA APLIKACIJA NAMENJENA TRGOVCEM POGOSTA VPRAŠANJA IN ODGOVORI Ljubljana, Verzija 1.0 TRGOVSKI PORTAL SPLETNA APLIKACIJA NAMENJENA TRGOVCEM POGOSTA VPRAŠANJA IN ODGOVORI Ljubljana, 12.11.2018 Verzija 1.0 KAZALO 1 REGISTRACIJA... 3 1.1 Katere podatke potrebujem za registracijo/kreiranje

Prikaži več

UNIVERZA V LJUBLJANI FAKULTETA ZA MATEMATIKO IN FIZIKO Katja Ciglar Analiza občutljivosti v Excel-u Seminarska naloga pri predmetu Optimizacija v fina

UNIVERZA V LJUBLJANI FAKULTETA ZA MATEMATIKO IN FIZIKO Katja Ciglar Analiza občutljivosti v Excel-u Seminarska naloga pri predmetu Optimizacija v fina UNIVERZA V LJUBLJANI FAKULTETA ZA MATEMATIKO IN FIZIKO Katja Ciglar Analiza občutljivosti v Excel-u Seminarska naloga pri predmetu Optimizacija v financah Ljubljana, 2010 1. Klasični pristop k analizi

Prikaži več

Microsoft Word - Analiza rezultatov NPZ slovenscina 2018.docx

Microsoft Word - Analiza rezultatov NPZ slovenscina 2018.docx OSNOVNA ŠOLA SOSTRO POROČILO O ANALIZI DOSEŽKOV NACIONALNEGA PREVERJANJA ZNANJA IZ SLOVENŠČINE leta 2018 Pripravile učiteljice slovenščine: Renata More, Martina Golob, Petra Aškerc, Katarina Leban Škoda

Prikaži več

NETGEAR R6250 Smart WiFi Router Installation Guide

NETGEAR R6250 Smart WiFi Router Installation Guide Blagovne znamke NETGEAR, logotip NETGEAR in Connect with Innovation so blagovne znamke in/ali registrirane blagovne znamke družbe NETGEAR, Inc. in/ali njenih povezanih družb v ZDA in/ali drugih državah.

Prikaži več

Hiter začetek Razširjevalnik dosega WiFi N300 Model EX2700

Hiter začetek Razširjevalnik dosega WiFi N300 Model EX2700 Hiter začetek Razširjevalnik dosega WiFi N300 Model EX2700 Začetek uporabe Razširjevalnik dosega WiFi NETGEAR doseg omrežja WiFi poveča tako, da okrepi obstoječi signal WiFi in izboljša splošno kakovost

Prikaži več

PowerPointova predstavitev

PowerPointova predstavitev INFORMACIJSKA PISMENOST Tomaž Bešter Center za informacijske storitve NUK 01/2001-200 tomaz.bester@nuk.uni.lj.si Dnevni red Podatek informacija znanje; vrste pismenosti Zakaj je informacijska pismenost

Prikaži več

Microsoft Word - CN-BTU4 Quick Guide_SI

Microsoft Word - CN-BTU4 Quick Guide_SI Bluetooth Dongle Artikel: CN-BTU4 NAVODILA v1.0 Sistemske zahteve Zahteve za PC: - Proc.: Intel Pentium III 500MHz or above. - Ram: 256MB ali več. - Disk: vsaj 50MB. - OS: Windows 98SE/Me/2000/XP - Prost

Prikaži več