Turingov stroj je teoretični model računanja, ki ga je predstavil Alan Turing leta 1936. Sestavljen je iz neskončno dolgega traku, razdeljenega na celice, bralne/pisalne glave, ki se lahko premika po traku, in krmilne enote, ki določa obnašanje stroja . Trak je sprva prazen, vhod v stroj pa je na voljo na ločenem vhodnem traku. Izhod izračuna se zapiše na izhodni trak.
Za izračun funkcije Turingov stroj sledi naboru navodil, imenovanih program. Program določa, kako naj se naprava obnaša glede na trenutno stanje in simbol, ki ga prebere s traku. Stroj se zažene v začetnem stanju in večkrat izvede naslednje korake:
1. Branje: Naprava prebere simbol, ki je trenutno pod bralno/pisalno glavo.
2. Postopek: Na podlagi trenutnega stanja in prebranega simbola stroj določi naslednje stanje in simbol, ki naj ga zapiše na trak.
3. Premakni: Naprava premakne bralno/pisalno glavo za eno celico v levo ali desno.
4. Ponovite: Naprava se vrne na 1. korak in nadaljuje, dokler ne doseže stanja zaustavitve.
Vloga vhodnega traku je zagotoviti vhod v izračun. Vhodni trak je na začetku zapolnjen z vhodnimi simboli, ki jih stroj med računanjem prebere. Vhodni trak je samo za branje, kar pomeni, da stroj ne more spreminjati njegove vsebine.
Vloga izhodnega traku je shranjevanje rezultatov izračuna. Ko stroj obdeluje vhodne simbole, lahko zapiše simbole na izhodni trak, da ustvari želeni izhod. Izhodni trak je samo za pisanje, kar pomeni, da lahko stroj nanj samo piše in ne more brati njegove vsebine.
Zmožnost Turingovega stroja za računanje funkcij temelji na njegovi zmožnosti manipuliranja s simboli na traku v skladu z nizom pravil. Ta pravila omogočajo stroju izvajanje aritmetičnih operacij, logičnih operacij in drugih izračunov. Z upoštevanjem teh pravil lahko Turingov stroj simulira kateri koli algoritemski izračun.
Na primer, razmislite o Turingovem stroju, ki izračuna vsoto dveh števil. Vhodni trak bi vseboval dve številki, ločeni s posebnim simbolom. Stroj bi prebral vhodne simbole, izvedel operacijo seštevanja in zapisal rezultat na izhodni trak.
Turingov stroj izračuna funkcijo tako, da sledi nizu navodil, ki jih določi program. Vhodni trak zagotavlja vhod v izračun, izhodni trak pa shrani izhod izračuna. Stroj manipulira s simboli na traku, da izvede izračune, kar mu omogoča simulacijo katerega koli algoritemskega izračuna.
Druga nedavna vprašanja in odgovori v zvezi Izračunljive funkcije:
- Kaj pomeni, da so različne različice Turingovih strojev enakovredne v računalniški zmogljivosti?
- Pojasnite razmerje med izračunljivo funkcijo in obstojem Turingovega stroja, ki jo lahko izračuna.
- Kakšen je pomen Turingovega stroja, ki se vedno ustavi pri izračunu izračunljive funkcije?
- Ali je mogoče Turingov stroj spremeniti tako, da vedno sprejme funkcijo? Pojasnite zakaj ali zakaj ne.
- Kaj je izračunljiva funkcija v kontekstu teorije računalniške kompleksnosti in kako je definirana?