Je pense qu'il est beaucoup plus intéressant que les classes de complexité de circuit utilisées par la théorie de la complexité CS fassent des prédictions différentes et utilisent des métriques différentes de celles de la communauté VLSI. De la complexité VLSI des fonctions booléennes :
Il est bien connu que toutes les fonctions booléennes de variables peuvent être calculées par un circuit logique àportes O ( 2 n / n ) (théorème de Lupanov) et qu'il existe des fonctions booléennes de n variables qui nécessitent des circuits logiques de cette taille (Shannon's théorème). Nous présentons les résultats correspondants pour les fonctions booléennes calculées par les circuits VLSI, en utilisant le modèle de Thompson d'une puce VLSI. Nous prouvons que toutes les fonctions booléennes de n variables peuvent être calculées par un circuit VLSI de zone O ( 2 n ) et de période 1, et nous prouvons qu'il existe des fonctions booléennes de nnO(2n/n)nO(2n)nvariables pour lesquelles chaque puce VLSI (convexe) doit avoir une zone .Ω(2n)
Fait intéressant, la complexité des circuits VLSI a tendance à traiter la profondeur comme "non pertinente" car il y a une et une seule "profondeur" qui importe: le chemin critique. Pour la plupart des applications pratiques, un circuit arbitrairement complexe peut être traité comme avec une latence de n .O(1)n
En fait, je ne suis même pas sûr que le concept de / N L o gDLogTime se traduise directement par la complexité du circuit VLSI. Même le résultat Shannons 2 n / n ne se traduit pas facilement: les résultats Shannons ne sont valablesquepour une base booléenne composée d'une arité ≤ 2 {AND, OR, NOT}. Ce n'est pas la seule base, et le nombre de «portes» nécessaires diminue considérablement à mesure que vous autorisez de plus en plus de types de portes. Les éléments suivants sont a r e a 2NLogTime2n/n≤2area2 à partir d'une bibliothèque de cellules standard VLSI commerciale normalisée à la taille d'une porte NAND à 2 entrées:
2 3 4 <- Arity
et 1,14 1,28 1,41
non 1,00 1,14 1,28
ou 1,14 1,41 1,41
ni 1,00 1,14 1,41
xor 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
Plus précisément, notez les portes aoi
/ oai
qui sont And Or Invert
/ Or And Invert
consistant en une première fonction de taille d' arité alimentant la deuxième fonction, où le nombre de portes de première fonction est égal au nombre de fois où l' arité apparaît. Par exemple, représente "Deux portes ET à 2 entrées alimentant une porte NOR".aoi22
Mon point est: Pris séparément, une oai222
fonction peut être construite en utilisant trois portes OU à 2 entrées et une porte NAND à 3 entrées, pour une superficie totale de ~ 4,56, sans compter toute zone utilisée pour l'interconnexion. Pourtant, cette primitive peut être réalisée dans une zone de seulement 1,72, ce qui signifie qu'une manifestation discrète de la même fonction booléenne consomme 2,65 fois plus de surface.
Notez également que la zone pour un n entrée {AND, NAND, OR, NOR, XOR, XNOR}, où , est beaucoup moins que la zone qu'il faudrait pour construire la même fonction en utilisant des portes d'entrée à 2 entrées discrètes. Notez également que bien que la zone donnée pour {XOR, XNOR} pour ce processus soit "grande" par rapport aux autres portes, il existe d'autres façons de construire les mêmes n portes d'entrée en utilisant moins de surface.n≥2n
Les propriétés de propagation pour les primitives plus complexes sont également nettement meilleures que celles qui seraient obtenues en utilisant des portes discrètes.
Pourquoi est-ce important? Parce que pour moi, au moins, j'ai passé énormément de temps à parcourir les résultats de la théorie de la complexité qui sont construits sur un ensemble d'hypothèses qui ont pour effet de rendre le résultat inutile ou faux une fois l'hypothèse violée. Ce qui suit est de Steven Cooks vs N PPNP :
Ainsi , pour prouver il suffit de prouver un super-polynomiale minorant la taille d'une famille de circuits booléens résoudre certains spécifiques N P problème -complete, comme le 3-SAT. En 1949, Shannon a prouvé que pour presque toutes les fonctions booléennes f : { 0 , 1 } n → { 0 , 1 } , tout circuit booléen calculant f nécessite au moins 2P≠NPNPf:{0,1}n→{0,1}fportes n / n . Malheureusement, son argument de comptage ne donne aucune idée de la façon de prouver les limites inférieures des problèmes dans N P2n/nNP.
Je trouve les cuisiniers curieux. Le résultat de Shannons est valable pour tous les , donc si un problème N P peut être décrit dans { 0 , 1 } n bits, il doit y avoir un {AND, OR, NOT} circuit de base qui peut décider s'il est satisfaisable en ~ 2 n /f:{0,1}n→{0,1}NP{0,1}n portes (le papier réel donne une limite supérieure, mais finie, plus grande pour chaque fonction possible). Ce que cela nous dit, c'est que tout ce qui utilise plus de n portes, où n2n/nnnest la limite supérieure de la taille du problème , utilise plus de portes que nécessaire. L'utilisation d'une base booléenne plus grande mais complète ne réduit que le nombre de portes nécessaires. L'utilisation d'un modèle de complexité de circuit différent, c'est-à-dire VLSI, donne des limites de résultats encore «meilleures». Curieuse. Mais nous savons pertinemment que toute solution à un problème N P qui utilise plus de ~ 2 n / n "portes" (où les portes sont utilisées de manière lâche pour les étapes / opérations) le fait de manière sous-optimale ... et il existe un nombre infini de façons de trouver une solution de manière sous-optimale.NPNP2n/n
Sur la complexité des implémentations VLSI et des représentations graphiques des fonctions booléennes avec application à la multiplication entière montre que la prédiction de la complexité du circuit à l'aide d'un modèle OBDD surestime la complexité réelle du circuit:
AT2=Ω(n2)Ω(cn)c<1AT2=O(n1+c)
n2n−1i−12n−i−11≤i≤nAT2=Ω(i2)Ω(1.09i)