Obsah
Zadání
2. Třídy výpočtové složitosti a vztahy mezi nimi
Vypracování
Základní pojmy
Časová složitost
T: N→N
NTS M má časovou složitost T(n) výpočet pro každý vstup x se zastaví pro nanejvýš max T(|x|) výpočetních kroků (nerozlišujeme akceptující a zamítající stavy).
Prostorová složitost
S: N→N
NTS M má prostorovou složitost S(n) v každém výpočtu v každém vstupu x je stroj operací max S(|x|) políček (zajímají nás políčka na pracovní pásce, ne samotný vstupní řetězec).
- regulární jazyk má nulovou prostorovou složitost
Prostorově konstruovatelná funkce
S(n) je prostorově konstruovatelná TS se vstupní a 1 pracovní páskou takový, že pro vstup délky n, označí na pracovní pásce přesně S(n) políček.
- např. c, n, log(n), f + g, f*g, n!,…
Komplement
Mějme jazyk L nad abecedou .
Mějme složitostní třídu C (množina jazyků).
co-DTIME(T(n))=DTIME(T(n)) *
co-DSPACE(S(n))=DSPACE(S(n)) *
* změníme akceptující a zamítající stavy
co-NTIME(T(n)) = ? … jestli není uzavřeno na komplement P NP
co-NSPACE(S(n)) = NSPACE(S(n))
Uzavřenost
Deterministické složitostní třídy jsou uzavřené na
U nedeterministických je otevřenost na komplement otevřeným problémem.
Složitostní třídy
= množiny jazyků, které jsou rozhodované se složitostí ohraničenou danou funkcí
- DTIME(T(n)) = {L(M)| M je DTS s časovou složitostí T(n)}
- NTIME(T(n)) = {L(M)| M je NTS s časovou složitostí T(n)}
- DSPACE(S(n)) = {L(M)| M je DTS s prostorovou složitostí T(n)}
- NSPACE(S(n)) = {L(M)| M je NTS s prostorovou složitostí T(n)}
Vztahy mezi složitostními třídami
** Lineární urychlení **
Determinismus je speciálním případem nedeterminismu:
důsledek:
Vztahy mezi časem a prostorem:
- prostor je vždy omezen potřebným časem
- nechť S(n) >= log(n)
Idea důkazu pro 3. a 4.1):
DTS pracující v prostoru S(n) může být upraven tak, aby skončil po krocích a přitom akceptoval stejný jazyk.
pro S(n) ≥ log(n) platí:
- Idea důkazu: převod NTS na DTS prostřednictvím simulace každé konfigurace a následné procházení grafem, jehož velikost odpovídá počtu konfigurací. Akceptujeme, jakmile narazíme na akceptující konfiguraci.
- Konstrukce grafu dosažitelných konfigurací: vrcholy stromu představují konfigurace (stavy) a hrana představuje přechod jedním krokem.
Sawitchova věta
- nechť
- Konstrukce používá pro simulaci rekurzivní proceduru pro hledání cesty (výpočtu) mezi dvěma konfiguracemi simulovaného stoje.
- Důsledek: PSPACE = NSPACE
Immerman - Szelepcsénejiho věta
Idea důkazu:
- Předpokládáme, že S je prostorově konstruovatelná
- Předpokládáme, že máme konečnou množinu řetězců A, nedeterministický test příslušnosti do množiny A, známe mohutnost |A| a můžeme si pamatovat maximální délku ⇒ z tohoto je možno vytvořit nedet. test pro NEpříslušnost do A (
akceptující výpočet – akceptuje, když tam nepatří ):
- Nedeterministicky uhádneme |A| řetězců
- Pro každý zvolený řetězec
nedeterministicky ověříme, zda
.
- Pokud všechny zvolené řetězce patří do A a x není mezi nimi, platí
.
Seperace složitostních tříd
Je hirearchie nekonečná? Existuje dolní mez složitosti?
DSPACE
- pro deterministické složitostní třídy
- Metoda diagonalizace
- Věta: Nechť S(n) je prostorově konstruovatelná funkce, pak
jazyk
takový, že
pro žádno funkci S'(n) = o(S(n)) (těsná hirearchie - f-ce rostoucí asymptoticky pomaleji než S(n)).
DTIME
- Věta: Nechť T(n) je časově konstruovatelná funkce, pak
jazyk
takový, že
pro žádno funkci T'(n) takové, že
.
NSPACE
- pro nedeterministické složitostní třídy
- **Metoda padding **
- Věta:
P-úplné problémy
CVP (Circuit Value Problem)
Problém hodnoty logického obvodu
Náležitost řetězce do jazyka bezkontextové gramatiky
RELPRIME
{<x,y> | x a y jsou relativní prvočísla} (2 čísla jsou relativní prvočísla – také nesoudělná čísla – když jejich NSD je roven 1), v P vypočítáme například pomocí Euklidova algoritmu
Polynomiální redukce
Jazyk A se polynomicky redukuje na jazyk B, existuje zobrazení
takové, že pro každý řetězec
a R je polynomiálně vyčíslitelná.
- Funkce
je **polynomiálně vypočitatelná **
polynomiálně časově ohraničený TS, který pro vstup w délky n ukončí výpočet v konfiguraci, ve které na pracovní pásce bude zaúsaný řetězec f(w). (dá se vypočítat v polynomiálním čase)
- 3SAT: Obdoba SAT, ale každá formule má právě 3 členy
- Jestli
, tak i
. (Problém A je právě tak složitý jako problém B, pokud B se dá redukovat na A)
- Relace
je reflexivní a transitivní (kvaziuspořádání).
- reflexivita - libovolný problém dokážeme převést na ten stejný problém v polynomickém čase
- transitivita - pokud máme alg. f který redukuje problém A na problém B a algoritmus g který redukuje problém B na problém C, pak máme i algoritmus, který převede A na C (tím že na problém použijeme nejprve algoritmus f a následně g, pokud jejich složitost byla polynomická, bude i výsledná složitost součtem dvou polynomických složitostí, t.j. také polynomická
Jazyk L nazveme C-těžký vzhledem k polynomiální redukci pr složitostní třídu C jazyky
platí:
(každý jazyk A z L se dá redukovat na C). Jestli navíc
, tak L nazýváme C-úplný(C těžký jazyk nemusí patřit do třídy C).
- Jestli nějaký NP-úplný problém patří do P, tak P=NP
- Jestli
, pak žádný NP-ťažký problém není řešitelný v polynomiálním čase
NP-úplné problémy
SAT (Cook-Levinova věta)
VSTUP: výroková formule F v CNF.
Formule F je splnitelná, jestliže existuje přiřazení hodnot 0,1 proměnným ve výrokové formuli tak, že je formule pravdivá (1).
OTÁZKA: Je F splnitelná?
- Idea důkazu NP-úplnosti SAT: Nechť M je nedeterministický TS takový, že L(M) = A. Nechť w je vstupní slovo pro M. Sestrojíme výrokovou formuli X takovou, že M akceptuje w právě, když X je splnitelná. Konstrukce formule X bude polynomická.
k-CLIQUE
VSTUP: neorientovaný graf
OTÁZKA: obsahuje G kliku o k vrcholech?
- SAT
k-CLIQUE
Klika v neorientovaném grafu je podgraf takový, že existuje hrana mezi každými dvěma uzly. k-klika je klika, která má k vrcholů
HAM-PATH
VSTUP: neorientovaný graf
OTÁZKA: najít Hemiltovskou cestu
- SAT
HAM-PATH
TSP
Problém obchodního cestujícího.
SUBSET-SUM
- 3-SAT
SUBSET-SUM
k-ZABARVENÍ GRAFU
- pro
- k=2 - zabarvitelný 2 barvami ⇒ je bipartitní (nemá cyklus liché délky) – v čase polynomiálním prohledáváním do hloubky (šířky)
Vrcholové/Množinové pokrytí
Nezávislá množina
Celočíselné lineární programování
Problém rozvrhu
Logaritmická redukce
Jazyk A se logaritmicky redukuje na jazyk B, existuje zobrazení
takové, že pro každý řetězec
a R je konstruovatelná v logaritmickém prostoru.
- Zobrazení
je log-space konstruovatelné
DTS se 3 páskami (vstupní, pracovní, výstupní) takový, že pro vstup w vypočítá hodnotu R(w) v prostoru log(|w|).
- Jestli
, tak i
.
- jestli NLOG-úplný problém patří do DLOG, tak DLOG=NLOG.
LOG-úplné problémy
PATH
- problém cesty (existuje cesta mezi dvěma vrcholy v neorientovaném grafu?)
- existence cesty mezi dvěma vrcholy v orientovaném grafu patří do NLOG-úplných problémů. (stejně jako 2-SAT)
PSPACE-úplné problémy
QFB
Quantified Boolean Formula - formule predikátové logiky
Hra dvou hráčů
Jeden hráč se snaží zvítězit tak, že vybírá univerzálně kvantifikované proměnné tak, aby druhý hráč nemohl zvolit žádný existenčně kvantifikovaný prvek.
Předměty
Zdroje
- Complexity ZOO (especially Petting ZOO)

Diskuze
Pekný základný prehľad. Osobne mi tam ešte chýba (v prípade potreby si asi každý doplňte sám):
- Oráklové TS a polynomiálna hierarchia
- Alternujúce TS a ich zložitostné triedy
- Pravdepodobnostné TS a triedy RP, BPP (ktoré mne osobne prídu hodne zaujímavé, dôležité a ľahko predstaviteľné)
- (?)Kvantové zložitostné triedy(?)