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

Некоторые методы доказательства np-полноты.

Имеется несколько общих приёмов из большого количества подходов доказательства NP-полноты, которые широко используются. Эти приёмы:

а) Сужение задачи

б) Локальная замена

в) Построение компонент

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

Сужение задачи.

Данный метод является самым простым и широко используемым. Если мы доказываем, что некоторая задача ПNPявляетсяNP-полной, то здесь пытаемся установить, чтоПявляется более общим случаем некоторой известнойNP-полной задачиП’. Сущность метода заключается в том, чтобы указать дополнительное ограничение, которое требуется наложить на индивидуальные задачи изП, чтобы получилась в результате этого сужения задача изП’. При этом не требуется, чтобы возникающая новая задача была точной копией известнойNP-полной задачи. Таким образом, метод сужения можно рассматривать просто как иной взгляд на задачу, а не стандартный способ доказательства.

ПРИМЕРЫ доказательства методом сужения.

Рассмотрим задачу ТОЧНОЕ ПОКРЫТИЕ 3-МНОЖЕСТВАМИ (ТП-3).

Условие:Задано конечное множествоX, такое, что|X|=3q, и семейство Cтрёх элементных подмножеств множестваX.

Вопрос:Верно ли, что семействоCсодержитточное покрытиемножестваX, т.е. подсемействоCC, что каждый элемент изXсодержится ровно в одном элементе изC.

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

Заметим, что любую индивидуальную задачу 3-С можно рассматривать как индивидуальную задачу из ТП-3, просто считая, что Mсостоит из неупорядоченных троек элементов множестваXYZ. При этом 3-сочетания для индивидуальной задачи из 3-С взаимно однозначно соответствуют точным покрытиям соответствующей индивидуальной задачи из ТП-3. Т.о. задача 3-С есть ограниченная версия задачи ТП-3, что доказываетNP-полноту задачи ТП-3.

Задача РЮКЗАК.

Условие:Задано конечное множествоU, веса элементовs(u)N, стоимости элементовv(u)N, общие ограничениеBNна размеры, стоимостьkN.

Вопрос:Существует ли подмножествоUU, такое, что .

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

Если ограничится рассмотрением только таких задач, в которых для всех uUs(u)=v(u) и , то мы придём к задаче РАЗБИЕНИЕ, которая являетсяNP-полной, что доказываетNP-полноту.

Заметим, что описанный метод хорошо работает тогда, когда имеется обширный список известных NP-полных задач. Многие возникающие на практике задачи представляют собой часто усложнённые задачи из списка имеющихсяNP-полных задач.

Локальная замена.

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

Задача РАЗБИЕНИЕ НА ТРЕУГОЛЬНИКИ.

Условие:Задан графG=(V,E)число вершин которого кратно 3, т.е. |V|=3q.

Вопрос: Существует ли такое разбиениеV наqнепересекающихся подмножествV1,V2, …, Vq, каждое из которых содержит ровно 3 элемента, и для каждогоVi={vi1, vi2, vi3} рёбра {vi1, vi2}, {vi2, vi3}, {vi3, vi1} принадлежатE.

Сведём задачу ТП-3 к задаче РАЗБИЕНИЕ НА ТРЕУГОЛЬНИКИ.

Пусть множество X(|X|=3q) и семействоCего трёхэлементных подмножеств образуют условие произвольной индивидуальной задачи из ТП-3. Построим графG=(V,E), такой, что|V|=3qи для него существует искомое разбиение тогда и только тогда, когда семействоCсодержит точное покрытие множества.

Основными модулями рассматриваемой индивидуальной задачи из ТП-3 будут три трёхэлементные подмножества изC. Операция локальной замены превращает каждое элементарное подмножествоCi=(xi, yi, zi)C в наборEi, состоящий из 18 рёбер. Это преобразование можно изобразить следующим образом:

Таким образом, формируемый граф Gбудет таким:

Заметим, что по построению только вершины из множества X могут быть инцидентны более чем одному множествуEi. Кроме того, количество вершин|V|=3q+9|С|=3q, где С– семейство трёхэлементных подмножеств.

Индивидуальную задачу РАЗБИЕНИЕ НА ТРЕУГОЛЬНИКИ можно построить за полиномиальное время из задачи ТП-3. Если c1, c2, …, cq– трёхэлементные подмножества изC, которые образуют ТП-3, то соответствующее разбиениеVна треугольникиV1, V2, …, Vq, строится следующим образом. Еслиci=(xi, yi, zi)– элемент точного покрытия, то из множестваEi выбираются элементы:(xi, ai[1], ai[2]) (yi, ai[4], ai[5]) (zi, ai[7], ai[8])(ai[3], ai[6], ai[9]).Если же элементci=xi, yi, ziне входит в точное покрытие, то из множестваEiвыбираются тройки(ai[1], ai[2], ai[3]) (ai[4], ai[5], ai[6]) (ai[7], ai[8], ai[9]).Такой выбор элементов обеспечивает, что каждый элемент из множестваVсодержится ровно в одном трёхвершинном подмножестве рассматриваемого разбиения.

Обратно, если V=V1V2V3Vq– произвольное разбиение графаGна треугольники, то соответствующее точное покрытие множестваXполучается, если выбирать те подмножестваci, для которых (ai[3], ai[6], ai[9])=Vjпри некоторомj, 1 ≤jq.