Bei einer algebraischen Zahl bin ich daran interessiert, eine Annäherung von bis zu einer gegebenen Genauigkeit zu finden, wobei sich auf den Realteil der komplexen Zahl bezieht.ℜ ( )
Formal möchte ich eine rationale Zahl so berechnen, dass | ℜ ( e α ) - r | ≤ 2 - n
ist durch ein (Standard-) Minimalpolynom gegeben.
Wie schnell können wir dieses Problem lösen?
Wenn als Gleitkomma angegeben wird, wird die folgende Referenz verwendet
R. Brent. Schnelle Auswertung elementarer Funktionen mit mehrfacher Genauigkeit. JACM, 1976.
scheint eine Antwort zu geben.
Ich bin mir jedoch nicht sicher, ob es für die algebraische Zahl .
Antworten:
Wie geschrieben, benötigt das Problem Zeit , wobei m die Länge der Eingabe ist (die Sie leider verwendet haben2Ω ( m ) m für etwas anderes verwendet). In der Tatistdie Größe der Ausgabe exponentiell in der Größe der Eingabe, wenn z. B. α eine positive ganze Zahl ist (gegeben durch ihr minimales Polynom x - α ) und n = 0 ist. Diese Grenze ist natürlich optimal, da es eine Reihe von Möglichkeiten gibt, das Ergebnis in der Zeit 2 O ( m ) zu berechnen.n α x - α n = 0 2O ( m )
Lassen Sie mich versuchen, die Frage so umzuformulieren, dass sie etwas sinnvoller ist. Die Hauptfrage ist, wie die Darstellung der Eingabe und Ausgabe sowie der Begriff der Approximation so gewählt werden, dass die Potenzierung eine kämpfende Chance hat, in der Polynomzeit berechenbar zu sein.
Ein Weg wurde von Kaveh in den Kommentaren erwähnt: Beschränken Sie die Domäne auf ein festes endliches Intervall. Dies funktioniert zwar, ist jedoch unnötig einschränkend. Insbesondere gibt es keine gute Möglichkeit, eine algebraische Zahl in eine begrenzte Zahl umzuwandeln, damit ihre Exponentiale etwas miteinander zu tun haben.
Ein flexiblerer Ansatz besteht darin, die Eingabe als Festkommazahl und die Ausgabe als Gleitkommazahl darzustellen . Um genau zu sein, ist eine Festpunktdarstellung eine Zeichenfolge bezeichnet ± ∑ j a
Festpunkt- und Gleitkomma-Darstellungen von dyadischen Gaußschen Rationalen und Approximationen komplexer Zahlen werden auf ähnliche Weise unter Verwendung eines Paares von Real definiert. Überall unten bezeichnet die Gesamtgröße der Eingabe.n
Die (reale oder komplexe) Exponentiation sei nun das folgende Problem: Die Eingabe ist eine Festpunktdarstellung einer Zahl und einer unären natürlichen Zahl m , und die Ausgabe ist eine Gleitkommanäherung von e x anx m ex Bits relativer Genauigkeit. DerLogarithmusnimmtzweifacheine Gleitkommazahl x und ein unäres m als Eingabe, und die Ausgabe ist eine Festkomma-Annäherung von log x (z. B. der Hauptzweig im komplexen Fall) an m Bits mit absoluter Genauigkeit.m x m logx m
Solange wir uns an Laufzeitgrenzen halten, die einige milde Regelmäßigkeitsbedingungen erfüllen, und konstante multiplikative Faktoren ignorieren, haben wir:
Die algebraischen Zahlen können durch ihr minimales Polynom f (geschrieben als Folge von ganzzahligen Koeffizienten in Binärform) zusammen mit einigen Mitteln zur Unterscheidung zwischen den Wurzeln desselben Polynoms dargestellt werden. Ein natürlicher Weg, dies zu tun, besteht darin, ein Isolationsintervall oder eine Isolationsscheibe zu benötigen: ein Paar von Festpunktnummern c , ρ, so dassα f c,ρ . Wir müssen zumindest verlangen, dass α eine eindeutige Wurzel von f mit dieser Eigenschaft ist, aber etwas Stärkeres kann geeigneter sein. Dazu später mehr.|c−α|<ρ α f
Die algebraische Zahlennäherung sei das folgende Problem: Berechnen Sie bei gegebener algebraischer Zahl in der obigen Darstellung und m in unär eine (komplexe) Festpunktnäherung von α an m Bits mit absoluter Genauigkeit.α m α m
Beweisskizze: Einerseits können wir zuerst die Fixpunktnäherung von berechnen und dann potenzieren. Es ist zu beachten, dass m + O ( 1 ) Bits mit absoluter Genauigkeit für α e α bis m Bits mit relativer Genauigkeit bestimmen und umgekehrt.α m+O(1) α eα m
Wenn wir andererseits eine algebraische Zahlenexponentiation durchführen können, können wir auch eine einfache Exponentiation durchführen, da wir eine Festpunktzahl (die als genau angesehen wird) leicht in ihre Darstellung als algebraische Zahl umwandeln können. Durch die obigen Kommentare bedeutet dies, dass wir auch Logarithmen in derselben Zeitgrenze berechnen können. Wir können also eine algebraische Zahl approximieren , indem wir zuerst approximieren und dann einen Logarithmus nehmen. QEDeα
Dies teilt die Frage in zwei völlig unabhängige Probleme auf. Die bekannteste Obergrenze für die Potenzierung ist
Die bekannteste Untergrenze istΩ(M(n)) oben erwähnte . Die bekannteste Obergrenze für ist n log nM(n) nach Fürers Algorithmus.nlogn2O(log∗n)
Es ist schwieriger, den Stand der Technik für die algebraische Näherung von Zahlen (dh das Finden von Wurzeln) herauszufinden, da es sich immer noch um ein Gebiet aktiver Forschung handelt und die Formulierungen von Grenzen in der Literatur oft nicht so klar sind, wie man es gerne hätte. Lassen bezeichnen O ( f ( n ) p o l y l o g ( f ( n ) ) ) .O~(f(n)) O(f(n)polylog(f(n)))
Für reale Wurzel Annäherung, Pan und Tsigaridas geben:
In derselben Arbeit erwähnen sie als die bekannteste Grenze für die komplexe Wurzelnäherung. In einem etwas neueren Artikel ( http://arxiv.org/abs/1404.4775 ) scheinen sie für den komplexen Fall die gleichen Grenzen zu beanspruchen wie für den realen Fall, unter der Annahme, dass die angegebene Isolationsplatte ein Isolationsverhältnis aufweist (the Abstand der Plattenmitte zur nächsten anderen Wurzel von f geteilt durch den Radius der Platte) mindestensO~(d3+d2m) f oder so, aber es ist ziemlich chaotisch geschrieben und ich kann es falsch interpretieren.1+1/logd
Nun die letzte Komplikation. Ich habe das Problem als Annäherung an , während die Frage nach Re e α fragt . Dies macht das Problem tatsächlich schwieriger: Wenn Re e α ≪ Im e α ist , dann hat eine Annäherung x + i y von e α an m Bits relativer Genauigkeit den Fehler y 2 - m , der durchaus größer als x selbst sein kann, und in Es ist nicht garantiert, dass der Fall durch x 2 - m begrenzt ist .eα Reeα Reeα≪Imeα x+iy eα m y2−m x x2−m
Zur Potenzierung exakter Rationalitäten können wir das Problem umgehen:
Beweisskizze: Wir haben . Wir können e x approximieren und Gleitkommazahlen lassen sich leicht multiplizieren. Das Problem besteht darin, cos y mit dem relativen Fehler 2 - m zu approximieren . Wir können die ganze Zahl berechnen k am nächsten zu 2 y / π , von wo cos y ist ± cos y ' oder ± sin y ' , wobei y ' = y -Reeα=excosy ex cosy 2−m k 2y/π cosy ±cosy′ ±siny′ erfüllt| y'| ≤π/4. Das Problem tritt auf, wenn wirsiny'berechnen müssenundy'sehr klein ist, dawirm+log|benötigen, umsiny'zumBits relativer Genauigkeitzu haben y'-1| Bits von absoluter Genauigkeit. Angenommen,y=u/vist klein, so haben wir eine gute rationale Näherung vonπ:
y′=y−kπ2 |y′|≤π/4 siny′ y′ siny′ m m+log|y′−1| y=u/v , wobei ganze Zahlen sind, die als Eingabe angegeben werden. Wenn y 'u,v y′ π
Nunπist bekannteinen finite Unvernünftigkeit Maß habenν(die Stromgrenze ist7.6063vonSalikhov). Dies impliziert
| y'| ≥1
Ich weiß nicht, ob das auch für algebraisches . Im obigen Argument kann man eine Bindung an log | erhalten y ' | Nach dem Satz von Baker ist jedoch keine seiner Versionen, die ich gesehen habe, gut genug, um die erforderliche Genauigkeit in der Größe der Eingabe linear zu machen: Insbesondere beinhalten die Grenzen ein (ziemlich unangenehmes) Polynom in Gradα log|y′| . Dies macht den resultierenden Algorithmus polynomisch in der Größe der Eingabe, aber mit einem lächerlichen Exponenten.deg(f)
quelle