Existe-t-il des fonctions connues avec la propriété de somme directe suivante?


15

Cette question peut être posée soit dans le cadre de la complexité des circuits des circuits booléens, soit dans le cadre de la théorie de la complexité algébrique, soit probablement dans de nombreux autres contextes. Il est facile de montrer, en comptant les arguments, qu'il existe des fonctions booléennes sur N entrées qui nécessitent exponentiellement de nombreuses portes (bien que nous n'ayons bien sûr aucun exemple explicite). Supposons que je souhaite évaluer la même fonction M fois, pour un entier M, sur M ensembles distincts d'entrées, de sorte que le nombre total d'entrées soit MN. Autrement dit, nous voulons simplement évaluer pour la même fonction à chaque instant.F(X1,1,...,X1,N),F(X2,1,...,X2,N),...,F(XM,1,...,XM,N)F

La question est: sait-on qu'il existe une suite de fonctions (une fonction pour chaque N) telle que, pour tout N, pour tout M, le nombre total de portes nécessaires est au moins égal à M fois une fonction exponentielle de N? Le simple argument de comptage ne semble pas fonctionner puisque nous voulons que ce résultat soit valable pour tous les M. On peut trouver de simples analogues de cette question dans la théorie de la complexité algébrique et dans d'autres domaines.F

Réponses:


13

Eh bien, c'est faux: il est possible d'évaluer M copies de TOUT f en utilisant uniquement des portes O (N (M + 2 ^ N)) qui peuvent être bien inférieures à M * exp (N) (en fait, vous obtenez un amortissement linéaire complexité pour exponentielle M). Je ne me souviens pas d'une référence, mais je pense que cela peut aller quelque chose comme ceci:

Ajoutez d'abord 2 ^ N entrées fictives qui ne sont que des constantes 0 ... 2 ^ N-1 et notons maintenant le ième N-bit par xi (donc pour i <= 2 ^ N nous avons xi = i, et pour 2 ^ N <i <= 2 ^ N + M nous avons les entrées d'origine). Maintenant, nous créons un triplet pour chacune des entrées M + 2 ^ N: (i, xi, fi) où fi est f (i) pour les 2 premières entrées N ^ (une constante qui est câblée dans le circuit) et fi = "*" autrement. Maintenant, nous trions les triplets (i, xi, fi) en fonction de la clé xi, et laissons le triplet j'th être (i_j, x_j, f_j) à partir de cela, nous calculons un triplet (i_j, x_j, g_j) en laissant g_j être f_j si f_j n'est pas un "*" et que g_j soit g_ (j-1) sinon. Maintenant, triez les nouveaux triplets en fonction de la clé i_j, et vous avez obtenu les bonnes réponses aux bons endroits.


Intelligent! Une chose mineure: nous devons trier les triplets de manière stable (ou dans une autre méthode qui garantit que les triplets avec fi ≠ “ ” arrivent plus tôt que les triplets avec fi = “ ”).
Tsuyoshi Ito du

Très intelligent et merci. Est-ce que quelque chose de similaire fonctionne, cependant, dans le cadre de la complexité algébrique, ou non?
mat hastings

1
Je suppose qu'une autre façon de le dire dans le cas où M va à l'infini est que vous pouvez investir 2 ^ N * 2 ^ N de temps pour construire une table de hachage pour toutes les valeurs de f, puis vous pouvez calculer chaque copie en O (N ) temps. Je pense qu'il y a une autre raison pour laquelle nous ne devrions pas au moins savoir si quelque chose comme ça est vrai, même pour des valeurs plus douces de N, c'est qu'il donnerait des limites inférieures meilleures que celles connues. Vous seriez en mesure de construire une fonction avec une limite inférieure super-linéaire en forçant la première brute à trouver une fonction sur n '= log n (ou peut-être n' = loglog n) entrées avec une grande complexité et en prenant ensuite n / ncopies de celle-ci .
Boaz Barak,

1
Dans l'argument ci-dessus sur la raison pour laquelle de tels résultats conduisent à des limites inférieures, je ne sais pas si le nombre de répétitions est vraiment plus doux, mais cela s'applique également aux champs infinis.
Boaz Barak

Salut Boaz, En fait, votre commentaire est précisément pourquoi je me suis intéressé à l'existence de ces fonctions. Cependant, il y a un point subtil, le "forçage brutal". Il se pourrait (et c'est ce à quoi ma question visait) que de telles fonctions existent mais que nous n'avons pas d'algorithme qui nous permette de démontrer qu'une fonction donnée a cette propriété. Après tout, il ne semble pas y avoir de moyen de forcer brutalement la propriété qu'une telle limite inférieure détient pour tous les M, car il faudrait vérifier un nombre infini de circuits différents. Donc, peut-être que de telles fonctions existent pour des champs infinis mais nous ne pouvons pas les montrer.
mat

10

O(2n/n)mmFm2n/n

"Réseaux calculant des fonctions booléennes pour plusieurs valeurs d'entrée"

m=2o(n/Journaln)mFO(2n/n)m=1

Je ne trouve pas de copie non bloquée en ligne, ni de page d'accueil pour l'auteur, mais je suis tombé sur le papier dans cette procédure:

Complexité de la fonction booléenne (série de notes de cours de la London Mathematical Society)


Merci! N'y avait-il pas une question posée sur les paradoxes du TCS? Cela pourrait également y servir de réponse :)
arnab

Merci aussi pour cette réponse. N'étant pas en mesure de lire les actes, je suppose que, comme la réponse précédente, il peut s'appuyer sur le nombre fini d'entrées possibles, donc encore une fois la même question de suivi que ci-dessus: qu'en est-il dans le cas de la complexité algébrique?
mat hastings

En fait, il semble que Shannon ait prouvé pour la première fois la limite supérieure O (2 ^ n / n); Lupanov a obtenu la bonne constante de tête. J'ai corrigé cela. Les détails sont expliqués dans "Revue des limites sur la taille du circuit des fonctions les plus difficiles", par Frandsen et Miltersen.
Andy Drucker

5

En ce qui concerne la complexité algébrique, je ne connais pas d'exemple où la complexité exponentielle descend à la complexité amortie sous-exponentielle, mais au moins il y a un exemple simple que la complexité de M copies disjointes peut être nettement inférieure à M fois la complexité d'une seule copie :

Pour une matrice n * n "aléatoire" A, la complexité de la forme bilinéaire définie par A, (la fonction f_A (x, y) = xAy, où x et y sont 2 vecteurs de longueur n) est Oméga (n ^ 2 ) - cela peut être montré par un argument de dimension "de type comptage" puisque vous avez besoin de n ^ 2 "places" dans le circuit pour mettre des constantes. Cependant, étant donné n paires de vecteurs différentes (x ^ 1, y ^ 1) ... (x ^ n, y ^ n), vous pouvez mettre les x dans les lignes d'une matrice n * n X, et de même les y dans les colonnes d'une matrice Y, puis lisez toutes les réponses x ^ iAy ^ i à partir de la diagonale de XAY, où cela est calculé en n ^ 2,3 (ou plus) opérations utilisant une multiplication matricielle rapide, nettement inférieure à n * n ^ 2.


Merci, je connais cet exemple. Un autre similaire est qu'il existe des polynômes de degré n dans une variable qui prennent du temps n à évaluer à un point donné (bien que je ne pense pas qu'il existe d'exemples explicites, je me trompe?) Cependant, on peut évaluer un tel polynôme à n points dans le temps n log ^ 2 (n).
mat

1
J'ai trouvé deux articles des années 80 sur le problème de la somme directe algébrique: "Sur la validité de la conjecture de somme directe" par Ja'ja et Takche, et "Sur la conjecture de somme directe étendue" par Bshouty. Je ne peux pas résumer leur contenu, mais peut-être qu'ils seront utiles.
Andy Drucker

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.