Теорема Кука
[12/42%]Покажите, что если , то все непустые собственные подмножества множества являются NP-полными.
Если известно, что является -полным, будет ли всегда -полным?
В доказательстве теоремы Кука мы использовали условия (4.1) на ???-образных окнах над матрицей , чтобы обеспечить выполнение условия (4). Покажите, что если вместо этого работать с ???-образными окнами над матрицей , то никакие условия на эти окна не могут обеспечить выполнение условия (4). Другими словами, покажите, что следующее соотношение не выполняется ни для какого подмножества :
где обозначает -ю конфигурацию, соответствующую присваиваниям переменным .
Покажите, что в доказательстве теоремы Кука функция необходима. То есть никакое определение подмножества не может сделать истинным следующее: выполнима тогда и только тогда, когда .
В доказательстве теоремы Кука можно убрать условие (1), если заменить условие (4') новым условием (4'') над шестиклеточными окнами ???-образной формы. Найдите подусловия над шестиклеточными, ???-образными окнами, которые делают эквивалентным условию (4) без предположения о выполнении условия (1).
Булева формула, являющаяся произведением литералов, называется элементарным произведением. ДНФ (дизъюнктивная нормальная форма) — это сумма элементарных произведений.
Докажите, что булеву формулу в ДНФ можно за полиномиальное время преобразовать в формулу в КНФ (возможно, с большим числом переменных), сохраняющую выполнимость.
Докажите, что если , то не существует полиномиального по времени алгоритма, преобразующего булеву формулу в КНФ в формулу в ДНФ и сохраняющего выполнимость.
Предположим, что и — два -полных множества. Покажите, что и не обязательно являются -полными, если . Всегда ли является -полным, если ?
Это упражнение использует обозначения, определённые в упражнении 3 раздела 7.1.
Покажите, что существует полиномиально вычислимая, полиномиально честная функция , такая что её область значений является NP-полной. [Подсказка: для любого -полного множества , принимает на входе экземпляр множества и строку и определяет, является ли свидетелем того, что .]
Определим . Покажите, что существует полиномиально вычислимая, полиномиально честная функция , такая что является NP-полным. [Подсказка: постройте функцию, аналогичную функции из пункта (a), за исключением того, что задача является задачей минимизации.]
Предположим, что . Пусть и — два множества, полных для (т.е. и являются NP-полными). Обязательно ли принадлежит co-NP? Обязательно ли является co-NP-полным? Возможно ли, что принадлежит ? Обоснуйте свой ответ.
Предположим, что в доказательстве теоремы Кука мы убираем условие (1) и заменяем условие на , которое задаёт некоторые подусловия на пятиклеточных окнах одной из четырёх форм, показанных на рисунке 7.11. Покажите, что никакие такие подусловия на пятиклеточных окнах не могут сделать (4) эквивалентным .
Рассмотрим альтернативное доказательство теоремы Кука, приведённое в примере 7.33. Пусть — множество, соответствующее двенадцати окнам рисунка 7.10; то есть тогда и только тогда, когда имеет один из двенадцати видов на рисунке 7.10 и удовлетворяет соответствующим условиям, заданным в трёх случаях. Покажите, что если существует отображение , такое что тогда и только тогда, когда , то принадлежит .
В этом упражнении мы рассматриваем иную схему для доказательства теоремы Кука. Вместо того чтобы присоединять символ состояния к ленточному символу, который в данный момент сканируется головкой ленты, мы можем определить отдельные булевы переменные для представления состояния и положения головки ленты. То есть, помимо переменных (только для ), для каждого и каждого мы определяем переменную , означающую, что символ состояния конфигурации равен , а для каждой пары , с , — переменную , означающую, что в конфигурации головка ленты сканирует -й символ. Чтобы доказать теорему Кука в этой схеме, нам нужно определить шесть булевых функций , таких что для тогда и только тогда, когда выполняется приведённое ниже условие :
(1) Для каждого , находится ровно в одном состоянии.
(2) Для каждого , головка сканирует ровно одну ячейку в .
(3) Для каждого и каждого , -я ячейка содержит ровно один символ.
(4) — начальная конфигурация на входе .
(5) — допускающая конфигурация.
(6) Для каждого , .
Предположим, что удовлетворяют условию, что тогда и только тогда, когда выполняется условие . Также пусть равно
где , если , и , если . Найдите контрпример, опровергающий, что тогда и только тогда, когда допускает . Найдите новую функцию , для которой тогда и только тогда, когда допускает .