Складність перетворення булевої схеми в булеву формулу


10

Враховуючи булеву ланцюг на змінних (яка використовує лише ворота NOT, AND і OR), який найефективніший спосіб отримати булеву формулу, представлену схемою? Чи існує алгоритм багаточастоти для цієї проблеми?нCn


Який тип воріт має схема?
— Лев Рейзін

1
Які обмеження щодо вентилятора чи вентиляції? Якщо це лише один вентилятор, то це банально: сама схема по суті є AST для формули.
— Марк Рейтблатт

1
Обмежений вентилятор, щоб бути загальним. Але якщо бути точним, скажімо, що І і АБО мають вентилятор 2. У багатьох посиланнях в літературі я вважаю, що схема і формули використовуються взаємозамінно, але я хочу знати, чи легко перетворити схему у формулу проблема.
— Нікхіл

6
Взагалі можна було б очікувати, що будь-яка еквівалентна формула може мати експоненціальний розмір навіть для малого кола.
— Крістофер Арнсфельт Хансен

4
Формули розмірів поліномів еквівалентні ланцюгам . Полісимізовані схеми ( ), як відомо, не еквівалентні . Формули та схеми використовуються взаємозамінно, як правило, при обмеженні глибини ланцюга. NC1 н С 1P/polyNC1
— Каве

Відповіді:


8

Якщо я правильно розумію ваше запитання, я б сказав, що ви можете використати стандартне скорочення від CIRCUIT-SAT до SAT: представляйте кожен затвор як нову змінну, а потім представляйте всю схему у формі CNF, при цьому кожен пункт має форму , де - нова змінна, а формула для заходу задається , використовуючи змінні для інших воріт для представлення входів. Це можна зробити за допомогою простого обходу (за лінійним часом, що явно оптимально).v ϕ(v↔ϕ)vϕ

Наприклад, якщо у вас є три входи, , і , з воротами AND, що пов'язують і , а також і , і затвором, що пов'язує їхні виходи, ви можете ввести три змінні для представлення воріт - , і відповідно - і перепишіть формулу вЗауважте, що вихідна змінна включена явно.x 2 x 3 x 1 x 2 x 2 x 3 v 1 v 2 v 3 ( v 1 ↔ ( x 1 ∧ x 2 ) ) ∧ ( v 2 ↔ ( x 2 ∧ x 3 ) ) ∧ ( v 3 ↔ ( v 1 ∨ v 2 ) ) ∧ v 3x1x2x3x1x2x2x3v1v2v3

(v1↔(x1∧x2))∧(v2↔(x2∧x3))∧(v3↔(v1∨v2))∧v3.

Вступ до алгоритмів Cormen et al. детально пояснює це в главі про NP-повноту.


Чи CIRCUIT-SAT не використовує вентилятори 1 воріт?
— Марк Рейтблатт

1
Звичайно, але, наскільки я бачу, це не впливає на зменшення / перетворення. Ідея представлення кожного виводу як нової змінної означає, що ви можете повторно використовувати кожен вихід як вхід кілька разів (що відповідає довільно великому вентилятору). Іншими словами, рішення, дане у цій відповіді, повинно працювати для довільних схем.
— Magnus Lie Hetland

3
Я думаю, що це не те, про що просять. Я думаю, що хочеться зробити формулу на тому ж наборі змінних, що і схема.
— Крістофер Арнсфельт Хансен

1
Гм. Так, ти, мабуть, маєш рацію. Введення нових змінних має сенс у випадку CIRCUIT-SAT до CNF-SAT, але не в більш загальній обстановці - я згоден.
— Magnus Lie Hetland

1
@Kristoffer: Я мав на увазі саме те, що ти сказав. Враховуючи схему на я хочу, щоб формула була точним булевим виразом для схеми. x 1 , x 2 , … , x n ϕ ( x 1 , x 2 , … , x n )Cx1,x2,…,xnϕ(x1,x2,…,xn)
— Нікхіл
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.