18.1. Классы сложности P и NP и их взаимосвязь

Установление Прямых нижних оценок сложности вычислений, о которых шла речь в предыдущем разделе, удается лишь в очень редких случаях. В связи с этим получил распространение подход, связанный с получением Косвенных нижних оценок, т. е. установление таких утверждений, в которых существование эффективного разрешающего алгоритма для конкретной задачи влечет за собой существование эффективного алгоритма для многих общепризнанно трудных задач.

Нам необходимо формализовать соответствующий подход. Пусть П — некоторая массовая задача, характеризуемая множеством параметров, I Î П — индивидуальная задача, в которой эти параметры фиксированы. Пусть с массовой задачей П связана и зафиксирована схема кодирования a, которая ставит каждой индивидуальной задаче I Î П в соответствие слово a(I) в некотором алфавите А. При этом под Размером задачи I понимается длина слова a(I). Пусть Т — машина Тьюринга, решающая задачу П и  — соответствующая функция временной сложности (по худшему случаю).

Говорят, что машина Т решает задачу П за Полиномиальное время, если для некоторого полинома Р.

В противном случае говорят, что машина Т решает задачу П за Экспоненциальное время. Заметим, что при данном определении к экспоненциальным оценкам относятся, например, оценки вида . (Некоторые авторы оценки такого вида называют Субэкспоненциальными, под которыми понимаются такие оценки, которые превосходят любой полином, но меньше, чем для любого e > 0.

Про задачу П говорят, что она разрешима за полиномиальное время, если существует машина Тьюринга Т, решающая ее за полиномиальное время. Обозначим через Р класс задач, разрешимых за полиномиальное время. Относительно класса Р необходимо сделать следующие замечания.

1. В определении Р существенным является фиксация схемы кодирования a. Многие естественные схемы кодирования полиномиально эквивалентны, т. е. позволяют переходить от одного кода задачи к другому коду за полиномиальное время от длины кода. В этом случае принадлежность (или не принадлежность) задачи П классу Р определяется инвариантно по отношению к схемам кодирования. Однако это справедливо не всегда и, вообще говоря, класс сложности Р зависит от схемы кодирования, поэтому там, где схема кодирования не очевидна или может повлиять на класс сложности, ее следует указывать явно.

2. Класс Р определен через функцию временной сложности машины Тьюринга. Можно сделать соответствующие определения через любую другую алгоритмическую модель.

Однако имеется ряд фактов о полиномиальной эквивалентности временных функций сложности многих типов вычислительных моделей, что позволяет утверждать, что класс Р определен однозначно для «разумных» вычислительных моделей[9].

Поэтому без специальных оговорок будут допускаться выражения типа «алгоритм А имеет полиномиальную сложность» или «алгоритм В имеет экспоненциальную сложность». Обратим внимание, что имеется существенное различие между алгоритмами полиномиальной и экспоненциальной сложности. Ясно, что любой полиномиальный алгоритм более эффективен при достаточно больших размерах входа. Кроме того, полиномиальные алгоритмы лучше реагируют на рост производительности ЭВМ. Рассмотрим такой параметр, как размер решаемой задачи на ЭВМ за единицу времени с помощью данного алгоритма. Тогда изменение данного параметра при переходе к ЭВМ в 100 раз и в 1000 раз большей производительности для различных функций временной сложности показан в табл.18.1.

Таблица 18.1

Функция временной сложности

Размер решаемой задачи на современной ЭВМ за сутки

То же на ЭВМ в 100 раз быстрых

То же на ЭВМ в 1000 раз быстрых

N

N1

100 N1

1000 N1

N2

N2

10 N2

31.6 N2

N3

N3

4.64 N3

10 N3

2N

N4

6.64 + N4

9.97 + N4

3N

N5

4.19 N5

6.29 N5

Из табл.18.1 видно, что в случае полиномиальных алгоритмов размер решаемой задачи при увеличении производительности ЭВМ увеличивается на мультипликативную константу, тогда как для экспоненциальных алгоритмов имеет место увеличение на аддитивную константу.

Далее, полиномиальные алгоритмы обладают свойством «замкнутости», — можно комбинировать полиномиальные алгоритмы, используя один в качестве «подпрограммы» другого и при этом результирующий алгоритм будет полиномиальным. В силу приведенных причин используется следующая терминология: полиномиальные алгоритмы называют Эффективными, полиномиально решаемые задачи называют Легкорешаемыми, а экспоненциально решаемые задачи называют Труднорешаемыми.

Для практики важным является классификация задач по признаку труднорешаемости, хотя следует заметить, что установление легкорешаемости задачи еще не означает ее практическую решаемость. Например, установление полиномиальной оценки не гарантирует практической решаемости уже при начальных значениях N. Аналогичное замечание можно сделать относительно труднорешаемости. Заметим, что труднорешаемость задачи может быть связана с тем, что ее решение настолько велико, что не может быть записано в виде выражения, длина которого была бы ограничена полиномом от длины входа. Чтобы исключить этот тип труднорешаемости, рассматривается только такие задачи, которые имеют «короткий» ответ.

Рассмотрим несколько примеров.

1. Пусть М = {1, 2, …, N} — конечное множество и R Í MXM — бинарное отношение на М. Рассмотрим задачу проверки — является ли R отношением эквивалентности. Будем задавать индивидуальную задачу матрицей AR = (AIj), IJ Π, где

Ясно, что R будет отношением эквивалентности тогда и только тогда, когда матрица AR имеет единичную диагональ, симметрична и выполнено соотношение , где  — матрица отношения R2.

Кроме того, выполнено , где имеется в виду булево умножение матриц. Ясно, что сложность рассматриваемой задачи .

Бинарное отношение R называется Связным, если для любых IJ Π существует K такое, что выполнено .

2. Бинарное отношение R называется Эйлеровым, если элементы R можно так упорядочить , что выполнено . Ясно, что эйлерово отношение является связным.

Можно доказать, что связное отношение R является эйлеровым тогда и только тогда, когда число единиц в матрице AR совпадает в I-м столбце и в I-й строке для каждого I Π. Это дает алгоритм сложности , проверяющий эйлеровость отношения R. Ясно, что связность отношения R проверяется за действий.

Заметим, что здесь главным для нас является установление полиномиальности рассматриваемых задач, а не установление наилучших алгоритмов.

3. Бинарное отношение R называется Гамильтоновым, если элементы М можно так упорядочить I1, I2, …, IN, что выполнено соотношение

.

В настоящее время неизвестно полиномиального алгоритма от N проверки гамильтоновости произвольного отношения R. Тривиальный алгоритм требует N! упорядочений множества М и проверки условий (7), что, конечно, превосходит по величине любой полином от N.

4. Пусть F(X1, …, XN) — формула от булевых переменных X1, …, XN в некотором фиксированном базисе В. Напомним, что формула F(X1, …, XN) называется Выполнимой, если существует набор значений переменных , такой, что . Формула F(X1, …, XN) называется Мультиафинной, если она имеет вид F(X1, …, XN) = , где A1, …, AT — константы, т. е. F представляет собой конъюнкцию линейных форм.

Рассмотрим задачу проверки выполнимости мультиафинной формулы. Ясно, что существование выполняющего набора для мультиафинной формулы сводится к существованию решения линейной системы уравнений над полем F2. Алгоритм Гаусса дает оценку , поэтому рассматриваемая задача полиномиальна.

Пусть формула F(X1, …, XN) имеет конъюнктивную нормальную форму, т. е. имеет вид:

F(X1, …, XN) = ,

Где AI, …, ZI — константы. Рассмотрим задачу проверки выполнимости для формул КНФ. В настоящее время неизвестно алгоритма полиномиальной сложности решения данной задачи. Тривиальный алгоритм требует перебор 2N наборов значений переменных и вычисления для каждого из них значения формулы.

5. Рассмотрим стандартную Задачу линейного программирования: для данных целочисленной (MXN)-матрицы А, M-вектора B и N-вектора C:

А) найти N-вектор X с рациональными координатами такой, что X ³ 0 и AxB, CT×X à min; либо

B) установить, что не существует N-вектора X такого, что X ³ 0 и AxB; либо

С) установить, что множество {CT×X: X ³ 0 и AxB} не ограничено снизу.

Хачиян Л. Г. (1979) установил, что данная задача принадлежит классу Р и тем самым разрешил вопрос, долго стоявший открытым.

Определим теперь класс NP задач распознавания, т. е. имеющих ответ «ДА» или «НЕТ». Для того, чтобы задача I содержалась в классе NP требуется только, чтобы в случае, если I имеет ответ «ДА», существовало бы слово С(I) длины, ограниченной полиномом от размера I такое, что задача с начальными данными С(I), I принадлежит Р. Слово С(I) называется Удостоверением или Догадкой для задачи I.

Рассмотрим примеры.

1. Пусть дана задача проверки гамильтоновости бинарного отношения R Í MXM на множестве М = {1, 2, …, N}. Если R — гамильтоново отношение, то удостоверением этого будет последовательность элементов М: С(R) = I1I2…IN. Имея пару С(R), R, легко убеждаемся, проверяя соотношения (7), верно ли, что R — гамильтоново отношение. Следовательно, задача проверки гамильтоновости бинарного отношения лежит в классе NP.

2. Пусть дана задача проверки выполнимости формул КНФ. Если F(X1, …, XN) — выполнимая функция, то удостоверением этого будет соответствующий выполняющий набор . Имея пару (), F(X1, …, XN), легко убедиться, верно ли, что F(X1, …, XN) выполнима.

Формализуем теперь данные идеи. Класс NP определяется через понятие недетерминированного алгоритма. Введем понятие недетерминированной машины Тьюринга.

Схема недетерминированной машины Тьюринга приведена на рис.18.1.

*

X1

X2

XN

 

-3

-2

-1

0

1

2

N

Рис.18.1

Отличие от обычной машины Тьюринга заключается в том, что недетерминированная машина (НТ) имеет дополнительно угадывающий модуль (УМ), который может только записывать на ленту слова из внешнего алфавита. Поскольку речь идет о задачах распознавания, то удобно считать, что машина имеет два заключительных состояния QY и QN, соответствующие ответам «ДА» и «НЕТ» соответственно. Работа машины имеет две стадии:

1-я стадия — угадывание. В начальный момент на ленте записано слово XX1…XN — код индивидуальной задачи I, начиная с ячейки 1. В ячейке 0 записан знак раздела *. Угадывающий модуль просматривает ячейку –1. Затем УМ пишет произвольное слово С(Х) по одной букве за такт в каждой ячейке с номерами — –1, –2, –3, … . В итоге 1-й стадии конфигурацией машины будет С(Х)*Q1X.

2-я стадия — решение. На этой стадии недетерминированная машина работает как обычная машина Тьюринга с конфигурации С(Х)*Q1X. Если машина через конечное число шагов приходит в состояние QY, то говорим, что она принимает конфигурацию С(Х)*Q1X. Будем говорить, что недетерминированная машина принимает X, если существует слово С(Х), такое что конфигурация С(Х)*Q1X принимается.

Определим время работы недетерминированной машины, положив , (если Х принимается), где  — время работы на стадии 1, т. е., по определению, ;  — время работы на стадии 2, т. е., по определению, (Т — соответствующая (обычная) машина Тьюринга).

Определим . Недетерминированная машина НТ решает задачу П за полиномиальное время, если для некоторого полинома Р.

Заметим, что временная функция определена только для тех индивидуальных задач Х, которые принимаются машиной НТ.

Определим класс задач NP как множество задач, для которых существует недетерминированная машина Тьюринга, принимающая за полиномиальное время те и только те слова, которые соответствуют индивидуальным задачам с ответом «ДА».

Разберем теперь вопрос о взаимоотношении между введенными классами Р и NP. Ясно, что Р Í NP. Имеется много причин считать это включение строгим, однако этот факт пока не доказан (1992).

Теорема 18.1. Если задача П Î NP, то существует такой полином Р, что П может быть решена детерминированным алгоритмом со сложностью , N — размер П.

Доказательство. Пусть НТ — недетерминированная машина Тьюринга, решающая задачу П, и Q(N) — полином, ограничивающий временную функцию сложности НТ. Не нарушая общности, можно считать, что Q(N)= (С1, с2 – константы). По определению класса NP, если вход Х длины N принимается НТ, то существует слово С(Х) длины не более чем Q(N), такое, что НТ дает ответ «ДА» не более чем за Q(N) шагов. Значит, общее число возможных слов-догадок не более чем KQ(N), где K — мощность внешнего алфавита НТ. Считаем, что все догадки имеют длину Q(N), в противном случае их можно подравнять. Теперь можно представить детерминированный алгоритм решения задачи П, который на каждом из KQ(N) слов-догадок реализует 2-ю стадию работы НТ и работает Q(N) тактов. Алгоритм дает ответ «ДА», если найдется слово-догадка, приводящее к принимающему вычислению. Время работы данного алгоритма Q(N)KQ(N). Ясно, что существует подходящий полином Р(N) такой, что сложность описанного алгоритма не превосходит , что и требовалось доказать.

Относительно класса NP следует сделать несколько замечаний:

Класс NP один и тот же для различных вычислительных моделей, использующих недетерминированные операции;

Класс P замкнут относительно дополнения задач. Для класса NP этого утверждать нельзя.

Дополнением задачи распознавания А называют задачу, в которой коды задач с ответом «ДА» в точности соответствует кодам задач А, которые не имеют ответа «ДА». Класс задач, являющихся дополнениями к задачам класса NP обозначают СО-NP.

© 2011-2024 Контрольные работы по математике и другим предметам!