Сложность преобразования булевой схемы в булеву формулу


10

Учитывая булеву схему для переменных (которая использует только вентили NOT, AND и OR), каков наиболее эффективный способ извлечь логическую формулу, представленную схемой? Есть ли алгоритм Polytime для этой проблемы?nCn


какие ворота есть в схеме?
Лев Рейзин

1
Какие ограничения на разветвление или разветвление? Если это просто разветвление, то это тривиально: сама схема является AST для формулы.
Марк Рейтблатт

1
Ограниченный фан-ин, чтобы быть общим. Но если быть точным, допустим, что AND и OR имеют веер 2. Во многих ссылках в литературе я считаю, что схемы и формулы используются взаимозаменяемо, но я хочу знать, является ли преобразование схемы в формулу простым проблема.
Нихил

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

4
Полиномиальные формулы размеров эквивалентны цепям . Polysize схемы ( Р / р о л у ) не знают, что эквивалентно N C 1 . Формулы и схемы используются взаимозаменяемо обычно, когда глубина схемы ограничена. NC1 P/polyNC1
Каве

Ответы:


8

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

Например, если у вас есть три входа, , x 2 и x 3 , с вентилями AND, связывающими x 1 и x 2, а также x 2 и x 3 , и вентилем OR, связывающим их выходы, вы можете ввести три переменные представить ворота - v 1 , v 2 и v 3 соответственно - и переписать формулу в ( v 1( x 1x 2 ) ) x1x2x3x1x2x2x3v1v2v3Обратите внимание, что выходная переменная включена явно.

(v1(x1x2))(v2(x2x3))(v3(v1v2))v3.

Введение в алгоритмы Cormen et al. объясняет это подробно, в главе о NP-полноте.


Разве CIRCUIT-SAT не использует вентиляционные отверстия 1?
Марк Рейтблатт

1
Конечно, но, насколько я вижу, это не влияет на уменьшение / преобразование. Идея представления каждого выхода в качестве новой переменной означает, что вы можете повторно использовать каждый выход в качестве входа несколько раз (что соответствует произвольно большому разветвлению). Другими словами, решение, данное в этом ответе, должно работать для произвольных цепей.
Магнус Ли Хетланд

3
Я думаю, что это не то, что просят. Я думаю, что нужно сделать формулу для того же набора переменных, что и схема.
Кристоффер Арнсфельт Хансен

1
Гектометр Да, вы, вероятно, правы. Введение новых переменных имеет смысл в случае CIRCUIT-SAT для CNF-SAT, но не в более общей ситуации - я согласен.
Магнус Ли Хетланд

1
Cx1,x2,,xnϕ(x1,x2,,xn)
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.