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


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




[270]

двух полиномиальных алгоритмов (выход первого алгоритма подается на вход второго) также работает полиномиальное время. Объясняется это тем, что сумма, произведение и композиция многочленов снова есть многочлен. Абстрактные задачи

Мы принимаем следующую абстрактную модель вычислительной задачи. Будем называть абстрактной задачей (abstract problem) произвольное бинарное отношение Q между элементами двух множеств - множества условий (instances) I и множества решений (solutions) S. Например в задаче SHORTEST-PATH (поиск кратчайшего пути между двумя заданными вершинами некоторого неориентированного графа G = (V, Е)) условием (элементом Е) является тройка, состоящая из графа и двух вершин, а решением (элементов S) - последовательность вершин, составляющих требуемый путь в графе. При этом один элемент множества I может находиться в отношении Q с несколькими элементами множества S (если кратчайших путей между данными вершинами несколько)

В теории NP-полноты рассматриваются только задачи разрешения (decision problems) - задачи, в которых требуется дать ответ «да» или «нет» на некоторый вопрос. Формально задачу разрешения можно рассматривать как функцию, отображающую множество условий I в множество {0,1} (1 = «да», 0 = «нет»). Многие задачи можно там или иным способом преобразовать к такому виду. Например, с задачей поиска кратчайшего пути в графе связана задача разрешения PATH: «по заданному графу G = (V,E), паре вершин и, v G V и натуральному числу к определить, существует ли в С путь между вершинами и и v, длина которого не превосходит к». Пусть четверка г = (G,u,v,k) является условием задачи PATH. Тогда РАТН(г) = 1, если длина кратчайшего пути между вершинами и и v не превосходит к, и РАТН(г) = 0 в противном случае.

Часто встречаются задачи оптимизации (optimization problems), в которых требуется минимизировать или максимизировать значение некоторой величины. Прежде чем ставить вопрос о NP-полноте таких задач, их следует преобразовать в задачу разрешения. Обычно в качестве такой задачи разрешения рассматривают задачу проверки, является ли некоторое число верхней (или нижней) границей для оптимизируемой величины. Так, например, мы перешли от задачи оптимизации SHORTEST-PATH к задаче разрешения PATH, добавив в условие задачи границу длины пути к.

Если после этого получается NP-полная задача, то тем самым установлена трудность исходной задачи. В самом деле, если для оптимизационной задачи имеется быстрый алгоритм, то и полученную из неё задачу разрешения можно решить быстро (надо просто сравнить ответ этого алгоритма с заданной границей). Таким образом, теорию NP-полноты можно использовать и для исследо-


вания задач оптимизации. Представление данных

Прежде чем подавать на вход алгоритма исходные данные (то есть элемент множества /), надо договориться о том, как они представляются в «понятном для компьютера виде»; мы будем считать, что исходные данные закодированы последовательностью битов. Формально говоря, представлением элементов некоторого множества S называется отображение е из S во множество битовых строк. (Разумеется, вместо битовых строк можно было бы рассматривать последовательности символов любого другого конечного алфавита, имеющего не менее двух символов.) Например, натуральные числа 0,1,2,3,... обычно представляют битовыми строками 0,1,10,11,100,... (при этом, например, е(17) = 10001). В компьютерах для представления букв и других символов используют код ASCII (реже - EBCDIC). Так, е(А) = 1000001 в коде ASCII.

Фиксировав представление данных, мы превращаем абстрактную задачу в строковую, для который входным данным является битовая строка, представляющая исходное данное абстрактной задачи. Будем говорить, что алгоритм решает (solves) строковую задачу за время 0(Т(п)), если на входном данном (битовой строке) г длины п алгоритм работает время 0(Т(п)). Строковая задача называется полиномиальной (polynomial-time solvable), существует константа к и алгоритм, решающий эту задачу за время 0(пк).

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

Желая определить понятие полиномиальной абстрактной задачи, мы сталкиваемся с тем, что возможны различные представления данных. Для каждого представления е множества / входов абстрактной задачи Q мы получаем свою строковую задачу, которую мы в дальнейшем обозначаем e(Q). Вообще говоря, при одном представлении может получиться полиномиальная строковая задача, а при другом - нет. (Тут есть ещё одна - чисто техническая - деталь: некоторые битовые строки могут не представлять никаких исходных данных; что требуется в этом случае от алгоритма, решающего строковую задачу? Будем считать, что он должен давать в этом случае ответ 0, то есть что свойство e(Q) ложно для таких входов.)

Вернёмся к вопросу о том, как зависит полиномиальность задачи от выбранного представления. Пусть, например, входом задачи является натуральное число к, и время работы алгоритма есть Q(k). Если число к представить в системе счисления с основанием 1 (unary representation), то есть в виде последовательности к единиц, то время работы алгоритма на входе длины п будет равно О(п), и алгоритм будет полиномиальным. При более естественном двоичном представлении числа к время работы на входе длины п (то


есть на га-битовом числе) будет равно в(2й), и алгоритм не будет полиномиальным.

Однако на практике (если исключить такие «дорогие» способы представления, как система счисления с основанием 1) естественные способы представления оказываются обычно эквивалентными, поскольку они могут быть быстро (полиномиально) преобразованы друг в друга. Например, двоичную запись числа можно преобразовать в троичную и обратно за полиномиальное время.

Будем говорить, что функция / : {0,1}* -> {0,1}* вычислима за полиномиальное время (is polynomial-time computable), если существует полиномиальный алгоритм А, который для любого ж G {0,1)* выдает результат /(ж).

Рассмотрим теперь множество I условий произвольной абстрактной задачи разрешения. Два представления е\ и е2 этого множества называются полиномиально связанными (polynomially related), если существуют две вычислимые за полиномиальное время функции ода /12 и /21, для которых /12(1 (i)) = е2(г) и /2i(e2(0) = ei(0 для всякого i €. I. Это значит, что е\-представление входа может быть за полиномиальное время получено из е2-представления и наоборот. В этом случае не имеет значения, какое из двух полиномиально связанных представлений выбрать, как показывает следующая лемма.

Лемма 36.1

Пусть Q - абстрактная задача разрешения с множеством условий I, а е\ и в2 - полиномиально связанные представления для элементов множества I. Предположим, что множество всех строк, которые являются ei-представлениями элементов Q, разрешимо за полиномиальное время, и что аналогичное свойство выполнено для представления е2. Тогда свойства e\(Q) G Р и e2(Q) G Р равносильны.

Доказательство. Утверждение симметрично, так что достаточно доказать его в одну сторону. Предположим, что задача e\(Q) разрешима за время 0(пк) для некоторого фиксированного числа к. По предположению для всякого условия i £ I представление ei (г) может быть получено из представления в2(г) за время 0(пс) (где с - некоторая константа, га = е2 (*) ) - Для решения задачи e2(Q), получив на вход в2(г), мы сперва вычислим ei (г), а затем применим алгоритм, разрешающий ei(Q), к строке ei (г). Сколько времени займёт наше вычисление? Преобразование в2(г) в ei (г) требует полиномиального времени. Следовательно, ei(i) = 0(пс), поскольку длина выхода алгоритма не превосходит времени его работы. Решение задачи с условием ei (г) занимает 0(\ei(i)\k) = 0(пск) времени. Итак, время вычисления оказалось полиномиальным. (Мы пропустили важный момент: получив на входе некоторую строку, мы должны сначала проверить, что она является е2-представлением некоторого входа; по предположению это можно сделать за поли-



[стр.Начало] [стр.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]