Problem zaustavljanja
U teoriji izračunljivosti, problem zaustavljanja je problem odluke koji se neformalno može iskazati na sljedeći način:
- Za dani opis programa i konačnog ulaza, odluči završuje li program ili se izvršuje unedogled, za dani ulaz.
Alan Turing je 1936. dokazao da općenit algoritam za rješavanje problema zaustavljanja za sve moguće parove programa-ulaza ne može postojati. Kaže se da je problem zaustavljanja neodlučiv nad Turingovim strojevima. (vidi[1] za pripisivanje problema zaustavljanja Turingu.)
Problem odluke je skup prirodnih brojeva - "problem" je odlučiti je li istaknuti broj element skupa.
Za dano Gödelovo pobrojavanje izračunljivih funkcija (kao što su Turingovi opisni brojevi) i funkciju uparivanja , problem zaustavljanja (također zvan i skup zaustavljanja) je problem odluke za skup
sa kao i-tom izračunljivom funkcijom pod Gödelovim pobrojanjem .
Iako je skup K rekurzivno prebrojiv, problem zaustavljanja nije rješiv izračunljivom funkcijom.
Postoji mnogo istovjetnih formulacija problema zaustavljanja - bilo koji skup s Turingovim stupnjem istim kao onim problema zaustavljanja se može shvatiti kao takva formulacija. Primjeri takvih skupova uključuju:
- ↑ U nijednom od svojih radova Turing nije koristio riječ "zaustavljanje" ili "terminacija". Turingov biograf Hodges nema riječ "zaustavljanje" ili riječi "problem zaustavljanja" u svom indeksu. Najranija poznata uporaba riječi "problem zaustavljanja" jest u dokazu Davisa (str. 70-71, Davis 1958).
- "Teorem 2.2 Postoji Turingov stroj čiji je problem zaustavljanja rekurzivno nerješiv.
- "Srodni je problem problem ispisivanja za jednostavni Turingov stroj Z s obzirom na simbol Si" (str. 70).
- "Problem je zaustavljanja tako imenovan (i kako se čini, po prvi put iskazan) od strane Martina Davisa [usp. Copeland fusnota 61]... (Često se kaže da je Turing iskazao i dokazao teorem o zaustavljanju u 'On Computable Numbers', ali ovo nije strogo istnito)." (str. 40)