КАТЕГОРИИ: Архитектура-(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 2 … Dm — индивидуальная задача выполнимость от переменных 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
Проделаем теперь процедуру замены каждой дизъюнкции Di на Замечание. Можно доказать, что задача 2-выполнимости лежит в классе P. 2. Рассмотрим графическую задачу (идентификатор: КЛИКА): по произвольному графу G (V, E) и числу k узнать, имеется ли в графе G полный (граф называется полным, если любые две вершины соединены ребром) подграф с k вершинами (клика). Утверждение 18.7. Задача КЛИКА является NP -полной. Доказательство. Ясно, что КЛИКА Î NP, так как словом-отгадкой для задачи служит список вершин, составляющих клику и детерминированный алгоритм за полиномиальное время проверяет наличие ребра между каждой парой вершин. Покажем, что ВЫП µ КЛИКА. Пусть F = D 1 D 2… Dm — произвольная индивидуальная задача ВЫП. Строим соответствующий граф 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 выполнима и пусть Обратно, пусть GF содержит клику размера k. Пусть это набор вершин По построению GF вершинам соответствуют вхождения переменных из разных дизъюнкций и так как число вершин равно k, то каждая дизъюнкция имеет вхождение переменного, обращающего в 1 при данных значениях переменных, значит и F обращается в 1. Построение GF проводится за полиномиальное время и, следовательно, ВЫП µ КЛИКА, что и требовалось доказать. 3. Говорят, что некоторое множество вершин Утверждение 18.8. Задача ВП является NP -полной. Доказательство. Ясно, что ВПÎ NP, так как словом-догадкой является список вершин соответствующего вершинного покрытия и правильность ответа проверяется за полиномиальное время. Покажем, что КЛИКА µ ВП. Для графа G (V, E) строим граф G ’, являющийся дополнением G до полного графа (т.е. G ’ = (V, E’)), где e Î E’ Û e Ï E). Покажем, что А есть полный подграф в G Û дополнение А ’ = V \ A есть ВП в G ’. Действительно, пусть полный подграф с множеством вершин А лежит в G. Тогда, если бы для ребра Обратно, если А ’ образует вершинное покрытие графа G ’, то всякое ребро, оба конца которого находятся в А, не может принадлежать G ’ и содержится в G, т.е. в G имеется полный подграф с множеством вершин А. Итак, задача о к -вершинном полном подграфе сводится к задаче о вершинном покрытии мощности k ’ = n – k, n = | V |. Доказательство закончено. Говорят, что множество вершин Утверждение 18.9. Задача НВ является NP -полной. Доказательство аналогично предыдущему. Приведем теперь без доказательства некоторые известные NP -полные проблемы. За доказательствами можно обратиться к книге: Гэри М., Джонсон Д. Вычислительные машины и труднорешаемые задачи. М., 1983. 5. Задача ГАМИЛЬТОНОВ ЦИКЛ (идентификатор: ГЦ). Для произвольного графа G (V, E) требуется узнать, существует ли перестановка вершин 6. Задача ЦЕЛОЧИСЛЕННЫЙ РЮКЗАК (идентификатор: ЦР). Для произвольных натуральных чисел 7. Множество ребер, разрезающих циклы. Для произвольного графа G (V, E) и целого числа к выяснить, существует ли множество 8. Множество вершин, разрезающих циклы. То же, но только теперь ищется подмножество множества вершин. 9. Изоморфизм подграфу. Для заданных двух графов G (V 1, E 1) и H (V 2, E 2) выяснить, содержит ли граф G (V, E) подграф, изоморфный Н. 10. Проблема разрешимости диофантовых уравнений (в стандартном двоичном кодировании данных) вида
В настоящее время известно большое число NP -полных задач из разных областей дискретной математики (несколько тысяч). Мы ограничимся приведением результата, полученного Шеффером Т.И. (1978), дающего бесконечную серию NP -полных проблем. Пусть Например, пусть 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) каждое отношение 2) каждое отношение 3) каждое отношение 4) каждое отношение 5) Каждое отношение 6) каждое отношение Установим теперь NP -трудность некоторых задач, уже встречавшихся в курсе математической логики. Рассмотрим следующие задачи о булевых функциях. Задача 1. РАВНОВЕРОЯТНОСТЬ БУЛЕВОЙ ФУНКЦИИ. Для данной булевой функции Задача 2. ЛИНЕЙНОСТЬ БУЛЕВОЙ ФУНКЦИИ. Для данной булевой функции Задача 3. СУЩЕСТВЕННОСТЬ ПЕРЕМЕННОГО. Для данных булевой функции Задача 4. ФУНКЦИОНАЛЬНАЯ ПОЛНОТА. Для данной булевой функции Утверждение 18.10. Задачи (1 – 4) являются NP -трудными. Доказательство. Задача 1. Пусть Задача 2. Пусть
где y 1, y 2 — новые переменные. Ясно, что КНФ для функции f * строится по f за полиномиальное время. Легко видеть, что f * линейна тогда и только тогда, когда f не выполнима и условие «задача 2 Î P» влечет за собой ВЫП Î P, что означает задача 2 Î NPH. Задача 3. Пусть Задача 4. Пусть
Ясно, что КНФ для 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, что выполнено Утверждение 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 1 – i 0, …, im – im -1). Все эти числа содержатся среди чисел { c 1, …, cn } согласно определению графа G. Кроме того, имеем Обратно, если Утверждение 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; Просмотров: 1745; Нарушение авторских прав?; Мы поможем в написании вашей работы! |