Доведення, що перетворення з CNF в DNF є NP-Hard


20

Як я можу довести, що перетворення від CNF до DNF є NP-Hard?

Я не прошу відповіді, лише кілька пропозицій про те, як слід довести це.


5
Для глибокого аналізу подивіться цей документ "Про перетворення CNF в DNF"
Vor

@ A.Schulz: оригінальне визначення у статті Стіва Кука визначає його за допомогою скорочень Кука. Здається, саме таке зменшення використовується під час обговорення загальної твердості NP en.wikipedia.org/wiki/NP-hard
Kaveh

Перетворення CNF <-> DNF не є рішенням, reqd - це мова. більше це функція з введенням і виведенням, і її потрібно перетворити на проблему рішення, щоб запитати, чи є вона в NP і т. д. Думаю, що проблема, що не приймає рішення, була доведена до експоненціального розміру [наприклад у Vors ref], тому Повна версія проблеми рішення (якщо така є), ймовірно, є суттєвим спрощенням. також як Vors ref показує фактичну складність CNF <-> DNF конверсія є активною дослідницькою проблемою ... зауважте, є деяка схожість на ефективність алгоритму стиснення ...
vzn

2
@vzn Питання задає, чи це NP- твердий, а не NP- незавершений. Це означає, що членство в НП не потрібно, тому це не повинно бути проблемою рішення.
Девід Річербі

Відповіді:


18

Неофіційно:

У DNF ви можете вибрати будь-який пункт істинного, щоб зробити формулу правдивою. Це означає, що DNF, еквівалентний певній CNF, є в основному перерахуванням усіх розв'язків булевих сидінь на CNF. Зауважте, може бути експоненціальна кількість рішень. Оскільки розв’язання булевого sat для CNF для одного рішення є NP-завершеним, перехід на DNF по суті означає рішення для кожного рішення. Таким чином, це як мінімум так важко, як булева SAT, і, таким чином, NP-важко.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.