Computeralgebra - IWR Heidelberg

Werbung
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
Herunterladen