Cook-Levin: SAT је NP-комплетан Теодор Најдан Трифунов 305M/12
1 Основни појмови Недетерминистичка Тјурингова машина (НТМ) је уређена седморка M = (Q, Σ, Γ, δ, q 0,, ) Q коначан скуп стања контролног механизма Σ улазна азбука Γ Σ азбука траке δ: Q Γ P((Γ {L, R, H}) Q) функција прелаза q 0 Q почетно стање, Q редом стања прихватања и одбијања
1 Основни појмови Функција Т M : N N оцењује временску сложеност тоталне НТМ M ако ниједно дрво израчунавања за M које одговара улазној речи дужине n није дубље од T M (n). NNNNN f n = {L ( НТМ M) L M = L T M (n) = O(f(n))} NN = NNNNN(n k ) k 0
2 Полиномна верификација Нека је A = Γ, A проблем одлучивања. За проблем B кажемо да проверава (верификује) проблем A ако је B облика B = (Γ Δ, B), где је Δ највише пребројив скуп, тако да важи: ( x Γ)(x A ( c Δ)((x, c) B)) За x A, објекат c за који важи (x, c) B називамо сертификат (доказ) за x.
2 Полиномна верификација Теорема. Нека је A = Γ, A проблем одлучивања. A NN ако и само ако A има верификатор B тако да је B P.
3 Полиномна редукција Нека су A = Γ 1, A и B = Γ 2, B два проблема одлучивања. Кажемо да се A (полиномно) редукује на B, у ознаци A P B, ако постоји редукциона функција σ Γ 1 Γ 2 која има следеће две особине: σ je израчунљива у детерминистичком полиномном времену, ( x Γ 1 )(x A σ(x) B)
3 Полиномна редукција За проблем A кажемо да је NN-тежак ако за све проблеме B NN важи B P A. Aко је проблем A NN-тежак и A NN, онда је A NN-комплетан.
4 Проблем SSS SSS = (CCC, SSS) je проблем одлучивања где је CCC скуп свих исказних формула у конјунктивној нормалној форми, а SSS CCC скуп задовољивих формула. УЛАЗ: Исказна формула φ дата у конјунктивној нормалној форми (КНФ). ИЗЛАЗ: Да ли је φ задовољива?
Теорема. (S. A. Cook, L. A. Levin; 1939.) SSS је NN-комплетан. Доказ. Показаћемо да важи: 1) SSS NN, 2) SSS је NN-тежак.
1) SSS NN Довољно је наћи полиномни верификатор за SSS. Како је SSS = CCC, SSS, тражени верификујући проблем треба да буде облика B = (CCC Δ, B).
Moжемо узети да је Δ скуп свих валуација над скупом исказних слова која учествују у формулама из CCC, а да је B скуп парова (φ, α) CCC Δ, таквих да је v α φ =. Δ је пребројив (пошто имамо пребројиво много исказних слова). Лако се утврђује да важи ( φ CCC)(φ SSS ( α Δ)((φ, α) B)) Како је B P, SSS NN.
2) SSS је NN-тежак Нека је L = (Σ, L) произвољан проблем одлучивања из класе NN. То значи да постоји НТМ: M = (Q, Σ, Γ, δ, q 0,, ) полиномне временске сложености тако да је L M = L.
Потребно је одредити редукциону функцију σ Σ CCC која ће за сваку реч ω Σ формирати исказну формулу φ(m, ω) у КНФ са особином: ω L M aaa i ssss aaa jj φ M, ω zzzzzzzzzzz. Да би функција σ била редукциона, потребно је да постоји алгоритам који је рачуна (односно, који конструише формулу φ M, ω ) у детерминистичком полиномном времену у односу на ω.
Како је M полиномне временске сложености, постоји k тако да се M зауставља након n k корака. Ако нумеришемо поља траке целим бројевима тако да је поље које глава скенира у почетној конфигурацији означено са 0, онда ће машина бити ограничена на део траке означен бројевима из интервала [ n k, n k ].
Исказна слова која користимо у φ M, ω делимо у три групе: 1) x i q (0 i n k, q Q) постављање вредности ове променљива на ће интуитивно значити: Након i-тог корака, стање машине M је q. 2) y ii (0 i n k, n k j n k ) постављање вредности ове променљиве на ће интуитивно значити: Након i-тог корака, глава машине M скенира поље траке означено са ј.
3) z ii a (0 i n k, n k j n k, a Γ) постављање вредности ове променљива на ће интуитивно значити: Након i-тог корака, у пољу траке бр. j налази се симбол а. Формула φ M, ω биће састављена од неколико делова: φ M, ω = φ sssss φ heee φ tttt φ sssss φ aaaaaa φ mmmm
φ sssss = x i q x i 0 i n k q Q 0 i n k p,q Q p q p x i q
φ heee = y ii y ii y ii 0 i n k 0 i n k n k j n k n k j<l n k
φ tttt = z ii a 0 i n k n k j n k a Γ 0 i n k n k j<l n k a,b Γ z ii a b a z ii b
φ sssss = x 0 q 0 y 00 z 0,j n+1 a j n j=1 z 0j n k j n 1 z 0j 0 j n k За улазну реч ω = a 1 a n.
φ aaaaaa = x i 0 i n k
Подформула φ mmmm треба да садржи информацију о свим могућим прелазима машине M, тј. да буде задовољива само оним валуацијама које описују израчунавања која су у сагласности са програмом δ. Формираћемо је из четири дела: φ mmmm = ψ vvvv ψ wwwww ψ llll ψ rrrrr
ψ vvvv = y ii z ii a z i+1,j a 0 i n k n k j n k a Γ
ψ wwwww = x i q y ii z ii a x i+1 qq y i+1,j z i+1,j b 0 i n k n k j n k a Γ (q,a,b,qq) δ
ψ llll = x i q y ii z ii a x i+1 qq y i+1,j 1 z i+1,j a 0 i n k n k j n k a Γ (q,a,l,qq) δ
ψ rrrrr = x i q y ii z ii a x i+1 qq y i+1,j+1 z i+1,j a 0 i n k n k j n k a Γ (q,a,r,qq) δ
Сада ћемо показати да је формирана формула одговарајућа, тј. да важи ω L M aaa i ssss aaa jj φ M, ω zzzzzzzzzzz. : Претпоставимо да је ω L M. Тада у одговарајућем стаблу израчунавања постоји чвор са прихватајућом конфигурацијом. Посматрајмо пут у дрвету који садржи тај чвор.
Конструишемо валуацију α тако да ако је у i-том чвору тог пута (0 i n k ) машина M у стању q и чита ј-то поље траке, тада је α x i q = α y ii = док сва друга x и y слова имају вредност. Вредност слова z ii a бирамо тако да кодирају садржај траке машине M у i-том чвору уоченог пута. Није тешко проверити да важи v α φ M, ω =.
: Нека валуација α задовољава φ M, ω. Будући да α задовољава φ sssss φ heee φ tttt, за свако i, 0 i n k, постоје јединствени q Q, j [ n k, n k ] и a Γ тако да је α x i q = α y ii = α z ii a =. На овај начин природно добијамо низ конфигурација c 0, c 1,, c n k. Пошто α задовољава φ sssss, c 0 је баш почетна конфигурација машине M за улаз ω.
Пошто α задовољава и φ aaaaaa, овај низ садржи прихватајућу конфигурацију. Најзад, како α задовољава φ mmmm, за M важи c 0 c 1 c n k. Према томе, M прихвата ω.
Преостаје да се дужина формуле φ M, ω оцени полиномном функцијом по n. Како су величине попут Q, Γ и δ константне (не зависе од ω), дужина формула φ sssss, φ heee, φ tttt и φ mmmm је O(n 2k ), док је дужина формула φ sssss и φ aaaaaa реда O(n k ). Такође, није тешко показати да постоји алгоритам који на основу речи ω и параметара машине M конструише φ M, ω, при чему се време потребно за исписивање сваког симбола може ограничити полиномом по n.
Презентована редукција је полиномна, па је зато SSS NN-тежак. Како је показано да SSS NN, следи тврђење теореме. Хвала на пажњи