Złożoność konwersji obwodu boolowskiego na wzór boolowski


10

Biorąc pod uwagę obwód logiczny na zmiennych (który używa tylko bramek NOT, AND i OR), jaki jest najbardziej skuteczny sposób na wyodrębnienie wzoru logicznego reprezentowanego przez obwód? Czy istnieje algorytm polimeime dla tego problemu?nCn


jaki rodzaj bram ma obwód?
Lew Reyzin

1
Jakie ograniczenia dotyczące włączania i wyłączania wentylatora? Jeśli jest to tylko pojedyncze rozwinięcie, to jest banalne: sam obwód jest w zasadzie AST dla tej formuły.
Mark Reitblatt,

1
Ograniczony wachlarz, aby być ogólnym. Mówiąc dokładniej, powiedzmy, że AND i OR mają fan-in 2. W wielu źródłach literatury stwierdzam, że obwód i formuły są używane zamiennie, ale chcę wiedzieć, czy przekształcenie obwodu w formułę jest łatwe problem.
Nikhil

6
Zasadniczo można oczekiwać, że każda równoważna formuła może mieć wykładniczy rozmiar nawet w przypadku małego obwodu.
Kristoffer Arnsfelt Hansen

4
Wielomianowe formuły wielkości są równoważne obwodom . Obwody polisize ( ) nie są znane jako równoważne . Wzory i obwody stosuje się zamiennie, zwykle gdy głębokość obwodu jest ograniczona. NC1 N C 1P/polyNC1
Kaveh

Odpowiedzi:


8

Jeśli dobrze rozumiem twoje pytanie, powiedziałbym, że możesz użyć standardowej redukcji z CIRCUIT-SAT do SAT: Reprezentuj każdą bramkę jako nową zmienną, a następnie reprezentuj cały obwód w postaci CNF, przy czym każda klauzula ma postać , gdzie jest nową zmienną, a wzór dla bramki podaje , używając zmiennych dla innych bramek do reprezentowania danych wejściowych. Można tego dokonać przez proste przejście (w czasie liniowym, co jest wyraźnie optymalne).v ϕ(vϕ)vϕ

Na przykład, jeśli masz trzy wejścia, , i , z bramkami AND łączącymi i a także i oraz bramką OR łączącą ich wyjścia, możesz wprowadzić trzy zmienne reprezentujące bramki - , i - i przepisujemy formułę naZauważ, że zmienna wyjściowa jest dołączona jawnie.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)(x2)x3)))(v3)(v1v2)))v3).

Wprowadzenie do algorytmów Cormena i in. wyjaśnia to szczegółowo w rozdziale o kompletności NP.


Czy CIRCUIT-SAT nie korzysta z fan-out 1 bramek?
Mark Reitblatt

1
Jasne - ale o ile widzę, nie wpływa to na redukcję / transformację. Pomysł przedstawienia każdego wyjścia jako nowej zmiennej oznacza, że ​​możesz użyć każdego wyjścia kilka razy (co odpowiada dowolnie dużemu rozkładowi). Innymi słowy, rozwiązanie podane w tej odpowiedzi powinno działać dla dowolnych obwodów.
Magnus Lie Hetland

3
Domyślam się, że nie o to proszono. Myślę, że potrzebne jest stworzenie formuły na tym samym zestawie zmiennych, co obwód.
Kristoffer Arnsfelt Hansen

1
Hm Tak, prawdopodobnie masz rację. Wprowadzenie nowych zmiennych ma sens w przypadku CIRCUIT-SAT do CNF-SAT, ale nie w bardziej ogólnym ustawieniu - zgadzam się.
Magnus Lie Hetland

1
@Kristoffer: Miałem dokładnie na myśli to, co powiedziałeś. Biorąc pod uwagę obwód na Chcę, aby formuła była dokładnym wyrażeniem logicznym dla obwodu. dox1,x2),,xnϕ(x1,x2),,xn)
Nikhil
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.