{{theorem | NPSPACE=PSPACENPSPACE = PSPACE

| Savičova, pro polynomy }}

Dk (formálně) ::

:: ∀ DTS je zvláštním případem NTS. :: Předpokládejme, že LNPSPACEL ∈ NPSPACE, tedy existuje kk, pro něž LNSPACE(nk)L ∈ NSPACE(n^k). :: Nechť MM je NTS přijímající LL v prostoru nkn^k a má BUNO !1 KFK_F. :: Ukážeme, že existuje DTS MM’, který přijímá LL v prostoru O(n2k)O(n^{2k}). :: Nechť GM,x=(V,E)G_{M,x} = (V, E) je konfigurační graf výpočtů MM nad xx, popíšeme algoritmus, který bude testovat to, jestli v GM,xG_{M,x} existuje cesta z K0K_0 do !1 KFK_F, a vystačí si přitom s prostorem O((log2V)2)O((log_2 |V|)^2). :: Algoritmus popíšeme pomocí funkce Dosazˇitelnaˊ(i,K1,K2)Dosažitelná(i, K_1, K_2), která zjistí, zda z konfigurace K1K_1 je konfigurace K2K_2 dosažitelná v nejvýše 2i2^i krocích Turingova stroje MM. :: Pro volání Dosazˇitelnaˊ(0,K1,K2)Dosažitelná(0, K_1, K_2) funkce skontroluje, jestli je K2K_2 přímo dosažitelná z K1K_1. :: Pokud je i>0i > 0, je K2K_2 dosažitelná z K1K_1 v nejvýš 2i2^i krocích, pokud existuje konfigurace KK ( foreach KVK ∈ V ) taková, že KK je z K1K_1 dosažitelná v nejvýš 2i12^{i-1} krocích a K2K_2 je z KK dosažitelná v nejvýš 2i12^{i-1} krocích, což ověříme dvojicí rekurzivních volání ( if Dosazˇitelnaˊ(i1,K1,K)Dosažitelná(i-1, K_1, K) && Dosazˇitelnaˊ(i1,K,K2)Dosažitelná(i-1, K, K_2) ). :: Protože TS MM přijímá jazyk LL v prostoru nin^i, existuje konstanta cMc_M, pro kterou je počet konfigurací MM nejvýš 2cMnk2^{c_M n^k}, tedy voláním Dosazˇitelnaˊ(cMnk,K0,KF)Dosažitelná(c_M n^k , K_0 ,K_F) zjistíme, je-li v GM, xx dosažitelná v 2cMnk2^{c_M n^k} krocích, tedy, je-li vůbec dosažitelná.

:: Korektnost: Pokud je i=0i = 0, znamená to, že K2K_2 musí být z K1K_1 dosažitelná v nejvýš jednom ( =20=2^0 ) kroku, jinými slovy, buď (K1,K2)(K_1, K_2) je hranou v GM,xG_{M, x}, nebo K1=K2K_1 = K_2. Pokud je i>0i > 0, je K2K_2 dosažitelná z K1K_1 v nejvýš 2i2^i krocích, pokud existuje konfigurace KK taková, že KK je z K1K_1 dosažitelná v nejvýš 2i12^{i-1} krocích a K2K_2 je z KK dosažitelná v nejvýš 2i12^{i-1} krocích, což ověříme dvojicí rekurzivních volání.

:: Zbývá odhadnout, jak velký prostor požaduje volání funkce DosazˇitelnaˊDosažitelná. :: Prostor O(n2k)O(n^{2k}), kterého chceme dosáhnout nám neumožňuje uložit si v paměti celý graf GM,xG_{M, x}, protože už jen počet jeho vrcholů je exponenciální v nn. Nám ale ve skutečnosti stačí umět otestovat pro dvě dané konfigurace K1K_1 a K2K_2, zda (K1,K2)E(K_1, K_2) ∈ E, tedy zda lze z konfigurace K1K_1 přejít do konfigurace K2K_2 pomocí přechodové funkce stroje MM. :: K tomuto testu nám tedy stačí přechodová funkce, jejíž velikost je konstantní a nezávislá na n=xn = |x|. :: V cyklu potřebujeme postupně generovat všechny konfigurace. Na uložení jedné konfigurace nám stačí cMnkc_M n^k bitů, stačí tedy generovat všechny binární řetězce této délky a vybírat si ty, které kódují konfigurace. (💡 K zakódování konfigurace v podobě, s níž by se Turingovu stroji dobře pracovalo, můžeme ve skutečnosti potřebovat více bitů, než jen cMnkc_M n^k). :: Použijeme-li například totéž kódování jako při kódování konfigurací pro důkaz TS ⇒ ČRF, postačí nám však stále O(nk)O(n^k) bitů { kde v „OO“ notaci se zde schovává i konstanta cMc_M }. Můžeme tedy předpokládat, že do konstanty cMc_M jsou již nároky na uložení kódu konfigurace započítány. :: Hloubka rekurze je omezena pomocí cMnk=O(nk)c_M n^k = O(n^k), protože to je počáteční hodnota ii, které předáváme funkci jako parametr a v každém dalším voláním toto ii snížíme o jedna. Dohromady tedy dostaneme, že celkový prostor, který k vykonání Dosazˇitelnaˊ(GM,x,cMni,K0,KF)Dosažitelná(G_{M,x}, c_M n^i, K_0, K_F) potřebujeme, je velký O(nk.nk)=O(n2k)O(n^k . n^k ) = O(n^{2k}). :: Nebylo by také obtížné na základě této funkce vytvořit DTS MM , který by vyžadoval týž prostor a přijímal jazyk LL. Z toho plyne, že LDSPACE(O(nk))PSPACEL ∈ DSPACE(O(n^k)) ⊆ PSPACE.

Zdroje ::

  • http://ktiml.mff.cuni.cz/~kucerap/NTIN090/NTIN090-poznamky.pdf