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
- Sestavím booleovský obvod
- Vypíšu pravidla, jaká musí booleovský obvod splňovat
- Uplatním na ně De Morganovy zákony
- Udělám vrcholy pro každou klauzuli ve formuli a spojím je. (Udělám trojúhelníky)
- Vrchol s proměnnou propojím s vrcholem negací proměnné
- Čí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 .
Navigace
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