конечное число шагов приходит в состояние , то говорим, что она принимает
конфигурацию
c
(
x
)*
x
. Будем говорить, что недетерминированная машина
принимает
x
, если существует слово
c
(
x
), что конфигурация
c
(
x
)*
x
принимается.
q
Y
q
1
)
q
1
)
T
(tx
HT
с n
1
Определим время работы недетерминированной машины, положив
= +t tx
HT
() tx
1
() x
2
(
(если
x
- принимается)
где
t - время работы на стадии 1, т.е., по определению, =x
1
() tx
1
(
cx()
- время работы на стадии 2, т.е., по определению, t =tc tx
2
() x
2
() x x(( )* )
(Т - соответствующая (обычная) машина Тьюринга). Определим
tn
HT
()=
max )
,xx n
=
.
Недетерминированная машина HТ решает задачу П за полиномиальное время,
если
tn
HT
()
=
O
(
p
(
n
))
для некоторого полинома
р
.
Заметим, что временная функция определена только для тех
индивидуальных задач
x
, которые принимаются машиной НТ.
Определим класс задач NP как множество задач, для которых существует
недетерминированная машина Тьюринга, принимающая за полиномиальное
время те и только те слова, которые соответствуют индивидуальным задачам с
ответом "Да".
Разберем теперь вопрос о взаимоотношении между введенными классами
Р и NР. Ясно, что Р
⊆
NР . Имеется много причин считать это включение
строгим, однако этот факт пока не доказан (1992).
Теорема.
Если задача П
∈
NP, то существует такой полином
р
, что П может
быть решена детерминированным алгоритмом со сложностью
O
(
2
),
n
-
размер П.
pn()
Доказательство. Пусть НТ - недетерминированная машина Тьюринга,
решающая задачу П и
q
(
n
) - полином, ограничивающий временную функцию
сложности НТ. Не нарушая общности, можно считать, что
q
(
n
)=
(
-константы). По определению класса NP, если вход
x
длины
n
принимается HT, то существует слово
c
(
x
) длины не более чем
q
(
n
), такое, что
НТ дает ответ "ДА" не более чем за
q
(
n
) шагов. Значит, общее число возможных
слов-догадок не более чем
, где
k
- мощность внешнего алфавита НТ.
Считаем, что все догадки имеют длину
q
(
n
), в противном случае их можно
подравнять. Теперь можно представить детерминированный алгоритм решения
задачи П, который на каждом из
слов-догадок реализует 2-ю стадию
работы НТ и работает
q
(
n
) тактов. Алгоритм дает ответ "Да", если найдется
слово-догадка, приводящая к принимающему вычислению. Время работы
данного алгоритма
q
(
n
)
⋅
. Ясно, что существует подходящий полином
p
(
n
),
c
2
cc
1
,
2
k
qn()
qn()
k
qn()
k
93