Teorija izračunljivosti

U teorijskoj računarskoj nauci i matematici, teorija izračunljivosti je grana računarstva koja razmatra mogu li se i s kojom efikasnošću rešiti problemi koristeći računar. Polje je podeljeno u tri glavne grane: teoriju automata i jezike, teoriju izračunljivosti i teoriju kompleksnosti, s tim da sve grane izučavaju formalne modele računanja.[1]

Umetnička reprezentacija Tjuringove mašine. Tjuringove mašine se često koriste kao teoretski modeli u računarstvu.

Kako bi rigorozno proučavali računanje, računarski naučnici koriste matematičke apstrakcije, modele računanja. Nekoliko je formulacija u upotrebi, ali najčešće ispitivana je Turingova mašina.[2] Turingova mašina se može shvatiti kao lični računar opremljen memorijom beskonačnog kapaciteta, iako može memoriji pristupati u malim diskretnim delovima. Informatičari proučavaju Turingovu mašinu jer je ona jednostavna za formulaciju i može biti analizirana i korišćena u dokazivanju rezultata jer predstavlja ono što mnogi smatraju najmoćnijim mogućim „razumnim“ modelom računanja.[3] Iako se zahtev za memorijom beskonačnog kapaciteta može shvatiti kao nefizikalan, za svaki stvarno rešen problem Turingovom mašinom korišćena memorija će uvek biti konačna,[4] pa svaki problem koji reši Turingova mašina može rešiti i personalni računar sa dovoljno ugrađene memorije.

Grane uredi

Teorija izračunljivosti uredi

Teorija izračunljivosti se primarno bavi pitanjem je li problem uopšte rešiv na računaru. Problem zaustavljanja je jedan od najvažnijih rezultata u teoriji izračunljivosti, jer predstavlja primer konkretnog problema kojeg je i lako formulisati i nemoguće rešiti koristeći Turingovu mašinu.[5] Veći je deo teorije izračunljivosti izgrađen oko rezultata problema zaustavljanja.

Još jedan važan korak u teoriji izračunljivosti je bila Rajsova teorema, koji navodi da je za sva netrivijalna svojstva parcijalnih funkcija, neizvesno da li Turingova mašina izračunava parcijalne funkcije sa tim svojstvom.[6]

Teorija izračunljivosti je usko vezana sa granom matematičke logike zvanom teorija rekurzije, koja otklanja ograničenje proučavanja samo modela računanja koji su bliski onim fizikalno ostvarivima.[7] Mnogi matematičari i računski teoretičari koji proučavaju teoriju rekurzije će je nazvati teorijom izračunljivosti. Ne postoji stvarna razlika između dvaju polja.

Teorija kompleksnosti uredi

Teorija kompleksnosti razmatra ne samo može li se problem uopšte rešiti na računaru, već i koliko efiksno može biti rešen. Dva glavna aspekta su posmatrana: vremenska složenost i prostorna složenost, koji respektivno predstavljaju broj koraka potreban da se računanje obavi, te količinu memorije potrebnu za obavljanje računanja.

Kako bi analizirali koliko vremena i prostora dati algoritam zahteva, istraživači izražavaju vreme i prostor zahtevan za rešavanje problema kao funkciju ulaznog problema. Na primer, pronalaženje nekog pojedinog broja u dugoj listi brojeva postaje sve teže kako ta lista raste. Ako kažemo da postoji n brojeva u listi, tada, ukoliko lista nije predsortirana ili na neki način indeksirana, moramo ispitati svaki broj kako bismo pronašli broj koji tražimo. Stoga kažemo da, kako bi rešio ovaj problem, računar mora obaviti broj koraka koji raste linearno u odnosu na veličinu problema.

Kako bi pojednostavili ovaj problem, istraživači su prihvatili veliku O notaciju, koja dozvoljava poređenje funkcija na način koji osigurava da pojedinačni aspekti konstrukcije mašine ne moraju biti razmatrani, već samo asimptotsko ponašanje kako problemi postaju sve veći. Zato se u prethodnom primeru može reći da problem zahteva n koraka za rešavanje.

Možda najvažniji od svih otvorenih problema u računarstvu jeste pitanje mogu li određene široke klase problema označene kao NP biti efikasno rešene.

Druge formalne definicije računanja uredi

Osim Turingove mašine, koriste se i drugi modeli računanja kao što su: lambda račun, kombinatorska logika, μ-rekurzivna funkcija, Markovljev algoritam, Registarska mašina, P′′,

Lambda račun
Računanje je početni lambda izraz (ili dva ako se želi odvojiti funkcija od njenog ulaza) plus konačni sled lambda termina, od kojih je svaki dedukovan iz prethodnog aplikacijom beta redukcije.
Kombinatorna logika
je koncept koji ima mnogo sličnosti sa  -računom, ali postoje i važne razlike (npr. kombinator fiksne tačke Y u kombinatornoj logici ima normalnu formu, ali ne i u  -računu). Kombinatorna je logika razvijena sa velikim ambicijama: razumevanje prirode paradoksa, činjenja osnovna matematike ekonomičnijima (konceptualno), te eliminisanje notacije varijabli (te tako osvetljavajući njihovu ulogu u matematici).
μ-rekurzivne funkcije
računanje je μ-rekurzivna funkcija, tj. njen definirajući sled, bilo koja ulazna vrednost/vrednosti te sled rekurzivnih funkcija koje se pojavljuju u definirajućem sledu sa ulazima i izlazima. Stoga, ako se u definirajućem sledu rekurzivne funkcije   pojavljuju   i  , tada se mogu pojaviti termini oblika 'g(5)=7' ili 'h(3,2)=10'. Svaki unos u ovom sledu treba biti aplikacija osnovne funkcije ili slediti iz gornjih unosa koristeći kompoziciju funkcija, primitivnu rekurziju ili μ-rekurziju. Na primer, ako je  , tada da bi se pojavio 'f(5)=3', gore se moraju pojaviti termini poput 'g(5)=6' i 'h(3,6)=3'. Računanje terminira samo ako konačni termin daje vrednost rekurzivne funkcije primenjene na ulaze.
Markovljev algoritam
sistem za prepisivanje stringa koji koristi pravila slična gramatičkim kako bi delovao nad stringovima simbola.
Registarska mašina
je teoretski zanimljiva idealizacija računara. Postoji više varijanti. U većini od njih, svaki registar može da sadrži prirodni broj (neograničene veličine), dok su same instrukcije jednostavne (obično tek nekolicina njih), pa npr. postoje samo dekrementiranje (kombinovano sa uslovnim skokom) i inkrementiranje (i zaustavljanje). Nedostatak beskonačne (ili dinamički rastuće) spoljašnje memorije (poput one u Turingovim mašinama) se može švatiti kao zamena njene uloge tehnikama Gedelovog obrojavanja.[8] Činjenica da svaki registar sadrži prirodni broj dopušta mogućnost predstavljanja složenih konstrukata (npr. niza, matrice itd.) odgovarajućim velikim prirodnim brojem - nejednoznačnost i predstavljanja i interpretiranja može biti uspostavljena na osnovama ovih tehnika zasnovanih na teoriji brojeva.
P′′
Poput Turingovih mašina, P′′ koristi beskonačnu traku simbola (bez slučajnog pristupa) i poprilično minimalistički skup instrukcija.[9][10] Ali ove su instrukcije vrlo različite, te stoga, za razliku od Turingovih mašina, za P′′ nije neophodno održavati različito stanje, jer svu funkcionalnost „sličnu memoriji” može pružiti samo traka. Umesto prepisivanja trenutnog simbola, može obaviti inkrementiranje modularnom aritmetikom nad njim. P′′ takođe poseduje par instrukcija za ciklus, ispitujući simbol praznine. Uprkos svojoj minimalističkoj prirodi, postao je roditeljski formalni jezik ostvarenog i (za zabavu) korištenog programskog jezika zvanog Brejnfak.

Kao dopuna opštih računskih modela, neki jednostavniji računski modeli su korisni za posebne, ograničene primene. Regularni izrazi, na primer, se koriste za specificiranje uzoraka stringa u mnogim kontekstima, od programske podrške za kancelarijsku produktivnost pa do programskih jezika. Drugi formalizam matematički istovetan regularnim izrazima, konačni automati, se koristi u dizajnu elektronskih krugova i pri rešavanju nekih problema. Kontekstno nezavisna gramatika se koristi prilikom specifikacije sintakse programskih jezika. Nedeterministički potisni automati su drugi formalizam istovetan kontekstno nezavisnim gramatikama. Primitivno rekurzivne funkcije su potklasa rekurzivnih funkcija.

Različiti modeli računanja imaju sposobnost obavljanja različitih zadataka. Jedan način merenja moći računskog modela jeste proučavanje klase formalnih jezika koje model može generisati - ovo vodi ka Čomskijevoj hijerarhiji jezika.[11]

Reference uredi

  1. ^ Sipser, Michael (2013). Introduction to the Theory of Computation 3rd. Cengage Learning. ISBN 978-1-133-18779-0. „central areas of the theory of computation: automata, computability, and complexity. (Page 1) 
  2. ^ Hodges, Andrew (2012). Alan Turing: The Enigma (The Centenary Edition). Princeton University Press. ISBN 978-0-691-15564-7. 
  3. ^ Rabin, Michael O. (jun 2012). Turing, Church, Gödel, Computability, Complexity and Randomization: A Personal View. Arhivirano iz originala 05. 06. 2019. g. Pristupljeno 29. 03. 2019. 
  4. ^ Monk, Donald (1976). Mathematical Logic. Springer-Verlag. ISBN 9780387901701. 
  5. ^ Alan Turing (1937). „On computable numbers, with an application to the Entscheidungsproblem”. Proceedings of the London Mathematical Society. IEEE. 2 (42): 230—265. doi:10.1112/plms/s2-42.1.230. Pristupljeno 6. 1. 2015. [mrtva veza]
  6. ^ Rice, Henry Gordon (1953). „Classes of Recursively Enumerable Sets and Their Decision Problems”. Transactions of the American Mathematical Society. American Mathematical Society. 74 (2): 358—366. JSTOR 1990888. doi:10.2307/1990888. 
  7. ^ Davis, Martin (2004). The undecidable: Basic papers on undecidable propositions, unsolvable problems and computable functions (Dover Ed). Dover Publications. ISBN 978-0486432281. 
  8. ^ <Gödel, Kurt (1931), „Über formal unentscheidbare Sätze der Principia Mathematica und verwandter Systeme I” (PDF), Monatsheft für Math. und Physik, 38: 173—198, Arhivirano iz originala (PDF) 11. 04. 2018. g., Pristupljeno 29. 03. 2019 
  9. ^ Böhm, C.: "On a family of Turing machines and the related programming language", ICC Bull. 3, 185-194, July 1964.
  10. ^ Böhm, C. and Jacopini, G.: "Flow diagrams, Turing machines and languages with only two formation rules", CACM 9(5), 1966. (Note: This is the most-cited paper on the structured program theorem.)
  11. ^ Chomsky, Noam (1956). „Three models for the description of language” (PDF). IRE Transactions on Information Theory (2): 113—124. doi:10.1109/TIT.1956.1056813. 

Literatura uredi

Spoljašnje veze uredi