КАТЕГОРИИ: Архитектура-(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-полные задачи
Одна и та же математическая задача распознавания может быть формализована с использованием разных алфавитов и разных способов кодирования. Тем не менее, если речь, например, идет о некоторой арифметической задаче, то можно ожидать, что основание q е N, q ^ 2, выбранной позиционной системы счисления не будет влиять на принадлежность соответствующего предиката классу Р, так как размеры [log„ (n + l)l, [log„ (п + 1)1 записей числа п в двух разных системах счисления являются величинами одного порядка, и сам переход от одной записи к другой может быть выполнен за время, ограниченное полиномом от размера входа. Такого рода связь может существовать и между совершенно разными задачами распознавания, формализованными с помощью предикатов на словах. Определение 32.1. Пусть v и v —предикаты на словах в алфавитах Л, Л. Говорят, что v полиномиально сводится к v, и пишут v ^р v, если существует такая функция /еР, /: Л*—>Л*, что v (x) = v (/(x)). Из того, что для / е Р длина слова /(х) как функция от длины слова х полиномиально ограничена, а также из того, что композиция двух полиномов р3(£) = Pi(P2(0) вновь является полиномом (при этом если p i(t), p 2(0 имеют неотрицательные коэффициенты, то и р3(£) тоже), мы получаем, что отношение ^р транзитивно и что v eP => v eP при v ^р V. В 70-х годах прошлого столетия С. Кук доказал замечательную теорему о существовании в NP таких предикатов на словах, к каждому из которых полиномиально сводится любой предикат из NP. Принятая терминология такова: Определение 32.2. Предикат и е NP называется №-полным, если v ^р и для каждого v е NP. § 32. Полиномиальная сводимость. NP-полные задачи Перед формулировкой теоремы Кука напомним, что любую булеву формулу от xъx2,...,xn можно задать в конъюнктивной нормальной форме (КНФ): D1AD2A...ADm, Di = (li 1v li 2V...v l g ki )J i = l,2,...,m, (32.1) при этом lij является литералом, т. е. некоторой переменной xs или переменной с отрицанием xs. Каждую формулу, заданную в КНФ, можно изобразить словом из Л*, как обсуждалось в примере 30.1. Предикат, принимающий значение 1 на тех и только тех словах из Л*, которые являются кодами КНФ выполнимых формул, назовем Sat (от английского слова satisfiability, одно из значений которого —выполнимость). Теорему Кука мы приводим без доказательства1: Теорема Кука. Предикат Sat является NP-полным. Если показано, что некоторый предикат u является NP-полным, и при этом для некоторого другого предиката v е NP установлено, что u ^p v, то из этого, очевидно, следует, что v тоже NP-полный. Пример 32.1. Прямым следствием теоремы Кука является то, что рассмотренный в примере 30.1 предикат выполнимости произвольной, не обязательно заданной в КНФ, формулы является NP-полным. Полиномиальная сводимость предиката Sat к этому предикату очевидна: в качестве функции f, фигурирующей в определении 32.1, можно взять функцию, которая преобразует слово x из Л* в скобку «)» или еще в какой-нибудь символ, не являющийся кодом какой-либо булевой формулы, всякий раз, когда слово x не является кодом какой-либо КНФ, и преобразует x в x в противном случае (можно описать принадлежащий Р алгоритм вычисления f (x)). Когда говорят о принадлежащих классам Р и NP задачах распознавания и о NP-полных задачах, а не о предикатах и языках, то при этом предполагают, что способ кодирования входных данных ясен из 1 Мы опускаем доказательство этой теоремы, называемой в некоторых источниках также теоремой Кука—Левина, из-за того, что оно требует привлечения специфической техники доказательств утверждений о машинах Тьюринга; такого рода доказательства выглядят естественно в определенном контексте, который отличается от контекста этого курса. Отчасти это послужило и причиной того, что в § 31 мы оставили без доказательства теорему Фишера—Рабина. Доказательство теоремы Кука имеется, например, в [13], [4], [23]. Прозрачное изложение идей доказательства принадлежности классу NP предиката, распознающего выполнимость произвольной булевой формулы, и полиномиальной сводимости такого предиката к Sat можно найти в [10]. Глава 7. Сводимость контекста и определен, по крайней мере, с точностью до полиномиальной сводимости. Обсуждая в дальнейшем задачи из примеров предыдущего параграфа, мы будем иметь в виду рассмотренные там способы кодирования. Пример 32.2. Покажем сводимость задачи выполнимости КНФ к задаче о клике с указанным числом вершин (пример 30.3). Пусть КНФ F имеет вид (32.1). Построим граф GF с kг + k2 +... + km вершинами, для которых используем обозначения lij, i = l,2, ...,m, j = l,2,...,kh при этом вершины lij и lvw соединяем ребром, если и только если выполнены два условия: • i # v, • конкретные литералы, скрывающиеся в (32.1) за обозначениями lij и lvw, не являются отрицанием друг друга (скажем, если lij —это xъ а lvw— это xъ то эти две вершины ребром не соединяются). Построение матрицы смежности графа GF может быть выполнено за полиномиально ограниченное время. Из определения клики и способа построения графа GF следует, что клика из m вершин в этом графе существует, если и только если формула (32.1) выполнима. В самом деле, при наличии такой клики полагаем xs = 0, когда литерал xs соответствует одной из вершин клики, а в остальных случаях xs = l. В результате каждое Di в (32.1) равно 1. Наоборот, если заданная формула (32.1) выполнима, то при соответствующих значениях всех переменных xъx2, ■■■,xn для каждого i^m можно выбрать j такое, что lij —это литерал со значением 1. Сделав такой выбор, мы получаем набор вершин, образующий клику с m вершинами. Если исходная КНФ имеет вид (- x 1v- x 2)A(x 2)A(x 1V x 2), то мы получаем граф GF с пятью вершинами (рис. 25), в котором обнаруживается клика C l n, l 2i, l 32D с тремя вершинами. Это соответствует тому, что исходная формула принимает значение 1 при xг = 0, x 2 = 1. Задача распознавания существования в графе клики с заданным числом вершин является NP-полной.
§ 32. Полиномиальная сводимость. NP-полные задачи
б)
Дата добавления: 2014-01-11; Просмотров: 1615; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |