et sont deux des classes de complexité les plus petites que nous ayons. (Notez que la hiérarchie temporelle logarithmique est égale à et ce sont les deux premiers niveaux de ).
Après avoir lu cette question , je deviens curieux de voir si la séparation entre ces deux classes est connu, et en fait , il est facile de les séparer depuis (merci à Robin Kothari. Voir aussi connu). Maintenant, je suis intéressé de connaître leur caractérisation de complexité de circuit correspondante. J'ai cherché un peu et j'ai demandé à quelques personnes mais je n'ai pas pu trouver la réponse.
Avons-nous de belles caractérisations de la complexité des circuits pour les classes de complexité et N L o g T i m e ?
Remarque: apparaît beaucoup dans la définition de l'uniformité pour les petites classes de complexité. Notez que la petite limite de temps ne permet pas à ces machines de lire l'intégralité de l'entrée, elles ne peuvent lire que lg n bits à partir de l'entrée, et les classes sont définies à l'aide de machines qui peuvent écrire l'adresse d'un bit, puis lire ce bit directement ( c'est-à-dire que vous n'avez pas besoin de parcourir tous les bits précédents pour y arriver).
Réponses:
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 :
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 2NLogTime 2n/n ≤2 area2 à partir d'une bibliothèque de cellules standard VLSI commerciale normalisée à la taille d'une porte NAND à 2 entrées:
Plus précisément, notez les portes
aoi
/oai
qui sontAnd 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 unn 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≥2 n
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 PP NP :
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/n n n est 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.NP NP 2n/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:
la source