Доказательство результатов о сильной NP-полноте Наиболее прямой путь доказательства сильной NP-полноты состоит в том, чтобы для некоторого полинома p доказать NP-полноту задачи Пp. Например, задача КОММИВОЯЖЁР представляет собой задачу с числовыми параметрами, её NP-полнота доказывается сведением к ней задачи ГЦ. При этом сведении получаются только такие индивидуальные задачи, для которых расстояние между вершинами графов равно 1 или 2, а граница B равняется числу городов m. Таким образом, если взять в качестве Max(I) максимум из значения границы B и наибольшего расстояния между городами и положить Length( I ) m log 2 B log 2 d (i, j ) , (i, j ) то все индивидуальные задачи, получаемые в этой сводимости, будут удовлетворять соотношению 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 и s(a) mB . aA Вопрос: Можно ли A разбить на m непересекающихся подмножеств S1, S2, …, Sm, таких, что i 1 , m s(a) B . Ограничения на размеры элементов aSi приводят к тому, что каждое из множеств Si содержит ровно по три элемента. Доказательство сильной NP-полноты для данной задачи проходит в два этапа. Сначала доказывается, что близкая к ней задача 4-РАЗБИЕНИЕ NPполна в сильном смысле. 4-РАЗБИЕНИЕ формулируется аналогично, только |A|=4m, B/5<S(a)<B/3, т.е. каждое из множеств разбиения будет содержать по четыре элемента. Докажем NP-полноту в сильном смысле задачи 3-РАЗБИЕНИЕ. Доказательство принадлежности к классу NP - самостоятельно. Сначала сведём задачу 3-С к задаче 4-РАЗБИЕНИЕ. Для этого в задаче 4-РАЗБИЕНИЕ будем рассматривать только те индивидуальные задачи, для которых Max( I ) 216 | A | 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] и u[i, j ] . Их веса s ' (u[i, j ]) 4(6 B s (ai ) s (a j )) 2, s ' (u[i, j ]) 4(5B s (ai ) s (a j )) 2. Наконец, для 1k8n2-3n имеется «заполняющий» элемент u k* размера s’( u k* )=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 ] }. Можно было использовать другие спаривающие элементы: u[k , l ] вместо u[i, j], u[k , l ] вместо u [i, j]. Сумма размеров элементов этих множеств равна B’, это следует из того, что s(ai)+s(aj)+s(ak)+s(al)=B. Выполняя указанную процедуру для каждого из n 4-множеств, мы получим 2n 3-множеств, последние будут содержать все «регулярные» элементы, а также n связных пар, состоящих из «спаривающих» элементов. После этого останутся незаписанными в 3-множество 8n2-3n пар «спаривающих» элементов и столько же «заполняющих» элементов. Поскольку при построении сумма размеров каждой пары «спаривающих» элементов равна 44B+4=B’-20B, то каждая такая связанная пара может быть сгруппирована с одним из оставшихся заполняющих элементов, в результате мы получаем 3-разбиение. Обратно: Пусть построенная задача имеет 3-разбиение, требуется доказать, что исходная задача имеет 4-разбиение. Если мы будем рассматривать остатки при делении на 4 размеров элементов, то мы увидим, что ни одно из 3-множеств не может содержать по 3 спаривающих элемента. Ни одно из 3-множеств не может содержать два регулярных и один заполняющий элемент. Таким образом, заданное 3разбиение содержит 2n 3-множеств, каждое из которых содержит 2 регулярных и один спаривающий элемент, кроме того, имеется 8n2-3n 3множеств, которые содержат 2 спаривающих и 1 заполняющий элемент. Рассмотрим любое из 3-множеств последнего типа. Пусть u[i, j] – один из спаривающих элементов 3-множества. Если другой спаривающий элемент – u[s, t], то его размер равен размеру элемента u[i, j ] (по построению весов элементов и величине B’). Поэтому элементы u[s, t] и u[i, j ] могут быть поменяны местами (в соответствующих 3-множествах). Описанную операцию по замене можно повторять до тех пор, пока не получится 3-разбиение, в котором каждый заполняющий элемент окажется в одном 3-множестве со связанной парой u[i, j], 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-РАЗБИЕНИЕ, в которой величина max s(a) ограничена полиномом от a A размерности задачи, однако конкретный вид полинома в этой оценке несущественен. Для нас было бы удобно, если бы была возможность оперировать со сводимостью подобного типа без необходимости вдаваться в детали подзадач и полиномов. Этого можно достичь с помощью следующих определений и леммы. Определение 1. Пусть П и П’ – произвольные задачи распознавания; DП и DП’ – множества их индивидуальных задач; YП и YП’ – множество индивидуальных задач с ответом “да”; Max, Length, Max’, Length’ – соответствующие функции максимума и длины записи. Говорят, что задача П псевдополиномиально сводится к задаче П’, если существует функция f : DП DП’ , обладающая следующими свойствами: 1) IDП, IYП f(I)YП’ 2) Функция f может быть вычислена за время, ограниченное полиномом от двух переменных Max(I), Length(I). 3) Существует полином q1 такой, что для всех IDП справедливо неравенство: q1(Length’(f(I))) Length(I). 4) Существует такой полином q2 от других переменных, что для всех индивидуальных задач IDП выполнено неравенство: Max’(f(I)) q2(Max(I), Length(I)). Лемма. Если задача П NP-полна в сильном смысле, а задача П’NP и П – псевдополиномиально сводится к задаче П’, то П’ – NP-полная в сильном смысле задача. Доказательство. Пусть f – функция, реализующая псевдополиномиальную сводимость; q1, q2 - соответствующие полиномы, описанные в определении. Без потери общности можно предположить, что полиномы q1 и q2 имеют целые положительные коэффициенты. Поскольку задача П – NP-полна в сильном смысле, то существует такой полином p, что задача Пp является NP-полной. Полином p можно выбрать так, что у него будут только целые неотрицательные коэффициенты. Определим полином p̂ следующим образом: pˆ ( x) q2 ( p(q1 ( x)), q1 ( x))). Справедливо следующее: функция f, будучи ограниченной для индивидуальной задачи из множества П pˆ , осуществляет полиномиальные сведения задачи П pˆ к задаче П p̂' , что доказывает NP-полноту задачи П p̂' . Сначала проверим, что любая индивидуальная задача IПp при отображении f переходит в индивидуальную задачу П p̂' из П pˆ . По определению задачи П pˆ и неравенств, которыми удовлетворяют многочлены 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))))= p̂ (Length’(f(I))). Таким образом, индивидуальная задача f(I) П p̂' . Из первого и второго условия псевдополиномиальной сводимости и того, что для любой индивидуальной задачи IПp, Max(I) p(Length(I)) следует, что f удовлетворяет требованиям к полиномиальной сводимости. Следовательно, задача П p̂' NP-полная, а задача П’ NP-полная в сильном смысле, лемма доказана. Доказанная лемма освобождает от необходимости иметь дело с конкретными подзадачами Пp при доказательстве результатов о сильной NP- полноте, но при этом возникает необходимость проверять дополнительные условия на функцию f, осуществляющую псевдополиномиальную сводимость. Рассмотрим их повнимательнее. Условие 1 совпадает с одним из условий определений обычной полиномиальной сводимости. Условие 2 почти совпадает со вторым условием, однако оставляет несколько больше свободы при выборе сложности функции. Условие будет выполнено почти для всех сводимостей, поскольку оно требует лишь того, чтобы сводимость не приводила к значительному уменьшению длины входа. Наиболее важным условием определения является определение 4. Оно требует, чтобы величина наибольшего числа в конструируемой индивидуальной задаче не росла экспоненциально, в зависимости от функции Max и Length в индивидуальной исходной задаче. Например, ту конструкцию, которую мы использовали при доказательстве сильной NPполноты 3-РАЗБИЕНИЕ, можно рассматривать как псевдополиномиальное сведение.