Wir wissen, dass die Exponentialfunktion über natürliche Zahlen in der Polynomzeit nicht berechenbar ist, da die Größe der Ausgabe in der Größe der Eingaben nicht polynomiell begrenzt ist.
Ist dies der Hauptgrund für die Schwierigkeit, die Exponentialfunktion zu berechnen, oder ist die Exponentiation unabhängig von dieser Überlegung von Natur aus schwierig zu berechnen?
Wie komplex ist der Bitgraph der Exponentialfunktion?
Antworten:
Hier sind einige Obergrenzen.
Durch wiederholtes Quadrieren liegt das Problem bei PSPACE.
Es gibt eine etwas bessere Obergrenze. Das Problem ist ein Sonderfall des BitSLP-Problems: Bei einem geradlinigen Programm, das mit 0 und 1 beginnt, mit Addition, Subtraktion und Multiplikation, die eine ganze Zahl N darstellen , und bei gegebenem i ∈ℕ wird entschieden, ob das i- te Bit (Zählen ab dem niedrigstwertiges Bit) der binären Darstellung von N ist 1. Das BitSLP-Problem befindet sich in der Zählhierarchie ( CH ) [ABKM09]. (Es wird angegeben , in [ABKM09] , dass nachgewiesen werden kann , dass das BitSLP Problem in PH ist PP PP PP PP .)
Die Mitgliedschaft in CH wird oft als Beweis dafür gewertet, dass das Problem wahrscheinlich nicht PSPACE-schwer ist, da die Gleichheit CH = PSPACE impliziert, dass die Zählhierarchie zusammenbricht. Ich weiß jedoch nicht, wie stark diese Beweise sind.
In Bezug auf die Härte wird gezeigt, dass BitSLP in demselben Artikel [ABKM09] # P-hart ist. Der dortige Beweis scheint jedoch keine Härte der Sprache X in der Frage zu implizieren .
Verweise
[ABKM09] Eric Allender, Peter Bürgisser, Johan Kjeldgaard-Pedersen und Peter Bro Miltersen. Zur Komplexität der numerischen Analyse. SIAM Journal on Computing , 38 (5): 1987–2006, Januar 2009. http://dx.doi.org/10.1137/070697926
quelle
Keine vollständige, aber zumindest teilweise Antwort.
Ich stelle fest, dass die beiden bisher erschienenen Antworten nicht die Tatsache erwähnt haben, dass es einen -Algorithmus zur Berechnung des modularen Exponentials x y mod z gibt, wobei n die Anzahl der Bits in z ist und ω ist der Exponent, der dem schnellsten Multiplikationsalgorithmus entspricht. Somit können die weniger signifikanten Bits des Exponentials effizient berechnet werden (in O ( n 3 ) oder weniger).O(n1+ω) xy mod z n z ω O(n3)
Der Weg, dies zu tun, ist ziemlich einfach: Sie können , c 2 = x 2 mod z , c j = c 2 j - 1 mod z berechnen . Offensichtlich c j = x 2 j mod z und so x y ≡ & Pgr; j c j j j mod z , aber da es nur ist n Begriffe c j Dieser Vorgang dauert nur nc1=x c2=x2 mod z cj=c2j−1 mod z cj=x2j mod z xy≡∏jcyjj mod z n cj n Multiplikationen.
Des Weiteren können wir schreiben als ( Σ n i = 0 2 i x i ) y , so die höchstwertigen Bits entsprechen , welche etwa 2 n y auch , da diese effizient berechnen können nur auf dem höchstwertigen Bit auf der abhängig von x .xy (∑ni=02ixi)y 2ny x
So ist die einzige wirkliche Problem Begriffe werden durch die Bits in Richtung Zentrum von verursacht .xy
quelle
[Diese Antwort erklärt einige interessante Aspekte der Antwort von Per Vognsen . Es ist keine direkte Antwort auf die Frage des OP, kann jedoch bei der Lösung solcher Fragen hilfreich sein.]
Schauen Sie sich als nächstes Dick Liptons Einstellung zum Thema an: Cooks Klasse enthält Pi . Der Artikel beschreibt im Wesentlichen, dass die Entscheidungich th bisschen von π ist in der Klasse von Steve Cook (S C , die in der Polynomzeit und im polylogarithmischen Raum akzeptierte Sprachklasse), und dass diese Tatsache außerordentlich seltsam ist, wie er es gegen "konventionelle Weisheit" nennt.
PS: Am Ende seines Artikels gibt Dick zu, dass der Algorithmus möglicherweise nicht mehr funktioniertS C Eine solche Möglichkeit ist jedoch jenseits des "praktischen Gebrauchs".
quelle