Rechenschaltungen mit nur einem Schwellwertgatter


21

Wenn auf eingeschränkte 0 - 1 Eingänge, jeden {+,×} -Schaltung F(x1,,xn) berechnet , eine Funktion F:{0,1}nN . Um eine Boolesche Funktion zu erhalten, können wir nur ein Fanin-1-Schwellwertgatter als Ausgangsgatter hinzufügen. Bei Eingabe von a{0,1}n wird der resultierende Schwellenwert {+,×} -Schaltunggibt dann1 wennF(a)t , und gibt0 wennF(a)t1 ; Die Schwellet=tn kann eine beliebige positive ganze Zahl sein, die vonn aber nicht von Eingabewertenabhängen kann. Die resultierende Schaltung berechnet eine (monotone)BoolescheFunktion F:{0,1}n{0,1} .

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 ? t=1+×{,}1 {+,×}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 . #CC+×1xix¯i#AC0{+,×}+×xi1xiAgrawal, 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 -#AC0TC0AC0TC0{+,,×} 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. 1xi

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 ausgibt{+,×}g:N2{0,1}O(n)k01kEinsen. 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. {,,¬}g:N{0,1}1


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

Ü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 } nN 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öst2nϵϵ>0F:{0,1}nN st01t=mm2mn1/3tF die Existenz eines Hamiltonschen - t - Pfadproblems auf m - Vertex - Graphen (siehe z . B. hier ). stm

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



Warten Sie ... Exponentialgröße? Ich denke, Sie können eine Slice-Funktion in Polynomgröße mit Booleschen Gates implementieren. Es ist nur eine Formel (die Zwischenergebnisse nicht mehr als einmal wiederverwenden kann), die eine exponentielle Größe haben muss.
Zsbán Ambrus

@ Zsbán Ambrus: Es gibt höchstens Kreise der Größe S , aber mindestens 2 2 b n verschiedene k- Slice-Funktionen bereits für k = n / 2 ; a, b positive Konstanten. SaSS22bnkk=n/2
Stasys

Schwellenwert 2 und allgemeiner Schwellenwerte, die durch , können effizient simuliert werden, indem die Berechnung im Semiring durchgeführt wird ( { 0 , , t } , min { x + y , t } , min { x y , t } ) . 2nc({0,,t},min{x+y,t},min{xy,t})
Emil Jeřábek unterstützt Monica

2
Sie erhalten Stromkreise direkt. Ersetzen Sie jeden Knoten c durch t + 1 Knoten c 0 , , c t , wobei c i das boolesche Prädikat c i berechnet . (Sie brauchen c 0 nicht, da es die Konstante 1 berechnet , aber es vereinfacht den folgenden Ausdruck.) In dieser Darstellung können + und durch { , } -Schaltungen der Größe O ( t,ct+1c0,,ctcicic01+{,} : zB wenn c = a + b , dann ist c i = i j + k i ( a jb k ) . O(t2)c=a+bci=j+ki(ajbk)
Emil Jeřábek unterstützt Monica

1
@Emil Jeřábek: Sehr schön! Ich habe jetzt eine Bemerkung dazu hinzugefügt. Eigentlich mag es sich vielleicht lohnen, diesen Kommentar als Antwort zu geben: Auch der polynomiale Schwellenfall war (zumindest für mich) nicht sofort klar.
Stasys

Antworten:


16

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){+,}st{,}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,ata+b,a+btab,abtab=ab(=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 = 0cc0,,ctcicic01cxc1=xc2==ct=0. Wenn ein Additionsgatter ist, sagen wir c = a + b , implementieren wir es über c i = j , k t j + k i ( a jb k ) . Multiplikationstore werden auf die gleiche Weise behandelt.cc=a+b

ci=j,ktj+ki(ajbk).

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 jedesajbkals Eingang von nur einem derci-Tore verwendet wird.

ct=j+kt(ajbk),ci=ci+1j+k=i(ajbk),i<t,
ajbkci
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.