Složitost II TIN063 Ondřej Čepek
2 Sylabus 1.Výpočetní model – DTS a NTS 2.Časová a prostorová složitost výpočtu 3.Technické pomůcky: lineární komprese, lineární zrychlení a redukce počtu pásek 4.Časová (prostorová) konstruovatelnost funkcí a vyčíslitelnost funkcí v lineárním čase (prostoru) 5.Věty o deterministické časové a prostorové hierarchii 6.Věty o vztazích mezi časovou a prostorovou složitostí 7.Translační lemma a nedeterministické hierarchie 8.Základní složitostní třídy a jejich vzájemné vztahy 9.Orákulové TS a relativizované třídy 10.Polynomiální hierarchie
3 Deterministický Turingův Stroj (DTS) DTS je abstraktní stroj definovaný pěticí (Q, Σ, δ,q 0,F), který se skládá z: řídící jednotky, která je v každém okamžiku v jednom ze stavů v konečné množině stavů Q, obsahující počáteční stav q 0 a množinu přijímacích stavů F potenciálně nekonečné (jednosměrné) vstupní pásky (pouze pro čtení) a několika potenciálně nekonečných (jednosměrných) pracovních pásek, které sestávají z buněk, z nichž každá může obsahovat právě jeden symbol abecedy Σ hlav pro čtení (vstupní páska) a čtení a zápis (pracovní pásky), které se mohou po páskách pohybovat oběma směry (v on-line modelu po vstupní pásce pouze vpravo) programu, který je zadán přechodovou funkcí δ : Q Σ k Q Σ k-1 { , , } k, kde k je počet pásek (včetně vstupní), funkce není definována pro všechny vstupy Konfigurace TS = stav řídící jednotky + pozice hlav na všech páskách (včetně vstupní) + obsah pracovních pásek (té jejich konečné části kde došlo od počátku výpočtu k nějakým změnám) Počáteční konfigurace TS = stav q 0 + všechny hlavy na počátečních pozicích + vstupní slovo na vstupní pásce a prázdná slova (prázdné symboly) na pracovních páskách Displej TS = stav řídící jednotky + symboly (obsahy buněk) pod všemi hlavami Krok TS = jedno použití přechodové funkce na základě aktuálního displeje, tj. změna stavu řídící jednotky, přepsání symbolů pod pracovními hlavami a posun všech hlav (lze i zůstat na místě)
4 Výpočet TS = posloupnost kroků TS začínající v počáteční konfiguraci Zastavení TS = okamžik kdy přechodová funkce není pro daný displej definována (vždy platí pokud je řídící jednotka v přijímacím stavu) Přijímající výpočet TS = výpočet TS, který zastaví v přijímacím stavu Odmítající výpočet TS = výpočet TS, který zastaví v jiném než přijímacím stavu nebo výpočet, který nezastaví (nekonečný výpočet) Přijímané slovo: Slovo w je přijímáno DTS M pokud výpočet M nad vstupním slovem w zastaví v přijímacím stavu. Přijímaný jazyk: Jazyk L(M) přijímaný DTS M sestává ze všech slov přijímaných DTS M. Akceptor x Transducer Dosud popisovaný TS je tzv. akceptor. Pokud chceme, aby TS počítal funkci, tak z něj uděláme transducer přidáním výstupní pásky, která je pouze pro zápis, hlava se po ní pohybuje pouze vpravo a symbol pod hlavou neovlivňuje přechodovou funkci (nepatří do displeje). Transducer může v každém svém kroku zapsat na výstupní pásku 1 symbol. Definičním oborem vyčíslované funkce je přijímaný jazyk daného TS a funkční hodnotou přiřazenou přijímanému vstupnímu slovu je obsah výstupní pásky v okamžiku zastavení. Proč zrovna TS jako výpočetní model? Přesná definice časové i prostorové složitosti výpočtu + Church-Turingova teze.
5 Prostorová složitost výpočtu DTS Nechť M je DTS takový, že w Σ* takové, že |w| = n, použije M při práci nad vstupním slovem w nejvýše S(n) buněk na pracovních páskách (prostor zabraný vstupním slovem na vstupní pásce se nepočítá). Potom říkáme, že M má prostorovou složitost S(n). Deterministická prostorová složitost jazyka Jazyk L má deterministickou prostorovou složitost S(n) pokud existuje DTS M s prostorovou složitostí S(n), který rozpoznává L, tj. takový že L(M) = L. Časová složitost výpočtu DTS Nechť M je DTS takový, že w Σ* takové, že |w| = n, udělá M při práci nad vstupním slovem w nejvýše T(n) kroků než zastaví. Potom říkáme, že M má časovou složitost T(n) Deterministická časová složitost jazyka Jazyk L má deterministickou časovou složitost T(n) pokud existuje DTS M s časovou složitostí T(n), který rozpoznává L, tj. takový že L(M) = L. Deterministické třídy časové a prostorové složitosti DSPACE(S(n)) = {L | L má deterministickou prostorovou složitost S(n)} DTIME(T(n)) = {L | L má deterministickou časovou složitost T(n)}
6 Nedeterministický Turingův Stroj (NTS) Všechny definice stejné jako pro DTS kromě přechodové funkce δ, která je nahrazena tabulkou δ, která přiřazuje každému displeji z množiny Q Σ k množinu možných pokračování, tj. množinu z potenční množiny P(Q Σ k-1 { , , } k ). Definice: NTS M přijímá vstup x Σ* tehdy a jen tehdy když existuje přijímající výpočet NTS M na vstupu x (výpočet končící v q y ). Jazyk L(M) přijímaný NTS M sestává ze všech vstupních slov přijímaných NTS M. Poznámka: Zatímco u DTS odpovídá jednomu vstupu jeden výpočet, u NTS odpovídá jednomu vstupu strom možných výpočtů (a vstup je přijat když alespoň jedna větev výpočtu končí v přijímající konfiguraci NTS) Alternativní definice NTS: přidáme tzv. hádací pásku. Práce NTS pak sestává ze 2 fází: 1) Na hádací pásku je (nedeterministicky) zapsán řetězec y {1, …,k}*, kde k je maximální počet možných pokračování pro nějaký displej v tabulce δ. 2) Pomocí y je výpočet na vstupu x změněn z nedeterministického na deterministický. Vstup x je přijat pokud existuje (certifikát) y kódující přijímající výpočet. Poznámka: Řetězec (certifikát) na hádací pásce je vlastně kód nějaké větve výpočtu ve stromu možných výpočtů. Platný certifikát je pak kód větve výpočtu, která končí v přijímající konfiguraci. Vstup je přijímán daným DTS pokud pro něj existuje platný certifikát.
7 Prostorová složitost výpočtu NTS Nechť M je NTS takový, že w Σ* takové, že |w| = n, použije M při práci nad vstupním slovem w nejvýše S(n) buněk na pracovních páskách (při jakémkoli z možných výpočtů M nad vstupem w). Potom říkáme, že M má prostorovou složitost S(n). Nedeterministická prostorová složitost jazyka Jazyk L má nedeterministickou prostorovou složitost S(n) pokud existuje NTS M s prostorovou složitostí S(n), který rozpoznává L, tj. takový že L(M) = L. Časová složitost výpočtu NTS Nechť M je NTS takový, že w Σ* takové, že |w| = n, udělá M při práci nad vstupním slovem w nejvýše T(n) kroků než zastaví (při jakémkoli z možných výpočtů M nad vstupem w). Potom říkáme, že M má časovou složitost T(n). Nedeterministická časová složitost jazyka Jazyk L má nedeterministickou časovou složitost T(n) pokud existuje NTS M s časovou složitostí T(n), který rozpoznává L, tj. takový že L(M) = L. Nedeterministické třídy časové a prostorové složitosti NSPACE(S(n)) = {L | L má nedeterministickou prostorovou složitost S(n)} NTIME(T(n)) = {L | L má nedeterministickou časovou složitost T(n)}
8 Triviální vztahy funkci S(n) : DSPACE(S(n)) NSPACE(S(n)) funkci T(n) : DTIME(T(n)) NTIME(T(n)) Pokud n: S 1 (n) ≤ S 2 (n) pak DSPACE(S 1 (n)) DSPACE(S 2 (n)) Pokud n: S 1 (n) ≤ S 2 (n) pak NSPACE(S 1 (n)) NSPACE(S 2 (n)) Pokud n: T 1 (n) ≤ T 2 (n) pak DTIME (T 1 (n)) DTIME (T 2 (n)) Pokud n: T 1 (n) ≤ T 2 (n) pak NTIME (T 1 (n)) NTIME (T 2 (n)) Zpracování výjimek Pomocí přidání nových stavů řídící jednotky TS se lze jednoduše „postarat“ o libovolnou konečnou množinu „výjimečných vstupů“. 1.Zkonstruujeme konečný automat rozpoznávající danou množinu vstupů 2.TS napřed simuluje tento konečný automat (TS při tom nepoužívá pracovní pásky). Pokud je na vstupu jedno z hledaných slov (výjimek) tak se simulace zastaví (a TS přijme nebo odmítne podle druhu výjimky). Pokud na vstupu není žádné z hledaných slov (což TS zjistí nejpozději po přečtení tolika vstupních symbolů ze vstupní pásky kolik jich je v nejdelší výjimce), tak TS odjede hlavou na začátek vstupní pásky a spustí „normální“ výpočet (simuluje původní TS). Zpracováním výjimek se k výpočtu přidá konstantní čas (počet kroků) a nulový pracovní prostor.
9 Věta (o lineární prostorové kompresi) Nechť je jazyk L přijímán (k+1)-páskovým DTS M (1 vstupní a k pracovních pásek), který má prostorovou složitost S(n). Potom r N + existuje (k+1)-páskový DTS M’, který má prostorovou složitost S(n) / r a přijímá jazyk L. Důsledek: (Ekvivalentní formulace) r N + : DSPACE(S(n)) = DSPACE( S(n) / r ) Poznámka: Analogicky platí r N + : NSPACE(S(n)) = NSPACE( S(n) / r ), důkaz projde beze změny i pro nedeterministický případ. Věta (redukce počtu pásek pro prostorovou složitost) Nechť je jazyk L přijímán (k+1)-páskovým DTS M (1 vstupní a k pracovních pásek), který má prostorovou složitost S(n). Potom existuje DTS M’ s 1 pracovní páskou, který má prostorovou složitost S(n) a přijímá jazyk L. Poznámka: Důkaz lze upravit i pro NTS. Definice: Nechť f(n) je funkce v proměnné n. Pak inf n f(n) je limita pro n největší dolní meze posloupnosti f(n), f(n+1), f(n+2), … Věta (o lineárním zrychlení – část 1) Nechť je jazyk L přijímán k-páskovým DTS M (1 vstupní a k-1 pracovních pásek), který má časovou složitost T(n) a nechť inf n (T(n) / n) = . Potom c>0 existuje DTS M’ s k pracovními páskami, který má časovou složitost cT(n) a přijímá jazyk L. Poznámka: Postačující podmínka: T(n) ω(n) implikuje inf n (T(n) / n) = .
10 Důsledek: Pokud inf n (T(n) / n) = pak c>0 : DTIME(T(n)) = DTIME(cT(n) ). Věta (o lineárním zrychlení – část 2) Nechť je jazyk L přijímán k-páskovým DTS M (1 vstupní a k-1 pracovních pásek), který má časovou složitost T(n) = cn, kde c>1. Potom >0 existuje DTS M’ s k pracovními páskami, který má časovou složitost (1+ )n a přijímá jazyk L. Důsledek: Pokud T(n) = cn, kde c>1, pak >0 : DTIME(T(n)) = DTIME((1+ )n ). Věta (o lineárním zrychlení – NTS verze) Pokud inf n (T(n) / n) = pak c>0 : NTIME(T(n)) = NTIME(cT(n) ). Pokud T(n) = cn, kde c>1, pak >0 : NTIME(T(n)) = NTIME((1+ )n ). Věta (redukce počtu pásek pro časovou složitost – kvadratická verze) Mějme jazyk L DTIME(T(n)) a nechť buď inf n (T(n) / n) = nebo T(n) = cn, kde c>1. Potom existuje DTS M s 1 pracovní páskou, který má časovou složitost T 2 (n) a přijímá jazyk L. Poznámka: Důkaz lze upravit i pro NTS. Věta (redukce počtu pásek pro časovou složitost – logaritmická verze) Mějme jazyk L DTIME(T(n)). Potom existuje DTS M s 2 pracovními páskami, který má časovou složitost T(n)·log 2 T(n) a přijímá jazyk L. Poznámka: Důkaz lze opět upravit i pro NTS.
11 Konstruovatelnost funkcí Definice: Funkce f : N N je rekurzivní tehdy a jen tehdy, když existuje DTS transducer s jednoprvkovou vstupní abecedou takový, že pro vstup 1 n (n znaků na vstupní pásce). dává výstup 1 f(n) (f(n) znaků na výstupní pásce). Definice: Funkce f : N N je vyčíslitelná v lineárním čase tehdy a jen tehdy, když je rekurzivní a existuje konstanta c a DTS transducer s jednoprvkovou vstupní abecedou takový, že na vstupu 1 n udělá nejvýše cf(n) kroků než vydá výstup 1 f(n). Definice: Funkce f : N N je vyčíslitelná v lineárním prostoru tehdy a jen tehdy, když je rekurzivní a existuje konstanta c a DTS transducer s jednoprvkovou vstupní abecedou takový, že na vstupu 1 n použije nejvýše cf(n) buněk na pracovních páskách než vydá výstup 1 f(n). Definice: Funkce f : N N je časově konstruovatelná tehdy a jen tehdy, když existuje DTS takový, že pro každý vstup délky n zastaví po právě f(n) krocích. Definice: Funkce f : N N je prostorově konstruovatelná tehdy a jen tehdy, když existuje DTS takový, že pro každý vstup délky n použije (označí) právě f(n) buněk na pracovních páskách než zastaví. Poznámka: Pro příslušný DTS v předchozích dvou definicích lze opět předpokládat, že má jednoprvkovou vstupní abecedu (o výstupu rozhoduje pouze délka vstupu a ne jeho konkrétní obsah).
12 Lemma: Nechť f 1 : N N a f 2 : N N jsou funkce takové, že f 1 + f 2 a f 2 jsou časově konstruovatelné a navíc platí >0 n 0 n ≥ n 0 : f 1 (n) ≥ f 2 (n) + (1+ )n. Potom je také funkce f 1 časově konstruovatelná. Věta: Nechť f : N N je funkce taková, že >0 n 0 n ≥ n 0 : f(n) ≥ (1+ )n. Potom platí f je časově konstruovatelná f je vyčíslitelná v lineárním čase Věta: Nechť f : N N je funkce. Potom platí f je prostorově konstruovatelná f je vyčíslitelná v lineárním prostoru Důsledek: Každá časově konstruovatelná funkce f taková, že splňuje výše uvedenou podmínku >0 n 0 n ≥ n 0 : f(n) ≥ (1+ )n, je také prostorově konstruovatelná. Lemma (o prostorové složitosti univerzálního TS) Nechť x je kód (Gödelovo číslo) DTS M s jednou vstupní a jednou pracovní páskou pracujícího v prostoru S(n), který má vstupní abecedu {0,1} a pracovní abecedu s t symboly. Pak lze práci M na datech y odsimulovat na univerzálním DTS s jednou pracovní páskou (a jednou vstupní páskou, na které je vstup (x,y)) v prostoru max { log 2 t S(|y|), |x| } Věta (o deterministické prostorové hierarchii) Nechť S 1 : N N a S 2 : N N jsou funkce takové, že S 1 o(S 2 ), S 2 je prostorově konstruovatelná a S 1 (n) ≥ log 2 n. Potom existuje jazyk L pro který platí L DSPACE(S 2 (n)) \ DSPACE(S 1 (n))
13 Lemma (o časové složitosti univerzálního TS) Nechť x je kód (Gödelovo číslo) DTS M s jednou vstupní a dvěma pracovními páskami pracujícího v čase T(n), který má vstupní abecedu {0,1} a pracovní abecedu s t symboly. Pak lze práci M na datech y odsimulovat na univerzálním DTS se čtyřmi pracovními páskami (a jednou vstupní páskou, na které je vstup (x,y)) v čase 5 |x| T(|y|). Věta (o deterministické časové hierarchii) Nechť T 1 : N N a T 2 : N N jsou funkce takové, že T 1 log 2 T 1 o(T 2 ) a T 2 je časově konstruovatelná. Potom existuje jazyk L pro který platí L DTIME(T 2 (n)) \ DTIME(T 1 (n)) Věta (o vztazích mezi třídami časové a prostorové složitosti) Nechť f : N N je funkce. Potom platí a) NTIME(f(n)) DSPACE(f(n)) b) L NSPACE(f(n)), f(n) ≥ log 2 n c L : L DTIME(c L f(n) ) Poznámka: Část b) předchozí věty neimplikuje inkluzi NSPACE(f(n)) DTIME(c f(n) ). Věta (Savičova) Nechť S : N N je prostorově konstruovatelná funkce taková, že S(n) ≥ log 2 n. Potom NSPACE(S(n)) DSPACE(S 2 (n)).
14 Lemma (translační) Nechť S 1 (n), S 2 (n) a f(n) jsou prostorově konstruovatelné funkce takové, že S 2 (n) ≥ n a f(n) ≥ n. Potom NSPACE(S 1 (n)) NSPACE(S 2 (n)) NSPACE(S 1 (f(n))) NSPACE(S 2 (f(n))). Poznámka: Translační lemma platí i pro DSPACE (stejný důkaz jako pro NSPACE) a pro DTIME a NTIME (jiný, komplikovanější důkaz, jiné předpoklady) Věta (o nedeterministické prostorové hierarchii – omezená verze pro polynomy) Nechť ε > 0 a r ≥ 1. Potom existuje jazyk L pro který platí L NSPACE(n r+ε ) \ NSPACE(n r ) Definice: Tvrzení parametrizované číslem n N je pravdivé skoro všude tehdy a jen tehdy když je nepravdivé pro konečně mnoho n nekonečně často tehdy a jen tehdy když je pravdivé pro nekonečně mnoho n Lemma (pomocné č.1) Nechť je jazyk L přijímán DTS M s prostorovou složitostí S(n) skoro všude. Potom existuje DTS M’ přijímající L s prostorovou složitostí S(n) (všude). Lemma (pomocné č.2) Nechť je dán DTS M, délka vstupu n a číslo m N. Potom existuje DTS M’ zjišťující, zda m je maximální počet použitých buněk na pracovních páskách při práci M na vstupech délky n. Výpočet M’ vždy skončí a odpoví ANO/NE. Věta (Borodinova o mezerách) Nechť g(n) ≥ n je rekurzivní funkce. Potom existuje rostoucí rekurzivní funkce S(n) taková, že DSPACE(S(n)) = DSPACE(g(S(n))). Poznámka: Platí i verze pro NSPACE, DTIME a NTIME.
15 Základní třídy prostorové a časové složitosti ProstorČas LOGP LOG = DSPACE(log n)P = c≥0 DTIME(n c ) NLOGNP NLOG = NSPACE(log n)NP = c≥0 NTIME(n c ) POLYLOGDEXT POLYLOG = c≥0 DSPACE(log c n)DEXT = c≥0 DTIME(2 cn ) PSPACENEXT PSPACE = c≥0 DSPACE(n c )NEXT = c≥0 NTIME(2 cn ) NPSPACEEXPTIME NPSPACE = c≥0 NSPACE(n c )EXPTIME = c≥0 DTIME(2 (n c ) ) EXPSPACENEXPTIME EXPSPACE = c≥0 DSPACE(2 cn )NEXPTIME = c≥0 NTIME(2 (n c ) ) NLOGP VětaNLOG P PSPACENPSPACE PSPACE = NPSPACE NPPSPACE NP PSPACE PSPACE EXPTIME PSPACE EXPTIME NLOGPSPACEEXPSPACE NLOG PSPACE EXPSPACE PDEXTEXPTIME P DEXT EXPTIME
16 Turingovy stroje s orákulem Definice: DTS M s orákulem A, kde A je jazyk, se liší od „obyčejného“ DTS takto: M má navíc tzv. dotazovací pracovní pásku (na které používá abecedu jazyka A). Prostor zabraný během výpočtu na této pásce se počítá do prostorové složitosti M. M má navíc 3 stavy řídící jednotky: DOTAZ, ANO, NE Pokud během práce M dojde k přechodu do stavu DOTAZ, tak v následujícím kroku M buď přejde do stavu ANO pokud aktuální obsah dotazovací pásky je slovo z jazyka A nebo přejde do stavu NE pokud aktuální obsah dotazovací pásky není slovo z jazyka A a navíc v obou případech následně vymaže (naráz) celý obsah dotazovací pásky. Jazyk slov přijímaných DTS M s orákulem A značíme L(M,A). Poznámka: DTS bez orákula lze chápat (z hlediska vzájemné simulovatelnosti) jako DTS s prázdným orákulem (tj. s A = ). Poznámka: Výpočty DTS s orákulem pro různé jazyky orákula tvoří (stejně jako výpočty NTS bez orákula) strom možných výpočtů (větvících se v konfiguracích, kde je řídící jednotka ve stavu dotaz). NTS a DTS s orákulem ale nemají stejnou výpočetní sílu. Definice: NTS M s orákulem A, kde A je jazyk, se liší od „obyčejného“ NTS zcela stejně jako DTS s orákulem od obyčejného DTS (jak je definováno výše).
17 Turingovská převoditelnost a relativizované třídy Definice: Nechť A a B jsou jazyky. Řekneme, že jazyk A je (deterministicky) Turingovsky převoditelný na jazyk B v polynomiální čase, pokud existuje DTS M s orákulem pracující v polynomiálním čase takový, že A = L(M,B). Tento fakt značíme A ≤ T B. Poznámka: Slova „v polynomiálním čase“ budeme u Turingovské převoditelnosti často vynechávat. PP Příklad: Když A P, tak A ≤ T (když A P, tak lze A rozpoznávat na DTS bez orákula). C CC Definice: Nechť B je jazyk. Potom P(B) = { A | A ≤ T B }. Nechť C je třída jazyků. Potom P(C) = { A | B C : A ≤ T B }. PP Příklad: P(P) = P Definice: Nechť A a B jsou jazyky. Řekneme, že A je nedeterministicky Turingovsky převoditelný na B v polynomiální čase, pokud existuje NTS M s orákulem pracující v polynomiálním čase takový, že A = L(M,B). Tento fakt značíme A ≤ NP B. C CC Definice: Nechť B je jazyk. Potom NP(B) = { A | A ≤ NP B }. Nechť C je třída jazyků. Potom NP(C) = { A | B C : A ≤ NP B }. CCC Poznámka: Obdobné definice lze udělat také pro PSPACE(B), LOG(B), DEXT(B), … i pro PSPACE(C), LOG(C), DEXT(C), … Například třída PSPACE(B) je třída jazyků rozpoznatelných pomocí DTS s orákulem B, pracujícím v polynomiálním prostoru.
18 Platí: Inkluze mezi „obyčejnými“ (nerelativizovanými) třídami se přímo přenášejí i na relativizované třídy. Například pro každý jazyk B platí, že P(B) NP(B) PSPACE(B) C a tím pádem pro každou třídu jazyků C platí, že CCC P(C) NP(C) PSPACE(C) PNP Příklad: NP(P) = NP NP Otázka: Čemu se rovná NP(NP) ?? Polynomiální hierarchie Definice (zjednodušená verze PH) P PH Definujme třídy jazyků 0, 1, 2, … startovní podmínkou 0 =P a rekurzivním předpisem k ≥ 0 : k+1 = NP( k ). Potom polynomiální hierarchií rozumíme třídu PH = k ≥0 k. PPNPNP Platí: 0 = P, 1 = NP(P) = NP, 2 = NP(NP), … PNPPPHP Poznámka: Pokud P =NP, tak k ≥ 0 : k = P a tím pádem PH = P (hierarchie kolabuje). PH PSPACE Věta PH PSPACE. PHPPSPACE Poznámka: Pokud PH nekolabuje, tak je „jemnějším dělením“ mezi P a PSPACE. CCC C Definice: Nechť A je jazyk nad abecedou . Pak co-A = { x * | x A } je doplněk A. Nechť C je třída jazyků. Pak co-C = { co-A | A C } je doplněk C.
19 Definice (úplný popis PH) Polynomiální hierarchie sestává z k, k a k pro k ≥ 0 kde: P 0 = 0 = 0 = P k ≥ 0 : k+1 = NP( k ) k ≥ 0 : k+1 = co-NP( k ) k ≥ 0 : k+1 = P( k ) PH Nyní PH = k ≥0 k = k ≥0 k = k ≥0 k (ekvivalence definic plyne z následující věty). Věta: Následující vztahy platí k ≥ 0 (pokud jsou parametrizovány číslem k): NPNPP a) 1 = NP, 1 = co-NP, 1 = P b) k = co- k (a tím pádem k = co- k ) c) k+1 = NP( k ) d) k+1 = P( k ) e) k+1 = co-NP( k ) f) k+1 = NP( k+1 ) g) k+1 = co-NP( k+1 ) h) k = co- k i) k = P( k ) j) k k k+1 k) k k k l)pokud k k (nebo k k ) tak k = k
20 Polynomiální hierarchie a alternující kvantifikátory Definice: p(n) x : R(x) znamená x : (|x| p(n)) (x má vlastnost R) p(n) x : R(x) znamená x : (|x| p(n)) (x má vlastnost R) CCC Nechť C je třída jazyků. Pak C je třída jazyků, kde A C pokud platí C B C polynom p : x A p(|x|) y : (x,y) B CCC Nechť C je třída jazyků. Pak C je třída jazyků, kde A C pokud platí C B C polynom p : x A p(|x|) y : (x,y) B CCC Definice: Třída C je uzavřena na zdvojování pokud A C platí, že B={(x,y) | x A } C. CCC CCCC CC C Lemma 1: Nechť C je libovolná třída jazyků. Pak A C co-A co-C (ekvivalentně co- C = co-C ). Pokud je navíc C je uzavřena na zdvojování, tak C C a C C. Definice: Nechť A je libovolný jazyk. Pak je jazyk A* definován následujícím předpisem A* = { x | n y 1 A … y n A : x=(y 1, …,y n ) } C CC Lemma 2: Nechť C je libovolná třída jazyků z polynomiální hierarchie (tedy k nebo k nebo k pro nějaké k). Pak pro libovolný jazyk A platí A C A* C.
21 Věta: PNP a) P=NP PNP b) P=co-NP c) k>0: k = k d) k>0: k = k e) k≥0: k = k+1 f) k≥0: k = k+1 Důsledek 1 (definice PH pomocí alternujících kvantifikátorů) PA k tehdy a jen tehdy když existují B P a polynom p takové, že x A p(|x|) y 1 p(|x|) y 2 … : (x,y 1,y 2, …,y k ) B PA k tehdy a jen tehdy když existují B P a polynom p takové, že x A p(|x|) y 1 p(|x|) y 2 … : (x,y 1,y 2, …,y k ) B Důsledek 2 (kolaps PH na k-té úrovni) Pokud pro nějaké k>0 platí k = k pak j≥0: k+j = k+j = k. Důsledek 3 Buď k≥0: k k+1 nebo se polynomiální hierarchie skládá z konečně mnoha různých tříd k. PPNP Důsledek 4 Pokud existuje k takové že P= 0 k pak platí P NP.
22 Převoditelnost a úplnost jazyků Definice Poly-time transducer je DTS transducer, který na vstupu velikosti n zastaví po nejvýše p(n) krocích, kde p je (nějaký) polynom. Log-space transducer je DTS transducer, který na každém vstupu zastaví a na vstupu velikosti n použije nejvýše log n buněk na pracovních páskách (vstup ani výstup se do pracovního prostoru nepočítají). Definice Jazyk L’ je převoditelný na jazyk L v polynomiálním čase, pokud existuje poly- time transducer takový, že pro vstup x zkonstruuje výstup y a platí x L’ y L. Jazyk L’ je převoditelný na jazyk L v logaritmickém prostoru, pokud existuje log-space transducer takový, že pro vstup x zkonstruuje výstup y a platí x L’ y L. CC CC Definice Nechť C je třída jazyků. Jazyk L je úplný pro třídu C vzhledem k převoditelnosti v polynomiálním čase (resp. logaritmickém prostoru), pokud L C a L’ C platí, že L’ je v polynomiálním čase (resp. logaritmickém prostoru) převoditelný na L (obdobně lze definovat úplnost vzhledem k dalším typům převoditelností). PP Definice Jazyk L je P–úplný L je úplný pro třídu P vzhledem k převoditelnosti v logaritmickém prostoru. NPNP Definice Jazyk L je NP–úplný L je úplný pro třídu NP vzhledem k převoditelnosti v polynomiálním čase. PSPACEPSPACE Definice Jazyk L je PSPACE–úplný L je úplný pro třídu PSPACE vzhledem k převoditelnosti v polynomiálním čase.
23 PP P P Poznámka Pokud bychom definovali: jazyk L je P–úplný L je úplný pro třídu P vzhledem k převoditelnosti v polynomiálním čase, tak každý jazyk ve třídě P kromě jazyků a * je P–úplný. PP Věta Nechť L je P–úplný. Pak pokud L LOG = DSPACE(log n), tak platí P = LOG. PSPACEPH Věta Nechť L je PSPACE–úplný. Pak pokud L k, tak platí PH = k, tedy polynomiální hierarchie kolabuje do třídy k = k. PSPACEPHPSPACE PH Důsledek Pokud existuje PSPACE–úplný jazyk, tak pokud PH = PSPACE, tak existuje k takové, že PH = k = k, tedy polynomiální hierarchie kolabuje do třídy k. Kvantifikované Booleovské Formule (QBF) 1.Pokud je x Booleovská proměnná, tak x je QBF (a x je v této QBF volná proměnná) 2.Pokud E a E’ jsou QBF, tak (E), (E) (E’) a (E) (E’) jsou QBF a výskyty proměnných jsou volné či vázané podle toho jaké jsou v E a E’. 3.Pokud je E QBF, tak x (E) a x (E) jsou QBF. Rozsahem kvantifikátoru jsou všechny volné výskyty proměnné x v E a tyto výskyty se stávají vázanými (status výskytů ostatních proměnných se nemění). Pozorování QBF bez volných proměnných nabývá hodnoty true nebo false. Lze tedy definovat následující rozhodovací problém (QBF problém): Vstup: QBF bez volných proměnných. Otázka: Má daná QBF hodnotu true?
24 PSPACE PSPACE Věta QBF problém je PSPACE–úplný (jazyk kladných instancí QBF problému je PSPACE–úplný). PNPPNP NPP NP Věta (Ladnerova) Pokud jsou třídy P a NP různé (tedy pokud P NP), tak existuje jazyk A takový, že A NP \ P a zároveň A není NP–úplný.