Доказательство результатов о сильной NP

advertisement
Доказательство результатов о сильной 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 элементов, граница BN, размеры
всех элементов aA s(a)N, причём B/4<s(a)<B/2 и  s(a)  mB .
aA
Вопрос: Можно ли A разбить на m непересекающихся подмножеств S1,
S2, …, Sm, таких, что i 1 , m  s(a)  B . Ограничения на размеры элементов
aSi
приводят к тому, что каждое из множеств 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.
Наконец, для 1k8n2-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)  IDП, IYП  f(I)YП’
2) Функция f может быть вычислена за время, ограниченное
полиномом от двух переменных Max(I), Length(I).
3) Существует полином q1 такой, что для всех IDП справедливо
неравенство: q1(Length’(f(I)))  Length(I).
4) Существует такой полином q2 от других переменных, что для
всех индивидуальных задач IDП выполнено неравенство:
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-РАЗБИЕНИЕ, можно рассматривать как псевдополиномиальное
сведение.
Download