
- •Лекция 1 Теория алгоритмов и математическая логика Функция
- •Словарные функции
- •Вычислимые функции и машина Тьюринга
- •Лекция 2 Словарное представление машины Тьюринга
- •Проблема остановки
- •Проблемы пустой ленты и метод сведения
- •Лекция 3 Проблема зацикливания
- •Введение в теорию np-полных задач Задачи, алгоритмы и сложности
- •Трудно решаемые задачи
- •Лекция 4 np – полные задачи
- •Задачи распознавания
- •Примеры массовых задач
- •Лекция 5 Детерминированные машины Тьюринга и класс p
- •Недетерминированное вычисление и класс np
- •Взаимоотношение между классами p и np
- •Лекция 6 Полиномиальная сводимость и np-полные задачи
- •Теорема Кука
- •Лекция 7 Шесть основных np-полных задач.
- •Некоторые методы доказательства np-полноты.
- •Сужение задачи.
- •Локальная замена.
- •Лекция 8
- •Лекция 9
- •Лекция 10 Доказательство результатов о сильной np-полноте
- •Лекция 11
- •Лекция 12 основы математической логики
- •Основные логические законы
- •Основные правила обращения с кванторами
- •Лекция 13
- •Минимизация булевых функций
- •Лекция 14 Стандартные формулы преобразования булевых функций
- •Геометрическая интерпретация
- •Построение простых импликантов
Лекция 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] и.
Их веса
Наконец, для
1k8n2-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-разбиение, можно рассматривать как псевдополиномиальное сведение.