Circuits arithmétiques avec une seule porte de seuil


21

Lorsque limité à 0 - 1 entrées, chaque {+,×} -Circuit F(x1,,xn) calcule une fonction F:{0,1}nN . Pour obtenir une fonction booléenne , nous pouvons simplement ajouter une porte seuil fanin-1 comme porte de sortie. En entrée a{0,1}n , le seuil résultant {+,×} - lecircuitdélivre alors1 siF(a)t et délivre0 siF(a)t1 ; le seuilt=tn peut être n'importe quel entier positif, qui peut dépendre den mais pas des valeurs d'entrée. Le circuit résultant calcule certains (monotone)booleanfonction F:{0,1}n{0,1} .

Question: Les circuits de seuil {+,×} peuvent-ils être simulés efficacement par des circuits de {,} ?

Sous "efficacement", je veux dire "avec au plus une augmentation polynomiale de la taille". La réponse est claire "oui" pour le seuil t=1 : il suffit de remplacer + par , × par , et de supprimer la dernière porte seuil. Autrement dit, les circuits {,} sont en fait des circuits à seuil { , + , × } . Mais qu'en est-il des seuils plus grands, disons, t = 2 ? 1 {+,×}t=2

On peut définir les analogues arithmétiques #C de la plupart des classes de circuits booléens C en utilisant simplement + au lieu de OR, × au lieu de AND, et 1xi au lieu de x¯i . Par exemple, les circuits #AC0 sont des circuits {+,×} de profondeur constante avec des portes fanin + et illimitées ×, et des entrées xi et 1xi . Agrawal, Allender et Datta ont montré que le seuil #AC0 = TC0 . (Rappelons que AC0 lui-même est un sous-ensemble approprié de TC0 ; prenez, disons, la fonction Majorité.) En d'autres termes, les circuits de seuil à profondeur constante peuvent être simulés efficacement par profondeur constante {+,,×} - circuits, avec une seule porte de seuil! Notez, cependant, que ma question concerne les circuits monotones (pas de moins " " comme portes, et même pas 1xi comme entrées). Un (dernier) seuil peut-il être aussi puissant alors? Je ne connais pas ce genre de choses, donc tous les pointeurs connexes sont les bienvenus.

NB Il y a encore un autre résultat intéressant lié à Arnold Rosenbloom: -circuits avec une seule fonction monotone g : N 2{ 0 , 1 } car la porte de sortie peut calculer chaque fonction de tranche avec des portes O ( n ) . Une fonction de tranche est une fonction booléenne monotone qui, pour certains k fixes , délivre 0 (resp. 1 ) sur toutes les entrées avec moins (resp., Plus) que k{+,×}g:N2{0,1}O(n)k01kceux. D'un autre côté, un comptage facile montre que la plupart des fonctions de tranche nécessitent des circuits généraux de taille exponentielle. Ainsi, une porte de sortie supplémentaire "innocente" peut rendre les circuits monotones omnipotents! Ma question demande si cela peut également se produire lorsque g : N{ 0 , 1 } est une porte seuil fanin- 1 . {,,¬}g:N{0,1}1


ACTUALISATION (ajouté le 01.11.2014 ): Emil Jeřábek a montré (via une construction incroyablement simple, voir sa réponse ci-dessous) que la réponse est "oui" tant que pour une constante c . Ainsi, la question reste ouverte uniquement pour les seuils super-polynomiaux (en n ). tnccn

Habituellement, dans les applications, seuls les grands seuils fonctionnent: nous avons généralement besoin de seuils de la forme pour ϵ > 0 . Par exemple, si F : { 0 , 1 } nN qui compte le nombre de s - t chemins dans le graphique spécifié par le 0 - 1 entrée, puis à t = m m 2 avec m n 1 / trois , le threshold- t version de F résout2nϵϵ>0F:{0,1}nN st01t=mm2mn1/3tF l'existence d'un problème de chemin - t hamiltonien sur les graphes m -vertex (voir par exemple ici ). stm

(Ajouté le 14.11.2014): Depuis qu'Emil a répondu à une grande partie de ma question, et que le cas des seuils exponentiels n'est pas en vue, j'accepte maintenant cette (très belle) réponse d'Emil.



Attendez… taille exponentielle? Je pense que vous pouvez implémenter une fonction tranche en taille polynomiale avec des portes booléennes, c'est juste une formule (qui ne peut pas réutiliser les résultats intermédiaires plus d'une fois) qui doit être de taille exponentielle.
Zsbán Ambrus

@ Zsbán Ambrus: Il y a au plus circuits de taille S , mais au moins 2 2 b n fonctions k -slice distinctes déjà pour k = n / 2 ; a, b constantes positives. SaSS22bnkk=n/2
Stasys

Le seuil 2, et plus généralement, les seuils délimités par , peuvent être simulés efficacement en effectuant le calcul dans le semiring ( { 0 , , t } , min { x + y , t } , min { x y , t } ) . 2nc({0,,t},min{x+y,t},min{xy,t})
Emil Jeřábek soutient Monica

2
Vous obtenez directement les circuits. Remplacez chaque nœud c par t + 1 nœuds c 0 , , c t , où c i calcule le prédicat booléen c i . (Vous n'avez pas besoin de c 0 car il calcule la constante 1 , mais cela simplifie l'expression ci-dessous.) Dans cette représentation, + et peuvent être simulés par { , } circuits de taille O ( t,ct+1c0,,ctcicic01+{,} : par exemple, si c = a + b , alors c i = j + k i ( a jb k ) . O(t2)c=a+bci=j+ki(ajbk)
Emil Jeřábek soutient Monica

1
@Emil Jeřábek: Très bien! J'ai maintenant ajouté une remarque à ce sujet. En fait, il peut être utile de mettre ce commentaire comme réponse: le cas seuil polynomial n'était pas non plus immédiatement clair (du moins pour moi).
Stasys

Réponses:


16

La réponse est «oui» si . Plus généralement, un circuit à seuil { + , } de taille s avec seuil t peut être simulé par un circuit à { , } de taille O ( t 2 s ) .t=nO(1){+,}st{,}O(t2s)

Observons tout d'abord qu'il suffit d'évaluer le circuit en avec addition et multiplication tronquées: en particulier, si a , a t , alors a + b , a + b t , et soit a b , a b t également, ou a b = a b ( = 0 ) .{0,,t}a,ata+b,a+btab,abtab=ab(=0)

Dans cette optique, nous pouvons simuler le circuit avec un circuit monotone booléen en remplaçant chaque nœud par des nœuds c 0 , , c t , où c i est destiné à calculer le prédicat c i . (Nous avons besoin de c 0 uniquement pour des raisons de notation, il calcule la fonction constante 1. ) Si c est une variable d'entrée booléenne x , nous prenons c 1 = x , c 2 = = c t = 0cc0,,ctcicic01cxc1=xc2==ct=0. Si est une porte d'addition, disons c = a + b , on l'implémente via c i = j , k t j + k i ( a jb k ) . Les portes de multiplication sont gérées de la même manière.cc=a+b

ci=j,ktj+ki(ajbk).

Cela prend portes pour une porte du circuit d'origine. Comme optimisation mineure, nous pouvons le réduire à O ( t 2 ) en mettant c tO(t3)O(t2) sorte que chaqueajbkest utilisé comme entrée d'une seule desciportes.

ct=j+kt(ajbk),ci=ci+1j+k=i(ajbk),i<t,
ajbkci
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.