Wenn auf eingeschränkte - Eingänge, jeden -Schaltung berechnet , eine Funktion . Um eine Boolesche Funktion zu erhalten, können wir nur ein Fanin-1-Schwellwertgatter als Ausgangsgatter hinzufügen. Bei Eingabe von wird der resultierende Schwellenwert -Schaltunggibt dann wenn , und gibt wenn ; Die Schwelle kann eine beliebige positive ganze Zahl sein, die von aber nicht von Eingabewertenabhängen kann. Die resultierende Schaltung berechnet eine (monotone)BoolescheFunktion .
Frage: Können -Schaltkreise mit { ∨ , ∧ } -Schaltkreisen effizient simuliert werden ?
Unter "effizient" meine ich "mit höchstens einer polynomiellen Vergrößerung". Die Antwort ist klar "Ja" für die Schwelle : Ersetzen Sie einfach + durch ∨ , × durch ∧ und entfernen Sie das letzte Schwellentor. Das heißt, { ∨ , ∧ } -Schaltungen sind tatsächlich Schwellwert- 1 { + , × } -Schaltungen. Aber was ist mit größeren Schwellen, sagen wir t = 2 ?
Man kann arithmetische Analoga der meisten booleschen Schaltungsklassen C definieren, indem man einfach + anstelle von OR, × anstelle von AND und 1 - x i anstelle von ˉ x i verwendet . Zum Beispiel # A C 0 Schaltungen sind { + , x } -Schaltkreise konstanter Tiefe mit unbeschränkter Fanin + und x Gattern und Eingänge x i und 1 - x i . Agrawal, Allender und Datta haben gezeigt, dass der Schwellenwert = T C 0 ist . (Erinnern Sie sich, dass A C 0 selbst eine geeignete Teilmenge von T C 0 ist ; nehmen Sie zum Beispiel die Majority-Funktion.) Mit anderen Worten, Schwellwertschaltungen mit konstanter Tiefe können durch { + , - , × } - mit konstanter Tiefe effizient simuliert werden. Schaltungen mit nur einem einzigen Schwellwert-Gate! Beachten Sie jedoch, dass es sich bei meiner Frage um monotone Schaltkreise handelt (kein Minus " - " als Gatter und sogar kein 1 - als Eingänge). Kann ein (letztes) Schwellentor auch dann so mächtig sein? Ich kenne dieses Zeug nicht, daher sind alle diesbezüglichen Hinweise willkommen.
NB: Es gibt noch ein weiteres interessantes Ergebnis , das Arnold Rosenbloom zu verdanken hat : Schaltkreise mit nur einer monotonen Funktion g : N 2 → { 0 , 1 } als Ausgangsgatter können jede Schichtfunktion mit O ( n ) -Gattern berechnen . Eine Slice-Funktion ist eine monotone Boolesche Funktion, die für ein festes k 0 (bzw. 1 ) an allen Eingängen mit weniger (bzw. mehr) als k ausgibtEinsen. Auf der anderen Seite, einfache Zählen zeigt , dass die meisten slice Funktionen allgemeinen erfordern -Schaltungen exponentieller Größe. So ein „unschuldige“ zusätzliche Ausgangsgatter können monotone Schaltungen allmächtig machen! Meine Frage ist, ob dies auch passieren kann, wenn g : N → { 0 , 1 } ein Fan-in- 1- Schwellwert-Gate ist.
AKTIVIERUNG (hinzugefügt am 03.11.2014): Emil Jeřábek hat gezeigt (über eine erstaunlich einfache Konstruktion, siehe seine Antwort unten), dass die Antwort "ja" ist, solange für eine Konstante c ist . Die Frage bleibt also nur für Superpolynomschwellen (in n ) offen .
Üblicherweise wird bei Anwendungen, nur große Schwellen funktionieren: wir müssen in der Regel Schwellen von der Form für ε > 0 . Sprich, wenn F : { 0 , 1 } n → N zählt die Anzahl der s - t Pfade im Graph angegeben durch die 0 - 1 eingegeben wird , dann t = m m 2 mit m ≈ n 1 / 3 , der Schwellen- t Version von F löst die Existenz eines Hamiltonschen - t - Pfadproblems auf m - Vertex - Graphen (siehe z . B. hier ).
(Hinzugefügt am 14.11.2014): Da Emil einen großen Teil meiner Frage beantwortet hat und der Fall von exponentiellen Schwellen nicht in Sicht ist, akzeptiere ich jetzt die (sehr nette) Antwort von Emil.
Antworten:
Die Antwort lautet "Ja", wenn . Allgemeiner kann ein Schwellwert { + , ⋅ } -Schaltkreis der Größe s mit dem Schwellwert t durch einen { ∨ , ∧ } -Schaltkreis der Größe O ( t 2 s ) simuliert werden .t=nO(1) {+,⋅} s t {∨,∧} O(t2s)
Beachten Sie zunächst, dass es ausreicht, die Schaltung in mit abgeschnittener Addition und Multiplikation zu bewerten : insbesondere wenn a , a ' ≥ t , dann a + b , a ' + b ≥ t und entweder a b , a ' b ≥ t oder a b = a ' b ( = 0 ) .{0,…,t} a,a′≥t a+b,a′+b≥t ab,a′b≥t ab=a′b(=0)
Vor diesem Hintergrund können wir die Schaltung mit einer booleschen monotonen Schaltung simulieren, indem wir jeden Knoten durch Knoten c 0 , … , c t ersetzen , wobei c i das Prädikat c ≥ i berechnen soll . ( C 0 wird nur zur Vereinfachung der Notation benötigt und berechnet die Funktion der Konstanten 1. ) Wenn c eine boolesche Eingabevariable x ist , nehmen wir c 1 = x , c 2 = ⋯ = c t = 0c c0,…,ct ci c≥i c0 1 c x c1=x c2=⋯=ct=0 . Wenn ein Additionsgatter ist, sagen wir c = a + b , implementieren wir es über
c i = ⋁ j , k ≤ t j + k ≥ i ( a j ∧ b k ) .
Multiplikationstore werden auf die gleiche Weise behandelt.c c=a+b
Dies benötigt Gates pro Gate der ursprünglichen Schaltung. Als kleine Optimierung können wir es auf O ( t 2 ) reduzieren, indem wir c t setzenO(t3) O(t2)
so dass jedesaj∧bkals Eingang von nur einem derci-Tore verwendet wird.
quelle