Multiplikation von n Polynomen des Grades 1

35

Das Problem besteht darin, das Polynom zu berechnen . Es sei angenommen, dass alle Koeffizienten in ein Maschinenwort passen, dh in Zeiteinheiten manipuliert werden können.(a1x+b1)××(anx+bn)

Sie können -Zeit ausführen, indem Sie FFT in einer Baumstruktur anwenden. Kannst du ?O ( n log n )O(nlog2n)O(nlogn)

Mihai
quelle
Gute Frage, es sieht so aus, als hätte ich etwas Ähnliches in einem Blog von jemandem gesehen, aber ich kann mich nicht erinnern, wo es war.
Grigory Yaroslavtsev
3
Kleinere Beobachtung: Wir kennen (arbeiten beispielsweise über Q) die n Wurzeln , daher ist das Problem äquivalent zu: Berechnen Sie mit das Polynom . (Ich denke.)α 1 , , α n ( x - α 1 ) ( x - α n )αi=bi/aiα1,,αn(xα1)(xαn)
ShreevatsaR
1
Können Sie einen Verweis auf das Ergebnis von ? O(nlog2n)
Mohammad Al-Turkistany,
2
Wie @Suresh bereits erwähnt hat, handelt es sich um einen einfachen Divide-and-Conquer-Ansatz. Es kann verallgemeinert werden, so dass n Polys unterschiedliche Grade können. In diesem Fall können Sie in einer Huffman-Baumart teilen. Siehe Strassen: Die rechnerische Komplexität fortgesetzter Brüche. di
Zeyu,
1
Können wir die Faltung von Vektoren der konstanten Dimension 2 in der Zeit berechnen ? O ( n log n )nO(nlogn)
Kaveh,

Antworten:

7

Warnung: Dies ist noch keine vollständige Antwort. Wenn Sie sich durch Plausibilitätsargumente unwohl fühlen, hören Sie auf zu lesen.

Ich werde eine Variante betrachten, bei der wir (x - a_1) ... (x - a_n) über die komplexen Zahlen multiplizieren wollen.

Das Problem besteht darin, ein Polynom an n Punkten auszuwerten. Wir wissen, dass dies geschickt in O (n log n) -Zeit geschehen kann, wenn die Punkte zufällig n-te Wurzeln der Einheit sind. Dies nutzt die Symmetrien regulärer Polygone, die der Fast Fourier Transformation zugrunde liegen, aus. Diese Transformation gibt es in zwei Formen, die üblicherweise als zeitliche Dezimierung und frequente Dezimierung bezeichnet werden. In der zweiten Basis basieren sie auf einem doppelten Paar von Symmetrien von regelmäßigen Polygonen mit geraden Seiten: Die ineinandergreifende Symmetrie (ein regelmäßiges Sechseck besteht aus zwei ineinandergreifenden gleichseitigen Dreiecken) und die Symmetrie der Entfaltung des Lüfters (halbieren Sie ein regelmäßiges Sechseck und falten Sie die Teile wie Fächer auseinander in gleichseitige Dreiecke).

Aus dieser Perspektive erscheint es höchst unwahrscheinlich, dass ein O (n log n) -Algorithmus für eine beliebige Menge von n Punkten ohne spezielle Symmetrien existieren würde. Es würde bedeuten, dass regelmäßige Polygone im Vergleich zu zufälligen Punktmengen in der komplexen Ebene algorithmisch nichts Außergewöhnliches sind.

Per Vognsen
quelle
3
Andererseits erscheint eine -Untergrenze für ein solches natürliches Problem ebenso unplausibel! Ω(nlog2n)
Jeffs
Wahr! Ich wünschte, ich hätte eine endgültigere Antwort. Es ist sehr interessant.
Per Vognsen
Kopfgeld vergeben!
Jeffs
@PerVognsen: Können Sie eine Referenz für diesen Standpunkt bezüglich: Symmetrien von Polygonen / ineinandergreifende Symmetrien geben? Oder wenn es sich um eine eigene Beobachtung handelt, können Sie sie etwas weiter ausbauen?
Joshua Grochow