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


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 1x 2 ) ) ( v 2( x 2x 3 ) ) ( v 3( v 1v 2 ) ) v 3x1x2x3x1x2x2x3v1v2v3

(v1(x1x2))(v2(x2x3))(v3(v1v2))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.