{{theorem |
| Savičova, pro polynomy }}
Dk (formálně) ::
:: ∀ DTS je zvláštním případem NTS. :: Předpokládejme, že , tedy existuje , pro něž . :: Nechť je NTS přijímající v prostoru a má BUNO !1 . :: Ukážeme, že existuje DTS , který přijímá v prostoru . :: Nechť je konfigurační graf výpočtů nad , popíšeme algoritmus, který bude testovat to, jestli v existuje cesta z do !1 , a vystačí si přitom s prostorem . :: Algoritmus popíšeme pomocí funkce , která zjistí, zda z konfigurace je konfigurace dosažitelná v nejvýše krocích Turingova stroje . :: Pro volání funkce skontroluje, jestli je přímo dosažitelná z . :: Pokud je , je dosažitelná z v nejvýš krocích, pokud existuje konfigurace ( foreach ) taková, že je z dosažitelná v nejvýš krocích a je z dosažitelná v nejvýš krocích, což ověříme dvojicí rekurzivních volání ( if && ). :: Protože TS přijímá jazyk v prostoru , existuje konstanta , pro kterou je počet konfigurací nejvýš , tedy voláním zjistíme, je-li v GM, dosažitelná v krocích, tedy, je-li vůbec dosažitelná.
:: Korektnost: Pokud je , znamená to, že musí být z dosažitelná v nejvýš jednom ( ) kroku, jinými slovy, buď je hranou v , nebo . Pokud je , je dosažitelná z v nejvýš krocích, pokud existuje konfigurace taková, že je z dosažitelná v nejvýš krocích a je z dosažitelná v nejvýš krocích, což ověříme dvojicí rekurzivních volání.
:: Zbývá odhadnout, jak velký prostor požaduje volání funkce . :: Prostor , kterého chceme dosáhnout nám neumožňuje uložit si v paměti celý graf , protože už jen počet jeho vrcholů je exponenciální v . Nám ale ve skutečnosti stačí umět otestovat pro dvě dané konfigurace a , zda , tedy zda lze z konfigurace přejít do konfigurace pomocí přechodové funkce stroje . :: K tomuto testu nám tedy stačí přechodová funkce, jejíž velikost je konstantní a nezávislá na . :: V cyklu potřebujeme postupně generovat všechny konfigurace. Na uložení jedné konfigurace nám stačí 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 ). :: 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 bitů { kde v „“ notaci se zde schovává i konstanta }. Můžeme tedy předpokládat, že do konstanty jsou již nároky na uložení kódu konfigurace započítány. :: Hloubka rekurze je omezena pomocí , protože to je počáteční hodnota , které předáváme funkci jako parametr a v každém dalším voláním toto snížíme o jedna. Dohromady tedy dostaneme, že celkový prostor, který k vykonání potřebujeme, je velký . :: Nebylo by také obtížné na základě této funkce vytvořit DTS , který by vyžadoval týž prostor a přijímal jazyk . Z toho plyne, že .
Zdroje ::
http://ktiml.mff.cuni.cz/~kucerap/NTIN090/NTIN090-poznamky.pdf