Cookova věta

  • Problém SAT je NP-úplný.

Název: SAT (problém splnitelnosti booleovských formulí) Vstup: Booleovská formule v konjunktivní normální formě. Otázka: Je daná formule splnitelná?

  • Víme že SAT patří do , protože existuje nedeterministický polynomiální algoritmus, který jej řeší

  • Musíme dokázat, že je také NP-těžký

  • Myšlenka důkazu:

    • Základní myšlenkou důkazu je ukázat, že existuje polynomiální, univerzální TS, který může simulovat libovolný nedeterministický algoritmus v polynomiálním čase.
    • Tento stroj pak může být použit k převedení libovolného problému v NP na SAT

Důkaz

  • Musíme dokázat , o každém problému víme, že je reprezentován nedeterministickým TS.
  • Ukážeme konstrukci, která pro TS a vstupní slovo sestrojí formuli , tak že formule bude splnitelná právě tehdy, když TS přijme slovo
  • Výpočet TS na vstupním slově můžeme reprezentovat tabulkou
    • Zavedeme proměnné
      • pro každé (konfigurace = řádek),
      • (pozice symbolu = sloupec),
      • (páskový symbol).
    • Zavedeme proměnné
      • pro každé ,
      • ,
      • ,
      • (stav).
  • Formuli vytvoříme jako (musí splňovat podmínky)
    • musí zajistit, že v každé buňce tabulky je právě jeden symbol
    • musí zajistit, že první řádek odpovídá počáteční konfiguraci
    • musí zajistit, že na posledním řádku tabulky se vyskytuje stav . (Předpokládáme, že pokud TS skončí výpočet dřív než po krocích, všechny následující konfigurace (řádky tabulky) jsou stejné)
    • musí zajistit, že každé následující konfigurace vznikne z předchozí správným způsobem.
  • Formule je polynomiální vzhledem k .
  • Jestliže je splnitelná tato formule, dokážeme vyplnit tabulku tak, že reprezentuje přijímající výpočet TS na slově . (Jestliže je formule nesplnitelná, tak neexistuje přijímající výpočet TS na slově , protože se nám nepodaří vyplnit tabulku reprezentující takový výpočet.)
  • Ukázali jsme tedy polynomiální převod libovolného problému z NP na problém SAT

Předchozí: NP-úplné problémy Následující: Příklady NP-úplných problémů, dokazování NP-úplnosti Celý okruh: 1. Teoretické základy informatiky