Dle Cookovy věty lze převést v polynomiálním čase libovolný nedeterministický Turingův stroj na problém splnitelnosti booleovských formulí v konjunktivním normálním tvaru (CNF SAT).
Důsledkem této věty je vymezení skupiny úloh, které jsou nejtěžší v rámci všech problémů třídy NP. O těchto úlohách, na které lze převést v polynomiálním čase libovolnou jinou úlohu z NP, říkáme, že jsou NP-úplné (NP-complete).
Idea důkazu
Nejprve je zapotřebí ukázat, že je , což je ale zřejmé, protože lze vyhodnotit ANO-instanci v polynomiálním čase (přiřazením jednotlivých hodnot a vyhodnocením formulí).
Mějme Turingův stroj , který je dán z množinou stavů , vstupní abecedou , páskovou abecedou , přechodovou funkcí , počátečním stavem a koncovým stavem . Zároveň předpokládejme, že přijímá slovo v krocích ( je polynom).
Pomocné logické proměnné
Zaveďme nové logické proměnné:
- , kde i a j nabývají hodnot . Pokud je hodnota proměnné PRAVDA, pak to znamená, že hlava stroje M čte v čase i j-té pole pásky.
- , kde i nabývá hodnot a . Pokud je hodnota proměnné PRAVDA, pak to znamená, že je M v čase i ve stavu q.
- , i a j nabývají hodnot , . Pokud je hodnota proměnné PRAVDA, pak to znamená, že v j-tém poli je v čase i páskový symbol A.
Formulace
Nyní formulujme práci Turingova stroje jako úlohu SAT.
První podmínkou je, že je stroj M vždy alespoň v jednom stavu.
Turingův stroj nesmí být ve více různých stavech zároveň.
V počátečním stavu je Turingův stroj v ve stavu , hlava čte první pole pásky a v prvních n polích je vstupní slovo w.
Pokud je M v čase i ve stavu q a čte na j-tém poli symbol A a obsahuje přechody , kde znamená posun doprava a posun doleva, pak lze tuto formuli zapsat jako:
Obsah všech polí kromě j-tého (aktuálně zpracovávaného) se v čase nemění.
Turingův stroj skončí po vykonání programu ve stavu .
Formule odpovídající Turingovu stroji vznikne jako konjunkce všech zde zmíněných formulí (v CNF) pro jednotlivé časové okamžiky .
Literatura
- DEMLOVÁ, Marie. Teorie algoritmů : Text k přednášce.