Savitch tétele

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2021. április 24-én felülvizsgált verziótól ; az ellenőrzéshez 1 szerkesztés szükséges .

Savitch tétele (1970):

NSZÉR (f(n)) ⊆ DSPACE (f²(n)).

Vagyis ha egy nem determinisztikus Turing-gép meg tud oldani egy feladatot f ( n ) memória használatával, akkor egy determinisztikus Turing -gép meg tudja oldani a memória négyzetére.

Következmények

Gyakorlati alkalmazás

Bizonyíték:
Vegyünk egy Turing-gépet bemenettel és munkaszalaggal. Konfigurációja a következőképpen kódolható: kódolja a munkaszalag helyzetét és tartalmát (memóriát foglal), a bemeneti szalag helyzetét (memóriát foglal). Azóta a konfiguráció mérete a következő lesz.

Hadd . Aztán van egy nem determinisztikus Turing-gép, amely felismeri ezt a nyelvet.

Vegyünk egy olyan segédfunkciót, amely legfeljebb átmenetekben számítja ki a konfigurációból a konfigurációba való átmenet lehetőségét:

Elérés (I, J, k): ha (k = 0) visszatérés (IJ) vagy (I = J) // rekord (IJ) azt jelenti, hogy az MT egy lépésben áthelyezhető az I konfigurációból a J konfigurációba else for (Y) // köztes konfigurációk felsorolása , ha Reach(I, Y, k-1) és Reach(Y, J, k-1 ) true return hamis

Ez a funkció rekurziós mélységgel rendelkezik, a rekurzió minden szintjén a memóriát használja az aktuális konfigurációk tárolására.

Tekintsünk egy nyelvet felismerő Turing-gépet. Ennek a gépnek lehetnek konfigurációi. Ennek magyarázata a következő. Legyen rajta a szalag ábécé állapotai és szimbólumai. A munkaszalagon megjelenő különböző sorok száma. A bemeneti szalag feje lehet az egyik pozícióban és az egyik munkaszalagban. Így az összes lehetséges konfiguráció száma nem haladja meg a -t.

Tekintsünk egy függvényt, amely adott szó esetén ellenőrzi, hogy az a nyelvhez tartozik-e:

Ellenőrizze (x, L): ( T) esetén // ismételje meg azokat a konfigurációkat, amelyek elfogadó állapotokat tartalmaznak, ha a Reach(S, T, ) true return false

Ha a szó a nyelvhez tartozik, akkor be lesz fogadva, mivel minden lehetséges bekerülési utat mérlegelnek. Ezt a függvényhez számunkra megadott rekurziós mélység biztosítja. És ha egy szó nem engedélyezett lépésenként (az összes lehetséges konfiguráció száma), akkor garantáltan nem engedélyezett. Ennek eredményeként a függvény rekurziós mélységgel rendelkezik, a rekurziós memória minden szintjén használatos. Ekkor az összes funkció memóriát használ.

Irodalom