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 - 2
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 )
cc.complexity-theory
lower-bounds
circuit-complexity
Alexander S. Kulikov
la source
la source
Réponses:
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.x1…xn∨x¯1…x¯n 2n−c
la source
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 .3⌊n/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.3⌊n/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 .
la source