Festlegen des wichtigsten Teils der binären Multiplikation


10

Ich bin daran interessiert, die Komplexität des folgenden Entscheidungsproblems zu bestimmen: Wenn zwei ganze Zahlen und (jeweils mit höchstens m Bits) vorliegen, entscheiden Sie, ob das höchstwertige Bit der Multiplikation 1 ist (wobei das Ergebnis gedruckt wird 2m Bits mit möglicherweise führenden Nullen)?l 2 l 1l 2l1l2l1l2

Einige Hintergrundinformationen zum Problem: Offensichtlich handelt es sich bei diesem Problem um einen Sonderfall der binären Multiplikation, bei dem gefragt wird, ob das te Bit der Multiplikation ist. In ihrer Arbeit werden einheitliche Schwellenwertschaltungen mit konstanter Tiefe für Division und iterierte Multiplikation beschrieben , Hesse, Allender und Barrington beweisen, dass die iterierte (und damit binäre) Multiplikation in - uniform . Darüber hinaus scheint bekannt zu sein, dass die binäre Multiplikation bereits - uniforml 1l 2 D L o g T i m e T C 0 D L o g T i m e T C 0 D L o g T i m e T C 0 D L o g T i m eil1l2DLogTime TC0DLogTime TC0-schwer. Ich konnte jedoch keine bestimmte Quelle finden, die dieses Härteergebnis belegt. Als Nicht-Experte für Schaltungskomplexität würde ich mich auch über einen Hinweis auf dieses allgemeine Härteergebnis freuen. Unter der Annahme, dass die binäre Multiplikation - uniform -hard ist, kann meine Frage auch wie gelesen werden: Bleibt sie - uniform - schwer, wenn wir nur das höchstwertige Bit der binären Multiplikation entscheiden wollen?DLogTime TC0DLogTime TC0

UPDATE: Antwort verdeutlicht, warum die binäre Multiplikation -hard ist (Reduktion von COUNT). Die genaue Komplexität der Entscheidung über das höchstwertige Bit der binären Multiplikation bleibt offen (und die Prämie gilt für diese Frage).TC0


Es gibt einen Beweis im Descriptive Complexity Book iirc. Ich bin mir nicht sicher, was Sie damit meinen, dass das wichtigste Bit eins ist, es ist per Definition immer eins.
Kaveh

Dies ist nur ein Witz Ihres Lehrers: Bits sind 0 oder 1, und das höchstwertige Bit ist das Nicht-0-Bit an der höchsten Position. Sie ist per Definition gleich 1 (es sei denn, einer der Faktoren und ist Null). l 2l1l2
Gamow

@ Kaveh Danke für den Hinweis: Ich werde es überprüfen. Entschuldigen Sie die Verwirrung bezüglich des wichtigsten Teils. Ich gehe implizit davon aus, dass das Ergebnis in 2m-1 Bits und gegebenenfalls mit führenden Nullen gedruckt wird.
Heyheyhey

@Kaveh: Im Descriptive Complexity Book wird nur die Obergrenze erwähnt. Ich konnte jedoch nichts bezüglich der Härte der binären Multiplikation finden.
Heyheyhey

Sie schreiben: "Außerdem scheint es bekannt zu sein, dass die binäre Multiplikation bereits - uniform -hard ist." Warum scheint es so? Ich weiß, dass die binäre Multiplikation nicht in , und das ist alles, was mich derzeit interessiert. DLogTime TC0AC0
Thomas Klimpel

Antworten:


6

Die Multiplikation ist für und dies ist ein bekanntes Ergebnis. Die Reduzierung erfolgt von Count (Anzahl von 1 Bits in einer Binärzahl). Der Vergleich von Binärzahlen erfolgt in sodass auf reduziert werden kann .TC0AC0MajorityCount

Um auf zu gehen Sie wie folgt vor: Betrachten Sie die Eingabe als . Fügen Sie 0s zwischen s ein und nennen Sie es . Multipliziere es mit was wie außer dass s darin durch 1s ersetzt werden. Wählen Sie . Die Zahl im mittleren Bereich von ist die Antwort. Die Reduzierung erfolgt in und zeigt, dass .M u l t a 0 a 1 ... a n k ein i ein b a a i k > 3 n a b F O C o uCountMulta0a1ankaiabaaik>3nabFOCountFO(Mult)


1
Danke für die Antworten! Ja, dies überprüft, ob die binäre Multiplikation für TC0 abgeschlossen ist. Was das wichtigste Bit betrifft, gibt es noch einige Probleme. Das höchstwertige Bit der Multiplikation (111 x 111) = 110001 ist 1, und für dieses (100 x 100) = 010000 ist es 0. Beachten Sie, dass die höchstwertigen Bits der Multiplikanden in beiden Fällen gleich sind. Daher denke ich nicht, dass es im Allgemeinen ausreicht, die höchstwertigen Bits zu addieren. Vermisse ich etwas
Heyheyhey

1
Wenn und , dann ist das MSB von 0 und das MSB von ist 1 , obwohl sich und nur in einem niedrigstwertigen Bit unterscheiden können. y = 2 n + 1 / 2x 2 y 2 x yx=2n+1/2y=2n+1/2x2y2xy
Emil Jeřábek

3
Die Bearbeitung ist nicht korrekt. Da wir m Zahlen hinzufügen, gibt es möglicherweise nicht nur ein Bit Übertrag, sondern log m. Es ist dann viel schwieriger zu entscheiden, wie viel davon sich ausbreitet.
Emil Jeřábek

1
In der Tat ist das Ignorieren von allem anderen: Das Berechnen des Übertrags einer einzelnen Position (z. B. irgendwo in der Mitte) bereits gleichbedeutend mit Count, daher TC ^ 0-complete.
Emil Jeřábek

1
@ Heyheyhey, die Formel, die ich geschrieben habe, ist FO und daher in Uniform AC0.
Kaveh
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.