§ 14. Классы сложности P и NP и их взаимосвязь
1
°
. Установление прямых
нижних оценок сложности вычислений, о которых шла
речь в предыдущем разделе, удается лишь в очень редких случаях. В связи с
этим получил распространение подход, связанный с получением косвенных
нижних оценок, т.е. установление таких утверждений, в которых существование
эффективного разрешающего алгоритма для конкретной задачи влечет за собой
существование эффективного алгоритма для многих общепризнанно трудных
задач.
Нам необходимо формализовать соответствующий подход. Пусть П -
некоторая массовая задача, характеризуемая множеством параметров,
I
∈
П -
индивидуальная задача, в которой эти параметры фиксированы. Пусть с
массовой задачей П связана и зафиксирована схема кодирования
α
, которая
ставит каждой индивидуальной задаче
I
∈
П в соответствие слово
α
(
I
) в
некотором алфавите A. При этом под размером
задачи
I
понимается длина слова
α
(
I
). Пусть Т - машина Тьюринга, решающая задачу П и
tn
T
()
=
max ( )
()IIn
tI
,
T
α
=
(1)
- соответствующая функция временной сложности (по худшему случаю).
Говорят, что машина T решает задачу П за полиномиальное время
, если
tn
T
()
=
O
(
p
(
n
)) (2)
для некоторого полинома р.
В противном случае говорят, что машина T решает задачу П за
экспоненциальное время. Заметим, что при данном определении к
экспоненциальным оценкам относятся, например, оценки вида
On
.
(Некоторые авторы оценки такого вида называют
n
()
log
2
субэкспоненциальными
, под
которыми понимают такие оценки, которые превосходят любой полином, но
меньше, чем
O
для любого
ε
>0).
n
(2
ε
)
Про задачу П говорят, что она разрешима за полиномиальное время, если
существует машина Тьюринга Т, решающая ее за полиномиальное время.
Обозначим через P класс задач, разрешимых за полиномиальное время.
Относительно класса P необходимо сделать следующие замечания.
1) В определении класса Р существенным является фиксация схемы
кодирования
α
. Многие естественные схемы кодирования полиномиально
эквиваленты, т.е. позволяют переходить от одного кода задачи к другому коду за
полиномиальное время от длины кода. В этом случае принадлежность (или не
принадлежность) задачи П классу Р определяется инвариантно по отношению к
схемам кодирования. Однако, это справедливо не всегда и, вообще говоря, класс
сложности Р зависит от схемы кодирования, поэтому там, где схема кодирования
не очевидна или может повлиять на класс сложности, ее следует указывать явно.
2) Класс Р определен через функцию временной сложности машины
Тьюринга. Можно сделать соответствующие определения через любую другую
алгоритмическую модель.
88