Třída NP-úplných problémů

NP-úplné problémy jsou takové nedeterministicky polynomiální problémy, na které jsou polynomiálně redukovatelné všechny ostatní problémy z NP. To znamená, že třídu NP-úplných úloh tvoří v jistém smyslu ty nejtěžší úlohy z NP. Pokud by byl nalezen polynomiální deterministický algoritmus pro nějakou NP-úplnou úlohu, znamenalo by to, že všechny nedeterministicky polynomiální problémy jsou řešitelné v polynomiálním čase (tedy že NP = P). Otázka, zda nějaký takový algoritmus existuje, zatím nebyla rozhodnuta, předpokládá se však, že NP ≠ P (je však zřejmé, že P ⊆ NP). Tento vztah se řadí mezi jeden z problému tisíciletí a za jeho vyřešení se nabízí velká odměna ;)

Definice NP-úplných problémů   

Skupina nejtěžších NPTIME problémů. Problém je NP-úplný, když je NP-těžky a náleží do třídy NP. Problém Q nazveme NP-těžkým, pokud každý problém ve třídě NP lze na problém Q polynomiálně převést, tedy pokud platí ∀P ∈ NPTIME : P ⊳ Q.

Problém Q nazveme NP-úplným, pokud je NP-těžký a náleží do třídy NP.

NP-úplné problémy:

  • SAT - problém splnitelnosti booleovských formulí
  • 3-SAT (problém SAT s omezením na 3 literály) - je splnitelná boolovská formule v konjuktivní normální formě, kde každá klauzule obsahuje právě tři literály?
  • CG - barvení grafu k barvami
  • 3-CG - barvení grafu třemi barvami
  • HK, HC - hamiltonovské kružnice, cyklu
  • Subset-Sum - množina součtů
  • TSP - problém obchodního cestujícího (Ano/Ne verze) - lze objet n měst a neujet víc než danou vzdálenost?
  • ILP (problém celočíselného lineárního programování)
    Vstup: Matice A typu m × n a sloupcový vektor b velikosti m, jejichž prvky jsou celá čísla.
    Otázka: Existuje celočíselný sloupcový vektor x (velikosti n) tž. Ax ≥ b?
Kam dál?