Algorithmen der Computeralgebra - Goethe

Transcription

Algorithmen der Computeralgebra - Goethe
Algorithmen der Computeralgebra
M.Sieveking1
FB Mathematik
J.W.Goethe-Universität
Frankfurt a. M.
ss 2003
1 e-mail:
[email protected]
1
Inhalt
1
Literatur
2
Vorwort
3
Euklids Algorithmus
3.1 Euklids Algorithmus . . . . . . . . . . . . . . . . . . . . . . .
3.2 Teilbarkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3 Die axiomatische Methode . . . . . . . . . . . . . . . . . . . .
4 Ein
4.1
4.1
4.2
probabilistischer Primzahltest
Das Interesse an Primzahlen . . . . . . . . . . . . . . . . . . .
Der Fermat-Test . . . . . . . . . . . . . . . . . . . . . . . . .
“Primes is in P” . . . . . . . . . . . . . . . . . . . . . . . . .
5 Gröbner- Basen
5.1 Buchbergers Algorithmus . . . .
5.2 Automatisches Beweisen . . . .
5.3 Lösen von Polynomgleichungen
5.4 Implizitation . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
8 Konvolution
8.1 Zusammenfassung . . . . . . . . . . . . . .
8.2 Karatsubas Methode . . . . . . . . . . . .
8.3 Die schnelle Fourier- Transformation . . .
8.4 Die Methode von Schönhage und Strassen
8.5 Die stetige Fourier- Transformation . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6 Symbolische Integration
7 Kurze Vektoren in Gittern
7.1 Zusammenfassung . . . . .
7.2 Minkowskis Gittersatz . .
7.3 LLL- Reduktion . . . . . .
7.4 Anwendungen . . . . . . .
9
.
.
.
.
.
.
.
.
.
.
.
.
Lineare Algebra
9.1 Strassens Matrixmultiplikation . . . . . . . . . . . . . . . . . .
9.2 Wiedemanns Algorithmus . . . . . . . . . . . . . . . . . . . .
9.3 Padé- Approximation . . . . . . . . . . . . . . . . . . . . . . .
1
10 Der Euklidische Algorithmus. Fortsetzung
10.1 Zusammenfassung . . . . . . . . . . . . . . .
10.2 Schnelle Ggt- Berechnung . . . . . . . . . .
10.3 Subresultanten . . . . . . . . . . . . . . . .
10.4 Mignotte- Schranke . . . . . . . . . . . . .
10.5 Übergang zum Quotientenkörper . . . . . .
10.5 Modulare Ggt-Berechnung . . . . . . . . . .
2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2
Literatur
A.V. Aho, J.E. Hopcroft, J.O. Ullmann(1975): The design and Analysis of
Computer Algorithms, Addison Wesley
A. Borodin,I. Munro (1975) The computationel Complexity of Algebraic and
Numeric Problems, Elsevier
M. Bronstein(1997) Symbolische Integration I (Transzendaental Functions),
Springer.
L. Blum, F. Cucker, M. Shub, S. Smale (1998) Complexity And Real Computation, Springer;
B. Buchberger,Ed. Journal of Symbolic Computation, Academic Press
P. Bürgisser, M.Clausen, M.A. Shokrollahi(1997): Algebraic Complexity
Theory, Springer.
A.M. Cohen,Ed. (1993) Computer Algebra in Industry. Problem Solving in
Practice, Wiley.
D. Cox, J. Little, D. O’Shea(1997): Ideals, Varieties and Algorithms, sec ed.,
Springer.
D.Cox, J.Little, D. O’Shea (1998): Using Algebraic Geometry, Springer
J.v.z. Gathen, J. Gerhard(1999): Modern Computer Algebra, Cambridge
Univ. Press.
H.F.de Groote (1987) Lectures on the Complexity of Bilinear Problems, Lecture Notes in Computer Science 245, Springer
M. Grötschel, L. Lovász, A. Schrijver(1988) : Geometric Algorithms and
Combinatorial Optimization, Springer.
W. Hackbusch (1998) From Classical Numerical Mathematics To Scientific
Computing; Proc. of the International Congress of Mathematicians Berlin
1998, VOL. I: Plenary Lectures, Documenta Mathematica
P. Lorenzen (1984) Elementargeometrie, B.I. Wissenschaftsverlag
R. Motwani, P. Raghavan(1995): Randomized Algorithms, Cambridge Univ.
Press.
A. Prestel, C.N. Delzell(2001) Positive Polynomials, Springer.
W. Scharlau, H. Opolka(1980) Von Fermat bis Minkowski, Springer.
A. Schrijver(1998): Theory of linear and integer Programming, Wiley.
E. Specker, V. Strassen(1976) Komplexität von Entscheidungsproblemen,
Lecture Notes in Computer Science 43, Springer.
E. Tournier,Ed. (1989) Computer Algebra and Differential Equations, Academic Press.
B.L. van der Waerden(1983) Geometry and Algebra in Ancient Civilizations,
Springer.
F. Winkler(1996)Polynomial Algorithms in Computer Algebra, Springer.
3
3
Vorwort
1. Die Vorlesung richtet sich an Studenten, die sich gleichermaßen für
Algebra, wie für Algorithmen interessieren und setzt Vorkenntnisse in
linearer Algebra und diskreter Mathematik vorraus, die es erlauben
z.B. den Sinn von Cramers Regel zu verstehen, oder einfache Manipulationen in endlichen Körpern vorzunehmen.
2. Der Stoff ist zum größten Teil eine Auswahl aus v.z. Gathen, Gerhard (1999), um deneuklidischen Algorithmus zentriert, aber im übrigen einigermaßen willkürlich. Es fehlen einige “ kleine”Algorithmen,
wie Newton Iteration, oder der schnelle chinesische Restalgorithmus,
aber auch die wichtigen großen: zur linearen Programmierung, linearen
ganzzahligen Programmierung, nichtlinearen Optimierung, Zerlegung
in Primfaktoren.
3. Die Algorithmen sind ausgewählt auch unter dem Gesichtspunkt asymptotisch geringer benötigter Anzahl arithmetischer Operationen. Z.B.
benötigt Strassens Matrixmultiplikation zur Multiplikation zweier n×n
Matrizen O(nlog7 ) arithmetische Operationen,- im Vergleich zu O(n3 )
beim “Zeile mal Spalte” Algorithmus. Der Leser wird jedoch weder die
Definition eines Algorithmus noch die Diskussion verschiedener Komplexittsmaße - parallel, sequentiell, . . . - finden, und somit auch keine
Komplexitätstheorie und keine unteren Schranken. Diese Dinge sind
zwar interessant und auch für die Entwicklung neuer Algorithmen wichtig, aber für das Veständnis der Algorithmen sind sie nicht nötig. So
kann der Leser die Funktionsweise des LLL- Algorithmus zur Gitterbasisreduktion verstehen, sobald er weiß, was euklidische Norm und
Orthogonalität im Rn bedeuten; und doch handelt es sich bei diesem
Algorithmus um einen der bedeutendsten mathematischen Fortschritte
der letzten 30 Jahre. Algorithmen können, wenn man sie an den Anfang
stellt, einen einfachen Zugang zu einem Gebiet verschaffen, und Lernenden entgegenkommen, die nicht primär durch Strukturfragen motiviert
sind. Nicht ohne Grund gehört Cox, Little, O’Shea(1997) zu den besonders abgegriffenen Büchern unserer Bibliothek: dieses Buch bietet einen
algorithmischen (Buchberger - Algorithmus) Zugang zur algebraischen
Geometrie- einem Gebiet, das wegen seiner begrifflichen Schwierigkeit
gefürchtet ist.
4. Sind die hier beschriebenen Algorithmen nützlich? Das soll heißen: sind
sie “implementiert”, oder werden sie in absehbarer Zeit so implementiert werden, dass man mit ihnen Satellitenumlaufbahnen, Marktgleich4
gewichte, und andere wichtige Dinge aus Naturwissenschaft und Technik effktiv wird berechnen können? Die Antwort - mit Belegen- von
v.z. Gathen Gerhard (1999) ist ein entschiedenes Ja. (Die Antwort mußs
natürlich für einen Algorithmus wie den von Buchberger, anders ausfallen, als etwa für die Matrixmultiplikation von Strassen, denn der erstere
löst eine Aufgabe, bei der jeder Algorithmus nachweisbar abstürzt, und
das schon bei moderaten Eingaben.)
Es gibt aber auch eine Kritik - von Seiten der numerischen Mathematikder zu Folge die schnellen Algorithmen der computer science (zu der
rechne ich die angegebene Literatur) für gewisse Zwecke des scientific
computing untauglich seien. Ich sehe zwei Grnde für diese Divergenz,
kenne aber keine gründliche Diskussion dieses Themas :
Erstens stellt sich scientific computing spezielle Augaben, wie die
Lösung von größen Gleichungssystemen, die von Randwertaufgaben elliptischer Differentialoperatoren herkommen (siehe Hackbusch(1998),
während ein Algorithmus der Computeralgebra zunächst den Zweck
hat, alle linearen Gleichungssysteme zu lösen bez. ihre Unlösbarkeit
festzustellen.
Zweitens ist scientific computing gewöhnt mit reellen Zahlen in Gleitkommadarstellung zu rechnen; entsprechend nimmt man einen Fehler in Kauf, möchte dafür aber (bei den speziellen, dünn besetzten Systemen) mit linearen Kosten (O(n)) auskommen. Computerscience hingegen ist gewohnt exakt zu rechnen, sei es mit ganzen (oder rationalen)
Zahlen, sei es in einem endlichen Körper.
L.Blum et al. (1998) bauen eine theoretische Brücke zwischen Numerik
= scientific computing und computer science indem sie das Modell einer
Turing- Maschine zu eine Maschine verallgemeinern, die (per Axiom)
exakt mit reellen Zahlen rechnen kann, und anschließend eine Theorie
des Genauigkeitsverlustes (Kondition) entwickeln.
5. Ich erinnere einen Gymnasiallehrer mit folgendem Spruch: “Differenzieren ist eine Technik, Integrieren ist eine Kunst”. Vielleicht war er der
Meinung, es gebe keinen Algorithmus, der zu einer gegebenen Funktion (aus einer gewissen Klasse von Funktionen) eine Stammfunktion
findet, und es zeuge eben darum von Kunstfertigkeit, wenn der Schüler
gleichwohl eine solche findet. (Nebenbei ist es herrlich einfach, eine
lösbare, korrekturfreundliche Aufgabe zu finden: man nehme irgendeine Funktion und übergebe dem Schüler die Ableitung.) Demnach würde
das Auffinden einer Stammfunktion aufhören eine Kunst zu sein, und
sehr an didaktischem Wert verlieren, stünde dem Schüler zu diesem
Zwecke ein Algorithmus, womoglich ein Befehl der Computeralgebra
5
zur Verfügung. Er könnte dann nämlich nach Schema F verfahren, dass
heißt gedankenlos, statt: ??? Wahrscheinlich mit Hilfe von erinnerten
Stammfunktionen, partieller Integration und Substitution und fleißigem Probieren, aber ansonsten ohne Verständnis der Sache vorzugehen.
Denn wie soll man verstehen, warum und wieso man zu einer Lösung
gelangt, wenn man nicht nach einem Algorithmus vorgeht? Man kann
also der Meinung sein, dass erst ein Algorithmus ein Verständnis für
die lösung einer Aufgabe ermöglicht. Zudem muss es dabei mit der
Kunst noch kein Ende haben; es kann Kunstfertigkeit erfordern mit
dem Ergebnis auf dem Bildschirm etwas vernünftiges anzufangen. Probiere :int(f (x), x); f (x) = x/sin(x), . . . .
6
4
Der Euklidische Algorithmus
“ Vereinfache einen Bruch m/n :
Wenn m und n halbiert werden können, werden sie halbiert. Wenn nicht, lege
sie auf das Zählbrett. Dann vermindere sie durch wechselseitiges Abziehen,
bis Du gleiche erhältst. Dividiere schließlich durch diese gleichen Zahlen.”
Beispiel; 49/91 :
49
91
49
42
7
42
7
35
7
28
7
21
7
14
7
7
So zu lesen in der chinesischen Sammlung” neun Kapitel über die mathematische Kunst” (Chin Chang Suan Shu), 206 B.C - 221 A.D, nach einer älteren
Sammlung, die 221 - 206 B.C, verbrannte.
Aus B.L. van der Waerden “ Geometry and Algebra in Ancient Civilizations”, Springer 1983.( Van der Waerden propagiert in diesem Buch die These,
dass grundlegende Entdeckungen nur einmal gemacht werden, und nicht etwa unabhängig voneinander an verschiedenen Stellen.)
Euklid lebte um 300 B.C. und schrieb in Alexandria, der multikulturellen
Metropole der hellenistischen Zeit. Satz 2 im Buch 7 seiner Elemente fragt
nach dem ggt zweier nicht teilerfremder Zahlen:
“ Seien AB, CD die beiden gegebenen, nicht teilerfremden Zahlen[ . . . ].
Wenn CD nicht AB mißt, dann wird, wenn die kleinere stets von der größeren abgezogen wird eine Zahl übrig bleiben, die die vorangegangene mißt.”
In der “ modernen” Auffasung werden die wiederholten Subtraktionen
zur “Division mit Rest“ zusammengefaßt.a(rem)b bedeutet den Rest von A
bei Division durch b. Dabei nimmt man allerdings zusätzlich zur Addition die
Struktur einer Multiplikation als gegeben an. Siehe unten die axiomatische
Einführung der Begriffe.
Algorithmus 4.1 ( Euklidischer Algorithmus))
Input: f, g ∈ R, euklidischer Ring mit Restfunktion rem
Output: h = ggt(f, g) , größter gemeinsamer Teiler von f und g;
1. r0 ← f, r1 ← g
2. i ← 1; while ri 6= 0 do ri+1 ← ri−1 (rem)ri , i ← i + 1
3. gib ri−1 aus
Noch nützlicher ist der erweiterte Euklidische Algorithmus,EEA, weil
er den ggt(f, g) als Linearkombination von f und g liefert: ggt(f, g) = af +bg.
In der folgenden Version wird der i-te Rest ri sowie die sogenannten Bézout7
Koeffizienten normalisiert, d.h. durch den “ führenden Koeffizienten” lc(ri )
dividiert. Im Falle von ganzen Zahlen nimmt man lc(f ) = signum(f ), im
Falle von Polynomen in einer Variablen f = f0 + . . . + fn xn , fn 6= 0 nimmt
man lc(f ) = fn .
Algorithmus 4.2 (EEA)
Input : f, g ∈ R , euklidischer Ring mit Normalform nrmal;
Output: l ∈ N, ρi , ri , si , ti ∈ R, 0 ≤ i ≤ l wie unten berechnet.
1. ρ0 ← lc(f ), r0 ← normal(f ), s0 ← r0−1 , t0 ← ;
ρ1 ← lc(g), r1 ← normal(g), s1 ← 0, t1 ← ρ−1
1
2. i ← 1
While ri 6= 0do
qi ← ri−1 (quo)ri
ρi+1 ← lc(ri−1 (rem)ri )
ri+1 ← normal(ri−1 (rem)ri )
si−1 ← (si − qi si )/ρi+1
ti+1 ← (ti−1 − qi ti )/ρi+1
i←i+1
3. l ← i − 1 Ausgabe: l, ρi , ri , si, ti , für 0 ≤ i ≤ l + 1, und qi für 1 ≤ i ≤ l.
Man kann den EEA möglicherweise besser auffassen, wenn man ihn als Gleichungssystem schreibt:
ρ0 r0 = g
ρ1 r1 = f
ρ2 r2 = r0 − q1 r1
..
.
ρi+1 ri+1 = ri−1 − qi ri
..
.
0 = rl−1 − ql rl
ρ0 s0 = 1
s1 = 0
ρ2 s2 = s0 − q1 s1
..
.
ρi+1 si+1 = si−1 − qi si
..
.
ρl+1 sl+1 = sl−1 − ql sl
t0 = 0
ρ1 t1 = 1
ρ2 t2 = t0 − q1 t1
..
.
ρi+1 ti+1 = ti−1 − qi ti q
..
.
ρl+1 tl+1 = tl−1 − ql tl
Hierbei ist ρi+1 = lc(ri−1 remri ), und ri+1 = normal(ri−1 remri ). Die Analyse
der Kosten des erweiterten Euklidischen Algorithmus (EEA) sei auf einen
späteren Abschnitt verschoben. Hier geht es zunächst um eine theoretische
Folgerung: die eindeutige Zerlegbarkeit in Primfaktoren:
8
4.1
Teilbarkeit
Definition 4.1 Sei R eine Menge mit zwei binären Operationen, ·, + :
R × R → R mit folgenden Eigeschaften
1. Mit + ist R eine kommutative Gruppe mit Einheit 0.
2. · ist assoziativ
3. R hat für · eine Einheit 1.
4. a(b + c) = (ab) + (ac), (b + c)a = (ba) + (ca) für a, b, c ∈ R.
(R, ·, +) heißt dann Ring. Der Ring heißt kommutativ, wenn noch ab = ba
für alle a, b ∈ R. In dieser Vorlesung sind alle Ringe kommutativ, wenn
nichts anderes gesagt. Eine Teilmenge I eines Ringes heißt Ideal, wenn
1. a + b ∈ R für a, b ∈ R.
2. r · a ∈ R füra ∈ I, r ∈ R.
Die Mengen a+I heißen Restklassen modulo I und bilden den Restklassenring modulo I : R/I vermöge
(a + I) + (b + I) = a + b + I; (a + I)(b + I) = ab + I
Man sagt, das Ideal
I =< a1 r1 , . . . , as >= {a1 + . . . as rs |ri ∈ R}
sei von den a1 , . . . as erzeugt, und nennt {a1 , . . . as } eine Basis von I. Ideale der Form < a > heißen Hauptideale. Wenn alle Ideale Hauptideale sind,
heißt der Ring Hauptidealring. r ∈ R heißt Einheit, wenn es ein s ∈ R
gibt, so daß rs = 1. Die Einheiten eines Ringes R bilden eine multiplikative
Gruppe, die mit R∗ bezeichnet wird. Man sagt, a, b ∈ R seien assoziiert,
wenn a ∈ R∗ . Assoziiertheit ist eine Äquivalenzrelation. Wenn R∗ = R \ {0},
heißt R Körper. a ∈ R heißt Nullteiler, wenn es b ∈ R \ {0} gibt mit
ab = 0. R heißt Integritätsbereich, wenn R außer 0 keine Nullteiler besitzt. In einem Integritätsbereich kann man kürzen: aus ab = ac a 6= 0 folgt
b = c. Ist R ein Integritätsbereich, so kann man den zugehörigen Quotientenkörper k = { ab |a, b ∈ R, b 6= 0} bilden. Im Falle eines Polynomringes k[x] über einem Körper k schreibt man für den Quotientenkörper k(x)
und nennt die Elemente rationale Funktionen- in der Variablen x. Wenn
ax = b gilt, sagt man: a teilt b und schreibt a|b. a heißt Teiler von b.
a ∈ R \ ({0} ∪ R∗ ) heißt irreduzibel, wenn jeder Teiler von a in R∗ ∪ aR∗
9
liegt. a ∈ R \ ({0} ∪ R∗ ) heißt prim, wenn a|bc nur gilt, falls a|b, oder a|c.
Ein Ideal I heist prim, wenn ab ∈ I nur gilt, wenn a ∈ I oder b ∈ I.
Ein Ideal heißt maximal, wenn für jedes Ideal J in R mit I ⊂ J entweder
I = J oder J = R. Ein Integritätsbereich R heißt faktoriell, wenn sich
jedes Element a ∈ R \ {0} ∪ R∗ als Produkt von irreduziblen schreiben läßt:
a = p1 . . . ps , und die pi dabei bis auf Reihenfolge und Assoziiertheit eindeutig
bestimmt sind. g heißt größter gemeinsamer Teiler eine Teilmenge M
von R, abgekürzt ggt(M), wenn g jedes Element von M teilt, und wenn g von
jedem anderen Element geteilt wird, das alle Elemente von M teilt. Sind g1
und g2 ggt’s einer Menge M, und ist R ein Integritätsbereich, so sind sie sie
assoziiert, wegen g1 x = g2 , g2 y = g1 , xy = 1. Um zu einer eindeutigen ggtFunktion zu kommen betrachtet man Funktionen normal : R → R die aus
jeder Assoziiertheitsklasse ein Element normal(a) ∈ R∗ auswählen und aus
verschiedenen Klassen verschiedene Elemente. Außerdem fordert man noch
Multiplikativität: normal(ab) = normal(a)normal(b). a heißt dann normalisiert, wenn a = normal(a). Man schreibt a = lu(a)normal(a) und nennt
lu(a) = lc(a) führende Einheit oder führender Koeffizient. Ein Integritätsbereich R heißt euklidischer Ring, wenn eine euklidische Funktion d existiert, das ist eine Funktion d : R → N ∪ {∞} mit der folgenden Divisionseigenschaft: zu a ∈ R, b ∈ R \ {0} existieren q, r ∈ R mit
a = qb + r, d(r) < d(b). q heißt Quotient von a und b , abgekürzt aquob; r
heißt Rest, abgekürzt: a(rem)b.
Beispiele 4.1
1. R = Z , die ganzen Zahlen. Seien a, b ∈ Z, b 6=
0, |a| ≤ |b|. Dann gibt es genau eine ganze Zahl q mit q ≤ ab ≤ q +1. Es
gilt dann a = qb+(a−qb) = (q+1)b+a−(q+1)b, und |(q+1)b−a| < |b|,
außer, wenn q = ab , |qb − a| < |b|, außer wenn q + 1 = ab . Man kann
also a = q̃b + r mit q̃, r ∈ Z, |r| < |b| schreiben und dies geht auf genau
zwei Weisen, außer im Fall a ∈ bZ. q̃ ist dann ein “ganzer Nachbar”
von ab . Es ist also d(a) = |a| eine euklidische Funktion auf Z, und eine
Normalisierung zudem. Z∗ = {1, −1}.
2. Q = { ab |a, b ∈ Z} , der Quotientenkörper von Z, Körper der rationalen Zahlen.
3. R = C = {a + ib|, a, b ∈ R}, der Körper der komplexen Zahlen, mit
(a1 +ib1 )(a2 +ib2 ) = a1 a2 −b1 b2 +i(a1 b2 +a2 b1 ), a + ib = a−ib, |a+ib|2 =
a2 + b2 . Es ist |xy| = |x||y|, und
(a + ib)(a − ib)
=1
a2 + b2
10
4. R = C ∩ Z2 , der Ring der Gaussschen Zahlen. Als Teilring der komplexen Zahlen ist er ein Integritätsbereich. Aus |xy| = |x||y| folgt
R∗ = {1, −1, i, −i}. d(x) = |x|2 ist eine euklidische Funktion: sind
a, b ∈ R, so wähle man als q ∈ R einen nächsten Nachbarn von ab .
Die maximale Entfernung zum nächsten Nachbarn wird im Mittelpunkt
√
eines Vierecks mit ganzzahligen Eckpunkten erreicht, und beträgt 21 2.
q
a
Darum ist a = qb + r mit r = b( b − q) ∈ R, |r| ≤ 12 |b|.
√
√
5. R = O−5 = Z + i 5Z = {a + i 5b|a, b ∈ Z}.( Dirichlet: Zahlentheorie
(1863) Seite 451) Dieser Teilring von C ist nicht faktoriell. Zum Beweis
betrachtet man die Gleichung
√
√
(1 + −5)(1 − −5) = 6 = 2 · 3.
Zum Beweis,
√
√ dass R nicht faktoriell ist, genügt es z.z.,dass 2, 3, 1 +
−5,√1 − −5 irreduzibel sind. Wir zeigen dies am Beisiel z =
1+ √
−5 : Sei z = bc. Dann gilt |z|2 = 6 = |b|2 |c|2. Nun ist aber
|α − β −5|2 = α2 + 5β 2 ≡ 0, 1, 4mod(5).
Also ist |b|2 ∈
/ {2, 3}. Also ist
√
2
2
|b| = 1, oder |c| = 1, also ist 1+ −5 irreduzibel. Ebenso folgt
√ die2Irre2
2
duzibilität der anderen drei Zahlen. Weil 4x = |2x| = |1 ± −5| = 6
falsch ist, ist 2 irreduzibel, aber nicht prim. Es ist aber jedes r ∈ R Produkt von irreduziblen, da jede absteigende Folge von Zahlen √
der Form
|z|2 mit z ∈ R konstant wird und R∗ = {1, −1}. 6 und 2 + 2 2 haben
keinen ggt in R. (Aufgabe)
6. R = Z[x], der Polynomring in einer Variablen x über Z. Dies ist ein
Integritätsbereich, der faktoriell ist, wie unten gezeigt wird. Er ist aber
kein Hauptidealring, weil < 2, x > kein Hauptideal ist.(Aufgabe)
7. R = k[x], der Polynomring über einem Körper k. sei f ∈ k[x], f =
f0 + . . . + fn xn , fn ∈ K \ {0}. Man setzt degf = n. Dann ist deg eine
euklidische Funktion und normal(f ) = f0−1 f eine Normalisierung. Es
ist R∗ = k ∗ .
8. Der Restklassenring Z/nZ = Zn von Z nach dem Ideal nZ der Vielfachen von n ist offenbar genau dann ein Integritätsbereich, wenn n
prim ist. Anderenfalls ist n = n1 n2 mit ganzen von +1, −1 verschiedenen Zahlen, und die ni + Z sind Nullteiler. Ein endlicher Integritätsbereich ist aber stets ein Körper (warum? ) und daher sind die Zn genau
dann Körper, wenn n prim ist. Sei g = am + bn ggt von m, n. Wenn
g ∈ {+1, −1} ist, dann ist a Inverses von m modulo n. Anderenfalls ist
m Nullteiler in Zn . Also besteht Z∗ aus den zu n teilerfremden Restklassen.
11
Es soll nun gezeigt werden, dass euklidische Ringe faktoriell sind.
Satz 4.1 Jeder euklidische Ring ist Hauptidealring.
Beweis: Sei I Ideal, und d euklidische Funktion. Sei d0 = Min{d(x)|x ∈
I \ {0}}. Es gibt dann ein b ∈ I mit d(b) = d0 . Ist nun a ∈ I, so ergibt die
Divisionseigenschaft q, r ∈ R, mit a = qb + r, d(r) < d(b) = d0 . Also ist
r = 0, und I =< b > .
Satz 4.2 Ist der Integritätsbereich R Hauptidealring, so wird jede aufsteigende Kette I1 ⊂ I2 ⊂ . . . von Idealen Ij konstant.
Beweis: Setze I = ∪Ij .I ist Ideal, also: I =< b >, mit b ∈ Ij , also I = Ij .
Satz 4.3 In einem Hauptidealring ist jedes a ∈ R \ (R∗ ∪ {0}) Produkt von
irreduziblen.
Beweis: Sei M die Menge der b ∈ R\R∗ ∪{0}, die nicht Produkt irreduzibler
sind. Wenn nun a ∈ M ist, dann ist a = a1 b1 mit einer Nichteinheit a1 , und
b1 ∈ M. Also ist b1 = a2 b2 mit einer Nichteinheit a2 und b2 ∈ M, u.s.w.
Man erhält eine Teilerkette b1 , b2 , b3 , . . . wo immer bi = ai+1 bi+1 , mit einer
Nichteinheit ai+1 , also < bi >⊂< bi+1 >. Wäre nun < bi >=< bi+1 >, so wäre
bi+1 = bi y, also ai bi y = bi , also, da R Integritätsbereich ist, ai y = 1, ai ∈ R∗ ,
was wir aber ausgeschlossen haben. Man erhält also eine aufsteigende Kette
von Idealen, die nicht konstant wird, im Widerspruch zum vorangegangen
Satz. Also ist M leer.
Satz 4.4 Sei R Integritätsbereich und p1 . . . pr = q1 . . . qs mit primen pi und
irreduziblen qj . Dann ist r = s, und, nach eventuellem Umordnen: pi ∈ R∗ qi .
Beweis: Es gilt p1 |q2 oder p1 |q2 . . . qs . Im zweiten Fall gilt p1 |q2 oder
p1 |q3 . . . qs . Auf diese Weise fortfahrend findet man eine Relation p1 |qi , also
O.B.d.A. p1 |q1 , p1 x = q1 , und da R Integritätsbereich: p2 . . . pr = xq2 . . . qs .
Weil q1 irreduzibel ist, ist x Einheit, p1 ∈ R∗ , und xq2 irreduzibel. Man kann
also die Betrachtung wiederholen und erhält nach endlich vielen Reduktionsschritten die Behauptung.
Satz 4.5 Jedes maximale Ideal ist prim.
Beweis: Sei I maximales Ideal und ab ∈ I, b ∈
/ I. Sei J =< I ∪ {b} > das
von I und b erzeugte Ideal. Da b nicht Element von I ist, ist I 6= J. Da I
maximal ist, ist I = R, also 1 = x + rb, a = ax + arb, mit x ∈ I. Also ist
a ∈ I, (hier wird die Kommutativität von R benützt) und I prim.
12
Satz 4.6 Ist R Hauptidealring und a ∈ R irreduzibel, so ist < a > maximal,
und a prim.
Beweis: Sei J ein Ideal mit < a >⊂ J. Da R Hauptidealring ist, ist
J =< b >, also a = bx. Da a ireduzibel ist, ist x Einheit, also b ∈ I, d.h.
J = I. Also ist < a > , nach dem vorangegangenen Satz prim, und damit
auch a. (a ist genau dann prim, wenn < a > prim ist.)
Aus den vorangegangenen Sätzen folgt:
Theorem 4.1 Ist der Integrittsbereich R Hauptidealring, so ist er faktoriell.
Korollar 4.1 Jeder euklidische Ring ist faktoriell.
Theorem 4.2 (Gauss) Mit R ist auch R[x] faktoriell.
Der Beweis wird einfacher bei Verwendung einer Normalform:
Satz 4.7 Sei R faktoriell. Dann besitzt jede nichtleere Teilmenge M von R
einen ggt. Ferner existiert eine Normalform.
Beweis: Es sei P eine Menge von primen Elementen derart, dass P für
jedes prime p genau ein Element aus pR∗ enthält. Dann hat jedes Element
a ∈ R \ {0} die Form a = uq, wo q ein Produkt von Elementen von P ist,
und u ∈ R∗ . Setze normal(a) = q. Es ist leicht zu sehen, dass normal eine
Normalform ist. Sei M eine nichtleere Teilmenge von R, und a ∈ R. Dann
ist a = up1 . . . ps . pνi i teile jedes r ∈ M, aber pνi i +1 nicht. Dann ist
pν11 . . . pνss
ggt von M.
In der folgenden Definition sei ggt(M) immer der normalisierte .
Definition 4.2 Sei R faktoriell und f = f0 + f1 x + . . . + fn xn ∈ R[x], fn ∈
R \ {0}. Setze contf = ggt(f0, . . . fn ), und contf = ggt(f0) = normalf0 für
n = 0. contf heißt Inhalt von f und f primitiv, falls contf = 1. Der
primitive Teil ppf wird durch f = contf · ppf. definiert.
Lemma 4.1 (Gauss-Lemma) Sei r faktoriell. Dann gilt
cont(f g) = (contf )(contg); pp(f g) = (ppf )(ppg)
fur alle f, g ∈ R[x].
13
Beweis: Seien f, g ∈ R[x] primitiv und p prim. Dann ist D = R/ < p >
nullteilerfrei, und D[x] auch. Nach An)nahme sind f (modp) und g(modp) 6=
0, also auch f g(modp. Also ist p kein Teiler von cont(f g), also ist cont(f g) =
1. Damit ergeben sich die behaupteten Gleichungen für primitive f, g. Den
allgemeinen Fall ersieht man aus der Gleichung:
f g = (contf )(contg)(ppf )(ppg)
Beweis des Theorems: Wir zeigen zunächst die Zerlegbarkeit in irreduzible, und dann die Eindeutigkeit. Sei f ∈ R[x]. Schreibe f = (contf )(ppf ).
Da R faktoriell ist, folgt hieraus, dass es genügt, die Zerlegbarkeit für primitive f zu zeigen. Wenn aber f pimitiv, und f = gh, mit Nichteinheiten
g, h ∈ R[x], dann ist nach obigem Lemma 1 = (conth)(contg), also g, h primitiv, und wegen deg(gh) = degg + degh von kleinerem Grad als f . Also
bricht die Zerlegung von f nach endlich vielen Schritten mit einer Zerlegung
in Irreduzible ab.
Nun zur Eindeutigkeit: sei
r1 . . . rn p1 . . . pk = s1 . . . sm q1 . . . ql
mit irreuziblen pri , sj ∈ R und irreduziblen primitiven pi , qj ∈ R[x]. Nach
dem vorangegangenen Lemma gilt dann p1 . . . pl = q1 . . . qk . Sei K der
Quotientenkörper von R. Dann sind die pi , qj auch irreduzibel in K[x]. Da
K[x] euklidisch ist, ist k = l und nach umnumerieren pi = ei qi mit ei ∈ K.
Hochmultiplizieren der Nenner ergibt: ui pi = vi qi , mit ui , vi ∈ R, und da
pi , qi pimitiv sind: pi = qi . Da R faktoriell ist, folgt die Eindeutigkeit nun
aus r1 . . . rn = s1 . . . sm .
4.2
Die axiomatische Methode
Zum euklidischen Algorithmus hat man auch “ Wechselwegnahme” gesagt:
sind gewisse Größen a1 , a2 , . . . gegeben so zieht man eine , etwa a1 so oft von
den anderen ab, bis diese anderen alle kleiner als die eine, a1 sind. Dann wechselt man zu einer dieser verkleinerten Größen und wiederholt das Spiel. Die
Wechselwegnahme wird in den Abschnitten über Gröbnerbasen und kurze
Vektoren in Gittern wiederum eine zentrale Rolle spielen. In diesen Abschniten wird die Frage , was “klein” heißen soll, und wie ein Abbruchkriterium zu
formulieren ist, so dass eine vertretbare Laufzeit herauskommt, entscheidend
sein.
Wahrscheinlich hat Euklid den nach ihm benannten Algorithmus nicht erfunden. Es ist auch nicht erwiesen, dass er irgend einen anderen mathematischen
14
Sachverhalt entdeckt hat, - außer diesem: dass man alles aus wenigen Annahmen ableiten kann, nach einigermaßen klaren Schlussweisen. Nach
David Hilbert, der nach 2000 Jahren in seinen “Grundlagen der Geometrie”
ein “up date” von Euklids Elementen geschrieben hat, spricht man von der
“Axiomatischen Methode.” Hilbert war der Meinung dass jede Wissenschaft,
z.B. die Mechanik, früher oder später in ein Stadium kommt indem sie sich
gemäß der axiomatischen Methode, also wie die Elemente von Euklid darstellt. Dabei ist unsere, von Hilbert geprägte Auffassung von Axiomen die von
“ impliziten Definitionen”: man sagt z.B., Gruppen seien implizit durch die
Gruppenaxiome definiert. Wahrscheinlich war diese Auffassung von Axiomen
in der Antike unbekannt. Darüber, wie Euklid seine Annahmen aufgefaßt haben könnte, hat sich P.Lorenzen(1984) Gedanken gemacht. Ein Beispiel für
die Wirksamkeit der axiomatischen Methode findet sich in dem Abschnitt
“Symbolische Integration“.
Wenn man es mit Hilfe der axiomatischen Methode einmal dahin gebracht
hat, endlich viele Annahmen und Schlussweisen -für einen Fragenkreis- herauszupräparieren, dann kann man einen Computer Mathematik treiben lassen. In der Tat gibt es “Automatisches Beweisen”, ein mathematisches Gebiet, wo es darum geht, mit Hilfe des Computers neue Beweise zu finden.
Siehe den Abschnitt über Gröbner - Basen.
15
5
Ein probabilistischer Primtest
5.1
Das Interesse an Primzahlen
C.F.Gauss schrieb in seinen “ Disquisitiones Arithmeticae (1789):
“ Problema, numeros primos a compositis dignoscendi, hosque in factores
suos primos resolvendi, ad gravissima ac utilitarissima totius arithmeticae
pertinere[ . . . ] tam notum est, ut de hac re copiose loqui superfluum foret.[
. . . ]Praeteraeque scientiae dignitas requirere videtur, ut omnia subsidia ad
solutionem problemas tam elegantis ac celebris sedulo excolantur.”
D.Hilbert (1930)” Die reine Zahlentheorie ist dasjenige Gebiet der Mathematik, das noch nie Anwendungen gefunden hat.”
Gauss mochte den algorithmischen Nutzen von Primzahlen pi im Sinn gehabt
haben, zum Zwecke des modulo pi - Rechnens mit dem chinesischen Restsatze. Heutzutage wird die Frage nach dem praktischen Nutzen von Primzahlen gern mit Kryptographie beantwortet: verpackt in ihre Produkte sind
die Primzahlen geschützte Geheimnisse, da nach heutigem Wissen die Zerlegung einer Zahl in iher Primfaktoren nicht efektiv, d.h. polynomiell zu
bewerkstelligen ist. Anders verhält es sich mit der Eigenschaft, Primzahl zu
sein. Hier hat die Suche nach einem polynomiellen Test zunächst in den 70
ger Jahren zu polynomiellen , probabilistischen Tests geführt (Miller-Rabin,
Solovay-Strassen). Erst 2001 erschien der sensationelle polynomielle, deterministische Test von Agrawal, Kayal Saxena. Sind damit die probabilistischen Primzahltests out? Vermutlich nicht. Aber selbst wenn deterministische Primzahltests sich als genauso schnell wie die probabilistischen Tests
erweisen, und damit als diesen überlegen, so bleibt doch das Konzept eines
probabilistischen Beweises als solches interessant- vielleicht mehr noch als die
Frage wie schnell sich Primzahlen erkennen lassen.(Siehe Motwani, Raghavan (1995)) Schließlich sei noch auf die sogenannten “ challenges” hingewiesen. Es handelt sich um gewisse große Zahlen, auf deren Faktorisierung bez.
Primalitätsnachweis Preise ausgesetzt sind. Diese challenges haben zu Pionierleistungen im Internet- Rechnen geführt; (Th.R.Caron, R.D.Silvermann
(1988) Dabei wird nicht auf einem Computer gerechnet, sondern ansonsten
ungenutzte Rechenkapazität beliebiger Rechner im Internet genutzt.
5.2
Der Fermat- Test
Algorithmus 5.1 Fermat-Test:
Input: 3 ≤ N ungerade, ganz;
Output: “ Zusammengesetzt” oder “ möglicherweise prim”
1. Wähle a ∈ {2, . . . , N − 2} zufällig, gleichverteilt;
16
2. Berechne b = aN −1 remN mit wiederholtem Quadrieren (siehe unten)
3. Wenn b 6= 1, gib “ zus.” aus, sonst “ mög.prim”
Algorithmus 5.2 (Wiederholtes Quadrieren)
Input: a ∈ R, Ring mit 1, n ∈ N;
Output: an .
1. Binäre Darstellung von n : Schreibe n = 2k + nk−1 2k−1 + . . . n1 2 + n0
mit ni ∈ {0, 1}; bk ← a.
2. for i = k−1, k−2, . . . 0 do : falls ni = 1 : bi ← b2i−1 a, sonst bi ← b2i−1 ←;
3. gib b0 aus.
Dieser Algorithmus ist das Bild bei j → aj der Horner -Regel:
f = f0 + f1 x + . . . + fn xn = . . . (fk−2 + (fk−1 + fk x)x)x . . .
zur Evaluation eines Polynoms f, angewandt auf die Binärdarstellung von
n, als Polynom in x = 2, mit Koeffizienten fi = ni . Daraus ergibt sich auch
die Korrektheit des Algorithmus. Er benötigt blog2 nc Quadrate und noch
einmal w(n) − 1 ≤ blog2 nc Multiplikationen in R. Dabei ist w(n) die Anzahl
der 1 en in der Binärdarstellung von n. (Hamming- Gewicht). Insgesamt
braucht er also höchstens 2log2 n Multiplikatonen in R. Ein Algorithmus,
der n, ausgehend von 1, nur mit Additionen (vorangegangener Resultate)
berechnet, heißt Additionskette. Obiger Algorithmus ist also Bild einer
Additionskette. Die Additionsketten standen am Anfang der algebraischen
Komplexitätstheorie.
Es geht jetzt um die Analyse des Fermat- Testes.
Definition 5.1 Sei G endliche Gruppe, g ∈ G; die kleinste Zahl n ∈
{1, 2 . . . } mit g n = 1 heißt Ordnung von g und wird mit ordg = ordG g
bezeichnet. Allgemein heißt die Kardinalität der Gruppe G ihre Ordnung:
]G = ordG. Es ist auch ordg die Ordnung der von g erzeugten Untergruppe
in G. Die Funktion ϕ, die durch ϕ(N) = ]Z∗n definiert wird, heißt EulerFunktion. Ist N prim, so ist ϕN = N − 1. Ist N = pe Primzahlpotenz, so
ist ϕ(N) = pe−1 (p − 1). Ist H Untergruppe von G, so heißen die Mengen
gH = {gh|h ∈ H} Rechtsnebenklassen von H.
Die Rechtsnebenklassen haben alle gleich viele Elemente, wie aus der Bijektion x → g2 g1−1 : g1 H → g2 H hervorgeht, und verschiedene Nebenklassen
sind disjunkt, denn aus x = g1 h1 = g2 h2 folgt g2 = g1 h1 h−1
2 , und damit
g1 H = g2 H. Also gilt
17
Satz 5.1 ( Lagrange)
]G = ]H · ]{gH|g ∈ G}
Korollar 5.1 ( Euler)
aϕ(N ) ≡ 1(modN) falls ggt(a, n) = 1
Korollar 5.2 ( Fermat)
aN −1 ≡ 1(modN) falls ggt(a, N) = 1, N prim
Wenn also aN −1 6≡ 1, dann gibt der Fermat- Test korrekterweise “ zus. “ aus.
Wir betrachten jetzt die Zahlen, deren Zusammengesetztheit der FermatTest nicht erkennen kann.
Definition 5.2 Sei λ(N) kleinste natürliche Zahl λ, für die
xλ = 1, x ∈ Z∗N
Λ heißt Carmichel-Funktion. N heißt Carmichel-Zahl(C.Z.), wenn N
zusammengesetzt ist, und λ(N)|N − 1. Wir bezeichnen mit
EN −1 = {a ∈ Z∗N |aN −1 = 1}
die N − 1− ten Einheitswurzeln in Z∗N .
Beispiele 5.1 Die ersten drei C.Z. sind
561 = 3 · 11 · 17, 1105 = 5 · 13 · 17, 1729 = 7 · 13 · 19.
Es wurde erst 1994 gezeigt, von Alford, Granville, Pomerance, dass es unendlich viele C.Z. gibt.
Satz 5.2 Äquivalent sind:
1. N ist C.Z.
2. EN −1 = Z∗N ;
3. N = p1 p1 p2 . . . pk , k ≥ 3, pi − 1|N − 1, pi paarweise verschieden,
ungerade, prim.
18
Beweis: Es sei
N = pe11 . . . pekk
Die Zerlegung von N mit paarweise verschiedenen primen pi . Aus dem chinesischen Restsatz(CRS) folgt
ZN∗ = Z∗pe1 × . . . Z∗pek
1
k
Für die Euler -Funktion ϕ gilt
ϕ(pei i ) = ord(Z∗pei ) = piei −1 (pi − 1)
i
Wenn nun al = 1 für alle a ∈ Z∗N dann gilt al ≡ 1(modpei i ), und daher
l| piei −1 (pi − 1). Hieraus folgt, dass
λ(N) = kgv(piei−1 (pi − 1))
Wenn N C.Z., dann folgt zunächst EN −1 = Z∗N . Sodann: ei = 1, denn sonst
gälte pi |N −1, pi |N, was unmöglich ist, weil 1 nicht Vielfaches von pi ist. Ferner ist pi ungerade, denn sonst wäre N gerade, N −1 ungerade, pi −1 gerade,
aber pi − 1|N − 1. Also sind die pi ungerade. Schließlich ist k ≥ 3, denn sonst
wäre N = p1 p2 mit p1 < p2 , und P2 − 1|N − 1 = p1 p2 − 1 = (p2 − 1)p1 + p1 − 1,
, d.h. p2 − 1|p1 − 1, was unmöglich ist. Damit ist die Äquivalenz der drei
Aussagen klar.
Satz 5.3 Sei N keine Carmichelzahl. Wenn N prim ist, gibt der FermatTest “möglicherweise prim“ aus. Wenn N zusammengesetzt ist, gibt er mit
Wahrscheinlichkeit ≥ 21 “ zus.” aus . Er benötigt O(log2N · M(log2 N)) Wortoperationen.
Beweis: Sei N prim. Dann ist ggt(a, N) = 1. Nach Fermat gibt der Alg.
“ mög. prim” aus. Ist ggt(a, N) > 1 so gibt der Alg. “ zus.” aus. Sei also
ggt(a, N) = 1, und N zusammengesetzt, aber keine C.Z..Die N − 1 ten
Einheitswurzeln modulo N bilden dann eine echte Untergruppe
EN = {a ∈ Z∗N |aN −1 = 1}
von Z∗N . Nach Lagrange ist daher
](Z∗N \ EN )
1
≥
∗
]ZN
2
19
Also gibt der Alg. mit WS ≥ 21 “ zus.” aus.
Der folgende Algorithmus wählt zufällig und gleichverteilt
a ∈ {2, . . . N − 2}
bei N −1 = 2k m, m ungerade. Wenn N C.Z. findet er ein l ∈ {0, 1, . . . k −1},
l
so dass für mindestens die Hälfte aller a der g = ggt(a2 m + 1, N) ein echter
Teiler von N ist. Dies ergibt sich aus dem folgenden Lemma:
Lemma 5.1 Sei N C.Z., P die Menge der Primteiler von N, N − 1 =
2k m, m ungerade. Es gibt ein l ∈ {0, . . . k − 1}, so dass für mindestens
l
die Hälfte aller a ∈ Z∗N : g = ggt(a2 + 1, N) echter Teiler von N ist.
k
Beweis: Weil N C.Z. ist, gilt für alle a ∈ Z∗N : a2 = 1. Es gibt aber ein
b ∈ Z∗N mit bm 6= 1, denn sonst gälte λ(N)|m, was unmöglich ist, da λ(N)
gerade, aber m ungerade. Aso gibt es ein l ∈ {0, . . . , k − 1} so dass für alle
l+1
l
a ∈ Z∗N : a2 m = 1, aber für ein b : b2 m 6= 1. Nach C.R.S. gibt es ein
p ∈ P mit b 6≡ 1(modp). Wiederum mit dem C.R.S erhält man c ∈ ZN
mit c ≡ b(modp), c ≡ 1(modN/p). Es ist dann sogar c ∈ Z∗N . Ferner ist
l
c2 m ≡ ±1(modp) für alle p ∈ P, da das Quadrat dieser Zahl 1 ist in Zp und
l
dies ein Körper ist. Schließlich ist p → c2 (rem)p nicht konstant. Da aber
l
die c0 s mit konstanter Funktion p → c2 m (rem)p eine Untergruppe von Z∗N
bilden, machen die restlichen nach Lagrange mindestens die Hälfte von Z∗N
aus. Für ein solches c ist aber
Y
l
g = ggt(c2lm + 1, N) =
{p ∈ P | p|c2 m + 1}
ein echter Teiler von N. q.e.d.
Algorithmus 5.3 (Fermat- Pseudo- Primtest)
Input: N ≥ 3, ganz, ungerade;
Output: “ zus” oder “wahr.prim” oder g , ein echter Faktor von N.
1. Wähle a ∈ {2, . . . N − 2} zufällig, gleichverteilt;
2. g ← ggt(a, N); falls 1 < g gib g aus;
3. Schreibe N − 1 = 2k m mit ungeradem k und berechne b0 = am remN,
mit wiederholtem Quadrieren. wenn b0 = 1 gib “ wahr. prim “ aus.
4. for 1 ≤ i ≤ k do bi ← b2i−1 remN ;
5. wenn bk = 1, dann j ← min{0 ≤ i < |bi+k = 1}; sonst gib “ zus.” aus.
20
6. g ← ggt(bj+1, N) ; Wenn g = 1, oder g = N, gib “ wahrsch. prim” aus;
sonst : g.
Satz 5.4 Wenn N prim ist,
zusammengesetzt, aber keine
Wahrsch. ≥ 12 aus; Wenn N
≥ 12 einen echten Teiler von
Wortoperationen.
gibt der Alg. “ wahrsch. prim” aus. Wenn N
Carmichel- Zahl ist, gibt der Alg. “ zus. “ mit
C.Z. ist, gibt der Alg. mit Wahrscheinlichkeit
N aus. Der Alg. benötigt O(logN · M(logN))
Beweis: Sei N zusammengesetzt, und keine C.Z. Dann ist die WS eines
Fermat- Zeugen
1
](Z∗N \ EN )
≥ .
∗
]ZN
2
Es wird also mit WS ≥ 11 entweder in Schritt 2. ein Faktor von N gefunden ,
k
oder in Schritt 5. wegen 1 6= bk = aN −1 = a2 m (modN) “ zus. “ ausgegeben.
Sei nun N prim. Dann ist bk = 1. Wenn b0 = 1, wird im dritten Schritt
”wahrsch. prim “ ausgegeben. Sonst gibt es j mit bj+1 = b2j = 1 ∈ Z∗N . Da
ZN∗ Körper ist, hat x2 − 1 = 0 in ZN genau zwei Lösungen: ±1. Da bj 6= 1,
ist bj + 1 = N, also g = N im Schritt 6. und es wird “ wahrsch. prim “
ausgegeben.
Man kann den Pseudo-Primzahl-Test benutzen, um “ Pseudo-Primzahlen”
mit gewissen Zusatzeigenschaften zu erzeugen:
Algorithmus 5.4 (Pseudo-Primzahlen)
Input: natürliche Zahlen B, k;
Output: eine Pseudo- Primzahl p.
1. wähle zufällig gleichverteilt p ∈ {B, B + 1, . . . 2B};
2. Führe den Pseudo-Primzahl-Test für p k mal durch; falls jedesmal
“wahrsch. prim“ ausgegeben wird, gib p aus; sonst goto 1.
Für die Analyse dieses Algorithmus benötigt man den berühmte Primzahlsatz. Gauss schrieb 1849, er habe den Sachverhalt schon 1792 (unter zu Hilfenahme von Tabellen) gefunden. Bewiesen wurde er erst 1896 von de la Valleé
Poussin und unabhängig Hadamard.(siehe z.B.Bundschuh: Einführung in die
Zahlentheorie, 2te Auflage Springer 1992)
Satz 5.5 (Primzahlsatz) Sei
π(x) = ]{p ∈ N, p ≤ x, p prim}
21
Dann gilt
1
1
3
x
(1 +
) < π(x) <
(1 +
); x ≥ 59
lnx
2lnx
lnx
2lnx
Satz 5.6 Der Algorithmus “ Pseudo-Primzahl” gibt mit Wahrscheinlichkeit
≥ 1 − 2−k+1 lnB eine Primzahl aus. Er benötigt eine erwartete Anzahl von
O(k(log 2B)M(logB)) Wortoperationen.
Beweis: Sei P die Menge der Primzahlen zwischen B und 2B. Nach Primzahlsatz gilt:
]P = π(2B) − π(B) ≥
3
B
B
(1 −
)≥
lnB
lnB
2lnB
falls lnB ≥ 6. Also ist eine zufällig gewählte Zahl in {B + 1, . . . , 2B} prim
mit Wahrscheinlichkeit
]P
1
≥
.
B
2lnB
Es bezeichne Z das Ereignis, dass die zufällig gewählte Zahl zusammengesetzt
ist, und T das Ereignis, dass alle k Tests die Ausgabe “ wahrsch. prim”
produziert haben. Mit W SB A bezeichnen wir die bedingte Wahrscheinlichkeit
von A unter der Bedingung B. Es gilt dann
(2lnB)−1 W ST Z ≥ W S(pprim)W ST Z ≥ W S(Z ∩ T )
= W S(Z)W SZ T ≥ W SZ (T ) ≥ 2−k
Hieraus ergibt sich
Abschätzung für ]P
entstehen nach dem
tionen. Daraus folgt
5.3
die Wahrscheinlichkeitsabschätzung. Auf Grund der
erwartet man hochstens 2lnB Wahlen. Bei jeder Wahl
vorangegangenen Satz O(klog2 BM(logB)) Wortoperadie Behauptung.
Primes is in P
So der Titel des Artikels vonM. Agrawal, N. Kayal, N. Saxena, in welchem
zum ersten mal ein polynomieller, deterministischer Primzahltest vorgestellt
wird. Zunächst die Idee:
Lemma 5.2 Seien a, p ∈ N, ggt(a, p) = 1. p ist genau dann prim, wenn
(x − a)p ≡ (xp − a)(modp)
22
Beweis: Wegen
p p−i
p
(x − a) =
(−1)
a ,
≡ 0(modp)
i
i
0≤i≤p
p
X
i
gilt die Kongruenz für alle Primzahlen p. Wennaber q ein Primfaktor von
p 6= q ist und q k |p, dann ist q k kein Teiler von pq , und teilerfremd zu ap−q .
Also ist der Koeffizient von xq in (x − a)p kein Vielfaches von p, d.h. die
Kongruenz gilt nicht.
Diese Identität führt jedoch noch nicht unmittelbar zu einem Test, der polynomiell in logp ist, weil das Polynom (x − a)p genau p + 1 Koeffizienten hat.
6
Der Algorithmus konstruiert
√ eine “ geeignete” Primzahl r = O(log p) und
prüft dann für kleine a(O( rlogp)) :
(x − a)p ≡ xp − a(modxr − 1, p)
Algorithmus 5.5 (AKS-Test)
Input: 1 < n ∈ N;
Output: zus., falls n zusammengesetzt; prim, falls n prim.
1. gib zus. aus, falls n = ab mit a, b ∈ N, 1 < b.
2. r ← 2.
3. while r < n
4. wenn ggt(n, r) 6= 1 gib zus. aus;
5. wenn r prim ist
6. sei q der größte Primfaktor von r − 1;
r−1
√
7. wenn (q ≥ 4 rlogn) und (n q 6≡ 1(modr)
8. stop
9. r ← r + 1
√
10. für 1 ≤ a ≤ 2 rlogn
11. wenn (x − a)n 6≡ (xn − a)(modxr − 1, n) gib zus. aus
12. gib prim aus.
23
6
Gröbner Basen
6.1
Buchbergers Algorithmus
In diesem Abschnitt wird zunächst die bekannte Division mit Rest in Q[x]
verallgemeinert, und zwar zu einer Division mit Rest in Q[x1 , . . . xn ] bezüglich
vorgegebener Divisoren f1 , . . . fs , und einer vorgegebenen Ordnung auf der
Menge der Monome in den x1 , . . . xn . Dann wird der euklidische Algorithmus verallgemeinert zum Buchberger -Algorithmus. Berechnet der euklidische Algorithmus aus Erzeugenden f1 , . . . fn eines Ideals I ⊂ Q[x] ein
g = ggt(f1, . . . fs ) mit der Eigenschaft, dass
f ∈ I, ⇔ f remg = 0,
so berechnet der Buchberger Algorithmus zu vorgegebenen Polynomen
f1 , . . . fs ∈ Q[x1 , . . . xn ] eine endliche Menge G von Polynomen so dass gilt
f ∈ (f1 , . . . fs ) ⇔ f remG = 0
dabei ist f remG der vom Divisionsalgorithmus berechnete Rest. Ein
solches G heißt Gröbner - Basis. Der Buchberger - Algorithmus hat viele
Anwendungen, theoretische wie praktische. Man wird jedoch feststellen, dass
der Buchberger - Algoithmus schon bei wenigen Variablen “abstürzt”. In der
Tat hat Mayr 1989 bewiesen, dass jeder Algorithmus, der Gröbner - Basen
berechnet exponentiell viel Speicherplatz benötigt. Empfohlene Lektüre:
Cox et al (1997)
Definition 6.1 Eine Relation ≺ auf einer Menge S heißt partielle Ordnung, wenn gilt
1. nicht α ≺ α
2. α ≺ β ≺ γ ⇒ α ≺ γ (α, β, γ ∈ S).
Eine partielle Ordnung heißt total, wenn
α = β oder α ≺ βoder β ≺ α.
Eine partielle Ordnung heißt Wohlordnung, wenn jede nichtleere Teilmenge
T ein kleinstes Element besitzt, d.h. ein Element α, so dass für kein β ∈ T :
β ≺ α. Wir schreiben α β für (α = β oder α ≺ β), und α β für
(β ≺ α), sowie α β für (β α). Für α = (α1 , . . . , αn ) ∈ Nn setzt man
xα = xα1 1 xα2 2 . . . xαnn
Eine partielle Ordnung ≺ auf Nn heißt monomiale Ordnung,falls
24
1. ≺ total;
2. α ≺ β → α + γ <≺ β + γ ;
3. ≺ ist Wohlordnung
Beispiele 6.1
1. “lexikographisch”:α ≺lex β ⇔ der erste von Null verschiedene Eintrag von α − β ist negativ
P
P
P
2. “gradiert
lexikographisch”:
α
≺
β
⇔
(
α
<
β
)
oder
(
αi =
grlex
i
i
P
β1 und α ≺lex β)
P
P
3. “ gradiert
umgekehrt
lexikographisch”:
α
≺
β
⇔
(
α
<
βi )
grevlex
i
P
P
oder
αi =
βi und der letzte von Null verschiedene Eintrag von
α − β ist positiv.
Sei nun ≺ monomiale Ordnung und
X
cα xα ; cα ∈ F
f=
α∈Nn
1. Die cα xα ca 6= 0, heißen Terme von f.
’
n
2. mdeg(f ) = max≺ {α ∈ N ; cα 6= 0} heißt Multigrad von f bez. ≺ .
3. lc(f ) = cmdeg(f ) ∈ F \ {0} heißt Leitkoeffizient von f ;
4. lm(f ) = xmdeg(f ) ∈ R heißt Leitmonom von f ;
5. lt(f ) = lc(f )lm(f ) ∈ R heißt Leitterm von f.
Ein Ideal I ⊂ R = F [x1 , . . . , xn ] heißt monomial, wenn es von Monomen
erzeugt wird; es gibt dann A ⊂ Nn , so dass I =< xA >=< {xα |α ∈ A} > .
Es sei nun eine monomiale Ordnung ≺ gegeben. Der Beweis des folgenden
Lemmas sei dem Leser überlassen.
Lemma 6.1
1. mdeg(f g) = mdeg(f ) + mdeg(g);
2. mdeg(f + g) ≤ max(mdeg(f ), mdeg(g)) mit = falls mdeg(f ) 6=
mdeg(g).
Lemma 6.2 Sei I =< xA > monomiales Ideal, β ∈ Nn Dann gilt
xβ ∈ I ⇔ ∃α ∈ A : xα |xβ
25
Zum Beweis schreibt man:
xβ =
X
qi xαi = xβj xαj
i
Lemma 6.3 Ist I ein monomiales Ideal und f ∈ R, so sind die folgenden
Aussagen äquivalent:
1. f ∈ I;
2. Jeder Term von f liegt in I.
3. f ist Linearkombination über F von Monomen in I.
Der Beweis sei dem Leser überlassen.
Korollar 6.1 Zwei monomiale Ideale sind genau dann gleich, wenn sie die
gleichen Monome enthalten.
Theorem 6.1 ( Dixons Lemma) Jedes monomiale Ideal wird von einer endlichen Menge von Monomen erzeugt: für jedes A ⊂ Nn gibt es ein endliches
B ⊂ A mit < xA >=< xB > .
Zum Beweis bemerkt man, dass
xα |xβ ⇔ α ≤ β
wenn dabei α ≤ β komponentenweise definiert ist:
α ≤ β ⇔ ∀i : αi ≤ βi
Definiert man nun eine partielle Ordnung < auf Nn durch α < β ⇔ α ≤
β (und nicht α = β) so gilt - und das beweist das TheoremLemma 6.4 Sei A ⊂ Nn , und B die Menge der minimalen Elemente von A.
Dann ist B endlich, und zu jedem α ∈ A gibt es ein β ∈ B mit β ≤ α.
Beweis: O.B.d.A.: A 6= ∅. Jede absteigende Folge in A wird konstant, da N
mit der üblichen Ordnung wohlgeordnet ist,- und zwar mit einem minimalen
Element von A. Es bleibt zu zeigen, dass B endlich ist. Wenn n = 1, ist die
Endlichkeit klar. Sie sei nun schon bis n − 1 bewiesen. Setze π(α1 , . . . αn ) =
(α1 , . . . αn−1 ). Dann ist die Menge C der minimalen Elemente von π(A) endlich. Sei β ∈ B, β = (β1 , . . . βn−1 , βn ). Es gibt dann γ = (γ1 , . . . , γn−1) ∈ C
mit γ ≤ π(β). Für jedes γ = (γ1 , . . . , γn−1 ) ∈ C gibt es aber ein cn (γ) ∈ N,
so dass (γ1 , . . . , γn−1 , cn (γ)) ∈ A. Die Menge dieser cn (γ) ist endlich, da C
es ist, und besitzt daher eine obere Schranke s. Es gilt nun βn ≤ s, denn
anderenfalls wäre (γ1 , . . . , γn−1, cn (γ)) ≤ (γ1 , . . . γn−1 , s) < (β1 , . . . , βn ), im
Widerspruch zur Minimalität von β. Dies bedeutet aber, dass die n− ten
Komponenten von B beschränkt sind. Mit Umnumerieren folgt, dass alle
Komponenten von B beschränkt sind. Also ist B beschränkt, also endlich.
26
Algorithmus 6.1 (≺ − Division mit Rest)
Input: f, f1 , . . . , fs ∈ R \ {0}, R = F [x1 , . . . , xn ], F Körper.
Output: q1 , . . . , qs , r ∈ R, mit f = q1 f1 + . . . + qs fs + r, so dass keines der
lt(f1 ), . . . lt(fs ) eines der Monome in r teilt.
1. r ← 0, p ← f ;
for i = 1 . . . s do qi ← o;
2. While p 6= 0 do
3. Wenn lt(fi )|lt(p) für ein i ∈ {1, . . . , s}, wähle ein solches i ;
qi ← qi +
lt(p)
lt(p)
;p ← p −
lt(fi )
lt(fi )
sonst r ← r + lt(p); p ← p − lt(p).
4. gib q1 , . . . qs , r aus.
Jedesmal, wenn im Algorithmus 3. durchlaufen wird, gilt
f = p + q1 f1 + . . . + qs fs + r.
Ferner wird mdeg(p) vermindert, falls noch nicht p = 0 ist. Also hält der
Algorithmus mit p = 0. Ferner wird in 3. zu r allenfalls ein Term addiert, der
durch keines der lt(fi ) teilbar ist. Also ist t am Ende durch keines der lt(fi )
teilbar:
Satz 6.1 Der Divisionsalgorithmus arbeitet korrekt.
Korollar 6.2 Sei I ⊂ R = F [x1 , . . . , xn ] ein Ideal, G ⊂ I endlich und
< lt(G) >=< lt(I) > . Dann gilt I =< G > .
Beweis: Division von f ∈ I mit Rest ergibt : f = f1 g1 + . . . fk gk + r,
Pmit gj ∈
G, fj ∈ R, r ∈ I, lt(g) - lt(r) (g ∈ G). Weil r in I liegt, ist lt(r) =
ri lt(gi ),
weswhalb lt(r) = xα lt(gj ), also lt(r) = 0.
Korollar 6.3 (Aufsteigende Idealketten) Jede aufsteigende Kette von Idealen in R : I1 ⊂ I2 ⊂ . . . wird konstant: es gibt ein j so dass Ij = Ij+1 =
. . . = I.
Korollar 6.4 ( Hilberts Basissatz (1890)) Jedes Ideal I ⊂ R =
F [x1 , . . . , xn ] ist endlich erzeugt. Genauer: es gibt ein endliches G ⊂ I, so
dass < lt(G) >=< lt(I) >, und I =< G > .
27
Definition 6.2 Sei ≺ monomiale Ordnung, I ⊂ R ein Ideal, und G ⊂
I.G heißt Gröbner Basis von I bezüglich ≺ , wenn G endlich ist, und
< lt(G) >=< lt(I) > .
Korollar 6.5 Jedes Ideal in F [x1 , . . . , xn ] besitzt eine Gröbner Basis.
Lemma 6.5 Sei G eine Gröbner Basis, I ⊂ R Ideal, f ∈ R. Dann existiert
genau ein r ∈ R mit
1. f − r ∈ R
2. keines der Monome in lt(G) teilt einen Term von r.
Beweis: Division mit Rest ergibt die Existenz von r. Es sei f = h1 + r1 =
h2 + r2 , also h1 − h2 = r2 − r1 ∈ I. Also ist lt(r1 − r2 ) ∈< lt(I) >=< lt(G) > .
Also ist (früheres Lemma) lt(r1 − r2 ) teilbar durch ein lt(g) mit g ∈ G. Aus
(2) folgt dann : r1 − r2 = 0.
Notation:
r = f remG
Korollar 6.6 (f ∈ I - Test) Sei G Gröbner- Basis des Ideals I ⊂ R, und
f ∈ R. Dann gilt
f ∈ I ⇔ f remG = 0.
Wir steuern jetzt die Berechnung von Gröbner Basen an.
Definition 6.3 Seien
g, h ∈ R \ {0}, mdeg(g) =α = (α1 , . . . , αn );
mdeg(h) =β = (β1 , . . . , bn ),
γ = (max(α1 , β1 ), . . . , max(αn , βn ))
Dann wird das S- Polynom S(g, h) von g, h definiert durch
S(g, h) =
xγ
xγ
g−
h
lt(g)
lt(h)
Lemma 6.6 Seien g1 , . . . gs ∈ R; α1 , . . . αs ∈ Nn ; c1 , . . . , cs ∈ F \ {0},
X
f=
ci xαi gi ∈ R
i
28
δ ∈ Nn , αi + mdeg(gi) = δ, (1 ≤ i ≤ s), mdeg(f ) ≺ δ; xγij =
kgv(lmgi , lmgj ). Dann gibt es cij ∈ F so dass
X
f=
cij xδ−γij s(gi , gj )
1≤i<j≤s
und
mdegxδ−γij S(gi , gj ) ≺ δ; (1 ≤ i < j ≤ s)
Der Beweis mit Induktion nach s sei dem Leser überlassen. Wir betrachten
der Einfachheit halber den Fall s = 2 : f = c1 xα1 g1 + c2 xα2 g2 , δ = α1 +
mdegg1 = α2 + mdegg2 ; mdegf ≺ δ. O.B.d.A kann noch lc(g1 ) = lc(g2 ) = 1
vorrausgesetzt werden. Sei
S(g1 , g2 ) =
xγ
xγ
g2 ; g = f − xδ−γ S(g1 , g2)
g1 −
lt(g1 )
ltg2
Dann gilt:
xγ
xγ
g1 −
g2 )
lt(g1 )
lt(g2 )
− xα1 )g1 + (c2 + c1 )xα2 g2
g = c1 xα1 g1 + c2 xα2 g2 − c1 xδ−γ (
= c1 (xα1
Wegen mdeg(g) max((mdeg(f ), mdeg(xδ−γ (S(g1 , g2 )) ≺ δ ist c2 + c1 = 0.
q.e.d.
Theorem 6.2 (S- Test) Sei G = {g1 , . . . , gs } ⊂ R. Dann gilt
G Gröbner- Basis
⇔
S(gi, gj )remG = 0
Beweis: “ ⇐00 gilt trivialerweise.
“ ⇒00 : sei f ∈< G > . Unter allen Darstellungen
X
f=
qi gi
i
sei eine gewählt, für die δ = max≺ {mdeg(qigi )} minimal ist. Das geht, weil
≺ eine Wohlordnung ist. Wenn mdeg(f ) = δ, dann ist lm(f ) = lmqj gj , also
lt(f ) ∈< lt(G) > .
P
Angenommen: mdeg(f ) ≺ δ, und f ∗ = lt(qi )gi . ⇒
mdeg(f ∗ ) ≺ max{mdeg(lt(qi gi )}
29
Aus dem vorangegangenen Lemma folgt nun
X
f∗ =
cij xαij S(gi, gj ); δij = mdeg(xαij S(gi, gj )) ≺ δ
Division mit Rest durch G ergibt
X
f∗ =
qi∗ gi mit mdeg(qi∗ gi ) maxδij ≺ δ
Also ist
f − f∗ =
Schließlich ist
X
(qi − lt(qi ))gi ; mdeg(qi − lt(qi )) ≺ mdeg(qi gi ) δ
f=
X
(qi − lt(qi ) + qi∗ )gi , und
max{mdeg(qi − ltqi + qi∗ )gi } ≺ δ
Widerspruch.q.e.d.
Dieser Satz enthält im wesentlichen schon die Korrektheit des folgenden Algorithmus zur Berechnung von Gröbner - Basen.
Algorithmus 6.2 ( Buchberger)
Input : f1 , . . . fs ∈ R, monomiale Ordnung ≺;
Output: Gröbner- Basis G ⊂ R für I =< f1 , . . . , fs > mit fi ∈ G.
1. G ← {f1 , . . . , fs }
2. Wiederhole
3. S ← ∅
ordne die Elemente von G als g1 , . . . gt ;
for 1 ≤ i < j ≤ t do
4. r ← S(gi , gj )rem(gi , . . . , gt )
if r 6= 0, then S ← S ∪ {r}
5. if S = ∅, gib G aus, sonst G ← G ∪ S.
Korrektheit: Angenommen, der Algorithmus hält; dann ist die Ausgabe G, da sie {f1 , . . . , fs } enthält, nach dem obigen Theorem eine
Gröbner - Basis. Um zu zeigen, dass der Algorithmus hält, betrachten
wir die Folge G1 ⊂ G2 ⊂ . . . der Basen, die in 5. entstehen. Es gilt
dann : < lt(G1 ) >⊂< lt(G2 ) >⊂ . . . Diese Folge wird konstant nach
Dixons Lemma : < lt(Gi ) >=< lt(Gi+1 ) >= . . . . Ist dann f, g ∈ Gi
und r = S(f, g)remGi, so ist r ∈ Gi+1 , also lt(r) ∈< lt(Gi ) >, also
lt(r) = 0, r = 0, S(f, g) ∈ Gi = Gi+1 . q.e.d.
30
Beispiele 6.2
f1 = x3 − 2xy; f2 = x2 y − 2y 2 + x ∈ Q[x, y], ≺=≺grlex ; y ≺ x
S(f1 , f2 ) =
x3 y
x3 y
f
−
f2 = −x2 = f3
1
x3
x2 y
S(f1 , f3 ) = 1f1 − (−x)f3 = −2xy = f4
1
S(f1 , f4 ) = yf1 − (− x2 )f4 = yf4
2
S(f2 , f3 ) = 1f2 − (−y)f3 = −2y 2 + x = f5
S(f1 , f5 ) = 2xy − 2x2 y 2 = −f4 + 2y 2f2
1
S(f2 , f4 ) = −2y 2 − x = f5 ; S(f2 , f5 ) = −y 2 + x + xy 3 = f5 − y 2 f4
2
S(f3 , f4 ) = 0; S(f3 f5 ) = −xy 2 = −yf4
1
S(f4 , f5 ) = −4y 3 = 2yf2 + f4 + f42
2
{f1 , f2 , f3 , f4 , f5 }Gröbner − Basis von < f1 , f2 >
Unter zusätzlichen Bedingungen existiert - zu vorgegebener Ordnung ≺ genau
eine Gröbner Basis G . Zunächst kann man nämlich überflüssige Elemente
weglassen auf Grund des folgenden Lemmas
Lemma 6.7 Ist G G.B. von I ⊂ R, g ∈ G, und lt(g) ∈< lt(G \ {g} >, so
ist G \ {g} G.B.von I.
Um zu zeigen, dass G\{g} G.B. von < G > ist, hat man ja nur zu zeigen, dass
lt(G) ⊂< lt(G \ {g} >, d.h. lt(g) ∈< lt(G \ {g} >, was aber Vorraussetzung
ist.
31
Definition 6.4 G ⊂ R heißt minimale Gröbner Basis, wenn für alle g ∈
G : lc(g) = 1, und lt(g) ∈<
/ lt(G ⊂ {g} > . Ein Element g einer G.B. G
heißt reduziert bezüglich G, wenn kein Monom von g in < lt(G \ {g}) >
vorkommt. Eine minimale G.B. G heißt reduziert, wenn alle ihre Elemente
bez. G reduziert sind.
Theorem 6.3 (Reduktion)
Jedes Ideal in F [x1 , . . . , xn ] besitzt genau eine reduzierte G.B..(≺ vorgegeben.)
Beweis:
Existenz: Sei I ⊂ R ein Ideal. Wir wissen, dass eine G.B für I existiert.(Sie
kann nach Buchberger berechnet werden.) Auf Grund des obigen Lemmas
kann sogar angenommen werden, dass G minimal ist - man lasse eventuell
überflüssige Elemente weg, und teile durch lc(g). Sei also G = {g1 , . . . , gs }
minimale G.B.. Definiere induktiv
h1 = g1 rem{g2 , . . . , gs }
; G1 = {g1 , . . . , gs }
hi = gi rem{h1 , . . . , hi−1 , gi+1 , . . . , gs } ; Gi = {h1 , . . . , hi , gi+1, . . . , gs }
Mit Induktion nach i kann man nun zeigen, dass lt(hj ) = lt(gj ), dass die Gj
minimale G.B.’s sind, und die h1 , . . . , hj reduziert sind bezüglich Gj . Für j =
s erhält man damit die Existenz einer reduzierten G.B. Der Induktionsanfang
sei dem Leser überlassen. Beim Schritt von i auf i + 1 hat man den Rest
gi+1 =
i
X
j=1
qj hj +
s
X
qj gj + hi+1
j=i+2
Aus der Definition des Restes folgt, dass lt(hi+1 ) unter den Monomen von
gi+1 vorkommt. Weil G minimal ist, und lt(hj ) = lt(gj ) (1 ≤ j ≤ i), kommt
aber auch lt(gi+1 ) unter den Monomen von hi+1 vor. Also ist lt(gi+1 ) =
lt(hi+1 ). Also ist lt(G) = lt(Gi+1 ), und Gi+1 minimale G.B..Sei nun 1 ≤
j ≤ i + 1. Dann ist hj reduziert bez. Gi+1 . Für j ≤ i folgt dies aus der
Induktionsannahme und für j = i + 1 aus der Definition eines Restes.
Eindeutigkeit: Seien G, G∗ reduzierte G.B.’s. Wir zeigen zunächst lt(G) =
lt(G∗ ). Sei dazu g ∈ G. Dann ist lt(g) ∈< lt(G∗ >, und deswegen gibt es
ein g ∗ ∈ G∗ mit lt(g ∗ )|lt(g). Mit dem gleichen Argument erhält man aber
auch ein h ∈ G mit lt(h)|lt(g ∗ ). Dies bedeutet aber lt(h)|lt(g). Wäre nun
h 6= g , so wäre lt(h) ∈< lt(G \ {g}) > im Widerspruch zur Minimalität von
G. Also ist g = h und lt(g) = lt(h) = lt(g ∗ ) ∈< lt(G∗ ) > . Dies bedeutet
lt(G) ⊂ lt(G∗ ), und lt(G) = lt(G∗ ).
32
Nun folgt G = G∗ : Sei nämlich g ∈ G. Dann gibt es g ∗ inG∗ mit lt(g) = lt(g ∗ ).
Wäre g −g ∗ 6= 0, so gäbe es ein Monom m in g −g ∗ . Dieses Monom käme etwa
in g vor, wäre aber nicht durch lt(g) teilbar, da lt(g) = lt(g ∗ ). Da G reduziert
ist, wäre m durch kein lt(h); h ∈ G \ {g} teilbar. Also m ∈<
/ lt(G) >= I.
Andererseits ist aber g −g ∗ ∈ I, und daher lt(g −g ∗ ) ∈< lt(I) >=< lt(G) > .
Also ist g − g ∗ = 0, was G ⊂ G∗ bedeutet und per Rollentausch G = G∗ .
6.2
Automatisches Beweisen
Als Anwendung soll der folgende Satz der Euklidischen Dreieckslehre mit
Buchbergers Algorithmus bewiesen werden:
Satz 6.2 Die drei Seitenhalbierenden eines Dreiecks schneiden sich in einem
Punkt S, genannt Schwerpunkt, und dieser teilt die Seitenhalbierenden im
Verhaltnis 1 : 3.
Zunächst wird der Satz “algebraisiert”. Da er invariant ist gegenuber Translation, Rotation und Skalierung, kann angenommen werden, dass A =
(0, 0), B = (1, 0) , C = (x, y) die Ecken des Dreiecks sind, und daher die
Mittelpunkte der Seiten
1
x+1 1
x y
AB : R = ( , 0); BC : p = (
, ); AC : Q = , )
2
2
2
2 2
Sei s = (u, v) der Schnittpunkt von AP und BQ. Dann gilt: ( S liegt auf
AP ) ⇔ (AS und AP haben gleiche Steigung ) ⇔
x+1
u
=
; f1 = uv − v(x − 2) = 0
v
y
Analog gilt (S liegt auf BQ) ⇔ (f2 = (u − 1)y − v(x − 2) = 0, ) und ( S
liegt auf BC) ⇔ (g1 = y(2u − 1) − v(2x − 1) = 2uy − 2xv − y + v = 0.) Die
Behauptung über die Dreiteilung ist die folgende
(u, v) = AS = 2SP = (x + 1 − 2u, y − 2v)
(u − 1, v) = BS − 2SQ = (x − 2u, y − 2v)
(u − x, v − y) = CS = 2SR = (2u − 1, 2v)
Die erste Zeile ist gleichbedeutend mit den dreien und bedeutet
g2 = 3u − x − 1 = 0; g3 = 3v − y = 0
Nun folgt g1 +f1 +f2 = 0. Also folgt g1 = 0 aus f1 = f2 = 0. Der geometrische
Satz kann wie folgt algebraisiert werden:
(f1 = 0 ∧ f2 = 0) ⇒ (g1 = ∧g2 = 0 ∧ g3 = 0)
33
(Diese Algebraisierung erfolgte über Koordinaten. Die Einführung von Koordinaten durch Descartes(1596 - 1650) erscheint uns heute selbstverständlich,
war aber den Griechen zur Zeit vonEuklid unbekannt)
Sei I =< f1 , f2 > das von f1 , f2 erzeugte Ideal. Wir wissen bereits : g1 ∈ I.
Wir berechnen nun eine Gröbner - Basis für < f1 , f2 > . bezüglich ≺=≺lex
; u ≺ v ≺ x ≺ y. Wegen f1 = uy − vx − v, f2 = uy − vx + 2v − y ist
S(f1 , f2 ) = f1 − f2 = 3v + y = −g3 = −g3 rem(f1 , f2 )
Man erhält also eine neue Basis {f1 , f2 , g3 }. Wegen
S(f1 , g3 )rem(f1 , f2 , g3 ) = S(f2 , g3 )rem(f1 , f2 , g3 ) = 0
ist (f1 , f2 , g3 ) Gröbner - Basis. Nach vorangegangenem Lemma kann man f2
weglassen: (f1 , g3 ) ist Gröbner - Basis. Zum Zwecke der Reduktion bilden wir
1
1
1
f3 = f1 remg3 = uy − vx − v + g3 x = uy − xy − y
3
3
3
1
1
1
Es ist dann G{uy − 3 xy − 3 y, v − 3 y} eindeutige, reduzierte Gröbner - Basis
von I. Sei nun f1 = 0 = f2 . Wegen f3 , g1, g2 ∈ I ist dann f3 = 0 = g1 = g2 .
Zwar ist wegen g2 remG = g2 6= 0, d.h. g2 kein Element von I ; aber wegen
f3 = 13 yg2 ist g2 = 0, falls f1 = 0 = f2 und y 6= 0. Aus Stetigkeitsgründen
folgt
(f1 = 0 ∧ f2 = 0) ⇒ (g1 = 0 ∧ g2 = 0 ∧ g3 = 0)
q.e.d.
6.3
Lösen von Polynomgleichungen
(Cox et al.(1997),(1998)) Gröbner - Basen wurden erfunden, um Gleichungssysteme der Form
f1 = 0, . . . fn = 0
zu lösen mit Polynomen f1 , . . . , fn ∈ F [x1 , . . . , xs ] = R, F Körper. Man
nennt
V (f1 , . . . , fn ) = {a ∈ F s |f1 (a) = . . . = fn (a)}
die Varietät, oder das Nullstellengebilde der f1 , . . . , fn - überF . Ist V eine
beliebige Teilmenge des F s , so ist das zugehörige Ideal- auch Verschwindungsideal genannt - definiert durch
IV = {g ∈ R|g(V ) = {0}}
F heißt algebraisch abgeschlossen, wenn jedes f ∈ F [x] eine Nullstelle
a ∈ F hat. Es gilt
34
Theorem 6.4 ( Hilberts Nullstellensatz) Sei F algebraisch abgeschlossen.
Dann gilt
(g ∈ IV (f1 , . . . , fn )) ⇔ (∃e ∈ N : g e ∈< f1 , . . . , fn >)
Ein wichtiger Spezialfall liegt vor, wenn V (f1 , . . . , fn ) nulldimensional, soll
heißen : endlich ist.
Beispiele 6.3
1. Wir wollen das Gleichungssystem
x2 + y + z − 1 = 0; x + y 2 + z − 1 = 0; x + y + z 2 − 1 = 0
lösen. Wäre es ein lineares Gleichungssystem, so könnte man es durch
elementare Zeilenoperationen auf Dreiecksform bringen, und dann “von
unten aufrollen”, d.h. die Variablen eine nach der anderen bestimmen.
Im polynomiellen Fall leistet der Buchberger Algorithmus häufig ähnliches: es ist G = {g1 , g2 , g3} Gröbner - Basis des Ideals
I =< x2 + y + z − 1, x + y 2 + z − 1, x + y + z 2 − 1 >
mit g1 = x + y + z 2 − 1, g2 = y 2 − y − z 2 + z, g3 = 2yz 2 + z 4 − z 2 , und
g4 = z 6 − 4z 4 + 4z 3 − z 2 = z 2 (z − 1)2 (z 2 + 2z − 1)
(Verifikation mit S-Test) Hier hat man insofern “ Dreiecksform”, als
g4 nur von z abhängt - man sagt: g4 eliminiert x, y - und g3 , g2 nicht
von x abhängen - man sagt : g2 , g3 eliminieren x. Nullstellen von g4
sind
√
√
0, 1, −1 + 2, −1 − 2
Diese sogenannten partiellen Nullstellen lassen sich fortsetzen zu
Nullstellen (y, z) von g2 , g3 , wie man durch Einsetzen feststellt. Schließlich setzt man die sogewonnenen Nullstellen zu Nullstellen von I fort,
was problemlos ist, da x linear in g1√vorkommt:
aus
√ V (I) besteht
√
(1, 0, 0),
(0,
1,
0),
(0,
0,
1)
,
(−1
+
2,
−1
+
2,
−1
+
2),
und
√
√
√
(−1 − 2, −1 − 2, −1 − 2)
2. Welches Sind die gemeinsamen Nullstellen von I =< xy −1, xz −1 > ?
Eine Gröbner- Basis bez. lex ist {xy − 1, xz − 1, y − z}. y − z eliminiert
x. ( I2 = {0} im Sinne des Eliminationstheorems unten.) Nullstellen
sind (a, a) ∈ k 2 . Die partielle Nullstelle (a, a) ist genau dann zu einer
Nullstelle von I, nämlich ( a1 , a, a) fortsetzbar, wenn a 6= 0. Dies ist
gerade die Bedingung im Fortsetzungssatz weiter unten.
35
3. Eine Gröbner-Basis G für das Ideal I =< x2 + y 2 + z 2 − 1 >, xyz − 1 >
ist
g1 = y 4 z 2 + y 2 z 4 − y 2z 2 + 1, g2 = x + y 3 z + yz 3 − yz
(Mit S-Test nachprüfen.) Dabei ist die Ordnung lex mit x y z
zugrunde gelegt. Es ist in G kein Polynom, das x und y eliminiert,
m.a.W. I2 = 0. (siehe unten) Dies bedeutet aber, dass jedes c ∈ C
partielle Nullstelle ist. g1 eliminiert x , oder : I1 =< g1 > . Setzt man
c in g1 ein, so erhält man ein Polynom g1 (y, c) ∈ C[y], welches, da C
algebraisch abgeschlossen ist, genau dann eine Nullstelle b hat, wenn
c 6= 0. (Siehe Fortsezungssatz unten) Setzt man nun (b, c) in g2 ein
so erhält man, da g2 linear in x ist eine Nullstelle (a, b, c) von I mit
a = −b3 c − bc3 + bc. Damit ist V (I) bestimmt. Übrigens erhält man mit
y 2 = u für b die Formel
s
r
c2 − 1
c2 − 1 2
± (
) − c−2
b=± −
2
2
Es ist klar, dass sich die Nullstellen eines allgemeinen Polynoms in einer
Variablen z nicht so einfach handhaben lassen wie die von g4 . Was benötigt
wird, ist vor allem eine Kodierung die - bei dem anschließenden Einsetzen Addition und Multiplikation erlaubt.
Wenn es eliminierende Polynome in I gibt, - das sagt das folgende Theorem
- dann findet man sie in einer Gröbner - Basis. (Beachte die Abhängigkeit
von einer Ordnung)
Theorem 6.5 (Elimination)Sei I ein Ideal in k[x1 , . . . , xn ] und G eine
Gröbner- Basis von I bez. der lexikographischen Ordnung lex. mit x1 x2 . . . xn . Dann ist für jedes 0 ≤ l ≤ n
Gl = G ∩ k[x1 , . . . , xn ]
eine Gröbner- Basis des l-ten Eliminationsideals
Il = I ∩ k[x1 , . . . , xn ]
Der Einfache Beweis sei dem Leser überlassen.
Theorem 6.6 (Fortsetzungssatz) Sei I =< f1 , . . . , fs >⊂ C[x1 , . . . , xn ] und
I1 das erste Eliminationsideal von I :
I1 = I ∩ C[x2 , . . . , xn ]
36
1
Es sei fi = gi (x2 , . . . , xn )xN
1 + ri mit einem Polynom gi C[x2 , . . . , xn ] \ {0}
und ri ∈ C[x1 , . . . , xn ] mit degx1 ri < Ni . Sei (a2 , . . . , an ) ∈ V (I1 ) partielle
Nullstelle. Wenn (a2 , . . . , an ) 6∈ V (g1 , . . . , gs ), dann gibt es ein a1 ∈ C mit
(a1 , . . . , an ) ∈ V (I).
Für den Beweis ( mit Resultanten ) sei auf Cox e.a.(1997) verwiesen.
6.4
Implizitation
Man sagt, eine Varietät, oder allgemeiner eine Teilmenge V des k n sei explizit oder parametrisch gegeben, wenn
V = f (k m )
für eine surjektive Abbildung f : k m → k n . Die Elemente von k m heißen in
diesem Zusammenhang Parameter. z.B. ist
t → eit
eine parametrische Darstellung des Kreises V , während
V = {(x, y) ∈ k 2 |x2 + y 2 − 1 = 0}
eine implizite Darstellung von V ist. In einer impliziten Darstellung von V
ist V die Lösungsmenge einer Menge von Gleichungen, oder das Nullstellengebilde eines Ideals I von Funktionen. In einer expliziten Darstellung tritt
ein Existenzquantor auf:
V = {x ∈ k n |∃y ∈ k m , x = f (y)}
In einer impliziten Darstellung ist es ein Allquantor:
V = {x ∈ k n |∀f ∈ I : f (x) = 0}
Die verschiedenen Darstellungen sind in veschiedenen Situationen nützlich:
z.B. ist für die Elementfrage, ob v ∈ V i.A. eine implizite Darstellung effektiver als eine explizite, insbesondere wenn es sich um endlich viele (wie nach
Hilberts Basissatz) einfache Gleichungen handelt. Hingegen ist zum Zwecke
der Bezeichnung, Steuerung u.s.w. eines Elementes aus V eine parametrische
Darstellung vorteilhaft.
Bekanntlich sorgt der Satz von der implizit definierten Funktion für “Explizitation” . Das Problem der polynomiellen “ Implizitation” wird von Gröbner Basen im Zusammenhang mit dem Eliminationssatz gelöst:
37
Theorem 6.7 (Polynomielle Implizitation) Sei k ein unendlicher Körper,
f1 , . . . , fn ∈ k[t1 , . . . , tm ], F = (f1 , . . . , fn ), V = F (k m ),
I =< x1 − f1 , . . . , xn − fn >⊂ k[t1 , . . . , tm , x1 , . . . , xn ]
Sei Im = I ∩k[x1 , . . . , xn ] das m-te Eliminations Ideal (bez. einer Ordnung ≺
, für welche alle ti größer sind als alle xj ). Dann gilt I(V ) = Im und V (Im )
ist dei kleinste Varietät, die V enthält, d.h.
V IV = V Im
Siehe Cox et al.(1997) für einen Beweis.
Beispiele 6.4
1. Welche Polynome sind Quadrate?
Sei f = f0 + f1 x + f2 x2 ∈ k[x]. Gibt es g = g0 + g1 x ∈ k[x] mit
f = g 2 = g02 + 2g0 g1 x + g12 x2 ? Offenbar müssen die fi die Gleichung
4f0 f2 − f12 = 0 erfüllen. Zusätzlich müssen f0 , f√
1 Quadrate√sein. Für
K = C gibt es keine Probleme: Wählt man g0 = f0 , g1 = f1 , so ist
f = (g0 + g1 x)2 , falls 4f0 f2 − f12 = 0. (Man hat 4 Lösungen.)
2. Die Frage nach Gleichungen für die Koeffizienten
X
Fk =
fi fj
i+j=k
von Quadraten f 2 = (f0 + f1 x + . . . + fn xn )2 ist ein Implizitationsproblem: sei F = (F0 , . . . , F2n ). Dann ist die Menge V der Quadrate vom
Grad ≤ 2n parametrisch gegeben durch V = F (k n ). Es ist eine Basis von IV gesucht. Der Implizitationssatz legt folgenden Algorithmus
nahe: Setze
J =< F0 − x0 , F1 − x1 , . . . , F2n − x2n >
Die Elemente einer Gröbner- Basis von J , die nur von den x0 , . . . , x2n
abhängen, beantworten die Frage. Der Einfachheit halber wählen wir
n = 2 und betrachten nur monische Polynome, d.h. fn = 1. Wiederholtes Bilden von S− Polynomen,- oder Probieren- ergibt die beiden
folgenden Elemente von J, die die fj eliminiweren:
g1 = x23 x0 − x21 , g2 = x33 − 4x3 x2 + 8x1
Weil V zwei Freiheitsgrade hat, und (f0 , f1 , f2 , f3 ) ∈ k 4 kann man auf
die Idee kommen, dass diese beiden Gleichungen ausreichen, um V
38
zu beschreiben. Inder Tat: wenn F0 , . . . , F3 die Gleichungen g1 (Fi ) =
g2 (Fi ) = 0 erfüllen, dann ist
p
1
F0 + F1 x + F2 x2 + F3 x3 + x4 = ( F0 + F3 x + x2 )2
2
falls die geeignete Wurzel gewählt wird. Dass in diesem Fall die gefundenen Gleichungen notwendig und hinreichend für die Zugehörigkeit zu
V sind, d.h V = V IV, liegt daran, dass die Fi , wenn man die Bedingung
fn = 1 fallen läßt, homogene Polynome in den fj sind.
39
7
Symbolische Integration
In diesem Abschnitt geht es um einen Algorithmus, der bei Eingabe einer
“elementaren” Funktion u entscheidet, ob u eine elementare Stammfunktion
v d.h. u = v 0 besitzt, und falls dies der Fall ist, ein solches v ausgibt. Die erste
Hälfte eines solchen Algorithmus ist in Buchform erschienen: M. Bronstein
1997 Der vorliergende Abschnitt ist diesem Buch entnommen und behandelt
rationale Eingaben u ∈ C(x).
R
Beispiele 7.1
1. x1 = logx, d.h. (logx)0 = x1 ;
√
√
√
√
R
2. x21−2 = 42 log(x − 42 ) − 42 log(x + 2)
R
3. x31+x = logx − 12 log(x2 + 1).
R
4 +1
5
4. x5x
5 +x+1 = log(x + x + 1)
Das Gebiet gehört zur sogenannten Differentialalgebra, wo es darum geht,
Differentilagleichungen mit algebraischen Methoden zu lösen. In der Tat kommen keine Grenzprozesse vor: die Ableitung ist eine lineare Abbildung f → f 0
mit der definierenden Eigenschaft (f g)0 = f g 0 + f 0 g. f ist Exponential von g,
wenn f 0 = gg 0, und f ist Logarithmus von g wenn f 0 = 1/g.
Definition 7.1 Sei R ein Ring (kommutativ, mit 1); D : R → R heißt Derivation, wenn
1. D(f + g) = D(f ) + D(g),
2. D(f g) = (Df )g + f (Dg)
(R, D) heißt dann Differentialalgebra R0 = {r ∈ R|Dr = 0} heißt Ring
der Konstanten
f heißt Integral von g , wenn Df = g. Man schreibt
R
f = g, obwohl f durch Df = g nur bis auf eine Konstante bestimmt ist.
Ferner schreibt man f 0 = Df.
Beispiele 7.2
nfn xn−1
1. R = F [x]; D(f0 + f1 x + . . . + fn xn ) = f1 + 2f2 x + . . . +
2. R = Ring der unendlich oft differenzierbaren
Funktionen f : Rn →
P ∂f
R, D ein Vektorfeld, d.h.Df = i vi ∂xi ; vi ∈ R.
3. Sind D1 , D2 Derivationen, so ist auch D1 + D2 , definiert durch (D1 +
D2 )f = D1 f +D2 f ein solcher, ebenso wie rD1 , r ∈ R, definiert durch
(rD1 )(f ) = r(D(f )).
40
Der Beweis des folgenden Lemmas sei dem Leser überlassen.
Lemma 7.1
1. D1 = 0
2. D(af + bg) = aDf + bDg; a, b ∈ R0 , f, g ∈ R,
3. D( fg ) =
(Df )g−f (Dg)
g2
,
4. D(f n ) = nf n−1 (Df )
Im folgenden sei R ein faktorieller Integritätsbereich mit einer Leiteinheitfunktion lc, und einem normalisierten ggt. (siehe Abschnitt 1) und einer
Derivation D. Wir betrachten den Ringhomomorphismus ϕ : Z → R, der
durch ϕ(1) = 1 gegeben wird. Dann ist ϕ−1 (0) = (p) ein Hauptideal ( da Z
ein Hauptidealring ist), und p eine Primzahl, da R Integritätsbereich ist.
Definition 7.2 p = char(R) heißt Charakteristik von R. Sei f =
f1e1 . . . frer die Primfaktorzerlegung von f ∈ R mit lc(f ) = lc(fi ) = 1. f1 . . . fr
heißt der quadratfreie Teil von f. Wenn e1 = . . . = er = 1, heißt f quadratfrei. (g1 , . . . gm ) ∈ Rm heißt quadratfreie Zerlegung von f , wenn die
gi quadratfrei und paarweise teilerfremd sind, (ggt(gi, gj ) = 1, i 6= j, und
m
f = g1 g22 . . . gm
Annahme: charR = 0; alle f ∈ R \ {0} sind normal, d.h. ggt(f, f 0) = 1.
Lemma 7.2 Sei f = f1e1 . . . fkek die Primfaktorzerlegung von f ∈ R, mit
lc(f ) = 1. Dann gilt
ggt(f, f 0) = f1e1 −1 . . . fkek −1
und f ist genau dann quadratfrei, wenn ggt(f, f 0) = 1.
P 0f
Beweis: Es gilt f 0 =
ei fi fi . Hier teilt fi jeden Summanden außer eventuell
den i-ten. Dieser ist
Y e
ei fiei−1 fi0
fj j
j6=i
Also gilt fiei −1 | f 0 , fiei - f 0 .
Die quadratfreie Zerlegung kann, im Gegensatz zur Primfaktorzerlegung,
schnell berechnet werden:
Algorithmus 7.1 (Yun’s quadratfreie Zerlegung für charR = 0. )
Input: f ∈ R mit lc(f ) = 1
Output: quadratfreie Zerlegung von f .
41
1. u ← ggt(f, f 0), v ← uf , w ←
2. i ← 1; repeat
hi ← ggt(vi, wi − vi0 ); vi+1 ←
until vi = 1;
k ← i − 1.
f0
f
vi
;
hi
wi −vi0
;
hi
wi+1 ←
i ← i + 1;
3. return (h1 , . . . , hk ).
Beispiele 7.3 Sei f = a2 b2 c3 d4 , a,b,c,d paarweise verschieden, prim.
f 0 = 2aa0 b2 c3 d4 + a2 2bb0 c3 d4 + a2 b2 3c0 c2 d4 + a2 b2 c3 4d0 d3
f
u = ggt(f, f 0) = abc2 d3 , v1 = = abcd; v10 = a0 bcd + ab0 cd + abc0 d + abcd0
u
f0
= 2a0 bcd + 2ab0 cd + 3abc0 d + 4abcd0 ; h1 = ggt(v1, w1 − v10 ) = 1
w1 =
u
v2 = v1 , w2 = w1 − v10 = a0 bcd + ab0 cd + 2abc0 d + 3adcd0
h2 = ggt(v2 , w2 − v20 ) = ggt(abcd, abc0 d + 2abcd0 ) = ab
w2 − v20
= c0 d + 2cd0 ; w3 − v30 = c0 d + 2cd0 − c0 d − cd0 = cd0 ;
w3 =
ab
h3 = ggt(v3 , w3 − v30 ) = ggt(cd, cd0) = c
cd
v4 =
= d, w4 = d0 ; w4 − v40 = 0;
h3
h4 = ggt(v4 , w4 − v40 ) = d; (h1 , h2 , h3 , h4 ) = (1, ab, c, d)
Satz 7.1 Yun’s Algorithmus ist korrekt. Im Fall von R = F [x], degf = n ≥ 1
benötigt er O(M(n)logn) Operationen in F.
m
Beweis: Sei (g1 , . . . , gm ) die quadratfreie Zerlegung von f = g1 g22 . . . gm
.
m−1
Dann ist u = g1 g32 . . . gm
, v1 = g1 . . . gm ,
w1 =
X gj0
X
gj0
v1 ; w1 − v10 =
(j − 1) v1 , ggt(v1, w1 − v10 ) = g1 = h1 .
g
gj
1≤j≤m j
Sei nun schon gezeigt, dass
hi = gi , vi
Y
gi , wi =
i≤j≤m
X
(j − i + 1)
i≤j≤m
gj0
vi
gj
dann gilt offenbar
vi+1 =
Y
i+1≤j≤m
gj ; wi − vi0 =
42
X
(j − i)
i≤j≤m
gj0
vi
gj
Also gilt
wi+1 =
X
gj0
wi − vi0
=
(j − i) vi+1
hi
gj
1+i≤j≤m
Damit folgt hi+1 = ggt(vi+1, wi+1 − vi+10 ) = gi+1 q.e.d.
Algorithmus 7.2 ( Hermite-Reduktion) Input: f, g1 . . . gm ∈ R, R euklidisch mit Derivation 0 , (g1 , . . . , gm ) quadratfreie Zerlegung von g;
Output: a, b ∈ R mit
f
a
bgm
= ( m−1 )0 +
g
gm
g
1. Berechne mit dem EEA a, c ∈ R, so dass
−m 0
aggm
gm + cgm =
f
1−m
−m 0
2. b ← −ggm
a − (1 − m)c
3. gib a, b aus.
Satz 7.2 Der Algorithmus arbeitet korrekt.
Zum Beweis setzt man in die zu verifizierende Gleichung für f und b ein und
leitet den mittleren Term ab.
Um nun für fg f, g ∈ F [x] eine Stammfunktion zu finden, geht man so vor
1. Division mit Rest: f = qg + h, degh < degg;
f
g
= q + hg ;
m
2. Quadratfreie Zerlegung: g = g1 g22 . . . gm
;
3. Wiederholte Hermite- Reduktion.
Man erhält auf diese Weise als Zwischenergebnis das folgende Theorem:
Theorem 7.1 Seien f, g ∈ F [x], degf ≤ n; degg ≤ n. Dann gibt es v, w, g ∈
R so dass g quadratfrei, und
f
w
= v0 −
g
g
Diese Polynome können mit O(M(n)logn) Operationen in F berechnet werden.
43
Was übrig bleibt, wird mit dem Algorithmus von Rothstein und Trager behandelt. Hierzu wird die Resultante res(f, g) zweier Polynome benötigt, die
jetzt erklärt werden soll:
Sei R ein Ring, f, g ∈ R[x],
X
X
f=
fj xj , g =
gj xj
o≤j≤n
0≤j≤m
Diese Polynome definieren eine lineare Abbildung :R[x] × R[x] → R[x] definiert durch (s, t) → sf + tg. Sei Pd = {f ∈ F [x]|degf < d}. Schränkt man
die lineare Abbildung auf Pm × Pn ein, so erhält man eine lineare Abbildung
ϕn,m (f, g) : Pm × Pn → Pn+m .
Definition 7.3 resx (f, g) = resn,m (f, g) = detϕn,m (f, g) heißt Resultante
von (f, g) zum formalen Grad (n, m).
Man führt hier den Formalen Grad an, weil nicht vorrausgesetzt wird, dass
fn 6= 0, oder gm 6= 0. Sollte fn = 0 = gm sein, so ist resn,m (f, g) = 0,
wie man aus der folgenden Matrixdarstellung sieht. Bezüglich der Basis der
(xi , 0); 0 ≤ i < m, (xj , 0), 0 ≤ j < n in Pm × Pn , und (xn+m−1 , . . . x, 1) in
Pn+m hat ϕ4,3 die folgende Matrix, genannt Sylvester-Matrix


f4 0 0 g3 0 0 0
f3 f4 0 g2 g3 0 0 


f2 f3 f4 g1 g2 g3 0 



Sylv(f, g) = 
f
f
f
g
g
g
g
1
2
3
0
1
2
3


f0 f1 f2 0 g0 g1 g2 


 0 f0 f1 0 0 g0 g1 
0 0 f0 0 0 0 g0
Die Resultante ist ein Polynom mit ganzzahligen Koeffizienten in den fi , gj .
Ihre Bedeutung kommt am besten in einem Erweiterungsring zum Ausdruck,
in welchem f und g in Linearfaktoren zerfallen.
Theorem 7.2 Sei R ein Ring,a, b, α1 , . . . αn , β1 , . . . , bm ∈ R, A = a(x −
α1 ) . . . (x − αn ), B = b(x − β1 ) . . . (x − βm . Dann gilt
n Y
m
Y
(αi − βj )
res(A, B) = am bn
= am
i=1 j=1
n
Y
B(αi )
i=1
nm n
= (−1)
b
m
Y
j=1
44
A(βj )
Einen Beweis findet man z.B. in S.Lang’s Algebra.(letzte Auflage) Als Korollar erhält man eine Gleichung, auf der man einen Algorithmus aufbauen
kann, den sogenannten “Subresultanten- Algorithmus.”(siehe Lemma 10.3 )
Korollar 7.1 Sei c ∈ R, Q, S ∈ R[x], und cB = QA + R. Dann gilt
cn res(A, B) = res(A, S)
Wenn hier degS < degA, handelt es sich um eine Pseudodivision
Satz 7.3 (Pseudodivision) Sei D Integritätsbereich,a, a ∈ D[x], degb < dega.
Dann gibt es eindeutig bestimmte q, r ∈ D[x] mit
lc(b)1+dega−degb a = qb + r; degr < degb
q = a(pquo)b heißt Pseudoquotient,r = a(prem)b heißt Pseudorest von
a bei Division durch b.
Beweis: mit Induktion nach dega.
Algorithmus 7.3 (Pseudodivision)
Inputa, b ∈ D[x], D Integritätsbereich, b 6= 0,
Output q = a(pquo)b, r = a(prem)b
1. β ← lcb, N ← dega − degb + 1, q ← o, r ← a, δ ← degr − degb
2. while r 6= 0 and δ ≥ 0 do
T ← lc(r)xδ , N ← N − 1, q ← βq + T, r ← bR − T b
3. return β N q, β N r)
Man kann nun die Resultante mit einer “ Pseudorestfolge” berechnen:
Definition 7.4 Sei D ein Integritätsbereich, a, b ∈ D[x], b 6= 0, dega ≥
degb. Eine Folge (r0 , r1 , . . . ) von Polynomen in D[x] heißt Ppolynomrestsequenz, PRS,wenn
1. r0 = a, r1 = b
45
2. Es gibt βi ∈ D \ {0} so dass
βi ri+1
(
0, falls ri = 0
=
ri−1 premri sonst
PRS’s sind Verallgemeinerungen des euklidischen Algorithmus. Sie entsprechen dem Wunsch, im Koeffizientenbereich D zu bleiben, und nicht in dessen Quotientenkörper zu gehen. Dies ist besonders interessant, wenn man es
mit mehreren Variablen zu tun hat, und D = k[x1 , . . . , xn−1 ]. Wählt man
βi = 1 so erhält man die euklidische PRS: Wählt man βi den ganzen Teil
von Ri−1 premRi , so erhält man die primitive PRS. Ein Beispiel ist die von
Collins und Brown entdeckte “Subresultanten”PSR:
Satz 7.4 Definiert man rekursiv
R0 = A, R1 = B, γ1 = −1, β1 = (−1)δ1 +1 , δ1 = degR0 − degR1
βi Ri+ = Ri−1 premRi
γi+1 = (−lc(Ri )δi γi1−δi
δ
i+1
βi+1 = −lc(Ri )γi+1
δi+1 = degRi − degRi+1
so ist (R0 , R1 , . . . ) eine PRS.
Theorem 7.3 ( Rothstein - Trager Algorithmus)
Es sei F ein Körper der Charakteristik 0. a, b ∈ F [x] seien teilerfremde Polynome mit dega < degb, und b monisch, quadratfrei, und r(y) = resx (b, a−vb0 )
die Resultante von b und a − yb, wo y eine neue Unbestimmte. E sei ein Erweiterungskörper von F , indem r zerfällt. Dann gilt
1.
Z
a X
=
ci log(ggt(b, a − ci b0 ))
b
i
wobei {c1 , . . . , cl } die Nullstellenmenge von r. Die vi = ggt(b, a − ci b0 )
sind monisch, quadratfrei und teilerfremd.
R
P
2. Es gelte ab = i di logwi mit paarweise verschieden d1 , . . . , dl ∈ E,
und teilerfremden, monischen, quadratfreien wi ∈ F [x]. Dann gilt wi =
ggt(b, a − di b0 ), {d1, . . . , dl } = r −1 (0).
46
Beispiele 7.4 a = 1, b = x3 + x, r = resx (x3 + x, 1 − y(3x2 + 1)) =


1 0 −3y
0
0
0 1
0
−3y
0 


0
−3y 
det 
1 0 1 − y

0 1
0
1−y
0 
0 0
0
0
1−y
= −4y 3 + 3y + 1 = −(y − 1)(2y + 1). Die Nullstellen von r sind 1, − 21 , und
daher
1
v1 = ggt(x3 + x, 1 + (3x2 + 1)) = x2 + 1
2
v2 = ggt(x3 + x, 1 − (3x2 + 1)) = x
⇒
Z
a
1
= − log(x2 + 1) + logx
b
2
Beweis des Theorems:
Wir beginnen mit dem Beweis der zweiten Aussage, weil diese als Heuristik
für die erste Aussage aufgefaßt werden kann: Ableiten der vorrausgesetzten
Gleichung ergibt :
a X wi0
=
di
b
wi
Q
Nach Multiplikation mit b wj erhält man
Y
X
Y
a
wi = b
di ui wi0 , ui =
wj
i
j6=i
Q
Q
Hieraus folgt
b
=
w
,
denn
wegen
der
Teilerfremdheit
von
a,
b
gilt
b|
wj .
j
P
0
0
0
Aus wi |b dj uj wj und wi |dj uj wj für j 6= i folgt wi |bdi ui wi . Da aber die wj
paarweise teilerfremd und quadratfrei
sind, geht
Q
Q das nur, wenn wi |b.PDie Tei-0
lerfremdheit der wj hat deshalb wj |b, b = wj , und damit a =
dj u j wj
zur Folge. Setzt man dies für a, b ein, so verifiziert man leicht, dass
(
wj , falls c = dj ∈ {d1 , . . . , dl }
ggt(b, a − cb0 ) =
1 sonst
Nun gilt aber
r(c) = 0 ⇔ resx (b, a − cb0 ) = 0 ⇔ ggt(b, a − cb0 ) 6= 1 ⇔ c ∈ {d1 , . . . dl }
47
damit ist die zweite Aussage bewiesen.
Nun beweisen wir die erste Aussage, also die Korrektheit des Trager- Rothstein Algorithmus. Man setze vj = ggt(b, a − cj b0 ). Dann ist nur
Y
X
Y
b=
vj , a =
cj uj vj0 ; uj =
vi
i6=j
Q
zu zeigen. Sei dazu b = (x − λk ) die Zerlegung in Linearfaktoren von b über
einem Zerfällungskörper von b. Da b nach Annahme quadratfrei ist, sind die
λk paarweise verschieden. Setzt man
c=
a(λk )
b0 (λk )
so gilt (a − cb0 )(λk ) = 0, d.h. (x − λk )|a − cb0 , also x − λk |ggt(b, a − cb0 ). Dies
bedeutet aber,
Qdass r(c) = 0, d.h. c = cj für ein j ∈ {1, . . . l}, und damit
x − λk |vj , b| vi . Hätten nun vi und vj einen gemeinsamen nichttrivialen
Teiler, so wäre ein x − λk ein solcher. Dann wäre aber
ci =
a(λk )
= cj
b0 (λk )
Q
d.h. i = j. Also sind die vj teilerfremd. Da trivialerweise
v
|b,
hat
man
vj |b,
j
Q
und damit, da die Polynome monisch sind, b =
vj . Offenbar sind die vj
auch quadratfrei. Nun die Gleichung für a. Weil vj |a − cj b0 , und
X
Y
vk
b0 =
vi0 uj ; uj =
k6=j
gilt vj |a − cj vj0 uj . Setze
ã =
X
cj vj0 uj
Q
Dann gilt vj |a−ã, und da die vj teilerfremd sind: b = vj |a−ã. Andererseits
ist degã ≤ dega < degb, nach Annahme. Daher ist a = ã. q.e.d.
Es soll nun die Aufgabe, eine Stammfunktion zu finden von den rationalen
Funktionen auf eine größere Klasse von Funktionen erweitert werden.
Definition 7.5 Sei (F, D) ein Differentialkörper. Eine Diffrerentialerweiterung ist ein Differerentialkörper (K, DK ) so dass F ein Unterkörper
von K ist, und Df = DK f für f ∈ F. f ∈ K heißt algebraisch über
F , wenn es ein p ∈ F [x] \ {0} gibt, so dass p(f ) = 0. Anderenfalls heißt
f transzendent über F. f heißt elementares Monom über F , wenn f
transzendent ist, wenn F (f )0 = F0 (Konstantenkörper) und entweder
48
1. ∃η ∈ F : f 0 =
oder
η0
;
η
(in diesem Fall heißt f logarithmisch über F ) ;
2. ∃η ∈ F : f 0 = η 0 f ; (in diesem Fall heißt f exponentiell über F.)
K heißt elementare Erweiterung von F , wenn θ1 , . . . , θm ∈ K existieren,
so dass K = F (θ1 , . . . , θm ) und entweder
θi algebraisch über F (θ1 , . . . , θi−1 ) oder
θi elementares Monom über F (θ1 , . . . , θi−1 ).
Wir bezeichnen mit F̄ einen algebraischen Abschluss von f.
Theorem 7.4 (Liouville, Risch) Sei F Differentialkörper der Charakteristik
Null, und α ∈ F. Wenn es ein y in einer elementaren Erweiterung K von
F gibt mit y 0 = α, dann gibt es v ∈ F, c1 , . . . , cn ∈ F̄0 , u1 , . . . , un ∈ F¯0 K, so
dass
α = v0 +
X u0
ci i
ui
49
8
8.1
Kurze Vektoren in Gittern
Zusammenfassung
Gitter im Rn bestehen aus den ganzzahligen Linearkombinationen einer Basis. Anders ausgedrückt: es sind die diskreten, additiven Untergruppen des
Rn vom Rang n. Die Quotienten Rn /Gitter sind Tori, und spielen in der
Mechanik eine Rolle als “ Phasenräume”.
7.2 ist dem “ Gittersatz von Minkowski gewidmet und soll auf die Bedeutung
von kurzen Gittervektoren bei scheinbar weit auseinanderliegenden Fragen
hinweisen, z.B. bei der Darstellung ganzer Zahlen als Summe von Quadraten.
7.3 handelt von dem algorithmischen Problem, effektiv kurze Gittervektoren
zu berechnen. Diese Problem gehört zu denjenigen, die durch die moderne
Kryptographie (siehe Arbeiten und Vorlesungen von C.P.Schnorr )besonders
interessant geworden sind. Weil nämlich die Berechnung von kürzesten Gittervektoren “ NP” - vollständig ist, kann man diese als geschützte Geheimnisse ansehen. Wegen dieser Schwierigkeit war der LLL- Algorithmus von
Lenstra, Lenstra, Lovász (1982), der relativ kurze Gittervektoren polynomiell
berechnet ein “ Durchbruch”. Er ist heutzutage die erfolgreichste Methode,
kryptographische Systeme zu brechen. Weitere Anwendungen in
7.4: ganzzahlige Programmierung und Faktorisieren von Polynomen in einer
Variablen mit ganzzahligen Koeffizienten.
8.2
Minkowskis Gittersatz
Definition 8.1 Seien n ∈ N, f1 , . . . , fn ∈ Rn linear unabhängig. Dann heißt
X
X
L=
Zfi = {
ri fi |ri ∈ R}
das von {f1 , . . . , fn } erzeugte Gitter, und {f1 , . . . , fn } Basis von L. Ist
f die durch f (ei ) = fi definierte lineare Abbildung f : Rn → Rn , so hängt
|detf | nicht von der Wahl der Basis (f1 , . . . , fn ) ab, wie unten gezeigt wird,
und wird Norm von L genannt: |L| = |detf |.
Beispiele 8.1 n = 2; f1 = (12, 2); f2 = (13, 4); L = Zf1 + Zf2 ;
12 2
| = 48 − 26 = 22
|L| = |det
13 4
g1 = f2 − f1 = (1, 2); f1 − g1 = (11, 0) = g2 ergibt ebenfalls eine Basis von L.
Offenbar ist g1 der kürzeste Vektor in L.
50
Satz 8.1 Seien g1 , . . . , gn ∈ L und die lineare Abbildung g : Rn → Rn
definiertPdurch geP
i = ei . Dann gibt es eine ganze Zahl z, so dass detg = zdetf.
Es gilt
Zgi = Zfi genau dann, wenn |detf | = |detg|.
Bekanntlich handelt es sich bei |detf | um das Volumen des von den f1 , . . . , fn
aufgespannten Parallelepipeds.
P
P
Beweis:
Es
gibt
γ
∈
Z,
so
dass
g
=
γ
f
⇒
g
=
gij ej =
ij
i
ik
k
i
P
P
γikP
fk =
γP
ik fkj ej → detg = det(gij ) = det(γik )det(fkj ) = zdetf. Wenn
nun
Zgi =
Zfi , dann gilt ebenfalls detf = z 0 detg = zz 0 detf, zz 0 =
1, |z| = 1. Dann ist aber auch det(γij ) = ±1. Nach Cramers Regel gilt für
das Inverse von (γij )
(γij )−1
kl =
det(γij )kl
det(γij
Hieraus ersieht man, dass (γij )−1 ) ganzzahlige Einträge hat, was bedeutet,
P
dass
Zgi =
P sich auch die fi ganzzahlig aus den gi kombinieren lassen :
Zfi .
Offenbar bilden die Elemente eines Gitters eine additive Untergruppe des
Rn , deren lineare Hülle über R der ganze Rn ist . Wir werden die folgenden
Bezeichnungen verwenden
X
X
< L >R = {
ri li |ri ∈ R; li ∈ L}; < L >Z = {
zi li |zi ∈ Z; li ∈ L}
Ein Gitter ist eine diskrete Teilmenge von Rn in folgendem Sinne
Definition 8.2 Eine Teilmenge T eines topologischen Raumes X heißt diskret, wenn jedes Element t ∈ T eine Umgebung V besitzt, so dass V ∩ T =
{t}.
Wir werden jetzt zeigen, dass jede diskrete additive Untergruppe des Rn ein
Gitter ist.
Sei B eine abgeschlossene Teilmenge des Rn und a ∈ Rn . Dann gibt es ein
b ∈ B, das den Abstand zu a minimiert:
d(a, B) = d(a, b) = Min{ka − ck|c ∈ B}
(Weil der Durchschnitt einer abgeschlossenen Kugel mit B kompakt ist.) Ist
nun B kompakt und A ⊂ Rn abgeschlossen, so gibt es ein a1 ∈ A, mit
d(a1 , B) = Min{d(a, B)||a ∈ A}
Beispiele 8.2 Sei
n = 2, B = {(x1 , 0)|x1 ∈ R}, A = {(x1 , x2 ) ∈ R2 |x1 x2 = 1}.
51
A und B sind abgeschlossen, B nicht kompakt. Entsprechend ist
Inf {d(a, B)|a ∈ A} = 0, und es gibt kein Min{d(a, B)|a ∈ A}.
Lemma 8.1 Sei A eine diskrete additive Untergruppe des Rn , a1 , . . . , ak ∈
A, B =< a1 , . . . , ak >R , und A \ B 6= ∅. Dann gibt es a ∈ A \ B mit
d(a, B) = Min{d(a0 , B)|a0 ∈ A \ B} = d(A \ B, B)
Beweis: Wähle eine R− Basis (b1 , . . . , bk ) von B. Sei Q der zugehörige abgeschlossene Einheitswürfel:
Q = {x1 b1 + . . . + xk bk |0 ≤ xi ≤ 1}
Q ist kompakt. Ist a ∈ A \ B, b ∈ B, b = x1 b1 +
. . . + xk bk , so
gibt es a0 ∈
P
P
A\B, q ∈ Q mit a−b = a0 −q, nämlich : a0 = a− bxi cbi , q = (xi −bxi c)bi .
Also existiert
Min{d(a, B)|a ∈ A} = Min{d(a, Q)|a ∈ A} = d(A, B)
nach obigem. Damit erhält man den schon erwähnten Satz:
Satz 8.2 Sei A additive, diskrete Untergruppe von Rn , und
k = dimR < A >R . Man definiere ai , Ai , 1 ≤ i ≤ k induktiv durch
ka1 k = Min{kak|a ∈ A \ {0}} , A0 = {0},
Ai =< {ai , . . . ai } >R , ai+1 ∈ A \ Ai , d(ai+1 , Ai ) = d(A \ Ai , Ai )
P
Dann gilt : A = Zai .
Beweis: Es ist klar, dass die ai R− linear unabhängig sind und deswegen
eine R− Basis von < A >R bilden. Zu gegebenem a ∈ A gibt es daher reelle
xi so dass a = x1 a1 + . . . , xl al . Zu zeigen: xi ∈ Z. Wegen
X
X
a=
bxi cai +
(xi − bxi c)ai
kann angenommen werden, dass |xi | < 1. Dann genügt es zu zeigen, dass
xl = 0. Es sei al = b + c, wo b ∈ Al−1 , und c senkrecht auf Al−1 d.h.
< c, ai >= 0, 1 ≤ i ≤ l − 1. Der Abstand von al zu Al−1 ist kck, der von a
zu Al−1 ist |xl |kck < kck. Auf Grund der Definition von al ist nun xl = 0.
q.e.d.
52
Definition 8.3 Sei (f1 , . . . , fn ) eine Basis des Rn . Die fi∗ seien induktiv
definiert durch
f1∗
= f1 ;
fi∗
= fi −
X
µij fj∗ ; µij
1≤j<i
< fi , fj∗ >
, 1 ≤ j < i.
=
< fj∗ , fj∗ >
(f1∗ , . . . fn∗ , µij ) heißt Gram-Schmidt-Ortogonalisierung, GSO
(f1 , . . . , fn ).
von
Der einfache Beweis des folgenden Satzes sei dem Leser überlassen.
Satz 8.3
1. Die GSO kann mit O(n3 ) arithmetischen Operationen in R
bez. in Q falls die fi ∈ Qn , aus den f1 , . . . , fn berechnet werden.
2. < fi∗ , fj∗ >= 0; i < j. (Orthogonalität)
3.
  
f1
 ..  
.=
fn
1
..
.
µn1
 
f1∗
... 0


.
..
.   .. 
... 1
fn∗
4.
X
Rfi =
1≤i≤k
X
Rfi∗ = Uk
1≤i≤k
5. fk∗ ist die Projektion auf das orthogonale Komplement von Uk−1 ; (mit
⊥
bezeichnet)
Uk−1
6. kfk∗ k ≤ kfk k;
7.
 
 
f1
f1∗
 
 
det  ...  = det  ... 
fn
Satz 8.4 ( Hadamard)
fn∗
|det(f1 , . . . , fn | = kf1 kkf2 k . . . kfn k
53
Zum Beweis sei an den Begriff einer orthogonalen Matrix O erinnert: eine
Matrix O heißt orthogonal, wenn ihre Spaltenvektoren die Norm 1 haben,
und verschiedene aufeinander senkrecht stehen. Gleichbedeutend damit ist,
dass O eine Isometrie ist: < Ox, Oy >=< x, y > für alle x, y ∈ Rn . Gleichbedeutend damit ist O ∗O = Id, wobei die Adjungierte M ∗ einer Matrix M
dadurch definiert ist, dass für alle x, y ∈ Rn : < Mx, y >=< x, M ∗ y > . Da
stets detM = detM ∗ folgt hieraus
detO ∗ O = detOdetO ∗ = 1; detO = ±1.
Was für Spaltenvektoren gilt, gilt auch für Zeilenvektoren. Nun gilt nach dem
vorangegangenen Satz:
Y
Y
f∗
f∗
det(f1 , . . . fn ) = det(f1∗ , . . . , fn∗ ) =
kfi∗ kdet( 1∗ , . . . , n∗ ) =
kfi∗ k
kf1 k
kfn k
Also folgt die Behauptung aus kfi∗ k ≤ kfk.
Satz 8.5 Sei f ∈ L \ {0}. Dann gilt
Beweis: f =
Pk
kf k ≥ Min(kf1∗ k, . . . , kfn∗ )k
j=1
λj fj ; λk 6= 0; ⇒
f=
k
X
X
µij fj∗ = λk fk∗ +
i=1 1≤j≤j
X
vj fj∗
1≤j<k
Nimmt man das Skalarprodukt von f mit sich selbst, und beachtet die Orthogonalität der fi∗ , so ergibt sich
X
kf k2 = λ2k kfk∗ k2 +
νj2 kfj∗ k2 ≥ λ2k kfk∗ k2 ≥ kfk∗ k ≥ Min∗ k(kf1∗ k . . . kfn∗ k)
1≤j<k
Theorem 8.1 (Minkowskis Gittersatz) Sei L ein Gitter im Rn und K abgeschlossen, sowie symmetrisch und konvex, d.h.
1
∀x, y ∈ K : −x, (x − y) ∈ K.
2
n
Ist dann vol(K) ≥ 2 |L|, so existiert ein x ∈ K mit x ∈ L \ {0}.
Korollar 8.1 Sei ω(n) das Volumen der Einheitskugel im Rn :
ω(1) = 1, ω(2) = π, ω(n) = ω(n − 2)
Für den kürzesten Gittervektor f ∈ L gilt dann
kf k ≤ 2(
|L| 1
)n
ω(n)
54
2π
n
Beweis: Es sei (K + x) ∩ K = ∅ für alle x ∈ L \ {0}. Wähle eine Gitterbasis
f1 , . . . , fn von L und definiere den Einheitswürfel Q durch
Q = {x1 f1 + . . . xn fn |0 ≤ xi < 1}
Dann bilden die K ∩ (Q + z) für z ∈ L eine disjunkte
Überdeckung von K,
P
und es ist vol(K) = |L|. Folglich ist vol(K) = vol(K ∩ (Q + z) . Nun sind
aber die (K ∩ (Q + z)) − z nach Annahme paarweise disjunkte Teilmengen
von Q . Ferner gilt vol(K ∩ (Q + z)) = vol((K ∩ (Q + z)) − z), weil das
Lebesguemaß auf dem Rn translationsinvariant ist. Folglich ist vol(K) ≤ |L|.
Es sei
1
1
K = { x|x ∈ K}
2
2
1
−n
Dann ist vol( 2 K) = 2 vol(K). Wenn also vol(K) > 2n |L| ist, dann gibt es
verschiedene z1 , z2 ∈ L so dass
1
1
( K + z1 ) ∩ ( K + z2 ) 6= ∅.
2
2
1
Also gibt es x, y ∈ K, so dass 2 x+z1 = 12 y+z2 , d.h. 12 (x−y) = z1 −z2 ∈ L\{0}.
Weil K symmetrisch und konvex ist, ist z = z1 − z2 ∈ K ∩ (L \ {0}.
Wir haben aber nur vol(K) ≥ 2n |L|. Daher betrachten wir für > 0 die −
“Aufdickung “ von K :
K = K + B = {x + y|x ∈ K, kyk ≤ 1}
Weil mit K auch K symmetrisch und konvex ist, und offenbar
vol(K ) > vol(K), existiert z ∈ Ke ∩ (L \ {0}. Da mit K auch jedes
K kompakt ist, kann man aus z1/n eine konvergente Teilfolge auswählen.
Der Limes einer solchen Teilfolge liegt dann im Durchschnitt aller K ∩L\{0},
d.h.in K ∩ L \ {0}.
Über diesen Satz sagte Hilbert in seiner Gedächtnisrede über den mit 38
Jahren an einer Blinddarmentzündung verstorbenen Hermann Minkowski
“ Dieser Beweis eines tiefliegenden zahlentheoretischen Satzes ohne rechnerische Hilfsmittel wesentlich auf Grund einer geometrisch anschaulichen Betrachtung ist eine Perle Minkowkischer Erfindungskunst. . . . Noch wichtiger
aber war es, dass der wesentliche Gedanke des Minkowskischen Schlussverfahrens nur die Eigenschaft des Ellipsoides, dass dasselbe eine konvexe Figur
ist und einen Mittelpunkt besitzt, benutzte, und daher auf beliebige konvexe
Figuren mit Mittelpunkt übertragen werden konnte. Dieser Umstand führte
Minkowski zum ersten Mal zu der Erkenntnis, dass der Begriff des konvexen
Körpers ein fundamentaler Begriff in unserer Wissenschaft ist, und zu deren
fruchtbarsten Forschungsmitteln gehört.”
55
Korollar 8.2 (Fermat, Euler) Jede Primzahl p = 4k +1 ist Summe von zwei
Quadraten ganzer Zahlen.
Beweis Es sei p prim und u eine ganze Zahl mit u2 ≡ −1(modp). Wir
betrachten das Gitter
L = {(x, y) ∈ Z2 |y ≡ ux(modp)}
Es gilt
1 u
|L| = |det
|=p
0 p
für einen kürzesten Gittervektor (x, y) gilt dann
kp = x2 + y 2 ≤ 4
4p
|L|
=
< 2p
2
ω
π
Also x2 + y 2 = p.
Wir haben im Beweis das folgende Lemma benützt
Lemma 8.2 Sei p Primzahl. Genau dann gibt es ein u ∈ Z, mit u2 ≡
−1(modp), wenn p = 4k + 1.
Beweis: Die Einheitengruppe von Zp ist zyklisch von der Ordnung p − 1.
Also gibt es ein e der Ordnung p − 1. Ist nun p − 1 = 4k, so hat u = ek die
Ordnung 4. Also gilt u2 = −1. Hieraus folgt umgekehrt, dass u die Ordnung
4 hat, also p − 1 von 4 geteilt wird.q.e.d. Zum Beweis des nächsten Korollars
benötigen wir noch
Lemma 8.3 sei K ein Körper mit endlich vielen Elementen, a, b, c ∈ K\{0}.
Dann existieren x, y ∈ K mit ax2 + by 2 = c.
Beweis: K habe q Elemente. q − 1 davon sind Einheiten, und davon
Quadrate. Also gibt es q−1
+ 1 = q+1
Quadrate. Folglich ist
2
2
]{ax2 |x ∈ K} =
q−1
2
q+1
= ]{c − by 2 |y ∈ K}.
2
Diese beiden Mengen können nicht disjunkt sein, denn sonst hätte K mindestens q + 1 Elemente. Also gibt es ein Element ax2 = c − by 2 in beiden.q.e.d.
Wegen der “zwei Quadrate Formel”
(x2 + y 2 )(u2 + v 2 ) = (xu − yv)2 + (xv + yu)2
56
bilden die naturlichen Zahlen, welche Summe von zwei Quadraten sind, eine multiplikative Halbgruppe. Wir werden im Beweis des “ Vier QuadrateSatzes” die folgende ” vier Quadrate- Formel” benützen:
X
X
X
(
x2i )(
yi2 ) = (
xi yi )2 + u2 + v 2 + w 2
1≤i≤4
1≤i≤4
1≤i≤4
u = −x1 y2 + x2 y1 − x3 y4 + x2 y4 , v = −x1 y3 + x3 y1 − x4 y2 + x2 y4 ,
w = −x1 y4 + x4 y1 − x2 y3 + x3 y2
Korollar 8.3 ( Fermat, Lagrange)Jede natürliche Zahl ist Summe von vier
Quadraten.
Beweis: Nach obiger Formel braucht man die Behauptung nur für Primzahlen zu beweisen. Sei also p eine ungerade Primzahl. Seien ferner u, v ganze
Zahlen mit u2 + v 2 + 1 ≡ 0(modp). Solche gibt es nach obigem Lemma. Wir
Definieren ein Gitter L durch
L = {(a, b, c, d) ∈ Z4 |c ≡ ua + vb(modp), d ≡ ub − va(modp)}
Dann gilt

1
1
|L| = |det 
0
0

0
u
−v
0 u+p
−v 
 | = p2
1
u
−v 
1
u
−v + p
Für einen kürzesten Gittervektor gilt dann
|L| 1
)2
ω(4)
√
p
4 2
2
2
= 2 p 2π =
p < 2p
π
a2 + b2 + c2 + d2 == kp ≤ 2(
Also ist a2 + b2 + c2 + d2 = p.
In der folgenden Anwendung des Gittersatzes wird die Euklidische Norm
durch die Maximumnorm ersetzt. Darum zunächst eine Definition:
Definition 8.4 N : Rn → R heißt Norm, wenn
1. N(x) < 0; x 6= 0;
57
2. N(rx) = |r|N(x); r ∈ R, x ∈ Rn ;
3. N(x + y) ≤ N(x) + N(y); x, y ∈ Rn .
P
1
Beispiele 8.3
1. Np (x) = ( |xi |p ) p
2. N∞ (x) = Max|xi |
3. NA (x) = N2 (Ax); A : Rn → Rn linear, nichtausgeartet.
Satz 8.6 Sei N Norm und
KN (r) = {x ∈ Rn |N(x) ≤ r}
die N - Kugel mir Radius r und Mittelpunkt 0. Dann gilt
1. KN (r) = rKN (1);
2. vol(KN (r)) = r n vol(KN (1));
3. KN (r) ist symmetrisch und konvex.
4. KN ist kompakt.
Von diesen Aussagen ist nur die letzte nicht offensichtlich. Diese ergibt sich
aber leicht aus der Tatsache, dass die euklidische abgeschlossene Einheitskugel kompakt ist, und je zwei Normen auf dem Rn äquivalent sind. (Für einen
Beweis siehe etwa S.Lang : Undergraduate Analysis, Springer) dabei heißen
zwei NormenN1 , N2 äquivalent, wenn c > 0 existiert, so dass
Beispiele 8.4
1. N∞
1
N1 ≤ N2 ≤ cN2
c
√
≤ N2 ≤ nN∞
2. λ1 N2 ≤ NA ≤ λ − nN∞ wobei λ1 der kleinste, und λn der größte
Eigenwert von A∗ A.
Korollar 8.4 Sei N Norm und L Gitter. Dann existiert z ∈ L \ {0} mit
N(z) ≤ 2(
1
|L|
)n
vol(KN (1)
Theorem 8.2 (Dirichlet, 1842) Seien α1 , . . . , αn , ∈ R, 0 < < 1. Dann
gibt es p1 , . . . , pn , qZ, so dass
pi
|αi − | < ; 1 ≤ i ≤ n; 1 ≤ q ≤ −n
q
q
58
q −1 (p1 , . . . , pn ) heißt “ simultane Diophantische
a = (α1 , . . . , αn ).
Approximation” von
Beweis: Setze
ei = (o, . . . .0, 1, 0, . . . , 0) ∈ Rn+1 ; 1 ≤ i ≤ n, a = (α1 , . . . , αn , n+1 ),
L =< {e1 , . . . , en , a} >Z
Dann gilt


1 ... 0
0
 .. . .
.
.. 

. ..
. 
|L| = |det  .
 | = n+1
 0 ... 1
0 
α1 . . . αn en+1
Mit N(x) = Max|xi |; vol(KN (1) = 2n folgt aus dem Gittersatz, dass ein
z ∈ L \ {0} existiert, so dass
N(z) ≤ 2(
1
|L|
)n = vol(KN (1)
Nun ist z = p1 e1 + . . . + pn en − qa, und N(z) < 1, also O.E. q > 0. Es folgt
|pi − qαi | < ; n+1 q < , 0 < q < −n
Der LLL-Algorithmus ist ein polynomielles Verfahren, das einen Gittervektor z ∈ L \ {0} berechnet mit
1
kzk ≤ βn |L| n
Ein solches Verfahren liefert eine schlechtere Approximation: Man ändere im
vorangegangenen Beweis die Definition von L dahingehend ab, dass die letzte
Komponente von a
−n−1 n+1
βn+1
wird. Es gilt dann
Korollar 8.5 Das Verfahren berechnet p1 , . . . , pn , q ∈ Z, mit
n+1 −n
|pi − αi q| < , i ≤ i ≤ n; 0 < q ≤ βn+1
59
8.3
LLL - Reduktion
In diesem Abschnitt wird eine Variante des berühmten LLL- Algorithmus
- nach A.K. Lenstra, H.W. Lenstra, L. Lovász (1982) - beschrieben. Dieser Algorithmus produziert bei Eingabe einer Gitterbasis {f1 , . . . , fn } eine
“LLL-reduzierte” Gitterbasis. Er funktioniert wieder mit Wechselwegnahme,
wie der euklidische . Die geniale Idee hierbei ist der Reduktionsbegriff, der das
Haltekriterium für den Algorithmus liefert. Hier ist eine heuristische Überlegung:
Man sucht eine “ kleine “ Gitterbasis. “ klein “ bedeutet aber “nahezu” orthogonal. Ist g1 = g1∗ , . . . gn = gn∗ orthogonal so kann man durch umordnen
kg1∗ k2 ≤ kg2∗k2 ≤ . . . ≤ kgn∗ k2 erreichen. Folglich ist die Eigenschaft von
{g1 , . . . gn } dass
kgi k2 ≤ kgi+1 k2
eine Abschwächung der Orthogonalität und damit eine Definition von
Kleinheit. Dies wird hier als Definition von LLL-Reduziertheit genommen. Entspechend besteht der Algorithmus aus “ abgeschwächtem” d.h.
ganzzahligem orthogonalisieren und umordnen. Die Abschätzung einer LLLreduzierten Basis gegenüber kürzesten Gittervektoren weist einen Faktor von
2n auf. Dennoch ergeben sich effektive Anwendungen auf Faktorisieren von
ganzzahligen Polynomen- in einer Variablen - ganzzahlige Programmierung
und Brechen von Kryptosystemen, und zwar deswegen, weil der Algorithmus
mit O(n4 logA); A = maxkfi k arithmetischen Operationen auskommt.( Ein
länglicher Beweis findet sich weiter unten.) Es ist eine “approximative”
Lösung eines NP - vollständigen Problems, nämlich eine kürzeste Gitterbasis
zu finden.
Definition 8.5 Eine Gitterbasis (f1 , . . . fn ) heist reduziert, wenn
∗
kfi∗ k2 ≤ 2kfi+1
k2
Korollar 8.6 Ist (f1 , . . . , fn ) reduzierte Gitterbasis von L , so gilt für alle
f ∈ L \ {0} :
kf1 k ≤ 2
n−1
2
kf k
Beweis:
1 ∗ 2
k ≥ 2k−1 kf1∗ k2 = 2k−1 kf1 k2
kf k2 ≥ Min(kf1∗ k2 , . . . , kfn∗ k2 ) ≥ kfk∗k2 ≥ kfk−1
2
60
Definition 8.6 Man definiert den “nächsten ganzen Nachbarn” einer reellen
Zahl a als dac = ba + 12 c.
Algorithmus 8.1 (LLL-Basis-Reduktion)
Input: Linear unabhängige Zeilenvektoren f1 , .P
. . fn ∈ Zn .
Output : eine reduzierte Basis (g1 , . . . gn ) von
Zfi .
1. for i = 1, . . . , n do gi ← fi ; berechne die GSO (g1∗, . . . , gn∗ , µij ) von
(g1 , . . . gn ); I ← 2
2. while i ≤ n do
3. for j = i − 1, i − 2, . . . 1 do
4. gi ← gi − dµij cgj ; update GSO ;
∗
5. if i > 1 and kgi−1
k2 > 2kgi∗k2 , then exchange gi−1 and update GSO; i ←
i−1 ;
else i ← i + 1;
6. return (g1 , . . . , gn ).
Theorem 8.3 (Lenstra, Lenstra, Lovász)
Der LLL Algorithmus arbeitet korrekt, und benötigt O(n4 logA) Operationen
in Z auf ganzen Zahlen der Länge O(nlogA) mit A = maxi kfi k.
Beweis : Die Kernüberlegung findet im Schritt 6. weiter unten statt: es
kommt darauf an, die Anzahl der Iterationen der Schleife in Schritt 2. des
Algorithmus abzuschätzen,- was ein Problem ist, da in diesem Schritt der
Index i abwechselnd herauf und herunter gesetzt werden kann.
1. Wir betrachten Schritt 4. des Alg.. Es sei abkürzend λ = dµij c, und es
seien G, G∗ , M, bez. H, H ∗, N die Matrizen der gk , gk∗, µkl vor bez. nach
der Ersetzung, und E(ekl ) ∈ Zn×n die Matrix mit ekk = 1, eij = λ, und
ekl = 0 sonst. Offenbar gilt H = EG. Weil die g1 , . . . , gk den gleichen
linearen Teilraum aufspannen wie die h1 , . . . , hk gilt auch H ∗ = G∗ .
Folglich gilt EMG∗ = EG = H = NH ∗ = NG∗ , und weil G∗ invertierbar ist: EM = N. Dies bedeutet, dass N dadurch entsteht, dass
µij durch µij − λµij ersetzt wird. Hierdurch wird µil für i < l nicht
verändert, da für solche l µil = 0. Das neue µij erfüllt |µij | ≤ 21 . Am
Ende der Schleife von Schritt 3. hat man also
1
|µil | ≤ ;
2
61
1≤ l ≤ i−1
2. Nehmen wir an, in Schritt 5. werden gi−1 und gi vertauscht. Es seien hk
bez h∗k die Basisvektoren nach der Vertauschung bez. die zugehörigen
orthogonalisierten. Offenbar gilt h∗k = gk∗ für k ∈ {1, . . . , n} \ {i, i − 1}.
Wir zeigen nun
3 ∗ 2
∗
k , sowie kh∗i k ≤ kgi−1
k
kh∗i−1 k2 < kgi−1
4
∗
Es
von gi die orthogonal zu
P ist nämlich hi−1 diejenige Komponente
P
∗
∗
∗
∗
Rg
ist.
Da
aber
g
=
g
+
l
i
i
1≤l<i−1
1≤l≤i−1 µil gl , ist hi−1 = gi +
∗
µi,i−1 gi−1
. Folglich ist
1
3
1
∗
kh∗i−1 k2 = kgi∗ k2 + |µi,i−1|2 kgi−1
k2 ≤ kgi−1 k2 + kgi−1 k2 = kgi−1 k2
2
4
4
Es sei nun
u=
X
µi−1,l gl∗, U =
1≤l≤i−2
X
Rgl
1≤l≤i−2
∗
Dann ist h∗i die Komponente von gi−1 = gi−1
+ u, die orthogonal zu
U +Rgi ist . Nun ist aber u ∈ U +Rgi , und daher ist h∗i die Komponente
∗
∗
von gi−1
, die orthogonal zu U + Rgi ist. Folglich ist kh∗i k ≤ kgi−1
k.
3. Zu Beginn jeder Schleife von Schritt 2. hat man
|µkl | ≤
1
für 1 ≤ l < k < i;
2
∗
kgk−1
k2 ≤ 2kgk∗k2
Dies ist trivial für den Anfang des Algorithmus. Nehmen wir an, die
Ungleichungen gelten zu Beginn der Schleife in Schritt 3., und zeigen
wir, dass sie dann auch am Ende von Schritt 5. gelten. Nach obigem
gilt der erste Satz von Ungleichungen bis k = i bis unmittelbar vor
Schritt 5. Da ein Austausch µkl für k < i − 1 nicht ändert, aber den
Index i um eins vermindert, gilt der erste Satz von Ungleichungen bei
Austausch und auch sonst unmittelbar nach Schritt 5. Da die gk∗ sich
bei Schritt 3.,4. nicht ändern gilt der zweite Satz von Ungleichungen
auch bis unmittelbar vor Schritt 5. Bei Austausch ändern sich die gk∗
nicht für k ∈
/ {i, i − 1}, aber i wird zurückgesetzt. Bei Nichtaustausch
wird zwar i heraufgesetzt, aber es kommt eine neue Ungleichung hinzu,
auf Grund der Nichtaustauschbedingung. Also gilt auch der zweite Satz
von Ungleichungen in jedem Fall.
4. Wenn der Algorithmus terminiert, ist die jeweilige Basis LLL-reduziert.
62
5. ist g1 , . . . , gn die zu einem Zeitpunkt vorliegende Basis, so Sei Gk die
ganzzahlige k × n -Matrix (g1 , . . . , gk )T , Gk GTk = (< gj , gl >) die zugehörige Gramsche Matrix, und dk = det(Gk GTk ) die zugehörige Gramsche Determinante. Es gilt
Y
gk =
kgl∗k2 > 0.
1≤l≤k
Inder Tat: sei für 1 ≤ k ≤ n Mk die linke obere Teilmatrix von Mk
und G∗k = (g1∗ , . . . , gk∗)T . Dann ist detMk = 1, und G∗k (G∗k )∗ ist auf
Grund der Orthogonalität eine Diagonalmatrix mit Diagonalelementen
/ast
g1 k2 , . . . , kgk∗k2 . Ferner ist Gk = Mk gk∗ , und daher
Y
dk = det(Gk GTk ) = det(G∗k (G∗k )T ) =
kkl∗ k2
1≤l≤k
In Folge dessen ändern sich die dk vin den Schritten 3., 4. nicht. Wenn
im Schritt 5. gi−1 , gi ausgetauscht werden, und d∗k die neuen Werte von
dk bedeuten, dann ändert sich die Matrix Gk für k 6= i − 1 durch
Multiplikation von links mit einer k × k Permutationsmatrix, deren
Determinante ±1 ist. Also ist dk = d∗k für k 6= i − 1. Nach obigem hat
man zudem
Y
3
di−1 =
kgl∗ k2 ⇒ d∗i−1 ≤ di−1
4
1≤l<i
also dk = d∗k für k 6= i − 1; d∗i−1 ≤ 43 di−1
6. Mit diesem Resultat kann die Anzahl der arithmetischen Operationen
des Alg. abgeschätzt werden, und insbesondere gezeigt werden, dass er
terminiert. Schritt 1. (GSO) benötigt O(n3 ) Z Operationen. In Schritt
4. Hat man Matrizenprodukte EG, EM zu berechnen, was O(n) Z−
Operationen erfordert. Also erfordert eine Schleife in Schritt 3. O(n2 Z−
Operationen. Die Anzahl der Iterationen der Schleife in Schritt 2.ist
e + e∗ wobei e die Anzahl der Austauschschritte in 5. und e∗ die Anzahl
der “sonst”- Verzweigungen in 5. zählt. Weil i beim Austauschschritt
um eins vermindert wird, und sonst um eins erhöht wird, ändert sich
i + e − e∗ nicht. Da i + e − e∗ anfänglich 2 ist, ist diese Größe konstant
2. Andereseits nimmt die Größe
Y
D=
dk
1≤k<n
63
beim Austausch nach obigem mindestens um den Faktor 43 ab, während
sie sich ansonsten nicht ändert. Zu Beginn hat man für A = maxkfl k :
∗
D = kf1∗ kn−1 kf2∗ k2 . . . kfn−1
k ≤ kf1 kn−1 kf2 kn−2 . . . .kfn−1 k ≤ A
n(n−1)
2
Folglich ist e∗ ≤ log4/3 D0 = (n2 logA) und damit e = 2 + e∗ − i =
O(n2 logA), und man hat O(n4logA) Z− Operationen.
7. Abschätzung der gk∗ , dk , µkl : Nach Vorraussetzung hat man für die
anfängliche Basis: kfk k ≤ A, also auch kfk∗ k ≤ A. Wie bereits festgestellt, können d die kgk∗ k im Laufe des Algorithmus allenfalls abnehmen:
kgk∗ k ≤ A. Also gilt auch
Y
dk =
kgl∗ k2 ≤ A2k
1≤l≤k
Nun gilt gk∗ =P
gk − 1≤<k λkl gl ; < gk∗ , gj >= 0 für j < k. ⇒
< gk , gj >= 1≤l<k λkl < gl , gj > . Also lösen die λk,1, . . . λk,k−1 ein
lineares Gleichungssystem mit Koeffizientenmatrix Gk−1 GTk−1 und Determinante dk−1 . Aus Cramers Regel folgt dk−1 λkl ∈ Z. ⇒
P
dl µkl = dl
< gk , gl∗ >
dl < gk , gl∗ > dl−1
=
=< gk , dl−1 gl∗ >
kgl∗k2
dl
|µkl | =
< gk , gl∗ >
kgk kkgl∗k
kgk k
1/2
≤
= ∗ ≤ dl−1 kgk k
∗ 2
∗ 2
kgl k
kgl k
kgl k
weil
gl∗ k2 = dl /dl−1 ≥ 1/dl−1.
8. Abschätzung der gk . Wir haben bereits |µkl | abgeschätzt. Daraus ergibt
sich
1/2
mi ≤ max{dl−1 |1 ≤ l ≤}kgi k ≤ An−2 n1/2 A = n1/2 An−1
Wie ändert sich nun µil bei j-ten Ersetzungsschritt in 4.?
1 1
|neuesµil | = |µil − dµij cµil | ≤ µil | + |dµij c||µil | ≤ mi + (mi + ) ≤ 2mi
2 2
Für l = j ist |µij | ≤ 1/2, ebnso wie für l > j. Also kann sich der Wert
von mi für jedes j in der Schritt 3. Schleife höchstens verdoppeln, d.h.
insgesamt höchstens um den Faktor 2i−1 ≤ 2n−1 wachsen. Es gilt also
zu jedem Zeitpunkt mi ≤ n1/2 (2A)n−1 und damit
kgi k ≤ n1/2 mi A ≤ n(2A)n
64
9. Schluss des Beweises: Wie man oben gesehen hat, sind die Nenner sämtlicher gk , gk∗ , µkl durch dk ≤ A2n beschränkt; für die Zähler gilt
|Zähler von gk | ≤ kgk k∞ ≤ n(2A)n
|Zähler von gk∗| ≤ kdk gk∗ k∞ ≤ A2k−2 A ≤ A2n
1/2
|Zähler vonµkl | ≤ |dl µkl | ≤ dl dl−1 kgl k ≤ A2l Al−1 n(2A)n ≤ n(2A4 )n
Also ist die Länge sämtlicher Zähler und Nenner O(nlogA).
8.4
Anwendungen
In diesem Abschnitt soll die Idee einiger der berühmten Anwendungen der LLL-Reduktion beschrieben werden. Es ist in jedem Fall eine
gescheite Definition eines Gitters.
Knappsack-Kryptosysteme(Merkle-Helman(1978))brechen
Alice publiziert ihren öffentlichen Schlüssel(a1 , . . . , an ) ∈ Zn . Bob
möchte ihr geheim die Nachricht (x1 , . . . , xn ) ∈ {0, 1}n senden. Kodierung:
X
C(x1 , . . . , xn ) = s =
ai xi
1≤i≤n
Das Dekodierungsproblem -für beliebige ai - ist NP- vollständig. Um
selber dekodieren zu können, benutzt
PAlice einen geheimen Schlüssel,
i
d.h. spezielle aiP
. Wählt man bi <
1≤j≤i−1 bj , z.B. bi = 2 , so ist
(x1 , . . . , xn ) → xi bi eindeutig, und effektiv decodierbar. Alice wählt
nun C, M ∈ Z zufällig und setzt
ai ≡ cbi (modm)
Alice kann dann dank ihres geheimen Schlüssels mit c−1 (modm) multiplizieren und dann mühelos dekodieren. Allerdings hat man, - entgegen
der Hoffnung der Autoren des Kryptosystems - auch ohne den geheimen Schlüssel gute Chancen, wie Shamir (1988) gezeigt hat: Sei L das
Gitter, das von den Zeilen ri der Matrix


1 0 . . . 0 −a1
0 1 . . . 0 −a2 


 .. .. . . ..
.. 
. .
. .
. 


0 0 . . . 1 −an 
0 0 ... 0 s
65
Ist dann s =
P
i
ai xi , so ist
X
v=
xi = (x1 , . . . , xn , 0) ∈ L
1≤i≤n
√
und extrem kurz, da kvk2 ≤
n und die ai sehr groß. Wende
LLL-Reduktion an, um kurze Vektoren zu erhalten, eventuell v oder
einen “Verwandten”. Auf diese Weise ist das Merkle-Helman-Schema
gebrochen worden.
Polynome in Z[x] faktorisieren. (C. P. Schnorr hat die LLLReduktion auch zum Faktorisieren ganzer Zahlen zu Hilfe genommen.) Wir betrachten den Fall eines quadratfreien primitiven Polynoms
f ∈ Z[x]. Sei f = g1 . . . gl die Zerlegung in irreduzible. Dann gilt auch
f ≡ g1 . . . gl (modm) für jedes m ∈ N. Die gi aber sind nicht notwendigerweise irreduzibel modulo m. Wenn man daher zunächst modulo
einer Primzahlpotenz m in irreduzible Faktoren zerlegt, - weil es dafür
effektive Algorithmen gibt,- so hat man das Problem der Kombination von modulo p irreduziblen Faktoren zu irreduziblen Faktoren in
Z[x]. Alle Möglichkeiten auszuprobieren ist zu kostspielig,- aber LLLReduktion hilft. Und zwar auf Grund des folgenden Lemmas (Beweis
inv.z.Gathen, Gerhard (1999), Lemma16.20, mit Subresultanten)
Lemma 8.4 Seien f, g, u ∈ Z[x] von positivem Grad , degf =
n, degg = k, u monisch. Wenn kf kk kgkn < m und u sowohl f als
auch g modulo m teilt, dann ist ggt(f, g) ∈ Z[x] nicht konstant.
Sei also f ∈ Z[x| und u ∈ Z[x] ein Teiler von f in Zm mit degu = d <
n = degf. Um einen Faktor g von f in Z[x] mit degg < j zu finden
erzeugt man ein Gitter L ⊂ Zj durch die Koeffizientenvektoren von
{uxi : 0 ≤ i < j − d} ∪ {mxi : 0 ≤ i < d}
Ein Element g ∈ L hat dann die Form g = qu + rm mit q, r ∈
Z[x], degq < j − d, degr < d. Ist andererseits g ∈ Z[x] modulo m
ein Teiler von f, so gilt g = q ∗ u + r ∗ m mit q ∗ , r ∗ ∈ Z[x]. Division mit
Rest ergibt r ∗ = q ∗∗ u + r ∗∗ m, so dass mit q = q ∗ + q ∗∗ m, r = r ∗∗ wie
oben g = qu + rm, degq < j − d, degr < d. Also
g ∈ L ⇔ degg < j,
66
u|g(modm)
Nun enthält L - bei geeigneter Wahl von j - einen irreduziblen Faktor
f1 von f , der modulo m von u geteilt wird. Mignottes Schranke (siehe
Abschnitt 10.4) ergibt
kf1 k ≤ 2degf kf k
LLL- Reduktion findet nun - mit wenig Aufwand; darauf kommt es hier
j−1
an - ein g ∈ L mit kgk ≤ 2 2 kf1 k. Dann gilt
2 +degf j−1
2
kf kdegg kf kdegf ≤ kf kdegf g 2(degf )
≤ kf k2n 23n
2 −n
2
Mit dem obigen Lemma erhält man dann den gewünschten Faktor von
f sofern man m größer als die rechte Seite dieser Ungleichung gewählt
hat.
Lineare ganzzahlige Programmierung(Siehe Schrijver (1986))
Die Aufgabe lautet: gegeben eine n × m Matix A ∈ Qn×m sowie c ∈
Qn , b ∈ Qm , berechne
max{cx|Ax ≤ b, x ∈ Zn }
(Dabei ist max{} = −∞, falls {} = ∅.) Dieses Problem - mit LIP
bezeichnet - ist NP - vollständig. Lenstra hat aber 1983 gezeigt, dass
man mit Gitterbasisreduktion einen Algorithmus für LIP bekommt, der
bei festgehaltener Variablenzahl n polynomiell ist. Nach Lovász wird
LIP auf die folgende Aufgabe LIG reduziert:
Berechne y ∈ Zn mit mitAy ≤ b oder c ∈ Zn mit
max{cx|Ax ≤ b} − min{cx|Ax ≤ b} ≤ 2n(n + 1)2
n(n−1)
4
Wir skizzieren zunächst die Reduktion -in zwei Schritten- und dann
den Algorithmus für LIG.
1. Ein LIG- Algorithmus liefert einen LIF = LIF (Ax ≤ b) Algorithmus für das folgende Problem
LIF (Ax ≤ b) : berechne y ∈ {x ∈ Zn |Ax ≤ b}, falls diese Menge nicht leer ist und ∅ sonst. Mit einem LIG- Alg. genügt es nämlich
LIF (Ax ≤ b; cx = t} zu lösen für
t = dµe, . . . , dµ + 2n(n + 1)2
n(n−1)
4
e; µ = min{cx|Ax ≤ b, x ∈ Rn }
(Das sind zwar in n exponentiell viele Aufgaben, aber n ist ja fest.)
Jedes dieser LIF- Probleme hat, wegen cx = t nur n − 1 Variable;
67
daher kann man Induktion nach n führen.
2. Mit einem polynomiellen Algorithmus für LIF hat man auch einen
für LIP: man hat nämlich für µ die a priori Abschätzung
|µ| ≤ 211n
3ϕ
wobei ϕ die sogenannte “ Facettenkomplexität” von {x ∈ Rn |Ax ≤ b}.
Man prüft nun mit LIF, ob [Ax ≤ b, |cx| ≤ T ] ∩ Zn = ∅. Wenn nicht,
wird das Intervall halbiert (binary search): man prüft, ob [Ax ≤ b; 0 ≤
cx ≤ T ] ∩ Zn = ∅; ist dies der Fall so betrachtet man das Intervall
[− T2 , 0]; ansonsten das Intervall [ T2 , T ]. Auf diese Weise fortfahrend findet man - o.E. ist c ganzzahlig - nach 11n3 ϕ LIF- Schleifen das gesuchte
Element.
3. Es sei ell(z, D) = {y ∈ Rn |(y − z)T D −1 (y − z) ≤ 1} die Kugel mit
Radius 1 um z für die Norm kxk2 = xT D −1 x. Wir betrachten nur den
Fall, dass P = [Ax ≤ b] beschränkt ist und einen inneren Punkt hat. Es
gibt einen polynomiellen sogenannten “Rundungsalgorithmus”, der in
diesem Fall ein z ∈ Qn und eine positiv definite symmetrische Matrix
D produziert, so dass
1
D) ⊂ [Ax ≤ b] ⊂ ell(z, D)
(n + 1)2
P
Man beachte nun, dass man wahlweise ein Gitter i Zgi mit der Euklidischen Norm kxk2 =< x, x > oder das Gitter Z2 mit der Norm
kxk2 =< GGT x, x >=< Gx, Gx > betrachten kann. Man erhält also
mit
ell(z,
kxk =< D−1 x, x >
durch die LLL-Reduktion eine Basis b1 , . . . , bn von Zn derart, dass
n(n−1) √
detD−1
kb1 k . . . kbn k ≤ 2 4
O.B.d.A. ist kb1 k ≤ . . . ≤ kbn k. Sei
z = λ1 b1 + . . . + λn bn ;
y = bλ1 cb1 + . . . + bλn cbn
1
Entweder ist Ay ≤ b; dann ist man fertig; oder es ist y 6∈ ell(z, (n+1)
2 D).
n
In diesem Fall wählt man c ∈ Z so dass
c1 b1 = . . . = cn bn = 0; c 6= 0; ggt(c1 , . . . cn ) = 1
c leistet das Verlangte,- wie eine nicht ganz einfache Abschätzung
zeigt.(Der Leser mache sich die Lösbarkeit von LIG plausibel)
68
9
Konvolution
9.1
Zusammenfassung
Die Multiplikation zweier Polynome
f = f0 + f1 x + . . . + fn xn , g = g0 + g1 x + . . . gn xn ∈ R[x]
gemäß der Formel
f g = g0 f0 + (g1 f0 + g0 f1 )x + . . . + (
X
fi gj )xk + . . . + gn fn xn+n
i+j=k
erfordert mindestens n2 Multiplikationen in R und O(n2 ) Ringoperationen
in R. Kann der Exponent 2 durch einen sparsameren Algorithmus vermindert werden? Eine positive Antwort gab Karatsuba 1962. Sein Algorithmus
braucht weniger als 9nlog3 Ringoperationen, und ist auch auf ganze Zahlen in d− adischer Darstellung anwendbar. Karatsubas Algorithmus ist in
Systemen wie MAPLE eingebaut. Eine noch größere Beschleunigung wird
erreicht, wenn man ein Polynom durch seine Werte an n + 1 Stützstellen
darstellt. Dann braucht man zur Multiplikation nämlich nur n + 1 Multiplikationen in R. Die Darstellung, die als Stützstellen 2k − te Einheitswurzeln
benützt, heißt “Diskrete Fourier - Transformation”. Sie eignet sich zu einer
rekusiven Berechnung, der sogenannten “ schnellen Fourier - Transformation” (FFT = Fast Fourier Transformation). Auf diese Weise kammt man bei
der Multiplikation in R[x] mit O(nlogn) Ringoperationen aus. Wenn R keine
geeigneten Einheitswurzeln enthält, muss man welche adjungieren, oder - im
Fall von R = Z etwa- erst nach Zp1 × Zp2 × . . . gehen, und dann wieder
zusammensetzen, - nach dem chinesischen Restsatz. Schönhage und Strassen
haben 1971 mit der FFT einen Algorithmus zur Multiplikation ganzer Zahlen konstruiert, der mit O(nlognloglogn) Ringoperatinen auskommt. Dieser
Bedarf ist bis heute nicht unterboten worden. Der Algorithmus vereinfacht
sich bei Polynomen. Darum wird er hier nur für Polynome dargestellt.
9.2
Karatsubas Methode
Algorithmus 9.1 (Karatsubas Polynommultiplikation)
Input: f, g ∈ R[x], degf < n, degg < n; n = 2k , R kommutativer Ring mit
1.
Output: f g ∈ R[x]
1. Wenn n = 1, gib f g ∈ R aus;
69
2. Schreibe f = F1 xn/2 + F0 , g = G1 xn/2 + G0 ; F0 , F1 , G0 , G1 ∈ R[x]
vom Grad < Nn2.
3. Berechne rekursiv F0 G0 , F1 G1 , (F0 + F1 )(G0 + G1 );
4. Gib aus: F1 G1 xn + ((F0 + F1 )(G0 + G1 ) − F0 G0 − F1 G1 )xn/2 + F0 G0
Satz 9.1 Karatsubas Algorithmus benötigt weniger als 9nlog3 Ringoperationen.
Beweis: Die “divide and conquer” Idee besteht darin, f und g in Polynome
halber Länge zu zerlegen:
n
f = F1 xm + F0 ; g = G1 xm + G0 ; m = , degFj < m, degGj < m
2
und die Polynommultiplikation gemäß
f g = F1 G1 xn + (F0 G1 + F1 G0 )xm + F0 G0
rekursiv für die Fj Gk aufzurufen. Dies allein würde allerdings noch nicht zu
einer Verbesserung führen, denn man hätte , abgesehen von Additionen
4T (2i−1 ) ≤ 42 T (2i−2) ≤ . . . ≤ 4i T (1) = n2
Ringoperationen. Nun schreibt man aber
F0 G1 + F1 G0 = (F0 + F1 )(G0 + G1 ) − F0 G0 − F0 G1
und spaart damit, durch Wiederverwendung von Fj Gj eine Multiplikation
(halber Länge); genauer: ist T (n) die Anzahl der benötigten Ringoperationen,
so hat man,- weil die Berechnung von F1 G1 xn + F0 G0 in Schritt 4 nichts
kostet-,in Schritt 3, 4 : außer den rekursiven 3T (m) noch 4n Additionen bez.
Subtraktionen, d.h.
n
T (n) ≤ 3T ( ) + 4n
2
Darum ergibt sich die Behauptung aus dem folgenden Lemma
Lemma 9.1 Seien b, d ∈ N, b > 0; S, T : N → N, ; 2S(n) ≤ S(2n); n ≤
S(n), T (1) = d und für gerade n
n
T (n) ≤ bT ( ) + S(n)
2
i
Dann gilt für n = 2

2

(2 − n )S(n) + d ∈ O(S(n)); b = 1
T (n) ≤ S(n)logn + dn ∈ O(nlogn); b = 2

 2 logb−1
(n
− 1)S(n) + dnlogb ∈ O(S(n)nlogb−1 ; b ≥ 3
b−2
70
Beweis:
T (2i ) ≤ bT (2i−1 ) + S(2i ) ≤ b(b(T (2i−1 ) + S(2i−1 ) = b2 T (2i−2 ) + bS(2i−1 ) + s(2i ) ≤ . . .
X
≤ bi T (1) +
bj S(2i−j )
0≤j<i
≤ bi d +
X
bj 2−j S(2i )
0≤j<i
= dnlogb + S(n)
X b
( )j
2
0≤j<i
Für b = 2 bekommt man in der Tat : T (n) ≤ dn + S(n). Für b 6= 2 erhält
man
T (n) ≤ dnlogb + S(n)
( 2b )i − 1
nlogb−1 − 1
logb
=
dn
+
S(n)
b
b
−1
−1
2
2
Will man diese Methode auf ganze Zahlen anwenden, so schreibt man
a = a0 + a1 r + a2 r 2 + . . .
und z.B. r = 264 . Die ai sind dann “Wörter”über {0, 1} der Länge 63 . Mit
n
= m, a = A1 264m + A0 , b = B1 264m + B0 ; Aj , Bj < 264m
2
schreibt man wieder
ab = A1 B1 264n + ((A0 + A1 )(B0 + B1 ) − A0 B0 − A1 B1 )264m + A0 B0
Im Gegensatz zu den Polynomen hat man bei den ganzen Zahlen jedoch
den “Übertrag” zu beachten: es kann passieren, dass A0 + A1 ≥ 264m , oder
B0 +B1 ≥ 264m , was die Rekursion stört. In einem solchen Fall kann man aber
A0 B1 + A1 B0 anders berechnen, und zwar so, dass kein Übertrag entsteht,
z.B.
A0 B1 + A1 B0 = A0 B0 + A1 B1 − (A0 − A1 )(B0 − B1 )
Auf diese Weise zeigt man:
Satz 9.2 (Karatsuba)Multiplikation zweier ganzer Zahlen von höchstens n
“Wörtern “ kann mit O(8nlog3 ) Wortoperationen bewerkstelligt werden.
71
9.3
Die schnelle Fourier - Transformation
(Für Verallgemeinerungen der diskreten Fourier-Transformation in der Gruppentheorie - und untere Schranken - siehe Kap. 13 in Burgisser et al.) Wir
wollen nun einen Algorithmus konstruieren, der zwei Polynome f, g an gewissen Stützstellen auswertet, die Werte miteinander multipliziert und aus den
so erhaltenen Werten f g interpoliert. Ist n hinreichend groß, so kann man
modulo xn − 1 rechnen. Wir betrachten also den Ring R[x]/ < xn − 1 > .
Daneben betrachten wir den Ring Rn , d.h. die n−fache direkte Summe von
R. Stellt man Elemente r ∈ Rn als Zeilenvektoren dar, stellt sich Addition
und Multiplikation komponentenweise dar:
(r1 , . . . rn ) + (s1 , . . . , sn ) = (r1 + s1 , . . . , rn + sn );
(r1 , . . . , rn ) · (s1 , . . . , sn ) = (r1 s1 , . . . , rn sn )
Jedes Element des Restklassenringes R[x]/ < xn − 1 > wird repräsentiert
durch ein Polynom f ∈ R[x] mit degf < n. Indem wir das Element durch den
Koeffizientenvektor von f darstellen stellen wir den Restklassenring ebenfalls
durch Rn dar. Die zugehörige Multiplikation heißt zyklische Konvolution
und wird mit f ∗n g = f ∗ g bezeichnet. Für
f = f0 + . . . fn−1 xn−1 ; g = g0 + . . . + gn−1 xn−1
folgt mit xn+i ≡ 1mod(xn − 1) :
X
f ∗n g =
hk xk ; hk =
0≤k<n
X
fi gj
i+j≡k(modn)
Definiert man nun D : R[x] → Rn durch
Df = (f (ω0 ), . . . , f (ωn−1))
für irgendwelche ωj ∈ R, so ist D ein Ringhomomorphismus - , d.h.
D(f + g) = Df + Dg; D(f g) = Df Dg, aber dieser induziert nur dann
einen Ringhomomorphismus auf dem Restklassenring R[x]/ < xn − 1 >,
wenn ωjn = 1, d.h. wenn die Stützstellen n− te Einheitswurzeln sind.
Definition 9.1 ω ∈ R heißt n− teEinheitswurzel, wenn ω n = 1. ω heißt
primitive n− te Einheitswurzel, wenn ω n = 1, n kein Nullteiler in R und
ω n/t 6= 1 für jeden echten Primteiler 6= 1 von n. Ist ω primitive n− te Einheitswurzel so definiert man die Abbildung DF Tω : R[x]/ < xn − 1 >→ Rn
durch
DF Tω f = (f (1), f (ω), . . . , f (ω n−1))
DF Tω heißt diskrete Fourier-Transformation.
72
Beispiele 9.1
primitive.
1. ω = e
i2π
8
ist offenbar 8− te EW. Wegen eiπ = −1 sogar
2. Einzige Nichtnullteiler in Z8 sind 1, 3, 5, 7. Alle diese sind 2− te EW’n.
Also gibt es keine weiteren.
3. nach Euler ist 316 ≡ 1(mod17). Ferner ist
32 = 9; 34 = 81 ≡ −4(mod17); 38 ≡ 16(mod17).
Also ist 3 primitive 16− te EW modulo 17. Ferner sind alle Quadrate
8− te EW’n also keine Primitiven 16− ten EW’n. Also sind genau die
8 Nichtquadrate in Z17 primitive 16− te EW’n.
Bezüglich der Basis 1, x, . . . xn−1 hat Df Tω die Matrix


1
1
1
...
1
1
ω
ω2
...
ω n−1 


4
1 ω 2
ω
...
ω 2(n−1) 
Vω = 


 ..
..
..
..
.
.

.
.
.
.
.
n−1
2(n−1)
(n−1)(n−1)
1 ω
ω
... ω
Satz 9.3 Mit ω ist auch ω −1 primitive n−te EW. Es gilt: Vω Vω−1 = nId.
Beweis:
(Vω Vω )ik =
X
ω ij ω −jk =
0≤j<n
X
ω (i−k)j
0≤j<n
Wenn i = k kommt n heraus. Sonst 0 nach dem folgenden Lemma.
Lemma 9.2 Sei R Ring,l, n ∈ N, l, n ≥ 1, 1 < l < n, ω primitive n−te EW.
Dann gilt:
1. ω l − 1 ist kein Nullteiler in R.
P
lj
2.
0≤j<n ω = 0;
Beweis: Wir benützen die Gleichung
X
(c − 1)
cj = cm − 1
0≤j<m
Damit folgt die zweite Behauptung aus der ersten. Um die erste zu zeigen sei
g = ggt(l, n). Es gibt einen Primteiler t von n sowie m ∈ N, so dass gm = nt .
Dann gilt
(ω g − 1)a = ω gm − 1 = ω n/t − 1
73
Da die letzte Zahl nach Annahme kein Nullteiler ist, ist ω g − 1 auch keiner.
Mit dem EEA findet man nun Zahlen u, v so dass g = ul + vn. Dann gilt
aber
ω ul − 1 = ω ul+vn − 1 = ω g − 1
Also ist ω ul − 1 kein Nullteiler, und wegen (ω l − 1)a = ω ul − 1 auch ω l − 1
keiner.
Algorithmus 9.2 (FFT) P
Input: n = 2k , k ∈ N; f = 0≤i<n fi xi , ω, ω 2, . . . , ω n−1, ω ∈ R primitive,
n− te EW; R kommutativer Ring mit Eins
Output: DF T ωf = (f (1), f (ω), . . . , f (ω n−1)
1. Wenn n = 1 gib (fo ) aus
P
P
2. r0 ← 0≤j<n/2 (fj + fj+n/2 )xj , r1∗ ← 0≤j<n/2 (fj − fj+n/2 )ω j xj
3. Berechne rekursiv DF Tω2 r0 , DF Tω2 r1∗
4. Gib aus: (r0 (1), r1∗ (1), r0(ω 2 ), r1∗ (ω 2 , . . . , r0 (ω n−2 , r1∗(ω n−2 ))
Satz 9.4 FFT arbeitet korrekt und benötigt nlogn Additionen in R und
n
logn Multiplikationen mit Potenzen von ω, also 23 nlogn Ringoperationen.
2
Beweis: Es ist ω 2 primitive n2 − te EW: Ferner ist ω n/2 = −1, weil 0 =
ω n − 1 = (ω n/2 − 1)(ω n/2 + 1) und der erste Faktor ist nach Annahme kein
Nullteiler. Wir schreiben:
f = F1 xn/2 + F0 = F1 (xn/2 − 1) + F0 + F1 = F1 (xn/2 + 1) + F0 − F1
mit gegFi < n/2. Wir setzen r0 = F0 + F1 , r1 = F0 − F1 , r1∗ (x) = r1 (ωx).
Dann gilt
f (ω 2i ) = F1 (ω 2i )(ω ni − 1) + r0 (ω 2i ) = r0 (ω 2i)
f (ω 2i ) = F1 (ω 2i+1 )(ω ni ω n/2 − 1) + r1 (ω 2i+1 = r1∗ ω 2i)
Also arbeitet FFT korrekt.
Sei S(n) bez. T (n) die Anzahl der Additionen bez. Multiplikationen, die der
Algorithmus bei Eingabe eines Polynoms vom Grad < n benötigt. Dann gilt
n
S(n) = n + 2S( );
2
S(1) = 0. T (n) =
74
n
n
+ 2T ( );
2
2
T (1) = 1
Hieraus folgt durch Auswickeln
S(n) = nlogn; T (n) =
n
logn.
2
Jetzt kommt die schnelle Mutiplikation von Polynomen über Ringen, die 2k −
te EW’s besitzen. Man nennt
X X
fi gj )xk
(
f ∗g =
k
i+j=k
auch Konvolution von f und g.
Algorithmus 9.3 (Schnelle Konvolutin)
Input: f, g ∈ R[x]degf, degg < n = 2k , ω primitive, n− te EW in R, Ring
mit n ∈ R∗
Output : f ∗ g ∈ R[x].
1. Berechne ω, ω 2, . . . , ω n−1.
2. α ← DF Tω f, β ← DF Tω g
3. γ ← α · β (komponentenweise)
4. Gib aus: n1 DF Tω−1 (γ)
Satz 9.5 ” Schnelle Konvolution” arbeitet korrekt, und benötigt für polynome f, g mit degf g < n : 92 nlogn + O(n) Ringoperationen.
Der Beweis sei dem Leser überlassen.
Hier sind einige Aufgaben zu primitiven Einheitswurzeln:
Aufgaben 9.1
1. Sei G eine endliche abelsche Gruppe, a, b ∈ G ,und
g = ggt(orda, ordb); k = kgv(orda, ordb). Dann gilt ord(abg ) = k.
2. (Satz vom primitiven Element) Sei G eine endliche Untergruppe der
Einheitengruppe R∗ eines Integritätsbereiches R. Dann ist G zyklisch,
d.h. von einem Element erzeugt.(Hinweis: wenn a1 ∈ G, < a1 >6= G,
wähle b1 ∈ G \ {a1 }, und a2 = a1 bg1 . Dann ist nach obiger Aufgabe
orda2 < orda1 , usw.)
3. Sei Fq Körper mit q Elementen. Wenn u|q − 1, dann ist die Gruppe der
u ten E.W. zyklisch von der Ordnung u, und es gibt ϕ(u) primitive.
( ϕ(u) = ]Zu .)
75
4. Sei q − 1 = 2k u. Dann ist die Abbildung a → au eine surjektive Abbildung auf die Gruppe der 2k − ten EW’ln, und von diesen ist die Hälfte
primitiv.
5. Der folgende Algorithmus findet eine 2k te EW - mit einer erwarteten
Anzahl von O(logq) Multiplikationen in Fq .
Algorithmus 9.4 (Finde p.EW)
Input:q = 2k u + 1, p Primzahl, F
Output: eine primitive 2k − te EW.
1. Wähle zufällig a ∈ Fq ; b ← au
k −1
2. Berechne {b, b2 , . . . , b2
} = E.
3. Wenn 1 ∈ E goto 1. Sonst : gib b aus.
9.4
Die Methode von Schönhage und Strassen
Theorem 9.1 ( Schönhage, Strassen 1971)
Die Multiplikation zweier ganzer Zahlen der Länge n kann mit O(nlogn ·
loglogn) Wortoperationen bewerkstelligt werden.
Wir werden den zugehrigen Algorithmus,- der bis heute nicht unterboten
wurde- nicht darstellen, sondern den eifacheren Fall der Multiplikation zweier
Polynome in R[x], diesmal auch wenn R nicht die für die DFT erforderlichen
primitiven Einheitswurzeln enthält. ( Man sucht dann den Fall ganzer Zahlen auf diesen FallPzurückzuführen, indem man eine ganze Zahl d− adisch,
d.h. als Polynom i = zi di darstellt.) Man kann nämlich Einheitswurzeln
adjungieren, indem man R zu S = R[x]/ < p > für geeignetes p ∈ R[x]
erweitert. Multiplikation in S ist aber Polynommultiplikation modulop und
damit ergibt sich die Möglichkeit einer Rekursion, vorrausgesetzt, R und S
sind von der gleichen Bauart. Man arbeitet daher mit Ringen der Form
Rn = R[x]/ < xn + 1 >; n = 2k
Mit
√
k
k
n
= 2d 2 e ≥ n ≥ 2 b 2 e = m
m
ergibt sich ein kommutatives Diagramm
t=
α×α
R2n ×
 R2n

y
mult.
−→
mult.
R
x2n

β
(R2m )2t × (R2m )2t −→ (R2m )2t
76
Um die Abbildung α : R2n → (R2m )2t zu erklären, bezeichnen wir die Restklasse eines Elementes f ∈ R[x] modulo (x2m +1) mit f. (Ebenso mod(x2t +1).
)Sei nun 0 ≤ l < 2n. Division mit Rest durch m ergibt l = qm + r mit
0 ≤ r < m. Es gibt nun genau eine R− lineare Abbildung α mit
α(xl ) = α(xqm+r ) = xr y q
(α ist wohldefiniert!) β ist das Inverse von α :
β(xr y q ) = xl
Sinn und Zweck der Abbildung α wird klar, wenn man
X
f=
Fi xmi
0≤i<2t
schreibt, mit Polynomen Fi vom Grad < m. Dann ist nämlich
X
Fi + < y 2t + 1 >
αf =
0≤i<2t
Man kann also α(f) als Polynom in y mod(y 2t + 1) mit Koeffizienten in R2m
auffassen. R2m besitzt aber 4t− te primitive Einheitswurzeln, nämlich
η = x fallst = m und η = x2 fallst = 2m
Dann definiert x → ηx einen Isomorphismus
γ : R2m [y]/ < y 2t + 1 >→ R2m [y]/ < y 2t − 1 >
Auf diesem Ring ist aber die diskrete Fourier - Transformation DF Tη definiert, welche diesen Ring isomorph auf (R2m )2t abbildet. Schließlich hat man
ein kommutatives Diagramm
δ×δ
R2n × R2n

y
mult.
−→
mult.
Rx2n


(R2m )2t × (R2m )2t −→ (R2m )2t
Hier ist
δ = ϕ ◦ γ ◦ α, = β ◦ γ −1 ◦ ϕ−1 , ϕ = DF Tη
Sei T (n) die Anzahl der arithmetischen Operationen, die der Algorithmus
A = ◦ mult. ◦ (δ × δ) für zwei Polynome a, b mit degab ≤ n benötigt. Seien
77
ferner E(µ) die Auswertungskosten von µ ∈ {α, β, γ, γ −1, ϕ, ϕ−1 , , δ}. Dann
gilt
T (n) ≤ 2E(δ) + 2mT (t) + E()
≤ 2mT (t) + 2E(α) + 2E(γ) + 2E(ϕ) + E(β) + E(γ −1 ) + E(ϕ−1 )
zwei Elemente aus R2m zu addieren, oder ein Element aus R2m mit einem xl oder einem Element des Primkörpers von R zu multiplizieren kostet
höchstens 2m arithmetische Operationen in R . Dies sind aber die einzigen
arithmetischen Operationen, die bei der schnellen Fourier- Transformation
entstehen. Folglich ist
3
E(ϕ) ≤ 2m (2t)log(2t) = O(nlogn)
2
und ebenfalls E(ϕ−1 ) ≤ E(ϕ) + (2t)(2m) = O(nlogn). Insgesamt erhält man
die Rekursion
T (n) ≤ 2tT (m) + O(nlogn)
die von T (n)O(n(logn)(loglogn)) gelöst wird, wie man mit Induktion nach
k = logn bestätigt.
Theorem 9.2 ( Schönhage, Strassen) Sei R ei kommutativer Ring mit 1 und
char(R) 6= 1. Das Produkt f g zweier Polynome f, g ∈ R[x] mit deg(f g) ≤ n
kann - mit dem Algorithmus ◦ mult. ◦ (δ × δ) - mit O(n(logn)(loglogn))
arithmetischen Operationen in R berechnet werden.
9.5
Die stetige Fourier - Transformation
Die stetige Fouriertransformation fˆ : Z → C eines “ Signals” f : [0, 2π] →
C ist gegeben durch
Z 2π
ˆ
f (t)e−kt dt
f (k) =
0
Die folgende Umkehrformel drückt dann f als Fourierreihe aus:
f (t) =
1 Xˆ
f (k)eikt
2π k∈Z
1 ˆ
f (k) heißen Fourierkoeffizienten. Die Funktionen
Die Zahlen βk = 2π
ikt
ˆ
t → f(k)e = F (t) sind periodisch mit kleinster Periode T = 2π
: F (t) =
k
78
T
heißt Frequenz. Die FreF (t + T ). T heißt auch Wellenlänge. k = 2π
quenzen sind verantwortlich für die Farbe eines optischen Signals und die
Tonhöhe eines akustischen Signals. fˆ(k) heißt Amplitude von F (t), und ist
verantwortlich für Lautstärke eines akustischen Signals, sowie Leuchtkraft eines optischen. Die Bedeutung der Fouriertransformation in der Technik liegt
vor allem darin, daß sie vom Zeitbereich t in den Frequenzbereich k(als Definitionsbereich des Signals) wechselt. fˆ(k) ist der Beitrag der Frequenz k
zum Wert f (t) des Signals zur Zeit t. Da das menschliche Ohr, oder Auge
hohe Frequenzen kaum wahrnimmt, kann man die entsprechenden fˆ(k)eikt
weglassen, ohne die Empfangsqualität zu beeinträchtigen, und erreicht damit Datenkompression. Wenn man die fˆ(k) übertragen will, man denke
an Fernsehbilder, dann ist es offenbar wichtig, fˆ schnell berechnen zu können,
möglichst in “ realtime.”
Wenn ein stetiges Sinal an diskreten Stellen ausgewertet wird, erhält man
ein diskretes Signal. Wenn man z.B. ein stetiges 2π - periodisches Signal
an den Stellen 2πn
, 0 ≤ n < N “abgreift”, erhält man ein diskretes Signal
N
f : Z → C mit Periode N . Dessen diskrete Fouriertransformation ist
definiert durch
X
X
2πnk
f (n)ω kn
f (n)e N =
fˆ(k) =
0≤n<N
0≤n<N
2πi
mit der primitiven N− ten Einheitswurzel ω = e N . Man kann fˆ(k) auffassen
als f (ω k ) für das Polynom f = f0 + f1 X + . . . + fN −1 X N −1 .
79
10
Lineare Algebra
In diesem Abschnitt geht es um das Lösen linearer Gleichungssysteme
Ax = b. Strassens Methode(1969) beruht auf einer neuartigen Weise Matrizen miteinander zu multiplizieren. Wiedemanns Methode(1986) beruht auf
einer Berechnung des Minimalpolynoms der Folge (Ai b)i , die bei speziellen
n × n Matrizen vorteilhaft ist, nämlich bei solchen, für die die Auswertung
y → Ay wenig kostet - im Vergleich zu n2 . Dazu zählen “ dünn besetzte”
Matrizen.
En passant wird die Frage erörtert, wie man günstig Funktionen durch Rationale Funktionen approximiert: Cauchy- Interpolation, Padé- Approximation.
Nämlich mittels EEA.
10.1
Strassens Matrixmultiplikation
Algorithmus 10.1 ( Strassens Matrixmultiplikation (SMM) (1969))
Input: A, B ∈ F n×n , R Ring, n = 2k , k ∈ N
Output: AB ∈ F n×n
1. Wenn n = 1, A = (a), B = (b), gib (ab) aus.
2. Schreibe
A11 A12
B11 B12
A=
,B =
A21 A22
B21 B22
mit n/2 × n/2− Matrizen Aij , Bij .
3. Berechne mit SMM rekursiv
P1
P2
P3
P4
P5
P6
P6
= (A12 − A22 )(B12 − B22 );
= (A11 − A22 )(B11 − B22 );
= (A11 − A21 )(B11 + B12 );
= (A11 + A12 )B22 ;
= A11 (B12 − B22 );
= A22 (B21 − B22 );
= (A12 + A22 )B11 :
4. Gib aus:
P1 + P2 − P4 + P6
P4 + P5
P6 + P7
P2 − P3 + P5 − P7
80
Satz 10.1 SMM arbeitet korrekt und benötigt für das Produkt zweier n × n
Matrizen weniger als 6nlog2 7 Ringoperationen.
Sei ω das Infimum aller Zahlen α so dass zwei n × n Matrizen über R mit weniger als O(nα ) Ringoperationen miteinander multipliziert werden können. ω
heißt der Exponent der Matrixmultiplikation. Der Exponent anderer Operationen, wie z.B. der Matrixinversion wird analog definiert. SMM zeigt
ω ≤ log7 = 2, 81 . . . . Coppersmith, Winograd zeigten 1986 : ω ≤ 2, 376.
Der entsprechende Algorithmus ist sehr kompliziert. Es ist aber auch in den
letzten 30 Jahren eine bewundernswerte und schöne Theorie zum Exponenten der Matrixmultiplikation entstanden,- ohne dass es gelungen wäre eine
untere Abschätzung > 2 zu zeigen. Weitere Angaben hierzu findet man in
Bürgiesser, Clausen, Shokrollahi(1997). Was hier interessiert, ist dass die
Matrixmultiplikation den gleichen Exponenten hat, wie eine Reihe weiterer
Probleme der linearen Algebra:
1. Inversion
2. Determinante
3. charakteristisches Polynom
4. Basis des Kerns
5. Diagonalisierung Symmetrischer S (OSO −1 diagonal)
Wir wollen hier beweisen, dass Matrixmultiplikation und Inversion den gleichen Exponenten haben. Ausgangspunkt ist die folgende Formel von Strassen
für n × n Matrizen Aij :
A11 A12
A21 A22
−1
=
−1
−1
−1
−1
−1
A−1
11 + A11 A12 ∆ A21 A11 , −A11 A12 ∆
−∆−1 A21 A−1
δ −1
11 ,
mit ∆ = A22 − A21 A−1
11 A12 . Diese Formel kann man leicht verifizieren; allerdings ist sie nur gültig, wenn die Matrizen A11 und ∆ invertierbar sind, was
z.B. bei der invertierbaren Matrix
0 1
1 0
nicht der Fall ist. Sie gilt aber für untere (und obere) Dreiecksmatrizen:
A11 0 =
A21 A22
−1
=
A−1
11 , 0
−1
−1
A22 A21 A−1
11 , A22
81
Wir schildern jetzt einen Algorithmus von Bunch und Hopcroft, der eine Matrix in eine untere Dreiecksmatrix L , eine obere Dreiecksmatrix U und eine
Permutationsmatrix P zerlegt. Aus dieser Zerlegung läßt sich leicht ein Inversionsalgorithmus gewinnen, der ohne zusätzliche Annahmen zeigt, dass Inversion und Multiplikation den selben Exponernten haben.(siehe Aho(1975)
et al.
Definition 10.1 (L, U, P ) heißt LUP − Zerlegung einer (m, p)− Matrix
A, wenn A = LUP, und L eine m × m Matrix in unterer Dreiecksform, U
eine m × p Matrix in oberer Dreiecksform, und P eine Permutationsmatrix
ist. Dabei heißt P Permutationsmatrix, wenn jede Zeile und jede Spalte
eine 1 und p − 1 Nullen enthält.
Algorithmus 10.2 (F actor(A, m, p) )
Input: eine m × p - Matrix A vom Rang m = 2k ≤ p.
Output: Eine LUP − Zerlegung von A.
1. wenn m = 1 finde ein Element aij 6= 0. Sei Q die Permutationsmatrix,
die bei Multiplikation von rechts mit A die erste und die j− te Zeile
vertauscht. Setze L = (1), U = AQ, P = Q−1 ; gib (L, U, P ) aus.
B
mit m/2 × m/2 Matrizen B, C und zerlege B mit
2. Schreibe A =
C
F actor(B, m/2, p) in B = L1 U1 P1 ; berechne D = CP1−1 .
3. Schreibe U1 = (E, E1 ), D = (F, F1 ) mit m/2 × m/2 Matrizen E, F.
Berechne die m/2 × p Matrix G = D − F E −1 U1 .
4. Schreibe G = (0, G1 ) mit einer (m/2, p − m/2)− Matrix G1 . Zerlege G1
mit F actor(G1 , m/2, p − m/2) in G1 = L2 U2 P2 ;
5. Schreibe
L1
0
Id 0
U1 P3−1
L=
, P3 =
, U3 = (0, U2 ); U =
;
F E −1 L2
0 P2
U3
P = P3 P1
6. Gib (L, U, P ) aus.
Satz 10.2 “Factor” arbeitet korrekt.
82
Beweis: wir begnügen uns mit der folgenden Identität:
U
L1
0
U1
L1 0
P1
P1 =
A=
G
F E −1 Id
D
0 Id
Id O
L1
0
Id O
U1 P3−1
P1
=
U3
0 P2
F E −1 Id
0 L2
Sei T (m) die Anzahl der arithmetischen Operationen, die F actor(A, m, m)
benötigt, und ensprechend M(m) für die Multiplikation von m × m− Matrizen. Man zählt leicht nach, dass
T (2k+1) ≤ 2T (2k ) + eM(2k )
für ein geeignetes e > 0.
Sei nun ω der Exponent der Matrixmultiplikation und ω < ω1 . Dann ist also
T (2k ) ≤ ee1 2kω1 , und es folgt mit Induktion nach k dass
ee1
T (2k ) ≤ e3 2kω1 ; e3 ω1
2 −2
für den Exponenten der LUP − Zerlegung ωLU P folgt
ωLU P ≤ ω
Satz 10.3 Matrixmultiplikation und Inversion haben den gleichen Exponenten.
Beweis: Mit A = LUP folgt A−1 = P −1 U −1 L−1 . Sind I(m) die arithmetischen Kosten der Inversion einer m × m− Matrix, und ID die einer m × m
Dreiecksmatrix, so folgt
I(2k ) ≤ 2ID(2k ) + 3M(2k )
weil die Inversion einer Permutationsmatrix keine arithmetischen Kosten verursacht. Nun gilt für die Inversion von Dreiecksmatrizen, wie man gesehen
hat
ID(2k+1) ≤ 2ID(2k ) + 2M(2k )
Hieraus folgt wie oben für den Exponenten ωID der Inversion von Dreiecksmatrizen: ωID ≤ ω, und somit für den Exponenten ωI der allgemeinen Inversion ebenfalls ωI ≤ ω. Schließlich folgt ω ≤ ωI und damit der Satz aus der
folgenden Identität von Winograd :

−1 

Id A 0
Id −A AB
 0 Id B  =  0 Id −B 
0 0 Id
0
0
Id
83
Beispiele 10.1 (LUP- Zerlegung)

0
0
Gesucht ist die LUP- Zerlegung von A = 
0
1
0 0
1 0
0 0
0 0

0
0
F actor((0, 0, 0, 1), 1, 4)) : l1 U1 P1 = (1)(1, 0, 0, 0) 
0
1
−1
Man hat C = (0, 0, 2, 0), P1 = p1 , D = (0, 0, 2, 0),
G = (0, 0, 2, 0); G1 = (0, 2, 0).


0 1 0
F actor(G1 , 1, 3) : L2 U2 P2 = (1)(2, 0, 0) 1 0 0
0 0 1

1
0

1
0

0 0 1
1 0 0

0 0 1
0 0 0
E = (1); F = (0);

0
1 0 0 0 
1 0
0 0 0 1
0
, 2, 4) :
F actor(
0 2 0 0 0
0 1
0 0 2 0
1

0 0 0
0 0 1
0
3
0
0

Nun schreibt man D = CP1−1 =
4 0 0 0 1 0
1 0 0
1 0
0 0
3 0
E=
; F =
; G = D; G1 =
0 2
0 0
0 4
160
3 0
1 0
F actor(G1 , 2, 2) :
0 1
0 4
0 1
1 0
Diesmal ist P3 = id, und daher U1 =
0 2



2 0 0 0
0 0 0 1
0 2 0 0 0 0 1 0


F actor(A, 4, 4) : Id 
0 0 3 0 0 1 0 0
0 0 0 4
1 0 0 0
84

0 0 1
0 1 0

1 0 0
0 0 0

1 0
 0 0 30
,
0 0 0 4 0
0
0 0
0 0
Folglich ist
10.2
Wiedemanns Algorithmus
Wir wenden uns jetzt dem zweiten Thema dieses Abschnittes zu: Gleichungssysteme Ax = b zu lösen für den Fall, dass die Kosten c(A) für die
Operation v → Av mit einer n × n Matrix A gering im Vergleich zu n2 sind.
Hier sind wichtige Fälle
Matrizenklasse
c(A)
allgemein
2n2 − n
Sylvester-Matrizen
O(M(n))
FFT-Matrizen DF Tω
O(nlogn)
Vandermonde - Matrizen
O(M(n)logn)
dünn besetzte Matrizen mit ≤ s Nicht Nulleinträgen ≤ 2s
Weiteres zu diesem wichtigen Thema der Numerik findet man in Kap.13 von
Bürgisser et al.(1997)
Definition 10.2 Sei V ein Vektorraum über einem Körper F. Eine Folge
a = (ai )i∈N ∈ V N von Elementen aus V heißt linear rekurrent über F ,
wenn n ∈ N und f0 , . . . , fn ∈ F existieren, mit
0 = f0 ai + . . . + fn ai+n , fn 6= 0; (i ∈ N)
Das Polynom f = f0 + f1 x + . . . + fn xn heißt dann charakteristisches
Polynom von a. Ein charakteristisches Polynom f mit minimalem Grad n
und fn = 1 heist Minimalpolynom von a.
Der Folgenraum V N ist bezüglich komponentenweiser Addition und Skalarmultiplikation mit Elementen aus F ein F − Vektorraum. Er wird vermöge
(ga)i = g0 ai + . . . + gn ai+n , g = g0 + g1 x + . . . gn xn
ein F [x]− Modul, d.h. es gilt für alle a, b ∈ V N , f, g ∈ F [x] :
f (a + b) = f a + f b; (f + g)a = f a + ga; f 0 = 0; 0a = 0; 1a = a
(f g)a = f (ga) = g(f a)
Die Gültigkeit der letzten Zeile macht man sich am besten klar, indem man
feststellt, dass Multiplikation mit xj den j- fachen “ shift” nach links bedeutet:
(xj a)i = ai+j
Offenbar bilden die charakteristischen Polynome von a ein Ideal in F [x], das
von einem monischen Element erzeugt wird - F [x] ist ein Hauptidealring - es
ist das Minimalpolynom ma ; degma heißt Rekursionsordnung von a.
85
Beispiele 10.2
1. V = F ; a = 0, ma = 1.
2. V = F Q, a0 = 0, a1 = 1, ai+2 = ai+1 + ai ; ma = x2 − x − 1. a heißt
Fibonacci- Folge.
3. V = F n×n , A ∈ V, A ist also eine n × n Matrix- a = (Ai )i∈N . a ist
linear rekurrent: definiert man χA (x) = det(xId − A) ∈ F [x], so besagt
der Satz von Hamilton - Caley:
χA (A) = 0
4. V = F n , A ∈ F n×n , b ∈ F n , a = (Ai b)i∈N . Wieder ist χA charakteristisch.
5. V = F ; A ∈ F n×n , b, u ∈ F n , a = (uT Ai b)i . Dies ist das Beipiel,
das im Algorithmus von Wiedemann weiter unten auftritt. Es ist ein
Spezialfall des folgenden
6. b ∈ V N , ϕ : V → W, linear,W Vektorraum über F, a = (ϕ(ai ))i . Ist f
charakteristisches Polynom von b , so ist es auch char. Polynom von a.
Dies ist die Idee von Wiedemanns Algorithmus:
Sei A eine invertierbare n × n Matrix; dann ist
X
χA (x) = xn − (
Aii )xn−1 + . . . (−1)n detA
i
Sei b ∈ F n , a = (Ai b)i∈N . Dann ist
ma = m0 + m1 x + . . . + md xd
ein Teiler von χA , und deshalb m0 6= 0. Folglich kann man schreiben
X
X
i
−1
Ai−1 b)
A
b
=
A(−m
b = −m−1
0
0
1≤d
1≤i≤d
Mit y = −m−1
0
P
1≤i≤d
Ai−1 b gilt
Ay = b
Man kann also mit Hilfe des Minimalpolynoms der Folge a das lineare Gleichungssystem Ax = b lösen:
Algorithmus 10.3 (Nichtsinguläre n × n Systeme nach Wiedemann)
Input: Invertierbares A ∈ F n×n , b ∈ F n ;
Output: y = A−1 b ∈ F n .
86
1. Berechne m = ma für a = (Ai b)i ∈ (F n )N ;
∈ F [x]
2. h ← − m−m(0)
m(0)x
3. Berechne nach Horner y = h(A)b
4. Gib y aus.
Es kommt nun darauf an, das Minimalpolynom so zu berechnen, dass für
gewisse Klassen von Matrizen ein Vorteil gegenüber allgemeingültigen Methoden entsteht. Genauer: sei c(A) die Anzahl der F − Operationen, die für
eine Matrix- mal- Vektor Operation v → Av benötigt werden. Dann geht es
um Verfahren mit einem Rechenaufwand von O(nc(A)).
Wir betrachten zunächst den skalaren Fall a ∈ F N , und dann den Vektorfall
a = (Ai b)i . Der skalare Fall wird auf die sogenannte Padé- Approximation
zurückgeführt. Padé- Approximation bedeutet Approximation von Polynomen durch rationale Funktionen, und wird mit dem erweiterten euklidischen
Algorithmus (EEA) berechnet.
Definition 10.3 Sei f = f0 + f1 x + . . . fd xd ∈ F [x]. Man setzt revd f =
xd f (x−1 ) = f0 xd + . . . fd .
Satz 10.4 Sei a = (ai )i ∈ F N linear rekurrent mit Rekusionsordnung d ≤ n,
und f = a0 + a1 x + . . . a2n−1 x2n−1 . revd t ist genau dann Minimalpolynom von
a, wenn es ein s ∈ F [x] gibt, mit
s
≡ f (modx2n ); x 6 | t; degt ≤ n; degs < n; ggt(s, t) = 1.
t
d = max{1 + degg, degr}
Beweis : Sei h =
F ,
P
i
ai xi ∈ F [[x]] = Ring der formalen Potenzreihen über
γ = γ0 + . . . γd xd , r = revγ = γ0 xd + . . . γd .
Für k ≥ d ist
(rh)k =
X
rd−j hk−d+j =
0≤j≤d
X
fj ak−d+j
0≤j≤d
Also ist γ genau dann char. Pol. von a, wenn deg(rh) < d, d.h.
h=
g
≡ f (modx2n ), degg < d
r
87
Offenbar ist d ≥ max{1 + degg, degr}, und degr < d genau dann, wenn
x|γ. Sei nun γ = ma . Wäre d < max{1 + degg, degr}, so wäre x Teiler von
γ = γ1 x+. . .+γd xd , also r = rev(γ/x), und γ/x char. Pol. von f entgegen der
Minimalität von γ. Also bist d = max{1 + degg, degr}; degg < d, degr ≤ d.
Beachtet man d ≤ n nach Vorraussetzung, so bleibt noch ggt(g, r) = 1 zu
zeigen.
γ
Sei dazu u = ggt(g, r), also uk = r = revγ, revureva = γ, revk = revu
=
g
r
∗ r
∗
∗
∗
γ , degγ = d − degu, u = k = revγ , u h = u . Es ist also γ char.Pol. von
a und wegen der Minimalität von γ degu = 0, d.h. ggt(g, r) = 1.
(s, t) ist (n − n)− Padé- Approximation von f im Sinne der folgenden Definition:
P
Definition 10.4 Sei f = 0≤i fi xi ∈ F [[x]] eine formale Potenzreihe mit
Koeffizienten aus einem Körper F ; (s, t) ∈ F [x]2 heißt Padé- Approximation von f , wenn
x 6 |; s ≡ tf modxn ; degs < k; degt ≤ n − k; ggt(s, t) = 1
Padé Approximationen werden mit dem EEA konstruiert, wie weiter unten
ausführt wird.
Algorithmus 10.4 (Minimalpolynom skalar)
Input : Eine obere Schranke n für die Rekursions Ordnung d und die ersten
2n Einträge a0 , a1 , . . . an−1 ∈ F einer linear rekurrenten Folge a ∈ F N .
Output: Das Minimalpolynom ma ∈ F [x]
1. h ← a2n−1 x2n−1 + . . . + a1 x + a0
2. Berechne mit dem EEA(x2n , h) eine (n, n) -Padé- Approximation
(s, t) ∈ F [x]2 von h mit t(0) = 1.
3. d ← max(1 + degs, degt); gib revd (t) aus
Wir wenden uns nun der Aufgabe zu, das Minimalpolynom einer vektoriellen
linear rekurrenten Folge zu bestimmen.
Lemma 10.1 Sei R Integritätsbereich,
n ∈ N, S ⊂ R, s = ]S, r ∈ R[x1 , . . . , xn ], degr ≤ d ∈ N.
Dann gilt
1. Ist r 6= 0 so hat r höchstens dsn−1 Nullstellen in S n .
2. Ist r(S n ) = {0}, und d < s - so ist r = 0.
88
Beweis: (2) folgt aus (1).
(1) folgt mit Induktion nach n . Der Fall n = 0 ist trivial. Ist die Behauptung
schon bis n − 1 bewiesen, und
X
r=
ri (x1 , . . . , xn−1 )xin , rk 6= 0
0≤i≤k
so unterscheiden wir zwei Sorten von Nullstellen y = (y1 , . . . yn ) ∈ S n von r :
Für die eine ist rk (y1, . . . yn−1 ) = 0. Von diesen kann es nach Induktionsannahme höchstens (d − k)sn−2 geben. Für die andere ist rk (y1 , . . . , yn−1) 6= 0.
Weil ein Polynom vom Grad k höchstens k Nullstellen aht, gibt es von der
zweiten Sorte höchstens ksn−1 viele. Also gibt es insgesamt höchstens dsn−1 .
Das folgende Lemma dient der Laufzeitabschätzung in unserem probabilistischen Algorithmus.
Lemma 10.2 Sei U ⊂ F endlich,A ∈ F n×n , b ∈ F n \ {0}, a =
(Ai b)i∈N , f = ma , degf = d. Wählt man u ∈ U n zufällig, gleichverteilt,
d
so ist mit Wahrscheinlichkeit p ≥ 1 − ]U
f das Minimalpolynom der Folge
T i
(u A b)i∈N .
Beweis: Sei Mf = {a|f a = 0} die Menge der Folgen, für die f charakteristisch ist. Da die ersten d Einträge einer Folge a ∈ Mf diese voständig
bestimmen, aber ihrerseits beliebig vorgegeben werden können, ist Mf ein d
-dimensionaler F Vektorraum. Eine spezielle Basis erhält man wie folgt: Sei
c = (0, . . . 0, 1cd, cd+1 , . . . ) ∈ Mf
Die cd+j sind also so gewählt, dass f c = 0. Dann ist
{c, xc, x2 c, . . . xd−1 c}
eine Basis von Mf . Folglich ist jedes a ∈ Mf eindeutig von der Form gc
mit einem g ∈ F [x] mit degg < d. Wenn wir ϕ∗ (gc) = g + f F [x] setzen
, erhalten wir eine Bijektion ϕ : Mf → F [x]/ < f > . Ordnet man jetzt
u ∈ U n die Folge ψ(u) = uT Ai b)i∈N zu so erhält man ψ(u) ∈ Mf . Da f
Minimalpolynom ist, sind die bAb, A2 b, . . . , Ad−1 b linear unabhängig. Hieraus
folgt, dass ψ ∗ : F n → Mf surjektiv ist. Setzt man nun
ψ = ϕ ◦ ψ∗
so ist ψ : F n → F [x]/ < f > eine Surjektion.
Sei nun ψ(u) = g. g ist genau dann Nullteiler in F [x]/ < f >, wenn es ein
h ∈ F [x] \ {0} gibt, mit degh < d, und gh = ρf, d.h. wenn f nicht Minimalpolynom von gc ist. Anders ausgedrückt: f ist genau dann Minimalpolynom
89
von ψ ∗ (u), wenn g Einheit in F [x]/ < f >, d.h. wenn ggt(ψ(u), f ) = 1. Sei
nun ej der j− te Einheitsvektor in F n , so dass sich u ∈ F n eindeutig als
u = u1 e1 + . . . + un en schreibt. Wir betrachten das Polynom
r(y1 , . . . , yn ) = resx (y1 ψ(e1 ) + . . . + yn ψ(en ), f ) ∈ F [y1 , . . . , yn ]
Auf Grund der definierenden Eigenschaft von Resultanten ist ψ(u) genau
dann Einheit in F [x]/ < f >, wenn r(u1, . . . , un ) = 0. Nun gibt es, weil ψ
Surjektion ist, u ∈ F n mit ψ(u) = 1. Also ist r 6= 0. Nach dem vorangegangenen Lemma ist daher bei zufälliger Wahl von u ∈ U n die WS, dass f
Minimalpolynom von ψ ∗ (u)
≥
d
d
sn − dsn−1
=
1
−
=
1
−
sn
s
]U
Algorithmus 10.5 (Minimalpolynom vektoriell)
Input: A ∈ F n×n invertierbar,b ∈ F n ;
Output: Minimalpolynom ma von a = (Ai b)i∈N
1. Wenn b = 0, gib 1 aus;
2. Wähle U ⊂ F endlich ;
3. Wähle u ∈ U n zufällig, gleichverteilt, und berechne
uT Ai b ∈ F, 0 ≤ i < 2n;
4. Berechne mit “Minimalpolynom skalar“ das Minimalpolynom m ∈ F [x]
der Folge (uT Ai b)i mit Rekursionsschranke n;
5. Wenn m(A)b = 0, gib m aus. Sonst goto 3.
10.3
Padé- Approximation
Es sei an das Gleicungssystem des EEA(g, f ) erinnert:
ρ0 r0 = g
ρ1 r1 = f
ρ2 r2 = r0 − q1 r1
..
.
ρi+1 ri+1 = ri−1 qi ri
..
.
0 = rl−1 − ql rl
ρ0 s0 = 1
s1 = 0
ρ2 s2 = s0 − q1 s1
..
.
ρi+1 si+1 = si−1 − qi si
..
.
ρl+1 sl+1 = sl−1 − ql sl
90
t0 = 0
ρ1 t1 = 1
ρ2 t2 = t0 − q1 t1
..
.
ρi+1 ti+1 = ti−1 − qi ti q
..
.
ρl+1 tl+1 = tl−1 − ql tl
Hierbei ist ρi+1 = lc(ri−1 remri ), und ri+1 = normal(ri−1 remri ).
Der Beweis des folgenden Lemmas mittels Induktion sei dem Leser überlassen:
Lemma 10.3
1. ri = si g + ti g;
2. degsi = degg − ni−1
nj = degrj 2 ≤ i ≤ l + 1;
3. degti = degf − ni−1 ;
4. si ti+1 − ti si+1 = (−1)i (ρ0 . . . ρi+1 )−1 ;
5. ggt(si, ti ) = 1;
6. ggt(ti, g) = ggt(ti, ri).
Satz 10.5 (rationale Approximation) Seien
f, g ∈ F [x], degg = n > 0, degf < n, k ∈ {0, 1, . . . , n}.
Sei j im EEA minimal mit degrj < k. Dann gilt
1. rj ≡ tj f (modg); degrj < k; degtj ≤ n − k. Wenn ggt(rj , tj ) = 1, dann
ist ggt(g, tj ) = 1.
2. Wenn r ≡ tf (modg), ggt(r, t) = 1, lc(t) = 1, degr < k, degt ≤ n − k,
dann ist r = τ −1 rj , t = τ −1 tj mit τ = lc(tj ) ∈ F ∗ .
((r, t) heißt rationale (n, k)− Approximation von f (modg. ))
Beweis: Nach Lemma und wegen der Minimalität von j ist
rj ≡ tj f (modg); degtj = degg − degrj−1 < n − k
Wenn ggt(rj , tj ) = 1 dann ist nach Lemma ggt(tj , g) = 1.
Um die zweite Aussage zu zeigen, schreiben wir r = tf + sg. Wähle i im EEA
so dass degri ≤ degr < degri−1. Dann gilt
si t = sti
Wäre diese Behauptung falsch, so könnte man das System
si ti
f
r
= i
s t
g
r
91
lösen und erhielte nach Cramers Regel
ri ti
det
r t
f=
si ti
det
s t
Dann hätte man deg(Zähler) = deg(rit − rti ) ≤ max(degri + degt, degr +
gegti ) ≤ (degr − degt, degr + degg − degri−1 ) < max(n, n) = n = degf,
im Widerspruch zur Annahme. Also ist si t = sti . Weil ggt(si, ti ) = 1
ist t = αti , α ∈ F [x] \ {0}. Da t monisch, ist si αti = sti . Wegen (4)
ist ti 6= 0, g = αri also si α = s, r = αti f + αsi g = αri . Folglich :
α|ggt(t, r) = 1 α ∈ F ∗ , α = lc(t1 j ) , τ = α−1 .
Beispiele 10.3
i
qi
0
−
1 x−
2 x−
3
−
3
2
1
2
1. EEA(12(x3 − 37 x2 + 53 x − 13 ), −12(x2 − 65 − 61 ))
qi
12
−12
ρi
x −
+ 53 x −
5
2
x − 6 x + 16
x − 31
0
3
1
4
1
7 2
x
3
si
1
12
1
3
0
1
3
1
− 3 x + 61
ti
0
1
− 12
1
x − 21
3
1 2
− 3 x + 23 x −
1
3
Resultat:
1
1
1
ggt(ρ0 r0 , ρ1 r1 ) = (x − )ρ0 r0 + ( x − )ρ1 r1
3
3
2
2. EEA(x3 + 2x2 + 2x, x2 + x + 2); F = Z5
i
qi
ρi
0
−
1
1 x+1 3
2 x+4 4
3 x+2 4
ri
si
ti
2
x + 2x + 2x
1
0
2
x +x+2
0
2
x+2
4
2x + 2
0
x2 + x + 2 3x3 + x2 + x
3
Resultat: f = 3x2 + 3x + 1 ist das “ Interpolationspolynom”, welches
an den Stellen i die Werte 2i annimmt.(i = 0, 1, 2. ) Eine Funktion g
nimmt genau dann ebenfalls diese Werte an diesen Stellen an, wenn
g ≡ f mod(x(x − 1)(x − 2).Aus der zweiten Zeile erhält man eine rationale Funktion
x+2
3x + 1
r2
=
=
t2
2x + 2
x+1
92
die das tut. Man spricht von einer (2, 1)− Cauchy- Interpolation. Aus
Zeile 3 erhält man eine (1, 1) Cauchy- Interpolation:
r3
1
3
= 2
= 2
t3
2x + 1
x +3
r
t
(bei einer (k, n−k) Interpolation
k, degt ≤ n − k.)
ist n die Anzahl der Stellen, degr <
3. EEA(x4 , x3 + 2x2 + 3x + 4); F = Z5
i
qi
ρi
0
−
1
1
x+3
4
2
x
1
3 x2 + 2x + 3 4
4
−
1
ri
si
ti
4
x
1
0
x3 + 2x2 + 3x + 4
0
4
2
x + 2x + 3
1
x+3
1
x
x2 + 3x + 1
0
4x3 + 3x2 + 2x + 1
x4
Resultat: Zeile 1. enthält die triviale (0, 4) Padé- Approximation von
f=
X
(i + 1)xi = (
0≤i
1 0
1
) =
1−x
(1 − x)2
2
+2x+1
.
Zeile 2. enthält die (3, 1)− P.A. x 3x+3
1
Zeile 3. enthält die (2, 2)− P.A. x2 +3x+1 =
Zeile 4. enthält keine P.A., da x|t4 .
1
(x−1)2
= f !!
4. Sei f = x2 + 1 ∈ F [x], F = Q. Es gibt keine (2, 1) P.A. Andernfalls
hätte man r, t ∈ Q[x] mit degr < 2; degt ≤ 1, x 6 |t, r ≡ tf (modx3 ), t =
ax+b, b 6= 0, also r ≡ (ax+b)(x2 +1) ≡ ax+bx2 +b, was unmöglich ist,
wegen deg r ≤ 1 . Im EEA(x3 , x2 + 1) hat man zwar r2 = s2 x3 + t2 f ≡
t2 f (modx3 ) aber
r2
= 1 6≡ x2 + 1(modx3 )
t2
i qi
0 −
1 x
2 x
3 x
4 −
ρi
ri
1
x3
1 x2 + 1
−1
x
1
1
1
0
si
1
0
−1
x
−1 − x2
ti
0
1
x
1 − x2
x3
93
5. Es ist das Minimalpolynom der Folge (3, 0, 4, 2, 3, 0, . . . ) ∈ ZN5 mit Rekursionsordnung ≤ 3 zu berechnen. Folglich berechnen wir eine (3, 3)−
P.A. von f = 3+4x2 +2x3 +3x4 , also den EEA(x6 , 3x4 +2x3 +4x2 +3) :
0
qi
ρi
0
−
1
2
1 x +x+3 3
2
x3 + x2
4
3
x+3
1
4
−
1
ri
x6
x4 + 4x3 + 3x2 + 1
x+3
1
0
si
1
0
4
x3 + x2
...
ti
0
2
2
2x + 2x + 1
2x5 + 4x4 + 4x3 + x2
...
Resultat: es ist rt22 ≡ f (modx6 ). Ferner ist ggt(r2, t2 ) = 1, max(degr2 +
1, degtj ) = d = 2 und daher rev2 t2 = x2 + 2x + 2c das gesuchte Minimalpolynom von a.
6. Lineare Gleichungen nach Wiedemann: zu lösen ist Ax = b mit
 


3
1 4 4



A = 4 0 3 ; b = 1 ;
2
1 2 4
 
 
 
 
 
0
4
2
3
0
2
3
4
5









Ab = 3 ; A b = 4 ; A b = 0 ; A b = 0 ; A b = 1
3
3
4
3
0
Wählt man u = (1, 0, 0)T , so erhält man die Folge (uT Ai b)i =
(3, 0, 4, 2, 3, 0 . . . ), deren Minimalpolynom
sich oben als x2 + 2x + 2
 
0
2

ergeben hat. Da aber A b + 2Ab + 2b = 2 , hat man von neuem ein
3
T
u zu wählen. Wählt man u = (1, 2, 0) , so erhält man mit “ Minimalpolynom skalar” m = x2 + 3x + 1. Man prüft nach, dass in der Tat
A3 + 3Ab + b = 0. Dann ist
h=−
m − m(0)
= −x2 − 3 = 4x2 + 2
m(0)x
und
 
2
2

x = h(A)b = 4A b + 2b = 3
1
94
11
11.1
Der Euklidische Algorithmus. Fortsetzung
Zusammenfassung
Die Frage nach den Kosten des erweiterten Euklidischen Algorithmus in
F [x], (F Körper) stellt sich (nach der üblichen Abstraktion von der realen
Situation) auf zweifache Weise:
1. Wieviel arithmetische Operationen in F werden für gegebene f, g ∈
F [x] mit degf = n, degg = m benötigt?
2. Wie groß können Zähler und Nenner von Koeffizienten von Zwischenresultaten werden?
Auf die erste Frage liefert die übliche Analyse des EEA die Antwort O(mn).
(siehe v.z.Gathen, Gerhard (1999).) Der EEA liefert naturgemäß alle Zwischenresultate, d.h. alle Zeilen des EEA Gleichungssystems. Wenn man
nur an einer einzigen Zeile interessiert ist, z.B. an der letzten, kann man
den Algorithmus von Knuth, Schönhage (siehe unten) verwenden, der mit
O(M(n)logn)F − Operationen auskommt. Hier bedeuten M(n) die Multiplikatonskosten in F [x] , die im Abschnitt über Konvolution betrachtet wurden,
mit dem Ergebnis M(n) = O(nlogn) - in einigen Fällen.
Die zweite Frage wird gern übersehen, wenn man sich nicht klar macht, dass
sich bei Mukltiplikation oder Addition zweier rationaler Zahlen die Länge
ihrer Zähler und Nenner verdoppeln kann:
a1 a2 a1 a2
a1 b2 + a2 b1
,
+
=
b1 b2 b1
b2
a2 b2
Sollte dies bei n aufeinanderfolgenden Operationen passieren, so würden
Zahlen der Länge 2n auftreten, - und EEA wäre kein polynomieller Algorithmus. Zum Glück ist dem nicht so und man sieht dies mit Hilfe von
“Subresultanten” - einer Verallgemeinerung von Resultanten. Allerdings
gibt es das Phänomen des “ intermediate coefficient swell” wirklich, wie
man leicht feststellt, indem man etwa MAPLE auf zwei zufällig gewählten
Polynomen arbeiten läßt. Teilweises Verständnis für dieses Wachstum wird
durch Mignottes Faktorschranke (siehe unten) für den ggt(f, g) ermöglicht,
welche die Abschätzung der anderen Zwischenresultate durch Subresultanten
um eine Größenordnung unterbietet. Diese ist der Ausgangspunkt für einen
modularen Algorithmus, welcher modulo einer Primzahl rechnet, die etwas
gößer ist als die Mignotte-Schranke. In der Praxis erweisen sich allerdings
Algorithmen als wesentlich schneller, die modulo mehrer kleiner Primzahlen
95
rechnen, und die gewünschten Resultate mittels chinesischem Restsatz
wieder zsammensetzen.
Das Studium der Subresultanten lohnt sich noch aus einem anderen Grunde:
der sogenannte “ Hauptsatz” (siehe unten) zeigt, dass eine Variante des
Knuth,Schönhage- Algorithmus ohne zusätzliche Kosten die Resultante
berechnet. Dies ist ein wichtiges Resultat, weil die Resultante in vielen
Algorithmen - zwecks Elemination von Variablen- auftritt.
11.2
Schnelle Ggt- Berechnung
Es sei an die Gleichungsform des EEA(f, g) erinnert:
ρ0 r0 = g
ρ1 r1 = f
ρ2 r2 = r0 − q1 r1
..
.
ρi+1 ri+1 = ri−1 − qi ri
..
.
0 = rl−1 − ql rl
ρ0 s0 = 1
s1 = 0
ρ2 s2 = s0 − q1 s1
..
.
ρi+1 si+1 = si−1 − qi si
..
.
ρl+1 sl+1 = sl−1 − ql sl
t0 = 0
ρ1 t1 = 1
ρ2 t2 = t0 − q1 t1
..
.
ρi+1 ti+1 = ti−1 − qi ti q
..
.
ρl+1 tl+1 = tl−1 − ql tl
Hierbei ist ρi+1 = lc(ri−1 (rem)ri ), und ri+1 = normal(ri−1 (rem)ri ). Sei ni =
degri .(n0 , n1 , . . . nl+1 ) heißt Gradfolge. Man setzt mi = degqi . Mit Induktion
nach i sieht man, dass
X
n0 − ni =
mi
1≤i≤i
Die Zahl η(k) wird nun dadurch definiert, dass
n0 − nη(k) ≤ k < n0 − nη(k)+1
Idee des schnellen EEA: die ersten Quotienten q1 , q2 , . . . hängen nur von
den höchsten Koeffizienten fn , fn−1 , . . . , gm , gm−1 , . . . von f = r0 , g = r1 ab.
Man wendet daher eine “divide and conquer“- Strategie an: man berechnet
(rekursiv) den ggt der führenden ersten Hälften f 0 , g 0 von f und g und damit
eine k -te Zeile in der Mitte des EEA(f, g) und dann rekursiv ggt(rk , rk+1)
und damit ggt(f, g). Weil man nicht n, sondern den Algorithmus in zwei gleiche Teile teilen möchte, wählt man k = η(b n2 c). Der führende k− Abschnitt
96
von f = fn xn + . . . + f0 mit degf = n wird definiert durch
f k = fn xk + +fn−1 xk−1 + . . . fn−k
Es ist inspirierend, die Zeilen des EEA mit Matrizen zu formulieren:
si
ti
0
1
, 0≤i≤l
, Ri =
Qi =
−1
si+1 ti+1
ρ−1
i+1 −qi ρi+1
Es gilt dann:
f
ri
ri−1
ri
Ri
=
, Qi Ri = Ri+1 , Qi
=
g
ri+1
ri
ri+1
und damit
rl
f
= Ql . . . Q1 R0
0
g
Die Abhängigkeit der qi , ρi+1 von den führenden Abschnitten von f, g vorrausgesetzt (siehe Lemma weiter unten) wird durch diese Formel noch einmal
eine “ Halbierungsstrategie” nahegelegt.
Algorithmus 11.1 (SEEA(r0 , r1 , k) )
Input : r0 , r1 ∈ F [x], lcr0 = lcr1 = 1, n = n0 degr0 > n1 = degr1 , k ∈ N, 0 ≤
k ≤ n.
Output : h = η(k) ∈ N, Rh ∈ F [x]2×2
1 0
aus
1. wenn r1 = 0, oder k < n0 − n1 gib 0,
0 1
2. d ← bk/2c
3. Berechne j −1, R = Qj−1 . . . Q1 mit SEEA(r0 2d, r1 2d −(n0 −n1 ))
rj−1
r0
nj−1
degrj−1
4.
←R
,
←
rj
r1
nj
degrj
5. wenn rj = 0 oder k < n0 − nj , gib (j − 1, R) aus
6. Ersetze qj ← rj−1 (quo)rj , ρj+1 ← lc(rj−1 (rem)rj ),
normal(rj−1 (rem)rj ),
nj+1 ← degrj+1
7. d∗ ← k − (n0 − nj )
97
rj+1 ←
8. Berechne h − j = η(d∗), S = Qh . . . Qj+1 ) mit SEEA(rj 2d∗ , rj+1 (2d∗ − nj − nj+1 ), d∗ );
0
1
9. Qj ←
−1
ρ−1
j+1 −qj ρj+1
10. Gib (h, SQj R) aus.
Theorem 11.1 SEEA arbeitet korrekt und benötigt für n ≤ 2k
(24M(k) + O(k))logk Operationen in F.
Bemerkungen:
1. Der Algorithmus gibt sh , th , sh+1 , th+1 aus; man kann also mit wenigen
zusätzlichen Operationen ρh und rh = sh f + th g berechnen.
2. Ist die Vorraussetzung lcr0 = lcr0 = 1 nicht erfüllt, so dividiere man
durch die führenden Koeffizienten. Ist dann die Vorraussetzung degr0 <
degr1 nicht erfüllt, so ersetze man r1 durch normal(r0 − r1 ). Für die
Laufzeitabschätzung sei auf v.z.Gathen,Gerhard (1999) verwiesen. Man
hat, um zu dieser Abschätzung zu kommen, die “ schnelle” Division
mit Rest- via Newton- Iteration - im Algorithmus zu verwenden.
3. Man kann ohne zusätzliche arithmetische Operationen noch die ρi , ni
ausdrucken lassen. Dies ist für die schnelle Berechnung der Resultante
(weiter unten) wichtig.
4. Varianten (modulare) des Algorithmus arbeiten mit ähnlichen Laufzeiten in Z, Z[x], F [y][x].
5. Eine Anwendung ist die schnelle Multiplikation in F [x]/ < f >, f ∈
F [x]. Mit der schnellen Division mit Rest kommt man bei der Multiplikation au 6M(n) + O(n), und bei der Division mit dem schnellen EEA
auf (24M(n) + O(n))logn.
6. V.Strassen zeigte, dass im sogenannten skalaren Berechnungsmodell,
wo Addition und Multiplikation (von Polynomen) mit Skalaren nicht
gezählt werden, der SEEA
X
O(n0 H(m1 /m, M2 /m, . . . ml /m)); m =
mi
1≤i≤l
P
F -Operationen benötigt, wobei H(p1 , . . . pl ) = i −p1 logpi die Entropie von (p1 , . . . pl ). Er zeigte zudem, dass in diesem Modell mindestens
n0 H(m1 /m, . . . ml /m)F − Operationen benötigt werden, um alle Quotienten qi zu breechnen.
98
Das folgende Lemma und das Korollar dazu präzisieren die unter “Idee”
angefürte Beobachtung und zeigen damit die Korrektheit. Die folgende Definition ist dabei nützlich
Definition 11.1 Seien f, g, f ∗, g ∗ ∈ F [x] \ {0}, degf ≥ degg, degf ∗ ≥
degg ∗, k ∈ Z. Man sagt, (f, g) und (f ∗ , g ∗ ) stimmen bis k überein, wenn
f k = f ∗ k und
g (k − (gegf − degg)) = g ∗ (k − (degf ∗ − degg ∗))
In diesem Fall, und wenn k ≥ degf − degg, ist
degf − degg = degf ∗ − degg ∗
Lemma 11.1 Es gelte
k ∈ Z, (f, g), (f ∗, g ∗ ) ∈ (F [x] \ {0})2 , k ≥ degf − degg ≥ 0
sowie f = qg + r, degr < degg, und f ∗ = q ∗ g ∗ + r ∗ , degr ∗ < degg ∗ .
Wenn dann (f, g) und (f ∗ , g ∗)) bis 2k übereinstimmen, dann gilt
(q = q ∗ ) und ( (g, r) und (g ∗ , r ∗ ) stimmen bis 2(k − degq) überein ) oder
(r = 0 ) oder
(k − degq < degg − degr) .
Vor dem Beweis ein Korollar, aus dem direkt die Korrektheit des SEEA
folgt. Dazu stellt man sich neben dem Gleichungssystem für EEA(r0 , r1 )
mit den ρi , ri , qi , si , ti noch ein Gleichungssystem für EEA(r0∗ , r1∗ ) vor mit
entsprechenden ρ∗i , ri∗, qi∗ , s∗i , t∗i .
Korollar 11.1 Sei k ∈ N, h = η(k), h∗ = η ∗ (K). Wenn (r0 , r1 ) und (r0∗ , r1∗ )
bis 2k übereinstimmen, dann gilt
h = h∗ , qi = qi∗ , ρi = ρ∗i , 1 ≤ i ≤ h.
Beweis des Lemmas:
Man kann annehmen, dass degf = degf ∗ < 2k. ( ist dies nicht gegeben,
so multipliziert man (f, g), (f ∗, g ∗) mit geeigneten Potenzen von x .)Aus der
vorrausgesetzten Übereistimmung folgt dann degf − degg = degf ∗ − degg ∗,
und damit degg = deg ∗ . Aus k ≥ degf − degf = degq = degf ∗ − degg ∗ =
degq ∗ folgt dann
deg(f − f ∗ ) < degf − 2k ≤ degg − k ≤ degg − degq
deg(g − g ∗) < degg − (2k − (degf − degg)) = degf − 2k ≤ degg − k
deg(r − r ∗ ) ≤ max(degr, degr∗) < degg
f − f ∗ = q(g − g ∗ ) + (q − q ∗ )g ∗ + (r − r ∗ ).
99
Die Polynome f −f ∗ , q(g −g ∗), und r −r ∗ haben also alle einen Grad < degg.
Also ist deg(q − q ∗ )g ∗ < degg = degg ∗ und daher q = q ∗ .
Um den Rest der Behauptung zu zeigen, nehmen wir an, dass
r 6= 0, und k − degq ≥ degg − degr
Dann ist zu zeigen, dass
g 2(k − degq) = g ∗ 2(k − degq)
r (2(k − degq) − (degg − degr)) = r ∗ (2(k − degq) − (degg ∗ − degr ∗))
Die erste Gleichung folgt aber schon aus der Übereinstimmung von (f, g) und
f ∗ , g ∗ bis 2k , da 2(k − degq) ≤ 2k − degq = 2k − degf − degg. Um die zweite
zu zeigen schreiben wir
deg(r − r ∗ ) = max(deg(f − f ∗ ), degq + deg(g − g ∗ )
degq + deg(g − g ∗ < degq + degf − 2k = degg − 2(k − degq)
deg(f − f ∗ < degf − 2k ≤ degq + degf − 2k
deg(r − r ∗ ) < degr − (2(k − degq) − (degg − degr))
Nach Vorraussetzung ist k − degq ≥ (degg − degr) > 0, und daher
2(k − degq) − (degg − degr) > 0. Also ist degr = degr ∗ und die behauptete Übereinstimmung von r und r ∗ folgt aus
deg(r − r ∗ ) < degr − (2(k − degq) − degg − degr))
q.e.d.
11.3
Subresultanten
Wir wenden uns jetzt der Frage zu, wie lang die Koeffizienten im EEA werden
konnen. Der Beweis des folgenden Lemmas sei dem Leser überlassen (siehev.z.
Gathen,Gerhard (1999))
Lemma 11.2
degsi =
X
degqi = n1 − ni−1 ;
2≤i≤l+1
X
degqj = n0 − ni−1 ,
1≤i≤l+1
2≤j<i
degti =
1≤j<i
100
Satz 11.1 Sei 0 ≤ k ≤ m ≤ n, n = degf, m = degg.
(k kommt nicht in der Gradfolge vor) ⇔ ∃s, t ∈ F [x] mit deg(sf + tg) <
k, t 6= 0, degs < m − k, gegt < n − k.
Beweis: “ ⇒00 : Es gibt 2 ≤ i ≤ l + 1 mit ni < k < ni−1 . Wähle s = si , t = ti .
Dann gilt ri = si f + ti g, degri = ni < k; degsi = n1 − ni−1 = m − ni−1 <
M − k; degti = n0 − ni−1 = n − ni−1 < n − k. Aus ti = 0 folgt si = 0. Nach
früherem Lemma ist
si+1 ti − ti+1 si = (−1)i (ρ0 . . . ρi+1 )−1
Also ist ti 6= 0.
“ ⇐00 : Sei r = sf + tg. Wähle j so dass degrj ≤ degr < degrj−1. Wie im
Beweis des Satzes über rationale Approximation gezeigt, folgt die Existenz
von α ∈ F [x] mit r = αrj , s = αsj , t = αtj . ⇒ nj ≤ degr = degα + nj <
k; n − nj = degtj ≤ degt < n − k. Q.e.d.
Sei Pd = {f ∈ F [x||degf }. Wir betrachten die “ Bezout”Abbildung
ϕk : Pm−k × Pn−k → Pn+m−2k : ϕ(s, t) = sf + tg(quo)xk
Wenn also sf + tg = a0 + a1 x + . . . + am+n−k xn+m−k ,
so ist ϕ(s, t) = ak+1 xk+1 + . . . an+m−k xn+m−k .
Korollar 11.2 Sei 0 ≤ k ≤ m ≤ n und 0 ≤ i ≤ l + 1.
1. k kommt in der Gradfolge vor ⇔ ϕk ist Iso.
2. Wenn k = ni , dann ist (si , ti ) eindeutig bestimmte Lösung von ϕ(s, t) =
1.
Wählt man in Pm−k × Pn−k die Basis
((xm−k , 0), . . . (1, 0), (0, xm−k ), . . . (0, 1))
und in Pm+n−2k : (xn+m−2k , . . . x, 1) so hat ϕk bezüglich dieser Basen die
Matrix Sk :


fn
gm
..
..


..
..
.
.


.
.



fn−m+k+1
fn
gk+1
gm


.
.
.
.


..
..
..
..
Sk = 


 f
f
g
g

k+1
m
m−n+k−1
n

.. 
..
..
..

.
.
.
.
f2k−m+1
fk g2k−n+1
gk
101
Dabei ist fj = gj = 0 gesetzt, falls j < 0. Sk entsteht also aus der Sylvester Matrix S0 dadurch dass man von der letzteren die letzten 2k Zeilen wegläßt,
sowie die letzten k f − Spalten und die letzten k g− Spalten.
Definition 11.2 detSk (f, g) = σk (f, g) heißt k − te Subresultante von
(f, g).
Da ϕk nicht in offensichtlicher Weise eine Selbstabbildung eines Vektorraumes
ist, kann man die Subresultante nicht dieser Abbildung zuordnen, ohne die
beiden Basen zun erwähnen.
Korollar 11.3 Sei 0 ≤ k ≤ m ≤ n, und 0 ≤ i ≤ l + 1.
1. (k kommt in der Gradfolge vor) ⇔ (ϕk 6= 0);
2. Wenn k = ni und x = (ym−k−1, . . . , y0, zn−k−1 , . . . 0) die eindeutig bestimmte Lösung von Sk x = (0, . . . , 0, 1) ist, dann ist
X
X
zj xj
yj xj ; ti =
si =
0≤j<n−k
0≤j<m−k
Definition 11.3 Sei f = f0 + f1 x + . . . + fn xn ∈ C[x]; man setzt
X
X
kf k∞ = max0≤j≤n |fj |, kf k1 =
|fj |; kf k2 = (
|fj |2 )1/2
0≤j≤n
0≤j≤n
Man hat stets
kf k22 =
X
i
|fi |2 ≤ (
X
i
|fi |)2 = kf k21 ≤ (n + 1)2 kf k∞
Aus der Ungleichung von Hadamard (Abschnitt über kurze Vektoren) folgt
nun
Korollar 11.4 Sei f, g ∈ C[x], degf = n ≥ m = degg ≥ 1; 0 ≤ k ≤ m.
Dann gilt:
n−k
|σk | = |detSk | ≤ kf k2m−k kgk2n−k ≤ (n + 1)n−k kf k∞ kgk∞
Mit diesem Korollar ergibt sich eine Abschätzung für Zähler und Nenner der
ri , qi , si, ti des EEA(f, g). Zusammen mit der Abschätzung O(mn) für die
Anzahl der arithmetischen Operationen erhält man:
102
Satz 11.2 Es gelte f, g ∈ (Z + iZ)[x] degf = n ≤ degf = m, sowie
max(kf k∞ , kgk∞ ) = A, δ = max{ni−1 − ni |1 ≤ i ≤ l}. Dann sind die
gekürzten Zähler und Nenner der ri , si , ti ∈ (Q + iQ)[x] absolut beschränkt
durch
2B = 2(n + 1)n An+m
Die entsprechende Schranke für die qi , ρi ist
C = (2B)δ+2
Der EEA(f, g) benötigt O(n3mδ 2 log 2 (nA)) Wortoperationen.
Wir zeigen nur die Aussagen über die ri , si, ti und verweisen für den Rest auf
v.z.Gathen,Gerhard (1999) Aus dem vorangegangenen Korollar folgt
i
|σni | ≤ kf k2m−ni kgkn−n
≤ (n + 1)n−ni An+m−2ni ≤ B
2
Nun sind aber nach Vorraussetzung f und g ganzzahlig, und ϕi (si , ti ) = ri .
Aus Cramers Regel folgt daher, dass σni si , σni ti , σni ri ganzzzahlig sind und
(nach Hadamards Ungleichung)
i
σni si k∞ ≤ kf k2m−ni −1 kgkn−n
≤ (n + 1)n−ni −1/2 An+m = B
2
σni ti k∞ ≤ kf k2m−ni kgk2n−ni−1 ≤ (n + 1)n−ni−1/2 An+m−2ni −1 = B
kσni ri k∞ = kσni si f + kσni ti gk∞ ≤ (ni + 1)(kσni si k∞ kf k∞ + kσni ti k∞ kgk∞ )
kσni ri k∞ ≤ (ni + 1)2(n + 1)n−ni−1/2 An+m−2ni ≤ 2B
Die Faktorschranke von Mignotte, die weiter unten hergeleitet wird, ist für
rl = ggt(f, g) um eine Größenordnung besser, als die des obigen Satzes. Sie
eignet sich daher für einen modularen “ große Primzahl- Algorithmus”. Aus
einem solchen kann man dann den ggt(f, g) ablesen, aber nicht die restlichen
ri , si, ti .(intermedate coefficient swell)
Theorem 11.2 (Haupsatz über Subresultanten ( Habicht)
1.
i
σk = (−1)τi ρm−n
0
Y
n
ρj j−1
−ni
1≤j≤i
falls k = ni für ein i ≤ l und σk = 0 sonst. Dabei ist
X
τi =
(nj−1 − ni )(nj − ni )
1≤j<i
103
2. Rerursionsformel für Subresultanten:
σm = ρ1n−m ; σni+1 = (−1)(ni −ni+1 )(n−ni+1 i+1 )(ρ0 . . . ρi+1 )ni −ni+1 σni
Im Fall n = k hat man
Korollar 11.5 Wenn deg ggt(f, g) ≥ 1, ist res(f, g) = 0; sonst ist
Y n
X
res(f, g) = (−1)τ ρn0 1
ρj j−1 ; τ =
nj−1 nj
1≤j≤l
1≤j≤l
Der Beweis ergibt sich mit dem folgenden lemma
Lemma 11.3 Seien f, g, r ∈ F [x] monisch mit degf = n ≤ m =
degg, degr = d, ρr = f (rem)g mit ρ ∈ F \ {0}, 0 ≤ k ≤ d. Dann gilt
σk (f, g) = (−1)(n−k)(m−k) ρm−k σk (g, r)
Aus diesem Lemma folgt zunächst mit Induktion über h
Y
nj −k
(−1)(nj−1 −k)(nj −k) ρj+1
σk (r0 , r1 ) = σk (rh , rh+1 )
1≤j≤h
Hieraus folgt die erste Frmel des Haupsatzes mit
k = ni , h = i − 1, σni (ri−1 , ri ) = 1, σk (f, g) = ρ0m−k ρ1n−k σk (r0 , r1 )
Beweis des Lemmas: die Gleichung f = qg + ρr lautet in Matrixschreibweise


gm
 
0

 .. . .
.

.
. 


  


 .. 

fn
gm  qn−m
 
 ..   0 
 ..  
.. 
..

=
 


.=
.
. 
 .
ρrd 


 . 
q0
f0

 g0
 .. 

 . .
.
. . .. 
 ..
ρrd
g0
In dieser Gleichung ist der zweite Term auf der linken Seite eine Linearkombination (mit Koeffizienten aus ρr ) von g− Spalten aus S0 . Für die Matrix
S0 bedeutet dies folgendes: zieht man von der ersten f - Spalte von S0 eine
Linearkombination von g -Spalten ab, so erhält man die erste ρr - Spalte.
Das selbe gilt nun für alle weiteren f - Spalten, da diese aus der ersten durch
“ shiften” entstehen. Es gilt aber auch für Sk , da Sk aus S0 durch Streichen
104
entsteht. Wir können also in Sk die f - Spalten durch ρr - Spalten ersetzen,
ohne dass sich die Determinante ändert. Schließlich können wir noch die so
erhaltenen ρr - Spalten mit den g - Spalten vertauschen, wobei sich die Determinante um das Vorzeichen (−1)(m−k)(n−k) ändert. Wir haben es jetzt mit
der folgenden Matrix zu tun:


gm
 ..

..
 .

.




g
ρr
m
d
 .

..
..
..
 .

.
.
.
 .



gm
ρrd


 .

..
..
..
 ..

.
.
.




ρr
d


 ..
..
..
.. 
 .
.
.
. 
g2k−n+1
gk ρr2k−m+1
ρ0 r0
Diese Matrix hat Kästchendform wobei das Kästchen D links oben untere
Dreiecksform hat mit Einsen in der Diagonale, da gm = 1, und das Kästchen
rechts unten von der Form von der Form Sk (g, ρr) ist, woraus die Behauptung
folgt.
Mit dem SEEA -und der folgenden Bemerkung erhält man
Korollar 11.6 Alle Subresultantenσj (r0 , r1 ), 0 ≤ j ≤ n1 und insbesondere
die Resultante res(r0 , r1 ) können mit (24M(n0 ) + O(n0)logn0 ) f − Operationen berechnet werden.
11.4
Mignotte- Schranke
Wir leiten jetzt Faktorschranken ab, die dazu verwendet werden, die Koeffizienten des ggt(f, g) durch die von f, g abzuschätzen. Sei dazu f ∈
C[x], degf = n. Nach dem Hauptsatz der Algebra gibt es dann Nullstellen
z1 , . . . , zn ∈ C, so dass
Y
f = fn
(x − zi )
1≤i≤n
Da fn = lc(f ) und die Nullstellen bis auf Numerierung eindeutig durch f
festgelegt sind, kann man
Y
M(f ) = |fn |
max(1, |zi |)
1≤i≤n
105
defnieren. Diese Maßzahl hat die interessante Eigenschaft, dass
M(gh) = M(g)M(h)
P
P
Theorem 11.3 Es gelte h = 0≤i≤m ∈ C[x] mit Grad m, und h|f 0≤i≤n .
Dann gilt
khk2 ≤ khk1 ≤ 2m M(h) ≤
|hm | m
2 kf k2
|fn |
Beweis:
Mit der Ungleichung von Landau M(f ) ≤ kf k2 hat man für h =
Q
hm i≤i≤m (x − ui ) ∈ C[x]
m−i
|hi | = |hm (−1)
m
|hm | m
uj | ≤ |hm |
M(f )
M(h) ≤
|f
|
i
i
n
]S=m−i j∈S
X Y
Hieraus folgt die Behauptung wegen
Satz 11.3 ( Landaus Ungleichung)
P
0≤i≤m
m
i
= 2m .
M(f ) ≤ kf k2 (f ∈ C[x])
Beweis: seien z1 , . . . zn die Nullstellen von f mit |z1 |, . . . |Zk | > 1 ≥
|zk+1 |, . . . , |zn |. Dann ist also M(f ) = |fn ||z1 | . . . |zk |. Sei g ∈ C[x] definiert
durch
Y
Y
g = fn
(z¯i x − 1)
(x − zi
1≤i≤k
k<i≤n
Wir benützen nun die allgemein gültige Formel( siehe Lemma weiter unten)
k(z̄x − 1)hk2 = k(x − z)hk2 ; (h ∈ C[x]
Damit folgt kgk2 kf k2 , und
M(f )2 = |fn z¯1 . . . z¯k |2 = |lc(g)|2|leqkgk22
Q.e.d.
Lemma 11.4
k(x − z)f k2 = kz̄x − 1)f k2 ; (f ∈ C[x], z ∈ C)
106
Beweis: Sei f = f0 + f1 x + . . . + fn xn . Dann gilt mit fn+1 = f−1 = 0 :
X
X
¯ − z¯i f̄i )
k(x − z)f k22 =
|fi−1 − zfi |2 =
(fi−1 − zfi )(fi−1
0≤i≤n
i
= kf k22 (1 − |z|2 ) −
X
¯ + z̄fi−1 f̄i
zfi fi−1
i
und für k(z̄x − 1)f k22 bekommt man das selbe heraus.
Korollar 11.7 ( Mignotte-Schranke)Seien f, g, h ∈ Z + iZ[x],
degf = n ≥ 1, degg = m, degh = k, und gh|f in (Z + iZ)[x]. Dann gilt
1.
kgk∞ khk∞ ≤ kgk2 khk2 ≤ kgk1khk1 ≤ 2m+k kf k2 ≤ (n + 1)1/2 2m+k kf k∞
2.
khk∞ ≤ khk2 ≤ 2k kf k2 ≤ 2k kf k1 ; khk∞ ≤ (n + 1)1/2 2k kf k∞
Beweis: Nach Satz ist kgk1khk1 ≤ 2m+k M(g)M(h) = 2m+k M(gh) ≤
2m+k M(f ) ≤ 2m+k kf k2 . Für die zweite Aussage wähle man g = 1.
11.5
Übergang zum Quotientenkörper
Sei R ein faktorieller Ring. Dann ist auch R[x] ein faktorieller Ring und
man hat für je zwei f, g ∈ R[x] einen normalisierten ggt(f, g) = ggtR (f, g).
Es ist aber z.B. Z[x] nicht Euklidisch: das von 2, x erzeugte Ideal ist kein
Hauptideal. Also gibt es keinen Euklidischen Algorithmus in R[x] außer in
Spezialfällen, z.B. wenn der führende Koeffizient von g 1 ist. ( Man kann mit
“ Pseudodivisionen mit Rest” Divisionen vermeiden: Abschnitt über Integration) Sei nun K der Quotientenkörpervon R :
K = {s/r|s, r ∈ R, r 6= 0}
Dann ist K[x] euklidisch und man kann den ggt von f und g in K[x] mit dem
EEA berechnen. Das Resultat werde mit ggtK (f, g) bezeichnet. Es hat definitionsgemäß 1 als höchsten Koeffizienten. Um das Verhältnis von ggtR(f, g)
und ggtK (f, g) zu bestimmen sei an das Gauss- Lemma (Abschnitt 1.) erinnert: ist f = f0 + . . . fn xn ∈ R[x], fn 6= 0, dann ist
cont(f ) = ggt(f0, . . . , fn ), f = cont(f )pp(f ), lc(f ) = fn
cont(f ) heißt Inhalt von f und pp(f ) primitiver Teil von f . Man hat
cont(f g) = cont(f )cont(g), pp(f g) = pp(f )pp(g)
107
Satz 11.4 Es gilt
ggt(f g) = ggt(cont(f ), cont(g))ggt(pp(f )pp(g))
ggtR(f, g) = lc(ggtR(f, g))ggtK (f, g)
Beweis: der Beweis der ersten Gleichung sei dem Leser überlassen. Zum
Beweis der zweiten sei
g = ggtK (f, g) = h0 /k0 + h1 /k1 x + . . . + hl /kl xl , hl = kl = 1
Es gibt dann ein γ ∈ R mit γh ∈ R[x], cont(γh) = 1. Ferner gibt es
f ∗ , g ∗ ∈ K[x] mit hf ∗ = f, hg ∗ = g, sowie α, β ∈ R mit αf ∗, βg ∗ ∈ R[x].
Es gilt dann cont(αf ∗ ) = αγcont(f ), cont(βg ∗) = βγcont(g), und folglich γ −1 f ∗ , γ −1 g ∗ ∈ R[x], also γh|f, γh|g. Also gibt es ρ ∈ R[x] mit
γρh = ggt(f, g). Andererseits gilt offenbar ggtR(f, g)|h in K[x], so dass
degh = degx (ggtR (f, g)). Koeffizientenvergleich ergibt nun
γρ = lc(ggtR (f, g))
Wenn die hi /ki gekürzt sind, d.h. ggt(hi, ki ) = 1, dann ist γ =
kgV (k0 , . . . , kn ) das kleinste gemeinsame Vielfache der ki) und ρ =
contggt(f, g)).
Korollar 11.8 Bei gekürzten hi /ki ist
lc(ggtR (f, g)) = kgV (k0 , . . . , kl )ggt(cont(f ), cont(g))
11.6
Modulare Ggt- Berechnung
Sei R faktorieller Ring. Dann ist R[x] ebenfalls faktoriell und man kann, wie
oben erläutert den ggt zweier Polynome aus R[x] mit dem EEA über dem
Quotientenkörper k berechnen. Allerdings führt dies zu großen Koeffizienten
der Zwischenresultate, wie Beispiele zeigen. Man ist daher veranlaßt, modulo
einer großen Primzahl p zu rechnen. Ist die Primzahl von geeigneter Größe bei R = Z kommt hier die Mignotte- Schranke ins Spiel, bei R = F [y] kommt
es auf degy an - so kann man hoffen, den ggt(f, g) aus dem Ergebnis von
EEAR/<p> (f, g) ablesen zukönnen, bei Zwischenergebnissen, deren Größe
durch die von p beschränkt wird. Dieses Vorgehen heißt “große PrimzahlMethode”, im Gegensatz zur “ kleinen- Primzahl- Methode”, bei welcher
parallel modulo mehrer kleiner Primzahlen gerechnet wird, und das Ergebnis
108
mit dem chinesischen Restsatz zusammengesetzt wird.
Es bezeichne f die Restklasse von f , also f = f + pR[x]. Man hätte nun
gerne
ggtR/<p> (f , g) = ggtR(f, g)
Überraschenderweise gilt nicht einmal stets
deg(ggtR/<p>(f , g)) = deg(ggtR(f, g))
Vielmehr hängt dies von p ab, wie durch das folgende Theorem präzisiert.
Theorem 11.4 Seien f, g ∈ R[x] \ {0}, p ∈ R prim, h = ggtR(f, g), α =
lc(h), e = degh, e∗ = deg(ggtR/<p> (f), g). Wenn p nicht b = ggt(lc(f ), lc(g))
teilt, dann gilt
1. α|b,
2. e∗ ≥ e
3. e = e∗
⇔
αggt(f, g) = h
⇔
p 6 |res(f /h, g/h) ∈ R.
Dieses Theorem legt das folgende algorithmische Vorgehen nahe
1. wähle zufällig p ∈ R prim, so dass p 6 |res(f /h, g/h)
2. berechne ggt(fg) mit dem EEA(f , g) in R/ < p > [x];
3. teste e = e∗
4. berechne h aus αggt(fg = h.
Wir werden im Anschluss an den Beweis des Theorems die Schritte 3., 4.
diskutieren. Für die Analyse von schritt 1. siehe 4.2.
Beweis: Es gibt f1 , g1 ∈ R[x] mit hf1 = f, hg1 = g. Also gilt
lc(h) | lc(f ), lc(h) | lc(g), und deshalb lc(h) | b, d.h. α | b. Außerdem folgt
hf1 = f , hg1 = g
⇒
h | ggt(fg) e = degh = degh ≤ e∗
Es gilt aber e = e∗ genau dann wenn γggt(fg) = h und weil ggt(f, g)
’
normalisiert ist, ist in diesem Falle γ = α. Für die zweite Äquivalenz beachte
man
ggt(fg) = ggt(hf1 , hg1 ) = ggt(f1g1 )h/α
109
Wegen p 6 | b ist h 6= 0. Also gilt
αggt(fg) = h
⇔
ggt(f1 g1 ) = 1
⇔
res(f1 g1 ) 6= 0
⇔
p 6 |res(f /h, g/h)
Nun gilt aber nach dem folgenden Lemma
res(f1 , g1 ) 6= 0
⇔
res(f1 , g1 ) 6= 0
q.e.d.
Lemma 11.5 Sei R ein kommutativer Ring mit 1, f, g, ∈ R[x] \ {0}, r =
res(f, g) ∈ R, I ein Ideal in R und h = h + I die Restklasse modulo I von
h ∈ R[x]. Es gelte lc(f ) 6= 0. Dann gilt
res(f, g) = 0
⇔
res(fg) = 0
Beweis: Wir betrachten den Fall degf ≥ 1, g 6= 0. Es sei
X
X
f=
fi xi , g =
gi xi
0≤i≤n
0≤i≤m
Sei m − i der größte Index j derart, dass gj 6= 0. Es gilt dann res(f, g) =
fni res(f , g). Dies ergibt sich aus der zugehörigen Sylvester - Matrix


fn
gn
 ..

..
..
..
.
.
 .

.


..
f

.
f
g
 n−i

n
m−i
 .

.. . .
..
..
 ..

.
.
.
.
g
m 


..
..
.. 
..
 f0
.
.
fn
.
. 


..
..
..


. .
.
g0
gm−i 


..
.. 
..

.
f0
.
. 



.
.
.
.
. . ..
..
.. 


f0
g0
Es geht nun um die Korrektheit des modularen Ggt- Algorithmus für R =
F (y) weiter unten.
Lemma 11.6 Sei R = F [y] mit einem Körper F . Sei p ∈ R prim,
f, g ∈ R[x] primitiv, degy f, degy g ≤ d, b = ggt(lc(f ), lc(g)), d + 1 + degy b ≤
degy p, und w, f1, g1 ∈ R[x] mit w = bggt(f, g), degy w < degy p; f1 w =
bf ; degy f1 < degy p, g1 w = bg; degy g1 < degy p, h = ggtR (f, g), e =
degx h, e∗ = degx ggt(f, g). Dann gilt
110
1. e = e∗
⇔ degy f1 w = degy bf und
degy g1 w = degy bg
2. Wenn e = e∗ , dann ist h = pp(w).
Beweis: Nach Theorem hat man im Fall e = e∗ : αggt(f, g) = h ⇒ w =
bggt(fg) = (b/α)h. Nun ist aber degy w, degy ((b/α)h) < degy p. Also ist
w = (b/α)h.
Da f und g primitiv sind, ist es auch h. Also ist h = pp(h) = pp((b/α)h) =
pp(w). Jetzt nehmen wir an, dass degy f1 w = degy bf, degy g1 w = degy bg.
Dann sind die Grade < degy p und folglich ist f1 w = bf, g1 w = bg. ⇒
w|bh, e∗ ≤ degw ≤ degw ≤ degh = e ⇒ e = e∗ .
Sei umgekehrt e = e∗ . Setze w = (b/α)h. Es gibt dann f2 , g2 ∈ R[x]
mit f2 h = f, g2 h = g. Setze f1 = αf2 , g1 = αg1. Dann gilt nach
Theorem : w = bggt(fg), degy w < degy p; wf = bf ; degy f1 <
degy p, wg1 = bg; degy g1 < degy p, und zudem f1 w = bf ; g1 w = bg,
also : degy f1 w = degy bf ; degy g1 w = degy bg. q.e.d.
Der Leser wird bemerken, dass dies die Korrektheit des folgenden Algorithmus bedeutet:
Algorithmus 11.2 (Große -Primzahl-Ggt für R = F [y])
Input: primitive f.g ∈ R[x], R = F [y], F Körper degx f = n ≥ degx g = m ≥
1; degy g ≥ d
Output: ggtR (f, g)
1. b ← ggt(lcx (f ), lcx (g))
2. wiederhole
3. wähle p zufällig prim aus R mit degy p > d + 1 + degy b
4. berechne mit dem EEA(f , g) i R/ < p > [x] ein monisches v ∈ R[x]
mit degy v < degy p und v = ggt(fg)
5. berechne w, f1 , g1 ∈ R[x] mit degy < degy p; w = bv; f1 w = bf ; g1 w =
bg
6. bis degy (f1 w) = degy (bf ); degy (g1 w) = degy bg;
7. Gib ppx w aus.
Satz 11.5 Der Algorithmus arbeitet korrekt und benötigt für eine Iteration
O(n2 d2 )F − Operationen, und eine erwartete Anzahl von 2 Iterationen.
111
Der folgende Algorithmus zeigt, wie die Mignotte- Schranke ins Spiel kommt,
nämlich in der Wahl von B. Wir schreiben wieder f für die Restklasse f +
pZ[x] von f ∈ Z[x].
Algorithmus 11.3 (Große-Primzahl-Ggt für R = Z )
Input: f, g ∈ Z[x], degf = n ≥ degg ≥ 1; kf k∞ , kgk∞ ≤ A.
output: h = ggt(f, g) ∈ Z[x].
1. b ← ggt(lc(f ), lc(g)), B ← (n + 1)1/2 2n Ab
2. wiederhole
3. wähle zufällig p ∈ N mit 2B < p ≤ 4B
4. berechne mit EEA(f , g) in Zp [x] ein monisches v ∈ Z[x] mit kvk∞ <
p/2 und v = ggt(f, g) ∈ Zp [x]
5. berechne w, f1, g1 ∈ Z[x] mit max-Norm < p/2 so dass w = bv; f1 w =
bf ; g1 w = bg ;
6. bis kf1 k1 , kwk1 ≤ B, kg1 k1 kwk1 ≤ B;
7. gib pp(w) aus.
Satz 11.6 Der Algorithmus arbeitet korrekt und benötigt für eine Iteration
O(n2 (n2 + log 2 A)) Wortoperationen, und eine erwatete Anzahl von 2 Iterationen.
112