Основные понятия теории NP-полноты P NP? 

реклама
Основные понятия теории NP-полноты
PNP?
Задача тысячелетия…
Vinay Deolalikar…
http://tc.nsu.ru/index.php/interestly/show/6
Задачи распознавания свойств
Класс задач распознавания свойств (ЗРС) – множество
проблем, решением которых является ответ «Да» или «Нет».
ГАМИЛЬТОНОВ ЦИКЛ (ГЦ).
Задан граф G = (V, E).
Спрашивается, содержит ли G гамильтонов цикл?
Opt задаче max{f(x) : x  D} соответствует ЗРС:
« ли решение x  D: f(x)  Q?», где Q – заданное число.
КОММИВОЯЖЕР (КМ). Дано:
N – список городов;
cij – расстояния между городами i,j  N; B  R.
 ли гамильтонов контур, длина которого  B?
Задачи
Под общей (массовой) задачей (проблемой) P понимается
некоторый общий вопрос, требующий ответа.
Общая задача, как правило, содержит некоторые параметры. В
задаче КМ, например, это расстояния между городами.
Если все параметры общей задачи принимают конкретные
значения, то такую задачу называют индивидуальной.
Трудоёмкость алгоритма
Количество символов в стандартном (двоичном)
представлении данных инд. задачи XP наз. длиной входа
и обозначим L(X).
Пусть алг. A решает проблему P и tA(X) количество
элементарных операций, выполняемых алгоритмом A при
решении инд. задачи XP. Тогда функция
TA (n)  sup{t A( X ) : L( X )  n}
X P
наз. трудоемкостью алг. A.
Алг. A наз. полиномиальным, если его трудоемкость
TA (n)  O(nd ) , где d – целое положительное число
Алг., трудоемкость которого не ограничена полиномом от длины
входа, наз. экспоненциальным.
Трудоёмкость алгоритма
Пусть n – входная длина.
Алг. A1 решает задачу P с трудоемкостью O(n5).
Алг. A2 имеет трудоемкость O(2n) решения задачи P.
ЭВМ - 1 млн. опер./сек.
Тогда при n = 60 алг. A1 будет работать около 13 минут,
а алг. A2 – более 300 столетий!
Предположим, что A2 строит решение задачи размерности D на
вышеупомянутом компьютере за 1 час. Если взять компьютер,
выполняющий в 1000 раз больше операций в секунду, то
размерность задачи, которая решается алг. A2 на таком
компьютере в течение 1 часа, будет всего D + 9.97.
Полиномиальные алгоритмы – эффективные!
Экспоненциальные алгоритмы – не эффективны!
Класс NP
При анализе задачи важно знать  ли полиномиальный алг. ее
решения. Частично на этот ? отвечает теория NP-полноты.
Класс NP – это мн. ЗРС, у кот. проверка ответа «Да» для
заданного решения осуществляется за полиномиальное время.
ЗРС, соответствующие ЗР, КМ, ГЦ, …  NP.
Классы P и NPC
Класс P  NP – это мн. задач, для которых  полиномиальные
алг. решения.
Пусть задачи P,QNP. Если по любой инд. задаче XP можно
построить за полиномиальное число операций некоторую инд.
задачу Y  Q, и по opt решению задачи Y полиномиально
строится opt решение задачи X, то говорят, что P
полиномиально сводится (п.с.) к Q.
Класс NP-полных проблем (обозначим его NPC) – это подмн.
задач PNP, обладающих свойством :  задача из NP п.с. к P.
Задачи из NPC принято считать сложными.
Ни для одной из них не известен полиномиальный алг.
Класс NPC
Первой задачей, NP-полнота кот. была доказана Куком С.А.
(Cook S. A.) в 1970 г., является задача
ВЫПОЛНИМОСТЬ. Задано мн. N, и 2m его подмн. {Ci} и {Di},
i = 1, ..., m.
 ли вектор x  Bn, удовлетворяющий всем неравенствам
 x   (1  x )  1, i  1, ..., m ?
jCi
j
jDi
j
Пример: N = {1, 2}, C1 = {1}, D1 = {2}, C2 = {2}, D2 = {1}  m = 2,
x1  (1  x2 )  1 & x2  (1  x1 )  1?
( x1  x2 ) & ( x1  x2 )
( x1  x2 ) & ( x1  x2 ) & ( x1 )
Нет!
Лемма о сводимости
Лемма (О сводимости). Пусть задачи P,QNP. Тогда:
1) Если QP и задача P п.с. к Q, то PP.
2) Если PNPC и задача P п.с. к Q, то QNPC.
Доказательство. Утверждение 1) очевидно. Докажем 2).
Возьмем произвольную задачу RNP. Т.к. PNPC, то R п.с. к P.
Однако P п.с. к Q, и, следовательно, R п.с. к Q. Так как это имеет
место  задачи RNP, значит QNPC.
Следствие. Если PNPC, то P=NP.
Доказательство. Пусть задача QPNPC, а задача RNP. По утв.
2) Леммы, если QNPC, то R п.с. к Q. Согласно утв. 1) Леммы, т.к.
QP и R п.с. к Q, то RP. Значит,  задача из NP может быть
решена за полиномиальное время, т.е. NPP. Но по определению
PNP и  P=NP.
Доказательство NP-полноты
Лемма о сводимости дает удобный способ доказательства NPполноты задач. Для доказательства принадлежности задачи
PNP классу NPC достаточно найти некоторую NP-полную
задачу Q и полиномиально свести ее к задаче P.
Пример. ГЦNPC. Покажем, что КМNPC. Для этого по
заданному графу G=(V,E), |V|=m, построим задачу КМ, в которой
N=V, cij=1, (i,j)E и cij=2, (i,j)E и B=m.
Если в КМ  цикл длины ≤ B («да»), то в G  гам. цикл. Если же
значение ц.ф. КМ всегда > B («нет»), то в G нет гамильтонова
цикла. Очевидно, данное сведение является полиномиальным. 
если КМ полиномиально разрешима, то и ГЦP. И, наоборот, если
для ГЦ не  полиномиального алг., то и КМ не разрешима за
полиномиальное время.
Классы P и NP
Отношения классов P и NP является открытой проблемой в
теории NP- полноты. Однако тот факт, что ни для одной NPполной задачи не найдено полиномиального алгоритма,
косвенно подтверждает гипотезу строгого включения PNP,
т.е. PNP.
P
NP
NPC
Задача о камнях
РАЗБИЕНИЕ. («Задача о камнях»). Задано:
мн. A = {a1, …, an};
вес s(ai)  Z+;
B   s(a) – четное.
aA
 ли разбиение множества A на 2 подмножества одинакового веса,
т.е.  ли А  А:
 s (a)   s (a) ?
aA
aA\ A
=
+
Алгоритм

T , if  Ai  Ai  {a1 ,..., ai } :  s(ak )  j;
Введем t (i, j )  
ak Ai

F , иначе.
Табл. значений t(i,j) заполняется построчно слева направо:
• t(1,j)=T, когда j=0, или j=s(a1);
• в строках i=2,…,n для 0 j  B/2 значение t(i,j)=T, только в
случаях, когда t(i1,j)=T, или s(ai)  j и t(i1,js(ai))=T.
Пример. n=5, s(a1)=1, s(a2)=9, s(a3)=5, s(a4)=3, s(a5)=8; B=26.
i
j
0
1
2
3
1
T
T
2
T
T
3
T
T
4
T
T
T
5
T
T
T
4
5
6
7
8
9
10
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
11
T
12
13
T
T
T
T
Псевдополиномиальные алгоритмы
N(X) - max число среди входных данных инд. задачи XP.
Алгоритм, строящий решение задачи P, наз.
псевдополиномиальным, если  инд. задачи XP трудоемкость
построения решения ограничена полиномом от 2 аргументов:
входной длины L(X) и значения max числового параметра N(X).
Инд. задача, у кот. величина N(X) ограничена полиномом от
L(X), и для кот.  псевдополиномиальный алг., является
полиномиально разрешимой.
NP-полнота в сильном смысле
Задачу PNP называют NP-полной в сильном смысле (с.с.), если
для ее решения не  псевдополиномиального алгоритма.
К NP-полным в с.с. проблемам относятся все NP-полные задачи
без числ. параметров, а также нек. хорошо известные задачи с
числ. параметрами (например, задача КМ).
Задача о ранце является примером проблемы, кот. может быть
решена псевдополиномиальным алг.  она не является
NP-полной в с.с.
NP-трудные задачи
Оптимизационная (экстремальная) задача, для кот. соотв. ей ЗРС
NP-полна, является NP-трудной.
При решении NP-полной (трудной) проблемы часто применяют
полиномиальные приближенные алг. При этом строится доп.
решение, и чем оно ближе (по функционалу) к opt решению, тем
оно лучше. Теория NP-полноты иногда позволяет очертить
возможности приближенных алгоритмов…
Задача о ранце
Теорема. Если PNP, то не  полиномиального алг. A для
решения булевой задачи о ранце (ЗР):
n
c x
k 1
n
k k
a x
k 1
k
 maxn ;
xB
k
 A;
с целочисленными неотрицательными параметрами ck и ak, кот.
строит решение любой инд. задачи IЗР с ограниченной const
абс. погрешностью:
|A(I) – OPT(I)|  Q = const. (*)
Доказательство теоремы
Предположим противное:  полиномиальный алг. A и целое число
Q : что  инд. задачи IЗР |A(I) – OPT(I)|Q. Покажем, что тогда
алг. А можно использовать для построения оптимального
решения ЗР, кот. NP-трудна, что противоречит условию PNP.
Каждую инд. з. I можно свести к задаче I заменой параметров
ck на (Q+1)ck. Применим алг. A к задаче I. Очевидно, выполнение
следующих свойств:
– величина А(I ) кратна (Q+1);
– OPT(I )=(Q+1)OPT(I).
Т.к. при сделанном предположении неравенство (*) вып.  инд.
задачи, то |А(I ) – OPT(I )|Q. 
|А(I ) – OPT(I )|=|А(I ) – (Q+1)OPT(I)|Q.
A( I )
Q
 OPT ( I ) 
 1.  А(I )=(Q+1)OPT(I)=OPT(I ).
Q 1
Q 1
Задача коммивояжёра
Теорема. Если P  NP, то не  полиномиального алг. A решения
задачи КМ с относительной погрешностью ограниченной const.
Т.е. не  const K:  IКМ
A( I ) / OPT ( I )  K
(*)
Доказательство. Предположим, что  const K > 0:  IКМ справ.
(*). Покажем, что тогда задача ГЦ полиномиально разрешима.
Пусть инд. задача ГЦ задана графом G=(V, E), n=|V|. Построим
инд. задачу IКМ след. образом. Пусть V – мн. городов, а
расстояние:
1, (i, j )  E;
cij  
 Kn, (i, j )  E.
Применим алг. A к I. Если в G  гам. цикл, то OPT(I)=n. В пр. сл.
OPT(I)>Kn.  неравенство A(I)  Kn  в G  гам. цикл.  из 
полиномиального алг. А, с описанными выше свойствами, 
полиномиальная разрешимость ГЦ…
Скачать