NEODLOČLJIVI PROBLEMI V TEORIJI IZRAČUNLJIVOSTI

Size: px
Start display at page:

Download "NEODLOČLJIVI PROBLEMI V TEORIJI IZRAČUNLJIVOSTI"

Transcription

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

2

3 UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA POUČEVANJE, PREDMETNO POUČEVANJE LUKA VIKTOR ROGAČ NEODLOČLJIVI PROBLEMI V TEORIJI IZRAČUNLJIVOSTI MAGISTRSKO DELO MENTOR: red. prof. dr. ALEKSANDER MALNIČ SOMENTOR: doc. dr. ROK POŽAR LJUBLJANA, 2017

4

5 Zahvala Mentorju red. prof. dr. Aleksandru Malniču in somentorju doc. dr. Roku Požarju hvala za strokovno pomoč, nasvete in vodenje pri nastajanju magistrskega dela. Družini hvala za vso podporo in razumevanje.

6

7 Povzetek V magistrskem delu je predstavljena hierarhija avtomatov in pripadajočih jezikov. Vpeljani so pojmi, povezani z razpoznavnimi in nerazpoznavnimi jeziki. Sledi nadaljnja vpeljava podrazreda razpoznavnih jezikov; to so odločljivi jeziki. S pomočjo odločljivih oziroma neodločljivih jezikov prevedemo in strogo definiramo koncept odločljivih oziroma neodločljivih problemov. Podrobno so opisani so naslednji zgledi neodločljivih problemov: problem zaustavitve Turingovega stroja, Postov korespodenčni problem, problem zaposlenega bobra in Hilbertov deseti problem. V okviru magistrskega dela je bila izdelana spletna aplikacija, ki išče konkretne rešitve Postovega korespodenčnega problema. Podrobno je opisano programsko orodje z razlago programske kode in navodili za uporabo. Naveden je tudi primer uporabe spletne aplikacije v praksi, na primer pri računalniškem krožku. MSC (2010) klasifikacija: 03D10, 03D20, 03D25, 68Q45. Ključne besede: hierarhija avtomatov in jezikov, razpoznavni jeziki, odločljivi jeziki, odločljivi problemi, problem zaustavitve Turingovega stroja, Postov korespodenčni problem, problem zaposlenega bobra, Hilbertov 10. problem.

8 Abstract In this master thesis the hierarchy of automata and related languages is presented. First, the concepts, associated with recognizable and unrecognizable languages are introduced, followed by further introduction of a subclass of recognized languages; these are decidable languages. By means of decidable and undecidable languages the concept of decidable and undecidable problems was translated and strictly defined. The following examples of undecidable problems are described in detail: the Turing s halting problem, the Post correspondence problem, the busy beaver problem and the Hilbert s tenth problem. In the frame of the master thesis, a web application which is searching for concrete solutions of the Post correspondence problem, was developed. The programming environment of the application and the interpretation of the source code with instructions for its using are described in detail. An example for the usage of the application at teaching, for example in a computer club, is presented. MSC (2010) classification: 03D10, 03D20, 03D25, 68Q45. Key words: hierarchy of automata and related languages, recognizable languages, decidable languages, decidable problems, the Turing s halting problem, the Post correspondence problem, the Busy beaver problem, the Hilbert s 10 th problem.

9 Kazalo 1 Uvod 1 2 Hierarhija avtomatov in jezikov Končni avtomat Skladovni avtomat Turingov stroj Gödelovo številčenje Turingovih strojev Linearno omejeni avtomat Hierarhija Razpoznavnost in nerazpoznavnost jezikov 15 4 Odločljivost in neodločljivost jezikov 19 5 Odločljivost in neodločljivost problemov Problem zaustavitve Turingovega stroja Postov korespondenčni problem 27 7 Problem zaposlenega bobra 33 8 Problem rešljivosti diofantskih enačb 37 9 Spletna aplikacija HTML, PHP in CSS Hyper Text Markup Language PHP: Hypertext Preprocessor Cascading Style Sheets Opis aplikacije Navodila za uporabo Splošna navodila Lokalna uporaba spletne aplikacije na operacijskem sistemu Windows Koda Predlogi za nadgradnjo Uporaba pri računalniškem krožku Zaključek 47

10 Slike 2.1 Končni avtomat, predstavljen z diagramom Skladovni avtomat, predstavljen z diagramom Turingov stroj, predstavljen z diagramom Hierarhija jezikov in pripadajoči avtomati Če je jezik L odločljiv, je njegov komplement L tudi odločljiv Turingov stroj M Primer realizacije Turingovega stroja D Primer realizacije Turingovega stroja F Turingov stroj P Primer Turingovega stroja B(3), predstavljen z diagramom Začetna stran spletne aplikacije Aplikacija najde rešitev Programsko okno programa XAMPP Shematski prikaz programske kode Tabele 3.1 Tabela karakterističnih vektorjev Vrednosti Σ(n) in S(n) za 1 n 6 [16]

11 Poglavje 1 Uvod Teorija izračunljivosti je temeljna disciplina računalništva, ki se ukvarja z reševanjem problemov s pomočjo različnih modelov računanja. Pri reševanju problema zahtevamo tak postopek oziroma algoritem, ki poda rešitev za vse mogoče konkretne primere. Pomembna veja teorije izračunljivosti je teorija avtomatov, ki leži na preseku med logiko, matematiko in računalništvom. Avtomat predstavlja abstraktni model stroja s stanji, ki se glede na vhodno besedo in funkcijo prehodov med stanji, premika po stanjih. V primeru, da se avtomat glede na vhodno besedo ustavi v končnem stanju, pravimo, da to vhodno besedo avtomat sprejme oziroma razpozna. Množici vseh tistih besed, ki jih avtomat sprejme, pravimo jezik avtomata. Na tak način lahko generiramo formalne jezike. Če za nek jezik obstaja tak avtomat, ki se ne glede na vhodno besedo vedno ustavi, pa če jo avtomat sprejme ali ne, temu jeziku pravimo, da je odločljiv. Na podoben način konkretnemu problemu priredimo ekvivalenten jezik in pripadajoči avtomat, za katerega si želimo, da je odločljiv. Z drugimi besedami to pomeni, da ne glede na vhodno besedo avtomat vedno poda povratno informacijo. V primeru, da za problem ni mogoče najti odločljivega jezika, pravimo, da je problem oziroma jezik neodločljiv. O neodločljivih problemih v teoriji izračunljivosti najdemo kar nekaj pomembne tuje literature, kot na primer dela Turinga [1], Hopcrofta s sodelavci [2], Sipserja [3] in Martina [4]. Magistrsko delo sestavlja osem poglavij. Po uvodu je v drugem poglavju predstavljena hierarhija avtomatov in pripadajočih jezikov, kjer spoznamo naslednje štiri tipe avtomatov: končni avtomat, skladovni avtomat, Turingov stroj in linearno omejeni avtomat. V naslednjem poglavju si ogledamo pomen razpoznavnosti oziroma nerazpoznavnosti jezika s konkretnim zgledom nerazpoznavnega jezika. V tretjem poglavju definiramo podrazred razpoznavnih jezikov, ki se imenujejo odločljivi jeziki. Nato v četrtem poglavju odločljive jezike prevedemo na odločljive probleme ter se posvetimo temeljnemu neodločljivemu problemu, to je problemu zaustavitve Turingovega stroja. Sledita dve poglavji konkretnih neodločljivih problemov, to sta Postov korespodenčni problem in problem zaposlenega bobra. V predzadnjem poglavju omenimo znameniti Hilbertov 10. problem, to je problem rešljivosti diofantskih enačb, ki ga formuliramo s pomočjo teorije avtomatov. V zadnjem poglavju razvijemo lastno spletno aplikacijo, ki išče konkretne rešitve Postovega korespodenčnega problema. Zaključimo s predstavitvijo spletno okolje skupaj z opisom aplikacije, razlago programske kode, navodili za uporabo in primerom uporabe v praksi. 1

12 2

13 Poglavje 2 Hierarhija avtomatov in jezikov Avtomat je abstraktni model stroja, ki se glede na vhodno besedo (zaporedje simbolov) in funkcijo prehodov premika po stanjih. V primeru, da avtomat po prebrani vhodni besedi obstane v končnem stanju, to besedo avtomat sprejme oziroma razpozna. Množici vseh besed, ki jih avtomat sprejme, pravimo jezik avtomata. Na tak način generiramo formalne jezike, ki jih je možno hierarhično razdeliti glede na to, s kako enostavnim avtomatom jih je moč razpoznati. V tem poglavju bomo s pomočjo literature [2, 3] spoznali to razdelitev. V prvem razdelku se bomo dodatno oprli še na dela [5, 6], v drugem in četrtem razdelku bomo uporabili informacije iz [7], v tretjem iz [1, 8, 9] in v petem razdelku iz [6, 10]. 2.1 Končni avtomat Končni avtomat si lahko predstavljamo kot računalnik, ki ga sestavljajo centralna procesna enota brez internega pomnilnika, zunanji pomnilnik, ki je kar trak, na katerem je zapisana beseda nad abecedo Σ, ter bralna glava, ki s traku sekvenčno bere vsakič po en simbol dane besede, to je zaporedje simbolov iz dane abecede Σ. Procesno enoto sestavljajo stanja in kazalec na stanja; eno od stanj je začetno stanje, nekatera pa so končna stanja. Kazalec stanj se premika glede na simbol, ki ga prebere bralna glava. Če se kazalec z začetnega stanja po branju vhodne besede prestavi v eno od končnih stanj, pravimo, da avtomat prepozna vhodno besedo in jo sprejme. Jezik avtomata M je množica vseh tistih besede nad abecedo Σ, ki jih avtomat sprejme; označimo ga L(M). Bolj nazorno lahko avtomat predstavimo v obliki diagrama, pri čemer so stanja narisana kot krogci, prehodi med stanji pa kot usmerjene povezave s pripadajočo oznako, ki predstavlja prebrani simbol. Začetno in končno stanje sta posebej označeni. Začetno stanje je predstavljeno v obliki krogca s širšo puščico nanj; končno stanje pa je oblikovan krogec s posebno obrobo. Te oznake veljajo za vse nadaljnje avtomate. Zgled 1. Na sliki 2.1 je prikazan diagram končnega avtomata M nad abecedo Σ = {0, 1}, ki sprejme jezik L(M) = {w Σ enak prvi in zadnji simbol v besedi w}. 3

14 Slika 2.1: Končni avtomat, predstavljen z diagramom. Formalno je končni avtomat urejena peterica pri čemer je: Q množica stanj, Σ abeceda, s Q začetno stanje, M KA = (Q, Σ, δ, s, F ), F Q neprazna množica končnih stanj, δ : Q Σ Q funkcija prehodov med stanji. Zgoraj smo formalno definirali končni avtomat, ki ga bolj natančno imenujemo deterministični končni avtomat. Obstajajo tudi nedeterministični končni avtomati. Prav tako kot deterministični tudi nedeterministični končni avtomat formalno sestavlja urejena peterica (Q, Σ, δ, s, F ), pojavi pa se razlika pri funkciji prehodov med stanji. Pri nedeterminističnem končnem avtomatu je funkcija prehodov med stanji definirana kot δ : Q Σ ε P (Q), kjer je P (Q) potenčna množica množice stanj in Σ ε = Σ {ε}. Nedeterministični končni avtomat poleg tega omogoča tako imenovane tihe prehode, kar pomeni prehajanja med stanji v primeru, ko je prebrana beseda prazna beseda ε. Formalno lahko pokažemo, da deterministični in nedeterministični končni avtomati sprejmejo isti razred jezikov, kljub temu, da se na prvi pogledi zdi, da so nedeterministični končni avtomati močnejših zaradi širše funkcije prehodov in bi zato morda lahko sprejeli večji razred jezikov. Rečemo, da sta dva končna avtomata ekvivalentna, če sprejmeta isti jezik. Ker je deterministični končni avtomat zgolj posebna oblika nedeterminističnega, lahko zgornjo trditev zapišemo z izrekom 1. Dokaz najdemo v literaturi [2, 3, 5]. Izrek 1 Vsak nedeterministični končni avtomat je ekvivalenten kakemu determinističnemu končnemu avtomatu. 4

15 Uporabnost ekvivaletnosti determinističnih in nedeterminističnih končnih avtomatov je v tem, da je za določeni jezik lažje skonstruirati nedeterministični končni avtomat kot determinističnega. Razred jezikov, ki jih sprejemajo končni avtomati, imenujemo tudi razred regularnih jezikov. To pa zato, ker so to natanko tisti jeziki, ki jih lahko formalno opišemo s pomočjo regularnih izrazov v pregledni krajši obliki. Množico regularnih izrazov Reg(Σ) in pripadajočih regularnih jezikov nad abecedo Σ definiramo rekurzivno na naslednji način: 1. Regularni izraz definira regularni jezik L( ) =, regularni izraz ε pa regularni jezik L(ε) = {ε}. 2. Naj bo a Σ. Potem je a Reg(Σ) regularni izraz, ki definira regularni jezik L(a) = {a}. 3. Če sta r 1 Reg(Σ) in r 2 Reg(Σ) regularna izraza, potem je tudi njun stik r 1 r 2 Reg(Σ) regularni izraz; jezik, ki mu pripada, pa je stik jezikov, ki pripadata regularnima izrazoma r 1 in r 2, to je, L(r 1 r 2 ) = L(r 1 ) L(r 2 ) = {a b a L 1, b L 2 }. 4. Če sta r 1 Reg(Σ) in r 2 Reg(Σ) regularna izraza, potem je r 1 + r 2 Reg(Σ) prav tako regularni izraz; jezik, ki mu pripada, pa je L(r 1 + r 2 ) = L(r 1 ) L(r 2 ), torej unija regularnih jezikov, ki pripadata izrazoma r 1 in r Če je r Reg(Σ) regularni izraz, potem je njegovo Kleenovo zaprtje r Reg(Σ) tudi regularni izraz, ki mu pripada ustrezeno Kleenovo zaprtje jezika L(r), torej L(r ) = L(r). 6. Regularni izrazi so natanko tiste besede nad razširjeno abecedo Σ {+,,, (, )}, ki jih iz 1. in 2. točke izpeljemo po pravilih iz točke 3., 4. in 5. Zaradi enostavnejšega zapisa se dogovorimo za prioritetni vrstni red operacij. Operacija z najvišjo prioriteto je operacija Kleenovo zaprtje, sledi stik in nato unija. Tako na primer regularni izraz ((01) + 1) + 0 zapišemo kot (01 + 1) + 1. V luči izreka 1 v nadaljevanju ne bomo razlikovali med determinističnim in nedeterminističnim končnim avtomatom, zato ga bomo imenovali kar končni avtomat (razen, če bo to posebej poudarjeno). Izrek, povezan s končnimi avtomati in regularnimi izrazi, bomo zapisali z izrekom 2. Dokaz je v literaturi [2, 3, 5]. Izrek 2 Za vsak regularni izraz r nad abecedo Σ obstaja tak končni avtomat M KA nad abecedo Σ, da je jezik avtomata L(M KA ) enak jeziku regularnega izraza r. Obratno, za vsak (determinstični) končni avtomat nad abecedo Σ obstaja tak regularni izraz r nad Σ, da je L(r) enak jeziku tega avtomata. Regularni jezik končnega avtomata iz zgleda 1, ki sprejme besede nad abecedo Σ = {0, 1}, ki se začnejo in končajo z enakim simbolom, zapišemo z regularnim izrazom 1(0 + 1) 1 + 0(0 + 1) 0. V tem poglavju smo spoznali formalno in neformalno koncept končnega avtomata in regularnega izraza. V naslednjem poglavju si bomo ogledali končni avtomat z dodatnim pomnilnikom, ki ga imenujemo sklad. Takemu avtomatu bomo rekli skladovni avtomat. 5

16 2.2 Skladovni avtomat Skladovni avtomat je končni avtomat z dodatnim pomnilnikom, tako imenovanim skladom, kamor avtomat zapisuje/prebere simbole skladovne abecede Γ po principu zadnji noter prvi ven. To pomeni, da podatek, v našem primeru simbol iz abecede Γ, ki je zadnji dodan na sklad, ga bo tudi prvi zapustil. Lahko si predstavljamo, da so simboli iz abecede Γ naloženi samostojno drug nad drugega, zadnjemu dodanemu podatku pa pravimo vrh sklada. Sklad poleg tega podpira dve operaciji, dodaj na vrh in briši z vrha. S to nadgradnjo se spremeni funkcija prehodov med stanji in procesiranje skladovnega avtomata. Procesno enoto tako kot končni avtomat sestavljajo stanja (eno je začetno stanje q 0, nekatera pa so končna stanja) in kazalec na stanja. Kazalec na stanja se premika glede na prebrani simbol, ki ga prebere bralna glava s traku in prebrani simbol z vrha sklada, ki se nato izbriše. Ko se kazalec na stanja premakne na naslednje stanje, se na vrh sklada doda nov simbol, ki ga dodeluje funkcija prehodov med stanji. Če se kazalec stanj po branju vhodne besede in vrha sklada prestavi iz začetnega stanja v končno stanje, pravimo, da skladovni avtomat prepozna vhodno besedo in jo sprejme. Potrebno je poudariti, da je lahko sklad na začetku tudi prazen. Skladovni avtomat lahko lažje predstavimo v grafični obliki, za katero veljajo podobni dogovorjeni grafični elementi, kot smo jih spoznali v prejšnjem poglavju. Razlika se pojavi pri oznakah na usmerjenih povezavah, ki predstavljajo funkcijo prehoda med stanji. Oznaka sestoji iz treh elementov: prvi predstavlja prebrani simbol s traku, drugi simbol predstavlja prebrani simbol z vrha sklada (po branju se izbriše), tretji simbol pa predstavlja simbol, ki ga zapišemo na vrh sklada. Oglejmo si spodnji zgled. Zgled 2. Na sliki 2.2 je prikazan diagram skladovnega avtomata M, ki sprejme natanko tiste besede, ki so vsebovane v množici jezika Simbol $ označuje prazen sklad. L(M) = {0 n 1 n n 0}. Slika 2.2: Skladovni avtomat, predstavljen z diagramom. Formalno skladovni avtomat definiramo kot urejeno šesterico M SA = (Q, Σ, Γ, δ, q 0, F ), pri čemer je 6

17 Q množica stanj, Σ abeceda vhodne besede, Γ abeceda sklada, δ : Q Σ ε Γ ε P (Q Γ ε ) funkcija prehodov med stanji, kjer je Σ ε = Σ {ε} in Γ ε = Γ {ε}, q 0 Q začetno stanje in F Q neprazna množica končnih stanj. Podobno kot pri končni avtomatih, skladovne avtomate razdelimo na deterministične in nedeterministične. Ponovno se razlikujeta v funkciji prehodov med stanji, kjer je pri nedeterminističnem prehod definiran kot funkcija iz množice stanj Q v potenčno množico stanj, pri determinističnem pa je novo stanje natančno določeno. Zaradi lažjega razumevanja in predstavljivosti običajno uporabljamo nedeterministični skladovni avtomat, ki je opisan zgoraj. Razreda determinističnih in nedeterminističnih skladovnih avtomatov sta si ekvivalentna v smislu, da generirata isti razred jezikov. Skladovni avtomati generirajo jezike imenovane kontekstno neodvisni jeziki, ki jih opišemo s konceptom kontekstno neodvisne gramatike. Kontekstno neodvisno gramatiko G formalno definiramo kot urejeno četverico (V, Σ, R, S), kjer je: V množica simbolov, ki jim rečemo spremenljivke, Σ množica simbolov, ki jim rečemo konstante, pri čemer velja Σ V =, R množica pravil za izpeljavo, ki rekurzivno omogočajo izpeljavo spremenljivke v konstanto, A α; A V, α (V Σ), S V začetna spremenljivka. Jezik L(G) gramatike G je množica vseh tistih besed nad abecedo Σ, ki jih lahko z uporabo pravil izpeljav izpeljemo iz začetne spremenljivke. Takemu jeziku pravimo, da je kontekstno neodvisen. Izrek, ki se nanaša na skladovne avtomate in kontekstno neodvisne jezike, je zapisana spodaj. Dokaz bralec lahko najde v literaturi [2, 3, 5]. Izrek 3 Za vsak skladovni avtomat M SA lahko konstruiramo kontekstno neodvisno gramatiko G, da velja L(G) = L(M SA ). Obratno, za vsak kontekstno neodvisni jezik L(G) obstaja tak skladovni avtomat M, da velja L(M SA ) = L(G). V nadaljevanju bomo spoznali nadgrajen skladovni avtomat, imenovan Turingov stroj. 7

18 2.3 Turingov stroj Turingov stroj si lahko predstavljamo kot nadgrajen skladovni avtomat, kjer pa zapis simbolov ne poteka na sklad, ampak kar na trak vhodne besede. Trak, ki je neomejen v desno, je razdeljen na celice, vsaka s svojim pripadajočim simbolom, ki pa je lahko tudi prazen (označuje prazno celico). Zapis je mogoč v prazno celico ali v že zapisano celico traku, katere vsebino je naprej potrebno izbrisati in nato na novo zapisati. To je prva pomembna razlika, saj skladovni avtomat ne omogoča sprememb vsebine traku. Dodatno je nadgrajena bralna glava, pri kateri je omogočeno premikanje levo in desno in ne samo v eno smer. Turingov stroj v enem koraku procesiranja opravi branje simbola, spremembo stanja, brisanje oziroma zapis simbola v trenutno dostopno celico ter nazadnje premik bralne glave za eno celico levo ali desno (če je bralna glava na začetku in se bralna glava premakne v levo, tedaj Turingov stroj očitno ne more premakniti bralne glave, zato preneha s procesiranjem zmrzne ). Množica končnih stanj obsega dve posebni stanji stanje q sprejmi in stanje q zavrni. Turingov stroj razpozna vhodno besedo w Σ, če obstane v q sprejmi. Množici besed, ki jih dani Turingov stroj sprejme, pravimo jezik Turingovega stroja. Turingov stroj je formalno definiran kot urejena sedmerica pri čemer je: Q množica stanj, M T S = (Q, Σ, Γ, δ, q 0, q sprejmi, q zavrni ), Σ abeceda vhodne besede, ki ne vsebuje praznega simbola (označimo ga z ), Γ abeceda traku, ki vsebuje prazni simbol, pri čemer je abeceda vhodne besede Σ njegova podmnožica, torej Γ in Σ Γ \ { }, q 0 Q začetno stanje, q sprejmi končno stanje, q zavrni zavrnitveno stanje, pri čemer mora veljati q zavrni q sprejmi, δ : Q Γ Q {q sprejmi, q zavrni } Γ {L, R} funkcija prehodov med stanji. Oglejmo si pojem trenutni opis procesiranja Turingovega stroja. Trenutni opis je zapis v obliki besede, ki jo zapišemo na naslednji način: besedi, ki je trenutno zapisana na traku, dodamo stanje natanko pred simbol, ki je procesiran v naslednjem koraku. Na primer, če imamo vhodno besedo in začetno stanje q 0, je začetni trenutni opis q , kar pomeni, da pri stanju q 0 prebere simbol 0. Trenutni opis 010q 3 01 pa predstavlja neki korak procesiranja, kjer v stanju q 3 preberemo simbol 0. Z zaporedjem trenutnih opisov procesiranja Turingovega stroja lahko zapišemo vsak korak procesiranja Turingovega stroja. Zaporedje trenutnih opisov je končno, če se Turingov stroj ustavi bodisi v stanju q sprejmi bodisi q zavrni. Posamezne korake zaporedja trenutnih opisov ločimo s simbolom #. 8

19 Kot končne in skladovne avtomate lahko tudi Turingove stroje lažje predstavimo v grafični obliki, za katero veljajo podobni dogovorjeni grafični elementi, kot smo jih spoznali v prejšnjih podpoglavjih. Razlika je pri oznaki nad usmerjeno povezavo, ki se sestoji iz treh simbolov: prvi predstavlja prebrani simbol s traku, drugi zapis simbola, tretji pa predstavlja simbol, ki pove smer premika bralne glave. Zgled 3. Na sliki 2.3 je prikazan diagram Turingovega stroja, ki sprejme natanko besede regularnega jezika, ki ga opišemo z regularnim izrazom Slika 2.3: Turingov stroj, predstavljen z diagramom. Na diagramu vsaka puščica 0 /X,R z oznako nad njo ponazarja trenutni prebrani simbol, zapis novega simbola v celico prebranega simbola, smer premika bralne glave in prehod v naslednji trenutni opis v zaporedju. Kot primer procesiranja Turingovega stroja si oglejmo procesiranje vhodne besede Procesiranje zapišimo z zaporedjem trenutnih opisov procesiranja Turingovega stroja: q /X,R Xq /Y,R XY q /Y,R XY Y q /Y,R XY Y Y q /X,R XY Y Y Xq 2 /,R XY Y Y X q sprejmi. Zaporedje trenutnih opisov procesiranja Turingovega stroja nam pove, da tak Turingov stroj sprejme vhodno besedo Turingov stroj ima tri možne izide procesiranja: 1. obstane v končnem stanju q sprejmi ; 2. obstane v zavrnitvenem stanju q zavrni ; 9

20 3. bodisi ne obstane, to je, procesiranje se nadaljuje v neskončnost, bodisi stroj zmrzne. Jezik L je Turingovo razpoznaven, če obstaja Turingov stroj M T S, katerega jezik L(M T S ) je enak jeziku L = L(M T S ). V tem poglavju smo spoznali deterministični Turingov stroj z enim trakom. Poznamo pa še nedeterministični Turingov stroj z enim trakom in Turingov stroj z več trakovi, ki je lahko determinističen ali nedeterminističen. Še več, poznamo tudi Turingove stroje z več trakovi in več glavami, tako deterministične kot nedeterministične, itd., kot je podano z izrekom 4. Dokaz izreka lahko najdemo v literaturi [2, 3, 5]. Izrek 4 Vse omenjene različice Turingovega stroja je možno simulirati z osnovnim determinističnim Turingovim strojem z enim trakom Gödelovo številčenje Turingovih strojev V tem razdelku se bomo posvetili kodiranju in številčenju Turingovih strojev. Turingove stroje smo do sedaj predstavili v obliki tabele ali diagrama. Funkcijo prehodov med stanji pa lahko opišemo tudi z linearnim zapisom Turingovega stroja, ki ga bomo definirali v nadaljevanju. Naj bo M T S Turingov stroj z množico stanj Q {q sprejmi, q zavrni } = {q 0, q 1, q 2,..., q m } in abecedo traku Γ = {S 0 =, S 1, S 2,..., S n }. Prehod δ(q i, S j ) = (S k, A, q l ) lahko zapišemo tudi v obliki urejene peterice prehoda pri čemer je: q i trenutno stanje, S j prebrani simbol, S k na trak zapisan simbol, q i S j S k Aq l, A premik bralne glave levo ali desno (oznaka L pomeni levo, R pa desno), q l naslednje stanje. Na množici vseh peteric prehodov vpeljemo linearno relacijo leksikografske ureditve: q i S j S k Aq l < q i S j S k Aq l, če je i < i ali i = i in j < j. Linearni zapis Turingovega stroja M T S peterice zapišemo eno za drugo v skladu z dano leksikografsko ureditvijo. dobimo, če vse Zgled 4. Na sliki 2.3 je prikazan Turingov stroj, ki sprejme besede regularnega jezika Linearni zapis tega Turingova stroja je naslednji: q 0 Rq 4 q 0 0XRq 1 q 0 11Rq 4 q 1 Rq 4 q 1 0XRq 2 q 1 1Y Rq 1 q 2 Rq 5 q 2 00Rq 4 q 2 11Rq 4. Stanje q 4 predstavlja stanje q zavrni, stanje q 5 pa stanje q sprejmi. 10

21 Z vpeljavo linearnega zapisa Turingovega stroja se lahko lotimo kodiranja Turingovega stroja. To bomo naredili s tako imenovanimi Gödelovimi števili, ki temeljijo na praštevilih. Najprej praštevila oštevilčimo in sicer p 0 = 2, p 1 = 3, p 2 = 5,... Nato zakodiramo vsak sestavni del peterice. Naj bo gn(l) = 2 gn(r) = 3 gn(q i ) = p 2+2i ; i = 0, 1, 2..., m gn(s j ) = p 2+2j+1 ; j = 0, 1, 2,..., n. Kako lahko zakodiramo celotno peterico prehoda F = q i S j S k Aq l? Na naslednji način: gn(f ) = 2 gn(q i) 3 gn(s j) 5 gn(s k) 7 gn(a) 11 gn(q l). Če je F 0 F 1... F k linearni zapis Turingovega stroja M T S, ga zakodiramo takole gn(m T S ) = 2 gn(f 0) 3 gn(f 1) 5 gn(f 2) p gn(f k) k. Številu gn(m T S ) pravimo Gödelovo število Turingovega stroja M T S ali tudi koda Turingovega stroja M T S. Potrebno je opozoriti, da vsako naravno število ni nujno veljavna koda kakšnega Turingovega stroja. V primeru, ko imamo podano naravno število gn(m T S ) za katerega vemo, da je veljavna koda nekega Turingovega stroja, lahko linearni zapis enolično dekodiramo na naslednji način: najprej naredimo praštevilsko faktorizacijo števila gn(m T S ), nato pa ponovno na potencah gn(f i ). Tako dobimo zakodirane peterice prehodov, ki jih seveda lahko razberemo (označimo z gn 1 (M T S )). Če pa dano naravno število ni veljavna koda, kot smo omenili zgoraj, potem posebej definiramo, da je to koda praznega Turingovega stroja, ki ima prazno funkcijo prehodov med stanji. Z Gödelovimi števili lahko Turingove stroje oštevilčimo: i-ti Turingov stroj M i definiramo kot { M T S ; če je gn 1 (i) veljavna koda nekega Turingovega stroja M T S, M i = M ; v vseh drugih primerih, kjer M označuje Turingov stroj s prazno funkcijo prehodov med stanji. naravnemu številu pripada natanko en Turingov stroj. Torej vsakemu V naslednjem podpoglavju bomo spoznali omejeni Turingov stroj, imenovan linearno omejeni avtomat. 2.4 Linearno omejeni avtomat Pomembna omejena varianta Turingovega stroja je linearno omejeni avtomat, ki ga bomo spoznali v tem podpoglavju. Linearno omejeni avtomat je posebna oblika Turingovega stroja. Vsebuje vse sestavne dele Turingovega stroja, vendar pa trak ni več neomejen, ampak je omejen na interval, zamejen s posebnim levim in desnim končnim znakom na traku. 11

22 Bralna glava se tako ne more premikati izven intervala, ki ga ta dva posebna znaka določata. Jezike linearno omejenih avtomatov bolj pregledno opišemo s kontekstno odvisnimi gramatikami. Taka gramatika je definirana podobno kot kontekstno neodvisna gramatika, torej kot urejena četverica (V, Σ, R, S), z nekaj razlikami: 1. Kontekstno odvisna gramatika lahko vsebuje več kot en simbol na levi strani pravila izpeljave (pri čemer mora biti vsaj en simbol spremenljivka), torej αaβ αγβ, kjer je A V, α, β (V Σ) in γ (V Σ) \ ε. 2. Število znakov na levi strani ne sme biti večje kot na desni strani. 3. Ne dopuščamo pravila A ε, razen v primeru, ko je A začetna spremenljivka, ki se nikoli ne pojavi na desni strani kakega pravila. Zaradi oblike leve strani v pravilih lahko neformalno rečemo, da je pri izpeljavi pomemben kontekst podniz levo in desno od spremenljivke. Jezikom, ki jih definirajo kontekstno odvisne gramatike, rečemo kontekstno odvisni jeziki. Kontekstne neodvisne gramatike in linearno omejeni avtomati generirajo isti razred jezikov, kot je zapisano v izreku 5. Dokaz je v literaturi [2, 3, 5]. Izrek 5 Za vsak kontekstno odvisen jezik obstaja linearno omejeni avtomat, ki sprejme natanko ta jezik. Obratno, za vsak jezik linearno omejenega avtomata obstaja kontekstno odvisna gramatika, katere jezik je natanko jezik danega linearno omejenega avtomata. 2.5 Hierarhija Hierarhija jezikov (in pripadajočih avtomatov), ki jo je prvi opisal Noam Chomsky [10] leta 1958, je prikazana na sliki 2.4. Slika 2.4: Hierarhija jezikov in pripadajoči avtomati. V skladu s to hierarhijo razdelimo Turingovo razpoznavne jezike na 4 razrede: 3. regularni jeziki, 12

23 2. kontekstno neodvisni jeziki, 1. kontekstno odvisni jeziki, 0. Turingovi razpoznavni jeziki. Da gre za hierarhijo, je potrebno upoštevati, da za vsak par indeksov i > j velja, da je i-ti razred jezikov strogo vsebovan v j-tem razredu, kar se da pokazati z izrekom 6. Dokaz lahko najdemo v literaturi [2, 10]. Izrek 6 Razred regularnih jezikov je vsebovan v razredu kontekstno neodvisnih jezikov, ta je vsebovan v razredu kontekstno odvisnih jezikov, le ta pa je vsebovan v razredu Turingovih razpoznavnih jezikih. Ob tem so vse inkluzije stroge. Z drugimi besedami, vsak avtomat lahko simuliramo z bolj kompleksnim avtomatom, obratno pa ni mogoče: Končni avtomat lahko simuliramo s skladovnim avtomatom. Skladovni avtomat lahko simuliramo z linearno omejenim avtomatom. Linearno omejeni avtomat je poseben primer Turingovega stroja. S tem zaključujemo poglavje, v katerem smo spoznali hierarhično razdelitev avtomatov in pripadajočih jezikov. V naslednjem poglavju se bomo posvetili jezikom, ki jih ne sprejme noben avtomat. 13

24 14

25 Poglavje 3 Razpoznavnost in nerazpoznavnost jezikov V prejšnjem poglavju smo opredelili hierarhično razdelitev avtomatov in pripadajočih jezikov. V tem poglavja bomo natančneje spoznali, da obstajajo jeziki, ki jih ne sprejme noben avtomat. Takim jezikom pravimo Turingovi nerazpoznavni jeziki. Skonstruirali bomo tudi konkreten primer takega jezika. Pri tem se bomo oprli na literaturo [2, 3, 11]. Izrek 7 Nad vsako abecedo obstaja jezik, ki ni Turingovo razpoznavnen. Dokaz: Ker lahko Turingove stroje nad dano abecedo Σ oštevilčimo, jih je števno mnogo. Torej je tudi Turingovo razpoznavnih jezikov nad abecedo Σ števno mnogo. Vseh jezikov nad abecedo Σ pa je neštevno mnogo, saj je to potenčna množica množice vseh besed Σ. Po Cantorjevem izreku je moč množice 2 Σ večja od moči množice Σ. V nadaljevanju si bomo ogledali primer Turingovo nerazpoznavnega jezika. Za lažje razumevanje se najprej seznanimo z metodo diagonalizacije, ki jo je leta 1891 Georg Cantor uporabil pri dokazu, da je množica realnih števil neštevno neskončna [11]. Ponovimo nekaj osnov iz teorije množic. Denimo, da imamo množici A in B in funkcijo f : A B, ki preslika elemente iz množice A v množico B. Funkcija f je injektivna natanko tedaj, če vsak par različnih elementov a b iz množice A preslika v par različnih elementov f(a) f(b) v množici B. V primeru, ko za funkcijo f velja, da za vsak element iz množice B obstaja element iz A, za katerega velja f(a) = b, pravimo, da je surjektivna. Za funkcijo f, ki je injektivna in surjektivna pravimo, da je bijektivna. Pri taki preslikavi ima vsak element iz A natanko določeno sliko v B in vsak element iz B je slika natanko enega elementa iz A. V tem primeru rečemo, da imata množici A in B enako moč. Množica A je števna natanko tedaj, ko je končna, ali pa obstaja bijektivna preslikava iz množice A na množico naravnih števil N. Ne preveč zapleteno lahko pokažemo, da med množicama naravnih števil N in množico racionalnih števil Q obstaja bijekcija, kar pomeni, da je množica racionalnih števil Q števna (za dokaz glej [3]). Zanima nas, kaj lahko povemo o števnosti množice realnih števil R. V ta namen si oglejmo spodnji izrek. Izrek 8 Množica realnih števil R je neštevna [11]. 15

26 Dokaz: Ker obstaja bijektivna preslikava R (0, 1), na primer 1 arctgx + 1, je dovolj π 2 pokazati, da ne obstaja bijektivna preslikava med množico naravnih števil N in intervalom (0, 1). Recimo, da obstaja bijektivna preslikava f med N in intervalom (0, 1). Ker lahko vsako realno število x na intervalu (0, 1) zapišemo v obliki x = 0, d 1 d 2 d 3..., kjer d i zavzemajo cele vrednosti med 0 in 9, lahko f predstavimo v naslednji obliki n f(n) 1 0, d 11 d 12 d 13 d , d 21 d 22 d 23 d , d 31 d 32 d 33 d , d 41 d 42 d 43 d Skonstruirajmo realno število x = 0, x 1 x 2 x 3 x 4..., da velja x n d nn (pri čemer izbiramo take vrednosti za x n, da niso vse decimalke 0 ali 9). Povedano drugače, decimalka x n ne zavzame vrednosti n-te decimalne števke realnega števila f(n). To so natanko vrednosti decimalnih mest na diagonali. n f(n) 1 0, d 11 d 12 d 13 d , d 21 d 22 d 23 d , d 31 d 32 d 33 d , d 41 d 42 d 43 d Kaj lahko povemo o številu x? Število x je realno število na intervalu (0, 1), vendar ni vsebovano v sliki preslikave f, saj za vsak n N velja, da se f(n) in x razlikujeta na n-tem decimalnem mestu. Torej f ni surjektivna preslikava, kar je v protislovju s predpostavko. Torej je množica (0, 1) neštevna. Potem pa je tudi množica realnih števil R neštevna. Z uporabo zelo podobnega diagonalnega principa lahko konstruiramo konkreten primer jezika nad poljubno dano abecedo, ki ni Turingovo razpoznaven. Naj bo Σ poljubno dana končna abeceda. Simbole abecede Σ najprej poljubno oštevilčimo, nato pa vse besede w iz Σ leksikografsko uredimo v skladu z začetnim oštevilčenjem simbolov v abecedi Σ. Ker je besed dolžine k končno mnogo, to je Σ k, lahko vse besede nad abecedo Σ oštevilčimo z naravnimi števili: w = w i, kjer je i = ln(w) leksikografsko število besede w. Kot smo spoznali v razdelku 2.3.1, lahko Turingove stroje oštevilčimo z uporabo Gödelovih števil. Procesiranje i-tega Turingovega stroja M i lahko opišemo s karakterističnim vektorjem jezika, ki pove, katere besede ta Turingov stroj sprejme in katere ne. Vse te karakteristične vektorje po vrsticah zložimo v tabelo (glej tabelo 3.1). V i-ti vrstici najdemo karakteristični vektor jezika, ki pove, katere besede sprejme Turingov stroj M i. Če je M i = M Turingov stroj, ki sprejme prazen jezik, karakteristični vektor sestavljajo le vrednosti NE. Skonstruirajmo tedaj diagonalni jezik: L D = {w i w i / L(M i )}. 16..

27 M 1 M 2 Tabela 3.1: Tabela karakterističnih vektorjev. w 1 w 2 w 3 w M i DA DA NE DA... karakteristični vektor jezika L(M i ). M j NE NE NE NE... karakteristični vektor jezika L(M ) =. Izrek 9 Diagonalni jezik L D ni Turingovo razpoznaven. Dokaz: Predpostavimo, da je L D jezik nekega Turingovega stroja. Potem je L D = L(M i ) za neki i. Zato se ta jezik ujema s karakterističnim vektorjem jezika v i-ti vrstici v tabeli 3.1. Vendar: če se na i-tem diagonalnem mestu v i-ti vrstici najde DA, to je w i L(M i ), potem je w i / L D po definiciji diagonalnega jezika L D ; če pa je v i-ti vrstici NE, to je w i / L(M i ), potem je w i L D po definiciji diagonalnega jezika L D. Sledi, da veljata naslednji implikaciji w i L(M i ) w i / L D w i / L(M i ) w i L D. Ob predpostavki, da je L D = L(M i ), sledi, da sta implikaciji w i L D w i / L D w i / L D w i L D hkrati izpolnjeni. To pa je očitno protislovje. Za vsako izjavo A velja (A A) ( A A) 0. Zato je predpostavka L D = L(M i ) napačna. Diagonalni jezik tako ni Turingovo razpoznaven. V nadaljevanju se bomo posvetili pomembnemu vprašanju, kdaj je kak jezik, ki ga sprejme nek Turingov stroj, odločljiv in kdaj ne. 17

28 18

29 Poglavje 4 Odločljivost in neodločljivost jezikov Glede na izid procesiranja lahko Turingovo razpoznavne jezike nad dano abecedo Σ razdelimo bolj natančno. V tem poglavju izhajamo iz literature [2, 3, 4]. Poseben podrazred Turingovo razpozavnih jezikov tvorijo Turingovo odločljivi jeziki: to so jeziki, za katere obstaja tak Turingov stroj, ki ne glede na vhodno besedo vedno konča procesiranje bodisi v stanju q sprejmi, če je vhodna beseda vsebovana v jeziku Turingovega stroja, bodisi v stanju q zavrni, če vhodna beseda ni vsebovana. Pri Turingovih razpoznavnih jezikih, ki niso odločljivi, gre za jezike, ki jih prepozna neki Turingov stroj, vendar se pri vhodni besedi, ki ne pripada jeziku Turingovega stroja, procesiranje končna bodisi v stanju q zavrni bodisi ne obstane. To pomeni, da ni mogoče odločiti, ali vhodna beseda pripada jeziku ali ne: če stroj ne obstane, ne vemo, ali ne obstane, ker besede ni v jeziku Turingovega stroja, ali pa ne obstane, ker ni dovolj dolgo procesiral. Ali je razred Turingovo razpozavnih jezikov kar enak razredu Turingovo odločljivih jezikov? Z drugimi besedami, ali lahko za vsak jezik, ki ga razpozna neki Turingov stroj, oblikujemo tak Turingov stroj, ki se bo vedno ustavil in ki bo razpoznal prav ta jezik? Če je to res, bi to pomenilo, da je vsak jezik algoritmično razpoznaven. A to ni res. V nadaljevanju bomo spoznali, da obstajajo Turingovo razpoznavni, vendar neodločljivi jeziki. V ta namen si oglejmo izreka 10 in 11. Izrek 10 Če je jezik L nad dano abecedo Σ odločljiv, je njegov komplement L tudi odločljiv. Dokaz: Naj bo L Turingovo odločljiv jezik, to je, naj zanj obstaja tak Turingov stroj M L, da se procesiranje vhodne besede konča bodisi v stanju q sprejmi, če je vhodna beseda vsebovana v jeziku Turingovega stroja, bodisi v stanju q zavrni, če vhodna beseda ni vsebovana v jeziku Turingovega stroja. Za jezik L lahko sedaj konstruiramo Turingov stroj M L, ki najprej preda vhodno besedo w v procesiranje stroju M L ; končni izid procesiranja stroja M L pa je naslednji: za w L se M L ustavi v stanju q zavrni, za w / L pa v stanju q sprejmi. Ker se Turingov stroj M L vedno ustavi, se ustavi tudi M L, kar pomeni, da je jezik L odločljiv. Dokaz je shematično je prikazan na sliki 4.1. Izrek 11 Jezik L nad dano abecedo Σ je odločljiv natanko takrat, ko sta L in njegov komplement L Turingovo razpoznavna. Dokaz: Pokažimo v obe smeri. Naj bo jezik L odločljiv. Po izreku 10 je tudi L odločljiv. Ker je vsak Turingovo odločljiv jezik Turingovo razpoznaven, sta tudi L in L Turingovo 19

30 Slika 4.1: Če je jezik L odločljiv, je njegov komplement L tudi odločljiv. razpoznavna. Sedaj pa predpostavimo, da sta jezika L in L Turingovo razpoznavna. Potem obstajata Turingova stroja M L in M L, za katera velja, da je L = L(M L ) in L = L(M L ). Za jezik L oblikujmo Turingov stroj M z dvema trakovoma. Prvi trak je namenjen simulaciji Turingovega stroja M L, drugi pa M L. Turingov stroj M, ki je prikazan na sliki 4.2, deluje na naslednji način: 1. paralelno procesira vhodno besedo w na M L in M L (paralelno procesiranje pomeni, da Turingov stroj M sekvenčno izmenično simulira procesiranje M L in M L na vhodni besedi w); 2. če M L sprejme vhodno besedo, vrni sprejeto; če M L sprejme w, vrni zavrnjeno. Slika 4.2: Turingov stroj M. Pokažimo, da je jezik L odločljiv. Vsaka vhodna beseda w Σ je vsebovana bodisi v L bodisi v L, kar pomeni, da jo razpozna bodisi M L bodisi M L. Ker se Turingov stroj M ne glede na vhodno besedo vedno ustavi in sprejme jezik L, je jezik L odločljiv. Predno preidemo na opis jezika, ki je Turingovo razpoznaven, pa ni odločljiv, si oglejmo koncept univerzalnega Turingovega stroja. 20

31 Univerzalni Turingov stroj U je Turingov stroj z enim trakom nad abecedo Σ = {1} in tračno abecedo Γ = Σ { }, ki kot vhodni podatek dobi dva parametra in zmore simulirati poljuben Turingov stroj na poljubni vhodni besedi. Zaradi enostavnosti obravnave bomo namesto stroja U uporabili ekvivalenten Turingov stroj M U, ki pa ima tri trakove. Na prvi trak Turingov stroj M U dobi celotni vhodni podatek, iz katerega dekodira opis Turingovega stroja, ki ga bo simuliral. Nato je na drugem traku zapisana vhodna beseda za simulirani Turingov stroj. Tretji trak pa je namenjen procesiranju. Spomnimo se, da M i in w i zaporedoma označujeta i-ti Turingov stroj glede na Gödelovo števičenje oziroma i-to besedo nad dano abecedo Σ glede na leksikografsko ureditev. Naj n označuje besedo z n enicami, torej n = } 11 {{ 1 }. n Turingov stroj M U iz vhodne besede m n dekodira opis Turingovega stroja M m in vhodno besedo w n za Turingov stroj M m. Drugi del n prepiše na drugi trak, tretji trak pa je namenjen simuliranju procesiranja stroja M m. Stroj M U sekvenčno bere transformirano vhodno besedo n na drugem traku in simulira delovanje M m v skladu z zakodirano funkcijo prehoda med stanji stroja M m, ki jo razbere iz kode m na prvem traku. Sprememba stanja se zapiše na tretji trak. Izrek 12 pove, da obstajajo jeziki, ki so Turingovo razpoznavni, vendar neodločljivi. Izrek 12 Komplement L D = {w i w i L(M i )} diagonalnega jezika je Turingovo razpoznaven, vendar neodločljiv. Dokaz: Naj bo L D = {w i w i / L(M i )} diagonalni jezik iz izreka 9. Pokažimo, da je njegov komplement L D Turingovo razpoznaven. Natančneje, pokažimo, da univerzalni Turingov stroj sprejme jezik L D = {w i w i L(M i )}. Naj bo w i L D. Turingov stroj M U iz vhodnega podatka i i dekodira opis delovanja M i in nato simulira njegovo delovanje na vhodni besedi w i. Ker je w i L(M i ), se simuliranje ustavi v stanju q sprejmi, v skladu z delovanjem Turingovega stroja M i. Zato je L D Turingovo razpoznaven. Če bi bil L D odločljiv, bi bil po izreku 10 tudi L D odločljiv. Po izreku 9 jezik L D ni niti Turingovo razpoznaven! Protislovje dokazuje, da je L D Turingovo razpoznaven, vendar ni odločljiv. V naslednjem poglavju bomo s pomočjo odločljivih jezikov prešli na odločljive probleme. 21

32 22

33 Poglavje 5 Odločljivost in neodločljivost problemov V prejšnjem poglavju smo pokazali, da obstajajo jeziki, ki so Turingovo razpoznavni, vendar neodločljivi. Posvetimo se znamenitemu konceptu odločljivih oziroma neodločljivih problemov. Predmet obravnave bodo tako imenovani odločljivostni problemi, to so problemi, na katere lahko odgovorimo bodisi z da bodisi z ne. V celotnem poglavju sledimo literaturi [1, 3, 4, 12]. Problem je splošno vprašanje, ki se nanaša na vse mogoče konkretne primere; recimo, ali je poljubna gramatika dvoumna. Konkretna instanca tega problema pa je vprašanje, ali je dana kontekstno odvisna gramatika dvoumna. Vsako konkretno vprašanje iz danega splošnega problema lahko zakodiramo kot besedo nad abecedo Σ. Splošni problem torej ustreza nekemu jeziku nad abecedo Σ. Temu jeziku rečemo korespodenčni jezik problema. Če je korespodenčni jezik odločljiv, potem rečemo, da je problem odločljiv; drugače pa je neodločljiv. Z drugimi besedami: problem je algoritmično rešljiv, če je korespodenčni jezik problema algoritmično razpoznaven, to je Turingovo odločljiv. 5.1 Problem zaustavitve Turingovega stroja Posvetimo se najprej temeljnemu neodločljivemu problemu, ki se nanaša na Turingove stroje same, problemu zaustavitve Turingovega stroja. Zanima nas, ali je za vsak Turingov stroj nad dano abecedo Σ in poljubni vhodni podatek možno algoritmično ugotoviti, če se ta Turingov stroj ustavi. Zanima nas torej, ali obstaja algoritem (Turingov stroj, ki se vedno ustavi), ki razpozna korespodenčni jezik tega problema. Preden nadaljujemo, vpeljimo pojem Turingovo izračunljive funkcije. Funkcija f : N N je Turingovo izračunljiva, če jo je mogoče v končnem številu korakov izračunati na kakem Turingovem stroju M nad abecedo {1}, oziroma pri vhodni besedi n, ki predstavlja vrednost n, se M ustavi in vrne vrednost f(n), ki predstavlja vrednost f(n). Podobno definiramo Turingovo izračunljive funkcije večih spremenljivk. Izrek 13 Problem zaustavitve Turingovega stroja je neodločljiv. Dokaz: Predpostavimo, da nad abecedo Σ obstaja tak Turingov stroj H, ki zmore algoritmično preveriti, ali se vsak Turingov stroj M = M m, m = gn(m), na poljubni dani 23

34 vhodni besedi w Σ, w = w i, i = ln(w), ustavi ali ne. Tak Turingov stroj H bomo simulirali z univerzalnim Turingovim strojem H U, ki izračuna funkcijo h: N N N, dano s predpisom { 1; če se Turingov stroj M m ustavi na vhodni besedi w n, h(m, n) = 2; v vseh drugih primerih. To pomeni, da univerzalni Turingov stroj H U dobi kot vhodni podatek m n, na koncu pa na traku ostane 1, če se Turingov stroj M m ustavi na vhodni besedi w n in 2 v vseh drugih primerih. Obstoj takega Turingovega stroja pomeni natanko to, da je problem zaustavitve Turingovega stroja algoritmično rešljiv. Konstruirajmo še dva Turingova stroja D in F. Turingov stroj D nad abecedo Σ = {1} pri vhodni besedi j kot rezultat procesiranja vrne (podvojeno) besedo j j, zapisano na traku Turingovega stroja. Ena od možnih realizacij takšnega Turingovega stroja D je prikazana na sliki 5.1. Slika 5.1: Primer realizacije Turingovega stroja D. Turingov stroj F nad abecedo Σ = {1} pa deluje takole: pri vhodni besedi 1, se ne ustavi; pri vhodni besedi 2, se ustavi (ustavi se tudi pri vhodni besedi n za n > 2). Tak Turingov stroj F je predstavljen na sliki 5.2. Slika 5.2: Primer realizacije Turingovega stroja F. 24

35 Slika 5.3: Turingov stroj P. Iz Turingovih strojev H U, D in F sedaj lahko sestavimo Turingov stroj P, ki je prikazan na sliki 5.3. Kako torej deluje Turingov stroj P? Pri vhodni besedi j Turingov stroj D naprej podvoji vhodno besedo in pripravi vhodno besedo j j za Turingov stroj H U. Glede na dani rezultat stroja H U se nato Turingov stroj F bodisi ustavi bodisi ne, Turingov stroj P pa se tudi bodisi ne ustavi bodisi ustavi. Če povzamemo, Turingov stroj P pri vhodni besedi j deluje na naslednji način: če je H U vrnil rezultat 1, se stroj P ne ustavi; če je H U vrnil rezultat 2, se stroj P ustavi. Ker je P Turingov stroj, ga lahko zakodiramo in oštevilčimo. Naj bo P = M p, torej je njegova koda gn(p ) = p. Če Turingov stroj P poženemo pri vhodni besedi p, imamo dva možna izida: Če je h(p, p) = 1, se po definciji Turingov stroj P na vhodni besedi w p ustavi. To pomeni, da je H U vrnil rezultat 1. Vendar se zaradi delovanja stroja F Turingov stroj P ne ustavi. Protislovje. Če je h(p, p) = 2, se Turingov stroj P na vhodni besedi w p ne ustavi (ali pa zmrzne ). To pomeni, da je H U vrnil rezultat 2. Vendar se zaradi delovanja stroja F stroj P na vhodni besedi w p zagotovo ustavi. Protislovje. Turingov stroj P je očitno protisloven, zato ne obstaja. Ker obstajata Turingova stroja D in F, stroj P obstaja natanko tedaj, ko obstaja stroj H U. Ker stroj P ne obstaja, ne obstaja niti H U. To pomeni, da ne obstaja tak Turingov stroj, ki bi ugotovil, ali se poljuben Turingov stroj pri poljubni vhodni besedi ustavi ali ne. V nadaljevanju si bomo ogledali zanimiv neodločljiv problem, imenovan Postov korespodenčni problem. 25

36 26

37 Poglavje 6 Postov korespondenčni problem Pomemben naraven matematični problem je Postov korespodenčni problem, ki je povezan z manipulacijo besed nad dano abecedo. Ta problem je prvi opisal Emil L. Post leta 1946 in pokazal, da je neodločljiv [13]. Ta problem zaposluje zadnjih 60 let veliko raziskovalcev. Z različnimi metodami in strategijami iščejo rešitve za konkretne primere Postovega korespodenčnega problema, kljub temu, da je ta problem v splošnem neodločljiv. Postov korespondenčni problem najdemo v veliko učbenikih kot uvodni zgled neodločljivega problema. V tem poglavju se opiramo na literaturo [2, 3, 5, 13]. Postov korespodenčni problem: Za poljubno dana seznama x = [x 1, x 2, x 3,..., x n ] in y = [y 1, y 2, y 3,..., y n ] besed nad neko abecedo poišči tako zaporedje indeksov i 1, i 2,..., i k beseda x i1 x i2... x ik enaka besedi y i1 y i2... y ik. za neki k N, da bo Formulirajmo ta problem še drugače: dana je množica sklopov { [x1 ] [ ] [ ] } x2 xn M P KP =,,..., y 1 kjer vsak sklop sestavljata zgornja in spodnja beseda. Poiskati je potrebno tako zaporedje sklopov, da je celotna zgornja beseda enaka spodnji besedi. Rešitev je vsako zaporedje s to lastnostjo; tako zaporedje označimo z M P KP. Postov korespondenčni problem torej na kratko zapišemo P KP = { M P KP M P KP }. Oglejmo si dva konkretna zgleda. Zgled 5. Imamo dano množico sklopov { [ ] [ 1 111, ] [ 10, 10 ] 0 }. V tem konkretnem primeru je rešitev Postovega korespodenčnega problema podana z zaporedjem sklopov [ ] [ ] [ ] [ ] , y 2 y n saj je zgornja beseda enaka spodnji besedi. 27

38 Zgled 6. Imamo dano množico sklopov { [ ] [ , 011 ] [ 11, ] }. Najprej moramo določiti začetni sklop zaporedja. Sklopa [ ] [ in ] ne ustrezata, saj se razlikujeta že v prvem simbolu. V našem primeru se iskana rešitev začne le s sklopom [ ]. V naslednjem koraku imamo tri možne izbire, ki tvorijo naslednje zgornje in spodnje besede: , in Lahko vidimo, da ustreza le tretja možnost, ki tvori besedi in je sestavljena iz zaporedja sklopov [ ] [ ]. Prva možnost se razlikuje v četrtem simbolu, druga možnost pa v tretjem simbolu. Potrebno je poudariti, da se po trenutni izbiri zaporedja sklopov zgornja in spodnja beseda razlikujeta po dolžini zgornja beseda je za en simbol krajša kot spodnja Ponovno imamo tri možne izbire sklopov: možnost, ki je sestavljena iz sklopov [ ] [ ] [ , ] in Ustrezna je zadnja Pri naslednjem in nadaljnih korakih bi ponovno izbrali sklop [ ], druge možnosti ne pridejo v poštev. To pomeni, da je za dano množico domnevna rešitev zaporedje sklopov [ ] [ ] [ ] [ ] [ ]... Kot lahko vidimo, domnevna rešitev ni ustrezna, saj se besedi razlikujeta po številu znakov. Za dano množico { [ ] [ , 011 ] [ 11, ] } torej rešitev ne obstaja. Definirajmo še tako imenovani omejeni Postov korespodenčni problem. 28

39 Omejeni Postov korespodenčni problem: [ To je Postov korespondenčni problem, kjer x se vsaka rešitev začne s prvim sklopom 1 y 1 ]. Množico sklopov, kjer že s samim zapisom nakažemo, da iščemo le take rešitve, označimo z { [x1 ] [ ] [ ] } M P x2 xk KP = ;,...,. y 1 y 2 y k S simbolom ; ustrezno označimo začetni sklop iskane rešitve. Omejeni Postov korespodenčni problem na kratko zapišemo P KP = { M P KP M P KP }. V dokazu, da je Postov korespodenčni problem neodločljiv, bomo potrebovali naslednji lemi. Lema 1 Če obstaja algoritem za Postov korespodenčni problem, potem obstaja tudi algoritem za omejeni Postov korespodenčni problem. Dokaz: Pokazati moramo, da lahko poljubnemu omejenemu Postovemu korespodenčnemu problemu priredimo tak Postov korespodenčni problem, da ima ta prirejeni Postov korespodenčni problem rešitev natanko takrat, ko ima rešitev tudi omejeni Postov korespodenčni problem. To naredimo takole. { [ ] [ ] [ ] } Naj bo M P KP = x 1 x y 1 ; 2 x y 2,..., k y k množica sklopov za omejeni Postov korespodenčni problem. Definirajmo množico sklopov za prirejeni Postov korespodenčni problem { [ ] [ ] [ ] [ ] } x1 x2 xk M P KP =,,...,,. y 1 y 2 y k Dodani sklop [ ] je v rešitvi vedno zadnji sklop, saj z njim uravnamo število znakov. Tu gre res za splošni Postov korespondenčni problem, saj se ne zahteva, da naj se iskana rešitev začne z začetnim oziroma prvim sklopom. Lahko pa[ uvidimo, ] da se rešitev za množico sklopov M P KP zagotovo začne s prvim sklopom, torej 1 x y 1, saj je to edini sklop, pri katerem se prvi črki zgornje in spodnje besede ne razlikujeta. [ ] [ ] [ ] x Naj bo i1 x i2 x y i1 y i2... il y il rešitev za omejeni Postov korespodenčni problem. Potem je ] [ xi1 y i1 ] [ xi2 y i2 ]... [ xil y il ] [ rešitev za prirejeni Postov korespodenčni problem, saj iz lastnosti x i1 x i2... x il = y i1 y i2... y il sledi x i1 x i2... x il = y i1 y i2... y il. Obratno je tudi očitno res: pri iskanju rešitve za prirejeni Postov korespodenčni problem ne zahtevamo, da se zaporedje sklopov začne s prvim sklopom; vendar pa, kot smo že omenili, se vsaka rešitev mora začeti s prvim sklopom kar pa je natanko omejeni Postov korespodenčni problem. S tem smo pokazali pretvorbo omejenega Postovega korespodenčnega problema na Postov korespodenčni problem. 29

40 Lema 2 Za vsak Turingov stroj M in vsako vhodno besedo w obstaja tak omejeni Postov korespondenčni problem P KP (M, w), da velja naslednje: w L(M) natanko takrat, ko obstaja rešitev za P KP (M, w). Dokaz: Prirejeni omejeni Postov korespodenčni problem P KP (M, w) konstruiramo preko zaporedja trenutnih opisov procesiranja Turingovega stroja M pri vhodni besedi w. Vsak sklop iz M P KP (M, w) je sestavljen tako, da zgornja beseda predstavlja trenutni opis stroja M, spodnja beseda pa naslednji trenutni opis procesiranja. V rešitvi nam zgornje in spodnje zaporedje besed opiše delovanje Turingovega stroja M pri procesiranju vhodne besede w. Naj bo M = (Q, Σ, Γ, δ, q 0, q sprejmi, q zavrni ) poljubno dani Turingov stroj. Konstruirajmo konkreteno rešitev M P KP (M, w) prirejenega problema P KP (M, w) z lastnostjo, da ima le-ta rešitev, če in samo če Turingov stroj M sprejme vhodno besedo w = w 1 w 2 w 3... w n. Sklopi za omejeni Postov korespodenčni problem, ki so lokalni opisi trenutnega procesiranja Turingovega stroja M, so naslednji (zaradi enostavnosti uporabimo krajšo oznako M P KP = M P KP (M, w)): 1. [ x 1 y 1 ] = [ # #q 0 w 1 w 2 w 3...w n ] M P KP ; 2. [ qa br ] M P KP za a, b Γ in q, r Q, kjer je q q zavrni in δ(q, a) = (r, b, R); 3. [ cqa rcb ] M P KP za a, b, c Γ in q, r Q, kjer je q q zavrni in δ(q, a) = (r, b, L); 4. [ a a] M P KP za a Γ; [ # # ] M P KP in [ # # ] M P KP ; [ ] [ ] a qsprejmi q sprejmi M P KP in qsprejmi a q sprejmi M P KP [ qsprejmi ## # ] M P KP. za a Γ; Denimo, da je w L(M). Potem obstaja končno zaporedje trenutnih opisov procesiranja Turingovega stroja M #q 0 w 1 w 2 w n # #q sprejmi #. Pokažimo, da lahko to zaporedje razdelamo na zaporedje zaporednih parov (trenutno stanje, naslednje stanje), pri čemer je prvi par (#, začetno stanje). Za vsak tak par na naraven način priredimo sklop, ki ima eno izmed sedmih zgoraj naštetih oblik. Tako definirano zaporedje sklopov je natanko rešitev omejenega Postovega korespodenčnega problema P KP (M, w). Obratno, če tako zaporedje sklopov obstaja, potem zaporedje zgornjih besed predstavlja legitimno zaporedje trenutnih opisov procesiranja Turingovega stroja od začetnega do končnega stanja, ko M sprejme w. 30

41 Zgled 7. Za lažje razumevanje si oglejmo konkretni zgled. Naj bo M Turingov stroj nad abecedo Σ = {0, 1, 2}, pri čemer je abeceda traku Γ = Σ { }, funkcija prehodov med nekaterimi stanji pa je definirana na naslednji način: δ(q 0, 0) = (q 1, 1, R), δ(q 1, 1) = (q 2, 2, R), δ(q 2, 1) = δ(q 3, 2, L). Oglejmo si delno konstrukcijo rešitve Postovega korespodenčnega problema, če[ za vhodno ] besedo Turingovega stroja M vzamemo w = V M P KP po 1. točki dodamo #, saj #q # je začetna konfiguracija q To pomeni, [ da v naslednjem koraku sledi prehod δ(q 0, 0) = (q 1, 1, R) in v M P KP dodamo sklop q0 0 1q 1 ]. Da dobimo ujemanje zgornje in spodnje besede po 4. in 5. točki, v množico M P KP dodamo še sklope Torej sta trenutni besedi [ ] 0, 0 [ ] 1, 1 [ 2 2 ] [ ], [ ] # # in #q # #q #1q 1 110#. [ ] #. # V naslednjem koraku procesiranja imamo trenutni opis #1q 1 110#, torej prehod δ(q 1, 1) = (q 2, 2, R). Podobno kot prej po 2. točki dodamo v M P KP sklop [ q1 1 2q 2 ]. Za popolno ujemanje zgornje in spodnje besede uporabimo še sklope iz 4. in 5. točke, torej #q #1q 1 110# #q #1q 1 110#12q 2 10#. Sledi, da v stanju q 2 stroj M prebere simbol 1, kar pomeni, da naredi prehod v stanje q 3, zapiše simbol 2 in premakne glavo v levo; δ(q 2, 1) = δ(q 3, 2, L). Po 3. točki, glede na prehod, dodamo naslednje sklope: [ ] [ ] [ ] 0q2 1 1q2 1 2q2 1,,, q 3 02 q 3 12 q 3 22 V našem primeru bomo uporabili sklop [ q2 1 q 3 2 ]. [ ] 2q2 1 q 3 22 in tako dobimo ujemanje #q #1q 1 110#12q 2 10# #q #1q 1 110#12q 2 10#1q 3 220#. Kot smo lahko opazili, je zgornja beseda vedno za en trenutni opis krajša kot spodnja. Ko Turingov stroj M preide v končno stanje q sprejmi, to popravimo. Zaključek procesiranja in iskanja ujemanja si oglejmo na konkretnem primeru # #02q sprejmi 11#. 31

42 [ ] [ ] a qsprejmi qsprejmi a Po 6. točki, za vsak simbol a Γ dodamo q sprejmi in q sprejmi v M P KP. V [ primeru ] # #02q sprejmi 11 to pomeni, da v naslednjem koraku procesiranja dodamo sklop qsprejmi 1 q sprejmi in za ustrezno ujemanje zapolnimo s sklopi iz 4., 5. in 6. točke. Trenutna konfiguracija procesiranja je torej #02q sprejmi 11# #02q sprejmi 11#02q sprejmi 1#. Na tak način korak za korakom v zgornji besedi dodamo en simbol več kot v spodnji. Tako procesiranje izvajamo toliko časa, da se v spodnji konfiguraciji zaporedje konča le s q sprejmi #: #02q sprejmi 11#02q sprejmi 1# # #02q sprejmi 11#02q sprejmi 1#02q sprejmi # #q sprejmi #. [ ] qsprejmi ## Za zaključek procesiranja po 7. točki dodamo sklop # in procesiranje zaključimo, oziroma najdemo ustrezno rešitev za omejeni Postov korespodenčni problem, #q sprejmi## #q sprejmi ##. Podrobneje smo spoznali, kako ob procesiranju Turingovega stroja M pri vhodni besedi w zgradimo konkreten primer rešitve za omejeni Postov korespodenčni problem. Po lemi 1 pa vemo: če najdemo rešitev za omejeni Postov korespodenčni problem, obstaja tudi rešitev za Postov korespodenčni problem. Izrek 14 Postov korespodenčni problem je neodločljiv. Dokaz: Trditev pokažemo tako, da kak znani neodločljivi problem prevedemo na Postov korespodenčni problem. Po lemi 2 problem zaustavitve Turingovega stroja prevedemo na omejeni Postov korespodenčni problem, le-tega pa po lemi 1 prevedemo na Postov korespodenčni problem. Če bi bil Postov korespodenčni problem odločljiv, bi bil odločljiv tudi omejeni Postov korespodenčni problem, s tem pa bi bil odločljiv tudi problem zaustavitve Turingovega stroja kar pa ni res, kot smo že spoznali v poglavju 5. Zato je tudi Postov korespodenčni problem neodločljiv. V posebnih primerih, ko je dolžina seznama omejena, pa je Postov korespodenčni problem odločljiv. Konkretno, ko sta sklopa samo dva, je Postov korespodenčni problem odločljiv. V primerih, ko imamo število sklopov med tri in šest, še vedno ni znano, ali je v teh primerih Postov korespodnčni problem odločljiv ali ne. Primeri, pri katerih iščemo rešitve za sedem ali več sklopov, pa so dokazano neodločljivi. V naslednjem poglavju bomo spoznali poseben neodločljiv problem, imenovan problem zaposlenega bobra. 32

43 Poglavje 7 Problem zaposlenega bobra Problem zaposlenega bobra (the Busy beaver problem) je neodločljiv problem, ki ga je prvi opisal Tibor Radó leta 1962 [14]. Gre za problem, v katerem se prepletajo teorija izračunljivosti, problem zaustavitve Turingovega stroja in teorija kompleksnosti. V tem poglavju izhajamo iz literature [14, 15, 16]. Problem se nanaša na deterministične Turingove stroje z n stanji in abecedo traku Γ = {, 1}, pri čemer je trak neomejen v levo in desno ter na začetku procesiranja prazen (torej brez vhodne besede). Namesto dveh končnih stanj q sprejmi in q zavrni obstaja eno samo končno stanje q ustavi. Take Turingove stroje bomo označili z oznako B(n). Problem zaposlenega bobra je poiskati tak Turingov stroj B(n), ki ob koncu procesiranja na trak zapiše kar največje število enic. Za bolj formalno definicijo vpeljemo funkcijo Σ: N N. Za dani Turingov stroj T B(n) naj bo Σ T (n) število enic, ki jih T ob koncu procesiranja zapiše na trak. Potem je Σ(n) = max T B(n) Σ T (n) največje število enic, ki jih je s takimi Turingovimi stroji mogoče zapisati. Funkciji Σ rečemo bobrova funkcija. Turingovemu stroju z n stanji, ki zapiše največje možno število enic na trak (zapisanih Σ(n) enic na traku), pravimo zaposleni bober. Zdaj lahko problem zaposlenega bobra definiramo formalno: Problem zaposlenega bobra: Za dani razred Turingovih strojev B(n) določi Σ(n). Pokazali bomo, da je ta problem neodločljiv. Z drugimi besedami: bobrova funkcija Σ ni Turingovo izračunljiva. Ob tem vpeljemo še funkcijo S : N N. Za dani T B(n) označimo s S T (n) število konfiguracij dokler T ne konča procesiranja v stanju q ustavi. Potem je S(n) = max T B(n) S T (n) največje število korakov, ki jih taki Turingovi stroji naredijo do konca procesiranja. Za lažje razumevanje si oglejmo naslednji zgled. Zgled 8. 33

44 Slika 7.1: Primer Turingovega stroja B(3), predstavljen z diagramom. Naj bo T Turingov stroj s tremi stanji, ki je grafično prikazan na sliki 7.1. Ta Turingov stroj se ustavi po 13-ih konfiguracijah, s šestimi zapisanimi enicami na traku. Prepričajmo se: /1,L q 0 q 0 11 /1,L /1,L q q /1,R 111q /1,R 11111q 1 1 /1,L 111q /1,R 1 /1,L /1,L 1 /1,R 1q 1 q 2 11 q q /1,R 1111q 1 1 /1,L 11111q /1,R 1111q ustavi 11. Iz tega razberemo, da je Σ T (3) = 6 in S T (3) = 13. Rado in Lin sta dokazala [15], da obstaja tudi Turingov stroj T s tremi stanji, ki se ustavi po 21 korakih, s šestimi zapisanimi enicami; torej Σ T (3) = 6 in S T (3) = 21. Prav tako sta tudi dokazala, da je Σ(3) = 6, torej, da ni Turingovega stroja T B(3), ki bi na trak zapisal več kot šest enic. Pri danem n lahko obstaja več kot en sam zaposleni bober, kot smo videli pri zgornjem zgledu. Zaposlene bobre je težko najti zaradi dveh pomembnih razlogov: 1. Prostor iskanja je izredno velik saj imamo za Turingov stroj z n stanji (4(n + 1)) 2n različnih možnih Turingovih strojev. To vidimo takole: Iz vsakega stanja imamo 2 prehoda glede na to, ali v tem stanju beremo simbol ali 1. Odvisno od tega, ali se bralna/pisalna glava giblje levo ali desno in kaj zapiše, ali 1, imamo na vsakem prehodu 4 možne oznake: /, R /1, R /, L in /1, L. Vsak prehod vodi do n + 1 možnih stanj (vključno s stanjem q ustavi ). Vseh prehodov iz enega stanja je 4(n + 1)(n + 1), število stanj iz katerih vodijo prehodi pa n. Torej (4(n + 1) 2 ) n = (4(n + 1)) 2n. 2. Ni možno ugotoviti, ali se poljuben Turingov stroj ustavi. To je natanko problem zaustavitve Turingovega stroja, ki je neodločljiv. 34

45 Kljub temu, da je v splošnem problem zaposlenega bobra neodločljiv (kot bomo še pokazali), so raziskovalci do danes za dovolj majhne n-je ugotovili naslednje vrednosti za Σ(n) in S(n), prikazane v tabeli 7.1 [16]. Tabela 7.1: Vrednosti Σ(n) in S(n) za 1 n 6 [16]. n Σ(n) S(n) Izrek 15 Bobrova funkcija Σ: N N ni Turingovo izračunljiva. Dokaz: Če za vsako Turingovo izračunljivo funkcijo f obstaja tak n f, da je Σ(n) > f(n) za n n f, potem funkcija Σ zagotovo ni Turingovo izračunljiva. To je očitno, saj bi v nasprotnem primeru obstajal tak n Σ, da je Σ(n) > Σ(n) za n > n Σ, kar pa je protislovje. Naj bo torej f poljubna Turingovo izračunljiva funkcija. Turingov stroj M f, ki izračuna funkcijo f, dobi vhodno besedo n enic (v obliki n), ob koncu procesiranja pa na trak dodatno zapiše f(n) enic, ki so od vhodne besede ločene s praznim simbolom. Definirajmo novo funkcijo F : N N s predpisom Funkcija F ima naslednje očitne lastnosti: F (x) = f(0) + f(1) + f(2) + + f(x) + 2x. je strogo naraščajoča: za x > y velja F (x) > F (y), F (x) 2x, F (x) f(x). Ker je funkcija f Turigovo izračunljiva, je prav tako izračunljiva tudi funkcija F. Podobno kot stroj M f, tudi Turingov stroj M F izračuna funkcijo F, dobi vhodno besedo x enic, ob koncu procesiranja pa na trak dodatno zapiše F (x) enic, ki se od vhodne besede ločene s praznim simbolom. Predpostavimo, da ima Turingov stroj M F natanko n stanj. Izberimo poljuben x N. Oblikujmo Turigov stroj M x, ki ima x stanj in na prazen trak zapiše x enic ter se postavi na konec. Skonstruirajmo sedaj Turingov stroj M(x) B(x+2n), ki ima x + 2n stanj in je sestavljen iz stroja M x in dveh strojev M F. Deluje takole: najprej na prazen trak s strojem M x zapiše x enic, ki jih nato stroj M F prebere in dodatno na trak zapiše F (x) enic. Nato Turingov stroj M F prebere na traku zapisanih F (x) in vrne kot rezultat F (F (x)) enic. Turingov stroj M(x) tako ob koncu procesiranja zapiše x+f (x)+f (F (x)) enic. 35

46 Po definiciji vsak Turingov stroj T B(x + 2n) zapiše na trak Σ T (x + 2n) enic. Iz definicije bobrove funkcije vemo, da je pri takih strojih s stanji x + 2n največje število zapisanih enic Σ(x + 2n), kar pomeni, da jih je vsaj toliko, kot jih je zapisal stroj M(x). Torej velja Σ(x + 2n) x + F (x) + F (F (x)) F (F (x)). Za x > 2n velja 2x > x + 2n > 0. Zaradi lastnosti funkcije F velja F (x) 2x. Torej je F (x) 2x > x + 2n za vse x > 2n in posledično F (F (x)) > F (x + 2n) f(x + 2n). S tem smo prišli do neenakosti Σ(x + 2n) > f(x + 2n), za x > 2n. To pomeni, da je funkcija Σ sčasoma večja od funkcije f. Ker pa je funkcija f neka poljubna izračunljiva funkcija, funkcija Σ ni Turingovo izračunljiva. Izrek 16 Funkcija S : N N ni Turingovo izračunljiva. Dokaz: Denimo, da obstaja Turingov stroj M z n stanji, ki ob koncu procesiranja na trak zapiše Σ(n) enic. To pomeni, da mora stroj M narediti najmanj Σ(n) korakov, da na trak zapiše Σ(n) enic; torej velja S(n) Σ(n). Ker pa vemo, da je funkcija Σ(n) sčasoma večja kot vsaka Turingovo izračunljiva funkcija, je taka tudi funkcija S(n). Torej funkcija S(n) prav tako ni Turingovo izračunljiva. V naslednjem poglavju bomo omenili Hilbertov 10. problem in ga preformulirali za naše potrebe. 36

47 Poglavje 8 Problem rešljivosti diofantskih enačb Na mednarodnem kongresov matematikov v Parizu leta 1900 je nemški matematik David Hilbert prestavil seznam 23 matematičnih problemov, ki so močno vplivali na nadaljnji razvoj matematike [17]. Do danes ti problemi še niso vsi rešeni. Hilbertov 10. problem se nanaša na diofantske enačbe. Diofantska enačba sprašuje po celoštevilskih rešitvah polinomov več spremenljivk s celimi koeficient. Oglejmo si originalno formulacijo tega problem. Izhajamo iz literature [3, 17]. Hilbertov 10. problem (originalna formulacija): Za poljubno diofantsko enačbo z več spremenljivkami poiskati proceduro, s katero je mogoče v končno mnogo korakih poiskati rešitev. V času, ko je David Hilbert formuliral ta problem, teorija jezikov in avtomatov še ni bila razvita. Hilbert je (napačno) tiho predpostavljal, da taka procedura obstaja, potrebno jo je zgolj poiskati. Kot bomo videli, pa take procedure ni. Za naše potrebe formulirajmo Hilbertov 10. problem takole: Hilbertov 10. problem (formalna formulacija): Naj bo P n množica vseh tistih polinomov iz kolobarja Z[x 0, x 1,..., x n ], ki imajo kako celoštevilsko ničlo (a 0, a 1,..., a n ) Z n : P n = {p Z[x 0, x 1,..., x n ] (a 0, a 1,..., a n ) Z n : p(a 0, a 1,... a n ) = 0}. Ali za vsak polinom p Z[x 0, x 1,..., x n ] obstaja algoritem, ki presodi, ali je p P n? Kot zgled si oglejmo polinome z eno spremenljivko. Denimo, da imamo Turingov stroj M, ki deluje na naslednji način: 1. vhod: koeficienti polinoma p P 1 ; 2. izračunaj vrednosti polinoma p pri 0, 1, 1, 2, 2, 3, 3,...; 3. če je vrednost polinoma enaka 0, sprejmi in ustavi. Opisani Turingov stroj najprej izračuna njegovo vrednost dobljenega polinoma pri številu 0. Če dobljena vrednost polinoma ni enaka nič, vrednost spremenljivke po absolutni vrednosti povečuje in ponovno računa vrednost polinoma. V primeru, da ima polinom p celoštevilsko ničlo, se Turingov stroj ustavi, saj bo prej ali slej prišel do vrednosti, pri kateri je vrednost 37

48 polinoma enaka nič. Problem se pojavi pri polinomu brez celoštevilske ničle: zgoraj opisani Turingov stroj se v tem primeru izvaja v nedogled in se ne ustavi. Kljub temu pa za ta problem obstaja Turingov stroj, ki se vedno ustavi, kar pomeni, da je ta problem odločljiv. Namreč, za polinome z eno spremenljivko je mogoče določiti interval c [ a 0, a 0 ], saj mora celoštevilska ničla deliti koeficient a 0. Ta interval zagotovo vsebuje vse možne celoštevilske ničle, če za ta polinom obstajajo. Turingov stroj M nadgradimo tako, da izračuna vrednosti polinoma pri 0, 1, 1, 2, 2,..., a 0, a 0. Za polinome z več spremenljivkam pa tega Turingovega stroja ni, kar je leta 1970 dokazal ruski matematik Jurij Matijasevič [18]. Zapišimo to še formalno: Izrek 17 Problem, ali ima poljubna diofantska enačba z več spremenljivkami celoštevilsko rešitev, je algoritmično neodločljiv [18]. 38

49 Poglavje 9 Spletna aplikacija 9.1 HTML, PHP in CSS Hyper Text Markup Language Hyper Text Markup Language, krajše HTML, je označevalni jezik (k besedilu dodan dogovorjeni sistem označb, ki jih posamezni program zna interpretirati in generirati videz besedila), s katerim izdelamo spletno stran in predstavlja osnovo spletnega dokumenta. Ta dokument v spletnem brskalniku ne prikazuje le zgradbe, ampak tudi semantični pomen dokumenta. V tem razdelku izhajamo iz literature [19]. Običajno spletni dokument izdelamo kar v urejevalniku besedil, ki je zapisan v obliki HTML značk (v obliki parov lomljenih oklepajev), pri čemer prva značka označuje začetek, druga pa konec oblike. Te značke si lahko predstavljamo kot ukaze brskalniku, kaj in v kakšni obliki mora predstaviti vsebino. To seveda omogoča gnezdenje značk. Začetek HTML dokumenta označujemo z značko <html>, konec dokumenta pa </html>. Spodaj je prikazan enostaven zgled HTML kode. HTML koda <html> <body> Testiramo </body> </html> j e z i k HTML! Prikaz v brskalniku Testiramo jezik HTML! PHP: Hypertext Preprocessor PHP: Hypertext Preprocessor, krajše PHP, je razširjen odprtokodni programski jezik, ki se uporablja za razvoj dinamičnih spletnih vsebin. Dinamične spletne strani omogočajo interakcijo z uporabnikom, česar statične strani ne omogočajo. Jezik PHP je sintaktično najbolj podoben programskemu jeziku C. Vsebuje vse gradnike in podatkovne strukture programskega jezika. PHP se primarno izvaja na spletnem strežniku, kjer strežnik dobi za vhod PHP kodo in generira izhod v obliki spletne strani. V celotnem razdelku sledimo literaturi [20, 21]. Spletno stran narejeno v HTML-ju lahko nadgradimo z vključitvijo programskega jezika PHP. Kaj to pomeni? Spletno stran lahko naredimo dinamično in interaktivno z elementi, 39

50 ki jih HTML sam ne omogoča. Taki elementi so omogočanje vnosa uporabnikovega besedila, preoblikovanje besedila, prenašanje datotek, kreiranje grafičnih elementov, programiranje in podobno... Vendar PHP samostojno ne more generirati spletne strani v obliki kot HTML, zato je pomembna prepletenost PHP-ja in HTML-ja. Spodaj je prikazan primer PHP kode in primer prepleta PHP in HTML kode. PHP koda <?php $niz = PHP koda! echo $niz ; f o r ( $ i = ( count ( $niz ) 1); $ i <= 0 ; $i ){ echo $niz [ i ] ; }?> Prikaz v brskalniku PHP koda!!aodk PHP Preplet PHP in HTML kode <?php $niz = PHP in HTML! ; echo $niz ; f o r ( $ i = ( count ( $niz ) 1); $ i <= 0 ; $i ){ echo $obrat.= $ [ n i z ] [ $ i ] ; }?> Prikaz v brskalniku PHP in HTML!!LMTH ni PHP <html> <body> <p> <?php echo </body> </html> $niz, $obrat?> </p> Cascading Style Sheets Cascading Style Sheets, krajše CSS, so predloge, ki skrbijo za predstavitev spletnih strani. Z njimi preoblikujemo privzeti stil HTML elementov s pravili, kako naj se elementi prikažejo na spletni strani. HTML elementom lahko določamo velikost, pozicijo, poravnavo, odmike, barve, obliko pisave,... CSS prav tako omogoča oblikovanje predstavitve interaktivnih aktivnosti, ki jih izvaja uporabnik. Pri tem bomo uporabljali informacije iz literature [22]. Poleg uporabe različnih predstavitev za različne HTML elemente je CSS pomemben predvsem zaradi strukturiranja strani. S tem omogočimo večjo preglednost HTML elementov. HTML elemente oblikujemo na naslednji način: s e k t o r { l a s t n o s t 1 : vrednost1 ; l a s t n o s t 2 : vrednost2 ;... } 40

51 Sektor določa HTML element, na katerega se stilska pravila nanašajo. Na sektor vpliva tudi način, kako so elementi postavljeni drug na drugega oziroma gnezdeni med seboj. V dekleracijskem bloku je zapisana lastnost atributa in njena vrednost, ločena z dvopičjem. Lastnosti je potrebno ločiti z vrsticami. Oglejmo si primer uporabe CSS-ja v HTML kodi: HTML koda s CSS <s t y l e type= t e x t / c s s > p{ c o l o r : blue ; font weight : bold ; } </s t y l e > Prikaz v brskalniku Testiramo HTML s predlogo CSS! <html> <body> <p>testiramo HTML s </body> </html> predlogo CSS!</p> CSS predlog ni potrebno definirati znotraj HTML dokumenta, vendar jih lahko zapišemo v ločen dokument in jih nato v HTML dokumentu uporabimo. 9.2 Opis aplikacije Izdelana spletna aplikacija išče konkretne rešitve Postovega korespodenčnega problema. Ideja je preprosta: najprej se zgenerirajo vse permutacije vnešenih sklopov s ponavljanjem do predpisane zgornje meje, pri čemer vnešeni sklop nastopa vsaj enkrat. Nato pa se za vsako permutacijo preveri, ali kakšna izmed teh permutacij porodi rešitev. Uporabnik vnese množico sklopov. Poleg tega lahko omeji prostor potencialnih rešitev tako, da določi zgornjo mejo dolžine zaporedja sklopov. Če je vnešena zgornja meja manjša kot je število vnešenih sklopov ali pa zgornja meja ni vnešena, je privzeta zgornja meja enaka številu vnešenih sklopov. Nato uporabnik pritisne gumb za iskanje. Aplikacija na ekranu izpiše, ali ima vnešena množica sklopov rešitev v tej določeni dolžini ali ne. V primeru, da ima vnešena množica sklopov rešitev, se konkretna rešitev izpiše na ekran. Potrebno je poudariti, da se sklopi v rešitvi lahko ponavljajo. Pri iskanju rešitve spletna aplikacija razlikuje med malimi in velikimi črkami. 9.3 Navodila za uporabo Splošna navodila Spletno aplikacijo najdemo na spletnem naslovu index.php. Priporočena je uporaba brskalnika Google Chrome, ki ga je mogoče prenesti s spletne strani [23]. Ob odprtju povezave se prikaže začetna stran, kot prikazuje slika

52 Slika 9.1: Začetna stran spletne aplikacije. V glavnem okviru imamo možnost dveh vnosnih polj. Pri prvem vnosu vnesemo množico sklopov na naslednji način: sklope ločimo med seboj po vrsticah, zgornjo in spodnjo besedo pa ločimo s presledkom. Torej, če hočemo vnesti množico sklopov M P KP = { [ ] 1, 111 [ ] [ ] } 10,, 0 jo vnesemo takole Drugo vnosno polje je namenjeno določitvi največje zgornje meje, kot je opisano v podpoglavju 9.2. V spodnjem delu okvirja najdemo gumb IŠČI, s katerim nato aplikacija začne iskati konkretno rešitev za vpisano množico sklopov in določeno zgornjo mejo. Na spletni strani lahko ob okviru zgoraj desno opazimo tudi gumb?, ki je namenjen predstavitvi osnovnih informacij o tej spletni aplikaciji. V primeru, ko aplikacija najde rešitev, kot prikazuje slika 9.2, se nam izpiše vnešeno množica sklopov, konkretno rešitev in permutacijo rešitve. Aplikacija nam preko gumba puščica dol omogoča lokalni prenos zapisa rešitve v obliki pdf. Če aplikacija ne najde rešitve za vnešeno množico, se izpiše, da ni rešitve. 42

53 Slika 9.2: Aplikacija najde rešitev Lokalna uporaba spletne aplikacije na operacijskem sistemu Windows Izdelana spletna aplikacija seveda zahteva dostop do spleta, vendar nam je lahko zaradi težav, na primer s strežnikom, ta dostop onemogočen. V tem razdelku bomo spoznali, kako lahko uporabimo aplikacijo na lokalnem računalniku. Za lokalno uporabo spletne aplikacije je potrebno namestiti program XAMPP, ki si ga lahko prenesemo s spletnega naslova [24]. Potrebno je izbrati pravilni namestitveni paket, ki pripada našemu operacijskemu sistemu. XAMPP namesti paket LAMP, ki označuje odprtokodno programsko opremo in skupaj tvorita popolnoma delujoč spletni strežnik. Običajno je potrebno ročno zagnati strežnik preko dolgega zaporedja ukazov, vendar to XAMPP naredi namesto nas. Zaženemo program XAMPP Control Panel in kliknemo tipko Start pri modulu strežnika Apache, kot prikazuje slika 9.3. Slika 9.3: Programsko okno programa XAMPP. 43

54 Spletne dokumente prenesemo v mapo htdocs, ki je v namestitveni mapi programa XAMPP. Nato odpremo brskalnik, vtipkamo spletni naslov localhost/ime_dokumenta.php in odpre se nam željena spletna stran. Ko zaključimo z uporabo spletne strani, zapremo brskalnik in v programu XAMPP Control Panel pri modulu Apache kliknemo tipko Stop ter zapremo program. 9.4 Koda Oglejmo si opis programske kode spletne aplikacije, ki je za lažje razumevanje prikazana na sliki 9.4. V tem razdelku izhajamo iz spletnega naslova [25]. Slika 9.4: Shematski prikaz programske kode. Spletna aplikacija je sestavljena iz treh glavnih funkcij: MnozicaSklopov, PotencialneResitve in PreveriPKP. V nadaljevanju jih bomo natančneje opisali. Uporabnik preko vnosne vrstice vnese množico sklopov in zgornjo mejo. Vnešeno množico sklopov nato kot parameter podamo funkciji MnozicaSklopov. Parameter si predstavljamo kot en dolg niz (s presledki), ki ga s funkcijo MnozicaSklopov razdelimo v dvodimenzionalno tabelo. PHP ima za tako razdelitev niza vgrajeno funkcijo explode. Med izvajanjem funkcija MnozicaSklopov sproti preverja, ali je katera od celic dvodimenzionalne tabele prazna. V primeru, da je katera od celic prazna (vnos ni bil pravilen), se iskanje konkretne rešitve Postovega korespodenčnega problema ustavi. Ko pripravimo množico sklopov za obdelavo, pride na vrsto rekurzivna funkcija PotencialneResitve. S to funkcijo generiramo vse permutacije s ponavljanjem do določene zgornje meje. Elementi permutacij so kar naravna števila od ena do števila sklopov. Te permutacije hranimo v enodimenzionalni tabeli, kjer vsebina celice predstavlja natanko eno permutacijo. Sedaj imamo pripravljeno množico sklopov in tabelo potrebnih permutacij. S funkcijo PreveriPKP za dano množico sklopov in vsako permutacijo preverimo, ali smo našli konkretno rešitev. Ob procesiranju posebej zapisujemo celotno zgornjo in spodnjo besedo, ki ju sestavljamo glede na permutacijo, in sicer simbol za simbolom. Simbol v permutaciji predstavlja zaporedni sklop v množici sklopov. 44

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

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

POLDIREKTNI PRODUKT GRUP

POLDIREKTNI PRODUKT GRUP UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA LUCIJA ŽNIDARIČ POLDIREKTNI PRODUKT GRUP DIPLOMSKO DELO LJUBLJANA 2014 UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA Univerzitetni študijski program 1. stopnje: Dvopredmetni

More information

UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE. Kvadratne forme nad končnimi obsegi

UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE. Kvadratne forme nad končnimi obsegi UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE Zaključna naloga Kvadratne forme nad končnimi obsegi (Quadratic Forms over Finite Fields) Ime in priimek: Borut

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

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

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

UNIVERZA V MARIBORU FAKULTETA ZA NARAVOSLOVJE IN MATEMATIKO. Oddelek za matematiko in računalništvo DIPLOMSKO DELO.

UNIVERZA V MARIBORU FAKULTETA ZA NARAVOSLOVJE IN MATEMATIKO. Oddelek za matematiko in računalništvo DIPLOMSKO DELO. UNIVERZA V MARIBORU FAKULTETA ZA NARAVOSLOVJE IN MATEMATIKO Oddelek za matematiko in računalništvo DIPLOMSKO DELO Sabina Skornšek Maribor, 2012 UNIVERZA V MARIBORU FAKULTETA ZA NARAVOSLOVJE IN MATEMATIKO

More information

Miha Drole. Sintaksna analiza rahlo kontekstno odvisnih jezikov

Miha Drole. Sintaksna analiza rahlo kontekstno odvisnih jezikov UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Miha Drole Sintaksna analiza rahlo kontekstno odvisnih jezikov DIPLOMSKO DELO NA UNIVERZITETNEM ŠTUDIJU Mentor: prof. dr. Igor Kononenko Ljubljana,

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

SLIKE CANTORJEVE PAHLJAµCE

SLIKE CANTORJEVE PAHLJAµCE UNIVERZA V MARIBORU FAKULTETA ZA NARAVOSLOVJE IN MATEMATIKO Oddelek za matematiko in raµcunalništvo Diplomsko delo SLIKE CANTORJEVE PAHLJAµCE Mentor: dr. Iztok Baniµc docent Kandidatka: Anja Belošević

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

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

UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE. Simetrije cirkulantnih grafov

UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE. Simetrije cirkulantnih grafov UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE Magistrsko delo Simetrije cirkulantnih grafov (Symmetry of circulant graphs) Ime in priimek: Maruša Saksida Študijski

More information

DELOVANJA GRUP IN BLOKI NEPRIMITIVNOSTI

DELOVANJA GRUP IN BLOKI NEPRIMITIVNOSTI UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA DEJAN KREJIĆ DELOVANJA GRUP IN BLOKI NEPRIMITIVNOSTI DIPLOMSKO DELO Ljubljana, 2015 UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA Dvopredmetni učitelj: matematika -

More information

Sekvenčna preklopna vezja

Sekvenčna preklopna vezja - Sekvenčna preklopna vezja (delovna verzija 5..27) Prosojnica št. 7- Primer vezja s povratno povezavo Osnovni pomnilni element je izveden s kaskadno vezavo invertorjev Osnovni element: invertor (INV)

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

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

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

Matematika 1. Gabrijel Tomšič Bojan Orel Neža Mramor Kosta

Matematika 1. Gabrijel Tomšič Bojan Orel Neža Mramor Kosta Matematika 1 Gabrijel Tomšič Bojan Orel Neža Mramor Kosta 15. december 2010 Poglavje 3 Funkcije 3.1 Osnovni pojmi Preslikavam v množico R ali C običajno pravimo funkcije v prvem primeru realne, v drugem

More information

Hipohamiltonovi grafi

Hipohamiltonovi grafi Hipohamiltonovi grafi Marko Čmrlec, Bor Grošelj Simić Mentor(ica): Vesna Iršič Matematično raziskovalno srečanje 1. avgust 016 1 Uvod V marsovskem klubu je želel predsednik prirediti večerjo za svoje člane.

More information

Matej Mislej HOMOMORFIZMI RAVNINSKIH GRAFOV Z VELIKIM NOTRANJIM OBSEGOM

Matej Mislej HOMOMORFIZMI RAVNINSKIH GRAFOV Z VELIKIM NOTRANJIM OBSEGOM UNIVERZA V LJUBLJANI FAKULTETA ZA MATEMATIKO IN FIZIKO Matematika - uporabna smer (UNI) Matej Mislej HOMOMORFIZMI RAVNINSKIH GRAFOV Z VELIKIM NOTRANJIM OBSEGOM Diplomsko delo Ljubljana, 2006 Zahvala Zahvaljujem

More information

SIMETRIČNI BICIRKULANTI

SIMETRIČNI BICIRKULANTI UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA GORAZD VASILJEVIĆ SIMETRIČNI BICIRKULANTI DIPLOMSKO DELO Ljubljana, 2014 UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA Dvopredmetni učitelj: matematika - računalništvo

More information

Verifying Time Complexity of Turing Machines

Verifying Time Complexity of Turing Machines UNIVERSITY OF LJUBLJANA FACULTY OF MATHEMATICS AND PHYSICS DEPARTMENT OF MATHEMATICS David Gajser Verifying Time Complexity of Turing Machines Doctoral dissertation Advisor: izred. prof. dr. Sergio Cabello

More information

Eulerjevi in Hamiltonovi grafi

Eulerjevi in Hamiltonovi grafi Eulerjevi in Hamiltonovi grafi Bojan Možina 30. december 006 1 Eulerjevi grafi Štirje deli mesta Königsberg v Prusiji so bili povezani s sedmimi mostovi (glej levi del slike 1). Zdaj se Königsberg imenuje

More information

Kode za popravljanje napak

Kode za popravljanje napak UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE KOPER MATEMATIČNE ZNANOSTI MAGISTRSKI ŠTUDIJSKI PROGRAM 2. STOPNJE Aljaž Slivnik Kode za popravljanje napak Magistrska

More information

Jernej Azarija. Štetje vpetih dreves v grafih

Jernej Azarija. Štetje vpetih dreves v grafih UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO FAKULTETA ZA MATEMATIKO IN FIZIKO Jernej Azarija Štetje vpetih dreves v grafih DIPLOMSKO DELO NA INTERDISCIPLINARNEM UNIVERZITETNEM ŠTUDIJU

More information

UNIVERZA V MARIBORU FAKULTETA ZA NARAVOSLOVJE IN MATEMATIKO. Oddelek za matematiko in računalništvo MAGISTRSKA NALOGA. Tina Lešnik

UNIVERZA V MARIBORU FAKULTETA ZA NARAVOSLOVJE IN MATEMATIKO. Oddelek za matematiko in računalništvo MAGISTRSKA NALOGA. Tina Lešnik UNIVERZA V MARIBORU FAKULTETA ZA NARAVOSLOVJE IN MATEMATIKO Oddelek za matematiko in računalništvo MAGISTRSKA NALOGA Tina Lešnik Maribor, 2014 UNIVERZA V MARIBORU FAKULTETA ZA NARAVOSLOVJE IN MATEMATIKO

More information

UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA

UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA SARA BREZEC HAUSDORFFOV PARADOKS DIPLOMSKO DELO LJUBLJANA, 2016 UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA DVOPREDMETNI UČITELJ MATEMATIKA-FIZIKA SARA BREZEC mentor:

More information

UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE. Kromatično število in kromatični indeks grafa

UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE. Kromatično število in kromatični indeks grafa UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE Magistrsko delo Kromatično število in kromatični indeks grafa (The chromatic number and the chromatic index of

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

UNIVERZA V MARIBORU FAKULTETA ZA NARAVOSLOVJE IN MATEMATIKO. Oddelek za matematiko in računalništvo DIPLOMSKO DELO. Gregor Ambrož

UNIVERZA V MARIBORU FAKULTETA ZA NARAVOSLOVJE IN MATEMATIKO. Oddelek za matematiko in računalništvo DIPLOMSKO DELO. Gregor Ambrož UNIVERZA V MARIBORU FAKULTETA ZA NARAVOSLOVJE IN MATEMATIKO Oddelek za matematiko in računalništvo DIPLOMSKO DELO Gregor Ambrož Maribor, 2010 UNIVERZA V MARIBORU FAKULTETA ZA NARAVOSLOVJE IN MATEMATIKO

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

Ana Mlinar Fulereni. Delo diplomskega seminarja. Mentor: izred. prof. dr. Riste Škrekovski

Ana Mlinar Fulereni. Delo diplomskega seminarja. Mentor: izred. prof. dr. Riste Škrekovski UNIVERZA V LJUBLJANI FAKULTETA ZA MATEMATIKO IN FIZIKO Matematika 1. stopnja Ana Mlinar Fulereni Delo diplomskega seminarja Mentor: izred. prof. dr. Riste Škrekovski Ljubljana, 2011 Kazalo 1. Uvod 4 2.

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

OPTIMIZACIJSKE METODE skripta v pripravi

OPTIMIZACIJSKE METODE skripta v pripravi OPTIMIZACIJSKE METODE skripta v pripravi Vladimir Batagelj Ljubljana 17. december 2003 2 Kazalo Predgovor 5 1 Optimizacijske naloge 7 1.1 Osnovni pojmi........................... 7 1.2 Primeri optimizacijskih

More information

UNIVERZA V LJUBLJANI FAKULTETA ZA MATEMATIKO IN FIZIKO ODDELEK ZA MATEMATIKO

UNIVERZA V LJUBLJANI FAKULTETA ZA MATEMATIKO IN FIZIKO ODDELEK ZA MATEMATIKO UNIVERZA V LJUBLJANI FAKULTETA ZA MATEMATIKO IN FIZIKO ODDELEK ZA MATEMATIKO Rok Erman BARVANJA RAVNINSKIH IN SORODNIH DRUŽIN GRAFOV Doktorska disertacija MENTOR: prof. dr. Riste Škrekovski Ljubljana,

More information

DIOFANTSKE ČETVERICE

DIOFANTSKE ČETVERICE Fakulteta za aravoslovje i matematiko Oddelek za matematiko i račualištvo Diplomsko delo DIOFANTSKE ČETVERICE Metor: Doc. dr. Daiel Eremita Kadidatka: Jožica Špec Maribor 009 II ZAHVALA Zahvaljujem se

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

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

TEORIJA GRAFOV IN LOGISTIKA

TEORIJA GRAFOV IN LOGISTIKA TEORIJA GRAFOV IN LOGISTIKA Maja Fošner in Tomaž Kramberger Univerza v Mariboru Fakulteta za logistiko Mariborska cesta 2 3000 Celje Slovenija maja.fosner@uni-mb.si tomaz.kramberger@uni-mb.si Povzetek

More information

Neli Blagus. Iterativni funkcijski sistemi in konstrukcija fraktalov

Neli Blagus. Iterativni funkcijski sistemi in konstrukcija fraktalov UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Neli Blagus Iterativni funkcijski sistemi in konstrukcija fraktalov DIPLOMSKO DELO NA INTERDISCIPLINARNEM UNIVERZITETNEM ŠTUDIJU Mentorica:

More information

Călugăreanu-White-Fullerjev teorem in topologija DNA

Călugăreanu-White-Fullerjev teorem in topologija DNA Univerza v Ljubljani Fakulteta za matematiko in fiziko Oddelek za fiziko Călugăreanu-White-Fullerjev teorem in topologija DNA Seminar Jure Aplinc, dipl. fiz. (UN) Mentor: prof. dr. Rudolf Podgornik 26.

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

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

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

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

FRAKTALNA DIMENZIJA. Fakulteta za matematiko in fiziko Univerza v Ljubljani

FRAKTALNA DIMENZIJA. Fakulteta za matematiko in fiziko Univerza v Ljubljani FRAKTALNA DIMENZIJA VESNA IRŠIČ Fakulteta za matematiko in fiziko Univerza v Ljubljani PACS: 07.50.Hp, 01.65.+g V članku je predstavljen zgodovinski razvoj teorije fraktalov in natančen opis primerov,

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

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

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

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

SIMETRIČNE KOMPONENTE

SIMETRIČNE KOMPONENTE Univerza v Ljubljani Fakulteta za elektrotehniko SIMETRIČNE KOMPONENTE Seminarska naloga pri predmetu Razdelilna in industrijska omrežja Poročilo izdelala: ELIZABETA STOJCHEVA Mentor: prof. dr. Grega Bizjak,

More information

UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA DIPLOMSKO DELO MAJA OSTERMAN

UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA DIPLOMSKO DELO MAJA OSTERMAN UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA DIPLOMSKO DELO MAJA OSTERMAN UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA Študijski program: Matematika in računalništvo Fibonaccijevo zaporedje in krožna konstanta

More information

Simulacija dinamičnih sistemov s pomočjo osnovnih funkcij orodij MATLAB in Simulink

Simulacija dinamičnih sistemov s pomočjo osnovnih funkcij orodij MATLAB in Simulink Laboratorijske vaje Računalniška simulacija 2012/13 1. laboratorijska vaja Simulacija dinamičnih sistemov s pomočjo osnovnih funkcij orodij MATLAB in Simulink Pri tej laboratorijski vaji boste spoznali

More information

INTELLIGENTNI SISTEMI Mehka Logika

INTELLIGENTNI SISTEMI Mehka Logika INTELLIGENTNI SISTEMI Mehka Logika MEHKA LOGIKA (FUZZY LOGIC) 2011/12 Jurij F. Tasič Emil Plesnik 2011/12 1 Splošna definicija Mehka logika - Fuzzy Logic; 1965 Lotfi Zadeh, Berkely Nadgradnja konvencionalne

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

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

Linearne enačbe. Matrična algebra. Linearne enačbe. Linearne enačbe. Linearne enačbe. Linearne enačbe

Linearne enačbe. Matrična algebra. Linearne enačbe. Linearne enačbe. Linearne enačbe. Linearne enačbe Sistem linearnih enačb Matrična algebra Oseba X X X3 B A.A. 3 B.B. 7 C.C. Doc. dr. Anja Podlesek Oddelek za psihologijo, Filozofska fakulteta, Univerza v Ljubljani Študijski program prve stopnje Psihologija

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

Izbrana poglavja iz velikih omreºij 1. Zbornik seminarskih nalog iz velikih omreºij

Izbrana poglavja iz velikih omreºij 1. Zbornik seminarskih nalog iz velikih omreºij Izbrana poglavja iz velikih omreºij 1 Zbornik seminarskih nalog iz velikih omreºij Ljubljana, 2015 CIP Kataloºni zapis o publikaciji Narodna in univerzitetna knjiºnica, Ljubljana 123.45(678)(9.012.3) Izbrana

More information

SVM = Support Vector Machine = Metoda podpornih vektorjev

SVM = Support Vector Machine = Metoda podpornih vektorjev Uvod 2/60 SVM = Support Vector Machine = Metoda podpornih vektorjev Vapnik in Lerner 1963 (generalized portrait) jedra: Aronszajn 1950; Aizerman 1964; Wahba 1990, Poggio in Girosi 1990 Boser, Guyon in

More information

DOMINACIJSKO TEVILO GRAFA

DOMINACIJSKO TEVILO GRAFA UNIVERZA V LJUBLJANI PEDAGO KA FAKULTETA tudijski program: MATEMATIKA in RAƒUNALNI TVO DOMINACIJSKO TEVILO GRAFA DIPLOMSKO DELO Mentor: doc. dr. Primoº parl Kandidatka: Neja Zub i Ljubljana, maj, 2011

More information

Preprečevanje neizvedljivosti urnikov pri metahevrističnem razvrščanju proizvodnih procesov

Preprečevanje neizvedljivosti urnikov pri metahevrističnem razvrščanju proizvodnih procesov Univerza v Ljubljani Fakulteta za elektrotehniko Boštjan Murovec Preprečevanje neizvedljivosti urnikov pri metahevrističnem razvrščanju proizvodnih procesov Doktorska disertacija Mentor: prof. dr. Peter

More information

Univerza na Primorskem FAMNIT, MFI STATISTIKA 2 Seminarska naloga

Univerza na Primorskem FAMNIT, MFI STATISTIKA 2 Seminarska naloga Univerza na Primorskem FAMNIT, MFI STATISTIKA 2 Seminarska naloga Naloge so edini način preverjanja znanja pri predmetu Statistika. Vsaka naloga je vredna 10 točk, natančna pravila ocenjevanja pa so navedena

More information

UČNI NAČRT PREDMETA / COURSE SYLLABUS Predmet: Analiza 1 Course title: Analysis 1. Študijska smer Study field. Samost. delo Individ.

UČNI NAČRT PREDMETA / COURSE SYLLABUS Predmet: Analiza 1 Course title: Analysis 1. Študijska smer Study field. Samost. delo Individ. UČNI NAČRT PREDMETA / COURSE SYLLABUS Predmet: Analiza 1 Course title: Analysis 1 Študijski program in stopnja Study programme and level Univerzitetni študijski program Finančna matematika First cycle

More information

UČNI NAČRT PREDMETA / COURSE SYLLABUS (leto / year 2017/18) Parcialne diferencialne enačbe Partial differential equations. Študijska smer Study field

UČNI NAČRT PREDMETA / COURSE SYLLABUS (leto / year 2017/18) Parcialne diferencialne enačbe Partial differential equations. Študijska smer Study field Predmet: Course title: UČNI NAČRT PREDMETA / COURSE SYLLABUS (leto / year 2017/18) Parcialne diferencialne enačbe Partial differential equations Študijski program in stopnja Study programme and level Magistrski

More information

Izbrana poglavja iz algebrai ne teorije grafov. Zbornik seminarskih nalog iz algebrai ne teorije grafov

Izbrana poglavja iz algebrai ne teorije grafov. Zbornik seminarskih nalog iz algebrai ne teorije grafov Izbrana poglavja iz algebrai ne teorije grafov Zbornik seminarskih nalog iz algebrai ne teorije grafov Ljubljana, 2015 CIP Kataloºni zapis o publikaciji Narodna in univerzitetna knjiºnica, Ljubljana 519.24(082)(0.034.2)

More information

modeli regresijske analize nominalnih spremenljivk

modeli regresijske analize nominalnih spremenljivk modeli regresijske analize nominalnih spremenljivk Cveto Trampuž An Illustrative Comparison Logit Analysis with Dummy Variable Regression Analysis. Two different regression models in which the dependent

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

Interpolacija s parametričnimi polinomskimikrivuljami 1

Interpolacija s parametričnimi polinomskimikrivuljami 1 Interpolacija s parametričnimi polinomskimikrivuljami Emil Žagar 22. november 200 Skriptajevnastajanju,zatojegotovopolnanapak. Hvaleˇzenbomzavse pripombe. Iskanje napak je obenem del učnega procesa pri

More information

APLIKACIJA ZA DELO Z GRAFI

APLIKACIJA ZA DELO Z GRAFI UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA Študijski program: MATEMATIKA IN RAČUNALNIŠTVO APLIKACIJA ZA DELO Z GRAFI DIPLOMSKO DELO Mentor: doc. dr. Primož Šparl Kandidat: Luka Jurković Somentor: asist.

More information

UČNI NAČRT PREDMETA / COURSE SYLLABUS (leto / year 2017/18) Predmet: Optimizacija 1 Course title: Optimization 1. Študijska smer Study field

UČNI NAČRT PREDMETA / COURSE SYLLABUS (leto / year 2017/18) Predmet: Optimizacija 1 Course title: Optimization 1. Študijska smer Study field UČNI NAČRT PREDMETA / COURSE SYLLABUS (leto / year 2017/18) Predmet: Optimizacija 1 Course title: Optimization 1 Študijski program in stopnja Study programme and level Univerzitetni študijski program Matematika

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

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

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

UČNI NAČRT PREDMETA / COURSE SYLLABUS Numerical linear algebra. Študijska smer Study field. Samost. delo Individ. work Klinične vaje work

UČNI NAČRT PREDMETA / COURSE SYLLABUS Numerical linear algebra. Študijska smer Study field. Samost. delo Individ. work Klinične vaje work Predmet: Course title: UČNI NAČRT PREDMETA / COURSE SYLLABUS Numerična linearna algebra Numerical linear algebra Študijski program in stopnja Study programme and level Univerzitetni študijski program Matematika

More information

IZPELJANKE ALGORITMA LZW

IZPELJANKE ALGORITMA LZW Jure Sreš IZPELJKE LGORITM LZW Diplomsko delo Maribor, september 2016 IZPELJKE LGORITM LZW Diplomsko delo Študent(ka): Jure Sreš Študijski program: Računalništvo in informacijske tehnologije (U) Smer:

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

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 V LJUBLJANI PEDAGOŠKA FAKULTETA FAKULTETA ZA MATEMATIKO IN FIZIKO DIPLOMSKO DELO MIHAELA REMIC

UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA FAKULTETA ZA MATEMATIKO IN FIZIKO DIPLOMSKO DELO MIHAELA REMIC UNIVERZ V LJULJNI PEDGOŠK FKULTET FKULTET Z MTEMTIKO IN FIZIKO DIPLOMSKO DELO MIHEL REMI UNIVERZ V LJULJNI PEDGOŠK FKULTET FKULTET Z MTEMTIKO IN FIZIKO Študijski program: Matematika in fizika ROUTHOV

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

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

Iterativne metode podprostorov 2010/2011 Domače naloge

Iterativne metode podprostorov 2010/2011 Domače naloge Iterativne metode podprostorov 2010/2011 Domače naloge Naloge so razdeljene v 6 skupin. Za pozitivno oceno morate rešiti toliko nalog, da bo končna vsota za pozitivno oceno vsaj 8 točk oz. vsaj 10 točk

More information

Intervalske Bézierove krivulje in ploskve

Intervalske Bézierove krivulje in ploskve Univerza v Ljubljani Fakulteta za računalništvo in informatiko Fakulteta za matematiko in fiziko Tadej Borovšak Intervalske Bézierove krivulje in ploskve DIPLOMSKO DELO UNIVERZITETNI ŠTUDIJSKI PROGRAM

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

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

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

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

Osnove numerične matematike

Osnove numerične matematike Univerza v Ljubljani Fakulteta za računalništvo in informatiko Osnove numerične matematike Bojan Orel Ljubljana, 2004 Kazalo 1 Uvod 1 1.1 Zakaj numerične metode..................... 1 1.2 Napake in numerično

More information

Linearna algebra. Bojan Orel. Univerza v Ljubljani

Linearna algebra. Bojan Orel. Univerza v Ljubljani Linearna algebra Bojan Orel 07 Univerza v Ljubljani Fakulteta za računalništvo in informatiko CIP - Kataložni zapis o publikaciji Narodna in univerzitetna knjižnica, Ljubljana 5.64(075.8) OREL, Bojan Linearna

More information

Katastrofalno zaporedje okvar v medsebojno odvisnih omrežjih

Katastrofalno zaporedje okvar v medsebojno odvisnih omrežjih Katastrofalno zaporedje okvar v medsebojno odvisnih omrežjih Daniel Grošelj Mentor: Prof. Dr. Rudi Podgornik 2. marec 2011 Kazalo 1 Uvod 2 2 Nekaj osnovnih pojmov pri teoriji omrežij 3 2.1 Matrika sosednosti.......................................

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

Formalni sistem in mehka logika za analizo digitalne slike: osnovni koncept

Formalni sistem in mehka logika za analizo digitalne slike: osnovni koncept Elektrotehniški vestnik 69(2): 143 150, 2002 Electrotechnical Review, Ljubljana, Slovenija Formalni sistem in mehka logika za analizo digitalne slike: osnovni koncept Andrej Košir, Jurij Tasič Fakulteta

More information

Grafi, igre in še kaj

Grafi, igre in še kaj Grafi, igre in še kaj Martin Milanič martin.milanic@upr.si Inštitut Andrej Marušič Fakulteta za matematiko, naravoslovje in informacijske tehnologije Univerza na Primorskem, Koper Matematika je kul 2016,

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

UČNI NAČRT PREDMETA / COURSE SYLLABUS (leto / year 2017/18) Predmet: Analiza 3 Course title: Analysis 3. Študijska smer Study field ECTS

UČNI NAČRT PREDMETA / COURSE SYLLABUS (leto / year 2017/18) Predmet: Analiza 3 Course title: Analysis 3. Študijska smer Study field ECTS UČNI NAČRT PREDMETA / COURSE SYLLABUS (leto / year 2017/18) Predmet: Analiza 3 Course title: Analysis 3 Študijski program in stopnja Study programme and level Univerzitetni študijski program Matematika

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

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

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