Ich finde es weitaus interessanter, dass die von der CS-Komplexitätstheorie verwendeten Schaltungskomplexitätsklassen andere Vorhersagen treffen und andere Metriken verwenden als die in der VLSI-Community. Aus der VLSI-Komplexität von Booleschen Funktionen :
Es ist bekannt, dass alle Booleschen Funktionen von Variablen durch eine Logikschaltung mit O ( 2 n / n ) Gattern berechnet werden können (Lupanov-Theorem) und dass es Boolesche Funktionen von n Variablen gibt, die Logikschaltungen dieser Größe erfordern (Shannon's) Satz). Wir präsentieren entsprechende Ergebnisse für Boolesche Funktionen, die von VLSI-Schaltkreisen unter Verwendung des Thompson-Modells eines VLSI-Chips berechnet wurden. Wir beweisen, dass alle Booleschen Funktionen von n Variablen durch eine VLSI-Schaltung mit O ( 2 n ) Fläche und Periode 1 berechnet werden können , und wir beweisen, dass es Boolesche Funktionen von n gibtnO(2n/n)nO(2n)nVariablen, für die jeder (konvexe) VLSI-Chip eine Fläche von haben muss.Ω(2n)
Interessanterweise neigt die Komplexität von VLSI-Schaltkreisen dazu, die Tiefe als "irrelevant" zu behandeln, da es nur eine "Tiefe" gibt, die von Bedeutung ist: den kritischen Pfad. Für die meisten praktischen Zwecke kann eine beliebig komplexe Schaltung als mit einer Latenz von n behandelt werden .O(1)n
Tatsächlich bin ich mir nicht einmal sicher, ob sich das Konzept von / N L O G T I M E direkt in der Komplexität der VLSI-Schaltung niederschlägt. Selbst das Ergebnis von Shannons 2 n / n lässt sich nicht leicht übersetzen: Shannons Ergebnisse gelten nur für eine Boolesche Basis, die aus der Arität ≤ 2 {AND, OR, NOT} besteht. Dies ist nicht die einzige Grundlage, und die Anzahl der benötigten "Tore" sinkt dramatisch, da Sie immer mehr Tortypen zulassen. Die folgenden sind a r e a 2DLogTimeNLogTime2n/n≤2area2 aus einer kommerziellen VLSI-Standardzellenbibliothek, die auf die Größe eines NAND-Gatters mit 2 Eingängen normiert ist:
2 3 4 <- Arität
und 1,14 1,28 1,41
nand 1.00 1.14 1.28
oder 1,14 1,41 1,41
noch 1,00 1,14 1,41
x oder 1,62 2,44
xnor 1,62 2,44
buf 1.14
inv 0,80
aoi22 1.28
aoi222 1.62
aoi33 1.62
oai22 1.41
oai222 1.72
oai33 1.62
addf 2.64
Insbesondere beachte das aoi
/ oai
Gatter welcher And Or Invert
/ die Or And Invert
aus arity bemessen erster Funktion die zweite Funktion zugeführt wird , wobei die Anzahl der ersten Funktion Gatter die Anzahl von Malen gleich ist arity erscheint. Beispiel: aoi22
"Zwei UND-Gatter mit zwei Eingängen, die ein NOR-Gatter speisen".
Mein Punkt ist: Getrennt betrachtet kann eine oai222
Funktion unter Verwendung von drei ODER-Gattern mit 2 Eingängen und einem NAND-Gatter mit 3 Eingängen für eine Gesamtfläche von ~ 4,56 ohne eine für die Verbindung verwendete Fläche aufgebaut werden. Dieses Grundelement kann jedoch auf einer Fläche von nur 1,72 realisiert werden, was bedeutet, dass eine diskrete Manifestation derselben Booleschen Funktion das 2,65-fache der Fläche verbraucht.
Beachten Sie auch , dass der Bereich für ein Eingangs {AND, NAND, OR, NOR, XOR, XNOR} Gate, wobei n ≥ 2 , ist viel kleiner als die Fläche , dass es dauern würde, die gleiche Funktion unter Verwendung diskretes 2 Eingangsgates zu bauen. Beachten Sie auch, dass der für {XOR, XNOR} für diesen Prozess angegebene Bereich im Vergleich zu den anderen Gattern "groß" ist. Es gibt jedoch auch andere Möglichkeiten, die gleichen n Eingangsgatter mit weniger Bereich zu erstellen .nn≥2n
Die Ausbreitungseigenschaften für die komplexeren Grundelemente sind ebenfalls erheblich besser als bei Verwendung diskreter Gatter.
Warum ist das wichtig? Zumindest habe ich für mich eine gewaltige Menge Zeit aufgewendet, um die Ergebnisse der Komplexitätstheorie zu sichten, die auf einer Reihe von Annahmen beruhen, die bewirken, dass das Ergebnis entweder unbrauchbar oder falsch wird, wenn die Annahme verletzt wird. Das Folgende ist von Steven Cooks gegen N PPNP :
Um also zu beweisen, genügt es, eine Superpolynom-Untergrenze für die Größe einer Familie von Booleschen Schaltungen zu beweisen, die ein bestimmtes N P -vollständiges Problem wie 3-SAT löst . Bereits 1949 bewies Shannon, dass für fast alle Booleschen Funktionen f : { 0 , 1 } n → { 0 , 1 } jede Boolesche Schaltung, die f berechnet , mindestens 2 n / n Gatter benötigt. Leider gibt sein Zählargument keinen Hinweis darauf, wie man untere Schranken für Probleme in N P beweistP≠NPNPf:{0,1}n→{0,1}f2n/nNP.
f:{0,1}n→{0,1}NP{0,1}n2n/nnnNPNP2n/n
Zur Komplexität von VLSI-Implementierungen und Graphendarstellungen von Booleschen Funktionen mit Anwendung auf Ganzzahlmultiplikation zeigt sich, dass die Vorhersage der Schaltungskomplexität mithilfe eines OBDD-Modells die tatsächliche Schaltungskomplexität überschätzt:
AT2=Ω(n2)Ω(cn)c<1AT2=O(n1+c)
n2n−1i−12n−i−11≤i≤nAT2=Ω(i2) and any OBDD representation must have Ω(1.09i) vertices.