Turingov stroj je teorijski model računanja koji je uveo Alan Turing 1936. Sastoji se od beskonačno duge vrpce podijeljene na ćelije, glave za čitanje/pisanje koja se može pomicati po vrpci i kontrolne jedinice koja određuje ponašanje stroja . Traka je u početku prazna, a ulaz u stroj se daje na zasebnoj ulaznoj traci. Izlaz izračuna se zapisuje na izlaznu traku.
Kako bi izračunao funkciju, Turingov stroj slijedi skup uputa koji se naziva program. Program određuje kako bi se stroj trebao ponašati na temelju njegovog trenutnog stanja i simbola koji čita s vrpce. Stroj se pokreće u početnom stanju i više puta izvodi sljedeće korake:
1. Čitaj: Stroj čita simbol koji se nalazi ispod glave za čitanje/pisanje.
2. Proces: Na temelju trenutnog stanja i očitanog simbola, stroj određuje sljedeće stanje i simbol za pisanje na vrpci.
3. Pomicanje: Stroj pomiče glavu za čitanje/pisanje jednu ćeliju ulijevo ili udesno.
4. Ponovite: Stroj se vraća na korak 1 i nastavlja sve dok ne dođe u stanje zaustavljanja.
Uloga ulazne vrpce je osigurati ulazne podatke za izračun. Ulazna traka je inicijalno popunjena ulaznim simbolima, koje stroj čita tijekom izračuna. Ulazna traka je samo za čitanje, što znači da stroj ne može mijenjati njezin sadržaj.
Uloga izlazne trake je pohranjivanje izlaza izračuna. Dok stroj obrađuje ulazne simbole, može pisati simbole na izlaznu traku kako bi proizveo željeni izlaz. Izlazna traka je samo za pisanje, što znači da stroj može samo pisati na nju, a ne može čitati njezin sadržaj.
Sposobnost Turingovog stroja da izračunava funkcije temelji se na njegovoj sposobnosti da manipulira simbolima na vrpci prema skupu pravila. Ova pravila omogućuju stroju izvođenje aritmetičkih operacija, logičkih operacija i drugih izračuna. Slijedeći ova pravila, Turingov stroj može simulirati bilo koji algoritamski izračun.
Na primjer, razmotrite Turingov stroj koji izračunava zbroj dvaju brojeva. Ulazna traka bi sadržavala dva broja, odvojena posebnim simbolom. Stroj bi čitao ulazne simbole, izvodio operaciju zbrajanja i zapisivao rezultat na izlaznu traku.
Turingov stroj izračunava funkciju slijedeći skup uputa navedenih u programu. Ulazna vrpca daje ulaz u računanje, a izlazna traka pohranjuje izlaz izračuna. Stroj manipulira simbolima na vrpci kako bi izvršio proračune, dopuštajući mu da simulira bilo koje algoritamsko izračunavanje.
Ostala nedavna pitanja i odgovori u vezi Računalne funkcije:
- Što znači da su različite varijacije Turingovih strojeva ekvivalentne u računalnim sposobnostima?
- Objasnite odnos između izračunljive funkcije i postojanja Turingovog stroja koji je može izračunati.
- Koje je značenje Turingovog stroja koji se uvijek zaustavlja kada računa izračunljivu funkciju?
- Može li se Turingov stroj modificirati da uvijek prihvaća funkciju? Objasnite zašto ili zašto ne.
- Što je izračunljiva funkcija u kontekstu teorije računalne složenosti i kako se definira?