Složitost
Editovat
Note
|
Složitost algoritmu versus složitost problému. Složitostní třídy (P, NP, PSPACE) a vztahy mezi nimi, příklady problémů z jednotlivých tříd. Těžkost a úplnost problému v dané třídě, polynomiální redukce problémů, NP-úplné úlohy. IB102/IB107 |
Problém má složitost toho nejlepšího algoritmu, který ho rozhoduje.
- Časová složitost deterministického TS M
-
Je funkce , kde je největší počet kroků, které provede, přes všechny vstupy délky .
- Časová složitost nedeterministického TS
-
Je funkce , kde je délka nejdelší výpočetní cesty přes všechny vstupy délky .
- Prostorová složitost deterministického TS
-
Je funkce , kde je největší počet políček pásky čtených strojem přes všechny vstupy délky .
- Prostorová složitost nedeterministického TS
-
Je funkce , kde je největší počet políček pásky čtených strojem přes všechny vstupy délky a pro všechny výpočetní cesty.
Složitostní třídy
-
Pro funkci je
-
Pro funkci je
-
Pro funkci je
-
Pro funkci je
- P
-
DTS s polynomiálním počtem kroků.
Příklady:
PATH — Existuje v daném orientovaném grafu cesta z do ?
- NP
-
NTS s polynomiálním počtem kroků.
Příklad: HAMPATH — Existuje v daném orientovaném grafu Hamiltonovská cesta z do (projde každým uzlem právě jednou)?
Příklady:
-
SAT — Je daná formule výrokové logiky splnitelná?
-
CLIQUE — Existuje úplný podgraf s vrcholy?
-
3SAT — Je daná výroková formule v KNF s nejvýše třemi literály na klauzuli splnitelná?
-
HAMCYCLE — Problém obchodního cestujícího, nejkratší kružnice, která prochazí všemi vrcholy.
-
K3COVER — Obarvitelnost grafu třemi barvami.
-
KNAPSACK — Najdi kombinaci zboží s nejvyšší hodnotou, která se vleze do váhového limitu.
-
- PSPACE
-
DTS s polynomialním počtem políček na pásce.
Příklady:
-
TQBF (QSAT) — Problém splnitelnosti výrokových formulí, kde proměnné jsou na začátku formule kvantifikovány nebo .
-
- NPSPACE
-
NTS s polynomiálním počtem políček na pásce.
- EXPTIME
-
DTS s exponenciálním počtem kroků.
Příklady: * Problém zastavení v nejvýše krocích.
- NEXPTIME
-
NTS s exponenciálním počtem kroků.
- L
-
DTS s logaritmickým (ne lineárním) prostorovou složistostí (ne časovou).
- NL
-
NTS s logaritmickým (ne lineárním) prostorovou složistostí (ne časovou).
Note
|
Ano, je to nekonzistentní a ano, je to na hovno. |
Inkluze
- Platí
-
Přes maximální počet konfigurací DTS. Musí však platit .
- Platí
-
Přes maximální počet konfigurací NTS. Musí však platit .
- Platí
-
určitě uloží konfigurací. Plyne z toho .
- Platí
-
určitě uloží konfigurací. Plyne z toho .
- Savitchova věta
-
Platí , kde . Simuluje nedeterministické větvení, ale za cenu exponenciálního nárustu času, takže .
Plyne z toho , a .
- PLatí
-
Simuluj jednu větevv výpočtu NTS v paměti a backtrackuj. Musí však platit .
Plyne z toho .
Polynomiální redukce
Převod mezi problémy je realizovatelný na DTS v polynomiálním čase.
Nechť a jsou jazyky. se polynomiálně redukuje na , píšeme , právě když existuje funkce , pro kterou platí a která je totálně vyčíslitelná DTS v polynomiáním čase.
- X-težký problém
-
Všechno ve složitostní třídě X se na něj redukuje.
- X-úplný problém
-
Je X-těžký a navíc patří do X.
NP-úplné: HAMCYCLE, 3SAT, CLIQUE, K3COVER, KNAPSACK, …