Выполнимость формулы Теорема 1 (SAT ∈ NPC). Задача о

advertisement
Выполнимость формулы
Теорема 1 (SAT ∈ NPC). Задача о выполнимости булевых формул является NP-полной.
Доказательство. SAT ∈ NP: Проверка того, что набор значений является
выполняющим, занимает полиномиальное время.
Выполнимость формулы A ∈ NP ⇒ A ≤P SAT
Доказательство.
• N — недетерминированная машина Тьюринга для
A с временем работы nk
• Запишем конфигурации машины в таблице nk × nk
#
#
#
q0
w1
w2
...
t
wn
...
t
#
#
#
начальная конфигурация
вторая конфигурация
#
nk -ая конфигурация
окно
#
Выполнимость формулы A ∈ NP ⇒ A ≤P SAT
Доказательство.
• Q — состояния N
• Γ — алфавит N
• C = Q ∪ Γ ∪ {#}
• По входу w построим формулу φ = φcell & φstart & φmove & φaccept
Переменные: xi,j,s для всех i, j ∈ [1, nk ] и s ∈ C
– xi,j,s = 1 ⇔ ячейка (i, j) содержит символ s
hW
i
˘
˘
φcell = i,j∈[1,nk ] ( s∈C xi,j,s ) & ( s,t∈C,s6=t (xi,j,s ∨ xi,j,t ))
φstart = x1,1,# & x1,2,q0 & x1,3,w1 & · · · & x1,n+2,wn &
x1,nk −1,t & x1,nk ,#
W
φaccept = i,j∈[1,nk ] xi,j,qaccept
φmove =
Выполнимость формулы A ∈ NP ⇒ A ≤P SAT
Пример 2 (Допустимые окна).
• δ(q1 , a) = {(q2 , b, L)}
• δ(q1 , b) = {(q2 , c, L), (q2 , c, R)}
a a q1
# a b
a q2 a
# a b
a
q2
q1
a
a
b
#
#
b
q2
q1
b
b
b
b
b
q1
c
b
c
b
b
b
b
x1,n+3,t & · · · &
Выполнимость формулы A ∈ NP ⇒ A ≤P SAT
Лемма 3.
• Верхняя строка таблицы — начальная конфигурация
• Каждое окно в таблице допустимо
⇒ Каждая строка таблицы — конфигурация, легально следующая за
конфигурацией из предыдущей строки
Доказательство.
• Ячейка верхней конфигурации не граничит с «ячейкой состояния»
– Останется без изменения в нижней конфигурации
• Ячейка верхней конфигурации граничит с «ячейкой состояния»
– Окно с центром в «ячейке состояния»
– Содержимое окна согласовано с функцией перехода
Выполнимость формулы A ∈ NP ⇒ A ≤P SAT
Доказательство.
¯
φmove =
(окно (i, j) допустимо)
1≤i<nk ,1<j<nk
окно (i, j) допустимо:
_
(xi,j−1,a1 & xi,j,a2 & xi,j+1,a3 & xi+1,j−1,a4 & xi+1,j,a5 & xi+1,j+1,a6 )
a1
a2
a3
a4
a5
a6
допустимое
окно
Выполнимость формулы A ∈ NP ⇒ A ≤P SAT
Приведение занимает полиномиальное время.
• Γ — алфавит N
• C = Q ∪ Γ ∪ {#}
• Таблица nk × nk
• |C| переменных на ячейку — не зависит от n
⇒ O(n2k ) переменных
2
• Q — состояния N
Выполнимость формулы A ∈ NP ⇒ A ≤P SAT
Приведение занимает полиномиальное время. φcell =
"
#
¯
_
¯
=
(
xi,j,s ) & (
(xi,j,s ∨ xi,j,t ))
i,j∈[1,nk ]
s,t∈C,s6=t
s∈C
|φcell | = O(n2k ) — формула фиксированного размера для каждой ячейки
φstart = x1,1,# &x1,2,q0 &x1,3,w1 &· · ·&x1,n+2,wn &
x1,nk ,#
x1,n+3,t &· · ·&x1,nk −1,t &
|φstart | = O(nk )
W
φaccept = i,j∈[1,nk ] xi,j,qaccept
|φaccept | = O(n2k )
˘
φmove = 1≤i<nk ,1<j<nk (окно (i, j) допустимо)
|φmove | = O(n2k )
Выполнимость формулы A ∈ NP ⇒ A ≤P SAT
Приведение занимает полиномиальное время.
• Размер формулы — O(n2k )
• Каждый компонент формулы состоит из множества практически одинаковых фрагментов
• Формула может быть построена за полиномиальное время
Следствие 4 (3SAT ∈ NPC). Задача о выполнимости 3-КНФ является
NP-полной.
Доказательство.
• 3SAT ∈ NP
• Приведем формулу из доказательства Теоремы Кука – Левина к 3КНФ
3
Download