Pokročilá teória zložitosti

Pokročilá teória zložitosti voľne naväzuje na predmet Výpočtová zložitosť.

Sylaby:

  • Alternácia, polynomiálna hierarchia a PSPACE
  • Booleovské obvody a dolné odhady
  • Ťažké hry
  • Zložitosť niektorých rozhodnuteľných teórií
  • Zväčšovanie ťažkosti a Derandomizácia
  • Interaktívne protokoly
  • Pravdepodobnostne overiteľné dôkazy

Rozvrh: 8:10, utorok a štvrtok

Kontakt: kuko[at-sign]ksp[dot]sk

Literatúra:

Materiály:

Domáce úlohy

Počet bodov Hodnotenie
100 — 88% A
87 — 76% B
75 — 64% C
63 — 52% D
51 — 40% E
< 40% Fx

Prednášky

Ťažké hry I.

  • Definícia P (cez poly čas TS / RAM; cez uniformné obvody poly veľkosti) a NP (cez nedeterminizmus; cez certifikáty); NP-úplné problémy
  • Super Mario, Hľadanie mín, Tetris sú NP-ťažké
  • viac Erik Demaine Lekcia 1 a 6

Základy zložitosti (opakovanie)

Hierarchie

  • Hierarchie: časová, pamäťová, nedeterministická, neuniformná, pravdepodobnostná
  • skriptá - kapitola 2

Alternujúce Turingove stroje

Polynomiálna hierarchia

Ťažké hry II.

Paralelizmus vs. malý priestor

Parita a obvody hĺbky O(1)

  • AC0⊆NC1⊆ L⊆NL⊆ AC1⊆ NC2
  • sčítanie celých čísel, násobenie matíc je v AC0
  • parita, majorita, násobenie celých čísel nie je v AC0
  • slidy
  • Arora, Barak – kap. 6, 14
  • Kozen – kap. 30, 31, H

Vetviace programy

Zložitosť teórie sčítania a Presburgerova aritmetika

  • Teória (ℕ, +, ·) je nerozhodnuteľná
  • (ℝ, ≤) je PSPACE-úplná
  • (ℝ, +) je NEXP-ťažká (STA(*, 2poly, n)-úplná)
  • Presburgerova aritmetika (ℕ, +) bez násobenia je 2NEXP-ťažká (STA(*, 22poly, n)-úplná)
  • Kozen – kap. E, 21–24

Teória S1S a ω-regulárne jazyky

Derandomizácia

  • slidy
  • Arora, Barak – kap. 20

Zväčšovanie ťažkosti

Zložitosť počítania

  • slidy
  • Arora, Barak – kap. 17
  • Kozen – kap. F, G

Prehľad

P

Problémy riešiteľné deterministicky v polynomiálnom čase, napr. na Turingovom stroji, alebo na RAM. Tiež problémy riešiteľné (logspace) uniformnými obvodmi polynomiálnej veľkosti. P = AL, teda sú to tiež problémy riešiteľné v logaritmickom priestore alternujúcim TS.

Problémy CVS (circuit value problem – vyhodnotiť daný boolovský obvod) či LP (lineárne programovanie) sú P-úplné (pri logspace redukcii).

NP a coNP

NP sú problémy riešiteľné nedeterministicky v polynomiálnom čase. Ekvivalentne, sú to také problémy, že ak nám niekto povie riešenie, vieme ho efektívne overiť. Problémy v NP majú pravdepodobnostne overiteľné dôkazy, NP = PCP[O(log n),O(1)]. coNP tvoria komplementy jazykov v NP.

NP-úplné sú napr. SAT, ILP (celočíselné lineárne programovanie), CLIQUE, VERTEX-COVER, HAMILTON-CIRCUIT, 3-COLORING. Zistiť, či je daná formula tautológia, je coNP-úplný problém.

PSPACE

Problémy riešiteľné v polynomiálnom priestore, napr. na TS alebo RAM. Podľa Savitchovej vety je PSPACE = NPSPACE (nedeterministický polynomiálny priestor). Podľa Immerman-Szelepcsényiho vety je priestor uzavretý na komplement, teda PSPACE = coPSPACE. Ďalšia charakterizácia je PSPACE = AP – sú to práve problémy riešiteľné v polynomiálnom čase alternujúcim TS; a PSPACE = IP (interaktívne dokazovacie systémy).

PSPACE-úplné sú QBF (quantified boolean formula), GEOGRAPHY, Sokoban, Reversi, ekvivalencia regulárnych výrazov, atď.

EXP a NEXP

EXP sú problémy riešiteľné v exponenciálnom čase (t.j. O(2poly(n))). EXP = APSPACE – polynomiálny priestor + alternácie. NEXP to isté nedeterministicky. NEXP sú problémy, ktoré majú interaktívne dokazovacie systémy s aspoň dvoma provermi, NEXP = MIP, resp. pravdepodobnostne overiteľné dôkazy, NEXP = PCP[poly(n),poly(n)] = PCP[poly(n),O(1)].

Hry ako dáma, šach (zovšeobecnený), či Go (s japonským pravidlom ko) sa ukázali ako EXP-úplné. Rôzne varianty NP-úplných problémov, kde vstup zapíšeme úsporne sú NEXP-úplné, napr. úsporný 3SAT: na vstupe je obvod, ktorý kóduje exponenciálne dlhú formulu – je splniteľná?

PH

Polynomiálna hierarchia je hierarchia tried medzi P a PSPACE. P = ΣP0 ⊆ NP = ΣP1 ⊆ ΣP2 ⊆ ... ⊆ PH ⊆ PSPACE, resp. P = ΠP0 ⊆ coNP = ΠP1 ⊆ ΠP2 ⊆ ... ⊆ PH ⊆ PSPACE. Definovať k-ty stupeň hierarchie môžeme cez alternujúce TS, ktoré iba (k-1)-krát alternujú alebo cez TS s orákulom: ΣPk+1 = NP ΣPk alebo cez polynomiálne relácie: L ∈ ΣPk, ak y∈L práve vtedy, keď ∃x1∀x2...(∃/∀)xk R(y,x1,...,xk). ΠPk+1 = coNPΠPk = co-ΣPk+1.

Hoci PH samotná asi nemá úplné problémy (inak skolabuje), na každej úrovni je úplný problém zistiť, či je kvantifikovaná formula s k kvantifikátormi pravdivá.

P/poly

Neuniformné triedy obvodov polynomiálnej veľkosti. Pre každú veľkosť vstupu máme iný obvod. Ekvivalentná definícia je cez TS, ktorým pre každú veľkosť vstupu môžeme dať "radu" polynomálnej veľkosti. Rada závisí iba od dĺžky vstupu, nie od vstupu samotného.

P/poly je trochu čudná trieda v tom, že obsahuje aj nerozhodnuteľné jazyky (odpovede môžeme zadrátovať do obvodu vďaka neuniformnosti). Avšak veríme, že ani neuniformné polynomiálne obvody nedokážu riešiť SAT (inak skolabuje PH). BPP ⊆ P/poly.

AC a NC

NC zachytáva pojem "efektívne paralelné algoritmy". NC je trieda problémov, ktoré sa dajú na PRAM riešiť paralelne v polylogaritmickom čase s polynomiálnym počtom procesorov. Ekvivalentná definícia cez obvody: NC = AC sú problémy riešiteľné (uniformnými) obvodmi (s AND/OR/NOT) polynomiálnej veľkosti a polylogaritmickej hĺbky. Obvody v NC majú AND/OR hradlá s dvoma vstupmi, v AC môžu mať neobmedzene veľa vstupov. Pre AC a NC môžeme zadefinovať hierarchie, pričom na k-tej úrovni povolíme obvody hĺbky O(logk n). Zrejme AC0 ⊆ NC1 ⊆ AC1 ⊆ NC2 ⊆ AC2 ⊆ ... Podľa Barringtonovej vety NC1 sú práve problémy riešiteľné vetviacimi programmi šírky 5. Vieme, že AC0 ≠ NC1, predpokladá, sa že hierarchia je striktná celá, ale je to otvorený problém.

AC0 obsahuje napr. neregulárny jazyk anbn, sčítanie celých čísel, násobenie boolovských matíc, ale nedokáže spočítať paritu (regulárny jazyk!), či majoritu (je na vstupe viac 0 alebo 1?). NC1 obsahuje všetky regulárne jazyky, súčin celých čísel, AC1 vie počítať tranzitívny uzáver matice a teda napr. či v danom grafe existuje cesta medzi dvoma vrcholmi. AC1 vie rozoznávať všetky bezkontextové jazyky.

L a NL

Deterministický, resp. nedeterministický logaritmický priestor. NL = coNL. NC1⊆ L ⊆ NL = coNL ⊆ AC1.

Hľadanie cesty v orientovanom grafe je NL-úplný problém. Úloha sa pre neorientované grafy dá riešiť deterministicky v L (ťažký výsledok založený na derandomizovaní náhodnej prechádzky po grafe).

BPP

Problémy riešiteľné efektívnymi pravdepodobnostnými algoritmami, ktoré sa môžu pomýliť (jedným aj druhým smerom) s pravdepodobnosťou 1/3 (dá sa zlepšiť na exponenciálne malú pravdepodobnosť). BPP ⊆ P/poly a zároveň BPP ⊆ ΣP2. Predpokladá sa, že P = BPP, teda každý BPP problém sa dá efektívne derandomizovať (otvorený problém).

O známom probléme testovania prvočíselnosti sa nakoniec ukázalo, že sa dá riešiť deterministicky v polynomiálnom čase (hoci v praxi sa dodnes používajú rýchlejšie pravdepodobnostné algoritmy). Problém testovania, či sa dva polynómy viacerých premenných (nad nejakým konečným poľom) rovnajú, je v BPP (stačí polynómy vyhodnocovať na náhodných vstupoch). Zatiaľ sa nevie, či sa dá efektívne derandomizovať.

#P

Trieda funkcií (nie rozhodovacích problémov) f, ktoré predstavujú počet riešení problémov v NP (počet akceptačných výpočtov NTS). Prekvapujúco, PH ⊆ P#P ⊆ PSPACE.

Problém #SAT (počet splňujúcich ohodnotení), či #PERFECT-MATCHING (počítanie perfektných párovaní) je #P-úplné.