Décider le bit le plus important de la multiplication binaire


10

Je souhaite déterminer la complexité du problème de décision suivant: étant donné deux entiers l1 et l2 (chacun avec au plus m bits), décider si le bit le plus significatif de la multiplication l1l2 est 1 (où le résultat est imprimé en bits de 2 m avec éventuellement des 0 en tête)?

Quelques informations sur le problème: Évidemment, ce problème est un cas particulier de multiplication binaire qui demande si le ème bit de la multiplication l 1l 2 est 1. Dans leur article, Circuits de seuil uniformes à profondeur constante pour la division et itérés multiplication , Hesse, Allender et Barrington prouvent que la multiplication itérée (et donc binaire) est en D L o g T i m e - uniforme T C 0 . De plus, il semble bien connu que la multiplication binaire est déjà D L o g T iil1l2DLogTime TC0 -uniforme T C 0 -hard. Cependant, je n'ai pas pu trouver de source particulière prouvant ce résultat de dureté. En tant que non-expert en complexité de circuit, j'apprécierais également un pointeur sur ce résultat de dureté générale. Enfin, en supposant que la multiplication binaire est D L o g T i m e -uniforme T C 0 -hard, ma question peut également être lue comme suit: Reste-t-elle D L o g T i m e -uniforme T C 0DLogTime TC0DLogTime TC0DLogTime TC0-dur si nous voulons décider uniquement le bit de multiplication binaire le plus significatif?

MISE À JOUR: La réponse de Kaveh clarifie pourquoi la multiplication binaire est -hard (réduction de COUNT). La complexité précise de décider du bit de multiplication binaire le plus significatif reste ouverte (et la prime est pour cette question).TC0


Il y a une preuve dans le livre de la complexité descriptive iirc. Je ne sais pas ce que vous entendez par le bit le plus significatif étant un, c'est toujours un par définition.
Kaveh

Ceci est juste une blague de votre professeur: les bits sont 0 ou 1, et le bit le plus significatif est le bit non 0 dans la position la plus élevée. Il est égal à 1 par définition (sauf si l'un des facteurs et l 2 est nul). l1l2
Gamow

@Kaveh Merci pour la référence: je vais le vérifier. Désolé pour la confusion concernant le bit le plus significatif. Je suppose implicitement que le résultat est imprimé en 2m-1 bits et si nécessaire avec des 0 en tête.
Heyheyhey

@Kaveh: Dans le Descriptive Complexity Book, seule la limite supérieure est mentionnée. Cependant, je n'ai rien trouvé concernant la dureté de la multiplication binaire.
Heyheyhey

Vous écrivez: "De plus, il semble bien connu que la multiplication binaire est déjà - uniforme T C 0 -hard." Pourquoi semble-t-il ainsi? Je sais que la multiplication binaire n'est pas en A C 0 , et c'est tout ce qui m'intéresse actuellement. DLogTime TC0AC0
Thomas Klimpel

Réponses:


6

La multiplication est terminée pour et c'est un résultat bien connu. La réduction est de Count (nombre de 1 bits dans un nombre binaire). La comparaison des nombres binaires est en A C 0, donc M a j o r i t y est réductible en C o u n t .TC0AC0MajorityCount

Pour réduire à M u l t, procédez comme suit: considérez que l'entrée est a 0 a 1a n . Insérez k 0 entre a i s et appelez-le a . Multipliez-le par b qui est comme a sauf que a i s y est remplacé par 1s. Sélectionnez k > 3 n . Le nombre dans la section centrale d' un b est la réponse. La réduction est en F OCountMulta0a1ankaiabaaik>3nunebFOet montre que .CountFO(Mult)


1
Merci pour les réponses! Oui, cela vérifie que la multiplication binaire est terminée pour TC0. Quant à la partie la plus importante, il reste quelques problèmes. Le bit le plus significatif de la multiplication (111 x 111) = 110001 est 1, et pour celui-ci (100 x 100) = 010000, il est 0. Notez que les bits les plus significatifs des multiplicandes sont les mêmes dans les deux cas. Par conséquent, je ne pense pas qu'en général, il suffise d'additionner les bits les plus significatifs. Suis-je en train de manquer quelque chose?
Heyheyhey

1
Si et y = 2 n + 1 / 2 , le MSB de x 2 est 0, et le MSB y 2 est 1, même si x et y ne peut différer un bit, le moins significatif. X=2n+1/2y=2n+1/2X2y2Xy
Emil Jeřábek

3
L'édition n'est pas correcte. Puisque nous ajoutons m nombres, il peut ne pas y avoir un seul bit de report, mais log m. Il est alors beaucoup plus difficile de décider de sa propagation.
Emil Jeřábek

1
En effet, sans tenir compte de tout le reste: calculer l'exécution d'une position unique (disons quelque part au milieu) équivaut déjà à Count, d'où TC ^ 0-complete.
Emil Jeřábek

1
@Heyheyhey, la formule que j'ai écrite est FO et donc en uniforme AC0.
Kaveh
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.