Перетворення DNF в CNF: легко або важко


10

Щодо потоку Доведення, що перетворення з CNF в DNF є NP-Hard (і пов'язаної з ним математичної нитки ):

Як щодо іншого напрямку, від DNF до CNF? Легко чи важко?

На сторінці 2 цього документу вони, начебто, натякають, що обидва напрямки однаково важкі, коли кажуть: " Ми зацікавлені в максимальному розмірі розміру при переході від представлення CNF до представлення DNF (або навпаки) ".

Але DNF-SAT знаходиться в P, а CNF-SAT є NP- незавершеним. Отже, даючи вираз DNF , має бути виразний вираз CNF , довжина якого є поліномом довжини . І можна здійснити за багато разів. Це правильно?ϕ 2 ϕ 1 ϕ 1ϕ 2ϕ1ϕ2ϕ1ϕ1ϕ2

Змінити Останні зміни внесено еквівалент в equisatisfiable (тобто, додаткові змінні допускаються в ).ϕ2


Ви можете перейти від будь-якої формули до CNF, яка задовольняється саме тоді, коли початкова формула перебуває в поліноміальний час. Ось чому CNF-SAT не є повноцінним. Будь-який екземпляр SAT (проблема, повна NP) може бути зведений до CNF-SAT за багаточлен. Я думаю, що саме його переклад не просто збереження задоволеності завжди може призвести до експоненціального вибуху, але я не можу цього точно сказати.
Джейк

Дивіться en.wikipedia.org/wiki/Tseitin_transformation . По суті, якщо ви дозволите введення допоміжних змінних, ви можете зробити це перетворення в полі-час (збільшуючи розмір формули максимум лінійно).
jschnei

Вам потрібно буде вирішити, чи потрібно дозволити конверсії вводити нові змінні чи перетворена формула повинна посилатися на той самий набір змінних (без нових змінних). Це тонкий момент, який драматично впливає на відповідь. Отже, про що ви хочете запитати?
DW

@Jake Ви можете перейти від будь-якої формули до вирівняного CNF, тому що CNF-SAT не є повноцінним. Це не дуже "чому" CNF-SAT є NP-завершеним: звичайний доказ того, що CNF-SAT є NP-завершеним, не передбачає перекладу довільних формул до CNF; скоріше, це переводить машини Тьюрінга у формули CNF.
Девід Ріхербі

Для ДВ та інших - я мав на увазі вирівняність . У цьому сенсі здається, що вирівняність - це лише зменшення (в даному випадку до іншої булевої формули).
Мартін Сеймур

Відповіді:


14

Якщо ви готові ввести додаткові змінні, ви можете перетворити з форми DNF в CNF за багаточлен, використовуючи перетворення Цеїтіна . Отримана формула CNF буде сумісна з оригінальною формулою DNF: формула CNF буде задоволена тоді і лише тоді, коли оригінальна формула DNF була задоволена. Дивіться також https://en.wikipedia.org/wiki/Conjunctive_normal_form#Conversion_into_CNF .

Якщо ви не хочете дозволити введення додаткових змінних, перетворення з DNF у форму CNF є важким спільним NP. Зокрема, тестування того, чи є формула DNF тавтологією, є важким співпрацею. Однак тестування того, чи формула CNF є тавтологією, можна проводити в поліноміальний час (ви просто перевіряєте окремо, чи кожне застереження є тавтологією, що легко, оскільки кожне застереження є диз'юнкцією літералів). Отже, якби ви могли перетворити з форми DNF в форму CNF за поліноміальний час, не вводячи нові змінні, ви отримали б алгоритм поліноміального часу для тестування того, чи формула DNF є тавтологією - щось, що здається малоймовірним, враховуючи, що ми очікуємо P не дорівнює спів-NP. Або, інакше кажучи, перетворення з DNF у форму CNF без введення додаткових змінних є спільним NP-важким.

Це різниця між еквівалентністю та вирівняністю . Еквівалентність вимагає, щоб дві формули мали однаковий набір рішень (і, таким чином, не дозволяють вводити додаткові змінні). Вирівнюваність вимагає лише задоволення обох формул або обох незадовільних (і, таким чином, дозволяє вводити додаткові змінні).


@Mehrdad, не використовуйте коментарів, щоб задавати нові запитання. У верхньому правому куті є "Задати питання", якщо у вас є нове питання, яке ви хочете задати. Але, лише невелика порада ... ви можете прочитати питання вгорі цієї сторінки, перш ніж задавати нове запитання ... або, з цього приводу, опублікувати цей коментар. Не можу не помітити, що ви задали запитання, де відповідь знайдено на тій самій сторінці, що і ваше запитання.
DW

@DW: На жаль, я трохи пізніше побачив інший пост і забув видалити тут свій коментар, вибачте. Зараз його видалено.
користувач541686
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.