Nombre de portes binaires nécessaires pour calculer ET et OU de n bits d'entrée simultanément


16

Quel est le nombre minimal de portes binaires nécessaires pour calculer ET et OU de bits d'entrée simultanément? La borne supérieure triviale est . Je pense que c'est optimal, mais comment le prouver? La technique d'élimination de porte standard ne fonctionne pas ici car en attribuant une constante à l'une des variables d'entrée, on banalise l'une des sorties.2 n - 2n2n2

Le problème est également présenté comme un exercice 5.12 dans le livre "Complexity of Boolean Functions" par Ingo Wegener sous une forme légèrement différente: "Let . Par la méthode d'élimination, on ne peut prouver qu'une borne inférieure de taille . Essayez de prouver des bornes inférieures plus grandes. " n + Ω ( 1 )fn(x)=x1xnx¯1x¯nn+Ω(1)


1
@Ryan: La question n'est pas sur ET de OU mais sur ET et OU. Je ne connais pas la réponse à la question de Sasha, cependant.
Tsuyoshi Ito

1
@TsuyoshiIto Merci, j'ai réussi à l'analyser de façon incorrecte. C'est certainement un problème non trivial - on pourrait imaginer utiliser d'autres types de portes pour obtenir un avantage sur . 2n2
Ryan Williams

2
@Sasha, avez-vous essayé d'appliquer des solveurs SAT à de petits exemples (comme ), comme dans certains de vos articles précédents? n=4
Ryan Williams

2
@Ryan Oui, bien sûr. Ce que nous savons, c'est que , C 4 = 5 , C 57 . C'est pour la fonction du livre (c'est 1 si tous les n bits d'entrée sont égaux). Cela pousse comme 2 n - 3 . Et un circuit de taille 2 n - 3 est facile à construire: calculez d'abord x ix i + 1 pour tout i = 1 , , n -C3=3C4=5C571n2n32n3xixi+1 ( ( n - 1 ) portes), puis calculez leur conjonction ( ( n - 2 ) portes). i=1,,n1(n1)(n2)
Alexander S.Kulikov

1
@Tsuyoshi: Je pense que la fonction portes de Sasha est la deuxième fonction de la question ( f n ( x ) = x 1x nˉ x 1ˉ x n ) qui peut être construite avec n - 1 portes XNOR (appliquées à x i , x i + 1 ) et n - 2 portes ET appliquées aux XNOR. 2n3fn(x)=x1xnx¯1x¯nn1xi,xi+1n2
Marzio De Biasi

Réponses:


14

Cet article de Blum & Seysen peut être utile:

N.Blum, M. Seysen. Caractérisation de tous les réseaux optimaux pour un calcul simultané de AND et NOR . Acta Inf. 21: 171-181 (1984)

J'ai pensé que pour 2 n - c la borne inférieure peut être obtenue en utilisant les méthodes de Blum & Seysen, mais il semble que ce ne soit pas le cas.x1xnx¯1x¯n 2nc


1
Existe-t-il une version pdf publique du document Blum et Seysen?
Marzio De Biasi

@ Vladimir, merci pour la référence! J'essaierai de vérifier si leurs méthodes sont applicables dans ce cas lors de la recherche de l'article.
Alexander S.Kulikov

3
@Vladimir, merci encore! En fait, cet article contient exactement la réponse à ma question encore plus: il dit que pour calculer ET et OU simultanément, il faut et tout circuit de cette taille calcule ET et OU indépendamment (c'est intéressant!). Il n'est pas non plus difficile de montrer que C ( f n ) C ( A N D , O R ) - c 2 n - c . 2n2C(fn)C(AND,OR)c2nc
Alexander S.Kulikov

@Sasha, oui, j'ai raté cette construction simple. Pour clarifier les choses, dans le papier, les fonctions ET et NOR sont considérées, donc pour ET et OU nous obtenons borne inférieure en modifiant une porte et pour x 1x nˉ x 1ˉ x n --- 2 n - 52n2x1xnx¯1x¯n2n5
Vladimir Lysikov

1
Juste un rappel @SashaK. si vous aimez la réponse, veuillez "l'accepter" en cliquant sur la coche sous le décompte des votes.
Suresh Venkat

3

Votre question est liée à la question bien connue sur le calcul simultané du minimum et du maximum d'une liste en utilisant le nombre minimum de comparaisons. Dans ce cas, la réponse est .3n/2

L'algorithme intelligent prouvant la borne supérieure se traduit par un circuit ET / OU avec la même borne que vous obtenez, car l'une des comparaisons calcule à la fois un minimum et un maximum.

Cependant, la borne inférieure (donnée par un argument de l'adversaire) semble se traduire, au moins dans le cas des circuits monotones (puisqu'un circuit ET / OR se traduit par un algorithme max / min). Cela impliquerait une borne inférieure de . Une limite inférieure stricte peut peut-être être obtenue en analysant l'argument de l'adversaire.3n/2

La limite supérieure apparaît dans "Introduction aux algorithmes", où vous pouvez également trouver l'argument simple montrant que les circuits de comparaison max / min sont valides s'ils fonctionnent pour les entrées booléennes (utilisez un seuil approprié). La borne inférieure peut être trouvée par exemple ici .


2
Remarque dans la question de Sasha, toutes les fonctions booléennes 2 bits peuvent être utilisées pour construire le circuit.
Ryan Williams

Oui, la façon dont la borne inférieure peut être traduite dans le cas de toutes les fonctions binaires n'est pas claire.
Alexander S.Kulikov
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.