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,

Slides:



Advertisements
Podobné prezentace
Přednáška 10 Určitý integrál
Advertisements

Komplexní čísla. Komplexní číslo je uspořádaná dvojice [x, y], kde číslo x představuje reálnou část a číslo y imaginární část. Pokud je reálná část nulová,
DOTAZOVACÍ JAZYKY slajdy přednášce DBI006
Rozhodnutelnost.
Fakulta životního prostředí Katedra informatiky a geoinformatiky
J. Pokorný 1 DOTAZOVACÍ JAZYKY slajdy přednášce DBI006 J. Pokorný MFF UK Odpřednášeno
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Dualita úloh lineárního programování a analýza citlivosti
Algebra.
Ústav technologie, mechanizace a řízení staveb
Varianty Turingova stroje Výpočet funkcí pomocí TS
Vlastnosti funkcí Vypracoval: Mgr. Lukáš Bičík
Základní číselné množiny
Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti
5. Přednáška funkce BRVKA Johann P.G.L. Dirichlet (1805 – 1859)
Church-Turingova teze Univerzální Turingův stroj Diagonalizace
Fakulta životního prostředí Katedra informatiky a geoinformatiky
F U N K C E.
Formální jazyky a gramatiky
Abeceda a formální jazyk
Dostupné z Metodického portálu ISSN: , financovaného z ESF a státního rozpočtu ČR. Provozováno Výzkumným ústavem pedagogickým v Praze.
Příklady jazyků Příklad 1: G=({S}, {0,1}, P, S)
Gramatiky a jazyky Přednáška z předmětu Řízení v komplexních systémech
Složitost.
Teorie vyčíslitelnosti
Predikátová logika.
V matematice existují i seskupení objektů, které nejsou množinami.
Fakulta životního prostředí Katedra informatiky a geoinformatiky
3. Přednáška posloupnosti
Výroková logika.
Funkce více proměnných.
Vztah bezkontextových jazyků a ZA
Regulární výrazy Regulární výrazy představují další možnost popisu regulárních jazyků (právě od nich dostaly své jméno). Definice: Množina všech regulárních.
Řešení rovnic Lineární rovnice
Výukový materiál zpracován v rámci projektu EU peníze školám Registrační číslo projektu: CZ.1.07/1.5.00/ Šablona:III/2č. materiálu:VY_32_INOVACE_81.
P-těžké, np-těžké a np-úplné problémy
Dostupné z Metodického portálu ISSN: , financovaného z ESF a státního rozpočtu ČR. Provozováno Výzkumným ústavem pedagogickým v Praze.
Derivace funkce. Velikost populace v čase t 0 je N (t 0 ). Velikost populace v čase t  t 0 je N ( t ). Přírůstek populace za jednotku času je [N(t) –
Turingův stroj.
Množiny.
Automaty a gramatiky.
Mlhavost Fuzzy logika, fuzzy množiny, fuzzy čísla
Úvod do logiky (presentace 2) Naivní teorie množin, relace a funkce
Konečné automaty a vyhledávání
Predikátová logika1 Predikátová logika 1. řádu Teď „logika naostro“ !
Sylabus V rámci PNV budeme řešit konkrétní úlohy a to z následujících oblastí: Nelineární úlohy Řešení nelineárních rovnic Numerická integrace Lineární.
Algoritmicky nerozhodnutelný problém Věta: Problém přijetí prázdného slova Turingovým strojem je algoritmicky nerozhodnutelný. A TM ={  M,e  | M je TS.
Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 1 / 15Doc. Josef Kolář (ČVUT)Turingovy strojeGRA, LS 2012/13, Lekce 12 1 / 21 TURINGOVY.
Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 1 / 15Doc. Josef Kolář (ČVUT)NP-úplné problémyGRA, LS 2012/13, Lekce 13 1 / 14 NP-ÚPLNÉ.
Formální definice Konečná množina vnitřních stavů Q Konečná vstupní abeceda A Počáteční stav q 0 Množina přijímacích stavů K.
(řešení pomocí diskriminantu)
© Institut biostatistiky a analýz INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ ANALÝZA A KLASIFIKACE DAT prof. Ing. Jiří Holčík, CSc.
Funkce Lineární funkce a její vlastnosti 2. Funkce − definice Funkce je předpis, který každému číslu z definičního oboru, který je podmnožinou množiny.
Úvod do databázových systémů
Funkce Funkce je zobrazení z jedné číselné množiny do druhé, nejčastěji Buď A a B množiny, f zobrazení. Potom definiční obor a obor hodnot nazveme množiny:
Definiční obor a obor hodnot
Příkazy cyklu (1) Umožňují vícekrát (nebo ani jednou) pro-vést určitý příkaz Jazyk C rozlišuje příkaz cyklu: s podmínkou na začátku: obecný tvar: while.
Soustava lineárních nerovnic
1 Lineární (vektorová) algebra
Funkce více proměnných.
Predikátová logika (1. řádu).
Lineární funkce a její vlastnosti
Toky v sítích.
Gödelova(y) věta(y).
Sémantika PL1 Interpretace, modely
Predikátová logika.
Grafy kvadratických funkcí
Definiční obory. Množiny řešení. Intervaly.
Algoritmizace a datové struktury (14ASD)
Grafy kvadratických funkcí
Transkript prezentace:

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ý.