U polju teorije računske složenosti, odnos između izračunljive funkcije i postojanja Turingove mašine koja može da je izračuna je od fundamentalne važnosti. Da bismo razumjeli ovaj odnos, prvo moramo definirati što je izračunljiva funkcija i kako se ona odnosi na Turingove mašine.
Izračunljiva funkcija, poznata i kao rekurzivna funkcija, je matematička funkcija koja se može izračunati algoritmom. To je funkcija za koju postoji Tjuringova mašina koja će se, dat bilo koji ulaz, zaustaviti i proizvesti ispravan izlaz za taj ulaz. Drugim riječima, izračunljiva funkcija je ona koju može efikasno izračunati Turingova mašina.
Turingove mašine, s druge strane, su teoretski računarski uređaji koje je uveo Alan Turing 1936. Sastoje se od beskonačne trake podijeljene na ćelije, glave za čitanje/pisanje koja se može kretati duž trake i skupa stanja koja upravljaju ponašanje mašine. Mašina čita simbole na traci, izvodi određene radnje na osnovu svog trenutnog stanja i simbola koji čita i prelazi u novo stanje. Ovaj proces se nastavlja sve dok mašina ne dođe u stanje zaustavljanja.
Odnos između izračunljive funkcije i postojanja Turingove mašine koja je može izračunati zasniva se na konceptu Turingove kompletnosti. Za Turingovu mašinu se kaže da je Turing-kompletna ako može simulirati bilo koju drugu Turingovu mašinu. Drugim riječima, Turing-kompletna mašina može izračunati bilo koju funkciju koju može izračunati bilo koja druga Turingova mašina.
S obzirom na ovu definiciju, možemo reći da ako je funkcija izračunljiva, onda postoji Turingova mašina koja je može izračunati. Suprotno tome, ako Turingova mašina može izračunati funkciju, tada je ta funkcija izračunljiva. Ovaj odnos se zasniva na činjenici da su Turingove mašine univerzalni računarski uređaji sposobni da simuliraju bilo koju drugu Turingovu mašinu.
Da bismo ilustrirali ovaj odnos, razmotrimo primjer. Pretpostavimo da imamo izračunljivu funkciju koja sabira dva broja. Možemo definirati Turingovu mašinu koja uzima dva ulaza, pomiče glavu za čitanje/pisanje na prvi broj na traci, dodaje joj drugi broj i daje rezultat. Ova Turingova mašina može izračunati funkciju sabiranja, pokazujući odnos između izračunljive funkcije i postojanja Turingove mašine koja je može izračunati.
Odnos između izračunljive funkcije i postojanja Turingove mašine koja je može izračunati zasniva se na konceptu Turingove kompletnosti. Izračunljiva funkcija je ona koju može efikasno izračunati Turingova mašina, a Turingova mašina je Tjuringova potpuna ako može da simulira bilo koju drugu Turingovu mašinu. Stoga, ako je funkcija izračunljiva, postoji Turingova mašina koja je može izračunati, i obrnuto.
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?
- 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.
- Kako Turingova mašina izračunava funkciju i koja je uloga ulaznih i izlaznih traka?
- Što je računska funkcija u kontekstu teorije računske složenosti i kako je definirana?