Peut-on compter en profondeur

19

Peut-on calculer une porte de seuil à bits par des circuits de taille polynomiale (fan-in illimité) de profondeur lg nn ? Alternativement, pouvons-nous compter le nombre de 1 dans les bits d'entrée en utilisant ces circuits?lgnlglgn

Est ?TC0AltTime(O(lgnlglgn),O(lgn))


Notez que . La question est donc essentiellement de savoir si nous pouvons enregistrer un facteur lg lg n dans la profondeur des circuits lors du calcul des portes de seuil.TC0NC1=ALogTime=AltTime(O(lgn),O(lgn))lglgn


Éditer:

Comme Kristoffer l'a écrit dans sa réponse, nous pouvons économiser un facteur . Mais pouvons-nous économiser un peu plus? Peut-on remplacer O ( lg nlglgnaveco(lgnO(lgnlglgn)?o(lgnlglgn)

Il me semble que l'astuce de force brute en couches ne fonctionne pas pour enregistrer même (plus généralement n'importe quelle fonction dans lg lg n + ω ( 1 ) ).2lglgnlglgn+ω(1)

Kaveh
la source
3
J'ai modifié ma réponse pour inclure également la dernière modification.
Kristoffer Arnsfelt Hansen

Réponses:

22

Considérons un circuit fanin 2 de profondeur O ( log n ) . Divisez les couches de C en blocs O ( log n / log log n ) chacune des couches log log n consécutives. Nous souhaitons maintenant remplacer chaque bloc par un circuit de profondeur 2. A savoir, chaque porte de la dernière couche d'un bloc dépend d'au plus 2 log log n = log nCO(logn)CO(logn/loglogn)loglogn2loglogn=lognportes de la dernière couche dans le bloc ci-dessous. On peut ainsi remplacer chaque porte de la dernière couche par un DNF de taille polynomiale dont les entrées sont les portes de la dernière couche du bloc ci-dessous. Faire cela pour toutes les portes dans les dernières couches pour tous les blocs et les connecter devrait donner le circuit souhaité.

Permettez-moi de noter que c'est essentiellement le meilleur que l'on puisse obtenir: le lemme de commutation permet des bornes inférieures jusqu'à la profondeur .logn/loglogn

Kristoffer Arnsfelt Hansen
la source
1
Merci Kristoffer. J'ai ajouté une question légèrement plus forte.
Kaveh
2
Juste pour m'assurer d'avoir une vue d'ensemble correcte: jusqu'à la profondeur ces circuits ne peuvent pas calculer la parité, à cette profondeur ils deviennent soudainement capables de calculer N C 1 . lgn/lglgnNC1
Kaveh
2
C'est vrai (jusqu'à des facteurs constants dans la profondeur).
Kristoffer Arnsfelt Hansen