Rekurze a strukturální složitost

Z ωικι.matfyz.cz
Přejít na: navigace, hledání

Toto je jednoduchý prehľad s odkazom, kde hľadať ďalej.

Otázky sú:

  • Aritmetická hierarchie tříd množin, třídy nekonečných větví rekurzivních stromů.

Pozri Prednášky z vyčísliteľnosti II. Pre hierarchiu TIN065_Prednáška_06#Aritmetická hierarchia a pre vetvy TIN065_Prednáška_09.

  • Věta o nízké bázi.

$ A $ je low ak $ A'\leq_T \emptyset' $. Veta hovorí, že každá $ \Pi^0_1 $ trieda obsahuje nejakú low množinu.

  • Diagonálně nerekurzivní funkce, význam a aplikace.

Vezmime funkciu $ J(e) = \varphi_e(e) $ (e-tý program na e). Funkcia $ f $ je diagonálne nerekurzívna ak $ f(e) \neq J(e) $ pre každé e, kde je $ J(e) $ definované.

  • Základy aritmetického forcingu, 1-generické množiny.

Niečo málo na TIN065 Prednáška 10.

  • Minimální stupně.

Možno TIN065 Prednáška 08.

  • Algoritmická náhodnost, 1-náhodné množiny.

TIN065 Prednáška 11, ale hlavne článok Calibrating randomness (v zdrojoch tej prednášky).

  • Strukturální složitost, Shanonova věta, pravděpodobnostní a neuniformní třídy složitosti, polynomiální hierarchie a vztah k ostatním třídám.

Shannonova veta je o minimálnej veľkosti Booleovských obvodov (pozri [1], originálny zdroj je na [2], ale ten čítať nikto asi nechce. Pre jednoduchý dôkaz podobného tvrdenia pozri Arora+Barak: Computational Complexity-Modern Approach, časť 6.3).

Pravdepodobnostné triedy sú rôzne RP, ZPP, BPP a PP. Definície napr. cez nedeterministické turingove stroje: Majme nedeterministický (no, skôr pravdepodobnostný) stroj, ktorý je presný (každý výpočet nad slovom dlhým n trvá práve n) a v každom kroku sa delí na dve vetvy (to sa dá). Potom jazyk je v RP ak pre slovo z jazyka aspoň polovica vetví prijíma a pre slovo nie z jazyka všetky neprijímajú. Jazyk je z PP ak aspoň polovica vetví určí slovo správne. Jazyk je v BPP ak slovo správne určí "clear majority", teda aspoň dve tretiny vetví. Jazyk je v ZPP ak mu pridáme stavy neviem a pre každé slovo skončí buď v stave neviem alebo v správnom stave (nikdy neurobí chybu) a počet správnych je viac ako nesprávnych. BPP je pokiaľ viem v $ \Pi_2 \cap \Sigma_2 $, ale neviem, či je to dôležité, PP obsahuje tuším celú PH.

Neuniformné triedy sú "tie s lomítkom". P/poly a P/log. Základné vety: P/poly jazyky sú práve tie, čo majú polynomiálne obvody (funkcia z poly mi vyrobí obvod, prípadne z obvodu funkciu). Existuje jazyk, čo je v EXPSPACE ale nie v P/poly (divný dôkaz s diagonalizáciou?). P/poly = $ \cup \{P(S), S \mbox{je riedka}\} $ (Jedným smerom vyberiem takú funkciu (v poly), ktorá vracia "dosť veľký kus S", druhým smerom zvolím takú riedku množinu, pomocou ktorej môžem f nagenerovať - budem sa pýtať, či mám prefix f a predlžovať ho). Ak SAT je v P/log, tak P = NP (opačný smer platí triviálne tiež, týmto smerom si viem všetky log funkcie v P nagenerovať, keď treba).

  • Úplné problémy, řídké množiny a množiny nad jednoprvkovou abecedou a separace tříd složitosti pomocí nich.

Snáď ku každej triede je úplný nejaký SAT. A k NP je jazyk <M, x, 1^t>, kde NTS M príjme x za max t krokov (a podobný je pre PSPACE, akurát v priestore t).

Riedke množiny majú "málo" (polynomiálne mnoho) slov dĺžky n pre každé n. Tally množiny sú nad jednoprvkovou abecedou a zrejme sú riedke. $ \mbox{tally}(A) = \{1^{1\alpha}, \alpha \in A\} $ (alebo si proste očíslujem všetky stringy nad danou abecedou a pre A dám do tally(A) len tak dlhé postupnosti jedničie, že string s týmto číslom bol v A). $ A \in \mbox{DEXT} \iff \mbox{tally}(A) \in \mbox{P} $. $ A \in \mbox{NEXT} \iff \mbox{tally}(A) \in \mbox{NP} $.

DEXT je rôzne od NEXT práve keď existuje tally množina v NP-P a to práve keď existuje riedka množina v NP-P.

  • Relativizace.

Celá relativizácia je pokus vyriešíť P vs. NP posunutím inde. A nedarí sa, lebo existuje orákulum, kde P(A)=NP(A) (vezmi PSAPCE úplné A a tam sa P(A) = PSPACE(A) = PSPACE), iné, kde sa nerovnajú (nejaká diagonalizácia), zasa iné, kde sa P(A) nerovná NP(A), ale NP(A)=PSPACE(A) a aj iné vety podobné.

Ďalej sa pridá trieda PQUERY(A) (polynomiálne mnoho dotazov na A v polyn. priestore). P(A) je v PQUERY(A) a to je v PSPACE(A). Snažíme sa oddeliť P a PSPACE. PQUERY(A) = P(QBF + A) pre všetky A (jeden smer - QBF riešim v priestore, ktorý mám, druhý smer pomocou QBF skáčem od dotazu k dotazu). P=PSPACE práve keď pre každé orákulum P(A) je rovné PQUERY(A) (jedným smerom prázdne orákulum, druhým predchádzajúcu vetu a QBF si spočítam v P ak sa PSPACE a P majú rovnať). Existuje orákulum A, že PQUERY(A) je rôzne od PSPACE(A).

Ešte máme NQUERY a takmer totožné tvrdenia. A ešte máme nejakú inú obmedzenosť pre orákula a NP.

  • Biimunost a silná biimunost.

Pre triedu C je množina A imúnna ak žiadna jej nekonečná podmnožina nie je v C. Biimúnna je ak to platí aj pre doplnok A.

  • Low and high hierarchie.

Low sú tie jazyky, ktoré keď strčíme stroju z polynomiálnej hierarchie ako orákulum, tak nám nepomôžu. High sú také, ktoré nám pomôžu preliezť na vyšší stupeň. Pozri wen:Low and high hierarchies a prvý odkazovaný článok. Vety: Ak Polynom. hierarchia kolabuje, tak všetky low aj high sú rovné NP, ak nekolabuje, tak prienik high a low je prázdny.


Ku témam z rekurzie je vhodná literatúra Nies: Computability and randomness, Piergiorgio Odifreddi. Forcing and Reducibilities (časť I by mohla stačiť) a Rod Downey, Denis R. Hirschfeldt, André Nies and Sebastiaan A. Terwijn: Calibratting Randomness (to je vlastne prednáška z rekurzie 2).

K témam zo zložitosti je najlepšie Structural complexity, pretože vlastne všetky prednášky zo zložitosti sú podľa toho (možno aj druhého dielu). Nejaká je aj v knižnici (aj na Karlíne).

K témam relativizace, biimunnost a low a high hierarchie je vhodna Structural Complexity II, dostupná nie len v knižnici (jeden kus), ale už aj v Studnici.