Teorema lui Savitch

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

În teoria complexității de calcul , teorema lui Savitch , demonstrată de Walter Savitch în 1970 [1] , afirmă că pentru fiecare funcție :

.

Cu alte cuvinte, dacă o mașină de Turing nedeterministă poate rezolva o problemă în spațiul f ( n ), o mașină de Turing deterministă poate rezolva aceeași problemă în pătratul spațiului.

Un corolar important al teoremei este că PSPACE = NPSPACE . Acest lucru rezultă din faptul că pătratul unei funcții polinomiale este în sine o funcție polinomială.

Grafic direcționat al configurațiilor mașinii Turing

Teorema lui Savitch codifică configurațiile unei mașini Turing printr-un grafic orientat. Fiecare nod al graficului reprezintă o configurație. Între două noduri u și v există un arc orientat dacă din configurația u este posibil să se ajungă la configurația v .

Problema de a decide un limbaj se transformă într-o problemă de accesibilitate pe grafice orientate. Mai exact, este vorba de a înțelege dacă se poate ajunge la orice configurație de acceptare din configurația inițială.

Algoritm folosit pentru demonstrație

Este prezentat un algoritm care pe baza unui șir w dat ca intrare la o mașină Turing N , două configurații c 1 , c 2 și o intrare t , returnează adevărat dacă din configurația c 1 este posibil să se ajungă la configurația c 2 în la cel puțin t pași.

Poate ajunge ( c 1 , c 2 , t )

  1. Dacă t = 1, verificați dacă c 1 = c 2 sau dacă c 1 returnează c2 conform regulilor din N. Returnează adevărat dacă cel puțin una dintre condiții este adevărată , în caz contrar este falsă
  2. Dacă t > 1, atunci pentru orice configurație c m de N pe w folosind spațiul f (n) :
    1. Executați CanReach ( c 1 , c m , partea totală superioară ( t / 2));
    2. Run Can Reach ( c m , c 2 , partea totală superioară ( t / 2));
    3. Dacă ambii pași anteriori au revenit adevărat , reveniți la adevărat .
  3. Dacă nu v-ați întors încă adevărat , reveniți la fals .

În acest algoritm, funcția UpperIntegerPart returnează partea întreagă superioară a valorii care este transmisă ca argument.

Primul apel la această funcție recursivă se face cu tripletul de parametri ( c inițial , c final , 2 df (n) ), unde d este o constantă aleasă în mod specific, astfel încât mașina Turing N să nu aibă mai mult de 2 df (n) configurații folosind o panglică de celule f (n) .

Notă

  1. ^ Walter J. Savitch, Relationships between nondeterministic and deterministic tape complexities , în Journal of Computer and System Sciences , vol. 4, nr. 2, 1970, pp. 177–192, DOI : 10.1016 / S0022-0000 (70) 80006-X .

Bibliografie

Matematica Portalul de matematică : accesați intrările Wikipedia care se ocupă de matematică