Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции 2010.doc
Скачиваний:
56
Добавлен:
20.06.2014
Размер:
1.53 Mб
Скачать

Лекция 10 Доказательство результатов о сильной np-полноте

Наиболее прямой путь доказательства сильной NP-полноты состоит в том, чтобы для некоторого полиномаpдоказатьNP-полноту задачиПp. Например, задачакоммивояжёрпредставляет собой задачу с числовыми параметрами, еёNP-полнота доказывается сведением к ней задачи ГЦ. При этом сведении получаются только такие индивидуальные задачи, для которых расстояние между вершинами графов равно 1 или 2, а границаBравняется числу городовm. Таким образом, если взять в качествеMax(I) максимум из значения границыBи наибольшего расстояния между городами и положить

,

то все индивидуальные задачи, получаемые в этой сводимости, будут удовлетворять соотношению Max(I)Length(I), это означает, что мы имеем соответствующее свойство задачи. Задачакоммивояжёрполучается при сводимости, обладает свойством (дляNP-полной в сильном смысле задачи), указанным в неравенстве, и при этом являетсяNP-полной. Следовательно, задача КОММИВОЯЖЕРNP-полна в сильном смысле, значит, псевдополиномиальный алгоритм для неё не существует.

Для того, чтобы доказать, что некоторая задача NP-полна в сильном смысле, полезно иметь задачу с числовыми параметрами,NP-полную в сильном смысле, и с её помощью доказывать результаты о сильнойNP-полноте других задач. Такой задачей будет седьмая основнаяNP-полная задача3-разбиение.

Условие:Заданы множествоAиз3mэлементов, границаBN, размеры всех элементовaA s(a)N,причёмB/4<s(a)<B/2и.

Вопрос:Можно лиAразбить наmнепересекающихся подмножествS1, S2, …, Sm, таких, что. Ограничения на размеры элементов приводят к тому, что каждое из множествSiсодержит ровно по три элемента.

Доказательство сильной NP-полноты для данной задачи проходит в два этапа.

Сначала доказывается, что близкая к ней задача 4-разбиениеNP-полна в сильном смысле.4-разбиениеформулируется аналогично, только|A|=4m,B/5<S(a)<B/3, т.е. каждое из множеств разбиения будет содержать по четыре элемента.

Докажем NP-полноту в сильном смысле задачи3-разбиение.

Доказательство принадлежности к классу NP - самостоятельно.

Сначала сведём задачу 3-Ск задаче4-разбиение. Для этого в задаче4-разбиениебудем рассматривать только те индивидуальные задачи, для которых. В этом случае у нас сохраняется ограниченность размеров элементов полиномом от общего числа элементов.

Пусть A={a1, a2, …, a4n}, границаB, размеры элементовs(ai), - задают произвольную индивидуальную задачу из4-разбиение. Для размеров выполняется условиеB/5<s(a)<B/3,s(ai)216|A|4. Соответствующая индивидуальная задача из3-разбиениебудет содержать24n2-3nэлементов: по одному для каждого элемента изA, по два элемента для каждой пары элементов изAи8n2-3n«заполняющих» элементов. Каждому отдельному элементу из множестваAсопоставим регулярный элементwi, имеющий размерs’(wi)=4(5B+s(ai))+1. Каждой паре элементов (ai, aj)Aсоответствует два «спаривающих» элементаu[i, j] и. Их веса

Наконец, для 1k8n2-3nимеется «заполняющий» элементразмераs’()=20B. ГраницаBконструируемой индивидуальной задачи3-разбиениебудетB’=64B+4.

Остаётся показать, что такое преобразование является полиномиальным, а также, что все размеры элементов лежат в пределах B’/4<s(a)<B’/2. Сумма размеров всех элементов равнаB’(2n2-n).Поскольку размеры элементов исходного множестваAограничены величиной216|A|4, то и размеры индивидуальной задачи из3-разбиениебудут ограничены полиномом от мощностиA, это означает ограничение полиномом от числа элементов построенной задачи, т.е. и от её длины. Чтобы завершить доказательствоNP-полноты в сильном смысле, осталось показать, что в построенной индивидуальной задаче для3-разбиениеответ “да” будет тогда и только тогда, когда существует4-разбиение в сводимой задаче.

Предположим, что сводимая индивидуальная задача имеет 4-разбиение. Каждое из подмножеств имеет по четыре элемента, допустим, это будут элементы {ai, aj, ak, al}. Соответствующее ей 3-разбиение строится следующим образом: 4-множество {ai, aj, ak, al} разбивается произвольным образом на два элемента {ai, aj} {ak, al}.Искомое 3-разбиение будет содержать 3-множества: {wi, wj, u[i, j]}, {wk, wl, }.Можно было использовать другие спаривающие элементы: вместоu[i, j], вместо[i, j].Сумма размеров элементов этих множеств равнаB, это следует из того, чтоs(ai)+s(aj)+s(ak)+s(al)=B. Выполняя указанную процедуру для каждого изn4-множеств, мы получим2n3-множеств, последние будут содержать все «регулярные» элементы, а также n связных пар, состоящих из «спаривающих» элементов. После этого останутся незаписанными в 3-множество8n2-3nпар «спаривающих» элементов и столько же «заполняющих» элементов. Поскольку при построении сумма размеров каждой пары «спаривающих» элементов равна44B+4=B’-20B, то каждая такая связанная пара может быть сгруппирована с одним из оставшихся заполняющих элементов, в результате мы получаем 3-разбиение.

Обратно:

Пусть построенная задача имеет 3-разбиение, требуется доказать, что исходная задача имеет 4-разбиение.

Если мы будем рассматривать остатки при делении на 4 размеров элементов, то мы увидим, что ни одно из 3-множеств не может содержать по 3 спаривающих элемента. Ни одно из 3-множеств не может содержать два регулярных и один заполняющий элемент. Таким образом, заданное 3-разбиение содержит 2n3-множеств, каждое из которых содержит 2 регулярных и один спаривающий элемент, кроме того, имеется8n2-3n3-множеств, которые содержат 2 спаривающих и 1 заполняющий элемент. Рассмотрим любое из 3-множеств последнего типа.

Пусть u[i, j] – один из спаривающих элементов 3-множества. Если другой спаривающий элемент –u[s, t], то его размер равен размеру элемента(по построению весов элементов и величинеB). Поэтому элементыu[s, t] имогут быть поменяны местами (в соответствующих 3-множествах). Описанную операцию по замене можно повторять до тех пор, пока не получится 3-разбиение, в котором каждый заполняющий элемент окажется в одном 3-множестве со связанной паройu[i, j],. В результате этого оставшиеся спаривающие элементы входят в подмножества совместно с регулярными элементами. Некоторые из 3-множеств также разбиваются на пары, всего получаетсяnпар 3-множеств регулярных элементов.

Поскольку два спаривающих элемента в каждой такой паре оказываются связанными, сумма их размеров равна 44B+4. Поэтому сумма размеров 4 регулярных элементов, входящих в эти два 3-множества, должна быть равна 84B+4. Отсюда следует, что соответствующие 4 элемента исходного множестваAиз задачи4-разбиениеобразуют 4-множество. Следовательно,nпар 3-множеств, которые мы рассмотрели, порождают искомое 4-разбиение, ч.т.д.

Заметим, что если эту сводимость рассматривать как сводимость общей задачи 4-разбиениек задаче3-разбиение, то она не доказывала бы сильнуюNP-полноту задачи3-разбиение.Для получения результата о сильнойNP-полноте существенно рассмотрениеNP-полной подзадачи задачи4-разбиение, в которой величинаограничена полиномом от размерности задачи, однако конкретный вид полинома в этой оценке несущественен. Для нас было бы удобно, если бы была возможность оперировать со сводимостью подобного типа без необходимости вдаваться в детали подзадач и полиномов. Этого можно достичь с помощью следующих определений и леммы.

Определение 1:

Пусть ПиП’– произвольные задачи распознавания;DПиDП’– множества их индивидуальных задач;YП иYП’ – множество индивидуальных задач с ответом “да”;Max, Length, Max’, Length– соответствующие функции максимума и длины записи.

Говорят, что задача Ппсевдополиномиально сводится к задачеП’, если существует функцияf : DП DП’, обладающая следующими свойствами:

IDП, IYП f(I)YП

Функция fможет быть вычислена за время, ограниченное полиномом от двух переменныхMax(I), Length(I).

Существует полином q1такой, что для всех IDПсправедливо неравенство:q1(Length’(f(I))) Length(I).

Существует такой полином q2от других переменных, что для всех индивидуальных задачIDПвыполнено неравенство:Max’(f(I)) q2(Max(I), Length(I)).

Лемма:

Если задача П NP-полна в сильном смысле, а задачаП’NP иП– псевдополиномиально сводится к задачеП’, то П’ – NP-полная в сильном смысле задача.

Доказательство:

Пусть f– функция, реализующая псевдополиномиальную сводимость;q1, q2- соответствующие полиномы, описанные в определении. Без потери общности можно предположить, что полиномыq1 и q2имеют целые положительные коэффициенты. Поскольку задачаП – NP-полна в сильном смысле, то существует такой полином p, что задачаПpявляетсяNP-полной. Полиномpможно выбрать так, что у него будут только целые неотрицательные коэффициенты.

Определим полином следующим образом:Справедливо следующее: функцияf,будучи ограниченной для индивидуальной задачи из множества, осуществляет полиномиальные сведения задачи к задаче, что доказываетNP-полноту задачи. Сначала проверим, что любая индивидуальная задачаIПp при отображенииfпереходит в индивидуальную задачуиз. По определению задачии неравенств, которыми удовлетворяют многочленыq1и q2получаем:

Max’(f(I)) q2(Max(I), Length(I))q2(p(Length(I)),

Length(I) q2(p(q1(Length’(f(I)))), q1(Length’(f(I))))=(Length’(f(I))).

Таким образом, индивидуальная задачаf(I) .Из первого и второго условия псевдополиномиальной сводимости и того, что для любой индивидуальной задачиIПp, Max(I) p(Length(I))следует, чтоfудовлетворяет требованиям к полиномиальной сводимости. Следовательно, задачаNP-полная, а задачаП’ NP-полная в сильном смысле, лемма доказана.

Доказанная лемма освобождает от необходимости иметь дело с конкретными подзадачами Пpпри доказательстве результатов о сильнойNP-полноте, но при этом возникает необходимость проверять дополнительные условия на функциюf,осуществляющую псевдополиномиальную сводимость.

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

Наиболее важным условием определения является определение 4. Оно требует, чтобы величина наибольшего числа в конструируемой индивидуальной задаче не росла экспоненциально, в зависимости от функции MaxиLengthв индивидуальной исходной задаче. Например, ту конструкцию, которую мы использовали при доказательстве сильнойNP-полноты3-разбиение, можно рассматривать как псевдополиномиальное сведение.