Ремонт принтеров, сканнеров, факсов и остальной офисной техники


назад Оглавление вперед




[273]

36.2 Четыре возможных ситуации (имеется в виду, что все показанные на рисунке области непусты).

(а) Классы Р, NP и со - NP совпадают. (Большинство экспертов

(b)Класс NP замкнут относительно дополнения (NP=co-NP), но не совпадает с Р.

(c)Класс NP не замкнут относительно дополнения и в пересечении с co-NP даёт Р.

(с!) Класс NP не замкнут относительно дополнения; пересечение NP п со - NP больше, чем Р.

класс NP определялся в терминах так называемых недетерминированных вычислений (см. книгу Хопкрофта и Ульмана [104]).

Мы уже знаем одну задачу из класса NP - это задача HAM-CYCLE. Кроме того, всякая задача из Р принадлежит также и NP. Действительно, если есть полиномиальный алгоритм, распознающий язык, то легко построить проверяющий алгоритм для того же языка - проверяющий алгоритм может просто игнорировать свой второй аргумент (сертификат). Таким образом Р С NP.

В данное время неизвестно, совпадают ли классы Р и NP, но большинство специалистов полагает, что нет. Интуитивно класс Р можно представлять себе как класс задач, которые можно быстро решить, а класс NP - как класс задач, решение которых может быть быстро проверено. На практике решить самому задачу часто намного труднее, чем проверить уже готовое решение, особенно если время работы ограничено. По аналогии можно думать, что в классе NP имеются задачи, которые нельзя решить за полиномиальное время.

Есть и более серьёзные причины полагать, что Р ф NP - прежде всего это существование «NP-полных» задач (раздел 36.3).

Кроме проблемы Р = NP, остаются открытыми и многие другие вопросы о классе NP. Так, несмотря на огромные усилия исследователей, не известно, замкнут ли класс NP относительно дополнения, то есть верно ли, что из L £ NP следует L £ NP. Мы можем определить сложностной класс со - NP как множество языков L, для котрых L £ NP. Вопрос о замкнутости класса NP относительно дополнения можно переформулировать так: равны ли классы NP и co-NP?

Поскольку класс Р замкнут относительно дополнения (упр. 36.17), Р с NP п со - NP. В то же время остаётся неизвестным, верно ли равенство Р = NP п со - NP. На рис. 36.2 показаны четыре возможных ситуации.

Увы, наши знания о соотношении классов Р и NP далеко не полны (говоря прямо, мы вообще ничего не знаем). Но уже понятие NP-полноты является важным средством классификации задач; как мы


увидим, оно сводит вопрос о сложности данной задачи к общему (пусть и не решённому) вопросу о соотношении классов Р и NP.

Упражнения

36.2-1

Рассмотрим язык GRAPH-ISOMORPHISM={(Gi, G2) : графы G\ и G2 изоморфны}. Докажите, что данный язык принадлежит классу NP (постройте полиномиальный алгоритм, проверяющий этот язык).

36.2-2

Докажите, что неориентированный двудольный граф с нечётным числом вершин не гамильтонов. 36.2-3

Покажите, что если HAM-CYCLE лежит в Р, то за полиномиальное время можно не только проверить, существует ли гамильтонов цикл, но и найти его.

36.2-4

Докажите, что класс языков NP замкнут относительно объединения, пересечения, конкатенации и ★-операции Клини. 36.2-5

Докажите, что любой язык из NP распознается некоторым алгоритмом за время 2°(п )), где п - длина входа, а к - не зависящая от п константа.

36.2-6

Гамильтоновым путём в графе называется путь, котрый проходит через каждую вершину графа ровно один раз. Докажите, что язык НАМ-РАТН={(С, и, v) : в графе G существует гамильтонов принадлежит NP.

36.2-7

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

36.2-8

Пусть Lp - булева формула, построенная из булевых переменных Х\ , х2}• • • ,

хп с помощью операций отрицания (->), конъюнкций (И, Л), дизъюнкций (ИЛИ, V) и скобок. Формула Lp называется тавтологией (tautology), если она истинна для всех значений переменных. Определим язык TAUTOLOGY, состоящий из всех тавтологий. Покажите, что TAUTOLOGY принадлежит co-NP. 36.2-9

Докажите, что Р С со - NP 36.2-10

Докажите, что если NP ф со - NP, то Р ф NP. 36.2-11

Пусть G - связный неориентированный граф, имеющий не меньше трёх вершин. Рассмотрим граф С3, который получится, если со-


единить ребром каждую пару вершин графа G, которые соединены в G путём длины не больше 3. Докажите, что граф G3 гамильтонов. (Указание: постройте покрывающее дерево графа G и примените математическую индукцию.)

По-видимому, наиболее убедительным аргументом в пользу того, что классы Р и NP различны, является существование так называемых NP-полных задач. Этот класс обладает удивительным свойством: если какая-нибудь NP-полная задача разрешима за полиномиальное время, то и все задачи из класса NP разрешимы за полиномиальное время, то есть P=NP. Несмотря на многолетние исследования, ни для одной NP-полной задачи не найден полиномиальный разрешающий алгоритм.

В частности, задача НАМ-РАТН (о гамильтоновом цикле) является NP-полной. Таким образом, если научиться решать её за полиномиальное время, то и для всех задач класса NP существовали бы полиномиальные алгоритмы. Переформулировка: NP \ Р непусто, то HAM-PATH G NP \ Р.

Неформально говоря, NP-полные языки являются самыми «трудными» в классе NP. При этом трудность языков можно сравнивать, сводя один язык к другому. В этом разделе мы даём определение сводимости, затем определяем класс NP-полных языков и устанавливаем полноту одного конкретного языка, CIRCUIT-SAT. В разделе 36.5 мы используем метод сведения для доказательства NP-полноты многих других задач.

Сводимость

Говоря неформально, задача Q сводится к задаче Q, если задачу Q можно решить для любого входа, считая известным решение задачи Q для какого-то другого входа. Например, задача решения линейного уравнения сводится к задаче решения квадратного уравнения (линейное уравнение можно превратить в квадратное, добавив фиктивный старший член). Если задача Q сводится к задаче Q, то любой алгоритм, решающий Q, можно использовать для решения задачи Q, то есть Q «не труднее» Q.

Дадим формальное определение. Говорят, что язык L\ сводится за полиномиальное время (is polynomial-time reducible) к языку L2 (запись: L\ L2), если существует такая функция / : {0,1}* -> {0,1}*, вычислимая за полиномиальное время, что для любого х £

Функцию / называют сводящей функцией (reduction function), а полиномиальный алгоритм F, вычисляющий функцию / - сводя-

36.3. NP-полнота и сводимость

{0,1}*



[стр.Начало] [стр.1] [стр.2] [стр.3] [стр.4] [стр.5] [стр.6] [стр.7] [стр.8] [стр.9] [стр.10] [стр.11] [стр.12] [стр.13] [стр.14] [стр.15] [стр.16] [стр.17] [стр.18] [стр.19] [стр.20] [стр.21] [стр.22] [стр.23] [стр.24] [стр.25] [стр.26] [стр.27] [стр.28] [стр.29] [стр.30] [стр.31] [стр.32] [стр.33] [стр.34] [стр.35] [стр.36] [стр.37] [стр.38] [стр.39] [стр.40] [стр.41] [стр.42] [стр.43] [стр.44] [стр.45] [стр.46] [стр.47] [стр.48] [стр.49] [стр.50] [стр.51] [стр.52] [стр.53] [стр.54] [стр.55] [стр.56] [стр.57] [стр.58] [стр.59] [стр.60] [стр.61] [стр.62] [стр.63] [стр.64] [стр.65] [стр.66] [стр.67] [стр.68] [стр.69] [стр.70] [стр.71] [стр.72] [стр.73] [стр.74] [стр.75] [стр.76] [стр.77] [стр.78] [стр.79] [стр.80] [стр.81] [стр.82] [стр.83] [стр.84] [стр.85] [стр.86] [стр.87] [стр.88] [стр.89] [стр.90] [стр.91] [стр.92] [стр.93] [стр.94] [стр.95] [стр.96] [стр.97] [стр.98] [стр.99] [стр.100] [стр.101] [стр.102] [стр.103] [стр.104] [стр.105] [стр.106] [стр.107] [стр.108] [стр.109] [стр.110] [стр.111] [стр.112] [стр.113] [стр.114] [стр.115] [стр.116] [стр.117] [стр.118] [стр.119] [стр.120] [стр.121] [стр.122] [стр.123] [стр.124] [стр.125] [стр.126] [стр.127] [стр.128] [стр.129] [стр.130] [стр.131] [стр.132] [стр.133] [стр.134] [стр.135] [стр.136] [стр.137] [стр.138] [стр.139] [стр.140] [стр.141] [стр.142] [стр.143] [стр.144] [стр.145] [стр.146] [стр.147] [стр.148] [стр.149] [стр.150] [стр.151] [стр.152] [стр.153] [стр.154] [стр.155] [стр.156] [стр.157] [стр.158] [стр.159] [стр.160] [стр.161] [стр.162] [стр.163] [стр.164] [стр.165] [стр.166] [стр.167] [стр.168] [стр.169] [стр.170] [стр.171] [стр.172] [стр.173] [стр.174] [стр.175] [стр.176] [стр.177] [стр.178] [стр.179] [стр.180] [стр.181] [стр.182] [стр.183] [стр.184] [стр.185] [стр.186] [стр.187] [стр.188] [стр.189] [стр.190] [стр.191] [стр.192] [стр.193] [стр.194] [стр.195] [стр.196] [стр.197] [стр.198] [стр.199] [стр.200] [стр.201] [стр.202] [стр.203] [стр.204] [стр.205] [стр.206] [стр.207] [стр.208] [стр.209] [стр.210] [стр.211] [стр.212] [стр.213] [стр.214] [стр.215] [стр.216] [стр.217] [стр.218] [стр.219] [стр.220] [стр.221] [стр.222] [стр.223] [стр.224] [стр.225] [стр.226] [стр.227] [стр.228] [стр.229] [стр.230] [стр.231] [стр.232] [стр.233] [стр.234] [стр.235] [стр.236] [стр.237] [стр.238] [стр.239] [стр.240] [стр.241] [стр.242] [стр.243] [стр.244] [стр.245] [стр.246] [стр.247] [стр.248] [стр.249] [стр.250] [стр.251] [стр.252] [стр.253] [стр.254] [стр.255] [стр.256] [стр.257] [стр.258] [стр.259] [стр.260] [стр.261] [стр.262] [стр.263] [стр.264] [стр.265] [стр.266] [стр.267] [стр.268] [стр.269] [стр.270] [стр.271] [стр.272] [стр.273] [стр.274] [стр.275] [стр.276] [стр.277] [стр.278] [стр.279] [стр.280] [стр.281] [стр.282] [стр.283] [стр.284] [стр.285] [стр.286] [стр.287] [стр.288] [стр.289] [стр.290] [стр.291] [стр.292] [стр.293] [стр.294]