Quelle est la taille d'un circuit booléen en couches pour une fonction avec une complexité de circuit


12

Considérons une fonction calculée par un circuit booléen C avec n entrées de taille s ( n ) = p o l y ( n ) sur la base { X O R , A N D , N O T } (avec indegree 2 pour le X O R , A N D portes).fCns(n)=poly(n){XOR,AND,NOT}XOR,AND

Un circuit booléen est en couches s'il peut être disposé en couches ( d étant la profondeur du circuit) de portes de sorte que tout bord entre deux portes relie les couches adjacentes.dd

Étant donné que a un circuit booléen de taille s , que pouvons-nous dire de la taille d'un circuit en couches calculant f ? Il y a une limite supérieure triviale: en ajoutant des nœuds factices à C à chaque couche traversée par un bord, nous obtenons un circuit en couches de taille au plus O ( s 2 ) . Mais pouvons-nous nous améliorer en général (par exemple O ( s log s ) ou O ( s ) ), ou pour une classe de circuits intéressante?fsfCO(s2)O(slogs)O(s)

Contexte. Cette question découle de résultats récents en cryptographie qui montrent comment calculer en toute sécurité des circuits booléens en couches de taille avec o ( s ) de communication (par exemple s / log s ou s / log log s ) ; J'essaie de comprendre à quel point cette restriction aux circuits booléens en couches peut être restrictive dans la pratique, que ce soit pour les circuits généraux ou pour les circuits "naturels". Cependant, je n'ai pas trouvé grand-chose sur les circuits en couches dans la littérature; des indications appropriées seraient également les bienvenues.so(s)s/logss/loglogs)


4
Voici un exemple d'un circuit qui semble difficile à convertir en un circuit en couches sans une augmentation significative de la taille. Définissez pour être une fonction qui peut être calculée en taille u . Définissez g ( x 1 , , x n ) = ( x 2 , , x n , x 1f ( x 2 ,f:{0,1}n1{0,1}u , et que C soit t itérations de g . Alors C a la taille O ( t u ) . Il semble difficile de construire un circuit en couches avec une taille inférieure à Θ ( n t ) . Donc, si u = o ( n ) , nous devrions peut-être nous attendre à un écart entre la taille d'un circuit et la taille d'un circuit en couches. Pas une preuve, juste un exemple suggestif pour peut-être conduire l'intuition. g(x1,,xn)=(x2,,xn,x1f(x2,,xn))CtgCO(tu)Θ(nt)u=o(n)
DW

2
Pour autant que je m'en souvienne, pour les circuits en couches, la borne inférieure la plus connue est de la forme . Il est particulièrement facile à prouver pour une fonction n- to- n . Prenons, par exemple, une carte linéaire A xA { 0 , 1 } n × n a des zéros uniquement sur la diagonale principale. Ensuite, il doit avoir au moins n portes sur chaque couche et le nombre de couches est d'au moins log 2 n . Notez que cette fonction peut être facilement calculée par un circuit régulier de taille O (Ω(nlogn)nnAxA{0,1}n×nnlog2n . Pour les fonctions à sortie unique, il est également possible de prouver la même limite inférieure, mais je ne me souviens pas de l'argument. O(n)
Alexander S.Kulikov

1
Merci beaucoup pour les commentaires. @ AlexanderS.Kulikov, est votre argument folklore, ou avez-vous un pointeur vers des œuvres sur des circuits en couches? Le est logique - j'aurais été très surpris par quelque chose de plus petit - mais O ( n 2 ) est-il la seule borne supérieure connue? Ω(nlogn)O(n2)
Geoffroy Couteau

1
Je suppose que c'est un folklore, oui. Je ne suis pas sûr d'avoir la question sur la limite supérieure de . Vous voudrez peut-être jeter un œil à l'article suivant: cs.utexas.edu/~panni/sizedepth.pdfO(n2)
Alexander S. Kulikov

1
Je pense que nous ne connaissons pas de transformation meilleure que en général. Notez qu'un circuit de taille s et de profondeur d peut être transformé en un circuit en couches de taille au plus d s . (Ce qui, dans le pire des cas, nous donne un circuit de taille O ( s 2 ) .) Je voulais juste souligner que si nous pouvions prouver une limite inférieure de ω ( n log n ) sur la taille d'un circuit en couches, ce serait nous donner une borne inférieure super-linéaire sur la taille des circuits de profondeur de log pour cette fonction. Cette question reste ouverte depuis plus de 40 ans.O(s2)sddsO(s2)ω(nlogn)
Alex Golovnev

Réponses:


8

Pour autant que je sache, trois classes de circuits en couches ont été étudiées. Dans toutes ces définitions, les arcs sont autorisés uniquement entre deux couches adjacentes.

  1. Un circuit est appelé synchrone ( Harper 1977 ) si toutes les portes sont disposées en couches, et les entrées doivent être au niveau 0. (Une définition équivalente: pour toute porte g , tous les chemins des entrées vers g ont la même longueur.)

  2. Un circuit est localement synchrone ( Belaga 1984 ) si chaque entrée se produit exactement une fois mais sur une couche arbitraire.

  3. gogo

Il est facile de voir que les trois classes sont répertoriées du plus faible au plus fort (et la classe des circuits sans restriction est encore plus forte).

s

  1. ss2

  2. ω(slogs)sdO(sd)fω(nlogn)fO(logn)O(n)

  3. Il existe des fonctions explicites

    Ω(nlogn)O(n)

    Ω(nlogn)O(n)

n

f:{0,1}n{0,1}niiO(n)lognnnfΩ(nlogn)n1Ω(logn)nn

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.