Основные понятия теории NP-полноты PNP? Задача тысячелетия… 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 понимается некоторый общий вопрос, требующий ответа. Общая задача, как правило, содержит некоторые параметры. В задаче КМ, например, это расстояния между городами. Если все параметры общей задачи принимают конкретные значения, то такую задачу называют индивидуальной. Трудоёмкость алгоритма Количество символов в стандартном (двоичном) представлении данных инд. задачи XP наз. длиной входа и обозначим L(X). Пусть алг. A решает проблему P и tA(X) количество элементарных операций, выполняемых алгоритмом A при решении инд. задачи XP. Тогда функция 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,QNP. Если по любой инд. задаче XP можно построить за полиномиальное число операций некоторую инд. задачу Y Q, и по opt решению задачи Y полиномиально строится opt решение задачи X, то говорят, что P полиномиально сводится (п.с.) к Q. Класс NP-полных проблем (обозначим его NPC) – это подмн. задач PNP, обладающих свойством : задача из 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 ? jCi j jDi 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,QNP. Тогда: 1) Если QP и задача P п.с. к Q, то PP. 2) Если PNPC и задача P п.с. к Q, то QNPC. Доказательство. Утверждение 1) очевидно. Докажем 2). Возьмем произвольную задачу RNP. Т.к. PNPC, то R п.с. к P. Однако P п.с. к Q, и, следовательно, R п.с. к Q. Так как это имеет место задачи RNP, значит QNPC. Следствие. Если PNPC, то P=NP. Доказательство. Пусть задача QPNPC, а задача RNP. По утв. 2) Леммы, если QNPC, то R п.с. к Q. Согласно утв. 1) Леммы, т.к. QP и R п.с. к Q, то RP. Значит, задача из NP может быть решена за полиномиальное время, т.е. NPP. Но по определению PNP и P=NP. Доказательство NP-полноты Лемма о сводимости дает удобный способ доказательства NPполноты задач. Для доказательства принадлежности задачи PNP классу 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полной задачи не найдено полиномиального алгоритма, косвенно подтверждает гипотезу строгого включения PNP, т.е. PNP. P NP NPC Задача о камнях РАЗБИЕНИЕ. («Задача о камнях»). Задано: мн. A = {a1, …, an}; вес s(ai) Z+; B s(a) – четное. aA ли разбиение множества A на 2 подмножества одинакового веса, т.е. ли А А: s (a) s (a) ? aA aA\ 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(i1,j)=T, или s(ai) j и t(i1,js(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 число среди входных данных инд. задачи XP. Алгоритм, строящий решение задачи P, наз. псевдополиномиальным, если инд. задачи XP трудоемкость построения решения ограничена полиномом от 2 аргументов: входной длины L(X) и значения max числового параметра N(X). Инд. задача, у кот. величина N(X) ограничена полиномом от L(X), и для кот. псевдополиномиальный алг., является полиномиально разрешимой. NP-полнота в сильном смысле Задачу PNP называют NP-полной в сильном смысле (с.с.), если для ее решения не псевдополиномиального алгоритма. К NP-полным в с.с. проблемам относятся все NP-полные задачи без числ. параметров, а также нек. хорошо известные задачи с числ. параметрами (например, задача КМ). Задача о ранце является примером проблемы, кот. может быть решена псевдополиномиальным алг. она не является NP-полной в с.с. NP-трудные задачи Оптимизационная (экстремальная) задача, для кот. соотв. ей ЗРС NP-полна, является NP-трудной. При решении NP-полной (трудной) проблемы часто применяют полиномиальные приближенные алг. При этом строится доп. решение, и чем оно ближе (по функционалу) к opt решению, тем оно лучше. Теория NP-полноты иногда позволяет очертить возможности приближенных алгоритмов… Задача о ранце Теорема. Если PNP, то не полиномиального алг. A для решения булевой задачи о ранце (ЗР): n c x k 1 n k k a x k 1 k maxn ; xB k A; с целочисленными неотрицательными параметрами ck и ak, кот. строит решение любой инд. задачи IЗР с ограниченной const абс. погрешностью: |A(I) – OPT(I)| Q = const. (*) Доказательство теоремы Предположим противное: полиномиальный алг. A и целое число Q : что инд. задачи IЗР |A(I) – OPT(I)|Q. Покажем, что тогда алг. А можно использовать для построения оптимального решения ЗР, кот. NP-трудна, что противоречит условию PNP. Каждую инд. з. 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 гам. цикл. из полиномиального алг. А, с описанными выше свойствами, полиномиальная разрешимость ГЦ…