Ремонт принтеров, сканнеров, факсов и остальной офисной техники


назад Оглавление вперед




[277]

набор. Подавая на вход схемы С значения переменных из этого набора, мы получим определенные значения на каждом проводе схемы. При этом выходным значением схемы будет 1. Эти значения и будут выполняющим набором для формулы Lp.

Напротив, если мы имеем некоторый выполняющий набор для формулы Lp, то он задаёт некоторое согласованное распределение значений по проводам схемы, при котором выходное значение равно 1, и потому схема выполнима.

Таким образом, CIRCUIT-SAT р SAT, что и требовалось доказать.

Выполнимость 3-CNF формул

Для многих задач удаётся доказать их NP-полноту, сведя к ним задачу о выполнимости формул. При этом удобно ограничить класс формул, выполнимость которых нас интересует - чем этот класс меньше, тем легче осуществить сведение. (При этом, конечно, задача о выполнимости формул из этого класса должна оставаться NP-полной.) На практике оказывается удобным класс формул в 3-конъюнктивной нормальной форме (3-conjunctive normal form), сокращённо обозначаемый 3-CNF. Такие формулы представляют собой конъюнкцию нескольких подформул, каждая из которых есть дизъюнкция ровно трёх различных литералов (литерал - это переменная или отрицание переменной).

Например, формула

(х\ V -1Жх V ж2) Л (ж3 V ж2 V ж4) Л (-1Ж1 V -1Ж3 V -*х±)

принадлежит классу 3-CNF. Первая из трёх ее дизъюнкций есть (х\ V -1Ж1 V ж2); она содержит литералы х\, -*х\ и -1Ж2.

Задача о выполнимости формул из класса 3-CNF, обозначаемая 3-CNF-SAT, является NP-полной со всеми вытекающими последствиями (вряд ли для неё есть полиномиальный алгоритм; её можно использовать для доказательства NP-полноты других задач).

Теорема 36.10

Задача проверки выполнимости формулы из класса 3-CNF NP-полна.

Доказательство

Язык 3-CNF-SAT принадлежит классу NP по тем же причинам, что и язык SAT (теорема 36.9). Чтобы доказать, что задача 3-CNF-SAT является NP-трудной, мы покажем, что SAT р 3-CNF-SAT, и останется сослаться на лемму 36.8.

Сведение будет использовать ту же идею, что и доказательство теоремы 36.9 (на самом деле можно было бы модифицировать это доказательство так, чтобы получалась формула из класса 3-CNF).

Пусть дана произвольная формула Lp. Построим «дерево разбора» этой формулы; листья этого дерева соответствуют литералам, а внутренние вершины - пропозициональным связкам. На рис. 36.9


показано такое дерево для формулы

ср = ((si -> ж2) V -((-1ж1 f-> ж3) V ж4)) Л -1Ж2.(36.3)

Мы считаем, что в формуле не встречаются дизъюнкции или конъюнкции более чем двух подформул (это ограничение не имеет значения, так как всегда можно расставить недостающие скобки). Таким образом, каждая внутренняя вершина имеет одного или двух потомков. Полученное дерево разбора можно рассматривать как схему, вычисляющую булеву функцию (соответствующую формуле).

Далее действуем как в теореме 36.9. Введем переменные уг- для каждой внутренней вершины построенной схемы. Теперь можно вместо исходной формулы написать конъюнкцию переменной, соответствующей корню дерева разбора, и подформул, утверждающих корректность операций в каждой вершине. Например, для формулы (36.3) получится формула

Ч> = у1ну1 & (у2 Л -№)) Л(у2 (у3 Vy4)) Л(у3 (a;i -> х2)) Л(у4 & (-.у5))

Л(у5 (ye Vi4)) Л(у6 (->a;i ж3)).

Полученная формула ср является конъюнкцией нескольких подформул, каждая из которых содержит не более 3 переменных - но эти подформулы ещё не являются дизъюнкциями трёх различных литералов.

Что ж, остаётся заменить каждую из этих подформул на конъюнкцию нескольких литералов. Это делается так: составим таблицу значений для этой подформулы (как на рис. 36.10) и посмотрим на строки, в которых подформула ложна (имеет значение 0). Для каждой из этих строк напишем дизъюнкцию трёх литералов, которая будет ложной как раз при этих значениях переменных, а затем напишем конъюнкцию этих дизъюнкций, которая будет эквивалентна рассмотренной подформуле от трёх переменных.

Для формулы из нашего примера таблица истинности показана на рис. 36.10, формула ложна в четырёх случаях, и записывая конъюнкции, исключающие каждый из этих четырёх случаев, получаем формулу

ьу1 V -ij/2 V ->ж2) Л (-.yi V у2 V -.ж2) Л (-.yi V у2 V ж2) Л (yt V ->у2 V ж2),

которая эквивалентна формуле (у\ <ФФ (у2 Л х2)).

Осталась ещё одна небольшая трудность - нам надо, чтобы каждая дизъюнкция содержала ровно три переменных. Для этого


можно добавить фиктивные переменные - или на этапе построения таблицы истинности, или сейчас: формулу pvg можно заменить на (р V q V г) Л (р V q V ->г), а формулу р можно заменить на

(р V q V г) Л (р V q V ~т) Л (р V -ig V г) Л (р V -ig V -т)Л

Легко видеть, что полученная в итоге формула выполнима в том и только том случае, когда выполнима исходная формула (на первом шаге это обосновывается как в теореме 36.9, а дальше мы заменяли формулы на эквивалентные). Ясно также, что длина новой формулы ограничена полиномом от длины старой и что все этапы нашего построения выполнимы за полиномиальное время.

Упражнения

36.4-1

Покажите, что обсуждаемый в начале доказательства теоремы 36.9 прямой метод сведения не годится, предъявив схему размера п, которая переводится в формулу экспоненциального (on п) размера.

36.4-2

Постройте формулу из класса 3-CNF, применив к формуле (36.3) алгоритм из доказательства теоремы 36.10. 36.4-3

Профессор утверждает, что он упростил доказательство теоремы 36.10 и придумал способ преобразовать произвольную формулу в логически эквивалентную ей формулу (с теми же переменными), принадлежащую классу 3-CNF. Почему он не прав?

36.4-4

Покажите, что задача определения, является ли данная пропозициональная формула тавтологией, NP-полна в классе со - NP. (Указание: см. упражнение 36.3-6.)

36.4-5

Покажите, что за полиномиальное время можно определить, является ли данная булева формула в «дизъюнктивной нормальной форме» (дизъюнкция подформул, каждая из которых является конъюнкцией литералов) выполнимой.

36.4-6

Пусть кто-то придумал полиномиальный алгоритм, проверяющий выполнимость любой пропозициональной формулы. Как можно использовать этот алгоритм для отыскания выполняющего набора (для данной выполнимой формулы) за полиномиальное время?

36.4-7

Рассмотрим язык 2-CNF-SAT, который состоит из выполнимых формул в конъюнктивной нормальной форме, в которых каждый конъюнктивный член является дизъюнкцией не более чем двух литералов. Докажите, что 2-CNF-SAT £ Р. Постройте как можно более быстрый разрешающий алгоритм. (Указание: Поскольку (ж У у) эквивалентно выражению (->ж -> у), можно свести 2-CNF-SAT к



[стр.Начало] [стр.1] [стр.2] [стр.3] [стр.4] [стр.5] [стр.6] [стр.7] [стр.8] [стр.9] [стр.10] [стр.11] [стр.12] [стр.13] [стр.14] [стр.15] [стр.16] [стр.17] [стр.18] [стр.19] [стр.20] [стр.21] [стр.22] [стр.23] [стр.24] [стр.25] [стр.26] [стр.27] [стр.28] [стр.29] [стр.30] [стр.31] [стр.32] [стр.33] [стр.34] [стр.35] [стр.36] [стр.37] [стр.38] [стр.39] [стр.40] [стр.41] [стр.42] [стр.43] [стр.44] [стр.45] [стр.46] [стр.47] [стр.48] [стр.49] [стр.50] [стр.51] [стр.52] [стр.53] [стр.54] [стр.55] [стр.56] [стр.57] [стр.58] [стр.59] [стр.60] [стр.61] [стр.62] [стр.63] [стр.64] [стр.65] [стр.66] [стр.67] [стр.68] [стр.69] [стр.70] [стр.71] [стр.72] [стр.73] [стр.74] [стр.75] [стр.76] [стр.77] [стр.78] [стр.79] [стр.80] [стр.81] [стр.82] [стр.83] [стр.84] [стр.85] [стр.86] [стр.87] [стр.88] [стр.89] [стр.90] [стр.91] [стр.92] [стр.93] [стр.94] [стр.95] [стр.96] [стр.97] [стр.98] [стр.99] [стр.100] [стр.101] [стр.102] [стр.103] [стр.104] [стр.105] [стр.106] [стр.107] [стр.108] [стр.109] [стр.110] [стр.111] [стр.112] [стр.113] [стр.114] [стр.115] [стр.116] [стр.117] [стр.118] [стр.119] [стр.120] [стр.121] [стр.122] [стр.123] [стр.124] [стр.125] [стр.126] [стр.127] [стр.128] [стр.129] [стр.130] [стр.131] [стр.132] [стр.133] [стр.134] [стр.135] [стр.136] [стр.137] [стр.138] [стр.139] [стр.140] [стр.141] [стр.142] [стр.143] [стр.144] [стр.145] [стр.146] [стр.147] [стр.148] [стр.149] [стр.150] [стр.151] [стр.152] [стр.153] [стр.154] [стр.155] [стр.156] [стр.157] [стр.158] [стр.159] [стр.160] [стр.161] [стр.162] [стр.163] [стр.164] [стр.165] [стр.166] [стр.167] [стр.168] [стр.169] [стр.170] [стр.171] [стр.172] [стр.173] [стр.174] [стр.175] [стр.176] [стр.177] [стр.178] [стр.179] [стр.180] [стр.181] [стр.182] [стр.183] [стр.184] [стр.185] [стр.186] [стр.187] [стр.188] [стр.189] [стр.190] [стр.191] [стр.192] [стр.193] [стр.194] [стр.195] [стр.196] [стр.197] [стр.198] [стр.199] [стр.200] [стр.201] [стр.202] [стр.203] [стр.204] [стр.205] [стр.206] [стр.207] [стр.208] [стр.209] [стр.210] [стр.211] [стр.212] [стр.213] [стр.214] [стр.215] [стр.216] [стр.217] [стр.218] [стр.219] [стр.220] [стр.221] [стр.222] [стр.223] [стр.224] [стр.225] [стр.226] [стр.227] [стр.228] [стр.229] [стр.230] [стр.231] [стр.232] [стр.233] [стр.234] [стр.235] [стр.236] [стр.237] [стр.238] [стр.239] [стр.240] [стр.241] [стр.242] [стр.243] [стр.244] [стр.245] [стр.246] [стр.247] [стр.248] [стр.249] [стр.250] [стр.251] [стр.252] [стр.253] [стр.254] [стр.255] [стр.256] [стр.257] [стр.258] [стр.259] [стр.260] [стр.261] [стр.262] [стр.263] [стр.264] [стр.265] [стр.266] [стр.267] [стр.268] [стр.269] [стр.270] [стр.271] [стр.272] [стр.273] [стр.274] [стр.275] [стр.276] [стр.277] [стр.278] [стр.279] [стр.280] [стр.281] [стр.282] [стр.283] [стр.284] [стр.285] [стр.286] [стр.287] [стр.288] [стр.289] [стр.290] [стр.291] [стр.292] [стр.293] [стр.294]