Computeralgebra: Skript zur Vorlesung (Sommersemester 2008 Heidelberg)


237 26 1MB

German Pages [244] Year 2011

Report DMCA / Copyright

DOWNLOAD PDF FILE

Table of contents :
Einleitung 1
Inhaltverzeichnis 3
I Schnelle Algorithmen 7
1 Elementare Grundoperationen 9
1.1 Gewöhnliche Addition und Subtraktion . . . . . . . . . . . . . . . . . 9
1.2 Die gewöhnliche Multiplikation . . . . . . . . . . . . . . . . . . . . . 11
1.3 Division mit Rest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.4 Die Karatsuba-Multiplikation . . . . . . . . . . . . . . . . . . . . . . 15
2 Diskrete Fouriertransformation 19
2.1 Diskrete Fourier-Transformierte . . . . . . . . . . . . . . . . . . . . . 19
2.2 Die inverse diskrete Fouriertransformation . . . . . . . . . . . . . . . 21
2.3 Schnelle Polynommultiplikation . . . . . . . . . . . . . . . . . . . . . 23
2.4 Schnelle Polynomdivision mit Rest . . . . . . . . . . . . . . . . . . . 24
3 Schnelle Multiplikation und Division mit Rest ganzer Zahlen 29
3.1 Modulare diskrete Fouriertransformation . . . . . . . . . . . . . . . . 29
3.2 Schnelle Multiplikation ganzer Zahlen . . . . . . . . . . . . . . . . . . 31
3.3 Schnelle Division mit Rest ganzer Zahlen . . . . . . . . . . . . . . . . 34
3.4 Schnelles Potenzieren natürlicher Zahlen . . . . . . . . . . . . . . . . 35
4 Der Euklidische Algorithmus 37
4.1 Euklidische Ringe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.2 Komplexität des Euklidischen Algorithmus . . . . . . . . . . . . . . . 40
4.3 Der schnelle Euklidische Algorithmus . . . . . . . . . . . . . . . . . . 41
4.4 Rechnen mit rationalen Zahlen und Funktionen . . . . . . . . . . . . 44
5 Resultanten 45
5.1 Sylvestermatrix und Resultante . . . . . . . . . . . . . . . . . . . . . 45
5.2 Produktformel für die Resultante . . . . . . . . . . . . . . . . . . . . 49
5.3 Die Diskriminante eines Polynoms . . . . . . . . . . . . . . . . . . . . 52
5.4 Eliminationsverfahren für nichtlineare
Gleichungssysteme . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
6 Subresultanten 55
6.1 Polynomrestfolgen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
6.2 Subresultanten und Bézoutkoeffizienten . . . . . . . . . . . . . . . . . 58
6.3 Koeffizientenwachstum . . . . . . . . . . . . . . . . . . . . . . . . . . 61
6.4 Der Euklidische Algorithmus in Z[T] . . . . . . . . . . . . . . . . . . 62
7 Die modulare Methode 65
7.1 Der Hauptsatz über simultane Kongruenzen . . . . . . . . . . . . . . 65
7.2 Polynomwertberechnung und Interpolation . . . . . . . . . . . . . . . 68
7.3 Modulares Rechnen mit ganzen Zahlen . . . . . . . . . . . . . . . . . 70
8 Der modulare Euklidische Algorithmus 73
8.1 Geeignete Primzahlen . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
8.2 Koeffizientenschranken für Teilerpolynome . . . . . . . . . . . . . . . 75
8.3 Der modulare ggT-Algorithmus . . . . . . . . . . . . . . . . . . . . . 77
9 Rechnen mit algebraischen Zahlen 81
9.1 Zahlkörper und endliche Körper . . . . . . . . . . . . . . . . . . . . . 81
9.2 Rechnen im Körper aller algebraischen Zahlen . . . . . . . . . . . . . 83
9.3 Wurzeltrennung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
9.4 Sturmsche Ketten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Sätze von Fermat und Euler 115
12.1 Restklassenringe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
12.2 Quadratische Reste . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
12.3 Das Eulersche Kriterium . . . . . . . . . . . . . . . . . . . . . . . . . 119
13 Der Primzahltest von Miller-Rabin 125
13.1 Strenge Pseudoprimzahlen . . . . . . . . . . . . . . . . . . . . . . . . 125
13.2 Der Satz von Rabin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
13.3 Bemerkungen zur Erweiterten Riemannschen Vermutung . . . . . . . 131
14 Der AKS-Primzahltest 135
14.1 Vorbemerkungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
14.2 p-ähnliche Zahlen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
14.3 Der AKS-Algorithmus . . . . . . . . . . . . . . . . . . . . . . . . . . 141
15 Quadratdifferenzenverfahren 145
15.1 Die Quadratdifferenzenmethode von Fermat . . . . . . . . . . . . . . 145
15.2 Exkurs über Kettenbrüche . . . . . . . . . . . . . . . . . . . . . . . . 147
15.3 Das Primzerlegungsverfahren von Lehman . . . . . . . . . . . . . . . 149
15.4 Das Kettenbruch-Faktorisierungsverfahren von Lehmer . . . . . . . . 151
16 Der Algorithmus von Dixon 153
16.1 Faktorenbasen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
16.2 Einige relative Häufigkeiten . . . . . . . . . . . . . . . . . . . . . . . 155
16.3 Der Satz von Dixon . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
17 Das Quadratische Sieb 161
17.1 Das einfache Quadratische Sieb . . . . . . . . . . . . . . . . . . . . . 161
17.2 Laufzeitabschätzung für das Quadratische Sieb . . . . . . . . . . . . . 162
17.3 Das verteilte Quadratische Sieb . . . . . . . . . . . . . . . . . . . . . 164
17.4 Schnelles Lösen quadratischer Gleichungen . . . . . . . . . . . . . . . 165
18 Primpolynomzerlegung über endlichen Körpern 169
18.1 Teilfaktorisierungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
18.2 Der Berlekamp-Algorithmus . . . . . . . . . . . . . . . . . . . . . . . 173
18.3 Eine Variante für große q . . . . . . . . . . . . . . . . . . . . . . . . . 176
18.4 Nullstellenberechung über endlichen Körpern . . . . . . . . . . . . . . 178
19 Die Hensel’sche Methode 181
19.1 Das Hensel’sche Lemma . . . . . . . . . . . . . . . . . . . . . . . . . 181
19.2 Primzerlegung in Z p [T] . . . . . . . . . . . . . . . . . . . . . . . . . . 184
19.3 Primzerlegung in Z[T] . . . . . . . . . . . . . . . . . . . . . . . . . . 185
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
III Algebraische Gleichungssysteme 197
21 Gröbner-Basen 199
21.1 Monomordnungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
21.2 Charakterisierung von Gröbner-Basen . . . . . . . . . . . . . . . . . . 201
21.3 Existenz von Gröbner-Basen . . . . . . . . . . . . . . . . . . . . . . . 204
21.4 Reduzierte Gröbner-Basen . . . . . . . . . . . . . . . . . . . . . . . . 205
22 Der Buchberger-Algorithmus 209
22.1 Differenzenpolynome . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
22.2 Konstruktion einer Gröbner-Basis . . . . . . . . . . . . . . . . . . . . 211
22.3 Syzygien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
22.4 Der erweiterte Buchberger-Algorithmus . . . . . . . . . . . . . . . . . 217
23 Eliminationstheorie 219
23.1 Eliminationsideale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
23.2 Der Ergänzungssatz . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
23.3 Ideale der Dimension Null . . . . . . . . . . . . . . . . . . . . . . . . 222
24 Elementare Idealoperationen 225
24.1 Durchschnitt von Idealen . . . . . . . . . . . . . . . . . . . . . . . . . 225
24.2 Quotient von Idealen und Radikalzugehörigkeit . . . . . . . . . . . . 226
24.3 Teilringzugehörigkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
24.4 Simultane Kongruenzen . . . . . . . . . . . . . . . . . . . . . . . . . . 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
Recommend Papers

Computeralgebra: Skript zur Vorlesung (Sommersemester 2008 Heidelberg)

  • Commentary
  • Downloaded from https://docplayer.org/35264372-Computeralgebra-skript-zur-vorlesung-von-prof-dr-b-h-matzat-sommersemester-2008-heidelberg-ausarbeitung-felipe-garcia-lopez-und-florian-mirus.html#download_tab_content
  • 0 0 0
  • Like this paper and download? You can publish your own PDF file online for free in a few minutes! Sign Up
File loading please wait...
Citation preview

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
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 ˜bn−1 := kbn−1 , so erhalten wir die folgende Ungleichungskette B > ˜bn−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−→ (ˆ u0 , ... , uˆn−1 )

mit uˆ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−→ (ˆ u0 , ... , uˆn−1 )

n−1 X

mit uˆ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 (ˆ u0 , ... , uˆ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 gˆ := DFTw (g), ˆ i = fˆi · gˆi für alle 0 ≤ i ≤ n − 1, 2. berechne h ˆ 3. Mit h = (h0 , ... , hn−1 ) := n1 DFTw−1 (h) 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

(ˆ u0 , ..., uˆn−1 ) 7−→ (

uˆ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ˆ = (ˆ x0 , . . . , 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 v˜i := 2di vi mit di := bld( vi−1 )c − 1, v˜i+1 := 2di −1 vi , ..., v˜i+di = vi . Damit wird vi die Sequenz der v˜i regulär und wir erhalten ui = vi−1 = q˜i · 2di · vi + r˜i = q˜i v˜i + r˜i = q˜i+1 · 2di −1 · vi + r˜i+1 = q˜i+1 v˜i+1 + r˜i+1 = ... = qi vi + r˜i+di = qi v˜i+di + r˜i+di und Matrizen ˜i = Q



0 1 1 0

 +2

di



0 0 0 −˜ qi



˜ 00i . ˜ 0i + Q =Q

˜ i+d · Q ˜ 0 · ... · Q ˜ 0 · Pi−1 . Wird die Multiplikation Daraus ergibt sich dann Pi+di = Q i i i+di von Pi∗ ·Pi erst nach Erreichen einer Sprungstelle v˜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 v˜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 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 ˜ (r) := {(x1 , . . . , xr ) ∈ M r | xi paarweise verschieden }. Mit δ = wir die Menge M 2 (r−1) gilt dann die strikte Ungleichung 2m ˜ (r) #M < e−δ . r #M Beweis. Für den Beweis verwenden wir die Abschätzung (1 + x) ≤ ex . Wenn wir ein ˜ (r) betrachten, dann gibt es für den Wert des beliebiges Tupel (x1 , x2 , . . . , xr ) aus M 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 ˜ (r) m(m − 1) . . . (m − (r − 1)) #M = 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 , u˜i ∈ N, sodass für den größten gemeinsamen Teiler von (n − 1) und ϕ(qi ) gilt: ggT((n − 1), ϕ(qi )) = 2t˜i · u˜i . Dabei gelten t˜i = min{t, ti } und u˜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

u˜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

u˜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 u˜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 u ˜ #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 u˜1 echt kleiner als u1 oder u˜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 u˜1 = u1 sowie u˜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 g = #Gp . In M Elementanzahl von M 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

˜ p der Grad von g(X) ist, können wir die Elementanzahl Nullstellen. Nachdem m ∈ M √ 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


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

˜ 8l Somit lässt sich die Wahrscheinlichkeit W nach oben durch e− m˜ 2 m· = 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 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 ˜ k ps−r+k , soPolynome gk , hk ∈ Zp [T ] mit gk+1 = gk + g˜k ps−r+k und hk+1 = hk + h s+k+1 ˜ k ebenfalls dass die Kongruenz f ≡ gk+1 hk+1 mod p gilt. Hierbei sind g˜k und h Polynome über dem Ring der ganzen p-adischen Zahlen, für deren Grade die Un˜ k ) < deg(h0 ) erfüllt sind. Dann existieren gleichungen deg(˜ gk ) < deg(g0 ) und deg(h 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 ˜ k mit pr lk = h ˜ k gk + g˜k hk existieren, deren Grade wir zeigen, dass Polynome g˜k und h ˜ die Ungleichungen deg(hk ) < deg(hk ) und deg(˜ gk ) < 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

˜k = a ˜i T , h i

n−1 X j=0

˜bj T j und lk =

m+n−1 X i=0

ci T i .

19.1 Das Hensel’sche Lemma

183

˜ k lässt sich dann in ein lineares Die Frage nach der Existenz der Polynome g˜k und h ˜ Gleichungssystem für die Koeffizienten bj und a ˜i umformulieren: Hierbei gilt pr cd = P ˜ ˜i bj ) für alle Indizes d aus der Indexmenge {0, . . . , m + n − 1}. Die i+j=d (bj ai + a 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 ˜bj und a ˜i ist demnach eindeutig lösbar. Mit Hilfe der Cramer’schen Regel erhalten wir (j) ˜bj = det(A ) . 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 bj = pr e ∈ Zp . ˜ k = Pn−1 ˜bj T j liegt damit in dem Ring Zp [T ]. EntDas so konstruierte Polynom h j=0 sprechendes gilt für das zweite Polynom g˜k . Für den Induktionsschritt definieren wir ˜ k . Dann gilt nun gk+1 := gk + ps−r+k g˜k und hk+1 := hk + ps−r+k h ˜ k )) 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 ≡ 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 entspre˜ ˜ ∈ Zp [T ] mit h = f2 · h ˜ und h ˜ ≡ g3 · · · gs mod pordp (h)+1 chende Weise Polynome f2 , h . 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 = ˜ 0 g0 + g˜0 h0 mit deg(h ˜ 0 ) ≤ 2 und −2(T 3 + T 2 + T ) = 2l0 bzw. l0 = −(T 3 + T 2 + T ) = h ˜ deg(˜ g0 ) ≤ 1. Hieraus ergeben sich h0 = −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 ˜bl+1,l+1 0 .. . .. . .. . 0

··· 0 .. .. . . ··· 0 ˜ · · · bl+1,n .. .. . . .. ˜ . bl+n,n .. . 0 .. .. . . ··· 0

0 .. . 0 ˜bl+1,m .. . .. .

··· .. . ··· ··· ··· ···

0 .. . 0 ˜bl+1,n+m−l .. . .. . .. . .. .

˜bl+n+1,m · · · .. .. . . 0 · · · ˜bn+m−l,n+m−l

         .        

Die Menge M := {T 0 , T 1 , . . . , T l−1 , ˜bl (T ), . . . , ˜bl+n+m−1 (T )} beinhalte die zu den neuen Basisvektoren korrespondierenden Polynome. Dabei gilt für alle Indizes j ∈ {l, . . . , l + m + n − 1}: ˜bj (T ) ≡ 0 mod T l und deg(˜bj (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

u˜g + v˜z ≡

z d

mod pe

Pe−1

i i=0 (pw3 )

=

(19.14)

für geeignete u˜, v˜ ∈ 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 ˜bl (T ), . . . , ˜bl+k−1 (T ) ∈ M die selben Voraussetzungen wie unser oben gewähltes Element z ∈ Λb . Wir erhalten also ˜bl (T ), . . . , ˜bl+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 u˜, v˜ ∈ Qp [T ] mit 1 = u˜g + v˜h. Wenn wir nun annehmen, dass die Koeffizienten der so gewonnenen Elemente u˜ und v˜ nicht in Zp liegen, so existiert eine minimale natürliche Zahl k ≥ 1, für welche die Polynome pk u˜ bzw. pk v˜ Elemente von Zp [T ] sind. Dann gilt über Zp [T ] die Gleichung (pk u˜)g + (pk v˜)h = pk im Widerspruch zu ggT(g, h) = 1. Somit liegen die Elemente u˜ und v˜ in dem Polynomring Zp [T ], und es gilt (˜ uf )g + (˜ v f )h = f.

(20.5)

Im nächsten Schritt führen wir mit u˜f eine Division mit Rest durch das Polynom h aus und erhalten u˜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 := 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 u˜, v˜ ∈ Qp (T1 , . . . , Tn )[T0 ] mit 1 = u˜g + v˜h und degT0 (˜ u) < degT0 (h). Die Elemente u˜ und v˜ besitzen einen Hauptnenner d ∈ Qp [T1 , . . . , Tn ], sodass u := u˜ · d und v := 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
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 ˜ eine weitere Menge die Eindeutigkeit von B zeigen und bezeichnen daher mit B minimaler Monome bezüglich der Teilbarkeitsordnung |. Dann finden wir zu jedem ˜ mit m|m, ˜ nur minimale Elemente enthält. Monom m ∈ B ein Monom m ˜ ∈B ˜ da B 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 ˜ sei eine weitere von G verschiedene reduzierte GröbnerG zeigen und nehmen an, G ˜ Da G ˜ eine reduzierte Basis. Es sei g ein Polynom aus der Differenzmenge G\G. ˜ Gröbner-Basis ist, existiert ein Polynom g˜ ∈ G mit L(˜ g )| L(g). Mit demselben Argument finden wir auch ein Polynom gˆ ∈ G mit L(ˆ g )| L(˜ g ) und erhalten damit L(g) = L(ˆ g ) = 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¯ ∈ G mit L(¯ g )| L(h). Außerdem existiert ein Körperelement c ∈ K mit L(h) < g. g−c L(¯ g) 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 ˜ ∈ G mit L(h) ˜ | L(h). Damit ist diese Richtung der Behauptung ein Element h 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 ˜sl := 1 k m k (c PkmT , . . . , ck T ) eine homogene Syzygie vom Grad l, und nach Konstruktion gilt sl = s. l=0 ˜ 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 uˆi si , wobei uˆi si entweder homogen vom Grad t ist oder uˆ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

uˆ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 Indizes i, j, k, so dass sik und sjk Elemente aus B ˜ sind und der Leitterm L(gk ) B ˜ das kleinste gemeinsame Vielfache kgV{L(gi ), L(gj )} teilt, dann ist B\{s ij } 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

˜ j gj h

j=1

˜ j ∈ Kn . Um nun g gemäß des Buchberger-Algorithmus der Menge G mit h ˜ j für alle Indizes hinzuzufügen, setzte man r := r + 1, gr := g, sowie frj := h 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 = u˜a ist mit u˜ ∈ 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 ˜ Dies ist aber nur möglich, wenn h(f1 , . . . , fm ) = f gilt. g˜ ∈ G. 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 P ˜als t. Auf ˜Grund der Voraussetzungen in (5) kann man h schreiben als h = rj=1 h j gj mit δ(hj ) + δ(gj ) < t. Daher ist f =f −h+h=

r X

˜ j )gj (hj − l(hj )Tt−δ(gj ) + h

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   ˆ t , A0 )} Wt+1 = Wˆ0t I0n · Kern{((0m×n(t+1) , Ad , Ad−1 , . . . , A1 ) · W ˆ t eine Matrix ist, deren Spalten Wt erzeugen. Analog berechnet werden, wobei W ˆ t eine Matrix, deren Spalten Mt erzeugen. Aus obiger Formel ergibt bezeichne M 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   ˆ t , A0 )}, Mt+1 = (0n(d+1)×n , In(d+1) ) · Mˆ0t I0n · Kern{((Ad , . . . , A1 ) · M 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