Skaičiavimo sudėtingumo teorijos srityje labai svarbus ryšys tarp apskaičiuojamos funkcijos ir ją apskaičiuoti galinčios Tiuringo mašinos. Norėdami suprasti šį ryšį, pirmiausia turime apibrėžti, kas yra skaičiuojamoji funkcija ir kaip ji susijusi su Tiuringo mašinomis.
Apskaičiuojama funkcija, taip pat žinoma kaip rekursinė funkcija, yra matematinė funkcija, kurią galima apskaičiuoti naudojant algoritmą. Tai funkcija, kuriai egzistuoja Tiuringo mašina, kuri, gavusi bet kokią įvestį, sustabdys ir sukurs tinkamą tos įvesties išvestį. Kitaip tariant, apskaičiuojama funkcija yra ta, kurią gali efektyviai apskaičiuoti Turingo mašina.
Kita vertus, Tiuringo mašinos yra teoriniai skaičiavimo įrenginiai, kuriuos 1936 m. pristatė Alanas Turingas. Jie susideda iš begalinės juostos, padalytos į ląsteles, skaitymo/rašymo galvutės, kuri gali judėti juostoje, ir būsenų rinkinio, kuris valdo. mašinos elgesys. Aparatas nuskaito juostoje esančius simbolius, pagal esamą būseną ir perskaitytą simbolį atlieka tam tikrus veiksmus ir pereina į naują būseną. Šis procesas tęsiasi tol, kol mašina pasiekia sustabdymo būseną.
Ryšys tarp apskaičiuojamos funkcijos ir ją galinčios apskaičiuoti Tiuringo mašinos egzistavimo yra pagrįstas Tiuringo užbaigtumo samprata. Sakoma, kad Tiuringo mašina yra užbaigta Tiuringo mašina, jei ji gali imituoti bet kurią kitą Tiuringo mašiną. Kitaip tariant, Tiuringo mašina gali apskaičiuoti bet kokią funkciją, kurią gali apskaičiuoti bet kuri kita Tiuringo mašina.
Atsižvelgdami į šį apibrėžimą, galime pasakyti, kad jei funkcija yra apskaičiuojama, tada egzistuoja Turingo mašina, galinti ją apskaičiuoti. Ir atvirkščiai, jei Tiuringo mašina gali apskaičiuoti funkciją, tada ši funkcija yra apskaičiuojama. Šis ryšys grindžiamas tuo, kad Tiuringo mašinos yra universalūs skaičiavimo įrenginiai, galintys imituoti bet kurią kitą Tiuringo mašiną.
Norėdami iliustruoti šį ryšį, panagrinėkime pavyzdį. Tarkime, kad turime apskaičiuojamą funkciją, kuri sudeda du skaičius. Galime apibrėžti Tiuringo mašiną, kuri paima du įvestis, perkelia skaitymo/rašymo galvutę į pirmąjį juostos skaičių, prideda prie jo antrą skaičių ir išveda rezultatą. Ši Tiuringo mašina gali apskaičiuoti sudėjimo funkciją, parodydama ryšį tarp apskaičiuojamos funkcijos ir ją apskaičiuojančios Tiuringo mašinos.
Ryšys tarp apskaičiuojamos funkcijos ir ją galinčios apskaičiuoti Tiuringo mašinos egzistavimo yra pagrįstas Tiuringo užbaigtumo samprata. Skaičiuojamoji funkcija yra ta, kurią gali efektyviai apskaičiuoti Tiuringo mašina, o Tiuringo mašina yra pilna Tiuringo, jei ji gali imituoti bet kurią kitą Tiuringo mašiną. Todėl, jei funkcija yra apskaičiuojama, egzistuoja Tiuringo mašina, galinti ją apskaičiuoti, ir atvirkščiai.
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?
- 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.
- Kaip Tiuringo mašina apskaičiuoja funkciją ir koks yra įvesties ir išvesties juostų vaidmuo?
- Kas yra apskaičiuojama funkcija skaičiavimo sudėtingumo teorijos kontekste ir kaip ji apibrėžiama?