Konkrétní polynomiální redukce

SAT (problém splnitelnosti booleovských formulí)

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

3-SAT (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á?

IS_{DEC} (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)

VC_{DEC} (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)

HC (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)

HK (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)

TSP_{DEC} (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

SAT \leq_{p} 3-SAT

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

3-SAT \leq_{p} IS_{DEC}

  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

IS_{DEC} \leq_{p} VC_{DEC}

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

VC_{DEC} \leq_{p} HC

  • 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 ).

HC \leq_{p} HK

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

HK \leq_{p} \triangle - TSP_{DEC}

  • 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