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 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).

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.