IB107 Vyčíslitelnost a složitost prostorová složitost, vztahy složitostních tříd, TQBF Jan Strejček Fakulta informatiky Masarykova univerzita prostorová složitost algoritmu ■ paměí použitá při výpočtu ■ závisí na vstupu ■ jako základní model použijeme Turingův stroj ■ zkoumáme nejhorší případ, tedy maximální počet přečtených políček pásky v závislosti na délce vstupu ■ lze zkoumat i průměrný případ IB107 Vyčíslitelnost a složitost: prostorová složitost, vztahy složitostních tříd, TQBF 2/18 prostorová složitost Turingova stroje Definice (prostorová složitost deterministického TM) Necht M je úplný deterministický (jednopáskový nebo vícepáskový) Turingův stroj se vstupní abecedou Z. Pro každé i^gF definujeme $m (w) jako počet políček pásky, které stroj M čte při výpočtu na vstupu w. Prostorová složitost stroje M je pak funkce Sm ■ N N definovaná vztahem SM(n) = max{sM(w) | w g Z"}. Definice (prostorová složitost nedeterministického TM) Definice prostorové složitosti úplného nedeterministického Turingova stroje se liší jen tím, že Sm(w) označuje maximální počet políček pásky, které stroj M čte při nějakém výpočtu na vstupu w. IB107 Vyčíslitelnost a složitost: prostorová složitost, vztahy složitostních tříd, TQBF 3/18 Příklad M = {{q0, q^, qacc, qrej}, {0,1}, {0,1, >, u}, >, u, S, q0, qacc, qrej) s > 0 1 u qo (qo, >, R) (Qo,0,fí) (Qi, 1, {qacc, ~, ") q^ (Qrej, ~, -) (qacc, —, ") IB107 Vyčíslitelnost a složitost: prostorová složitost, vztahy složitostních tříd, TQBF 4/18 Pro každý deterministický úplný TM M a pro každé m > 1 lze zkonstruovat deterministický úplný TM M' tak, že L(M) = L(Mř) c SM>(n) = SM(n) m + a7 + 2. Důkaz: Protože prostor lze komprimovat, používáme asymptotickou notaci IB107 Vyčíslitelnost a složitost: prostorová složitost, vztahy složitostních tříd, TQBF prostorové složitostní třídy problémů prostorová složitost problému = nejmenší prostorová složitost, s jakou lze daný problém rozhodnout Definice (prostorové složitostní třídy problémů) Každá funkce f: N IR+ definuje prostorové složitostní třídy problémů: SPACE(f(n)) = {L | L je rozhodovaný nějakým det. TM M s prostorovou složitostíSM(n) = 0(f(n))} NSPACE(f(n)) = {L | L je rozhodovaný nějakým nedet. TMAÍ s prostorovou složitostí Sx(n) = 0(f(n))} IB107 Vyčíslitelnost a složitost: prostorová složitost, vztahy složitostních tříd, TQBF 6/18 SAT g SPACE(n) SAT = {(ip) |
• R+ platí: □ TIME(f(n)) c NTIME(f(n)) U SPACE{f{n)) c NSPACE(f(n)) m TIME(f(n)) c SRACE(ř(n)) □ NTIME(f(n)) c NSPACE{f{n)) H SPACE{f{n)) c TIME(kfW) pro vhodné keN m NSPACE{f{n)) c NTIME{kf^) pro vhodné keN Důkaz: IB107 Vyčíslitelnost a složitost: prostorová složitost, vztahy složitostních tříd, TQBF Savitchova věta Pro každou funkci f: N -> R+ splňující f (n) > n platí: NSPACE(f(n)) c SPACE(ŕ(n)) Standardní převod nedet. TM na deterministický nefunguje: IB107 Vyčíslitelnost a složitost: prostorová složitost, vztahy složitostních tříd, TQBF 9/18 Savitchova věta Důkaz: Nechí Aí \e nedet. TM s prostorovou složitostí f{ri). Stroj upravíme tak, aby před akceptováním smazal pásku a posunul hlavu zcela vlevo. Má tedy jen jednu akceptující konfiguraci cacc. Výpočet stroje má maximálně kf^ kroků. Ekvivalentní deterministický stroj M implementuje proceduru comp{c^, c2, ř), která akceptuje, pokud lze ve stroji J\f během nejvýše t kroků přejít z konfigurace c-i do c2, jinak zamítá. Je-li c„ iniciální konfigurace stroje J\f pro w, stačí tedy spustit comp(cw,cacc,kŤ{n))- comp{c^, c2, ř) lze implementovat rekurzivně: IB107 Vyčíslitelnost a složitost: prostorová složitost, vztahy složitostních tříd, TQBF 10/18 Savitchova věta Algoritmus pro comp{c^, c2, t)\ t = 1: Otestujeme, zda platí c-i = c2 nebo Ci \rr Cz- N Pokud platí, akceptujeme, jinak zamítneme. t > 1: Pro každou konfiguraci ď stroje J\f využívající nejvýše f(n) políček ■ spustíme comp{c^, ď, [|]) a comp(cř, c2, r|]), ■ pokud obojí akceptuje, akceptujeme. Pokud žádné d nevedlo k akceptování, zamítneme. Prostorová složitost: ■ comp potřebuje prostor na c-i, c2, d a t (a něco konstantního): ■ hloubka rekurzivního volání: ■ celkem: ■ IB107 Vyčíslitelnost a složitost: prostorová složitost, vztahy složitostních tříd, TQBF 11/18 polynomiální prostorové složitostní třídy PSPACE = |J SPACE(n/c) NPSPACE = |J NSPACE^) Věta PSPACE = NPSPACE Důkaz: Plyne přímo z definice (c) a ze Savitchovy věty (d). IB107 Vyčíslitelnost a složitost: prostorová složitost, vztahy složitostních tříd, TQBF sublineární prostorové složitostní třídy ■ chceme podchytit prostor využívaný nad rámec vstupu ■ upravíme výpočetní model: ■ (vícepáskový) Turingův stroj se speciální vstupní páskou ■ vstupní páska je konečná, za vstupem je koncová značka < ■ vstupní pásku lze pouze číst, nelze na ni zapsat ■ čtení ze vstupní pásky se nezapočítává do počtu přečtených políček Sm(w) ■ v tomto modelu je každý regulární jazyk v SPACE(1) L = LOGSPACE = SPACE(logn) NL = NLOGSPACE = NSPACE(logn) Příklad: {0* 1k |/c > 0} e L IB107 Vyčíslitelnost a složitost: prostorová složitost, vztahy složitostních tříd, TQBF 13/18 vztahy prostorových a časových tříd LCNLCPCNPC NPSPACE = PSPACE c EXPTIME c NEXPTIME NL c PSPACE P c EXPTIME IB107 Vyčíslitelnost a složitost: prostorová složitost, vztahy složitostních tříd, TQBF 14/18 problém TQBF QBF = kvantifikované výrokové formule (proměnné v doméně {0,1}) 3xVy ((x v y) A (-.x V -.y)) Předpokládáme, že QBF formule jsou v prenexní formě (tedy kvantifikátory jsou pouze na začátku formule). Definice (problém TQBF (true quantified Boolean formula)) Problém TQBF je problém rozhodnout, zda je daná QBF formule bez volných proměnných pravdivá. TQBF = {((p) | (p je pravdivá QBF formule bez volných proměnných} Věta TQBF je PSPACE-úplný. IB107 Vyčíslitelnost a složitost: prostorová složitost, vztahy složitostních tříd, TQBF 15/18 TQBF je PSPACE-úplný Důkaz: TQBF e PSPACE: lze řešit rekurzivní procedurou t(cp)\ D Je-li y tvaru 3x(cp'), spustíme t((p'[x h> 0]) a t((p'[x h> 1]). Pokud alespoň jedno z volání akceptuje, akceptujeme. Jinak zamítneme. b Je-li (p tvaru Vx(^/), spustíme t((př[x h> 0]) a t((př[x h> 1]). Pokud obě volání akceptují, akceptujeme. Jinak zamítneme. □ Pokud (p neobsahuje kvantifikátory, snadno vyhodnotíme a akceptujeme, pokud je
1: = Sni V(c3, c4) g {(C-|, /77), (/77, C2)} (V
Pak0 = 3o,,Q2 (