Computeralgebra Skript zur Vorlesung von Prof. Dr. B. H. Matzat Sommersemester 2008 Heidelberg Ausarbeitung: Felipe Garcia Lopez und Florian Mirus Universität Heidelberg Einleitung Dieses Skriptum enthält die Ausarbeitung meiner Vorlesung Computeralgebra, die ich in den vergangenen 20 Jahren mehrfach in Heidelberg gehalten habe, in der letzten Version vom Sommersemester 2008. Der erste Teil ist mit Schnelle Algorithmen überschrieben. Hier werden schnelle Algorithmen mit Einschluß von Komplexitätsanalysen für die Grundrechenarten Addition, Multiplikation, Division und Euklidischen Algorithmus behandelt. Diese basieren unter anderem auf diskreter Fouriertransformation, dem Algorithmus von Schönhage und Strassen, dem Einsatz von Subresultanten und der modularen Methode, d.h. Rechnen in Restklassenringen. Als Anwendung wird unter anderem das Rechnen mit algebraischen Zahlen vorgeführt. Im letzten Paragraphen dieses Kapitels wird der LLL-Algorithmus zur Gitterbasisreduktion behandelt und eingesetzt, um einen polynomialen Algorithmus für die Berechnung des Minimalpolynoms einer algebraischen Zahl zu erhalten. Das zweite Kapitel über Primzerlegung beginnt mit Primzahltests für natürliche Primzahlen, wozu insbesondere der probabilistisch polynomiale Primzahltest von Miller-Rabin und der neue polynomiale Primzahltest von Agrawal-Kayal-Saxena gehören. Im zweiten Teil werden Primzerlegungsalgorithmen behandelt, vor allem Quadratdifferenzenverfahren bis hin zum Quadratischen Sieb mit subexponentieller Laufzeit. Im dritten Teil des Kapitels werden schließlich Algorithmen zur Primzerlegung in Polynomringen studiert. Höhepunkt ist hier der mit dem LLL-Algorithmus auf polynomiale Laufzeit beschleunigte Zassenhaus-Algorithmus zur Primzerlegung ganzzahliger Polynome. Im letzten Paragraphen wird dann noch kurz auf die Primzerlegung multivariater Polynome eingegangen. Im dritten und letzten Kapitel werden Algebraische Gleichungssysteme behandelt. Hier ist das zentrale Thema der Buchberger-Algorithmus in diversen Varianten über Körpern, Euklidischen Ringen, etc. Diese werden unter anderem eingesetzt zum Lösen algebraischer Gleichungssysteme und für die rechnerische Durchführung elementarer Idealoperationen in Polynomringen über Körpern. Im letzten Paragraphen wird schließlich eine Verallgemeinerung des Buchberger-Algorithmus dazu benutzt zu zeigen, wie Aufgaben der linearen Algebra und der Idealtheorie in allgemeinen Noetherschen Ringen algorithmisch gelöst werden können. Weiterführende Themen der algorithmischen Idealtheorie wie Radikalberechnung, Primärzerlegung und Normalisierung wurden üblicherweise in einer anschließenden Vorlesung oder einem anschließenden Seminar behandelt. 2 Zum Schluß möchte ich mich noch bei F. Garcia Lopez und F. Mirus für die sorgfältige Ausarbeitung des Skriptums bedanken. Trotzdem ist es nicht auszuschließen, dass sich hier und da noch eine kleine Ungenauigkeit oder ein Fehler eingeschlichen hat. Für entsprechende Hinweise bzw. Korrekturvorschläge wären wir sehr dankbar. B. H. Matzat Heidelberg, den 30.11.2010 Inhaltsverzeichnis Einleitung 1 Inhaltverzeichnis 3 I 7 Schnelle Algorithmen 1 Elementare Grundoperationen 1.1 Gewöhnliche Addition und Subtraktion 1.2 Die gewöhnliche Multiplikation . . . . 1.3 Division mit Rest . . . . . . . . . . . . 1.4 Die Karatsuba-Multiplikation . . . . . . . . . . . . . 2 Diskrete Fouriertransformation 2.1 Diskrete Fourier-Transformierte . . . . . . 2.2 Die inverse diskrete Fouriertransformation 2.3 Schnelle Polynommultiplikation . . . . . . 2.4 Schnelle Polynomdivision mit Rest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 . 9 . 11 . 12 . 15 . . . . . . . . 19 19 21 23 24 3 Schnelle Multiplikation und Division mit Rest ganzer Zahlen 3.1 Modulare diskrete Fouriertransformation . . . . . . . . . . . . . 3.2 Schnelle Multiplikation ganzer Zahlen . . . . . . . . . . . . . . . 3.3 Schnelle Division mit Rest ganzer Zahlen . . . . . . . . . . . . . 3.4 Schnelles Potenzieren natürlicher Zahlen . . . . . . . . . . . . . . . . . . . . . . . . . 29 29 31 34 35 4 Der 4.1 4.2 4.3 4.4 . . . . . . . . . . . . 37 37 40 41 44 Euklidische Algorithmus Euklidische Ringe . . . . . . . . . . . . . . . . . Komplexität des Euklidischen Algorithmus . . . Der schnelle Euklidische Algorithmus . . . . . . Rechnen mit rationalen Zahlen und Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Resultanten 45 5.1 Sylvestermatrix und Resultante . . . . . . . . . . . . . . . . . . . . . 45 5.2 Produktformel für die Resultante . . . . . . . . . . . . . . . . . . . . 49 4 INHALTSVERZEICHNIS 5.3 5.4 Die Diskriminante eines Polynoms . . . . . . . . . . . . . . . . . . . . 52 Eliminationsverfahren für nichtlineare Gleichungssysteme . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 6 Subresultanten 6.1 Polynomrestfolgen . . . . . . . . . . . 6.2 Subresultanten und Bézoutkoeffizienten 6.3 Koeffizientenwachstum . . . . . . . . . 6.4 Der Euklidische Algorithmus in Z[T ] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 55 58 61 62 7 Die 7.1 7.2 7.3 modulare Methode 65 Der Hauptsatz über simultane Kongruenzen . . . . . . . . . . . . . . 65 Polynomwertberechnung und Interpolation . . . . . . . . . . . . . . . 68 Modulares Rechnen mit ganzen Zahlen . . . . . . . . . . . . . . . . . 70 8 Der 8.1 8.2 8.3 modulare Euklidische Algorithmus Geeignete Primzahlen . . . . . . . . . . . . . . . . . . . . . . . . . . . Koeffizientenschranken für Teilerpolynome . . . . . . . . . . . . . . . Der modulare ggT-Algorithmus . . . . . . . . . . . . . . . . . . . . . 9 Rechnen mit algebraischen Zahlen 9.1 Zahlkörper und endliche Körper . . . . . . . . 9.2 Rechnen im Körper aller algebraischen Zahlen 9.3 Wurzeltrennung . . . . . . . . . . . . . . . . . 9.4 Sturmsche Ketten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 73 75 77 81 81 83 84 87 10 Gitterbasisreduktion 91 10.1 Reduzierte Gitterbasen . . . . . . . . . . . . . . . . . . . . . . . . . . 91 10.2 Konstruktion einer reduzierten Gitterbasis . . . . . . . . . . . . . . . 94 10.3 Konstruktion des Minimalpolynoms einer algebraischen Zahl . . . . . 96 II Primzerlegung 103 11 Primzahlen 105 11.1 Erzeugung von Primzahlen . . . . . . . . . . . . . . . . . . . . . . . . 105 11.2 Pollard’s ρ-Methode . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 11.3 Der Algorithmus von Pollard und Strassen . . . . . . . . . . . . . . . 112 12 Die 12.1 12.2 12.3 Sätze von Fermat und Restklassenringe . . . . . Quadratische Reste . . . Das Eulersche Kriterium Euler 115 . . . . . . . . . . . . . . . . . . . . . . . . . 115 . . . . . . . . . . . . . . . . . . . . . . . . . 118 . . . . . . . . . . . . . . . . . . . . . . . . . 119 INHALTSVERZEICHNIS 5 13 Der 13.1 13.2 13.3 Primzahltest von Miller-Rabin Strenge Pseudoprimzahlen . . . . . . . . . . . . . . . . . . . . . . . Der Satz von Rabin . . . . . . . . . . . . . . . . . . . . . . . . . . . Bemerkungen zur Erweiterten Riemannschen Vermutung . . . . . . 14 Der 14.1 14.2 14.3 AKS-Primzahltest 135 Vorbemerkungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 p-ähnliche Zahlen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 Der AKS-Algorithmus . . . . . . . . . . . . . . . . . . . . . . . . . . 141 15 Quadratdifferenzenverfahren 15.1 Die Quadratdifferenzenmethode von Fermat . 15.2 Exkurs über Kettenbrüche . . . . . . . . . . . 15.3 Das Primzerlegungsverfahren von Lehman . . 15.4 Das Kettenbruch-Faktorisierungsverfahren von . . . . . . . . . . . . . . . Lehmer . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 . 125 . 127 . 131 145 . 145 . 147 . 149 . 151 16 Der 16.1 16.2 16.3 Algorithmus von Dixon 153 Faktorenbasen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 Einige relative Häufigkeiten . . . . . . . . . . . . . . . . . . . . . . . 155 Der Satz von Dixon . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 17 Das 17.1 17.2 17.3 17.4 Quadratische Sieb Das einfache Quadratische Sieb . . . . . . . . Laufzeitabschätzung für das Quadratische Sieb Das verteilte Quadratische Sieb . . . . . . . . Schnelles Lösen quadratischer Gleichungen . . . . . . 161 . 161 . 162 . 164 . 165 . . . . 169 . 169 . 173 . 176 . 178 Hensel’sche Methode Das Hensel’sche Lemma . . . . . . . . . . . . . . . . . . . . . . . . Primzerlegung in Zp [T ] . . . . . . . . . . . . . . . . . . . . . . . . . Primzerlegung in Z[T ] . . . . . . . . . . . . . . . . . . . . . . . . . 181 . 181 . 184 . 185 . . . . . . . . 18 Primpolynomzerlegung über endlichen Körpern 18.1 Teilfaktorisierungen . . . . . . . . . . . . . . . . . 18.2 Der Berlekamp-Algorithmus . . . . . . . . . . . . 18.3 Eine Variante für große q . . . . . . . . . . . . . . 18.4 Nullstellenberechung über endlichen Körpern . . . 19 Die 19.1 19.2 19.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Faktorisierung multivariater Polynome 191 20.1 Das Homomorphieprinzip . . . . . . . . . . . . . . . . . . . . . . . . 191 20.2 Das mehrdimensionale Hensel’sche Lemma . . . . . . . . . . . . . . . 192 20.3 Die rekursive Methode von Wang . . . . . . . . . . . . . . . . . . . . 194 6 III Inhalt Algebraische Gleichungssysteme 21 Gröbner-Basen 21.1 Monomordnungen . . . . . . . . . . . 21.2 Charakterisierung von Gröbner-Basen 21.3 Existenz von Gröbner-Basen . . . . . 21.4 Reduzierte Gröbner-Basen . . . . . . 22 Der 22.1 22.2 22.3 22.4 . . . . Buchberger-Algorithmus Differenzenpolynome . . . . . . . . . . Konstruktion einer Gröbner-Basis . . . Syzygien . . . . . . . . . . . . . . . . . Der erweiterte Buchberger-Algorithmus . . . . . . . . 197 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 . 199 . 201 . 204 . 205 . . . . 209 . 209 . 211 . 214 . 217 23 Eliminationstheorie 219 23.1 Eliminationsideale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 23.2 Der Ergänzungssatz . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 23.3 Ideale der Dimension Null . . . . . . . . . . . . . . . . . . . . . . . . 222 24 Elementare Idealoperationen 24.1 Durchschnitt von Idealen . . . . . . . . . . . . . 24.2 Quotient von Idealen und Radikalzugehörigkeit 24.3 Teilringzugehörigkeit . . . . . . . . . . . . . . . 24.4 Simultane Kongruenzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 . 225 . 226 . 228 . 229 25 Gröbner-Basen und Lineare Algebra in Noetherschen Ringen 233 25.1 Allgemeine Gröbner-Basen . . . . . . . . . . . . . . . . . . . . . . . . 233 25.2 Der allgemeine Buchberger-Algorithmus . . . . . . . . . . . . . . . . 235 25.3 Ringe mit konstruktiver linearer Algebra . . . . . . . . . . . . . . . . 238 Literaturverzeichnis 240 Teil I Schnelle Algorithmen Kapitel 1 Elementare Grundoperationen 1.1 Gewöhnliche Addition und Subtraktion Wenn ein Mensch oder ein Computer schnell rechnen können soll, ist es notwendig, dass er die Grundrechenoperationen Addition, Subtraktion, Multiplikation und Division (mit Rest) schnell ausführen kann. Daher wollen wir uns zu Beginn mit der Darstellung von Zahlen und dann mit den Grundrechenoperationen befassen. Dabei werden wir feststellen, dass es verschiedene Möglichkeiten (Algorithmen) gibt, dieselben Rechnungen auszuführen. Bei jedem Algorithmus benötigen wir Daten, die bereits vor Beginn des Verarbeitungsprozesses vorhanden sind, um das zu lösende Problem zu beschreiben. Diese Daten sind für den Verarbeitungsprozess notwendig, wir sprechen von den sogenannten Eingabedaten. Um zu entscheiden, ob nun ein Algorithmus schneller oder langsamer ist als ein anderer, werden wir den Begriff der Laufzeit oder (Bit)-Komplexität einführen und diese für jeden Algorithmus analysieren. Wir beginnen mit der Darstellung von Zahlen. Die natürlichen Zahlen (N, +, ·) bilden ein Monoid. Wählt man aus N eine Zahl B > 1, so kann jede natürliche Zahl x ∈ N durch die B-adische Entwicklung x = a0 + a1 B + a2 B 2 + ... + am−1 B m−1 mit 0 ≤ ai < B, ai ∈ N bzw. durch die Folge a0 , a1 , ... ihrer Koeffizienten eindeutig dargestellt werden. Die Zahl m nennen wir von nun an die Bitlänge oder einfach Länge der Zahl x. Ist y = b0 + b1 B + b2 B 2 + ... + bn−1 B n−1 mit 0 ≤ bi < B, bi ∈ N die B-adische Darstellung einer weiteren natürlichen Zahl, so kann man fragen, wie die B-adische Entwicklung von x + y bzw. x − y aussieht. Die einfachste Möglichkeit diese zu berechnen liefert der folgende Algorithmus. Algorithmus 1.1. (gewöhnliche Addition) Es seien zwei Zahlen in B-adischer Entwicklung x = a0 +a1 B+a2 B 2 +...+am−1 B m−1 und y = b0 + b1 B + b2 B 2 + ... + bn−1 B n−1 gegeben. Ohne Einschränkung können wir annehmen, dass m = n ist. Zu Beginn setzt man δ := 0 10 Elementare Grundoperationen 1. Bilde ci = ai + bi + δ für alle 0 ≤ i ≤ m und setze δ := 0. Falls ci ≥ B setze ci := ci − B und δ := 1. 2. Dann hat z = x + y die B-adische Darstellung z = m P ck B k . k=0 Algorithmus 1.2. (gewöhnliche Subtraktion) Es seien zwei Zahlen in B-adischer Entwicklung x = a0 +a1 B +a2 B 2 +...+am−1 B m−1 und y = b0 + b1 B + b2 B 2 + ... + bn−1 B n−1 gegeben mit y ≤ x und m = n. Zu Anfang sei δ := 0. 1. Bilde di = ai − bi − δ für alle 0 ≤ i ≤ m − 1, δ := 0 , falls di < 0 setze di := di + B , δ := 1. 2. Dann hat z = x − y die B-adische Darstellung z = m−1 P dk B k . k=0 Für die Darstellung einer ganzen Zahl z aus dem Ring (Z, +, ·) benötigt man als Ergänzung zu den natürlichen Zahlen nur ein zusätzliches Bit, welches das Vorzeichen anzeigt, das Vorzeichenbit sign(z), d.h. es ist Z 3 z = sign(z) · x mit x ∈ N, sign(z) = (−1)s mit s ∈ {0, 1}. Elemente aus dem Körper der rationalen Zahlen (Q, +, ·), dem Quotientenkörper von Z, werden als Tupel bzw. Bruch einer ganzen und einer natürlichen Zahl dargestellt: Q3q= x y mit x ∈ Z, y ∈ N. Anmerkung 1.3. Die Addition und Subtraktion in Z unterscheidet sich von der Addition und Subtraktion in N nur um das Vorzeichen. Definition 1.4. (Landau-Symbole) Es seien f, g : N −→ R reellwertige Funktionen. Dann besteht O(g) aus der Menge aller f : N −→ R, für die es ein c ∈ R gibt, so dass f (x) ≤ c · g(x) für alle x ∈ N (x) gilt. Die Funktion f liegt in o(g), wenn sogar lim fg(x) = 0 gilt. Die Symbole O und x→∞ o nennt man Landau-Symbole. Satz 1.5. Für die gewöhnliche Addition und Subtraktion ganzer Zahlen der Bitlänge höchstens m genügen O(m) Bitoperationen. Beweis. Um diese Aussage zu beweisen zählen wir einfach die Elementaroperationen. Hierzu wählen wir als Basiszahl B = 2. Dann sind ai , bi Elemente von {0, 1}. Der Additionsalgorithmus 1.1 führt jeweils m-mal auf 2 Bitadditionen und 1 Restbildung. Dies ergibt insgesamt 3 · m und damit O(m) Elementaroperationen. 1.2 Die gewöhnliche Multiplikation 11 Definition 1.6. (darstellungsendlicher Ring, Polynomring) Ein Ring (R, +, ·) heißt darstellungsendlich, falls sich jedes Element aus R durch endlich viele Bits darstellen lässt. Beispiele für darstellungsendliche Ringe sind Z, Q, Z/nZ, der Restklassenkörper Fp = Z/pZ usw. Der Ring der Polynome (R[T ], +, ·) über einem darstellungsendlichen Ring R (in einer Variablen) besteht aus Elementen der folgenden Form: R[T ] 3 f = m X ai T i , deg(f ) = m. i=0 Anmerkung 1.7. Die Addition und Subtraktion von Polynomen (über darstellungsendlichen Ringen) kann mit obigen Algorithmen ohne Übertrag, d.h. mit δ = 0 durchgeführt werden. Korollar 1.8. Für die Addition und Subtraktion von Polynomen vom Grad ≤ m über darstellungsendlichen Ringen genügen O(m) Ringoperationen. Korollar 1.9. Die Anzahl der für die Addition bzw. Subtraktion benötigten Bitoperationen in Z, Z/nZ, Fp , Z[T ], Fp [T ] hängt linear von der Länge der Eingabedaten ab. Beweis. Die Behauptung folgt für Z, Z/nZ, Fp durch Anwendung von Satz 1.5 und für Z[T ], Fp [T ] mit Hilfe von Korollar 1.8. 1.2 Die gewöhnliche Multiplikation Wie im letzten Abschnitt seien x, y ∈ Z durch die B-adische Darstellung s Z 3 x = (−1) · m−1 X i ai B , t y = (−1) · i=0 n−1 X aj B j j=0 gegeben. Hier wollen wir der Frage nachgehen, wie man daraus die B-adische Darstellung von m+n−1 X s+t x · y = (−1) · ck B k k=0 gewinnt. Der einfachste Weg wird durch den folgenden Algorithmus beschrieben: Algorithmus 1.10. (gewöhnliche Multiplikation in N bzw. Z) Zu Beginn setzt man ck := 0 für alle 0 ≤ k ≤ m. 1. Für alle 0 ≤ i ≤ m − 1 und alle 0 ≤ j ≤ n − 1 bilde d := ci+j + ai · bj und setze ci+j := d mod B. Im Falle d > B setze δ := b Bd c und ci+j+1 := ci+j+1 + δ. 12 Elementare Grundoperationen 2. Dann ist x · y = (−1)s+t Pm+n−1 k=0 ck B k die B-adische Darstellung von x · y. Satz 1.11. (Aufwandsanalyse für die gewöhnliche Multiplikation) (a) Für die gewöhnliche Multiplikation ganzer Zahlen der Bitlängen m bzw. n genügen O(m · n) Bitoperationen. (b) Für die gewöhnliche Multiplikation von Polynomen vom Grad höchstens m bzw. n über darstellungsendlichen Ringen genügen O(m · n) Ringoperationen. Beweis. Auch hier kommt das Zählargument zum Zuge. (a) Zum Beweis der Aussage wählen wir als Basiszahl B = 2 und betrachten den Multiplikationsalgorithmus 1.10. Dabei benötigt man in höchstens m · n Schritten je eine Multiplikation, höchstens zwei Additionen und möglicherweise die Bildung eines Übertrags. Dies ergibt insgesamt einen Aufwand von O(m · n) Bitoperationen. (b) Diese Aussage beweist man analog zu (a), wobei man hier B = T wählt. Außerdem entfallen alle Überträge, d.h. es ist stets δ = 0. Korollar 1.12. Die Anzahl der benötigten Bitoperationen für die gewöhnliche Multiplikation in Z, Z/nZ, Fp , Z[T ], Fp [T ] hängt höchstens quadratisch von der Länge der Eingabedaten ab. Beweis. Die Behauptung folgt für Z, Z/nZ, Fp unter Verwendung von Satz 1.11(a). m n P P Im Falle von Z[T ], Fp [T ] wählt man f = ai T i , g = bj T j ∈ Z[T ] bzw. Fp [T ]. i=0 j=0 Es seien nun ki die Bitlänge von ai und lj die Bitlänge von bj . Die benötigte Anzahl an Bitoperationen für f · g ist daher m X n X i=0 j=0 n m X X lj )) ⊆ O(k · l) ⊆ O(k + l)2 . O(ki · lj ) ⊆ O(( ki )( |i=0 {z } |j=0 {z } =: k 1.3 =: l Division mit Rest Wie bisher seien x, y ∈ Z in B-adischer Darstellung gegeben. In diesem Abschnitt wollen wir nun die Division mit Rest untersuchen. Dazu benötigen wir die folgende Definition. Definition 1.13. (Absolutbetrag, Gaussklammer) Die Abbildung | · | : Z −→ N ( x , falls x ≥ 0 x 7−→ |x| = −x , falls x < 0 1.3 Division mit Rest 13 bezeichnet den gewöhnlichen Absolutbetrag. Desweiteren definieren wir die folgenden Abbildungen b·c : Q −→ Z , x 7−→ b xy c y wobei b xy c die grösste ganze Zahl kleiner gleich x y bezeichnet und d·e : Q −→ Z , x 7−→ d xy e y wobei d xy e die kleinste ganze Zahl grösser gleich xy bezeichnet. Die Werte dieser Abbildungen nennen wir von nun an untere bzw. obere Gaussklammer von xy . Bevor wir nun der Frage nachgehen, wie man q = b xy c für x = m−1 P i=0 ai B i , y = n−1 P bj B j j=0 (und damit r = x − q · y) praktisch erhält, erinnern wir noch kurz an einen aus der Linearen Algebra bekannten Satz. Satz 1.14. (Euklidischer Algorithmus) (a) Für 0 6= y, x ∈ Z existiert genau ein Paar ganzer Zahlen (q, r) ∈ Z × Z mit x = q · g + r und 0 ≤ r < |y|. (b) Für einen Körper K und 0 6= g, f ∈ K[T ] existiert genau ein Paar von Polynomen (q, r) ∈ K[T ]2 mit f = q · q + r und deg(r) < deg(g). Bemerkung 1.15. Es seien x, y ∈ Z wie oben, Dann gelten: x y n−1 < B, q̃ := min{b an ·B+a c, B−1}. bn−1 (a) Ist bn−1 ≥ b B2 c, so gilt q ≤ q̃ ≤ q + 2. B (b) Ist bn−1 < b B2 c, so gilt q ≤ q̃ ≤ q + 2 für den mit k := b bn−1 c erweiterten +1 k·x Bruch k·y . Beweis. Zunächst zeigen wir n−1 (a) Für q̃ = B − 1 ist der Beweis trivial, also können wir gleich q̃ = b an ·B+a c bn−1 annehmen. Dann ist q̃ · bn−1 ≥ an · B + an−1 − bn−1 + 1. Wegen bn−1 B n−1 ≤ y = n−1 P j=0 bi B i ergibt sich hieraus 14 Elementare Grundoperationen x − q̃ · y ≤ x − q̃ · bn−1 · B n−1 n X ≤ (ai · B i − (an · B + an−1 ) · B n−1 ) + bn−1 · B n−1 − B n−1 = i=0 n X ai · B i − B n−1 + bn−1 · B n−1 < bn−1 · B n−1 < y i=0 und wir erhalten q̃ ≥ q. Offenbar gelten q̃ ≤ x bn−1 ·B n−1 ≤ y bn−1 ·B n−1 und q > x y − 1. Nun wollen wir die Annahme q̃ > q + 2 zum Widerspruch führen. Unter dieser Annahme gilt 3 ≤ q̃ − q < x x x B n−1 − − 1 = + 1. y − B n−1 y y y − B n−1 Löst man diese Ungleichung nach x y auf, so ergibt sich y − B n−1 x > 2( ) ≥ 2(bn−1 − 1) y B n−1 und weiterhin x B − 4 ≥ q̃ − 3 ≥ q = b c ≥ 2(bn−1 − 1). y Durch Auflösen nach bn−1 erhält man bn−1 < b B2 c und damit einen Widerspruch. (b) Im Falle bn−1 < b B2 c erhalten wir wie im ersten Teil q ≤ q̃ für kx . Nehmen wir ky B also jetzt an, dass bn−1 ≥ b 2 c ist und definieren b̃n−1 := kbn−1 , so erhalten wir die folgende Ungleichungskette B > b̃n−1 ≥ b bB c + 1 B B − bn−1 B cbn−1 ≥ bn−1 ≥ 2 > b c. bn−1 + 1 bn−1 + 1 bn−1 + 1 2 Dies ist ein Widerspruch und zeigt damit die Behauptung. Korollar 1.16. Bei jedem Elementarschritt gemäß Bemerkung 1.15 kann der Quotient q in höchstens 3 ∈ O(1) Versuchen gefunden werden. Algorithmus 1.17. (Division mit Rest) P i Es seien zwei ganze Zahlen in B-adischer Entwicklung gegeben, etwa x = m−1 i=0 ai B , Pn−1 y = j=0 bj B j . Ohne Einschränkung nehmen wir an, dass n ≤ m gilt. 1. Wir durchlaufen mit einer Schleife die Indizes von m − n bis 0 abwärts und bezeichnen mit k den aktuellen Index. Durch Elementarschritte gemäß Bemerkung 1.15 für x und yk := yB k erhalten wir qk nach Korollar 1.16 und setzen x := x − qk yk . 1.4 Die Karatsuba-Multiplikation 2. Es ist q = m−n P k=0 15 qk B k = b xy c und r = x − qy. Satz 1.18. (Aufwandsanalyse für die Division mit Rest) (a) Für die Division mit Rest (natürlicher und) ganzer Zahlen der Bitlängen m bzw. n benötigt man höchstens O(m · n) Bitoperationen. (b) Für die Division mit Rest von Polynomen über einem darstellungsendlichen Körper der Grade m bzw. n benötigt man höchstens O(m · n) Ringoperationen. Beweis. Wie in den bisherigen Beweisen dieser Art, zählen wir die Anzahl der Elementaroperationen. (a) Wir wählen als Basiszahl B = 2 und betrachten den Divisionsalgorithmus. Der Elementarschritt ist eine Subtraktion von yB m−1 , d.h. es genügen (m − n) Subtraktionen von Zahlen der Länge n. Mit Satz 1.5 folgt: Es genügen O((m − n) · n) ⊆ O(m · n) Bitoperationen. (b) Dies beweisen wir analog zu (a) mit Basiszahl B = T . Der Elementarschritt ist eine Polynomsubtraktion, d.h. es genügen (m−n) Körperdivisionen bzw. Körpermultiplikationen mit Inversem plus (m − n) · n Körpermultiplikationen und Additionen. Insgesamt genügen damit O((m − n) · n) ⊆ O(m · n) Ringoperationen. Korollar 1.19. Die Division mit Rest in Z, Z/nZ, Fp , Z[T ], Fp [T ] hängt höchstens quadratisch von der Länge der Eingabedaten ab. 1.4 Die Karatsuba-Multiplikation In Abschnitt 1.2 haben wir in Satz 1.11 den Aufwand der gewöhnlichen Schulmultiplikation untersucht. Nun stellt sich natürlich die Frage, ob man auch mit weniger Rechenaufwand auskommen kann. Karatsuba hat dazu 1962 eine einfache und doch sehr wirkungsvolle Strategie entwickelt. Wie gewohnt sollen zwei Zahlen x und y in B-adischer Darstellung vorliegen. Ohne Einschränkung können wir von einer 2-Potenz als Bitlänge, d.h. m = n = 2k ausgehen(z.B. durch Hinzufügen von Nullkoeffizienten). x= m−1 X i=0 i ai B ∈ N, y = n−1 X j=0 bj B j ∈ N mit n = m = 2k . 16 Elementare Grundoperationen Durch Aufspalten in Terme mit geradem bzw. ungeradem B-Exponenten lassen sich x und y in Form n n y = y0 + y1 · B 2 x = x0 + x1 · B 2 , schreiben. Das Produkt x · y ergibt sich damit in der gewöhnlichen Form als n x · y = x0 y0 + (x0 y1 + x1 y0 )B 2 + x1 y1 B n bzw. in einer modifizierten Form als n x · y = x0 y0 + C · B 2 + x1 y1 B n , mit C = ((x0 + x1 ) · (y0 + y1 ) − x0 y0 − x1 y1 ). Nun scheint die modifizierte Form zunächst aufwändiger. Bei näherem Hinsehen erkennt man jedoch, dass die Produkte x0 y0 und x1 y1 doppelt auftreten. Daher müssen nur drei Multiplikationen statt vier in der gewöhnlichen Form und einige Additionen ausgeführt werden. Algorithmus 1.20. (Karatsuba-Multiplikation) Gegeben seien zwei Zahlen x, y der Länge m = n = 2k in B-adischer Darstellung: 1. Solange n > 1, spalte x und y auf in x = (x0 , x1 ), y = (y0 , y1 ). Um die Koeffizienten des Produkts zu berechnen, rufen wir die Funktion Karatsuba für Zahlen kürzerer Bitlänge rekursiv auf, d.h. z0 :=Karatsuba(x0 , y0 , k − 1) z1 :=Karatsuba(x0 + x1 , y0 + y1 , k − 1) z2 :=Karatsuba(x1 , y1 , k − 1). 2. Im Falle n = 1, setze z = x · y =Karatsuba(x, y, 1). k−1 3. z = x · y = z0 + z1 B 2 k + z2 B 2 . Bei zukünftigen Komplexitätsanalysen wird es notwendig sein, mit Logarithmen zu rechnen. Wir benötigen die folgende Definition. Definition 1.21. (Logarithmus Dualis, Logarithmus Naturalis) Es sei x ∈ R eine reelle Zahl. Dann bezeichnen wir mit ld(x) den Logarithmus Dualis (Logarithmus zur Basis 2) und mit ln(x) den Logarithmus Naturalis (natürlicher Logarithmus zur Basis e). Satz 1.22. (Aufwandsanalyse für die Karatsuba-Multiplikation) (a) Für die Karatsuba-Multiplikation zweier ganzer Zahlen der Bitlänge höchstens n = 2k genügen O(nld(3) ) Bitoperationen. (b) Für die Karatsuba-Multiplikation zweier Polynome über darstellungsendlichen Ringen vom Grad höchstens n = 2k genügen O(nld(3) ) Ringoperationen. 1.4 Die Karatsuba-Multiplikation 17 Beweis. Um die Gesamtzahl der benötigten Bitoperationen zu berechnen, verwenden wir einen Trick und bezeichnen mit Θ(n) die Anzahl der Bit- bzw. Ringoperationen für den Karatsuba-Algorithmus Karatsuba(x, y, k) mit n = 2k . Außerdem sei α(k) die Anzahl der Bitoperationen für die Addition von zwei ganzen Zahlen der Länge 2k . Für die Berechnung der modifizierten Form werden nun 3 Multiplikationen von Zahlen der Länge n2 = 2k−1 benötigt. Darüber hinaus kommen noch einige Additionen hinzu. (x0 + x1 ) und (y0 + y1 ) kosten 2 · α(k − 1) = α(k) Bitoperationen. Für die Berechnung von C werden weitere 2·α(k) Bitoperationen benötigt. Da x0 y0 und x1 y1 ohne Addition zusammengefügt werden können, kommen zur Berechnung von x · y n nur noch die Addition von C · B 2 und x0 y0 + x1 y1 B n mit α(k) Bitoperationen hinzu, also insgesamt 4 · α(k) Bitoperationen. Da im Laufe der folgenden Rechnung die Länge der Zahlen während der Rekursion abnimmt, können wir 4 · α(k) bzw. 4 · α(l) mit l ≤ k durch eine Konstante γ abschätzen. Dies ergibt die folgende Bilanz: n Θ(1) = 1, Θ(n) = 3 · Θ( ) + γ · n mit γ = 4 · α(k). 2 Damit lässt sich Θ(n) rekursiv berechnen: n n n 3 Θ(n) = 3 · Θ( ) + γ · n ≤ 3 · (3 · Θ( ) + γ · ) + γ · n ≤ 32 · Θ(2k−2 ) + 2k · γ · (1 + ). 2 4 2 2 Führt man diese Rechnung wiederholt aus, erhält man ! 3 k k−1 i X (2) − 1 3 k k k k Θ(n) ≤ 3 · O(1) + γ · 2 ≤3 +γ·2 ∈ O(3k ) = O(2k·ld(3) ) 3 i 2 − 1 2 i=0 und damit Θ(n) ∈ O(nld(3) ). Damit haben wir gesehen, dass die Komplexität der Karatsuba-Multiplikation deutlich geringer ist als die der gewöhnlichen Multiplikation : O(nld(3) ) gegenüber O(n2 ) mit ld(3) ≈ 1, 59. Was man dadurch praktisch gewonnen hat, veranschaulichen wir uns an Abbildung 1.1. Bei jedem Karatsuba-Schritt benötigt man gegenüber der gewöhnlichen Multiplikation nur drei statt vier Multiplikationen mit Θ( n2 ) Bitoperationen. Da die zusätzlich benötigten Additionen nur gering ins Gewicht fallen, spart man etwa ein Viertel des Rechenaufwands. Aus dem Viereck in Abbildung 1.1 der bei der gewöhnlichen Multiplikation benötigten Bitoperationen kann man also ein Viertel (oben rechts) herausnehmen. Beim zweiten Karatsuba-Schritt gilt dasselbe für die verbliebenen drei Viertel des Vierecks Abbildung 1.1: Karatsuba usw. Bei großem k kann also die überwiegende Anzahl von Bitoperationen eingespart werden. Damit ist 18 Elementare Grundoperationen der Karatsuba-Algorithmus asymptotisch, d.h. für k → ∞ erheblich schneller als die gewöhnliche Multiplikation. Dabei ist allerdings zu beachten, dass der Vorfaktor (der bei der O-Notation nicht berücksichtigt wird) durch die zusätzlichen Additionen grösser ist und auch die Speicherverwaltung erheblich aufwändiger ist. Daher ist der Karatsuba-Algorithmus für kleine Zahlen langsamer und für grosse Zahlen schneller als die gewöhnliche Multiplikation. Interessant ist nun die Frage, ab welcher Grösse von Zahlen der Karatsuba-Algorithmus Einsparungen ergibt. Es hat sich herausgestellt, dass er oberhalb der 8-fachen Wortlänge schneller ist und auch von Computeralgebra-Systemen eingesetzt wird. Unterhalb der 8-fachen Wortlänge wird auf die gewöhnliche Multiplikation umgeschaltet. Nun kann man sich natürlich fragen, ob man durch den Einsatz von theoretischem Wissen weitere Verbesserungen hinsichtlich der Komplexität der Multiplikation erzielen kann. Das ist in der Tat möglich. Schönhage und Strassen haben gezeigt, dass mittels diskreter Fouriertransformation (auf die wir im folgenden Kapitel 2 genauer eingehen werden) und modularer Arithmetik Algorithmen konstruiert werden können, deren Komplexität asymptotisch bei O(n · ld(n) · ld(ld(n))) liegt. Dies ist nochmals deutlich besser als der Karatsuba-Algorithmus (fast linear). Aber in der Praxis kommt der Algorithmus von Schönhage und Strassen bisher nicht zur Anwendung, da der Übergangspunkt jenseits des zur Zeit für praktische Rechnungen zugänglichen Bereichs liegt. Kapitel 2 Diskrete Fouriertransformation 2.1 Diskrete Fourier-Transformierte Wie schon in Kapitel 1 angedeutet, werden wir nun die diskrete Fouriertransformation studieren. Dadurch werden wir nicht nur einen theoretisch noch effizienteren Multiplikationsalgorithmus für ganze Zahlen (siehe Kapitel 3), sondern auch einen schnellen Algorithmus zur Polynommultiplikation erhalten. Wir haben schon in Kapitel 1 gesehen, dass wir ganze Zahlen durch die Folge der Koeffizienten ihrer B-adischen Entwicklung eindeutig darstellen können. Das gleiche gilt auch für Polynome mit T als Basiszahl. Dies liefert uns die Koeffizientendarstellung. Andererseits ist es auch möglich, ein Polynom eindeutig als Folge von Stützstellen und Funktionswerten an diesen Stellen darzustellen. Diese Darstellung nennen wir Punkt-Wert-Darstellung. Die diskrete Fouriertransformation wird es uns ermöglichen, schnell von der Koeffizientendarstellung in die Punkt-Wert-Darstellung umzurechnen und umgekehrt. In der Punkt-Wert-Darstellung ergibt sich das Produkt zweier Polynome dann durch Multiplikation der Werte an den Stützstellen. Die Koeffizientendarstellung des Produkts ergibt sich dann mittels Interpolation bzw. inverser Fouriertransformation. Bevor wir uns damit ausführlicher befassen und die Komplexität dieser schnellen Polynommultiplikation genau analysieren werden, sei zunächst einiges zu den theoretischen Grundlagen gesagt. Definition 2.1. (Fourier-Transformierte) Es seien K ein Körper und x0 , ... , xn−1 ∈ K . Die Abbildung F : Kn −→ Kn (u0 , ... , un−1 ) 7−→ (û0 , ... , ûn−1 ) mit ûi = n−1 X uj xji =: u(xi ) j=0 heißt Fourier-Transformierte von u = (u0 , ... , un−1 ) an den Stützstellen x = n−1 (x0 , ... , xn−1 ). Die zugehörige Transformationsmatrix V = xji i,j=0 ist eine Vandermonde-Matrix. 20 Diskrete Fouriertransformation Anmerkung 2.2. Zur Berechnung von u(xi ) für 0 ≤ i ≤ n − 1 mit dem HornerSchema genügen O(n2 ) Ringoperationen wegen u(xi ) = (...((un−1 xi + un−2 )xi + un−3 )xi + ... + u1 )xi + u0 . Wir haben in Satz 1.11 gesehen, dass die Komplexität der gewöhnlichen Polynommultiplikation im Bereich O(n2 ) liegt. Wenn wir nun allein für die Fouriertransformation O(n2 ) Ringoperationen benötigen, haben wir gegenüber der gewöhnlichen Multiplikation nichts gewonnen. Daher müssen wir uns fragen, ob man durch geschickte Wahl der Stützstellen auch mit geringerem Rechenaufwand auskommen kann. Bemerkung 2.3. Es seien K ein Körper und n eine gerade natürliche Zahl. Außerdem seien x0 , ... , xn−1 ∈ K und x n2 +i = −xi , d.h. die xi sind symmetrisch um den Nullpunkt verteilt. Dann genügen für die Berechnung der Fourier-Transformierten asymptotisch O(n · ld(n)) Ringoperationen. Damit haben wir gesehen, dass sich der Aufwand der Fouriertransformation von O(n2 ) auf O(n · ld(n)) verringert, wenn die Stützstellen jeweils bei jedem Schritt symmetrisch um den Nullpunkt verteilt sind. Auf der Suche nach noch geschickteren Stützstellen stossen wir in folgendem Beispiel auf die primitiven n-ten Einheitswurzeln. Beispiel 2.4. Es seien K ein Körper und n eine gerade natürliche Zahl. Weiterhin sei wn ∈ K eine primitive n-te Einheitswurzel, d.h. es gelten wn n = 1 und wn t 6= 1 für alle t, die n teilen. Es sei z.B. • K = C, dann existiert wn ∈ K für jede natürliche Zahl n. • K = F17 , dann ist F× 17 eine zyklische Gruppe der Ordnung 16, d.h. w16 ∈ F17 . Dann können wir xi := wn i für 0 ≤ i ≤ n 2 definieren und damit gilt: n n x n2 +i = wn 2 +i = wn 2 · wn i = −xi . Es wird sich zeigen, dass diese nützlichen Eigenschaften der primitiven n-ten Einheitswurzeln noch weitere Vorteile mit sich bringen, aber zunächst halten wir noch einmal fest: 2.2 Die inverse diskrete Fouriertransformation 21 Satz 2.5. (Aufwandsanalyse für die diskrete Fouriertransformation) Es seien K ein Körper, der hinreichend viele n-te Einheitswurzeln enthält, d.h. wn ∈ K ist primitive n-te Einheitswurzel und n eine gerade natürliche Zahl. Dann gilt: Für w := wn ist die diskrete Fourier-Transformierte DFTw : Kn −→ Kn (u0 , ... , un−1 ) 7−→ (û0 , ... , ûn−1 ) n−1 X mit ûi = uj xji j=0 asymptotisch in höchstens O(n · ld(n)) Ringoperationen berechenbar. Beweis. Auch hier benutzen wir einen ähnlichen Trick wie im Beweis zu Satz 1.22. Zunächst spalten wir das Polynom u(T ) ∈ K[T ] in Terme mit geradem bzw. ungeradem T -Exponenten auf. Dies liefert uns folgende Form: u(T ) = v(T 2 ) + T w(T 2 ) mit v, w ∈ K[T ]. Da nach Voraussetzung x n2 +i 2 = x2i gilt, können wir u(xi ) = v(x2i ) + xi w(x2i ) mit #{x2i | 0 ≤ i ≤ n − 1} = n 2 schreiben. Nun bezeichnen wir mit Θ(n) die Anzahl der Ringoperationen, die für die Berechnung der Fouriertransformation DFTw (u0 , ... , un−1 ) notwendig sind. Dabei können wir die für die Additionen notwendigen Bitoperationen wieder mit einer Konstanten γ abschätzen, also gilt n Θ(n) = 2 · Θ( ) + n · γ 2 und Θ(1) = 1. Nun lässt sich Θ(n) für n = 2k rekursiv berechnen Θ(2k ) = 2 · Θ(2k−1 ) + 2k · γ = 22 · Θ(2k−2 ) + 2 · 2k · γ. Durch wiederholtes Ausführen dieses Schritts erhalten wir schließlich Θ(n) = 2k · Θ(1) + k · 2k · γ ∈ O(2k · k) = O(n · ld(n)). 2.2 Die inverse diskrete Fouriertransformation Im vorherigen Abschnitt haben wir gesehen, dass die Umrechnung der Koeffizientendarstellung in die Punkt-Wert-Schreibweise mit einem Aufwand von O(n · ld(n)) möglich ist. Dies nützt uns aber im Hinblick auf den schnellen Polynommultiplikationsalgorithmus nicht viel, wenn die umgekehrte Umrechnung nicht in ähnlichem Zeitaufwand möglich ist. 22 Diskrete Fouriertransformation Anmerkung 2.6. Zur Berechnung von V −1 und damit von der inversen Fouriertransformation F −1 mit dem Gauss-Algorithmus genügen O(n3 ) Ringoperationen. Dies ist für unsere Zwecke deutlich zu langsam. Daher müssen wir uns überlegen, ob wir V −1 nicht einfacher bekommen können. Dies ist durch unsere geschickte Wahl der n-ten Einheitswurzeln als Stützstellen in der Tat der Fall, wie folgende Bemerkung zeigt. Bemerkung 2.7. Es seien xi = wi , wobei w := wn wie bisher primitive n-te Einheitswurzel ist. Für die DFTw sind die Transformationsmatrizen gegeben durch 1 1 ··· 1 1 1 ··· 1 −1 1 · · · w−n+1 w · · · wn−1 1 1 w −1 V = .. und V = .. . .. .. .. .. .. .. . . n . . . . . . 1 wn−1 · · · w(n−1) 2 1 w−n+1 · · · 2 w−(n−1) Beweis. Um die Behauptung zu beweisen, zeigen wir einfach, dass V · V −1 die Einheitsmatrix ergibt. Also berechnen wir allgemein den (i, j)-ten Koeffizienten in der Produktmatrix: n−1 n−1 1 X k(i−j) 1 X ik −jk w w = w . n k=0 n k=0 n Im Falle j 6= i annuliert sich jedes wi mit w 2 +i und damit ist die ganze Summe 0. Im Falle j = i steht in jedem Exponenten 0, also haben wir n Summanden w0 = 1, also insgesamt n1 · n = 1. Damit erhalten wir n−1 1 X k(i−j) w = δij n k=0 für alle 0 ≤ i, j ≤ n − 1 und damit als Ergebnis von V · V −1 die Einheitsmatrix. Satz 2.8. (Aufwandsanalyse für die inverse diskrete Fouriertransformierte) Für die Berechnung der inversen diskreten Fourier-Transformierten (DFTw )−1 : Kn −→ Kn (û0 , ... , ûn−1 ) 7−→ (u0 , ... , un−1 ) genügen asymptotisch O(n · ld(n)) Ringoperationen. Beweis. Der Beweis dieses Satzes ergibt sich direkt durch Anwendung von Bemerkung 2.7 und Satz 2.5. Korollar 2.9. Für die diskrete Fouriertransformation gilt: (DFTw )−1 = 1 DFTw−1 . n 2.3 Schnelle Polynommultiplikation 2.3 23 Schnelle Polynommultiplikation Bemerkung 2.10. Für die diskrete Fouriertransformation gilt DFTw (u) · DFTw (v) = DFTw (x) mit xk = k X ui vk−i . i=0 Die Vektoren werden hier komponentenweise multipliziert. Beweis. Um diese Aussage zu beweisen, berechnen wir zunächst die beiden Seiten der Gleichung getrennt. Die linke Seite lässt sich umformen zu ! ! ! n−1 n−1 n−1 X X X X ij ik i(j+k) DFTw (u) · DFTw (v) = · = . uj w vk w uj vk w j=0 k=0 i Analog berechnen wir die rechte Seite zu: ! n−1 X DFTw (x) = xl wil = l=0 i l=0 j+k=l i n−1 X l X i ! uj vl−j wil l=0 j=0 . i Wir stellen fest, dass beide Seiten mit k = l − j übereinstimmen, also gilt DFTw (u) · DFTw (v) = DFTw (x). Korollar 2.11. Es seien K ein Körper mit einer primitiven n-ten Einheitswurzel n−1 n−1 P P w und f = ui T i , g = vj T j ∈ K[T ] zwei Polynome. Dann gilt: i=0 j=0 DFTw (f ) · DFTw (g) = DFTw (f · g). Nun haben wir alle notwendigen theoretischen Resultate zusammen, um die schnelle Polynommultiplikation anzugehen. Algorithmus 2.12. (Schnelle Polynommultiplikation) Es seien f und g zwei Polynome wie in Korollar 2.11 und K ein Körper mit hinreichend vielen Einheitswurzeln. 1. berechne fˆ := DFTw (f ) und ĝ := DFTw (g), 2. berechne ĥi = fˆi · ĝi für alle 0 ≤ i ≤ n − 1, 3. Mit h = (h0 , ... , hn−1 ) := n1 DFTw−1 (ĥ) n−1 P ist h(T ) = hi T i = f (T ) · g(T ). i=0 24 Diskrete Fouriertransformation Satz 2.13. (Aufwandsanalyse für die Schnelle Polynommultiplikation) Es sei K ein Körper mit hinreichend vielen Einheitswurzeln. Dann gilt: Für die Multiplikation zweier Polynome aus K[T ] der Grade m bzw. n mit der diskreten Fouriertransformation genügen O((m + n) · ld(m + n)) Ringoperationen. Beweis. Um diese Aussage zu beweisen gehen wir einfach die Schritte von Algorithmus 2.12 durch und zählen die Operationen. Für die Umrechnung von der Koeffizientendarstellung in die Punkt-Wert-Darstellung mittels diskreter Fouriertransformation genügen nach Satz 2.8 O((m + n) · ld(m + n)) Ringoperationen. Für die komponentenweise Multiplikation der Werte benötigen wir m + n Ringmultiplikationen, also O(m + n) Ringoperationen. Damit haben wir die Punkt-WertSchreibweise des Produkts f · g. Um diese nun wieder in die Koeffizientendarstellung mittels inverser diskreter Fouriertransformation umzurechnen genügen nach Satz 2.8 O((m + n) · ld(m + n)) Ringoperationen. Dies ergibt als Gesamtbilanz O((m + n) · ld(m + n)) Ringoperationen, und damit ist die Aussage bewiesen. Damit haben wir gezeigt, dass wir mittles diskreter Fouriertransformation zwei Polynome mit geringerem Rechenaufwand als bei der gewöhnlichen Polynommultiplikation multiplizieren können. Dies veranschaulichen wir uns nochmal durch Abbildung 2.1. Anstatt direkt das Produkt der beiden Polynome auszurechnen, machen wir einen Umweg und überführen die Polynome mittels diskreter Fouriertransformation in die Punkt-Wert-Schreibweise (Evaluation). Dann multiplizieren wir die Werte an den Stützstellen. Anschließend wandeln wir das Produkt, das nun ebenfalls in der Punkt-Wert-Darstellung vorliegt, mittels Abbildung 2.1: DFT inverser diskreter Fouriertransformation wieder in die Koeffizientendarstellung um (Interpolation). Da n für jede natürliche Zahl deutlich schneller wächst als ld(n) hat die schnelle Polynommultiplikation asymptotisch eine deutlich geringere Komplexität als die gewöhnliche Polynommultipliaktion. 2.4 Schnelle Polynomdivision mit Rest Da wir nun wissen, wie man Polynome deutlich schneller multiplizieren kann, stellt sich die Frage, ob es auch eine Möglichkeit gibt, bei der Division mit Rest von Polynomen Bitoperationen zu sparen. Dies ist sehr wohl möglich, allerdings ist hierzu einige theoretische Vorarbeit nötig. Wir beginnen mit folgenden Definitionen. Definition 2.14. (Ring der formalen Potenzreihen, rationaler Funktionenkörper) Es sei K ein Körper. Dann nennen wir die Menge 2.4 Schnelle Polynomdivision mit Rest K[[T ]] := { X 25 ai T i | ai ∈ K} i∈N den Ring der formalen Potenzreihen über K. Außerdem nennen wir den Quotientenkörper von K[T ] f K(T ) := Quot(K[T ]) = { | f, g ∈ K[T ]} g den Körper der rationalen Funktionen über K. Bemerkung 2.15. Es seien K ein Körper und g(T ) ∈ K[T ] ein Polynom mit g(0) 6= 0. Dann genügen O(n · ld(n)) Ringoperationen für die Berechnung der ersten n Koeffizienten der Inversen h(T ) := g(T )−1 ∈ K[[T ]] (unabhängig von deg(g)). Beweis. Wir können ohne Einschränkung n = 2k annehmen. Nun setzen wir g(0) := c 6= 0. Dann existiert g(T )−1 =: h(T ) ∈ K[[T ]] mit rekursiv berechenbaren Koeffizienten, da die Einheiten in K[[T ]] genau diejenigen Elemente mit von 0 verschiedenem Absolutglied sind. Offenbar hat f (h) := g − 1 1 iterationsfähige Gestalt und es gilt f 0 (h) = 2 . h h Nun führt man die Newton-Approximation durch: hi+1 := hi − f (hi ) f 0 (hi ) ( i+1 mod T 2 ). Setzt man nun f (hi ) gemäß obigen Definitionen ein, erhält man hi+1 = hi − g− 1 hi 2 1 hi = hi (2 − h g) | {z i } ≡1( ( i+1 mod T 2 ). i mod T 2 ) Unsere Newton-Approximation konvergiert also quadratisch bzgl. des T -Betrags und es gilt 1 − hi g ≡ 1 − hi−1 (2 − hi−1 g)g ≡ 1 − 2hi−1 g + h2i−1 g 2 ≡ (1 − hi−1 g)2 i mod T 2 . Die Kosten für den i-ten Iterationsschritt belaufen sich auf 2 Multiplikationen von Polynomen vom Grad 2i−1 − 1 ≥ deg(hi−1 ) und 2 Additionen, also O(2i−1 · ld(2i−1 )). Wir wenden nun wieder den schon bekannten Trick an und bezeichnen mit Θ(n) die Anzahl der benötigten Ringoperationen bis n = 2k . Dann gilt n n 2k n ld(2k ). Θ(n) = Θ( ) + γ · ld( ) = Θ(2k−1 ) + γ · 2k−1 ld(2k−1 ) ≤ Θ(2k−1 ) + γ · 2 2 2 2 26 Diskrete Fouriertransformation Führt man diesen Schritt erneut für n 2 = 2k−1 aus, erhält man Θ(n) ≤ Θ(2k−2 ) + γ( 2k 2k + ) ld(2k ). 4 2 Vollständige Induktion führt schließlich auf 1 1 1 Θ(n) ≤ Θ(1) + γ · 2k ( + + + ... ) ld(2k ) ∈ O(2k · ld(2k )) = O(n · ld(n)). } | 2 4 {z8 ≤1 Satz 2.16. (Aufwandsanalyse für die Schnelle Division mit Rest) Es sei K ein Körper mit hinreichend vielen Einheitswurzeln. Dann kann die Division mit Rest zweier Polynome vom Grad höchstens n in asymptotisch O(n · ld(n)) Ringoperationen durchgeführt werden. Beweis. Es seien f, g ∈ K[T ] Polynome mit deg(f ) =: m, deg(g) =: n. Nun teilen wir f mit Rest durch g und erhalten: f = qg + r Daraus können wir mit deg(r) < deg(g). r f = q + ∈ K(T ) g g folgern. Dies ist äquivalent zu r( T1 ) f ( T1 ) 1 = q( ∈ K(T ). ) + T g( T1 ) g( T1 ) Nun führen wir die zu f , g, q, r reziproken Polynome ein und bezeichnen diese mit f ∗ , g ∗ , usw. Bei reziproken Polynomen werden die Koeffizienten vertauscht, d.h. der höchste Koeffizient wird zum niedrigsten usw. Damit erhält man 1 f ∗ (T ) := T m f ( ), T 1 g ∗ (T ) := T n g( ), T 1 1 q ∗ (T ) := T m−n q( ), r∗ (T ) := T n−δ r( ) mit δ ≥ 1, deg(r) = n − δ. T T Setzt man diese in obige Gleichung ein, so ergibt sich T n−m ∗ f ∗ (T ) n−m ∗ δ r (T ) = T q (T ) + T . g ∗ (T ) g ∗ (T ) Teilt man diese Gleichung durch T n−m , so folgt ∗ f ∗ (T ) ∗ m−n+δ r (T ) = q (T ) + T . g ∗ (T ) g ∗ (T ) 2.4 Schnelle Polynomdivision mit Rest 27 Ohne Einschränkung können wir annehmen, dass g(0) 6= 0 gilt. Damit besitzt g ∗ nach Bemerkung 2.15 ein Inverses h∗ ∈ K[[T ]]. Daraus folgern wir f ∗ h∗ = q ∗ + r∗ h∗ T m−n+δ ≡ q ∗ (mod T m−n+1 ). Wegen deg(q ∗ ) < m − n + 1 ist q ∗ das Produkt von f ∗ und h∗ (mod T m−n+1 ). Nun müssen wir nur noch q aus q ∗ berechnen und erhalten dann den Rest durch r = f −qg. Es steht nur noch die Komplexitätsanalyse aus. Nach Bemerkung 2.15 benötigt man zur Berechnung von h∗ ( mod T m−n+1 ) höchstens O(n·ld(n)) Ringoperationen. Nach Satz 2.13 genügen für die Multiplikation von f ∗ und h∗ höchstens O(n · ld(n)) Ringoperationen. Wieder nach Bemerkung 2.15 sind q aus q ∗ und r = f −qg ebenfalls in O(n·ld(n)) Ringoperationen berechenbar. Dies ergibt insgesamt eine Komplexität von O(n · ld(n)) Ringoperationen. 28 Diskrete Fouriertransformation Kapitel 3 Schnelle Multiplikation und Division mit Rest ganzer Zahlen 3.1 Modulare diskrete Fouriertransformation Wir wollen uns nun, wie schon in Kapitel 1 angedeutet, mit modularer Arithmetik beschäftigen. Darunter verstehen wir das Rechnen in Restklassenringen Z/mZ insbesondere für m = 2k + 1, z.B. Z/3Z = F3 , Z/5Z = F5 , Z/9Z (besitzt Nullteiler), Z/17Z = F17 , Z/33Z (kein Körper),..., Z/257Z = F257 , usw. Dabei ist es unser Ziel, die Rechenzeit der Multiplikation ganzer Zahlen mittels modularen Rechnens zu beschleunigen. Daher analysieren wir die Komplexität des modularen Rechnens zunächst für die Grundoperationen. Bemerkung 3.1. Es sei m ∈ N eine natürliche Zahl der Form m = 2k + 1 mit einer natürlichen Zahl k ∈ N. Ferner sei R := Z/mZ der Restklassenring modulo m. Dann gelten: (a) Die Addition und Subtraktion in R sind in O(k) = O(ld(m)) Bitoperationen durchführbar. (b) Die Multiplikation mit 2-Potenzen ist ebenfalls in O(ld(m)) Bitoperationen möglich. Beweis. Die erste Aussagefolgt sofort aus Satz 1.5. Also gehen wir direkt an die k P zweite Aussage (b): Es sei x = xi 2i ∈ R = Z/mZ ein Element aus R in 2-adischer i=0 Entwicklung gegeben. Diese Darstellung entspricht dem Vektor (x0 ,...,xk ). Wenn wir nun x mit einer 2-Potenz 2j multiplizieren und 2k ≡ −1 mod m ausnutzen, so hat der Ergebnisvektor folgende Form: 2j · x ∼ (0, ..., 0, x0 , ..., xk−1−j , 0) − (xk−j , ..., xk , 0, ..., 0). | {z } j 30 Schnelle Multiplikation und Division mit Rest ganzer Zahlen Also entspricht die Multiplikation mit einer 2-Potenz einer Subtraktion in R, die nach Satz 1.5 in O(ld(m)) Bitoperationen möglich ist. Nun wollen wir die Komplexität der modularen diskreten Fouriertransformation studieren. Um eine solche überhaupt durchführen zu können, müssen wir sicherstellen, dass unsere Restklassenringe hinreichend viele Einheitswurzeln enthalten. Genau dies sichert die folgende Bemerkung. Bemerkung 3.2. Es sei m ∈ N eine natürliche Zahl der Form m = 2k + 1 mit einer natürlichen Zahl k ∈ N. Dann gelten: (a) Falls m = p ∈ P eine Primzahl ist, so ist Z/pZ = Fp ein Körper und enthält eine primitive 2k -te Einheitswurzel. (b) Ist m ∈ N lediglich eine natürliche Zahl, so ist Z/mZ ein Ring und (Z/mZ)× enthält eine primitive 2k-te Einheitswurzel. Beweis. Dies sind elementare Aussagen aus der Algebra, dennoch wollen wir versuchen, die Beweise mit einem Minimum an vorausgesetztem Vorwissen zu führen. (a) Wir wissen aus der linearen Algebra, dass m = p ∈ P genau dann eine Primzahl ist, wenn der Restklassenring Z/pZ ein Körper ist. Diesen nennen wir Primkörper mit p Elementen. Außerdem wissen wir, dass F× p = Fp \{0} eine abelsche Gruppe k × bildet, deren Elementanzahl #Fp = p − 1 = 2 ist. Der kleine Satz von Fermat der k Gruppentheorie besagt, dass x2 = 1 für alle x ∈ Fp gilt. Daraus können wir folgern, 2k dass alle Elemente von F× − 1 ∈ Fp [T ] sind. Da Fp p Nullstellen des Polynoms T 2k k ein Körper ist, hat T − 1 höchstens 2 Nullstellen in Fp , d.h. alle Nullstellen von k T 2 − 1 liegen in Fp und sind paarweise verschieden. Und damit enthält F× p eine k primitive 2 -te Einheitswurzel. (b) Es gilt: 2k ≡ −1 mod m, d.h. 2 hat Ordnung 2 · k in Z/mZ. Damit ist 2 eine primitive 2k-te Einheitswurzel. Anmerkung 3.3. Leider kennen wir zu wenig Primzahlen der Form 2k + 1. Diese heissen Fermat-Primzahlen. Die größte bisher bekannte Fermat-Primzahl ist F4 = 4 22 + 1 = 216 + 1 = 65537. Korollar 3.4. Es sei m ∈ N eine natürliche Zahl der Form m = 2k + 1 mit einer natürlichen Zahl k ∈ N. Weiterhin sei 2 · k = 2l · u mit einer natürlichen Zahl l und einer ungeraden natürlichen Zahl u. Dann enthält (Z/mZ)× eine primitive 2l -te Einheitswurzel w, z.B. w = 2u . Bemerkung 3.5. Es sei m ∈ N eine natürliche Zahl der Form m = 2k +1 mit einer natürlichen Zahl k ∈ N. Außerdem sei 2·k = 2l ·u =: n·u mit einer natürlichen Zahl l und einer ungeraden natürlichen Zahl u im Restklassenring R = Z/mZ. Dann gilt für alle natürlichen Zahlen i = 0, ..., n − 1 ( n−1 X 1 , falls i = 0 1 2uij = δi0 := . n j=0 0 , falls i 6= 0 3.2 Schnelle Multiplikation ganzer Zahlen 31 Beweis. Da n = 2l und m = 2k + 1 keine gemeinsamen Teiler besitzen, liegt n in (Z/mZ)× . Nach Korollar 3.4 ist 2u eine primitive n-te Einheitswurzel. Der Rest des Beweises verläuft völlig analog zum Beweis von Bemerkung 2.7. Bevor wir uns der Analyse der schnellen Multiplikation widmen, analysieren wir noch die Komplexität der modularen diskreten Fouriertransformation. Satz 3.6. Es sei m ∈ N eine natürliche Zahl der Form m = 2k + 1 mit einer natürlichen Zahl k ∈ N. Außerdem sei 2 · k = 2l · u =: n · u mit einer natürlichen Zahl l und einer ungerade natürlichen Zahl u. Ferner sei w := 2u primitve n-te Einheitswurzel im Restklassenring R := Z/mZ. Dann gilt: Die diskrete Fouriertransformation DFTw : Rn Rn −→ n−1 P (u0 , ..., un−1 ) 7−→ ( uj wij )i j=0 sowie deren Inverse DFTw−1 : Rn Rn −→ n−1 P (û0 , ..., ûn−1 ) 7−→ ( ûj w−ij )i j=0 sind jeweils in O(n · ld(n) · ld(m)) Bitoperationen durchführbar. Beweis. Die Anzahl der benötigten Ringoperationen für die diskrete bzw. inverse diskrete Fouriertransformation ist nach den Sätzen 2.5 und 2.8 O(n · ld(n)). Die Kosten für die auftretenden Ringoperationen, nämlich Additionen und Multiplikationen mit 2-Potenzen belaufen sich nach Bemerkung 3.1 auf O(k) = O(ld(m)) Bitoperationen. Damit haben wir alle nötigen Vorbereitungen getroffen und können uns im nächsten Abschnitt der Komplexitätsanalyse der schnellen Multiplikation ganzer Zahlen widmen. 3.2 Schnelle Multiplikation ganzer Zahlen Satz 3.7. Für die Multiplikation zweier ganzer Zahlen x, y ∈ Z der Bitlänge höchstens n genügen asymptotisch O(n · ld(n)ld(6) ) Bitoperationen. Beweis. Wir haben zwei ganze Zahlen x, y ∈ Z gegeben. Da sich die Multiplikation in Z nur durch das Vorzeichen von der in N unterscheidet gehen wir davon aus, dass x und y in N liegen. Nach Voraussetzung gilt, dass x und y höchstens Bitlänge n haben, d.h. l ld(x), ld(y) ≤ n = 2l und damit 0 ≤ x, y ≤ 22 . 32 Schnelle Multiplikation und Division mit Rest ganzer Zahlen Bevor wir mit dem eigentlichen Beweis beginnen führen wir noch einige Bezeichnungen ein. Wir definieren l−1 l c + 1 = d e, r := 2h , s := 3 · 2h , B := 2r , m := 2s + 1. 2 2 Von nun an wollen wir im Restklassenring Z/mZ rechnen. Daher betrachten wir unsere Bezeichnungen von oben ein wenig genauer und stellen fest, dass h := b h h l B r = (2r )r = (22 )2 ≥ 22 = 2n gilt. Dies ermöglicht es uns x und y in der Form x= r−1 X xi B i , y= i=0 r−1 X yj B j j=0 darzustellen. Jetzt stellt sich natürlich die Frage, ob auch das Produkt x · y eine solche Darstellung besitzt. Dazu definieren wir die Polynome x(T ) := r−1 X xi T i , y(T ) = i=0 r−1 X yj T j ∈ Z[T ]. j=0 Dann hat das Produkt der beiden Polynome in Z[T ] die Gestalt z(T ) := x(T ) · y(T ) = ( r−1 X i=0 r−1 2r−1 X X j zk T k , xi T ) · ( yj T ) = i j=0 k=0 wobei für jedes 0 ≤ k ≤ 2r − 1 gilt: zk = k X h h xi yk−i ≤ r · B 2 = 2h · (2r )2 = 2h · (22 )2 < 23·2 = 2s < m. i=0 Bevor wir fortfahren, wollen wir uns diese Rechenschritte nochmals genau anschauen. Die erste Abschätzung ergibt sich, da jedes xi und jedes yj echt kleiner ist als B. Da sich jedes zk aus höchstens r von Null verschiedenen Summanden zusammensetzt, haben wir die erste Ungleichung eingesehen. Die Schritte bis zur nächsten Ungleichung ergeben sich durch Einsetzen der obigen Definitionen. Die zweite, relativ grobe aber dennoch ausreichende Abschätzung gilt, da 3 · 2h > 2 · 2h + h gilt, was man aus der Ungleichung 2h > h folgern kann. Der Rest ergibt sich wieder sofort aus unseren obigen Bezeichnungen. Wir haben nun gezeigt, dass jeder Koeffizient des Produkts echt kleiner als m ist. 2r−1 P Damit ist zk B k die B-adische Darstellung des Produkts z = x · y in Z/mZ. k=0 Nun bleibt nur noch die Frage nach der Komplexität für die Berechnung der zk für k = 0, . . . , 2r − 1 zu klären. Diese Berechnungen wollen wir wie bisher mit Hilfe der modularen Fouriertransformation in Z/mZ mit m = 2s + 1 durchführen. Nach 3.2 Schnelle Multiplikation ganzer Zahlen 33 Bemerkung 3.2 besitzt Z/mZ genügend viele Einheitswurzeln. Anschließend müssen wir dann noch z aus den zk berechnen. Zunächst wollen wir die Bitkomplexität zur Berechnung der zk untersuchen. Für die Berechnung von DFT(x) = x̂ = (x̂0 , . . . , x̂r−1 ) und entsprechend DFT(y) benötigt man nach Satz 3.6 folgende Rechenzeit: O(r · ld(r) · ld(m)) = O(2h · h · s) = O(h · 2h · 2h ) = O(h · 2l ) ⊆ O(l · 2l ) = O(n · ld(n)). Die Rücktransformation erfolgt in derselben Laufzeit. Für die Berechnung des Skalarprodukts DFT(x) · DFT(y) benötigen wir 2r Multiplikationen der Bitlänge s. Wir verwenden wieder den selben Trick, den wir schon öfter bei Beweisen dieser Art benutzt haben und bezeichnen mit Θ(n) die Kosten für die Berechnung dieses Skalarprodukts in Abhängigkeit von der Bitlänge. Damit gilt: Θ(n) = Θ(2l ) = 2r · Θ(s) + O(n · ld(n)). Θ(1) = 1, Weiterhin definieren wir Θ(2l ) Θ(n) = . Λ(l) := n 2l Setzen wir hier nun die erste Rekursion für Θ(n) ein, so ergibt sich Λ(l) = 2 · r 1 · Θ(s) + O(n · ld(n)) . n {z } |n = O(ld(n)) = O(l) Nun multiplizieren wir 2 · Λ(l) = wegen ld(s) = ergibt sich l 2 r n mit 1 = 2h ·3 s und erhalten l 6 · Θ(s) + O(l) = 6 · Λ( + ld(3)) + O(l) s 2 + ld(3). Mit den Bezeichnungen c := ld(3) und ∆(l) := Λ(l + 2 · c) l+2·c l + c) + O(l) = 6 · Λ( + 2 · c) + O(l) 2 2 l = 6 · ∆( ) + O(l). 2 ∆(l) = 6 · Λ( Das können wir benutzen, um ∆(l) rekursiv zu berechnen: 34 Schnelle Multiplikation und Division mit Rest ganzer Zahlen l l l ∆(l) = 6 · ∆( ) + O(l) = 62 · ∆( ) + 6 · O( ) + O(l) 2 4 2 l = 63 · ∆( ) + (32 + 3 + 1) · O(l) 8 ld(l) = 6 · ∆(1) + (1 + 3 + 32 + ... + 3ld(l)−1 ) ·O(l) {z } | = ⊆ O(l ld(6) ) + O(l ld(3)+1 1 ld(l) (3 2 ) ⊆ O(l − 1) ld(6) ) Dies benutzen wir nun um schließlich Θ(n) zu berechnen: Θ(n) = n · Λ(l) = n · ∆(l − 2 · c) ⊆ O(n · (l − 2 · c)ld(6) ) ⊆ O(n · lld(6) ) = O(n · ld(n)ld(6) ). Nun müssen wir noch den Aufwand für die Berechnung von z = 2r−1 P zk B k aus den k=0 Koeffizienten zk für k = 0, ..., 2r − 1 bestimmen. Für jedes Bit benötigen wir höchstens drei Bitadditionen und zwei Überträge (siehe Abbildung). Damit kostet uns die Berechnung von z aus den Koeffizienten insgesamt O(2r) ⊆ O(n) Bitoperationen. Wenn wir nun alle Kosten zusammenrechnen, haben wir eine Komplexität von O(n · ld(n)ld(6) ) Bitoperationen erhalten. Nun zitieren wir noch der Vollständigkeit halber den Satz von Schönhage-Strassen, den wir schon in Kapitel 1 kurz erwähnt hatten. Allerdings müssen wir hier aus Zeitund Platzgründen auf einen Beweis verzichten. Siehe hierzu [13]. Satz 3.8. Satz von Schönhage-Strassen (1971) Zur Berechnung des Produkts von zwei ganzen Zahlen der Bitlänge höchstens n genügen asymptotisch O(n · ld(n) · ld(ld(n))) Bitoperationen. 3.3 Schnelle Division mit Rest ganzer Zahlen Mit dem Satz 3.7 bzw. dem Satz von Schönhage-Strassen läßt sich auch die Division mit Rest beschleunigen. Das Resultat ist: 3.4 Schnelles Potenzieren natürlicher Zahlen 35 Satz 3.9. Die Division mit Rest ganzer Zahlen gehört zu derselben O-Bitkomplexität wie die Multiplikation. Beweis. Dieser Beweis sei dem Leser als Übungsaufgabe überlassen. Man kann die Division mit Rest in Analogie zu Abschnitt 2.4 auf die Multiplikation zurückführen und setzt dann Satz 3.7 bzw. den Satz von Schönhage-Strassen ein. Um uns im weiteren Verlauf des Skriptums Schreibarbeit zu sparen, führen wir noch die folgende Abkürzung für die Kosten der schnellen Multiplikation bzw. Division mit Rest ein: µ(n) := n · ld(n) · ld(ld(n)). 3.4 Schnelles Potenzieren natürlicher Zahlen Zum Abschluß der Kapitels wollen wir noch einen Algorithmus zur Berechnung der Potenz am = n ∈ N für a, m ∈ N angeben. Durch sukzessives Multiplizieren erhalten wir hierfür einen Aufwand von m Multiplikationen zu je O(µ(ld(n))) Bitoperationen. Mit Hilfe des folgenden Algorithmus lässt sich der Aufwand auf O(ld(m)) Multiplikationen reduzieren. Algorithmus 3.10. (Wiederholtes Quadrieren) Es seien a, m ∈ N zwei natürliche Zahlen. Gesucht sei die Exponentation am ∈ N. 1. Man berechne die Binärdarstellung m = 2k + mk−1 2k−1 + . . . + m1 2 + m0 20 mit mi ∈ {0, 1} für alle Indizes i ∈ {0, . . . , k − 1}. 2. Man setze b0 := a und berechne für alle Indizes i ∈ {1, . . . , k}: • bi+1 := b2i · a, falls mk−i = 1, • bi+1 := b2i , falls mk−i = 0. 3. Der Wert bk liefert das gesuchte Ergebnis am = bk . Satz 3.11. Der Algorithmus 3.10 ist korrekt und benötigt für die Berechnung der Potenz am ∈ N höchstens 2 ld(m) ∈ O(ld(m)) Multiplikationen. m Beweis. Die Korrektheit des Algorithmus folgt direkt aus bi = ab 2k−i c . Insgesamt benötigt der Algorithmus bei k = bld(m)c Schleifendurchläufen ebenso viele Quadraturen und zusätzlich #{j ∈ N | 0 ≤ j ≤ k − 1, mj = 1} Multiplikationen in N. Wir erhalten damit einen Gesamtaufwand von 2 ld(m) ∈ O(ld(m)) Multiplikationen der Bitkomplexität µ(n). 36 Schnelle Multiplikation und Division mit Rest ganzer Zahlen Kapitel 4 Der Euklidische Algorithmus 4.1 Euklidische Ringe Nachdem wir nun die Grundrechenarten kennengelernt und deren Komplexität studiert haben, wird uns in den folgenden Kapiteln hauptsächlich der Euklidische Algorithmus beschäftigen. Zunächst werden wir einige theoretische Grundlagen zusammentragen und uns dann der Komplexitätsanalyse widmen. Dabei wird es interessant sein festzustellen, dass man mit Hilfe einer geschickten Matrixschreibweise deutliche Verbesserungen hinsichtlich der Darstellung und Laufzeit erzielen kann. Zunächst beschäftigen wir uns aber mit den grundlegenden Tatsachen über Euklidische Ringe. Definition 4.1. (Größter gemeinsamer Teiler, kleinstes gemeinsames Vielfaches) Es seien R ein Integritätsbereich und x, y ∈ R zwei beliebige Elemente aus R. Wir sagen x teilt y genau dann, wenn es ein c ∈ R gibt, so dass c·x = y gilt. Wir schreiben dafür x|y. Weiterhin sagen wir x und y sind assoziiert, falls es eine Einheit e ∈ R gibt mit x = e · y. Dies ist gleichbedeutend mit x|y und y|x, und wir schreiben dafür x ∼ y. Es seien nun x1 , ..., xr ∈ R beliebige Ringelemente. Dann heißt ein Element d ∈ R größter gemeinsamer Teiler von x1 , ..., xr , wenn es die folgenden beiden Bedingungen erfüllt: 1. für alle i = 1, ..., r gilt d|xi 2. für jedes t ∈ R mit t|xi für i = 1, ..., r gilt auch t|d. Wir schreiben dafür d ∈ ggT{x1 , ..., xr }. Weiterhin heißt ein Element v ∈ R kleinstes gemeinsames Vielfaches von x1 , ..., xr , falls es die folgenden beiden Bedingungen erfüllt: 1. für alle i = 1, ..., r gilt xi |v 2. für jedes w ∈ R mit xi |w für i = 1, ..., r gilt auch v|w. 38 Der Euklidische Algorithmus Wir schreiben dafür v ∈ kgV{x1 , ..., xr }. Nun haben wir ggT und kgV definiert ohne zu wissen, ob eines von beiden überhaupt existiert. Und falls sie existieren sollten, kann man fragen, ob sie eindeutig bestimmt sind (bis auf Multiplikation mit Einheiten). Dies werden wir im nächsten Satz beweisen, aber zunächst führen wir noch den Begriff des Euklidischen Rings ein und geben Beispiele dafür an. Definition 4.2. (Euklidischer Ring) Ein Integritätsbereich R heißt Euklidischer Ring, falls es eine Abbildung δ : R −→ N gibt, mit der Eigenschaft: Für alle Paare x, y ∈ R existieren Elemente q, r ∈ R, so dass gilt: x = q · y + r mit δ(r) < δ(y). Beispiel 4.3. Hier nun zwei Beispiele für Euklidische Ringe. 1. Wählen wir als Ring R = Z und δ als den gewöhnlichen Absolutbetrag, so folgt mit Satz 1.14, dass Z ein Euklidischer Ring ist. 2. Es sei R = K[T ] der Polynomring über einem Körper K. Wir definieren für f ∈ K[T ] die Abbildung δ durch δ(f ) := 2deg(f ) . Dann ist K[T ] mit δ ein Euklidischer Ring und δ(f ) = 0 für f = 0. Satz 4.4. Es seien R ein Euklidischer Ring und x1 , ..., xr ∈ R beliebige Ringelemente. Dann gelten: (a) Zu x1 , ..., xr existiert ein größter gemeinsamer Teiler d ∈ ggT{x1 , ..., xr } und dieser ist bis auf Multiplikation mit Einheiten eindeutig bestimmt. (b) Ist d ∈ ggT{x1 , ..., xr } ein größter gemeinsamer Teiler, so existieren Elemente y1 , ..., yr ∈ R mit r X d= xi y i . i=1 Beweis. Zunächst beweisen wir die Aussage für den Spezialfall r = 2, d.h. wir haben zwei Elemente x1 , x2 ∈ R gegeben. Wir führen den folgenden Algorithmus durch: Für x2 6= 0 erhalten wir durch Division mit Rest Elemente q2 , x3 ∈ R mit x1 = q2 · x2 + x3 mit δ(x3 ) < δ(x2 ). 4.1 Euklidische Ringe 39 Falls x3 6= 0 ist, führen wir erneut eine Division mit Rest durch und erhalten damit: x2 = q3 · x3 + x4 mit δ(x4 ) < δ(x3 ). Falls x4 6= 0 ist, fahren wir weiter analog fort. Da δ eine Abbildung mit dem Wertebereich N ist, muss dieser Algorithmus nach endlich vielen Schritten abbrechen. Es gibt also ein l ∈ N mit xl−1 = ql · xl + 0. (a) Wir behaupten, dass d := xl ∈ ggT{x1 , x2 } ein größter gemeinsamer Teiler ist. Direkt ersichtlich ist, dass d das Element xl−1 teilt. Setzt man dies nun in die nächsthöhere Gleichung ein, so folgt xl−2 = ql−1 · ql · xl + xl und damit xl |xl−2 . Dies kann man bis zum Beginn der Gleichungen fortsetzen und erhält, dass d ein gemeinsamer Teiler von x1 und x2 ist. Es seien nun t ∈ R ein Ringelement mit der Eigenschaft t|x1 und t|x2 . Dann teilt t auch x3 = x1 − q2 · x2 . Auch dies setzt sich durch die weiteren Gleichungen fort und führt auf t|d, d.h. es ist d ∈ ggT{x1 , x2 }. (b) Wir behaupten, dass Ringelemente rl , sl ∈ R mit der Eigenschaft d = xl = rl · x1 + sl · x2 existieren. Dies beweisen wir durch rückwärtiges Einsetzen: d = xl−2 − ql−1 · xl−1 = xl−2 − ql−1 · (xl−3 − ql−2 · xl−2 ) =: ul−3 · xl−3 + vl−2 · xl−2 = ul−3 · xl−3 + vl−2 · (xl−4 − ql−3 · xl−3 ) =: ul−4 · xl−4 + vl−3 · xl−3 = ... = u2 · x2 + v3 · x3 = u1 · x1 + v2 · x2 . Mit rl := u1 und sl := v2 ist unsere Behauptung bewiesen. Für alle Zahlen r > 2 können wir durch Induktion nach r die beiden obigen Aussagen zeigen, indem wir ggT{x1 , ..., xr } = ggT{ggT{x1 , ..., xr−1 }, xr } ausnutzen (bis auf Multiplikation mit Einheiten). Korollar 4.5. In einem Euklidischen Ring existiert ein v ∈ kgV{x1 , ..., xr } und ist bis auf Multiplikation mit Einheiten eindeutig bestimmt. Beweis. Es gilt: kgV{x1 , x2 } · ggT{x1 , x2 } ∼ x1 · x2 . Die Aussage folgt dann per Induktion nach r. Definition 4.6. (Euklidischer Algorithmus) Der Algorithmus aus dem Beweis zu Satz 4.4 heißt Euklidischer Algorithmus. Ergänzt man diesen durch die Berechnung einer Linearkombination des größten gemeinsamen Teilers gemäß Satz 4.4 (b), so sprechen wir vom erweiterten Euklidischen Algorithmus. Für den Spezialfall R = Z kann man beim Euklidischen Algorithmus die Division mit Rest mit dem kleinsten Absolutrest anstatt des kleinsten nichtnegativen Rests verwenden. Dies bedeutet in Formeln, dass |δ(xi )| ≤ 21 · |δ(xi−1 )| gilt. Für diese Modifikation des Euklidischen Algorithmus genügen O(x0 ) Divisionen mit Rest. 40 Der Euklidische Algorithmus Beispiel 4.7. Es sei R = Z, und es seien zwei ganze Zahlen x1 = 2257, x2 = 1073 gegeben. Der Euklidischen Algorithmus liefert: 2257 1073 111 74 = = = = 2 · 1073 + 111 9 · 111 + 74 1 · 74 + 37 2 · 37 + 0, d.h. 37 ∈ ggT{2257, 1073}. Durch rückwärtiges Einsetzen erhalten wir die Darstellung 37 = 10 · 2257 − 21 · 1073. Wir haben also gesehen, dass in einem Euklidischen Ring stets ein größter gemeinsamer Teiler und kleinstes gemeinsames Vielfaches existieren. Außerdem haben wir im konstruktiven Beweis zu Satz 4.4 ein Verfahren zur praktischen Berechnung des größten gemeinsamen Teilers kennengelernt. Nun sind wir an einer Laufzeitanalyse für dieses Verfahren interessiert. 4.2 Komplexität des Euklidischen Algorithmus Satz 4.8. (Aufwandsanalyse Euklidischer Algorithmus) (a) Für die Berechnung des größten gemeinsamen Teilers zweier ganzer Zahlen der Bitlänge höchstens m und n genügen O(m · n) Bitoperationen. (b) Für die Ausführung des erweiterten Euklidischen Algorithmus für zwei Polynome f, g ∈ K[T ] der Grade m bzw. n genügen O(m · n) Ringoperationen. Beweis. Es seien zwei ganze Zahlen x1 , x2 ∈ Z gegeben. Wir bezeichnen mit m := ld(x1 ), n := ld(x2 ) die Bitlängen dieser Zahlen und gehen ohne Einschränkung davon aus, dass n ≤ m ist. (a) Nun führen wir den Euklidischen Algorithmus durch. Dies ergibt die Gleichungen: x1 = q 2 · x2 + x3 x2 = q 3 · x3 + x4 x3 = ... xl−1 = ql · xl + 0. Für die erste Gleichung müssen wir eine Division mit Rest durchführen. Diese benötigt nach Satz 1.18 O(ld(x2 ) · ld(q2 )) Bitoprationen. Analog benötigen wir für die zweite Gleichung O(ld(x3 ) · ld(q3 )) Bitoperationen usw. Dies liefert uns insgesamt folgende Komplexität: l l l X X Y O( ld(xi ) ld(qi )) ⊆ O(n · ld(qi )) ⊆ O(n · ld( qi )) ⊆ O(m · n). i=2 i=2 i=2 (b) Dies beweisen wir analog zu (a) mit Ringoperationen statt Bitoperationen. 4.3 Der schnelle Euklidische Algorithmus 41 Nachdem wir die Komplexität des gewöhnlichen Euklidischen Algorithmus studiert haben, wollen wir nun der Frage nachgehen, ob man die Anzahl der Rechenschritte noch weiter verringern kann. Dies ist in der Tat möglich, wenn man eine geschickte Matrixschreibweise für den Euklidischen Algorithmus einführt. Wie dies genau funktioniert, wollen wir im folgenden Abschnitt studieren. 4.3 Der schnelle Euklidische Algorithmus Satz 4.9. (Schönhage) (a) Für den erweiterten Euklidischen Algorithmus zweier ganzer Zahlen der Bitlänge höchstens n genügen O(ld(n) · µ(n)) Bitoperationen. (b) Für den erweiterten Euklidischen Algorithmus zweier Polynome über einem Körper mit hinreichend vielen Einheitswurzeln genügen asymptotisch O(n · ld(n)2 ) Ringoperationen. Beweis. Bevor wir uns an den eigentlichen Beweis machen, wollen wir die Euklidischen Gleichungen in eine Matrixschreibweise umwandeln. Dazu beginnen wir mit x0 und x1 statt wie bisher mit x1 und x2 und definieren für jede Gleichung die folgenden Variablen: x0 = q 1 · x1 + x2 , x1 = q 2 · x2 + x3 , x2 = ... xl−1 = ql · xl + 0, u1 := x0 , v1 := x1 u2 := v1 , v2 := u1 − q1 v1 und allgemein ui+1 := vi , vi+1 := ui − qi vi . Mit diesen Variablen erhalten wir die folgende Matrixschreibweise: u1 0 1 ui ui ui+1 . = Qi · ... · Q1 · = · = Qi · | {z } v1 vi vi vi+1 1 −qi =: Pi Für diese Matrizen gilt offensichtlich det(Qi ) = −1 und daher det(Pi ) = (−1)i . Außerdem ist die Bitlänge der Koeffizienten von Pi höchstens n. Wir wollen nun zeigen, dass man Pl mit ld(l) Matrixmultiplikationen berechnen kann. (a) Wir führen den Euklidischen Algorithmus in R = Z mit kleinstem Absolutrest durch. Für die Anzahl l der Divisionen mit Rest gilt l ≤ n. Mit k := dld(l)e gilt l ≤ 2k . Wir wollen nun nach und nach die Matrizen P2i ausrechnen. Im 0-ten Schritt läuft die Berechnung von 0 1 P1 = P2 0 = 1 −q1 42 Der Euklidische Algorithmus auf die Berechnung von q1 mittels Division mit Rest hinaus, d.h. wir benötigen O(µ(n)) Bitoperationen gemäß Satz 3.8. Im i-ten Schritt errechnen wir P2i aus P2i−1 . Dafür berechnen wir zunächst ∗ u1 u1 u2i−1 +1 = P2i−1 := v2i−1 +1 v1 v1∗ u∗1 analog P2∗i−1 . Damit erhalten wir dann P2i = P2∗i−1 · P2i−1 . und dann für v1∗ Für die Berechnung von u∗1 , v1∗ benötigen wir 4 Multiplikationen und 2 Additionen von Zahlen der Bitlänge höchstens n (Multiplikation einer 2 × 2 - Matrix mit einem Vektor), also O(µ(n)) Bitoperationen. Die Berechnung von P2∗i−1 kostet uns diesselbe Anzahl an Bitoperationen wie P2i−1 . Diese werden wir anschließend noch genau analysieren. Schließlich müssen wir noch P2i = P2∗i−1 · P2i−1 ausrechnen. Diese Multiplikation von 2 × 2 - Matrizen benötigt 8 Multiplikationen und 4 Additionen von Zahlen der Bitlänge höchstens n, also wieder O(µ(n)) Bitoperationen. Nun widmen wir uns der Analyse der Bitkomplexität zur Berechnung von Pl mit l = 2k . Dabei benutzen wir den inzwischen wohlbekannten Trick und bezeichnen diese mit Θ(l). Dann gilt l l Θ(l) = 2 · Θ( ) + γ · µ(n) = 4 · Θ( ) + γ · µ(n) · (1 + 2) 2 4 k = ... = 2 · Θ(1) + γ · µ(n) · (1 + 2 + ...2k−1 ) ⊆ |{z} 2k O(µ(n)) + γ · |{z} 2k ·µ(n) ⊆ O(n · µ(n)). =l≤n =l≤n Wir erinnern uns daran, dass µ(n) = n·ld(n)·ld(ld(n)) ist. Damit erhalten wir in der Komplexitätsanalyse als Faktor n2 . Dies ist für unsere Zwecke nicht zufriedenstellend. Wir versuchen den Faktor n auf ld(n) zu verkleinern und führen dazu reguläre Sequenzen ein. Wir nennen eine Sequenz regulär, wenn bld(vi )c = bld(vi−1 )c − 1 gilt. Dann genügen für die Berechnung von qi die ersten 2i Stellen von u1 , v1 . Ferner gilt: Θ(1) ∈ O(1), Θ(2i ) = 2 · Θ(2i−1 ) + γ̃ · µ(l). Dies nutzen wir aus und berechnen rekursiv: l 2 l Θ(l) = 2 · Θ( ) + γ̃ · µ(l) ≤ 4 · Θ( ) + γ̃ · µ(l) · (1 + ) 2 4 2 k ≤ ... ≤ 2 · Θ(1) + γ̃ · k · µ(l) ∈ O(ld(l) · µ(l)). Damit ist es uns im Falle regulärer Sequenzen gelungen, die Komplexität zu verbessern. Jetzt zeigen wir, dass diese Kostenabschätzung auch im Fall irregulärer Sequenzen gültig bleibt. Haben wir eine solche vorliegen, ergänzen wir die Folge der 4.3 Der schnelle Euklidische Algorithmus 43 vi durch ṽi := 2di vi mit di := bld( vi−1 )c − 1, ṽi+1 := 2di −1 vi , ..., ṽi+di = vi . Damit wird vi die Sequenz der ṽi regulär und wir erhalten ui = vi−1 = q̃i · 2di · vi + r̃i = q̃i ṽi + r̃i = q̃i+1 · 2di −1 · vi + r̃i+1 = q̃i+1 ṽi+1 + r̃i+1 = ... = qi vi + r̃i+di = qi ṽi+di + r̃i+di und Matrizen Q̃i = 0 1 1 0 +2 di 0 0 0 −q̃i 0 0 00 = Q̃i + Q̃i . 0 Daraus ergibt sich dann Pi+di = Q̃i+di · Q̃i+di · ... · Q̃i · Pi−1 . Wird die Multiplikation von Pi∗ ·Pi erst nach Erreichen einer Sprungstelle ṽi+k = vi+1 ausgeführt so bleibt die Aufwandsabschätzung für die Berechnung von Pl auch im Falle irregulärer Sequenzen gültig. Nun betrachten wir noch die Kosten für den erweiterten Euklidischen Algorithmus. Wir wissen bereits, dass vl 0 = xl 0 = Pl u1 v1 = Pl x0 x1 = rl s l ∗ ∗ x0 x1 gilt. Also ist xl = rl · x0 + sl · x1 mit 2 Multiplikationen und einer Addition von Zahlen der Länge höchstens n aus Pl berechenbar. Dies ist in O(µ(n)) Bitoperationen möglich. Insgesamt ergibt sich eine Komplexität von O(ld(n) · µ(n)), womit die Aussage für ganze Zahlen bewiesen ist. (b) Für den Ring der Polynome beweisen wir diese Aussage analog zu Teil (a) mit Ringoperationen statt Bitoperationen. Hier nennen wir eine Sequenz regulär, falls deg(vi ) = deg(vi−1 ) − 1 gilt. Das Auffüllen von irregulären Sequenzen erfolgt dann durch ṽi+1 := T di vi+1 usw. Damit erhalten wir Θ(1) ∈ O(1) und l 2 l Θ(l) = 2 · Θ( ) + γ̃ · n · ld(n) = 4 · Θ( ) + γ̃ · n · ld(n) · (1 + ) 2 4 2 = ... = 2k · Θ(1) + γ̃ · k · n · ld(n) ∈ O(n · ld(n)2 ) für die Anzahl der benötigten Ringoperationen. Aus (a) wissen wir, dass diese Abschätzung auch für den erweiterten Euklidischen Algorithmus gültig bleibt. Zusatz 4.10. Die Aussagen aus Satz 4.9 gelten auch ohne die Voraussetzung von Einheitswurzeln. Für einen Beweis verweisen wir den Leser auf [12]. 44 Der Euklidische Algorithmus 4.4 Rechnen mit rationalen Zahlen und Funktionen In diesem Abschnitt wollen wir noch einige praktische Anwendungen des Euklidischen Algorithmus studieren. Dabei handelt es sich um das Rechnen mit rationalen Zahlen und Funktionen. Die Beweise in diesem Abschnitt sind alle elementar und bleiben dem Leser als Übungsaufgabe überlassen. Definition 4.11. (gekürzter Bruch) Es seien R ein Euklidischer Ring und K := Quot(R) der Quotientenkörper von R. Ein Element x ∈ K besitzt eine Darstellung x = ab als Bruch zweier Elemente a, b ∈ R. Wir nennen einen solchen Bruch gekürzt, falls a und b teilerfremd sind, d.h. 1 ∈ ggT{a, b} gilt. Bemerkung 4.12. Es seien R ein Euklidischer Ring und a, b, c, d ∈ R Ringelemente. Die Brüche ab , dc ∈ K = Quot(R) seien gekürzt. Bezeichnen wir mit k := kgV{b, d}, g := ggT{b, d}, so gelten: (a) a b + c d = a gd +c gb k (b) ggT{a dg + c gb , k} = ggT{a dg + c gb , g}. Um im Quotientenkörper eines Euklidischen Rings zu rechnen, benötigt man nur Addition und Multiplikation. Die Division erhält man durch Multiplikation mit dem Kehrbruch. Dabei sollten die Ergebnisse solcher Rechnungen immer in gekürzte Brüche verwandelt werden. Die einfachste Methode diese beiden Grundoperationen zu implementieren, ist es, die bekannten Rechenregeln für Brüche zu verwenden und diese anschließend zu kürzen, d.h. Zähler und Nenner mit dem Kehrwert des größten gemeinsamen Teiler zu multiplizieren. Unter Verwendung von Bemerkung 4.12 ist es möglich, diese Operationen wesentlich effizienter zu implementieren. Die Laufzeitanalyse ist dem Leser als Übungsaufgabe überlassen. Kapitel 5 Resultanten 5.1 Sylvestermatrix und Resultante Wir haben in Kapitel 4 den Euklidischen Algorithmus für ganze Zahlen und Polynome studiert und seine Laufzeit analysiert. Wollen wir ihn auf zwei Polynome mit ganzen Koeffizienten anwenden stellen wir fest, dass die Koeffizienten der Restfolgen im Euklidischen Algorithmus im Allgemeinen nicht mehr in Z, sondern in Q liegen. Wir wollen jetzt der Frage nachgehen, ob wir dem Euklidischen Algorithmus ähnliche Verfahren konstruieren können, bei denen die Koeffizienten der Polynomrestfolgen (vgl. Kapitel 6) in Z bleiben. Dazu wird einiges an theoretischen Kenntnissen über Resultanten notwendig sein. Diese wollen wir im Folgenden genauer studieren. Bemerkung 5.1. Es seien K ein Körper und 0 6= f, g ∈ K[T ] zwei Polynome. Dann sind äquivalent: (a) Die Polynome f und g besitzen einen nichttrivialen gemeinsamen Teiler, d.h. es gilt 1 ∈ / ggT{f, g}. (b) Es existieren von Null verschiedene Polynome r, s ∈ K[T ] mit deg(r) < deg(g) und deg(s) < deg(f ), so dass r · f + s · g = 0 gilt. Beweis. Zunächst schließen wir von (a) nach (b). Es sei d ∈ ggT{f, g} ein größter gemeinsamer Teiler und es gelte 1 ∈ / ggT{f, g}. Damit ist klar, dass d kein konstantes Polynom ist, also ist d ∈ / K und es gilt deg(d) ≥ 1. Mit r := dg , s := − fd ergibt sich r · f + s · g = 0, wobei deg(r) < deg(g) und deg(s) < deg(f ) gelten. Nun schließen wir umgekehrt von (b) nach (a) und gehen davon aus, dass Polynome r, s ∈ K[T ] mit deg(r) < deg(g) und deg(s) < deg(f ) existieren, so dass r·f +s·g = 0 gilt. Wir nehmen darüber hinaus an, dass f und g teilerfremd sind, d.h. es gilt 1 ∈ ggT{f, g}. Damit würden wir aber f |s erhalten. Dies steht im Widerspruch zu unserer Voraussetzung deg(s) < deg(f ). 46 Resultanten Definition 5.2. (Sylvestermatrix, Resultante) Es sei R ein Integritätsbereich. Weiterhin seien 0 6= f = g= n P m P ai T i ∈ R[T ] und 0 6= i=0 j bj T ∈ R[T ] zwei Polynome über R und l ∈ N eine natürliche Zahl. j=0 Dann definieren wir die Menge der Polynome vom Grade kleiner l durch Rl := {h ∈ R[T ] | deg(h) < l}. Außerdem definieren wir eine R-lineare Abbildung durch ˙ m −→ λ(f, g) : Rn ∪R Rn+m (r, s) 7−→ r · f + s · g ˙ m , bzw. Rn+m : Die beiden folgenden Mengen bilden Basen von Rn ∪R ˙ B n∪m := {(T n−1 , 0), . . . , (1, 0), (0, T m−1 ), . . . , (0, 1)} B n+m := {T n+m−1 , . . . , 1} ˙ Wir bezeichnen die Darstellungsmatrix von λ = λ(f, g) bezüglich der Basen B n∪m , B n+m mit bn am .. . . .. . . . . . . . .. . . bn am . ˙ n∪m Syl(f, g) := Dn+m (λ) = .. .. a b . . 0 0 .. .. . . . . . . . . b0 a0 {z }| {z } | n Spalten m Spalten und nennen diese Sylvestermatrix von f und g. Außerdem nennen wir Res(f, g) := det(Syl(f, g)) die Resultante von f und g. Korollar 5.3. Falls R = K ein Körper ist, dann gelten: (a) Die Polynome f und g sind teilerfremd genau dann, wenn λ(f, g) ein Isomorphismus ist. Dies ist genau dann der Fall, wenn gilt Res(f, g) 6= 0. (b) Falls Res(f, g) 6= 0 ist und r = n−1 P cj T j , s = m−1 P j=0 di T i Lösungen des linearen i=0 Gleichungssystems Syl(f, g) · cn−1 · · · c0 dm−1 · · · d0 tr = 0 ··· 0 1 tr sind, so gilt r · f + s · g = 1. Dabei sind r = rl und s = sl die Koeffizienten der K[T ]-Linearkombination von ggT{f, g} aus dem erweiterten Euklidischen Algorithmus. 5.1 Sylvestermatrix und Resultante 47 Beweis. Die erste Aussage ist relativ schnell bewiesen. Zunächst stellen wir mit Hilfe von Bemerkung 5.1 fest, dass f und g genau dann teilerfremd sind, wenn λ(f, g) injektiv ist. Da λ(f, g) eine Abbildung zwischen K-Vektorräumen gleicher Dimension ist, ist dies genau dann der Fall, wenn λ ein Isomorphismus ist. Da dies gleichbedeutend mit Res(f, g) 6= 0 ist, ist der Beweis schon erbracht. (b) Wir betrachten das allgemeine lineare Gleichungssystem Syl(f, g) · cn−1 · · · c0 dm−1 · · · d0 tr = un+m−1 · · · u0 tr . Da die cj , di die Koeffizienten von r und s sind, kann man dieses Gleichungssystem n+m−1 P äquivalent umschreiben zu r · f + s · g = h(T ) := uk T k . Ist nun h(T ) = 1, wie k=0 oben vorausgesetzt, so gilt r · f + s · g = 1. Die Gleichheit der Koeffizienten folgern wir aus der Tatsache, dass die Lösung des Gleichungssystems wegen Res(f, g) 6= 0 eindeutig bestimmt ist. Dies ist nach (a) gleichbedeutend damit, dass λ(f, g) ein Isomorphismus ist. Satz 5.4. Es seien R ein Integritätsbereich und 0 6= f, g ∈ R[T ] zwei nichttriviale Polynome über R. Dann existieren Polynome r, s ∈ R[T ] mit Res(f, g) = r · f + s · g und deg(r) < deg(g) und deg(s) < deg(f ). Beweis. Als erstes bezeichnen wir den Quotientenkörper von R mit K. Im weiteren Verlauf des Beweises unterscheiden wir zwei Fälle. Im ersten Fall gehen wir davon aus, dass Res(f, g) = 0 ist. Das bedeutet, dass λ(f, g) nicht injektiv ist. Dann existieren Polynome r̃ ∈ Kn , s̃ ∈ Km mit r̃ · f + s̃ · g = 0, d.h. (r̃, s̃) liegt im Kern von λ(f, g). Durch Multiplikation mit Nennern erhalten wir aus r̃, s̃ Polynome r ∈ Rn und s ∈ Rm mit r · f + s · g = 0 = Res(f, g). Nun widmen wir uns dem zweiten Fall Res(f, g) 6= 0. Nach Korollar 5.3 (a) ist dann λ(f, g) ein Isomorphismus über K. Nach Korollar 5.3 (b) wissen wir, dass das lineare Gleichungssystem tr tr Syl(f, g) · cn−1 · · · c0 dm−1 · · · d0 = 0 ··· 0 1 eine eindeutige Lösung (cn−1 , . . . , c0 , dm−1 , . . . , d0 )tr in K n+m besitzt. Da nach Voraussetzung det(S(f, g)) = Res(f, g) 6= 0 gilt, können wir diese Lösung mit Hilfe der Cramerschen Regel berechnen. Diese liefert 1 · det(Syl(f, g)(i) ) Res(f, g) 1 = · det(Syl(f, g)(n+j) ). Res(f, g) cn−i = dm−j Dabei bezeichnet Syl(f, g)(i) die Matrix, die entsteht, wenn man in Syl(f, g) die i-te n P Spalte durch den Vektor (0, . . . , 0, 1)tr ersetzt. Bezeichnen wir nun r̃ := cj T j , j=0 48 s̃ := Resultanten m P di T i , dann folgt r̃ · f + s̃ · g = 1. Da jeder Koeffizientennenner von r̃ und s̃ i=0 Faktor von Res(f, g) ist, liegen die Koeffizienten der Polynome r := Res(f, g) · r̃ und s := Res(f, g) · s̃ in R, d.h. r und s sind Polynome in R[T ]. Multiplizieren wir obige Gleichung mit Res(f, g), so erhalten wir die gewünschte Gleichung r · f + s · g = Res(f, g). Zusatz 5.5. Es sei K ein Körper. Weiterhin seien 0 6= f, g ∈ K[T ] zwei von Null verschiedene Polynome über K. Bringt man die transponierte Sylvestermatrix Syl(f, g)tr durch elementare Zeilenumformungen auf Dreiecksgestalt (GaussNormalform), so erhält man in der letzten nicht verschwindenden Zeile die Koeffizienten eines größten gemeinsamen Teilers von f und g. Beweis. Zunächst schreiben wir die Sylvestermatrix in transponierte Form am · · · · · · a0 .. . am · · · Syl(f, g)tr = bn · · · · · · b0 .. . bn ··· .. . · · · a0 .. . ··· . b0 Dann bezeichnen wir mit f0 := f und f1 := g. Die transponierte Sylvestermatrix ist eine (n + m) × (n + m)-Matrix. Die erste Zeile dieser Matrix ist der Koeffizientenvektor des Polynoms f0 T n−1 , die zweite Zeile der des Polynoms f0 T n−2 usw. bis schließlich in der n-ten Zeile der Koeffizientenvektor von f0 steht. Analog stehen in der (n + 1)-ten Zeile bis zur (n + m)-ten Zeile die Koeffizienten von f1 T m−k für k = 1, . . . , m. Wir können uns also die transponierte Sylvestermatrix auch folgendermassen veranschaulichen: f0 T n−1 f0 T n−2 .. . f0 . f1 T m−1 m−2 f T 1 .. . f1 Mit dem Euklidischen Algorithmus erhalten wir f0 = q1 · f1 + f2 bzw. nach Multiplikation mit T k die Gleichung f0 T k = q1 T k f1 + f2 T k . Elementare Zeilenumformungen 5.2 Produktformel für die Resultante 49 der Matrix liefern f1 T m−1 .. . f1 T n2 f1 T n2 −1 f2 T n1 −1 ... f1 .. . f2 mit m = n0 , n = n2 = deg(f1 ), usw. und damit nach Entfernen der ersten m − n2 Zeilen und Spalten eine neue kleinere Sylvestermatrix mit deg(f2 ) + deg(f1 ) Zeilen und Spalten. In den folgenden Schritten liefert der Euklidische Algorithmus mit ni := deg(fi ) die folgenden Gleichungen: f1 T n2 −1 = q2 T n2 −1 + f3 T n2 −1 .. . fl−1 T nl −1 = ql T nl −1 fl + 0 Damit erhalten wir in jedem Schritt eine kleinere Sylvestermatrix mit deg(fi+1 ) + deg(fi ) Zeilen und Spalten und eine Matrix, in deren letzter nicht-verschwindender Zeile die Koeffizienten von fl = ggT{f, g} stehen. 5.2 Produktformel für die Resultante Bemerkung 5.6. Es seien R ein Integritätsbereich und a ∈ R ein beliebiges Ringelement. Weiterhin seien f, g ∈ R[T ] zwei Polynome mit deg(f ) > 0. Dann gilt: Res((T − a)f, g) = g(a) · Res(f, g). Beweis. Die beiden Polynome f und g seien in Koeffizientendarstellung gegeben, d.h. m n m+1 P P P f= ai T i , g = bj T j . Wir bezeichnen mit f˜ := (T − a) · f = (ai−1 − a · ai )T i , i=0 j=0 i=0 50 Resultanten wobei a−1 = am+1 := 0 gelte. am 0 ··· 0 bn 0 · · · 0 .. ... a am . bn m−1 − a · am .. .. .. .. . . am−1 − a · am 0 . . .. .. . . . 0 . am . Res(f˜, g) = det a0 − a · a1 −a · a0 a0 − a · a1 b0 bn .. .. 0 −a · a0 . 0 b0 . .. .. .. . . .. .. . . . . . . 0 0 · · · −a · a0 0 · · · 0 b0 Nun formen wir diese Matrix mittels elementarer Zeilenoperationen um, wobei sich dabei ihre Determinante nicht verändert. Zunächst addieren wir das a-fache der ersten Zeile zur zweiten Zeile. Damit verschwindet im ersten Eintrag der zweiten Zeile der Summand −a · am und es bleibt am−1 stehen. Nun addieren wir das afache der zweite Zeile zur dritten Zeile usw. Dadurch eliminieren wir sukzessive die Summanden −a · ai−1 . Damit erhalten wir: am 0 ··· 0 bn 0 ··· 0 . . . .. a . a · bn + bn−1 bn m−1 am . .. .. .. .. .. . . 0 . . am−1 .. .. . . . 0 . am . Res(f˜, g) = det a0 0 a0 g(a) bn .. .. 0 . a · g(a) g(a) . 0 . .. .. .. .. .. .. . . a0 . . . 0 0 ··· 0 am · g(a) am−1 · g(a) · · · g(a) Diese Matrix formen wir nun abermals um, diesmal mittels elementarer Spaltenoperationen. Auch diese haben keine Auswirkungen auf die Determinante. Wir subtrahieren zunächst das a-fache der (n + 2)-ten Spalte von der (n + 1)-ten Spalte, dann ziehen wir das a-fache der (n + 3)-ten Spalte von der (n + 2)-ten Spalte ab usw. Dadurch erhalten wir wieder eine Sylvestermatrix, nämlich: am 0 · · · 0 b n 0 · · · 0 0 .. . .. .. . . . .. . am . . . .. . bn . . .. .. .. .. .. . . . 0 b0 . 0 . a0 am 0 b 0 bn 0 . Res(f˜, g) = det 0 a0 . . .. . . .. .. .. . . . . . ... . . . . b n .. 0 · · · 0 a0 0 · · · 0 b 0 . 0 · · · · · · 0 0 · · · · · · 0 g(a) 5.2 Produktformel für die Resultante 51 Wenn wir jetzt mit der letzten Zeile dieser Matrix nach Laplace entwickeln, erhalten wir Res((T − a) · f, g) = g(a) · Res(f, g) und damit das gewünschte Resultat. Satz 5.7. Es seien R ein Integritätsbereich und 0 6= f, g ∈ R[T ] zwei Polynome. m n Q Q Diese seien gegeben durch: f (T ) = a (T − ai ), g(T ) = b (T − bj ). Dann gilt: i=1 Res(f, g) = a n m Y j=1 m Y n m Y Y m·n m g(ai ) = a · b (ai − bj ) = (−1) b f (bj ). n m i=1 i=1 j=1 j=n Beweis. Die Formel folgt aus Bemerkung 5.6 durch Induktion: m m Y Y n Res(f, g) = a Res( (T − ai ), g(T )) = a · g(a1 ) · Res( (T − ai ), g(T )) n i=1 = an m Y g(ai ) · Res(1, g) = an | {z } i=1 = a n =1 m Y b i=1 = (−1) i=2 n Y m Y g(ai ) i=1 m Y n Y (ai − bj ) = a · b (ai − bj ) n j=1 m·n m b m i=1 j=1 n Y j=1 a m Y (bj − ai ) = (−1) m·n m b i=1 n Y f (bj ). j=1 Korollar 5.8. Es seien R ein Integritätsbereich und f1 , f2 , g ∈ R[T ] Polynome über R. Dann gilt Res(f1 · f2 , g) = Res(f1 , g) · Res(f2 , g). Korollar 5.9. Es seien R ein Integritätsbereich und f, g, h ∈ R[T ] Polynome über R mit deg(f ) = m, deg(g) = n und deg(f · h + g) = l. Ferner sei a der höchste Koeffizient von f . Dann gilt: Res(f, f · h + g) = al−n Res(f, g). Beweis. Es sei f = a m Q (T − ai ), wobei ai die Nullstellen von f in einem Erweite- i=1 rungskörper sind. Damit erhalten wir unter Verwendung von Bemerkung 5.6 Res(f, g) = a n m Y i=1 m Y g(ai ) = a (f (ai ) ·h(ai ) + g(ai )) = an−l Res(f, f · h + g) | {z } und damit die Behauptung. n i=1 =0 52 5.3 Resultanten Die Diskriminante eines Polynoms Im nächsten Abschnitt des Kapitels wollen wir die Diskriminante kennenlernen. An ihr kann man die Anzahl und Art der Lösungen algebraischer Gleichungen ablesen. m Q Bemerkung 5.10. Es seien R ein Integritätsbereich und 0 6= f = (T − ai ) ein i=1 Polynom über R. Dann gilt 0 Res(f, f ) = m Y (ai − aj ). i,j=1, i6=j Beweis. Wir setzen zunächst g(T ) := f 0 (T ) = m Q m P i=1 m Q einsetzen erhalten wir g(ai ) = (T − aj ). Wenn wir nun ai in g j=1, i6=j (ai − aj ). Dies setzen wir in Bemerkung 5.6 ein i6=j=1 und erhalten 0 Res(f, f ) = Res(f, g) = m Y g(ai ) = i=1 m Y (ai − aj ). i,j=1, i6=j Definition 5.11. (Diskriminante) Es seien R ein Integritätsbereich und f = m Q (T − ai ) ∈ R[T ] ein Polynom über R. i=1 Dann heißt D(f ) := Y (ai − aj )2 = (−1) n(n−1) 2 Res(f, f 0 ) 1≤i<j≤m Diskriminante von f . Wir veranschaulichen uns die Diskriminante noch an folgendem Beispiel. Beispiel 5.12. Es sei folgendes Polynom f = T 2 + pT + q ∈ Q[T ] gegeben. Differenzieren wir f nach T , so ergibt sich f 0 = 2T + p. Dann erhalten wir die Diskriminante von f wie folgt: 1 2 0 D(f ) = − Res(f, f 0 ) = det p p 2 = −(p2 + 4q − 2p2 ) = p2 − 4q. q 0 p Erinnern wir uns nun an unsere Schulzeit, so haben wir die Nullstellen solcher Gleip chungen mit folgender “Mitternachtsformel” gefunden: x1/2 = − p2 ± 12 p2 − 4q = p − p2 ± 21 D(f ). Dabei hängt die Anzahl der Lösungen im Wesentlichen von dem Wert der Diskriminante ab. Und zwar davon, ob diese echt größer (zwei reelle Lösungen), gleich (genau eine reelle Lösung) oder echt kleiner (keine reelle Lösung) Null ist. 5.3 Die Diskriminante eines Polynoms 53 Wir haben also an diesem einfachen Beispiel gesehen, dass wir die Zahl der Nullstellen eines quadratischen Polynoms an seiner Diskriminante ablesen können. Allgemein gilt: Satz 5.13. Es seien R ein Integritätsbereich und f ∈ R[T ] ein Polynom über R. Dann sind äquivalent: (a) D(f ) = 0. (b) f hat mehrfache Nullstellen (in einem Erweiterungskörper). Beweis. Wir wissen aus der linearen Algebra, dass f genau dann mehrfache Nullstellen besitzt, wenn es einen nichttrivialen gemeinsamen Teiler mit seiner Ableitung besitzt. Dies ist nach Bemerkung 5.10 genau dann der Fall, wenn Res(f, f 0 ) = 0. Und dies ist nach Definition 5.11 äquivalent zu D(f ) = 0, womit unsere Behauptung bewiesen ist. Bemerkung 5.14. Es seien R ein Integritätsbereich und 0 6= f, g ∈ R[T ] zwei Polynome. Dann gilt D(f · g) = D(f ) · Res(f, g)2 · D(g). Beweis. Wir gehen ohne Einschränkung davon aus, dass f und g in Produktdarstellung vorliegen (z.B. durch Übergang zu einem Eweiterungskörper): m n Y Y f (T ) = (T − ai ), g(T ) = (T − bj ). i=1 j=1 Ferner definieren wir am+j := bj . Dies liefert uns Y D(f · g) = (ai − aj )2 1≤i<j≤m+n Y = 1≤i<j<m | Y (ai − aj )2 {z = D(f ) (ai − aj )2 m+1≤i<j≤m+n }| = D(f ) · Res(f, g)2 · D(g). {z = D(g) Y (ai − aj )2 1≤i<m, } |m+1≤j≤m+n{z = Res(f, g) } 54 5.4 Resultanten Eliminationsverfahren für nichtlineare Gleichungssysteme Im letzten Abschnitt des Kapitels wollen wir noch eine Anwendung der Resultanten studieren, nämlich das Eliminationsverfahren für nichtlineare Gleichungssysteme. Es seien ein Integritätsbereich R und Polynome f1 , . . . , fm ∈ R[T1 , . . . , Tn ] gegeben. Wir suchen einen Vektor gemeinsamer Nullstellen (a1 , . . . , an ) ∈ Rn des Polynomsystems f1 , . . . , fm , d.h. fi (a1 , . . . , an ) = 0 für alle i = 1, . . . , m. Sei also (a1 , . . . , an ) ein gemeinsamer Nullstellenvektor von fi , fj . Dann fassen wir diese beiden als Polynome in Tn auf und bilden ResTn (fi , fj ) über dem Integritätsbereich R[T1 , . . . , Tn−1 ]. Aus Satz 5.4 erhalten wir die Darstellung ResTn (fi , fj ) = rfi + sfj , in der die Variable Tn nicht mehr vorkommt. Daraus folgt, dass ResTn (fi , fj )(a1 , . . . , an ) = 0 für alle Indizes 1 ≤ i < j ≤ m gilt. Dies liefert uns also ein Polynomgleichungssystem in n − 1 Variablen, die Variable Tn wurde eliminiert. Man kann ein solches Polynomgleichungssystem induktiv immer weiter reduzieren. Dieses Verfahren ist allerdings nur für kleine Gleichungssysteme geeignet, denn bei wiederholter Berechnung der Resultanten steigen die Grade sehr schnell an. Eine ausführlichere Behandlung befindet sich in Teil III Kapitel 24. Beispiel 5.15. Es seien R = Q und die beiden Polynome f1 = T2 2 − T1 3 , f2 = T2 2 T1 2 − 2T2 2 + T1 4 ∈ Q[T1 , T2 ] gegeben. Wir berechnen die Resultante 1 0 T1 2 − 2 0 0 1 0 T1 2 − 2 = T1 6 (T1 2 + T1 − 2)2 . ResT2 (f1 , f2 ) = det −T1 3 0 T1 4 3 4 0 −T1 0 T1 Diese hat die Nullstellen x1 = 0, x2 = 1, x3 = −2. Einsetzen√in die ursprünglichen Polynome liefert die Nullstellentupel (0, 0), (1, ±1), (−2, ±2 2) als Lösungen des Polynomgleichungssystems über R. Kapitel 6 Subresultanten 6.1 Polynomrestfolgen Da wir uns bereits in Kapitel 5 mit Resultanten vertraut gemacht haben, werden wir in diesem Kapitel dazu übergehen diese theoretischen Resultate bei der praktischen Durchführung des Euklidischen Algorithmus bei Polynomen einzusetzen. Dabei wollen wir stets Polynome betrachten, deren Koeffizienten in einem Integritätsbereich, z.B. Z liegen. Außerdem soll die Komplexität, also die Rechenzeit so “moderat” wie möglich sein. Was genau damit gemeint ist, wird im weiteren Verlauf erklärt. Zunächst führen wir ein Beispiel zur Veranschaulichung vor. Beispiel 6.1. (Knuth) Es seien f = T 8 +T 6 −3T 3 +8T 2 +2T −5 =: f0 und g = 3T 6 +5T 4 −4T 2 −9T +21 =: f1 zwei Polynome aus Z[T ]. Wir führen den Euklidischen Algorithmus durch und erhalten 1 1 5 f2 = − T 4 + T 2 − 9 9 3 117 2 411 f3 = − T − 9T + 25 25 102500 233150 f4 = T− 19773 6591 1288744821 f5 = − . 543589225 Wir stellen also fest, dass der Euklidische Algorithmus selbst bei diesem relativ einfachen Beispiel mit Polynomen von kleinem Grad schon nach wenigen Schritten ziemlich komplizierte Brüche liefert. Daher drängt sich die Frage auf, ob man den Algorithmus so abändern kann, dass erstens keine Brüche auftreten und zweitens das Koeffizientenwachstum “moderat” bleibt. Der erste Teil der Frage kann durch die Pseudodivision bejaht werden. 56 Subresultanten Bemerkung 6.2. (Pseudodivision) Es seien R ein Integritätsbereich und f, g ∈ R[T ] zwei Polynome über R mit deg(f )− deg(g) = k ≥ 0. Ferner sei b der höchste Koeffizient von g. Dann existieren Polynome q, r ∈ R[T ] mit bk+1 · f = q · g + r mit deg(r) < deg(g). Beweis. Diese Aussage ist durch leichtes Nachrechnen zu verifizieren und ist an dieser Stelle dem Leser überlassen. Definition 6.3. (Pseudodivision, Pseudorest) Das Polynom r(T ) ∈ R[T ] aus Bemerkung 6.2 heißt Pseudorest der Pseudodivision von f (T ) durch g(T ). Wir wenden diese Pseudodivision auf unsere Polynome aus Beispiel 6.1 an und erhalten: Beispiel 6.4. f2 f3 f4 f5 = = = = −15T 4 + 3T 2 − 9 −15795T 2 − 30375T + 59535 −125454875143750T + 1654608338437500 −12593338795500743100931141992187500. Wir können also mittels Pseudodivision eine modifizierte Polynomrestfolge berechnen, bei der die Koeffizienten im Bereich der ganzen Zahlen bleiben. Allerdings hat unser größter gemeinsamer Teiler auch in diesem kleinen Beispiel bereits 35 Ziffern. Wir müssen daher versuchen, diese explodierenden Koeffizientenlängen in den Griff zu bekommen. Dazu führen wir noch die folgende Bezeichung ein. Definition 6.5. (Inhalt, Leitkoeffizient, primitiv) m P Es sei f = ai T i ∈ R[T ] ein Polynom über einem Integritätsbereich R. Wir i=0 bezeichnen mit l(f ) = am den Leitkoeffizienten von f . Ferner sei der Inhalt von f definiert als der größte gemeinsame Teiler aller Koeffizienten von f , also c(f ) := ggT{a0 , . . . , am }. Wir nennen ein Polynom f primitiv, falls c(f ) = 1 gilt. Algorithmus 6.6. (Primitiver Euklidischer Algorithmus) Es seien zwei Polynome f, g ∈ R[T ] gegeben mit deg(f ) = m, deg(g) = n. Wir setzen f0 := f, f1 := g, i := 1. 6.1 Polynomrestfolgen 57 1. k := deg(fi−1 ) − deg(fi ), führe Pseudodivision mit Rest durch, d.h. l(fi )k+1 fi−1 = qi fi + ri+1 . 2. Falls r 6= 0 ist, setze t := c(ri+1 ) und fi+1 := 1t ri+1 ∈ R[T ], setze i := i + 1 und gehe zu 1. 3. fi ist ein primitiv normierter größter gemeinsame Teiler von f und g in Quot(R)[T ], d.h. es gilt c(fi ) = 1. Wir wenden diesen primitiven Euklidischen Algorithmus erneut auf unsere Polynome aus Beispiel 6.1 an. Beispiel 6.7. f2 f3 f4 f5 = = = = 5T 4 − T 2 + 3 13T 2 + 25T − 49 4663T + 6165 1. Mit diesem Algorithmus können wir also die Koeffizienten relativ “klein ” halten. Allerdings muss in jedem Schritt der Inhalt eines Polynoms berechnet werden. Diese Berechnungen sind, wie wir bereits wissen, sehr aufwändig. Wir verallgemeinern nun obige Variante des Euklidischen Algorithmus durch die Einführung von Polynomrestfolgen. Definition 6.8. (Polynomrestfolge, regulär) Es seien R ein Integritätsbereich und f =: f0 , g =: f1 ∈ R[T ] zwei Polynome über R. Wir nennen eine Folge von Polynomen (fi )li=0 ∈ R[T ] eine Polynomrestfolge genau dann, wenn zu jedem i ∈ {1, . . . , l} Ringelemente bi , ci ∈ R und ein Polynom qi ∈ R[T ] existieren mit bi fi−1 = qi fi + ci fi+1 ∈ R[T ] und deg(fi+1 ) < deg(fi ) bzw. fl+1 = 0 gilt. Eine solche Polynomrestfolge (fi )li=0 heißt regulär genau dann, wenn für jedes i ∈ {1, . . . , l} die Gradbedingung deg(fi+1 ) = deg(fi ) − 1 gilt. Wir haben schon verschiedene Beispiele für Polynomrestfolgen kennengelernt, z.B. Euklidische Polynomrestfolgen, primitive Polynomrestfolgen und die Polynomrestfolgen bei der Pseudodivision. Wir wollen im Folgenden der Frage nachgehen, ob wir Polynomrestfolgen mit moderatem Koeffizientenwachstum finden können, die mit wenig Aufwand berechenbar sind. 58 6.2 Subresultanten Subresultanten und Bézoutkoeffizienten Bevor wir analysieren, welche Auswirkungen diese Modifikationen auf die Komplexität des Euklidischen Algorithmus haben, benötigen wir noch einige weitere theoretische Resultate. Diese wollen wir im Folgenden kurz zusammentragen. Bemerkung 6.9. Es seien K ein Körper und 0 6= f, g ∈ K[T ] zwei Polynome über K. Weiterhin seien f0 := f, f1 := g, f2 , . . . , fl , fl+1 = 0 die Euklidische Polynomrestfolge und ni := deg(fi ). Wir gehen ohne Einschränkung davon aus, dass n1 ≤ n0 ist. Dann existieren zu jedem i ∈ {0, . . . , l} teilerfremde Polynome ri , si ∈ K[T ] mit fi = ri f + si g und deg(ri ) = n1 − ni−1 , deg(si ) = n0 − ni−1 . Beweis. Wir verwenden dieselben Bezeichnungen wie im Beweis zu Satz 4.8, d.h. es gelte 0 1 0 1 ri si Pi = Qi · · · Q0 = ··· =: . 1 −qi 1 −q1 ri+1 si+1 Damit erhalten wir die Darstellung f0 ri si ui+1 u1 fi . = Pi = = f1 ri+1 si+1 vi+1 v1 fi+1 Dies ergibt den ersten Teil der Behauptung, nämlich fi = ri f + si g, fi+1 = ri+1 f + si+1 g. Aus det(Pi ) = (−1)i folgt ri si+1 − si ri+1 = (−1)i . So haben wir gesehen, dass ri , si und ri+1 , si+1 jeweils teilerfremd sind. Es bleibt noch die Behauptung über die Grade zu zeigen. Aus Pi−1 = Qi−1 · Pi−2 erhalten wir ∗ ∗ 0 1 ri−2 si−2 = ri s i 1 −qi−1 ri−1 si−1 und damit ri = ri−2 − qi−1 ri−1 mit deg(qi−1 ) = ni−2 − ni−1 . Also gilt deg(ri ) = deg(qi−1 ) + deg(ri−1 ) = i−1 X j=2 deg(qj ) + deg(r1 ) = n1 − ni−1 . | {z } =0 Analog erhalten wir deg(si ) = i−1 X j=1 deg(qj ) + deg(s0 ) = n0 − ni−1 | {z } =1 und damit die Behauptung. Definition 6.10. (Bézoutkoeffizienten) Die Polynome ri , si aus Bemerkung 6.9 heissen Bézoutkoeffizienten von fi . Bemerkung 6.11. Es seien K ein Körper und (fi )li=0 die Euklidische Polynomrestfolge über K[T ] mit deg(fi ) =: ni . Dann sind äquivalent: 6.2 Subresultanten und Bézoutkoeffizienten 59 (a) Eine natürliche Zahl k liegt in der Menge {0, . . . , n1 }\{n1 , . . . , nl }. (b) Es existieren Polynome r, s ∈ K[T ] mit deg(rf0 + sf1 ) < k, deg(r) < n1 − k und deg(s) < n0 − k. Beweis. Wir schließen zuerst von (a) nach (b) und gehen davon aus, dass es eine natürliche Zahl k ∈ {0, . . . , n1 }\{n1 , . . . , nl } gibt. Wir können also einen Index i ∈ N finden mit ni < k < ni−1 . Aus fi = ri f0 + si f1 mit Bézoutkoeffizienten ri , si erhalten wir deg(ri f0 + si f1 ) = ni < k. Bemerkung 6.9 liefert deg(ri ) = n1 − ni−1 und damit deg(ri ) < n1 − k wegen k < ni−1 . Die entsprechende Aussage über deg(si ) ergibt sich analog. Zum Beweis der Rückrichtung von (b) nach (a) setzen wir voraus, dass Polynome r, s ∈ K[T ] mit deg(h) < k, deg(r) < n1 − k, deg(s) < n0 − k existieren, so dass h := fi = rf0 + sf1 gilt. Wir können also einen Index i ∈ N finden, so dass ni ≤ deg(h) < ni−1 ist. Jetzt wollen wir zeigen, dass es ein Polynom q ∈ K[T ] gibt mit h = q · fi und deg(fi ) = ni . Aus Bemerkung 6.9 wissen wir, dass Polynome ri , si ∈ K[T ] mit fi = ri f0 +si f1 existieren. Damit erhalten wir folgende Darstellung: fi ri si f0 = . h r s f1 Unter der Annahme det ri si r s 6= 0 gelangen wir mit Hilfe der Cramerschen Regel zu f i si det h s f s − hsi = i . f0 = ri s − rsi ri si det r s Daraus erhalten wir mit deg(f0 ) = n0 ≤ deg(fi s − hsi ) ≤ max{deg(fi s), deg(hsi )} = max{ ni + deg(s), deg(h) + deg(si ) } < n0 |{z} | {z } | {z } | {z } <k ≤n0 −k <k =n0 −ni −1 einen Widerspruch. Also gilt ri s−si r = 0, bzw. ri s = si r. Wir wissen aus Bemerkung 6.9, dass ri und si teilerfremd sind. Also gibt es ein Polynom q ∈ K[T ] mit r = q · ri und s = q · si und folglich h = q · fi . Damit ist unsere Zwischenbehauptung bewiesen. Nun kommen wir zur eigentlichen Aussage. Es gilt n0 − ni−1 = deg(si ) ≤ deg(q · si ) = deg(s) < n0 − k und daher k < ni−1 . Außerdem können wir die Abschätzung ni = deg(fi ) ≤ deg(q · fi ) = deg(h) < k gewinnen. Damit gilt k > ni . Da die Folge der Grade ni strikt fallend ist haben wir mit diesen Abschätzungen die Behauptung k ∈ {0, . . . , n1 }\{n1 , . . . , nl } bewiesen. 60 Subresultanten Definition 6.12. (k-te Sylvestermatrix, k-te Subresultante) m n P P Es seien R ein Integritätsbereich und f = ai T i , g = bj T j ∈ R[T ] zwei Polynoi=0 j=0 me über R. Die lineare Abbildung λk (f, g) : Rn−k × Rm−k −→ Rm+n−2k (r, s) 7−→ b rfT+sg k c besitzt die Darstellungsmatrix bn 0 am 0 ··· 0 .. .. .. ... . bn . am . .. .. .. .. .. . . . . . 0 . .. . . ... .. .. .. . am D(λk ) = Sylk (f, g) = .. .. .. .. . bk . ak . . . . a .. .. bk−1 bk ak k−1 . . . . . . .. .. .. .. .. .. a2k−n+1 · · · ak−1 ak b2k−m+1 · · · {z }| {z | n − k Spalten ··· ... .. . ... .. . ... .. . bk−1 m − k Spalten 0 .. . 0 bn .. , . .. . .. . bk } wobei aj , bj = 0 für j < 0 gilt. Diese ist eine (n + m − 2k) × (n + m − 2k) Untermatrix der Sylvestermatrix und heißt k-te Sylvestermatrix. Ferner nennen wir det(Sylk (f, g)) =: Resk (f, g) die k-te Subresultante von f und g. Satz 6.13. Es seien K ein Körper und f = m P i=0 ai T i , g = n P bj T j ∈ K[T ] zwei j=0 Polynome über K. Dann gelten für die auf l(fi ) = 1 normierte Euklidische Polynomrestfolge (fi )li=0 mit deg(fi ) =: ni : (a) Eine natürliche Zahl k ∈ N liegt in der Menge {n0 , . . . , nl } genau dann, wenn λk (f, g) ein Isomorphismus ist. Dies ist genau dann der Fall, wenn Resk (f, g) 6= 0 ist. (b) Falls Resk (f, g) 6= 0 ist, so sind die Bézoutkoeffizienten ri , si von fi das Urbild von 1 unter λk (f, g). Beweis. Aus Bemerkung 6.11 wissen wir, dass k genau dann in {n1 , . . . , nl } liegt, wenn λk (f, g) injektiv ist. Da λk (f, g) eine lineare Abbildung zwischen Vektorräumen gleicher Dimension ist, ist dies genau dann der Fall, wenn λk (f, g) bijektiv ist. Dies ist äquivalent zu Resk (f, g) 6= 0, woraus (a) folgt. 6.3 Koeffizientenwachstum 61 Unter den Voraussetzungen von (b) ist die Abbildung λk (f, g) für k = ni injektiv, n−k−1 m−k−1 P P d.h. das Polynom 1 ∈ Rn+m−2k hat genau ein Urbild ri = cj T j , si = dj T j j=0 j=0 mit Sylk (f, g) 6.3 cn−k−1 · · · c0 dm−k−1 · · · d0 tr = 0 ··· 0 1 tr . Koeffizientenwachstum Nun haben wir fast alle notwendigen Hilfsmittel beisammen. In diesem Abschnitt werden wir noch einige Abschätzungen für das Wachstum der Koeffizienten zusammenstellen, bevor wir im letzten Abschnitt alles verbinden und auf die Komplexitätsanalyse des Euklidischen Algorithmus anwenden. Satz 6.14. (Ungleichung von Hadamard) Es sei A = (ai,j )ni,j=1 ∈ Rn×n eine quadratische Matrix über R, deren Koeffizienten durch M := max{|aij | |i, j = 1, . . . , n} beschränkt sind. Dann gilt n X n Y n det(A) ≤ ( aij 2 ) ≤ nM 2 2 j=1 i=1 Beweis. Wir bezeichnen mit (a1j , . . . , anj )tr =: aj den j-ten Spaltenvektor der Matrix A, d.h. aj liegt in dem Euklidischen Vektorraum Rn , den wir mit dem Standardskalarprodukt versehen. Wir orthogonalisieren die Vektoren a1 , . . . , an zu b1 , . . . , bn mit dem Schmidt’schen Verfahren, d.h. für jedes k ∈ {1, . . . , n} gilt b k = ak − k−1 X ci a i . i=0 Dabei projizieren wir jedes ak orthogonal auf < a1 , . . . , ak−1 >⊥ . Hieraus folgt direkt, dass jedes bk betragsmässig kleiner als ak ist. Daraus schließen wir det(A) = det(a1 , . . . , an ) = det(b1 , . . . , bn ) n n Y Y = |bj | ≤ |aj | j=1 j=1 v n uX Y u n t aij 2 . = j=1 i=1 62 Subresultanten Da ferner der Betrag jedes aij durch M beschränkt ist, gilt aij 2 ≤ M 2 . Dadurch erhalten wir v n uX n Y Y √ u n √ 2 t aij ≤ n · M 2 = ( nM )n j=1 i=1 j=1 und damit die Behauptung. An dieser Stelle wollen wir noch zwei Bezeichnungen einführen, die uns im Laufe der folgenden Beweise Schreibarbeit ersparen werden. m P ai T i ∈ R[T ] ein Polynom mit reellen Koeffizienten. Definition 6.15. Es sei f = i=0 Dann bezeichnen wir mit kf k2 v u m uX ai 2 , = t i=0 kf k∞ = max {|ai | |i = 1, . . . , m} die 2-Norm bzw. die ∞-Norm von f . Korollar 6.16. Es seien f, g ∈ Z[T ] zwei Polynome mit ganzzahligen Koeffizienten und deg(f ) = m, deg(g) = n. Ferner seien die Koeffizienten von f und g betragsmässig durch M beschränkt. Dann gilt: Resk (f, g) ≤ kf kn−k · kgkm−k ≤ mm−k M m+n−2k . 2 2 Beweis. Da wir wissen, dass Sylk (f, g) eine Untermatrix von Syl(f, g) ist, folgt die erste Ungleichung aus Satz 6.14. Die zweite Ungleichung erhalten wir, indem wir wie im Beweis zu Satz 6.14 vorgehen und benutzen, dass in jeder Spalte höchstens m von Null verschiedene Koeffizienten stehen. 6.4 Der Euklidische Algorithmus in Z[T ] Bemerkung 6.17. Es seien f = m P i=0 ai T i , g = n P bj T j ∈ Z[T ] zwei Polynome mit j=0 ganzzahligen Koeffizienten und A, B, C ganze Zahlen mit folgenden Eigenschaften: A beschränkt alle |ai |, B beschränkt alle |bj | und l(g) ≤ C. Weiterhin bezeichnen wir mit k := deg(f )−deg(g) ≥ 0 die Differenz der Grade und und führen die Pseudodivision mit Rest durch, d.h. es gibt Polynome q, r ∈ Z[T ] mit l(g)k+1 f = qg + r. Dann gelten kqk∞ ≤ A(B + C)k , krk∞ ≤ A(B + C)k+1 . 6.4 Der Euklidische Algorithmus in Z[T ] 63 Beweis. Wir führen Pseudodivision mit Rest gemäß Definition 6.3 durch. Damit k P erhalten wir l(g)k+1 f = qg + r mit q, r ∈ Z[T ] und etwa q(T ) = qi T i . Hieraus i=0 ergibt sich für die Leitkoeffizienten: l(g)k+1 am = qk bn . Damit können wir q durch |qk | ≤ C k A abschätzen. Wir gehen nun zu den zweithöchsten Koeffizienten über und erhalten aus l(g)k+1 am−1 = qk−1 bn−1 +qk bn die Abschätzung |qk−1 | ≤ C k A+C k−1 AB. Führen wir diese Überlegungen induktiv fort, so erhalten wir für jeden Koeffizienten von q und damit auch für deren Maximum die Abschätzung: kqk∞ ≤ A(B + C)k . Aus der durch die Pseudodivision erhaltene Gleichung und dem bisherigen Ergebnis folgt krk∞ ≤ kf k∞ + | {z } ≤A kqk | {z∞} ≤ A(B + C)k · kgk∞ ≤ A(B + C)k+1 . | {z } ≤B Satz 6.18. (Aufwandsanalyse für den Euklidischen Algorithmus) Es seien f, g ∈ Z[T ] Polynome mit ganzzahligen Koeffizienten und deg(f ) = m und deg(g) = n die zugehörigen Grade. Ferner seien ihre Koeffizienten durch die Konstante M ≤ 2l beschränkt. Dann gelten: (a) Für den erweiterten Euklidischen Algorithmus genügen O(l2 · m3 · n · ld(m)2 ) Bitoperationen bzw. O(L4 · ld(L)2 ) Bitoperationen bezüglich der Länge der Eingabedaten L := 2lm. (b) Unter Verwendung der diskreten Fouriertransformation genügen sogar nur O(l·m2 ·n·ld(m)·ld(lm)·ld(ld(lm))) bzw. O(L3 ·ld(L)2 ·ld(ld(L))) Bitoperationen. Beweis. Wir benutzen den Euklidischen Algorithmus mit normierten Resten, d.h. es gilt fi−1 = qi fi + ci fi+1 mit ci ∈ Q und l(fi+1 ) = 1. Außerdem können wir jedes fi als fi = ri f0 + si f1 mit Bézoutkoeffizienten ri , si schreiben, wobei f0 := f, f1 := g bedeuten. Bezeichnen wir ferner deg(fi ) mit ni , so liegt Resni (f, g) · ri in Z[T ]. Um Schreibarbeit zu sparen, bezeichnen wir für den Rest des Beweises Resni (f, g) =: ρi . Unter Verwendung von Korollar 6.16 ergibt sich dann folgende Ungleichungskette: |ρi | ≤ mm−ni M m+n−2ni ≤ mm M 2m =: B. Benutzen wir Satz 6.13 und erneut Korollar 6.16 können wir zudem die folgenden Abschätzungen gewinnen: kρi ri k∞ ≤ kf k∞ n−ni −1 kgk∞ m−ni ≤ mm−ni M m+n−2ni ≤ B, kρi si k∞ ≤ kf k∞ n−ni kgk∞ m−ni −1 ≤ B. 64 Subresultanten Damit können wir die Maximumnorm jedes Glieds der Polynomrestfolge abschätzen: kρi fi k∞ = kρi ri f0 + si f1 k∞ ≤ 2kf k∞ n−ni · kgk∞ m−ni ≤ 2B. Nun setzen wir k := ki = deg(qi ) = ni−1 − ni und erhalten damit ρi k+1 (ρi−1 fi−1 ) = ρi k ρi−1 qi (ρi fi ) + ρi k+1 ρi−1 ci fi+1 . {z } | {z } | {z } | {z } | =: q̃i ∈Z[T] ∈Z[T] =: f˜i+1 Mit dem Ergebnis aus Bemerkung 6.17 können wir daraus schließen: kq̃i k∞ ≤ kρi−1 fi−1 k∞ (kρi fi k∞ + |ρi | )k ≤ (3B)k+1 , | {z } | {z } |{z} ≤B ≤ 2B ≤2B ˜ ≤ kρi−1 fi−1 k∞ (kρi fi k∞ + |ρi | )k+1 ≤ (3B)k+2 , fi+1 | {z } | {z } |{z} ∞ ≤B ≤ 2B ≤ 2B k k+1 k+1 ρi ρi−1 ≤ B , sowie ρi+1 ρi−1 ≤ B k+2 . Damit haben wir gesehen, dass die Koeffizienten von qi und ci durch 3B k+2 beschränkt sind. Nach Satz 4.8(b) genügen für den Euklidischen Algorithmus O(m · n) Ringoperationen mit ganzen Zahlen der Bitlänge höchstens (k + 2) ld(2B) wobei im Fall regulärer Polynomrestfolgen k = 1 ist. Ergänzt man wie in Satz 4.9 (Schönhage) die Polynomrestfolge durch Zusatzglieder der Form T j fj für j = ki − 1, . . . , 1, kann sogar allgemein k = 1 erreicht werden. Dazu sind die Zähler und Nenner durch 3B 3 beschränkt und für den Euklidischen Algorithmus genügen O(m·n) Ringoperationen mit ganzen Zahlen der Bitlänge höchstens ld(3B 3 ) ∈ O(ld(B)), wobei noch gilt ld(B) = m · ld(m) + 2m · ld(M ) = m · ld(m) + 2ml ∈ O(m · l · ld(m)). | {z } ≤l Dies ergibt für den Euklidischen Algorithmus einen Gesamtaufwand von O(m3 · l2 · n · ld(m)2 ) Bitoperationen. (b) Mit diskreter Fouriertransformation benötigt man für den Euklidischen Algorithmus O(l · m3 · n · ld(m) · ld(lm) · ld(ld(lm))) Bitoperationen, da eine Multiplikation höchstens O(µ(ld(B))) Bitoperationen kostet. In Abhängigkeit von L ist die Komplexität schließlich beschränkt durch O(L3 · ld(L)2 · ld(ld(L))). Kapitel 7 Die modulare Methode 7.1 Der Hauptsatz über simultane Kongruenzen In den letzten Kapiteln haben wir gesehen, dass wir die Komplexität des Euklidischen Algorithmus durch Modifikation der Polynomrestfolgen verbessern können. Wie schon in Kapitel 1 angedeutet sind durch modulare Arithmetik noch weitere Verbesserungen möglich. Diesen wollen wir uns in den folgenden beiden Kapiteln widmen, dabei befassen wir uns zunächst mit den notwendigen theoretischen Resultaten. Satz 7.1. Es seien R ein kommutativer Ring mit Einselement und (Ai )ni=1 eine Menge von Idealen aus R. Für diese Ideale soll außerdem gelten, dass für je zwei verschiedene Indizes i 6= j die Summe Ai + Aj = R den ganzen Ring ergibt. Dann gilt: n n \ Y ∼ R/ Ai = R/Ai . i=1 i=1 Beweis. Wir definieren zunächst für jeden Index i folgende Restklassenabbildung φi : R −→ R/Ai . a 7−→ āi := a mod Ai Diese setzen wir zu folgender Abbildung zusammen φ := n Q φi : R −→ i=1 n Q R/Ai i=1 a 7−→ (āi )ni=1 und erhalten so einen Ringhomomorphismus mit Kern(φ) = n T Ai . Um die ge- i=1 wünschte Isomorphie zu erhalten, müssen wir zeigen dass φ surjektiv ist, d.h. dass n Q für alle (āi )ni=1 ∈ R/Ai ein a ∈ R existiert mit φi (a) = āi für alle i. Damit sind i=1 66 Die modulare Methode dann die Voraussetzungen des Homomorphiesatzes erfüllt, und dieser liefert das geforderte Resultat. Die Surjektivität von φ zeigen wir durch Induktion nach n. Für n = 1 ist die Aussage trivial, denn φ ist dann der kanonische Epimorphismus. Also betrachten wir den Fall n = 2. Wir haben zwei Ideale A1 , A2 mit der Eigenschaft A1 + A2 = R, d.h. es existieren Ringelemente bi ∈ Ai mit b1 + b2 = 1. Es seien also ai ∈ āi (nicht notwendigerweise eindeutige) Urbilder von āi in R. Damit definieren wir das Ringelement a := a2 b1 + a1 b2 . Dieses bilden wir nun unter den Ringhomomorphismen φi ab und erhalten φ1 (a) = φ1 (a2 b1 +a1 b2 ) = φ1 (a1 b2 ) = φ1 (a1 (b1 + b2 )) = φ1 (a1 ) = ā1 , |{z} | {z } ∈ A1 =1 φ2 (a) = φ1 (a2 b1 + a1 b2 ) = φ2 (a2 b1 ) = φ2 (a2 (b1 + b2 )) = φ2 (a2 ) = ā2 . |{z} | {z } ∈ A2 =1 Damit haben wir für jedes Tupel (ā1 , ā2 ) ein Urbild gefunden, also ist φ surjektiv. Nun bleibt noch der Schritt von n − 1 nach n. Nach Voraussetzung gilt für jeden Index i ≥ 2: A1 + Ai = R, d.h. es existieren Ringelemente bi ∈ A1 und ci ∈ Ai mit bi + ci = 1. Multiplizieren wir diese Elemente miteinander erhalten wir: n Y 1= (bi + ci ) = b2 · · · bn + | {z } i=2 =: b1 ∈ A1 e1 |{z} = b1 + e 1 . ∈ A2 · · · An Dazu gelten für jeden Index i = 2, . . . , n sowohl φi (e1 ) = 0 als auch φ1 (e1 ) = 1 = φ1 (1) = 1̄. Analog zeigen wir, dass zu jedem i = 2, . . . , n ein Ringelement ei ∈ R existiert, so dass φi (ei ) = 1 und φj (ei ) = 0 für alle j 6= i gelten. Sei nun āi ∈ R/Ai n P und ai ∈ R ein Urbild von āi unter φi . Wir setzen a := ai ei und erhalten i=1 φi (a) = φi (ai ei ) = φi (ai ) = āi . Also ist φ surjektiv, und der Satz ist bewiesen. Anmerkung 7.2. Falls R ein Euklidischer Ring ist, so ist jedes Ideal A R Hauptideal, d.h. A = (a) mit a ∈ R, und wird erzeugt von einem größten gemeinsamen Teiler eines Erzeugendensystems. Zusatz 7.3. Es seien R ein Euklidischer Ring und ai ∈ R für i = 1, . . . , n paarweise n Q teilerfremde Ringelemente. Dann haben die mit a := ai ∈ R gebildeten Ringelemente bi := ui ∈ R mit a ai n P i=1 i=1 die Eigenschaft 1 ∈ ggT{b1 , . . . , bn }. Daher existieren Ringelemente ui bi = 1. Bezeichnen ei := ui bi und A := (a) R das von a erzeugte Hauptideal, so gelten: 7.1 Der Hauptsatz über simultane Kongruenzen 67 (a) Die ei sind in R/A paarweise orthogonale Idempotente, d.h. es gelten n P ēi = 1 i=1 und ēi ēj = δij ēi für alle i, j ∈ {1, . . . , n}. (b) Die Abbildung n Q φ−1 : −→ R/(ai ) i=1 (r̄1 , . . . , r̄n ) 7−→ R/(a) n P ri ei mod A i=1 mit ri ∈ r̄i ist der zu φ inverse Ringisomorphismus. Beweis. Die erste Gleichung gilt trivialerweise nach Definition der ei . Für i 6= j gilt n Y a a ēi ēj = ui bi uj bj = ui uj = ui uj a ai = 0̄ ai aj k=1, mod A. k∈{i,j} / Außerdem gilt ēi = ēi 1̄ = n P ēi ēj = ēi ēi , woraus sich die zweite Gleichung ergibt. j=1 Wir haben also gezeigt, dass die ēi paarweise orthogonale Idempotente sind. n P Um Aussage (b) zu zeigen, bilden wir einfach das Bild von ri ei unter φ. Dies liefert vermöge φ( n P i=1 ri ei ) = (φi (ri ei ))ni=1 = (r̄i )ni=1 die Behauptung. i=1 Diese Resultate wollen wir an zwei Beispielen veranschaulichen. Beispiel 7.4. (Simultane Kongruenzen) 1. Es seien R = Z und m = n Q qi mit paarweise teilerfremden qi ∈ Z. Dann ist i=1 n Y φ : Z/mZ −→ (Z/qi Z) i=1 ein Isomorphismus und φ−1 ist durch den Chinesischen Restsatz gegeben, also durch Zusatz 7.3 für R = Z. 2. Es seien K ein Körper und R = K[T ] der Polynomring über K. Ferner sei n Q f (T ) = (T − ai ) mit paarweise verschiedenen ai ∈ K. Dann ist i=1 φ : K[T ]/f (T ) −→ n Q i=1 g(T ) 7−→ K[T ]/(T − ai ) ∼ = (g(ai ))ni=1 n Q i=1 K 68 Die modulare Methode der Einsetzungshomomorphismus und φ−1 erhält man durch Interpolation mit n Q T −aj Lagrange-Polynomen, d.h. durch Zusatz 7.3 mit ei = . ai −aj j=1, j6=i Der Hauptsatz über simultane Kongruenzen stellt die Grundlage für die modulare Methode dar. Diese verläuft in drei Schritten. Im ersten Schritt wird eine Aufgabe bzw. ein Problem von einem Ring R auf verschiedene Restklassenringe übertragen. Dann wird diese Aufgabe in all diesen Restklassenringen gelöst. Im dritten und letzten Schritt werden die Lösungen durch Interpolation bzw. mit dem Chinesischen Restsatz auf den ursprünglichen Ring zurücktransformiert (vgl. Diskrete Fouriertransformation). Wir wollen uns nun klarmachen, welche Kosten durch diese Transformationen entstehen. 7.2 Polynomwertberechnung und Interpolation Satz 7.5. Es sei K ein Körper mit hinreichend vielen Einheitswurzeln. Dann gelten: (a) Für die Berechnung von n Polynomwerten eines Polynoms vom Grad höchstens n − 1 genügen O(n · ld(n)2 ) Ringoperationen. (b) Für die Berechnung eines Polynoms vom Grad höchstens n − 1 aus n Polynomwerten genügen ebenfalls O(n · ld(n)2 ) Ringoperationen. Beweis. Wir nehmen zunächst ohne Einschränkung an, dass eine natürliche Zahl k ∈ N mit n = 2k existiert. Weiterhin seien Stützstellen a1 , . . . , an sowie das Polynom g(T ) ∈ K[T ] gegeben. Wir wollen nun für alle Indizes i = 1, . . . , n die Werte g(ai ) berechnen. Dazu wählen wir die folgende Basis in Rn = K[T ]n : 1, (T − a1 ), (T − a2 )(T − a3 ), . . .. Dann stellen wir folgendes Rechenschema mit fi := T − ai auf: Zeile 0 Zeile 1 f1 f1 f2 f2 ··· fn−1 ··· ··· ··· n usw. 2 Q n Q fi i= n +1 2 i=1 n Q i=1 fi fn fn−1 fn fi 7.2 Polynomwertberechnung und Interpolation 69 Für die Berechnung der i-ten Zeilen müssen 2k−i Multiplikationen von Polynomen vom Grad 2i−1 durchgeführt werden. Dafür benötigt man nach Satz 2.13 höchstens 2k−i O(2i · ld(2i )) ⊆ O(n · ld(n)) Ringoperationen. Daher kostet die Berechnung aller k Zeilen höchstens kO(n · ld(n)) = O(n · ld(n)2 ) Ringoperationen. Für ein Polynom g ∈ Rn = K[T ]n bestimmen wir die Werte g(ai ) durch Division mit Rest über die k Zeilen. Wir müssen also für die i-te Zeile 2k−i Divisionen mit Rest von Polynomen vom Grad 2i und 2i+1 durchführen. Deren Kosten belaufen sich nach Satz 2.16 auf 2k−i O(2i · ld(2i )) ⊆ O(2k · ld(2k )) = O(n · ld(n)) Ringoperationen. Daher benötigen wir für die Berechnung über alle k Zeilen und damit auch insgesamt O(n · ld(n)2 ) Ringoperationen. Daraus folgt Aussage (a). Wir wollen nun den umgekehrten Weg gehen und aus den Polynomwerten g(ai ) = bi für i = 1, . . . , n das Polynom g berechnen. Wegen g ∈ Rn gilt g= n X i=1 n n n X Y bi Y T − aj =: (T − aj ) . bi ai − aj d j=1, i=1 i j=1, j6=i j6=i {z } | =: ui Betrachten wir nun das Polynom f (T ) = n Q n P i=1 n Q (T − ai ) und dessen Ableitung f 0 (T ) = i=1 0 (T −aj ), so stellen wir fest, dass f (ai ) = j=1, j6=i n Q (ai −aj ) = di ist. Also kann jedes j=1, j6=i di durch Polynomwertberechnung wie in Teil (a) in einer Laufzeit von O(n · ld(n)2 ) Ringoperationen berechnet werden. Nun spalten wir das Polynom f auf in f (T ) = n n 2 Q Q (T − ai ) (T − ai ) =: f1 · f2 und erhalten damit i=1 i= n +1 2 n n n 2 X X X bi ui bi ui bi ui (T ) = f2 = f2 g1 + f1 g2 . g(T ) = +f1 d d f di f 1 n i=1 i 2 i=1 i i= 2 +1 | {z } | {z } =: g1 =: g1 Wir können also g aus g1 und g2 durch 2 Multiplikationen und eine Addition von Polynomen von halbem Grad berechnen. Die Kosten Θ(n) in Abhängigkeit von deg(g) = n für die Berechnung von g belaufen sich damit auf n Θ(n) = 2Θ( ) + 2 · γ · n · ld(n) 2 n n n = 4Θ( ) + 2(2 · γ · · ld( )) + 2 · γ · n · ld(n) 4 2 2 k = ... = 2 Θ(1) + 2 · k · γ · n · ld(n) = O(n · ld(n)2 ) Bitoperationen, wobei wir die Kosten für die Additionen wie schon früher durch die Konstante γ abgeschätzt haben. 70 Die modulare Methode 7.3 Modulares Rechnen mit ganzen Zahlen Satz 7.6. Es seien qi ∈ Z für i = 1, . . . , n paarweise teilerfremde ganze Zahlen mit n Q qi = m ≤ 2l . Dann gelten: i=1 (a) Für die Berechnung der Reste ai mod qi genügen O(l · ld(l)2 · ld(ld(l))) Bitoperationen. (b) Für die Berechnung von a mod m aus ai mod qi für i = 1, . . . , n genügen O(l2 · ld(l)2 · ld(ld(l))) Bitoperationen. Beweis. Wir verwenden die Darstellung Z/mZ 3 a = n X i=0 di i Y qi = d0 + d1 q 1 + . . . + dn q1 · · · qn j=1 mit di ∈ Z/qi Z repräsentiert durch den kleinsten nichtnegativen Rest. Dann können wir das Produkt anhand des folgenden Baumdiagramms berechnen: Zeile 0 q1 q1 q2 Zeile 1 q2 ··· qn−1 ··· ··· ··· n 2 Q usw. n Q qi qn qn−1 qn qi i= n +1 2 i=1 n Q qi . i=1 Dabei kostet die Berechnung der i-ten Zeile 2k−i Multiplikationen mit Zahlen der Bitlänge li := dld(qi )e und der Gesamtlänge höchstens l. Nach Satz 3.8 von SchönhageStrassen beträgt der Aufwand für die i-te Zeile also n X O( li · ld(li ) · ld(ld(li ))) ⊆ O(l · ld(l) · ld(ld(l))) i=1 Bitoperationen und insgesamt für alle k Zeilen k · O(l · ld(l) · ld(ld(l))) ⊆ O(l · ld(l)2 · ld(ld(l))) 7.3 Modulares Rechnen mit ganzen Zahlen 71 Bitoperationen. Weiterhin kostet uns die Berechnung von a mod qi in der i-ten Zeile 2k−i Divisionen mit Rest mit Zahlen der Gesamtlänge höchstens l. Dies ergibt mit Satz 3.9 eine Komplexität von O(l · ld(l) · ld(ld(l))) Bitoperationen. Also belaufen sich die Gesamtkosten auf höchstens O(l · ld(l)2 · ld(ld(l))) Bitoperationen, womit Aussage (a) bewiesen ist. (b) Wir berechnen mit dem Euklidischen Algorithmus für 1 ≤ i < j ≤ n die Koeffizienten ri , sj in 1 = ri qj + sj qi =: eij + eji . Dann berechnen wir die Produkte n Q P ei := eij und damit a := ai ei . Nun wollen wir zeigen, dass die ei orthogonale i=1 i6=j Idempotente sind (vgl. Zusatz 7.3). Zunächst gilt ei ·ej ≡ 0 mod m für i 6= j. Ferner betrachten wir die Restklassenhomomorphismen φi : Z/mZ −→ Z/qi Z . x mod m 7−→ x mod qi Für diese gilt φi (a) = n X φi (aj ej ) = φi (ai ei ) = φi (ai j=1 eki ) k6=i = φi (ai Y Y φi (1) (eki + eik )) = φi (ai ) k6=i k6=i = āi Y mod qi . Es bleibt noch die Aufwandsanalyse. Die Berechnung von eij mit Euklidischem Algorithmus kostet O(li · lj ) Bitoperationen nach Satz 4.8. Damit benötigt man für die Berechnung aller eij insgesamt höchstens X n X O(li · lj ) ⊆ O( li · l) ⊆ O(l2 ) i<j i=1 Bitoperationen. Mit dem schnellen Euklidischen Algorithmus reduziert sich dies auf O(l ·ld(l)2 ·ld(ld(l))) Bitoperationen nach Satz 4.9. Der Aufwand für jedes ei beträgt nach Teil (a) O(l · ld(l)2 · ld(ld(l))) Bitoperationen, also für n = O(l) Idempotente ingesamt O(l2 · ld(l)2 · ld(ld(l))) Bitoperationen. Letztendlich kostet die Berechnung von a = n P ai ei mit n Multipli- i=1 kationen und n Additionen n X O(li · l) ⊆ O(l2 ) i=1 Bitoperationen. Dies ergibt eine Gesamtkomplexität von O(l2 · ld(l)2 · ld(ld(l))) Bitoperationen. 72 Die modulare Methode Kapitel 8 Der modulare Euklidische Algorithmus 8.1 Geeignete Primzahlen Wir wollen die modulare Methode, die wir in Kapitel 7 kennengelernt haben, auf den Euklidischen Algorithmus anwenden. Dafür müssen wir zunächst untersuchen, welche Restklassenringe dafür geeignet sind. Dazu ein Beispiel: Beispiel 8.1. Es seien p = 2 und die Polynome f = 2T + 1, g = 6T + 3 ∈ Z[T ] gegeben. Offensichtlich gilt ggT{f, g} = 2T + 1. Betrachten wir aber die modularen Polynome, also f¯ := f mod 2, ḡ := g mod 2 ∈ F2 [T ], so gelten f¯ = ḡ = 1 = ggT{f¯, ḡ}. Betrachten wir die Polynome f = T + 1, g = T − 1 ∈ Z[T ], so gilt ggT{f, g} = 1, aber für deren Restklassen in F2 [T ] gilt f¯ = ḡ = T + 1 = ggT{f¯, ḡ}. Dieses Beispiel zeigt, dass in ungünstigen Fällen die Verlagerung des Problems in Restklassenringe zu falschen Ergebnissen führen kann. Ob eine Primzahl für die Berechnung des größten gemeinsamen Teilers zweier Polynome geeignet ist, hängt im Wesentlichen von den Polynomen ab. Definition 8.2. (Geeignete Primzahl) Es seien f, g ∈ Z[T ] zwei Polynome mit ganzzahligen Koeffizienten. Eine Primzahl p ∈ Z heißt geeignet für (f, g), wenn die beiden folgenden Bedingungen erfüllt sind: (a) p 6 | l(f ) und p 6 | l(g) (b) deg(ggT{f¯, ḡ}) = deg(ggT{f, g}). 74 Der modulare Euklidische Algorithmus Wir haben definiert, was wir unter geeigneten Primzahlen verstehen wollen, ohne zu wissen, ob diese den geforderten Zweck erfüllen. Dies beweisen wir in der folgenden Bemerkung. Bemerkung 8.3. Es seien f, g ∈ Z[T ] zwei Polynome mit ganzzahligen Koeffizienten und p ∈ Z eine geeignete Primzahl für (f, g). Dann gilt ggT{f, g} = ggT{f¯, ḡ}. Beweis. Nach Voraussetzung ist p eine geeignete Primzahl für (f, g). Aus der ersten Eigenschaft geeigneter Primzahlen können wir schließen, dass p sowohl l(f ) als auch l(g) nicht teilt. Also gilt Sylk (f, g) = Sylk (f¯, ḡ). Außerdem können wir den auf höchsten Koeffizienten l(fl ) = 1 normierten größten gemeinsamen Teiler d von f und g in Z[T ] darstellen als d = fl := ggT{f, g} = rl f + sl g mit Bézoutkoeffizienten rl , sl und λk (rl , sl ) = 1. Genauso lässt sich auch der normierte größte gemeinsame Teiler der modularen Polynome f¯, ḡ in Fp [T ] darstellen: dp = f := ggT{f¯, ḡ} = r f¯ + s ḡ. l̃ l̃ l̃ Aus der zweiten Eigenschaft geeigneter Primzahlen schließen wir deg(dp ) = deg(fl̃ ) = deg(fl ) = deg(d) = nl − k. Daher ist die Regularität von Sylk (f¯, ḡ) gleichbedeutend mit Resk (f¯, ḡ) 6= 0, bzw. p 6 | Resk (f¯, ḡ). Somit sind rl̃ = r̄l und sl̃ = s̄l die eindeutigen Lösungen, und die Behauptung folgt aus fl̃ = f¯l . Bemerkung 8.4. Es seien f, g ∈ Z[T ] zwei Polynome vom Grad höchstens m mit ganzzahligen Koeffizienten, deren Normen kf k2 , kgk2 durch M beschränkt sind. Weiter bezeichne S(f,g) := {q ∈ Z|q ungeeignete Primzahl für (f, g)} die Menge der ungeeigneten Primzahlen. Dann gilt Y q ≤ M 2m+2 . q∈S(f,g) Beweis. Für jede Zahl p aus der Menge S(f,g) gilt: p| l(f ) oder p| l(g) oder deg(ggT{f, g}) 6= deg(ggT{f¯, ḡ}). In letzterem Fall teilt p die Subresultante Resk (f, g). Damit gilt p| l(f ) · l(g) · Resk (f, g), woraus wegen |Resk (f, g)| ≤ M 2m und max{|l(f )| , |l(g)|} ≤ M die gewünschte Abschätzung folgt. 8.2 Koeffizientenschranken für Teilerpolynome 8.2 75 Koeffizientenschranken für Teilerpolynome Bemerkung 8.5. Es sei f (T ) = m P ai T i ∈ C[T ] ein Polynom mit komplexen Ko- i=0 effizienten. Ferner seien x ∈ C eine komplexe Zahl und x̄ die zugehörige konjugiert komplexe Zahl. Dann gilt k(T − x)f (T )k2 = k(x̄T − 1)f (T )k2 . Beweis. Wir können das Polynom (T − x)f (T ) folgendermassen darstellen: (T − x)f (T ) = m+1 X (ai−1 − xai )T i mit a−1 = am+1 = 0. i=0 Dann berechnen wir das Quadrat der 2-Norm dieses Polynoms: k(T − x)f (T )k22 = = m+1 X (ai−1 − xai )(āi−1 − x̄āi ) i=0 m+1 X (|ai−1 |2 + |x|2 |ai |2 − ai−1 x̄āi − āi−1 xai ) i=0 = m X 2 2 |ai | (1 + |x| ) − i=0 m+1 X (ai−1 x̄āi + āi−1 xai ) i=0 = k(x̄T − 1)f (T )k22 . Der letzte Schritt ergibt sich wegen der Symmetrie bezüglich ai und ai−1 . Satz 8.6. (Landau) Es sei ein Polynom mit komplexen Koeffizienten in der Produktdarstellung f (T ) = n Q a · (T − xi ) ∈ C[T ] gegeben. Dann gilt i=1 M (f ) := |a| n Y max{|xi | , 1} ≤ kf k2 . i=1 Beweis. Wir können ohne Einschränkung davon ausgehen, dass die Nullstellen xi von f dem Betrage nach geordnet sind, d.h. |x1 | ≥ |x2 | ≥ . . . ≥ |xk | ≥ 1 > |xk+1 | ≥ . . . ≥ |xn | . 76 Der modulare Euklidische Algorithmus Dann berechnen wir die 2-Norm von f und wenden dabei wiederholt Bemerkung 8.5 an. kf (T )k2 n n Y Y = ka (T − xi )k2 = ka(x̄1 T − 1) (T − xi )k2 = . . . = ka i=1 k Y i=2 n Y (x̄i T − 1) i=1 (T − xi ) k2 . i=k+1 {z | } =: g Der höchste Koeffizient von g hat die Gestalt l(g) = a · k Q x̄i . Damit gilt i=1 |l(g)| = M (f ) ≤ kf k2 und der Satz ist bewiesen. Korollar 8.7. Es seien f ∈ C[T ] ein Polynom mit komplexen Koeffizienten und x ∈ C eine Nullstelle von f . Dann gilt |x| ≤ 1 kf k2 . |l(f )| Satz 8.8. (Mignotte) m n P P Es seien f = ai T i , g = bj T j ∈ C[T ] zwei Polynome mit komplexen Koeffizieni=0 j=0 ten und g ein Teiler von f . Dann gelten: (a) Für jeden Index j = 1, . . . , n ist der Betrag der Koeffizienten bj von g beschränkt durch l(g) n · kf k2 . |bj | ≤ j l(f ) q l(g) l(g) n 2n (b) kgk2 ≤ l(f · kf k ≤ l(f ) · 2 kf k2 . 2 ) n Beweis. Für den Beweis von Aussage (a) benötigen wir Satz 8.6. Daher schreiben n Q wir das Polynom g in der Darstellung g(T ) = b · (T − yi ) mit den Nullstellen yi ∈ C. Dann gilt für jeden Koeffizienten von g i=1 n |bj | ≤ |b| M (g) j 1≤i1 <...<ij ≤n n l(g) n l(g) M (f ) ≤ kf k2 . ≤ j l(f ) j l(f ) X y i1 · · · y i ≤ j 8.3 Der modulare ggT-Algorithmus 77 (b) Mit Hilfe von Aussage (a) und der Identität n P j=1 kgk2 2 n 2 j 2n n = ergibt sich 2 n 2 X l(g) 2 n 2n l(g) 2 = kf k2 kf k22 . = |bj | ≤ j n l(f ) l(f ) j=1 j=1 n X 2 s Das ergibt die erste Ungleichung. Aus n P j=1 n 2 j ≤ n P j=1 n j = 2n folgt dann auch die zweite Ungleichung s l(g) 2n l(g) n · kgk2 ≤ kf k2 ≤ · 2 kf k2 . n l(f ) l(f ) Korollar 8.9. Es seien f, g ∈ Z[T ] zwei Polynome mit ganzzahligen Koeffizienten und mit deg(f ) ≥ deg(g) = n, sowie d ∈ ggT{f, g} ∈ Z[T ]. Dann gilt s 2n min{kf k2 , kgk2 }. kdk2 ≤ n 8.3 Der modulare ggT-Algorithmus Wir haben jetzt alle nötigen theoretischen Resultate zusammengetragen, um den modularen ggT-Algorithmus vorzustellen und seine Laufzeit zu analysieren. Es seien m n P P also zwei Polynome f = ai T i , g = bj T j ∈ Z[T ] mit ganzzahligen Koeffizienten i=0 j=0 gegeben. Es gelte M := max{kf k2 , kgk2 } ≤ 2l . Dann folgt mit Bemerkung 8.4 Y q ≤ M 2m+2 . q∈S(f,g) Wir gehen ohne Einschränkung davon aus, dass f und g primitive Polynome sind. Dann ist auch d ∈ ggT{f, g} primitiv mit kdk∞ ≤ 2m M nach Korollar 8.9. Damit ist dessen Länge ld(kdk∞ ) ≤ m + l ∈ O(m + l). Es sei d˜ das Z-Vielfache von d mit ˜ = ggT{l(f ), l(g)} =: e. Ferner setzen wir l(d) B := 2 · 2m · M · M 2m+2 = 2m+1 · M 2m+3 mit der Länge ld(B) = m + 1 + (2m + 3)l ∈ O(m · l). 78 Der modulare Euklidische Algorithmus Algorithmus 8.10. (modularer ggT-Algorithmus) 1. Berechne eine Primzahltabelle L mit Primzahlen p und Q p ≥ B. Dies ergibt p∈L #L ∈ O(m · l). 2. Teste für jede Primzahl p ∈ L ob p| l(f ) oder p| l(g). Wenn nein, füge p zu einer Liste L+ fast geeigneter Primzahlen hinzu. 3. Berechne für jede Primzahl p ∈ L+ die Restklassen fp := f mod p, gp := g mod p ∈ Fp [T ]. 4. Berechne für jede Primzahl p ∈ L+ den größten gemeinsamen Teiler der Restklassen dp := ggT{fp , gp } mit l(dp ) =: lp = e mod p. 5. Bestimme t := min{deg(dp )| p ∈ L+ )} und packe alle p ∈ L+ mit deg(dp ) = t in eine Liste L∗ geeigneter Primzahlen. Dabei ist #L∗ ∈ O(m + l) wegen kdk∞ ≤ m + l. 6. Rekonstruiere d˜ aus dp mit p ∈ L∗ . ˜ Damit ist 7. Berechne den Inhalt c(d). same Teiler von f und g. 1 ˜ c(d) · d˜ =: d der normierte größte gemein- Satz 8.11. (Aufwandsanalyse für den modularen Euklidischen Algorithmus) Es seien f, g ∈ Z[T ] zwei Polynome mit deg(f ), deg(g) ≤ m und max{kf k2 , kgk2 } ≤ M ≤ 2l . Dann gelten: (a) Für den modularen Euklidischen Algorithmus genügen O(m2 · l · (l + m) · ld(m · l)2 · ld(ld(l · m))) Bitoperationen. (b) Bezüglich der Länge der Eingabedaten L := m · l∞ mit kf k∞ , kgk∞ ≤ 2l∞ und m ∈ O(l) genügen O(L2 · ld(L)2 · ld(ld(L))) Bitoperationen. Beweis. Zu Beginn wollen wir nochmals an die Bezeichnung µ(l) = l · ld(l) · ld(ld(l)) für die Anzahl an Bitoperationen für Multiplikation von Zahlen der Länge l erinnern. Da wir bei Algorithmus 8.10 davon ausgegangen sind, dass die eingegebenen Polynome primitiv sind, müssen wir zunächst den Aufwand abschätzen, um die Polynome primitiv zu normieren. Dazu ist der Inhalt der beiden Polynome zu berechnen. Hierfür genügen nach Satz 4.8 von Schönhage 2m · O(l · ld(l)2 · ld(ld(l))) = O(m · l · ld(l)2 · ld(ld(l))) Bitoperationen. Nun gehen wir den Algorithmus 8.10 durch und analysieren den Aufwand der einzelnen Schritte: 8.3 Der modulare ggT-Algorithmus 79 1. Die Berechnung einer Primzahltabelle L aus einer Computerliste oder mit Sieb des Eratosthenes (vgl.Kapitel 11) kostet O(l · m · ld(l · m) · ld(l · m · ld(l · m))) = O(l · m · ld(l · m)2 ) Bitoperationen. 2. Die Überprüfung der Teilbarkeit von l(f ), l(g) durch p benötigt O(l · m) Divisionen mit Rest zu µ(l) Bitoperationen. Dies ergibt insgesamt O(m · l · µ(l)) Bitoperationen. 3. Die Berechnung der modularen Polynome fp , gp für jedes p mittels Division mit 2m · O(µ(l)) = O(l · m2 · µ(l)) Bitoperationen. Rest kostet O(l · m) · |{z} | {z } | {z } #L+ #Koeffizienten Div.mitRest 4. Die Berechnung von dp für jedes p kostet O(m · l) · O(m2 ) Ringoperationen nach Satz 4.8 zu je µ(ld(p)) Bitoperationen. Dies ergibt insgesamt X O(m2 ) · ld(p) ld(ld(p)) · ld(ld(ld(p))) p∈L+ = O(m2 X p∈L+ · ld(p) · ld( X ld(p)) · ld(ld( p∈L+ X ld(p)))) p∈L+ = O(m2 · m · l · ld(m · l) · ld(ld(m · l))) = O(m2 · µ(m · l)) Bitoperationen. 5. Die Bestimmung von t und der Liste L∗ der geeigneten Primzahlen benötigt O(m · l) Bitoperationen. 6. Für die Rekonstruktion von d˜ aus dp mit dem Chinesischen Restsatz genügen O(m)O((m + l)2 · ld(m + l)2 · ld(ld(m + l))) = O(m · (m + l)2 · ld(m + l)2 · ld(ld(m + l))) Bitoperationen. 7. Die Berechnung von d aus d˜ über die Bestimmung des Inhalts von d˜ benötigt für jeden Koeffizienten O((m + l) · ld(m + l)2 · ld(ld(m + l))), also insgesamt O(m · (m + l) · ld(m + l)2 · ld(ld(m + l))) Bitoperationen. (b) Diese Aussage erhalten wir als Folgerung aus Teil (a) durch l − 12 ld(m) ≤ l∞ ≤ l, denn es gilt ld(kf k2 ) = 21 ld(m) ≤ ld(kf k∞ ) ≤ ld(kf k2 ), was aus √1m kf k2 ≤ kf k∞ ≤ kf k2 und m ∈ O(l) folgt. 80 Der modulare Euklidische Algorithmus Kapitel 9 Rechnen mit algebraischen Zahlen 9.1 Zahlkörper und endliche Körper Vorbemerkung 9.1. Es seien F ein Körper und K/F eine endliche Körpererweiterung vom Grad m. Dann gelten K ∼ = F [T ]/(f (T )) mit einem irreduziblen Polynom f vom Grad m ∼ = F (t) mit t := T mod f (T ) ∼ = F + F t + . . . + F tm−1 als F-Vektorraum mit dimF (K) = [K:F ] = m = deg(f ). Beispiel 9.2. 1. Es sei F = Q, dann heißt eine endliche Körpererweiterung K/F Zahlkörper. m−1 P Für jedes Element x ∈ K = F (t) gilt x = xi ti mit xi ∈ Q. Dies kann i=0 m−1 P man umschreiben zu x = a1 ai ti mit a, ai ∈ Z. Wir definieren l(x) := i=0 s m−1 P (ld(|a|)) |ai |2 als die Länge von x oder genauer gesagt als die Länge i=0 der Darstellung 1 a m−1 P ai ti von x. i=0 2. Ist F = Fp für eine Primzahl p und K/F eine endliche Körpererweiterung von m−1 P Grad m, so hat jedes Element x ∈ K eine Darstellung x = ai ti mit ai ∈ Fp . i=0 Satz 9.3. Es seien K := Q[T ]/(f (T )) ein Zahlkörper vom Grad m und x = m−1 m−1 P P i 1 1 i a t , y = bi t Elemente aus K mit a, b, ai , bi ∈ Z und t := T mod f (T ). i a b i=0 i=0 82 Rechnen mit algebraischen Zahlen Ferner gelte l(x), l(y) ≤ l für die Längen der Darstellungen von x und y. Dann gelten: (a) Für die Addition und Subtraktion in K von Elementen der Länge höchstens l genügen O(m · µ(l)) Bitoperationen. (b) Für die Multiplikation in K von Elementen der Länge höchstens l genügen O(m2 · µ(l)) Bitoperationen. (c) Für die Invertierung von x ∈ K mit dem Euklidischen Algorithmus x(t)y(t) + f (t)v(t) = 1 genügen O(m2 · ld(m) · µ(m · l)) Bitoperationen. Beweis. (a) Wir schauen uns direkt die Addition und Subtraktion zweier solcher Elemente an und zählen die Operationen. Der Ausdruck x±y = m−1 1 X (ai b ± bi a)ti a · b i=0 ist mit O(m) Multiplikationen (und Additionen) zu je µ(l) Bitoperationen berechenbar. (b) Das Produkt zweier Elemente aus K lässt sich folgendermassen berechnen: 2m−2 i 1 X X ( ak · bi−k )ti . x·y = a · b i=0 k=0 Hierzu genügen m2 Multiplikationen zu je µ(l) Bitoperationen. Für die Division mit Rest ebenso. Dies ergibt eine Komplexität von O(m2 · µ(l)) Bitoperationen. (c) Für die Durchführung des Euklidischen Algorithmus genügen nach Satz 6.18 O(m2 · ld(m) · µ(m · l)) Bitoperationen. Zusatz 9.4. Es sei K := Fp [T ]/f (T ) mit einer Primzahl p ein endlicher Körper. m−1 m−1 P P x= ai ti , y = bj tj seien Elemente aus K mit t := T mod f (T ). Dann gelten: i=0 j=0 (a) Für die Addition und Subtraktion in K genügen O(m · µ(ld(p))) Bitoperationen. (b) Für die Multiplikation in K genügen O(m2 · µ(ld(p))) Bitoperationen. (c) Für die Inversenbildung und Division in K genügen O(m2 · µ(ld(p))) Bitoperationen. Beweis. Die ersten beiden Aussagen werden analog zu Satz 9.3 bewiesen, wobei l durch ld(p) ersetzt wird. Für den Euklidischen Algorithmus in Aussage (c) genügen m2 Ringoperationen zu je µ(ld(p)) Bitoperationen. Wir wollen nun der Frage nachgehen, wie wir mit algebraischen Zahlen rechnen können, ohne diese in einen festen Zahlkörper einzubetten. 9.2 Rechnen im Körper aller algebraischen Zahlen 9.2 83 Rechnen im Körper aller algebraischen Zahlen Satz 9.5. Es seien R ein Integritätsbereich und f = a m Q (T −ai ), g = b i=1 n Q (T −bj ) ∈ j=1 R[T ] zwei Polynome über R. Dann gelten: (a) ResX (f (T − X), g(X)) hat die Nullstellen ai + bj . (b) ResX (f (T + X), g(X)) hat die Nullstellen ai − bj . (c) ResX (X m f (T · X −1 ), g(X)) hat die Nullstellen ai · bj . (d) ResX (f (T · X), g(X)) hat im Falle g(0) 6= 0 die Nullstellen ai . bj Beweis. (a) Wir berechnen direkt ResX (f (T − X), g(X)) = (−1) mn ·b m n Y f (T − bj ) j=1 = (−1)mn · an bm n Y m Y (T − bj − ai ). j=1 i=1 (b) Dies zeigen wir durch eine analoge Berechnung wie in Teil (a). (c) Auch diese Aussage ist schnell durch direktes Nachrechnen bewiesen: m ResX (X f (T · X −1 mn ), g(X)) = (−1) mn = (−1) n Y T · b ( f ( ))bj m bj j=1 m n Y m Y T ·a b (( − ai )bj ). bj j=1 i=1 n m (d) Auch hier berechnen wir direkt mn ResX (f (T · X), g(X)) = (−1) ·b m n Y f (bj T ) j=1 mn = (−1) mn = (−1) n Y m Y ·a b (bj T − ai ) n m j=1 i=1 n Y n Y m Y ai · a b ( bj ) (T − ). bj j=1 j=1 i=1 n m m 84 Rechnen mit algebraischen Zahlen Zusatz 9.6. Es seien R ein Integritätsbereich und f ∈ R[T ] ein Polynom über R. m−1 P i Ferner sei b = bi t ∈ R(t) := R[T ]/f (T ) ein Element des Restklassenrings, wobei i=0 t := T mod f (T ) mit f (t) = 0 und m := deg(f ) gelte. Dann ist b(t) eine Nullstelle von ResX (T − b(X), f (X)). Beweis. Dies lässt sich analog zu Satz 9.5 wie folgt direkt berechnen. Es gilt nämlich ResX (T − b(X), f (X)) = (−1) mn m Y l(f ) (T − b(ai )) n i=0 mit den Nullstellen ai von f . Wir haben in Satz 9.5 und Zusatz 9.6 gesehen, wie wir mit algebraischen Zahlen α als Nullstellen von Polynomen rechnen können. Eine solche Darstellung ist aber bei weitem nicht eindeutig. Zur Unterscheidung von α von den übrigen Nullstellen des Polynoms benötigen wir noch ein isolierendes Intervall. Dabei ist zu beachten, dass der Grad des Polynoms möglichst klein bleiben sollte (am besten geeignet ist das Minimalpolynom, vgl. Kapitel 10). Im nächsten Abschnitt wollen wir uns daher mit der Wurzeltrennung durch isolierende Intervalle befassen. 9.3 Wurzeltrennung Satz 9.7. (Davenport-Mahler) Es sei f (T ) ∈ C[T ] ein Polynom vom Grad m mit komplexen Koeffizienten. Wir können ohne Einschränkung davon ausgehen, dass von den Nullstellen a1 , . . . , am von f die ersten k + 1 der Größe nach geordnet sind, d.h. dass |a1 | ≥ |a2 | ≥ . . . ≥ |ak+1 | gilt. Dann folgt √ !k p k Y |D(f )| 3 . |ai − ai+1 | ≥ m m m 2 M (f )m−1 i=1 Beweis. Wir beweisen dies zunächst für den Fall, dass f ein normiertes Polynom m Q ist, d.h. dass f = (T − ai ) gilt. Dazu betrachten wir die Vandermonde-Matrix Vm i=1 zu den Nullstellen von f det(Vm ) = det( a1 0 .. . a1 m−1 ··· am 0 .. .. ). . . m−1 · · · am Durch elementare Spaltenumformungen verändert sich die Determinante nicht. Wir ziehen nun die zweite Spalte von der ersten ab, die dritte von der zweiten usw. bis 9.3 Wurzeltrennung 85 zur k + 1-ten Spalte und erhalten damit: 0 ··· 0 1 ··· 1 a − a · · · a − a a · · · a 1 2 k k+1 k+1 m det(Vm ) = det .. .. .. .. . . . . . . . . . . m−1 m−1 m−1 m−1 m−1 m−1 a1 − a2 · · · ak − ak+1 ak+1 · · · ak+1 = k Y (ai − ai+1 ) · i=1 det 0 1 a1 + a2 .. . ··· ··· ··· ... 0 1 ak + ak+1 .. . ak+1 ak+1 2 .. . −am−1 am−1 2 1 a1 −a2 ··· am−1 −am−1 k k+1 ak −ak+1 am−1 ··· k+1 1 ··· ··· ··· ... 1 am am 2 ··· m−1 ak+1 k Y =: (ai − ai+1 ) det(Wm ). i=1 Wir wollen nun die Normen der Spalten bi von Wm abschätzen. Für die ersten k Spalten gilt für die einzelnen Koeffizienten j−1 bi (j) ai j − ai+1 j X k = ai · ai+1 j−k−1 = ai − ai+1 k=0 und damit j−1 X (j) b ≤ |ai |k · |ai+1 |j−k−1 ≤ j · |ai |j−1 i k=0 ≤ j · max{1, |ai |}m−1 . Das ergibt für die gesamte Spalte bi kbi k2 2 ≤ m−1 X j 2 · max{1, |ai |}2(m−1) j=0 = ( (m − 1)3 (m − 1)2 m − 1 + + ) · max{1, |ai |}2(m−1) . 3 2 6 | {z } 3 ≤ m3 Für die restlichen Spalten, also Spalte k + 1 bis Spalte m gilt 2 kbi k2 ≤ m−1 X j=0 2j 2 ai ≤ m · max{1, |ai |}2(m−1) . 86 Rechnen mit algebraischen Zahlen Jetzt wenden wir die Ungleichung von Hadamard aus Satz 6.14 an und erhalten damit folgende Abschätzung für die Determinante von Wm : m Y √ m3 · max{1, |ai |}m−1 · m · max{1, |ai |}m−1 3 i=1 i=k+1 k m−1 m √ m Y m √ ≤ m · max{1, |ai |} 3 i=1 {z } | det(Wm ) ≤ k Y r =M(f) = m √ 3 k m · m 2 · M (f )m−1 . Damit erhalten wir mit k Y p |ai − ai+1 | · |det(Wm )| |det(Vm )| = D(f ) = i=1 die Behauptung. Es bleibt noch der Fall zu überprüfen, was für nicht normiertes f passiert. Dann gilt f = a · f˜ mit a ∈ C und einem normierten Polynom f˜. Wegen M (f ) = a · M (f˜) und D(f ) = a2m−2 · D(f˜) hebt sich am−1 auf beiden Seiten weg, und die Aussage ist auch für nicht normierte Polynome bewiesen. Korollar 9.8. Es sei f ∈ C[T ] ein Polynom wie in Satz 9.7. Dann gilt: |D(f )| ≤ mm · M (f )2m−2 ≤ mm · kf k2 2m−2 Beweis. Dies ist eine direkte Folgerung aus Satz 9.7 mit k = 0 unter zusätzlicher Verwendung des Satzes 8.6 von Landau. Definition 9.9. (minimaler Nullstellenabstand) Es sei f (T ) ∈ C[T ] ein separables Polynom. Dann heißt sep(f ) := min{|ai − aj | |ai 6= aj Nullstellen von f } minimaler Nullstellenabstand von f . Korollar 9.10. Es sei f ∈ C[T ] ein Polynom wie in Satz 9.7. Dann gilt p p √ |D(f )| 3 |D(f )| 3 sep(f ) ≥ ≥ m+2 . m m−1 m m 2 M (f ) m 2 kf k2 m−1 9.4 Sturmsche Ketten 87 Beweis. Auch dies ist eine direkte Folgerung aus Satz 9.7 mit k = 1. Anmerkung 9.11. Es seien α ∈ C eine Nullstelle von f ∈ C[T ] und β ∈ C eine Nullstelle von g ∈ C[T ]. Dann gilt |α − β| ≥ sep(f · g). Aufgabe 9.12. Die Komplexität des Rechnens mit algebraischen Zahlen ist polynomial in den Eingabedaten. Wir haben also gesehen, dass es durch die obigen Abschätzungen möglich ist, verschiedene Nullstellen eines Polynoms durch isolierende Intervalle zu unterscheiden. Damit ist eine wichtige Grundlage das Rechnen mit algebraischen Zahlen erfüllt. Andererseits haben wir oben schon festgehalten, dass es wünschenswert ist den Grad der Polynome, die eine algebraische Zahl als Nullstelle besitzen, möglichst klein zu halten. Daher werden wir uns im folgenden Kapitel mit der Berechnung von Minimalpolynomen beschäftigen. Zunächst folgt aber noch ein kurzer Exkurs über Sturmsche Ketten. 9.4 Sturmsche Ketten Die Sturmschen Ketten liefern ein Verfahren, um die Anzahl von Nullstellen eines Polynoms in einem Intervall zu bestimmen. Dies geht auf ein Theorem des französischen Mathematikers Jacques Charles François Sturm aus dem Jahr 1829 zurück. Definition 9.13. (Sturmsche Kette) Es seien f ∈ R[T ] ein Polynom und f 0 seine Ableitung. Dann heißt die Polynom0 restfolge (fi )m i=0 im Euklidischen Algorithmus mit f0 := f und f1 := −f und fi−1 = qi fi − fi+1 Sturmsche Kette von f , wobei fm der letzte von 0 verschiedene Rest ist. Bemerkung 9.14. Es seien f ∈ R[T ] ein Polynom, (fi )m i=0 die zugehörige Sturmsche Kette und fm ∈ R eine Konstante. Dann besitzt f nur einfache Nullstellen. Beweis. Wenn fm ∈ R eine Konstante ist, hat f keinen gemeinsamen Teiler mit seiner Ableitung f 0 und damit auch nur einfache Nullstellen. Satz 9.15. Es seien f ∈ R[T ] ein Polynom, (fi )m i=0 die zugehörige Sturmsche Kette und fm ∈ R eine Konstante. Des weiteren definieren wir die Abbildung w : R −→ {0, . . . , m − 1} , a 7−→ x wobei x := #{i ∈ {1, . . . , m − 1} | fi (a) 6= 0 und fi (a)fi+1 (a) ≤ 0}. Dann gelten: 88 Rechnen mit algebraischen Zahlen (a) Ist 1 ≤ i ≤ m − 1 und x ∈ R mit fi (x) = 0, so ist fi+1 (x)fi−1 (x) < 0. (b) Die Anzahl der rellen Nullstellen von f im Intervall [a, b) = {x ∈ R | a ≤ x < b} ist gegeben durch w(b) − w(a). Beweis. (a) Nach Voraussetzung gilt fi−1 = qi fi − fi+1 . Werten wir diese Gleichung an der Stelle x aus, so ergibt sich fi−1 (x) = qi (x) fi (x) −fi+1 (x), | {z } | {z = 0 } =0 also haben fi−1 (x) und fi+1 (x) verschiedene Vorzeichen, d.h. es ist fi−1 (x)fi+1 (x) < 0. (b) Die Zahl w(x) für x ∈ R beschreibt die Anzahl der Vorzeichenwechsel .Wir wollen nun zeigen, dass sich die Anzahl dieser Vorzeichenwechsel genau dann um 1 erhöht, wenn x eine Nullstelle y von f durchläuft. Sei also nun y eine Nullstelle von f . Dann gilt f (y − ε)f 0 (y − ε) < 0 für alle hinreichend kleinen ε > 0, d.h. für alle hinreichend dicht bei y liegenden x1 , x2 mit x1 ≤ y < x2 gilt w(x2 ) = w(x1 ) + 1. Nun müssen wir noch überprüfen, dass sich die Anzahl der Vorzeichenwechsel nicht erhöht, falls x eine Nullstelle z von fj für 1 ≤ j < m − 1 durchläuft. Nach Teil (a) haben für eine solche Nullstelle fj−1 (z) und fj+1 (z) verschiedene Vorzeichen, d.h. beim Durchlauf von z entstehen die folgenden beiden Möglichkeiten: x fj−1 z−ε + + z z+ε + fj ± 0 ∓ (±) fj+1 − − − oder x fj−1 z−ε − − z z+ε − fj fj+1 ± + . 0 + ∓ (±) + An den beiden Tabellen kann man ablesen, dass der Vorzeichenwechsel bei fi die Gesamtanzahl der Vorzeichenwechsel bei einem solchen Durchlauf nicht beeinflusst. Daher wird diese und damit der Wert von w nicht verändert, wenn eine Nullstelle y von fi durchlaufen wird. Beispiel 9.16. Es sei das Polynom T 5 + T + 1 =: f0 (T ) ∈ R[T ] gegeben. Wir wollen die Anzahl der reellen Nullstellen im Intervall [−1, 1) wissen. Dazu berechnen wir f1 (T ) := −f 0 = −5T 4 − 1 und wenden den Euklidischen Algorithmus an: 1 4 f0 = (− T )f1 + T + 1 5 |5 {z } =: f2 f1 25 125 2 625 3125 3381 = (− T 3 + T − T+ )f2 + (− ). 4 16 64 256 256 | {z } =: f3 9.4 Sturmsche Ketten 89 Da f3 ∈ R eine Konstante ist können wir Satz 9.15 anwenden. Dazu werten wir die Sturmsche Kette von f an den Stellen −1 und 1 aus. Dies liefert 1 f0 (−1) = −1, f1 (−1) = −6, f2 (−1) = , 5 9 f0 (1) = 3, f1 (1) = −6, f2 (1) = , 4 d.h. w(−1) = 1, w(1) = 2. Damit erhalten wir als Anzahl der reellen Nullstellen im Intervall [−1, 1) die Zahl w(1) − w(−1) = 1. 90 Rechnen mit algebraischen Zahlen Kapitel 10 Gitterbasisreduktion 10.1 Reduzierte Gitterbasen In diesem Kapitel ist es unser Ziel, das Minimalpolynom einer algebraischen Zahl zu ermitteln. Dafür benötigen wir einige theoretische Resultate über Gitterbasen. Diese wollen wir im Folgenden studieren und uns fragen, wie wir solche effizient konstruieren können. Danach werden wir uns mit einem Algorithmus zur Berechnung von Minimalpolynomen befassen. Wir beginnen mit einigen grundlegenden Definitionen. Definition 10.1. (Gitter, Gitterbasis, Gitterdeterminante) Es sei Rn der n-dimensionale reelle Vektorraum mit Standardbasis. Ferner seien bi ∈ Rn für i = 1, . . . , n ein System linear unabhängiger Vektoren. Dann heißt Λ := n X Zbi ⊆ Rn i=1 ein (vollständiges) Gitter in Rn . Wir sagen, die Menge {b1 , . . . , bn } bildet eine Gitterbasis von Λ. Außerdem heißt det(Λ) := |det(b1 , . . . , bn )| die Gitterdeterminante von Λ. Bemerkung 10.2. Es sei Λ ⊆ Rn ein Gitter mit Basen {b1 , . . . , bn }, {b̃1 , . . . , b̃n }. Dann gilt |det(b1 , . . . , bn )| = | det(b̃1 , . . . , b̃n )|, d.h. die Gitterdeterminante ist unabhängig von der Wahl der Gitterbasis. Beweis. Da die beiden Gitterbasen linear unabhängige Systeme bilden, sind beide Seiten von Null verschieden. Außerdem gilt: bj = n X i=1 ãij b̃i und b̃i = n X j=1 aji bj , 92 Gitterbasisreduktion da beide Systeme Λ erzeugen. Also sind A := (aij )ni,j=1 , Ã := (ãij )ni,j=1 ∈ GLn (Z) zueinander inverse Matrizen und es gilt A · Ã = (δij )ni,j=1 . Deshalb gilt für deren Determinanten det(A) ∈ {±1}, det(Ã) ∈ {±1}. Aus det(b1 , . . . , bn ) = det(Ã) · det(b̃1 , . . . , b̃n ) folgt dann die Behauptung. Beispiel 10.3. Es sei Λ ⊆ Rn ein Gitter mit Basis {b1 , . . . , bn }. Wenden wir das Schmidt’sche Orthogonalisierungsverfahren an e1 := b1 ei := bi − i−1 X ci,j ej mit ci,j := j=1 < bi , ej > < ej , ej > so erhalten wir eine Orthogonalbasis {e1 , . . . , en }. Diese nennen wir die zu {b1 , . . . , bn } assoziierte Orthogonalbasis. Definition 10.4. (schwach reduziert, reduziert) Es sei Λ ⊆ Rn ein Gitter mit Basis B := {b1 , . . . , bn } und assoziierter Orthogonalbasis E := {e1 , . . . , en }. B heißt schwach reduziert, wenn gilt |ci,j | ≤ 1 für 1 ≤ j < i ≤ n. 2 Eine schwach reduzierte Gitterbasis heißt reduziert, wenn zudem gilt kei + ci,i−1 ei−1 k22 ≥ 3 kei−1 k22 für i = 2, . . . , n. 4 Anmerkung 10.5. In der Definition 10.4 kann die Konstante reelle Zahl r mit 14 < r < 1 ersetzt werden. 3 4 durch eine beliebige Satz 10.6. Es seien Λ ⊆ Rn ein Gitter mit reduzierter Gitterbasis B := {b1 , . . . , bn } und assoziierter Orthogonalbasis E := {e1 , . . . , en }. Dann gelten: (a) Für alle Indizes 1 ≤ j < i ≤ n gilt kbj k2 ≤ 2 i−1 2 kei k2 . (b) det(Λ) ≤ n Y i=1 kbi k2 ≤ 2 n(n−1) 4 det(Λ). 10.1 Reduzierte Gitterbasen 93 (c) b1 ist ein kurzer Vektor, d.h. es gilt kb1 k2 ≤ 2 n−1 n 4 p det(Λ). Beweis. (a) Da B eine reduzierte Gitterbasis bildet, gilt nach Definition 10.4 die Abschätzung kei k22 + ci,i−1 2 kei−1 k22 ≥ 3 kei−1 k22 4 mit ci,i−1 2 ≤ 14 . Daraus erhalten wir 1 kei−1 k22 . 2 kei k22 ≥ Daher gilt für alle Indizes 1 ≤ j < i ≤ n: kej k22 ≤ 2i−j kei−1 k22 . Dies liefert folgende Abschätzung für die 2-Norm der Basisvektoren von B: kbi k22 ≤ k|ei k22 + i−1 X i−1 2 |ci,j | k|ei k22 ≤ k|ei k22 j=1 1 X i−j + 2 kei k22 4 j=1 1 (2i−1 − 1) = 1+ kei k22 ≤ 2i−1 kei k22 2 (2 − 1) Dies ergibt mit obiger Ungleichung für alle Indizes 1 ≤ j < i ≤ n: k|bj k2 2 ≤ 2j−1 kej k22 ≤ 2i−1 kei k22 . (b) Unter Verwendung der Ungleichung von Hadamard aus Satz 6.14 erhalten wir det(Λ) ≤ n Y kbi k2 ≤ i=1 n Y 2 i−1 2 kei k2 = 2 n(n−1) 4 i=1 n Y kei k2 . |i=1 {z } = det(Λ) (c) Aus Teil (a) bekommen wir für den ersten Basisvektor die Abschätzung k|b1 k2 ≤ 2 i−1 2 kei k2 . Das Produkt dieser Gleichungen für i = 1, . . . , n ergibt kb1 kn2 ≤2 n(n−1) 4 n Y i=1 und damit die Behauptung. kei k2 = 2 n(n−1) 4 det(Λ) 94 Gitterbasisreduktion Korollar 10.7. Es sei Λ ⊆ Rn ein Gitter mit reduzierter Gitterbasis B := {b1 , . . . , bn } und assoziierter Orthogonalbasis E := {e1 , . . . , en }. Dann gilt für jeden von 0 verschiedenen Vektor x ∈ Λ: kb1 k2 ≤ 2 n−1 2 kxk2 . Beweis. Wir können den Vektor x als Linearkombination sowohl bezüglich B als n n P P auch bezüglich E darstellen. Dies ergibt x = xi bi mit xi ∈ Z, bzw. x = y i ei i=1 i=1 mit yi ∈ R. Wählen wir i maximal mit xi 6= 0, so gilt xi = yi ∈ Z. Daraus können wir folgern, dass kxk22 ≥ |yi |2 kei k22 ≥ kei k22 . Daraus ergibt sich schließlich mittels kb1 k22 ≤ 2i−1 kei k22 ≤ 2n−1 kei k22 ≤ 2n−1 kxk22 die Behauptung. Anmerkung 10.8. Korollar 10.7 gilt auch für unvollständige Gitter. 10.2 Konstruktion einer reduzierten Gitterbasis Algorithmus 10.9. (von Lenstra, Lenstra und Lovász) Es sei Λ ⊆ Rn ein (vollständiges) Gitter mit Gitterbasis B := {b1 , . . . , bn }. 1. Berechne die zu B assoziierte Orthogonalbasis E := {e1 , . . . , en }. 2. Falls B nicht schwach reduziert ist existiert ein lexikografisch maximales IndexPaar (i, j) mit |ci,j | > 12 . Setze k̃ := bci,j + 12 c. Dann ist B̃ := {b̃1 , . . . , b̃i } mit b̃k = bk für k 6= i und b̃i := bi − k̃bj eine neue Gitterbasis. Für diese gilt |c̃i,j | ≤ 12 und |c̃k,l | = |c̃k,l | für (k, l) ≥ (i, j). Da E unverändert bleibt, können wir Schritt 2 solange wiederholen, bis B schwach reduziert ist. 3. Falls B nicht reduziert ist, existiert ein Index i mit kei + ci,i−1 ei−1 k22 < 3 kei−1 k22 . 4 Dann vertausche bi und bi−1 und gehe zu Schritt 1. 4. B = {b1 , . . . , bn } ist eine reduzierte Gitterbasis. 10.2 Konstruktion einer reduzierten Gitterbasis 95 Man sieht Algorithmus 10.9 leider nicht sofort an, ob er nach endlichen vielen Schritten abbricht. Der kritische Punkt liegt in Schritt 3. Satz 10.10. (Aufwandsanalyse des LLL-Algorithmus) Es seien Λ ⊆ Rn ein Gitter mit Basis B := {b1 , . . . , bn } und C := max{kbi k2 |i = 1, . . . , n}. Dann liefert der LLL-Agorithmus 10.9 eine reduzierte Gitterbasis in O(n7 · ld(C)3 ) Bitoperationen. Beweis. Wie oben bereits angedeutet, müssen wir zunächst zeigen, dass der LLLAlgorithmus terminiert. Dazu bezeichnen wir wieder mit E := {e1 , . . . , en } die zu B assoziierte Orthogonalbasis. Für jeden Basisvektor ei gilt dann kei k2 ≤ kbi k2 . i n−1 Q Q Weiter seien di := kej k2 und D := dj . Dann gilt det(Λ)2 = dn . In Schritt j=1 j=1 3 von Algorithmus 10.9 wird d˜i−1 ≤ 43 di−1 und dk = d˜k für alle Indizes k 6= i − 1. n−1 Q ˜ Daraus ergibt sich D̃ = dj ≤ 43 D ∈ N. Damit ist die Endlichkeit der Schrittanzahl j=0 bewiesen. Nun wollen wir die Laufzeit von Algorithmus 10.9 analysieren und gehen dafür sukzessive die Schritte durch: 1. Für die Berechnung der assoziierten Orthogonalbasis genügen O(n2 ) arithmetische Operationen. 2. Hier werden O(n2 ) Rekursionsschritte zu je O(n) arithmetischen Operationen, also insgesamt O(n3 ) arithmetische Operationen durchgeführt. 3. Bezeichnen wir die Anzahl der Rekursionsschritte mit r, so ergibt sich n−1 n−1 Y Y n(n−1) 4 r di ≤ C i = C 2 mit di ≤ C i . ( ) ≤D≤ 3 i=1 i=1 Daraus erhalten wir für r die Abschätzung 4 n(n − 1) r ld( ) ≤ ld(C) und damit r ∈ O(n2 ld(C)). 3 2 Außerdem ist die Komplexität einer arithmetischen Operation von Zahlen der Größe höchstens det(Λ) ≤ C n durch O(n2 · ld(C)2 ) Bitoperationen beschränkt. Daher genügen insgesamt O(n2 · ld(C) · |{z} n3 · n2 · ld(C)2 ) = O(n7 · ld(C)3 ) | {z } | {z } 3 1 und 2 Bitoperationen Bitoperationen. Anmerkung 10.11. (Lenstra) Bei geeigneter Verschränkung der Schritte 1 und 2 in Algorithmus 10.9 ist eine Reduktion auf O(n6 · ld(C)2 ) Bitoperationen möglich, bei Verwendung der DFTMultiplikation sogar auf O(n4 · ld(C) · µ(n · ld(C))) Bitoperationen. 96 10.3 Gitterbasisreduktion Konstruktion des Minimalpolynoms einer algebraischen Zahl Wir verfügen jetzt über fast alle notwendigen theoretischen Resultate, um das Minimalpolynom einer algebraischen Zahl zu berechnen. In diesem letzten Abschnitt des Kapitels werden wir noch den Begriff des Formats einer algebraischen Zahl einführen, bevor wir einen Algorithmus zur Berechnung von Minimalpolynomen angeben. Am Ende werden wir noch die Komplexität dieses Algorithmus analysieren. Definition 10.12. (Format) Es sei x ∈ C eine algebraische Zahl mit f (x) = 0 für ein Polynom f (T ) ∈ Z[T ]. Ferner sei das Minimalpolynom g(T ) ∈ Z[T ] von x in n P primitiv normierter Darstellung g(T ) = bi T i gegeben. Dann heißt die Zahl i=0 b(x) := n X max{dld(bi )e, 1} i=0 Format von x. Bemerkung 10.13. Es seien x ∈ C eine algebraische Zahl und f (T ) ∈ Z[T ] ein ganzzahliges Polynom mit f (x) = 0. Dann gelten: (a) Das Format von x lässt sich in einer polynomialen Anzahl von Bitoperationen berechnen. 3 (b) Eine Zahl y ∈ Q+iQ mit |x − y| ≤ 2−5b lässt sich in einer polynomialen Anzahl von Bitoperationen berechnen. Beweis. (a) Bezeichnen wir das primitiv normierte Minimalpolynom von x mit g(T ), so ist g ein Teiler von f , etwa vom Grad n. Nach Satz 8.8 von Mignotte erhalten wir kgk∞ ≤ kgk2 ≤ 2n kf k2 . Daher ist das Format b(x) in O(n ld(·2n · kf k2 )) = O(n2 · ld(kf k2 )) Bitoperationen berechenbar. (b) Das Newton-Verfahren aus Abschnitt 2.4 konvergiert quadratisch, d.h. für eine 3 Näherung der Güte 2−5b benötigt man höchstens O(5b3 ) = O(b3 ) Newtonschritte zu je O(µ(b3 )) Bitoperationen. Wir definieren die Matrix Dm := 1 Re(y) Re(y 2 ) 0 Im(y) Im(y 2 ) δ 0 ··· 0 δ 0 .. . 0 0 .. .. . . 0 0 ··· Re(y m ) Im(y m ) ··· 0 ··· .. . .. . 0 δ ··· 10.3 Konstruktion des Minimalpolynoms einer algebraischen Zahl 97 3 mit δ := 2−4b , wobei Re(z) den Realteil und Im(z) den Imaginärteil einer komplexen Zahl z ∈ C bezeichnet. Außerdem bezeichnen wir die i-te Spalte der Matrix Dm mit di und mit Λ das von den Spalten erzeugte unvollständige Gitter Λ := m X Zdi ≤ Rm+3 i=0 vom Rang m + 1. Ordnen wir jedem Gittervektor c∗ = Polynom c(T ) := m P m P ci di ∈ Λ mit ci ∈ Z das i=0 ci T i ∈ Z[T ] zu, so definiert dies eine bijektive lineare Abbil- i=0 dung φ : Zm+1 −→ Z[T ]m . Dadurch können wir c∗ mit Hilfe von c = (c0 , . . . , cm )tr darstellen als c∗ = m X m m X X ci di = Dm · c = ( ci Re(y i ), ci Im(y i ), co δ, . . . , cm δ)tr i=0 i=0 i=0 tr = (Re(c(y)), Im(c(y)), c0 δ, . . . , cm δ) . Daraus ergibt sich für die 2-Norm von c∗ kc∗ k22 = Re(c(y))2 + Im(c(y))2 + c0 2 δ 2 + . . . + cm 2 δ 2 m X = |c(y)|2 + δ 2 ci 2 = |c(y)|2 + δ 2 kck22 , i=0 d.h. g(T ) := c(T ) ist Minimalpolynom von x mit sehr kurzem Vektor g∗ := c∗ ∈ Λ. Satz 10.14. Es seien x ∈ C eine algebraische Zahl vom Format b := b(x)(≥ 4), g(T ) ∈ Z[T ] das primitiv normierte Minimalpolynom von x mit deg(g) := n und 3 3 y ∈ Q + iQ eine Näherung von x mit |x − y| ≤ 2−5b . Ferner seien δ := 2−4b , γ := m P 22b δ und Λ = Zdi wie oben. Dann gelten: i=0 (a) Sind m ≤ n und c∗ ∈ Λ mit kc∗ k2 ≤ γ, so gilt c(x) = 0. (b) Im Falle m = n gilt kg∗ k2 ≤ γ. (c) Weiterhin gilt im Falle m = n für jeden Gittervektor c∗ ∈ Λ mit c(x) 6= 0 die Ungleichung kc∗ k2 > 2b γ. Für den Beweis benötigen wir zwei Lemmata. Lemma 10.15. Es sei f = m P ai T i ∈ Z[T ] ein ganzzahliges Polynom, x, y ∈ C zwei i=0 komplexe Zahlen mit |x − y| < ε und max{1, |x| , |y|} ≤ M . Dann gilt |f (x) − f (y)| ≤ ε kf k∞ mM m . 98 Gitterbasisreduktion Beweis. Durch Einsetzen von x und y in f erhalten wir folgende Darstellung für die Differenz f (x) − f (y) = m X ai (xi − y i ) = (x − y) m X i=0 ai i=1 i−1 X xj y i−1−j . j=0 Damit können wir den Betrag abschätzen durch |f (x) − f (y)| ≤ |x − y| | {z } ≤ε m X i=1 ≤ ε kf k∞ m |ai | |{z} i ·M i−1 |{z} ≤ kf k∞ ≤ m m−1 X i M mit i=0 m−1 X Mi = i=0 Mm − 1 ≤ Mm M −1 ≤ ε kf k∞ mM m . Lemma 10.16. Es seien f, g ∈ Z[T ]\Z teilerfremde ganzzahlige Polynome mit max{deg(f ), deg(g)} ≤ m und max{kf k2 , kgk2 } ≤ M. Dann gilt für jedes x ∈ C mit g(x) = 0 die Ungleichung f (x) ≥ M −3m . Beweis. Wir gehen ohne Einschränkung von deg(f ) = m ≥ n := deg(g) aus. Da f und g teilerfremd sind, existieren Polynome r̃, s̃ ∈ Q[T ] mit r̃f + s̃g = 1. Wir bezeichnen den Hauptnenner dieser Gleichung mit e und multiplizieren die Gleichung mit e. Dann erhalten wir Polynome r, s ∈ Z[T ] mit rf + sg = e ∈ N, wobei deg(r) ≤ n − 1 und deg(s) ≤ m − 1 gelten. Schreiben wir die Polynome r und s in der Form n−1 m−1 P P r= ci T i und s = dj T j , so erhalten wir das folgende lineare Gleichungssystem i=0 j=0 Syl(f, g) · (cn−1 , . . . , c0 , dm−1 , . . . , d0 )tr = (0, . . . , 0, e)tr . Unter Verwendung der Cramer’schen Regel erhalten wir die Koeffizienten cn−i in der Form det(Si ) cn−i = , Syl(f, g) wobei die Matrix Si aus Syl(f, g) durch Ersetzen der i-ten Spalte durch den Vektor (0, . . . , 0, e)tr entsteht. Die Ungleichung von Hadamard aus Satz 6.14 liefert weiter |cn−i | ≤ |det(Si )| ≤ eM 2m−1 . 10.3 Konstruktion des Minimalpolynoms einer algebraischen Zahl 99 Aus der Voraussetzung g(x) = 0 erhalten wir die Abschätzung |x| ≤ M (g) ≤ kgk2 ≤ M. Schließlich können wir noch den Betrag von r(x) abschätzen durch |r(x)| ≤ n−1 X |ci | |x|i ≤ eM 2m−1 i=0 ≤ eM n−1 X M i = eM 2m−1 i=0 2m−1 n M ≤ eM 3m Mn − 1 M −1 . Setzen wir nun x in die Gleichung rf + sg = e ein erhalten wir r(x)f (x) = e wegen g(x) = 0. Mit Hilfe der obigen Abschätzungen ergibt sich über |f (x)| = 1 e ≥ 3m = M −3m |r(x)| M schließlich die Behauptung. Damit haben wir alle Vorbereitungen zusammen und wollen nun Satz 10.14 beweisen. Beweis. Wir bezeichnen mit n den Grad von g. Da die Anzahl der Koeffizienten von g höchstens b ist, gelten n ≤ b − 1 und kgk∞ ≤ 2b−1 . Wegen kgk1 ≤ 2b erhalten wir mit dem Satz 8.6 (Landau) |x| ≤ kgk2 ≤ kgk1 ≤ 2b und analog |y| ≤ 2b . (a) Aus den Voraussetzungen c∗ ∈ Λ mit kc∗ k2 ≤ γ und m ≤ n erhalten wir die Ungleichungen |c(y)| ≤ γ und δ kck2 ≤ γ. Aus den Abschätzungen für γ und δ ergibt sich daraus kck2 ≤ δ −1 γ ≤ 22b . Unter Verwendung von Lemma 10.15 erhalten wir die Abschätzung 3 |c(x) − c(y)| ≤ ε kck∞ mM m ≤ 2−5b · 22b · 2b · (2b )b−1 = 2b 2 +2b−5b3 ≤ δ (wegen b ≥ 4). Damit können wir den Betrag von c(x) abschätzen durch |c(x)| ≤ |c(x) − c(y)| + |c(y)| ≤ δ + γ < 2γ. Bezeichnen wir die Nullstellen des Minimalpolynoms g(T ) von x mit x = x1 , . . . , xn , n Q so ist ( c(xi )) l(g)m ganz algebraisch und symmetrisch in x1 , . . . , xn und liegt damit i=1 in Z. Mit |xi | ≤ 2b erhalten wir die Abschätzung |c(xi )| ≤ m X j=0 |cj | |xi |j 100 Gitterbasisreduktion mit |cj | ≤ kck∞ ≤ kck2 ≤ 22b und |xi |j ≤ 22bj und daraus |c(xi )| ≤ 22b m X 1 1 2bj ≤ 22b · 2bm · (1 + b + 2b + . . .) 2 {z2 } | j=0 ≤2 2b bm+1 ≤ 2 ·2 2b2 ≤2 . Wegen l(g) ≤ 2b gilt weiterhin n n Y Y 3 bm m |c(xi )| ≤ γ22b < 1. c(xi ) ≤ 2 |c(x)| l(g) | {z } i=2 i=1 ≤ 2γ | {z } 2 ≤ (22b )n−1 Also existiert ein Index i mit c(xi ) = 0. Da alle xi zueinander konjugiert sind, gilt dann auch c(x1 ) = c(x) = 0. (b) Bezeichnen wir mit g∗ den Gittervektor zu g(T ), so erhalten wir mit Lemma 10.15 die Abschätzung 3 |g(y)| = |g(y) − g(x)| ≤ ε kgk∞ n(2b )n ≤ 2−5b · 2b · 2b · 2b 2 3 ≤ 2−4b = δ. Dies liefert uns die gewünschte Beschränkung der 2-Norm von g∗ mittels kgk2 ≤ 2b (wie wir zu Beginn festgestellt haben), also kg∗ k22 = |g(y)|2 + δ 2 kgk22 ≤ δ 2 (1 + kgk22 ) ≤ δ 2 24b = γ 2 . |{z} ≤ 22b (c) Es sei nun c∗ ∈ Λ mit c(x) 6= 0. Wir nehmen zunächst an, dass kck2 > 23b gilt. Dann folgt aus den Abschätzungen zu (b) kc∗ k2 ≥ δ kck2 > 23b δ = 2b γ und damit die Behauptung. Sonst gilt kck2 ≤ 23b . Da g irreduzibel ist mit g(x) = 0 und c(x) 6= 0 ist, gilt ggT{c, g} = 1. Lemma 10.16 liefert dann |c(x)| ≥ M13n mit M := 23b und n < b − 1 < b (wie zu Beginn). Daraus ergibt sich 2 |c(x)| ≥ 2−9bn ≥ 2−9b ≥ 2−4b 3 +3b+1 ≥ 2−4b 3 +2b 2b+1 ≥ 2b+1 22b δ ≥ 2b+1 γ. Unter Verwendung von Lemma 10.15 erhalten wir 3 |c(x) − c(y)| ≤ ε kck∞ mM m ≤ 2−5b · 22b · 2b · (2b )b−1 = 2b 2 +2b−5b3 ≤ δ ≤ 22b δ = γ und damit die gewünschte Ungleichung |c(y)| ≥ |c(x)| − |c(x) − c(y)| ≥ 2b+1 γ − γ ≥ 2b γ. 10.3 Konstruktion des Minimalpolynoms einer algebraischen Zahl 101 Algorithmus 10.17. (Minimalpolynomberechnung) Es sei x ∈ C eine algebraische Zahl vom Format b mit Näherung y wie in Satz 10.14. 1. Berechne eine Abschätzung für b und eine hinreichend gute Approximation y ∈ Q + iQ gemäß Bemerkung 10.13. Setze m := 0. 2. Setze m := m + 1 und berechne d0 , . . . , dm . 3. Berechne eine assoziierte reduzierte Gitterbasis b0 , . . . , bm . 4. Setze b := b0 mit zugehörigem Polynom b(T ). Normiere b primitiv und setze 1 g(T ) := c(b) b(T ) mit dem Inhalt c(b) des Polynoms b (vgl. Definition 6.5). 5. Im Falle kg∗ k2 ≤ γ ist g(T ) das Minimalpolynom von x. Andernfalls gehe zu 2. Beweis. (Korrektheit von Algorithmus 10.17) Solange m < n = deg(g) wird Algorithmus 10.17 nach Satz 10.14(a) nicht beendet. Im Falle m = n ist g∗ wegen kg∗ k2 ≤ γ ein sehr kurzer Vektor nach Satz 10.14(b). Algorithmus 10.9 (LLL) liefert dann nach Korollar 10.7 eine reduzierte Gitter-Basis m b0 , . . . , bm mit kb0 k2 ≤ 2 2 γ < 2b γ. Unter Verwendung von Satz 10.14(c) folgt schließlich b(x) = 0. Damit ist g(T ) das primitiv normierte Minimalpolynom von x. Korollar 10.18. Ein Polynom f ∈ Z[T ] kann in Abhängigkeit der Bitlänge von f in einer polynomialen Anzahl von Bitoperationen faktorisiert werden. Beweis. Um f zu faktorisieren, approximieren wir jede Nullstelle x von f hinreichend genau und konstruieren dazu das primitiv normierte Minimalpolynom gx ∈ Z[T ] gemäss Algorithmus 10.17. 102 Gitterbasisreduktion Teil II Primzerlegung Kapitel 11 Primzahlen 11.1 Erzeugung von Primzahlen Definition 11.1. (Primzahl, Primzahlfunktion) Eine natürliche Zahl p 6= 1 heißt Primzahl, wenn für alle ihre Teiler d ∈ N gilt: d = p ∨ d = 1. Die Menge aller Primzahlen bezeichnen wir mit P. Des Weiteren sei für ein x ∈ R die Primzahlfunktion π(x) := #{ p ∈ P | p ≤ x } definiert als die Anzahl aller Primzahlen unterhalb der Schranke x. Wie aus obiger Definition klar wird, ist eine natürliche Zahl n > 1 entweder eine Primzahl oder durch eine solche teilbar. In diesem Kapitel werden Methoden und Faktorisierungsalgorithmen vorgestellt, mit deren Hilfe sich solche Teiler finden lassen. In den kommenden Kapiteln lernen wir außerdem Verfahren kennen, mit denen man entscheiden kann, ob eine gegebene Zahl eine Primzahl ist. Zunächst interessiert es uns allerdings, ob sich Primzahlen (beispielsweise jene unterhalb einer festgewählten Schranke n ∈ N) auch berechnen lassen. Der griechische Mathematiker Eratosthenes von Kyrene (275 - 194 v.Chr.) entwickelte ein Verfahren, mit dem sich die Primzahlen aus der Menge {0, 1, 2, . . . , n} durch ein Siebverfahren gewinnen lassen. Algorithmus 11.2. (Sieb des Eratosthenes) Es sei n > 1 eine natürliche Zahl 1. Man wähle die kleinste noch nicht gestrichene oder verwendete Zahl m mit 2 ≤ m. 2. Falls m2 ≤ n ist, streiche man alle Vielfachen cm (c ∈ N) mit m2 ≤ cm ≤ n und gehe zu (1). 3. Übrig bleiben alle Primzahlen aus der Menge {0, 1, 2, . . . , n}. 106 Primzahlen Die Korrektheit des Algorithmus ist leicht einzusehen. Jede in Schritt (1) gewählte Zahl m (beginnend mit der 2) ist offensichtlich eine √ Primzahl. Jede Nichtprimzahl c ≤ n ist durch mindestens eine Primzahl p ≤ n teilbar und wird somit durch Schritt (2) eliminiert. Die folgende Tafel enthält die so gewonnen Primzahlen bis zu der Schranke 100: 0 1 2 3 4 5 6 7 8 9 0 x x x x x x x x x x 1 x 2 3 4 x x x x x x x x x x x x x x x x x x x x x x x x x x 5 x x x x x x x x x 6 x x x x x x x x x x 7 x x x x 8 x x x x x x x x x x 9 x x x x x Bemerkung 11.3. Zur Berechnung aller Primzahlen ≤ n genügen O(n · ld(n)) Bitoperationen. Beweis. Entscheidend für die Komplexität des Algorithmus von Eratosthenes ist die Anzahl der Streichungen. Da jeweils die Vielfachen der Primzahlen gestrichen werden, sind dies im ersten Durchlauf höchstens n2 , im zweiten Durchlauf höchstens n Streichungen, usw. Dies ergibt als obere Schranke: 3 √ Z √n+1 n X n n n 1 1 + + + ... ≤ n ≤ n dx 2 3 5 i x 1 i=1 √ = n · ln ( n + 1) ∈ O(n · ld(n)). Anmerkung 11.4. Unter Verwendung von X 1 ∈ O(ld(ld(n))) √ p p≤ n erhält man für die Berechnung der Primzahlen sogar die Abschätzung O(n·ld(ld(n))). Siehe hierfür auch Theorem 427 in G.H. Hardy und E.M. Wright[7]. 11.1 Erzeugung von Primzahlen 107 Satz 11.5. (Fundamentalsatz von Gauss) Jede natürliche Zahl n ∈ N lässt sich (bis auf die Reihenfolge) eindeutig in ein endliches Produkt von Primzahlpotenzen zerlegen, d.h. es existieren ein r ∈ N, Primzahlen pi ∈ P und Exponenten ei ∈ N für i ∈ {1, . . . , r}, sodass gilt n= r Y pei i . i=1 Beweis. Siehe Satz 1.4 in Matzat[10]. Da wir wissen, dass sich die Primzahlen bis zu einer festgewählten Schranke x ∈ N berechnen lassen, interessiert es uns, wie sich die Anzahl der Primzahlen bei wachsendem x verhält. Das folgende Resultat zeigt, dass sich das Verhalten der Primzahlfunktion π(x) asymptotisch durch eine bekannte Funktion beschreiben lässt. Satz 11.6. (Primzahlsatz) Für reelle Zahlen x ∈ R gilt die asymptotische Gleichheit π(x) ≈ weise: π(x) · ln(x) lim = 1. x→∞ x x ln(x) beziehungs- Beweis. Siehe Kapitel 1 in Müller-Stach und Piontkowski[11]. Korollar 11.7. Die ersten m Primzahlen lassen sich in O(m·ld(m)2 ) Bitoperationen berechnen. Beweis. Zu den ersten m Primzahlen existiert eine natürliche Zahl n ∈ N, sodass n π(n) = m gilt. Nach Satz 11.6 ist m ≈ ln(n) . Folglich ist n ein Element von O(m · ld(m)). Mit Bemerkung 11.3 erhalten wir somit einen Aufwand von O(m · ld(m) · ld(m ld(m))) = O(m · ld(m)2 + m ld(m) · ld(ld(m))) ⊆ O(m · ld(m)2 ) Bitoperationen. Anmerkung 11.8. (Ungleichung von Langemyr) Für eine natürliche Zahl n ∈ N und für alle Primzahlen p ≤ n gilt folgende Ungleichungskette: Y 0, 43 · n ≤ ld ( p) ≤ 1, 46 · n. p≤n P Daraus ergibt sich p≤n ld(p) ∈ O(n). Es genügen also im modularen Euklidischen Algorithmus (vgl. Kapitel 8.3) für die Berechnung von ld (B) ∈ O(ml) Primzahlen O(ld(B) · ld(ld(B))) ⊆ O(ml · ld (ml)) Bitoperationen. Als nächstes wollen wir der Frage nachgehen, wie wir zu einer natürlichen Zahl n ∈ N eine Zerlegung im Sinne von Satz 11.5 erhalten. Der folgende Algorithmus beschreibt ein Verfahren zur Berechnung der Teiler von n. 108 Primzahlen Algorithmus 11.9. (Primzerlegung durch Probedivision) Es sei n ∈ N eine ungerade natürliche Zahl. √ Variante A Man berechne für alle natürlichen Zahlen q ≤ n, den positiven Rest rq (n) mittels Division von n durch q. Falls rq (n) = 0 ist, so gilt: q | n. Variante √ B Bei Vorhandensein einer Primzahltabelle genügt es für alle Primzahlen p ≤ n den positiven Rest rp (n) zu berechnen. Eine vollständige Faktorisierung von n ergibt sich durch die rekursive Ausführung des obigen Algorithmus. Bemerkung √ 11.10. Für die Faktorisierung einer Zahl n ∈ N mittels Probedivision genügen O( n · µ(ld(n))) Bitoperationen. Beweis. Es sei n eine ungerade natürliche Zahl. Für die Variante A benötigen wir 1√ n Versuche mit jeweils einer Division mit Rest. Dies ergibt einen Aufwand von 2 √ O( n · µ(ld(n))) Bitoperationen. In der Variante B √ benötigen wir zur Berechnung der Primzahlen mit dem Sieb des Eratosthenes √ O( n · ld(n)) Bitoperationen. Für die Faktorisierung von n sind nochmals π( n) Versuche mit jeweils einer Division mit Rest erforderlich. Wir erhalten demzufolge nach Satz 11.6 insgesamt einen Aufwand in der Größenordnung √ n √ von O( ld( n) · µ(ld(n))) Bitoperationen. Somit ist im Vergleich die Variante B zwar schneller, jedoch Versionen √ sind beide 1 1 2 des Algorithmus 11.9 durch ihr exponentielles Wachstum ( n = n = e 2 ln n ) für große Zahlen ineffizient. 11.2 Pollard’s ρ-Methode Bemerkung 11.11. (ρ - Lemma) Es sei M eine endliche Menge mit m Elementen. Ferner seien f : M −→ M eine Abbildung und (xi )i∈N die durch f und x0 ∈ M erzeugte Folge x0 , x1 := f (x0 ), x2 := f (x1 ), . . . Dann gibt es eine natürliche Zahl k ∈ N, so dass (xi )i∈N ab dem (k + 1)-ten Folgenglied periodisch wird. Das heißt die Folge (xi )i∈N hat die Form x0 , x1 , x2 , . . . , xk , xk+1 , . . . , xk+l : {z } | | {z } Vorperiode Hierbei gilt k + l ≤ m für die Periodenlänge l. P eriode 11.2 Pollard’s ρ-Methode 109 Beweis. Da M nur endlich viele Elemente besitzt, wiederholt sich die Folge (xi )i∈N spätestens nach dem m-ten Glied. Man kann die Folgenglieder graphisch so anordnen, dass sich der Buchstabe ρ ergibt: Hieraus leitet sich insbesondere die Bezeichnung des Lemmas ab. Das ρ-Lemma liefert nun eine weitere Möglichkeit, die Teiler einer natürlichen Zahl zu berechnen. Korollar 11.12. (ρ-Methode) Es seien n eine ungerade natürliche Zahl und M = {0, 1, 2, . . . , n − 1} = Z/nZ. Ferner seien die Abbildung f : M −→ M und die Folge (xi )i∈N wie in Bemerkung 11.11 gewählt. Dann gibt es Indizes i, j ∈ N, sodass gilt: ggT(xi − xj , n) 6= 1. Beweis. Es seien (wie in Bemerkung 11.11) k und l die Längen der Vorperiode bzw. der Periode der Folge (xi )i∈N . Dann gilt xj+l = xj für alle Indizes j > k. Dadurch wird (xj+l − xj ) von n geteilt und der größte gemeinsame Teiler ggT(xj+l − xj , n) ist damit ungleich 1. Die Idee zu Pollard’s ρ-Methode ist die Folgende: Wenn p ein nichttrivialer Teiler von n ist, gibt es weniger Restklassen modulo p als Restklassen modulo n. Im optimalen Fall kreiert die Funktion f möglichst gleichverteilte Zufallszahlen xi , so dass wir früher oder später Elemente xi und xj finden, die in der selben Restklasse modulo p aber nicht in der selben Restklasse modulo n liegen. In diesem Fall gilt: p | ggT(xi − xj , n) 6= n. Man testet also für alle i > j den größten gemeinsamen Teiler von xi − xj und n. Beispiel 11.13. Gesucht sei die Primzerlegung von n = 91. Wir wählen f := T 2 + 1 ∈ (Z/nZ)[T ] und x0 = 1. Dies ergibt die Folge x0 = 1, x1 = 2, x2 = 5, x3 = 26, x4 = 40, . . . Wir erhalten durch Testen: ggT(x3 − x2 , 91) = 7 und ggT(x4 − x0 , 91) = 13. Daraus ergibt sich die Zerlegung n = 7 · 13. 110 Primzahlen Bei der Effizienzbetrachtung zu Pollard’s ρ-Methode stellt sich die Frage, wann die Folge (xi )i∈N in eine Periode übergeht, d.h. wie groß die Indizes k und l im Allgemeinen werden können. Von Interesse ist außerdem, ob tatsächlich zu allen Tupeln (i, j) die größten gemeinsamen Teiler ggT(xi − xj , n) berechnet werden müssen. Auch die Wahl einer geeigneten Zufallsfunktion f ist zu klären. Bemerkung 11.14. Es sei M eine endliche Menge mit m Elementen. Daraus bilden wir die Menge M̃ (r) := {(x1 , . . . , xr ) ∈ M r | xi paarweise verschieden }. Mit δ = (r−1)2 gilt dann die strikte Ungleichung 2m #M̃ (r) < e−δ . r #M Beweis. Für den Beweis verwenden wir die Abschätzung (1 + x) ≤ ex . Wenn wir ein beliebiges Tupel (x1 , x2 , . . . , xr ) aus M̃ (r) betrachten, dann gibt es für den Wert des ersten Elements m Auswahlmöglichkeiten, für das zweite Element x2 gibt es m − 1, für das dritte noch m − 2 Möglichkeiten, usw. Daraus ergibt sich m(m − 1) . . . (m − (r − 1)) #M̃ (r) = r #M m · m...m 1 2 r−1 = 1 · (1 − ) · (1 − ) . . . (1 − ) m m m r(r−1) (r−1)(r−1) r−1 2 1 ≤ e− m · e− m . . . e− m = e− 2m < e− 2m . Dieses Resultat liefert uns eine Abschätzung für die Periodizität der Folge (xi )i∈N . Korollar 11.15. Für eine ”hinreichend allgemeine” Abbildung f (d.h. die Folge (xi )i∈N√verhält sich statistisch wie in Bemerkung 11.14) und für δ ∈ R>0 sowie r := d 2mδ e + 1 gilt: Die Wahrscheinlichkeit, dass in den ersten r Folgengliedern von (xi )i∈N eine Periode auftritt, ist echt größer als 1 − e−δ . Die nächste Bemerkung zeigt uns, dass für Pollard’s ρ-Methode nicht alle auftretenden Tupel (i, j) mit i > j zu untersuchen sind. Bemerkung 11.16. (Floyd) Für Pollard’s ρ-Methode genügt es, die größten gemeinsamen Teiler ggT (x2i − xi , n) für i > 0 zu berechnen. Insbesondere lässt sich der Test auf die Tupel (2i, i) beschränken. Beweis. Es seien die Zahl n ∈ N, die Abbildung f und die Folge (xi )i∈N wie in Korollar 11.12 gewählt. Des Weiteren sei d ein echter Teiler von n. Wir betrachten nun die Folge (xi )i∈N modulo d, d.h. xi := xi mod d. 11.2 Pollard’s ρ-Methode 111 Dies liefert uns analog zu Bemerkung 11.11 eine neue Vorperiodenlänge k1 und Periodenlänge l1 mit k1 + l1 ≤ d − 1 < n. Für alle Indizes j > k1 erhalten wir wie in Korollar 11.12: xj+l1 = xj . Als nächstes wählen wir das kleinstmögliche c ∈ N mit c · l1 > k1 . Für ein solches c gilt die Gleichungskette x2c·l1 = xcl1 +cl1 = xc·l1 . Die Gleichheit der Restklassen impliziert, dass x2c·l1 −xc·l1 und somit auch der größte gemeinsame Teiler ggT(x2c·l1 − xc·l1 , n) von d geteilt wird. Insbesondere gilt für das oben gewählte c: l1 , falls l1 > k1 c · l1 = k1 + l1 (−k1 ), falls l1 ≤ k1 und damit die Abschätzung c · l1 ≤ k1 + l1 ≤ d − 1. Satz 11.17. Es seien n ∈ N \ P eine ungerade Nichtprimzahl sowie δ ∈ R>0 eine positive reelle Zahl.√Dann√findet man mit der Pollard’schen ρ-Methode einen Primfaktor von n nach δ · O( 4 n) Versuchen mit einer Wahrscheinlichkeit W > 1 − e−δ . Dabei genügen pro Versuch O(µ(ld(n)) · ld(ld(n))) Bitoperationen. Beweis. Die Korrektheit folgt aus Bemerkung 11.14 und Korollar 11.15. Falls p ein Primteiler von n ist, finden wir zu einem √ vorgegebenen δ mit einer Wahrscheinlichkeit −δ + 1 Versuchen Indizes i und j mit von W > 1 − e nach höchstens d 2 · p · δ e √ √ xj ≡ xi ( mod p). Ohne Einschränkung sei p ≤ n. Dann erhalten wir wegen p ≤ √ √ √ 4 n einen Erfolg mit obiger Wahrscheinlichkeit nach δ · O( 4 n) Versuchen. Für die Komplexität betrachten wir die Anzahl der Bitoperationen pro Versuch. Die Berechnung der xi aus xi−1 beziehungsweise x2i aus x2(i−1) benötigt Bitoperationen in der Größenordnung von O(µ(ld(n))) . Der Euklidische Algorithmus zur Berechnung der ggT(x2i − xi , n) liefert außerdem Kosten in O(µ(ld(n)) · ld(ld(n))). Für den √ √ 4 Gesamtbedarf ergeben sich also δ · O( n · µ(ld(n)) · ld(ld(n))) Bitoperationen. Anmerkung 11.18. Leider bleibt die Frage nach der Existenz ”hinreichend allgemeiner” Abbildungen f ungeklärt. Experimentell scheinen jedoch die Polynome T 2 + a mit a 6= 0, −2 hinreichend allgemein zu sein. Beispiel 11.19. Mit Pollard’s ρ-Methode wurde 1980 erstmalig die 8-te Fermatzahl 8 F8 = 22 + 1 = 2256 + 1 vollständig faktorisiert. Trotz seiner Erfolge bleibt Pollard’s Algorithmus von probabilistischer Natur. Ein Erfolg ist nicht garantiert. Es stellt sich also die Frage, ob es deterministische Primzerlegungsverfahren gibt, die eine ähnliche Komplexität exp( 14 ld(n)) aufweisen. 112 11.3 Primzahlen Der Algorithmus von Pollard und Strassen Vorbemerkung 11.20. Für eine natürliche Zahl m ∈ N und das ganzzahlige m Q Polynom f (T ) := (T + j) ∈ Z[T ] gilt j=1 m−1 Y f (im) = (m2 )! . i=0 Beweis. Für den Index i = 0 gilt offensichtlich f (0) = m!. Für jedes weitere i aus der Indexmenge {1, 2, . . . , m − 1} gilt f (im) = (im + 1) · (im + 2) · . . . · ((i + 1)m), womit die Behauptung bewiesen ist. Der folgende Algorithmus von Pollard und Strassen gibt uns eine deterministische Faktorisierungsmethode in der Größenordnung von Pollard’s ρ-Methode. Algorithmus 11.21. (Faktorisierungsalgorithmus von Pollard-Strassen) Es sei n ∈ √ N die zu faktorisierende Zahl. Weiter seien b ∈ N gegeben und m definiert als m := d b e. 1. Man berechne f (T ) = m Q (T + j) mod n, gemäß Kapitel 7.2. j=1 2. Man berechne qi := f (im) für alle Indizes i = 0, . . . , m − 1. 3. Falls für alle i ∈ {0, . . . , m − 1} der größte gemeinsame Teiler ggT(qi , n) = 1 ist, so wurde kein Teiler gefunden. 4. Sonst wähle man den minimalen Index k ∈ {0, . . . , m − 1} mit ggT(qk , n) 6= 1. In diesem Fall gibt es einen Teiler d von n mit km < d ≤ (k + 1)m. Satz 11.22. (Korrektheit des Algorithmus) (a) Der Pollard-Strassen Algorithmus ist korrekt und benötigt höchstens √ O(µ( b) · µ(ld(n)) · ld(ld n)) Bitoperationen. √ (b) Beim Durchlaufen des PS-Algorithmus mit b = 2j und j = bld( n)c werden alle √ Primteiler von n in O(µ( 4 n) · µ(ld(n)) · ld(ld(n))) Bitoperationen gefunden. 11.3 Der Algorithmus von Pollard und Strassen 113 Beweis. (a) Jeder Primteiler p von n teilt f (im) genau dann, wenn er für ein bestimmtes j ∈ {1, 2, . . . , m} den Faktor (im+j) teilt. Die Korrektheit des Algorithmus 11.21 folgt damit direkt aus Schritt (4). Es bleibt noch die Aufwandsanalyse: Für die Berechnungen in den Schritten (1) und (2) benötigen wir O(m ld(m)2 ) Ringoperationen in Z/nZ und somit insgesamt O(m · ld(m)2 · µ(ld(n))) Bitoperationen. Das m-malige Ausführen des Euklidischen Algorithmus in Z/nZ liefert für Schritt (3) einen Aufwand von O(m · µ(ld(n)) · ld(ld(n))) Bitoperationen. Letztlich benötigen wir in Schritt (4) nochmals m Divisionen mit Rest und erhalten damit einen Gesamtaufwand von O(m · µ(ld(n)) · ld(ld(n)))Bitoperationen. √ n. (b) Es sei p ∈ P√ein Teiler von n und ohne√Einschränkung gelte p ≤ Q √ Wählen wir nun b = 2bld( n)c und definieren m := d be, so gilt m−1 f (im) = (d ne)! . In i=0 Schritt (4) gibt es also ein k, sodass f (km) von p geteilt wird. Für einen Durchlauf mit b := 2j und 1 ≤ j ≤ dld(n)e gilt: m X j j=1 j 1 1 1 1 1 1 · 2 2 ∈ O( n 4 ld(n) + n 8 ld(n) + . . .) ⊆ O( n 4 ld(n)). 2 4 8 2 1 Der Gesamtaufwand beträgt also O(n 4 · ld(n)2 · µ(ld(n))) Bitoperationen. 114 Primzahlen Kapitel 12 Die Sätze von Fermat und Euler 12.1 Restklassenringe In diesem Kapitel wollen wir - aufbauend auf Kenntnissen aus der elementaren Zahlentheorie - auf einige charakterisierende Eigenschaften von Primzahlen eingehen, die sich später für Primzahltests verwenden lassen. Zunächst beginnen wir mit einer Erinnerung an Kapitel 7.1. Vorbemerkung 12.1. (Hauptsatz über simultane Kongruenzen) Q Zu einer natürlichen Zahl n ∈ N mit Primfaktorzerlegung n = ri=1 pei i ist folgende Abbildung φ ein Ringisomorphismus: φ : Z/nZ −→ Z/pe11 Z × . . . × Z/perr Z a 7−→ (. . . , a mod pei i , . . .). Damit erhalten wir auch einen Isomorphismus der zugehörigen Einheitengruppen: (Z/nZ)× ∼ =( r Y i=1 Z/pei i Z)× = r Y (Z/pei i Z)× . i=1 Definition 12.2. (Eulersche ϕ-Funktion, Carmichael-Funktion) Die Abbildung ϕ : N −→ N, ϕ(n) := #(Z/nZ)× heißt die Eulersche ϕ-Funktion. Die Abbildung λ : N −→ N, λ(n) := min {e ∈ N | ae = 1 für alle a ∈ (Z/nZ)× } heißt Carmichael-Funktion. Satz 12.3. Für eine ungerade Primzahl p ∈ P und eine natürliche Zahl m ∈ N ist die Einheitengruppe (Z/pm Z)× eine zyklische Gruppe der Ordnung pm−1 (p − 1). Für p = 2 und m ≥ 3 ist die Einheitengruppe (Z/2m Z)× isomorph zu dem Produkt zweier zyklischer Gruppen der Ordnungen 2 und 2m−2 . 116 Die Sätze von Fermat und Euler Beweis. Siehe Abschnitt 3.3 in Matzat[10]. Aus Satz 12.3 und Vorbemerkung 12.1 erhalten wir Formeln für die Berechnung der Eulerschen ϕ-Funktion und der Carmichael-Funktion. Korollar 12.4. (Berechnungsformeln für Carmichael- und Eulersche ϕ-Funktion) (a) Für eine Primzahl p ∈ P und eine natürliche Zahl m ∈ N gilt ϕ(pm ) falls p ungerade m m−1 m ϕ(p ) = p (p − 1), sowie λ(p ) = 1 ϕ(2m ) falls p = 2 und m ≥ 3. 2 (b) Für eine natürliche Zahl n ∈ N mit Primfaktorzerlegung n = pn1 1 · · · pnr r gilt ϕ(n) = r Y i=1 ϕ(pni i ) = r Y pni i −1 (pi − 1) und λ(n) = kgV {λ(pni i ) | i = 1, . . . , r}. i=1 Satz 12.5. (Satz von Euler-Fermat) Es sei n ∈ N eine natürliche Zahl. Für jede zu n teilerfremde ganze Zahl a ∈ Z gilt aϕ(n) ≡ 1 mod n. Beweis. Da a und n keine gemeinsamen Teiler haben, bildet die Restklasse a eine Einheit im zugehörigen Restklassenring Z/nZ. Da in endlichen Gruppen die Ordnung eines Elements immer die Gruppenordnung teilt, ist in unserem Fall die Elementanzahl der Einheitengruppe ϕ(n) = #(Z/nZ)× ein Vielfaches der Ordnung von a ∈ (Z/nZ)× . Wir erhalten also aϕ(n) = 1. Korollar 12.6. (Satz von Fermat) Für jede Primzahl p ∈ P und jede Einheit a aus dem endlichen Körper Fp gilt ap = a. Beweis. Für eine Primzahl p ∈ P ist der Restklassenring Z/pZ = Fp ein Körper. Demnach sind bis auf die Klasse der 0 alle Elemente aus Fp gleichzeitig auch Einheiten. Für die Eulersche ϕ-Funktion gilt also ϕ(p) = #(Fp )× = p − 1. Unter Verwendung von Satz 12.5 schließen wir a ϕ(p) = ap−1 = 1. Beispiel 12.7. Wir wollen testen, ob die natürliche Zahl n = 91 die Fermat’sche Eigenschaft einer Primzahl erfüllt. Wir wählen a = 2. Dann gilt 210 = 1024 ≡ 23 mod 91 und damit 212 ≡ 92 ≡ 1 mod 91. Aus diesem Resultat lässt sich leicht einsehen, dass 290 = 27·12+6 ≡ 26 ≡ 64 6≡ 1 mod 91 gilt. Nach dem Satz von Fermat kann also 91 keine Primzahl sein. 12.1 Restklassenringe 117 Falls die Fermat’schen Bedingung nicht zutrifft, lässt sich die Zugehörigkeit zur Menge der Primzahlen ausschließen. Es stellt sich nun im Umkehrschluss die Frage, ob der Satz von Fermat auch zur Erkennung von Primzahlen geeignet ist, beziehungsweise ob sich ein Primzahltest daraus ableiten lässt. Definition 12.8. (Pseudoprimzahl, Carmichael-Zahl) Eine ungerade natürliche Zahl n ∈ N \ P heißt eine (Fermat’sche) Pseudoprimzahl zur Basis a, wenn sie die Fermat’sche Primzahleigenschaft erfüllt: an−1 ≡ 1 mod n. Falls an−1 6≡ 1 mod n und falls a teilerfremd zu n ist, so heißt a Zeuge für die Zerlegbarkeit von n. Die Zahl n heißt Carmichael-Zahl (absolute Pseudoprimzahl) falls alle zu n teilerfremden a ∈ Z keine Zeugen für die Zerlegbarkeit von n sind. Bemerkung 12.9. Eine ungerade natürliche Zahl n ∈ N ist genau dann eine Q Carmichael-Zahl, wenn n = ri=1 pi (r ≥ 2, pi ∈ P) das Produkt paarweiser verschiedener, ungerader Primzahlen ist und n − 1 für alle Indizes i ∈ {1, . . . , r} von pi − 1 geteilt wird. Beweis. Es sei zunächst n ∈ N eine Carmichael-Zahl. Da (n − 1) nach Definition ein Vielfaches der Ordnungen aller Elemente a ∈ (Z/nZ)× ist, wird (n − 1) von λ(n) geteilt. Es seien nun p eine Primzahl und m ∈ N maximal gewählt, sodass pm | n gilt. Mit Hilfe von Korollar 12.4 schließen wir: λ(pm ) teilt λ(n) und dieses teilt wiederum (n − 1). Da p eine ungerade Primzahl ist, folgt λ(pm ) = ϕ(pm ) = pm−1 (p − 1) | (n − 1). Wir wollen nun zeigen, dass m = 1 gelten muss. Hierzu nehmen wir an, m wäre größer als 1, dann teilt p nach obiger Gleichung sowohl n als auch n − 1. Dies ist ein Widerspruch. Somit gelten m = 1 Q und (p − 1) | (n − 1). Für die Rückrichtung seien n = ri=1 pi mit paarweise verschiedenen Primzahlen pi 6= 2 und nach Voraussetzung (n − 1) ein Vielfaches aller (pi − 1). Wegen λ(pi ) = (pi − 1) wird die Carmichael-Funktion λ(n) = kgV{λ(pi ) | i = 1, . . . , r} ein Teiler von (n − 1) und n damit zu einer Carmichael-Zahl. Beispiel 12.10. 561 = 3 · 11 · 17, 1105 = 5 · 13 · 17 und 1729 = 7 · 13 · 19 sind die kleinsten Carmichael-Zahlen. Anmerkung 12.11. Es gibt unendlich viele Carmichael-Zahlen. Die Anzahl aller Carmichael-Zahlen unterhalb einer (hinreichend großen) Schranke x ∈ R>0 lässt sich wie folgt abschätzen: 2 #{n ∈ N | n ≤ x, n ist Carmichael-Zahl} ≥ x 7 . Beweis. Siehe Alford, A. Granville, und C. Pomerance[1]. Die Existenz der Carmichael-Zahlen verhindert die Anwendbarkeit des Fermat’schen Satzes für einen effektiven Primzahltest. Wie wir sehen werden, kann man das Kriterium so weit verschärfen, dass ein solcher letztlich doch möglich ist. 118 12.2 Die Sätze von Fermat und Euler Quadratische Reste Definition 12.12. (Quadratischer Rest, Legendre- und Jacobi-Symbol) Es sei p ∈ P eine ungerade Primzahl. Eine Einheit a ∈ F× p heißt quadratischer 2 Rest modulo p, wenn ein b ∈ F× p mit b = a existiert. Das Legendre-Symbol ap gibt an, ob a modulo p ein quadratischer Rest ist: a 1 falls a quadratischer Rest modulo p := −1 falls a quadratischer Nichtrest modulo p. p Weiterhin definieren wir für eine zu a teilerfremde, ungerade natürliche Zahl m ∈ N das Jacobi-Symbol durch a m := Y a ordp (m) p p|m . Bemerkung 12.13. Es seien m ∈ N eine ungerade natürliche Zahl und a, b zwei beliebige zu m teilerfremde Zahlen. Dann gelten: (a) Falls a ≡ b mod m ist, so gilt für das Jacobi-Symbol a m = (b) Das Jacobi-Symbol ist multiplikativ im Zähler, d.h. es gilt b a·b a · = . m m m Beweis. Siehe Satz 5.2 in Matzat[10]. Satz 12.14. (Quadratisches Reziprozitätsgesetz) Für ungerade und teilerfremde natürliche Zahlen a, m ∈ N gelten (a) Quadratisches Reziprozitätsgesetz: (b) 1. Ergänzungssatz: −1 m (c) 2. Ergänzungssatz: 2 m m−1 2 . m2 −1 8 . = (−1) = (−1) a m Beweis. Siehe Satz 5.3 in Matzat[10]. m a = (−1) a−1 m−1 · 2 2 . b m . 12.3 Das Eulersche Kriterium 119 Anmerkung 12.15. Mit Kongruenzen ausgedrückt lauten die Aussagen des Quadratischen Reziprozitätsgesetz: Sind a und m beide kongruent 3 modulo 4, so gilt a m a m = − a . In allen anderen Fällen ist m = a . Modulo m ist −1 genau dann m ein quadratischer Rest, wenn m kongruent 1 modulo 4 ist. Des Weiteren ist 2 genau dann ein quadratischer Rest modulo m, wenn m kongruent ±1 modulo 8 ist. Wie folgendes Beispiel illustriert, lässt sich das Jacobi-Symbol durch die Regeln aus Bemerkung 12.13 und Satz 12.14 rekursiv berechnen. Beispiel 12.16. Wir wollen testen, ob 455 ein quadratischer Rest modulo 561 ist. Da die beiden Zahlen teilerfremd sind, ist das Quadratische Reziprozitätsgesetz anwendbar. Dieses führt mit Bemerkung 12.13 und dem 2. Ergänzungssatz zu folgender Rechnung: 561 106 2 53 53 455 = = = · = . 561 455 455 455 455 455 Eine wiederholte Anwendung dieser 3 Rechenschritte ergibt: 53 455 31 53 22 = = = = 455 53 53 31 31 31 9 11 2 11 =− =− =− =− = −1. = 31 11 11 9 9 Somit ist 455 kein quadratischer Rest modulo 561. Wir sehen, die Berechnung des Jacobi-Symbols benutzt Restbildung und das Quadratische Reziprozitätsgesetz. Der Aufwand ist somit vergleichbar mit dem des Euklidischen Algorithmus. a Bemerkung 12.17. Für die Berechnung des Jacobi-Symbols m zweier teilerfremder ungerader Zahlen a, m ∈ N genügen O(ld(a) ld(m)) Bitoperationen. Beweis. Die Komplexität für die Berechnung des Jacobi-Symbols entspricht der Komplexität des Euklidischen Algorithmus gemäß Kapitel 4 aus Teil 1. Für zwei natürliche Zahlen der Bitlängen dld(a)e und dld(m)e genügen also O(ld(a) ld(m)) Bitoperationen. 12.3 Das Eulersche Kriterium Satz 12.18. (Eulersches Kriterium) Für eine ungerade Primzahl p ∈ P und eine dazu teilerfremde natürliche Zahl a ∈ N gilt p−1 a ≡a 2 mod p. p 120 Die Sätze von Fermat und Euler Beweis. Es sei zunächst a p = 1. Das bedeutet, a ist modulo p ein quadratischer Rest und es existiert eine zu p teilerfremde ganze Zahl b ∈ Z mit a ≡ b2 mod p. Unter Verwendung des Satzes 12.5 von Euler-Fermat erhalten wir a p−1 2 ≡ bp−1 ≡ 1 mod p. Im zweiten Fall sei ap = −1. Wir wissen, dass die Einheitengruppe des endlichen Körpers Fp von einem Element w der Ordnung p − 1 zyklisch erzeugt wird. Da a modulo p ein quadratischer Nichtrest ist, existiert eine natürliche Zahl j ∈ N mit a ≡ w2j+1 mod p. Wir erhalten somit a p−1 2 ≡ wj(p−1) · w p−1 2 ≡w p−1 2 mod p. p−1 Die Restklasse von a 2 ist nach dem Satz von Euler-Fermat eine Nullstelle des Polynoms T 2 − 1 ∈ Fp [T ] und demnach ein Element aus der Menge { 1, −1 }. p−1 Da w von der Ordnung (p − 1) ist, kann damit nur a 2 ≡ −1 mod p gelten. Das Eulersche Kriterium stellt ähnlich wie der Satz von Fermat aus Kapitel 12.1 eine semiindikative Eigenschaft der Primzahlen dar. Wenn die Bedingung aus Satz 12.18 für eine natürliche Zahl n ∈ N nicht eintritt, können wir ihre Zugehörigkeit zur Menge der Primzahlen auschließen. Wir wollen nun analog zu Kapitel 12.1 untersuchen, ob sich das Eulersche Kriterium für einen effektiven Primzahltest eignet. Definition 12.19. (Eulersche Pseudoprimzahl) Es seien n ∈ N \ P eine ungerade Nichtprimzahl und a ∈ Z eine zu n teilerfremde ganze Zahl. Es heißt n eine Eulersche Pseudoprimzahl zur Basis a, wenn gilt a n−1 mod n. ≡a 2 n Mit En bezeichnen wir die Menge der Restklassen aller Basen, zu denen n eine Eulersche Pseudoprimzahl ist: En = {a ∈ (Z/nZ)× | n ist Eulersche Pseudoprimzahl zur Basis a}. Ein Element a aus (Z/nZ)× heißt Eulerscher Zeuge für die Zerlegbarkeit von n, wenn a nicht in En enthalten ist. Anmerkung 12.20. Ein Fermat’scher Zeuge für die Zerlegbarkeit einer natürlichen Zahl n ∈ N ist auch ein Eulerscher Zeuge für die Zerlegbarkeit. n−1 Beweis. Wir schließen indirekt: Es gelte na ≡ a 2 mod n für zwei natürliche Zahlen a und n gemäß Definition 12.19. Durch Quadratur folgt hieraus direkt die Fermat’sche Eigenschaft einer Pseudoprimzahl 1 ≡ an−1 mod n. Wie das nächste Beispiel zeigt, ist die Umkehrung von Anmerkung 12.20 im Allgemeinen nicht gültig. Das Kriterium von Euler ist demnach schärfer als jenes von Fermat. 12.3 Das Eulersche Kriterium 121 Beispiel 12.21. Wir betrachten wieder die Nichtprimzahl n = 91 und die dazu teilerfremde Basis a = 3. Dann ist 390 ≡ 1 mod 91 und n dadurch nach Definition eine Fermat’sche Pseudoprimzahl bzw. a kein Zeuge für die Zerlegbarkeit. Ziehen wir stattdessen Satz 12.18 heran, so erhalten wir: 3 91−1 2 = 345 ≡ 27 6≡ ±1 mod 91. Demnach ist die Basis a ein Eulerscher Zeuge für die Zerlegbarkeit von n. Bemerkung 12.22. Für eine ungerade natürliche Zahl n ∈ N ist die in Definition 12.19 eingeführte Menge En eine Untergruppe der Einheitengruppe (Z/nZ)× . Beweis. Wegen der Multiplikativität des Jacobi-Symbols ist die Menge En multiplikativ abgeschlossen. Zu jedem Element a ∈ En ist sein Inverses aϕ(n)−1 ∈ (Z/nZ)× genau dann ein quadratischer Rest modulo n, wenn dies auch für a der Fall ist. Auf Grund der Kongruenzkette 1(n−1)/2 ≡ (aϕ(n)−1 )(n−1)/2 · |a(n−1)/2 {z } ≡ 1 mod n ≡±1 ist mit a auch a−1 ein Element von En . Da das neutrale Element 1 ebenfalls in En liegt, wird die Menge zu einer Untergruppe von (Z/nZ)× . Im vorletzten Abschnitt haben wir gesehen, dass die Existenz von Carmichael-Zahlen einen Primzahltest unter der Verwendung des Satzes von Fermat unmöglich macht. Es kann passieren, dass eine Nichtprimzahl n ∈ N \ P zu jeder Basis a ∈ (Z/nZ)× eine Fermat’sche Pseudoprimzahl ist. Der nächste Satz zeigt, dass dies mit dem Eulerschen Kriterium ausgeschlossen ist. Satz 12.23. (Umkehrung des Eulerschen Kriteriums) Eine ungerade natürliche Zahl n ∈ N ist genau dann eine Primzahl, wenn die Menge En mit der Einheitengruppe (Z/nZ)× übereinstimmt. Mit anderen Worten: Erfüllt eine natürliche Zahl n ∈ N für jedes Element a ∈ (Z/nZ)× das Eulersche Kriterium, so ist n tatsächlich eine Primzahl. Beweis. Für eine Primzahl n ∈ P folgt die Behauptung En = (Z/nZ)× direkt aus Satz 12.18. Für die Rückrichtung nehmen wir an, n ∈ N \ P sei eine ungerade Nichtprimzahl mit En = (Z/nZ)× . Da jede Eulersche Pseudoprimzahl nach Anmerkung 12.20 auch pseudoprim im Sinne von Fermat ist, muss n eine Carmichael-ZahlQsein. Es existieren also paarweise verschiedene Primzahlen p1 , . . . , pr ∈ P mit n = ri=1 pi . Nach dem Hauptsatz über Simultane Kongruenzen können wir eine Einheit a ∈ (Z/nZ)× so wählen, dass a modulo p1 kein quadratischer Rest und bezüglich aller weiteren pi kongruent 1 ist. Nach Voraussetzung gilt dann r a Y a = = −1 ≡ a(n−1)/2 mod n. n p i i=1 122 Die Sätze von Fermat und Euler Für alle Teiler p von n gilt nun a(n−1)/2 ≡ −1 mod p. Dies ist ein Widerspruch, denn wir haben a so gewählt, dass beispielsweise a ≡ 1 mod p2 gilt. Insbesondere ist damit a(n−1)/2 ebenfalls kongruent 1 modulo p2 . Korollar 12.24. Es sei n ∈ N eine ungerade natürliche Zahl. Falls n keine Primzahl ist, besitzt sie mindestens 21 ϕ(n) Eulersche Zeugen für ihre Zerlegbarkeit. Beweis. Nach obigem Satz 12.23 ist n genau dann keine Primzahl, wenn die Menge En eine echte Untergruppe von (Z/nZ)× darstellt. In unserem Fall existiert also eine natürliche Zahl c ≥ 2, sodass #En · c = #(Z/nZ)× = ϕ(n) gilt. Die Zeugen für die Zerlegbarkeit von n sind gerade die Elemente aus (Z/nZ)× , die nicht in En liegen. Für deren Anzahl ergibt sich somit die Abschätzung 1 1 ϕ(n) − #En = ϕ(n)(1 − ) ≥ ϕ(n) · . c 2 Aus den bisher gesammelten Erkenntnissen über das Eulersche Kriterium lässt sich folgender probabilistischer Primzahltest ableiten. Algorithmus 12.25. (Primzahltest von Solovay und Strassen, 1977) Es sei n ∈ N eine ungerade natürliche Zahl. Man wähle zufällige, unabhängige und zu n teilerfremde natürliche Zahlen a1 , . . . , ar ∈ N. Alternativ kann man die ersten r Primzahlen wählen. 1. Man teste für n das Eulersche Kriterium zu jeder gewählten Basis aj . (n−1)/2 a 6≡ nj mod n existiert, ist aj ein 2. Falls ein Index j ∈ {1, . . . , r} mit aj Zeuge für die Zerlegbarkeit und n somit keine Primzahl. 3. Falls die Zahl n für alle Elemente aj das Eulersche Kriterium erfüllt, können wir mit einer Fehlerwahrscheinlichkeit von W ≤ 21r erwarten, dass n eine Primzahl ist. Satz 12.26. (Solovay und Strassen) Es sei n ∈ N \ P eine ungerade Nichtprimzahl. Dann gelten: (a) Der Test von Solovay und Strassen findet bei r unabhängigen Versuchen mit einer Wahrscheinlichkeit von 1 − 2−r einen Zeugen für die Zerlegbarkeit von n. (b) Für jeden Versuch genügen dabei O(ld(n)µ(ld(n))) Bitoperationen, d.h. der Solovay-Strassen Primzahltest ist “probabilistisch polynomial”. 12.3 Das Eulersche Kriterium 123 Beweis. Teil (a) des Satzes folgt direkt aus Korollar 12.24. Die Wahrscheinlichkeit, dass eine Testzahl aj kein Eulersche Zeuge ist, ist geringer als 21 . Bei r unabhängigen Versuchen ist die Wahrscheinlichkeit, keinen Zeugen zu finden, somit ≤ 21r . Es bleibt noch die Aufwandsanalyse: Für die Berechnung von a(n−1)/2 mod n benötigen wir O(ld(n)) Multiplikationen mit jeweils einer Division mit Rest. Wir erhalten also einen Gesamtaufwand von O(ld(n)µ(ld(n))) Bitoperationen. Die Berechnung des a Jacobi-Symbols n ist etwas schneller und benötigt, wie wir bereits gesehen haben, höchstens O(ld(a) ld(n)) Bitoperationen. Solovay und Strassen liefern uns einen Primzahltest mit polynomialer Laufzeit. Leider ist dieser nur von probabilistischer Natur. Falls wir keinen Zeugen für die Zerlegbarkeit finden, können wir nicht mit vollständiger Sicherheit wissen, ob die untersuchte Zahl n ∈ N tatsächlich eine Primzahl ist. In den nächsten Kapiteln untersuchen wir, ob generell schnellere Primzahltests existieren und ob es deterministische Verfahren (in polynomialer Laufzeit) zur Lösung des Problems gibt. 124 Die Sätze von Fermat und Euler Kapitel 13 Der Primzahltest von Miller-Rabin 13.1 Strenge Pseudoprimzahlen Definition 13.1. (Strenge Pseudoprimzahl) Es seien n ∈ N eine ungerade Nichtprimzahl und a ∈ Z eine dazu teilerfremde ganze Zahl. Des Weiteren sei (n − 1) wie folgt zerlegt: (n − 1) = 2t · u. Hierbei verlangen wir, dass u ∈ N nicht mehr weiter durch 2 teilbar ist, d.h. t = ord2 (n − 1) die maximale Zweierpotenz in (n − 1) ist. Wir nennen die Zahl n genau dann eine strenge Pseudoprimzahl zur Basis a, wenn modulo n entweder eine Zahl s ∈ s {0, . . . , (t − 1)} mit a2 ·u ≡ −1 existiert oder wenn au ≡ 1 gilt. Sollte keine der beiden Bedingungen zutreffen, ist a ein strenger Zeuge für die Zerlegbarkeit von n. Bemerkung 13.2. Besitzt eine ungerade natürliche Zahl n ∈ N gemäß obiger Definition 13.1 einen strengen Zeugen für die Zerlegbarkeit, so ist n keine Primzahl. Beweis. Es sei a der gefundene Zeuge für die Zerlegbarkeit von n. Des Weiteren nehmen wir an, dass n trotz allem eine Primzahl ist. Die Menge M = {s ∈ Z | s a2 u 6= 1} ist dann wegen 0 ∈ M nicht leer. Da unserer Annahme nach n eine Primzahl ist und somit nach dem Satz von Fermat a(n−1) = 1 gelten muss, besitzt m M ein maximales Element m = max {s ∈ Z | s ∈ M} < t. Hieraus folgt, dass a2 ·u eine Nullstelle des Polynoms T 2 − 1 ∈ Fn [T ] ist. Nach der Definition der Menge M m kann a2 ·u aber nur gleich der Klasse −1 und a damit kein Zeuge für die Zerlegbarkeit sein. Dies steht im Widerspruch zu unserer Voraussetzung. Beispiel 13.3. Für alle Nichtprimzahlen n < 25 · 109 mit Ausnahme der Zahl n = 3 215 031 751 sind bereits 2, 3, 5 oder 7 Zeugen für die Zerlegbarkeit. Bis zu der Schranke 2047 genügt sogar lediglich die Zahl 2, um alle Nichtprimzahlen zu erkennen. Satz 13.4. Jeder Eulersche Zeuge für die Zerlegbarkeit einer ungeraden natürlichen Zahl ist auch ein strenger Zeuge für die Zerlegbarkeit. 126 Der Primzahltest von Miller-Rabin Q Beweis. Es gelte n = ri=1 pei i und es sei n − 1 = 2t u mit ungeradem u. Der Satz ist bewiesen, wenn gezeigt ist, dass für jede Restklasse a ∈ (Z/nZ)× , die kein strenger Zeuge für die Zerlegbarkeit ist, a ∈ En folgt. Ist a kein Zeuge für die Zerlegbarkeit, gilt eine der beiden Bedingungen für strenge Pseudoprimzahlen aus Definition 13.1. Es gelte zunächst a u = 1. Hieraus ergibt sich a n−1 2 t−1 u ≡ a2 ≡1 mod n. Der Wert von na ändert sich nicht, wenn man a durch eine modulo n kongruente u u Zahl ersetzt. Es gilt also 1 = n1 = an = na . Da u ungerade ist, muss bereits n−1 a = 1 gelten und damit die Kongruenz na ≡ a 2 mod n. Somit ist die Restklasse n a in diesem Fall ein Element der Menge En . s Es gelte nun andererseits a2 u ≡ −1 mod n für ein s ∈ {0, . . . , (t − 1)}. Für alle s Indizes i ∈ {1, . . . , r} sei di die Ordnung von a in Fpi . Aus a2 u ≡ −1 mod pi ergibt sich di - 2s u und di | 2s+1 u. Daher hat di die Darstellung di = 2s+1 vi mit ungeradem vi . Aufgrund des Satzes von Fermat 12.6 erhält man wegen di | (pi − 1) zunächst 2s+1 | (pi − 1), woraus die Existenz eines ki ∈ N mit pi − 1 = 2s+1 ki bzw. pi = 1 + 2s+1 ki folgt. Mit Hilfe des binomischen Lehrsatzes erhalten wir hieraus n= r Y pei i ≡1+2 s+1 r X i=1 ki ei mod 2s+2 . i=1 P = 2t−1 u ≡ P 2s ri=1 ki ei mod 2s+1 . Nach einer Für n − 1 ergibt sich somit n−1 2 Division durch 2s erhält man weiter 2t−s−1 u ≡ ri=1 ki ei mod 2. Unter Beachtung von u ≡ 1 mod 2 folgt die Gleichungskette a n−1 2 t−1 u = a2 s t−s−1 = (a2 u )2 t−s−1 = (−1)2 Pr ≡ (−1) i=1 ki ei mod n. (13.5) di Da di die Ordnung von a ∈ Fpi ist, gilt überdies a 2 ≡ −1 mod pi . Hieraus folgt nach den obigen Überlegungen die Kongruenzkette a pi ≡a di pi −1 · d i pi −1 2 =a2 und damit a n = r Y i=1 ≡ (−1) a ei pi = pi −1 di pi −1 ≡ (−1) 2s+1 ≡ (−1)ki mod pi r Y Pr (−1)ki ei = (−1) i=1 ki ei . i=1 Zusammen mit der Gleichung 13.5 ergibt dies a n−1 2 ≡ a n mod n bzw. a ∈ En . Korollar 13.6. Zu einer ungeraden Nichtprimzahl n ∈ N \ P gibt es mindestens 1 ϕ(n) strenge Zeugen für die Zerlegbarkeit. 2 Beweis. Nach Satz 13.4 genügt es, die Anzahl der Eulerschen Zeugen für die Zerlegbarkeit abzuschätzen. Nach Folgerung 12.24 liegt diese bei mindestens 12 ϕ(n) Elementen. 13.2 Der Satz von Rabin 127 Eine äquivalente Interpretation des obigen Satzes ist: Jede strenge Pseudoprimzahl ist auch eine Eulersche Pseudoprimzahl. Es gilt somit für Pseudoprimzahlen: Streng / Eulersch / Fermat’sch Das folgende Beispiel zeigt, dass die Bedingung aus Definition 13.1 tatsächlich strenger ist als jene aus dem Kriterium von Euler. Beispiel 13.7. Die Basis 2 ist ein strenger Zeuge für die Zerlegbarkeit von 1905, wohingegen nach dem Eulerschen Kriterium die Zahl 1905 pseudoprim zur Basis 2 ist. Aufgabe 13.8. Es seien n ∈ N eine natürliche Zahl mit n ≡ 3 mod 4 und a ∈ N mit ggT(a, n) = 1. Man zeige, dass a genau dann ein Eulerscher Zeuge für die Zerlegbarkeit von n ist, wenn a ein strenger Zeuge für die Zerlegbarkeit von n ist. 13.2 Der Satz von Rabin Bemerkung 13.9. Es seien m ∈ N eine natürliche Zahl und (Zn , ·) eine zyklische Gruppe mit n Elementen. Dann ist die Anzahl der Elemente x ∈ Zn mit ord(x) | m gleich dem größten gemeinsamen Teiler von m und n. #{x ∈ Zn | xm = 1} = ggT(m, n). Beweis. Es seien d = ggT(m, n) der größte gemeinsame Teiler von m und n. Des Weiteren sei die Gruppe Zn =< z > zyklisch erzeugt von einem Element z. Das heißt, für jedes x ∈ Zn existiert ein eindeutiger Exponent e ∈ {1, . . . , n}, sodass gilt: x = z e . Das Element xm = z e·m ist wegen der Ordnung von z genau dann das Einselement, wenn n den Exponenten e · m teilt. Durch das Kürzen durch den größten gemeinsamen Teiler d erhalten wir nd | (e · md ). Auf Grund der eindeutigen Primfaktorzerlegung in Z folgern wir, dass nd bereits den Exponenten e teilen muss. Da e in dem Intervall [1, n] liegt, gibt es eine eindeutig bestimmte natürliche Zahl a ≤ d mit nd · a = e. Für die von uns betrachteten Elemente x ∈ Zn mit xm = 1 und eindeutigem Exponenten ordz (x) = e existiert damit ein eindeutig bestimmtes a ∈ {1, . . . , d} mit n ·a = e und umgekehrt. Die Anzahl dieser Elemente ist damit gerade ggT(m, n). d Bemerkung 13.10. Es seien p ∈ P eine ungerade Primzahl, q = pl eine zugehörige Primzahlpotenz und r ∈ N eine ungerade natürliche Zahl. Außerdem sei die Eulersche ϕ-Funktion von q wie folgt zerlegt: ϕ(q) = 2t · u mit t = ord2 (ϕ(q)). Für eine s natürliche Zahl s ∈ N betrachten wir die Menge M = {x ∈ (Z/qZ)× | x2 ·r = −1}. Es gilt dann für deren Elementanzahl: s 2 · ggT(u, r) für s < t #M = 0 für s ≥ t. 128 Der Primzahltest von Miller-Rabin Beweis. Die Einheitengruppe (Z/qZ)× ist nach Satz 12.3 zyklisch und wird von einem Element z der Ordnung ϕ(q) erzeugt. Für ein x ∈ M existiert damit ein 1 s s (t−1) ·u Exponent e, sodass x2 ·r = z 2 ·r·e = −1 = z 2 ϕ(q) = z 2 gilt. Auf Grund der s Ordnung von z ergibt sich daraus die Kongruenz 2 · r · e ≡ 2(t−1) · u mod ϕ(q). Diese Gleichung hat für kein s ≥ t eine Lösung, da 2 kein Teiler von u ist. Die Menge M ist in diesem Fall leer. Es seien nun die Zahl s echt kleiner als t und d = ggT(u, r). Dann erhalten wir aus obiger Kongruenz: dr · e ≡ 2t−s−1 · ud mod (2t−s · ud ). Diese ist für den Exponenten e eindeutig lösbar. Insgesamt ergeben sich somit 2s · d Lösungen für die Gleichung 2s · r · e ≡ 2t−1 · u mod ϕ(n). Im nächsten Satz zeigt sich, dass wir unter der Verwendung des Kriteriums für strenge Pseudoprimzahlen eine deutlich bessere Abschätzung für die Anzahl der Zerlegbarkeitszeugen finden, als dies mit der Eulerschen Methode möglich ist. Satz 13.11. (Satz von Rabin) Es sei n ∈ N \ P eine ungerade Nichtprimzahl ungleich 9. Dann gibt es in (Z/nZ)× mindestens 43 ϕ(n) strenge Zeugen für die Zerlegbarkeit. Beweis. Wir zerlegen die Zahl n in Primzahlpotenzen n = pe11 · · · perr = q1 · · · qr mit qi = pei i . Außerdem seien (n − 1) und die Eulerschen ϕ-Funktionen ϕ(qi ) folgendermaßen zerlegt: (n − 1) = 2t · u und ϕ(qi ) = 2ti · ui , wobei t und ti wie gewohnt die maximalen 2-Exponenten in (n − 1) bzw. ϕ(qi ) sind. Ohne Einschränkung gelte darüberhinaus t1 ≤ t2 ≤ . . . ≤ tr . Für jeden Index i ∈ {1, . . . , r} existieren dann natürliche Zahlen t̃i , ũi ∈ N, sodass für den größten gemeinsamen Teiler von (n − 1) und ϕ(qi ) gilt: ggT((n − 1), ϕ(qi )) = 2t̃i · ũi . Dabei gelten t̃i = min{t, ti } und ũi = ggT(u, ui ). Als nächstes zählen wir alle Basen, zu denen n die Bedingung einer strengen Pseudoprimzahl erfüllt. Wir wollen zeigen, dass es nicht mehr als 14 ϕ(n) solcher Elemente geben kann. Es sei also Bn die Menge all dieser Basen a ∈ (Z/nZ)× : × u Bn = {a ∈ (Z/nZ) | a = 1} ∪˙ | {z } ∗ =:Bn t−1 [ s=0 s ·u {a ∈ (Z/nZ)× | a2 | {z s =:Bn = −1} . } Nach dem Hauptsatz über Kongruenzen ist die Menge Bn∗ isomorph zu Qr Simultane dem direkten Produkt i=1 Bq∗i . Mit Bemerkung 13.9 ergibt sich dann #Bn∗ = r Y i=1 #Bq∗i = r Y i=1 ggT(u, ϕ(qi )) = r Y i=1 ggT(u, ui ) = r Y i=1 ũi . 13.2 Der Satz von Rabin 129 Analog zeigen wir mit Hilfe von Bemerkung 13.10, dass für die Elementanzahl der Mengen Bns gilt Qr r s Y für s < t1 s s i=1 2 ggT(ui , u) #Bn = #Bqi = 0 für s ≥ t1 i=1 = 2 rs r Y ũi für s < t1 . i=1 Insgesamt erhalten wir damit die P 1 −1 Q Elementanzahl von Bn als Summe der obigen Zahlen: #Bn = (1 + ts=0 2rs ) · ri=0 ũi . Im nächsten Schritt teilen wir diesen Wert durch ϕ(n) und formen das Ergebnis wie folgt um: tP 1 −1 tP 1 −1 2rs Y 1+ 2rs r ũ #Bn i s=0 s=0 = t1 +...+t · =: f. ≤ t1 +...+t r r ϕ(n) 2 u 2 i |i=0{z } 1+ ≤1 Unser Ziel ist, die Konstante f nach oben durch den Wert 41 abzuschätzen, wodurch die Behauptung #Bn ≤ 14 ϕ(n) bewiesen wäre. Aus den Eigenschaften der Geometrischen Reihe und unter Verwendung von t1 + . . . + tr ≥ r · t1 ergibt sich die folgende Ungleichungskette: r 1 2r − 2 2(2 − 1) 1 1 (2r − 1) + (2rt1 − 1) ≤ · 1 + · . ≤ = f= r t +...+t r rt r r r−1 r (2 − 1)2 1 (2 − 1) 2 1 (2 − 1) 2 2 1 Für den Fall r ≥ 3 folgt nun die Behauptung direkt aus f ≤ 2r−1 ≤ 41 . Die Fälle r = 2 und r = 1 müssen gesondert betrachten werden. Es sei zunächst r = 2. Die Zahl n hat somit die Darstellung n = pe11 · pe22 und es gilt f ≤ 12 . Wenn wir annehmen, dass entweder ũ1 echt kleiner als u1 oder ũ2 echt kleiner als u2 ist, gilt für unser oben definiertes g (da beide ui ungerade sind): g ≤ 31 . Für die Elementanzahl der Menge Bn ergibt sich damit #Bn = f · g · ϕ(n) ≤ 1 1 · · ϕ(n) < 14 ϕ(n). Es gelte also im Folgenden ũ1 = u1 sowie ũ2 = u2 . Dann sind 2 3 die Zahlen ui definitionsgemäß Teiler von u und damit auch von (n − 1). Wenn wir weiterhin annehmen, die Exponenten ei seien echt größer als 1, dann ist pi wegen ϕ(qi ) = pei i −1 (pi − 1) = 2ti ui ein Teiler von ui und es gilt pi | (n − 1). Dies ist ein Widerspruch zu n ≡ 0 mod pi . Die natürliche Zahl n hat demzufolge die einfache Darstellung n = p1 · p2 . Insbesondere ist u1 wegen ϕ(q1 ) = (p1 − 1) = 2t1 u1 ein Teiler von (p1 − 1), das heißt es gilt p1 ≡ 1 mod u1 . Da nach wie vor (n − 1) von u1 geteilt wird, erhalten wir die Kongruenz: 0 ≡ n − 1 ≡ p1 · p 2 − 1 ≡ p2 − 1 mod u1 . Weil u1 ein Teiler von (p2 − 1) = ϕ(q2 ) = 2t2 u2 und außerdem ungerade ist, gilt sogar u1 | u2 . Analog lässt sich schließen, dass auch u1 von u2 geteilt wird. Also gilt 130 Der Primzahltest von Miller-Rabin u1 = u2 . Da wir den Fall r = 2 betrachten, muss zusätzlich t2 echt größer als t1 sein. Wir können dann wegen t1 + t2 ≥ t1 + t1 + 1 die Konstante f genauer abschätzen durch 1 2r − 2 1 1 (2r − 1) + (2rt1 − 1) 1 ≤ · 1 + ≤ · . f= = (2r − 1)2t1 +t2 2(2r − 1) 2rt1 2 2r−1 4 Abschließend betrachten wir den Fall r = 1. Hier ist die Zahl n = q = pe eine einfache Primzahlpotenz mit e > 1. Da die Einheitengruppe (Z/nZ)× für ein solches n von einem Element der Ordnung ϕ(n) erzeugt wird, erhalten wir mit Bemerkung 13.9: #Bn = #{a ∈ (Z/nZ)× | an−1 = 1} = ggT(n − 1, ϕ(n)). Der größte gemeinsame Teiler von ϕ(n) = pe−1 (p − 1) und (n − 1) = (pe − 1) ist hier (p − 1). Für die Anzahl aller Pseudoprimzahlen ergibt sich somit wegen pe > 9: #Bn = (p − 1) = ϕ(n) 1 ≤ ϕ(n). e−1 p 4 Auf der Suche nach einem effektiven Primzahltest wollen wir uns noch einmal an das letzte Kapitel erinnern. Der Primzahltest von Solovay-Strassen (vgl. Algorithmus 12.25) verwendet als Grundlage zur Erkennung von Nichtprimzahlen das Kriterium von Euler. Ganz ähnlich gehen Miller und Rabin bei ihrem Test vor. Sie verwenden das Kriterium für strenge Pseudoprimzahlen mit dem Vorteil, dass sich für eine Nichtprimzahl n ∈ N \ P nach Satz 13.11 eine deutlich bessere Abschätzung für die Anzahl der Zerlegbarkeitszeugen ergibt. Die Wahrscheinlichkeit einer Falschaussage wie n ∈ P lässt sich dementsprechend verringern. Der folgende Primzahltest von Miller und Rabin hat im Vergleich zu jenem von Solovay-Strassen zwar keine bessere Komplexität, dafür aber eine geringere Fehlerwahrscheinlichkeit. Nichts desto weniger hat auch dieser Test den Nachteil, von probabilistischer Natur zu sein. Algorithmus 13.12. (Primzahltest von Miller und Rabin) Es sei n ∈ N eine ungerade natürliche Zahl. Man wähle zufällige, unabhängige und zu n teilerfremde natürliche Zahlen a1 , . . . , ar ∈ N. Alternativ kann man die ersten r Primzahlen wählen. 1. Man teste für n das Kriterium für strenge Pseudoprimzahlen zu jeder gewählten Basis aj . 2. Falls für einen Index j ∈ {1, . . . , r} mit aj ein strenger Zeuge für die Zerlegbarkeit gefunden wird, so ist n keine Primzahl. 13.3 Bemerkungen zur Erweiterten Riemannschen Vermutung 131 3. Falls die Zahl n für alle Elemente aj das Kriterium für strenge Pseudoprimzahlen erfüllt, können wir mit einer Fehlerwahrscheinlichkeit von W ≤ 41r annehmen, dass n eine Primzahl ist. Satz 13.13. (Miller und Rabin) Es sei n ∈ N \ P eine ungerade Nichtprimzahl. Dann gelten: (a) Der Test von Miller und Rabin findet bei r unabhängigen Versuchen mit einer Wahrscheinlichkeit von 1 − 4−r einen Zeugen für die Zerlegbarkeit von n. (b) Für jeden Versuch genügen dabei O(ld(n)µ(ld(n))) Bitoperationen, d.h. der Miller-Rabin Primzahltest ist “probabilistisch polynomial”. Beweis. Die Aussage (a) folgt direkt aus Satz 13.11. Die Wahrscheinlichkeit, dass eine Testbasis aj kein strenger Zeuge für die Zerlegbarkeit von n ist, liegt höchstens bei 41 . Bei r unabhängigen Versuchen ist die Wahrscheinlichkeit keinen Zeugen für die Zerlegbarkeit zu finden somit ≤ 41r . Die Aufwandsanalyse zu Teil (b) verläuft analog zu der Analyse im Beweis zu Satz 12.26. Im nächsten Abschnitt werden wir feststellen, dass unter der Annahme einer sehr berühmten Vermutung die Primzahltests von Solovay-Strassen und Miller-Rabin deterministisch werden. 13.3 Bemerkungen zur Erweiterten Riemannschen Vermutung Definition 13.14. (Dirichlet-Charakter, L-Reihe, ERV) Es sei n eine natürliche Zahl. Ein Gruppenhomomorphismus χ : (Z/nZ)× −→ C× zwischen den Einheitengruppen (Z/nZ)× und C× heißt Charakter modulo n. Eine von χ abhängige Abbildung χ : Z −→ C nennen wir Restklassencharakter (Dirichlet-Charakter) modulo n, wenn sie folgendermaßen definiert ist: χ(a) für a ∈ (Z/nZ)× χ(a) := 0 für a 6∈ (Z/nZ)× . Für einen gegebenen Restklassencharakter χ und komplexe Zahlen z ∈ C mit positivem Realteil Re(z) > 0 ist die Dirichlet’sche L-Reihe definiert als ∞ X χ(m) Lχ (z) := . z m m=1 132 Der Primzahltest von Miller-Rabin Es sei s ∈ C eine komplexe Nullstelle der Dirichlet’schen L-Reihe Lχ . Ferner befinde sich der Realteil von s in dem Intervall (0, 1]. Dann besagt die Erweiterte Riemannsche Vermutung (ERV), dass der Realteil von s gerade 12 ist: Re(s) = 12 . Anmerkung 13.15. Mit dem konstanten Charakter χ ≡ 1 erhält man die “klassische” Riemannsche Vermutung. Satz 13.16. (Ankeny-Montgomery-Bach, 1985) Es seien n ∈ N eine natürliche Zahl und χ 6= 1 ein Charakter modulo n. Unter Verwendung der Erweiterten Riemannschen Vermutung existiert dann eine Primzahl p < 2 ln(n)2 , sodass gilt: χ(p) 6= 1. Beweis. Siehe Bach[2]. Anmerkung 13.17. Im Folgenden verwenden wir Satz 13.16 als Ersatz für die Erweiterte Riemannsche Vermutung (ERV). Korollar 13.18. Es seien n ∈ N eine natürliche Zahl und G eine endliche abelsche Gruppe. Dann gibt es unter Annahme der Erweiterten Riemannschen Vermutung zu jedem Homomorphismus 1 6= η : (Z/nZ)× −→ G eine Primzahl p < 2 ln(n)2 , sodass modulo n die zugehörige Restklasse p nicht in Kern(η) liegt. Beweis. Es sei η : (Z/nZ)× −→ G der von uns betrachtete Homomorphismus. Nach Qr dem Hauptsatz über endliche abelsche Gruppen können wir die Gruppe G = j=1 Gj als direktes Produkt von zyklischen Gruppen Gj schreiben. Für jeden Index j ∈ {1, . . . , r} sei Gj erzeugt von dem Element σj der Ordnung ej . Dann erhalten wir via εj : Gj −→ e2πi/ej ≤ C× σj 7−→ e2πi/ej einen kanonischen Isomorphismus zwischen Gj und der Gruppe der komplexen ej -ten Einheitswurzeln. Es sei nun πj : G −→ Gj die Projektion auf die j-te Komponente des obigen kartesischen Produktes. Weiterhin definieren wir mit ηj := πj ◦ η einen Gruppenhomomorphismus von (Z/nZ)× nach Gj und erhalten nach einer weiteren Verknüpfung mit εj einen Charakter χj := εj ◦ ηj im Sinne von Definition 13.14: χj (Z/nZ)× ηj # / e2πi/ej ; εj Gj Da nach Voraussetzung die Abbildung η nicht trivial ist, existiert ein Index j ∈ {1, . . . , r} mit ηj 6= 1. Auf Grund der Isomorphie von εj gilt dies auch für den Charakter χj = εj ◦ ηj . Nach Satz 13.16 gibt es also eine Primzahl p < 2 · ln(n)2 mit χj (p) 6= 1. Wir nutzen noch einmal die Isomorphie von εj aus und erhalten (ε−1 j ◦ χj )(p) = ηj (p) 6= 1. Damit folgt η(p) 6= 1 wie behauptet. 13.3 Bemerkungen zur Erweiterten Riemannschen Vermutung 133 Satz 13.19. Unter Voraussetzung der Erweiterten Riemannschen Vermutung sind die Primzahltests von Solovay-Strassen und Miller-Rabin deterministisch in der Bitkomplexität O(ld(n)2 · ld(n)µ(ld(n))). Beweis. Da jeder Eulersche Zeuge für die Zerlegbarkeit auch ein strenger Zerlegbarkeitszeuge ist, genügt es, die Behauptung für den Primzahltest von Solovay-Strassen zu beweisen. Nach Satz 12.23 ist eine natürliche Zahl n ∈ N genau dann eine Primn−1 zahl, wenn die Menge En := {a ∈ (Z/nZ)× | a 2 ≡ na mod n} die volle Einheitengruppe (Z/nZ)× ist. Wir betrachten nun den Gruppenhomomorphismus η : (Z/nZ)× −→ a 7−→ a n (Z/nZ)× n−1 a 2 mod n mit Kern(η) = En . Dann gilt für eine Nichtprimzahl n ∈ N \ P nach Satz 12.23: Kern(η) 6= (Z/nZ)× . Damit liefert η 6= 1 einen nichttrivialen Gruppenendomorphismus von (Z/nZ)× . Unter der Verwendung von Korollar 13.18 existiert dann eine n−1 p 2 Primzahl p < 2 ln(n) mit η(p) 6= 1 bzw. p 2 6≡ n mod n. Der Primzahltest von Solovay-Strassen findet demnach in O(ld(n)2 · ld(n)µ(ld(n))) Bitoperationen einen Zeugen für die Zerlegbarkeit von n. 134 Der Primzahltest von Miller-Rabin Kapitel 14 Der AKS-Primzahltest Der nach Manindra Agrawal, Neeraj Kayal und Nitin Saxena benannte Primzahltest aus dem Jahr 2002 war der erste deterministische Algorithmus in polynomialer Laufzeit, der ohne die Gültigkeit der Erweiterten Riemannschen Vermutung die Entscheidung herbeiführen kann, ob eine ganze Zahl Primzahl ist oder nicht. 14.1 Vorbemerkungen Die folgende Beobachtung ist für den Test von grundlegender Bedeutung. Bemerkung 14.1. Es seien n ≥ 2 eine natürliche Zahl und a ∈ Z eine dazu teilerfremde ganze Zahl. Dann ist n genau dann eine Primzahl, wenn folgende Kongruenz in Z[T ] erfüllt ist: (T + a)n ≡ T n + a mod n. P Beweis. Aus dem binomischen Lehrsatz erhalten wir (T + a)n = ni=0 ni an−i T i . Es sei nun n ∈ P eine Primzahl. Dann wird für jeden Index j ∈ {1, . . . , (n − 1)} der n Binomialkoeffizient j von n geteilt und ist damit kongruent 0 modulo n. Da nach n dem Satz von Fermat (siehe Kor. n gilt, ergibt sich die außerdemn a ≡ a mod Pn−112.6) n n−i i n n Behauptung (T + a) ≡ a + i=1 i a T + T ≡ a + T n mod n. Ist andererseits n keine Primzahl, so existiert eine Primzahl p ∈ P mit p | n. Es seien k := ordp (n) die k−1 maximale p-Potenz in n und c ∈ N mit pk ·c = n. Dann ist np = p ·c·(n−1)···(n−(p−1)) . (p−1)···1 Da p zu a und den Faktoren (n − 1), (n − 2), . . . , (n − (p − 1)) teilerfremd ist, erhalten wir np an−p 6≡ 0 mod pk . Diese Ungleichung gilt auch modulo n, d.h. die Behauptung ist bewiesen. Es liegt nahe, Bemerkung 14.1 für einen Primzahltest zu verwenden. Man wähle eine zu n teilerfremde Zahl a und überprüfe, ob die obige Identität gültig ist. Im schlimmsten Fall müssen hierfür allerdings alle Koeffizienten von (T + a)n berechnet werden, womit sich für diese Methode ein exponentieller Aufwand ergibt. 136 Der AKS-Primzahltest Der AKS-Primzahltest betrachtet nun die Polynome nicht nur modulo n, sondern für ein geeignetes r auch modulo T r − 1. Er schafft es, die Kongruenz (T + a)n ≡ T n + a mod (n, T r − 1) in polynomialer Laufzeit zu berechnen. Nachteilig ist, dass die Gleichung nun auch für manche Nichtprimzahlen erfüllt ist. Wie man trotzdem einen Primzahltest erhält, erfahren wir in den nächsten Abschnitten. Zunächst beweisen wir allerdings einige für den Algorithmus wichtige Abschätzungen. Bemerkung 14.2. Es seien m ∈ N ein natürliche Zahl und km das kleinste gemeinsame Vielfache der Elemente aus der Menge {2, 3, . . . , m}. Dann gilt: km = kgV{2, . . . , m} ≥ 2m−2 . P Beweis. Es sei f (T ) = ni=0 ai T i ∈ Z[T ] ein ganzzahliges Polynom n-ten Grades. Die Betrachtung des zugehörigen Integrals auf dem Intervall [0, 1] liefert: n 1 Z 1 X 1 i+1 ai f (T )dT = T · Z. ∈ i+1 k n+1 0 i=0 0 Speziell für das Polynom g(T ) = T n (1 − T )n ∈ Z[T ] stellen wir fest, dass für alle x aus dem offenen Intervall (0, 1) gilt: 0 < g(x) ≤ g( 21 ) = 41n . Nach obiger Überlegung R1 a existiert dann eine natürliche Zahl a ∈ N \ {0} mit k2n+1 = 0 g(T )dT ≤ (1 − 0) 41n . Somit ist k2n+1 nach unten durch 4n beschränkt. Für eine ungerade natürliche Zahl m erhalten wir durch eine geeignete Substituierung der Indizes: km ≥ 4(m−1)/2 = 2m−1 . Entsprechend ergibt sich für eine gerade Zahl: km ≥ km−1 ≥ 2m−2 . Korollar 14.3. (Abschätzung der Primzahlfunktion) Für eine natürliche Zahl n ∈ N lässt sich π(n) = #{p ∈ P | p ≤ n} nach unten durch (n−2) abschätzen. ld(n) Beweis. Es sei n ∈ N eine natürliche Zahl. Dann gibt es für jede Primzahl p ≤ n eine eindeutig bestimmte Potenz e ∈ N mit pe ≤ n < pe+1 . Damit ist e = blogp (n)c die maximale p-Potenz, für die gilt: peQ| kgV{2, 3 . . . , n}. Der Wert kn lässt sich somit wie folgt abschätzen: 2n−2 ≤ kn = P3p≤n pblogp (n)c ≤ nπ(n) . Wir erhalten daraus die Behauptung (n − 2) ≤ π(n) ld(n). Definition 14.4. (Ordnung einer Restklasse) Es seien n ∈ N und r ∈ N zwei teilerfremde natürliche Zahlen. Dann bezeichne ord(Z/rZ)× (n) := min{k ∈ N \ {0} | nk ≡ 1 mod r} im Folgenden die Ordnung der Restklasse n in der Einheitengruppe (Z/rZ)× . 14.2 p-ähnliche Zahlen 137 Bemerkung 14.5. Zu jeder natürlichen Zahl n ≥ 2 existiert eine natürliche Zahl r ≤ 10dld(n)5 e, die entweder ein Teiler von n ist, oder die teilerfremd zu n ist und für die ord(Z/rZ)× (n) > 4 ld(n)2 gilt. Beweis. Es seien r1 , . . . , rt ∈ N alle Zahlen, die teilerfremd zu n sind und für die ord(Z/rj Z)× (n) ≤ 4 ld(n)2 gilt. Es gibt nur endlich viele solcher Elemente, da diese alle Q ld(n)2 c i das Produkt b4 (n − 1) teilen. Ihr kleinstes gemeinsames Vielfaches können i=1 wir demnach folgendermaßen abschätzen: b4 ld(n)2 c kgV{r1 , . . . , rt } ≤ Y 2 (4 ld(n)2 +1) (ni − 1) < n2 ld(n) 4 +2 ld(n)2 ≤ n8 ld(n) 4 −2 < n10 ld(n) . i=1 Wählen wir m := 10dld(n)5 e, so ergibt sich nach Bemerkung 14.2 die Abschätzung kgV{2, . . . , m} = km ≥ 2m−2 ≥ n10 ld(n) 4 −2 > kgV{r1 , . . . , rt }. Es existiert also ein Element r ≤ m, welches das kleinste gemeinsame Vielfache kgV{r1 , . . . , rt } nicht teilt. Wenn dieses r teilerfremd zu n ist, so gilt zudem ord(Z/rZ)× (n) > 4 ld(n)2 . 14.2 p-ähnliche Zahlen In diesem Abschnitt seien die natürliche Zahl n ∈ N und ein zugehöriger Primteiler p ∈ P fest gewählt. Weiterhin sei r ∈ N eine zu n teilerfremde natürliche Zahl mit ord(Z/rZ)× (n) > 4 ld(n)2 . Ferner gelte die Kongruenz (T + a)n ≡ T n + a mod (T r − 1, n) für alle Zahlen a aus einer Menge L := {1, . . . , l} mit einem noch zu spezifizierenden l. Definition 14.6. (p-ähnliche Zahlen) Eine natürliche Zahl m ∈ N nennen wir p-ähnlich bezüglich f (T ) ∈ Z[T ], wenn f (T )m ≡ f (T m ) mod (T r − 1, p) gilt. Beispiel 14.7. (1) Jede Primzahl p ∈ P erfüllt nach Bemerkung 14.1 die Kongruenz (T + a)p ≡ T p + a mod p für alle ganzen Zahlen a ∈ Z. Sie ist damit p-ähnlich bezüglich (T + a) ∈ Z[T ] für alle a ∈ Z. (2) Nach unserer Generalvoraussetzung für diesen Abschnitt gilt: (T + a)n ≡ T n + a mod (T r − 1, n). Da p ein Teiler von n ist, bleibt die Kongruenz modulo (T r − 1, p) erhalten. Die Zahl n ist damit p-ähnlich bezüglich (T +a) für alle a ∈ L = {1, . . . , l}. Die nächste Bemerkung zeigt, dass die Eigenschaft “p-ähnlich” multiplikativ ist. Bemerkung 14.8. (Multiplikativität der p-Ähnlichkeit) (a) Es seien m und m̃ zwei p-ähnliche Zahlen bezüglich des selben ganzzahligen Polynoms f (T ) ∈ Z[T ]. Dann ist auch ihr Produkt m · m̃ p-ähnlich bezüglich f (T ). 138 Der AKS-Primzahltest (b) Ist eine Zahl m p-ähnlich bezüglich zweier Polynome f (T ) und g(T ), so ist sie es auch bezüglich deren Produkt f (T ) · g(T ). Beweis. Um Teil (a) zu beweisen, verwenden wir zuerst die p-Ähnlichkeit von m und erhalten f (T )m·m̃ ≡ f (T m )m̃ mod (T r − 1, p). Im nächsten Schritt ersetzen wir die Unbekannte T durch T m und nützen aus, dass T mr − 1 von T r − 1 geteilt wird. Dies liefert die Kongruenzkette f (T m )m̃ ≡ f (T m·m̃ ) ≡ f (T m·m̃ ) mod ((T m )r − 1, p) mod (T r − 1, p). Teil (b) folgt direkt aus der Definition p-ähnlicher Zahlen: (f (T )g(T ))m = f (T )m g(T )m ≡ f (T m )g(T m ) mod (T r − 1, p). Korollar 14.9. (a) Es sei f (T ) ∈ Z[T ] ein ganzzahliges Polynom der Form Ql ea mit ea ≥ 0. Dann ist jedes Element aus Mp = {ni pj | i, j ≥ 0} a=1 (T + a) p-ähnlich bezüglich f (T ). (b) Die Menge Gp = {m ∈ Z/rZ | m ∈ Mp } bildet eine Untergruppe von (Z/rZ)× und genügt der Ungleichung #Gp > 4 ld(n)2 . Beweis. Teil (a) der Folgerung ergibt sich direkt aus der Bemerkung 14.8 und dem Beispiel 14.7. Demnach sind die Zahl n und ihr Primteiler p jeweils p-ähnlich bezüglich der Polynome (T + 1), . . . , (T + l). Folglich ist durch die Multiplikativität der p-Ähnlichkeit ein Element m ∈ Mp p-ähnlich zu allen Polynomen der Form Ql ea a=1 (T + a) . Es bleibt noch Teil (b) zu zeigen. Die Zahl n ist nach Voraussetzung teilerfremd zu r, also auch deren Primteiler p. Modulo r ist also die Restklasse eines jeden Elementes m ∈ Mp in der Einheitengruppe (Z/rZ)× enthalten. Aus der Gruppenstruktur von Gp folgt dann Gp ≤ (Z/rZ)× . Da nach Voraussetzung ord(Z/rZ)× (n) > 4 ld(n)2 ist, gibt es schon unter den Potenzen von n mehr als 4 ld(n)2 Elemente in Gp . Bevor wir zur letzten Bemerkung in diesem Abschnitt kommen, sei an den Themenbereich der Kreisteilung erinnert. Definition 14.10. (Kreisteilungspolynom) Es seien K ein Körper und ζr eine primitive r-te Einheitswurzel aus einem geeigneten Erweiterungskörper. Dann heißt Y Φr (T ) := (T − ζrk ) 1≤k≤r ggT(k,r)=1 das r-te Kreisteilungspolynom über K. 14.2 p-ähnliche Zahlen 139 Bemerkung 14.11. Das r-te Kreisteilungspolynom liegt im Polynomring des zugrundeliegenden Primkörpers. Im Falle char(K) = 0 gilt sogar Φr (T ) ∈ Z[T ]. Beweis. Es sei K ein Körper der Charakteristik 0 oder p. Wir führen den Beweis durch vollständige Induktion. Für den Fall r = 1 ist Φ(T ) = T − 1 das 1-te Kreisteilungspolynom und liegt in Z[T ] bzw. Fp [T ]. Die Behauptung seiQnun richtig für alle t < r. Wie man leicht einsieht, ist das Polynom T r − 1 = d|r Φd (T ) Produkt der d-ten Kreisteilungspolynome aller Teiler d von r. Damit gilt für das r-te Kreisteilungspolynom: Y Tr − 1 mit g(T ) := Φd (T ). (14.12) Φr (T ) = g(T ) d|r d<r Nach Induktionsvoraussetzung sind die Koeffizienten der Polynome T r − 1 und g(T ) aus den Ringen Fp [T ] bzw. Z[T ]. Da g(T ) normiert ist, kann man in den Euklidischen Ringen Fp [T ] und Q[T ] eine Division mit Rest von T r − 1 durch g(T ) durchführen. Das heißt, es gibt in Fp [T ] bzw. Z[T ] eindeutig bestimmte Polynome h(T ) und r(T ), sodass gilt: T r − 1 = h(T )g(T ) + r(T ) mit deg(r) < deg(g). Diese Zerlegung gilt auch über den jeweiligen Kreisteilungskörpern Fp (ζr ) bzw. Q(ζr ), über denen nach obiger Gleichung bereits die Zerlegung T r − 1 = Φr (T )g(T ) gültig ist. Auf Grund der Eindeutigkeit der Division mit Rest erhalten wir demnach h(T ) = Φr (T ) und r(T ) = 0. Bemerkung 14.13. Das r-te Kreisteilungspolynom zerfällt über dem endlichen Körper Fp in Primfaktoren vom Grad ord(Z/rZ)× (p). Beweis. Es sei ζ eine primitive r-te Einheitswurzel über Fp . Für eine beliebige nak türliche Zahl k ∈ N ist Fpk der Zerfällungskörper von T p − T ∈ Fp [T ]. Also ist k ζ genau dann ein Element des Körpers Fpk , wenn ζ p −1 = 1 und somit die Kongruenz pk ≡ 1 mod ord(ζ) gelten. Da wir eine r-te Einheitswurzel betrachten, ist dies gerade dann der Fall, wenn pk auch modulo r kongruent zu 1 ist. Die Ordnung d := ord(Z/rZ)× (p) ist die kleinstmögliche natürliche Zahl für die diese Gleichung gilt. Demnach ist d die minimale p-Potenz mit ζ ∈ Fpd . Somit hat ζ die Ordnung pd − 1 und ist ein primitives Element der Körpererweiterung Fpd /Fp . Aus den Kenntnissen der Algebra (siehe z.B. Abschnitt 3.8 in Bosch[4]) wissen wir, dass d = [Fpd : Fp ] der Grad des Minimalpolynoms von ζ ist. Da ζ eine beliebige primitive r-te Einheitswurzel ist und das Minimalpolynom jeder primitiven r-ten Einheitswurzel das Primfaktoren vom Grad d. Kreisteilungsploynom teilt, zerfällt Φr (T ) in ϕ(r) d Bemerkung 14.14. Es sei h(T ) ein Primfaktor des r-ten Kreisteilungspolynoms Φr (T ) in Fp [T ]. Des Weiteren betrachten wir die Menge Yl Hp := { (T + a)ea mod (h(T )) | ea ≥ 0} a=1 in dem Körper F := Fp [T ]/(h(T )). Dann gelten: 140 Der AKS-Primzahltest (a) Falls die Zahl l kleiner als p ist, besitzt Hp mindestens g+l−2 g−1 Elemente, wobei g = #Gp die Elementanzahl der Gruppe Gp aus Folgerung 14.9 ist. √ (b) Wenn n keine Primzahlpotenz ist, enthält Hp weniger als 12 n2 g Elemente. Beweis. In dem Ring Fp [T ] gilt folgende Teilerkette: h(T ) | Φr (T ) | (T r − 1). Die Koeffizienten des r-ten Kreisteilungspolynoms Φ̃r (X) ∈ F [X] liegen nach Bemerkung 14.11 in dem zugrundeliegenden Primkörper Fp . Das heißt Φ̃r (T ) = Φr (T ) ist kongruent 0 modulo (h(T ), p), und es ist T mod h(T ) eine primitive r-te Einheitswurzel in dem Q Körper F . Es seien nun f und f˜ zwei verschiedene Polynome aus der Menge A := { la=1 (T + a)ea | ea ≥ 0} mit deg(f ), deg(f˜) < g. Wir wollen zeigen, dass diese modulo (h(T ), p), d.h. als Elemente in F ebenfalls verschieden sein müssen. Hierzu gehen wir vom Gegenteil aus und wir nehmen an, dass f (T ) ≡ f˜(T ) mod (h(T ), p) gilt. Nach Folgerung 14.9 wissen wir, dass jedes Element m ∈ Mp p-ähnlich bezüglich f und f˜ ist. Da h(T ) ein Teiler von T r − 1 ist, gilt dann für jedes m ∈ Gp die Kongruenz (f − f˜)(T m ) ≡ 0 mod (h(T ), p). Fassen wir nun f und f˜ als Polynome in X in dem Ring F [X] auf, so ist T m mod h(T ) für jedes m ∈ Gp eine Nullstelle des Polynoms (f − f˜)(X). Da T mod h(T ) in F eine primitive rte Einheitswurzel und m zu r teilerfremd ist, sind alle Nullstellen T m mod h(T ) verschieden, d.h. das Polynom f − f˜ hat mindestens g Nullstellen und einen Grad kleiner als g. Auf Grund der Normiertheit von f und f˜ ist dies ein Widerspruch zu f 6= f˜. Für l < p sind die Polynome (T + 1), . . . , (T + l) modulo (h(T ), p) mit höchstens einer Ausnahme (im Fall h(T ) = T + a) ungleich 0 und paarweise verschieden. Aus diesen Polynomen erhält man in der Menge A durch Produktbildung weitere paarweise verschiedene Polynome für die Grade 2 bis (g − 1), deren Restklassen modulo (h(T ), p) nach den obigen Überlegungen ebenfalls verschieden sind. Wir können damit die Elementanzahl von Hp = A mod h(T ) wie folgt abschätzen: l−1 l−1 l−1 l+g−2 #Hp ≥ (l − 1) + + + ··· + = . 2 3 g−1 g−1 √ Um Teil (b) zu zeigen, betrachten wir die Menge M̃p := {ni pj | 0 ≤ i, j ≤ g} ⊆ Mp . Da n nach Voraussetzung keine Primzahlpotenz ist, sind für verschiedene Tupel (i1 , j1 ) 6= (i2 , j2 ) auch die Elemente ni1 pj1 6= ni2 pj2 verschieden. Somit beträgt die √ Elementanzahl von M̃p : (b gc+1)2 > g = #Gp . In M̃p existieren also zwei Elemente m̃ < m, deren Äquivalenzklassen modulo r übereinstimmen. In solch einem Fall ist aber T r − 1 ein Teiler von T m−m̃ − 1 und es gilt damit T m ≡ T m̃ modulo (T r − 1). Für ein Polynom f (T ) ∈ A erhalten wir dann f (T )m ≡ f (T m ) ≡ f (T m̃ ) ≡ f (T )m̃ mod (T r − 1, p). Folglich ist f (T ) modulo (h(T ), p) eine Nullstelle des Polynoms g(X) := X m − X m̃ ∈ F [X]. Nach Aussage (a) besitzt damit g(X) mindestens #Hp verschiedene 14.3 Der AKS-Algorithmus 141 Nullstellen. Nachdem m ∈ M̃p der Grad von √g(X) ist, können wir die Elementanzahl von Hp nach oben durch #Hp ≤ m ≤ (np)b gc abschätzen. Da nach Voraussetzung die Primzahl p ein echter Teiler von n ist, gilt die Ungleichung p < 12 n und wir erhalten für die Elementanzahl von Hp : √ #Hp ≤ (np)b 14.3 gc 1 √ < n2b gc . 2 Der AKS-Algorithmus Mit Hilfe des folgenden Algorithmus bewiesen Agrawal, Kayal und Saxena, dass die Primzahlfrage polynomial ist. Algorithmus 14.15. (Agrawal-Kayal-Saxena, 2002) Es sei n > 1 eine ungerade natürliche Zahl. 1. Man teste mit Hilfe von Algorithmus 3.10, ob n = ab eine reine Potenz mit a, b ≥ 2 ist. In diesem Fall ist n keine Primzahl. 2. Man bestimmte die kleinste natürliche Zahl r ≤ 10dld(n)5 e mit ord(Z/rZ)× (n) > 5 4 ld(n)2 . Falls kein solches p r existiert, setze man r := 10dld(n) e. Des Weiteren definiere man l := b2 ϕ(r) ld(n)c. 3. Man berechne ggT(a, n) für alle natürlichen Zahlen a ≤ r. Existiert ein a mit 1 < ggT(a, n) < n, so ist n keine Primzahl. 4. Wenn n ≤ r, dann ist n eine Primzahl. 5. Man teste für alle a ∈ {1, . . . , l}, ob (T + a)n 6≡ T n + a mod (T r − 1, p). In solch einem Fall ist n keine Primzahl. 6. Liefert keiner der Schritte (1),(3) oder (5) das Gegenteil, so ist n eine Primzahl. Satz 14.16. (Agrawal, Kayal, Saxena) Mit dem AKS-Test kann in O(ld(n)11 ) Bitoperationen festgestellt werden, ob eine ungerade natürliche Zahl n eine Primzahl ist oder nicht. Beweis. Wir überprüfen zunächst die Korrektheit des Algorithmus. Es sei n ∈ P eine Primzahl. Dann können die Schritte (1),(3) und (5) nicht n 6∈ P liefern. In diesem Fall ist der Algorithmus korrekt. Es sei nun n keine Primzahl. Es existiert also ein Primteiler p < n. Nach der Ausführung von Schritt (3) kann Schritt (4) nicht mehr auf n ∈ P führen. Zudem ist ggT(r, n) = 1 nach Ausführung von Schritt (4). Wir nehmen nun an, Schritt (6) führe auf n ∈ P und n sei nach Durchlaufen von Schritt (1) keine reine Primzahlpotenz. Dann sind insbesondere alle Primteiler 142 Der AKS-Primzahltest von n größer als r. Es sei p > r ein solcher Teiler. Dann gilt nach Ausführung von Schritt (5): (T + a)n ≡ T n + a mod (T r − 1, p) für alle a ∈ {1, . . . , l}. Da die Zahl 2 r aus Schrittp (2) größer als 4 ld(n) ist, lässt sich l wie folgt nach oben abschätzen √ √ √ durch l = b2 ϕ(r) ld(n)c < 2 r ld(n) < r r = r < p. Nach Folgerung 14.9 (b) √ ist #Gp =: g > 2 g ld(n) und wir können mit Bemerkung 14.14 die Elementanzahl von Hp folgendermaßen nach unten abschätzen: √ l − 1 + b2 g ld(n)c g+l−2 . #Hp ≥ ≥ √ g−1 b2 g ld(n)c Betrachten wir noch einmal die Definition der Menge Gp , so besitzt diese als Un√ tergruppe von (Z/rZ)× höchstens ϕ(r) Elemente und es gilt l ≥ b2 g ld(n)c. Wir können also die Mächtigkeit von Hp noch weiter abschätzen: √ √ 2b2 g ld(n)c − 1 1 √ ≥ 2b2 g ld(n)c > n2 g . #Hp ≥ √ 2 b2 g ld(n)c Nach der Ausführung von Schritt (1) des Algorithmus ist die Zahl n keine reine Primzahlpotenz und√ somit ist nach Bemerkung 14.14(b) die Elementanzahl von Hp echt kleiner als 21 n2 g . Dies ist ein Widerspruch! Analysieren wir nun die Komplexität des AKS-Algorithmus. In Schritt (1) √ ist zu m testen, ob n eine reine Potenz der Form a = n ist. Hierbei gilt 2 ≤ a ≤ n und 2 ≤ m ≤ ld(n).√Für ein solches m lässt sich über eine Binärsuche entscheiden, ob ein a ∈ {2, . . . , n} mit am = n existiert. Dabei muss für jedes a überprüft werden, ob am kleiner als n, größer√ als n oder bereits gleich n ist. Eine solche Binärsuche hat einen Aufwand von O(ld( n)) ⊆ O(ld(n)) und muss für jedes m ∈ {2, . . . , ld(n)} durchgeführt werden. Mit Hilfe von Algorithmus 3.10 sind dies jeweils O(ld(m)) ⊆ O(ld(ld(n))) Multiplikationen zu O(µ(ld(n))) Bitoperationen. Wir erhalten also für Schritt (1) einen Gesamtaufwand von O(ld(n)2 ld(ld(n))µ(ld(n))) Bitoperationen. Nach Bemerkung 14.5 benötigen wir in Schritt (2) höchstens O(ld(n)5 ) Versuche zur Berechnung von r. Hierbei muss in jedem Versuch für alle k ≤ 4 ld(n)2 getestet werden ob nk ungleich 1 modulo r ist. Dies sind O(ld(n)2 ) Multiplikationen modulo r zu jeweils O(µ(ld(r))) Bitoperationen. In Schritt (3) werden r ggT-Berechnungen mit einer jeweiligen Bitkomplexität von O(ld(r) ld(n)) ausgeführt. Dies liefert eine Gesamtkomplexität von O(r ld(r) ld(n)) ⊆ O(ld(n)6 ld(ld(n))). Der Vergleich in Schritt (4) erfordert O(ld(n)) Bitoperationen. Betrachten wir Schritt (5), so benötip gen wir l = b2 ϕ(r) ld(n)c Durchläufe um die Kongruenz der Polynome zu testen. Jeder Durchlauf kostet O(ld(n)) Multiplikationen von Polynomen mit Grad ≤ r und Koeffizienten in (Z/nZ). Das sind in diesem Schritt also O(rµ(ld(r)) ld(n)µ(ld(n))) Bitoperationen. Insgesamt erhalten wir über den kompletten Algorithmus eine Bitkomplexität von p O(r ϕ(r) ld(n)2 µ(ld(n)2 )) ⊆ O(r3/2 ld(n)2 µ(ld(n)2 )) 15 ⊆ O(ld(n) 2 ld(n)2 µ(ld(n)2 )) ⊆ O(ld(n)11 ). 14.3 Der AKS-Algorithmus 143 Anmerkung 14.17. Mit Hilfe der p-adischen Newton-Iteration lässt sich die Komplexität von Schritt (1) aus dem AKS-Algorithmus auf O(ld(n) · µ(ld(n))) Bitoperationen verbessern. Beweis. Siehe Kapitel 9 in J. von zur Gathen und J. Gerhard[15]. So bahnbrechend die Veröffentlichung des AKS-Tests für die Komplexitätstheorie auch war, er findet bisher noch keine praktische Anwendung. Die in der Praxis häufig verwendeten Algorithmen von Solovay-Strassen bzw. Miller-Rabin sind deutlich schneller und ihre Fehlerwahrscheinlichkeit kann zufriedenstellend gering gehalten werden. Deshalb wird der Algorithmus weiter modifiziert und stetig verbessert, um ihn für die praktische Anwendung nutzbar zu machen. Insbesondere wurde mittlerweile gezeigt, dass unter Verwendung der Erweiterten Riemannschen Vermutung die Bitkomplexität des AKS-Primzahltests auf O(ld(n)6+ε ) reduziert werden kann. 144 Der AKS-Primzahltest Kapitel 15 Quadratdifferenzenverfahren Nachdem wir Algorithmen zur Erkennung von Primzahlen studiert haben, möchten wir uns nun wieder der Frage zuwenden, wie sich die Teiler einer natürlichen Zahl n ∈ N effizient berechnen lassen bzw. wie wir möglichst schnell eine Faktorisierung in zugehörige Primzahlpotenzen erhalten. 15.1 Die Quadratdifferenzenmethode von Fermat Bemerkung 15.1. Es sei n ∈ N eine ungerade natürliche Zahl. Ferner sei An := {(a, b) ∈ N2 | a · b = n, a ≥ b} die Menge aller Tupel von natürlichen Zahlen, deren Produkt n ist und Xn := {(x, y) ∈ N2 | x2 − y 2 = n} die Menge aller Tupel, deren Quadratdifferenz die Zahl n ergibt. Dann ist , a−b ) φ : An −→ Xn , (a, b) 7−→ ( a+b 2 2 eine bijektive Abbildung. Beweis. Da die Zahl n ungerade ist, sind die Komponenten eines Tupels (a, b) ∈ An als Teiler von n ebenfalls ungerade. Damit sind sowohl x := a+b als auch y := a−b 2 2 natürliche Zahlen und φ ist wegen x2 − y 2 = a · b = n wohldefiniert. Für ein Tupel (x, y) aus Xn ergibt sich nach dem Binomischen Lehrsatz: n = x2 − y 2 = (x + y)(x − y). Somit erhalten wir über (x, y) 7−→ (x + y, x − y) die Zuordnung für die Umkehrabbildung von φ. Algorithmus 15.2. (Faktorisierungsmethode von Fermat) Es seien n > 3 eine ungerade natürliche Zahl und i ein Laufindex des Algorithmus mit dem Startwert i = 0. √ 1. Man setze x := d n e + i. 2. Falls x ≤ d n+9 e, berechne man z := x2 − n. Existiert ein y ∈ N mit y 2 = z, 6 so ist n = (x + y)(x − y) keine Primzahl. Existiert kein solches y, setze man i := i + 1 und gehe zu (1). 3. Falls Schritt (2) nicht das Gegenteil liefert, ist n eine Primzahl. 146 Quadratdifferenzenverfahren Die Korrektheit des Algorithmus ist leicht einzusehen. Nehmen wir an, n ∈ P sei eine Primzahl und es existierten x, y ∈ N mit n = (x + y)(x − y). Dann√hat die Zahl und liegt für alle n > 3 nicht in dem Intervall I := [d n e, d n+9 e]. x den Wert n+1 2 6 Für eine Primzahl kann also in Schritt (2) kein passendes y gefunden werden. Lässt sich andererseits n über a · b nichttrivial faktorisieren, so existiert nach Bemerkung 15.1 ein x := a+b , für welches obiger Algorithmus genau dann einen Teiler von n 2 findet, wenn x in dem abgeschlossenen Intervall I liegt. Da die Zahl n ungerade ist, sind all ihre nichttrivialen √ Teiler echt größer als 2. Der Wert von x lässt sich somit wie folgt abschätzen: n ≤ x ≤ 21 ( n3 + 3) = 16 (n + 9). Beispiel √ 15.3. Wir wollen mit dem Algorithmus 15.2 die Zahl n = 91 faktorisieren. Es gilt: d n e = 10. Wir setzen im ersten Durchlauf x1 := 10 und erhalten über x21 − n = 9 das Quadrat von y1 := 3. Damit ergibt sich mit a := (x1 + y1 ) = 13 und b := (x1 − y1 ) = 7 die Primzerlegung von n = 7 · 13. Anmerkung 15.4. Das Quadratdifferenzenverfahren √ von Fermat ist offensichtlich nur dann sinnvoll, wenn ein Teiler der Größenordnung n existiert. Im Allgemeinen 1 √ beträgt der Aufwand n = 2 2 ld(n) Schleifendurchläufe. Zu der Fermat’schen Methode gibt es einen verallgemeinerten Algorithmus von Legendre. Dieser nützt aus, dass es bereits genügt, wenn die Zahl n eine Quadratdifferenz x2 − y 2 lediglich teilt und dann über den ggT(n, x ± y) ein nichttrivialer Teiler von n ermittelt werden kann. Algorithmus 15.5. (Faktorisierungsmethode √ von Legendre) √ Man ersetze im Algorithmus 15.2 n durch kn (k ∈ {1, 2, . . .}) und teste zusätzlich, ob 1 < ggT(n, x ± y) < n. Beispiel 15.6. Als Anwendung von Algorithmus 15.5 wollen wir die natürliche Zahl n = 4633 faktorisieren.√Wir setzen k := 3 und starten die Faktorisierungsmethode von Fermat mit x := d kn e = 118. Dann erhalten wir im ersten Durchlauf 1182 − kn = 25 und damit das Quadrat von y := 5. Wir testen nun für (x + y) = 123 und (x − y) = 113 den größten gemeinsamen Teiler mit n: ggT((x + y), n) = 41 ggT((x − y), n) = 113. Daraus ergibt sich die Primfaktorzerlegung: n = 41 · 113. Um eine natürliche Zahl n ∈ N faktorisieren zu können, suchen wir also mit den obigen beiden Algorithmen Zahlenpaare (x, y) ∈ N2 , sodass x2 ≡ y 2 mod n und x 6≡ ±y mod n gilt. Es stellt sich nun die Frage, ob es schnellere Verfahren gibt, um solche Tupel zu erhalten. 15.2 Exkurs über Kettenbrüche 15.2 147 Exkurs über Kettenbrüche Definition 15.7. (Kettenbruch, Näherungsbruch) Für eine reelle Zahl r 6= 0 setzen wir a0 := brc und r1 := r − a0 . Solange der Wert ri ungleich 0 ist, definieren wir: ai := ri+1 := b r1i c, 1 − ai . ri Die daraus resultierende Folge [a0 ; a1 , a2 , . . .] nennen wir den Kettenbruch von r. Eine Teilfolge aus den ersten (n + 1) Gliedern [a0 ; a1 , . . . , an ] liefert eine rationale Zahl pqnn und heißt n-ter Näherungsbruch von r: [a0 ; a1 , . . . , an ] = a0 + 1 a1 + =: 1 a2 + 1 ... + pn ∈ Q. qn 1 an−1 + a1 n Anmerkung 15.8. Eine reelle Zahl r ∈ R besitzt genau dann einen endlichen Kettenbruch, wenn r ein Element von Q ist. Beweis. Es seien zunächst r eine reelle Zahl mit endlicher Kettenbruchentwicklung und rn+1 = 0 der Wert an dem die Iteration gemäß Definition 15.7 abbricht. Dann entspricht [a0 ; a1 , . . .] gerade dem n-ten Näherungsbruch von r und ist somit eine rationale Zahl. Es sei nun r ∈ Q. Dann existieren zwei ganze Zahlen a, b ∈ Z mit r = ab . Ohne Einschränkung können wir annehmen, dass b größer als 0 ist. Führen wir bei a, b die ganzzahlige Division mit Rest aus, so erhalten wir mit a0 := b ab c die Gleichung: a = a0 · b + rb (a). Etwas umgeformt ergibt sich daraus: rb b(a) = a − a0 = r − a0 = r1 . Definitionsgemäß werden hieraus auch a1 und r2 anhand b ganzzahliger Division mit Rest ermittelt. Somit entsprechen die Rechenschritte der Kettenbruchentwicklung jenen des Euklidischen Algorithmus. Da dieser nach endlich vielen Schritten abbricht, gilt dies also auch für die Kettenbruchentwicklung von r. Bemerkung 15.9. Es seien r ∈ R eine reelle Zahl und pqnn der zugehörige n-te Näherungsbruch. Definieren wir ferner für alle natürlichen Zahlenn ∈ N die Matrizen pn pn−1 p−1 p−2 1 0 Pn := und setzen wir := für den Index −1, qn qn−1 q−1 q−2 0 1 so gelten: an 1 (a) Pn = Pn−1 · . 1 0 (b) det(Pn ) = (−1)n+1 . 148 Quadratdifferenzenverfahren Beweis. Wir schließen die Aussage (a) via Induktion nach n. Da rungsbruch von r ist, erhalten wir für den Induktionsanfang: a0 1 a0 1 P0 = = P−1 · . 1 0 1 0 a0 1 der 0-te Nähe- Im Schritt von n nach (n + 1) verwenden wir die leicht nachzurechnende Identität pn+1 qn+1 = 1 )·pn−1 +pn−2 n+1 1 )·qn−1 +qn−2 (an + a n+1 (an + a . Des Weiteren gelte für alle natürlichen Zahlen k < n die ak +pk−2 Induktionsvoraussetzung pqkk = pqk−1 . Aus diesen beiden Gleichungen erhalten k−1 ak +qk−2 wir die Behauptung folgendermaßen an pn−1 + pn−2 + apn−1 pn+1 n+1 = qn+1 an qn−1 + qn−2 + aqn−1 n+1 = pn + qn + pn−1 an+1 qn−1 an+1 = an+1 pn + pn−1 . an+1 qn + qn−1 ak 1 Für Teil (b) genügt es zu wissen, dass P0 und die Matrizen Ak := für 1 0 alle k ∈ N die Determinante −1 besitzen. Unter Verwendung von Aussage (a) ergibt sich dann: det(Pn ) = det(P0 · A1 · · · An ) = n Y det(Ai ) = (−1)n+1 . i=0 Korollar 15.10. Es seien r ∈ R eine reelle Zahl und pqnn der zugehörige n-te Näherungsbruch. Dann sind pn und qn zueinander teilerfremd. Beweis. Es sei Pn die ganzzahlige (2 × 2)-Matrix aus Bemerkung 15.9. Dann teilt der größte gemeinsame Teiler ggT(pn , qn ) die Koeffizienten der ersten Spalte von Pn und damit nach dem Laplace’schen Entwicklungssatz auch die Determinante det(Pn ) ∈ {−1, 1}. Satz 15.11. Es sei r ∈ R eine reelle Zahl mit zugehörigen Näherungsbrüchen ( pqnn )n∈N . Dann gilt die Ungleichungskette p0 q0 < p2 q2 < p4 q4 < ... ≤ r ≤ ... < p3 q3 < p1 q1 1 pn mit r − ≤ . qn qn qn+1 Beweis. Es seien rn und an die zur Kettenbruchentwicklung von r gehörenden Werte gemäß Definition 15.7. Mit der Beziehung det(Pn ) = pn qn−1 − qn pn−1 = (−1)n+1 aus 15.3 Das Primzerlegungsverfahren von Lehman 149 Bemerkung 15.9 ergibt sich die Gleichungskette r− pn pn rn+1 + pn−1 pn qn pn rn+1 + qn pn−1 − pn qn rn+1 − pn qn−1 = − = qn qn rn+1 + qn−1 qn qn (qn rn+1 + qn−1 ) n (−1) = . qn (qn rn+1 + qn−1 ) Mit Hilfe von Bemerkung 15.9 erhalten wir dann wegen rn+1 ≥ an+1 die Abschätzung qn rn+1 + qn−1 ≥ qn an+1 + qn−1 = qn+1 und damit die Behauptung p n r − ≤ 1 . qn qn qn+1 Ferner ergibt sich aus den Gleichungen pn qn−2 = (an pn−1 + pn−2 )qn−2 und qn pn−2 = (an qn−1 + qn−2 )pn−2 , sowie der Beziehung det(Pn ) = pn qn−1 − qn pn−1 = (−1)n+1 die Gleichungskette pn pn−2 pn qn−2 − pn−2 qn an − = = (−1)n . qn qn−2 qn qn−2 qn qn−2 Hieraus folgen die Näherungen wie in Satz 15.11 angegeben. Satz 15.12. (Euler-Lagrange) Eine reelle Zahl r ∈ R besitzt genau dann eine periodische Kettenbruchentwicklung, wenn r über Q algebraisch vom Grad 2 ist. Beweis. Siehe Satz 10.11 in Müller-Stach und Piontkowski[11]. Mit Hilfe der Kettenbruchtheorie lassen sich weitere verbesserte Faktorisierungsverfahren ableiten, die in ihrer Grundidee an die Algorithmen von Fermat 15.2 und Legendre 15.5 angelehnt sind. Zwei dieser Methoden werden in den verbleibenden beiden Abschnitten dieses Kapitels vorgestellt. 15.3 Das Primzerlegungsverfahren von Lehman Bemerkung 15.13.√Es seien n ∈ N eine natürliche Zahl und n = p · q eine Faktori√ 3 3 2 sierung von n mit n < q ≤ p < n . Dann existieren zwei natürliche Zahlen r, s ∈ N, sodass die Abschätzungen √ √ r · s < 3 n und |ps − qr| ≤ 3 n gelten. √ Beweis. Nach Voraussetzung gilt pq < 3 n. Wir erhalten somit für r := pq eine √ endliche Kettenbruchentwicklung [a0 ; a1 , . . . , an ] mit a0 = b pq c < 3 n. Da q außerdem √ echt größer als 3 n ist, existiert eine natürliche Zahl m ∈ N, sodass für den m-ten 150 Quadratdifferenzenverfahren √ √ m Näherungsbruch pqm von r die Ungleichungen pm qm < 3 n und pm+1 qm+1 ≥ 3 n gelten. Setzen wir nun r := pm und s := qm , dann resultiert nach Satz 15.11 die q 1 . Umgeformt erhalten wir daraus |ps − qr| ≤ qm+1 . Falls Ungleichung | pq − rs | ≤ s·qm+1 q p nun qm+1 nicht größer als pm+1 ist, so ergibt sich folgende Abschätzung: r |ps − qr| ≤ q · p qm+1 pm+1 r = √ n ≤ 3 n. qm+1 · pm+1 q p Gilt umgekehrt qm+1 > pm+1 , so ist [0; a0 , a1 , . . . , an ] die Kettenbruchentwicklung q von p . Insbesondere entspricht pqkk gerade dem zugehörigen k-ten Näherungsbruch. Durch eine Vertauschung von q p und q sowie von r und s, ergibt sich analog zum √ p q p ersten Fall |ps − qr| < pm+1 ≤ pm+1 · qm+1 ≤ 3 n. Satz 15.14. (Lehman) Für jede Nichtprimzahl n ∈ N\P ungleich 6 gilt eine der beiden folgenden Aussagen: √ (a) Es existiert eine Primzahl p ∈ P mit p | n und p ≤ 3 n. √ 3 (b) Es existieren eine natürliche Zahl k ≤ n und eine natürliche Zahl d aus dem √ √ 6n Intervall [1, 1 + 4√k ], sodass für l := (b 4knc + d) ein m ∈ Z mit l2 − 4kn = m2 existiert. Dann ist entweder ggT(l + m, n) oder ggT(l − m, n) ein nichttrivialer Faktor von n. Beweis. Wir nehmen an, Aussage (a) gelte nicht, und zeigen, dass Aussage (b) unter diesen Voraussetzungen zutreffen muss. Es seien also alle Primteiler von n echt größer √ 3 Zahl q ∈ N mit n = p·q. als n und p ∈ P ein solcher. Dann existiert eine natürliche √ 3 2 Insbesondere√sind die Zahlen q und p echt kleiner als n √ (da sonst beispielsweise 3 3 n im Fall q ≥ n2 die strikte Ungleichungskette np < √ = n2 ≤ q erfüllt ist). Es 3n √ 3 gibt somit nach Bemerkung 15.13 zwei Elemente r, s ∈ N, sodass r · s < n und √ 3 |ps − rq| ≤ n gelten. Mit k := rs ergibt sich daraus: 4kn = 4rspq = (ps + rq )2 − (ps − rq )2 = l2 − m2 . | {z } | {z } =:l =:m √ √ √ Hierbei ist |m| ≤ 3 n und k < 3 n. Wir erhalten ferner mit d := l − b 4knc folgende Abschätzung für das Quadrat von m: √ √ m2 = l2 − 4kn = (l − 4kn)(l + 4kn) √ √ √ ≥ (d − 1)(d + b 4knc + 4kn) ≥ 2(d − 1) 4kn. 2 2/3 √ 6 √ 6 Wegen d − 1 ≤ 2√m4kn ≤ 4√nkn1/2 = 4√nk liegt die Zahl d in dem Intervall [1, 1 + 4√nk ]. Wir nehmen nun ohne Einschränkung an, m ∈ Z sei größer als 0. (Sonst ersetzen wir m durch −m). Wenn wir zeigen können, dass (l + m) echt kleiner als n ist, dann ist der größte gemeinsame Teiler ggT(l + m, n) wegen (l + m) > (l − m) 15.4 Das Kettenbruch-Faktorisierungsverfahren von Lehmer 151 ein nichttrivialer Faktor von n. (Falls m kleiner gleich 0 ist, liefert ggT(l − m, n) wegen (l − m) > (l + m) auf analogem Weg einen Teiler von n. Es genügt also die Ungleichung (l + m) < n zu zeigen). Es gilt √ √ √ 6 (l + m) ≤ d + 4kn + m ≤ 1 + 4√nk + 2 kn + m √ 6 2 1 2 ≤ 1 + 4√nk + 2n 3 + n 3 < 3n 3 ≤ n für n ≥ 27. Untersucht man alle natürlichen Zahlen n < 27, so stellt man fest, dass die Behauptung bis auf die Ausnahme n = 6 erfüllt ist. Zusatz 15.15. Für das Faktorisierungsverfahren von Lehman genügen O(n1/3 ) Rechenschritte. √ √ 3 n} sowie die Mächtigkeit Beweis. Die Primzahlfunktion π( 3 n) = #{p ∈ P | p ≤ √ √ 6n 3 der Menge M := {(k, d) | k ≤ n, 1 ≤ d ≤ 1 + 4√n } lassen sich jeweils nach √ √ oben durch 31 3 n bzw. 35 3 n abschätzen. Die Anzahl der für die Faktorisierung einer natürlichen Zahl n ∈ N nötigen Rechenschritte im Algorithmus von Lehman ist √ 3 somit höchstens 2 n. 15.4 Das Kettenbruch-Faktorisierungsverfahren von Lehmer Die folgende Methode von Lehmer ist eine modifizierte Version des Quadratdifferenzenverfahrens von Legendre. Bemerkung 15.16. Es seien n ∈ N und k√ ∈ N zwei natürliche Zahlen und [a0 ; a1 , a2 , . . .] die Kettenbruchentwicklung von kn mit zugehörigen Näherungsbrüchen ( pqii )i∈N . Existiert dann für ein di := p2i − knqi2 eine ganze Zahl m ∈ Z mit m2 = di und pi 6≡ ±m mod n, so ist der größte gemeinsame Teiler ggT(n, pi ± m) ein nichttrivialer Faktor von n. Beweis. Die Korrektheit der Bemerkung folgt aus der Analogie zum Quadratdifferenzenverfahren von Legendre (Algorithmus 15.5). Beispiel 15.17. Wir wollen mit Hilfe von Bemerkung 15.16 die natürliche Zahl n = 4633 faktorisieren. Hierzu wählen wir k := 1 und betrachten √ die Kettenbruch√ entwicklung von n = [a0 ; a1 , . . .]. Wir erhalten dann über a0 = b 4633c = 68 und a1 = 15 folgende Tabelle: i ai pi qi di -1 0 1 0 68 15 1 68 1021 0 1 15 1 −9 16 152 Quadratdifferenzenverfahren Für d1 = 16 = 42 bricht der Algorithmus von Lehmer wegen p1 = 1021 6≡ ±4 mod n während der zweiten Schleife ab und liefert über ggT(4633, 1025) = 41 und ggT(4633, 1017) = 113 die Faktorisierung von n = 41 · 113. Hinsichtlich der Effizienz des Verfahrens stellt sich nun die Frage, wie häufig im Mittel di eine Quadratzahl ist. Bemerkung 15.18. Es seien r 6= 0 eine positive reelle Zahl mit Kettenbruchentwicklung [a0 ; a1 , . . .] und zugehörigen Näherungsbrüchen ( pqii ). Dann gilt: |p2i −r2 qi2 | < 2r. Beweis. Nach Satz 15.11 gilt: | pqii − r| ≤ qi q1i+1 bzw. | pqii + r| ≤ qi q1i+1 + 2r. Die Behauptung erhalten wir dann über folgende Kette von Ungleichungen: 1 1 ( + 2r) − 2r qi qi+1 qi qi+1 1 qi qi 1 ≤ 2 + 2r · ) − 2r ≤ 2r(−1 + + 2 qi+1 qi+1 qi+1 2rqi+1 qi qi+1 + 1 < 2r(−1 + ) < 0. 2 qi+1 | {z } |p2i − r2 qi2 | − 2r = |pi − rqi ||pi + rqi | − 2r ≤ qi2 · <1 Korollar 15.19. Unter der Annahme, dass die Werte di > 0 in dem Intervall √ [0, 2 nk] gleichverteilt sind, ist √2 1√ die Wahrscheinlichkeit dafür, dass di eine 4 nk Quadratzahl ist. Wir können also mit Hilfe des Faktorisierungsverfahrens von Lehmer erwarten, in O((kn)1/4 ) Schritten einen nichttrivialen Teiler von n zu finden. √ √ √ Beweis. Es gibt in dem Intervall [0, 2 nk] höchstens 2 4 nk Quadratzahlen. Die relative Häufigkeit aller Quadratzahlen der Form di = p2i − r2 qi2 beträgt also √2 1√ . 4 kn Anmerkung 15.20. Wir werden im nächsten Kapitel unter anderem feststellen, dass sich das Kettenbruch-Faktorisierungsverfahren mit Hilfe von sogenannten Faktorenbasen zu einem probabilistischen subexponentiellen Faktorisierungsalgorithmus ausbauen lässt. Kapitel 16 Der Algorithmus von Dixon 16.1 Faktorenbasen Definition 16.1. (Faktorenbasis, Q-Zahl, Exponentenvektor) Es sei n ∈ N eine ungerade natürliche Zahl. Eine endliche Menge von Primzahlen der Form Q := {q1 , . . . , ql | n 6≡ 0 mod qi } ⊆ P heißt Faktorenbasis zu n. Eine natürliche Zahl a ∈ N heißt Q-Zahl, wenn sich der nichtnegative Rest von a2 modulo n in Potenzen der Faktorenbasis zerlegen lässt, wenn also gilt rn (a2 ) = q1f1 · · · qlfl . Das l-Tupel f = (f1 , . . . , fl ) nennen wir den zugehörigen Exponentenvektor. Anmerkung 16.2. (Praktische Variante) In der Praxis verwendet man häufig eine durch −1 ergänzte Version obiger Definition. In der Regel wählt man eine Faktorenbasis Q0 = {q0 , q1 , . . . , ql } mit q0 = −1 und den ersten l zu n teilerfremden Primzahlen (qi )i=1,...l . Zudem wird für die Definition einer Q-Zahl a gerne der kleinste Absolutrest von a2 modulo n anstatt des kleinsten nichtnegativen Rests verwendet: rn∗ (a2 ) = min{|x| | x ≡ rn (a2 ) mod n}. Bemerkung 16.3. Es seien n ∈ N eine ungerade natürliche Zahl und die Menge Q = {q1 , . . . , ql } eine zugehörige Faktorenbasis. Des Weiteren seien a1 , . . . , am QZahlen mit Exponentenvektoren f1 , . . . , fl . Ferner existiere eine Indexmenge I ⊆ P {1, . . . , m}, sodass i∈I fi ≡ 0 mod 2 ist. Dann gilt für x := Y i∈I die Kongruenz x2 ≡ y 2 mod n. ai und y := l Y j=1 1 2 qj P i∈I fij 154 Der Algorithmus von Dixon Beweis. Mit der Definition der Q-Zahlen (ai )i∈I , lässt sich die Behauptung sehr leicht nachrechnen: 2 x = Y i∈I a2i ≡ Y i∈I rn (a2i ) l l P YY Y f fij = ( qj ) = qj i∈I ij = y 2 i∈I j=1 mod n. j=1 Beispiel 16.4. Wir betrachten wieder die natürliche Zahl n = 4633 und die Faktorenbasis Q0 = {−1, 2, 3}. Dann sind a1 = 67, a2 = 68 und a3 = 69 jeweils Q-Zahlen mit zugehörigen Exponentenvektoren f1 := (1, 4, 2), f2 := (1, 0, 2) und f3 := (0, 7, 0). Hierbei sind die ersten beiden Vektoren modulo 2 linear abhängig. Im Sinne von Bemerkung 16.3 wählen wir demnach I := {1, 2} und setzen x := 67 · 68 = 4556 sowie y := 22 · 32 = 36. Hieraus ergibt sich: x2 ≡ 1296 ≡ y 2 mod n. Insbesondere sind (x+y) ≡ −41 und (x−y) ≡ −113 inkongruent 0 modulo n. Damit erhalten wir über ggT(x+y, n) = 41 und ggT(x−y, n) = 113 zwei nichttriviale Teiler von n = 41·113. Wie dieses Beispiel zeigt, kann man mit Hilfe von Bemerkung 16.3 nichttriviale Teiler einer natürlichen Zahl n gewinnen. Wenn n ein Produkt der Form (x + y)(x − y) = x2 −y 2 teilt und darüberhinaus kein Teiler der Faktoren (x+y) bzw. (x−y) ist, so gilt zudem 1 < ggT(x ± y, n) < n. Diese Tatsache macht sich der folgende Algorithmus von Dixon zu Nutze. Algorithmus 16.5. (Dixon) Es sei n ∈ N eine ungerade natürliche Zahl. 1. Man wähle eine hinreichend große Faktorenbasis Q = {q1 , . . . , ql } aus den ersten l verwendbaren Primzahlen. 2. Man bestimme hinreichend viele Q-Zahlen a1 , . . . , am mit zugehörigen Exponentenvektoren f1 , . . . , fm . 3. Falls die Exponentenvektoren (fi )i=1,...,m modulo 2 linear abhängig sind, bestimme man x und y gemäß Bemerkung 16.3. 4. Falls weder (x+y) noch (x−y) kongruent 0 modulo n sind, liefern ggT(x+y, n) und ggT(x − y, n) zwei nichttriviale Teiler von n. Dass der Algorithmus korrekt arbeitet, wird bereits aus den obigen Überlegungen klar. Dennoch drängt sich die Frage nach der Effizienz auf. Wie häufig entstehen in Schritt (3) Paare (x, y) mit x ± y 6≡ 0 mod n? Hierzu korreliert ist die Frage nach der Größe der Faktorenbasis und der Anzahl der nötigen Q-Zahlen, um hinreichend viele Exponentenvektoren und Zahlenpaare (x, y) zu erhalten. Anmerkung 16.6. (Variante) Der Algorithmus CFRAC verwendet für die Konstruktion von x und y anstelle der a2i die Werte di aus dem Lehmer-Verfahren (vgl. Bemerkung 15.16). 16.2 Einige relative Häufigkeiten 16.2 155 Einige relative Häufigkeiten Die nächste Bemerkung zeigt, dass wir modulo n die Anzahl der in Frage kommenden Zahlenpaare (x, y) exakt angeben können. Bemerkung 16.7. Es ∈ N eine ungerade natürliche Zahl mit zugehöriger Qr sei en i Primfaktorzerlegung i=1 pi . Dann hat die Menge M := {(x, y) ∈ ((Z/nZ)× )2 | x2 = y 2 , x 6= ±y} genau 2r (2r − 2) Elemente. Beweis. Betrachten wir ein Zahlenpaar (x, y) ∈ M, so ist z := xy in (Z/nZ)× wegen ( xy )2 = 1 ein Element der Ordnung 2 bzw. der Ordnung 1. In den Einheitengruppen (Z/pei i Z)× gibt es mit 1 und −1 genau zwei solcher Involutionen. Nach dem Hauptsatz über Simultane Kongruenzen existieren demnach 2r Involutionen in (Z/nZ)× . Ohne die Elemente 1 und −1 sind dies 2r − 2 verschiedene Quotienten xy 6= ±1 der Ordnung 2. Da jedes dieser Tupel (x, y) mit einer Involution z via (z · x, z · y) erweitert werden kann, existieren somit 2r (2r − 2) solcher Zahlenpaare. Korollar 16.8. Es sei n ∈ N eine ungerade Nichtprimzahl mit mindestens zwei verschiedenen Primteilern. Dann ist die Wahrscheinlichkeit, dass modulo n ein gegebenes Tupel (x, y) mit x2 ≡ y 2 auch die Eigenschaft x 6≡ ±y besitzt, mindestens 1 . 2 r die relative Häufigkeit der in Frage komBeweis. Nach Bemerkung 16.7 ist (2 2−2) r x menden Quotienten y in der Menge aller Involutionen von ((Z/nZ)× )2 . Für r ≥ 2 r lässt sich diese durch 2 2−2 ≥ 12 abschätzen. r Bemerkung 16.9. Es seien P n, m ∈ N zwei natürliche Zahlen. Dann besitzt die Menn ge A := {(a1 , . . . , an ) ∈ N | ni=1 ai ≤ m} aller n-Tupel, deren Koeffizientensumme nicht größer als m ist, n+m Elemente. n Beweis. Es sei B := {B ⊂ {1, 2, . . . , n + m} | #B = n} die Menge aller Möglichkeiten, n Elemente aus (n + m) auszuwählen. Die Mächtigkeit von B ist offenbar n+m . Für ein (a1 , . . . , an ) ∈ A definieren wir nun sukzessive für alle i := 1, . . . , n n Zahlen bi durch b0 := 0 und bi := bi−1 + ai + 1. Dann ist folgende Abbildung φ eine Bijektion zwischen A und B und liefert damit die Gleichheit der zugehörigen Elementanzahlen: φ: A −→ B (a1 , . . . , an ) 7−→ (b1 , b2 , . . . , bn ). Q Bemerkung 16.10. Es sei n = ri=1 pei i eine ungerade natürliche Zahl mit zugehöriger Faktorenbasis Q = {q1 , . . . , ql } aus den ersten l möglichen Primzahlen. Dann gilt für die Menge A := {a ∈ N | a < n, a ist Q-Zahl} die Abschätzung: ls ln(n) #A ≥ mit s := 2b c. s! 2 ln(ql ) 156 Der Algorithmus von Dixon Beweis. Um die Elementanzahl von A nach unten abschätzen zu können, betrachten wir die Teilmenge jener Q-Zahlen a ∈ A, für deren Exponentenvektor f = (f1 , . . . , fl ) Pl zusätzlich i=1 fi ≤ s gilt. Jede dieser Q-Zahlen beschreibt wegen rn (a2 ) = q1f1 · · · qlfl ein Quadrat in (Z/nZ)× . Da sich modulo n je zwei Lösungen von rn (a2 ) = b durch eine der 2r Involutionen unterscheiden, erhalten wir: ) ( l X fi ≤ s #A ≥ # a ∈ N | 0 < a < n, rn (a2 ) = q1f1 · · · qlfl , i=1 ( = 2r · # (f1 , . . . fl ) ∈ Nl | l X ) fi ≤ s, q1f1 · · · qlfl ∈ ((Z/nZ)× )2 . i=1 Zerlegen wir einen Exponentenvektor f = f (1) + f (2) ∈ Nl in zwei l-Tupel mit Pl Pl (1) (2) s s s f ≤ und f ≤ , so gibt es nicht mehr als solcher Tupel j=1 j j=1 j 2 2 s/2 (f (1) , f (2) ), die sich zu f kombinieren lassen. Unter zusätzlicher Verwendung des Eulerschen Kriteriums und des Hauptsatzes über Simultane Kongruenzen erhalten wir damit 2r #A ≥ s · c, s/2 wobei c die Elementanzahl der Menge aller Tupel (f (1) , f (2) ) beschreibt, welche eiPl P (2) (1) ≤ 2s und andererseits für alle nerseits die Bedingungen lj=1 fj ≤ 2s , j=1 fj (1) (2) Q Q pi −1 pi −1 f f i ∈ {1, . . . , r} die Kongruenz ( lj=1 qj j ) 2 ≡ ( lj=1 qj j ) 2 mod pi erfüllen. Definiert man nun ) ( l l (1) p −1 X Y s f i (1) fj ≤ , ( qj j ) 2 ≡ vi mod pi für alle 1 ≤ i ≤ r d(v) := # f (1) | 2 j=1 j=1 für ein r-Tupel v = (v1 , . . . , vr ) ∈ {1, −1}, so folgt die Gleichung X c= d(v)2 . v∈{1,−1}r Wegen #{1, −1}r = 2r ergibt sich mit Hilfe der Cauchy-Schwarz’schen Ungleichung die Ungleichungskette #A ≥ ≥ = 2r s s/2 1 s s/2 1 s s/2 X d(v)2 v∈{1,−1}r ( X d(v))2 v∈{1,−1}r · (#{f (1) | l X i=1 (1) fi s ≤ })2 . 2 16.2 Einige relative Häufigkeiten 157 Unter Verwendung des Resultats aus Bemerkung 16.9 erhalten wir hieraus die Abschätzung 2 ( 2s !)2 l + 2s 1 ls ls ≥ #A ≥ s · s 2 = . s! s! s/2 ( 2 !) s/2 Korollar 16.11. Für eine zu n ∈ N teilerfremde natürliche Zahl a < n beträgt die ls Wahrscheinlichkeit, eine Q-Zahl zu sein, mindestens s!n . Beweis. Nach Bemerkung 16.10 beträgt die relative Häufigkeit der Q-Zahlen unter ls . den natürlichen Zahlen a < n mindestens s!n Bemerkung 16.12. Es sei m ∈ N eine natürliche Zahl. Des Weiteren seien p, q und ε drei reelle Zahlen aus dem halboffenen Intervall [0, 1) mit p + q = 1 und 0 ≤ ε < min{p, q}. Dann gilt m X ε2 m m k m−k p q < e− 2q . k k≥(p+ε)m Beweis. Abkürzung führen wir zunächst die Zahlen t := (p + ε)m und S := Pm mZur k m−k ein. Weiter definieren wir für eine reelle Zahl x ∈ (0, 1) die Funktion k≥t k p q f (x) := xt ( xp +q)m . Dann erhalten wir unter Verwendung des Binomischen Lehrsatzes die Abschätzung: S≤ m X k≥t m k k m−k p q t−k x ≤x |{z} >1 t m X k=0 m k p k m−k q x p = xt ( + q)m = f (x). x Unter Verwendung der Ableitung f 0 (x) = txt−1 ( xp + q)m + xt ( xp + q)m−1 · (− xp2 ) stellen wir fest, dass f (x) in dem Intervall (0, 1) bei x0 = mp−tp = (m−t)p eine Extremalstelle tq tq besitzt. Resubstituieren wir dann t = (p + ε)m, so ergibt sich für x0 der Wert Eingesetzt in f erhalten wir dann für S (p+ε)m m (q − ε)p (p + ε)q (q − ε)q S ≤ + (p + ε)q q−ε q−ε !m p+ε p+ε q−ε !m q p q (q − ε)p = · . = (p + ε)q q−ε p+ε q−ε (q−ε)p . (p+ε)q p p+ε Für den natürlichen Logarithmus ln(x) an den Stellen A := ( p+ε ) bzw. B := q q−ε ( q−ε ) gelten gemäß der Taylorentwicklung des Logarithmus folgende Abschätzungen unter Verwendung von pε , qε < 1: ln(A) = −(p + ε) ln(1 + pε ) = −(p + ε)( pε − 21 ( pε )2 + 31 ( pε )3 ± . . .) < −ε ln(B) = (ε − q) ln(1 − qε ) = −(ε + p)( qε + 12 ( qε )2 + 31 ( qε )3 + . . .) < ε − ε2 . 2q 158 Der Algorithmus von Dixon Somit ergibt sich für S die obere Schranke ε2 S ≤ (eln(A) · eln(B) )m ≤ em(−ε+ε− 2q ) = e− mε2 2q . Mit den nun vorhandenen Resultaten können wir abschätzen, wie schnell sich QZahlen für eine natürliche Zahl n ∈ N berechnen lassen. Korollar 16.13. Es seien die Werte s und l wie in Bemerkung 16.10 gewählt. Des die Anzahl zufällig ausgewählter Zahlen a < n ∈ N sowie Weiteren seien m > 4l · s!n ls W die Wahrscheinlichkeit, dass unter diesen nicht mehr als 2l Q-Zahlen sind. Dann gilt l W ≤ e− 2 . Beweis. Es sei Wk die Wahrscheinlichkeit, dass k der m Versuche keine Q-Zahl liefern. Die zugehörige Zufallsvariable ist hier binomialverteilt und nach Korollar m k m−k ls 16.11 gilt Wk = k p q mit p = 1 − s!n und q = 1 − p. Wir erhalten daraus X X m k m−k W= Wk = p q . k k≥m−2l k≥m−2l ε2 m 2 l . Da für die Dieser Wert ist nach Bemerkung 16.12 kleiner gleich e− 2q mit q = s!n 4l Anzahl der Zufallswerte m ≥ d4l s!n e =: m̃ gilt, ist der Wert q nicht größer als m̃ < 1. ls 2l Für ε := m̃ ergibt sich dann die Abschätzung (p + ε)m̃ = (1 − q + ε)m̃ ≤ (1 − 2l )m̃ m̃ = m̃ − 2l. 4l2 m̃ l Somit lässt sich die Wahrscheinlichkeit W nach oben durch e− m̃2 m̃· 8l = e− 2 abschätzen. 16.3 Der Satz von Dixon Bezeichnung 16.14. Für diesen Abschnitt verwenden wir für natürliche Zahlen √ ln(n) ln(ln(n)) n ∈ N die Größe L(n) := e . Offenbar ist L(n) eine subexponentielle Funktion. Des Weiteren heissen zwei Funktionen A(n) und B(n) asymptotisch gleich (im Zeichen: A(n) ≈ B(n)), wenn gilt lim A(n) n→∞ B(n) = 1. Anmerkung 16.15. (Stirling’sche Formel) Aus einer Variante der Stirling’schen Formel (siehe z.B. Satz 12.20 in Walter[16]) erhalten wir für eine natürliche Zahl n ∈ N die asymptotische Gleichheit: ln(n!) ≈ n ln(n) − n ≈ n ln(n). 16.3 Der Satz von Dixon 159 Bemerkung 16.16. Es seien die Werte s und l wie in Bemerkung 16.10 gegeben. Existiert dann eine reelle Zahl c ∈ R mit L(n) ≈ lc , so gilt die asymptotische Gleichheit c ls ≈ L(n)− 2 . s!n Beweis. Es sei Q = {q1 , . . . , ql } die zu n gehörende Faktorenbasis. Für das letzte ql Glied ql in Q gilt nach dem Primzahlsatz 11.6: l = π(ql ) ≈ ln(q . Wegen s = 2b 2ln(n) c ln(ql ) l) ergibt sich daraus die asymptotische Gleichheit n ≈ qls . Aus diesem Resultat schließen wir die Gleichungskette ln( ls l ls ) = ln( ) − ln(s!) ≈ s ln( ) − ln(s!). s!n n ql Verwenden wir im Weiteren die Stirling’sche Formel und den Primzahlsatz, so ergibt sich l 1 s s ln( ) − ln(s!) ≈ s ln( ) − s ln(s) ≈ s ln( ) − s ln(s) ≈ −s ln(s). ql ln(ql ) ln(n) Setzen wir nun die formale Definition von s ein, so erhalten wir s≈ ln(n) ln(n) ln(n) c ln(n) ≈ ≈ = ln(ql ) ln(l ln(ql )) ln(l) ln(L(n)) für ein passendes c ∈ R. Aus den bisherigen Resultaten ergibt sich damit folgende Gleichungskette: s c · ln(n) c · ln(n) l ≈ −s ln(s) ≈ − · ln ln s!n ln(L(n)) ln(L(n)) s ! c · ln(n) ln(n) ≈ −p · ln c ln(ln(n)) ln(n) ln(ln(n)) s ln(n) 1 · (ln(n) ln(ln(n)) − ln(ln(ln(n)))) = −c ln(ln(n)) 2 cp c ≈ − ln(n) ln(ln(n)) ≈ − ln(L(n)). 2 2 Satz 16.17. (Dixon) Es sei n ∈ N eine ungerade Nichtprimzahl. Bei pder Ausführung des Dixon-Algorithmus 16.5 mit einer Faktorenbasis der Länge l = d L(n)e und mit m = 4l s!n zugehörigen ls Q-Zahlen findet man einen nichttrivialen Faktor von n mit einer Wahrscheinlichkeit √ − 21 L(n) von W ≥ 1 − 2e nach asymptotisch höchstens O(L(n)2+ε ) Bitoperationen. 160 Der Algorithmus von Dixon Beweis. Verwenden wir in Bemerkung 16.16 die Konstante c := 2, erhalten wir als p = l2 . Die Anzahl der Länge der Faktorenbasis l = L(n) und die Gleichung s!n ls s!n Testzahlen (ai ) ist asymptotisch m = 4l ls ≈ 4l3 . Zur Bestimmung des Exponenld(n) ten fij von qi in rn (ai ) benötigen wir ld(q Divisionen mit Rest zu je O(ld(n) ld(qj )) j) Bitoperationen. Dies ergibt insgesamt einen Aufwand von O(ld(n)2 ) Bitoperationen. Die nötigen Operationen zur Erstellung der Exponentenmatrix (fij ) lassen sich dem2+ε nach durch O(m · l · ld(n)2 ) = O(4l3 · l · ld(n)2 ) = O(L(n)2 · ld(n)2 ) = O(L(n) ) P abschätzen. Für die Bestimmung der nichttrivialen Exponentenrelation fi ≡ 0 3 mod 2 benötigt man mit dem Gauß-Algorithmus O(l ) Bitoperationen. Dies ist ein geringerer Aufwand als für die Erstellung der Exponentenmatrix nötig ist. Die Berechnung der xi und yi aus der Exponentenrelation gemäß Bemerkung 16.3 verursacht einen Aufwand von 2lO(l · ld(n)2 ) = O(l2 · ld(n)2 ) Bitoperationen und liegt damit ebenfalls unter O(L(n)2+ε ). Nach Folgerung 16.13 finden wir mit einer Wahrl scheinlichkeit von W ≥ (1−e− 2 ) mindestens 2l Q-Zahlen und damit nach Folgerung 16.8 einen nichttrivialen Teiler von n mit einer Wahrscheinlichkeit von √ 1 2l − 2l − 12 L(n) − 2l . W ≥ (1 − e ) · (1 − ( ) ) ≥ 1 − 2e = 1 − 2e 2 Kapitel 17 Das Quadratische Sieb 17.1 Das einfache Quadratische Sieb Das einfache Quadratische Sieb basiert in seiner Grundidee auf einer modifizierten Form des Algorithmus von Dixon (siehe Algorithmus 16.5). Ein wesentlicher Unterschied liegt in der Wahl der Q-Zahlen. Die zufällig gewählten √ ai2 werden durch fortlaufende Werte des quadratischen Polynoms F (T ) = (T +b nc) −n an Stützstellen t aus einem Intervall [−w, w] ersetzt. Dabei kann die Faktorisierung der Stützwerte F (t) durch ein Siebverfahren beschleunigt werden. Bemerkung 17.1. Es seien n ∈ N eine natürliche Zahl √ und q ∈ P eine dazu teilerfremde ungerade Primzahl. Ferner sei F (T ) = (T + b nc)2 − n ∈ Z[T ] wie in der Einleitung gewählt. Dann gelten: (a) Existiert eine Stützstelle t ∈ Z mit F (t) ≡ 0 mod q, so ist die Zahl n ein quadratischer Rest modulo q. (b) Existiert eine natürliche Zahl k ∈ N und eine Stützstelle t ∈ Z mit F (t) ≡ 0 mod q k , so gilt für jede weitere Stützstelle t̃ ≡ t mod q k ebenfalls die Kongruenz F (t̃) ≡ 0 mod q k . Beweis. Für Aussage (a) sei t √eine Stützstelle mit F (t) ≡ 0 mod q. Dann ist n modulo q kongruent zu (t − b nc)2 und damit ein quadratischer Rest. Für Teil (b) gelte nun t ≡ t̃ mod q k für zwei Stützstellen t, t̃ ∈ Z. Dann erhalten wir für F (T ) = T 2 + aT + b mit geeignet gewählten a, b ∈ Z, die Kongruenzkette F (t) ≡ t2 + at + b ≡ t̃2 + at̃ + b ≡ F (t̃) mod q k . Wir kommen nun zum Grundalgorithmus des Quadratischen Siebs. 162 Das Quadratische Sieb Algorithmus 17.2. (Quadratisches Sieb) √ Es seien n ∈ N eine ungerade natürliche Zahl und F (T ) := (T + b nc)2 − n. 1. Manwähle eine hinreichend große Faktorenbasis Q := {q0 = −1, q1 = 2, . . . , ql } n mit qi = 1 für alle Indizes i ∈ I := {2, . . . , l}. 2. Man löse für alle i ∈ I die quadratische Gleichung F (T ) ≡ 0 mod qi . Dies ergibt in der Regel zwei Kongruenzlösungen ti1 , ti2 . 3. Für alle Q-Zahlen qi ∈ Q und Stützstellen t ∈ [−w, w] markiere man durch k ein Siebverfahren die Faktoren Q qi k von F (t) gemäß Bemerkung 17.1. Hieraus ergibt sich mittels S(t) := q∈Q q eine Teilfaktorisierung von F (t). 4. Falls für eine Stützstelle t ∈ [−w, w] der Quotient F (t) S(t) echt kleiner als ql2 (t) ist, faktorisiere man FS(t) vollständig durch jene Primzahlen, welche den Faktor S(t) teilen, und erstelle dann den zugehörigen Exponentenvektor f (t) = (f (t)1 , . . . , f (t)l ). 5. Existieren mehr als l Exponentenvektoren, so suche man eine modulo 2 linear abhängige Teilmenge von Exponentenvektoren. 6. Man bestimme die Werte x und y gemäß Dixon’s Algorithmus 16.5. Falls weder (x + y) noch (x − y) kongruent 0 modulo n sind, liefert ggT(x ± y, n) zwei nichttriviale Teiler von n. Ähnlich wie im vorherigen Kapitel stellt sich nun die Frage, welche Größen die Faktorenbasis Q und das Intervall [−w, w] annehmen müssen, um eine effiziente Ausführung des obigen Algorithmus zu gewährleisten. Des Weiteren stellt sich die Frage nach einem Verfahren zur schnellen Lösung von quadratischen Kongruenzen (hierzu mehr in Abschnitt 17.4). 17.2 Laufzeitabschätzung für das Quadratische Sieb Bemerkung 17.3. Die quadratischen Kongruenzen in Schritt (2) des Algorithmus 17.2 können in O(q · ld(q)2 ) Bitoperationen gelöst werden. Beweis. Für alle Stützstellen t ∈ {1, . . . , q} berechnen wir die Restklasse von F (t) modulo q via √ a := (t + b nc), b := a2 − n, c := b mod q. Dies sind bei jedem Versuch eine Quadratur und eine Division mit Rest modulo q zu jeweils O(ld(q)2 ) Bitoperationen. Bemerkung 17.4. Ist die Intervalllänge 2w in Abhängigkeit von n subexponentiell, so kann das Siebverfahren aus Schritt (3) des Algorithmus 17.2 asymptotisch in 4w · ld(ld(ql )) Bitoperationen durchgeführt werden. 17.2 Laufzeitabschätzung für das Quadratische Sieb 163 Beweis. Für jede Q-Zahl q werden 2 · 2w verschiedene Stützstellen t mit q | F (t) q markiert. Nach Anmerkung 11.4 ergibt sich damit folgende Abschätzung für die Anzahl der benötigten Bitoperationen: X 4w q∈Q q = 4w · X1 q∈Q q ≈ 4w · ld(ld(ql )). √ Bemerkung 17.5. Ist der Intervallwert w sehr klein im Vergleich zu n, so ist der√Funktionswert F (t) für eine Stützstelle t ∈ [−w, w] asymptotisch kleiner gleich 2w n und damit klein gegenüber n. Beweis. Die Behauptung ergibt sich im Falle einer subexponentiellen√Intervalllänge direkt Ungleichungskette F (t) ≤ w2 + 2w n + n − n = √ √ aus der asymptotischen w(2 n + w) ≈ 2w n n. Hypothese 17.6. (Pomerance) Die relative Häufigkeit der Q-Zahlen für F (t) mit√t ∈ [−w, w] entspricht der relativen Häufigkeit der Q-Zahlen in dem Intervall [1, 2w n]. Es gilt demnach: ls √ ≈ −s · ln(s) mit s = s!2w n √ ln(2w n) ln(ql ) ≈ ln(n) . 2 ln(ql ) Satz 17.7. (Pomerance) Es sei n ∈ N \ P eine ungerade Nichtprimzahl. Dann findet man unter Annahme der Hypothese 17.6 (Pomerance) mit Hilfe p des Quadratischen Siebs mit einer 1 3 L(n)) nach asymptotisch höchstens Wahrscheinlichkeit von W ≥ 1 − 2 exp(− 2 √ O(L(n) 3 2 +ε 4 ) ≈ O(L(n)1,06+ε ) Bitoperationen einen nichttrivialen Teiler von n. 1 Beweis. Wir setzen die Länge der Faktorenbasis l := L(n) c und die halbe Interc valllänge w := L(n)d . Unter Annahme der Hypothese 17.6 ist dann L(n)d− 4 die Anzahl der zu erwartenden Q-Zahlen. Analog zu Dixon’s Algorithmus 16.5 wählen wir die Länge der Faktorenbasis entsprechend der Anzahl der gefunden Q-Zahlen. Hieraus erhalten wir: 1c = d − 4c bzw. d = 4c + 1c . Betrachten wir nun die Laufzeit des Quadratischen Siebs (Algorithmus 17.2). In Schritt (1) benötigen wir mit dem 1 Siebverfahren O(ql · ld(ql )) ⊆ O(l · ld(ql )2 ) ⊆ O(L(n) c +ε ) Bitoperationen für die Berechnung der Faktorenbasis. Für die Berechnung der zugehörigen Jacobisymbole 1 n werden nochmals O(l · ld(n)2 ) ⊆ O(L(n) c +ε ) Bitoperationen benötigt. Die in qi Schritt (2) gesuchten Lösungen quadratischer Kongruenzen modulo q ∈ Q lassen sich nach Bemerkung 17.3 in O(q · ld(q)2 ) Bitoperationen berechnen. Dies ergibt für diesen Algorithmusschritt einen Gesamtaufwand von X 2 O( qi · ld(qi )2 ) ⊆ O(l · ql · ld(ql )2 ) ⊆ O(l2 · ld(ql )3 ) ⊆ O(L(n) c +ε ). 2≤i≤l 164 Das Quadratische Sieb Dies ist allerdings eine sehr grobe Abschätzung. Es existieren Verfahren, die für jedes q ∈ Q in polynomialer Laufzeit durchführbar sind (siehe Algorithmus 17.12) 1 und einen Gesamtaufwand von O(L(n) c +ε ) Bitoperationen liefern. Die Siebprozedur aus Schritt (3) kann nach Bemerkung 17.4 in O(4w · ld(ld(ql ))) ⊆ O(L(n)d+ε ) (t) Bitoperationen durchgeführt werden. Die Nachfaktorisierung von FS(t) mit bereits 2 vorhandenen Primfaktoren benötigt asymptotisch weniger als 2w ld(ql ) Bitoperationen. Dies entspricht einem Aufwand von O(L(n)d+ε ) Bitoperationen. Für die Auffindung modulo 2 linear abhängiger Exponentenvektoren in Schritt (5) benötigen 3 wir mit dem Gauß-Algorithmus O(l3 ) ⊆ O(L(n) c +ε ) Bitoperationen. Die Erstellung der Werte x und y sowie die abschließende Berechnung der größten gemeinsamen Teiler ggT(x ± y, n) erfolgt in polynomialer Laufzeit. Wir erhalten demnach asymc 3 1 }+ε Bitoperationen als Gesamtaufwand für das Quadratische ptotisch L(n)max{ c + 4 , c√ √ 3 2+ε 4 Sieb. Setzen wir c := 2 2, ergeben sich hieraus asymptotisch L(n) = L(n)1,06+ε Bitoperationen. Die Wahrscheinlichkeit W für das erfolgreiche Auffinden eines nichttrivialen Teilers von n lässt sich analog zu dem Beweis von Satz 16.17 (Dixon) nach l 1 1/3 unten durch (1 − e− 2 )(1 − 2−2l ) ≥ 1 − 2e− 2 L(n) abschätzen. 1 √ 3 √ Wie der obige Beweis nahelegt, scheinen l ≈ L(n) 4 2 und w ≈ L(n) 4 2 asymptotisch günstige Größen für die Länge der Faktorenbasis l bzw. den Intervallwert w zu sein. Bei größer werdender Länge des Siebintervalls wachsen allerdings auch die Funktionswerte F (t) linear mit w und werden dadurch schwerer faktorisierbar. Diesem Nachteil tritt das verteilte Quadratische Sieb entgegen. 17.3 Das verteilte Quadratische Sieb Statt sich auf ein einzelnes Polynom zu beschränken, verwendet die Methode von Peter Montgomery (1981) mehrere quadratische Polynome Fi (T ) und siebt diese über kleinere Intervalllängen 2wi . Bemerkung 17.8. Es sei F (T ) = aT 2 + 2bT + c ∈ Z[T ] ein ganzzahliges, quadratisches Polynom mit der Diskriminante D(F ) = 4(b2 − ac) =: 4n. Dann gelten: (a) a · F (T ) = (aT + b)2 − n. (b) Sind die Werte −F (− ab ) und F (− ab ± w) etwa gleich groß, so gilt dies auch für √ a und w2n . Beweis. Die Aussage (a) lässt sich sehr leicht mit Hilfe des binomischen Lehrsatzes nachrechnen. Wir erhalten hieraus für Teil (b) die Gleichungen −aF (− ab ) = n und für Aussage (b) ergibt sich damit aF (− ab ± w) = a2 w2 − n. Nach der Voraussetzung √ 2n 2 2 a w ∼ 2n und somit die Behauptung a ∼ w . 17.4 Schnelles Lösen quadratischer Gleichungen 165 Bemerkung 17.9. Es sei F (T ) = aT 2 + 2bT + c ∈ Z[T ] wie in Bemerkung 17.8 gewählt. Setzt √ man die halbe Intervalllänge w und die Koeffizienten a, b, c in Relation = b2 −ac, so ist |F (t)| für jede Stützstelle t ∈ [− ab −w, − ab +w] gemäß a ∼ w2n und n√ nach oben durch √w2 · n beschränkt. Beweis. Mit Hilfe von Bemerkung 17.8 und einer √ gewöhnlichen Kurvendiskussion √1 w n. erhalten wir |F (t)| ≤ |F (− ab )| = na ∼ √nw = 2n 2 Korollar 17.10. (Montgomery) Mit den gemäß Bemerkung 17.9 gewählten k Siebintervallen der Länge 2w , erhält k man im Vergleich zu Bemerkung 17.5 Siebintervalle mit um den Faktor 2√12k kleineren Werten für F (t). Die Erkenntnisse aus Folgerung 17.10 sind lediglich für die Praxis von Bedeutung, asymptotisch sind sie nicht von Vorteil. 17.4 Schnelles Lösen quadratischer Gleichungen Wir kennen mit Bemerkung 17.3 bereits ein Verfahren zur Lösung quadratischer Kongruenzen modulo einer Primzahl p ∈ P. Dieses hat mit O(p · ld(p)2 ) Bitoperationen einen exponentiellen Aufwand. Wir fragen uns daher, ob es schnellere Methoden zur Lösung des Problems gibt. Wie die folgende Bemerkung zeigt, ist der Aufwand besonders gering, wenn die Primzahl p die Kongruenz p ≡ 3 mod 4 erfüllt. Bemerkung 17.11. Es seien p ∈ P eine Primzahl mit p ≡ 3 mod 4 und a ∈ Z ein quadratischer Rest modulo p. Dann lassen sich die Lösungen der quadratischen (p+1) Kongruenz x2 ≡ a mod p über x ≡ ±a 4 mod p finden. Beweis. Es sei a ∈ Z ein quadratischer Rest modulo p. Dann gilt unter Verwendung des Eulerschen Kriteriums 12.18 : p−1 a ≡ a 2 ≡ 1 mod p. p Für x0 ∈ {±a (p+1) 4 mod p} gilt dann die Kongruenzkette x20 ≡ a (p+1) 2 ≡a·a (p−1) 2 ≡ a mod p. Wie wir sehen, benötigen wir im Fall p ≡ 3 mod 4 höchstens O(ld(p)) modulare Multiplikationen zur Lösung der quadratischen Kongruenz x2 ≡ a mod p. Für den Fall p ≡ 1 mod 4 liefert folgender probabilistischer Algorithmus eine effiziente Lösung. 166 Das Quadratische Sieb Algorithmus 17.12. (Schnelles Lösen quadratischer Kongruenzen) Es seien p ∈ P eine ungerade Primzahl und a ∈ Z ein quadratischer Rest modulo p. Ferner seien e, u ∈ N mit p − 1 = 2e · u und ggT(2, u) = 1. Gesucht sei ein x ∈ Z mit x2 ≡ a mod p. 1. Man wähle modulo p einen quadratischen Nichtrest b ∈ Z und setze i := 1. 2. Man setze a1 := a und berechne r1 := max{r ∈ N | ordF×p (a1 ) ≡ 0 mod 2r }. 3. Solange ri > 0 ist, führe man folgende Schleife aus: e−ri DO Man setze ai+1 := ai · b2 mod p und berechne ri+1 := max{r ∈ N | ordF×p (ai+1 ) ≡ 0 mod 2r }. Ferner setze man den Laufindex i := i + 1. u+1 4. Man setze xi := zi 2 mod p und berechne sukzessive xk := für alle natürlichen Zahlen i > k ≥ 1. b2 xk+1 e−rk −1 mod p 5. Der Wert x := x1 liefert die gesuchte Zahl mit x2 ≡ a mod p. Satz 17.13. Der Algorithmus 17.12 ist korrekt und liefert in polynomial probabilistischer Laufzeit eine Lösung quadratischer Kongruenzen modulo einer ungeraden Primzahl p ∈ P. Beweis. Es seien p ∈ P eine ungerade Primzahl und a ∈ Z ein quadratischer Rest modulo p. Ferner seien u, e ∈ N mit p − 1 = 2e · u und ggT(2, u) = 1. In Algorithmus 17.12 ist zunächst modulo p ein quadratischer Nichtrest b ∈ Z zu wählen. Dies ist der einzige nicht deterministische Schritt des Algorithmus. Da a1 := a ein quadratischer Rest modulo p ist, gilt nach dem Eulerschen Kriterium: p−1 a1 2 ≡ 1 mod p. Demnach ist ordF×p (a1 ) ein Teiler von p−1 und es gilt r1 ≤ e − 1. Insbesondere ist r1 2 r definitionsgemäß minimal mit der Eigenschaft a2 1 ·u ≡ 1 mod p. Solange ri > 0 ist werden rekursiv die Folgen {a1 , a2 , . . .} und {r1 , r2 , . . .} via e−ri ai+1 := ai · b2 und ri+1 := max{r ∈ N | ordF×p (ai+1 ) ≡ 0 gebildet. Hierbei gilt wegen u · 2e−1 = r −1 i au·2 i+1 p−1 2 r −1 mod 2r } die Kongruenzkette e−1 i ≡ au·2 · bu·2 ≡ 1 | i {z } | {z } ≡( pb ) ≡−1 mod p. Diese Gleichung garantiert ri+1 < ri und damit die Terminierung des Verfahrens nach höchstens e ≤ ld(p) Schritten. Da a1 ein quadratischer Rest modulo p ist und 17.4 Schnelles Lösen quadratischer Gleichungen 167 die strikte Ungleichungskette e > r1 > . . . > ri > ri+1 gilt, folgern wir induktiv, dass ai+1 per Definition ebenfalls ein quadratischer Rest modulo p ist. Also ist ordF×p (ai+1 ) ein Teiler von 2e−1 · u. Es sei nun m der erste Index mit rm = 0. Dann gilt für u+1 xm := am2 mod p wegen ordF×p (am ) | u die Kongruenz ≡ am x2m ≡ au+1 m Induktiv berechnen wir für xi := x2i b2 xi+1 e−ri −1 mod p. die Gleichungskette x2i+1 ai+1 ≡ 2e−ri ≡ 2e−ri ≡ ai b b mod p. Insbesondere erhalten wir mit x21 ≡ a mod p das gewünschte Ergebnis. Hinsichtlich der Komplexität des Algorithmus sind abgesehen von der Bestimmung des quadratischen Nichtrestes b folgende Rechenschritte nötig: Die Berechnung der e−1 Potenzen b2 , . . . , b2 erfordert eine (e − 1)-malige modulare Quadratur. Die Bee−1 rechnung der Potenzen bu , b2u . . . , b2 u benötigt weitere 2 · ld(u) + e − 1 Kongruenzmultiplikationen. Ferner erhalten wir die Potenz au mit Algorithmus 3.10 in höchstens 2 · ld(u) Multiplikationen. Die Berechnung von ai bzw. aui aus aui−1 , sowie r r au·2 aus au·2 i i−1 verursacht einen Aufwand von O(e) ⊆ O(ld(p)) Multiplikationen. Den Wert xm berechnen wir mit Hilfe der schnellen Exponentation mit höchstens 2·ld(u) ∈ O(ld(p)) Kongruenzmultiplikationen. Abschließend erhalten wir die Werte xi aus xi+1 per modularer Division zu jeweils O(ld(p)2 ) Bitoperationen. Es ergibt sich also ein Gesamtaufwand von O(ld(p)3 ) Bitoperationen. 168 Das Quadratische Sieb Kapitel 18 Primpolynomzerlegung über endlichen Körpern Nachdem wir einige Faktorisierungsalgorithmen für natürliche bzw. ganze Zahlen studiert haben, wollen wir diese Fragestellung auf den Ring der Polynome K[T ] ausdehnen. In diesem Kapitel betrachten wir zunächst Polynomringe, deren zugrundeliegender Basisring K ein endlicher Körper ist. Die Problemstellung unterscheidet sich dann nur bedingt von der bisherigen Frage nach der Primfaktorzerlegung im Ring der ganzen Zahlen Z. Wie Z besitzt auch K[T ] die Eigenschaft, ein Euklidischer Ring zu sein, und hat damit eine ähnliche Teilbarkeitsstruktur. Die Existenz einer eindeutigen Primfaktorzerlegung lässt sich ebenfalls analog herleiten, wobei die Primelemente in K[T ] durch die irreduziblen Polynome repräsentiert werden. Ein irreduzibles Polynom in K[T ] wird nur von Einheiten, dies sind die Elemente 0 6= a ∈ K, und Polynomen gleichen Grades geteilt. 18.1 Teilfaktorisierungen Definition 18.1. Es sei K ein Körper der Charakteristik p ∈ P. Dann nennen wir folgenden Körperhomomorphismus φp den Frobenius-Homomorphismus: φp : K −→ K a 7−→ ap Ein Körper K heißt vollkommen, wenn er entweder die Charakteristik 0 besitzt oder wenn im Falle von char(K) = p der Frobenius-Homomorphismus φp surjektiv ist. Anmerkung 18.2. Jeder endliche Körper und jeder algebraisch abgeschlossene Körper ist vollkommen. (Siehe z.B. Lang[9]). Bemerkung 18.3. Es sei K ein vollkommener Körper der Charakteristik p ∈ P. Des Weiteren sei f (T )Q∈ K[T ] ein normiertes Polynom mit zugehöriger Primpolynomzerlegung f (T ) = ri=1 fi (T )ei , wobei ei ≥ 1 ist für alle Indizes i ∈ {1, . . . , r}. 170 Primpolynomzerlegung über endlichen Körpern (a) Ist die erste Ableitung f 0 (T ) das Nullpolynom, so existiert ein g ∈ K[T ] mit f (T ) = (g(T ))p . (b) Ist die erste Ableitung f 0 (T ) verschieden von dem Nullpolynom, so erhalten wir r Y f (T ) = fi (T ). ggT(f, f 0 ) i=1 p-ei Pn 0 i 0 Beweis. Es sei zunächst f = 0. In der Notation f (T ) = i=0 ai T bzw. f (T ) = Pn i−1 bedeutet dies ai = 0 für alle Indizes i, die nicht von p geteilt werden. Es i=1 i·ai T sind also höchstens die Koeffizienten ai von 0 verschieden, deren Index ein Vielfaches des KörpercharakteristikPp ist. Für ein geeignetes m erhalten wir für f demnach jp die Darstellung f (T ) = m zu j=0 ajp T . Da der Körper K vollkommen ist, existiert Pm p jedem Index j ∈ {1, . . . , m} ein Element bj ∈ K mit ajp = bj . Für g(T ) := j=0 bj T j ergibt sich somit ähnlich zu dem Beweis von Bemerkung 14.1 die Behauptung g p = f . Es sei nun andererseits f 0 6= 0 und damit der größte gemeinsame Teiler ggT(f, f 0 ) von f verschieden. Ferner sei j ein beliebiger Index aus der Menge {1, . . . , r}. Dann e existiert ein zu fj teilerfremdes Polynom g ∈ K[T ] mit f = fj j · g. Für den Fall, dass die Charakteristik p ein Teiler des Exponenten ej ist, gilt für die Ableitung von f nach der Kettenregel (ej −1) f 0 = ej fj e e · g + fj j · g 0 = fj j · g 0 . e Damit ist fj j ein Teiler von ggT(f, f 0 ) und wird durch eine entsprechende Division annuliert. Ist andererseits p kein Faktor von ej , so ist ej − 1 die maximale Potenz d, f für die ggT(f, f 0 ) von fjd geteilt wird. In diesem Fall gilt dann ordfj ( ggT(f,f 0 ) ) = 1. Bemerkung 18.4. Für eine Primzahl p ∈ P und eine natürliche Zahl t ∈ N sei Fq der endliche Körper mit q = pt Elementen. Dann lässt sich in Fq die p-te Wurzel durch Potenzieren ziehen. Beweis. In endlichen Körpern ist die Einheitengruppe F× q zyklisch erzeugt von einem Element der Ordnung (q − 1). Das heißt für alle Elemente a ∈ Fq gilt aq = a. Die p-te Wurzel von a ergibt sich demnach durch q √ 1 p p p a = φ−1 p (a) = a = a . Definition 18.5. (Quadratfrei, Quadratfreie Faktorisierung) Es seien K ein Körper und f ∈ K[T ] ein Element aus dem zugehörigen Polynomring. Das Polynom f heißt quadratfrei, wenn für jeden seiner Teiler g ∈ K[T ] gilt: g 2 - f . Eine Zerlegung f = g1e1 · g2e2 · · · gses mit paarweise verschiedenen Exponenten heißt quadratfreie Faktorisierung, wenn die Polynome gj paarweise teilerfremd und quadratfrei sind. 18.1 Teilfaktorisierungen 171 Mit Hilfe von Bemerkung 18.3 können wir zu einem Polynom f ∈ Fq [T ] einen Algorithmus zur Berechnung einer quadratfreien Faktorisierung angeben. Algorithmus 18.6. (Quadratfreie Faktorisierung - SQF) Es seien Fq ein endlicher Körper wie in Bemerkung 18.4 und f (T ) ein normiertes Polynom aus dem zugehörigen Polynomring Fq [T ]. Zu Beginn des Algorithmus setzen wir h := f . 1. Man berechne den größten gemeinsamen Teiler d := ggT(h, h0 ). 2. Falls d = h ist, existiert ein Polynom g ∈ Fq [T ] mit g p = h. In diesem Fall setze man h := g und gehe zu (1). 3. Falls d 6= h ist, setze man g := h d und berechne t := ggT(g, d). (a) Falls t 6= 1 ist, setze man h := h t sowie d := d t und gehe zu (3). (b) Falls t = 1 ist, existiert ein Polynom w ∈ Fq [T ] mit d = wp . Falls w 6= 1 ist, setze man h := g · w und gehe zu (1). Gilt andererseits w = 1, so ist h = f1 · · · fr der quadratfreie Kern von f . 4. Man setze f1 := f, h1 := h und i := 1. Solange fi 6= 1 ist, führe man folgende Schleife aus: . Die so DO: Man berechne fi+1 := hfii , hi+1 := ggT(hi , fi+1 ) und di := hhi+1 i definierten Polynome di sind quadratfrei. Außerdem setze man s := i und i := i + 1. 5. Wir erhalten über f = d1 · d22 · . . . · · · dss eine quadratfreie Faktorisierung von f mit paarweise teilerfremden di . Satz 18.7. Für die quadratfreie Faktorisierung eines normierten Polynoms f ∈ Fq [T ] vom Grad n genügen O(n2 (ld(n)2 + ld(q))) Ringoperationen. Beweis. Für die Berechnung des größten gemeinsamen Teilers zweier Polynome vom Grad ≤ n benötigen wir mit dem schnellen Euklidischen Algorithmus asymptotisch O(n ld(n)2 ) Ringoperationen. Die Berechnung der p-ten Wurzeln aller Koeffizienten eines Polynoms vom Grad n hat nach Bemerkung 18.4 einen Aufwand von O(n ld(q)). Insgesamt lässt sich somit die Komplexität des Algorithmus 18.6 nach oben durch O(r · n(ld(n)2 + ld(n))) abschätzen . Hierbei ist r ≤ n die Anzahl der irreduziblen Faktoren von f . Anmerkung 18.8. Durch einen Algorithmus von Yun ist es möglich die Komplexität der quadratfreien Faktorisierung (SQF) auf O(µ(n) ld(n) + n ld(q)) Ringoperationen zu drücken. 172 Primpolynomzerlegung über endlichen Körpern Bemerkung 18.9. Es seien f ∈ Fq [T ] ein normiertes quadratfreies Polynom und n ∈ N eine natürliche Zahl mit n ≤ deg(f ). Dann ist der größte gemeinsame Teiler n ggT(T q − T, f (T )) das Produkt aller normierten Primteiler g von f mit deg(g) | n. Beweis. Es seien g ∈ Fq [T ] ein normierter Primteiler von f (T ) und Zg := {a1 , . . . , am } die Menge aller Nullstellen von g im zugehörigen Zerfällungskörper. Für eine solche Nullstelle a ∈ Zg ist Fq (a)/Fq eine algebraische Körpererweiterung vom Grad deg(g) =: m, es gilt also Fq (a) = Fqm . Da diese Überlegung für jedes a ∈ Zg gültig ist, ist Fqm = Fq (a1 , . . . , am ) der Zerfällungskörper von g. Ist nun der Grad von g ein Teiler von n, so ist Fqn ein Erweiterungskörper von Fqm und g demnach ein Teiler n des Polynoms T q − T . Nehmen wir nun an, ein Primteiler g von f mit deg(g) - n n sei ebenfalls ein Faktor von T q − T , so ist Zg und damit Fqm im zugehörigen Zerfällungskörper Fqn enthalten. Dies ist ein Widerspruch zu m - n. Wir haben gesehen, dass wir unter Verwendung des Algorithmus 18.6 die quadratfreie Faktorisierung eines normierten Polynoms f ∈ Fq [T ] berechnen können. Mit Hilfe von Bemerkung 18.9 lässt sich nun ein Algorithmus angeben, mit dem sich die übrigen quadratfreien Teiler weiter faktorisieren lassen. Algorithmus 18.10. (Faktorisierung nach Graden) Es sei f ∈ Fq [T ] ein normiertes quadratfreies Polynom vom Grad n. Für den Algorithmus setze man zu Beginn das Hilfspolynom h := f und die Laufvariable i := 1. i 1. Man berechne den größten gemeinsamen Teiler di := ggT(T q −T, f ) und setze h := dhi . 2. Solange i ≤ liefert 1 2 deg(f ) ist, setze man i := i + 1 und gehe zu (1). Andernfalls Y di ) · t f =( i< 21 deg(f ) eine Zerlegung von f . Hierbei ist jedes di das Produkt aller Primteiler vom Grad i und der Faktor t ist entweder trivial oder irreduzibel. Satz 18.11. Für die Faktorisierung nach Graden eines normierten und quadratfreien Polynoms f ∈ Fq [T ] vom Grad n genügen O(n2 · ld(n) · ld(nq)) Ringoperationen. Beweis. Die maximale Anzahl an Schleifendurchläufen liegt mit 12 deg(f ) in O(n). Bevor wir in jedem Iterationsschritt den größten gemeinsamen Teiler ermitteln, bei rechnen wir T q modulo f . Diese Potenzierungen mit q und die Division mit Rest durch f benötigen ld(q) · n · ld(n) Ringoperationen. Für die darauf folgende ggTBerechnung mit dem schnellen Euklidischen Algorithmus genügen dann O(n ld(n)2 ) Ringoperationen. Insgesamt erhalten wir also einen Aufwand in der Größenordnung von O(n2 ld(n)(ld(q) + ld(n))) ⊆ O(n2 ld(n) ld(nq)) Ringoperationen. 18.2 Der Berlekamp-Algorithmus 18.2 173 Der Berlekamp-Algorithmus Mit den bisher in diesem Kapitel betrachteten Algorithmen 18.6 und 18.10 ist es uns möglich, ein Polynom f ∈ Fq [T ] in ein Produkt von quadratfreien Faktoren zu zerlegen. Die Faktorisierung in Primpolynompotenzen ist damit allerdings im Allgemeinen noch nicht erreicht. Der Berlekamp-Algorithmus liefert eine Lösung für diese Fragestellung. Definition 18.12. (Zerlegende Polynome) Es seien Fq ein endlicher Körper mit q Elementen und f ein normiertes Polynom aus dem Ring Fq [T ]. Ein Polynom h ∈ Fq [T ] mit deg(h) < deg(f ) heißt f -zerlegend, wenn die Kongruenz hq ≡ h mod f erfüllt ist. Definition 18.13. (Elementarsymmetrische Polynome) Es seien K ein Körper und K[t1 , . . . , tn ] der zugehörige Polynomring in n Unbestimmten. Dann heißt für einen Index r ∈ {1, . . . , n} X sr (t1 , . . . , tn ) := ti1 · . . . · tir 1≤i1 <...<ir ≤n r-tes elementarsymmetrisches Polynom über K. Anmerkung 18.14. Man zeigt leicht via Induktion, dass in K[t1 , . . . , tn ][T ] mit den elementarsymmetrischen Polynomen s1 , . . . , sn aus Definition 18.13 folgende Gleichung gilt: n n Y X n (−1)k sk T n−k . (T − ti ) = T + i=1 k=1 Bemerkung 18.15. Es seien f ∈ Fq [T ] ein normiertes Polynom Q und h ∈ Fq [T ] gemäß Definition 18.12 f -zerlegend. Dann erhalten wir über f = c∈Fq ggT(h−c, f ) eine nichttriviale Zerlegung von f . Beweis. Die Einheitengruppe F× q = Fq \ {0} ist zyklisch erzeugt von einem Element der Ordnung q − 1. Das Polynom T q − T besitzt Qq also q verschiedene Nullstellen in Fq und zerfällt demnach in das Produkt i=1 (T − ci ) mit Fq = {c1 , . . . , cq }. Nach Anmerkung 18.14 gilt somit für die elementarsymmetrischen Polynome aus Fq [t1 , . . . , tq ]: (−1)q−1 sq−1 (c1 , . . . , cq ) = −1 und sk (c1 , . . . , cq ) = 0 für k 6= q − 1. Hieraus ergibt sich q q Y X q (h − ci ) = h + (−1)k sk (c1 , . . . , cn )hq−k = hq − h. i=1 k=1 Nach Voraussetzung ist f ein Teiler von hq − h, und es gilt deg(h) < deg(f ). Da alle Faktoren h − ci paarweise teilerfremd sind, erhalten wir mit f = ggT(hq − h, f ) = Q c∈Fq ggT(h − c, f ) eine nichttriviale Zerlegung von f . 174 Primpolynomzerlegung über endlichen Körpern Mit einem geeigneten Polynom h ∈ Fq [T ] erhalten wir nach obiger Bemerkung eine nichttriviale Faktorisierung eines normierten Polynoms f ∈ Fq [T ]. Sollte es möglich sein, zu jedem f ∈ Fq [T ] ein f -zerlegendes Polynom anzugeben, so lässt sich das Faktorisierungsproblem für Polynome über endlichen Körpern auf diese Weise lösen. Es stellt sich nun die Frage, ob und wie sich zerlegende Polynome gewinnen lassen. Definition 18.16. (Berlekamp-Matrix) Es sei f ∈ Fq [T ] ein normiertes quadratfreies Polynom mit deg(f ) = n. Weiterhin sei für jedes j in der Indexmenge {0, . . . , n − 1} die Restklasse von T jq modulo f P i gegeben durch n−1 i=0 bij T ∈ Fq [T ]/(f ). Die zugehörige (n × n)-Koeffizientenmatrix b0,0 b0,1 . . . b0,n−1 .. ... . b Bf := 1,0 .. .. ... . . bn−1,0 . . . . . . bn−1,n−1 heißt die Berlekamp-Matrix zu f. Satz 18.17. Es seien f ∈ Fq [T ] ein normiertes quadratfreies Polynom mit deg(f ) = n und Bf die zugehörige Berlekamp-Matrix. Dann gelten: (a) Ein Koeffizientenvektor h := (h0 , . . . , hn−1 )tr ∈ Fnq ist genau dann eine Lösung des homogenen (Bf −In )x = 0, wenn das zugehörige Polynom Pn−1 Gleichungssystems i h(T ) := i=0 hi T f -zerlegend ist. (b) Die Zahl r := n − Rang(Bf − In ) ist die Anzahl der paarweise verschiedenen irreduziblen Faktoren von f . Beweis. Für Teil (a) sei zunächst h ∈ Fnq mit Bf h = h. Dann lässt sich jeder Pn−1 bij hj . Eingesetzt in die Definition des Koeffizient hi von h darstellen als hi = j=0 Polynoms h(T ) ergibt dies folgende Gleichungskette: h(T ) = n−1 X hi T i n−1 X n−1 X = ( bij hj )T i i=0 i=0 j=0 ≡ n−1 X hj T qj = h(T )q mod f. j=0 Somit ist f ein Teiler von h(T )q − h(T ) und h damit f -zerlegend. Ist P h andererseits i ein f -zerlegendes Polynom, so besitzt dieses eine Darstellung h(T ) = n−1 i=0 hi T mit gegebenenfalls aufgefüllten Koeffizienten hs = 0 für alle s > deg(h). Auf Grund der Kongruenz hq ≡ h mod f , erhalten wir analog zu obiger Gleichungskette n−1 X n−1 n−1 X X i ( bij hj )T = hi T i . i=0 j=0 i=0 18.2 Der Berlekamp-Algorithmus 175 Durch einen Koeffizientenvergleich resultiert hieraus die Behauptung: Bf h = h. Qr Für Teil (b) sei f = i=1 fi die Primfaktorzerlegung von f . Nach Teil (a) korrespondieren die f -zerlegenden Polynome zu den Elementen des Lösungsraums L des homogenen Gleichungssystems (Bf − In )x = 0. Dieser besitzt die Fq -Dimension n − Rang(Bf − In ). Wir wollen nun zeigen, dass dieser Lösungsraum L isomorph zu einem r-dimensionalen Fq -Vektorraum ist. Es Q sei also h ∈ Fq [T ] ein f -zerlegendes Polynom. Dann ist f ein Teiler von hq − h = c∈Fq (h − c), und zu jedem Primfaktor fi existiert ein ci ∈ Fq , sodass fi | h − ci bzw. h ≡ ci mod fi gilt. Dies liefert einen Vektor (c1 , . . . , cr ) ∈ Frq . Umgekehrt ist die Abbildung φ : Fq [T ]/(f ) −→ (Fq [T ]/(f1 )) × · · · × (Fq [T ]/(fr )) h mod f 7−→ (. . . , h mod fi , . . .) nach dem Hauptsatz über Simultane Kongruenzen ein Ringisomorphismus. Also existiert zu einem beliebigen Vektor (c1 , . . . , cr ) ∈ Frq ein h ∈ Fq mit deg(h) < deg(f ), sodass die Kongruenz h ≡ ci mod fi für jeden Index i ∈ {1, . . . , r} erfüllt ist. Ein solches Polynom h ist zum Beispiel durch eine Lagrange-Interpolation konstruierbar. Betrachten wir nun die q-te Potenz von h, so gelten für alle i ∈ {1, . . . , r} die Kongruenzketten hq ≡ cqi ≡ ci ≡ h mod fi . Da die Faktoren f1 , . . . , fr paarweise verschieden sind, ist f ebenfalls ein Teiler der Differenz hq − h und h damit f -zerlegend. Der r-dimensionale Vektorraum Frq korrespondiert also zu dem Vektorraum der f -zerlegenden Polynome und dieser wiederum zu dem Lösungsraum L der Dimension n − Rang(Bf − In ). Algorithmus 18.18. (Berlekamp-Algorithmus) Es sei f ∈ Fq [T ] ein normiertes quadratfreies Polynom mit deg(f ) = n. 1. Man berechne die Berlekamp-Matrix Bf zu f . 2. Man löse das lineare Gleichungssystem (Bf − In )x = 0. Dies liefert r linear unabhängige f -zerlegende Polynome {h1 = 1, h2 , . . . , hr }. 3. Falls r = 1 gilt, ist das Polynom f irreduzibel. In allen anderen Fällen setze man h := h2 . 4. Für alle bisher gefundenen Teiler g von f und für jedes Element c ∈ Fq berechne man ggT(g, h − c). 5. Falls noch nicht r Teiler von f gefunden wurden, setze man h := hi+1 und gehe zu (4). Satz 18.19. Für ein normiertes quadratfreies Polynom f ∈ Fq [T ] vom Grad n gilt: Der Berlekamp-Algorithmus 18.18 findet alle Primfaktoren von f und benötigt hierzu höchstens O(n2 (n + rq)) ⊆ O(n3 q) Ringoperationen. 176 Primpolynomzerlegung über endlichen Körpern Beweis. Die Korrektheit des Algorithmus ergibt sich direkt aus Bemerkung 18.15 und Satz 18.17. Es bleibt die Aussage über die Komplexität: Die Berechnung der Kongruenzen T qj mod f mit deg(f ) = n in Schritt (1) benötigt n Potenzierungen mit q und n Divisionen mit Rest durch f . Dies ergibt einen Aufwand von O(n ld(q)·n2 ) Ringoperationen. Der Gauß-Algorithmus zur Lösung des linearen Gleichungssystems in Schritt (2) erzeugt einen Aufwand von O(n3 ) Ringoperationen. In Schritt (4) haben wir r · q ggT-Berechnungen von Polynomen vom Grad ≤ n. Dies ergibt einen Aufwand von O(r · q · n2 ). Insgesamt hat daher der Algorithmus 18.18 eine Komplexität von höchstens O(n2 (n + rq)) Ringoperationen. Beispiel 18.20. Für ein Anwendungsbeispiel des Berlekamp-Algorithmus betrachten wir das Polynom f (T ) = T 5 + T 4 + 1 ∈ F2 [T ]. Zunächst berechnen wir die Berlekamp-Matrix Bf . Hierbei gelten modulo f folgende Kongruenzen: 1 ≡ 1, T 2 ≡ T 2 , T 4 ≡ T 4 , T 6 ≡ T 4 + T + 1 und T 8 ≡ T 4 + T 3 + T 2 + T + 1. Dies liefert uns die Matrizen 1 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 1 0 1 1 Bf = 0 1 0 0 1 bzw. (Bf − I5 ) = 0 1 1 0 1 . 0 0 0 0 1 0 0 0 1 1 0 0 1 1 1 0 0 1 1 0 Der Rang der Matrix Bf − I5 ist 3, weshalb das Polynom f in zwei irreduzible Faktoren zerfällt. Aus der Lösung des linearen Gleichungssystems (Bf − I5 )x = 0 erhalten wir h1 = 1 und h2 = T 2 + T 3 + T 4 als f -zerlegende Polynome. Über ggT(f (T ), h2 ) = T 2 + T + 1 und ggT(f (T ), h2 + 1) = T 3 + T + 1 bekommen wir dann die gesuchte Primfaktorzerlegung von f . Mit einem Aufwand von O(n2 (n+rq)) Ringoperationen ist der Berlekamp-Algorithmus 18.18 nicht polynomial in der Länge der Eingabedaten deg(f ) · ld(q). 18.3 Eine Variante für große q Bemerkung 18.21. (Zassenhaus) Es seien f ∈ Fq [T ] ein normiertes quadratfreies Polynom vom Grad n, h ∈ Fq [T ] f -zerlegend und C := {c ∈ Fq | ggT(f (T ), h(T ) − c) 6= 1}. Dann ist Y g(T ) := (T − c) c∈C das Polynom kleinsten Grades, für das f die Komposition g ◦ h teilt. Beweis. Wir zeigen zunächst, dass die Kongruenz g ◦ h ≡ 0 mod f erfüllt ist. Da h ein f -zerlegendes Polynom ist, wird Y Y Y hq − h = (h − c) = (h − c) · (h − c) c∈Fq [T ] c∈(Fq [T ]\C) c∈C 18.3 Eine Variante für große q 177 Q von f geteilt. Nach Konstruktion sind f und das Produkt c∈(Fq [T ]\C) (h − c) teilerQ fremd, d.h. f ist bereits ein Faktor von c∈C (h − c) = g(h(T )). Um die Minimalität des Grades von g zu beweisen, verwenden wir die Menge G := {g̃ ∈ Fq [T ] | f teilt g̃ ◦ h}. Offenbar ist G ein Ideal in Fq [T ]. Da Fq [T ] ein Hauptidealring ist, existiert ein erzeugendes Element ĝ ∈ G mit G = (ĝ). Q Damit ist das Polynom ĝ auch ein Teiler von g und hat die Darstellung ĝ(T ) = c∈Ĉ (T − c) mit Ĉ ⊆ C. Da die Polynome (h − c) für alle c ∈ Fq paarweise teilerfremd sind und Q f ein Faktor von c∈Ĉ (h − c) ist, kann die Menge Ĉ nicht echt in C enthalten sein. Somit gelten Ĉ = C und g = ĝ. Mit Hilfe von Bemerkung 18.21 ist es uns möglich Schritt (4) aus dem BerlekampAlgorithmus 18.18 zu verbessern. Algorithmus 18.22. (Zassenhaus-Variante des Berlekamp-Algorithmus) Es sei f ∈ Fq [T ] ein normiertes quadratfreies Polynom. Ferner seien (h1 , h2 , . . . hr ) die linear unabhängigen f -zerlegenden Polynome aus den ersten drei Schritten des Berlekamp-Algorithmus 18.18. 1. Falls r 6= 1 und f damit nicht irreduzibel ist, setze man das Hilfspolynom h := h2 und gehe zu (2). 2. Man berechne hi mod f für alle Potenzen i ∈ {1, . . . , r}. 3. Man berechne die kürzeste nichttriviale Linearkombination mod f . P i≥0 ai hi ≡ 0 4. Gemäß Algorithmus man die Menge C aller Nullstellen des P 18.25 berechne i Polynoms g(T ) := i≥0 ai T . 5. Für alle Elemente c ∈ C berechne man den größten gemeinsamen Teiler ggT(f (T ), h(T ) − c). Falls noch nicht r verschiedene Primfaktoren gefunden wurden, setze man h := hi+1 und gehe zu (2). Satz 18.23. Zur Durchführung der Zassenhaus-Variante des Berlekamp-Algorithmus für ein normiertes quadratfreies Polynom f ∈ Fq [T ] vom Grad n mit r Primfaktoren genügen mit Hilfe des probabilistischen Cantor-Zassenhaus-Algorithmus (vergl. Satz 18.26) O(n2 (n + r2 ld(q))) Ringoperationen. Das heißt dieser Algorithmus ist polynomial in der Länge seiner Eingabedaten n · ld(q). Beweis. Aus dem Beweis zu Satz 18.19 wissen wir, dass die ersten drei Schritte des Berlekamp-Algorithmus O(n3 ) Ringoperationen benötigen. Wir untersuchen nun die Komplexität der Schritte (1)-(5) aus der Zassenhaus-Variante: Die Berechnung von hi mod f für alle Potenzen i ∈ {1, . . . , r} benötigt O(rn2 ) Ringoperationen. Die P Suche nach der kürzesten Linearkombination i≤r ai T i ≡ 0 mod f erzeugt einen Aufwand in der Größenordnung von O(r3 ). Die Nullstellenmenge des Polynoms g(T ) in Schritt (4) bestimmen wir nach Satz 18.26 in O(nr ld(r) ld(q)) Ringoperationen. 178 Primpolynomzerlegung über endlichen Körpern Da es nicht mehr als r solcher Nullstellen geben kann, benötigt die ggT-Berechnung in Schritt (5) O(rn2 ) Ringoperationen. Dies ergibt für die Schritte (1)-(5) einen Gesamtaufwand von r · O(rn2 + r3 + r ld(r)n ld(q) + rn2 ) ⊆ O(r2 n2 ld(q)) Ringoperationen. Der komplette Algorithmus benötigt also höchstens O(n2 (n + r2 ld(q))) Ringoperationen. 18.4 Nullstellenberechung über endlichen Körpern Da dies unter Anderem in der Zassenhaus-Variante des Berlekamp-Algorithmus 18.22 benötigt wird, wollen wir uns zum Abschluss dieses Kapitels mit der Frage beschäftigen, wie sich über einem endlichen Körper die Nullstellen eines Polynoms f ∈ Fq [T ] schnell berechnen lassen. Bemerkung 18.24. Es seien Fq ein endlicher Körper mit char(Fq ) 6= 2 und h ∈ Fq [T ] ein beliebiges Polynom mit deg(h) ≥ 1. Dann gilt: Ein Element a ∈ Fq ist q−1 genau dann eine Nullstelle von h 2 + 1, wenn h(a) 6= 0 kein Quadrat in Fq ist. q−1 Beweis. Es sei a ∈ Fq eine Nullstelle von h 2 + 1 und wir wollen annehmen es 2 × existiere ein b ∈ F× q mit b = h(a). Da die Ordnung von b ∈ Fq ein Teiler von q − 1 = #F× q ist, erhalten wir h(a) q−1 2 = b2 q−1 2 = bq−1 = 1. q−1 Für char(Fq ) 6= 2 ergibt sich somit ein Widerspruch zu h(a) 2 + 1 = 0. Ist andererseits h(a) 6= 0 kein Quadrat in Fq , so gibt es eine natürliche Zahl 0 ≤ k < q − 1 mit h(a) = w2k+1 . Dabei sei w ein erzeugendes Element der zyq−1 2 eine klischen Einheitengruppe F× q . Da w ein Element der Ordnung q − 1 und w q−1 2 Nullstelle des Polynoms T − 1 ∈ Fq [T ] ist, gilt w 2 = −1. Wir erhalten hieraus die Behauptung q−1 q−1 q−1 h(a) 2 = wk(q−1) · w 2 = w 2 = −1. 2 3 q−1 Da die Einheitengruppe F× } genauso viele Quadrate wie q = {w, w , w , . . . , w Nichtquadrate enthält, ist 1 1 − 2 2q die Wahrscheinlichkeit dafür, dass für ein beliebiges nichtkonstantes Polynom h ∈ q−1 Fq [T ] ein Element a ∈ Fq eine Nullstelle von h 2 + 1 ist. Diese Tatsache macht sich der folgende probabilistische Algorithmus zu Nutze. Algorithmus 18.25. (Nullstellenberechnung über endlichen Körpern) Es seien Fq ein endlicher Körper mit char(Fq ) 6= 2 und f ∈ Fq [T ] ein Polynom. 18.4 Nullstellenberechung über endlichen Körpern 179 1. Man berechne den größten gemeinsamen Teiler g := ggT(T q − T, f ). 2. Man wähle ein normiertes Polynom h ∈ Fq [T ] mit deg(h) = deg(g) − 1. 3. Man berechne d1 := ggT(g, h q−1 2 + 1) und d2 := g . d1 4. Falls deg(d1 ) ≥ 1 ist, wiederhole man die Schritte (2)-(5) mit g := d1 . 5. Falls deg(d2 ) ≥ 1 ist, wiederhole man die Schritte (2)-(5) mit g := d2 . 6. Man gebe die Nullstellen aller gefundenen linearen Polynome aus. Satz 18.26. Der Algorithums 18.25 ist korrekt und berechnet die Nullstellen eines Polynoms f ∈ Fq [T ] mit deg(f ) = n probabilistisch mit O(n2 ld(n) ld(q)) Ringoperationen. Beweis. Es seien {a1 , . . . , am } die Nullstellen von f in dem Q Körper Fq . Dann gilt nach Schritt (1) von Algorithmus 18.25 wegen T q − T = c∈Fq (T − c) : g = (T − a1 ) · . . . · (T − am ). Wir wählen nun h ∈ Fq [T ] zufällig mit deg(h) = deg(g) − 1 und berechnen das q−1 Polynom d1 := ggT(g, h 2 +1) sowie d2 := dg1 . Ist dabei deg(d1 ) = 0 (oder deg(d1 ) = q−1 deg(g)), so ist kein (bzw. jedes) Element aus {a1 , . . . , am } eine Nullstelle von h 2 +1. In diesem Fall wird die Prozedur mit einem neuen zufällig gewählten Polynom h ∈ Fq [T ] wiederholt. Die Wahrscheinlichkeit, dass nach Schritt (2) keine Nullstelle von q−1 g (bzw. jedes der Elemente {a1 , . . . , am }) eine Nullstelle von h 2 + 1 ist, liegt bei ( 12 + 1 m ) 2q ( respektive ( 12 − 1 m ) 2q ). Gilt aber deg(g) > deg(d1 ) ≥ 1, so wird die Nullstellenmenge {a1 , . . . , am } für ein k ∈ {1, . . . , m − 1} und ein π ∈ Sm auf die Polynome d1 bzw. d2 vermöge d1 = (T − aπ(1) ) · · · (T − aπ(k) ) und d2 = (T − aπ(k+1) ) · · · (T − aπ(m) ) verteilt und das Verfahren mit diesen beiden Polynomen wiederholt. Da die Grade von d1 und d2 echt kleiner als deg(g) sind, liefert der Algorithmus alle Nullstellen von f in Fq . Die Komplexität des Algorithmus lässt sich wie folgt abschätzen: In Schritt (1) berechnen wir zunächst T q mod f und benötigen hierfür O(n ld(q) ld(n)) Ringoperationen. Die folgende ggT-Berechnung erfordert weitere O(n ld(n)2 ) Ringoperationen. Die Berechnung von d1 in Schritt (3) fordert den selben Aufwand. Hinzu kommen O(n ld(n)) Ringoperationen für die Berechnung von d2 . Insgesamt erhalten wir also eine Komplexität von O(m · n ld(n) ld(q)) ⊆ O(n2 ld(n) ld(q)) Ringoperationen. 180 Primpolynomzerlegung über endlichen Körpern Kapitel 19 Die Hensel’sche Methode 19.1 Das Hensel’sche Lemma Nachdem wir im letzten Kapitel Methoden zur Faktorisierung von Polynomen über endlichen Körpern kennengelernt haben, betrachten wir nun Polynome mit ganzzahligen Koeffizienten. Unser Ziel ist es, einen Algorithmus anzugeben, der ein Polynom f ∈ Z[T ] in seine Primfaktoren zerlegt. Hierzu benötigen wir das Konzept der padischen Zahlen, das erstmals von Kurt Hensel 1897 eingeführt wurde. Definition 19.1. (p-adische Zahlen, p-Betrag) Für eine Primzahl p ∈ P und eine natürliche Zahl n ∈ N nennen wir den projektiven Limes Zp := lim(Z/pn Z) den Ring der ganzen p-adischen Zahlen. Ein Element ←− P a ∈ Zp heißt p-adische Zahl und die zugehörige Reihenentwicklung a = i≥0 ai pi mit ai ∈ {0, 1, . . . , (p − 1)} nennen wir p-adische Normalreihe. Ferner bezeichnen wir mit ordp (a) := min{i ∈ N | ai 6= 0} die Ordnung der Primzahl p in a. Die Abbildung | · |p : Zp −→ R a 7−→ |a|p := p− ordp (a) heißt der p-Betrag von a. Anmerkung 19.2. (Eigenschaften der p-adischen Zahlen) Die Bezeichnungen in Definition 19.1 sind sinnvoll. So ist beispielsweise Zp tatsächlich ein Ring. Darüberhinaus ist er kommutativ und nullteilerfrei. Ferner ist | · |p ein Betrag mit ultrametrischer Dreiecksungleichung, das heißt es gilt für alle Elemente a, b ∈ Zp die Ungleichung |a + b|p ≤ max{|a|p , |b|p }. Betrachtet man die Einheitengruppe Z× p , so enthält diese (analog zum Ring der Potenzreihen) alle Elemente, deren Normalreihe ein nicht verschwindendes konstantes Glied besitzt, d.h. es ist Z× p = {a ∈ Zp | |a|p = 1}. 182 Die Hensel’sche Methode Da der Ring der p-adischen Zahlen ein Integritätsbereich ist, können wir den Quotientenkörper Qp := Quot(Zp ) bilden. Dieser heißt Körper der p-adischen Zahlen. Zu jedem Element a ∈PQp existiert dann eine ganze Zahl n ∈ Z, sodass a eine Normalreihe der Form i≥n ai pi besitzt. Dann ist |a|p = p−n . Insbesondere ist der Körper Qp die vollständige Hülle des Körpers der rationalen Zahlen Q bezüglich des p-Betrags | · |p . Um die Eigenschaften der p-adischen Zahlen genauer zu studieren, sei an dieser Stelle auf die Monographie von Müller-Stach und Piontkowski[11] verwiesen. Satz 19.3. (Hensel’sches Lemma) Es seien p ∈ P eine Primzahl und f ∈ Zp [T ] ein Polynom über dem Ring der ganzen p-adischen Zahlen. Darüberhinaus seien g0 , h0 zwei Polynome aus Zp [T ] mit f (T ) ≡ g0 (T )h0 (T ) mod ps , wobei s ≥ 2r + 1 gelte und r die Ordnung von p in der Resultante Res(g0 , h0 ) ist. Ferner gelte l(f ) = l(g0 ) l(h0 ) für die zugehörigen Leitkoeffizienten. Dann existieren zwei Polynome g, h ∈ Zp [T ] mit mod ps−r . f (T ) = g(T ) · h(T ) und g ≡ g0 , h ≡ h0 Beweis. Um die Behauptung zu beweisen, konstruieren wir per Induktion nach k Polynome gk , hk ∈ Zp [T ] mit gk+1 = gk + g̃k ps−r+k und hk+1 = hk + h̃k ps−r+k , sodass die Kongruenz f ≡ gk+1 hk+1 mod ps+k+1 gilt. Hierbei sind g̃k und h̃k ebenfalls Polynome über dem Ring der ganzen p-adischen Zahlen, für deren Grade die Ungleichungen deg(g̃k ) < deg(g0 ) und deg(h̃k ) < deg(h0 ) erfüllt sind. Dann existieren in Zp [T ] die Polynome g(T ) := lim gk (T ) und h(T ) := lim hk (T ), k−→∞ k−→∞ für die wegen lim (f − gk hk ) = 0 die Behauptung f = g · h ∈ Zp [T ] sowie nach k−→∞ Konstruktion die Kongruenzen g ≡ g0 mod ps−r und h ≡ h0 mod ps−r gelten. Der Induktionsanfang k = 0 ist bereits nach den Voraussetzungen zu Satz 19.3 erfüllt. Im Schritt von k nach k + 1 erhalten wir f = gk hk + ps+k lk mit lk ∈ Zp [T ] und deg(lk ) < deg(f ) = m + n. Hierbei sind die Werte m und n die Grade der Polynome g0 bzw. h0 . Da für die Resultantenbildung nur Ringoperationen benötigt werden, folgt aus gk ≡ g0 mod ps−r und hk ≡ h0 mod ps−r die Kongruenz Res(gk , hk ) ≡ Res(g0 , h0 ) mod ps−r . Nach Voraussetzung ist s − r größer als r, d.h. die Resultante Res(gk , hk ) ist von Null verschieden. Insbesondere gilt für den pBetrag der beiden Resultanten | Res(gk , hk )|p = | Res(g0 , h0 )|p . Als nächstes wollen wir zeigen, dass Polynome g̃k und h̃k mit pr lk = h̃k gk + g̃k hk existieren, deren Grade die Ungleichungen deg(h̃k ) < deg(hk ) und deg(g̃k ) < gk erfüllen. Hierzu bezeichnen wir die Koeffizienten der auftretenden Polynome in folgender Weise: gk = m X i=0 i ai T , hk = n X j=0 j bj T , g̃k = m−1 X i=0 i ãi T , h̃k = n−1 X j=0 j b̃j T und lk = m+n−1 X i=0 ci T i . 19.1 Das Hensel’sche Lemma 183 Die Frage nach der Existenz der Polynome g̃k und h̃k lässt sich dann in ein lineares Gleichungssystem für die Koeffizienten b̃j und ãi umformulieren: Hierbei gilt pr cd = P i+j=d (b̃j ai + ãi bj ) für alle Indizes d aus der Indexmenge {0, . . . , m + n − 1}. Die zugehörige Koeffizientenmatrix A hat dann die Form a0 0 ··· ··· 0 b0 0 ··· ··· 0 .. .. .. .. a1 . a . . b . 0 0 . . . . .. .. .. . . . . . . . a . . . . 2 . .. .. .. ... .. .. . . 0 . . 0 . .. .. .. . a0 bn−1 . b0 A= .. .. . am am−1 . bn bn−1 . .. .. .. 0 . am . 0 bn . . . . . . . . .. .. .. .. .. .. .. 0 .. .. .. .. .. .. . . . am−1 . . . 0 0 ··· 0 am 0 0 · · · 0 bn Wie man leicht sieht, unterscheidet sich die Matrix A von der Sylvestermatrix Syl(gk , hk ) nur um eine Permutation der Zeilen und Spalten. Damit ist die Determinante von A bis auf das Vorzeichen gleich der Resultante Res(gk , hk ) und ist somit nach den Vorüberlegungen von Null verschieden. Das lineare Gleichungssystem für die Koeffizienten b̃j und ãi ist demnach eindeutig lösbar. Mit Hilfe der Cramer’schen Regel erhalten wir det(A(j) ) . b̃j = det(A) Dabei entsteht die Matrix A(j) aus der Matrix A , indem man die (j + 1)-te Spalte durch den Vektor pr (c0 , . . . , cn+m−1 )tr ersetzt. Wegen r = ordp (Res(gk , hk )) = pr u ordp (det(A)) existiert ein Element u ∈ Zp und eine Einheit e ∈ Z× p mit b̃j = pr e ∈ Zp . Pn−1 Das so konstruierte Polynom h̃k = j=0 b̃j T j liegt damit in dem Ring Zp [T ]. Entsprechendes gilt für das zweite Polynom g̃k . Für den Induktionsschritt definieren wir nun gk+1 := gk + ps−r+k g̃k und hk+1 := hk + ps−r+k h̃k . Dann gilt f − gk+1 hk+1 = gk hk + ps+k lk − ((gk + ps−r+k g̃k ) · (hk + ps−r+k h̃k )) = p2(s−r+k) g̃k h̃k ≡ 0 mod p2(s−r+k) , womit die Behauptung bewiesen ist. Anmerkung 19.4. Löst man die Gleichung in der Zwischenbehauptung des Beweises zu Satz 19.3 modulo p(1+r+k) , so konvergiert die Hensel-Approximation quadratisch. Bei einer Rechnung modulo p(1+r) ensteht ein besonders einfach zu lösendes lineares Gleichungssystem über dem Körper Fp . Die Konvergenz der Approximation ist hierbei allerdings nur linear. 184 Die Hensel’sche Methode Zum Abschluss dieses Abschnittes wollen wir noch eine in der Literatur häufig als Hensel’sches Lemma bezeichnete Folgerung aus Satz 19.3 angeben. Korollar 19.5. Es seien p ∈ P eine Primzahl und f ∈ Zp [T ] ein Polynom mit f ≡ g0 h0 mod p. Hierbei seien g0 und h0 modulo p teilerfremde Polynome aus Zp [T ]. Des Weiteren gelte für die zugehörigen Leitkoeffizienten l(f ) = l(g0 ) · l(h0 ). Dann existieren g, h ∈ Zp [T ] mit f = g · h, sowie g ≡ g0 mod p und h ≡ h0 mod p. Beweis. Die Behauptung ergibt sich direkt aus Satz 19.3 mit r = 0 und s = 1. 19.2 Primzerlegung in Zp[T ] Satz 19.6. Es seien f ∈ Zp [T ] ein normiertes Polynom und d die Ordnung der Primzahl p ∈ P in der Diskriminante D(f ). Des Weiteren gelte die Kongruenz f ≡ g1 · · · gs mod pd+1 für Polynome gi ∈ Zp [T ]. Dann existieren Polynome f1 , . . . , fs ∈ Zp [T ] mit f= s Y fi i=1 und fi ≡ gi mod p für alle Indizes i ∈ {1, . . . , s}. Beweis. Setzen wir h1 := g2 · . . . · gs , so erhalten wir aus f ≡ g1 · · · gs mod pd+1 die Kongruenz D(g1 · h1 ) ≡ D(f ) mod pd+1 . Für den p-Betrag gilt hierbei |D(f )|p = |D(g1 · h1 )|p = p−d . Nach Kapitel 5 gilt die Diskriminantenformel D(g1 · h1 ) = D(g1 ) Res(g1 , h1 )2 D(h1 ). Mit p−r := |(Res( g1 , h1 )|p ergibt sich damit die Ungleichung 2r + 1 ≤ d + 1. Unter Verwendung von Satz 19.3 existieren also zwei Polynome f1 , h ∈ Zp [T ], sodass f = f1 · h gilt und die Kongruenzen f1 ≡ g1 mod pd+1−r sowie h ≡ h1 mod pd+1−r erfüllt sind. Insbesondere erhalten wir dabei f1 ≡ g1 mod p. Im folgenden sei d˜ die Ordnung der Primzahl p in der Diskriminante D(h). Dann gilt wegen d + 1 − r > d − 2r ≥ ordp (D(h1 )) = ordp (D(h)) ˜ die Kongruenz h ≡ g2 · · · gs mod pd+1 . Für das Polynom h gelten damit analoge Voraussetzungen wie urspünglich für das Polynom f . Wir erhalten also auf entsprechende Weise Polynome f2 , h̃ ∈ Zp [T ] mit h = f2 · h̃ und h̃ ≡ g3 · · · gs mod pordp (h̃)+1 . Die Behauptung ergibt sich damit durch sukzessives Ausführen der obigen Rechenschritte. Anmerkung 19.7. Nach Satz 19.6 genügt es, für die Faktorisierung eines Polynoms f ∈ Zp [T ] mit d := ordp (D(f )) eine Zerlegung in dem Quotientenring (Z/pd+1 Z)[T ] zu kennen. 19.3 Primzerlegung in Z[T ] 185 Korollar 19.8. Es sei p ∈ P eine Primzahl. Dann enthält der Ring der ganzen p-adischen Zahlen die (p − 1)-ten Einheitswurzeln. Beweis. Das Polynom f (T ) := T p−1 − 1 ∈ Zp [T ] zerfällt modulo p nach dem Satz von Fermat (siehe Kor. 12.6) in ein Produkt paarweise verschiedener Linearfaktoren: p−1 Y f≡ (T − i) mod p. i=1 Da die Primzahl p die Diskriminante D(f ) nicht teilt, sind mit der Zerlegung modulo p bereits die Voraussetzungen für Satz 19.6 gegeben. Es existieren also Polynome Qp−1 T − z1 , . . . , T − zp−1 in Zp [T ] mit f = i=1 (T − zi ) und T − zi ≡ T − i mod p. Somit sind die Elemente zi ≡ i mod p paarweise verschieden und Nullstellen des Polynoms f ∈ Zp [T ]. Folglich gilt zip−1 = 1 für alle i aus der Menge {1, . . . , p − 1}. 19.3 Primzerlegung in Z[T ] Der folgende Algorithmus von Zassenhaus zeigt, wie sich die p-adische Primfaktorzerlegung für eine Primfaktorzerlegung im Polynomring der ganzen Zahlen Z[T ] nutzen lässt. Hierzu sei zunächst an den Satz von Mignotte aus Kapitel 8 erinnert. Dieser besagt, dass die Absolutbeträge der Koeffizienten eines Teilers g q normierten 2n ||f ||2 beschränkt von f ∈ Z[T ] mit deg(g) = n nach oben durch den Wert n sind. Algorithmus 19.9. (Zassenhaus-Algorithmus zur Polynomfaktorisierung) Es sei f (T ) ∈ Z[T ] ein normiertes Polynom vom Grad m. 1. Man suche eine möglichst kleine Primzahl p ∈ P, welche die Diskriminante D(f ) nicht teilt. 2. Man berechne den kleinsten Exponenten e mit pe > 2 · q bm c 2 ||f ||2 . bm c 4 3. Man berechne die Primfaktorzerlegung von f modulo p mit Hilfe des BerlekampAlgorithmus 18.18. Dies liefert eine Zerlegung f ≡ g1 · . . . · gs mod p. 4. Zu der Zerlegung aus Schritt (3) berechne man mit Hilfe des Hensel’schen Lemmas eine zugehörige Zerlegung f ≡ f1 · . . . · fs mod pe . Q 5. Für alle Teilmengen S ⊆ {1, . . . , s} führe man zu h(T ) := i∈S fi mit Koeffizienten ≤ 21 pe die Probedivision f mod h aus. Dies liefert alle Primteiler von f in Z[T ]. 186 Die Hensel’sche Methode Beispiel 19.10. Als Anwendungsbeispiel für den Algorithmus 19.9 betrachten wir das ganzzahlige Polynom f (T ) = T 5 + T 4 + 1 ∈ Z[T ]. Modulo 2 erhalten wir mit Hilfe des Berlekamp-Algorithmus 18.18 eine Zerlegung von f in das Produkt der Polynome g0 := T 2 + T + 1 und h0 := T 3 + T + 1. Da keine mehrfachen Faktoren auftreten, ist die Primzahl 2 (wie im obigen Algorithmus gefordert) kein der q Teiler √ 2 e Diskriminante D(f ). Da der Exponent e = 2 der Ungleichung 2 > 2 1 3 aus Schritt (2) des Algorithmus 19.9 genügt, erhalten wir die Gleichungen f − g0 h0 = −2(T 3 + T 2 + T ) = 2l0 bzw. l0 = −(T 3 + T 2 + T ) = h̃0 g0 + g̃0 h0 mit deg(h̃0 ) ≤ 2 und deg(g̃0 ) ≤ 1. Hieraus ergeben sich h̃0 = −T und g̃0 = 0. Mit g1 := g0 = (T 2 + T + 1) und h1 := h0 − 2T = (T 3 − T + 1) haben wir bereits die gesuchte Zerlegung von f = g1 · h1 ∈ Z[T ] gefunden. Mit dem Zassenhaus-Algorithmus schaffen wir es also, ein ganzzahliges Polynom f ∈ Z[T ] in Primfaktoren zu zerlegen. In den ersten vier Schritten des Algorithmus gelingt dies sogar in polynomialer Laufzeit. Da eine Menge mit deg(f ) = m Elementen 2m Teilmengen besitzt, kann in Schritt (5) ein exponentieller Aufwand entstehen. Es stellt sich also die Frage, ob sich Schritt (5) so modifizieren lässt, dass der komplette Algorithmus polynomiale Komplexität besitzt. Hierzu suchen wir zu f ≡ g1 · . . . · gr mod pe und g := g1 ein irreduzibles Polynom h(T ) ∈ Z[T ], sodass über dem Ring der ganzen p-adischen Zahlen die Teilerkette g | h | f gilt. Bemerkung 19.11. Es seien p ∈ P eine Primzahl und g ∈ Zp [T ] ein normiertes Polynom vom Grad k. Dann ist für eine natürliche Zahl n ≥ k die Menge Xn Λ = {(b0 , . . . , bn )tr | b(T ) = bi T i ≡ 0 mod (pe , g)} ⊆ Rn+1 i=0 ein Gitter mit der Determinante det(Λ) = pe·k . Beweis. Es sei (b0 , . . . , bn )tr ein Element aus Λ. Dann liegt das zugehörige Polynom b(T ) ∈ Z[T ] in dem Z-Erzeugnis der beiden disjunkten Mengen {pe · T i | 0 ≤ i < k} und {g · T i | 0 ≤ i ≤ (n − k)}. Die entsprechenden Koeffizientenvektoren bilden damit eine Basis des Gitters Λ. Mit g(T ) = g0 + g1 T + . . . + gk T k hat die zur obigen Basis gehörende Gittermatrix von Λ folgende obere Dreiecksgestalt: e g0 0 ··· 0 p 0 ··· 0 . . . .. 0 pe . . . ... g1 g0 . . . . . . .. .. . . ... .. ... 0 .. . . . . . e .. p . . g0 gk−1 0 0 A= .. .. 0 0 ··· 0 . . gk gk−1 .. . . . . . . .. .. . . . . . . 0 gk . . .. .. .. .. .. . . . . . ... . . . . 0 0 ··· 0 0 0 · · · gk {z }| | {z } k (n−k) 19.3 Primzerlegung in Z[T ] 187 Da das Polynom g mit gk = 1 normiert ist, folgt hieraus die Behauptung det(Λ) = det(A) = pe·k . Satz 19.12. Es seien f ∈ Z[T ] ein normiertes, quadratfreies Polynom vom Grad m, p eine Primzahl und g ∈ Z[T ] ein normiertes Polynom vom Grad k, das modulo p irreduzibel ist und für ein e ≥ 1 die Bedingung f ≡ 0 mod (pe , g) erfüllt. Ferner seien n ∈ N eine natürliche Zahl mit m > n ≥ k und das Gitter Λ wie in Bemerkung 19.11 gewählt. Dann gelten: n < pe·k , so ist (a) Existiert ein Gitterpunkt b = (b0 , . . . , bn ) ∈ Λ mit ||b||m 2 · ||f ||2 P der größte gemeinsame Teiler von f und dem Polynom b(T ) := ni=0 bi T i ein nichttrivialer Teiler von f . mn m 2 ||f ||m+n < pe·k und ist b der erste Vektor einer (b) Gilt die Ungleichung 2 2 2n 2 n reduzierten Gitterbasis von Λ, so ist die Ungleichung n e·k ||b||m 2 · ||f ||2 < p genau dann erfüllt, wenn es einen Teiler h ∈ Z[T ] von f mit deg(h) ≤ n gibt, der modulo p durch g teilbar ist. Beweis. Für ein 0 6= b ∈ Λ definieren wir d := ggT(b(T ), f ), l := deg(d) und Λb := {uf + vb(T ) + w | u, v, w ∈ Z[T ], deg(u) < n − l, deg(v) < m − l, deg(w) < l}. Es sei nun uf + vb(T ) ∈ Λb mit deg(uf + vb(T )) < l. Da d mit deg(d) = l ein Teiler von uf + vb(T ) ist, gilt uf + vb(T ) = 0. Wir erhalten hieraus u· b(T ) f = −v · . d d Aus ggT( fd , b(Td ) ) = 1 folgern wir, dass fd ein Teiler von v ist. Wegen deg(v) < m − l = deg( fd ) erhalten wir somit v = 0 und damit auch u = 0. Der Grad von uf + vb(T ) ∈ Λb ist also entweder größer gleich l oder es gilt u = v = 0. Hieraus folgt die lineare Unabhängigkeit der Elemente der Menge {T j · 1 | 0 ≤ j < l} ∪ {T j · f | 0 ≤ j < n − l} ∪ {T j · b(T ) | 0 ≤ j < m − l}, die damit für Λb eine Gitterbasis vom Rang n + m − l bilden. Mit f = Pm i=0 fi T i 188 Die Hensel’sche Methode hat die zu dieser Basis gehörende Gittermatrix die Form f0 · · · 0 b0 · · · 0 1 ··· 0 . . .. . . .. .. . . .. ... . . . ... . .. . 0 . . . 1 fm−1 . . . f0 bn−1 . . . b0 . . .. .. 0 ··· 0 . .. . .. fm bn .. . . .. . . . .. . . . .. . . . 0 . 0 . .. . . . .. . . . . . .. . . .. .. . . ... . . . . .. .. . . . .. . . . .. .. . . ... . . . . 0 ··· 0 0 · · · fm 0 · · · bn {z }| | {z }| {z l (n−l) (m−l) . } Mit Hilfe der Ungleichung von Hadamard aus Satz 6.14 erhalten wir für die Determinante der obigen Gittermatrix die Abschätzung | det(Λb )| ≤ ||b||m−l · ||f ||2n−l . 2 (19.13) Durch einen Gitterbasiswechsel lässt sich für Λb eine Gittermatrix in folgender oberer Dreiecksgestalt erzeugen 1 ··· .. . . . . 0 ... 0 ··· . . .. . . .. . . . . . .. . . . . . .. . . 0 ··· 0 .. . 0 .. . 1 0 .. . .. . .. . .. . 0 0 b̃l+1,l+1 0 .. . .. . .. . 0 ··· 0 .. .. . . ··· 0 · · · b̃l+1,n .. .. . . .. . b̃l+n,n .. . 0 .. .. . . ··· 0 0 .. . 0 b̃l+1,m .. . .. . ··· .. . ··· ··· ··· ··· 0 .. . 0 b̃l+1,n+m−l .. . .. . .. . .. . b̃l+n+1,m · · · .. .. . . 0 · · · b̃n+m−l,n+m−l . Die Menge M := {T 0 , T 1 , . . . , T l−1 , b̃l (T ), . . . , b̃l+n+m−1 (T )} beinhalte die zu den neuen Basisvektoren korrespondierenden Polynome. Dabei gilt für alle Indizes j ∈ {l, . . . , l + m + n − 1}: b̃j (T ) ≡ 0 mod T l und deg(b̃j (T )) = j. Es sei nun z ∈ Λb mit deg(z) < l + k und z ≡ 0 mod T l . Dann existieren Polynome u, v ∈ Z[T ] mit z = uf + vb(T ) und überdies ist d = ggT(f, b(T )) ein Teiler von z. Wir wollen nun annehmen, dass g mod p kein Teiler von d mod p ist. Unter Anwendung des Erweiterten Euklidischen Algorithmus finden wir dann Polynome w1 , w2 , w3 ∈ Z[T ] mit w1 g + w2 d = 1 − pw3 . 19.3 Primzerlegung in Z[T ] 189 Multiplizieren wir diese Gleichung mit 1−(pw3 )e , so erhalten wir 1−pw3 z d und der Geometrischen Reihe ũg + ṽz ≡ z d mod pe Pe−1 i i=0 (pw3 ) = (19.14) für geeignete ũ, ṽ ∈ Z[T ]. Da b aus Λ ist und z die Darstellung z = uf + vb hat, ist das Polynom g mod pe ein Teiler von z mod pe . Mit Gleichung 19.14 ergibt sich hieraus z ≡ 0 mod (pe , g). d z Da aber deg( d ) < k + l − l = k = deg(g) ist, folgt dass bereits dz ≡ 0 mod pe und damit z ≡ 0 mod pe gilt. Wir haben angenommen, dass g mod p kein Teiler von d mod p ist, d.h. dass modulo p das Polynom g ein Teiler von fd ist. Da d nach Definition ein Teiler von b(T ) ist, erhalten wir die Ungleichung deg(d) + deg(g) ≤ deg(b(T )) + deg(f ) − deg(d) bzw. l + k − 1 ≤ n + m − l − 1. Also erfüllen die Basiselemente b̃l (T ), . . . , b̃l+k−1 (T ) ∈ M die selben Voraussetzungen wie unser oben gewähltes Element z ∈ Λb . Wir erhalten also b̃l (T ), . . . , b̃l+k−1 (T ) ≡ 0 mod pe . Die Koeffizienten der zugehörigen Basisvektoren sind demnach durch pe teilbar. Unter Verwendung des Laplace’schen Entwicklungssatzes ergibt sich | det(Λb )| ≥ pe·k . n e·k Für ein b ∈ Λ mit ||b||m gilt aber nach Gleichung 19.13 2 · ||f ||2 < p n e·k | det(Λb )| ≤ ||b||2m−l · ||f ||2n−l ≤ ||b||m 2 · ||f ||2 < p . Dies ist ein Widerspruch. Damit ist g mod p ein Teiler von d mod p, und Teil (a) von Satz 19.12 bewiesen. Für Teil (b) sei b ∈ Λ der erste Vektor einer reduzierten Gitterbasis. Erfüllt dieser n e·k die Ungleichung ||b||m 2 · ||f ||2 < p , so folgt die Behauptung direkt aus Teil (a) mit h := d = ggT(b(T ), f ). Für die Umkehrung sei h ∈ Z[T ] ein nichttrivialer Teiler von f mit deg(h) ≤ n und h ≡ 0 mod (p, g). Auf Grund dieser Voraussetzungen ist h ein Element des Gitters Λ, und es gilt nach Mignotte 12 2n ||f ||2 . ||h||2 ≤ n Für den ersten Basisvektor b einer reduzierten Gitterbasis gilt dann mit Hilfe von Korollar 10.7 12 n n 2n ||b||2 ≤ 2 2 ||h||2 ≤ 2 2 ||f ||2 . n 190 Die Hensel’sche Methode Potenzieren wir diese Gleichung mit m und multiplizieren sie mit ||f ||n2 , so erhalten wir die Behauptung n ||b||m 2 · ||f ||2 ≤ 2 nm 2 m2 2n ||f ||2n+m < pe·k . n Wir wollen nun mit diesen Resultaten den Zassenhaus-Algorithmus 19.9 ergänzen. Algorithmus 19.15. (Ausbau der Hensel’schen Methode) Es sei f ∈ Z[T ] ein normiertes Polynom vom Grad n. Nach Schritt (4) des ZassenhausAlgorithmus 19.9 erhalten wir eine Zerlegung f ≡ g1 · . . . · gr mod pe . Wir ersetzen nun Schritt (5) durch folgende Modifikation, wobei wir zu Beginn eine Laufvariable i := 1 setzen. (5a) Man setze g := gi , k := deg(g) und m := k. (5b) Man berechne mit Hilfe des LLL-Algorithmus 10.9 eine reduzierte Basis für das Gitter Λ aus Bemerkung 19.11. (5c) Es sei b der erste Vektor der berechneten reduzierten Gitterbasis. Falls ||b||n2 ≥ pe·k ist, setze man m := m + 1 und gehe zu (5b). Anderenfalls ist b(T ) = ||f ||m Pm2 j j=0 bj T das Minimalpolynom der Nullstellen von g. Das heißt b(T ) ist irreduzibel und ein Teiler von f . Man setze i := i + 1 und gehe zu (5a). Satz 19.16. Mit der modifizierten Version des Zassenhaus-Algorithmus kombiniert mit der LLL-Gitterreduktion lässt sich ein Polynom f ∈ Z[T ] in einer polynomialen Anzahl von Ringoperationen (bzgl. der Länge der Eingabewerte) in Primfaktoren zerlegen. Beweis. Die Behauptung folgt direkt aus dem ursprünglichem Algorithmus 19.9 zusammen mit der Aussage von Satz 10.10 über die Komplexität des LLL-Algorithmus zur Gewinnung einer reduzierten Gitterbasis. Kapitel 20 Faktorisierung multivariater Polynome 20.1 Das Homomorphieprinzip In diesem Kapitel wollen wir das Primfaktorisierungsproblem bei multivariaten Polynomringen verallgemeinern. Hierzu betrachten wir Polynome in n+1 Veränderlichen über einem faktoriellen Ring R. Die Suche nach irreduziblen Faktoren eines Elements f ∈ R[T0 , T1 , . . . , Tn ] gestaltet sich im Vergleich zum univariaten Fall entsprechend schwieriger. Es stellt sich hierbei die Frage, ob sich eine eindimensionale Lösung auf das mehrdimensionale Problem erweitern lässt. Eine Herangehensweise wäre dann, für alle i ∈ {1, . . . n} die Variablen Ti an Stützstellen ci ∈ R auszuwerten und das Problem somit auf den bereits bekannten eindimensionalen Fall R[T0 ] zu reduzieren. In Abschnitt 3 dieses Kapitels werden wir sehen, dass der Algorithmus von Wang sich genau dieser Vorgehensweise bedient. Problem in R[T0 , T1 , . . . , Tn ] Lösung in R[T0 , T1 , . . . , Tn ] o Ti 7→ci ∈R i=1,...,n / Problem in R[T0 ] Lösung in R[T0 ] Zunächst beschäftigen wir uns allerdings mit einigen Eigenschaften irreduzibler multivariater Polynome. Satz 20.1. (Hilbertscher Irreduzibilitätssatz, 1892) Zu jedem irreduziblen Polynom f ∈ Q[T0 , T1 , . . . , Tn ] existieren unendlich viele rationale n-Tupel (c1 , c2 , . . . , cn ) ∈ Qn , sodass das univariate Polynom f (T0 , c1 , . . . , cn ) ∈ Q[T0 ] ebenfalls irreduzibel ist. Beweis. Siehe K. Dörge[6]. 192 Faktorisierung multivariater Polynome Zusatz 20.2. Es seien f ∈ Z[T0 , T1 , . . . , Tn ] ein irreduzibles Polynom, b ∈ N eine natürliche Zahl und M(b) die Menge aller Tupel c ∈ Zn−1 , für die das Polynom f (T0 , b, c) ∈ Z[T0 ] reduzibel ist. Dann existieren reellwertige Konstanten δ > 0 und ε ∈ (0, 1), sodass für die Elementanzahl von M(b) gilt: #M(b) ≤ δ(2b + 1)n−ε ∈ O(bn−ε ). Beweis. Siehe S. Lang[8]. Beispiel 20.3. Es sei f (T0 , T1 ) = T02 − T1 ∈ Z[T0 , T1 ]. Dann ist f (T0 , c) für eine ganze Zahl c ∈ Z genau dann reduzibel, wenn c in der Menge der Quadrate in Z liegt. 20.2 Das mehrdimensionale Hensel’sche Lemma Bemerkung 20.4. Es seien p ∈ P eine Primzahl und g, h ∈ Zp [T ] zwei teilerfremde Polynome über dem Ring der ganzen p-adischen Zahlen. Ferner seien g, h ∈ Fp [T ] die zugehörigen Restklassenpolynome modulo p mit deg(g) = deg(g), deg(h) = deg(h) und ggT(g, h) = 1. Dann gibt es zu jedem Polynom f ∈ Zp [T ] eindeutig bestimmte Polynome u, v ∈ Zp [T ] mit f = ug + vh und deg(u) < deg(h). Falls der Grad von f kleiner als deg(g) + deg(h) ist, gilt außerdem die Ungleichung deg(v) < deg(g). Beweis. Da die Polynome g und h in Zp [T ] teilerfremd sind, gilt diese Eigenschaft auch über dem zugehörigen Quotientenkörper Qp . Da der Polynomring über dem Körper der p-adischen Zahlen Euklidisch ist, existieren Polynome ũ, ṽ ∈ Qp [T ] mit 1 = ũg + ṽh. Wenn wir nun annehmen, dass die Koeffizienten der so gewonnenen Elemente ũ und ṽ nicht in Zp liegen, so existiert eine minimale natürliche Zahl k ≥ 1, für welche die Polynome pk ũ bzw. pk ṽ Elemente von Zp [T ] sind. Dann gilt über Zp [T ] die Gleichung (pk ũ)g + (pk ṽ)h = pk im Widerspruch zu ggT(g, h) = 1. Somit liegen die Elemente ũ und ṽ in dem Polynomring Zp [T ], und es gilt (ũf )g + (ṽf )h = f. (20.5) Im nächsten Schritt führen wir mit ũf eine Division mit Rest durch das Polynom h aus und erhalten ũf = q·h+u mit deg(u) < deg(h). Wenn wir nun dieses Resultat in obige Gleichung 20.5 einsetzen, ergibt sich für v := ṽf +qg die Behauptung ug+vh = f mit deg(u) < deg(h). Gilt zusätzlich die Ungleichung deg(f ) < deg(g) + deg(h), so ist der Grad des Polynoms v wegen deg(ug) < deg(h) + deg(g) echt kleiner als der Grad von g. Es bleibt noch die Eindeutigkeit der Polynome u, v ∈ Zp [T ] zu beweisen. Hierzu nehmen wir an, es existierten Polynome u1 , v1 ∈ Zp [T ] mit u1 g + v1 h = f = ug + vh 20.2 Das mehrdimensionale Hensel’sche Lemma 193 und deg(u1 ) < deg(h). Daraus ergibt sich die Gleichung (u−u1 )g +(v −v1 )h = 0 mit deg(u − u1 ) < deg(h) und deg(v − v1 ) < deg(g). Da nach Voraussetzung ggT(g, h) = 1 gilt, folgt mit den Gradungleichungen die Identität u = u1 bzw. v = v1 . Die Polynome u, v ∈ Zp [T ] sind demnach eindeutig bestimmt. Satz 20.6. Es seien p ∈ P eine Primzahl, f ein multivariates Polynom aus dem Ring Zp [T0 , . . . , Tn ] und I das von den Polynomen T1 − c1 , . . . , Tn − cn erzeugte Ideal in Zp [T0 , . . . , Tn ]. Ferner sei f das Restklassenpolynom von f modulo (I, p) in dem univariaten Polynomring Fp [T0 ] mit deg(f ) = degT0 (f ). Des Weiteren gelte die Gleichung f = g0 · h0 mit zwei teilerfremden Polynomen g0 , h0 ∈ Fp [T0 ]. Dann existieren zwei Potenzreihen g, h ∈ Zp [[T0 , . . . , Tn ]] mit den Eigenschaften f = g · h und g = g0 , h = h0 sowie degT0 (h) = deg(h0 ). Beweis. Wir zeigen die Behauptung durch Approximation modulo I d mittels einer Induktion nach d. Für den Induktionsanfang d = 1 erhalten wir in Fp [T0 ] nach Voraussetzung die Gleichung f = g0 h0 mit ggT(g0 , h0 ) = 1. Zu dem Polynom f1 := f mod I ∈ Zp [T0 ] existieren nach dem Hensel’schen Lemma 19.3 zwei Elemente g1 , h1 ∈ Zp [T0 ] mit f1 = g1 h1 , für die modulo p die Kongruenzen g1 ≡ g0 und h1 ≡ h0 sowie die Gradgleichung deg(h1 ) = deg(h0 ) gelten. Somit ist der Induktionsanfang gesichert. Im Induktionsschritt von d nach d + 1 gibt es nach Induktionsannahme zwei Polynome gd , hd ∈ Zp [T0 , . . . , Tn ] mit f ≡ gd hd mod I d und degT0 (hd ) = deg(h0 ). Insbesondere ist das Polynom cd := f − gd hd ein Element aus dem Ideal I d und hat modulo I d+1 die Darstellung X cd ≡ ai · Mi mod I d+1 . 1≤i1 ≤i2 ≤...≤id ≤n Hierbei sind i = (i1 , . . . , id ), ai ∈ Zp [T0 ] und Mi = (Ti1 − ci1 ) · · · (Tid − cid ). Da die Primzahl p nach Voraussetzung den höchsten Koeffizienten von f1 nicht teilt, gilt dies auch für die Leitkoeffizienten l(g1 ) und l(h1 ). Nach Bemerkung 20.4 existieren damit eindeutig bestimmte Elemente ui , vi ∈ Zp [Tj ] mitP ui g1 + vi h1 = ai und deg(ui ) < d+1 := gd + i vi (T0 )Mi und P deg(h1 ) = deg(hj ). Setzen wir nun gd+1 hd+1 := hd + i ui (T0 )Mi , so erhalten wir modulo I folgende Kongruenzkette: X X gd+1 hd+1 ≡ gd hd + (ui gd + vi hd )Mi ≡ gd hd + (ui g1 + vi h1 ) i ≡ gd hd + ld =: fd+1 ≡ f i mod I d+1 . Damit ist die Induktion vollzogen und die Behauptung bewiesen. Zusatz 20.7. Gilt in Satz 20.6 für die Leitkoeffizienten von f, g0 und h0 die Bedingung lT0 (f ) = l(g0 ) l(h0 ), so sind die Polynome g und h durch lT0 (g) = l(g0 ) bzw. lT0 (h) = l(h0 ) eindeutig bestimmt. 194 Faktorisierung multivariater Polynome Beweis. Im Beweis zu Satz 20.6 gilt im Induktionsschritt die Ungleichung deg(cd ) = deg(f − gd hd ) < dT0 (f ) und damit die Abschätzung deg(ci ) < degT0 (f ) = deg(g1 ) + deg(h1 ). Nach Bemerkung 20.4 gelten also die Ungleichungen deg(vi ) < deg(g1 ) und deg(ui ) < deg(h1 ). Da die Elemente ui und vi für alle Multiindizes eindeutig bestimmt sind, gilt dies nach Konstruktion auch für die Polynome g und h. Bei der in diesem Abschnitt vorgestellten Methode zur Faktorisierung multivariater Polynome in Potenzreihen können einige Probleme auftreten: 1. Zusätzliche Faktoren: Diese entstehen bei “schlechter” Reduktion, sind nach dem Hilbertschen Irreduzibilitätssatz (siehe Satz 20.1) aber selten. 2. Nullspezialisierung: Leitkoeffizienten dürfen nicht zu Null spezialisiert werden, da dabei dünn besetzte Polynome beim Liften modulo I d dicht besetzt werden können. Dies kann eine erhebliche Einschränkung der Praktikabilität nach sich ziehen. 3. Nichttriviale höchste Koeffizienten können eine Polynomzerlegung verhindern. Diese können durch Variablensubstitutionen vermieden werden, führen dann aber in der Regel zu Polynomen von sehr viel höherem Grad. 20.3 Die rekursive Methode von Wang Wie zu Beginn dieses Kapitels bereits angedeutet, ist die Grundidee der Variante von Wang (1978) der sukzessive Aufstieg von Zp [T0 ] über Zp [T0 , T1 ] bis hin zu dem Ring Zp [T0 , T1 , . . . , Tn ]. Hierfür ist allerdings eine mehrdimensionale Version von Bemerkung 20.4 notwendig. Bemerkung 20.8. Es seien p ∈ P eine Primzahl und g, h zwei teilerfremde Polynome aus dem Ring Zp [T0 , T1 , . . . , Tn ]. Ferner seien g, h ∈ Fp [T0 ] die zugehörigen Restklassenpolynome modulo (p, I) mit ggT(g, h) = 1. Hierbei ist I das Ideal aus dem Satz 20.6. Dann gibt es zu jedem Polynom f ∈ Zp [T0 , T1 , . . . , Tn ] zwei Elemente u, v ∈ Zp [T0 , T1 , . . . , Tn ] mit f = ug + vh und degT0 (u) < degT0 (h). Beweis. Wir fassen zunächst die Elemente g und h als Polynome in der Veränderlichen T0 über dem Funktionenkörper Qp (T1 , . . . , Tn ) auf. Da g und h teilerfremd sind, existieren zwei Polynome ũ, ṽ ∈ Qp (T1 , . . . , Tn )[T0 ] mit 1 = ũg + ṽh und degT0 (ũ) < degT0 (h). Die Elemente ũ und ṽ besitzen einen Hauptnenner d ∈ Qp [T1 , . . . , Tn ], sodass u := ũ · d und v := ṽ · d Polynome in dem Ring Qp [T0 , T1 , . . . , Tn ] sind und die Gleichung ug + vh = d gilt. Wenn wir nun annehmen, dass u und v nicht in Zp [T0 , T1 , . . . , Tn ] enthalten sind, dann gibt es analog zu dem Beweis von Bemerkung 20.4 einen minimalen Exponenten k ∈ N mit pk u, pk v ∈ Zp [T0 , T1 , . . . , Tn ] und (pk u)g + (pk v)h = pk d. 20.3 Die rekursive Methode von Wang 195 Da aber ggT(g, h) = 1 gilt, erhalten wir k = 0 sowie d = 1 und Polynome u, v ∈ Zp [T0 , T1 , . . . , Tn ]. Die restlichen Beweisschritte erfolgen nun analog zu dem Beweis von Bemerkung 20.4. Anmerkung 20.9. Die Polynome u und v aus Bemerkung 20.8 können rekursiv modulo pk durch Approximation modulo (Ti − ci )ei (für i = 1, 2, . . .) berechnet werden. Algorithmus 20.10. (Der Algorithmus von Wang) Es sei f ein ganzzahliges quadratfreies Polynom aus dem Ring Z[T0 , T1 , . . . , Tn ]. 1. Man wähle n geeignete ganze Zahlen c1 , c2 , . . . , cn ∈ Z und bilde g := f (T0 , c1 , c2 , . . . , cn ) ∈ Z[T0 ]. 2. Man wähle eine Primzahl p ∈ P, welche die Diskriminante D(g) und den Leitkoeffizienten l(g) nicht teilt. Dann faktorisiere man das Polynom f := g mod p ∈ Fp [T0 ] mit Hilfe des Berlekamp-Algorithmus 18.18. 3. Man berechne den kleinsten Exponenten k ∈ N, sodass pk die MignotteSchranke bdeg(g)/2c k p >2 ||g||2 bdeg(g)/4c erfüllt. Man lifte dann die Faktorisierung aus Schritt (2) mit dem eindimensionalen Hensel’schen Lemma 19.3 zu einer Faktorisierung von g in Zp [T0 ] modulo pk . 4. Man lifte die Faktorisierung aus Schritt (3) mit Hilfe des mehrdimensionalen Hensel’schen Lemmas 20.6 zu einer Faktorisierung über Zp [T0 , T1 , . . . , Tn ] modulo (pk , I e ) mit e := b 21 max{deg(m) | m Monom in f }c. 5. Für alle gefundenen Teilerprodukte t := t1 · . . . · tr ∈ Z[T0 , T1 , . . . , Tn ] modulo pk führe man die Probedivision (f mod t) durch. Anmerkung 20.11. Bei der Wahl der Zahlen c1 , . . . , cn ∈ Z in Schritt (1) von Algorithmus 20.10 ist insbesondere darauf zu achten, dass es zu keiner Nullspezialisierung bzw. keiner “schlechten” Reduktion kommt. Ferner sollte möglichst lT0 (f ) = 1 gelten. 196 Faktorisierung multivariater Polynome Teil III Algebraische Gleichungssysteme Kapitel 21 Gröbner-Basen 21.1 Monomordnungen Definition 21.1. (Monomordnung) Es seien R ein kommutativer Ring (mit Eins) und Rn := R[T1 , . . . , Tn ] der Polynomring in n Variablen über R. Wir bezeichnen mit Mn := {Te := T1e1 · · · Tnen |(e1 , . . . , en ) ∈ Nn } die Menge der Monome in Rn und benutzen die bijektive Abbildung ε : Mn −→ Nn . e T 7−→ (e1 , . . . , en ) Die Menge der Monome Mn ist durch folgende Teilbarkeitsrelation geordnet: d|e genau dann, wenn Td |Te , d.h. di ≤ ei für alle i = 1, . . . n. Wir nennen eine lineare Ordnung ≤ auf Nn bzw. Mn Monomordnung, wenn sie mit der obigen Teilbarkeitsordnung verträglich ist, d.h. wenn aus d|e folgt d ≤ e und aus d ≤ e folgt d + c ≤ e + c für alle c ∈ Nn . Anmerkung 21.2. Eine Monomordnung ≤ auf Nn bleibt auch nach Einschränken auf Nn−1 eine Monomordnung. Beispiel 21.3. 1. Lexikographische Ordnung ≤lex : d ≤lex e gilt genau dann, wenn eine natürliche Zahl j ∈ N existiert, so dass di = ei und dj < ej für alle natürlichen Zahlen i < j ist. 200 Gröbner-Basen 2. Invers Lexikographische Ordnung ≤revlex : d ≤revlex e gilt genau dann, wenn eine natürliche Zahl j ∈ N existiert, so dass di = ei und dj < ej für alle natürlichen Zahlen i > j ist. 3. Lexikographische Gesamtordnung ≤tdeg : d ≤tdeg e gilt genau dann, wenn entweder n P di < i=1 n P ei oder ( i=1 n P di = i=1 n P ei i=1 und d ≤lex e) gelten. 4. Invers Lexikographische Gesamtordnung ≤revtdeg : n n n n P P P P d ≤revtdeg e gilt genau dann, wenn entweder di > ei oder ( di = ei i=1 i=1 i=1 i=1 und d ≤revlex e) gelten. Anmerkung 21.4. Eine Monomordnung lässt sich zu einer transitiven und reflexiven Relation “Quasiordnung” auf Rn fortsetzen. Definition 21.5. (Grad, höchster Koeffizient, höchster Term, höchstes Monom, Ideal der höchsten Terme) Es seien R ein kommutativer Ring und Rn der Polynomring in n Variablen über R P e mit einer Monomordnung ≤. Ferner sei f (T) = ae T ein Polynom in Rn , wobei e∈I I eine endliche Teilmenge von Nn ist. Wir bezeichnen mit δ(f ) := max{e|ae 6= 0} den Grad von f (T) bezüglich ≤. Ferner definieren wir den höchsten Koeffizienten von f bezüglich ≤ durch l(f ) := ae ,wobei e = δ(f ) ist, den höchsten Term von f bezüglich ≤ durch L(f ) := ae Te ,wobei e = δ(f ) ist und das höchste Monom von f bezüglich ≤ durch LM(f ) := L(f ) . l(f ) Ist F Rn ein Ideal in Rn , so bilden auch die höchsten Terme L(f ) mit f ∈ F ein Ideal der höchsten Terme, das mit L(F ) := (L(f )|f ∈ F ) bezeichnet wird. 21.2 Charakterisierung von Gröbner-Basen 201 Bemerkung 21.6. Es seien R ein Integritätsbereich, Rn der Polynomring in n Variablen über R mit einer Monomordnung ≤ und f, g zwei Polynome in Rn . Dann gelten: (a) δ(f · g) = δ(f ) + δ(g). (b) l(f · g) = l(f ) · l(g). (c) L(f · g) = L(f ) · L(g). Beweis. Diese Aussagen lassen sich durch einfaches Nachrechnen verifizieren. Satz 21.7. Es seien R ein kommutativer Ring und Rn der Polynomring in n Variablen über R mit einer Monomordnung ≤. Dann bricht jede echt fallende Folge in Mn bzw. Nn bezüglich ≤ nach endlich vielen Schritten ab. Beweis. Diese Aussage wollen wir durch Induktion nach n zeigen. Im Fall n = 1 entspricht die Monomordnung ≤ der Teilbarkeitsrelation | im Polynomring, und für diese ist die Behauptung richtig. Wir schließen im Induktionsschritt von n − 1 nach n. Dazu sei (ei )i∈N eine echt fallende Folge bezüglich ≤. Das i-te Folgenglied hat die Gestalt ei = (e1i , . . . , eni ). Es gibt also eine natürliche Zahl j ∈ N, so dass die Folge (eji )i∈N eine nicht-fallende Teilfolge besitzt. Wir gehen ohne Einschränkung davon aus, dass die natürliche Zahl j = n ist. Demnach gibt es eine Teilfolge (enik )k∈N mit enik ≥ enil für k ≥ l. Wir wissen aus Anmerkung 21.2, dass auch ≤ eingeschränkt auf Nn−1 eine Monomordnung bildet. Wir müssen nun zeigen, dass (eik )k∈N eingeschränkt auf Nn−1 eine echt fallende Folge ist. Dies ist aber klar. Denn wenn es ein Folgenglied mit (e1ik , . . . , en−1ik ) ≥ (e1il , . . . , en−1il ) für k > l geben würde, so würde auch (e1ik , . . . , enik ) ≥ (e1il , . . . , enil ) für k > l gelten. Dies steht im Widerspruch zur Auswahl von (eik )k∈N . 21.2 Charakterisierung von Gröbner-Basen Definition 21.8. (Gröbner-Basis) Es seien R ein Hauptidealring, Rn der Polynomring in n Variablen über R und F Rn ein Ideal in Rn . Eine endliche Teilmenge 0 ∈ / G ⊆ F heißt Gröbner-Basis von F genau dann, wenn für jedes Polynom f ∈ F ein Polynom g ∈ G mit L(g)| L(f ) existiert. 202 Gröbner-Basen Anmerkung 21.9. Ist R = K ein Körper, so kann man ohne Einschränkung von normierten Polynomen ausgehen und es genügt L(G) = L(F ) zu fordern. Bemerkung 21.10. Es seien R ein Hauptidealring, Rn der Polynomring in n Variablen über R mit einer Monomordnung ≤. Ferner seien G = {g1 , . . . , gm } eine Teilmenge von Rn und f ein Polynom in Rn . Dann sind äquivalent: (a) Es existiert ein gj ∈ G mit L(gj ) teilt L(f ). (b) Es existiert ein Polynom fj ∈ Rn mit δ(f − fj gj ) < δ(f ) bezüglich “≤”. Beweis. Wir schließen zunächst von (a) nach (b) und gehen davon aus, dass L(f ) von L(f ) L(gj ) geteilt wird. Definieren wir fj durch fj := L(g ∈ Rn , so gilt δ(f −fj gj ) < δ(f ), j) da sich in f − fj gj die höchsten Terme wegheben. Zum Beweis der Rückrichtung nehmen wir an, dass δ(f − fj gj ) < δ(f ) ist. Dann muss L(f ) = L(fj ) · L(gj ) sein und es gilt L(gj )| L(f ). Korollar 21.11. Es seien R ein Hauptidealring, Rn der Polynomring in n Variablen über R mit einer Monomordnung ≤. Ferner seien F Rn ein Ideal in Rn , welches das Polynom f enthält und G = {g1 , . . . , gm } eine Teilmenge von F . Dann bricht jede Folge (f (i) )i∈N ∈ F mit f (0) = f, f (1) = f (0) − fj gj mit δ(f (1) ) < δ(f (0) ), usw. nach endlich vielen Schritten ab mit einem Polynom f (s) . Dabei ist entweder f (s) = 0 oder für alle Polynome gj ∈ G und für alle h ∈ Rn ist δ(f (s) − gj h) > δ(f (s) ) bzw. für alle Polynome gj ∈ G teilt L(gj ) nicht L(f (s) ). Beweis. Diese Aussage folgt direkt aus Bemerkung 21.10 und Satz 21.7. Definition 21.12. (G-Rest, trivialer G-Rest) Unter den Voraussetzungen von Korollar 21.11 nennen wir das Polynom f (s) =: fG∗ G-Rest von f . Wir sagen f hat trivialen G-Rest, wenn fG∗ = 0 ist. Anmerkung 21.13. Das Element fG∗ hängt im Allgemeinen von der Wahl der Folge (f (i) )si=1 und nicht nur von f ab. Satz 21.14. Es seien R ein Hauptidealring, Rn der Polynomring in n Variablen über R, F Rn ein Ideal in Rn und 0 ∈ / G ⊆ F eine endliche Teilmenge. Dann sind die folgenden Aussagen äquivalent: (a) G ist Gröbner-Basis von F . (b) Für alle Polynome f ∈ G gilt stets fG∗ = 0. 21.2 Charakterisierung von Gröbner-Basen 203 (c) Zu jedem Polynom f ∈ F existieren Polynome gj ∈ G und fj ∈ Rn mit f= m X fj gj . j=1 Außerdem existiert ein Index j, so dass für alle Indizes i 6= j gilt: δ(fi ) + δ(gi ) < δ(f ). Dies nennen wir eine Standarddarstellung von f ∈ F bezüglich G. Beweis. Diese Äquivalenzen wollen wir durch einen Ringschluss beweisen. Wir beweisen zuerst Aussage (b) unter Verwendung von (a). Es sei also f ein Polynom aus F . Da G eine Gröbner-Basis von F ist, gibt es ein Polynom gj ∈ G mit L(gj )| L(f )). Bezeichnen wir mit hj := L(f ) ∈ Rn und L(gj ) f (1) := f − fj gj ∈ F mit δ(f (1) ) < δ(f ), so folgt unter Verwendung der Gröbner-Eigenschaft per Induktion fG∗ = 0. Als nächstes schließen wir von (b) nach (c). Wir bilden sukzessive den G-Rest und erhalten f = f (1) + f1 g1 mit δ(f ) = δ(f1 ) + δ(g1 ) = f (2) + f2 g2 + f1 g1 mit δ(f (1) ) = δ(f2 ) + δ(g2 ) < δ(f ) ... s X ∗ = fG + f i gi . |{z} =0 i=1 Dabei gilt δ(fi ) + δ(gi ) = δ(f (i−1) ) < δ(f ) für alle i 6= 1 und δ(f ) = δ(f1 ) + δ(g1 ). Nun bleibt noch der Schritt von (c) nach (a). Nach Voraussetzung gilt f= s X fi gi , i=1 und es existiert ein Index j mit δ(fi ) + δ(gi ) < δ(f ) für alle Indizes i 6= j. Wir können daher schließen, dass für den Index j die Gleichung δ(fj ) + δ(gj ) = δ(f ) und damit L(fj ) · L(gj ) = L(f ) gilt. L(gj ) teilt also L(f ), und damit ist G eine Gröbner-Basis von F . Anmerkung 21.15. Ist R = K ein Körper und sind alle Basiselemente von G normiert, so genügt für die Existenz einer Standarddarstellung, dass für alle Indizes j = 1, . . . , n die Ungleichung δ(fj ) + δ(gj ) ≤ δ(f ) gilt. 204 21.3 Gröbner-Basen Existenz von Gröbner-Basen Bemerkung 21.16. Es seien R ein Hauptidealring, Rn der Polynomring in n Variablen über R und (Tei )i∈N mit ei ∈ Nn eine unendliche Monomfolge. Dann gibt es eine unendliche Teilfolge (eik )k∈N mit ei0 |ei1 |ei2 | . . .. Beweis. Die Folge (Tei )i∈N enthält eine endliche Menge bezüglich der Teilbarkeitsrelation | minimaler Monome {m1 , . . . , mr }. Dies lässt sich durch Induktion in Analogie zu Satz 21.7 zeigen. Wir definieren nun die Menge der Monome, die von mj geteilt werden, also Bj := {i| mj |Tei }. Für die Vereinigung dieser Mengen gilt r [ Bj = N. j=1 Es existiert also ein Index j, so dass #Bj = ∞ ist. Diese Menge liefert eine Teilfolge (Teik )k∈N mit mj |Teik und Tei0 = mj . Diese Folge enthält wiederum eine endliche Menge minimaler Monome bezüglich der Teilbarkeitsrelation |. Ab hier lässt sich der obige Beweisschritt iterieren bis die gewünschte Teilfolge konstruiert ist. Satz 21.17. Es seien R ein Hauptidealring, Rn der Polynomring in n Variablen über R mit einer Monomordnung ≤ und F Rn ein Ideal in Rn . Dann besitzt F eine Gröbner-Basis. Beweis. Zu Beginn definieren wir für jedes Monom Te ∈ Mn die Menge Ae := {a ∈ R| es existiert ein Polynom f ∈ F mit aTe = L(f )}. Man sieht sofort, dass Ae R ein Ideal in R bildet und dass aus e|d die Inklusion Ae ⊆ Ad folgt. Wir wollen zunächst zeigen, dass es von diesen Idealen nur endlich viele geben kann. Wir nehmen daher #{Ae |e ∈ Nn } = ∞ an und wollen dies zu einem Widerspruch führen. Es gebe also eine unendliche Folge (Aei )i∈N . Bemerkung 21.16 liefert e0 |e1 |e2 | . . . . Daraus erhalten wir die echt aufsteigende Kette von Idealen Ae0 ⊂ Ae1 ⊂ Ae2 ⊂ . . . Da R als Hauptidealring ein Noetherscher Ring ist, bricht diese Kette nach endlich vielen Schritten ab. Dies steht im Widerspruch zur Annahme, also kann es nur 21.4 Reduzierte Gröbner-Basen 205 endlich viele Mengen Ae geben. Es seien also Ae0 = (a0 ), . . . , Aer = (ar ) diese verschiedenen Ideale in R. Dann besitzt die Menge Ci := {Te |Ae = (ai )} nur endlich viele minimale Monome bezüglich der Teilbarkeitsrelation |, diese nennen wir mij für j = 1, . . . , ri . Da F R ein Ideal in R bildet, existieren Polynome gij ∈ F mit L(gij ) = ai mij . Wir wollen nun zeigen, dass die endliche Menge G := {gij |i = 1, . . . , r; j = 1, . . . , ri } mit 0 ∈ /G eine Gröbner-Basis von F ist. Es sei also f ein Polynom aus dem Ideal F . Dann können wir den höchsten Term von f darstellen als L(f ) = a · m mit a ∈ R und m ∈ Mn . Aus den obigen Überlegungen wissen wir, dass ein Index i mit m ∈ Ci und a ∈ (ai ) existiert. Es gibt also ein Monom mij und ein Ringelement ai mit mij |m und ai |a. Nach Konstruktion der Menge G ist klar, dass ein Polynom gij mit L(gij ) = ai mij | L(f ) existiert, und damit ist G eine Gröbner-Basis von F . Korollar 21.18. (“Hilbert’scher Basissatz”) Es sei Rn der Polynomring in n Variablen über einem Hauptidealring R. Dann besitzt jedes Ideal in Rn eine endliche Idealbasis. 21.4 Reduzierte Gröbner-Basen Definition 21.19. (reduziert) Es seien K ein Körper und Kn der Polynomring in n Variablen über K mit einer Monomordnung ≤. Eine endliche Teilmenge G ⊆ Kn heißt reduziert, wenn die beiden folgenden Bedingungen erfüllt sind: 1. Für jedes Polynom g aus G gilt l(g) = 1. 2. Für jedes von g verschiedene Polynom g̃ ∈ G und für jedes Polynom f ∈ Kn gilt g − f g̃ ≥ g, wobei hier ≤ die auf Kn fortgesetzte Monomordnung bezeichnet. Satz 21.20. Es seien K ein Körper und Kn der Polynomring in n Variablen über K mit einer Monomordnung ≤. Dann besitzt jedes Ideal F Kn eine eindeutig bestimmte reduzierte Gröbner-Basis. 206 Gröbner-Basen Beweis. Es seien L(F ) das von den höchsten Monomen von F erzeugte Ideal und B ⊆ L(F ) die Menge der Monome, die minimal bezüglich der Teilbarkeitsordnung | sind. Dann wissen wir aus Bemerkung 21.16, dass B endlich ist. Wir wollen zunächst die Eindeutigkeit von B zeigen und bezeichnen daher mit B̃ eine weitere Menge minimaler Monome bezüglich der Teilbarkeitsordnung |. Dann finden wir zu jedem Monom m ∈ B ein Monom m̃ ∈ B̃ mit m̃|m, da B̃ nur minimale Elemente enthält. Mit demselben Argument finden wir ein Monom m̂ ∈ B mit m̂|m̃. Dies liefert m = m̂ = m̃ und damit die Gleichheit der beiden Mengen B = B̃. Ist m ∈ B ein minimales Monom, so finden wir ein minimales Polynom fm ∈ F bezüglich der auf Kn fortgesetzten Monomordnung mit L(fm ) = m. Wir wollen nun durch einen Widerspruchsbeweis zeigen, dass dieses Polynom fm eindeutig bestimmt ist. Wir nehmen also an, es gebe ein weiteres von fm verschiedenes Polynom f˜m ∈ F mit L(f˜m ) = m, welches minimal bezüglich ≤ ist. Wir bilden das Polynom h := fm − f˜m mit δ(h) < δ(fm ) = δ(f˜m ). Da das höchste Monom LM(h) entweder in fm oder in f˜m vorkommt, gehen wir ohne Einschränkung davon aus, dass es in fm vorkommt. Das Polynom g := fm − l(h) · LM(h) enthält diesen Term nicht mehr und liegt in F , da h in F liegt. Damit haben wir ein Polynom mit δ(g) < δ(f˜m ) und L(g) = L(fm ) gefunden. Dies steht im Widerspruch zu unserer Annahme, da f˜m minimal gewählt war. Damit ist die Menge G := {fm | m ∈ B} nach Konstruktion eine Gröbner-Basis mit l(fm ) = 1. Als nächstes wollen wir wiederum durch einen Widerspruchsbeweis zeigen, dass diese reduziert ist. Dazu nehmen wir an, es gebe Monome m1 , m2 ∈ B und ein Polynom h ∈ Kn mit fm1 −hfm2 < fm1 . Dann haben wir zwei Fälle zu unterscheiden: 1. Es ist δ(fm1 ) = δ(h)+δ(fm2 ). Dann gilt L(fm2 )| L(fm1 ) und damit auch m2 |m1 , was im Widerspruch zur Minimalität aller Elemente aus B steht. 2. Es ist δ(fm1 ) > δ(h) + δ(fm2 ). Folglich gelten L(fm1 ) = L(fm1 − hfm2 ) mit f˜m1 < fm1 und L(f˜m1 ) = L(fm1 ). | {z } =: f˜m1 Auch damit erhalten wir einen Widerspruch zur Minimalität. Letztlich müssen wir nur noch die Eindeutigkeit unserer reduzierten Gröbner-Basis G zeigen und nehmen an, G̃ sei eine weitere von G verschiedene reduzierte GröbnerBasis. Es sei g ein Polynom aus der Differenzmenge G\G̃. Da G̃ eine reduzierte Gröbner-Basis ist, existiert ein Polynom g̃ ∈ G̃ mit L(g̃)| L(g). Mit demselben Argument finden wir auch ein Polynom ĝ ∈ G mit L(ĝ)| L(g̃) und erhalten damit L(g) = L(ĝ) = L(g̃). Bezeichnen wir mit h die Differenz h := g − g̃ ∈ F , so gilt δ(h) < δ(g) = δ(g̃), und das Monom LM(h) kommt entweder in g oder in g̃ vor. Wir gehen ohne Einschränkung davon aus, dass LM(h) in g vorkommt. Da h in F liegt, 21.4 Reduzierte Gröbner-Basen 207 existiert ein Polynom ḡ ∈ G mit L(ḡ)| L(h). Außerdem existiert ein Körperelement c ∈ K mit L(h) < g. g−c L(ḡ) Da dies im Widerspruch zur Reduziertheit von G steht, ist der Satz schließlich bewiesen. 208 Gröbner-Basen Kapitel 22 Der Buchberger-Algorithmus 22.1 Differenzenpolynome Definition 22.1. (Differenzenpolynom) Es sei Rn der Polynomring in n Unbestimmten über einem Noetherschen Ring R mit einer Monomordnung “≤”. Für zwei Polynome g1 , g2 ∈ Rn sei Te12 das kleinste gemeinsame Vielfache der Leitmonome LM(g1 ) und LM(g2 ). Dann heißt d12 := l(g2 )g1 Te12 −δ(g1 ) − l(g1 )g2 Te12 −δ(g2 ) ∈ Rn das Differenzenpolynom von g1 und g2 . Aus dieser Definition folgt insbesondere, dass der Grad des Polynoms d12 bezüglich obiger Monomordnung echt kleiner als der Exponent e12 ist. Für ein Ideal F Rn mit Gröbner-Basis G = {g1 , . . . , gm } nennen wir D(G) = {dij | dij ist Differenzenpolynom von gi , gj ∈ G} die Menge der Differenzenpolynome von G. Satz 22.2. Es sei Kn der Polynomring in n Unbestimmten über einem Körper K mit einer Monomordnung “≤”. Des Weiteren seien F Kn ein Ideal und G = {g1 , . . . , gm } eine zugehörige Idealbasis. Dann gilt: Die Menge G ist genau dann eine Gröbner-Basis von F , wenn für jedes Differenzenpolynom d ∈ D(G) der zugehörige G-Rest d∗G = 0 ist. Beweis. Es sei G eine Gröbner-Basis von F . Da jedes Differenzenpolynom d ∈ D(G) nach Konstruktion in dem Ideal F liegt, hat d nach Satz 21.14 den G-Rest d∗G = 0. Für die Rückrichtung nehmen wir nun an, dass die Idealbasis G keine GröbnerBasis ist und die G-Reste aller Differenzenpolynome d ∈ D(G) verschwinden. Dann existiert ein Element f ∈ F , welches die Äquivalenzbedingung aus PmSatz 21.14 zusammen mit Anmerkung 21.15 verletzt. Zu einer Darstellung f = i=1 fi gi existiert also mindestens ein Index k ∈ {1, . . . m} mit δ(fk ) + δ(gk ) =: tk > δ(f ). Es sei 210 Der Buchberger-Algorithmus t := max{tk | k = 1, . . . , m} unter diesen Werten maximal und unter allen Darstellungen von f minimal gewählt. Definieren wir ferner Koeffizienten cj via l(fj ) für δ(fj ) + δ(gj ) = t, cj := 0 sonst, P so erhalten wir m Monoj=1 cj l(gj ) = 0, da der Grad von f bezüglich der gegebenen Pm mordnung echt kleiner als t ist. Betrachten wir das Polynom g := i=1 cj Tδ(fj ) gj , so ist dessen Grad auf Grund der Wahl der Koeffizienten cj ebenfalls echt kleiner als t. Als nächstes wollen wir annehmen, dass der Koeffizient cm ungleich 0 ist. Dies ist keine Einschränkung, da dies leicht durch eine entsprechende Umordnung der Indizes erreicht werden kann. Für alle j ∈ {1, . . . m} sei djm = l(gm )gj Tejm −δ(gj ) − l(gj )gm Tejm −δ(gm ) mit Tejm = kgV(LM(gj ), LM(gm )) das Differenzenpolynom von gj und gm . Wir erhalten hieraus für das Polynom g: g= m−1 X j=1 m−1 X cj cj djm Tt−ejm + (cm + l(gj ))gm Tt−δ(gm ) . l(gm ) l(g ) m j=1 | {z } =0 Da nach Voraussetzung die G-Reste aller Differenzenpolynome von G verschwinden, ∗ gilt dies nach obiger Gleichung auch für gG . Das heißt nach Satz 21.14 existieren P m ˜ ˜ ˜ Elemente fj ∈ Kn mit g = j=1 fj gj und δ(fj ) + δ(gj) ≤ δ(g) < t für alle j aus der Menge {1, . . . , m}. Mit fˆj := fj − cj Tδ(fj ) ergibt sich dadurch für f die Darstellung f= m X j=1 fˆj gj + m X f˜j gj j=1 mit δ(fˆj ) + δ(gj ) < t und δ(f˜j ) + δ(gj ) < t. Dies führt auf einen Widerspruch, da t minimal unter allen Darstellungen von f gewählt war. Wie der folgende Zusatz zeigt, lässt sich die Aussage aus Satz 22.2 unter einer weiteren Voraussetzung auf multivariate Polynomringe über Hauptidealringen übertragen. Zusatz 22.3. Es sei Rn der Polynomring in n Unbestimmten über einem Hauptidealring R. Ferner sei F Rn ein Ideal mit einer Idealbasis G = {g1 , . . . , gm }. Dann sind folgende Aussagen äquivalent: (a) G ist eine Gröbner-Basis von F . (b) Die G-Reste aller Differenzenpolynome d ∈ D(G) verschwinden. Des Weiteren existiert zu zwei Basiselementen g1 , g2 ∈ G ein Polynom h ∈ G, sodass l(h) den größten gemeinsamen Teiler ggT(l(g1 ), l(g2 )) und LM(h) das kleinste gemeinsame Vielfache kgV(LM(g1 ), LM(g2 )) teilt. 22.2 Konstruktion einer Gröbner-Basis 211 Beweis. Es sei G eine Gröbner-Basis von F . Dann gilt d∗G = 0 für alle d ∈ D(G) nach Satz 21.14. Da R ein Hauptidealring ist, existieren für g1 , g2 ∈ G Ringelemente u1 , u2 ∈ R mit u1 l(g1 ) + u2 l(g2 ) = ggT(l(g1 ), l(g2 )). Für e12 = kgV(δ(g1 ), δ(g2 )) konstruieren wir das Polynom h := u1 g1 Te12 −δ(g1 ) − u2 g2 Te12 −δ(g2 ) ∈ F. Hieraus ergeben sich l(h) = ggT(l(g1 ), l(g2 )) und LM(h) = kgV(LM(g1 ), LM(g2 )). Da das Polynom h in dem Ideal F liegt, gibt es nach Definition der Gröbner-Basis ein Element h̃ ∈ G mit L(h̃) | L(h). Damit ist diese Richtung der Behauptung bewiesen. Für die Rückrichtung nehmen wir an, ein Polynom f ∈ F besitze Pmkeine Standarddarstellung gemäß Satz 21.14, d.h. für alle Darstellungen f = j=1 fj gj gilt: t := max{δ(fj ), δ(gj )} > δ(f ). Wählen wir den Exponenten t wie im Beweis zu Satz 22.2 minimal unter allen Darstellungen, so erhalten wir auf analoge Weise einen Widerspruch. P Das heißt, zu jedem Polynom f ∈ F gibt es eine Standarddarstellung f = m j=1 fj gj mit δ(fj ) + δ(gj ) ≤ δ(f ). Es gelten also die selben Voraussetzungen wie in Folgerung 21.11. Eine Induktion nach j liefert ein Element h ∈ G mit l(h) P | ggT{l(gi ) | i = 1, . . . , m}, LM(h) | kgV{LM(gi ) | i = 1, . . . , m} und m L(f ) = i=1 L(fi ) L(gi ). Somit ist der Leitterm L(h) ein Teiler von L(f ) und G definitionsgemäß eine Gröbner-Basis. Beispiel 22.4. Es sei Rn der Polynomring in n Unbestimmten über einem Hauptidealring R. Ist G ⊆ F Rn eine Idealbasis, die ausschließlich aus Monomen besteht, so ist G eine Gröbner-Basis. 22.2 Konstruktion einer Gröbner-Basis Der österreichische Mathematiker Bruno Buchberger lieferte 1966 in seiner Dissertation einen Algorithmus zur Berechnung von Gröbner-Basen von Idealen F Kn . Algorithmus 22.5. (Buchberger-Algorithmus für Körper) Es seien K ein Körper und Kn := K[T1 , . . . , Tn ] ein multivariater Polynomring mit einer Monomordnung “≤”. Zu einem gegebenen Ideal F = (g1 , . . . , gm ) Kn setze man zunächst G := {g1 , . . . , gm }. 1. Für alle Paare von Elementen gi , gj ∈ G mit i 6= j bestimme man das Differenzenpolynom dij ∈ D(G). 2. Man berechne für alle Differenzenpolynome d ∈ D(G) einen zugehörigen GRest d∗G . Falls d∗G 6= 0 gilt, setze man G∗ := G ∪ {d∗G }, G := G∗ und gehe zu (1). 3. G ist eine Gröbner-Basis von F . 212 Der Buchberger-Algorithmus Anmerkung 22.6. (Variante für Euklidische Ringe) Im Falle eines Ideals F im Polynomring Rn über einem Euklidischen Ring R, wähle man in Schritt (1) des Algorithmus 22.5 Differenzenpolynome dij mit l(dij ) = ggT(l(gi ), l(gj )). Die Korrektheit des Buchberger-Algorithmus 22.5 folgt unmittelbar aus Satz 22.2, da zu Beginn von Schritt (3) alle Differenzenpolynome d ∈ D(G) den G-Rest d∗G = 0 haben. Viel entscheidender für diesen Algorithmus ist die Frage nach der Terminiertheit. Hierauf liefert der folgende Satz eine Antwort. Satz 22.7. Es seien R ein Euklidischer Ring und Rn der zugehörige Polynomring in n Unbestimmten. Zu einem Ideal F Rn mit Idealbasis {g1 , . . . , gm } kann mit Hilfe des Algorithmus 22.5 in endlich vielen Schritten eine Gröbner-Basis berechnet werden. Beweis. Nach Voraussetzung ist R ein Euklidischer Ring und damit insbesondere Noethersch. Aus dem des Hilbert’schen Basissatzes (siehe Korollar 21.18) folgt, dass der Polynomring Rn ebenfalls Noethersch ist. Für ein Ideal F = (g1 , . . . , gm ) Rn berechnen wir nun in Schritt (1) des Buchberger-Algorithmus 22.5 die Differenzenpolynome d ∈ D(G). Verschwinden die G-Reste aller dieser Polynome, so ist G eine Gröbner-Basis. Existiert ein Differenzenpolynom d ∈ D(G) mit d∗G 6= 0, so erhalten wir in Schritt (2) des Algorithmus eine neue Basis G∗ := G∪{d∗G }. Da der G-Rest von d nicht verschwindet, liegt das zugehörige Leitmonom LM(d∗G ) nicht in dem Ideal der Leitmonome von G. Wir erhalten also im Laufe des Buchberger-Algorithmus über (LM(g) | g ∈ G) ⊂ (LM(g ∗ ) | g ∗ ∈ G∗ ) eine echt aufsteigende Kette von Idealen, die, da Rn ein Noetherscher Ring ist, nach endlich vielen Schritten abbricht. Beispiel 22.8. Es seien K = Q der Körper der rationalen Zahlen und F = (g1 , g2 ) Q[X, Y ] ein Ideal in 2 Unbestimmten mit den Basiselementen g1 := X 3 − 2XY und g2 := X 2 Y − 2Y 2 + X bezüglich der lexikographischen Gesamtgradordnung. Auf der Suche nach einer Gröbner-Basis von F berechnen wir zunächst das Differenzenpolynom von g1 und g2 : d12 = Y g1 − Xg2 = −X 2 . Da sich dieser Term nicht weiter vereinfachen lässt, erweitern wir unsere Idealbasis G = {g1 , g2 } im Sinne des Buchberger-Algorithmus um das Polynom g3 := d12 . Im nächsten Schritt berechnen wir die Differenzenpolynome d13 sowie d23 und stellen fest, dass die G-Reste dieser Elemente ebenfalls noch nicht verschwinden: d13 = g1 + Xg3 = −2XY =: g4 , d23 = g2 + Y g3 = −2Y 2 + X =: g5 . Wir vergrößern also unsere Basis G um die Polynome g4 und g5 . Wie wir sehen werden, erhalten wir damit eine Gröbner-Basis, da die G-Reste aller zugehörigen Differenzenpolynome verschwinden. So folgt aus den obigen Gleichungen bereits d∗12 = 0, 22.2 Konstruktion einer Gröbner-Basis 213 d∗13 = 0 und d∗23 = 0. Des Weiteren erhalten wir aus den Gleichungen d14 = 2Y g1 + X 2 g4 = −4XY 2 = 2Y g4 , d24 = 2g2 + Xg4 = −4Y + 2X = 2g5 , d34 = 2Y g3 − Xg4 = 0, die G-Reste d∗14 = 0, d∗24 = 0 und d∗34 = 0. Abschließend ergibt sich wegen d15 d25 d35 d45 = = = = 2Y 2 g1 + X 3 g5 = 2Y 2 g4 − X 2 g3 , 2Y g2 + X 2 g5 = −Xg3 + 2Y g5 , −2Y 2 g3 + X 2 g5 = −Xg3 , Y g4 − Xg5 = g3 für die übrigen Differenzenpolynome ebenfalls d∗15 = 0, d∗25 = 0, d∗35 = 0 und d∗45 = 0. Wir haben also nach Satz 22.2 mit G = {g1 , g2 , g3 , g4 , g5 } eine Gröbner-Basis von F gefunden. Wie dieses Beispiel zeigt, ist die Bestimmung der G-Reste aller Differenzenpolynome d ∈ D(G) recht aufwendig. Vor allem deren Anzahl steigt im Laufe des Algorithmus stark an. Es stellt sich also die Frage, ob tatsächlich alle G-Reste berechnet werden müssen oder ob es Differenzenpolynome gibt, die weggelassen werden können. Bemerkung 22.9. Es seien R ein Hauptidealring und Rn der zugehörige Polynomring in n Unbestimmten mit einer Monomordnung “≤”. Des Weiteren seien f, g ∈ Rn zwei Polynome, deren Leitterme L(f ) und L(g) teilerfremd sind. Dann gilt d∗{f,g} = 0 für den {f, g}-Rest des Differenzenpolynoms d ∈ D({f, g}) von f und g. Beweis. Wir betrachten die Polynome f und g in ihrer Koeffizientendarstellung f= r X ik ak T bzw. g = s X bl Tjl , l=1 k=1 wobei für die zugehörigen Exponenten bezüglich der gegebenen Monomordnung die Ungleichungsketten i1 ≤ i2 ≤ . . . ≤ ir und j1 ≤ . . . ≤ js gelten. Dann erhalten wir für das Differenzenpolynom d ∈ D({f, g}) folgende Darstellung: d = L(g)f − L(f )g = L(g) r−1 X k=1 ik ak T − L(f ) s−1 X bl Tjl . (22.10) l=1 Wir wollen annehmen, es existierten Indizes k ∈ {1, . . . , r − 1} und l ∈ {1, . . . , s − 1} mit Tjs · Tik = Tir · Tjl =: m. Dann sind die Leitmonome LM(f ) und LM(g) jeweils Teiler des Monoms m. Da L(f ) und L(g) nach Voraussetzung teilerfremd sind, ist auch das Produkt LM(f )·LM(g) ein Teiler von m. Hieraus folgt die Gradungleichung δ(m) ≥ δ(L(f ) · L(g)) im Widerspruch zur Konstruktion von m. Somit gilt für alle 214 Der Buchberger-Algorithmus k ∈ {1, . . . , r − 1} und l ∈ {1, . . . , s − 1} die Ungleichung Tjs · Tik 6= Tir · Tjl , d.h die Terme des Differenzenpolynoms d in der Darstellung von Gleichung 22.10 können sich nicht auslöschen. Wir erhalten damit die Gleichungskette d+f · s−1 X jl bl T = L(g)(f − L(f )) + (f − L(f ))(g − L(g)) = g · l=1 r−1 X ak Tik , k=1 aus der sich d∗{f,g} = 0 ergibt. Korollar 22.11. Im Buchberger-Algorithmus 22.5 brauchen die Differenzenpolynome von Elementen gi , gj ∈ G mit ggT(L(gi ), L(gj )) = 1 nicht berücksichtigt werden. Anmerkung 22.12. In Beispiel 22.8 hätten die Differenzenpolynome d15 und d35 nach Folgerung 22.11 nicht berechnet werden müssen. 22.3 Syzygien Definition 22.13. (Syzygie) Es seien R ein kommutativer Ring und F Rn ein Ideal mit Idealbasis G = {g1 , . . . , gm } aus dem zugehörigen Polynomring in n Unbestimmten. Dann heißt ein m-Tupel s = (s1 , . . . , sm ) ∈ Rnm Syzygie der Leitterme von g1 , . . . , gm , wenn sich diese vermöge m X si L(gi ) = 0 i=1 zu Null kombinieren lassen. Die Menge aller Syzygien zu G bezeichnen wir mit Xm S(G) = {s ∈ Rnm | si L(gi ) = 0}. i=1 Eine Syzygie s ∈ S(G) heißt homogen vom Grad e, wenn zu jeder Komponente si ∈ s ein Ringelement ci ∈ R und ein Exponent ei ∈ Nn existieren, sodass si = ci Tei gilt und die Gradgleichung ei + δ(gi ) = e erfüllt ist. Beispiel 22.14. Es sei F Rn ein Ideal mit einer Idealbasis G = {g1 , . . . , gm }. Ferner sei {b1 , . . . , bm } die Standardbasis des Moduls Rnm . Betrachten wir das Differenzenpolynom dij = l(gj )Teij −δ(gi ) gi − l(gi )Teij −δ(gj ) gj ∈ D(G), so sehen wir, dass sich die Leitterme von gi und gj eliminieren. Das heißt für si := l(gj )Teij −δ(gi ) und sj := l(gi )Teij −δ(gj ) ist sij := si bi + sj bj eine Syzygie zu G. 22.3 Syzygien 215 Bemerkung 22.15. Es seien K ein Körper und Kn der Polynomring in n Unbestimmten über K. Ferner sei F Kn ein Ideal mit zugehöriger Idealbasis G = (g1 , . . . , gm ). Dann ist die Menge der Syzygien S(G) ein Kn -Modul mit der Basis B = {sij | 1 ≤ i < j ≤ m}, wobei die Basiselemente sij gemäß Beispiel 22.14 definiert sind. Beweis. Für zwei Syzygien s, t ∈ S(G) und zwei Skalare λs , λt ∈ Kn ist λs s + λt t bezüglich komponentenweiser Addition und komponentenweiser skalarer Multiplikation wegen m X (λs si + λt ti ) L(gi ) = λs i=1 m X si L(gi ) +λt i=1 | m X ti L(gi ) = 0 i=1 {z =0 } | {z =0 } ebenfalls eine Syzygie zu den Leittermen von g1 , . . . , gm . Damit ist S(G) ein Kn Untermodul von Knm . Als nächstes wollen wir zeigen, dass sich jede von 0 verschiedene Syzygie s = (s1 , . . . , sm ) ∈ S(G) als Summe von homogenen Syzygien schreiben lässt. Für L(gi ) = λgi Tegi gilt dann: m X si L(gi ) = s1 λg1 Teg1 + . . . + sm λgm Tegm = 0. i=1 Zerlegen wir jede Komponente von s in die Form sj = die Darstellung δ(sj ) X j sj L(gj ) = ck λgj Tk+egj . Pδ(sj ) k=0 cjk Tk , so erhalten wir k=0 Wenn wir nun m := max{δ(sj ) + egj | 1 ≤ j ≤ m} setzen, ergibt sich für alle Exponenten l ∈ {0, . . . , m} durch einen Koeffizientenvergleich die Gleichung m X cjk λgj Tk+egj = 0, j=1 wobei k die Bedingung k + egj = l erfüllt. Gemäß dieser Gleichung ist s̃l := 1 k m k (c PkmT , . . . , ck T ) eine homogene Syzygie vom Grad l, und nach Konstruktion gilt l=0 s̃l = s. Wir wollen nun abschließend zeigen, dass sich jede homogene Syzygie aus S(G) als Linearkombination der Elemente sij ∈ B schreiben lässt. Es sei also 0 6= s ∈ S(G) eine homogene Syzygie vom Grad e. Da Kn nullteilerfrei ist, besitzt s mindestens zwei von 0 verschiedene Komponenten si = ci Tei und sj = cj Tej mit i < j. 216 Der Buchberger-Algorithmus Die homogene Syzygie s̃ := s − l(gcij ) sij hat dann eine verschwindende i-te Komponente und damit mindestens eine nichttriviale Komponente weniger als s. Durch die sukzessive Ausführung dieser Rechnung folgt, dass sich s aus den Elementen sij ∈ B linear kombinieren lässt. Mit Hilfe der obigen Resultate erhalten wir demnach: S(G) = hsij | 1 ≤ i < j ≤ miKn . Die lineare Unabhängigkeit der Elemente aus B ergibt sich direkt aus deren Definition in Beispiel 22.14. Satz 22.16. Es seien Kn der Polynomring in n Unbestimmten über einem Körper K und F Kn ein Ideal mit der Idealbasis G = {g1 , . . . , gm }. Des Weiteren sei {s1 , . . . , sr } eine Basis des Kn -Moduls S(G) mit si = (si1 , . . . , sim ) ∈ Knm . Dann gilt: Die Menge G ist genau dann eine Gröbner-Basis von F , wenn für jeden Index P i ∈ {1, . . . , r} ein G-Rest des Polynoms m s g verschwindet. j=1 ij j Beweis. Es sei zunächst G eine Gröbner-Basis von F . Offenbar gilt dann ( m X sij gj )∗G = 0, j=1 Pm da jedes der Polynome j=1 sij gj in dem Ideal F liegt. Die Umkehrung beweisen wir indirekt. Hierzu nehmen wir an, ein Polynom Pmf ∈ F verletzte die Bedingung aus Satz 21.14. Dann gilt für jede Zerlegung f = i=0 fi gi max{δ(fj ) + δ(gj ) | 1 ≤ j ≤ m} =: t > δ(f ). Im Folgenden sei die obige Darstellung von f so gewählt, dass der Wert t minimal wird. Definieren wir ferner Koeffizienten cj durch l(fj ) für δ(fj ) + δ(gj ) = t, cj := 0 sonst, Pm δ(fj ) L(gj ) = 0. Hieraus erhalten wir über so ergibt sich die Gleichung j=1 cj T δ(fj ) sj := cj T eine homogene Syzygie s := (s1 , . . . , sm ) ∈ S(G) vom Grad Pr t. Da {s1 , . . . , sr } eine Basis von S(G) ist, existieren Elemente ui ∈ Kn mit s = i=1 ui si . Pr Durch einen Vergleich der höchsten Terme erhalten wir dann s = i=1 ûi si , wobei ûi si entweder homogen vom Grad t ist oder ûi = 0 gilt. Zerlegen wir f in f= m X cj T δ(fj ) gj + j=1 m X f˜j gj j=1 mit δ(f˜j ) + δ(gj ) < t, so gilt die Gleichungskette m X j=1 cj T δ(fj ) gj = m X j=1 sj gj = r X i=1 ûi m X sij gj . j=1 P Da nach Voraussetzung die G-Reste der Summen m j=1 sij gj verschwinden, gilt damit Pm Pm P ∗ δ(fj ) ˆ auch ( j=1 sj gj )G = 0. Also lässt sich j=1 cj T gj schreiben als m j=1 fj gj mit δ(fˆj ) + δ(gj ) < t. Dies steht im Widerspruch zu der Wahl von f . 22.4 Der erweiterte Buchberger-Algorithmus 217 Korollar 22.17. Wie in Satz 22.16 seien K ein Körper, F Kn ein Ideal mit Basis G = {g1 , . . . , gm } und B := {sij | 1 ≤ i < j ≤ m} die Kn -Basis der Menge aller Syzygien S(G) aus Bemerkung 22.15. Existieren für eine erzeugende Teilmenge B̃ ⊆ B Indizes i, j, k, so dass sik und sjk Elemente aus B̃ sind und der Leitterm L(gk ) das kleinste gemeinsame Vielfache kgV{L(gi ), L(gj )} teilt, dann ist B̃\{sij } ebenfalls eine Basis von S(G). Das bedeutet insbesondere, dass das Differenzenpolynom dij bei der Ausführung des Buchberger-Algorithmus 22.5 unberücksichtigt bleiben kann. Beweis. Es sei Teij das kleinste gemeinsame Vielfache der Leitmonome von LM(gi ) und LM(gj ). Dann sind nach Voraussetzung sowohl Teik als auch Tejk Teiler von Teij . Durch einen Komponentenvergleich erhalten wir hieraus sij = l(gi ) eij −ejk l(gj ) eij −eik sik − sjk . T T l(gk ) l(gk ) Anmerkung 22.18. In Beispiel 22.8 kann nach Korollar 22.17 auf die Berechnung der G-Reste der Differenzenpolynome d1,5 ,d2,5 ,d3,5 und d4,5 verzichtet werden, da der Leitterm von g4 die kleinsten gemeinsamen Vielfachen kgV{L(gi ), L(gj )} für alle (i, j) ∈ {(1, 5), (2, 5), (3, 5), (4, 5)} teilt. 22.4 Der erweiterte Buchberger-Algorithmus Nachdem wir uns mit Aussagen zur Verbesserung der Laufzeit des BuchbergerAlgorithmus beschäftigt haben, wollen wir uns in diesem Abschnitt abschließend noch mit der Frage befassen, wie sich zu einem Idealelement die in Satz 21.14 beschriebene Standarddarstellung gewinnen lässt. Ferner interessiert uns die konkrete Umrechnung einer beliebigen Idealbasis in eine Gröbner-Basis. Es seien R ein Euklidischer Ring, F = (f1 , . . . , fm ) Rn ein Ideal und G = {g1 , . . . , gr } eine Gröbner-Basis von F . Im Folgenden suchen wir 1. zu einemP Element g ∈ G eine Methode zur Berechnung von Polynomen hj ∈ Rn mit g = m j=1 hj fj , sowie 2. für ein Idealelement P f ∈ F eine Methode zur Berechnung von Polynomen hk ∈ Rn mit f = rk=1 hk gk . Auf beide Fragen liefert der erweiterte Buchberger-Algorithmus eine Antwort. Algorithmus 22.19. (Erweiterter Buchberger-Algorithmus) Es seien K ein Körper und F = (g1 , . . . , gm ) Kn ein Ideal in dem Polynomring in n Unbestimmten über K. Zu Beginn setze man G := {g1 , . . . , gm }, r := m und fij := δij mit dem Kronecker-Delta δij . 218 Der Buchberger-Algorithmus 1. Zu jedem Differenzenpolynom d ∈ D(G) berechne man einen zugehörigen GRest g := d∗G . Falls g 6= 0 gilt, so gibt es Indizes 1 ≤ i < j ≤ r und Monome mi , mj ∈ Kn mit d = mi gi − mj gj . 2. Mit dem AlgorithmusPzur G-Rest-Bestimmung berechne man Polynome hj ∈ Kn , sodass g − d = rj=1 hj gj gilt. Hieraus ergibt sich die Darstellung g =d+ r X j=1 hj gj = r X h̃j gj j=1 mit h̃j ∈ Kn . Um nun g gemäß des Buchberger-Algorithmus der Menge G hinzuzufügen, setzte man r := r + 1, gr := g, sowie frj := h̃j für alle Indizes j ∈ {1, . . . , m} und gehe zu (1). 3. Die Menge G = {g1 , . . .P , gr } ist eine Gröbner-Basis von F , und für alle Indizes i ∈ {1, . . . , r} gilt gi = m j=1 fij fj . 4. Für ein Element f ∈ F liefert P der Algorithmus zur G-Rest Bestimmung fG∗ = 0 die Standarddarstellung f = ri=1 fi gi bezüglich G mit Polynomen fi ∈ Kn . Die Korrektheit des Algorithmus 22.19 ergibt sich direkt aus der Korrektheit des ursprünglichen Buchberger-Algorithmus 22.5 und liefert uns folgenden Satz: Satz 22.20. Es seien R ein Euklidischer Ring und F Rn ein Ideal im zugehörigen Polynomring in n Unbestimmten. Dann kann mit dem erweiterten BuchbergerAlgorithmus 22.19 in endlich vielen Schritten berechnet werden: (a) Eine Gröbner-Basis G mit Basisdarstellung einer ursprünglich gegebenen Basis von F . (b) Für jedes Idealelement f ∈ F eine Standarddarstellung bezüglich der berechneten Gröbner-Basis. Anmerkung 22.21. Für Satz 22.7 und Satz 22.20 müssen die Ringoperationen in endlich vielen Schritten durchführbar sein (vergleiche auch Kapitel 25). Kapitel 23 Eliminationstheorie 23.1 Eliminationsideale Definition 23.1. (Eliminationsideal) Es seien R ein kommutativer Ring und F Rn := R[T1 , . . . , Tn ] ein Ideal im zugehörigen Polynomring in n Unbestimmten. Für einen Index l ≤ n nennen wir Fl := F ∩ R[T1 , . . . , Tl ] das l-te Eliminationsideal. Satz 23.2. (Eliminationssatz) Es seien R ein Noetherscher Ring, F Rn ein Ideal und G eine Gröbner-Basis von F bezüglich der invers lexikographischen Monomordnung. Dann ist für jeden Index l ≤ n die Menge Gl := G ∩ R[T1 , . . . , Tl ] eine Gröbner-Basis des l-ten Eliminationsideals Fl . Beweis. Es seien g1 , . . . , gr die Elemente der Gröbner-Basis G zu dem Ideal F . Zu einemPbeliebigen Element f ∈ Fl ⊆ F existieren dann Polynome hj ∈ Rn , sodass f = rj=1 hj gj mit δ(hj ) + δ(gj ) ≤ δ(f ) gilt. Liegt nun mit gi ∈ G ein GröbnerBasiselement nicht in dem Polynomring R[T1 , . . . , Tl ], so gilt bezüglich der invers lexikographischen Gesamtordnung δ(gi ) > δ(f ) und damit hi = 0. Andererseits liegt aus demselben Grund jedes Element g ∈ G mit δ(g) ≤ δ(f ) in dem Ring R[T1 , . . . , Tl ]. Also besitzt f ∈ Fl gemäß Kapitel 21 eine Standarddarstellung in den Elementen von Gl . Korollar 23.3. Es seien R ein Noetherscher Ring und F Rn ein Ideal in dem Polynomring in n Unbestimmten über R. Dann gelten: (a) Das Ideal F ist genau dann gleich dem gesamten Ring Rn , wenn für das 0-te Eliminationsideal F0 = R gilt. 220 Eliminationstheorie (b) Falls R = K ein Körper ist, gilt F = Kn genau dann, wenn ein Element 0 6= c ∈ K mit c ∈ F existiert. Beweis. Es sei G eine Gröbner-Basis von F Rn . Dann ergeben sich die Behauptungen (a) und (b) direkt aus der Tatsache, dass G0 = G ∩ R nach Satz 23.2 eine Gröbner-Basis des 0-ten Eliminationsideals F0 ist. Beispiel 23.4. Es sei C[X, Y, Z] der Polynomring in drei Unbestimmten über dem Körper der komplexen Zahlen C. Ferner sei F = (f1 , f2 , f3 ) C3 das von den Polynomen f1 = X 2 + Y + Z − 1, f2 = X + Y 2 + Z − 1 und f3 = X + Y + Z 2 − 1 erzeugte Ideal in C3 . Berechnen wir bezüglich der invers lexikographischen Gesamtordnung eine reduzierte Gröbner-Basis G von F , so erhalten wir g1 = Z + Y + X 2 − 1, g2 = Y 2 − Y − X 2 + X, g3 = 2Y X 2 + X 4 − X 2 und g4 = X 6 − 4X 4 + 4X 3 − X 2 = X 2 (X −1)2 (X 2 +2X −1). Für das 2-te und 1-te Eliminationsideal ergibt sich hieraus: F2 = (g2 , g3 , g4 ) und F1 = (g4 ). Fragen wir nach den gemeinsamen Nullstellen aller Polynome√aus F , so erhalten √ wir mit dem Ideal F1 für X die Werte x1 = 0, x2 = 1, x3 = −1 + 2 und x4 = −1 − 2. Durch sukzessives Einsetzen der Resultate in das zweite Eliminationsideal F2 und das Polynom g1 erhalten wir √ √ √ √ √ √ {(0, 0, 1), (0, 1, 0), (1, 0, 0), (−1+ 2, −1+ 2, −1+ 2), (−1− 2, −1− 2, −1− 2)} als die Menge der gemeinsamen Nullstellen aller Polynome des Ideals F . Wie das Beispiel 23.4 suggeriert, lassen sich in manchen Fällen Lösungen des Ideals Fl zu Lösungen von Fl+1 ergänzen. Wir wollen im nächsten Abschnitt untersuchen, unter welchen Voraussetzungen ein solches Vorgehen stets möglich ist. 23.2 Der Ergänzungssatz Beispiel 23.5. Es sei F das von den Polynomen f1 = T1 T3 − 1 und f2 = T2 T3 − 1 erzeugte Ideal in C[T1 , T2 , T3 ] mit invers lexikographischer Ordnung. Dann sind die Differenzenpolynome d12 = T2 f1 − T1 f2 = T1 − T2 = f3 und d23 = f2 + T3 f3 = f1 und es gelten nach Folgerung 22.11 d∗31 = 0 sowie d∗23 = 0. Damit ist F2 = (T1 − T2 ). Die Nullstelle (0, 0) von F2 lässt sich aber nicht zu einer Lösung von F ergänzen! Definition 23.6. (gemeinsame Nullstellen) Es seien K ein Körper, Kn = K[T1 , . . . , Tn ] der Polynomring in n Variablen über K und I Kn ein Ideal. Dann bezeichnen wir mit V(I) := {c ∈ K n |f (c) = 0 für alle f ∈ I} die Menge der gemeinsamen Nullstellen von I. 23.2 Der Ergänzungssatz 221 Satz 23.7. (Lösungsergänzungssatz) Es seien K ein algebraisch abgeschlossener Körper und F = (f1 , . . . , fm ) Kn = K[T1 , . . . , Tn ] ein Ideal mit fi = gi (T1 , . . . , Tn−1 )Tn ni + ri (T1 , . . . , Tn ) mit degTn (ri ) < ni und gi 6= 0. Ferner seien c = (c1 , . . . , cn−1 ) ∈ V(Fn−1 ) und c ∈ / V((g1 , . . . , gm )). Dann existiert ein cn ∈ K mit (c1 , . . . , cn ) ∈ V(F ). Beweis. Wir haben angenommen, dass eine gemeinsame Nullstelle c ∈ V(Fn−1 )\V((g1 , . . . , gm )) existiert. Also können wir ohne Einschränkung davon ausgehen, dass gm (c) 6= 0 ist. Dann führen wir X1 , . . . , Xm−1 als neue Variablen ein und definieren das Polynom m−1 X Xi fi , fm ) ∈ K[T1 , . . . , Tn−1 , X1 , . . . , Xm−1 ]. h := ResTn ( i=1 Dieses können wir als Polynom in X1 , . . . , Xm−1 über K[T1 , . . . , Tn−1 ] auffassen, denn es besitzt eine Darstellung X h= hj Xj mit hj ∈ K[T1 , . . . , Tn−1 ]. j∈Nm−1 Aus Satz 5.4 erhalten wir die Existenz von Polynomen u, v ∈ Kn [X1 , . . . , Xm−1 ] m−1 P mit h = u( Xi fi ) + vfm . Dabei haben wir die Polynome u und v in folgender i=1 Darstellung gegeben: X u= u k Xk , X v= vl Xl . l∈Nm−1 k∈Nm−1 Setzt man dies in die obige Gleichung ein, so ergibt sich h=( X m−1 X k uk X )( k∈Nm−1 X Xi f i ) + ( vl Xl )fm . l∈Nm−1 i=1 Man kann jede der Variablen Xi ausdrücken durch Xei mit ei = (0, . . . , 0, 1, 0, . . . , 0). Setzt man dies in die Darstellung von h ein, erhält man h = X m−1 X k∈Nm−1 i=1 = X X ( X uk fi Xk+ei + l∈Nm−1 uk fi + vl fm )Xl . l∈Nm−1 k+ei =l | {z =: hl ∈ Kn−1 ∩ F } vl Xl fm 222 Eliminationstheorie Wir wissen bereits, dass diese hl in Kn−1 ∩ F = Fn−1 liegen müssen. Damit erhalten wir hl (c) = 0. Weiterhin können wir ohne Einschränkung davon ausgehen, dass g1 (c) 6= 0 ist und dass degTn (f1 ) > degTn (fj ) für alle j = 1, . . . , m − 1 gilt. Für den zweiten Teil der Annahme muss man notfalls f1 durch f1 + fm Tn s mit hinreichend großem s ersetzen. Damit erhalten wir m−1 X h(c, X) = ResTn ( fi (c1 , . . . , cn−1 , Tn )Xi , fm (c1 , . . . , cn−1 , Tn )) = 0. i=1 Dies liefert die Existenz eines nicht-trivialen gemeinsamen Teilers q ∈ K[Tn ] von m−1 P fi Xi und fm . Durch Koeffizientenvergleich ergibt sich, dass q(Tn ) für jedes i = i=1 1, . . . , m ein Teiler von fi (c, Tn ) ist. Da K ein algebraisch abgeschlossener Körper ist, existiert ein Körperelement cn ∈ K mit q(cn ) = 0. Folglich gilt fi (c1 , . . . , cn−1 , cn ) = 0 für alle i = 1, . . . , m. 23.3 Ideale der Dimension Null Definition 23.8. Es seien K ein Körper und F K[T1 , . . . , Tn ] ein Ideal in dem zugehörigen Polynomring in n Unbestimmten. Eine Teilmenge {U1 , . . . , Ur } ⊆ {T1 , . . . , Tn } heißt unabhängig modulo F , wenn F ∩ K[U1 , . . . , Ur ] = {0} gilt. Die maximale Elementanzahl aller modulo F unabhängigen Teilmengen von {T1 , . . . , Tn } nennen wir die Dimension von F : dim(F ) := max{#U | U ⊆ {T1 , . . . , Tn } unabhängig modulo F }. Anmerkung 23.9. Obige Definition der Dimension eines Ideals F Kn ist dem Buch [3] von Becker und Weispfenning entnommen. Diese ist äquivalent zur üblichen Definition von dim(F ) als Krull-Dimension der K-Algebra Kn /F (siehe [5]). Beispiel 23.10. Es seien Q der Körper der rationalen Zahlen und F = (f1 , f2 ) Q[X, Y, Z] das von f1 = Z + XZ und f2 = Z + Y Z erzeugte Ideal in Q3 . Dann ist {f1 , f2 } bezüglich jeder Monomordnung eine Gröbner-Basis von F . Für die Menge M aller modulo F unabhängigen Teilmengen von {X, Y, Z} gilt: M = {{X}, {Y }, {Z}, {X, Y }}. Also hat F die Dimension dim(F ) = 2. Bemerkung 23.11. Es seien K ein Körper und F Kn ein Ideal, welches echt in dem Polynomring Kn enthalten ist. Dann ist die Dimension von F genau dann gleich Null, wenn für jeden Index i ∈ {1, . . . , n} ein Polynom fi ∈ Kn existiert mit fi ∈ K[Ti ] und degTi (fi ) > 0. 23.3 Ideale der Dimension Null 223 Beweis. Es sei zunächst die Dimension von F gleich Null. Gemäß der Definition gilt dann F ∩ K[Ti ] 6= {0}. Also existiert mindestens ein Polynom fi ∈ F \ K mit fi ∈ K[Ti ] und degTi (fi ) > 0. Gibt es andererseits zu jedem Index i ∈ I := {1, . . . , n} ein nichttriviales Polynom fi ∈ K[Ti ] ∩ F , so existiert zu jeder Teilmenge U ⊆ {T1 , . . . , Tn } ein Index k ∈ I mit {0} = 6 (K[Tk ] ∩ F ) ⊆ (K[U] ∩ F ). Hieraus folgt dim(F ) = 0. Satz 23.12. Es seien K ein Körper und F Kn ein echt in Kn enthaltenes Ideal. Dann sind folgende Aussagen äquivalent: (a) Das Ideal F hat die Dimension 0. (b) Der Faktorring Kn /F ist ein endlichdimensionaler K-Vektorraum. (c) Es gibt eine Monomordnung “≤” auf Kn und eine Gröbner-Basis G zu F bezüglich “≤” derart, dass zu jedem Index i ∈ {1, . . . , n} ein Basiselement gi ∈ G und ein Exponent ni ∈ N+ mit LM(gi ) = Tini existiert. (d) Die Aussage (c) gilt für alle Monomordnungen auf Kn . Beweis. Wir führen diesen Beweis per Ringschluss. Zunächst zeigen wir den Schritt von (a) nach (d). Hierzu seien “≤” eine beliebige Monomordnung auf Kn und G eine entsprechende Gröbner-Basis zu F . Da dim(F ) = 0 gilt, existiert nach Bemerkung 23.11 zu jedem Index i ∈ I := {1, . . . , n} ein Polynom fi ∈ K[Ti ] ∩ F mit degTi (fi ) > 0. Ferner gibt es ein Gröbner-Basiselement g ∈ G, sodass der Leitterm L(g) den Leitterm L(fi ) = cTiei teilt. Demnach existiert ein Exponent ni , sodass das Leitmonom von g die Form LM(g) = Tini hat. Aussage (c) folgt direkt aus Aussage (d). Im Schritt von (c) nach (b) sehen wir, dass Kn /F ein K-Vektorraum ist, da sowohl Kn als auch F als Ideal in Kn eine K-Vektorraumstruktur besitzen. Diese bleibt bei der Quotientenbildung erhalten. Ferner stellen wir fest, dass die Menge {ta11 · . . . · tann | 0 ≤ ai < ni } mit ti := Ti mod F ein Erzeugendensystem von Kn /F bildet. Also ist Kn /F ein endlichdimensionaler K-Vektorraum mit dim(Kn /F ) ≤ n Y ni < ∞. i=1 Für den letzten Schritt von (b) nach (a) setzen wir wieder ti := Ti mod F für alle i ∈ I. Dann gibt es Exponenten ei , sodass die Elemente 1, ti , t2i , . . . , tei i in Kn /F linear 224 Eliminationstheorie abhängig sind. Also existiert eine nichttriviale Linearkombination Körperelementen ak ∈ K. Transformiert in Ti ergibt dies ei X Pei k=0 ak tki = 0 mit ai Tik ∈ F. k=0 Mit Hilfe von Bemerkung 23.11 erhalten wir hieraus dim(F ) = 0. Q Korollar 23.13. Unter den Voraussetzungen von Satz 23.12 ist ni=1 ni eine obere Schranke für die Anzahl der Nullstellen von F Kn . Beispiel 23.14. Es seien Q der Körper der rationalen Zahlen und F = (f1 , f2 ) ∈ Q[T1 , T2 ] ein Ideal mit f1 = T22 − T13 und f2 = T22 T12 − 2T22 + T14 wie in Beispiel 5.15. Mit Hilfe des Buchberger-Algorithmus berechnen wir eine Gröbner-Basis von F bezüglich invers-lexikographischer Ordnung. Dazu definieren wir G(0) := {g1 , g2 } mit g1 := f1 und g2 := f2 . Für das Differenzenpolynom d12 ergibt sich d12 = g1 T12 − g2 = 2T22 − T15 − T14 =: g3 . Da g2 = g1 T12 − g3 und δ(g3 ) < δ(g2 ) gelten, können wir auf g2 verzichten und definieren die Menge G(1) := {g1 , g3 }. Bilden wir das Differenzenpolynom d13 = 2g1 − g3 = T15 + T14 − 2T13 =: g4 , erhalten wir analog G(2) := {g1 , g4 } als Gröbner-Basis-Kandidat. Jetzt müssen wir noch zeigen, dass der G(2) -Rest von d14 verschwindet. Wie man leicht überprüft, gilt tatsächlich d14 = g1 T15 − g4 T22 = (−T14 + 2T13 )g1 − T13 g4 . Damit ist G := G(2) eine Gröbner-Basis von F . Außerdem ist F nach Satz 23.12 (c) ein Ideal der Dimension 0. Man beachte die Vermeidung hoher Nullstellenordnungen im Vergleich zur Rechnung in Beispiel 5.15, denn es gilt p g4 = T13 (T12 + T1 − 2) = Res(f1 , f2 ). Aufgabe 23.15. Es seien Q der Körper der rationalen Zahlen und F = (f1 , f2 , f3 ) Q[T1 , T2 , T3 ] das von f1 = −T32 + 2T22 + 2T12 , f2 = T3 T2 − 2T12 und f3 = T3 T2 T1 − 2T22 erzeugte Ideal in Q3 . Man berechne mit Hilfe des Buchberger-Algorithmus eine Gröbner-Basis von F bezüglich invers-lexikographischer Ordnung und bestimme dim(F ). Kapitel 24 Elementare Idealoperationen Vorbemerkung 24.1. Es seien R ein kommutativer Ring und A = (a1 , . . . , ak ), B = (b1 , . . . , bm ) Ideale in Rn . Dann gelten für deren Summe und Produkt: A + B = (a1 , . . . , ak , b1 , . . . , bm ) und V(A + B) = V(A) ∩ V(B), A · B = (ai bj | 1 ≤ i ≤ k, 1 ≤ j ≤ m) und V(A · B) = V(A) ∪ V(B). 24.1 Durchschnitt von Idealen Satz 24.2. Es seien R ein kommutativer Ring und A, B Rn Ideale in R. Dann gilt A ∩ B = (T A + (1 − T )B) ∩ Rn ∈ Rn [T ]. Beweis. Wählen wir ein Polynom f ∈ A ∩ B, so gelten T f ∈ T A und (1 − T )f ∈ (1 − T )B. Daraus ergibt sich f = T f + (1 − T )f ∈ (T A + (1 − T )B) ∩ Rn . Liegt umgekehrt f in T A + (1 − T )B ∩ Rn , so existieren ein Polynom g(X, T ) ∈ T A und ein Polynom h(X, T ) ∈ (1−T )B mit f (X) = g(X, T )+h(X, T ) = T ·g̃+(1−T )h̃ mit g̃ ∈ A und h̃ ∈ B. Für T = 0 ergibt sich, dass f (X) = h(X, 0) = h̃(X) ∈ B ist, und analog für T = 1, dass f (X) = g(X, 1) = g̃(X) ∈ A ist. Dies liefert insgesamt f ∈ A ∩ B. Algorithmus 24.3. (Berechnung des Idealdurchschnitts) Es seien K ein Körper und A = (a1 . . . , ak ) und B = (b1 , . . . , bm ) Ideale in Kn . 1. Berechne eine Gröbner-Basis G von (T a1 , . . . , T ak , (1 − T )b1 , . . . , (1 − T )bm ) Kn [T ] bzgl. einer Monomordnung mit T >> X. 2. Die T -freien Polynome in G bilden eine Basis von A ∩ B. 226 Elementare Idealoperationen Beispiel 24.4. Es seien K = C und A = (X 2 · Y ), B = (X · Y 2 ) K[X, Y ]. Es gelte T > X > Y bzgl. der lexikographischen Ordnung. Dann ist T A + (1 − T )B = (T X 2 Y, (T − 1)XY 2 ) = (f1 , f2 ). Wir berechnen die Differenzenpolynome. Es gelten d12 = Y f1 − Xf2 =: f3 , d13 = 0 und d23 muss nach Folgerung 22.17 nicht berechnet werden. Daher ist G = {f1 , f2 , f3 } eine Gröbner-Basis und A ∩ B = (X 2 · Y 2 ). Anmerkung 24.5. Der Algorithmus 24.3 zur Berechnung von Idealdurchschnitten kann auch zur Berechnung des kleinsten gemeinsamen Vielfachen verwendet werden. Aufgabe 24.6. Man beweise Satz 24.2 für r T Ai allgemein. i=1 Aufgabe 24.7. Man beweise die beiden folgenden Aussagen: 1. V(A ∩ B) = V(A) ∪ V(b). √ √ √ 2. A ∩ B = A ∩ B. 24.2 Quotient von Idealen und Radikalzugehörigkeit Definition 24.8. (Idealquotient) Es seien R ein kommutativer Ring und A, B R Ideale in R. Dann heißt A : B := {f ∈ R | f · g ∈ A für alle g ∈ B} der Idealquotient von A und B. Bemerkung 24.9. Es seien R ein kommutativer Ring und A, B = (b1 , . . . , bs ) R Ideale in R. Dann gilt für den Idealquotient A:B= s \ A : (bj ). j=1 Beweis. Dies ist direkt aus der Definition 24.8 ersichtlich. Satz 24.10. Es seien R ein kommutativer Ring, F R ein Ideal und h ∈ R ein Ringelement. Ferner seien g1 , . . . , gr die Erzeuger des Ideals F ∩(h). Dann ist { gh1 , . . . , ghr } eine Basis von F : (h). 24.2 Quotient von Idealen und Radikalzugehörigkeit 227 Beweis. Es seien f ∈ { gh1 , . . . , ghr } und a ∈ (h). Dann existiert ein Element b ∈ R mit af = bhf ∈ F ∩ (h). Damit ist f ∈ F : (h). Liegt andererseits f in F : (h), so ist f h ∈ F ∩ (h) = ( gh1 , . . . , ghr ). Also liegt f in ( gh1 , . . . , ghr ). Algorithmus 24.11. (Berechnung von Idealquotienten) Es seien F = (f1 , . . . , fm ), H = (h1 , . . . , hs ) Ideale in R. 1. Berechne F ∩ (hi ) und bilde Fi := F : (hi ) für alle 1 ≤ i ≤ s. 2. Berechne s T (F : (hi )) = F : H nach Schritt 1 iterativ. i=1 Aufgabe 24.12. Es seien F, H R Ideale. Beweisen Sie die folgenden Aussagen: 1. V(F : H) ⊃ V(F )\V(H), wobei die Überstreichung den Zariski-Abschluss bezeichnet. √ 2. Falls K ein algebraisch abgeschlossener Körper und F = F ist, so gilt sogar V(F : H) = V(F )\V(H). 3. Sind V, W ⊆ An (K) affine Mannigfaltigkeiten, so gilt I(V) : I(W) = I(V\W). Hierbei ist I(V) = (f ∈ Kn | f (x) = 0 für alle x ∈ V). Bemerkung 24.13. Es seien R ein Noetherscher Ring, A R ein Ideal in R und f ∈ R ein Ringelement. Dann gelten: (a) Es existiert eine natürliche Zahl s ∈ N, so dass für alle Zahlen r ≥ s gilt: A : (f r ) = A : (f s ). (b) f liegt genau dann in √ A, wenn 1 ∈ S A : (f r ) =: A : (f ∞ ) ist. r∈N Beweis. (a) Wir betrachten die aufsteigende Idealkette A = A : (f 0 ) ⊆ A : (f 1 ) ⊆ A : (f 2 ) ⊆ . . . . Da R ein Noetherscher Ring ist, bricht diese Kette nach endlich vielen, etwa s Schritten ab. √ (b) f liegt genau dann in A, wenn es eine natürliche Zahl r ∈ N mit f r ∈ A gibt. Dies ist aber äquivalent zu 1 ∈ A : (f r ). Bemerkung 24.14. Es seien R ein Noetherscher Ring, A R ein Ideal und 0 6= f ∈ R kein Nullteiler. Weiterhin sei F das von (A, 1 − T f ) erzeugte Ideal in R[T ]. Dann ist A : (f ∞ ) = F0 Eliminationsideal in R[T ]. 228 Elementare Idealoperationen Beweis. Es sei h ∈ F0 = F ∩ R. Dann existieren ein Element a ∈ A und Polynome u, v ∈ R[T ] mit h = ua + v(1 − T f ). Spezialisierung von T zu f1 in R[ f1 ] liefert h = u( f1 )a. Wir können also eine natürliche Zahl r ∈ N finden, so dass f r h = ũa ist mit ũ ∈ R, d.h. es gilt h ∈ A : (f r ). Liegt umgekehrt h ∈ A : (f r ), so existiert ein Element a ∈ A mit f r h = a ∈ A F . Mit der Kongruenz 1 ≡ T f mod F erhalten wir h ≡ T r f r h = T r a ≡ 0 mod F . Damit liegt h in F ∩ R = F0 . Bemerkung 24.14 liefert einen Algorithmus zum Testen der Radikalzugehörigkeit in Polynomringen. Algorithmus 24.15. (Test der Radikalzugehörigkeit) Es seien R = Kn der Polynomring über einem Körper K, A = (f1 , . . . , fm ) ein Ideal in R und f ∈ R ein Polynom. 1. Bestimme die Gröbner-Basis G von F = (f1 , . . . , fm , 1 − T f ) K[X, T ] bzgl. einer Monomordnung mit X < T . 2. Teste 1 ∈ F0 = A : (f ∞ ) gemäß Korollar 23.3. 24.3 Teilringzugehörigkeit Definition 24.16. (reduzierter Rest) Es seien R ein kommutativer Ring und F Rn ein Ideal mit einer reduzierten Gröbner-Basis G. Für ein Polynom f ∈ Rn nennen wir den G-Rest fG∗ reduzierten Rest von f modulo G. Anmerkung 24.17. Für einen Körper K und ein Polynom f ∈ Kn aus dem zugehörigen Polynomring in n Unbestimmten ist der reduzierte Rest von f modulo G nach Satz 21.20 eindeutig bestimmt. Satz 24.18. Es seien K ein Körper und f1 , . . . , fm Elemente aus dem multivariaten Polynomring Kn := K[X1 , . . . , Xn ]. Ferner seien F K[X, T1 , . . . , Tm ] das von den Polynomen T1 − f1 , . . . , Tm − fm erzeugte Ideal und G eine reduzierte Gröbner-Basis von F bezüglich einer Monomordnung “≤” mit T < X. Dann gilt: Ein Polynom f ∈ Kn liegt genau dann in der K-Algebra K[f1 , . . . , fm ], wenn der reduzierte Rest von f modulo G ein Element des Ringes K[T1 , . . . , Tm ] ist. Insbesondere existiert dann ein Polynom h(T) ∈ K[T] mit fG∗ = h(T) und f = h(f1 , . . . , fm ). Beweis. Es seien zunächst f ∈ K[f1 , . . . , fm ] und h ∈ K[T] mit f = h(f1 , . . . , fm ). Nach Definition des Ideals F gilt h(T) − f ≡ h(f1 , . . . , fm ) − f = 0 mod F. 24.4 Simultane Kongruenzen 229 Also ist h(T) − f ein Element von F und hat damit den G-Rest (h(T) − f )∗G = 0. Hieraus ergibt sich fG∗ = hT ∈ K[T]. Es sei nun umgekehrt f ∈ Kn mit fG∗ = h(T) ∈ K[T]. Dann gilt (h(T) − f )∗G = 0 bzw. h(T) − f ∈ F . Über die Definition von F erhalten wir die Kongruenzkette h(f1 , . . . , fm ) − f ≡ h(T) − f ≡ 0 mod F. Somit ist h(f1 , . . . , fm ) − f ein Element von K[X1 , . . . , Xn ] ∩ F . Ferner ist G̃ := {T1 − f1 , . . . , Tm − fm } eine Gröbner-Basis von F bezüglich einer Monomordnung mit X < T. Bezüglich dieser Ordnung ergibt sich h(f1 , . . . , fm ) − f < g̃ für alle g̃ ∈ G̃. Dies ist aber nur möglich, wenn h(f1 , . . . , fm ) = f gilt. Für gegebene Elemente f1 , . . . , fm ∈ Kn ist es uns also möglich zu entscheiden, ob ein Polynom f ∈ Kn bereits in dem Teilring K[f1 , . . . , fm ] enthalten ist. Satz 24.18 liefert uns hierfür folgenden Algorithmus. Algorithmus 24.19. (Teilringzugehörigkeit) Es seien K ein Körper und f1 , . . . , fm ∈ Kn Elemente aus dem zugehörigen Polynomring in n Unbestimmten. Für f ∈ Kn wollen wir testen, ob f ∈ K[f1 , . . . , fm ] gilt. 1. Man berechne eine reduzierte Gröbner-Basis G von F = (T1 − f1 , . . . , Tm − fm ) K[X, T] bezüglich einer Monomordnung mit T < X. 2. Man berechne den reduzierten Rest von f modulo G. 3. Existiert ein Polynom h(T) ∈ K[T] mit fG∗ = h(T), so ist f ein Element von K[f1 , . . . , fm ] und es gilt f = h(f1 , . . . , fm ). 24.4 Simultane Kongruenzen Zu Beginn dieses Abschnittes wollen wir uns an den Hauptsatz über Simultane Kongruenzen aus Kapitel 7 erinnern. Dieser besagt, dass für einen Ring R und eine endliche Anzahl paarweiser komaximaler Ideale A1 , . . . , Am R R/ m \ i=1 Ai ∼ = m Y R/Ai i=1 gilt. Komaximal bedeutet in diesem Zusammenhang, dass Ai + Ak = R für alle Indizes i 6= k ist. Wir fragen uns nun, ob zu dem Hauptsatz über Simultane Kongruenzen eine Verallgemeinerung für nicht paarweise komaximale Ideale von R existiert. 230 Elementare Idealoperationen Satz 24.20. Es seien R ein Ring, A1 , . . . Am T R Ideale aus R und f1 , . . . , f m Pm m Elemente von R. Weiterhin setzen wir A := Pi=1 (fi + Ai ), f := i=1 fi Ti ∈ m R[T1 , . . . , Tm ] und F := (A1 T1 , . . . , Am Tm , 1 − i=1 Ti ) R[T]. Ferner seien G eine reduzierte Gröbner-Basis von F bezüglich einer Monomordnung “≤” und fG∗ der zugehörige reduzierte Rest von f modulo G. Dann sind folgende drei Aussagen äquivalent: (a) Die Menge A ist nicht leer. (b) fG∗ ist ein Element von R. (c) fG∗ ist ein Element von A. Beweis. Wir führen den Beweis Tm über einen Ringschluss. Es sei zunächst A 6= ∅. Dann existiert ein Element h ∈ i=1 (fi +Ai ) mit h−fi ∈ Ai für alle Indizes i ∈ {1, . . . , m}. Hieraus ergibt sich h−f = m X (h − fi )Ti + h(1 − i=1 m X Ti ) ∈ F. i=1 Somit gilt fG∗ = h ∈ R und der Schritt von (a) nach (b) ist gezeigt. Es gelte nun für den reduzierten Rest fG∗ =: h ∈ R. Dann existieren Polynome vi ∈ R[T], Idealelemente ai ∈ Ai , sowie ein Polynom u ∈ R[T] mit h−f =h− m X i=1 fi Ti = u(1 − m X i=1 Ti ) + m X vi ai Ti . i=1 Spezialisieren wir nun für jeden Index i ∈ {1, . . . , m} die Variable Ti zu 1 und Tj zu 0 für alle jT6= i, so erhalten wir h − fi = vi ai ∈ Ai . Also liegen h und fG∗ in dem Durchschnitt m i=1 (fi + Ai ) = A. Der letzte Schritt von (c) nach (a) ist trivial, womit die Behauptung bewiesen ist. Zusatz 24.21. Sind in Satz 24.20 R = Kn = K[X1 , . . . , Xn ] ein multivariater Polynomring über einem Körper K und G eine Gröbner-Basis bezüglich einer Monomordnung “≤” mit X < T , so ist fG∗ ∈ A minimal bezüglich der auf Kn eingeschränkten Monomordnung “≤|Kn ”. Beweis. Die Behauptung ergibt sich direkt aus der Tatsache, dass fG∗ ein reduzierter Rest bezüglich einer Monomordnung “≤” mit X < T ist. Satz 24.20 und Zusatz 24.21 liefern uns einen Algorithmus zur Lösung des verallgemeinerten Problems für Simultane Kongruenzen. Algorithmus 24.22. (Lösung Simultaner Kongruenzen) Es seien K ein Körper, A1 , . . . , Am Kn Ideale und f1 , . . . , fm Ringelemente aus Kn . Ferner sei das Ideal Ai für jeden Index i ∈ {1, . . . , m} von den Elementen ai1 , . . . , aili ∈ Kn erzeugt. 24.4 Simultane Kongruenzen 231 1. Man bestimme eine Gröbner-Basis G zu dem Ideal F := (a11 T1 , . . . , a1l1 T1 , a21 T2 . . . , amlm Tm , 1 − m X i=1 Ti ) K[X, T1 , . . . , Tm ] bezüglich einer Monomordnung mit X < T. 2. Man bestimme den reduzierten Rest fG∗ von f = Pm i=1 fi Ti . 3. Falls fG∗ =: h ein Element aus dem Ring Kn ist, so gilt für jeden Index i ∈ {1, . . . , m} die Kongruenz h ≡ fi mod Ai . Ferner ist das Polynom h bezüglich der in (1) gewählten Monomordnung minimal mit dieser Eigenschaft. Bemerkung 24.23. Es seien K ein Körper, a := (a1 , . . . , an )tr ∈ K n ein Vektor und Fa := (X1 − a1 , . . . , Xn − an ) Kn ein Ideal aus dem zugehörigen Polynomring in n Unbestimmten. Für ein Element f ∈ Kn gelten dann: (a) G = {X1 − a1 , . . . , Xn − an } ist eine Gröbner-Basis von Fa mit fG∗ = f (a). (b) Der Vektor a ist genau dann eine Nullstelle des Polynoms f , wenn f ein Element des Ideals Fa ist. (c) Für zwei verschiedene Vektoren a 6= b sind die zugehörigen Ideale Fa und Fb zueinander komaximal. Beweis. Die Menge G ist eine Gröbner-Basis von Fa , da die Leitmonome aller Elemente g ∈ G paarweise teilerfremd sind. Für ein Polynom f ∈ Kn existieren demnach Elemente ui ∈ Kn und ein r ∈ K mit f= n X ui (Xi − ai ) + r. i=1 Für den reduzierten Rest von f modulo G gilt dann fG∗ = r = f (a) ∈ K, womit die Aussage (a) bewiesen ist. Da G eine Gröbner-Basis von Fa ist, liegt das Polynom f genau dann in dem Ideal Fa , wenn der zugehörige G-Rest fG∗ = 0 verschwindet. Somit ergibt sich die Aussage (b) direkt aus dem Beweis von Aussage (a). Es bleibt zu zeigen, dass Fa und Fb zueinander komaximal sind. Wenn die Vektoren a und b verschieden sind, so existiert ein Index i ∈ {1, . . . , n} mit ai 6= bi . In diesem Fall liegt das Element (Xi − ai ) − (Xi − bi ) =1 b i − ai in dem Ideal Fa + Fb = Kn . 232 Elementare Idealoperationen Korollar 24.24. (Lagrange Interpolation) Es seien K ein Körper und a1 , . . . , am ∈ K n paarweise verschiedene Vektoren. Zu m Körperelementen r1 , . . . , rm ∈ K existiert dann ein Polynom f ∈ K[X1 , . . . , Xn ] vom Grad höchstens n − 1, sodass f (ai ) = ri für jeden Index i ∈ {1, . . . , m} gilt. Beweis. Nach Bemerkung 24.23 sind die Ideale Fai paarweise komaximal. Also ist Tm der Durchschnitt i=1 (ri + Fai ) nicht leer. Nach Satz 24.20 kann das Interpolationspolynom f ∈ K[X] mit einem Algorithmus für Simultane Kongruenzen berechnet werden. Kapitel 25 Gröbner-Basen und Lineare Algebra in Noetherschen Ringen In diesem Kapitel wollen wir nun Gröbner-Basen und den Buchberger-Algorithmus über allgemeinen Noetherschen Ringen einführen. Dabei sind insbesondere für den Buchberger-Algorithmus einige Voraussetzungen zur Durchführbarkeit von elementaren Rechnungen notwendig. Dies führt auf die Definition von Ringen mit konstruktiver linearer Algebra (siehe Abschnitt 25.2). Zunächst definieren und charakterisieren wir allgemeine Gröbner-Basen in Noetherschen Ringen. 25.1 Allgemeine Gröbner-Basen Definition 25.1. (Allgemeine Gröbner-Basis) Es seien R ein kommutativer Noetherscher Ring, Rn = R[T1 , . . . , Tn ] der zugehörige Polynomring in n Unbestimmten mit einer Monomordnung “≤”, sowie F Rn ein Ideal. Eine Teilmenge G = {g1 , . . . , gr } ⊆ F heißt allgemeine Gröbner-Basis von F , wenn 0 6∈ G gilt und wenn zu jedem f ∈ F Elemente hj ∈ Rn existieren, so dass die Ungleichungen δ(f − r X hj gj ) < δ(f ) sowie δ(hj ) + δ(gj ) ≤ δ(f ) j=1 für alle j ∈ {1, . . . , r} gelten. Für ein e ∈ Nn und eine Teilmenge M ⊆ Rn bezeichne le (M ) im Weiteren den R-Modul, welcher von der Menge {l(f ) ∈ R | f ∈ M, δ(f ) teilt e} erzeugt wird. Bemerkung 25.2. Es seien R ein kommutativer Noetherscher Ring und F ein Ideal in Rn . Ferner sei G = {g1 , . . . , gr } eine Teilmenge von F mit 0 6∈ G. Dann ist G genau dann eine allgemeine Gröbner-Basis von F , wenn für alle Grade e ∈ Nn die R-Moduln le (G) und le (F ) übereinstimmen. 234 Gröbner-Basen und Lineare Algebra in Noetherschen Ringen Beweis. Es ist klar, dass stets le (G) ⊆ le (F ) gilt. Es seien nun G eine allgemeine Gröbner-Basis von F und f ∈ F ein beliebiges Element Pr vom Grad e. Dann gibt es Polynome hj ∈ Rn mit δ(hj ) + δ(gj ) ≤ e und δ(f − i=1 hj gj ) < δ(f ). Für alle j mit P δ(hj ) + δ(gj ) = e setze man bj := l(hj ) ∈ R, und bj := 0 sonst. Hieraus erhalten wir rj=1 bj l(gj ) = l(f ) und damit l(f ) ∈ le (G). Es gelte nun umgekehrt le (G) = le (F )Pund es sei f ∈ F mit l(f ) ∈ le (G). Dann existieren Elemente bj ∈ R mit l(f ) = rj=1 bj l(gj ) und bj = 0 für δ(gj ) > e. Setzt P man hj := bj Te−δ(gj ) , so ergibt sich δ(f − rj=1 hj gj ) < δ(f ). Für eine Teilmenge G = {g1 , . . . , gr } ⊆ F sei M der von G erzeugte Rn -Untermodul von F . Hat man zu einem Element P f ∈ F mit l(f ) ∈ le (G) Polynome hj ∈ Rn mit δ(hj ) + δ(gj ) ≤ δ(f ) und δ(f − rj=1 hj gj ) < δ(f ), so erhält man mittels f (1) := f − r X hj gj ≡ f mod M j=1 ein modulo M zu f kongruentes Polynom von echt kleinerem Grad. Sukzessives Wiederholen dieses Schrittes liefert eine streng monoton fallende Folge von Graden in Nn , welche nach endlich vielen Schritten abbricht und ein f (s) mit l(f (s) ) 6∈ lδ(f (s) ) (G) oder mit f (s) = 0 liefert. In beiden Fällen heißt fG∗ := f (s) ein G-Rest von f . Es ist klar, dass für P eine allgemeine Gröbner-Basis G von F stets fG∗ = 0 gilt bzw. eine Darstellung f = rj=1 hj gj mit δ(hj ) + δ(gj ) ≤ δ(f ) existiert. Mit Hilfe von Bemerkung 25.2 erhalten wir nun folgende Charakterisierungen allgemeiner Gröbner-Basen von Idealen in kommutativen Noetherschen Ringen. Satz 25.3. Es seien R ein kommutativer Noetherscher Ring und F = (f1 , . . . , fm ) ein Ideal in Rn . Ferner sei G = {g1 , . . . , gr } eine Teilmenge von F mit 0 6∈ G. Dann sind gleichbedeutend: (a) G ist eine allgemeine Gröbner-Basis von F . (b) Für alle Grade e ∈ Nn gilt le (G) = le (F ). (c) Jeder G-Rest eines Polynoms f ∈ F hat den Wert 0. (d) G ist ein endliches des Rn -Moduls F und für alle Syzygien Pr Erzeugendensystem ∗ s ∈ S(G) gilt ( j=1 sj gj )G = 0. (e) G ist ein endliches Erzeugendensystem des Rn -Moduls F , und für alle Grade e ≤ kgV{δ(fi ) | iP= 1, . . . , m} sowie für alle homogenen Syzygien s ∈ Se (G) vom Grad e gilt ( rj=1 sj gj )∗G = 0. Beweis. Die Äquivalenz von (a) und (b) haben wir bereits in Bemerkung 25.2 gezeigt. Aus (a) bzw. (b) folgt nach den vorherigen Überlegungen direkt (c). Ferner ist es leicht zu sehen, dass aus (c) die Aussage (d) und aus (d) die Aussage (e) folgen. 25.2 Der allgemeine Buchberger-Algorithmus 235 Es bleibt also die Richtung von (e) nach (a) zu zeigen. Hierzu nehmen wir an, es existiere ein e ∈ Nn mit le (G) ( le (F ). Dann gibt es ein Element f ∈ F mit δ(f ) = e Pr und l(f ) 6∈ le (G). Man wähle nun eine Darstellung f = j=1 hj gj mit hj ∈ Rn , so dass t = max{δ(hj ) + δ(gj ) | j = 1, . . . , r} minimal wird. Nach Voraussetzung ist t > e und somit X h := l(hj )Tt−δ(gj ) j,δ(hj )+δ(gj )=t ein Polynom vom Grad echt kleiner als t. Auf Grund der Voraussetzungen in (5) P kann man h schreiben als h = rj=1 h̃j gj mit δ(h̃j ) + δ(gj ) < t. Daher ist f =f −h+h= r X (hj − l(hj )Tt−δ(gj ) + h̃j )gj j=1 eine Darstellung von f , welche der Minimalität von t widerspricht. Korollar 25.4. Es seien R ein Hauptidealring und F Rn ein Ideal. Dann ist G ⊆ F genau dann eine Gröbner-Basis von F , wenn G eine allgemeine Gröbner-Basis von F ist. Beweis. Dies ergibt sich direkt aus den Charakterisierungssätzen 21.14 und 25.3. 25.2 Der allgemeine Buchberger-Algorithmus Definition 25.5. (Ring mit konstruktiver linearer Algebra) Für den Rest dieses Kapitels sei R ein Ring mit konstruktiver linearer Algebra. Das bedeutet, R erfüllt die folgenden drei Bedingungen: 1. R ist ein kommutativer Noetherscher Ring, in dem die Rechenoperationen “+”,“−” und “·” in endlich vielen Schritten durchführbar sind. Ferner kann für ein a ∈ R entschieden werden, ob a = 0 gilt. 2. Es seien m, n ∈ N natürliche Zahlen und A ∈ Rm×n eine Matrix über R. Dann kann zu jedem b ∈ Rm entschieden werden, ob das lineare Gleichungssystem Ax = b eine Lösung x ∈ Rn hat, und gegebenenfalls kann eine solche Lösung in endlich vielen Schritten berechnet werden. 3. Für eine Matrix A ∈ Rm×n kann ein endliches Erzeugendensystem des RModuls Kern(A) := {x ∈ Rn | Ax = 0} in endlich vielen Schritten berechnet werden. Es seien R ein Ring mit konstruktiver linearer Algebra und G = {g1 , . . . , gr } eine Teilmenge von Rn mit e = kgV{δ(g1 ), . . . , δ(gr )}. Im Weiteren bezeichnen wir für jedes i ≤ e mit Hi den R-Modul n o Xr r Hi = b = (b1 , . . . , br ) ∈ R | bj l(gj ) = 0 und bj = 0 für δ(gj ) - i . j=1 236 Gröbner-Basen und Lineare Algebra in Noetherschen Ringen Da R ein Ring mit konstruktiver linearer Algebra ist, lässt sich für Hi in endlich (i) (i) vielen Schritten einR-Erzeugendensystem {b1 , . . . , bti } berechnen. Dabei ist klar, (i) (i) (i) (i) (i) dass mittels sk := bk,1 Ti−δ(g1 ) , . . . , bk,r Ti−δ(gr ) durch {s1 , . . . , sti } direkt ein Erzeugendensystem der homogenen Syzygien Si (G) gegeben ist. Algorithmus 25.6. (Allgemeiner Buchberger-Algorithmus) Es seien R ein Ring mit konstruktiver linearer Algebra und F = (g1 , . . . , gr ) Rn ein Ideal. Man setze l := 0, G(l) := {g1 , . . . , gr } und e(l) := kgV{δ(gi ) | i = 1, . . . r}. (i) (i) (i) (i) 1. Für alle i ≤ e(l) bestimme man ein R-Erzeugendensystem {b1 , . . . , bti } von Hi . 2. Für alle i ≤ e(l) berechne man ein Erzeugendensystem {s1 , . . . , sti } von Si (G(l) ). Man bestimme ferner für alle k ∈ {1, . . . , ti } den G(l) -Rest !∗ r X (i) (l) g := . sk,j gj j=1 G(l) Im Falle g (l) 6= 0 setze man G(l+1) := G(l) ∪ {g (l) }, l := l + 1 und gehe zu (1). 3. G(l) ist eine allgemeine Gröbner-Basis von F . Wir zeigen im Beweis zu Satz 25.9, dass der obige Algorithmus 25.6 korrekt ist, terminiert und die einzelnen Schritte in endlicher Zeit durchführbar sind. Zu diesem Zweck benötigen wir aber noch zwei Bemerkungen. Bemerkung 25.7. Es gibt keine (unendliche) Folge (ei )i∈N ⊆ Nn mit der Eigenschaft: Für alle Paare (i, j) ∈ N × N mit i < j gilt ei - ej . Eine Teilmenge E ⊂ Nn ist demnach endlich, wenn für alle e, f ∈ E mit e 6= f gilt e - f . Beweis. Für den Fall n = 1 ist die Behauptung leicht einzusehen, da es zu einer natürlichen Zahl e ∈ N nur endlich viele natürliche Zahlen kleiner e gibt. Es sei nun n > 1 die kleinste natürliche Zahl, sodass die Behauptung in Bemerkung 25.7 durch eine Folge (ei )i∈N ⊆ Nn widerlegt werden kann. Diese enthält dann eine Teilfolge (fj )j∈N = (eij )j∈N , bei der -für die Koordinate n etwa- die Folge (fnj )j∈N nicht fällt. Dann wäre aber mit (gj )j∈N := (f1j , . . . , fn−1j )j∈N eine Folge in Nn−1 gefunden, welche die Behauptung aus Bemerkung 25.7 widerlegt, was im Widerspruch zur Definition von n steht. Bemerkung 25.8. (W. Trinks) (l) Es sei R ein Noetherscher Ring. Des Weiteren sei (Ie )e∈Nn ,l∈N eine Doppelfolge von Idealen in R, für die gelte (l) (l) 1. aus e | f folgt Ie ⊆ If , (i) (j) 2. aus i ≤ j folgt Ie ⊆ Ie . 25.2 Der allgemeine Buchberger-Algorithmus Dann ist Ie := S (l) l∈N Ie 237 ebenfalls ein Ideal von R und es gelten folgende Aussagen: (a) Die Menge I := {Ie | e ∈ Nn } ist endlich. (b) Die Menge E := {e ∈ Nn | e minimal mit Ie = I für ein I ∈ I} ist endlich. (m) (c) Es existiert ein m ∈ N mit Ie = Ie für alle e ∈ Nn . Beweis. Aus der Annahme, dass I nicht endlich ist, konstruieren wir eine Folge (ei )i∈N ⊆ Nn , welche Bemerkung 25.7 widerspricht. Es seien zunächst J := ∅ und p := 0. Da R Noethersch ist, existiert ein maximales Element J der Menge I \ J . Setzt man EJ := {e ∈ Nn | e minimal mit Ie = J}, so gilt nach Konstruktion EJ 6= ∅. Aus den Voraussetzungen zu Bemerkung 25.8 ergibt sich nun unmittelbar: aus e | f folgt Ie ⊆ If . Nach Bemerkung 25.7 ist die Menge EJ also endlich. Von der zu konstruierenden Folge (ei )i∈N seien die Folgenglieder ei für i < p bereits definiert. Für ein ei mit i < p gilt dann Iei 6⊆ J, da J ein maximales Element von I \ J ist. Da aus ei | f die Inklusion Iei ⊆ If folgt, gilt ei - f für f ∈ EJ . Für ein f̃ ∈ EJ mit f 6= f̃ folgt f - f̃ nach Definition. Ist nun etwa EJ = {f (1) , . . . , f (s) }, so setze man ep−1+r := f (r) für alle r ∈ {1, . . . , s}. Ferner setze man p := p + 1 sowie J := J ∪ {J}. Man wähle dann ein neues maximales Element J˜ von I \ J und wiederhole die obigen Schritte. Wegen Bemerkung 25.7 muss dieses Verfahren nach endlich vielen Schritten abbrechen. Dies kann nur geschehen, wenn irgendwann I \ J = ∅ gilt und also I endlich ist. Somit haben wir die Behauptung (a) gezeigt. Die Menge E aus Behauptung (b) ist die Vereinigung aller (bis zum Abbruch) auftretenden Mengen EJ aus dem Beweis zu Behauptung (a) und daher selbst endlich. Es bleibt also die Behauptung (c) zu zeigen: Für ein e ∈ Nn bezeichne me das (m ) (m ) Minimum der Menge {l ∈ N | Iel = Ie }. Aus e | f folgt dann Ie e = Ie ⊆ If = If f . Mit den Voraussetzungen von Bemerkung 25.8 erhalten wir somit: aus e | f und Ie = If folgt me ≥ mf . Die Zahl m := max{me | e ∈ E} erfüllt demnach die Behauptung (c). Satz 25.9. Für einen Ring R mit konstruktiver linearer Algebra besitzt jedes Ideal in Rn eine allgemeine Gröbner-Basis, welche in endlich vielen Schritten berechnet werden kann. Beweis. Es ist zu zeigen, dass der Algorithmus 25.6 korrekt ist, terminiert und die einzelnen Schritte in endlicher Zeit durchführbar sind. Da R ein Ring mit konstruktiver linearer Algebra ist, können nach unseren Vorbemerkungen in diesem Abschnitt bzw. mit Hilfe von Bemerkung 25.2 nunmehr die Algorithmusschritte (1) und (2) konstruktiv gemacht werden. Ist in Schritt (2) des Algorithmus g (l) 6= 0, so ist G(l+1) := G(l) ∪ {g (l) } ein Erzeugendensystem von F mit le (G(l) ) ⊂ le (G(l+1) ) und e = δ(g (l) ). Bildet man so fortlaufend Erzeugendensysteme G(0) ⊂ G(1) ⊂ G(2) ⊂ . . ., so bricht diese Folge nach Bemerkung 25.8 nach endlich vielen Schritten mit einer allgemeinen Gröbner-Basis ab. Damit terminiert der Algorithmus nach endlich vielen Schritten. Die Korrektheit des Algorithmus folgt dabei direkt aus Satz 25.3. 238 25.3 Gröbner-Basen und Lineare Algebra in Noetherschen Ringen Ringe mit konstruktiver linearer Algebra Satz 25.10. Wenn R ein Ring mit konstruktiver linearer Algebra ist, so gilt dies auch für R[X]. Beweis. Es sind die Bedingungen aus Definition 25.5 zu überprüfen. Die Bedingung (1) ist dabei für R[X] trivialerweise erfüllt, da sie sich direkt aus der entsprechenden Eigenschaft von R vererbt. Ferner ergibt sich die Bedingung (2) direkt aus Satz 25.9 bzw. aus der Korrektheit und Durchführbarkeit des allgemeinen BuchbergerAlgorithmus. Es bleibt also noch die Bedingung (3) für R[X] zu zeigen. Gesucht ist demnach (in endlich vielen Schritten) ein Erzeugendensystem des R[X]-Moduls V = {f ∈ R[X]n | Af = 0}. Hierbei ist A ∈ R[X]m×n eine Matrix über R[X]. P Für diese schreiben wir A = Pd i m×n . Analog zerlegen wir f = ri=0 fi X i mit fi ∈ Rn . Für ein i=0 Ai X mit Ai ∈ R t ∈ N seien nun Vt := {f ∈ V | degX (f ) ≤ t}, Wt := {f ∈ R[X]n | degX (f ) ≤ d + t, Af = 0 mod X d+t+1 }, X tr tr Mt := {(fttr , . . . , ft+d ) | fi X i ∈ Wt }, i≥0 Nt := {ft | X fi X i ∈ Vt }. i≥0 Dann gilt XWt ⊆ Wt+1 und somit Mt ⊆ Mt+1 . Da R ein Noetherscher Ring ist, wird die Folge (Mt )t∈N nach Bemerkung 25.8 stationär. Es sei nun t0 minimal gewählt mit Mt0 = Mt0 +1 . Ein solches t0 kann in endlich vielen Schritten bestimmt werden, da R ein Ring mit konstruktiver linearer Algebra ist und somit insbesondere Erzeugendensysteme für Mt berechnet werden können. Wenn wir nun annehmen, dass die Folge (Mt )t∈N bereits bei t0 stationär wird, so folgt Nt = Nt0 für alle t ≥ t0 . Denn es ist f ∈ Vt genau dann, wenn f ein Element von Wt ist und einen Grad degX (f ) ≤ t hat. Dann besitzt V eine Gröbner-Basis in Vt0 , und es kann ein Erzeugendensystem für V in endlich vielen Schritten berechnet werden. Damit wäre bewiesen, dass R[X] ein Ring mit konstruktiver linearer Algebra ist. Es bleibt noch zu zeigen, dass Mt = Mt0 für alle t ≥ t0 gilt. Die Menge Wt ist die tr Menge der Lösungen (f0tr , . . . , fd+t ) ∈ Rn(d+t+1) des homogenen linearen Gleichungssystems A0 f0 A1 f0 .. . Ad f0 + .. . + Ad f1 A0 f1 .. . ... + .. . = 0 = 0 + ... .. . Ad ft A0 fd + A0 fd+1 .. .. . . + ... + A0 fd+t = 0 = 0 = 0 = 0 = 0. 25.3 Ringe mit konstruktiver linearer Algebra 239 Ist Wt (bzw. ein Erzeugendensystem von Wt ) bekannt, so kann man Wt+1 rekursiv aus Wt nach der Formel Wt+1 = Ŵ0t I0n · Kern{((0m×n(t+1) , Ad , Ad−1 , . . . , A1 ) · Ŵt , A0 )} berechnet werden, wobei Ŵt eine Matrix ist, deren Spalten Wt erzeugen. Analog bezeichne M̂t eine Matrix, deren Spalten Mt erzeugen. Aus obiger Formel ergibt sich für Mt+1 zunächst Mt+1 = (0n(d+1)×n(t+2) , In(d+1) ) · Wt+1 . Hieraus erhalten wir für Mt+1 die Formel Mt+1 = (0n(d+1)×n , In(d+1) ) · M̂0t I0n · Kern{((Ad , . . . , A1 ) · M̂t , A0 )}, in der nur noch ein Erzeugendensystem von Mt vorkommt. Somit gilt Mt = Mt0 für alle natürlichen Zahlen t ≥ t0 . Nach Satz 25.10 steht nun der Buchberger-Algorithmus auch über multivariaten Polynomringen wie Q[T1 , . . . , Tn ], Fp [T1 , . . . , Tn ] oder Z[T1 , . . . , Tn ] zur Verfügung, die keine Hauptidealringe sind (vergleiche Kapitel 21.2). Abschliessend empfehlen wir folgende Aufgabe zur Übung. Aufgabe 25.11. Es sei R ein Ring mit konstruktiver linearer Algebra. Ferner seien A, B zwei Rn -Untermoduln von Rnr für ein r ∈ N. Des Weiteren seien F Rn ein Ideal und f1 , . . . , fk ∈ Rn beliebige Polynome. Wenn A, B und F durch endliche Erzeugendensysteme gegeben sind, so lassen sich folgende Moduln durch Berechnung eines Erzeugendensystems konstruktiv berechnen: 1. A ∩ B, A : B = {f ∈ Rn | f B ⊆ A} und A : F = {g ∈ Rnr | F g ⊆ A}. 2. A ∩ R[T1 , . . . , Tk ]r und A ∩ R[f1 , . . . , fk ]r für k ≤ n. 3. Rnr ∩ S −1 A für R nullteilerfrei und S := R \ {0}. 240 Gröbner-Basen und Lineare Algebra in Noetherschen Ringen Literaturverzeichnis [1] W. Alford, A. Granville, and C. Pomerance. There are Infinitely Many Carmichael Numbers. Annals of Mathematics, 139:703–722, 1994. [2] E. Bach. Analytic Methods in the Analysis and Design of Number Theoretic Algorithms. MIT Press, 1985. [3] T. Becker and V. Weispfenning. Gröbner Bases - A Computation Approach to Commutative Algebra. Springer, 1998. [4] S. Bosch. Algebra. Springer, 2006. [5] H. Derksen and G. Kemper. Computational Invariant Theory. Springer, 2002. [6] K. Dörge. Einfacher Beweis des Hilbertschen Irreduzibilitätssatzes. Mathematische Annalen, 96:176–182, 1927. [7] G. H. Hardy and E. M. Wright. An Introduction to the Theory of Numbers. Oxford University Press, 1980. [8] S. Lang. Fundamentals of Diophantine Geometry. Springer, 1983. [9] S. Lang. Algebra. Springer, 2002. [10] B. H. Matzat. Elementare Zahlentheorie. IWR-Skriptum, 1992. [11] S. Müller-Stach and J. Piontkowski. Elementare und Algebraische Zahlentheorie. Vieweg, 2007. [12] A. Schönhage. Schnelle Berechnung von Kettenbruchentwicklungen. Acta Informatica, 1:139–144, 1971. [13] A. Schönhage and V. Strassen. Schnelle Multiplikation großer Zahlen. Computing, 7:281–292, 1971. [14] W. Trinks. Über B. Buchbergers Verfahren, Systeme algebraischer Gleichungen zu lösen. J. Number Theory, 10:475–488, 1978. [15] J. von zur Gathen and J. Gerhard. Modern Computer Algebra. Cambridge University Press, 1999. 242 [16] W. Walter. Analysis 1. Springer, 2001. LITERATURVERZEICHNIS