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, …​