Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metodicheskie_posobiya_i_rekomendatsii.doc
Скачиваний:
5
Добавлен:
01.04.2025
Размер:
526.85 Кб
Скачать

7. Пример доказательства np- полноты задачи методом сведения.

Пусть Г =(Х,U) - конечный граф , Х - множество вершин графа,

U - множество дуг. Не теряя общности, можно обозначить вершины натуральными числами: Х = {1,2,..., n}, а дуги задать булевой матрицей такой, что , если дуга ( i,j) имеется в графе Г, и , если дуги ( i,j) в графе Г нет.

Граф называют полным, если любые его две вершины соединены

дугой. Граф называют подграфом графа Г, если и .

Задача о полном подграфе состоит в том, чтобы по заданному

графу Г выяснить, существует ли в Г полный подграф с верши-нами.

Теорема 7.1. Задача о полном подграфе является NP- полной, Доказательство.

Для удобства обозначим задачу о полном подграфе . Начальной

информацией о задаче является число и матрица а) Докажем, что  NP. Для этого выписываем N- программу:

/* Предположим, k-полный подграф существует */

УСПЕХ := TRUE;

/* Недетерминированный выбор k вершин */

Set := [1..n];

for i := 1 to k dо

begin

node:= сhoose(Sеt);

v[i]:= node;

Set:=Set\(nodе);

еnd;

/* Полиномиальная проверка */

for i := 1 tо k-1 do

for j := i+1 tо k dо

if u(v[i] ,v[j])=0 then УСПЕХ:=FALSE;

write(УСПЕХ);

Очевидно, что сложность приведенной N-программы может быть оценена как О(n(n-1 )/2) , т.е. полиномиально, откуда следует, что

 NP.

б) Докажем, что  . Поскольку мы убедились, что

-- NP- полная задача, то из полиномиальной сводимости  будет следовать полиномиальная сводимость любой задачи класса NP к .

Пусть

есть произвольная k скобочная КНФ. Поставим во взаимно-однозначное соответствие каждому литералу из Ф вершину некоторого графа Г. Этот граф будет содержать вершин. Пометим для удобства каждую вершину соответствующим ей литералом и порядковым

номером скобки, в которую этот литерал входит, т.е. парой

Соединим дугой те, те и только те пары полученных вершин

и

для которых одновременно выполняются два условия:

а) (литералы принадлежат разным скобкам);

б) (один литерал не является отрицанием другого).

Таким образом, построен граф Г =(X,U) с указанными вершинами и дугами.

Предположим, - что Ф - выполнима и -набор, на котором Тогда в каждом наборе КНФ Ф найдется хота бы один литерал, обращающийся в единицу. Выберем произвольно по одному такому (обращающемуся в единицу) литералу из каждой скобки. Будет выбрано ровно k литералов. Рассмотрим соответствующие именно этим литералам k вершин графа Г и убедимся, что любая пара из них соединена дугой. Действительно, пометки этих вершин удовлетворяют условиям а) и б), т.к. литералы принадлежат разным скобкам и одновременно принимают единичное значение, поэтому один из них не может быть инверсией другого.

Обратно, пусть граф Г полный подграф с k вершинами

зададим переменным с номерами значения:

, а остальные переменные,

если k < n , зададим произвольно, получая набор . Тогда

Поскольку эти литералы соответствуют вершинам полного подграфа, то они относятся к разным скобкам КНФ Ф , откуда следует, что . По построению графа Г очевидно, что преобразование задачи выполни-мости КНФ в задачу может быть осуществлено с полиномиальной сложностью.

Теорема доказана.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]