Задачи
[42/95%]Пусть
Покажите, что . (Заметим, что самый очевидный алгоритм не работает за полиномиальное время. Подсказка: сначала попробуйте случай, когда — степень двойки.)
Перестановкой множества называется взаимно однозначная функция этого множества на себя. Когда — перестановка, означает композицию с самой собой раз. Пусть
Покажите, что PERM-POWER . (Заметим, что самый очевидный алгоритм не работает за полиномиальное время. Подсказка: сначала попробуйте случай, когда — степень двойки.)
Покажите, что P замкнут относительно операции звезды. (Подсказка: используйте динамическое программирование. На входе , где , постройте таблицу, указывающую для каждой пары , принадлежит ли подстрока языку для некоторого .)
ᴬ Покажите, что NP замкнут относительно операции звезды.
Пусть UNARY-SSUM — задача о сумме подмножества, в которой все числа представлены в унарной системе счисления. Почему доказательство NP-полноты для SUBSET-SUM не показывает, что UNARY-SSUM NP-полна? Покажите, что UNARY-SSUM .
Покажите, что если , то каждый язык , кроме и , NP-полон.
- Покажите, что PRIMES . (Подсказка: при мультипликативная группа является циклической и имеет порядок тогда и только тогда, когда простое. Вы можете использовать этот факт без обоснования. Более сильное утверждение PRIMES в настоящее время известно как истинное, но доказать его сложнее.)
Мы обычно полагаем, что PATH не является NP-полной. Объясните, на чём основано это убеждение. Покажите, что доказательство того, что PATH не NP-полна, доказало бы .
Пусть обозначает неориентированный граф. Также пусть
\begin{aligned} S P A T H=\left\{ \langle G, a, b, k\rangle \mid & G \text{ содержит простой путь} \\ & \text{длины не более } k \text{ из } a \text{ в } b\right\} , \end{aligned}и
Покажите, что SPATH .
Покажите, что LPATH NP-полна.
Пусть DOUBLE-SAT . Покажите, что DOUBLE-SAT NP-полна.
ᴬ Пусть HALF-CLIQUE . Покажите, что HALF-CLIQUE NP-полна.
Пусть .
Покажите, что .
Покажите, что NP-полна.
Пусть . Покажите, что .
Пусть — 3кнф-формула. -означиванием переменных называется такое означивание, при котором каждый дизъюнкт содержит два литерала с неравными истинностными значениями. Иными словами, -означивание выполняет , не присваивая значение «истина» всем трём литералам ни в одном дизъюнкте.
Покажите, что отрицание любого -означивания для также является -означиванием.
Пусть SAT — совокупность 3кнф-формул, имеющих -означивание. Покажите, что сведение за полиномиальное время от 3SAT к SAT получается заменой каждого дизъюнкта
на два дизъюнкта
где — новая переменная для каждого дизъюнкта , а — единственная дополнительная новая переменная.
Сделайте вывод, что NP-полна.
Разрезом в неориентированном графе называется разбиение вершин на два непересекающихся подмножества и . Размером разреза называется число рёбер, у которых один конец лежит в , а другой — в . Пусть
Покажите, что MAX-CUT NP-полна. Вы можете использовать результат задачи 7.26. (Подсказка: покажите, что MAX-CUT. Гаджет переменной — это совокупность из вершин, помеченных , и ещё вершин, помеченных , где — число дизъюнктов. Все вершины, помеченные , соединены со всеми вершинами, помеченными . Гаджет дизъюнкта — это треугольник из трёх рёбер, соединяющих три вершины, помеченные литералами, входящими в дизъюнкт. Не используйте одну и ту же вершину более чем в одном гаджете дизъюнкта. Докажите, что это сведение работает.)
Вам даны коробка и набор карточек, как показано на следующем рисунке. Из-за штырьков в коробке и вырезов на карточках каждую карточку можно вложить в коробку одним из двух способов. Каждая карточка содержит два столбца отверстий, часть из которых может быть не пробита. Головоломка решена, если все карточки размещены в коробке так, чтобы полностью закрыть дно коробки (то есть каждая позиция отверстия перекрыта хотя бы одной карточкой, у которой в этом месте нет отверстия). Пусть . Покажите, что PUZZLE NP-полна.
Раскраской графа называется присвоение цветов его вершинам так, чтобы никакие две смежные вершины не получили одинаковый цвет. Пусть
Покажите, что 3COLOR NP-полна. (Подсказка: используйте следующие три подграфа.)
Пусть SET-SPLITTING . Покажите, что SET-SPLITTING NP-полна.
Рассмотрим следующую задачу составления расписания. Вам даны список экзаменов , которые нужно расписать, и список студентов . Каждый студент сдаёт некоторое заданное подмножество этих экзаменов. Нужно распределить экзамены по слотам так, чтобы ни одному студенту не пришлось сдавать два экзамена в одном слоте. Задача состоит в том, чтобы определить, существует ли такое расписание, использующее только слотов. Сформулируйте эту задачу как язык и покажите, что этот язык NP-полон.
Эта задача навеяна однопользовательской игрой «Сапёр» (Minesweeper), обобщённой на произвольный граф. Пусть — неориентированный граф, каждая вершина которого либо содержит одну скрытую мину, либо пуста. Игрок выбирает вершины одну за другой. Если игрок выбирает вершину, содержащую мину, он проигрывает. Если игрок выбирает пустую вершину, он узнаёт число соседних вершин, содержащих мины. (Соседней называется вершина, соединённая с выбранной ребром.) Игрок выигрывает, если и когда все пустые вершины оказываются выбраны. В задаче согласованности мин вам дан граф вместе с числами, которыми помечены некоторые вершины . Нужно определить, возможно ли такое размещение мин на оставшихся вершинах, чтобы у любой вершины , помеченной числом , было ровно соседних вершин, содержащих мины. Сформулируйте эту задачу как язык и покажите, что она NP-полна.
ᴬ В следующей игре-пасьянсе вам дана доска размера . На каждой из её позиций лежит либо синий камень, либо красный камень, либо ничего. Вы играете, снимая камни с доски, пока в каждом столбце не останутся камни только одного цвета, а в каждой строке останется хотя бы один камень. Вы выигрываете, если добиваетесь этой цели. Выигрыш может быть возможен или невозможен в зависимости от начальной конфигурации. Пусть SOLITAIRE . Докажите, что SOLITAIRE NP-полна.
Вспомним, что при обсуждении тезиса Чёрча-Тьюринга мы ввели язык . Мы утверждали, но не доказывали, что неразрешим. В этой задаче требуется доказать другое свойство — а именно, что NP-труден. Задача называется NP-трудной, если все задачи из NP сводятся к ней за полиномиальное время, хотя сама она может не принадлежать NP. Таким образом, вам нужно показать, что все задачи из NP сводятся к за полиномиальное время.
Подмножество вершин графа называется доминирующим множеством, если каждая другая вершина смежна с некоторой вершиной этого подмножества. Пусть
Покажите, что эта задача NP-полна, приведя сведение от VERTEX-COVER.
- Покажите, что следующая задача NP-полна. Вам дано множество состояний и набор пар , где — попарно различные строки над , а — элементы (не обязательно различные). Определите, существует ли ДКА , для которого при каждом . Здесь — состояние, в которое переходит после чтения , начиная с состояния . (Заметим, что здесь неважно.)
Пусть . Заметим, что от не требуется останавливаться на всех ветвях. Покажите, что NP-полна.
- Покажите, что если , то существует алгоритм, работающий за полиномиальное время, который по выполнимой булевой формуле выдаёт выполняющее означивание. (Примечание: алгоритм, который от вас требуется, вычисляет функцию; но NP содержит языки, а не функции. Предположение влечёт, что SAT принадлежит P, так что проверка выполнимости разрешима за полиномиальное время. Но предположение не говорит, как именно выполняется эта проверка, и она может не выявлять выполняющие означивания. Вы должны показать, что их всё равно можно найти. Подсказка: используйте тест на выполнимость многократно, чтобы находить означивание бит за битом.)
- Покажите, что если , то можно раскладывать целые числа на множители за полиномиальное время. (См. примечание в задаче 7.38.)
ᴬ Покажите, что если , то существует алгоритм, работающий за полиномиальное время, который по неориентированному графу находит наибольшую клику, содержащуюся в этом графе. (См. примечание в задаче 7.38.)
В доказательстве теоремы Кука-Левина окном называется прямоугольник клеток размера . Объясните, почему доказательство не сработало бы, если бы мы использовали окна .
- Рассмотрим алгоритм MINIMIZE, который принимает на входе ДКА и выдаёт ДКА . MINIMIZE = «На входе , где — ДКА:
- Удалить все состояния , недостижимые из начального состояния. 2. Построить следующий неориентированный граф , вершинами которого являются состояния . 3. Провести в ребро, соединяющее каждое допускающее состояние с каждым недопускающим. Добавить дополнительные рёбра следующим образом. 4. Повторять, пока в не перестанут добавляться новые рёбра: 5. Для каждой пары различных состояний и автомата и каждого : 6. Добавить ребро в , если — ребро . 7. Для каждого состояния пусть — совокупность состояний . 8. Построить новый ДКА , где (если , в входит только одно из них), для каждого и , , а . 9. Вывести .»
Покажите, что и эквивалентны.
Покажите, что минимален — то есть никакой ДКА с меньшим числом состояний не распознаёт тот же язык. Вы можете использовать результат задачи 1.52 без доказательства.
Покажите, что MINIMIZE работает за полиномиальное время.
Для кнф-формулы с переменными и дизъюнктами покажите, что можно построить за полиномиальное время НКА с состояниями, допускающий все невыполняющие означивания, представленные в виде булевых строк длины . Сделайте вывод, что из следует, что НКА нельзя минимизировать за полиномиальное время.
- 2кнф-формула — это конъюнкция дизъюнктов, каждый из которых является дизъюнкцией не более чем двух литералов. Пусть . Покажите, что .
Измените алгоритм распознавания контекстно-свободных языков из доказательства теоремы 7.16 так, чтобы получить алгоритм за полиномиальное время, строящий дерево вывода для строки по данным строке и КС-грамматике, если эта грамматика порождает данную строку.
Будем говорить, что две булевы формулы эквивалентны, если у них одинаковое множество переменных, и они истинны на одном и том же множестве означиваний этих переменных (то есть они задают одну и ту же булеву функцию). Булева формула минимальна, если не существует эквивалентной ей более короткой булевой формулы. Пусть MIN-FORMULA — совокупность минимальных булевых формул. Покажите, что если , то MIN-FORMULA .
Иерархия разностей определяется рекурсивно так:
и
. (Здесь .)
Например, язык из — это разность двух языков из NP. Иногда называют DP (и могут записывать как ). Пусть
Покажите, что полна для DP. Иными словами, покажите, что принадлежит DP, и что каждый язык из DP сводится к за полиномиальное время.
- Пусть MAX-CLIQUE . Используя результат задачи 7.47, покажите, что MAX-CLIQUE DP-полна.
- Пусть — произвольная функция, для которой . Покажите, что TIME содержит только регулярные языки.
- Назовём регулярное выражение бесзвёздным, если оно не содержит операций звезды. Пусть . Покажите, что принадлежит coNP. Почему ваше рассуждение не работает для произвольных регулярных выражений?
- В этой задаче исследуется резолюция — метод доказательства невыполнимости кнф-формул. Пусть — формула в КНФ, где — её дизъюнкты. Пусть . На шаге резолюции мы берём два дизъюнкта и из , в которых некоторая переменная входит положительно в один из дизъюнктов и отрицательно в другой. Таким образом, и , где и — литералы. Составим новый дизъюнкт и уберём повторяющиеся литералы. Добавим этот новый дизъюнкт в . Повторяем шаги резолюции, пока нельзя получить дополнительные дизъюнкты. Если пустой дизъюнкт ( ) входит в , объявим невыполнимой. Будем говорить, что резолюция корректна, если она никогда не объявляет выполнимые формулы невыполнимыми. Будем говорить, что резолюция полна, если все невыполнимые формулы объявляются невыполнимыми.
Покажите, что резолюция корректна и полна.
Используя пункт (a), покажите, что .
- Покажите, что P замкнут относительно гомоморфизма тогда и только тогда, когда .
- Пусть — произвольный унарный язык. Покажите, что если NP-полна, то . (Подсказка: рассмотрите сведение за полиномиальное время от SAT к . Для формулы пусть — сведённая формула, в которой переменные и формулы приняли значения и 0 соответственно. Что произойдёт, если применить ко всем этим экспоненциально многим сведённым формулам?)
В ориентированном графе полустепенью захода вершины называется число входящих в неё рёбер, а полустепенью исхода — число выходящих из неё рёбер. Покажите, что следующая задача NP-полна. Дан неориентированный граф и выделенное подмножество его вершин; можно ли превратить в ориентированный граф, назначив направления всем его рёбрам так, чтобы у каждой вершины из полустепень захода или полустепень исхода была равна 0, а у каждой другой вершины полустепень захода была не менее 1?