Lorsque limité à - entrées, chaque -Circuit calcule une fonction . Pour obtenir une fonction booléenne , nous pouvons simplement ajouter une porte seuil fanin-1 comme porte de sortie. En entrée , le seuil résultant - lecircuitdélivre alors si et délivre si ; le seuil peut être n'importe quel entier positif, qui peut dépendre de mais pas des valeurs d'entrée. Le circuit résultant calcule certains (monotone)booleanfonction .
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 : 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 ?
On peut définir les analogues arithmétiques de la plupart des classes de circuits booléens en utilisant simplement au lieu de OR, au lieu de AND, et au lieu de . Par exemple, les circuits sont des circuits de profondeur constante avec des portes fanin et illimitées , et des entrées et . Agrawal, Allender et Datta ont montré que le seuil = . (Rappelons que lui-même est un sous-ensemble approprié de ; 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 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 kceux. 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 .
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 ).
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 } n → N 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ésout l'existence d'un problème de chemin - t hamiltonien sur les graphes m -vertex (voir par exemple ici ).
(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.
Réponses:
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) {+,⋅} s t {∨,∧} 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,a′≥t a+b,a′+b≥t ab,a′b≥t ab=a′b(=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 = 0c c0,…,ct ci c≥i c0 1 c x c1=x c2=⋯=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 j ∧ b k ) .
Les portes de multiplication sont gérées de la même manière.c c=a+b
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 chaqueaj∧bkest utilisé comme entrée d'une seule desciportes.
la source