Teorija algoritama, jezika i automata

Σχετικά έγγραφα
3.1 Granična vrednost funkcije u tački

Iskazna logika 3. Matematička logika u računarstvu. novembar 2012

Teorija izračunljivosti

Teorija složenosti izračunavanja Teorija algoritama o o Odlučivi problemi Neodlučivi problemi Posmatrajući Čerčovu tezu, dolazimo do zaključka ka da p

Teorijske osnove informatike 1

Osnovni primer. (Z, +,,, 0, 1) je komutativan prsten sa jedinicom: množenje je distributivno prema sabiranju

UNIVERZITET U NIŠU ELEKTRONSKI FAKULTET SIGNALI I SISTEMI. Zbirka zadataka

DISKRETNA MATEMATIKA - PREDAVANJE 7 - Jovanka Pantović

Elementi spektralne teorije matrica

SISTEMI NELINEARNIH JEDNAČINA

Operacije s matricama

ELEKTROTEHNIČKI ODJEL

41. Jednačine koje se svode na kvadratne

PRAVA. Prava je u prostoru određena jednom svojom tačkom i vektorom paralelnim sa tom pravom ( vektor paralelnosti).

Ispitivanje toka i skiciranje grafika funkcija

IZVODI ZADACI ( IV deo) Rešenje: Najpre ćemo logaritmovati ovu jednakost sa ln ( to beše prirodni logaritam za osnovu e) a zatim ćemo

IspitivaƬe funkcija: 1. Oblast definisanosti funkcije (ili domen funkcije) D f

Uvod u teorijsko računarstvo

Strukture podataka i algoritmi 1. kolokvij 16. studenog Zadatak 1

Osnovne teoreme diferencijalnog računa

Računarska grafika. Rasterizacija linije

Kazimir Majorinc. Povijest Lispa 12. Razmjena vještina Hacklab u mami 10. studeni 2012.

PARCIJALNI IZVODI I DIFERENCIJALI. Sama definicija parcijalnog izvoda i diferencijala je malo teža, mi se njome ovde nećemo baviti a vi ćete je,

2log. se zove numerus (logaritmand), je osnova (baza) log. log. log =

18. listopada listopada / 13

5. Karakteristične funkcije

IZVODI ZADACI (I deo)

5 Ispitivanje funkcija

1. zadatak , 3 Dakle, sva kompleksna re{ewa date jedna~ine su x 1 = x 2 = 1 (dvostruko re{ewe), x 3 = 1 + i

M086 LA 1 M106 GRP. Tema: Baza vektorskog prostora. Koordinatni sustav. Norma. CSB nejednakost

III VEŽBA: FURIJEOVI REDOVI

numeričkih deskriptivnih mera.

Zavrxni ispit iz Matematiqke analize 1

XI dvoqas veжbi dr Vladimir Balti. 4. Stabla

(P.I.) PRETPOSTAVKA INDUKCIJE - pretpostavimo da tvrdnja vrijedi za n = k.

Kontrolni zadatak (Tačka, prava, ravan, diedar, poliedar, ortogonalna projekcija), grupa A

Elektrotehnički fakultet univerziteta u Beogradu 17.maj Odsek za Softversko inžinjerstvo

Zadaci iz Osnova matematike

4.7. Zadaci Formalizam diferenciranja (teorija na stranama ) 343. Znajući izvod funkcije x arctg x, odrediti izvod funkcije x arcctg x.

7 Algebarske jednadžbe

Neka su A i B proizvoljni neprazni skupovi. Korespondencija iz skupa A u skup B definiše se kao proizvoljan podskup f Dekartovog proizvoda A B.

radni nerecenzirani materijal za predavanja

MATRICE I DETERMINANTE - formule i zadaci - (Matrice i determinante) 1 / 15

Konstruisati efikasan algoritam znači dati skup preciznih uputstava kako doći do rešenja zadatog problema Algoritmi se mogu opisivati:

a M a A. Može se pokazati da je supremum (ako postoji) jedinstven pa uvodimo oznaku sup A.

Verovatnoća i Statistika I deo Teorija verovatnoće (zadaci) Beleške dr Bobana Marinkovića

Računarska grafika. Rasterizacija linije

MATEMATIKA 2. Grupa 1 Rexea zadataka. Prvi pismeni kolokvijum, Dragan ori

INTEGRALNI RAČUN. Teorije, metodike i povijest infinitezimalnih računa. Lucija Mijić 17. veljače 2011.

Univerzitet u Nišu, Prirodno-matematički fakultet Prijemni ispit za upis OAS Matematika

Sortiranje prebrajanjem (Counting sort) i Radix Sort

Algoritmi i strukture podataka - 1.cas

PID: Domen P je glavnoidealski [PID] akko svaki ideal u P je glavni (generisan jednim elementom; oblika ap := {ab b P }, za neko a P ).

2 tg x ctg x 1 = =, cos 2x Zbog četvrtog kvadranta rješenje je: 2 ctg x

Cauchyjev teorem. Postoji više dokaza ovog teorema, a najjednostvniji je uz pomoć Greenove formule: dxdy. int C i Cauchy Riemannovih uvjeta.

Prvi pismeni zadatak iz Analize sa algebrom novembar Ispitati znak funkcije f(x) = tgx x x3. 2. Naći graničnu vrednost lim x a

KOMUTATIVNI I ASOCIJATIVNI GRUPOIDI. NEUTRALNI ELEMENT GRUPOIDA.

IZRAČUNAVANJE POKAZATELJA NAČINA RADA NAČINA RADA (ISKORIŠĆENOSTI KAPACITETA, STEPENA OTVORENOSTI RADNIH MESTA I NIVOA ORGANIZOVANOSTI)

Zadaci sa prethodnih prijemnih ispita iz matematike na Beogradskom univerzitetu

TRIGONOMETRIJSKE FUNKCIJE I I.1.

Pismeni ispit iz matematike Riješiti sistem jednačina i diskutovati rješenja sistema u zavisnosti od parametra: ( ) + 1.

DRUGI KOLOKVIJUM IZ MATEMATIKE 9x + 6y + z = 1 4x 2y + z = 1 x + 2y + 3z = 2. je neprekidna za a =

Vremenske i prostorne klase složenosti

Matematička analiza 1 dodatni zadaci

SKUPOVI I SKUPOVNE OPERACIJE

Jednodimenzionalne slučajne promenljive

radni nerecenzirani materijal za predavanja R(f) = {f(x) x D}

APROKSIMACIJA FUNKCIJA

IZVODI ZADACI (I deo)

Apsolutno neprekidne raspodele Raspodele apsolutno neprekidnih sluqajnih promenljivih nazivaju se apsolutno neprekidnim raspodelama.

KVADRATNA FUNKCIJA. Kvadratna funkcija je oblika: Kriva u ravni koja predstavlja grafik funkcije y = ax + bx + c. je parabola.

Trigonometrija 2. Adicijske formule. Formule dvostrukog kuta Formule polovičnog kuta Pretvaranje sume(razlike u produkt i obrnuto

ASIMPTOTE FUNKCIJA. Dakle: Asimptota je prava kojoj se funkcija približava u beskonačno dalekoj tački. Postoje tri vrste asimptota:

( ) ( ) 2 UNIVERZITET U ZENICI POLITEHNIČKI FAKULTET. Zadaci za pripremu polaganja kvalifikacionog ispita iz Matematike. 1. Riješiti jednačine: 4

Deljivost. 1. Ispitati kada izraz (n 2) 3 + n 3 + (n + 2) 3,n N nije deljiv sa 18.

Pismeni ispit iz matematike GRUPA A 1. Napisati u trigonometrijskom i eksponencijalnom obliku kompleksni broj, zatim naći 4 z.

Linearna algebra 2 prvi kolokvij,

Inženjerska grafika geometrijskih oblika (5. predavanje, tema1)

KVADRATNA FUNKCIJA. Kvadratna funkcija je oblika: Kriva u ravni koja predstavlja grafik funkcije y = ax + bx + c. je parabola.

Iskazna logika 1. Matematička logika. Department of Mathematics and Informatics, Faculty of Science, University of Novi Sad, Serbia.

Dvanaesti praktikum iz Analize 1

Program za tablično računanje Microsoft Excel

10 Iskazni račun - deduktivni sistem za iskaznu logiku

SOPSTVENE VREDNOSTI I SOPSTVENI VEKTORI LINEARNOG OPERATORA I KVADRATNE MATRICE

Sume kvadrata. mn = (ax + by) 2 + (ay bx) 2.

RAČUNSKE VEŽBE IZ PREDMETA POLUPROVODNIČKE KOMPONENTE (IV semestar modul EKM) IV deo. Miloš Marjanović

I Pismeni ispit iz matematike 1 I

Dijagonalizacija operatora

Veleučilište u Rijeci Stručni studij sigurnosti na radu Akad. god. 2011/2012. Matematika. Monotonost i ekstremi. Katica Jurasić. Rijeka, 2011.

Riješeni zadaci: Nizovi realnih brojeva

Linearna algebra 2 prvi kolokvij,

Glava 1. Realne funkcije realne promen ive. 1.1 Elementarne funkcije

1 Promjena baze vektora

Funkcije dviju varjabli (zadaci za vježbu)

4 Numeričko diferenciranje

1 Afina geometrija. 1.1 Afini prostor. Definicija 1.1. Pod afinim prostorom nad poljem K podrazumevamo. A - skup taqaka

1 Svojstvo kompaktnosti

Algebarske strukture sa jednom operacijom (A, ): Ako operacija ima osobine: zatvorenost i asocijativnost, onda je (A, ) polugrupa

Sistemi veštačke inteligencije primer 1

RIJEŠENI ZADACI I TEORIJA IZ

Transcript:

Teorija algoritama, jezika i automata Zoran Ognjanović zorano@mi.sanu.ac.yu MF Beograd, 2007/08 Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 1 / 229

Sadržaj 1 Tehnička pitanja 2 Uvod 3 Teorija algoritama Tjuringova mašina 4 Primitivno rekurzivne funkcije 5 Parcijalno rekurzivne funkcije 6 Tjuring-izračunljive i parc. rek. funkcije 7 Čerčova teza 8 Relativna izračunljivost 9 Odlučivi predikati 10 Parcijalno odlučivi predikati 11 Aritmetička hijerarhija 12 Teorija izračunljivosti i programski jezici Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 2 / 229

Tehnička pitanja Teorija algoritama, jezika i automata: predavanja: 2 časa x 2 semestra asistent Angelina Ilić-Stepić, vežbe: 2 časa x 2 semestra polaganje od juna 2008. godine pismeni ispit ili dva kolokvijuma usmeni ispit (seminarski, kolokvijumi, učešće na seminarima) Internet-stranica predmeta u pripremi (pomoć u izradi poželjna) http://www.mi.sanu.ac.yu/ zorano/taja/taja.html Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 3 / 229

Tehnička pitanja Udžbenik: Uvod u teorijsko računarstvo, Zoran Ognjanović, Nenad Krdžavac, FON, Beograd, 2005. pdf-verzija slobodno dostupna na Internet-stranici predmeta primedbe u vezi grešaka, nejasnoća su dobrodošle Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 4 / 229

Tehnička pitanja Pomoćna literatura: N. Cutland, Computability, an introduction to recursive function theory, Cambridge university press, 1986. J.Hopcroft, J.Ullman, Formal languages and their relation to automata, Addison-Wesley, 1969. H. Lewis, C. Papadimitriou, Elements of the theory of computation, Prentice-Hall, 1981. Ž. Mijajlović, Z. Marković, K. Došen, Hilbertovi problemi i logika, Zavod za udžbenike i nastavna sredstva, Beograd, 1986. C. Papadimitriou, Computational complexity, Addison-Wesley, 1995. Irena Spasić, Predrag Janičić, TAJA - Zbirka zadataka, Matematički fakultet, Beograd, 2000. Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 5 / 229

Uvod Teorijsko računarstvo je matematička disciplina koja se bavi modelima izračunavanja, veštačkom inteligencijom, formalnim jezicima koji se koriste u programiranju itd. Materija izložena u knjizi omogućava razumevanje specifičnih tema u računarstvu i uspostavljanje osnovnih matematičkih paradigmi. Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 6 / 229

Uvod Oblasti teorijskog računarstva koje će biti obrad ivane: teorija algoritama teorija formalnih jezika i automata i složenost izračunavanja Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 7 / 229

Uvod Teorija algoritama 1 Teorijsko računarstvo svoje korene ima u teoriji algoritama (tj. izračunljivih funkcija) oblast nastala izmed u 1930. i 1940. godine, pre razvoja digitalnih računara rezultat pretresanja osnova matematike zbog paradoksa koji su se pojavili krajem XIX i početkom XX veka. Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 8 / 229

Uvod Teorija algoritama 2 postavljalo se pitanje (Entscheidungsproblem, - problem odlučivanja) da li postoji opšti postupak utvrd ivanja istinitosti matematičkih iskaza vodi poreklo još od Gottfried-a Leibnitz-a (1646 1716) koji je u XVII veku, nakon uspešne konstrukcije mehaničke računske mašine, razmišljao o konstrukciji mašine koja bi mogla manipulisati simbolima i na taj način odrediti istinitost iskaza problem je aktuelizovao David Hilbert (1862 1943), u poznatom predavanju na Kongresu matematičara održanom 1900 nezavisno jedan od drugog, Čerč i Tjuring su negativno odgovorili na ovo pitanje (jednakosti λ-izraza, halting problem) Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 9 / 229

Uvod Teorija algoritama 3 odgovor - treba precizirati šta se podrazumeva pod postupkom mehaničkog izvod enja razvoj u okviru matematičke logike oblast su zasnovali: Alonzo Church (1903 1995), Kurt Gödel (1906 1978), Jacques Herbrand (1908 1931), Stephen Kleene (1909 1994), Emil Post (1897 1954), Alan Turing (1912 1954), Andrej Markov (1903 1979) itd. direktan uticaj na teorijske i na praktične aspekte razvoja računarstva: principe programibilnog digitalnog računara opšte namene, koncept pisanja programa kao liste naredbi u formalnom jeziku, interpretiranje i prevod enje programa, razvoj programskih jezika uopšte itd. Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 10 / 229

Uvod Teorija formalnih jezika i automata Osnivač - Noam Chomsky pitanja: opisivanje formalnih jezika i strukture odred enih klasa formalnih jezika (i odgovarajućih klasa automata) osnov za kreiranje i implementaciju programskih jezika, za algoritme prepoznavanja oblika, verifikacije itd. Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 11 / 229

Uvod Teorija složenosti izračunavanja najmlad a grana teorijskog računarstva poreklo: iz analize funkcija u teoriji izračunljivih funkcija u kojoj se ispituje koliko su i zašto neki zadaci teški, tj. koliko je vremena i prostora potrebno da bi bili rešeni na ovo pitanje nije u potpunosti odgovoreno značajan rezultat: klasifikacije problema u odnosu na složenost koja pruža argumente da verujemo da su neki problemi jako teški za izračunavanje nudi orud e za ispitivanje da li je neka alternativna formulacija pogodnija za rešavanje ili postoji prihvatljiv postupak približnog rešavanja primene u kriptologiji (traga se za problemima koji su teški - za zaštitu podataka i računarskih resursa) Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 12 / 229

Uvod Teorijski rezultati inspirišu i usmeravaju rad u računarstvu dajući revolucionarno nove i unapred ene postojeće postupke Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 13 / 229

Uvod Pregled sadržaja 1 Teorija algoritama intuitivni pojam algoritma razlozi za formalizaciju Tjuringove mašine parcijalno izračunljive funkcije Čerčova teza odlučivost nedeterminizam kao koncept izračunavanja Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 14 / 229

Uvod Pregled sadržaja 2 Teorija formalnih jezika i automata formalne gramatike i jezici hijerarhija Čomskog klase automata i veze sa klasama u hijerarhiji Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 15 / 229

Uvod Pregled sadržaja 3 Složenost izračunavanja apstraktna teorija složenosti koja ne zavisi od vrste resursa koji se procenjuje definicije klasa složenosti opisi osnovnih klasa složenosti: L, NL, P, NP, PSPACE i EXP i njihovih karakterističnih problema problem odnosa klasa P i NP verovatnosne klase složenosti RP i BPP, sistemi interaktivnih dokaza i protokoli bez prenosa znanja, primene u kriptologiji pristup Kolmogorova Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 16 / 229

Teorija algoritama rešavanje problema razvojem algoritama i pisanjem programa je jedan od osnovnih zadataka u računarstvu matematičkim sredstvima proučavaju se i sami postupci rešavanja, algoritmi. formalni modeli izračunavanja koje ćemo razmatrati - Tjuringove mašine i parcijalno rekurzivne funkcije naizgled različiti, odred uju jednu te istu klasu algoritama što navodi na tezu da ti modeli izračunavanja upravo odred uju granice mogućnosti mehaničkog izračunavanja granice razdvajaju klase problema na one na za koje, u principu, postoji mogućnost programskog rešavanja i one za koje to nije slučaj Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 17 / 229

Teorija algoritama Intuitivni pojam algoritma 1 Intuitivni pojam algoritma postupak se opisuje konačnim nizom jednostavnih naredbi postoji idealna mašina (računar) koja izvršava te naredbe prema unapred utvrd enim pravilima, ta mašina započinje izračunavanje u nekom inicijalnom stanju; primenjena na ulazne podatke mašina izvršava naredbe u diskretnim koracima u kojima menja svoja stanja, izvršavanje svake naredbe se izvodi u konačnom vremenu pri čemu se koristi konačan memorijski prostor, izvršavanje naredbe je determinističko: iz jednog stanja izvršavanjem iste naredbe mašina uvek prelazi u isto stanje i prelaskom u završno stanje mašina prestaje sa izračunavanjem. Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 18 / 229

Teorija algoritama Intuitivni pojam algoritma 2 determinisanost - mogućnost ponavljanja izvršavanja algoritama nedeterministički algoritmi ne zahteva se da se algoritam uvek završi, tj. da se rezultat uvek dobije u konačnom vremenu (finitnost), slično i sa zahtevom za ukupno memorijsko zauzeće algoritam predstavlja opis funkcije koja ulazne podatke preslikava u odgovor algoritamske (efektivne, izračunljive) funkcije Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 19 / 229

Teorija algoritama Za probleme za koje poznajemo postupke rešavanja lako utvrd ujemo da jesu algoritamski rešivi. Šta ako nismo u stanju da damo rešenje? Da li je to samo posledica naše nesposobnosti ili je reč o principijelnoj nemogućnosti? Potrebno je formalno precizirati pojmove algoritma. Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 20 / 229

Teorija algoritama Nule diofantovskih jednačina 1 Problem postojanja efektivnog postupka za utvrd ivanje da li proizvoljna diofantovska jednačina p(x 1,..., x m ) = 0 ima nenegativna celobrojna rešenja p(x 1,..., x m ) je polinom sa celobrojnim koeficijentima i promenljivim x 1,..., x m x 4 1 x 3 3x 5 2 + 6 nabrajanjem svih m-torki prirodnih brojeva i proverom da li predstavljaju nule polinoma bi se, pre ili posle, stiglo do rešenja jednačine, ako ono postoji neke jednačine ovog tipa (x 2 2 = 0), nemaju rešenja, prethodno opisani postupak se u takvim slučajevima ne bi nikada završio, zbog čega i ne predstavlja rešenje problema Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 21 / 229

Teorija algoritama Nule diofantovskih jednačina 2 provera postojanja rešenja diofantovskih jednačina je zapravo ekvivalentna formulacija desetog Hilbertovog problema svaki eventualni odgovor na ovo pitanje mora na neki način ponuditi i formalnu definiciju onoga što se podrazumeva pod efektivnim postupkom, bilo u smislu da ponud eno rešenje potpada pod tu definiciju, bilo da ne postoji rešenje sa zahtevanim svojstvima formalna definicija efektivnog postupka pojavila se razvojem teorije algoritama, Jurij Matijaševič je 1970. godine sredstvima razvijenim u okviru te teorije negativno (negativno) rešio sam problem Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 22 / 229

Teorija algoritama Formalni algoritamski sistemi 1 Sistem izračunljivosti predstavljen u formalnom sistemu aritmetike je predložio Gedel izmed u 1931. i 1934. godine, pri čemu se funkcija f smatra izračunljivom ako za svako m i n za koje je f (m) = n, u formalnom sistemu važi f (m) = n. Prikazivanje izračunljivih funkcija kao jedinstvenih rešenja sistema funkcionalnih jednačina je u istom periodu opisao takod e Gedel, a prema ideji Erbrana. λ-račun koji je razvio Čerč do 1936. godine je jednostavan formalni jezik za koji se definiše pojam redukcije koji predstavlja izračunavanje, a funkcija je izračunljiva ako se može opisati u jeziku. Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 23 / 229

Teorija algoritama Formalni algoritamski sistemi 2 Sistemi zasnovani na automatima formalizuju pojam algoritma opisujući idealne modele računara (neki sistemi su dati pre nastanka digitalnih računara): Tjuringova mašina (1936.) Postova mašina (1936.) Neograničena registarska mašina (URM, Shepherdson i Sturgis 1963.) Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 24 / 229

Teorija algoritama Formalni algoritamski sistemi 3 Aritmetički opis zasnovao je Klini (generaliě induktivne definicije) Sistemi produkcija (sistemi sa prezapisivanjem, Rewriting systems): Postovi sistemi iz 1943. godine, Markovljevi algoritmi uvedeni 1954. godine i Gramatike Čomskog predložene 1956. godine, su jedna vrsta formalnih sistema u kojima se opisuju moguće transformacije jednih u druge reči na unapred fiskiranom alfabetu. Funkcije se opisuju kao skupovi parova reči (u, v) za koje postoji niz reči koje se dobijaju počev od u primenama pravila izvod enja i koji završava rečju v. while-programi su vrsta notacije proizašle iz ideja Goldstine-a (Goldštajna) i János-a (John) von Neumann-a (1903 1957) o algoritamskim šemama (flowchart) kao formalizmu za prikazivanje izračunljivih funkcija. while-programi se sastoje samo od naredbi dodeljivanja, nizanja naredbi i while-naredbi. Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 25 / 229

Teorija algoritama Formalni algoritamski sistemi 4 Izvori inspiracije ovih sistema se med usobno značajno razlikuju, ali se pokazuje da su sistemi med usobno ekvivalentni. Ovo, kao i neuspeh pokušaja konstrukcije zadatka i postupka njegovog rešavanja koji ne potpadaju pod ove klasifikacije daje za pravo verovanju da je postignut nekakav apsolutni koncept i da se svi algoritmi mogu izraziti u svakom od ovih sistema, što je formulisano Čerčovom tezom. Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 26 / 229

Teorija algoritama Tjuringova mašina Digitalni računar se na apstraktnom nivou obično prikazuje kao celina sastavljena od procesora, memorije i ulazno-izlaznih ured aja. Procesor iz memorije pribavlja naredbe i podatke nad kojima se vrši obrada u skladu sa značenjem naredbi, a dobijeni rezultati se vraćaju u memoriju. Preko ulazno-izlaznih ured aja podaci koji će biti obrad eni se unose u memoriju, odnosno iz memorije se preuzimaju rezultati obrade i prikazuju na odgovarajući način. Komunikacija delova računara se obavlja preko magistrala. Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 27 / 229

Teorija algoritama Tjuringova mašina Tjuringova mašina je preteča ovakvog modela računara, pri čemu su neka svojstva idealizovana: memorija - potencijalno beskonačna u svakom koraku izračunavanja Tjuringove mašine zauzet je samo konačan broj memorijskih registara, ne postoji ograničenje koliki je taj konačan broj registara svakom koraku izračunavanja moguće je i zahtevati novi, do tada neiskorišteni memorijski registar i svaki takav zahtev se ispunjava Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 28 / 229

Teorija algoritama Tjuringova mašina Tjuringova mašina je restrikcija koncepta savremenog računara u smislu operacija koje je u stanju da izvršava, a koje su elementarne. Operacije su dovoljne za opisivanje proizvoljnih algoritama. Prednost u odnosu na bogatije programske jezike je upravo u jednostavnosti koja olakšava analizu. Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 29 / 229

Teorija algoritama Tjuringova mašina U teorijskom računarstvu se razmatraju i slabije klase mašina koje su restrikcije druge vrste u odnosu na aktuelne računare: neki modeli nemaju memoriju (konačni automati (Finite automata) memorija je organizovana na poseban način (stek kod potisnih automata (Push-down automata), ulazno-izlazni podaci su ograničeni na reči neki automati nemaju izlaz (konačni automati) itd. Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 30 / 229

Teorija algoritama Tjuringova mašina Alfabet 1 svaki problem se izražava u nekom jeziku alfabet je skup znaka koji su nedeljive celine reč na nekom alfabetu je bilo koja konačna sekvenca znaka tog alfabeta sekvenca od nula znaka se naziva prazna reč reči se razdvajaju znakom blanko koji se ne smatra delom alfabeta već pomoćnim simbolom jezik je neki podskup skupa svih reči odgovarajućeg alfabeta t je podreč od q ako postoje, možda i prazne, reči u i v tako da je q = utv. obično je alfabet konačan skup znaka koristićemo unarni alfabet A = {1} blanko-znak (0) Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 31 / 229

Teorija algoritama Tjuringova mašina Neformalni opis Tjuringove mašine Tjuringova mašina se sastoji od: trake podeljene u ćelije, memorijske registre, koja se neograničeno pruža na levo i desno; broj ćelija (tj. dužina trake) je neograničen; sadržaj svake ćelije je ili znak 1 ili blanko znak (znak 0), glave koja se uvek nalazi nad tačno jednom ćelijom trake i može: pročitati sadržaj ćelije nad kojom se nalazi i upisati u ćeliju nad kojom se nalazi znak 1 ili 0 (blanko znak, tj. obrisati ćeliju) ili pomeriti se za jedan korak u levo ili u desno u odnosu na trenutnu poziciju, indikatora stanja mašine. Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 32 / 229

Teorija algoritama Tjuringova mašina Neformalni opis Tjuringove mašine TM se u svakom trenutku nalazi u tačno jednom od konačno mnogo stanja koje se eventualno menja nakon svakog koraka izračunavanja. Skup svih stanja mašine označićemo sa S = {q 0, q 1,...}. Izvršavanje mašine se izvodi pod dejstvom programa - konačan niz naredbi. Svaka naredba je četvorka oblika: q i s o q j gde su q i i q j neka stanja iz skupa S, s je znak nad kojim se nalazi glava mašine, a o {1, 0, L, R} je oznaka operacije. Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 33 / 229

Teorija algoritama Tjuringova mašina Neformalni opis Tjuringove mašine U svakom koraku rada mašina analizira stanje u kojem se nalazi i sadržaj ćelije nad kojom je glava, a zatim izvršava naredbu koja ima odgovarajuće vrednosti parametara q i i s. Efekat izvršenja naredbe q i s o q j : ako je o = 1, u ćeliju nad kojom se nalazi glava upisuje se znak 1, ako je o = 0, u ćeliju nad kojom se nalazi glava upisuje se 0, tj. blanko znak, ako je o = L, glava se pomera ulevo za jednu ćeliju i ako je o = R, glava se pomera udesno za jednu ćeliju. potom mašina menja stanje i prelazi u stanje q j. Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 34 / 229

Teorija algoritama Tjuringova mašina Neformalni opis Tjuringove mašine Primeri determinističkih naredbi: q 5 0 1 q 17, q 1 0 0 q 2 i q 0 1 L q 0. Primeri nedeterminističkih naredbi (q i i s see poklapaju, a vrednosti parametara o i q j se razlikuju): q 4 1 1 q 5 i q 4 1 L q 2 Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 35 / 229

Teorija algoritama Tjuringova mašina Neformalni opis Tjuringove mašine Konvencije: Stanje q 0 S - početno stanje Inicijalno, mašina se uvek nalazi u početnom stanju. Pri tome traka sadrži samo konačno mnogo ćelija u koje je upisan znak 1, dok sve ostale ćelije sadrže znak 0. Reč se na traci prikazuje kao neprekidan niz ćelija koje sadrže znak 1, a sa leve i desne strane tog niza se nalazi najmanje po jedan blanko znak (0). Po pravilu, na početku i na kraju izvršavanja glava mašine se nalazi iznad najlevlje ćelije koja sadrži znak 1. Skup stanja S proširićemo jednim novi stanjem q z koje ne pripada do sada razmatranom skupu stanja. q z - završno stanje; Kada se mašina nad e u stanju q z ona prekida sa izvršavanjem. Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 36 / 229

Teorija algoritama Tjuringova mašina Neformalni opis Tjuringove mašine Definition Pod konfiguracijom Tjuringove mašine podrazumevamo opis koji sadrži: opis sadržaja trake, položaj glave i stanje mašine. Standardna konfiguracija je konfiguracija u kojoj je: ili traka prazna (tj. sve ćelije sadrže blanko znak) ili sadrži najviše konačno mnogo nepraznih reči razdvojenih po jednim blanko znakom, glava mašine je iznad prve (gledano sa leva) ćelije trake koja sadrži znak 1 i ako počinje sa izvršavanjem, mašina se nalazi u početnom stanju q 0, a ako završava sa radom u završnom stanju q z. Programi - funkcije koje preslikavaju skup konfiguracija mašine u samog sebe. Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 37 / 229

Teorija algoritama Tjuringova mašina Neformalni opis Tjuringove mašine Na traci je jedna reč sastavljena od 1 (ostatak su 0) nad čijim krajnjim levim znakom se nalazi glava. Program dopisuje dva znaka 1 sa desne strane reči, glavu vraća na levo, na početak reči, pa staje: q 0 1 R q 0 glava se pomera udesno, na kraj reči q 0 0 1 q 1 na mestu prve 0 upisuje se 1 q 1 1 R q 2 glava se pomera udesno q 2 0 1 q 3 na mestu druge 0 upisuje se 1 q 3 1 L q 3 glava se pomera ulevo q 3 0 R q z do prve 0, ide udesno i zaustavlja se... 01q 0 1000...... 0111q 3 10...... 011q 0 000...... 011q 3 110...... 0110q 0 00...... 01q 3 1110...... 0111q 1 00...... 0q 3 11110...... 01110q 2 0...... 01q z 1110...... 01111q 3 0... Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 38 / 229

Teorija algoritama Tjuringova mašina Neformalni opis Tjuringove mašine U opisu Tjuringove mašine ne kaže se šta se dogad a ako za sadržaj ćelije nad kojim se nalazi glava i tekuće stanje mašine u programu ne postoji odgovarajuća naredba. Ovo odgovara zaglavljivanju programa pisanih na standardnim programskim jezicima i može se formalizovati kompletiranjem programa naredbama koje u takvim situacijama ne menjaju ni stanje, ni poziciju glave, ni sadržaj ćelije nad kojom se glava nalazi. Ako u programu ne postoji naredba koja odgovara situaciji kada je mašina u stanju q i, a sadržaj ćelije nad kojom se nalazi glava 0, možemo program proširiti naredbom koja predstavlja jednu beskonačnu petlju: q i 0 0 q i Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 39 / 229

Teorija algoritama Tjuringova mašina Tjuringove mašine i funkcije Tjuringove mašine se mogu iskoristiti kao algoritmi, tj. za izračunavanje funkcija koje preslikavaju prirodne brojeve u prirodne brojeve. Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 40 / 229

Teorija algoritama Tjuringova mašina Tjuringove mašine i funkcije Definition Aritmetička funkcija je preslikavanje f za koje važi: domen preslikavanja, Dom(f ), je podskup skupa N k (k > 0) i kodomen preslikavanja, Im(f ), je podskup skupa N. Ako je za neki k > 0, Dom(f ) = N k, f je totalna funkcija. Ako je Dom(f ) N k, za neki k > 0 i Dom(f ) N k, f je parcijalna funkcija. Definition Unarna reprezentacija prirodnog broja n u unarnom alfabetu A = {1} je reč koja sadrži n + 1 znak 1. Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 41 / 229

Teorija algoritama Tjuringova mašina Tjuringove mašine i funkcije Definition Neka je f aritmetička funkcija oblika f : X N, gde je X N. Funkcija f je Tjuring-izračunljiva ako postoji program P za Tjuringovu mašinu tako da je za svaki m X : pre početka izvršavanja programa P Tjuringova mašina u standardnoj konfiguraciji, pri čemu je jedina reč zapisana na traci unarna reprezentacija broja m i po završetku rada programa P Tjuringova mašina u standardnoj konfiguraciji, pri čemu je jedina reč zapisana na traci unarna reprezentacija broja f (m). Program P tada izračunava funkciju f. Analogno je moguće definisati k-arne aritmetičke Tjuring-izračunljive funkcije. Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 42 / 229

Teorija algoritama Tjuringova mašina Tjuringove mašine i funkcije Tjuring-izračunljive funkcije su parcijalne, odnosno ako se neki m ne nalazi u domenu Tjuring-izračunljive funkcije f, odgovarajući program P ne staje. q 0 0 0 q 0 q 0 1 1 q 0 Program nikada ne staje, pa izračunava jedino funkciju čiji je domen prazan skup. Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 43 / 229

Teorija algoritama Tjuringova mašina Tjuringove mašine i funkcije P(x 1, x 2,..., x k ) y označava da program P polazeći od standardne konfiguracije u kojoj traka sadrži unarne reprezentacije prirodnih brojeva x 1, x 2,..., x k završava rad pri čemu se mašina nalazi u standardnoj konfiguraciji u kojoj traka sadrži unarnu reprezentaciju prirodnog broja y. P(x 1, x 2,..., x k ) znači da je za neko y ispunjeno P(x 1, x 2,..., x k ) y. P(x 1, x 2,..., x k ) znači da nije P(x 1, x 2,..., x k ). Definition Program P konvergira za ulaz x 1, x 2,..., x k ako je ispunjeno P(x 1, x 2,..., x k ). Program P divergira za ulaz x 1, x 2,..., x k ako je ispunjeno P(x 1, x 2,..., x k ). Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 44 / 229

Teorija algoritama Tjuringova mašina Tjuringove mašine i funkcije Sledeći program izračunava funkciju f (x) = 0. q 0 1 0 q 1 q 0 0 1 q z q 1 0 R q 0 Sadržaj trake se briše, pri čemu se glava pomera na desno. Kada se naid e na prvi znak 0, upisuje se znak 1 i završava rad. Dakle, P(x) 0. Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 45 / 229

Teorija algoritama Tjuringova mašina Tjuringove mašine i funkcije Sledeći program izračunava funkciju naslednika prirodnog broja u nizu prirodnih brojeva, f (x) = x. q 0 1 L q 0 q 0 0 1 q z U programu se glava najpre pomera na levo, nakon čega se nalazi iznad ćelije koja sadrži znak 0. U tu ćeliju se upisuje znak 1 i prelazi u završno stanje. Dakle, P(x) x. Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 46 / 229

Teorija algoritama Tjuringova mašina Tjuringove mašine i funkcije, f (x 1,..., x k ) = x i (1) Sledeći program za fiksirane k i i (k i 1) izračunava funkciju koja se naziva i-ta projekcija, f (x 1,..., x k ) = x i. q 0 1 0 q 1 briše zapisa broja x 1 q 0 0 R q 2 q 1 0 R q 0... q j 1 0 q j+1 briše zapisa broja x i 1 q j 0 R q j+2 q j+1 0 R q j q j+2 1 R q j+2 prelazi zapis broja x i q j+2 0 R q j+3 q j+3 1 0 q j+4 briše zapisa broja x i+1 q j+3 0 R q j+5 q j+4 0 R q j+3... Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 47 / 229

Teorija algoritama Tjuringova mašina Tjuringove mašine i funkcije, f (x 1,..., x k ) = x i (2)... q l 1 0 q l+1 q l 0 L q s q l+1 0 R q l q s 0 L q s q s 1 L q s+1 q s+1 1 L q s+1 q s+1 0 R q z briše zapisa broja x k vraća se na početak zapisa broja x i Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 48 / 229

Teorija algoritama Tjuringova mašina Tjuring-neizračunljive funkcije Kako je svaki program konačan niz naredbi, a svaka naredba konačan niz simbola iz nekog prebrojivog skupa, to postoji samo prebrojivo mnogo programa. Kako svih aritmetičkih funkcija ima neprebrojivo mnogo, to znači da postoje funkcije koje nisu Tjuring-izračunljive. Theorem Tjuring-izračunljivih funkcija ima prebrojivo mnogo. Postoje funkcije koje nisu Tjuring-izračunljive. Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 49 / 229

Teorija algoritama Tjuringova mašina Formalni opis Tjuringove mašine Definition Tjuringova mašina je ured ena petorka S, q 0, q z, A, δ gde su: S konačan skup stanja, q 0 je početno stanje, q 0 S, q z je završno stanje, q z S, A = {1, 0} alfabet, program δ : (S \ {q z }) A (A {L, R}) S. Naredba Tjuringove mašine M = S, q 0, q z, A, δ je svaka četvorka q i, s, o, q j gde je δ(q i, s) = (o, q j ). Za δ ne postoje dve naredbe koje se poklapaju po za q i i s, a koje se razlikuju pu (o, q j ) - definicija determinističke mašine. Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 50 / 229

Teorija algoritama Tjuringova mašina Formalni opis Tjuringove mašine Pretpostavke: ćelije trake su numerisane celim brojevima 0 označava ćelija nad kojom je glava pre početka izvršavanja programa levo od nje ćelije označavamo sa 1, 2, 3,... desno od nje ćelije označavamo 1, 2, 3,... Opis trake: preslikavanje F : Z A, F (z) = 1, ako je u ćeliji označenoj brojem z upisan znak 1 ako ćelija z sadrži blanko znak, F (z) = 0. Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 51 / 229

Teorija algoritama Tjuringova mašina Formalni opis Tjuringove mašine Definition Konfiguracija Tjuringove mašine M = S, q 0, q z, A, δ je svaka trojka F, q, e gde su: F opis trake, q S tekuće stanje i e Z broj ćelije nad kojom se nalazi glava. Izvršavanje programa se odvija u koracima u kojima se menjaju konfiguracije. Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 52 / 229

Teorija algoritama Tjuringova mašina Formalni opis Tjuringove mašine Definition Računski korak Tjuringove mašine M = S, q 0, q z, A, δ za naredbu I = q i, s, o, q j je svaki par konfiguracija ((F, q, e ), (F, q, e )) za koje je ispunjeno: q i = q, F (e ) = s, q j = q, ako je operacija o = 1, onda važi: e = e i F i F se poklapaju, sem što je F (e ) = 1, Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 53 / 229

Teorija algoritama Tjuringova mašina Formalni opis Tjuringove mašine ako je operacija o = 0, onda važi: e = e i F i F se poklapaju, sem što je F (e ) = 0, ako je operacija o = L, onda važi: e 1 = e i F i F se poklapaju, ako je operacija o = R, onda važi: e + 1 = e i F i F se poklapaju, (F, q, e ) I (F, q, e ) označava da je ((F, q, e ), (F, q, e )) računski korak za naredbu I. Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 54 / 229

Teorija algoritama Tjuringova mašina Formalni opis Tjuringove mašine Definition Izračunavanje za Tjuringovu mašinu M = S, q 0, q z, A, δ i program P opisan funkcijom δ je niz konfiguracija (F 0, q 0, e 0 ), (F 1, q 1, e 1 ),..., (F m, q m, e m ) sa osobinom da važi: za (F 0, q 0, e 0 ) I1 (F 1, q 1, e 1 ), za neku naredbu I 1 programa P i stanje q 0 = q 0, za svaki prirodan broj k, 0 < k < m 1 je (F k 1, q k 1, e k 1 ) Ik (F k, q k, e k ), neku naredbu I k programa P, (F m 1, q m 1, e m 1 ) Im (F m, q m, e m ), za neku naredbu I m programa P i stanje q m = q z, za svaki k {0, m 1}, stanje q k q z, Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 55 / 229

Teorija algoritama Tjuringova mašina Formalni opis Tjuringove mašine e 0 = 0 i za svaki i < 0, F 0 (i) = 0, postoje n > 0 i k 1,..., k n takvi da je e 0 k 1 < k 2 <... < k n i za svaki i za koji je e 0 i k 1, F 0 (i) = 1, F 0 (k 1 + 1) = 0, za svaki i za koji je k 1 + 1 < i k 2, F 0 (i) = 1, F 0 (k 2 + 1) = 0,..., za svaki i za koji je k n 1 + 1 < i k n, F 0 (i) = 1 i za svaki i za koji je k n < i, F 0 (i) = 0, F m (e m ) = 1 i za svaki i < e m, F m (i) = 0 i postoji k e m tako da je za svaki i za koji je e m i k, F m (i) = 1 i za svaki j > k, F m (j) = 0. Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 56 / 229

Teorija algoritama Tjuringova mašina Kombinovanje Tjuringovih mašina imamo program za f (x) = x + 1 želimo g(x) = x + 2 napisati novi program, uočiti da je g(x) = f (f (x)), tj. da se funkcija g dobija kompozicijom funkcije f sa samom sobom, te iskoristiti program za f Sa S(P) označimo skup stanja programa P. Dva programa P 1 i P 2 imaju disjunktne skupove stanja ako je S(P 1 ) S(P 2 ) = {q 0, q z }. Posmatrajmo sada dve kopije programa za f sa tako imenovanim stanjima da imaju disjunktne skupove stanja. Neka je q 1 takvo stanje da se ne nalazi ni u S(P 1 ) ni u S(P 2 ). Zatim zamenimo sve pojave završnog stanja u prvoj kopiji programa i sve pojave početnog stanja u drugoj kopiji programa stanjem q 1 i nadovežimo drugu kopiju programa na prvu. Ovako dobijeni program je kompozicija dva razmatrana programa. Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 57 / 229

Teorija algoritama Tjuringova mašina Kombinovanje Tjuringovih mašina - grananje u programima Slabimo zahtev iz definicija: u standardnoj konfiguraciji glava mašine ne mora da se pozicionira nad kranjom levom ćelijom trake koja sadrži znak 1 ni na početku, ni na kraju izvršavanja mašine. Neka su P, Q i R takvi programi sa disjunktnim skupovima stanja. Završno stanje programa P sa qz P, a početna stanja programa Q i R sa q Q 0 i q0 R. P naredbe programa P qz P 0 0 q Q 0 prelazi se na program Q qz P 1 1 q0 R prelazi se na program R Q naredbe programa Q R naredbe programa R Nakon izvršavanja programa P, ako se glava nalazi nad ćelijom koja sadrži znak 0, nastavlja se sa izvršavanjem programa Q, a ako je sadržaj ćelije znak 1, nastavlja se sa izvršavanjem programa R. Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 58 / 229

Teorija algoritama Tjuringova mašina Kombinovanje Tjuringovih mašina Sledeći jednostavni programi za Tjuringovu mašinu mogu poslužiti kao osnovne gradivne jedinice složenijih programa koji se dobijaju kompozicijom i grananjem: program koji u tekuću ćeliju upisuje znak 1 i potom staje, program koji u tekuću ćeliju upisuje znak 0 i potom staje, program koji pomera glavu za jedno mesto u levo i potom staje i program koji pomera glavu za jedno mesto u desno i potom staje. Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 59 / 229

Teorija algoritama Tjuringova mašina Varijante Tjuringove mašine alfabet kojim se zapisuje sadržaj ćelija trake ne mora biti unarni, pored završnog stanja q z uvode se i neka specijalna završna stanja, recimo q da i q ne koja, intuitivno, znače pozitivan, odnosno, negativan odgovor na postavljeni problem, dozvoljena je traka koja je beskonačna samo na jednu stranu, tj. postoji krajnja leva ćelija, dok se na desno traka pruža neograničeno, umesto samo jedne postoji više traka, a za svaku traku postoji posebna glava, nad jednom trakom postoji više glava umesto samo jedne, traka je dvodimenzionalna, a ne jednodimenzionalna, tj. traka podseća na beskonačnu šahovsku ploču, u jednoj naredbi mašine moguće je i upisati znak u ćeliju i pomerati glavu, ne važi zahtev za determinisanošću itd. Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 60 / 229

Teorija algoritama Tjuringova mašina Varijante Tjuringove mašine Uglavnom, u smislu izračunljivosti gotovo sve od ovih varijanti Tjuringove mašine odgovaraju istoj klasi funkcija, tj. klasi Tjuring-izračunljivih funkcija, kao i osnovna verzija mašine. Izuzetak predstavljaju neki slabiji, restriktivni slučajevi: recimo, mašina čija traka je ograničena sa jedne strane i koristi unarni alfabet ili mašina koja ima samo dva stanja i koristi alfabet od dva znaka. Ekvivalencija varijanti Tjuringove mašine se dokazuje tako što se pokaže da za svaki program P za neku od varijanti Tjuringove mašine postoje programi za preostale varijante koji simuliraju izvršenje programa P i izračunavaju istu funkciju. Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 61 / 229

Teorija algoritama Tjuringova mašina Tjuringova mašina sa bogatijim alfabetom reči bilo kog prebrojivog alfabeta se mogu prikazati pomoću unarnog alfabeta u većini slučajeva (mašine sa trakom koja nije ograničena ni sa jedne strane) alfabet može, zavisno od potrebe, slobodno odred ivati binarna, a ne kao do sada u unarnoj, reprezentacija prirodnih brojeva - ušteda (unarna reprezentacija prirodnih brojeva je eksponencijalno duža od binarne). Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 62 / 229

Teorija algoritama Tjuringova mašina Tjuringova mašina sa trakom koja ima početak sa leve strane Alfabet sadrži još jedan specijalni znak, služi da se prepozna početna ćelija sa leve strane preko se nikada ne prepisuje ni jedan drugi simbol, niti se glava sme pomeriti levo kada je u ćeliji ispod glave dozvoljene su jedino narede oblika q i R q j Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 63 / 229

Teorija algoritama Tjuringova mašina Tjuringova mašina sa trakom koja ima početak sa leve strane sve funkcije koje se izračunavaju pomoću Tjuringove mašine čija traka ima najlevlju ćeliju mogu izračunati i pomoću standardne varijante mašine ne koristi se deo trake koji se nalazi sa leve strane ćelije iznad koje je pozicionirana glava pre početka izvršavanja Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 64 / 229

Teorija algoritama Tjuringova mašina Tjuringova mašina sa trakom koja ima početak sa leve strane TM M 1 (na traci neograničenoj u oba smera) izračunava neku funkciju f Konstruišimo M 2 čija traka je ograničena sa leve strane i koja radi isto što i M 1 označimo ćelije trake mašine M 1 celim brojevima traku presavijemo tako da formira dva reda, kao na slici dodajemo još jednu posebnu ćeliju koja predstavlja levi kraj tako dobijene trake. { 0 1 2 1 2 3 Figure: Jednostrana traka Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 65 / 229

Teorija algoritama Tjuringova mašina Tjuringova mašina sa trakom koja ima početak sa leve strane Alfabet A 2 = {(0, 0), (1, 0), (0, 1), (1, 1), } za M 2 se nalazi samo u najlevljoj ćeliji Parovi znakova opisuju sadržaj odgovarajućih parova ćelija trake mašine M 1 (prva koordinata za gornju, druga za donju ćeliju) Stanja za M 2 : za svako stanje q mašine M 1 postojaće stanja q, 1 i q, 2 - M 2 u stanju q radi nad ćelijama iz gornjeg reda i M 2 u stanju q radi nad ćelijama iz donjeg reda q z, 1 i q z, 2 će - završna stanja. Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 66 / 229

Teorija algoritama Tjuringova mašina Tjuringova mašina sa trakom koja ima početak sa leve strane Naredbi q i s o q j za M 1 odgovaraju 2 naredbe (x {0, 1}): za desnu stranu trake M 1 - q i, 1 (s, x) o q j, 1, gde je L za o = L R za o = R o = (1, x) za o = 1 (0, x) za o = 0 za levu stranu trake M 1 - q i, 2 (x, s) o q j, 2, gde je L za o = R R za o = L o = (x, 1) za o = 1 (x, 0) za o = 0 Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 67 / 229

Teorija algoritama Tjuringova mašina Tjuringova mašina sa trakom koja ima početak sa leve strane Za svako stanje q mašine M 1 dodaju se naredbe: q, 1 R q, 2 i q, 2 R q, 1 koje se izvršavaju kada se glava mašine M 2 nad e nad krajnjom levom ćelijom u koju je upisan posebni simbol. Na ovu ćeliju se može doći pri pomeranju ulevo glave koja obrad uje gornji red trake mašine M 2, nakon čega treba nastaviti kretanje obrad ujući donji red trake (tada se kretanje u levo kod mašine M 1 prikazuje kao kretanje u desno mašine M 2 ). Prelazak sa obrad ivanja gornjeg na obrad ivanje donjeg reda je opisan promenom druge kordinate u stanju mašine. Slično se dešava i kada se obrad ujući donji red trake glava pomera ulevo, što bi odgovaralo pomeranju udesno glave mašine M 1. Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 68 / 229

Teorija algoritama Tjuringova mašina Tjuringova mašina sa trakom koja ima početak sa leve strane Pretpostavimo da mašina M 1 za neki ulaz x izračunava rezultat y. Tada, opis mašine M 2 garantuje analogno ponašanje, pri čemu će sadržaj ćelija 0, 1, 2,... mašine M 1 biti predstavljen prvim koordinatama znaka u ćelijama trake mašine M 2 koje se nalaze neposredno do ćelije trake koja sadrži znak. Modeli su ekvivalentni. Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 69 / 229

Teorija algoritama Tjuringova mašina Tjuringova mašina sa više traka Za neki k > 0 Tjuringova mašina sa k traka sastoji se od traka označenih sa 1, 2, 3,..., k Sve trake imaju kraj sa leve strane, što nije ograničenje Nad svakom trakom nalazi se posebna glava U svakom koraku čita se tekuća ćelija na svakoj od traka i preduzima odgovarajuća akcija q i s 1... s k o 1... o k q j Na početku rada ulazni podaci su na prvoj traci, ostale trake su prazne Ako izvršavanje mašine shvatimo kao izračunavanje neke funkcije, rezultat se smešta u k-tu traku. Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 70 / 229

Teorija algoritama Tjuringova mašina Tjuringova mašina sa više traka Example Da li je neka reč palindrom (čitanjem sa leva na desno i sa desna na levo se dobija isti niz znaka)? reč iz prve trake se iskopira na drugu traku glava prve trake se vrati na levo glava druge ostaje u krajnjoj desnoj poziciji dve glave se kreću u suprotnim smerovima i ispituju da li se nalaze nad jednakim znacima. Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 71 / 229

Teorija algoritama Tjuringova mašina Tjuringova mašina sa više traka Neka je M 1 Tjuringova mašina sa k traka koja izračunava neku funkciju f. Konstruisaćemo mašinu M 2 sa jednom trakom koja će simulirati izvršavanje mašine M 1. Sadržaji k traka mašine M 1 biće redom smešteni u jedinoj traci mašine M 2. Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 72 / 229

Teorija algoritama Tjuringova mašina Tjuringova mašina sa više traka Novi znaci alfabeta za M 2 : - početak trake sa leve strane, glava se ne sme kretati levo od njega, - početak svake od k traka za M 1 i preko njega glava M 2 smeti da prelazi na levo, - desni kraja trenutnog zauzeća svake od predstavljenih traka, dva uzastopna znaka - kraj sadržaja svih k traka od M 1 zapisanih na jedinoj traci mašine M 2, - privremena varijanta znaka u simulaciji nekih koraka rada M 1 i 1, 0 - glava se nalazi upravo iznad znaka 1, odnosno 0 u toj ćeliji. Polazni sadržaj M 2 bi izgledao kao: w... }{{} k 1 w - ulazni podaci za M 1 i prvi znak iz w je podvučena verzija znaka jer se nad njim nalazi glava. Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 73 / 229

Teorija algoritama Tjuringova mašina Tjuringova mašina sa više traka M 2 simulira rad M 1 : za svaki korak rada M 2 dva puta prelazi sadržaj trake sa leva na desno i nazad u prvom prolazu prikuplja informacije o k znaka koji se trenutno nalaze ispod glava mašine M 1 - to su podvučeni znaci na traci za M 2 za pamćenje - nova stanja koja odgovaraju kombinacijama stanja mašine M 1 i k-torki simbola koja se trenutno čita q(o 1,..., o k ) na osnovu tog stanja M 2 u drugom prelasku izvršava akciju koja simulira korak rada M 1 M 2 prelazi preko trake i eventualno menja sadržaj ćelija u koje su upisani podvučeni znaci promena - prepisivanje tekućeg podvučenog znaka novim podvučenim znakom (ako je operacija pisanje) ili zamena povučenog znaka nepodvučenom i promena jednog od susednih znaka u podvučenu verziju (ako je akcija pomeranje glave) Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 74 / 229

Teorija algoritama Tjuringova mašina Tjuringova mašina sa više traka problem: trenutna pozicija je upravo desni kraj zapisa neke od traka mašine M 1, a glava treba da se pomakne na desno to znači da se u ćeliji iznad koje je glava nalazi znak. ovde desno od znaka nema slobodnog prostora jer se tu nalaze zapisi sadržaja ostalih traka mašine M 1 se prepisuje sa pomere se svi znaci počev od njega za po jedno mesto u desno glava se vraća na levo do prvobitne pozicije znaka i prepisuje ga blanko znakom zbog kopiranja sadržaja u prvoj desnoj ćeliji je još jedan znak koji se prepisuje znakom Simulacija se nastavlja dok se mašina M 2 ne zaustavi, nakon čega briše sve sem zapisa k-te traku koja predstavlja rezultat. Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 75 / 229

Teorija algoritama Tjuringova mašina Tjuringova mašina sa više traka x - dužina ulaznih podataka za M 1 broj koraka rada M 1 za ulaz x je najviše f ( x ) ni na jednoj od k traka M 1 ne može biti zauzeto više od f ( x ) ćelija svakom koraku rada M 1 odgovara najviše c 1 kf ( x ) koraka rada M 2 potrebnih za dvostruki prelazak trake i c 2 kf ( x ) koraka rada mašine M 2 potrebnih za eventualno pomeranje sadržaja u desno M 2 na početku rada postavlja polazni sadržaj trake i dopisuje i, a na kraju briše deo trake zauzet prikazom prve k 1 trake M 1, za šta joj je potrebno c 3 f ( x ) koraka dužina rada M 2 je ograničena odozgo sa c 4 (f ( x )) 2 simulacija radi samo polinomijalno duže od M 1 Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 76 / 229

Teorija algoritama Tjuringova mašina Nedeterministička Tjuringova mašina program nedeterminističke Tjuringove mašine δ : (S \ {q z }) A P((A {L, R}) S), δ(q, s) je proizvoljan konačan podskup skupa ((A {L, R}) S) za tekuću konfiguraciju mašine može postojati više različitih konfiguracija do kojih se dolazi izvršavanjem neke od naredbi programa - mogućnost izbora grananje u drvetu je konačno - konačno mnogo opcija za izbor svaka grana - jedan mogući redosled rada q, s o 1, q 1 o 2, q 2 o 3, q 3... o k, q k Figure: Nedeterministički korak u izvršavanju Tjuringove mašine Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 77 / 229

Teorija algoritama Tjuringova mašina Nedeterministička Tjuringova mašina nedeterminističke mašine su pogodne za davanje odgovora da ili ne na pitanja oblika da li za ulazne podatke važi...? nova završna stanja: q da i q ne brzina nedeterminističkih je posledica asimetrične konvencije: odgovor da - bar jedno od mogućih izračunavanja završava u stanju q da, odgovor ne - sva izračunavanja završavaju u stanju q ne ako ni jedno izračunavanje ne dovodi do stanja q da i bar jedno izračunavanje ne dovodi ni do kog završnog stanja, nedeterministička mašina divergira. Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 78 / 229

Teorija algoritama Tjuringova mašina Nedeterministička Tjuringova mašina Model nedeterminističke mašine: višeprocesorski sistem u svakom koraku svaki od procesora kreira onoliko novih procesora koliko ima različitih konfiguracija u koje taj procesor može preći izvršavanjem tekuće naredbe ako mu bilo koji od potomaka vrati potvrdni odgovor, procesor tu informaciju šalje neposrednom pretku negativan odgovor se prosled uje samo ako je dobijen od svih neposrednih potomaka svaki procesor izračunava disjunkciju odgovora svojih potomaka Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 79 / 229

Teorija algoritama Tjuringova mašina Nedeterministička Tjuringova mašina Example Pretpostavimo da želimo ispitati da li je neki prirodan broj n složen ili prost. Običnom Tjuringovom mašinom problem bi se mogao rešiti na sledeći način: delili bismo broj svim prirodnim brojevima izmed u 2 i n 2 i na osnovu toga dali odgovor. U slučaju nedeterminističke Tjuringove mašine na jednom mestu bismo imali mogućnost izbora broja kojim delimo broj n, pa ako je n složen, a izabrani broj delilac, mogli bismo dati odgovor u jednom koraku, što bi bio značajan dobitak u odnosu na deterministički postupak. Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 80 / 229

Teorija algoritama Tjuringova mašina Nedeterministička Tjuringova mašina Lako je uočiti da ovaj postupak nije realan, u smislu da izbor delioca podrazumeva da mi već znamo da je n složen, tj. da nam je poznat bar jedan njegov činilac. Med utim, i pored toga, nedeterministička Tjuringova mašina se može simulirati determinističkom mašinom, tako da se izražajnost u smislu onoga šta mašina može odgovoriti ne menja. Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 81 / 229

Teorija algoritama Tjuringova mašina Nedeterministička Tjuringova mašina M 1 nedeterministička TM, M 2 deterministička TM: M 2 sistematski prelazi sve moguće redoslede izvršavanja M 1 najpre dužine 1, pa dužine 2 itd ni jedno moguće konačno izvršavanje neće biti preskočeno ako bi se M 1 u nekom trenutku našla u stanju q da, to isto će pre ili posle biti slučaj i sa M 2 ako sva izvršavanja M 1 dovode do stanja q ne, i M 2 će se naći u tom stanju kada iscrpi sve mogućnosti ako M 1 divergira za date ulazne podatke ni M 2 se neće zaustaviti. Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 82 / 229

Teorija algoritama Tjuringova mašina Nedeterministička Tjuringova mašina M 2 u najgorem slučaju bar jednom posećuje svaki čvor drveta koje prikazuje izvršavanje M 1 čvorova drveta za M 1 može biti eksponencijalno više nego što je dužina najkraćeg mogućeg izračunavanja mašine M 1 koje dovodi do stanja q da izvršavanje determinističke mašine M 2 u najgorem slučaju eksponencijalno duže nego izvršavanje nedeterminističke mašine M 1 za sada nije poznato da li je simulaciju moguće izvesti uz samo polinomijalni gubitak vremena problem da li je P = NP Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 83 / 229

Teorija algoritama Tjuringova mašina Univerzalna Tjuringova mašina UTM UTM primer programibilnog digitalnog računara opšte namene sa programom i podacima smeštenim u memoriju simulira izvršavanje ostalih Tjuringovih mašina Ulazni podaci za UTM su opis - program neke posebne mašine i ulazni podaci te mašine, rezultat izvršavanja UTM je rezultat rada simulirane posebne mašine Postojanje univerzalne Tjuringove (preko veze sa univerzalnom funkcijom) Zoran Ognjanović (zorano@mi.sanu.ac.yu) Teorija algoritama, jezika i automata MF Beograd, 2007/08 84 / 229