Turingova mašina je teorijski model računanja koji je uveo Alan Turing 1936. godine. Sastoji se od beskonačno dugačke trake podijeljene na ćelije, glave za čitanje/pisanje koja se može kretati duž trake i kontrolne jedinice koja određuje ponašanje mašine. . Traka je u početku prazna, a ulaz u mašinu je obezbeđen na posebnoj ulaznoj traci. Izlaz proračuna je zapisan na izlaznoj traci.
Da bi izračunala funkciju, Turingova mašina slijedi skup instrukcija koji se naziva program. Program određuje kako bi se mašina trebala ponašati na osnovu svog trenutnog stanja i simbola koji čita sa trake. Mašina se pokreće u početnom stanju i uzastopno izvodi sljedeće korake:
1. Čitanje: Mašina čita simbol koji se trenutno nalazi ispod glave za čitanje/pisanje.
2. Proces: Na osnovu trenutnog stanja i pročitanog simbola, mašina određuje sljedeće stanje i simbol za pisanje na traci.
3. Pomeri: Mašina pomera glavu za čitanje/pisanje za jednu ćeliju ulevo ili udesno.
4. Ponovite: Mašina se vraća na korak 1 i nastavlja sve dok ne dođe u stanje zaustavljanja.
Uloga ulazne trake je da obezbedi ulaz za proračun. Ulazna traka je inicijalno popunjena ulaznim simbolima, koje mašina čita tokom izračunavanja. Ulazna traka je samo za čitanje, što znači da mašina ne može mijenjati njen sadržaj.
Uloga izlazne trake je pohranjivanje izlaza proračuna. Kako mašina obrađuje ulazne simbole, može pisati simbole na izlaznu traku kako bi proizvela željeni izlaz. Izlazna traka je samo za pisanje, što znači da mašina može pisati samo na nju i ne može čitati njen sadržaj.
Sposobnost Turingove mašine da izračunava funkcije zasniva se na njenoj sposobnosti da manipuliše simbolima na traci u skladu sa skupom pravila. Ova pravila omogućavaju mašini da izvodi aritmetičke operacije, logičke operacije i druga izračunavanja. Prateći ova pravila, Turingova mašina može simulirati bilo koje algoritamsko izračunavanje.
Na primjer, razmotrite Turingovu mašinu koja izračunava zbir dva broja. Ulazna traka bi sadržavala dva broja, odvojena posebnim simbolom. Mašina bi pročitala ulazne simbole, izvršila operaciju sabiranja i zapisala rezultat na izlaznoj traci.
Turingova mašina izračunava funkciju slijedeći skup instrukcija određenih programom. Ulazna traka daje ulaz za izračunavanje, a izlazna traka pohranjuje izlaz izračunavanja. Mašina manipuliše simbolima na traci kako bi izvršila proračune, omogućavajući joj da simulira bilo koje algoritamsko izračunavanje.
Ostala nedavna pitanja i odgovori u vezi Izračunave funkcije:
- Šta znači da različite varijacije Turingovih mašina budu ekvivalentne u računarskim sposobnostima?
- Objasnite odnos između izračunljive funkcije i postojanja Turingove mašine koja je može izračunati.
- Koje je značenje da se Turingova mašina uvijek zaustavlja kada izračunava izračunljivu funkciju?
- Može li se Turingova mašina modificirati tako da uvijek prihvata funkciju? Objasnite zašto ili zašto ne.
- Što je računska funkcija u kontekstu teorije računske složenosti i kako je definirana?