Konkrétní polynomiální redukce

(problém splnitelnosti booleovských formulí)

Název: SAT Vstup: Booleovská formule v konjuktivní normální formě. Otázka: Je daná formule splnitelná?

(problém SAT s omezením na 3 literály)

Název: 3-SAT Vstup: Booleovská formule v konjunktivní normální formě, kde v každé klauzuli jsou právě 3 literály. Otázka: Je daná formule splnitelná?

(problém nezávislé množiny [Independent Set])

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

(vrcholové pokrytí [Vertex Cover])

Název: VC Vstup: Neorientovaný graf (o vrcholech); číslo . Otázka: Existuje v vrcholové pokrytí velikosti ? (tj. množina vrcholů, v níž má každá hrana aspoň jeden konec)

(problém hamiltonovského cyklu)

Název: HC Vstup: Orientovaný graf . Otázka: Existuje v hamiltonovský cyklus? (tj. uzavřená cesta, procházející každým vrcholem právě jednou)

(problém hamiltonovské kružnice)

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

(problém obchodního cestujícího)

Název: TSP Vstup: Množina “měst” , přirozená čísla (“vzdálenosti”) , kde a ; dále číslo (“limit”). Otázka: Existuje “okružní jízda” dlouhá nejvýše , tj. existuje permutace množiny tak, že ?

  • je podproblém problému TSP, v němž každá instance splňuje trojúhelníkovou nerosnost (tedy

  1. Sestavím booleovský obvod
  2. Vypíšu pravidla, jaká musí booleovský obvod splňovat
  3. Uplatním na ně De Morganovy zákony

  1. Udělám vrcholy pro každou klauzuli ve formuli a spojím je. (Udělám trojúhelníky)
  2. Vrchol s proměnnou propojím s vrcholem negací proměnné
  3. Číslo je počet klauzulí ve formuli

  • V grafu je nezávislá množina právě tehdy, když \ je vrcholové pokrytí.

  • Pro (neorientovaný) graf a číslo jsme sestrojili graf postupně takto:
    • Pro každý vrchol grafu , se stupněm , zařadíme do “řetízek” vrcholů (šipky označují příslušné hrany v )
    • Pro dané číslo zařadíme do navíc vrcholy a pro každé a každý vrchol s nenulovým stupněm přidáme do hrany  a (z lze tedy “skočit” na začátek libovolného “řetízku” a z konce libovolného “řetízku” lze zase skočit na , pro každé );
    • Pro každý vrchol grafu očíslujeme jeho incidentní hrany čísly a pro každou hranu grafu přidáme do čtyři hrany vzhledem k ; pak přidáme hrany a (kde reprezentuje dvojici hran a ).

  • Místo každého vrcholu přidám vrcholy (začátek, střed, konec), které propojím podle orientace hran v grafu HC

  • V grafu  jsme každé hraně přiřadili hodnotu (délku) a pak jsme doplnili hrany tak, aby vznikl úplný graf, každé doplněné hraně jsme přiřadili hodnotu .

Předchozí: Cook-Levinova věta Následující: Třída PSPACE, její vztah k třídám P a NP, PSPACE-úplné problémy Celý okruh: 1. Teoretické základy informatiky