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: sieveking@math.uni-frankfurt.de 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