Чому CNF використовується для SAT, а не для DNF?


22

Я не зовсім розумію, чому майже всі розв'язувачі SAT використовують CNF замість DNF. Мені здається, що розв’язувати SAT простіше за допомогою DNF. Зрештою, вам просто потрібно сканувати набір імплікантів і перевірити, чи містить один з них не як змінну, ні її заперечення. Для CNF немає такої простої процедури, як ця.


5
Не всі вирішувачі обмежень використовують CNF як вхідні дані. Деякі вважають за краще цього не робити, оскільки структура оригінального набору обмежень збережена.
Дейв Кларк

1
це запитання має помилкову думку і не думаю, що воно заслуговує на такий високий рейтинг, як це написано в даний час. SAT визначається як рішення формул CNF. є проблема вирішення DNF (ви навіть можете назвати це, якщо знайти задовольняючі завдання), але це не називається / прозваним SAT в CS. & imho це слід перенести на cs.se ... ще одна примітка - перетворення CNF в DNF і навпаки насправді дуже схоже на алгоритм стиснення, який погано спрацьовує в окремих випадках (що призводить до експоненціального вибуху). у розмірі)
vzn

10
@vzn: насправді "SAT" іноді використовується для позначення проблеми пошуку задовольняючої задачі для будь-якої булевої формули. CNF-SAT - це лише найцікавіший особливий випадок, тому ми, як правило, використовуємо "SAT" для позначення CNF-SAT, зокрема, як свого роду синечдохи. Звичайно, DNF-SAT ефективно вирішується так само, як CNF-TAUTOLOGY ефективно вирішується. Це питання, мабуть, випливає з того, щоб цього не усвідомлювати.
Ніль де Бодорап

Відповіді:


56

Скорочення підручника з SAT до 3SAT, завдяки Карпу, перетворює довільну булеву формулу у «еквівалентну» булеву формулу CNF Φ поліноміального розміру , таким, що Φ є задоволеним тоді і лише тоді, коли Φ є задоволеним. (Строго кажучи, ці дві формули не еквівалентні, тому що Φ ' має додаткові змінні, але значення Φ ' насправді не залежить від цих нових змінних.)ΦΦ ΦΦΦΦ

Не відоме подібне скорочення від довільних булевих формул до формул DNF; всі відомі перетворення збільшують розмір формули експоненціально. Більше того, якщо P = NP, таке зменшення неможливо!


afaik перетворення DNF в CNF і навпаки, не зовсім те саме, що P vs NP, хоча це, мабуть, стосується деяких важливих розділень класу складності (мабуть, для класів "більших" ніж NP) ... питання в тому, що це може призвести до експоненціальна кількість розмірів ... і в будь-якому випадку конверсія між CNF і DNF не є проблемою рішення ... Є кілька способів перетворити це на проблему вирішення ...
vzn

10
Я думаю, що JeffE в тому, що DNF-SAT знаходиться в P, тому він не може бути NP-повним, якщо P = NP.
Люк Матхісон

2
"всі відомі перетворення" не коректні з огляду на сучасні знання, афаік існують DNF <=> CNF формули / перетворення, які, очевидно, вимагають експоненціального пробілу простору незалежно від алгоритму ... здогадуйтесь, здавалося, обговорення CNF <=> перетворення DNF було дуже актуальним на це питання & ця відповідь натякає на це ... чи абревіатура "DNF-SAT" використовується десь у літературі? не пам'ятаю, бачив це сам ... мені здається, що це по суті заплутано для мене ... задоволення DNF - це проблема рішення, DNF <-> CNF конверсія - проблема функції, і відповідь не робить це розмежування занадто чітким; чудова відповідь би ...
vzn

@ Jɛ ff E: Ви не проти пояснити, що ви тут мали на увазі під "довільною булевою формулою"? Дивлячись на папір Карпа , стор. 92, SATISFIABILITY визначається за формулами CNF. Це не впливає на вашу відповідь на питання ОП, але я намагаюся переконатись, що немає більше загальних результатів для довільних булевих формул (тобто формул, які не обов'язково знаходяться в CNF). Спасибі
луга

22

Більшість важливих речей було сказано, але я хотів би підкреслити кілька моментів.

  1. задоволення формули DNF - P
  2. задоволення формули CNF - NP
  3. тестування, чи формула CNF є тавтологією P
  4. перевірка, чи формула DNF є тавтологією, є coNP
  5. заперечення DNF поступається CNF і навпаки

Таким чином, розв'язувачі SAT використовують CNF, оскільки вони націлені на задоволеність, і будь-яка формула може бути переведена на CNF, зберігаючи задоволеність у лінійний час.



1
@TayfunPay вони так роблять. Наприклад, . Якщо ви забороните пропозиції, що містять одну і ту ж змінну двічі, то існує одне представлення тавтології, що є порожнім набором пропозицій. {{¬xx}}
Міколас

3
@Tayfun, хоча я погоджуюся, що визначення зазвичай забороняють повторення змінних у пунктах, я не думаю, що я ніколи не бачив визначення, яке б заборонило порожній набір застережень. (І мені незрозуміло, чому ви хотіли б це зробити)
Миколас

2
@Tayfun 1) Ви могли б вказати мені на публікацію, в якій сказано, що в CNF немає тавтологій або що порожній набір пунктів не є CNF? 2) якщо ви забороняєте порожній набір застережень, ви також повинні заборонити порожнє застереження, і ви не можете представляти помилкові 3) якщо ви не дозволяєте істинно та / або помилково в CNF, ви втрачаєте властивість бути здатною представляти всі булеві функції, чому б ви хотіли це робити?
Міколас

1
"у жодному пункті не повинно бути повторень змінних чи літералів." --- що не забороняє порожні формули чи пропозиції. BTW Якщо ви забороните порожнє застереження, ви більше не можете робити докази спростування резолюції, які є досить важливою частиною автоматизованих міркувань.
Міколас

18

SAT-розв'язувачі не "використовують" CNF - їм (часто) дають CNF в якості вхідних даних і роблять усе можливе для вирішення CNF, який їм дають. Як вказує ваше запитання, представництво - це все - набагато простіше сказати, чи задоволений DNF, ніж CNF одного розміру.

Це призводить до питання, чому вирішувачі SAT не можуть просто перетворити заданий CNF в DNF і вирішити отриманий DNF, і спробувати це хороша вправа для розуміння питань представництва.


11

7 - го вересня 2013: доданий Далі відповідь, перевірка внизу сторінки


В основному, формула DNF - це диз'юнкція пунктів , де кожен пункт c i = l i , 1. . . l i , k - це сполука літералів. Назвемо пункт c i суперечливим тоді і лише тоді, коли він містить і буквальний l, і його заперечення ¬ l . Неважко помітити, що кожне незаперечне застереження просто кодує 2 n - kc1...cmci=li,1...li,kcil¬l2nkрозчини формули. Отже весь DNF - це лише перелік рішень. Формула може мати експоненціально багато рішень, тому відповідна формула DNF може мати експоненціально багато пропозицій. Спробуйте перетворити цю формулу CNF:

l1l2l3l4

l5l6l7l8

l9l10l11l12

l13l14l15l16

l17l18l19l20

до відповідної формули DNF: ви отримаєте занадто багато пропозицій. Одним словом: CNF є компактним, тоді як DNF - ні; CNF неявний, тоді як DNF явний.

Наступна проблема не є повною для NP: якщо для екземпляра DNF існує присвоєння змінних, які фальсифікують усі пропозиції?


4
Щоб отримати правильне форматування LaTeX, замініть \ і та \ або на \ land та \ lor (або \ wedge та \ vee).
Джефф

2
Немає нічого принципово більш компактного в перетворенні на звичайний CNF, істинним ключем до питання ОП є той факт, що ви можете створювати ці "невідповідні" функції CNF за допомогою допоміжних змінних. Ймовірно, існує подібне наближення, яке ви можете зробити з DNF для вирішення іншої проблеми замість тестування на відповідність. (функції
екві

1
Це розуміння Джорджіо Камерані не є гарним. Таке ж експоненціальне збільшення кількості пунктів може статися, якщо ви щось перетворите на CNF. Виберіть цей самий приклад і замініть "і" s на "або" s. Перетворення цього невеликого виразу DNF в CNF буде величезним саме таким же. Вони мають трохи ін-янського відношення до них.
ділбізеро

@dividebyzero: Я присвятив окрему відповідь, щоб вирішити ваші коментарі.
Джорджіо Камерані

6

Я щойно зрозумів ще одну річ, яка, сподіваюся, заслуговує окремої відповіді. Презумпція питання не зовсім правдива. Двійкова схема прийняття рішень (BDD) може розглядатися як компактне / вдосконалене представлення DNF. Були деякі вирішувачі SAT, що використовують BDD, але я вважаю, що вони більше не з'являються.

Є приємний документ Дарвіча та Маркіза, який вивчає різні властивості різних зображень булевих функцій.


4

Ця подальша відповідь мається на увазі як відгук на коментар ділібайзера до моєї попередньої відповіді.

Як говорить дивіденсеро, безумовно, правда, що CNF і DNF - це дві сторони однієї і тієї ж монети.

Коли вам доведеться знайти задовольняюче завдання, DNF є явним, оскільки він явно показує вам свої задовольняючі завдання (DNF Satisfiability належить до ), тоді як CNF неявний, оскільки він обгортає і закручує, щоб приховати свої задовольняючі завдання від ваших очей (CNF Satisfiability is N П - с о м п л е т е ). Ми не знаємо жодної процедури, яка могла б розгорнути і розмотати будь-яку формулу CNF в якусь невідповідну формулу DNF, яка не має експоненціальної величини. Це був пункт моєї попередньої відповіді (чий приклад мав на меті показати експоненціальний вибух, хоча, правда, такий приклад був не найкращим можливим вибором).PNPcomplete

І навпаки, коли вам доведеться знайти фальсифікуючу доручення, CNF є явним, оскільки він явно показує вам свої фальсифікуючі завдання (CNF Falsifiability належить до ), тоді як DNF неявний, оскільки він обгортає і віє, щоб приховати свої фальсифікуючі завдання від очей (DNF Falsifiability є N P - c o m p l e t e ). Ми не знаємо жодної процедури, яка могла б розгорнути і розмотати будь-яку формулу DNF в якусь вирівнювальну формулу CNF, яка не має експоненціального розміру.PNPcomplete

На одній кінцівці ми маємо суперечності, тобто незадовільні формули. На протилежному кінці ми маємо тавтології, тобто нездатні формули. У середині маємо формули, які є як задоволеними, так і фальсифікованими.

nk2nk

nk2nk

k=02nNPcomplete

k=02nNPcomplete

2n

2n

Під цим світлом стає зрозумілішим, чому Задовільність CNF та Falsifiability DNF є рівнозначними за обчислювальною твердістю. Тому що вони насправді є тією самою проблемою, оскільки основне завдання абсолютно однакове: сказати, чи є об'єднання декількох множин рівним простору всіх можливостей . Таке завдання приводить нас до ширшої сфери підрахунку, яка, на мою скромну думку, є однією з тих проспектів, які потрібно ретельно досліджувати, щоб сподіватися на досягнення незначного прогресу в цих проблемах (я сумніваюся, що подальше дослідження вирішувачів на основі вирішення проблем врешті-решт, це може принести революційні теоретичні досягнення, хоча воно, безумовно, продовжує приносити дивовижні практичні досягнення.

Складність такого завдання полягає в тому, що ці групи дико перетинаються, включно - виключення.

Наявність такого перекриття саме там, де знаходиться твердість підрахунку. Більше того, той факт, що ми дозволяємо цим множинам перекриватись, є тією самою причиною, яка дозволяє нам мати компактні формули, простір рішення яких все-таки є експоненціально великим.


4

Я вирішив перетворити всі ці відповіді в цій темі (особливо відповідь Джорджіо Камерані) в приємну таблицю, щоб подвійність видно одним поглядом:

DNFCNFtautology/unfalsifiabilitycoNP-completeP(each clause has a pair of P and ¬P)satisfiabilityP(sat. assignments are explicit)NP-completefalsifiabilityNP-completeP(fals. assignments are explicit)unsatisfiabilityP(each clause has a pair of P and ¬P)coNP-completeconversion to normal form, retaining equivalence()()conversion to normal form, retaining satisfiability()FPconversion to normal form, retaining falsiabilityFP()

(): Ці проблеми з пошуком, а також перетворення DNF в CNF (або навпаки з цього приводу) вимагають експоненціального часу через розмір виводу. Вони є у FPSPACE; насправді вони вирішуються функцією з бітовим графіком поліноміального часу, який настільки ж ефективний, як і для функції експоненціального розміру-виводу, але мені не відомо, що цей клас має ім'я. Звичайні поняття скорочення багаторазових часів працюють лише розумно для функцій з виведенням поліноміального розміру; незрозуміле їх застосування до цього випадку призведе до повного завершення всіх цих пошукових проблем FEXP, знову ж таки через розмір виводу.

(): Ці проблеми пошуку вирішуються функцією експоненціального часу з бітовим графіком полінома-часу, як у (). Однак вони також вирішуються вFPNP[1], and conversely, they are NP-hard under poly-time Turing reductions (many-one reductions make no sense here, as we are comparing a search problem with a decision problem).

Shortest answer to the question: showing satisfiability (solving SAT) via DNF can only be done in exponential time according to the table above.


1
What is a "PL formula" and what does "NF" mean?
Joshua Grochow

4
There are a few issues here. (1) I think by "unfalsifiability" you mean "tautology". (2) KNF should be CNF.
Huck Bennett

2
Still not clear what you mean by "NF (retain satisfiability)". Does that mean an algorithm A such that A(φ) is satisfiable if φ is, but if φ is unsatisfiable then A(φ) can be either, and furthermore for all satisfiable formulae φ, A(φ) has the same output? That's what I would think from your notation, but this problem wouldn't be in P for CNFs. So what do you mean?
Joshua Grochow

1
(1) "predicate logic" should be "propositional logic". (2) The conversions to normal forms are not decision problems, but function problems (or rather, search problems, as the "normal forms" are not unique). So, the decision classes given in the table are inappropriate.
Emil Jeřábek supports Monica

1
What is the Δ3P doing there?
Emil Jeřábek supports Monica
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.