Tiuringo mašina yra teorinis skaičiavimo modelis, kurį 1936 m. pristatė Alanas Turingas. Jį sudaro be galo ilga juosta, padalinta į langelius, skaitymo/rašymo galvutė, kuri gali judėti juosta, ir valdymo blokas, nustatantis mašinos elgesį. . Iš pradžių juosta yra tuščia, o įvestis į įrenginį pateikiama atskiroje įvesties juostoje. Skaičiavimo išvestis įrašoma į išvesties juostą.
Norėdami apskaičiuoti funkciją, Tiuringo mašina vadovaujasi instrukcijų rinkiniu, vadinamu programa. Programa nurodo, kaip aparatas turi elgtis pagal dabartinę būseną ir simbolį, kurį nuskaito iš juostos. Įrenginys paleidžiamas pradinėje būsenoje ir pakartotinai atlieka šiuos veiksmus:
1. Skaityti: aparatas nuskaito simbolį, esantį po skaitymo/rašymo galvute.
2. Procesas: remdamasis dabartine būsena ir nuskaitytu simboliu, aparatas nustato kitą būseną ir simbolį, kurį reikia įrašyti į juostelę.
3. Perkelti: aparatas perkelia skaitymo/rašymo galvutę vienu langeliu į kairę arba dešinę.
4. Pakartokite: aparatas grįžta į 1 veiksmą ir tęsia tol, kol pasiekia sustabdymo būseną.
Įvesties juostos vaidmuo yra pateikti skaičiavimo įvestį. Įvesties juosta iš pradžių užpildoma įvesties simboliais, kuriuos aparatas nuskaito skaičiavimo metu. Įvesties juosta yra tik skaitoma, o tai reiškia, kad įrenginys negali keisti jos turinio.
Išvesties juostos vaidmuo yra saugoti skaičiavimo išvestį. Kai aparatas apdoroja įvesties simbolius, jis gali įrašyti simbolius į išvesties juostą, kad gautų norimą išvestį. Išvesties juosta yra skirta tik rašymui, o tai reiškia, kad įrenginys gali tik įrašyti į ją ir negali nuskaityti jos turinio.
Tiuringo mašinos gebėjimas skaičiuoti funkcijas pagrįstas jos gebėjimu manipuliuoti simboliais juostoje pagal taisyklių rinkinį. Šios taisyklės leidžia mašinai atlikti aritmetines, logines operacijas ir kitus skaičiavimus. Laikantis šių taisyklių, Tiuringo mašina gali imituoti bet kokį algoritminį skaičiavimą.
Pavyzdžiui, apsvarstykite Tiuringo mašiną, kuri apskaičiuoja dviejų skaičių sumą. Įvesties juostoje būtų du skaičiai, atskirti specialiu simboliu. Aparatas nuskaitytų įvesties simbolius, atliktų pridėjimo operaciją ir rezultatą įrašytų į išvesties juostą.
Tiuringo mašina apskaičiuoja funkciją vykdydama programos nurodytą instrukcijų rinkinį. Įvesties juosta suteikia skaičiavimo įvestį, o išvesties juosta saugo skaičiavimo išvestį. Aparatas manipuliuoja juostoje esančiais simboliais, kad atliktų skaičiavimus, leisdamas imituoti bet kokį algoritminį skaičiavimą.
Kiti naujausi klausimai ir atsakymai apie Skaičiuojamos funkcijos:
- Ką reiškia, kad skirtingi Turingo mašinų variantai yra lygiaverčiai skaičiavimo galimybėmis?
- Paaiškinkite ryšį tarp apskaičiuojamos funkcijos ir Turingo mašinos, galinčios ją apskaičiuoti, egzistavimo.
- Kokią reikšmę turi Turingo mašina, kuri visada sustoja skaičiuodama skaičiuojamą funkciją?
- Ar Tiuringo mašiną galima modifikuoti taip, kad ji visada priimtų funkciją? Paaiškinkite kodėl ar ne.
- Kas yra apskaičiuojama funkcija skaičiavimo sudėtingumo teorijos kontekste ir kaip ji apibrėžiama?