Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Линейная сводимость и нижние границы сложности




Нижеприведенная теорема является следствием определения 28.1.

Теорема 29.1. Пусть задачи P и Q таковы, что P s= Q. Пусть f (n) — асимптотическая нижняя граница сложности алгоритмов ре­шения задачи P, и при этом соотношение P^Qустанавливается без


§ 29. Линейная сводимость и нижние границы сложности 191

наложения ограничений на сложность алгоритмов решения задачи Q. Тогда f (n) является асимптотической нижней границей сложности алгоритмов решения задачи Q.

Доказательство. Для каждого алгоритма AQ решения задачи Q
найдется такой алгоритм AP решения задачи P, для которого TA (n) =
= O(TAQ (n)), или, эквивалентно, TAQ (n) = П(TAP (n)). Но TAP (n) =
= П(f (n)), следовательно, TAQ (n) = П(/(n)). П

Если при соблюдении условия этого предложения для какого-то алгоритма AQ решения задачи Q имеет место оценка TA (n) = = O (f (n)), то этот алгоритм будет оптимальным по порядку слож­ности и TA (n) = в(f (n)). (При наличии ограничений на сложность

q

алгоритма AQ, когда фактически предполагается, что AQ принадле­жит некоторому классу J2, речь должна бы идти об оптимальности по порядку сложности в классе 21; но если ограничения таковы, что в класс £2. попадают наиболее рациональные алгоритмы, то упоми­нание класса Ш не обязательно.)

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

Пусть x1,x2,...,xn — данный массив попарно различных веще­ственных чисел. Решив задачу построения выпуклой оболочки мно­жества точек с координатами

(x 1, x21), (x2,x 22 ),..., (xn,xn2)

(см. рис. 23), мы можем, двигаясь по вершинам построенного много­угольника, найти вершину с наименьшей абсциссой, а затем постро­ить массив вершин в порядке возрастания абсцисс. Сложность этой дополнительной части работы допускает оценку O(n). Легко видеть, что сложность любого алгоритма построения выпуклой оболочки не



Глава 7. Сводимость


У >i

х


Рис. 23. Сведение сортировки чисел xt,x2, ■■■,хп, отмеченных на оси абсцисс, к построению выпуклой оболочки точек их*), {х2,х\),..., п2п).


может быть меньше чем п. Таким образом, каждому алгоритму А построения выпуклой оболочки мы сопоставляем алгоритм сортиров­ки со сложностью 0{ТА{п)). Следовательно, задача сортировки веще­ственных чисел с помощью арифметических операций и сравнений линейно сводится к задаче построения выпуклой оболочки.

Из результатов § 14 следует, что любая сортировка с помощью сравнений массивов длины п имеет сложность не менее log2 п\. Но при построении выпуклой оболочки используются как сравнения, так и арифметические операции. Можно ли, привлекая помимо опера­ций сравнения еще и арифметические операции, предложить алго­ритм сортировки массивов вещественных чисел, сложность которого по числу сравнений была бы меньше, чем log2 п\, пусть даже при том, что потребовалось бы очень большое число арифметических опера­ций? Ниже мы обосновываем отрицательный ответ на этот вопрос.

Дополнительное использование четырех арифметических опера­ций означает, что сравниваться могут не только числа хъх2, ■■■,хп, заданные изначально, но и значения рациональных функций от этих чисел. В качестве знаков сравнения могут использоваться

<, >, =, фу ^,;>.

Каждая рациональная функция F{хъ х2, ■ ■ ■, хп) записывается как отношение двух полиномов

р(х12,...,хп)

(29.1)
q(x1,x2,...,xn)

F(x1,x2,...,xn)


§ 29. Линейная сводимость и нижние границы сложности 193

(в этом параграфе мы рассматриваем рациональные функции и полиномы с вещественными коэффициентами). Каждый полином f (x 1, x2,..., xn) можно рассматривать как рациональную функцию

f(x1,x2,...,xn)
1.

Предполагается, что если алгоритм предписывает сравнение, в кото­ром участвует значение рациональной функции (29.1), то ее знамена­тель q(x1,x2,...,xn) не обращается в 0 при рассматриваемых значе­ниях x 1, x2,...,xn. Неравенство F1(x1,x2,...,xn)<F2(x1,x2,...,xn) рав­носильно, очевидно, неравенству F (x 1 ,x2,...,xn) <0, где

F(x1,x2,...,xn)=F1(x1,x2,...,xn)-F2(x1,x2,...,xn).

То же самое для сравнений со знаками >, =, ф, ^, ^.

Далее будут использоваться два свойства рациональных функций:

(R1) Множество точек (x 1, x 2,..., xn)еГ, для которых данная ра­циональная функция (29.1) неопределена или равна нулю, является замкнутым; в свою очередь, те точки, в которых эта функция опреде­лена и имеет значение большее (меньшее) нуля, образуют открытое множество. Это следует из того, что рациональная функция непре­рывна на своем множестве определения.

(R2) Если рациональная функция (29.1) определена и равна нулю всюду на некотором непустом открытом подмножестве множества Ж n, то ее числитель p (x 1, x2,..., xn) является нулевым полиномом (см. за­дачу 147).

Предложение 29.1. Функция f (n) = [log2 n!] является нижней гра­ницей сложности по числу сравнений алгоритмов сортировки масси­вов длины n попарно различных вещественных чисел c помощью срав­нений и четырех арифметических операций.

Доказательство.г Каждой из перестановок a = (a 1, a2,..., an)еП n сопоставим сектор Sa — подмножество пространства Ж n такое, что (x 1 ,x2,..., xn) e Sa, если и только если числа x 1, x2,...,xn попарно раз­личны и их относительный порядок совпадает с относительным по­рядком чисел a1,a2,...,an. Любой сектор является открытым множе­ством в Ж n. Каждому массиву вещественных чисел с попарно раз­личными элементами x 1, x2,...,xn соответствует точка некоторого

!Идея элементарного доказательства сообщена автору С.П.Поляковым. Наиболее раннее (довольно трудное для понимания) доказательство было опубликовано H. Фрид­маном в [49].



Глава 7. Сводимость


сектора пространства Ж". В примере 14.2 говорилось, что при фикси­рованном п любую сортировку массивов длины п можно представить в виде дерева, каждой не являющейся листом вершине v которого приписано сравнение вида xt < х;-, а выходящие из нее ребра име­ют метки 1 («да») и 0 («нет»); при этом каждому листу Z приписан набор х; ,х<,...,х;, где (b, i 2,...,*„) — некоторая перестановка чисел 1,2,...,п.

Алгоритм сортировки массивов длины п c помощью сравнений и четырех арифметических операций представляется деревом D, которое можно считать таким, что каждой не являющейся ли­стом вершине v приписано сравнение Fv(x1,x2,...,xn) с нулем, где Руъх2,...,хп) — некоторая рациональная функция, а выходящие из вершины ребра имеют метки 1 («да») и 0 («нет»). При этом каждому листу Z приписаны рациональные функции

Gll{x1,x2,...,xn), Gl2{x1,x2,...,xn),..., Gln(x1,x2,...,xn), (29.2)

значения которых для исходных хъх2,...,хп определяют требуемый

порядок X;, X;,...,Х;:

х = G,1(x 1, x 2,..., xn), х = G,2(x 1, x 2,..., xn),

- = G, n (x 1, x 2,..., xn).

Можно считать, что числитель каждой из функций Fv (x l5 x 2,...,хп) не является нулевым полиномом, — в противном случае вершину v можно было бы удалить из дерева вместе с выходящей из нее вет­вью, начинающейся с помеченного единицей ребра. Множество JV тех точек Ж", в которых обращается в нуль числитель хотя бы одной из рациональных функций Fv (x l5 x 2,...,хп), в силу свойства (R1) явля­ется замкнутым, причем это множество не может покрывать целиком ни один из секторов. Иначе в силу свойства (R2) произведение всех числителей рассматриваемых рациональных функций было бы нуле­вым полиномом, а это означало бы, что один из сомножителей этого произведения—нулевой полином.

Таким образом, каждое из множеств

S; = S;\JV, i = l,2,..., n!,

есть непустое открытое множество. Покажем, что для массивов, соот­ветствующих точкам из S't, i = l,2,..., п\, рассматриваемая сортировка в худшем случае требует не менее [log2 n!l сравнений.


§ 30. Классы P и NP



Будем говорить, что точка (x ъ x 2,..., xn) некоторого сектора со­гласуется с листом l дерева D, если соответствующая дереву D сор­тировка массива x ъ x 2,..., xn заканчивается в листе l.

В том случае, когда D имеет не менее n\ листьев, мы, рассуждая так же, как в примере 14.2, получаем, что высота дерева D (слож­ность сортировки по числу сравнений) не может быть меньше чем [log2 n\]. Допустим, что число листьев дерева D меньше чем n\. Тогда найдется лист l такой, что имеются точки в двух разных множествах S[, S'j, согласующиеся с l. В силу свойства (R1) найдутся непустые открытые множества Uг с S[, U2 с S ' такие, что любая точка, принад­лежащая какому-то одному из них, согласуется с листом l. Если ли­сту l приписан массив (29.2), то для некоторых целых k,s, t, не мень­ших единицы и не превосходящих n, таких, что s^t, будем иметь Gk (x 1, x 2,..., xn) = xs при (x1,x2,...,xn)&U1 и Gk (x 1, x 2,..., xn)= xt при {xъx2,...,xn)&U2. Но значения рациональной функции на одном из множеств Uъ U2 однозначно определяют значения этой рациональ­ной функции всюду на Uг и U2 (это выводится из свойства (R2)), поэтому из того, что, например, Gk (x ls x 2,..., xn) = xs на Uъ следует, что Gk (x l5 x 2,..., xn) = xs на U2. Но мы знаем, что Gk (x l5 x 2,..., xn) =xt на U2. Так как s / t, то в любом секторе xsфxt, в частности, это так и в секторе, подмножеством которого является U2. Противоречие. □

Из доказанного предложения следует, что f (n) = n log n является асимптотической нижней границей сложности алгоритмов сортиров­ки массивов длины n попарно различных вещественных чисел c по­мощью сравнений и четырех арифметических операций. По теоре­ме 29.1 эта функция является также асимптотической нижней оцен­кой для алгоритмов построения выпуклой оболочки.

Любой алгоритм построения выпуклой оболочки с помощью арифметических операций и сравнений, который имеет сложность O (n log n), является оптимальным по порядку сложности по общему числу операций, и его сложность есть G(n log n). Алгоритм Грэхема построения выпуклой оболочки (пример 3.1) является оптималь­ным по порядку сложности по общему числу операций, коль скоро используемая им сортировка имеет сложность O (n log n) по числу сравнений.

§ 30. Классы Р и NP

Цель этого и следующих параграфов—дать общее, без многих дета­лей, представление о некоторых проблемах, касающихся алгоритмов



Глава 7. Сводимость


полиномиально ограниченной сложности (см. § 5, определение 5.2) или, другими словами, полиномиальных алгоритмов.

Подход, согласно которому алгоритмы подразделяются на поли­номиальные и все остальные, далеко не всегда является продуктив­ным с практической точки зрения (алгоритм со сложностью п100, где п —размер входа, вряд ли найдет массовое применение), но при бо­лее широком взгляде этот подход имеет свою логику. Если для ре­шения важной задачи никак не удается найти алгоритм, сложность которого хотя бы при каком-нибудь показателе d допускала бы оцен­ку 0{nd), то сам вопрос о существовании такого алгоритма нельзя назвать праздным.

Иногда бывает очень трудно установить принадлежность или со­ответственно непринадлежность задачи классу P, состоящему из та­ких задач, для которых существует полиномиальный алгоритм ре­шения. В классе P выделяют подкласс Р тех вычислительных задач, где результатом может быть лишь 1 или 0, т. е. фактически «да» или «нет», что типично для задач распознавания. К этим задачам относит­ся, например, задача распознавания выполнимости булевой форму­лы, задача распознавания существования в графе гамильтонова цик­ла и т. д. Неизвестно, существуют ли полиномиальные алгоритмы их решения, но сравнительно легко устанавливается их принадлежность специальному классу NP. Определение класса NP будет дано ниже, из него будет следовать, что Р с NP. Если бы было доказано, что Р = NP, то в широком спектре случаев мы бы легко устанавливали принад­лежность задачи распознавания классу Р, т. е. устанавливали бы су­ществование полиномиального алгоритма распознавания; его разра­ботка—это отдельный вопрос. Но равенство P = NP по сей день не доказано, и есть основания подозревать, что оно неверно. Возникает проблема Р = NP, о которой мы тоже будем говорить.

Вначале скажем о ряде ограничений, налагаемых на рассматрива­емые задачи. Во-первых, речь будет идти о задачах распознавания тех слов в данном алфавите Л, которые принадлежат оговоренному под­множеству (языку) L множества всех слов Л* в этом алфавите. Все объекты, о которых идет речь в рассматриваемых задачах, должны быть представлены (закодированы) словами в алфавите Л, входом алгоритма является одно-единственное слово в алфавите Л. Размер входа х —это всегда длина |х| (число букв) в слове х. Вычислитель­ные затраты должны учитываться достаточно тщательно, неучтенной может оставаться лишь незначительная часть операций (во всяком случае, допускающая полиномиальную верхнюю оценку). Если име­ется в виду модель вычислений РАМ, то предполагается, что вычисле-


§ 30. Классы PuNP



ния выполняются на базе конечного множества операций с тем или иным числом операндов, преобразующих буквы алфавита Л в буквы алфавита Л; исследуется сложность по числу этих операций — подо­бие битовой сложности. Требуется также учет числа присваиваний в ходе выполнения алгоритма.

Таким образом, содержательная задача распознавания (например, задача существования пути с фиксированными свойствами в задан­ном графе) должна быть для обсуждения ее принадлежности классам Р и NP переформулирована в виде задачи распознавания принадлеж­ности заданного слова некоторому языку. Такая формализация необ­ходима потому что одна и та же математическая идея при одном из двух разных способов представления данных может приводить к по­линомиальному алгоритму, а при другом—нет.

Часто при обсуждении проблемы Р = NP исходят из машины Тью­ринга (МТ) как модели вычислений, при этом вычислительные за­траты измеряются числом тактов работы машины. Это связано с тем, что модель МТ удобнее модели РАМ при доказательстве разного ро­да теорем об алгоритмах, в особенности — теорем о невозможности алгоритмов с теми или иными свойствами. Но модель РАМ ближе, чем МТ, к реальным вычислительным устройствам, и хотелось бы, чтобы результаты исследования классов Р и NP, проводимые на ос­нове модели МТ, сохраняли свою значимость для модели РАМ. Их значимость действительно сохраняется, о чем будет сказано в конце этого параграфа, а до той поры мы, как правило, не будем делать уточнений относительно модели вычислений. Но, повторяем, опера­ции преобразования букв, входящих в слова, должны подсчитываться тщательно.

По сути дела, в каждой задаче распознавания принадлежности слова языку L обсуждается некоторый предикат и(х), областью опре­деления которого является все множество Л*, и и (х) = 1, если и толь­ко если х е L. В дальнейшем нам часто будет удобно говорить не о языках, а о предикатах (по существу, это, конечно, одно и то же, но предикаты несколько предпочтительнее из-за того, что к ним можно применять логические операции, кванторы и т.д.). Соответственно, мы будем говорить о принадлежности предиката классу Р и т. д. Ино­гда нам будет удобно рассуждать о предикатах не одной, а нескольких таких переменных, которые принимают значения в Л*. В этих случа­ях без специального упоминания предполагается, что в алфавит Л включены некоторые разделители: если, скажем, разделитель «запя­тая» (т.е. «,») включен в Л, то v (x, у) имеет один аргумент х, у, где х и у суть слова в Л*, не содержащие разделителя «,» (кавычки по-



Глава 7. Сводимость


ставлены, чтобы не нарушать пунктуацию фразы). Соответственно, длиной пары слов x, y является | x | + | y\ + 1.

Теперь обсудим класс предикатов NP. Само его странное обо­значение NP есть не что иное, как аббревиатура от английских слов nondeterministic polynomial —недетерминированный полиноми­альный. Изначальное определение класса NP, появившееся в теории сложности в начале 70-х годов XX столетия, опиралось на понятие недетерминированного алгоритма1. Позднее появилось эквивалент­ное определение, не прибегающее к недетерминированности.

Определение 30.1. Заданный на Л* предикат u (x) принадлежит классу NP, если существуют предикат R (x, y) е Р и полином p{n) та­кие, что u{x) можно представить в виде

u{x) = З y еЛ,;| y К p (| x |) R x, y). (30.1)

В том случае, когда u (x) = 1, слово y называется сертификатом сло­ва x.

Пример 30.1. Булева формула f (x l5 x 2,..., xn) выполнима, если су-

ществуют значения x °, x °,..., xn ° g {0,1} переменных xг,x2,...,xn та-

кие, что

f (x °, x °,..., xn °) = 1;

в противном случае булева формула невыполнима. Так, булева фор­мула

­(­ x iV x a) (30.2)

выполнима, так как ее значение при xг = 1, x 2 = 0 равно 1, а булева формула xг Л ­ x! одной переменной xг невыполнима, так как и при xг = 1, и при xг = 0 значение этой формулы есть 0.

Любая булева формула может быть закодирована словом в алфа­вите

Л1 = { x,0,1, (,),­, л, V},

для этого переменные xг,x2,xъ,... кодируются как x l, x 10, x ll,...: вслед за буквой x помещается номер переменной в двоичной систе­ме. Формула (30.2) кодируется как ­(­ x l V x lO), при этом, например, слово )xlx­ в алфавите Аг не является кодом какой-либо булевой формулы. Можно предложить простой алгоритм, который проверяет, является ли данное слово в алфавите Лх кодом какой-либо булевой формулы, а также алгоритм, который по данному коду некой буле­вой формулы и данным булевым значениям (нулям и единицам) тех

См., например, [13].


§ 30. Классы PuNP



переменных, которые фактически присутствуют в этой формуле, на­ходит ее значение. На основе этих двух алгоритмов можно построить алгоритм, который по данному слову хёЛ* и слову у, являющему­ся конечной последовательностью нулей и единиц, проверяет, верно ли, что

(a) х является кодом некоторой булевой формулы,

(b) значение закодированной словом х булевой формулы при тех значениях фактически присутствующих в ней переменных, которые последовательно указаны в слове у, равно 1.

(Число нулей и единиц в слове у равно числу переменных, факти­чески присутствующих в закодированной булевой формуле: напри­мер, в булевой формуле x 3V x 15 фактически присутствуют две пере­менные, хотя для них и использованы большие индексы; сертифика­том выполнимости этой формулы служит, например, слово 11.) Та­кой алгоритм можно сделать полиномиальным. Это говорит о том, что при указанном способе кодирования булевых формул предикат, распознающий выполнимость булевой формулы, принадлежит клас­су NP, — сертификатом является слово у, указывающее значения пе­ременных, при которых значение булевой формулы равно 1, а зна­чение предиката R{x,у), входящего в (30.1), вычисляется с помощью алгоритма, проверяющего (a) и (b). Полином р{п) можно взять рав­ным п, так как |j| ^ |х| в силу того, что у содержит значения только тех переменных, которые фактически присутствуют в булевой фор­муле.

Неизвестно, принадлежит ли классу Р предикат на словах из Л*, распознающий выполнимость. Алгоритмы проверки выполнимости, основанные на переборе всех возможных комбинаций значений пе­ременных хъ х2,..., хп, не являются полиномиальными.

Рассмотренный пример дает мотивацию определения 30.1 и про­ясняет смысл понятия «сертификат». Отметим два важных момента.

1) Перебор всех возможных слов у, |у|^р(|х|), для проверки равенства и(х) = 1 с помощью (30.1) может потребовать рассмотре­ния экспоненциального по отношению к |х| числа возможностей. Но определение 30.1 требует лишь, чтобы при и(х) = 1 сертификат суще­ствовал, вопрос же о сложности его построения не затрагивается.

2) Если и е NP, то равенство u (x) = 0 означает, что соответству­ющего сертификата для слова у не существует. Другими словами, принадлежность х множеству истинности предиката подтверждается сертификатом, а непринадлежность —отсутствием сертификата. По-



Глава 7. Сводимость


этому возможные значения 1 и 0 не являются симметричными или равноправными; как показано в примере 30.1, предикат, распозна­ющий выполнимость булевой формулы, принадлежит NP, но мы не можем на основе только этого утверждать, что и предикат, распо­знающий невыполнимость булевой формулы, принадлежит NP (какое слово могло бы быть сертификатом невыполнимой формулы?).

Предложение 30.1. Р с NP.

Доказательство. Определим Д(х, у) = и (х) в (30.1) при любом сло­
ве у и будем считать пустое слово сертификатом любого х такого,
что и(х) = 1; в качестве полинома р берем нулевой полином. □

Продолжим рассмотрение примеров.

Пример 30.2. Согласно результатам Агравала, Кайала и Саксены (пример 22.2), классу Р принадлежит предикат, определенный на сло­вах в алфавите {0,1} и принимающий значение 1, если и только если слово является записью простого числа. Рассмотрим близкую задачу. Для заданных п, fceN+, к < п, выяснить, имеется ли у числа п дели­тель Z такой, что 1 < Z s= к. Числа п и к задаются в двоичной системе; используя разделитель «;», мы можем кодировать пару п, к словом в алфавите

Л2 = {0,1,;}.

Если слово х кодирует указанным образом пару п, к, то в качестве сертификата можно взять двоичную запись некоторого конкретного делителя I, 1 < I < к. Тогда входящий в (30.1) предикат Д(х, у) должен принимать значение 1, если и только если

(a) х является кодом пары п, к, удовлетворяющей сформулирован­ным выше условиям,

(b) у является двоичной записью некоторого числа Z такого, что Z ^ к и при этом Z | к.

Существует алгоритм проверки условий (a), (b), вычислительные за­траты которого ограничены величиной С(|х| + |у|)2, где С — некото­рая константа. Можно в (30.1) положить р{п) = п, так как Ык. Это говорит о том, что рассматриваемый предикат на Л* принадлежит классу NP. Неизвестно, принадлежит ли он также классу Р.

Пример 30.3. В связи с изучением классов Р и NP рассматрива­ется большое число задач на графах, при этом графы, как правило, задаются матрицами смежности. В алфавите Л2 матрица смежности


§ 31. Существование задач распознавания, не принадлежащих Р 201

кодируется словом, в котором строки матрицы выписаны одна за дру­гой через разделитель «;». Легко видеть, что классу NP принадлежит предикат, принимающий значение 1, если и только если слово яв­ляется кодом графа, обладающего гамилътоновым циклом, т. е. цик­лом, проходящим по одному разу через все вершины графа (рис. 24);




 


Рис. 24. а) Гамильтонов цикл; б) граф без гамильтонова цикла.

сертификатом может, например, являться последовательность двоич­ных номеров вершин гамильтонова цикла. Эти номера выписываются в одно слово через разделитель «;».

Аналогичным образом, классу NP принадлежит предикат, прини­мающий значение 1, если и только если слово является кодом графа, обладающего кликой с заданным числом т вершин. При этом кли­кой называется набор т вершин, любые две из которых соединены ребром (в изображенном на рис. 24а графе имеется несколько клик с тремя вершинами, но нет ни одной с четырьмя вершинами). Исход­ные данные кодируются словом в алфавите Л2: сначала идет матрица смежности, записанная так, как было сказано выше, затем, после раз­делителя «;»,—число т в двоичной системе. Эта задача принадлежит классу NP, сертификатом может быть слово, составленное из двоич­ных номеров вершин клики, перечисленных через разделитель «;».

Относительно обоих этих предикатов на Л2 неизвестно, принад­лежат ли они классу Р.




Поделиться с друзьями:


Дата добавления: 2014-01-11; Просмотров: 457; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.072 сек.