Třída NPTIME

Třída NPTIME zahrnuje všechny rozhodovací (ano/ne) problémy, které jsou rozhodovány nedeterministickými polynomiálními algoritmy - tedy nedeterministickými algoritmy s polynomiální časovou složitosti O(nc).

Nedeterministický algoritmus rozhoduje ano/ne problémy, ale ne vždy správně. Při odpovědi 'ano' je výsledek vždy správný (našel se alespoň jeden výpočet pro který je odpověď ano) zatímco odpověď 'ne' nemusí být vždy pravdivá a to z důvodu, že by na výstupu muselo být vždy ne (algoritmus by musel otestovat všechny možnosti).

Pointou nedeterministických algoritmů je to že náhodně nastřelují nějaké řešení a ověřují jejich správnost.

Například nedeterministický algoritmus pro problém IS (viz. obrázek a definice níže) vybere náhodně k vrcholů z grafu a ověří zdali nejsou některé spojeny hranou. Když mezi nimi hranu nenajde, vráti odpověď "ANO, v grafu existuje nezávislá množina o velikosti k ". Když hranu mezi zvolenou množinou najde, vrátí odpověď "NE". Přičemž odpověď ne může být chybná. Třeba pro graf ABCDE na obrázku níže a k=3, vybere algoritmus vrcholy {A, B, C}, které závislé jsou a vrátí chybnou odpověď "NE". Když to ale algoritmus provede vícekrát, pro různé vrcholy, pravděpodobnost správnosti odpovědi se zvyšuje. A o tom to je. Nepotřebujeme znát 100% správnou odpověď, ale chceme se dočkat alespoň nějaké odpovědi.

 

Problémy třídy NPTIME

Ukázka IS problému nezávilých množin:

Výstup pro k>3: NE.
Výstup pro k=3: ANO. (ABD, ABE)
Výstup pro k=2: ANO. (AB, AD, AE, BD, BE)

 

Název: IS (problém nezávislé množiny [Independent Set] (také nazývaný problém anti-kliky [anti-clique]))

Vstup: Neorientovaný graf G (o n vrcholech); číslo k (k ≤ n).
Otázka: Existuje v G nezávislá množina velikosti k (tj. množina k vrcholů, z nichž žádné dva nejsou spojeny hranou)?

 

Název: Složenost čísla

Vstup: Přirozené číslo ℓ.
Otázka: Je číslo ℓ složené (dělitelné beze zbytku)?

 

Název: Isomorfismus grafů

Vstup: Dva neorientované grafy G a H.
Otázka: Jsou grafy G a H izomorfní?

 

Název: CG (Barvení grafu)

Vstup: Neorientovaný graf G a číslo k.
Otázka: Je možné graf G obarvit k barvami (tj. existuje přiřazení barev vrcholům tak, aby žádné dva sousední vrcholy nebyly obarveny stejnou barvou)?

 

Název: SAT (problém splnitelnosti booleovských formulí)

Vstup: Booleovská formule v konjunktivní normální formě.
Otázka: Je daná formule splnitelná (tj. existuje pravdivostní ohodnocení proměnných, při kterém je formule pravdivá)?

 

Název: HK (problém hamiltonovské kružnice) / HC (problém hamiltonovskho cyklu)

Vstup: Neorientovaný graf G. / Orientovaný grav G.
Otázka: Existuje v G hamiltonovská kružnice (uzavřená cesta, procházející každým vrcholem právě jednou)?

 

Název: Subset-Sum

Vstup: Množina přirozených čísel M = {x1, x2, . . . , xn} a přirozené číslo s.
Otázka: Existuje podmnožina množiny M, pro niž součet jejích prvků je roven s?

Kam dál?