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
Navigace
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