Problem zaustavljanja

Izvor: Hrvatska internetska enciklopedija
Skoči na:orijentacija, traži

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.)

Formalni iskaz

Problem odluke je skup prirodnih brojeva - "problem" je odlučiti je li istaknuti broj element skupa.

Za dano Gödelovo pobrojavanje [math]\displaystyle{ \varphi }[/math] izračunljivih funkcija (kao što su Turingovi opisni brojevi) i funkciju uparivanja [math]\displaystyle{ \langle i, x \rangle }[/math], problem zaustavljanja (također zvan i skup zaustavljanja) je problem odluke za skup

[math]\displaystyle{ K_{\varphi}^{0} := \{ \langle i, x \rangle | \varphi_i(x) \ \mathrm{postoji} \} }[/math]

sa [math]\displaystyle{ \varphi_i }[/math] kao i-tom izračunljivom funkcijom pod Gödelovim pobrojanjem [math]\displaystyle{ \varphi }[/math].

Iako je skup K rekurzivno prebrojiv, problem zaustavljanja nije rješiv izračunljivom funkcijom.

Postoji mnogo istovjetnih formulacija problema zaustavljanja - bilo koji skup sa Turingovim stupnjem istim kao onim problema zaustavljanja se može shvatiti kao takva formulacija. Primjeri takvih skupova uključuju:

  • [math]\displaystyle{ \{ i \mid \varphi_i(0) \ \mathrm{staje} \} }[/math]
  • [math]\displaystyle{ \{ i \mid \exists n ( \varphi_i(n) \ \mathrm{staje})\} }[/math]

Fusnote

  1. 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).
    Davis ne pripisuje nikakve zasluge za ovaj dokaz, tako da čovjek zaključuje da se radi o izvorniku. Ali Davis naglašava da iskaz dokaza neformalno postoji u Kleene (1952.) na stranici 382. Copeland (2004.) veli da:
    "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)