Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Основные NP-полные задачи. Сильная NP-полнота




 

В данном разделе устанавливается NP -полнота некоторых известных в различных приложениях задач. Предпочтение отдается графическим задачам как наиболее наглядным. Доказательство получается преобразованием в рассматриваемую задачу другой задачи, NP -полнота которой установлена. Для задач с целочисленными параметрами вводится важное понятие – сильная NP -полнота.

1. Пусть f (x 1, …, xn) — формула от булевых переменных x 1, …, xn в конъюнктивной нормальной форме, где каждая дизъюнкция имеет не более, чем три вхождения переменных. Задача проверки выполнимости таких формул называется задачей 3-выполнимости (идентификатор: 3ВЫП).

Утверждение 18.6. Задача 3ВЫП является NP -полной.

Доказательство. Достаточно доказать, что ВЫПµ3ВЫП. Пусть F = D 1 D 2Dm — индивидуальная задача выполнимость от переменных x 1, …, xn. Пусть Di = z 1 Ú z 2 Ú … Ú zk и k > 3, . Положим

где y 1, …, yk -3 — новые переменные. Покажем, что:

Di выполнено тогда и только тогда, когда существует значение y 1, …, yk -3 такое, что выполнено;

Di не выполнено тогда и только тогда, когда для любых значений y 1, …, yk -3 не выполнено.

Действительно:

Di = 0 Þ z 1 Ú z 2 Ú … Ú zk = 0 Þ

;

Di = 1 Þ z 1 Ú z 2 Ú … Ú zk = 1 Þ .

Укажем значения переменных y 1, …, yk -3, выполняющие (табл.18.3).

 

Таблица 18.3

 

  y 1 y 2 y 3 yk -3
z 1 = 1        
z 2 = 1        
z 3 = 1        
z 4 = 1        
zk = 1        

 

Проделаем теперь процедуру замены каждой дизъюнкции Di на для каждого с условием k > 3. Получим задачу 3-выполнимости за полиномиальное время. По доказанному имеем ВЫПµ3ВЫП, что и требовалось доказать.

Замечание. Можно доказать, что задача 2-выполнимости лежит в классе P.

2. Рассмотрим графическую задачу (идентификатор: КЛИКА): по произвольному графу G (V, E) и числу k узнать, имеется ли в графе G полный (граф называется полным, если любые две вершины соединены ребром) подграф с k вершинами (клика).

Утверждение 18.7. Задача КЛИКА является NP -полной.

Доказательство. Ясно, что КЛИКА Î NP, так как словом-отгадкой для задачи служит список вершин, составляющих клику и детерминированный алгоритм за полиномиальное время проверяет наличие ребра между каждой парой вершин. Покажем, что ВЫП µ КЛИКА.

Пусть F = D 1 D 2Dm — произвольная индивидуальная задача ВЫП. Строим соответствующий граф GF следующим образом. Каждому вхождению переменной в F сопоставим вершину графа и присвоим ей обозначение (x a, i), где x a — вхождение переменного (a Î {0, 1}), i — номер соответствующей дизъюнкции. Вершины (x a, i) и (y b, j) соединим ребром в том и только в том случае, когда i ¹ j и x a не есть отрицание y b (т.е. x ¹ y или, если x = y, то a = b). Допустим, что F выполнима и пусть — соответствующий выполняющий набор. В каждом сомножителе F есть вхождение переменной, обратившее его в 1. Выберем по одному такому вхождению из каждой дизъюнкции. Рассмотрим соответствующее множество К вершин графа GF и покажем, что любые две такие вершины соединены ребром. Действительно, для вершин (x a, i) и (y b, j) нет соединяющего ребра лишь в случае i = j, либо . Но x ¹ y, так как вхождения переменных взяты из разных дизъюнкций. Если , то одно и то же значение переменного х не может одновременно обратить в 1 x a и y b. Значит, из выполнимости F следует наличие клики размера k в GF.

Обратно, пусть GF содержит клику размера k. Пусть это набор вершин . Покажем, что формула F выполнима. Положим , и тогда . Значения остальных переменных положим произвольно. Противоречия в выборе значений переменных нет, так как если и соединены ребром, то a = b.

По построению GF вершинам соответствуют вхождения переменных из разных дизъюнкций и так как число вершин равно k, то каждая дизъюнкция имеет вхождение переменного, обращающего в 1 при данных значениях переменных, значит и F обращается в 1. Построение GF проводится за полиномиальное время и, следовательно, ВЫП µ КЛИКА, что и требовалось доказать.

3. Говорят, что некоторое множество вершин графа G (V, E) образует вершинное покрытие графа, если для любого ребра e Î E найдется инцидентная ему вершина v Î V 1 этого множества. Задача о вершинном покрытии (идентификатор: ВП) состоит в том, чтобы по произвольному графу G (V, E) и числу К узнать, имеет ли граф вершинное покрытие мощности k.

Утверждение 18.8. Задача ВП является NP -полной.

Доказательство. Ясно, что ВПÎ NP, так как словом-догадкой является список вершин соответствующего вершинного покрытия и правильность ответа проверяется за полиномиальное время. Покажем, что КЛИКА µ ВП.

Для графа G (V, E) строим граф G ’, являющийся дополнением G до полного графа (т.е. G ’ = (V, E’)), где e Î E’ Û e Ï E). Покажем, что А есть полный подграф в G Û дополнение А ’ = V \ A есть ВП в G ’.

Действительно, пусть полный подграф с множеством вершин А лежит в G. Тогда, если бы для ребра графа G ’ выполнялось бы и , то должно быть, что ребра нет в G. Значит А ’ = V \ A — вершинное покрытие для G ’.

Обратно, если А ’ образует вершинное покрытие графа G ’, то всякое ребро, оба конца которого находятся в А, не может принадлежать G ’ и содержится в G, т.е. в G имеется полный подграф с множеством вершин А.

Итак, задача о к -вершинном полном подграфе сводится к задаче о вершинном покрытии мощности k ’ = nk, n = | V |. Доказательство закончено.

Говорят, что множество вершин графа G (V, E) независимо, если никакие две вершины из V 1 не связяны ребром. Задача о независимом множестве вершин (идентификатор: НВ) заключается в том, чтобы для произвольного графа G (V, E) и целого числа k выяснить, существует ли в G независимое множество из к вершин.

Утверждение 18.9. Задача НВ является NP -полной.

Доказательство аналогично предыдущему.

Приведем теперь без доказательства некоторые известные NP -полные проблемы. За доказательствами можно обратиться к книге: Гэри М., Джонсон Д. Вычислительные машины и труднорешаемые задачи. М., 1983.

5. Задача ГАМИЛЬТОНОВ ЦИКЛ (идентификатор: ГЦ).

Для произвольного графа G (V, E) требуется узнать, существует ли перестановка вершин такая, что выполнено:

6. Задача ЦЕЛОЧИСЛЕННЫЙ РЮКЗАК (идентификатор: ЦР).

Для произвольных натуральных чисел и k требуется узнать, существует ли набор целых чисел , что выполнено . Вариантом данной задачи является (0,1)-рюкзак, в которой требуется установить существование (0,1)-чисел с условием .

7. Множество ребер, разрезающих циклы. Для произвольного графа G (V, E) и целого числа к выяснить, существует ли множество , такое, что и каждый цикл графа G (V, E) содержит ребро из .

8. Множество вершин, разрезающих циклы. То же, но только теперь ищется подмножество множества вершин.

9. Изоморфизм подграфу. Для заданных двух графов G (V 1, E 1) и H (V 2, E 2) выяснить, содержит ли граф G (V, E) подграф, изоморфный Н.

10. Проблема разрешимости диофантовых уравнений (в стандартном двоичном кодировании данных) вида

.

В настоящее время известно большое число NP -полных задач из разных областей дискретной математики (несколько тысяч). Мы ограничимся приведением результата, полученного Шеффером Т.И. (1978), дающего бесконечную серию NP -полных проблем.

Пусть — любое конечное множество логических отношений. Логическое отношение определяется как некоторое подмножество из {0, 1} k для некоторого целого k ³ 1, при этом k называется рангом отношения. Определим S -формулу как произвольную конъюнкцию скобок, каждая вида , где — переменные, число которых соответствует рангу . Проблема S -выполнимости — это проблема разрешения, является ли данная S -формула выполнимой.

Например, пусть R (x, y, z) — 3-местное логическое отношение с таблицей истинности {(1, 0, 0), (0, 1, 0), (0, 0, 1)}. Тогда формула R (x, y, z) × R (x, y, u) × R (u, u, y) выполнима и (x, y, z, u) = (0, 1, 0, 0) — ее выполняющий набор.

Результат Шеффера состоит в том, что проблема S -выпол­нимости полиномиально разрешима, если множество S удовлетворяет по крайней мере одному из приводимых ниже условий (в противном случае проблема NP -полна):

1) каждое отношение из S 0-выполнимо, т.е. (0, …, 0) ;

2) каждое отношение из S 1-выполнимо, т.е. (1, …, 1) ;

3) каждое отношение из S слабо положительно, т.е. логически эквивалентно формуле КНФ, имеющей самое большее одно переменное с отрицанием в каждой дизъюнкции;

4) каждое отношение из S слабо отрицательно, т.е. логически эквивалентно формуле КНФ, имеющей самое большее одно переменное без отрицания в каждой дизъюнкции;

5) Каждое отношение из S мультиафинно, т.е. логически эквивалентно формуле, являющейся конъюнкцией линейных форм над полем GF (2);

6) каждое отношение из S биюнктивно, т.е. логически эквивалентно формуле КНФ, имеющей самое большее вхождения двух переменных в каждой конъюнкции.

Установим теперь NP -трудность некоторых задач, уже встречавшихся в курсе математической логики. Рассмотрим следующие задачи о булевых функциях.

Задача 1. РАВНОВЕРОЯТНОСТЬ БУЛЕВОЙ ФУНКЦИИ. Для данной булевой функции , заданной в КНФ, узнать, является ли она равновероятной (т.е. верно ли, что ее вес равен ).

Задача 2. ЛИНЕЙНОСТЬ БУЛЕВОЙ ФУНКЦИИ. Для данной булевой функции , заданной в КНФ, узнать, является ли она линейной.

Задача 3. СУЩЕСТВЕННОСТЬ ПЕРЕМЕННОГО. Для данных булевой функции в КНФ и целого числа к узнать, является ли переменное xk существенным для f.

Задача 4. ФУНКЦИОНАЛЬНАЯ ПОЛНОТА. Для данной булевой функции в КНФ выяснить, образует ли f функционально полную систему (является ли f шефферовой).

Утверждение 18.10. Задачи (1 – 4) являются NP -трудными.

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

Задача 1. Пусть — произвольная индивидуальная задача ВЫП, где = D 1Dm, Di — дизъюнкции. Определим функцию = D 1Dm Ú y, где y — новое переменное. Имеем и, значит, КНФ для функции f * строится по функции f за полиномиальное время. Легко видеть, что . Значит, f * равновероятна тогда и только тогда, когда f не выполнима. Ясно, что условие «задача 1 Î P» влечет за собой ВЫП Î P, что означает задача 1 Î NPH.

Задача 2. Пусть — произвольная индивидуальная задача ВЫП. Определим функцию

,

где y 1, y 2 — новые переменные. Ясно, что КНФ для функции f * строится по f за полиномиальное время. Легко видеть, что f * линейна тогда и только тогда, когда f не выполнима и условие «задача 2 Î P» влечет за собой ВЫП Î P, что означает задача 2 Î NPH.

Задача 3. Пусть — произвольная индивидуальная задача ВЫП. Образуем функцию , где y — новое переменное. Ясно, что y существенно для f * тогда и только тогда, когда f — выполнима. Следовательно, «задача 3 Î P» влечет за собой ВЫП Î P, что означает задача 3 Î NP.

Задача 4. Пусть — произвольная индивидуальная задача ВЫП. Образуем функцию

.

Ясно, что КНФ для f * строится по f за полиномиальное время. Функция f * образует функционально полную систему тогда и только тогда, когда f выполнима. Действительно, если f не выполнима, то и f * не является функционально полной. Если f выполнима, то пусть - выполняющий набор. Тогда имеем

,

,

откуда следует не самодвойственность и не линейность функции f *. Очевидно, что f * не сохраняет нуль, не сохраняет единицу и не монотонна. Значит, функция f * удовлетворяет критерию Шеффера функциональной полноты. Следовательно, условие «задача 4 Î P» влечет за собой ВЫП Î P, что означает задача 4 Î NPН, что и требовалось доказать.

Замечание. Легко убедиться, что отрицание задачи 2, задачи 3 лежат в классе NP, и поэтому они NP -полны. Неизвестно, верно ли это для задач 1 и 4. Очевидно, что при табличном задании булевых функций рассмотренные задачи имеют полиномиальную сложность.

Разберем еще одно важное понятие, относящееся к обсуждаемому кругу вопросов. Рассмотрим задачу ЦЕЛОЧИСЛЕННЫЙ РЮКЗАК, которая, как отмечалось выше, является NP -полной. Пусть c 1, …, cn, w — натуральные числа и спрашивается, существуют ли такие целые x 1, …, xn ³ 0, что выполнено . Приведем один алгоритм решения данной задачи. Для индивидуальной задачи ЦР(c 1, …, cn, w) построим ориентированный граф G (c 1, …, cn, w) = (V, E), где V = {0, 1, …, w }, E = {(m, k), 0 £ m < k £ £ w и km = cj для некоторого j £ n }. Значит, граф G имеет w + 1 вершину и O(nw) дуг.

Утверждение 18.11. В графе G (c 1, …, cn, w) имеется путь из 0 в w тогда и только тогда, когда индивидуальная задача ЦР(c 1, …, cn, w) имеет решение.

Доказательство. Пусть (0 = i 0, i 1, …, im = w) — нужный путь в графе G. Рассмотрим набор чисел (s 1, …, sm) = (i 1i 0, …, imim -1). Все эти числа содержатся среди чисел { c 1, …, cn } согласно определению графа G. Кроме того, имеем . Отсюда следует, что уравнение разрешимо в неотрицательных целых числах, причем xj равно числу появлений cj в последовательности (s 1, …, sm).

Обратно, если для неотрицательных целых чисел x 1, …, xn, то можно восстановить некоторый путь из 0 в w в графе G, если положить (s 1, …, sm) = () и путь из 0 в w имеет вид (0 = i 0, i 1, …, im = w), где i 1 = s 1, i 2 = s 1 + s 2, …, im = s 1 + … + sm. Доказательство завершено.

Утверждение 18.12. Любая индивидуальная задача ЦР может быть решена за О (nw) действий.

Доказательство. По данным c 1, …, cn, w строим граф G за О (nw) действий. Затем за О (nw) действий проверяем существует ли путь из 0 в w, используя способ пометок: вершину 0 помечаем 0, вершины, достижимые из 0 за 1 шаг, помечаем 1 и т.д. Если w получает пометку, то задача разрешима, если нет, то неразрешима. Доказательство завершено.

Приведенный результат показывает, что NP -полная задача ЦЕЛОЧИСЛЕННЫЙ РЮКЗАК решается с помощью алгоритма с временной сложностью О (nw) — полиномиального и, следовательно, доказано, что P = NP и можно считать ненужным предыдущее и последующее обсуждение теории NP -полноты. Дело в том, что оценка О (nw) не является полиномиальной функцией от длины входа, так как целые числа в экономном кодировании должны задаваться в двоичной системе счисления. В то же время приведенный результат важен, так как он показывает, что NP -полные задачи имеют разную «сложность».

Для задач с числовыми параметрами введем следующие определения. Пусть I — индивидуальная вычислительная задача, т.е. с числовыми параметрами. Обозначим через num (I) — наибольшее целое число, появляющееся в I.

Определение 18.13. Пусть А — вычислительная задача и f: N à N — числовая функция. Обозначим через Af подзадачу задачи А, в которой берутся индивидуальные задачи I, для которых выполнено num (I) £ f (| I |). Говорят, что задача А сильно NP - полна, если для некоторого полинома p (n) задача Ap является NP -полной.

Замечание. Можно показать, что задачи КЛИКА, ГАМИЛЬТОНОВ ЦИКЛ являются сильно NP -полными, а задачи (0,1)-РЮКЗАК и ЦЕЛОЧИСЛЕННЫЙ РЮКЗАК не являются таковыми.

Определение 18.14. Алгоритм АЛГ для задачи А называют псевдополиномиальным, если он решает любую индивидуальную задачу I Î A за время, ограниченное полиномом (двух переменных) от | I | и num (I). Значит, алгоритм со сложностью О (nw) для задачи ЦЕЛОЧИСЛЕННЫЙ РЮКЗАК является псевдополиномиальным (ясно, что для индивидуальной задачи I ЦР num (I) = w).

Отметим, что сильная NP -полнота задачи делает маловероятным существование псевдополиномиального алгоритма точно также, как NP -полнота задачи делает маловероятным существование полиномиального алгоритма.

Утверждение 18.15. Если P ¹ NP, то ни для одной сильно NP -полной задачи не существует псевдополиномиального алгоритма.

Доказательство. Пусть А — сильно NP -полная задача. Значит, для некоторого полинома p (n) задача Аp является NP -полной. Далее, пусть для А существует псевдополиномиальный алгоритм АЛГ, который решает любую индивидуальную задачу I Î A за время q (| I |, num (I)) для некоторого полинома q от двух переменных. Тогда очевидно, что алгоритм АЛГ решает NP -полную задачу Аp за время q (n, p (n)) — что является полиномиальной оценкой. Получено противоречие при P ¹ NP, что и требовалось доказать.

 


 

 

Список Литературы

 

1. Ахо А., Хопкрофт Д., Ульман Д. Построение и анализ вычислительных алгоритмов. М.: Мир, 1979.

2. Ван дер Варден Б.Л. Алгебра. М.:Наука, 1976.

3. Верещагин Н.К., Шень А. Начала теории множеств. М.: МЦНМО, 1999.

4. Верещагин Н.К., Шень А. Вычислимые функции. М.: МЦНМО, 1999.

5. Верещагин Н.К., Шень А. Языки и исчисления. М.: МЦНМО, 2000.

6. Глухов М.М. Математическая логика. М., 1981.

7. Курош А.Г. Лекции по общей алгебре. М.: ГИФМЛ, 1962.

8. Лавров И.А., Максимова Л.Л. Задачи по теории множеств, математической логике и теории алгоритмов. М.: Физико-математическая литература, 1995.

9. Ленг С. Алгебра. М.: Мир, 1965.

10. Мальцев А.И. Алгебраические системы. М.: Наука, 1970.

11. Мальцев А.И. Алгоритмы и рекурсивные функции. М.: Наука, 1986.

12. Марков А.А., Нагорный Н.М. Теория алгорифмов. М.: Наука, 1984.

13. Новиков П.С. Элементы математической логики. М.: Наука, 1973.

14. Носов В.А. Теория алгоритмов. М., 1990.

15. Яблонский С.В. Введение в дискретную математику. М.: Наука, 1986.

 


[1] Дальше вместо ┐(А) будем писать ().

[2] Диофантовыми уравнениями называются алгебраические уравнения или системы алгебраических уравнений с рациональными коэффициентами, решения которых отыскиваются в целых или рациональных числах. Например,.

[3] Успенский В.А., Семенов А.Л. Теория алгоритмов: основные открытия и приложения. М., 1987. С.230.

[4] Часто программу для машины Тьюринга организовывают в виде таблицы.

[5] Частичная функция определена, вообще говоря, не для всех значений аргумента. В строгом смысле частичное отображение является произвольным подмножеством. Частичная функция — это однозначное частичное отображение.

[6] Мальцев А.И. Алгоритмы и рекурсивные функции. М., 1965. С.105.

[7] Марков А.А., Нагорный Н.М. Теория алгорифмов. М., 1984.

[8] Полностью доказательство приведено в 5-й главе книги Э. Мендельсона «Введение в математическую логику» (М., 1971).

[9] С результатами взаимного моделирования вычислительных моделей можно ознакомиться в работах: Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов. М., 1979; Трахтенброт Б.А. Сложность алгоритмов и вычислений: спецкурс для студентов НГУ. Новосибирск, 1967.




Поделиться с друзьями:


Дата добавления: 2014-12-29; Просмотров: 1718; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.098 сек.