Markov a prouvé que toute fonction de n entrées peut être calculée avec seulement ⌈ journal( n + 1 ) ⌉ négations. Fisher a décrit une version constructive efficace. Voir aussi une exposition du résultat du blog GLL .
Plus précisément:
Théorème: Supposons que est calculé par un circuit C avec g portes, puis il est également calculé par un circuit C ∗ avec 2 g + O ( n 2 log 2 n ) portes et ⌈ log ( n + 1 ) ⌉ négations.F: { 0 , 1 }n→ { 0 , 1 }mCgC∗2 g+ O ( n2Journal2n )⌈ journal( n + 1 ) ⌉
L'idée principale est d'ajouter pour chaque fil en C un fil parallèle w ′ en C ∗ qui porte toujours le complément de w . Le cas de base est pour les fils d'entrée: Fisher décrit comment construire un circuit d'inversion I ( x ) = ¯ x avec O ( n 2 log 2 n ) portes et seulement ⌈ log ( n + 1 ) ⌉ négations. Pour les portes ET du circuit C , on peut augmenter unwCw′C∗wje( x ) = x¯¯¯O(n2log2n)⌈log(n+1)⌉C avec a ′ = b ′ ∨ c ′ , et de même pour les portes OU. Les portes NOT en C ne coûtent rien, nous échangeons simplement les rôles de w et w ′ en aval de la porte NOT. De cette façon, l'ensemble du circuit en plus du sous-circuit de l'onduleur est monotone.a=b∧ca′=b′∨c′Cww′
AA Markov. Sur la complexité d'inversion d'un système de fonctions. J. ACM , 5 (4): 331–334, 1958.
MJ Fischer. La complexité des réseaux limités par la négation - Un bref aperçu. Dans la
théorie des automates et les langages formels , 71–82, 1975
Comment calculer l'inversion de bits en utilisant n négations2n−1 n
Soit les bits triés dans l'ordre décroissant, c'est-à-dire que i < j implique x i ≥ x j . Ceci peut être réalisé par un réseau de tri monotone comme le réseau de tri Ajtai – Komlós – Szemerédi.x0,…,x2n−1 i<j xi≥xj
Nous définissons le circuit d'inversion pour bits I n ( → x ) inductivement: Pour le cas de base, nous avons n = 1 et I 1 0 ( → x ) : = ¬ x 0 . Soit m = 2 n - 1 . On réduit I n (pour 2 m + 1 ) bits à une porte I n - 1 (pour m2n−1 In(x⃗ ) n=1 I10(x⃗ ):=¬x0 m=2n−1 In 2m+1 In−1 m bits) et une porte de négation utilisant les portes et ∨ . Nous utilisons la négation pour calculer ¬ x m . Pour i < m soit y i : = ( x i ∧ ¬ x m ) ∨ x m + i . Nous utilisons I n - 1 pour inverser → y . Maintenant, nous pouvons définir I n comme suit:∧ ∨ ¬xm i<m yi:=(xi∧¬xm)∨xm+i In−1 y⃗ In
De Michael J. Fischer, La complexité des réseaux à négation limitée - une brève enquête, 1975.
la source