1 / 24

Složitost II

Složitost II. TIN063 Ondřej Čepek. Sylabus. Výpočetní model – DTS a NTS Časová a prostorová složitost výpočtu Technické pomůcky: lineární komprese, lineární zrychlení a redukce počtu pásek Časová (prostorová) konstruovatelnost funkcí a vyčíslitelnost funkcí v lineárním čase (prostoru)

randy
Download Presentation

Složitost II

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Složitost II TIN063 Ondřej Čepek

  2. Sylabus • Výpočetní model – DTS a NTS • Časová a prostorová složitost výpočtu • Technické pomůcky: lineární komprese, lineární zrychlení a redukce počtu pásek • Časová (prostorová) konstruovatelnost funkcí a vyčíslitelnost funkcí v lineárním čase (prostoru) • Věty o deterministické časové a prostorové hierarchii • Věty o vztazích mezi časovou a prostorovou složitostí • Translační lemma a nedeterministické hierarchie • Základní složitostní třídy a jejich vzájemné vztahy • Orákulové TS a relativizované třídy • Polynomiální hierarchie

  3. Deterministický Turingův Stroj (DTS) • DTS je abstraktní stroj definovaný pěticí (Q, Σ, δ,q0,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í stavq0 amnož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 q0 + 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žitostS(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žitostT(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 | Lmá deterministickou prostorovou složitost S(n)} DTIME(T(n)) = {L | Lmá 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  Σkmnož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 NTSM na vstupu x (výpočet končící v qy). Jazyk L(M) přijímaný NTS M sestává ze všech vstupních slov přijímaných NTSM. 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žitostS(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žitostT(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 | Lmá nedeterministickou prostorovou složitost S(n)} NTIME(T(n)) = {L | Lmá 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: S1(n) ≤ S2(n) pakDSPACE(S1(n)) DSPACE(S2(n)) Pokudn: S1(n) ≤ S2(n) pakNSPACE(S1(n)) NSPACE(S2(n)) Pokudn: T1(n) ≤ T2(n) pakDTIME(T1(n)) DTIME(T2(n)) Pokudn: T1(n) ≤ T2(n) pakNTIME(T1(n)) NTIME(T2(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ů“. Zkonstruujeme konečný automat rozpoznávající danou množinu vstupů 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(1vstupní a kpracovní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(1vstupní a kpracovní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 infn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(1vstupní a k-1pracovních pásek), který má časovou složitost T(n) a nechťinfn(T(n) / n) =. Potom c>0existuje 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 infn(T(n) / n) =.

  10. Důsledek: Pokud infn(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(1vstupní a k-1pracovních pásek), který má časovou složitost T(n) = cn, kde c>1. Potom >0existuje 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 infn(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ď infn(T(n) / n) = nebo T(n) = cn, kde c>1. Potom existuje DTS M s 1 pracovní páskou, který má časovou složitost T2(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)·log2T(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 1n (n znaků na vstupní pásce).dává výstup 1f(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 1n udělá nejvýše cf(n) kroků než vydá výstup 1f(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 1n použije nejvýše cf(n) buněk na pracovních páskách než vydá výstup 1f(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áchnež 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ť f1 : N  N a f2 : N  N jsou funkce takové, že f1 + f2 a f2 jsou časově konstruovatelné a navíc platí >0 n0 n ≥ n0 : f1(n)≥  f2(n) + (1+)n.Potom je také funkce f1 časově konstruovatelná. Věta: Nechť f : N  N je funkce taková, že >0 n0 n ≥ n0 : 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 n0 n ≥ n0 : 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 { log2tS(|y|), |x| } Věta (o deterministické prostorové hierarchii) Nechť S1 : N  N a S2 : N  N jsou funkce takové, že S1o(S2), S2 je prostorově konstruovatelná a S1(n) ≥ log2n. Potom existuje jazyk L pro který platí L DSPACE(S2(n)) \ DSPACE(S1(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ť T1 : N  N a T2 : N  N jsou funkce takové, že T1 log2 T1  o(T2) a T2 je časově konstruovatelná. Potom existuje jazyk L pro který platí • L DTIME(T2(n)) \ DTIME(T1(n)) • Věta (o vztazích mezi třídami časové a prostorové složitosti) • Nechť f : N  N je funkce. Potom platí • NTIME(f(n))  DSPACE(f(n)) • LNSPACE(f(n)), f(n) ≥ log2n  cL: LDTIME(cLf(n)) • Poznámka: Část b) předchozí věty neimplikuje inkluzi NSPACE(f(n))DTIME(cf(n)). • Věta (Savičova) • Nechť S : N  N je prostorově konstruovatelná funkce taková, že S(n) ≥ log2n. Potom • NSPACE(S(n))  DSPACE(S2(n)).

  14. Lemma (translační) • Nechť S1(n), S2(n) a f(n) jsou prostorově konstruovatelné funkce takové, že S2(n)≥ n a f(n)≥ n. Potom • NSPACE(S1(n))  NSPACE(S2(n))  NSPACE(S1(f(n)))  NSPACE(S2(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(nr+ε) \ NSPACE(nr) • 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 LOG = DSPACE(log n)P = c≥0 DTIME(nc) NLOG = NSPACE(log n)NP = c≥0 NTIME(nc) POLYLOG = c≥0DSPACE(logcn)DEXT = c≥0 DTIME(2cn) PSPACE = c≥0 DSPACE(nc) NEXT = c≥0 NTIME(2cn) NPSPACE = c≥0 NSPACE(nc) EXPTIME = c≥0 DTIME(2(nc)) EXPSPACE = c≥0 DSPACE(2cn) NEXPTIME = c≥0 NTIME(2(nc)) VětaNLOGP PSPACE = NPSPACE NP  PSPACE PSPACE  EXPTIME NLOGPSPACE  EXPSPACE P  DEXT  EXPTIME

  16. Turingovy stroje s orákulem • Definice: DTS M s orákulemA, 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ákulemA, 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. Příklad: Když A P, tak A ≤T(když A P, tak lze A rozpoznávat na DTS bez orákula). 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}. 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. 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}. 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) a tím pádem pro každou třídu jazyků C platí, že P(C)  NP(C)  PSPACE(C) Příklad:NP(P) =NP Otázka: Čemu se rovná NP(NP) ?? Polynomiální hierarchie Definice (zjednodušená verze 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. Platí: 0 = P , 1 = NP(P) = NP, 2 = NP(NP), … Poznámka: Pokud P =NP, tak k ≥ 0 :k = P a tím pádem PH = P (hierarchie kolabuje). VětaPH  PSPACE. Poznámka: Pokud PHnekolabuje, tak je „jemnějším dělením“ mezi P a PSPACE. 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 ≥ 0kde: • 0 = 0 = 0 = P • k ≥ 0 :k+1 = NP(k) • k ≥ 0 :k+1 = co-NP(k) • k ≥ 0 :k+1 = P(k) • 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): • 1 = NP, 1 = co-NP, 1 = P • k = co-k (a tím pádem k = co-k) • k+1 = NP(k) • k+1 = P(k ) • k+1 = co-NP(k) • k+1 = NP(k+1) • k+1 = co-NP(k+1) • k = co-k • k = P(k) • k  kk+1 • k  k  k • 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))  (xmá vlastnost R) • p(n) x : R(x) znamená x : (|x|  p(n))  (xmá vlastnost R) • Nechť C je třída jazyků. Pak C je třída jazyků, kde AC pokud platí • BC  polynom p : xA  p(|x|) y : (x,y)B • Nechť C je třída jazyků. Pak C je třída jazyků, kde AC pokud platí • BC  polynom p : xA  p(|x|) y : (x,y)B • Definice: Třída C je uzavřena na zdvojování pokud AC platí, že B={(x,y) | xA }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 y1A … ynA : x=(y1, … ,yn) } • 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: • P=NP • P=co-NP • k>0: k=k • k>0: k=k • k≥0: k=k+1 • k≥0: k=k+1 • Důsledek 1 (definice PH pomocí alternujících kvantifikátorů) • Ak tehdy a jen tehdy když existují BPa polynom p takové, že • xA  p(|x|) y1 p(|x|) y2 … : (x,y1,y2, … ,yk)B • Ak tehdy a jen tehdy když existují BPa polynom p takové, že • xA  p(|x|) y1 p(|x|) y2 … : (x,y1,y2, … ,yk)B • Důsledek 2 (kolaps PH na k-té úrovni) • Pokud pro nějaké k>0 platí k=kpak j≥0: k+j=k+j=k. • Důsledek 3Buď k≥0: kk+1 nebo se polynomiální hierarchie skládá z konečně mnoha různých tříd k. • Důsledek 4Pokud existuje k takové že P=0k pak platí PNP.

  22. Převoditelnost a úplnost jazyků DefinicePoly-timetransducer je DTS transducer, který na vstupu velikosti n zastaví po nejvýše p(n) krocích, kde p je (nějaký) polynom. Log-spacetransducer 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 Lv polynomiálním čase, pokud existuje poly-timetransducer takový, že pro vstup x zkonstruuje výstup y a platí xL’ yL. Jazyk L’je převoditelný na jazyk Lv logaritmickém prostoru,pokud existuje log-spacetransducer takový, že pro vstup x zkonstruuje výstup y a platí xL’ yL. 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í). Definice Jazyk L je P–úplný  L je úplný pro třídu P vzhledem k převoditelnosti v logaritmickém prostoru. Definice Jazyk L je NP–úplný  L je úplný pro třídu NP vzhledem k převoditelnosti v polynomiálním čase. Definice Jazyk L je PSPACE–úplný  L je úplný pro třídu PSPACE vzhledem k převoditelnosti v polynomiálním čase.

  23. 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ý. Věta Nechť L je P–úplný. Pak pokud L  LOG = DSPACE(log n), tak platí P = LOG. 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. 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) Pokud je x Booleovská proměnná, tak x je QBF (a x je v této QBF volná proměnná) 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’. 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. Věta QBF problém je PSPACE–úplný (jazyk kladných instancí QBF problému je PSPACE–úplný). 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ý.

More Related