7.2

Задачи

[42/95%]
Показать
LaTeX
Задача 7.13

Пусть

MODEXP⁡={⟨a,b,c,p⟩∣a,b,c и p — положительные двоичные целые числа, такие что ab≡c( mod p)}. \begin{gathered} \operatorname {MODEXP}=\left\{ \langle a, b, c, p\rangle \mid a, b, c \text{ и } p \text{ — положительные двоичные целые числа,} \\ \text{ такие что } a^{b} \equiv c(\bmod p)\right\} . \end{gathered}

Покажите, что MODEXP⁡∈P\operatorname {MODEXP} \in \mathrm{P}. (Заметим, что самый очевидный алгоритм не работает за полиномиальное время. Подсказка: сначала попробуйте случай, когда bb — степень двойки.)

?
Задача 7.14

Перестановкой множества {1,…,k}\left\{ 1, \ldots , k\right\} называется взаимно однозначная функция этого множества на себя. Когда pp — перестановка, ptp^{t} означает композицию pp с самой собой tt раз. Пусть

 PERM-POWER ={⟨p,q,t⟩∣p=qt, где p и q — перестановкимножества {1,…,k}, а t — двоичное целое число}. \begin{array}{r} \text{ PERM-POWER }=\left\{ \langle p, q, t\rangle \mid p=q^{t}\text{, где } p \text{ и } q \text{ — перестановки} \\ \text{множества } \left\{ 1, \ldots , k\right\} \text{, а } t \text{ — двоичное целое число}\right\} . \end{array}

Покажите, что PERM-POWER ∈P\in \mathrm{P}. (Заметим, что самый очевидный алгоритм не работает за полиномиальное время. Подсказка: сначала попробуйте случай, когда tt — степень двойки.)

?
Задача 7.15

Покажите, что P замкнут относительно операции звезды. (Подсказка: используйте динамическое программирование. На входе y=y1⋯yny=y_{1} \cdots y_{n}, где yi∈Σy_{i} \in \Sigma, постройте таблицу, указывающую для каждой пары i≤ji \leq j, принадлежит ли подстрока yi⋯yjy_{i} \cdots y_{j} языку A∗A^{*} для некоторого A∈PA \in \mathrm{P}.)

?
Задача 7.16

ᴬ Покажите, что NP замкнут относительно операции звезды.

?
Задача 7.17

Пусть UNARY-SSUM — задача о сумме подмножества, в которой все числа представлены в унарной системе счисления. Почему доказательство NP-полноты для SUBSET-SUM не показывает, что UNARY-SSUM NP-полна? Покажите, что UNARY-SSUM ∈P\in \mathrm{P}.

?
Задача 7.18

Покажите, что если P=NP\mathrm{P}=\mathrm{NP}, то каждый язык A∈PA \in \mathrm{P}, кроме A=∅A=\emptyset и A=Σ∗A=\Sigma^{*}, NP-полон.

?
Задача 7.19
  • Покажите, что PRIMES ={m∣m — простое число в двоичной записи}∈NP=\left\{ m \mid m\text{ — простое число в двоичной записи}\right\} \in \mathrm{NP}. (Подсказка: при p>1p>1 мультипликативная группа Zp∗={x∣x взаимно просто с p и 1≤x<p}Z_{p}^{*}=\left\{ x \mid x\text{ взаимно просто с }p\text{ и }1 \leq x<p\right\} является циклической и имеет порядок p−1p-1 тогда и только тогда, когда pp простое. Вы можете использовать этот факт без обоснования. Более сильное утверждение PRIMES ∈P\in \mathrm{P} в настоящее время известно как истинное, но доказать его сложнее.)
?
Задача 7.20

Мы обычно полагаем, что PATH не является NP-полной. Объясните, на чём основано это убеждение. Покажите, что доказательство того, что PATH не NP-полна, доказало бы P≠NP\mathrm{P} \neq \mathrm{NP}.

?
Задача 7.21

Пусть GG обозначает неориентированный граф. Также пусть

\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}

и

LPATH={⟨G,a,b,k⟩∣G содержит простой путьдлины не менее k из a в b}. \begin{array}{r} L P A T H=\left\{ \langle G, a, b, k\rangle \mid G \text{ содержит простой путь} \\ \text{длины не менее } k \text{ из } a \text{ в } b\right\} . \end{array}
?
(a)

Покажите, что SPATH ∈P\in \mathrm{P}.

(b)

Покажите, что LPATH NP-полна.

Задача 7.22

Пусть DOUBLE-SAT ={⟨ϕ⟩∣ϕ имеет хотя бы два выполняющих означивания}=\left\{ \langle \phi \rangle \mid \phi \text{ имеет хотя бы два выполняющих означивания}\right\}. Покажите, что DOUBLE-SAT NP-полна.

?
Задача 7.23

ᴬ Пусть HALF-CLIQUE ={⟨G⟩∣G — неориентированный граф, имеющий полный подграф не менее чем на m/2 вершинах, где m — число вершин G}=\left\{ \langle G\rangle \mid G\text{ — неориентированный граф, имеющий полный подграф не менее чем на }m / 2\text{ вершинах, где }m\text{ — число вершин }G\right\}. Покажите, что HALF-CLIQUE NP-полна.

?
Задача 7.24

Пусть CNFk={⟨ϕ⟩∣ϕ — выполнимая кнф-формула, в которой каждая переменная встречается не более чем в k местах}C N F_{k}=\left\{ \langle \phi \rangle \mid \phi \text{ — выполнимая кнф-формула, в которой каждая переменная встречается не более чем в }k\text{ местах}\right\}.

?
(a)

Покажите, что CNF2∈PC N F_{2} \in \mathrm{P}.

(b)

Покажите, что CNF3C N F_{3} NP-полна.

Задача 7.25

Пусть CNFH={⟨ϕ⟩∣ϕ — выполнимая кнф-формула, в которой каждый дизъюнкт содержит произвольное число литералов, но не более одного отрицательного литерала}C N F_{\mathrm{H}}=\left\{ \langle \phi \rangle \mid \phi \text{ — выполнимая кнф-формула, в которой каждый дизъюнкт содержит произвольное число литералов, но не более одного отрицательного литерала}\right\}. Покажите, что CNFH∈PC N F_{\mathrm{H}} \in \mathrm{P}.

?
Задача 7.26

Пусть ϕ\phi — 3кнф-формула. ≠\neq-означиванием переменных ϕ\phi называется такое означивание, при котором каждый дизъюнкт содержит два литерала с неравными истинностными значениями. Иными словами, ≠\neq-означивание выполняет ϕ\phi, не присваивая значение «истина» всем трём литералам ни в одном дизъюнкте.

?
(a)

Покажите, что отрицание любого ≠\neq-означивания для ϕ\phi также является ≠\neq-означиванием.

(b)

Пусть ≠\neqSAT — совокупность 3кнф-формул, имеющих ≠\neq-означивание. Покажите, что сведение за полиномиальное время от 3SAT к ≠\neqSAT получается заменой каждого дизъюнкта cic_{i}

(y1∨y2∨y3) \left(y_{1} \vee y_{2} \vee y_{3}\right)

на два дизъюнкта

(y1∨y2∨zi) и (zi‾∨y3∨b), \left(y_{1} \vee y_{2} \vee z_{i}\right) \quad \text{ и } \quad \left(\overline{z_{i}} \vee y_{3} \vee b\right),

где ziz_{i} — новая переменная для каждого дизъюнкта cic_{i}, а bb — единственная дополнительная новая переменная.

(c)

Сделайте вывод, что ≠SAT\neq SAT NP-полна.

Задача 7.27

Разрезом в неориентированном графе называется разбиение вершин VV на два непересекающихся подмножества SS и TT. Размером разреза называется число рёбер, у которых один конец лежит в SS, а другой — в TT. Пусть

MAX−CUT={⟨G,k⟩∣G имеет разрез размера k или более}. M A X-C U T=\left\{ \langle G, k\rangle \mid G \text{ имеет разрез размера } k \text{ или более}\right\} .

Покажите, что MAX-CUT NP-полна. Вы можете использовать результат задачи 7.26. (Подсказка: покажите, что ≠SAT≤P\neq SAT \leq_{\mathrm{P}} MAX-CUT. Гаджет переменной xx — это совокупность из 3c3c вершин, помеченных xx, и ещё 3c3c вершин, помеченных xˉ\bar{x}, где cc — число дизъюнктов. Все вершины, помеченные xx, соединены со всеми вершинами, помеченными xˉ\bar{x}. Гаджет дизъюнкта — это треугольник из трёх рёбер, соединяющих три вершины, помеченные литералами, входящими в дизъюнкт. Не используйте одну и ту же вершину более чем в одном гаджете дизъюнкта. Докажите, что это сведение работает.)

?
Задача 7.28

Вам даны коробка и набор карточек, как показано на следующем рисунке. Из-за штырьков в коробке и вырезов на карточках каждую карточку можно вложить в коробку одним из двух способов. Каждая карточка содержит два столбца отверстий, часть из которых может быть не пробита. Головоломка решена, если все карточки размещены в коробке так, чтобы полностью закрыть дно коробки (то есть каждая позиция отверстия перекрыта хотя бы одной карточкой, у которой в этом месте нет отверстия). Пусть PUZZLE⁡={⟨c1,…,ck⟩∣каждая ci представляет карточку, и для этого набора карточек существует решение}\operatorname {PUZZLE}=\left\{ \left\langle c_{1}, \ldots , c_{k}\right\rangle \mid \text{каждая } c_{i} \text{ представляет карточку, и для этого набора карточек существует решение}\right\}. Покажите, что PUZZLE NP-полна.

?
Задача 7.29

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

3COLOR={⟨G⟩∣G раскрашивается в 3 цвета}. 3 C O L O R=\left\{ \langle G\rangle \mid G \text{ раскрашивается в 3 цвета}\right\} .

Покажите, что 3COLOR NP-полна. (Подсказка: используйте следующие три подграфа.)

?
Задача 7.30

Пусть SET-SPLITTING ={⟨S,C⟩∣S — конечное множество, а C={C1,…,Ck} — набор подмножеств S, при некотором k>0, такой что элементы S можно раскрасить в красный или синий цвет так, чтобы ни одно Ci не оказалось целиком одного цвета}=\left\{ \langle S, C\rangle \mid S \text{ — конечное множество, а } C=\left\{ C_{1}, \ldots , C_{k}\right\} \text{ — набор подмножеств } S, \text{ при некотором } k>0, \text{ такой что элементы } S \text{ можно раскрасить в красный или синий цвет так, чтобы ни одно } C_{i} \text{ не оказалось целиком одного цвета}\right\}. Покажите, что SET-SPLITTING NP-полна.

?
Задача 7.31

Рассмотрим следующую задачу составления расписания. Вам даны список экзаменов F1,…,FkF_{1}, \ldots , F_{k}, которые нужно расписать, и список студентов S1,…,SlS_{1}, \ldots , S_{l}. Каждый студент сдаёт некоторое заданное подмножество этих экзаменов. Нужно распределить экзамены по слотам так, чтобы ни одному студенту не пришлось сдавать два экзамена в одном слоте. Задача состоит в том, чтобы определить, существует ли такое расписание, использующее только hh слотов. Сформулируйте эту задачу как язык и покажите, что этот язык NP-полон.

?
Задача 7.32

Эта задача навеяна однопользовательской игрой «Сапёр» (Minesweeper), обобщённой на произвольный граф. Пусть GG — неориентированный граф, каждая вершина которого либо содержит одну скрытую мину, либо пуста. Игрок выбирает вершины одну за другой. Если игрок выбирает вершину, содержащую мину, он проигрывает. Если игрок выбирает пустую вершину, он узнаёт число соседних вершин, содержащих мины. (Соседней называется вершина, соединённая с выбранной ребром.) Игрок выигрывает, если и когда все пустые вершины оказываются выбраны. В задаче согласованности мин вам дан граф GG вместе с числами, которыми помечены некоторые вершины GG. Нужно определить, возможно ли такое размещение мин на оставшихся вершинах, чтобы у любой вершины vv, помеченной числом mm, было ровно mm соседних вершин, содержащих мины. Сформулируйте эту задачу как язык и покажите, что она NP-полна.

?
Задача 7.33

ᴬ В следующей игре-пасьянсе вам дана доска размера m×mm \times m. На каждой из её m2m^{2} позиций лежит либо синий камень, либо красный камень, либо ничего. Вы играете, снимая камни с доски, пока в каждом столбце не останутся камни только одного цвета, а в каждой строке останется хотя бы один камень. Вы выигрываете, если добиваетесь этой цели. Выигрыш может быть возможен или невозможен в зависимости от начальной конфигурации. Пусть SOLITAIRE ={⟨G⟩∣G — выигрышная конфигурация игры}=\left\{ \langle G\rangle \mid G\text{ — выигрышная конфигурация игры}\right\}. Докажите, что SOLITAIRE NP-полна.

?
Задача 7.34

Вспомним, что при обсуждении тезиса Чёрча-Тьюринга мы ввели язык D={⟨p⟩∣p — многочлен от нескольких переменных, имеющий целочисленный корень}D=\left\{ \langle p\rangle \mid p\text{ — многочлен от нескольких переменных, имеющий целочисленный корень}\right\}. Мы утверждали, но не доказывали, что DD неразрешим. В этой задаче требуется доказать другое свойство DD — а именно, что DD NP-труден. Задача называется NP-трудной, если все задачи из NP сводятся к ней за полиномиальное время, хотя сама она может не принадлежать NP. Таким образом, вам нужно показать, что все задачи из NP сводятся к DD за полиномиальное время.

?
Задача 7.35

Подмножество вершин графа GG называется доминирующим множеством, если каждая другая вершина GG смежна с некоторой вершиной этого подмножества. Пусть

 DOMINATING-SET ={⟨G,k⟩∣G имеет доминирующее множество из k вершин}. \text{ DOMINATING-SET }=\left\{ \langle G, k\rangle \mid G \text{ имеет доминирующее множество из } k \text{ вершин}\right\} .

Покажите, что эта задача NP-полна, приведя сведение от VERTEX-COVER.

?
Задача 7.36
  • Покажите, что следующая задача NP-полна. Вам дано множество состояний Q={q0,q1,…,ql}Q=\left\{ q_{0}, q_{1}, \ldots , q_{l}\right\} и набор пар {(s1,r1),…,(sk,rk)}\left\{ \left(s_{1}, r_{1}\right), \ldots ,\left(s_{k}, r_{k}\right)\right\}, где sis_{i} — попарно различные строки над Σ={0,1}\Sigma =\left\{ 0,1\right\}, а rir_{i} — элементы QQ (не обязательно различные). Определите, существует ли ДКА M=(Q,Σ,δ,q0,F)M=\left(Q, \Sigma , \delta , q_{0}, F\right), для которого δ(q0,si)=ri\delta \left(q_{0}, s_{i}\right)=r_{i} при каждом ii. Здесь δ(q,s)\delta (q, s) — состояние, в которое переходит MM после чтения ss, начиная с состояния qq. (Заметим, что FF здесь неважно.)
?
Задача 7.37

Пусть U={⟨M,x,#t⟩∣НМТ M допускает x не более чем за t шагов хотя бы на одной ветви}U=\left\{ \left\langle M, x, \#^{t}\right\rangle \mid \text{НМТ } M \text{ допускает } x \text{ не более чем за } t \text{ шагов хотя бы на одной ветви}\right\}. Заметим, что от MM не требуется останавливаться на всех ветвях. Покажите, что UU NP-полна.

?
Задача 7.38
  • Покажите, что если P=NP\mathrm{P}=\mathrm{NP}, то существует алгоритм, работающий за полиномиальное время, который по выполнимой булевой формуле выдаёт выполняющее означивание. (Примечание: алгоритм, который от вас требуется, вычисляет функцию; но NP содержит языки, а не функции. Предположение P=NP\mathrm{P}=\mathrm{NP} влечёт, что SAT принадлежит P, так что проверка выполнимости разрешима за полиномиальное время. Но предположение не говорит, как именно выполняется эта проверка, и она может не выявлять выполняющие означивания. Вы должны показать, что их всё равно можно найти. Подсказка: используйте тест на выполнимость многократно, чтобы находить означивание бит за битом.)
?
Задача 7.39
  • Покажите, что если P=NP\mathrm{P}=\mathrm{NP}, то можно раскладывать целые числа на множители за полиномиальное время. (См. примечание в задаче 7.38.)
?
Задача 7.40

ᴬ Покажите, что если P=NP\mathrm{P}=\mathrm{NP}, то существует алгоритм, работающий за полиномиальное время, который по неориентированному графу находит наибольшую клику, содержащуюся в этом графе. (См. примечание в задаче 7.38.)

?
Задача 7.41

В доказательстве теоремы Кука-Левина окном называется прямоугольник клеток размера 2×32 \times 3. Объясните, почему доказательство не сработало бы, если бы мы использовали окна 2×22 \times 2.

?
Задача 7.42
  • Рассмотрим алгоритм MINIMIZE, который принимает на входе ДКА MM и выдаёт ДКА M′M^{\prime }. MINIMIZE = «На входе ⟨M⟩\langle M\rangle, где M=(Q,Σ,δ,q0,A)M=\left(Q, \Sigma , \delta , q_{0}, A\right) — ДКА:
  1. Удалить все состояния MM, недостижимые из начального состояния. 2. Построить следующий неориентированный граф GG, вершинами которого являются состояния MM. 3. Провести в GG ребро, соединяющее каждое допускающее состояние с каждым недопускающим. Добавить дополнительные рёбра следующим образом. 4. Повторять, пока в GG не перестанут добавляться новые рёбра: 5. Для каждой пары различных состояний qq и rr автомата MM и каждого a∈Σa \in \Sigma: 6. Добавить ребро (q,r)(q, r) в GG, если (δ(q,a),δ(r,a))(\delta (q, a), \delta (r, a)) — ребро GG. 7. Для каждого состояния qq пусть [q][q] — совокупность состояний [q]={r∈Q∣ ни одно ребро не соединяет q и r в G}[q]=\left\{ r \in Q \mid \text{ ни одно ребро не соединяет }q\text{ и }r\text{ в }G\right\}. 8. Построить новый ДКА M′=(Q′,Σ,δ′,q0′,A′)M^{\prime }=\left(Q^{\prime }, \Sigma , \delta^{\prime }, q_{0}{ }^{\prime }, A^{\prime }\right), где Q′={[q]∣q∈Q}Q^{\prime }=\left\{ [q] \mid q \in Q\right\} (если [q]=[r][q]=[r], в Q′Q^{\prime } входит только одно из них), δ′([q],a)=[δ(q,a)]\delta^{\prime }([q], a)=[\delta (q, a)] для каждого q∈Qq \in Q и a∈Σa \in \Sigma, q0′=[q0]q_{0}{ }^{\prime }=\left[q_{0}\right], а A′={[q]∣q∈A}A^{\prime }=\left\{ [q] \mid q \in A\right\}. 9. Вывести ⟨M′⟩\left\langle M^{\prime }\right\rangle.»
?
(a)

Покажите, что MM и M′M^{\prime } эквивалентны.

(b)

Покажите, что M′M^{\prime } минимален — то есть никакой ДКА с меньшим числом состояний не распознаёт тот же язык. Вы можете использовать результат задачи 1.52 без доказательства.

(c)

Покажите, что MINIMIZE работает за полиномиальное время.

Задача 7.43

Для кнф-формулы ϕ\phi с mm переменными и cc дизъюнктами покажите, что можно построить за полиномиальное время НКА с O(cm)O(c m) состояниями, допускающий все невыполняющие означивания, представленные в виде булевых строк длины mm. Сделайте вывод, что из P≠NP\mathrm{P} \neq \mathrm{NP} следует, что НКА нельзя минимизировать за полиномиальное время.

?
Задача 7.44
  • 2кнф-формула — это конъюнкция дизъюнктов, каждый из которых является дизъюнкцией не более чем двух литералов. Пусть 2SAT={⟨ϕ⟩∣ϕ — выполнимая 2кнф-формула}2 S A T=\left\{ \langle \phi \rangle \mid \phi \text{ — выполнимая 2кнф-формула}\right\}. Покажите, что 2SAT∈P2 S A T \in \mathrm{P}.
?
Задача 7.45

Измените алгоритм распознавания контекстно-свободных языков из доказательства теоремы 7.16 так, чтобы получить алгоритм за полиномиальное время, строящий дерево вывода для строки по данным строке и КС-грамматике, если эта грамматика порождает данную строку.

?
Задача 7.46

Будем говорить, что две булевы формулы эквивалентны, если у них одинаковое множество переменных, и они истинны на одном и том же множестве означиваний этих переменных (то есть они задают одну и ту же булеву функцию). Булева формула минимальна, если не существует эквивалентной ей более короткой булевой формулы. Пусть MIN-FORMULA — совокупность минимальных булевых формул. Покажите, что если P=NP\mathrm{P}=\mathrm{NP}, то MIN-FORMULA ∈P\in \mathrm{P}.

?
Задача 7.47

Иерархия разностей DiP\mathrm{D}_{i} \mathrm{P} определяется рекурсивно так:

?
(a)

D1P=NP\mathrm{D}_{1} \mathrm{P}=\mathrm{NP} и

(b)

DiP={A∣A=B\C для B из NP и C из Di−1P}\mathrm{D}_{i} \mathrm{P}=\left\{ A \mid A=B \backslash C \text{ для } B \text{ из NP и } C \text{ из } \mathrm{D}_{i-1} \mathrm{P}\right\}. (Здесь B\C=B∩CˉB \backslash C=B \cap \bar{C}.)

Например, язык из D2P\mathrm{D}_{2} \mathrm{P} — это разность двух языков из NP. Иногда D2P\mathrm{D}_{2} \mathrm{P} называют DP (и могут записывать как DP\mathrm{D}^{\mathrm{P}}). Пусть

Z={⟨G1,k1,G2,k2⟩∣G1 имеет k1-клику, а G2 не имеет k2-клики}.  Z=\left\{ \left\langle G_{1}, k_{1}, G_{2}, k_{2}\right\rangle \mid G_{1} \text{ имеет } k_{1} \text{-клику, а } G_{2} \text{ не имеет } k_{2} \text{-клики}\right\} \text{. }

Покажите, что ZZ полна для DP. Иными словами, покажите, что ZZ принадлежит DP, и что каждый язык из DP сводится к ZZ за полиномиальное время.

Задача 7.48
  • Пусть MAX-CLIQUE ={⟨G,k⟩∣ наибольшая клика в G имеет размер ровно k}=\left\{ \langle G, k\rangle \mid \text{ наибольшая клика в }G\text{ имеет размер ровно }k\right\}. Используя результат задачи 7.47, покажите, что MAX-CLIQUE DP-полна.
?
Задача 7.49
  • Пусть f:N⟶Nf: \mathcal{N} \longrightarrow \mathcal{N} — произвольная функция, для которой f(n)=o(nlog⁡n)f(n)=o(n \log n). Покажите, что TIME(f(n))(f(n)) содержит только регулярные языки.
?
Задача 7.50
  • Назовём регулярное выражение бесзвёздным, если оно не содержит операций звезды. Пусть EQSF-REX ={⟨R,S⟩∣R и S — эквивалентные бесзвёздные регулярные выражения}E Q_{\text{SF-REX }}=\left\{ \langle R, S\rangle \mid R\text{ и }S\text{ — эквивалентные бесзвёздные регулярные выражения}\right\}. Покажите, что EQSF-REX E Q_{\text{SF-REX }} принадлежит coNP. Почему ваше рассуждение не работает для произвольных регулярных выражений?
?
Задача 7.51
  • В этой задаче исследуется резолюция — метод доказательства невыполнимости кнф-формул. Пусть ϕ=C1∧C2∧⋯∧Cm\phi =C_{1} \wedge C_{2} \wedge \cdots \wedge C_{m} — формула в КНФ, где CiC_{i} — её дизъюнкты. Пусть C={Ci∣Ci — дизъюнкт ϕ}\mathcal{C}=\left\{ C_{i} \mid C_{i} \text{ — дизъюнкт } \phi \right\}. На шаге резолюции мы берём два дизъюнкта CaC_{a} и CbC_{b} из C\mathcal{C}, в которых некоторая переменная xx входит положительно в один из дизъюнктов и отрицательно в другой. Таким образом, Ca=(x∨y1∨y2∨⋯∨yk)C_{a}=\left(x \vee y_{1} \vee y_{2} \vee \cdots \vee y_{k}\right) и Cb=(xˉ∨z1∨z2∨⋯∨zl)C_{b}=\left(\bar{x} \vee z_{1} \vee z_{2} \vee \cdots \vee z_{l}\right), где yiy_{i} и ziz_{i} — литералы. Составим новый дизъюнкт (y1∨y2∨⋯∨yk∨z1∨z2∨⋯∨zl)\left(y_{1} \vee y_{2} \vee \cdots \vee y_{k} \vee z_{1} \vee z_{2} \vee \cdots \vee z_{l}\right) и уберём повторяющиеся литералы. Добавим этот новый дизъюнкт в C\mathcal{C}. Повторяем шаги резолюции, пока нельзя получить дополнительные дизъюнкты. Если пустой дизъюнкт ( ) входит в C\mathcal{C}, объявим ϕ\phi невыполнимой. Будем говорить, что резолюция корректна, если она никогда не объявляет выполнимые формулы невыполнимыми. Будем говорить, что резолюция полна, если все невыполнимые формулы объявляются невыполнимыми.
?
(a)

Покажите, что резолюция корректна и полна.

(b)

Используя пункт (a), покажите, что 2SAT∈P2 S A T \in \mathrm{P}.

Задача 7.52
  • Покажите, что P замкнут относительно гомоморфизма тогда и только тогда, когда P=NP\mathrm{P}=\mathrm{NP}.
?
Задача 7.53
  • Пусть A⊆1∗A \subseteq 1^{*} — произвольный унарный язык. Покажите, что если AA NP-полна, то P=NP\mathrm{P}=\mathrm{NP}. (Подсказка: рассмотрите сведение ff за полиномиальное время от SAT к AA. Для формулы ϕ\phi пусть ϕ0100\phi_{0100} — сведённая формула, в которой переменные x1,x2,x3x_{1}, x_{2}, x_{3} и x4x_{4} формулы ϕ\phi приняли значения 0,1,00,1,0 и 0 соответственно. Что произойдёт, если применить ff ко всем этим экспоненциально многим сведённым формулам?)
?
Задача 7.54

В ориентированном графе полустепенью захода вершины называется число входящих в неё рёбер, а полустепенью исхода — число выходящих из неё рёбер. Покажите, что следующая задача NP-полна. Дан неориентированный граф GG и выделенное подмножество CC его вершин; можно ли превратить GG в ориентированный граф, назначив направления всем его рёбрам так, чтобы у каждой вершины из CC полустепень захода или полустепень исхода была равна 0, а у каждой другой вершины GG полустепень захода была не менее 1?

?