Sylabus přednášky Výpočetní složitost

Anotace

Přednáška seznamuje s matematickými prostředky pro studium náročnosti řešení úloh na počítači z hlediska délky výpočtu a množství potřebné paměti. Jsou studovány třídy P, NP a PSPACE a metody pro zařazování úloh do těchto tříd. Kromě toho se přednáška zabývá některými modely pro reprezentaci booleovských funkcí.

První semestr

  1. Příklady úloh exponenciální a polynomiální složitosti, základní pojmy a třídy složitosti, metody klasifikace úloh do tříd, zmínka o aplikacích v kryptografii.
  2. Měření složitosti:
  3. Úlohy TAUT, SAT, klika v grafu, Hamiltonovská kružnice, množinové pokrytí.
  4. Příklady převoditelnosti mezi úlohami: klika, vrcholové pokrytí, SAT.
  5. Neformální zavedení tříd P, NP, PSPACE, pojem úplnosti ve třídě, strukturální složitost.
  6. Poznámka o algoritmech pro úlohu SAT, důkazy nesplnitelnosti formulí typu PHP.
  7. Výpočetní modely:
  8. Typy úloh:
  9. Třída NP a NP-úplnost
  10. NP-úplnost konkrétních úloh
  11. Polynomiální algoritmus pro 2-SAT.
  12. Polynomiální algoritmus řešení problému batohu ve vztahu k velikosti vstupních čísel.
  13. Optimalizační úlohy, aproximační algoritmy a měření jejich přesnosti. Aproximační algoritmy pro problém
  14. Třída PSPACE, PSPACE-úplnost, úloha QBF je PSPACE-úplná. Problém hra na grafech je PSPACE-úplný.

Druhý semestr

  1. Polynomiální hierarchie.
  2. Složitost aproximačních úloh, neaproximovatelnost MAX-SAT, problému kliky.
  3. Vzájemné převody mezi jedno a vícepáskovým TS a RAM:
  4. Neuniformní modely, neuniformní TS (TS s pomocnou funkcí) a jeho ekvivalence obecným obvodům, P/poly, Karp-Liptonova věta.
  5. Využití náhodnosti pro demonstraci neizomorfnosti dvou grafů.
  6. Pravděpodobnostní test neekvivalence read-once rozhodovacích diagramů (BDD).
  7. Pravděpodobnostní TS, BPP, zesilování pravděpodobnosti správného výsledku. BPP \subseteq P/poly, BPP \subseteq \Sigma_2 \cap \Pi_2.
  8. Booleovské modely, DNF, CNF, rozhodovací stromy. Porovnání výpočetní síly těchto modelů pomocí odhadů složitosti konkrétních funkcí.
Poslední úprava 11. 4. 2016.