Computeralgebra [1 ed.] 9783540213796, 3-540-21379-1 [PDF]

Unter Computeralgebra versteht man den Grenzbereich zwischen Algebra und Informatik, der sich mit Entwurf, Analyse, Impl

161 13 5MB

German Pages 394 Year 2004

Report DMCA / Copyright

DOWNLOAD PDF FILE

Papiere empfehlen

Computeralgebra [1 ed.]
 9783540213796, 3-540-21379-1 [PDF]

  • 0 0 0
  • Gefällt Ihnen dieses papier und der download? Sie können Ihre eigene PDF-Datei in wenigen Minuten kostenlos online veröffentlichen! Anmelden
Datei wird geladen, bitte warten...
Zitiervorschau

Kaplan Computeralgebra

Michael Kaplan

Computeralgebra Mit 30 Abbildungen

123

Dr. Michael Kaplan Zentrum Mathematik der TU München Boltzmannstr. 3 85747 Garching Deutschland e-mail: [email protected]

Mathematics Subject Classification (2000): 68W30

Bibliografische Information Der Deutschen Bibliothek Die Deutsche Bibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detailierte bibliografische Daten sind im Internet über http://dnb.ddb.de abrufbar.

ISBN 3-540-21379-1 Springer Berlin Heidelberg New York Dieses Werk ist urheberrechtlich geschützt. Die dadurch begründeten Rechte, insbesondere die der Übersetzung, des Nachdrucks, des Vortrags, der Entnahme von Abbildungen und Tabellen, der Funksendung, der Mikroverfilmung oder der Vervielfältigung auf anderen Wegen und der Speicherung in Datenverarbeitungsanlagen, bleiben, auch bei nur auszugsweiser Verwertung, vorbehalten. Eine Vervielfältigung dieses Werkes oder von Teilen dieses Werkes ist auch im Einzelfall nur in den Grenzen der gesetzlichen Bestimmungen des Urheberrechtsgesetzes der Bundesrepublik Deutschland vom 9. September 1965 in der jeweils geltenden Fassung zulässig. Sie ist grundsätzlich vergütungspflichtig. Zuwiderhandlungen unterliegen den Strafbestimmungen des Urheberrechtsgesetzes. Springer ist ein Unternehmen der Springer Science+Business Media springer.de © Springer-Verlag Berlin Heidelberg 2005 Printed in Germany Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Werk berechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme, daß solche Namen im Sinne der Warenzeichen- und Markenschutz-Gesetzgebung als frei zu betrachten wären und daher von jedermann benutzt werden dürften. Einbandgestaltung: design & production GmbH, Heidelberg Herstellung: LE-TEX Jelonek, Schmidt & Vöckler GbR, Leipzig Satz: Reproduktionsfertige Vorlage vom Autor Gedruckt auf säurefreiem Papier 44/3142YL-5 4 3 2 1 0

F¨ ur Claudia

Vorwort

Schon seit den 50-er Jahren versucht man, neben rein numerischen Rechnungen auch algebraische Umformungen mit Computern zu erledigen. Herausgekommen sind dabei kleine und große Computeralgebra-Systeme, in denen teilweise Hunderte von Mann-Jahren Entwicklung und eine ungeheure mathematische Expertise stecken. Deshalb bringt es nicht nur viel, wenn man mit solch einem Programm arbeitet, sondern es lohnt sich auch hinter die Kulissen zu schauen. Das vorliegende Buch stellt deshalb einige dieser Systeme vor und zeigt an Beispielen deren Leistungsf¨ ahigkeit. Grundlegende Techniken, wie etwa das Rechnen mit großen ganzen Zahlen oder Polynomen, werden untersucht. Dabei zeigt sich, dass man oft f¨ ur ein Problem mehrere Algorithmen braucht, weil diese ganz verschiedene St¨ arken haben. Die Algorithmen werden begr¨ undet, oft in einer Pseudoprogrammiersprache dargestellt, die sich nicht in technischen Details verliert, und analysiert. Dies wird begleitet von vielen durchgerechneten Beispielen. Oftmals stellt es sich heraus, dass vermeintliche Umwege u ¨ber andere mathematische Strukturen der schnellste Weg sind, z.B. wenn f¨ ur die Faktorisierung ganzzahliger Polynome in endlichen K¨ orpern gerechnet wird. Da dies algebraische Kenntnisse erfordert, werden die n¨ otigen Grundlagen m¨oglichst kurz und ohne Beweise eingef¨ uhrt, so dass Kenntnisse der linearen Algebra zum Verst¨ andnis ausreichen sollten. Sicher n¨ utzlich sind außerdem Erfahrungen mit einer Programmiersprache. Die ersten 4 Kapitel stellen die Grundlagen bereit. Die folgenden Kapitel sind weitestgehend unabh¨ angig voneinander und k¨ onnen auch einzeln oder in anderer Reihenfolge gelesen werden. Bei den vielen enthaltenen Beispielen w¨are es von Vorteil, wenn man diese selber (am besten mit einem Computeralgebra-System seiner Wahl) durchrechnet und variiert. Der vorliegende Text basiert auf Vorlesungen und Seminaren, die ich zwischen den Jahren 1997 und 2004 am Zentrum Mathematik der TU M¨ unchen f¨ ur Informatiker und Mathematiker (meist im Hauptstudium) angeboten habe. So sind auch die genannten Studenten die Hauptzielgruppe dieses Buches. Ansonsten sollen alle jene angesprochen werden, die sich f¨ ur algebraischen Algorithmen interessieren, etwa Ingenieure, die Anwendungen in der Codierungstheorie, Kryptographie oder benachbarten F¨ achern haben. M¨ unchen, im Sommer 2004

M. Kaplan

Inhalt

1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.1 Was ist Computeralgebra ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Literatur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.3 Computeralgebra-Systeme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2 Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.1 2.2 2.3 2.4 2.5 2.6 2.7

Algorithmen und ihre Komplexit¨ at . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Kanonische Normalformen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12 Umformungssysteme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Ideale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Resultanten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Partialbruchzerlegungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Einige Schranken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

3 Rechnen mit homomorphen Bildern . . . . . . . . . . . . . . . . . . . 45 3.1 Grundlegende Ideen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 3.2 Das Chinesische Restproblem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 3.3 Der Satz von Hensel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .51

4 Grundlegende algebraische Strukturen . . . . . . . . . . . . . . . 57 4.1 Ganze Zahlen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 4.1.1 Darstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 4.1.2 Addition und Subtraktion . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 4.1.3 Multiplikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 4.1.4 Division . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 4.1.5 Gr¨ oßter gemeinsamer Teiler . . . . . . . . . . . . . . . . . . . . . . . . . 80 4.2 Rationale Zahlen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 4.3 Algebraische Zahlen und Funktionen . . . . . . . . . . . . . . . . . . . . . . . . 89 4.3.1 Grundlagen und Probleme . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 4.3.2 Nichtverschachtelte Radikale . . . . . . . . . . . . . . . . . . . . . . . . 94

X

Inhalt

4.3.3 Verschachtelte Radikale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 4.3.4 Allgemeine algebraische Ausdr¨ ucke . . . . . . . . . . . . . . . . . 100 4.4 Transzendente Ausdr¨ ucke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 4.4.1 Grundlagen und Probleme . . . . . . . . . . . . . . . . . . . . . . . . . .101 4.4.2 Der Satz von Risch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .102 4.5 Endliche K¨ orper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 4.6 Polynome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 4.6.1 Zul¨ assige Ordnungsrelationen . . . . . . . . . . . . . . . . . . . . . . . 113 4.6.2 Darstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 4.6.3 Addition und Subtraktion . . . . . . . . . . . . . . . . . . . . . . . . . . 123 4.6.4 Multiplikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 4.6.5 Division und Pseudodivision . . . . . . . . . . . . . . . . . . . . . . . .132 4.6.6 Gr¨ oßter gemeinsamer Teiler . . . . . . . . . . . . . . . . . . . . . . . . 135 4.6.7 Der erweiterte euklidische Algorithmus . . . . . . . . . . . . . 144 4.6.8 Subresultanten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 4.6.9 Subresultanten-Ketten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 4.6.10 Subresultanten und PRS Algorithmen . . . . . . . . . . . . . . 154 4.6.11 Verbesserte Subresultanten Algorithmen . . . . . . . . . . . . 160 4.6.12 Der erweiterte Subresultanten PRS-Algorithmus . . . . 164

5 Faktorisierung ganzer Zahlen . . . . . . . . . . . . . . . . . . . . . . . . . . 167 5.1 Vorbereitungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .167 5.2 Pollard-ρ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 5.2.1 Der Faktorisierungsalgorithmus . . . . . . . . . . . . . . . . . . . . . 169 5.2.2 Aufwandsabsch¨ atzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 5.3 Pollard-(p − 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .176 5.3.1 Der Faktorisierungsalgorithmus . . . . . . . . . . . . . . . . . . . . . 176 5.3.2 Aufwandsabsch¨ atzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 5.4 Elliptic Curve Method (ECM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .179 5.4.1 Pollard-(p − 1) und ECM . . . . . . . . . . . . . . . . . . . . . . . . . . 179 5.4.2 Die Geometrie elliptischer Kurven . . . . . . . . . . . . . . . . . . 180 5.4.3 Multiplikation von Kurvenpunkten mit Skalaren . . . . 185 5.4.4 Der Faktorisierungsalgorithmus . . . . . . . . . . . . . . . . . . . . . 189 5.4.5 Aufwandsabsch¨ atzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 5.5 Der Algorithmus von Morrison und Brillhart . . . . . . . . . . . . . . . 197 5.5.1 Die Grundidee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 5.5.2 Approximation reeller Zahlen durch Kettenbr¨ uche . . 198 5.5.3 Die Kettenbruchentwicklung einer Wurzel . . . . . . . . . . 201 5.5.4 Der Faktorisierungsalgorithmus . . . . . . . . . . . . . . . . . . . . . 204 5.5.5 Aufwandsabsch¨ atzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211

Inhalt

XI

5.6 Verwendung der Algorithmen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 5.7 Das quadratische Sieb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 5.7.1 Die Grundidee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 5.7.2 Die Faktorenbasis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 5.7.3 Das Sieben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 5.7.4 Mehrere Polynome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223

6 Polynom–Faktorisierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 6.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 6.2 Quadratfreie Faktorisierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230 6.3 Der Berlekamp-Algorithmus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 6.3.1 Grundvariante f¨ ur kleine K¨orper . . . . . . . . . . . . . . . . . . . .239 6.3.2 Variante f¨ ur große K¨ orper . . . . . . . . . . . . . . . . . . . . . . . . . . 247 6.3.3 Verbesserungen von Cantor und Zassenhaus . . . . . . . . 252 6.4 Berlekamp-Hensel Faktorisierung . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 6.4.1 Grundidee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 6.3.1 Wie weit muss man liften? . . . . . . . . . . . . . . . . . . . . . . . . . 270 6.3.2 Swinnerton-Dyer Polynome . . . . . . . . . . . . . . . . . . . . . . . . .273

7 Summation in endlich vielen Termen . . . . . . . . . . . . . . . . . 277 7.1 7.2 7.3 7.4 7.5 7.6 7.7

Grundbegriffe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277 Die unbestimmte Summation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285 Die Polygamma-Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287 Shiftfreie Faktorisierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290 Partielle Summation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292 Der Algorithmus von Moenck . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 Der Algorithmus von Gosper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298

8 Gr¨ obner-Basen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305 8.1 8.2 8.3 8.4

Variet¨ aten und Ideale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305 Reduktionen modulo Polynomidealen . . . . . . . . . . . . . . . . . . . . . . . 312 Der Buchberger-Algorithmus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 Eliminationsideale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .325

A Anhang CA-Systeme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329 1. Universelle Programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329 2. Spezialisierte Programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .335

B Anhang Beispielsitzungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341 1. Maple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .341

XII

Inhalt

2. Mathematica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .364 3. Gap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365

Bibliographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367 1. B¨ ucher und Zeitschriften . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367 2. Konferenzen und zugeh¨ origen Proceedingsb¨ ande . . . . . . . . . . . . 375

Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379

1 Einleitung

1.1 Was ist Computeralgebra ? In der a¨lteren Geschichte der Mathematik und insbesondere nach Einf¨ uhrung der Differentialrechnung durch Newton und Leibniz wurde eine große Anzahl mathematischer Probleme durch aufw¨ andige, und zu einem großen Teil algebraische, Berechnungen gel¨ ost. So festigte etwa Gauß im Alter von 24 Jahren (1801) seinen Ruf als herausragender Mathematiker durch die Berechnung der Bahngleichungen des gerade entdeckten (aber ziemlich unbedeutenden) Planetoiden Ceres. Das wohl bekannteste Beispiel f¨ ur solch komplizierte algebraische Umformungen lieferte der franz¨ osische Astronom Charles E. Delaunay: Im Jahre 1847 begann er die Berechnung der Bahn des Mondes aus dem Newtonschen Gravitationsgesetz. So einfach die L¨ osung des Zweik¨ orper-Problems Erde-Mond ist (1. Semester Physik), so kompliziert wird es, wenn man den Einfluss der Sonne noch mit einbezieht. Delaunay brauchte f¨ ur seine Berechnungen 10 Jahre und weitere 10 Jahre, um alles nochmals nachzupr¨ ufen ! Seine Ergebnisse wurden 1867 in zwei B¨anden ver¨offentlicht. Ein Band enth¨ alt dabei auf 128 Seiten nur die Formel f¨ ur die Mondbahn. Delaunays Arbeit wurde erst in den 60er Jahren dieses Jahrhunderts von Wissenschaftlern der Boeing Scientific Research Laboratories in Seattle wieder ausgegraben, die sich f¨ ur Satellitenbahnen interessierten [DHR]. Mit Hilfe eines Computeralgebra-Systems gelang es Ihnen, die Ergebnisse von Delaunay in ca. 20 Stunden nachzurechnen. Sie fanden dabei erstaunlicherweise nur 3 kleinere Fehler, wobei 2 davon Folgefehler des ersten waren. Inzwischen konnte man mit Hilfe gr¨ oßerer Rechner und verbesserter Computeralgebra-Programme noch weitere Information in die Rechnung eingehen lassen und die Bahngleichungen verfeinern (etwa den Einfluss at¨ mosph¨arischer Reibung auf erdnahe Satelliten oder Anderungen des Gravitationsfeldes der Erde durch die nicht exakt kugelf¨ ormige Gestalt usw.).

2

1 Einleitung

Delaunays Beispiel zeigt einige wichtige Aspekte: — Ein großes Problem beim exakten Umgang mit algebraischen Ausdr¨ ucken ist die Datenexplosion. Aus dem sehr einfachen Gravitationsgesetz wird durch Einsetzen in das Dreik¨ orperproblem Erde-Sonne-Mond eine 128 Seiten lange Formel. Dieses ist eines der Hauptprobleme der Computeralgebra. Oft tritt es noch heimt¨ uckischer auf, wenn n¨ amlich Ein- und Ausgabe relativ kleine Ausdr¨ ucke sind, aber beim Rechnen immens große Zwischenergebnisse vorkommen. — Die Verk¨ urzung der Rechenzeit von 20 Jahren auf 20 Stunden (heutzutage w¨aren es auf einem entsprechend schnellen Rechner wahrscheinlich einige Minuten), verbunden mit der garantierten Richtigkeit der Ergebnisse (abgesehen von Programmierfehlern), er¨ offnet auch Wissenschaftlern ohne die Engelsgeduld eines Ch. Delaunay ganz neue M¨ oglichkeiten. Durch Computeralgebra-Programme sind in einigen Gebieten die Grenzen des Machbaren deutlich verschoben worden. — Aus der fertigen Formel lassen sich im Gegensatz zu langen Zahlenkolonnen wertvolle allgemeine Erkenntnisse ziehen. Eine sp¨ atere numerische Auswertung – etwa die Berechnung der Mondposition zu einem gewissen Zeitpunkt – stellt meist kein Problem mehr dar. In vielen Computeralgebra-Programmen bestehen zus¨ atzlich zur eigenen (beliebig genauen) Arithmetik auch Schnittstellen zu Programmiersprachen wie C oder Fortran. W¨ahrend das Beispiel mit der Mondbahn eigentlich nur“ Computer-unter” st¨ utzte h¨ohere Mathematik umfasst und die ersten Computeralgebra-System auch auf dieses Gebiet spezialisiert waren, versteht man heute unter Computeralgebra den Grenzbereich zwischen Algebra und Informatik, der sich mit Entwurf, Analyse, Implementierung und Anwendung algebraischer Algorithmen befasst. Das umfasst sehr viel mehr, als man im ersten Moment glauben mag; ¨ die Uberg¨ ange zur Analysis, numerischen Mathematik, Zahlentheorie oder Algebra sind fließend: So ist man vielleicht nach der obigen Definiti” on“ erstaunt, dass man in vielen Computeralgebra-Systemen IntegrationsRoutinen vorfindet. Doch zeigt die Betrachtung dieser Algorithmen, dass sie erst durch eine Algebraisierung des Problems so effizient wurden, dass man sie erfolgreich in diesen Paketen einsetzen konnte. Heute gibt es einige Computeralgebra-Programme, die zus¨ atzlich zur u ¨blichen h¨oheren Mathematik noch einige Routinen etwa zur Gruppentheorie oder endlichen K¨ orpern anbieten. Weiterhin gibt es aber auch immer mehr spezialisierte Programme, etwa zur Gruppentheorie, zur Zahlentheorie, zu Lie-Gruppen oder auch zur Relativit¨ atstheorie. Auf einige dieser Programme wird noch in einem gesonderten Abschnitt eingegangen.

1.2 Literatur

3

1.2 Literatur Erst in den 80er Jahren wurden die ersten B¨ ucher speziell zur Computeralgebra herausgegeben. Die Forschung auf diesem Gebiet schl¨ agt sich seit den 60er Jahren in einigen speziellen Zeitschriften nieder, von denen ich hier nur zwei nennen m¨ochte: — SIGSAM Bulletin (Special Interest Group on Symbolic and Algebraic Manipulation der Association for Computing Machinery, viertelj¨ ahrlich bei ACM Press). — Journal of Symbolic Computation (gegr¨ undet von Bruno Buchberger von der Johannes Kepler Universit¨ at in Linz; monatlich bei Academic Press; ISSN 0747-7171). Viele andere Zeitschriften, wie etwa das SIAM Journal on Computing oder Mathematics of Computation sind ebenfalls gute Referenzen f¨ ur die Computeralgebra. Siehe hierzu auch die Bibliographie. Entsprechend zur SIGSAM in Amerika hat sich in Deutschland die Fachgruppe Computeralgebra der GI, DMV und GAMM gebildet. Der von dieser Fachgruppe herausgegebenen Computeralgebra-Rundbrief bringt Hinweise auf Konferenzen, Vorlesungen, Software etc. Der Rundbrief und viele andere Informationen zur Computeralgebra sind elektronisch u ¨ber den WWWServer der Fachgruppe (http://www.fachgruppe-computeralgebra.de/) abrufbar. Auch in anderen L¨ andern gibt es ¨ ahnliche Interessengruppen, so etwa die NIGSAM (Nordic Interest Group for Symbolic and Algebraic Manipulation), die die NIGSAM-News herausgibt oder die SAM-AFCET (Le Group Calcul Formel d’Association Fran¸caise pour la Cybern´etique Economique et Technique), die das CALSYF-Bulletin herausgibt. Weiterhin finden laufend Konferenzen zum Thema statt, die jeweils Proceedings herausgegeben haben. Einige dieser Konferenzen und genauere Literaturhinweise auf die zugeh¨ origen Proceedingsb¨ ande sind im Anschluss an die Bibliographie aufgelistet. In der Bibliographie selbst erscheinen sie jeweils nur unter Abk¨ urzungen wie etwa SYMSAC-76 oder ISSAC-90. Außer den speziellen B¨ uchern zur Computeralgebra ist nat¨ urlich jedes gute Buch zu den algebraischen, zahlentheoretischen etc. Grundlagen zu empfehlen, solange es die algorithmischen Aspekte nicht ignoriert. Dazu geh¨ort etwa die Moderne Algebra“ von B.L. van der Waerden [Wa1] und ” [Wa2]. Dieses Werk enth¨ alt viele konstruktive algebraische Methoden. Einige davon beruhen auf Leopold Kroneckers Konzept der Konstruktion in ” endlich vielen Schritten“, s. dazu auch die von Kurt Hensel herausgegebene Sammlung der Werke von Kronecker (z.B. [Kro]). F¨ ur die Langzahl- und Polynomarithmetik bis hin zur Faktorisierung ist der zweite Band der Reihe The Art of Computer Programming“ von D. E. ” Knuth mit dem Titel Seminumerical Algorithms“ [Kn2] eine Standardrefe” renz.

4

1 Einleitung

Speziell zu Gr¨obner-Basen und ihren Anwendungen sind erschienen: — Cox, Little, O’Shea: Ideals, Varieties and Algorithms“, [CLO]. ” — Th. Becker, V. Weispfenning, (H. Kredel): Gr¨ obner Bases. A Computa” tional Approach to Commutative Algebra“, [BWe]. Allgemeine Einf¨ uhrungen zur Computeralgebra sind etwa — B. Buchberger, G. E. Collins, R. Loos (Herausgeber): Computer Alge” bra, Symbolic and Algebraic Computation“, [BCL] (sehr gute Artikelsammlung mit ausf¨ uhrlichen Bibliographien). — J. H. Davenport, Y. Siret, E. Tournier: Computer Algebra“, [DST] ” ¨ (sch¨oner Uberblick mit einer Kurzeinf¨ uhrung in die Sprache Reduce). — M. Mignotte: Mathematics for Computer Algebra“, [Mi3] (Schwerpunkt ” bei Langzahl- und Polynomarithmetik). — K. O. Geddes, S. R. Czapor, G. Labahn: Algorithms for Computer Al” gebra“, [GCL] (sehr umfangreiche und praxisbezogene Einf¨ uhrung von einigen der Maple-Macher“). ” — J. von zur Gathen; J. Gerhard: Modern Computer Algebra“, [vGG] (800 ” Seiten voll mit Algorithmen, Laufzeitanalysen und Anwendungsbeispielen aus Chemie, Kryptographie usw.). — J. Grabmeier, E. Kaltofen, V. Weispfennig, V. (Herausgeber): Compu” ter Algebra Handbook“, [GKW] (Sammelband, zu dem ca. 200 Wissenschaftler beigetragen haben. Es werden 67 Computeralgebra-Systeme beschrieben, viele Anwendungen der Computeralgebra angegeben und auf die Theorie eingegangen).

1.3 Computeralgebra-Systeme H. G. Kahrimanian [Kah] und J. Nolan [Nol] schrieben unabh¨ angig voneinander im Jahr 1953 ihre Diplomarbeiten u ber symbolisches Differenzieren ¨ und Programme dazu in Philadelphia bzw. am M.I.T. Diese beiden Programme gelten heute als die ersten Computeralgebra-Programme. Man bedenke, dass es damals noch keine der heute g¨ angige Computer- Hochspra” chen“ gab (Fortran kam z.B. erst 1958 auf den Markt). Erst, als 1960/61 die Sprache Lisp auf den Markt kam, die wegen ihrer Listenverarbeitungsm¨ oglichkeiten f¨ ur die Computeralgebra ungleich besser geeignet war, als eher numerisch orientierte Sprachen, wie etwa Algol oder Fortran, wurden auch gr¨ oßere Computeralgebra-Pakete entwickelt. Eines der ersten, das einem gr¨ oßeren Publikum zug¨ anglich war, war Reduce. Obwohl das Gebiet also relativ jung ist, gibt es heute eine Flut von CAProgrammen.

1.3 Computeralgebra-Systeme

5

Wie bereits erw¨ ahnt, gibt es sowohl sehr allgemein gehaltene Programme, die mehr oder weniger gut die Vorlesungen bis zum Vordiplom und teilweise dar¨ uber hinaus abdecken, als auch sehr spezialisierte Programme, die daf¨ ur in ihrem Spezialgebiet oft sehr viel besser sind, als die anderen. Im Anhang A sind einige der verbreitetsten Systeme zusammengestellt. Die Liste erhebt allerdings weder Anspruch auf Vollst¨ andigkeit, noch sollen die Programme im einzelnen verglichen werden. Dies w¨ are schon wegen der verschiedenen Plattformen, auf denen die Programme laufen, und wegen der verschiedenen Absichten (und Preise) kaum m¨ oglich. Nur f¨ ur die allgemein gehaltenen Systeme, die auch auf ein und dem gleichen Rechner verf¨ ugbar sind, gibt es Vergleichstests: — Von Barry Simon (California Institute of Technology) gibt es mehrere vergleichende Artikel zu Derive, Macsyma, Maple und Mathematica, etwa [Si3] und [Si4]. — An der Universit¨ at Inria (Rocquencourt, Frankreich) wurden mehrmals Macsyma, Maple und Mathematica verglichen. Die Ergebnisse sind teilweise im WWW zu finden (http://www.loria.fr/˜zimmerma/maple/). — Die Fachgruppe Computeralgebra der GI, DMV und GAMM sammelt unter http://krum.rz.uni-mannheim.de/cafgbench.html Computer Algebra Benchmarks. Außer den Handb¨ uchern der einzelnen Programme, die teilweise in Bibliotheken oder Buchhandlungen zu haben sind, seien f¨ ur weiter Interessierte die folgenden Schriften empfohlen: — Wester, M. J. (ed.): Computer Algebra Systems: A Practical Guide [Wes] — Harper, D.; Wooff, C.; Hodgkinson, D.: A Guide to computer algebra systems [HWH] — Fuchssteiner, B; Wiwianka, W.; Hering, K. (Redaktion): mathPAD, Vol. 1, Heft 3 [FWH] — Gonnet, G. H.; Gruntz, D.W.: Algebraic Manipulation: Systems [GGr] — Computeralgebra in Deutschland (Herausgegeben von der Fachgruppe Computeralgebra der GI, DMV und GAMM), 1993. Eine aktualisierte Version davon findet sich unter http://www.fachgruppe-computeralgebra.de/ca-brd/ca-brd.html. Eine recht komplette Liste von zur Zeit verf¨ ugbarer Computeralgebra-Software mit viel Zusatzinformationen wird von Paulo Ney de Souza gef¨ uhrt und auf seiner Homepage http://www.math.berkeley.edu/˜desouza/ bereitgestellt.

2 Grundlagen

2.1 Algorithmen und ihre Komplexit¨ at Ein Algorithmus A ist eine Methode, eine Klasse K von Problemen zu l¨osen, seine Beschreibung ist endlich und pr¨azise, und alle beschriebenen Arbeitsschritte sind effektiv. Der Algorithmus soll terminierend sein, d.h. seine Ausf¨ uhrung immer nach einer endlichen Anzahl von Schritten enden. Bei deterministischen Algorithmen ist die Reihenfolge der einzelnen Ausf¨ uhrungsschritte f¨ ur jede Eingabe eindeutig festgelegt, d.h. bei wiederholtem Aufruf des Algorithmus ist die Berechnung schrittweise reproduzierbar. Bei probabilistischen Algorithmen wird die Entscheidung u ¨ber den n¨achsten Schritt in einem gewissen Rahmen auch dem Zufall u ¨berlassen. Unter der Komplexit¨at eines Algorithmus versteht man die Kosten“, ” die bei seiner Ausf¨ uhrung verursacht werden. Da der Zusammenhang zwischen den Eingabedaten eines Algorithmus und den zugeh¨ origen L¨ osungskosten meist sehr komplex ist, wird die Komplexit¨ at von Algorithmen nicht in Abh¨angigkeit der Eingabedaten x = x1 , . . . , xr selbst beurteilt, sondern in Abh¨angigkeit wichtiger Charakteristika n1 , . . . , nr der Eingangsdaten (z.B. Gr¨oße von Zahlen in Bit, Grad von Polynomen, usw.. . . ). Diese werden meist noch geb¨ undelt zu einer einzigen Zahl n , die die Gr¨oße des untersuchten Problems beschreibt. Bei ganzzahligen Polynomen in einer Variablen kann dies z.B. das Produkt aus einer Maßzahl f¨ ur die Gr¨oße der Koeffizienten und aus dem Grad des Polynoms sein. Die L¨ osungskosten werden in verschiedenen Einheiten gemessen, etwa in der Anzahl der Rechenschritte oder in Speicherplatz. Bei der Beurteilung von Algorithmen der Computeralgebra interessiert man sich meist f¨ ur Ihre zeitliche Komplexit¨at, insbesondere f¨ ur die asymptotische Komplexit¨at, also eine Grenzfunktion f¨ ur großes n . Dabei untersucht man meist die maximale zeitliche Komplexit¨at in Abh¨ angigkeit von n . Die so genannte erwartete zeitliche Komplexit¨at dagegen ist das Mittel u ¨ber alle Probleme aus K von dieser Gr¨ oße. Die erwartete zeitliche Komplexit¨ at w¨ are zwar die interessantere Gr¨ oße, in aller Regel muss man sich aber mit der maximalen Komplexit¨ at begn¨ ugen. Auch eine untere Schranke f¨ ur die zeitliche Komplexit¨ at ist gelegentlich von Interesse.

8

2 Grundlagen

Es sei nun A ein beliebiger Algorithmus und S die Menge aller g¨ ultigen Eingabeparameter, die im Allgemeinen aus einer Menge von r -Tupeln besteht. Mit diesem Algorithmus wird eine Funktion Op[y ← A(x)] : r0 → assoziiert. Die Zahl Op[y ← A(x)] (oft auch k¨ urzer Op[A] geschrieben) gibt die Anzahl der Grundoperationen an, die n¨ otig sind, um mit Hilfe des Algorithmus A den Ausgabewert y zum Eingabewert x ∈ S zu berechnen. Die Gr¨ oße des Eingabewerts x sei dabei durch das r -Tupel (n1 , . . . , nr ) ∈ r0 gegeben. Zu diesen so genannten Grundoperationen z¨ ahlen beispielsweise die Addition oder Multiplikation in einfacher Genauigkeit, Spr¨ unge oder die Zuweisung von Konstanten. Die Bestimmung der genauen Anzahl solcher Operationen stellt sich meist als schwierige Aufgabe heraus und das Ergebnis darf auch nicht u ¨berbewertet werden, da der Begriff Grundoperation“ selbst ” wenig exakt definiert ist. Oft sind Algorithmen so komplex, dass man sich vorerst darauf beschr¨anken muss, die Anzahl der Operationen in komplizierteren Strukturen zu bestimmen. Bei Algorithmen in endlichen K¨ orpern z¨ ahlt man etwa h¨ aufig nur die Anzahl der Grundoperationen in diesen K¨ orpern. Dies ist sinnvoll, weil je nach Anwendung die Darstellung der endlichen K¨orper im Rechner sehr verschieden ist und deshalb die Grundoperationen auch sehr unterschiedlichen Aufwand erfordern. Im Fall von endlichen K¨orpern wird darauf noch in einem gesonderten Kapitel eingegangen. Um deutlich zu machen, welche Operationen wirklich gez¨ ahlt werden, wird in diesem Fall die Funktion Op mit einem entsprechenden Index versehen, also etwa OpGF(q) [y ← A(x)] . Geht man von einer festen Implementierung des endlichen K¨ orpers GF(q) aus, so kann man f¨ ur die aufw¨ andigste Grundoperation in GF(q) die Anzahl der daf¨ ur n¨ otigen echten“ Grund” operationen bestimmen und mit OpGF(q) [y ← A(x)] multiplizieren, um so eine grobe Absch¨ atzung f¨ ur Op[y ← A(x)] zu erhalten. Im Abschnitt u ¨ber die Arithmetik in grundlegenden algebraischen Strukturen wird z.B. die Addition beliebig großer positiver ganzer Zahlen untersucht und ein Algorithmus mit dem Namen SumPosInt angegeben, der zwei solche ganze Zahlen I und J addiert. Die genaue Untersuchung dieses Algorithmus zeigt, dass dort eine Schleife (max(m − 1, n − 1) + 1) -mal durchlaufen wird, in der jeweils eine feste Zahl von Kurzzahloperationen auszuf¨ uhren ist. Dabei seien m und n die so genannten β -L¨ angen von I bzw. J , also Maßzahlen f¨ ur die Gr¨ oße der Eingangsdaten. Da diese Kurzzahloperationen je nach Rechner und Programmiersprache sehr verschiedene Laufzeiten ben¨ otigen, interessiert man sich nur f¨ ur die re¨ lative Anderung der Laufzeit, wenn man etwa die Gr¨ oße der Eingangsdaten verdoppelt und schreibt

N

N

Op[I + J ← SumPosInt(I, J)](m, n)  max(m, n)

N

2.1 Algorithmen und ihre Komplexit¨ at

9

Op ist kodominant mit max(m, n) ). In der Computeralgebra wird meist die ungenauere Groß-O“-Notation verwendet, hier etwa ” Op[I + J ← SumPosInt(I, J)](m, n) = O(max(m, n)) (in Worten: Op wird von max(m, n) dominiert oder Op ist von der Komplexit¨at oder Ordnung max(m, n) etc.). Genauer:

N → R eine Funktion . Dann ist O(f (n)) := {g : N → R ; ∃c ∈ R+ , N ∈ N : |g(n)| ≤ c · |f (n)|∀n ≥ N } Ω(f (n)) := {g : N → R ; ∃d ∈ R+ , N ∈ N : |g(n)| ≥ d · |f (n)|∀n ≥ N }

2.1.1 Definition:

Es sei f :

Θ(f (n)) := O(f (n)) ∩ Ω(f (n)) O (f (n)) := {g : N → R ; ∀ > 0 ∃N () ∈ N : |g(n)| ≤  · |f (n)|∀n ≥ N ()} Statt g(n) ∈ O(f (n)) ist eher die Schreibweise g(n) = O(f (n)) gebr¨auchlich. Dies ist zwar weit verbreitet, aber irref¨ uhrend, denn im Gegensatz zum u ¨blichen =“ ist es hier nicht sinnvoll die Seiten zu vertauschen! ” Die Konvention bei dieser Schreibweise ist, dass die rechte Seite nie mehr Information liefert als die linke. Beachtet man dies, so kann sogar ganz gut mit O rechnen ( c =const.): f (n) = O(f (n)) , c · O(f (n)) = O(f (n)), O(f (n)) ± O(f (n)) = O(f (n)) , O(O(f (n))) = O(f (n)), O(f (n))O(g(n)) = O(f (n)g(n)) , O(f (n)g(n)) = f (n)O(g(n)). Die O-Schreibweise ist nur transitiv, wenn man die Gleichungen von links nach rechts liest d.h. aus g(n) = O(f (n)) und h(n) = O(f (n)) folgt nicht g(n) = h(n) (Man nehme etwa f (n) = n3 , g(n) = n und h(n) = n2 ). Dagegen folgt aus den letzten beiden Gleichungen obiger Tabelle sehr wohl O(f (n))O(g(n)) = f (n)O(g(n)) . Entsprechend ist auch bei den anderen Symbolen statt des ∈“ das =“ ” ” gebr¨auchlich (und die gleiche Vorsicht angebracht), also z.B. n! = Ω(2n ) . Oft findet sich in den uhrten Mengen eine Schreibweise mit  eben  eingef¨   = 0 f¨ u r g(n) = O (f (n)) . Dies ist vielleicht dem Limes, etwa lim  fg(n) (n)  n→∞ leichter zu merken, allerdings nur richtig, wenn f (n) nur endlich viele Nullstellen hat und wir diese aus der Grenzwertbetrachtung ausnehmen! Bei O(f (n)) muss dieser Grenzwert nicht existieren, sondern der Quoti  g(n)  ent  f (n)  ist (unter den eben genannten Einschr¨ ankungen) f¨ ur ausreichend große n durch eine Konstante nach oben beschr¨ ankt (bei Ω nach unten und bei Θ nach beiden Seiten).  

Die O-Notation geht zur¨ uck auf Paul Bachmann [Bch] Eine allgemeinere Definition von O mit x ∈

Ausdr¨ ucke der Gestalt

1 1−x

R

und mit x → x0 f¨ ur x0 ∈

R

ist z.B. f¨ ur

= 1+x+O(x2 ) gebr¨ auchlich, wird hier aber nicht weiter betrachtet.

10

2 Grundlagen

Wegen des etwas ungl¨ ucklichen =“ in g(n) = O(f (n)) findet sich auch ” die Schreibweise g(n) f (n) . Die so definierte Relation ist eine reflexive ∗ Quasiordnung . Jede reflexive Quasiordnung Q induziert verm¨ oge aRb : ¨ ⇐⇒ aQb ∧ bQa eine Aquivalenzrelation R: f (n)  g(n) : ⇐⇒ f (n) = Θ(g(n)) ⇐⇒ (f (n) g(n) ∧ g(n) f (n)). Ist f (n)  g(n) , so nennt man f und g kodominant. Manchmal findet man hierf¨ ur auch die Schreibweise f (n)Θg(n) . Entsprechend zu schreibt man f¨ ur g(n) = O (f (n)) auch g(n) ≺ f (n) . Dies ist eine nicht reflexive Quasiordnung.◦ Kann man noch genauere Aussagen u ¨ber den Quotienten machen, so verwendet man    g(n)  =1 f (n) ∼ g(n) : ⇐⇒ lim  n→∞ f (n)  (mit den oben genannten Einschr¨ ankungen dieser Schreibweise). Die zwei Funktionen f und g nennt man in diesem Fall asymptotisch gleich. Auch ¨ ∼ ist eine Aquivalenzrelation und wie  mit den bisher eingef¨ uhrten Relationen und ≺ vertr¨ aglich, d.h. ist f (n) ∼ f  (n) oder f (n)  f  (n) und ≺  f (n) ≺ g(n) so ist auch f (n) g(n) .

Oft findet man auch Aussagen der Gestalt g(n) = h(n) + ur   O(f (n)) . F¨   h(n)+O(f (n))   h(n)   g(n)  ausreichend großes n heißt das  f (n)  =   ≤  f (n)  + c ⇐⇒ f (n) |g(n)| ≤ |h(n)| + c|f (n)| . Der Fehler den man macht, wenn man g(n) mit Hilfe von h(n) berechnet, ist also h¨ ochstens ein konstantes Vielfaches von |f (n)| . Mit dieser Schreibweise hat man also eine genauere Aussage als mit einem puren g(n) = O(f (n)) , u ussige Details werden in den O-Term ¨berfl¨ geschoben.   √ 1 2.1.2 Beispiel: Wegen n n = n n = exp( nnn ) = 1 + nnn + O ( nnn )2 gilt   2    √ (n n)2 n n n n n , = n n + O n( n − 1) = n +O n n n denn nO



 n n 2 n



= O(n)O



 n n 2 n



=O



(n n)2 n

.

2.1.3 Beispiel: Mit den aufgef¨ uhrten Rechenregeln kann man jetzt z.B. das Produkt zweier Ausdr¨ ucke mit Teilen in O-Notation berechnen:    √  n n + γ + O( n1 ) · n + O( n) = √ √ √ n n n + nγ + nO( n1 ) + γO( n) + n nO( n) + O( n1 )O( n) = √ √ √ n n n + nγ + O(n)O( n1 ) + O( n) + O(n n)O( n) + O( n1 · n) = ∗ ◦

d.h. eine reflexive und transitive bin¨ are Relation Vorsicht: und = zusammen ist nicht gleichbedeutend mit ≺ wie bei ≤ !

2.1 Algorithmen und ihre Komplexit¨ at

11

√ √ √ n n n + nγ + O(1) + O( n) + O(n n n) + O( nn ) = √ n n n + nγ + O( n n n) √ √ √ √ √ n n n n) denn es gilt 1 = O( n n n), √ n = O( n n√n), O( n ) = O( √ und √ deshalb O(1) = O(O( n n n)) = O( n n n) und O( n) = √ O(O( n n n)) =√O( n n n) , √ weshalb sich die O-Terme der vorletzten Zeile zu 4O( n n n) = O( n n n) zusammenfassen lassen. V¨ollig analog bedeutet g(n) = h(n) + O (f (n)) , dass man g(n) durch h(n) approximieren kann und dass der Fehler den man dabei macht relativ zu |f (n)| f¨ ur steigendes n beliebig klein wird. Insbesondere ist g(n) = f (n) + O (f (n)) gleichbedeutend mit dem eben eingef¨ uhrten g(n) ∼ f (n) .

2.1.4 Beispiel: Mit der Relation lassen sich die Rechenregeln f¨ ur die O-Notation etwas verdeutlichen. So lautet etwa O(f (n)) + O(f (n)) = O(f (n)) umgeschrieben g(n), h(n) f (n) ⇒ g(n) + h(n) f (n) . Fehlinterpretationen, wie etwa die von Knuth [Kn1] erw¨ ahnte O(f (n)) − O(f (n)) = 0 , werden so vermieden (richtig: O(f (n)) − O(f (n)) = O(f (n)) ). 2.1.5 Beispiel: Ist p(x) ∈ R[x] ein Polynom koeffizienten LK(p) , so gilt

0 p(n) lim = LK(p) n→∞ nk ∞

vom Grad d mit dem Leitf¨ ur k > d f¨ ur k = d f¨ ur k < d

und damit p(n)  nd bzw. p(n) ∼ LK(p) · nd . Damit gilt f¨ ur zwei Polynome p(x), q(x) ∈ R[x] : p(n) ≺ q(n) ⇐⇒ deg p(n) < deg q(n) p(n) q(n) ⇐⇒ deg p(n) ≤ deg q(n) p(n)  q(n) ⇐⇒ deg p(n) = deg q(n) p(n) ∼ q(n) ⇐⇒ deg p(n) = deg q(n)˜und˜| LK(p)| = | LK(q)|. Die Funktion Op des Algorithmus A h¨angt nicht nur von der Eingabe x ab, sondern auch von den auf einem Rechner bzw. Prozessor zur Verf¨ ugung stehenden Grundoperationen. Sind nun B1 und B2 zwei verschiedene Mengen von Operationen, so geht man davon aus, dass jede Operation aus B1 durch eine endliche Anzahl von Operationen aus B2 nachgebildet werden kann und umgekehrt. So kann etwa eine Division durch eine Reihe von Subtraktionen realisiert werden. Also ist Op |B1  Op |B2 und ¨ man beschr¨ankt sich auf die dazugeh¨ orige Aquivalenzklasse. Je nach Ordnung seiner Zeitfunktion heißt ein Algorithmus logarithmisch, polynomial oder exponentiell. Es gilt log n ≺ n ≺ n log n ≺ n2 ≺ 2n .

12

2 Grundlagen

Das folgende Beispiel zeigt, dass die zeitliche Komplexit¨ at eines Algorithmus zwar sehr wichtig ist, aber nat¨ urlich zur vollst¨ andigen Beurteilung nicht ausreicht. 2.1.6 Beispiel: Gegeben seien 5 Algorithmen A1 , A2 , . . . , A5 verschiedener Komplexit¨ at f¨ ur das gleiche Problem. Unter der Annahme, dass 1 eine Grundoperation des Rechners 1000 s ben¨ otigt, ist jeweils das (bei einem angenommenen Vorfaktor 1) gr¨ oßte zu bearbeitende n in ei¨ ner gewissen Zeit angegeben. Außerdem ist der Effekt beim Ubergang zu einem 10-mal schnelleren Rechner angegeben. Die letzten 2 Spalten zeigen schließlich, dass ein vermeintlich schnellerer Algorithmus wegen großer Vorfaktoren durchaus langsamer sein kann. Alg.

Op 

A1 A2

n n log(n)

A3 A4 A5

n2 n3 2n

Max. n in 1s 1min Rechenzeit 1000 60000 140 4893 31 10 9

244 39 15

¨ And. von n bei 10 mal schnell. Rech. ·10 fast ·10 ( n groß) ·3.16 ·2.15 +3.3

Op =

optimal f¨ ur

1000n 100n log(n)

n > 1024 59 ≤ n ≤ 1024

10n2 n3 2n

10 ≤ n ≤ 59 — 2≤n≤9

Ein Beispiel f¨ ur solch einen Effekt ist etwa die Multiplikation zweier n -ziffriger Zahlen. W¨ ahrend der Standardalgorithmus (=Schulmethode) von quadratischer Ordnung (genauer  n2 ) ist, gibt es einen verbesserten Algorithmus FFT mit Op[c = a · b ← FFT(a, b)](n, n)  n log n log log n . Da allerdings Op[FFT](n, n) ≈ 20n log n log log n gilt, ist dieser Algorithmus nur in spezialisierten CA-Paketen implementiert, da er erst ab einem sehr großen n (dem so genannten Schwellenwert, englisch trade-off point“ oder break even point“) wirklich besser als der ” ” Standardalgorithmus ist.

2.2 Kanonische Normalformen Arbeitet man mit algebraischen Objekten am Rechner, so m¨ ochte man diese meist in ¨aquivalente“ aber einfachere“ Gestalt umformen. Dabei kann ” ” ¨ man f¨ ur ein und dieselbe Klasse von Objekten sowohl verschiedene Aquivalenzklassen, als auch verschiedene Vorstellungen von einfach“ realisieren: ” ¨ 2.2.1 Beispiel: W¨ ahlt man als Aquivalenzrelation die Gleichheit im K¨ orper Q(x) der rationalen Funktionen in x u ¨ber den rationalen Zah2 −1 len, so sind xx+1 und x − 1 zwei a ¨quivalente Objekte, von denen man das zweite wahrscheinlich als das einfachere betrachten w¨ urde.

2.2 Kanonische Normalformen

13

Die einfachere Gestalt ist leicht mittels des ggT berechenbar. Fasst man die beiden Funktionen dagegen als Abbildungen von Q nach Q auf, so sind sie nicht ¨aquivalent ( x = −1 !). Die Maple-”Designer“ haben sich deshalb entschlossen, solche Ausdr¨ ucke nicht automatisch zu vereinfachen. Man muss den Befehl normal verwenden, um in Q(x) zu vereinfachen. Man sollte dabei wissen, was man will, 2 −1 denn die Vereinfachung von xx+1 zu x − 1 erfolgt ohne Hinweis auf den ver¨anderten Definitionsbereich in x = −1 . 2.2.2 Beispiel: Der im vorhergehenden Beispiel angesprochene Befehl 100 normal formt auch x x−1−1 um zu x99 + x98 + . . . + x + 1 , was von der Menge der Terme oder der Berechnung von Nullstellen her sicher keine Vereinfachung ist. 2.2.3 Beispiel: Noch schwieriger wird die Situation bei transzendenten 1 Funktionen. So ist etwa in csc2 x − cot x · csc x = 1+cos x die rechte Seite von Struktur und Anzahl der Terme her deutlich einfacher als die linke Seite. Wenn dieser Ausdruck integriert werden soll, stellt sich heraus, dass die linke Seite vorzuziehen ist. Welche Gestalt auch immer man im vorhergehenden Beispiel f¨ ur einfacher h¨alt, man verlangt auf jeden Fall von einem Computeralgebra-System, dass es die Gleichheit der beiden Ausdr¨ ucke erkennt und so etwa in der Lage ist zu erkennen, dass (csc2 x − cot x · csc x) · (1 + cos x) − 1 verschwindet. ¨ Diese Uberlegungen f¨ uhren im folgenden auf die Definition so genannter kanonischer Simplifikatoren. Dazu sei T eine Klasse (linguistischer) Objek¨ te und ∼ eine auf T definierte Aquivalenzrelation. 2.2.4 Beispiel: (x+1)2 und x2 +2x+1 sind zwar linguistisch verschiedene Objekte, aber a¨quivalent in dem Sinne, dass sie gleiche Polynome in R[x] darstellen. (T, ∼) = (R[x], =) .

2.2.5 Beispiel: In Beispiel 2.2.1 haben wir etwa (T, ∼) = (Q(x), =) be2 −1 trachtet und xx+1 und x − 1 als ¨ aquivalente Objekte erkannt.

2.2.6 Beispiel: x6 − 1 und x − 1 sind zwar f¨ ur keinen K¨ orper K gleich in K[x] , f¨ ur K = GF(2) stellen sie aber die gleiche Abbildung f : K → K dar, d.h. sie stellen ¨ aquivalente Objekte in als Abb. (T, ∼) = (GF(2)[x], = ) dar. 2.2.7 Definition: Eine Abbildung S : T → T heißt kanonischer Simplifikator, wenn gilt: (S1) (S2)

S(t) ∼ t s ∼ t ⇒ S(s) = S(t)

f¨ ur alle t ∈ T f¨ ur alle s, t ∈ T

S(t) heißt kanonische Normalform von t ∈ T .

14

2 Grundlagen

2.2.8 Beispiel: ab mit a ∈ Z , b ∈ N und ggT(a, b) = 1 ist eine kanonische Normalform f¨ ur rationale Zahlen. Sie ist mittels des ggT und der Signumfunktion auf Z einfach berechenbar. 2.2.9 Beispiel: Es sei G die kommutative Halbgruppe mit G = a, b, c, f, s ; as = c2 s , bs = cs , s = f Mit Hilfe von Gr¨ obner-Basen kann man zeigen, dass die drei Substitutionsregeln s → f , cf → bf , b2 f → af zusammen (in beliebiger Reihenfolge, auch mehrmals angewandt) einen kanonischen Simplifikator f¨ ur (G, =) darstellen. Wegen S(a5 bc3 f 2 s3 ) = S(a5 b2 c2 s5 ) = a7 f 5 sind die Elemente a5 bc3 f 2 s3 und a5 b2 c2 s5 aus G gleich mit kanonischer Normalform a7 f 5 . Leider ist es nicht immer m¨ oglich, einen kanonischen Simplifikator f¨ ur (T, ∼) zu finden: 2.2.10 Beispiel: Caviness [Cav], Richardson [Ric] und Matiyasevich [Mat] bewiesen (1968-1970), dass f¨ ur die Klasse T , die im folgenden n¨ aher ¨ erl¨autert wird, zusammen mit der Aquivalenzrelation ∼ (= Gleichheit als Abbildung) kein kanonischer Simplifikator existiert. T ist dabei die Klasse von Ausdr¨ ucken, die sich bilden lassen aus (i) Q ∪ {π , n(2)} (iii) + , · , ◦ (ii) x (iv) sin , exp , abs . Der sehr m¨ achtige Integrations-Algorithmus von Risch beruht auf der Existenz eines kanonischen Simplifikators f¨ ur eine ganz ¨ ahnliche Klasse. Vergleich mit dem von Caviness, Richardson und Matiyasevich untersuchten Fall zeigt, dass die Nicht-Existenz eines kanonischen Simplifikators in ihrem Fall wohl an den Konstanten π und n(2) liegt. Viele CA-Systeme vereinfachen (außer bei rationalen Zahlen) nicht automatisch auf kanonische Normalform und u ¨berlassen es (etwa bei rationalen Funktionen, vgl. Beispiele zum Maple-normal-Befehl) dem Benutzer, diese explizit aufzurufen. In vielen F¨ allen gibt es nat¨ urlich auch keine kanonische Normalform, wie das vorhergehende Beispiel zeigt. In diesen F¨ allen kann man viele (nichtkanonische) Umformungen ausf¨ uhren oder bei einigen Systemen sogar eigene Substitutionsregeln einf¨ uhren. Das ist zwar sehr benutzerfreundlich, aber nat¨ urlich auch gef¨ ahrlich: es ist ein keineswegs triviales Problem, einem Satz von Substitutionsregeln wie etwa in Beispiel 2.2.9 anzusehen, ob jede Kette von Substitutionen an einem beliebigen Ausdruck nach endlich vielen Schritten terminiert, und ob das Ergebnis eine kanonische Normalform ist.

2.3 Umformungssysteme

15

Reduce bricht einfach bei einer voreingestellten Rekursionstiefe ab, um in solchen F¨ allen nicht in eine Endlosschleife zu geraten. Bei nichtkanonischen Vereinfachungen kann es nat¨ urlich auch passieren, dass man eine riesige Formel als Ergebnis von Umformungen erh¨ alt und das Programm nicht merkt“, dass der Ausdruck verschwindet. ”

2.3 Umformungssysteme 2.3.1 Definition: Ein Umformungssystem u ¨ber T ist ein Paar (T, −→) aus einer nichtleeren Menge T und einer Relation −→ ⊂ T × T . F¨ ur s , t ∈ T mit (s, t) ∈ −→ nennt man s die Pr¨amisse und t die Konklusion der Regel −→ und schreibt auch suggestiver s −→ t . Gibt es Elemente s1 , s2 , . . . , sn−1 ∈ T mit s −→ s1 −→ s2 −→ . . . −→ sn−1 −→ t , so schreibt man s −→n t und sagt: t entsteht in n Schritten aus s . Schreibt man die Identit¨ at als −→0 , so ist der reflexive und transi∗ tive Abschluss −→ von −→ also wie folgt definiert:

N

s −→∗ t :⇐⇒ ∃n ∈ 0 mit s −→n t . Ist −→ strikt antisymmetrisch (d.h. −→ ∩ ←− = ∅ , wobei ←− die zu −→ inverse Relation sei), so heißt diese Relation auch Reduktionsrelation bzw. (T, −→) ein Reduktionssystem. Der strikt antisymmetrische Anteil einer beliebigen Relation −→ ist −→s := −→ \ ←− . Es ist −→ = −→s genau dann, wenn −→ strikt antisymmetrisch ist. Die Relation −→ heißt noethersch, wenn es keine unendliche Kette s1 −→s s2 −→s . . . mit Elementen si ∈ T , i ∈ gibt. Ist U ⊆ T und gibt es zu u ∈ U kein s ∈ U mit u −→s s , so heißt u irreduzibel in U bzgl. −→ oder in Normalform in U oder auch −→-maximal in U . Man schreibt auch sU , um zu betonen, dass s in Normalform in U ist. Ist U = T , so l¨ asst man jeweils den Hinweis auf U weg. Gibt es zu Elementen s , t ∈ T ein u ∈ T mit s −→∗ u und t −→∗ u , so sagt man: s und t haben einen gemeinsamen Nachfolger und schreibt: s ↓ t . Schreibt man die zu −→∗ inverse Relation mit ←−∗ , so heißt das s ↓ t :⇐⇒ ∃u ∈ T : s −→∗ u ←−∗ t ¨ Der reflexive und transitive Abschluss ←→∗ von ←→ ist eine Aquivalenzrelation und wird auch mit ∼ bezeichnet werden. Ist umge¨ kehrt ∼ eine beliebige Aquivalenzrelation und −→ eine Relation ∗ mit ←→ =∼ , so heißt −→ eine zu ∼ geh¨orige Relation.

N

16

2 Grundlagen

2.3.2 Beispiel: Es sei A = {a1 , . . . , an } eine endliche nichtleere Menge (Alphabet, ai =Buchstaben). Eine endliche Folge von Buchstaben aus A heißt Wort u orter u ¨ber A , A∗ sei die Menge aller W¨ ¨ber A (incl. dem leeren Wort). Auf A∗ werden f¨ ur feste Vi , Wi ∈ A∗ , 1 ≤ i ≤ m die folgenden Relationen erkl¨ art: −→ := {(V Vi W , V Wi W ) ; V , W ∈ A∗ } i

Dann ist T := A∗ mit −→ := ∪m ¨ber i=1 −→ ein Umformungssystem u i ∗ A . Solche Teilwort-Ersetzungssysteme heißen Semi-Thuesysteme. 2.3.3 Satz: Die Relation −→ auf T ist genau dann noethersch, wenn jede nichtleere Teilmenge U ⊆ T ein irreduzibles Element besitzt. Beweis: ⇐ “ G¨abe es eine unendliche Kette r1 −→s r2 −→s . . . , so h¨ atte die Menge ” U := {ri ; i ∈ } kein irreduzibles Element. ⇒ “ Angenommen, die Menge U besitzt kein irreduzibles Element. Dann ” ist f¨ ur jedes u ∈ U die durch Ru := {s ∈ U ; u −→s s} definierte Menge nichtleer. Das Auswahlaxiom garantiert nun, dass man sich zu jedem r ∈ U aus der Vereinigung der Mengen Ru (u ∈ U ) jeweils ein f (r) ausw¨ahlen kann, so dass r −→s f (r) gilt:

U→ Ru u∈U f: r → f (r) so dass r −→s f (r)

N

ur i = 1, 2, . . . reIst r1 ∈ U beliebig, so wird durch ri+1 := f (ri ) f¨ kursiv eine unendliche Kette r1 −→s r2 −→s . . . definiert. Dies ist ein Widerspruch zur Voraussetzung. U besitzt also doch ein irreduzibles Element.  Es sei nun (T, −→) ein Reduktionssystem mit noetherscher Relation −→ . Gibt es eine berechenbare Funktion (=Algorithmus) S : T → T , die jedem t ∈ T ein irreduzibles s = S(t) mit t −→∗ s zuordnet, so erf¨ ullt dieses S sicher den ersten Punkt (S1) aus der Definition eines kanonischen Simplifikators. Es gilt sogar sch¨ arfer t −→∗ S(t) f¨ ur alle t ∈ T . Nach (S2) muss ein kanonischer Simplifikator zus¨ atzlich noch die Eigenschaft haben, dass zwei verschiedene Elemente s , t ∈ T dem gleichen irreduziblen Element zugeordnet werden. Um dies zu testen, m¨ usste man allerdings in der Regel unendlich viele Elemente s und t aus T durchtesten, was nicht machbar ist. Die eben beschriebene Funktion S : T → T heißt Normalform-Algorithmus f¨ ur −→ . 

Es sei M eine Menge und M ⊆ P(M ) \ ∅ . Dann gibt es eine Abbildung (Auswahlfunktion)

ϕ : M → M mit ϕ(X) ∈ X f¨ ur alle X ∈ M .

2.3 Umformungssysteme

17

Die folgenden S¨ atze schr¨ anken zwar die Anzahl der Tests f¨ ur den Punkt (S2) ein, hinterlassen aber leider i.Allg. immer noch unendlich viele Tests. Zuerst aber einige n¨ otige Definitionen: 2.3.4 Definition: Es sei (T, −→) ein Reduktionssystem. Die Relation −→ hat die Church-Rosser-Eigenschaft, wenn gilt s ←→∗ t ⇒ s ↓ t

∀s, t ∈ T

.

−→ heißt konfluent, wenn gilt: s ←−∗ u −→∗ t ⇒ s ↓ t

∀s, t, u ∈ T

.

−→ heißt lokal konfluent, wenn gilt: s ←− u −→ t ⇒ s ↓ t

∀s, t, u ∈ T

.

2.3.5 Satz: Der Normal-Form-Algorithmus S ist genau dann ein kanonischer Simplifikator f¨ ur ←→∗ =∼ , wenn die noethersche Reduktionsrelation −→ die Church-Rosser-Eigenschaft besitzt. Beweis: ⇒ “ Nach (S2) gilt f¨ ur alle s, t ∈ T mit s ←→∗ t ⇐⇒ s ∼ t , dass S(s) = ” S(t) ist. Damit ist u := S(s) = S(t) ein gemeinsamer Nachfolger f¨ ur s und t . Es gilt also s ↓ t . ⇐ “ Sind s, t ∈ T mit s ←→∗ t , so haben s und t nach der Church” Rosser-Eigenschaft einen gemeinsamen Nachfolger u ∈ T , es gilt also s −→∗ u ←−∗ t . Mit Hilfe des Normal-Form Algorithmus S folgt dann S(s) ←−∗ s −→∗ S(u) ←−∗ t −→∗ S(t) Dies heißt

S(s) ←→∗ S(u)˜˜und˜˜S(u) ←→∗ S(t)

Nach Church-Rosser haben S(s) und S(u) also einen gemeinsamen Nachfolger in T . Da beide Elemente aber schon in Normalform sind, folgt S(s) = S(u) . Analog folgt aus S(u) ←→∗ S(t) auch S(u) = S(t) und damit zusammen S(s) = S(t) .  2.3.6 Satz: Die noethersche Reduktionsrelation −→ hat genau dann die Church-Rosser Eigenschaft, wenn sie konfluent ist. Beweis: ⇒ “ Gilt f¨ ur s, t, u ∈ T : s ←−∗ u −→∗ t , so gilt nach Definition von ←→∗ ” auch s ←→∗ t und damit nach Church-Rosser s ↓ t ; −→ ist also konfluent.

18



2 Grundlagen

⇐ “ s ←→∗ t heißt nach Definition, dass es ein n ∈ Elemente s1 , s2 , . . . , sn−1 ∈ T mit

N0

und zugeh¨ orige

s  s1  s2  . . .  sn−1  t gibt (  stehe dabei f¨ ur ←− oder −→ ). Daf¨ ur schreibt man auch ¨ kurz ←→n ; die Aquivalenzrelation ←→∗ ist in diesem Sinne die Vereinigung aller ←→n mit n ∈ 0 . Der Beweis wird nun durch Induktion nach diesem n gef¨ uhrt: 0 (IA) s ←→ t ⇐⇒ s = t ⇒ s ↓ t (IS) s ←→n+1 t ⇐⇒ ∃u ∈ T mit s −→ u ←→n t∨s ←− u ←→n t . In jedem Fall gibt es nach Induktionsvoraussetzung einen gemeinsamen Nachfolger v ∈ T f¨ ur u und t : u −→∗ v ←−∗ t . Im ersten Fall folgt aus s −→ u sofort s −→∗ v ←−∗ t , also s ↓ t . F¨ ur s ←− u −→∗ v folgt aus der Konfluenz von −→ die Existenz eines gemeinsamen Nachfolgers w ∈ T von s und v : ∗ s −→∗ w ←−∗ v ←−  t

N

s.o.

Damit ist w auch als gemeinsamer Nachfolger von s und t erkannt, also s ↓ t gezeigt.  Bevor nun der Satz von Newman bewiesen werden kann, muss erst etwas zu dem dort verwendeten Beweisverfahren gesagt werden. Wegen der Analogie zur (transfiniten) Induktion spricht man auch von noetherscher Induktion: 2.3.7 Satz: (Prinzip der noetherschen Induktion) Es sei (T, −→) ein Umformungssystem mit noetherschem −→ und A(t) eine f¨ ur jedes Element t ∈ T sinnvolle Aussage. Wenn f¨ ur jedes t ∈ T aus der hypothetisch vorausgesetzten Wahrheit der Aussage A(s) f¨ ur alle s ∈ T mit t −→s s die Wahrheit der Aussage A(t) folgt, so ist die Aussage A(t) f¨ ur alle t ∈ T wahr. Beweis: Angenommen, die Menge U := {t ∈ T ; A(t) ist falsch } ist nichtleer. Nach Satz 2.3.3 besitzt U ein irreduzibles Element u . Damit ist die Menge R := {s ∈ U ; u −→s s} leer, die Aussage A(s) also trivialerweise wahr f¨ ur alle s ∈ R und damit nach Voraussetzung auch A(u) wahr. Dies steht im Widerspruch zur Definition von U .  2.3.8 Satz: (Newman 1942) Die noethersche Reduktionsrelation −→ ist genau dann konfluent, wenn sie lokal konfluent ist. Beweis: ⇒ “ es seien s, t, u ∈ T mit s ←− u −→ t . Das heißt auch s ←−∗ u −→∗ t ” und damit wegen der Konfluenz: s ↓ t .

2.3 Umformungssysteme



19

⇐ “ Es sei u ∈ T beliebig aber fest gew¨ ahlt. Es wird gezeigt, dass es zu beliebigen s, t ∈ T mit s ←−∗ u −→∗ t einen gemeinsamen Nachfolger w ∈ T gibt, also s −→∗ w ←−∗ t . Dies geschieht mittels der in Satz 2.3.7 begr¨ undeten noetherschen Induktion: (IA) Induktionsanfang in diesem Sinne sind u = s bzw. u = t . In beiden F¨ allen folgt sofort s ↓ t . (IS) Ist u = s, t , so gibt es s1 , t1 ∈ T \ {u} mit s ←−∗ s1 ←− u −→ t1 −→∗ t Mit dem Diagramm auf der n¨ achsten Seite folgt nun (i) Die Existenz von v  ∈ T folgt aus s1 ←− u −→ t1 und der lokalen Konfluenz von −→ . (ii) Die Existenz von v liefert die Induktionsvoraussetzung, denn u −→s s1 und s ←−∗ s1 −→∗ v  .

(iii) Die Existenz von w folgt aus der Induktionsvoraussetzung, denn u −→s t1 und v ←−∗ t1 −→∗ t .  Damit ist insgesamt gezeigt: Folgerung: Es sei (T, −→) ein Reduktionssystem mit noetherschem −→ und einem Normal-Form Algorithmus S . S ist genau dann ein kanonischer Simplifikator f¨ ur ←→∗ =∼ , wenn −→ lokal konfluent ist. 2.3.9 Beispiel: (Fortsetzung von 2.2.9) M¨ochte man die Behauptung nachpr¨ ufen, dass die drei angegebenen Substitutionsregeln einen kanonischen Simplifikator bilden, so muss man nach nach den soeben bewiesenen S¨ atzen zeigen, dass die Umformung noethersch und lokal konfluent ist.

20

2 Grundlagen

Jedes Element der Halbgruppe l¨ asst sich wegen der Kommutativit¨ at in der Form sn1 f n2 cn3 bn4 an5 mit ni ∈ 0 f¨ ur i = 1, .., 5 schreiben. Betrachtet man nun die Wirkung der drei Substitutionen auf den Exponentenvektor (n1 , n2 , n3 , n4 , n5 ) , so sieht man, dass der Ge5 samtgrad n := i=1 ni bei den ersten beiden Substitutionen gleich bleibt, bei der dritten um eins f¨ allt. Sortiert man die Exponentenvektoren lexikographisch (mehr dazu im Abschnitt u ur Polynome), so sieht man, dass ¨ber Ordnungsrelationen f¨ jede Substitution zu einem lexikographisch kleineren Vektor f¨ uhrt. Dies zeigt, dass die aus diesen drei Substitutionen bestehende Umformungsrelation strikt antisymmetrisch ist. Da sich der Gesamtgrad n nur endlich oft absenken l¨ asst, ist eine unendliche Reduktionskette nur m¨ oglich, wenn es f¨ ur einen festen Grad n eine unendliche Reduktionskette gibt. Daran k¨onnen dann nur die beiden ersten Substitutionen beteiligt sein, weil nur diese den Grad unver¨ andert lassen. Diese beiden Substitutionen lassen sich aber offensichtlich nur endlich oft anwenden, weil dann kein s und kein c mehr in dem zu reduzierenden Gruppenelement enthalten sind. Die Relation ist also wirklich noethersch. Die Pr¨ ufung der lokalen Konfluenz gestaltet sich da schon deutlich schwieriger. Bei jedem Element der (unendlich großen) Halbgruppe m¨ usste dazu gepr¨ uft werden, ob sich zwei verschiedene Substitutionen anwenden lassen, und ob die so resultierenden Elemente wirklich einen gemeinsamen Nachfolger haben, z.B.:

N

s→f

cf →bf

a5 bc3 f 3 s2 ←− a5 bc3 f 2 s3 −→ a5 b2 c2 f 2 s3 und somit wegen a5 b2 c2 f 2 s3 −→∗ a7 f 5 ←−∗ a5 bc3 f 3 s2 das gew¨ unschte a5 b2 c2 f 2 s3 ↓ a5 bc3 f 3 s2 . Algorithmen wie der Gr¨ obnerbasen-Algorithmus von B. Buchberger [Buc] oder der Knuth-Bendix-Algorithmus [KBe] sind in einigen F¨allen erfolgreich, weil sie diese Untersuchung von unendlich vielen Elementen einschr¨ anken auf endlich viele spezielle Kandidaten. Untersucht werden dabei die kleinstm¨ oglichen“ Elemente, auf die ” sich zwei verschiedene Reduktionen anwenden lassen, im vorliegenden Beispiel etwa cb2 f . Wendet man die beiden Substitutionen auf dieses Element an, so entsteht ein sog. kritisches Paar das einen gemeinsamen Nachfolger haben muss: cf →bf

b3 f ←− cb2 f

b2 f →af

−→ acf .

Es gilt acf −→∗ abf ←−∗ b3 f , d.h. die beiden Elemente des kritischen Paares (b3 f, acf ) haben den gemeinsamen Nachfolger abf .

2.4 Ideale

21

F¨ ur die im vorliegenden Beispiel betrachteten drei Substitutionen gibt es nur drei solche kritische Paare zu betrachten. Nat¨ urlich ist es beweisbed¨ urftig, dass die Untersuchung dieser drei Paare auch gen¨ ugt.

2.4 Ideale Sowohl f¨ ur die in der Computeralgebra wesentlichen S¨ atze von Hensel und den Chinesischen Restsatz, als auch f¨ ur die Theorie der Gr¨ obner-Basen, sind Ideale der wesentliche algebraische Baustein. Hier werden nur kurz und ohne Beweis einige Grundlagen zu Idealen zusammengefasst. Dabei gelte als Generalvoraussetzung: Ab jetzt seien alle Ringe immer kommutative Ringe mit einem Einselement 1 = 0 . Weiterhin bezeichne R∗ wie u ¨blich die Menge der multiplikativ invertierbaren Elemente von R . Mit der Multiplikation bildet diese Menge die so genannte Einheitengruppe von R . Eine nichtleere Teilmenge I von R heißt Ideal, wenn f¨ ur alle i, j ∈ I und alle r, s ∈ R gilt: r · i + s · j ∈ I . Es ist (I, +) eine Untergruppe von (R, +) bzw. (I, +, ·) ein Unterring (f¨ ur I = R allerdings ein Ring ohne 1 ) von (R, +.·) . Sind i1 , i2 , . . . Elemente von I , so ist auch jede endliche Summe der Gestalt  i= rn in mit rn ∈ R (nur endlich viele rn = 0) in dem Ideal I . L¨ asst sich umgekehrt jedes Element i ∈ I auf diese Weise darstellen, so heißt das System (i1 , i2 , . . .) ein Erzeugendensystem oder eine Basis des Ideals. Man schreibt I = i1 , i2 , . . . . Im folgenden werden haupts¨ achlich so genannte endlich erzeugte Ideale behandelt, also solche, die eine endliche Basis (i1 , i2 , . . . , in ) besitzen. Ein von einem Element erzeugtes Ideal heißt Hauptideal. Von solchen Basen wird oft gefordert, dass sie minimal sind, d.h. dass kein Element der Basis weggelassen werden kann, ohne dass sie aufh¨ ort eine Basis von I zu sein. Beieiner minimalen Basis ist es nicht m¨ oglich, ein Basiselement als Summe rn in der anderen Basiselemente darzustellen. 2.4.1 Beispiel: Es sei I = x ⊂ K[x] das von x erzeugte Hauptideal in dem Polynomring K[x] u orper K . Offensichtlich ist (x) ¨ber einem K¨ eine minimale Basis dieses Ideals. Die Basis (x, x2 ) erzeugt ebenfalls I , ist aber nicht minimal, da x2 ein Vielfaches von x ist und deshalb ohne Schaden weggelassen werden kann. Dagegen ist (x2 +x, x2 ) eine minimale Basis von I . Um dies einzusehen, muss man erst mal zeigen, dass x2 + x, x2  = x ist:

22

2 Grundlagen

f (x) ∈ x ⇐⇒ ∃h(x) ∈ K[x] : f (x) = x · h(x) = = (x2 + x) · h(x) − x2 · h(x) ∈ x2 + x, x2  g(x) ∈ x2 + x, x2  ⇐⇒ ∃h1 (x), h2 (x) ∈ K[x] : g(x) = = (x2 + x) · h1 (x) + x · h2 (x) = = x · (x · h1 (x) + h1 (x) + h2 (x)) ∈ x Da keines der beiden beteiligten Polynome aus (x2 + x, x2 ) alleine ganz I erzeugt, ist diese Basis sogar minimal. Dieses Beispiel zeigt, dass eine minimale Idealbasis nicht die gleichen sch¨onen Eigenschaften hat wie eine Vektorraumbasis (lineare Unabh¨ angigkeit, Dimension). Ist jedes Ideal von R endlich erzeugt, so heißt R noethersch. Nullteilerfreie Ringe heißen Integrit¨atsringe (auch Integrit¨ atsbereich). Integrit¨ atsringe mit 1 , in denen jedes Ideal Hauptideal ist, heißen Hauptidealringe. Ein Integrit¨atsring R heißt euklidischer Ring, wenn es eine Abbildung δ : R \ {0} → 0 gibt, so dass es zu je zwei Elementen a, b ∈ R mit b = 0 Elemente q, r ∈ R gibt mit a = qb + r und r = 0 oder δ(r) < δ(b) ist (Division mit Rest). Nun sei R nullteilerfrei. Ein Ringelement q ∈ R \ {R∗ ∪ {0}} heißt irreduzibel, wenn eine Zerlegung q = r · s im Ring nur f¨ ur r ∈ R∗ oder ∗ ∗ s ∈ R m¨oglich ist. Ein Element p ∈ R \ {R ∪ {0}} heißt prim oder Primelement, wenn f¨ ur r, s ∈ R aus p | r · s stets p | r oder p | s folgt. Ist p ein Primelement mit einer Zerlegung p = r · s in R , so folgt aus der Definition p | r oder p | s . Im ersten Fall gibt es dann ein r ∈ R mit r = p · r , also mit p = p · r · s ⇐⇒ p(1 − r · s) = 0 . Wegen der Nullteilerfreiheit von R heißt das 1 = r · s , d.h. s ist eine Einheit. Entsprechend folgt im zweiten Fall, dass r eine Einheit ist. Dies zeigt, dass jedes Primelement p irreduzibel ist. Ein Integrit¨atsring heißt faktorieller Ring (auch ZPE-Ring oder gaußscher Ring genannt), wenn jede von Null verschiedenen Nichteinheit ein Produkt irreduzibler Elemente ist und wenn diese Zerlegung sogar bis auf die Reihenfolge der Faktoren und Multiplikation mit Einheiten eindeutig ist. Jeder euklidische Ring ist ein Hauptidealring, jeder Hauptidealring ist faktoriell. In faktoriellen Ringen sind irreduzible Elemente auch prim . Hauptidealringe sind insbesondere noethersch. Ein Ring ist genau dann noethersch, wenn jede aufsteigende Kette von Idealen

N

I1  I2  . . . in R endlich ist. Der hilbertsche Basissatz besagt, dass mit R auch jeder Polynomring R[x1 , x2 , . . . , xn ] u ¨ber R noethersch ist. 

Dies erkl¨ art die Abk¨ urzung ZPE: Zerlegung in Primelemente ist Eindeutig.

2.4 Ideale

23

Ein Ideal I  R heißt Primideal, wenn f¨ ur alle r1 , r2 ∈ R mit r1 · r2 ∈ I stets r1 ∈ I oder r2 ∈ I gilt. Das Hauptideal p ist genau dann ein Primideal, wenn p ein Primelement ist. Ein Ideal I  R heißt maximal, wenn wenn f¨ ur alle Ideale J von R aus I ⊆ J folgt I = J oder J = R . Jedes maximale Ideal ist prim. Die Umkehrung davon gilt aber nur in Hauptidealringen. In der Computeralgebra ist man insbesondere an Polynomringen interessiert: R[x] ist genau dann ein euklidischer Ring oder ein Hauptidealring, wenn R ein K¨ orper ist. Die Eigenschaft faktoriell u agt ¨bertr¨ sich nach einem Satz von Gauß von R auf R[x] . Weiterhin ist R[x] genau dann ein Integrit¨ atsbereich, wenn bereits R diese Eigenschaft hat. Ein Element a eines Integrit¨ atsringes R teilt ein b ∈ R , i.Z. a | b , wenn es ein c ∈ R mit b = ac gibt. Ein Element d ∈ R heißt gemeinsamer Teiler von a1 , . . . , an ∈ R , wenn d die Elemente a1 , . . . , an in R teilt. Das Element d ∈ R heißt ein gr¨oßter gemeinsamer Teiler von a1 , . . . , an ∈ R , wenn d ein gemeinsamer Teiler dieser Elemente ist und wenn f¨ ur jeden anderen gemeinsamen Teiler d von a1 , . . . , an gilt d | d . Die Standardmethode zur Berechnung eines gr¨ oßten gemeinsamen Teilers in einem euklidischen Ring R ist der euklidische Algorithmus, also fortgesetzte Division mit Rest bis die Division aufgeht. Sind a, b ∈ R \ {0} mit δ(b) < δ(a) so setze a1 = a , a2 = b und berechne a1 a2

= = .. .

q1 q2

· ·

a2 a3

+ +

a3 a4

mit mit

δ(a3 ) δ(a4 )

< δ(a2 ) < δ(a3 )

ar−1 = qr−1 · ar + ar+1 mit δ(ar+1 ) < δ(ar ) ar = qr · ar+1 ⇒ ggT(a, b) = ar+1 . Dabei sei ai = 0 f¨ ur i = 1, . . . , r + 1 . uber hinwegt¨ auschen, Die Schreibweise ggT(a, b) = ar+1 sollte nicht dar¨ dass ein ggT nur bis auf Multiplikation mit Einheiten bestimmt ist, also etwa in Z : ggT(10, 15) = ±5 . Aus diesem Grunde findet man auch oft die Schreibweisen 5 ∈ ggT(10, 15) und ggT(10, 15) = {−5, 5} . In Ringen, in denen es mehr Einheiten gibt, ist diese Menge entsprechend gr¨ oßer. In faktoriellen, nicht euklidischen Ringen (z.B in Z[x] ) gibt es zwar immer einen ggT , er kann aber nicht mehr (oder nur auf Umwegen“) ” mit dem euklidischen Algorithmus berechnet werden. In diesem Fall kann man sich die Primfaktorisierungen der beteiligten Ringelemente berechnen. Die minimalen Potenzen dieser Primelemente ergeben ausmultipliziert einen ggT . Das ist die u ur den ggT ¨bliche Methode, die man in der Schule f¨ ganzer Zahlen lernt - da ist sie allerdings fehl am Platze, denn die ganzen Zahlen bilden einen euklidischen Ring und man k¨ onnte den sehr viel besseren euklidischen Algorithmus nutzen.

24

2 Grundlagen

In einem Hauptidealring R gibt es nach einem Satz von B´ezout zu Elementen a1 , . . . , am ∈ R mit ggT(a1 , . . . , am ) = d Elemente r1 , . . . , rm ∈ R mit r1 a1 + r2 a2 + . . . + rm am = d . Im Fall m = 2 in euklidischen Ringen berechnet man diese Elemente ri ∈ R mit Hilfe der sog. erweiterten euklidischen Algorithmus. Man schreibt den Divisionsschritt ai = qi ai+1 + ai+2 in Matrixgestalt          ai ai+1 qr 1 qi 1 q1 1 · ... · . = und k¨ urzt ab A := 1 0 1 0 1 0 ai+1 ai+2 Damit folgt     a b

=

a1 a2

 =A

ar+1 0



 =A

ggT(a, b) 0



 ⇐⇒

ggT(a, b) 0



  = A−1

a b

Die erste Zeile davon liefert die gew¨ unschte Darstellung des ggT . ¨ Diese Uberlegung l¨ asst sich direkt in einen Algorithmus umsetzen. Wegen  −1   q 1 0 1 = 1 0 1 −q kann man A−1 einfach schrittweise als Produkt dieser Inversen berechnen. Die Multiplikation von links mit solch einer Matrix bewirkt          c1 c2 d2 d1 0 1 c1 c2 =: . = 1 −q d1 d2 c1 − qd1 c2 − qd2 d1 d2 Man startet mit c1 = 1 , c2 = 0 , d1 = 0 , d2 = 1 , also der Einheitsmatrix, und wendet auf diese dann obige Regel an. Multipliziert man die gleichen Matrizen von links an den Vektor aus den beiden Elementen a und b , so endet der Algorithmus bei dem Vekotr aus ggT(a, b) und 0 . Gr¨ oßter Gemeinsamer Teiler, erweiterte Version procedure Gcdex (a, b, s, t) A ← a, B ← b c1 ← 1; c2 ← 0; d1 ← 0; d2 ← 1 while B = 0 do q ← quo(A, B); r ← rem(A, B) u1 ← c1 − q · d1 ; u2 ← c2 − q · d2 A ← B; c1 ← d1 ; c2 ← d2 B ← r; d1 ← u1 ; d2 ← u2 end do s ← c1 ; t ← c2 Return (A) end

# # # # # # # #

Eingabe: a, b ∈ R (euklidischer Ring) s, t Namen f¨ ur die zu berechnenden Kofaktoren. Ausgabe: ggT(a, b) und s und t mit sa + tb = ggT(a, b) A = qB + r sei die Division mit Rest in R . Bezeichnung q = quo(A, B) und r = rem(A, B)

Ist R = K[x] mit einem K¨ orper K , so ist dies nach dem oben Gesagten ein euklidischer Ring und damit auch Hauptidealring.

2.4 Ideale

25

Sind u1 , u2 , . . . , uk ∈ R mit einem gr¨ oßten gemeinsamen Teiler d , so gibt es nach B´ezout Elemente w1 , w2 , . . . , wk ∈ R mit w1 u1 + w2 u2 + . . . + wk uk = d .

(2.1)

In Ideal-Schreibweise heißt das u1 , u2 , . . . , uk  = d Eine L¨osung w1 , w2 , . . . , wk von (2.1) kann man etwa durch iterierte Anwendung des erweiterten euklidischen Algorithmus berechnen. F¨ ur einige Anwendungen ist man an L¨ osungen w1 , w2 , . . . , wk ∈ K[x] von (2.1) von m¨oglichst kleinem Grad interessiert. Was man dabei erreichen kann, zeigt der folgende 2.4.2 Satz: Es seien u1 , u2 , . . . , uk ∈ K[x] mit d := ggT(u1 , . . . , uk ) , v := kgV(u1 , . . . , uk ) ◦ und deg v > deg d . Dann gibt es w1 , . . . , wk ∈ K[x] mit w1 u1 + w2 u2 + . . . + wk uk = d und deg wi < deg v − deg ui f¨ ur i = 1, . . . , k . Beweis: Es sei w1 , w2 , . . . , wk ∈ K[x] irgendeine L¨ osung von (2.1). Dann gibt es f¨ ur i = 1, . . . , k Polynome qi , ri ∈ K[x] mit deg ri < deg v oder ri = 0 und wi ui = qi v + ri . Da ui nach Voraussetzung v teilt, ist ui auch ein Teiler von ri . Es gibt also zu jedem ri ein wi ∈ K[x] mit ri = wi ui . Einsetzen in (2.1) zeigt: k k   v· qi + wi ui = d . (2.2) i=1

Ist

i=1



k

i=1 qi = 0 , so gilt deg v ·

deg

 k 

 wi ui

≥ deg v . Wegen q i i=1

k

 k   = deg ri < deg v und deg d < deg v

i=1

i=1

kann das nicht sein, es folgt also Behauptung. 2.4.3 Beispiel: In

Z13 [x]

k

i=1 qi

= 0 und somit aus (2.2) die 

seien

u1 := x5 + 8x4 + x + 8 , u3 := x4 + 9x2 + 8 , u2 := x5 + 5x4 + x + 5 , u4 := x4 + 6x2 + 5 .. ◦

ur i = 1, . . . , k und ui | v  f¨ ur i = v ist kgV von u1 , . . . , uk wenn gilt: ui | v f¨

1, . . . , k ⇒ v | v 

26

2 Grundlagen

Iterative Anwendung des erweiterten euklidischen Algorithmus (also Berechnung von ggT(u1 , u2 ) , dann ggT(ggT(u1 , u2 ), u3 ) usw. und u 1 u2 kgV(u1 , u2 ) = ggT(u , kgV(u1 , u2 , u3 ) = kgV(kgV(u1 , u2 ), u3 ) 1 ,u2 ) usw.) f¨ uhrt auf die L¨ osung d = ggT(u1 , u2 , u3 , u4 ) = 1 v = kgV(u1 , u2 , u3 , u4 ) = x6 + x4 + x2 + 1 und w1 = 5x2 + 3 , w2 = 8x2 + 10 , w3 = 11x2 + 4 , w4 = 5 . Nach Satz 2.4.2 gibt es eine L¨ osung w1 , . . . , w4 mit deg w1 < 6−5 =  1 , deg w2 < 6 − 5 = 1 , deg w3 < 6 − 4 = 2 , deg w4 < 6 − 4 = 2 . Die im Beweis des Satzes verwendete Division mit Rest f¨ uhrt auf die L¨osung kleineren Grades w1 = 11 , w2 = 2 , w3 = 1 , w4 = 5 . Da man nach dem Satz von der Existenz einer L¨ osung w1 , . . . , wk mit entsprechenden Maximalgraden weiß, kann man nat¨ urlich auch f¨ ur diese Polynome einen Ansatz mit unbestimmten Koeffizienten machen und in (2.1) einsetzen. Koeffizientenvergleich mit der rechten Seite f¨ uhrt dann auf ein l¨ osbares lineares Gleichungssystem. Im vorliegenden Fall f¨ uhrt der Ansatz wi (x) =

deg v−deg  ui −1

 wi,j · xj

j=0

auf das lineare Gleichungssystem ⎛

8 ⎜1 ⎜ ⎜0 ⎜ ⎜0 ⎝ 8 1

5 1 0 0 5 1

8 0 9 0 1 0

0 8 0 9 0 1

5 0 6 0 1 0

⎞ ⎛ ⎞ ⎛ ⎞ w10 0 1 5 ⎟ ⎜ w20 ⎟ ⎜ 0 ⎟ ⎟ ⎜ ⎟ ⎜ ⎟ 0 ⎟ ⎜ w30 ⎟ ⎜ 0 ⎟ ⎟·⎜ ⎟=⎜ ⎟ 6 ⎟ ⎜ w31 ⎟ ⎜ 0 ⎟ ⎠ ⎝ ⎠ ⎝ ⎠ 0 0 w40 0 1 w41

Dies hat die eindeutige L¨ osung w10 = 11, w20 = 2, w30 = 1, w31 = 0, w40 = 5, w41 = 0 . Die Transponierte der bei diesem Ansatz auftretende Koeffizienten-Matrix ist eine Verallgemeinerung der so genannten Sylvester-Matrix, die im Abschnitt u uhrt wird. ¨ber Resultanten eingef¨ Ist t ∈ K[x] ein beliebiges Polynom und w1 , . . . , wk ∈ K[x] eine L¨ osung von (2.1) mit der laut Satz 2.4.2 m¨ oglichen Gradbeschr¨ ankung deg wi < deg v − deg ui , so gilt nat¨ urlich auch tw1 u1 + tw2 u2 + . . . + twk uk = td .

(2.3)

2.4 Ideale

27

F¨ ur diese L¨osung wird aber i.Allg. nicht mehr deg twi < deg v − deg ui gelten. Ist deg(td) < deg v , so l¨ asst sich dies aber analog zum Beweis von Satz 2.4.2 durch Division mit Rest twi ui = qi v + ri mit deg ri < deg v oder ri = 0 reparieren. Es gilt also Folgerung: Zu u1 , . . . , uk , d, v ∈ K[x] wie in 2.4.2 und t ∈ K[x] mit deg(td) < deg v gibt es w1 , . . . , wk ∈ K[x] mit w1 u1 + w2 u2 + . . . + wk uk = td ur i = 1, . . . k . und deg wi < deg v − deg ui f¨ 2.4.4 Beispiel: u1 , . . . , u4 ∈ Z13 [x] und damit auch d und v seien wie in 2.4.3 gegeben. Weiterhin sei t = 2x4 + 2x2 + 4 ∈ Z13 [x] . Wegen deg d = 0 und deg v = 6 ist also die Voraussetzung deg(td) < deg v erf¨ ullt. Aus der L¨ osung tw1 = 9x4 + 9x2 + 5 tw3 = 2x4 + 2x2 + 4

tw2 = 4x4 + 4x2 + 8 tw4 = 10x4 + 10x2 + 7

(mit den L¨ osungen w1 , . . . , w4 aus 2.4.3) ergibt sich durch Division mit Rest (twi ui = qi v + ri ) und anschließende Division (wi = urii ) die L¨osung w1 = 5 , w2 = 8 , w3 = 5 , w4 = 8 w1 u1 + w2 u2 + w3 u3 + w4 u4 = t

mit

und deg wi < deg v − deg ui f¨ ur i = 1, . . . , 4 . Bekanntlich ist die Menge der Restklassen R/I mit den Verkn¨ upfungen (r1 + I) +· (r2 + I) = (r1 +· r2 ) + I selbst wieder ein Ring, der so genannte Restklassenring oder Faktorring von R modulo I . Primideale sind genau die Ideale, f¨ ur die der Restklassenring R/I ein Integrit¨ atsring ist. Maximale Ideale sind genau die Ideale, f¨ ur die der Restklassenring R/I ein K¨ orper ist. Ist R noethersch, so ist auch R/I f¨ ur jedes Ideal I von R noethersch. Sind R und S zwei Ringe und ϕ : R → S ein Ringhomomorphismus, so ist Kern(ϕ) ein von dem ganzen Ring verschiedenes Ideal in R und es gilt R/Kern(ϕ) ∼ = ϕ(R) Der zugeh¨orige Isomorphismus ist ψ mit ψ(r + Kern(ϕ)) = ϕ(r) . 2.4.5 Beispiel: Der Ring Z ist euklidisch (und damit automatisch Hauptidealring, noethersch und faktoriell). Außerdem bilden die ganzen Zahlen einen Integrit¨ atsbereich.

28

2 Grundlagen

Nach dem eben Gesagten vererben sich nur die Eigenschaften faktoriell, noethersch und die Nullteilerfreiheit auf den Polynomring Z[x] . Wegen Z[x]/2, x ∼ = Z2 ist das von 2 und x in Z[x] erzeugte Ideal maximal. Wegen Z[x]/x ∼ = Z ist das von x erzeugte Ideal prim. Das Ideal x  2, x ist also ein Beispiel f¨ ur ein Primideal, das nicht maximal ist. Nun sei R0 ein faktorieller Ring (kommutativ mit 1 wie immer). Damit ist auch der Ring der Polynome u ¨ber R0 , R0 [x1 , . . . , xn , x] , ein faktorieller Ring. Im Folgenden werden multivariate Polynome stets als Polynome in einer Variablen, der Hauptvariablen x , u ¨ber dem Ring R := R0 [x1 , . . . , xn ] betrachtet. Wenn nichts anderes angegeben ist, beziehen sich die Begriffe Leitkoeffizient oder Leitterm jeweils auf den Polynomring R[x] (vgl. den Abschnitt u ¨ber Polynome). Zwei Polynome f (x) , f˜(x) ∈ R[x] heißen ¨ahnlich, in Zeichen f ∼ f˜ , wenn Elemente a, b aus R \ {0} existieren, so dass a · f (x) = b · f˜(x) ist. ¨ Die Elemente a und b heißen zugeh¨ orige Ahnlichkeitskoeffizienten. Jedes f (x) ∈ R[x] l¨ asst sich in seinen Inhalt ( ggT der Koeffizienten, in Zeichen Inh(f ) ) und den verbleibenden primitiven Anteil pA(f ) := f / Inh(f ) zerlegen. Der Inhalt und somit auch der primitive Anteil eines Polynoms ist wie der ggT nur bis auf Einheiten bestimmt. Elemente a und b eines Integrit¨atsringes heißen assoziiert, wenn es eine Einheit e ∈ R mit a = e · b gibt. Da das u ur ¨ ahnliche Polynome vergeben ¨bliche Symbol ∼ hier bereits f¨ ist, wird hier a  b f¨ ur assoziierte Elemente geschrieben. Assoziierte Elemente in R[x] sind ¨ ahnlich, die Umkehrung ist i.Allg. falsch. Das Polynom f heißt primitiv, wenn Inh(f ) eine Einheit in R ist. 2.4.6 Hilfssatz: ideal.

Ist P ⊆ R ein Primideal, so ist P [x] ⊆ R[x] ein Prim-

Beweis: F¨ ur jedes Ideal I von R ist trivialerweise I[x] ein Ideal von R[x] . Es bleibt also nur dass P [x] wirklich prim ist. Sind f (x) = m n zu zeigen, i j f x , g(x) = g x ∈ R[x] Polynome mit f · g ∈ P [x] , aber i=0 i j=0 j f, g ∈ P [x] , so gibt es Koeffizienten von f und g , die nicht in P sind. Sind k und  die kleinsten Indizes von Koeffizienten mit dieser Eigenschaft, so ist der Koeffizient von xk+ in f · g gleich (f0 gk+ + f1 gk+−1 + . . . fk−1 g+1 ) + fk g + (fk+1 g−1 + . . . fk+ g0 ). Die Klammerausdr¨ ucke liegen in P , der Ausdruck fk g nicht. Somit ist der Koeffizient von xk+ in f · g nicht in P , also f · g ∈ P [x] .  2.4.7 Hilfssatz: Sind f und g zwei von Null verschiedene primitive Polynome aus R[x] , so ist auch das Produkt f · g primitiv.

2.4 Ideale

29

Beweis: Nimmt man das Gegenteil der Behauptung an, so ist Inh(f · g) keine Einheit und somit eindeutig in Primelemente zerlegbar (R ist faktoriell vorausgesetzt). Ist p eines dieser Primelemente, so sind alle Koeffizienten von f · g Vielfache dieses p , liegen also in dem von p erzeugten Ideal p von R , d.h. f · g ∈ p[x] . Da nach dem vorhergehenden Hilfssatz p[x] ein Primideal von R[x] ist, folgt f ∈ p[x] oder g ∈ p[x] , was ein Widerspruch zur Primitivit¨ at von f und g ist.  2.4.8 Satz: (Lemma von Gauß) Es seien f und g von Null verschiedene Polynome aus R[x] . Dann gilt Inh(f · g)  Inh(f ) · Inh(g) . (2.4) Beweis: Es gilt f · g = pA(f ) · Inh(f ) · pA(g) · Inh(g) . Da f¨ ur r ∈ R und f ∈ R[x] gilt Inh(rf )  r Inh(f ) , f¨ uhrt beidseitige Berechnung des Inhalts auf Inh(f · g)  Inh(f ) · Inh(g) · Inh(pA(f ) pA(g)) . Da mit pA(f ) und pA(g) nach dem vorhergehenden Hilfssatz auch das Produkt primitiv ist, folgt Inh(pA(f ) pA(g)) ∈ R∗ und somit die Behauptung.  Sind f und g ¨ahnlich, so gibt es a, b ∈ R \ {0} mit af = bg . Es folgt a · Inh(f )  Inh(af ) = Inh(bg)  b · Inh(g) . Da andererseits auch a · pA(f ) Inh(f ) = b · pA(g) Inh(g) gilt, folgt pA(f )  pA(g) , oder in Worten: Die primitiven Anteile ¨ahnlicher Polynome sind assoziiert. 2.4.9 Aufgaben:

Es seien R ein kommutativer Ring mit 1 und I und J endlich erzeugte Ideale von R , etwa I = f1 , . . . , fr  und J = g1 , . . . , gs  . Man definiert I + J := {f + g | f ∈ I, g ∈ J} , I · J := f · g | f ∈ I, g ∈ J , √ I := {f | ∃ m ∈ : f m ∈ I} . I ∩ J := {f | f ∈ I ∧ f ∈ J} ,

N

Zeigen Sie: √ a) I + J , I · J , I ∩ J und I sind Ideale von R . b) I + J ist das kleinste Ideal von R , das I und J enth¨ alt. Es gilt I + J = f1 , . . . , fr , g1 , . . . , gs  . c)

I · J = fi gj | 1 ≤ i ≤ r, 1 ≤ j ≤ s .

30

2 Grundlagen

d)

e) f)

Es sei R = R[x] der Ring der formalen Polynome in x u ¨ber R . F¨ ur h(x) ∈ R[x] bezeichne hI das Produktideal von h und   f1 , . . . , fr  in R . Dann gilt: I ∩ J = xI + (1 − x)J ∩ R . √ √ √ I ∩J = I ∩ J . IJ ⊆ I ∩ J (es gibt F¨ alle mit  ).

2.5 Resultanten 2.5.1 Definition: Ring mit 1, n m Es seien R ein kommutativer f (x) = i=0 fi xi und g(x) = i=0 gi xi ∈ R[x] mit fm = 0 = gn . Die Sylvester-Matrix M (f, g) dieser beiden Polynome ist ⎛ ⎞ fm fm−1 fm−2

···

fm fm−1 fm−2 ⎜ ⎜ .. ⎜ . ⎜ ⎜ .. ⎜ . ⎜ ⎜ ⎜ ⎜ gn gn−1 · · · g0 ⎜ M (f, g) = ⎜ gn gn−1 · · · ⎜ .. ⎜ . ⎜ ⎜ .. ⎜ . ⎜ ⎜ ⎜ ⎜ ⎝

f1 ···

f0 f1

f0 ..

. ..

fm fm−1 fm−2

···

. f1

g0 ..

. ..

..

. ..

. ..

. ..

. gn

⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ f0 ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎠

. gn−1 · · · g0

( ∈ R(m+n)×(m+n) ). Die Determinante dieser Matrix heißt die Resultante von f und g , in Zeichen res(f, g) := det(M ) . Aus den Rechenregeln f¨ ur Determinanten folgt sofort res(f , g) = (−1)mn res(g , f ) , res(af , g) = an res(f , g) (a ∈ R). F¨ ur m = 0 , d.h. f = a ∈ R gilt insbesondere res(a, g) = an F¨ ur den n¨achsten Satz werden die folgenden Polynome eingef¨ uhrt: pm (x) :=

m  i=1

(x − αi ) =

m 

(m) i

pi

x .

i=0

ater die Rolle von Wurzeln Die αi sind dabei neue Unbestimmte, die sp¨ (m) aus einem Erweiterungsk¨ orper u ¨bernehmen sollen. Die Koeffizienten pi in der ausmultiplizierten Form sind bis auf die Vorzeichen die bekannten elementarsymmetrischen Funktionen in den αi .

2.5 Resultanten

31

Wegen pm−1 (x) :=

m−1 

(x − αi ) =

m−1 

i=1

(m−1) i

pi

x

i=0

gilt pm (x) =

m 

(m) i

x = (x − αm )pm−1 (x) =

pi

i=0 (m−1)

= −αm p0 (m) pi (m) p0

= =

+

m−1 

(m−1)

pi−1

i=1 (m−1) (m−1) pi−1 − αm pi (m−1) , p(m) −αm p0 m =

(m−1)

− αm pi



(m−1)

xi + pm−1 xm ⇒

1≤i≤m−1 (m−1)

pm−1 = 1

2.5.2 Satz: Es sei R ein Integrit¨atsring. Mit den oben eingef¨ uhrten Bezeichnungen gilt dann: res(pm (x) , g(x)) = g(αm ) · res(pm−1 (x) , g(x)) Beweis: Man betrachtet die Sylvester-Matrix M1 := M (pm , g) . In dieser m+n−i Matrix addiert man nun f¨ ur i = 1, . . . , m + n − 1 das αm -fache der i . Spalte zur letzten Spalte. Damit bekommt die letzte Spalte die Gestalt m+1  i=1







t

m+n m+n−i αm gn+1−i

,... ,

i=1

n−1 αm

=

(m)

m+n−i αm pm+n−i ,

i=n

n+1





m+n (m)

m+n−i αm pm+1−i , . . . ,

m+n−i αm gm+n−i

=

i=m m 

(m) i αm pi

,...,

0 αm

i=0

m  i=0

(m) i αm pi

,

m−1 αm

n 

i αm gi

,...

i=0

0 , αm

t

n 

t i αm gi

i=0

n−1 0 m−1 0 = αm pm (αm ) , . . . , αm pm (αm ) , αm g(αm ) , . . . , αm g(αm )

Wegen pm (αm ) = 0 kann man also den Faktor g(αm ) aus der letzten Spalte herausziehen und erh¨ alt: res(pm (x) , g(x)) = g(αm ) · det(M2 )

(2.5)

wobei M2 die Matrix ist, deren erste m+n−1 Spalten identisch mit denen von M1 sind mit der neuen letzten Spalte m−1 m−2 0 t (0 , . . . , 0, αm , αm , . . . , αm ) .    n

32

2 Grundlagen

Nun kann man man beide Seiten von (2.5) als Polynome in αm auffas(m) von pm (x) sind linear in αm : sen: Die Koeffizienten pi (m)

pm

(m) pm−2

(m)

= 1

pm−1 =

= α1 α2 + α1 α3 + . . . + αm−1 αm

(m) p0

···

=

−(α1 + α2 + . . . + αm ) (−1)m α1 α2 · · · αm

Dies betrifft die ersten n Zeilen von M1 . In den weiteren m Zeilen kommt αm nicht vor. Damit sieht man degαm (res(pm (x) , g(x)) ≤ n . Auf der rechten Seite von (2.5) ist aber bereits degαm (g(αm )) = n woraus folgt, dass det(M2 ) die Variable αm gar nicht enth¨ alt (F¨ ur diesen Schluss braucht man die Nullteilerfreiheit von R ). Das heißt det(M2 ) = det(M2 )|αm =0 . Damit wird die letzte Spalte von M2 zu dem Einheitsvektor (0 , . . . , 0 , 1)t und man kann außerdem die Koeffizienten von pm (x) entsprechend der Vor¨ uberlegung durch die Koeffizienten von pm−1 (x) wie folgt ersetzen: (m)

p0

(m)

−→ 0 , pi

(m−1)

−→ pi−1

(m−1)

f¨ ur 0 < i < m , p(m) m = pm−1 = 1

Damit zeigt Entwicklung von der Determinante nach der letzten Spalte zusammen mit (2.5) die Behauptung.  m 2.5.3 Satz: Es sei f (x) = fm i=1 (x − αi ) ∈ R[α1 , . . . , αm ][x] (fm = 0) mit einem Integrit¨atsring R und g(x) vom Grad n . Dann gilt: n res(f (x) , g(x)) = fm

m 

g(αi ) .

i=1

Beweis: Der Beweis wird durch Induktion nach m gef¨ uhrt: F¨ ur m = 0 ist f (x) = f0 ∈ R und damit nach Vorbemerkung res(f , g) = f0n = f0n

0 

g(αi )

i=1

Es sei also m > 0 . Dann ist nach Vorbemerkung und Satz 2.5.2 res(f , g) = res(fm

m 

n (x − αi ) , g) = fm res(

i=1 n g(αm ) res( = fm

m 

2.5.2 (x − αi ) , g) =

i=1 m−1 

Ind.-vor. (x − αi ) , g) =

i=1 n g(αm ) = fm

m−1  i=1

n g(αi ) = fm

m  i=1

g(αi )



2.5 Resultanten

2.5.4 Satz: gilt:

33

Es seien R nullteilerfrei und f (x) , g(x) ∈ R[x] \ {0} . Dann res(f (x), g(x)) = 0 ⇐⇒ deg(ggT(f (x) , g(x))) > 0 .

Der ggT , der i.Allg. in R[x] nicht existiert, ist dabei ein Element aus K[x] , wobei K der Quotientenk¨orper von R sei. Beweis: Sind f oder g von Null verschiedene Konstanten aus R , so ist res(f, g) eine Potenz dieser Konstanten, also insbesondere von Null verschieden, und deg(ggT(f, g)) = 0 , der Satz also erf¨ ullt. Es sei also deg(f ) ≥ deg(g) > 0 . Nun sei p1 (x) , p2 (x) , . . . , pk (x) die Kette von Polynomen, die man erh¨ alt, wenn man den ggT von f =: p1 und g =: p2 mit dem euklidischen Algorithmus berechnet, also p1 (x) = q1 (x) p2 (x) + p3 (x) .. . pk−2 (x) = qk−2 (x) pk−1 (x) + pk (x) pk−1 (x) = qk−1 (x) pk (x) + pk+1 (x)

deg p3 < deg p2 deg pk < deg pk−1 pk+1 = 0

und damit pk = ggT(f , g) . Weiterhin sei ni := deg(pi ) , 1 ≤ i ≤ k und LK(p(x)) bezeichne den Leitkoeffizienten des Polynoms p(x) . Im Zerf¨ allungsk¨orper L von pi+1 u ¨ber K seien α1 , . . . , αni+1 die Wurzeln von pi+1 . Dann gilt: 2.5.3 res(pi , pi+1 ) = (−1)ni ni+1 res(pi+1 , qi pi+1 + pi+2 ) = ⎡ ⎤ ni+1  ⎣qi (αj ) pi+1 (αj ) +pi+2 (αj )⎦ = (−1)ni ni+1 LK(pi+1 )ni    j=1 =0



ni+1

= (−1)ni ni+1 LK(pi+1 )ni −ni+2 LK(pi+1 )ni+2

2.5.3 pi+2 (αj ) =

j=1

= (−1)

ni ni+1

ni −ni+2

LK(pi+1 )

res(pi+1 , pi+2 )

Rekursive Anwendung dieser Formel auf res(p1 , p2 ) zeigt: res(p1 , p2 ) = (−1)n1 n2 LK(p2 )n1 −n3 res(p2 , p3 ) = = (−1)n1 n2 LK(p2 )n1 −n3 (−1)n2 n3 LK(p3 )n2 −n4 res(p3 , p4 ) = .. .  k−2  (−1)ni ni+1 LK(pi+1 )ni −ni+2 res(pk−1 , pk ) = 

i=1



=0



34

2 Grundlagen

Ist also nk = deg(pk ) = deg(ggT(f , g)) = 0 , so ist res(pk−1 , pk ) = LK(pk )nk−1 = 0 und damit liest man an obiger Gleichung ab: res(p1 , p2 ) = res(f , g) = 0 . Ist dagegen deg(ggT(f, g)) > 0 , so wendet man obige Umformung nochmals an und liest aus  k−1  res(p1 , p2 ) = (−1)ni ni+1 LK(pi+1 )ni −ni+2 res(pk , pk+1 ) i=1



wegen pk+1 = 0 ab, dass auch res(p1 , p2 ) = res(f , g) = 0 ist. 2.5.5 Aufgaben:

1.) F¨ ur die gegebenen Polynome f und g berechne man jeweils res(f, g) : g(x) = 2x5 + x2 + 2 ∈ 3 [x] , a) f (x) = x3 + x + 1 , 4 3 b) f (x) = x + x + 1 , g(x) = x4 + x2 + x + 1 ∈ 2 [x] . m n 2.) Es seien R := K[x1 , . . . , xr−1 ] , f (xr ) = i=0 fi xir , g(xr ) = i=0 gi xir ∈ R[xr ] mit fm = 0 = gn und α1 , . . . , αr−1 Elemente eines Erweiterungsk¨ orpers L von K . F¨ ur h ∈ R[xr ] sei h := h(α1 , . . . , αr−1 , xr ) .

Z

Z

a) Zeigen Sie, dass i.Allg. resxr (f , g) = resxr (f, g) ist. Wann gilt hier sicher die Gleichheit ? b) Jetzt seien fm = 0 = gn . Zeigen Sie: f und g haben genau dann die gemeinsame Wurzel (α1 , . . . , αr ) mit αr ∈ K , wenn resxr (f, g) = 0 ist. 3.) Mit Hilfe von Aufgabe 2 berechne man alle gemeinsamen komplexen Nullstellen der Polynome f (x, y) = x(y 2 − x)2 + y 5 4

3

2

g(x, y) = y + y − x

und

aus

Q[x, y].

Q

Q[α] ∼=

4.) Es sei α algebraisch u mit dem Minimalpolynom a(y) , ¨ber [y]/a(y) . F¨ ur ein Polynom b(y) mit deg b < deg a sei

Q

p(x) := resy (x − b(y), a(y)) . a) Man zeige, dass das Minimalpolynom von ler von p(xm ) ist. b) Man berechne das Minimalpolynom von

"

m

"

b(α) u ¨ber

√ 9+4 2 u ¨ber

Q

ein Tei-

Q.

2.6 Partialbruchzerlegungen z(x) Es sei F ein K¨ orper und f (x) = n(x) ∈ F (x) eine rationale Funktion mit z(x) , n(x) ∈ F [x] und deg z < deg n . Gegeben sei eine Zerlegung k n(x) = i=1 ni (x) des Nenners in paarweise teilerfremde (nicht notwendig irreduzible) Polynome n1 , . . . , nk ∈ F [x] .

2.6 Partialbruchzerlegungen

35

k Es sei n2 := i=2 ni . Wegen ggT(n1 , n2 ) = 1 und kgV(n1 , n2 ) = n gibt es nach Satz 2.4.2 Polynome w1 , w2 ∈ F [x] mit w2 n1 + w1 n2 = z

und

deg w2 < deg n − deg n1 = deg n2 , deg w1 < deg n − deg n2 = deg n1 .

(2.6)

Setzt man w2 und w1 als Polynome mit unbekannten Koeffizienten vom jeweiligen Grad in (2.6) ein, so erh¨ alt man ein lineares Gleichungssystem, dessen Koeffizientenmatrix gerade die im vorhergehenden Kapitel eingef¨ uhrte Sylvestermatrix (bzw. deren Transponierte) von n1 und n2 ist. Da n1 und n2 teilerfremd sind, ist nach Satz 2.5.4 die Determinante dieser Matrix ( = resx (n1 , n2 ) ) von Null verschieden, d.h. die L¨ osung w1 , w2 mit der genannten Gradbeschr¨ ankung ist sogar eindeutig. Dies f¨ uhrt auf die ebenfalls eindeutige Zerlegung f=

z w2 w1 w n1 + w1 n2 = + . = 2 n n1 n2 n2 n1

(2.7)

Falls die Polynome z und n am Anfang teilerfremd waren, sind w2 und n2 wieder teilerfremd, denn g¨ abe es einen gemeinsamen Teiler, so w¨ are der auch Teiler von w2 n1 + w1 n2 und von n1 n2 , also auch von z und n . w2 n2

erf¨ ullt sinngem¨ aß die anf¨ anglich an nz gestellten Anfork derungen. Mit der vorliegenden Faktorisierung n2 = i=2 ni des Nenners kann man also (2.7) weiter zerlegen und erh¨alt die zu der gegebenen Fakk i torisierung von n eindeutige Partialbruchzerlegung f (x) = i=1 w ni mit deg wi < deg ni f¨ ur i = 1, 2, . . . , k . Diese Zerlegung angt auch nicht von k vi h¨ der verwendeten Reihenfolge ab, denn w¨ are eine andere Zerlegung i=1 ni mit deg vi < deg ni , so zeigt Multiplikation mit dem Hauptnenner und Einsetzen der Wurzeln eines festen ni aus einem Erweiterungsk¨ orper, dass jeweils vi = wi ist. Somit ist gezeigt: k 2.6.1 Satz: Zu jedem n(x) = i=1 ni (x) ∈ F [x] mit paarweise teilerfremden Faktoren ni (x) ∈ F [x] und jedem z(x) ∈ F [x] mit deg z < deg n gibt es eindeutig bestimmte wi (x) ∈ F [x] mit deg wi < deg ni (i = 1, . . . , k) und Der Bruch

 wi (x) z(x) = . k n (x)  i=1 i ni (x) k

i=1

 origen PartialMan kann also von der zu der Faktorisierung n = ni geh¨ z(x) bruchzerlegung der rationalen Funktion f (x) = n(x) ∈ F (x) sprechen. 2.6.2 Beispiel: Es sei f (x) =

x8

+

5x7

+

4x6

x3 − 3x + 1 ∈ Q(x) . − 3x4 − 15x3 − 14x2 − 10x − 8

36

2 Grundlagen

¨ Z¨ahler und Nenner sind bereits optimal durchgek¨ urzt. Uber den komplexen Zahlen lautet die Faktorisierung des Nennerpolynoms √ √ n(x) = (x + 1)(x + 4)(x − 2)(x + 2)(x − i)2 (x + i)2 . Die zu dieser Faktorisierung geh¨ orige eindeutige Partialbruchzerlegung von f (x) gem¨ aß Satz 2.6.1 lautet   1 1 1 1 1 11 2√ √ + f (x) = − 2 + + − 4 x + 1 238 x + 4 252 63 x− 2   1 2√ 1 (97 + 14i)x − (37 + 148i) 11 √ + 2 − + + 252 63 (x − i)2 x + 2 1224 1 (−97 + 14i)x + (37 − 148i) . − 1224 (x + i)2 F¨ ur die reelle Partialbruchzerlegung geht man von der vollst¨ andigen reellen Faktorisierung √ √ n(x) = (x + 1)(x + 4)(x − 2)(x + 2)(x2 + 1)2 aus. Diese f¨ uhrt auf die zugeh¨ orige eindeutige Partialbruchzerlegung   1 1 1 1 1 11 2√ √ + f (x) = − 2 + + − 4 x + 1 238 x + 4 252 63 x− 2   1 2√ 11 1 97x3 − 65x2 + 199x + 37 √ + . 2 + + 252 63 (x2 + 1)2 x + 2 612 Eine exakte reelle oder komplexe Faktorisierung des Nennerpolynoms ist i.Allg. nicht zu bekommen, eine rationale Zerlegung dagegen sehr wohl (siehe dazu das Kapitel zur Polynomfaktorisierung). Die rationale Faktorisierung des obigen Nennerpolynoms lautet n(x) = (x + 1)(x + 4)(x2 − 2)(x2 + 1)2 Dies f¨ uhrt auf die rationale Partialbruchzerlegung 1 1 1 1 1 11x − 16 + + + 4 x + 1 238 x + 4 126 x2 − 2 1 97x3 − 65x2 + 199x + 37 + . 612 (x2 + 1)2

f (x) = −

F¨ ur die Summation oder Integration rationaler Funktionen braucht man keine vollst¨ andige rationale Partialbruchzerlegung, sondern so genannte quadratfreie oder shiftfreie Zerlegungen (siehe die entsprechenden Kapitel). Die quadratfreie rationale Zerlegung des obigen Nennerpolynoms ist etwa

2.6 Partialbruchzerlegungen

37

n(x) = [(x + 1)(x + 4)(x2 − 2)]1 · [x2 + 1]2 = [x4 + 5x3 + 2x2 − 10x − 8] · [x2 + 1]2 (keines der Polynome in den eckigen Klammern enth¨ alt einen mehrfachen Faktor in Q[x] ), woraus man die quadratfreie Partialbruchzerlegung f (x) = −

1 97x3 + 420x2 − 126x − 908 1 97x3 − 65x2 + 199x + 37 + 612 x4 + 5x3 + 2x2 − 10x − 8 612 (x2 + 1)2

erh¨alt. F¨ ur die shiftfreie Zerlegung muss man die gegebene rationale Funktion u.U. geeignet erweitern, hier mit (x + 2)(x + 3) . Die erweiterte Darstellung ist f (x) =

[(x2

x5 + 5x4 + 3x3 − 14x2 − 13x + 6 − 2)(x2 + 1)2 ] · [(x + 1)(x + 2)(x + 3)(x + 4)]

(In den eckigen Klammern sind alle Shifts eines Teilers des Nenners zusammengefasst, verschiedene eckige Klammern enthalten keine Shifts voneinander und sind nat¨ urlich teilerfremd.) Dies f¨ uhrt auf die shiftfreie Partialbruchzerlegung 1 117x5 − 111x4 + 87x3 + 9x2 − 268x − 118 − 476 x6 − 3x2 − 2 3 (39x + 158)(x + 2)(x + 3) − . 476 (x2 + 5x + 4)(x + 2)(x + 3)

f (x) =

k unglichen NenDa die gegebene Faktorisierung n(x) = i=1 ni (x) des urspr¨ nerpolynoms nicht notwendig vollst¨ andig war, lassen sich m¨ oglicherweise einige ni noch weiter zerlegen in vi  ni (x) = ni,j (x) (vi ∈ )

N

j=1

mit (nicht notwendig teilerfremden) Faktoren ni,j (x) ∈ F [x] (j = 1, . . . , vi ) . Diese Faktorisierung kann man nutzen, um die bisherige Zerlegung k  wi (x) i=1

ni (x)

weiter in Partialbr¨ uche aufzuspalten. Ziel ist es dabei insbesondere, die Grade der beteiligten Z¨ ahlerpolynome noch etwas kleiner zu bekommen. Dies geschieht durch fortgesetzte Division mit Rest: (Z0 ) (Z1 )

wi = qi,0 · ni,vi + ri,0 mit deg ri,0 < deg ni,vi qi,0 = qi,1 · ni,vi −1 + ri,1 mit deg ri,1 < deg ni,vi −1 .. .. . .

38

2 Grundlagen

(Zvi −2 )

qi,vi −3 = qi,vi −2 · ni,2 + ri,vi −2 mit deg ri,vi −2 < deg ni,2

Einsetzen von (Z1 ) in (Z0 ) zeigt wi = qi,1 · ni,vi · ni,vi −1 + ri,1 · ni,vi + ri,0 . Einsetzen von (Z2 ) f¨ uhrt jetzt auf wi = qi,2

2 

ni,vi −j +

j=0

2 

ri,

=0

−1 

ni,vi −j .

j=0

alt man also Durch fortgesetztes Einsetzen bis zu (Zvi −2 ) erh¨ wi = qi,vi −2

v i −2

v i −2

ni,vi −j +

j=0

=0

ri,

−1 

ni,vi −j .

j=0

Mit dieser Zerlegung des Z¨ ahlers folgt v i −2 ri, qi,vi −2 wi = + . vi − ni ni,1 j=1 ni,j =0

 vi −2 vi ist ni,vi −j < deg n Wegen deg wi = deg qi,vi −2 j=0 j=1 i,j deg qi,vi −2 < deg ni,1 ; aus (Z1 )−(Zvi −2 ) ist bereits bekannt, dass deg ri, < deg ni,vi − (f¨ ur  = 0, . . . , vi − 2 ). ur  = Benennt man um in wi,1 := qi,vi −2 und wi, := ri,vi − f¨ 2, . . . , vi , so ist gezeigt, dass es zu viwi n Polynome wi, mit deg wi, < 

j=1

deg ni, gibt, so dass

w vi i j=1

ni,j

=

vi  =1

i,j

wi, .  j=1 ni,j

Wegen der Eindeutigkeit der qi,j und ri,j in (Z0 ) − (Zvi −2 ) ist diese Zerlegung zu der gegebenen Faktorisierung von ni eindeutig. In Kombination mit dem vorhergehenden Satz ist damit gezeigt: k 2.6.3 Satz: Zu jedem n(x) = i=1 ni (x) ∈ F [x] mit paarweise teilervi fremden Faktoren ni (x) = j=1 ni,j (x) ∈ F [x], mit vi ∈ und ni,j (x) ∈ F [x] und jedem z(x) ∈ F [x] mit deg z < deg n gibt es eindeutig bestimmte Polynome wi, (x) ∈ F [x] mit deg wi, < deg ni, und vi k   wi, z(x) = . v k  i   i=1 =1 ni,j (x) ni,j

N

i=1 j=1

j=1

Zur Unterscheidung von der im vorhergehenden Satz betrachte ten Partialbruchzerlegung zu n = ni spricht man hier  von der vollst¨andigen Partialbruchzerlegung zur Faktorisierung n = ni,j .

2.7 Einige Schranken

39

Bei der u ¨blichen Partialbruchzerlegung u ¨ber C sind die ni,j Linearfaktoren und die ni Produkte gleicher Linearfaktoren gem¨ aß ihrer Vielfachheit in n , also ni = (fi )vi mit fi = ni,1 = . . . = ni,vi . Die Zerlegung eines i Summanden w ni der Partialbruchzerlegung ist dann also i  wi wi, vi = fi fi

v

mit deg wi, < deg fi = 1 also wi, ∈ C .

=1

Bei Zerlegungen u ¨ber R kommen noch quadratische Faktoren entsprechend ihrer Vielfachheit hinzu. Bei einer Faktorisierung des Nennerpolynoms u onnen die irreduziblen Teiler dagegen beliebig großen Grad ¨ber Q k¨ haben. Etwas anders ist die Situation bei der erw¨ ahnten  shiftfreien Partialbruchzerlegung. Dort hat man Nenner der Gestalt f (x − i) mit einem Polynom f (eben f und all seine in n enthaltenen Shifts). 2.6.4 Beispiel: (Fortsetzung von Beispiel 2.6.2) In der komplexen PBZ von f (x) kam etwa der folgende Summand vor: 1 (97 + 14i)x − (37 + 148i) 1224 (x − i)2 Einfache Division des Z¨ ahlers mit Rest durch x − i f¨ uhrt auf die vollst¨andige Zerlegung 1 97 + 14i 1 1+i . · − 1224 x−i 24 (x − i)2 In der shiftfreien Partialbruchzerlegung von f kam der Summand 39x3 + 353x2 + 1024x + 948 (x + 1)(x + 2)(x + 3)(x + 4) vor. Die vollst¨ andige Zerlegung dazu ist ( n1,1 = x + 4 , . . . ) 39 119 238 238 + + + . x+4 (x + 3)(x + 4) (x + 2)(x + 3)(x + 4) (x + 1)(x + 2)(x + 3)(x + 4)

2.7 Einige Schranken Es sei A = (ars )1≤r,s≤n ∈ Cn×n eine positiv definite hermitesche Matrix, t ur alle x ∈ Cn \ { 0} . d.h. es gelte A = A und h( x) := xt · A · x > 0 f¨ Aus der Definition folgt insbesondere, dass die Diagonalelemente arr f¨ ur 1 ≤ r ≤ n von A positive reelle Zahlen sind.

40

2 Grundlagen

Nun betrachtet man die Diagonalmatrix D mit den Eintr¨ agen

√1 a11

,

und C := D · A · D = . Die Matrix C be..., schreibt die hermitesche Form h bez¨ uglich einer anderen Basis (Transformationsmatrix D ), ist also auch wieder hermitesch. Sind λ1 , . . . , λn die reellen positiven Eigenwerte von C , so gilt nach der Ungleichung zwischen dem arithmetischen und dem geometrischen Mittel n n   λ1 + . . . + λn Spur(C) λ1 · . . . · λn ≤ ⇐⇒ det(C) ≤ . n n √1 ann

( √aarrrsass )1≤r,s≤n

t

Wegen det(C) = det(Dt · A · D) = det(D)2 · det(A) = (a11 · . . . · ann )−1 · det(A) und Spur(C) = n folgt also det(A) ≤ a11 · . . . · ann . Das Gleichheitszeichen in der Ungleichung zwischen dem arithmetischen und dem geometrischen Mittel wird genau dann angenommen, wenn λ1 = . . . = λn ist. Dies ist genau dann der Fall, wenn C skalar, d.h. ein Vielfaches der Einheitsmatrix ist. Dies ist wiederum genau dann der Fall, wenn A diagonal ist. Damit ist der folgende Satz bewiesen. 2.7.1 Satz: Es sei A = (ars )1≤r,s≤n ∈ tesche Matrix. Dann gilt

Cn×n

eine positiv definite hermi-

det(A) ≤ a11 · . . . · ann , wobei das Gleichheitszeichen genau dann angenommen wird, wenn A eine Diagonalmatrix ist. 2.7.2 Satz: (Ungleichung von Hadamard) Es sei A = (ars )1≤r,s≤n eine nichtsingul¨are komplexe (n × n) -Matrix. Dann gilt 2

|det(A)| ≤

n  n 

|akr |2

r=1 k=1

wobei das Gleichheitszeichen genau dann angenommen wird, wenn die Spalten von A orthogonal (bzgl. dem kanonischen Skalarprodukt auf Cn ) sind. Beweis: Es sei B = At · A = (brs )1≤r,s≤n die so genannte Grammatrix der  t  t t t tt Matrix A . Wegen B = At · A = A · A = At · A = At · A = B ist B hermitesch. Wegen xt · B · x = xt · At · A · x = |A x|2 ist B positiv definit. Mit dem vorhergehenden Satz folgt also | det(A)|2 = det(At ) det(A) = det(B) ≤

n  r=1

brr =

n  n 

|akr |2 .

r=1 k=1

Gleichheit liegt vor, wenn B diagonal ist, d.h. wenn die Spalten von A orthogonal sind. 

2.7 Einige Schranken

41

Die folgenden Schranken betreffen Wurzeln von Polynomen und werden bei deren Isolation und bei der Faktorisierung von Polynomen ben¨ otigt. 2.7.3 Satz:  (Ungleichung von Cauchy) Es seien n ≥ 1, pn ∈ C \ {0}, n p(x) = i=0 pi xi ∈ C[x] und x1 ∈ C eine Wurzel von p(x) . Dann gilt max{|p0 |, . . . , |pn−1 |} |x1 | < 1 + . |pn | Beweis: Ist |x1 | eine Wurzel von p(x) mit |x1 | ≤ 1 , so ist der Satz trivialerweise richtig. Es seien also ab jetzt |x1 | > 1 und m := max{|p0 |, . . . , |pn−1 |} . Wegen − . . . − p1 x1 − p0 p(x1 ) = 0 ⇐⇒ pn xn1 = −pn−1 xn−1 1 folgt

+ . . . + p1 x1 + p0 | ≤ |pn ||x1 |n = |pn−1 xn−1 1 ≤ |pn−1 ||x1 |n−1 + . . . + |p1 ||x1 | + |p0 | ≤   ≤ m |x1 |n−1 + . . . + |x1 | + 1 = |x1 |n − 1 |x1 |n

2.7.4 Hilfssatz:

|p0 | . |p0 | + max{|p1 |, . . . , |pn |}

Es seien p(x) =

n i=0

pi xi ∈ C[x] , c ∈ C . Dann gilt

(x − c)p(x)2 = (cx − 1)p(x)2 ∗ Beweis: Setzt man p−1 = pn+1 = 0 , so ist (x − c)p(x) =

n+1 

(pi−1 − cpi )xi , (cx − 1)p(x) =

i=0



r-Norm des Koeffizientenvektors  xr :=

n+1 

(cpi−1 − pi )xi

i=0

n i=1

|xi |r

 r1

,  x∞ := max1≤i≤n |xi | .

42

2 Grundlagen

und damit 2

(x − c)p(x)2 =

n+1 

(pi−1 − cpi )(pi−1 − cpi ) =

i=0

=

n+1 

pi−1 pi−1 +

i=0

=

pi p i +

i=0

=

(cpi )(cpi ) −

i=0

n+1 

n+1 

n+1 

n+1 

n+1 



 cpi−1 pi + cpi−1 pi =



 cpi−1 pi + cpi−1 pi =

i=0

(cpi−1 )(cpi−1 ) −

i=0

n+1  i=0

2

(cpi−1 − pi )(cpi−1 − pi ) = (cx − 1)p(x)2



i=0

2.7.5 Satz:  (Ungleichung von Landau) Es seien n ≥ 1 , pn ∈ C \ {0} , n p(x) = i=0 pi xi ∈ C[x] und x1 , . . . , xn ∈ C alle Wurzeln von p(x) . Dann gilt n  |pn | max{1, |xj |} ≤ p(x)2 . j=1

Beweis: Der Einfachheit halber seien die Wurzeln x1 , . . . , xn ∈ C von p(x) gerade so sortiert, dass |x1 |, . . . , |xk | > 1 und |xk+1 |, . . . , |xn | ≤ 1 n k sind. Damit ist |pn | j=1 max{1, |xj |} = |pn | j=1 |xj | . Nun betrachtet man das Polynom q(x) := pn

k  j=1

(xj x−1)

n 

(x−xj ) = (xk x−1)·pn

k−1 

(xj x−1)

j=1

j=k+1

n 

(x−xj ).

j=k+1

Anwendung des Hilfssatzes zeigt nun # # # # k−1 n   # # # q(x)2 = #(x − xk ) · pn (xj x − 1) (x − xj )# # = # # j=1 j=k+1 2 # # # # k−1 n  # #  (xj x − 1) (x − xj )# =# # . #pn # # j=1 j=k 2

Wiederholt man dies jetzt noch k − 1 -mal, so erh¨ alt man # # #  # n # # # (x − xj )# q(x)2 = #pn # = p(x)2 . # j=1 # 2



2 k 2 folgt die Behauptung. Mit q(x)2 ≥ | LK(q(x))|2 = |pn | j=1 |xj |



2.7 Einige Schranken

43

2.7.6 Satz:  (Ungleichungen von Mignotte)  Es seien n ≥ 1 , pn ∈ C \{0} , n m p(x) = i=0 pi xi ∈ C[x] und q(x) = i=0 qi xi ∈ C[x] mit qm = 0 ein Teiler von p(x) . Dann gilt    m  qm  |qj | ≤ ur 0 ≤ j ≤ m bzw. p(x)2 f¨ j  pn     m  qm  max{|q0 |, . . . , |qm |} ≤ $ m %   p(x)2 und pn 2   qm  q(x)1 ≤ 2m   p(x)2 pn Beweis: Es seien wieder die Wurzeln x1 , . . . , xn ∈ C von p(x) so sortiert, . . . , |xk | > 1 und |xk+1 |, . . . , |xn | ≤ 1 sind. Wegen q(x) = m dassi |x1 |,  m q x = q m i=0 i j=1 (x − xj ) mit {1 , . . . , m } ⊆ {1, . . . , n} gilt qj = (−1)m−j qm



m−j 

1≤k(1) 0 then Return ((1, k0 , . . . , ktemp , 1))

# # # # # #

Eingabe: I = (s , i0 , . . . , in−1 )β , J = (t , j0 , . . . , jm−1 )β Ausgabe: |I| + |J| = (1, k0 , . . . , k )β i mit  > n − 1 bzw. j mit  > m − 1 seien = 0 gesetzt!

2

else Return ((1, k0 , . . . , ktemp )) 2 end if end

Da (max(m − 1, n − 1) + 1) -mal die Schleife mit einer jeweils festen Anzahl von Kurzzahloperationen wie etwa i + j + carry durchlaufen wird, ist diese Prozedur von der Ordnung O(max(m, n)) , oder genauer: Op[|I| + |J| ← SumPosInt(I, J)](Lβ (I), Lβ (J))  max(Lβ (I), Lβ (J)) . Sind nun I und J zwei beliebige ⎧ ⎨ sign(I) · (|I| + |J|) I + J = sign(I) · (|I| − |J|) ⎩ sign(J) · (|J| − |I|)

long integers, so gilt offensichtlich: falls sign(I) = sign(J) falls sign(I) =  sign(J) und |I| > |J| falls sign(I) = sign(J) und |I| ≤ |J|

Damit gen¨ ugt es zusammen mit den beiden bereits besprochenen Algorithmen, wenn man die Differenz zweier positiver long integers I und J mit I ≥ J bilden kann. Da die Schleife mit einer jeweils festen Anzahl von Kurzzahloperationen wie i − j + carry genau (max(m − 1, n − 1) + 1)-mal durchlaufen wird, gilt auch f¨ ur diese Prozedur: Op[|I| − |J| ← DifPosInt(I, J)](Lβ (I), Lβ (J))  max(Lβ (I), Lβ (J)) . Offensichtlich gilt also sowohl f¨ ur die Summe, als auch f¨ ur die Differenz zweier long integers mit diesen Algorithmen: Op[I ± J ← Sum/Dif(I, J)](Lβ (I), Lβ (J))  max(Lβ (I), Lβ (J)) .

4.1 Ganze Zahlen

63

Differenz positiver ganzer Zahlen procedure DifPosInt(I, J) carry ← 0 for  from 0 to n − 1 do temp ← i − j + carry if temp ≥ 0 then k ← temp; carry ← 0 else k ← temp +β ; carry ← −1 end if end do ←n−1 while k = 0 and  ≥ 0 do ←−1 end do if  = −1 then Return ((0, 0)) else Return ((1, k0 , . . . , k )) end if end

# # # # # # #

Eingabe: I = (s , i0 , . . . , in−1 )β , J = (t , j0 , . . . , jm−1 )β I≥J. Ausgabe: |I| − |J| = (u, k0 , . . . , k )β j mit  > m − 1 seien wieder = 0 gesetzt!

Differenz ganzer Zahlen procedure Dif(I, J) t ← −t Return (Sum(I, J) ) end

# Eingabe: I = (s , i0 , . . . , in )β , # J = (t , j0 , . . . , jm )β # Ausgabe: I − J = (u, k0 , . . . , k )β

Summe ganzer Zahlen procedure Sum(I, J) # Eingabe: I = (s , i0 , . . . , in−1 )β , # J = (t , j0 , . . . , jm−1 )β if s = t then # Ausgabe: I + J = (u, k0 , . . . , k )β (u, k0 , . . . , k ) ← SumPosInt(I, J) u←s else if ComPosInt(I, J) = 1 then (u, k0 , . . . , k ) ← DifPosInt(I, J) u←s else (u, k0 , . . . , k ) ← DifPosInt(J, I) u←t·u end if end if Return ( (u, k0 , . . . , k ) ) end

64

4 Grundlegende algebraische Strukturen

Dies ist ist jeweils der schlechteste Fall. Ist bei SumPosInt und Dif¨ PosInt der Ubertrag carry= 0 und  > m − 1 , so ist in der jeweiligen  -Schleife nichts zu tun. Meist wird man also mit min(Lβ (I), Lβ (J)) Durchl¨aufen auskommen. 4.1.3 Multiplikation n−1 m−1 Das Produkt der long integers I = s · k=0 ik β k und J = t · =0 j β  ist   m+n−2   I ·J =s·t· ik j β h h=0

k+=h

Dies ist aber noch nicht die gew¨ unschte Darstellung im β-System, denn die Koeffizienten in der inneren Klammer k¨ onnen nat¨ urlich sehr viel gr¨ oßer als β − 1 werden. Man muss also m¨ oglichst fr¨ uhzeitig mod β rechnen und sich ¨ die Ubertr¨ age merken. Dies f¨ uhrt auf den folgenden Algorithmus Prod 1 . Die innere Schleife mit der Berechnung von ih · j + kh+ + carry, dem ganzzahligen Quotienten und Rest wird m · n -mal durchlaufen. Damit gilt f¨ ur die Multiplikation nach der Schulmethode: Op[I · J ← Prod1 (I, J)](Lβ (I), Lβ (J))  Lβ (I) · Lβ (J) . Produkt ganzer Zahlen (Schulmethode) procedure Prod 1 (I, J ) u←s·t for  from 0 to m + n − 1 do k ← 0 end do for  from 0 to n − 1 do carry ← 0 for h from 0 to m − 1 do temp ← i · jh + kh+ + carry kh+ ← Rest(temp, β) carry ← Quo(temp, β) end do k+m ← carry end do if kn+m−1 = 0 then Return ( (u, k0 , . . . , kn+m−2 ) ) else Return ( (u, k0 , . . . , kn+m−1 ) ) end if end

# # # # # # # # #

Eingabe: I = (s , i0 , . . . , in−1 )β , J = (t , j0 , . . . , jm−1 )β Ausgabe: I · J = (u, k0 , . . . , k )β Rest = Rest bei ganzzahliger Division Quo = Quotient bei ganzzahliger Division jeweils in Kurzzahlarithmetik

4.1 Ganze Zahlen

65

Der gezeigte Algorithmus unterscheidet sich etwas von der u ¨blichen Handmethode: es werden nicht erst alle Produkte ausgerechnet und dann addiert, sondern es wird jedes Produkt auf die schon berechnete Zwischen¨ summe aufaddiert und gleich der Ubertrag abgespalten. Dadurch werden die Zahlen nicht allzu groß. Trotzdem muss man die Zahlbasis β kleiner w¨ ahlen, als in den bisherigen Algorithmen: Es gilt ih · j + kh+ ≤ (β − 1)2 + (β − 1) = β(β − 1) . Damit ist das erste berechnete carry ≤ β−1 , das n¨ achste ih ·j +kh+ + carry ¨ also ≤ β(β − 1) + (β − 1) = β 2 − 1 . Der Ubertrag carry ist damit immer kleiner als β , der Ausdruck ih · j + kh+ + carry immer kleiner als β 2 . M¨ ochte man das alles noch mit der existierenden Kurzzahlarithmetik erledigen, so −1 muss bei der symmetrischen Darstellung β 2 − 1 ≤ 2−1 − 1 ⇐⇒ β ≤ 2[ 2 ]  bzw. sonst β 2 − 1 ≤ 2 − 1 ⇐⇒ β ≤ 2[ 2 ] gew¨ ahlt werden. Bei einem 16 bit Computer w¨ aren etwa je nach zugrundeliegender Zahldarstellung β = 27 = 128 oder β = 28 = 256 geeignete Zahlbasen, bei einem 32 bit Rechner β = 215 = 32.768 oder β = 216 = 65.536 .

Maple-Worksheet

zur Zahldarstellung

66

4 Grundlegende algebraische Strukturen

M¨ochte man die l¨ astigen und aufw¨ andigen Umrechnungen zwischen dem β-System und dem Dezimalsystem vermeiden, so kann man etwa bei einem 32 bit Rechner die n¨ achstkleinere 10-er Potenz β = 10.000 w¨ ahlen. Diese Zahlbasis wird in Maple auch verwendet. Erst ab einer voreingestellten Schranke und ab Version 9 wird dann f¨ ur die Langzahlarithmetik GMP verwendet, das teilweise in Assembler geschrieben ist und Wortl¨ ange und Carry-Flag voll ausnutzt, daf¨ ur aber jeweils zwischen der internen Darstellung und der zur Basis 10 umrechnen muss. Ein ¨ahnlicher Ansatz wird auch im Perl-Package Math::BigInt verwendet. Dort wird je nach Rechner zur Basis 105 oder 107 gerechnet. Es gilt    n−1  n−1     βn − 1 |I| = s · ij β j  ≤ (β − 1) · β j = (β − 1) = βn − 1 β − 1  j=0  j=0 und deshalb ist die Anzahl der Dezimalstellen von I maximal n log10 (β)! . Beschr¨ankt man sich bei den Exponenten auf so genannte ’short unsigned integers’ (bei 32 bit Rechnern ≤ 216 − 1 = 65.535 ), so kann man mit der Zahlbasis 10.000 immerhin schon Zahlen bis zu 216 · log10 (10.000) = 218 = 262.140 Dezimalstellen darstellen. Bei 64 bit Rechnern k¨ onnte man die Zahlbasis 109 verwenden und kommt dann auf 38.654.705.655 Dezimalstellen. In Maple wird die Listenl¨ ange im 32 bit Fall in einem Teil eines 32 bit Computerwortes gespeichert. In diesem Wort werden 8 bit f¨ ur die ’garbage collection’ verwendet, 1 bit f¨ ur den Status der Vereinfachung und 6 bit f¨ ur eine Identifikationsnummer. Es verbleiben also 17 bit f¨ ur die Listenl¨ ange, womit sich dann sogar 524.280 Dezimalstellen erreichen lassen. Bei 64 bit Rechnern ist die Aufteilung in Maple wie folgt: 16 bit ’garbage collection’, 1 bit Status der Vereinfachung, 6 bit f¨ ur die Identifikationsnummer. 9 bit werden frei gelassen und es verbleiben 32 bit f¨ ur die Listenl¨ange, d.h. man hat die bereits oben berechneten 38.654.705.655 Dezimalstellen zur Verf¨ ugung. Diese Schranke ist bei den meisten Rechnern rein theoretisch, denn die Darstellung einer so großen Zahl erfordert weit mehr RAM-Speicherplatz, als in heute u ¨blichen Computern vorhanden ist. Selbst, wenn man so viel Speicher h¨atte, ließe sich mit so großen Objekten nicht mehr in vern¨ unftiger Zeit rechnen. Der asymptotische Aufwand f¨ ur die Langzahlmultiplikation l¨ asst sich mit einer so genannten Teile und Herrsche“-Strategie deutlich herabset” zen. Die Grundidee dieser Strategie, die nicht nur bei der Multiplikation Anwendung findet, ist es, ein Problem der Gr¨ oße n so in Teilst¨ ucke der n Gr¨oße m aufzuteilen, dass die Gesamtkomplexit¨ at geringer wird.

4.1 Ganze Zahlen

67

Die Anwendung auf die Multiplikation wurde erstmals in einem Artikel von Karatsuba und Ofman beschrieben [KOf]∗ . Es seien I und J zwei ganze Zahlen der β-L¨ ange n . Der Einfachheit halber setzt man zun¨ achst voraus, dass n eine Zweierpotenz ist und teilt I und J wie folgt in je zwei gleichgroße β-Teile auf n

n

I =a·β2 +b ,

J =c·β2 +d .

Dabei seien a , b , c und d ganze Zahlen der β-L¨ ange n2 . Dann l¨asst sich das Produkt in der folgenden Form schreiben n

I · J = acβ n + [ac + bd + (a − b)(d − c)]β 2 + bd . Die in dieser Formel auftretenden Zahlen der β-L¨ ange n2 werden nun ihrerseits nach der gleichen Methode in Zahlen der β-L¨ angen n4 zerlegt, ihre Produkte nach der entsprechenden Formel berechnet. Das wird solange rekursiv fortgesetzt bis man beim Produkt ganzer Zahlen in Kurzzahlarithmetik angelangt ist. Ergibt sich bei den Differenzen a − b und d − c bzw. bei der Summe n ¨ der Koeffizienten von β 2 kein Uberlauf (zur β-L¨ ange n2 + 1 bzw. n + 1 ), so sind zu dieser Berechnung von I · J die folgenden Rechnungen n¨ otig: n (i) 3 Produkte von long integers der β-L¨ angen 2 nach der entsprechenden Formel ( ac und bd m¨ ussen ja nur jeweils einmal berechnet werden), (ii) 2 Produkte mit Potenzen von β , (iii) — 2 Differenzen von Zahlen der β-L¨ ange n2 ( a − b und c − d ), n — 2 Summen von Zahlen der β-L¨ ange n (beim Koeffizient von β 2 ). — 2 Summen von Zahlen der β-L¨ ange 2n (beim Zusammenfassen der n Vielfachen von β n , β 2 und β 0 = 1 ). Der Aufwand f¨ ur die obigen Einzelschritte ist: (i) 3 · Op[Prod2 ]( n2 )  . (ii) Eine Multiplikation einer Zahl I = (s , i0 , . . . , in−1 )β mit einer Potenz β  von β bedeutet eine einfache Verschiebung der Liste zu β  · I = (s , 0 , . . . , 0 , i0 , . . . , in−1 )β .    

Dies l¨asst sich bei der Listendarstellung durch das Verbiegen“ eines ” Pointers und Einf¨ ugen der entsprechenden Zellen bewerkstelligen. ∗

Frau Dr. Ekatherina A. Karatsuba, Tochter von A. A. Karatsuba, machte mich freundlicher-

weise darauf aufmerksam, dass ihr Vater den hier beschriebenen Algorithmus als 23-j¨ ahriger Student bei A. N. Kolmogorov alleine (ohne Zutun des Coautors Y. Ofman) entdeckt habe.  Da im Folgenden vorerst das Produkt zweier Zahlen der gleichen L¨ ange betrachtet wird, wird jeweils abgek¨ urzt Op[Prod2 ](n) f¨ ur Op[I · J ← Prod2 (I, J)](n, n) .

68

4 Grundlegende algebraische Strukturen

Selbst, wenn man die Liste komplett im Speicher verschieben w¨ urde, w¨are der Aufwand daf¨ ur schlimmstenfalls proportional zur Listenl¨ ange, also etwa c · n mit einer Konstanten c ∈ R+ . (iii) Wegen Op[Sum](n, m)  max(n, m) gilt Op[Sum](n, n)  n . Damit gibt es eine Konstante k ∈ R+ , so dass der Aufwand f¨ ur die genannten Einzelschritte h¨ ochstens 2 · k · n2 , 2 · k · n bzw. 2 · k · 2n ist. ¨ An dieser Uberlegung andert sich auch nichts, wenn etwa bei der Berech¨ nung von a − b oder d − c Zahlen der β-L¨ ange n2 + 1 entstehen. Zerlegt n n man diese Zahlen analog zu oben in a−b = a1 β 2 +b1 und c−d = a2 β 2 +b2 n mit Lβ (a1 ) = Lβ (a2 ) = 1 und Lβ (b1 ) = Lβ (b2 ) = 2 so sieht man, dass bei der Berechnung des Produkts n

(a − b) · (c − d) = a1 a2 β n + (a1 a2 + b1 b2 + (a1 − b1 )(b2 − a2 )) β 2 + b1 b2 nach der Karatsuba-Formel nur ein Produkt zweier Zahlen der β-L¨ ange n2 berechnet werden muss, n¨ amlich b1 b2 . Der Aufwand f¨ ur alle anderen Produkte wird von dem Aufwand f¨ ur dieses Produkt dominiert, denn es ist jeweils mindestens eine Zahl der βL¨ ange 1 beteiligt. Somit gilt nach Vor¨ uberlegung f¨ ur die Anzahl der Operationen des Karatsuba-Algorithmus schlimmstenfalls die Rekursion * k1 f¨ ur n = 1 Op[Prod2 ](n) = 3 Op[Prod2 ]( n2 ) + k2 n f¨ ur n > 1 Dabei ist k1 der Aufwand f¨ ur die Berechnung des Produkts zweier Zahlen I und J der β-L¨ ange 1 mit Prod1 und der Faktor k2 = 7k +2c ∈ R+ ergibt sich aus obiger Diskussion zu (ii) und (iii). Da man bei anderen Teile und Herrsche“-Strategien ¨ ahnliche Rekursi” onsformel erh¨alt, werden diese im folgenden Satz gleich etwas allgemeiner untersucht:

N

4.1.3.1 Satz: Es seien k1 , k2 ∈ R+ ,  , m , r ∈ und n = mr . Erf¨ ullt eine Funktion T : → R+ die Rekursion * f¨ ur n = 1 k1 T (n) = n  · T(m ) + k2 n f¨ ur n > 1,

N

so gilt:

T (n) 

n n logm n nlogm 

f¨ ur  < m f¨ ur  = m f¨ ur  > m

.

Beweis: Wie man leicht mit Induktion nach r ∈ N nachweist, l¨ ost

4.1 Ganze Zahlen

T (mr ) = r k1 + k2 m

r−1 

69

i mr−1−i

i=0

die Rekursion. Mit Hilfe der geometrischen Summenformel folgt

 r r r ( m ) −1 r f¨ ur  = m T (m ) =  k1 + k2 m m −1 r r f¨ ur  = m  k1 + k2 m r Nun muss man drei F¨ alle unterscheiden:  = m : Wegen r = logm n kann man T (n) = n(k1 + k2 logm n) schreiben, woraus man sofort T (n)  n logm n abliest. r   r r ( m ) −1 r groß ) m = k + k → k2 m− gilt  < m : Wegen T (m r 1 2  m m −1 m

r groß

n groß

m m bzw. T (n) → n·k2 m− , d.h. T (n) ist T (mr ) → k2 mr m− kodominant zu n .  > m : In diesem Fall kann man die Funktion T in die Gestalt   k2 m k1 − k1 m + k2 m −n T (n) = logm n −m −m

bringen. Wegen logm n = nlogm  und logm  > 1 ist diese Summe kodominant zu nlogm  .  Ist nun n keine ganzzahlige Potenz von m , kann man trotzdem Teile ” und Herrsche“-Strategien wie den Algorithmus von Karatsuba anwenden, indem man jeweils zum n¨ achsten Vielfachen von m auff¨ ullt“ bevor man in ” m St¨ ucke teilt. Im Fall der Langzahlmultiplikation k¨ onnte das z.B. so aussehen, dass man Zahlen der β-L¨ ange 51 durch Erg¨ anzen f¨ uhrender Nullen auf die L¨ ange 52 bringt und dann in zwei Bl¨ ocke der Gr¨ oße 26 teilt usw: 51/52 → 26 → 13/14 → 7/8 → 4 → 2 → 1

.

Alternativ k¨onnte man auch gleich im ersten Schritt auf die n¨ achste ganzzahlige Potenz von m auff¨ ullen, hier etwa auf 64. Geht man von der Monotonie der Funktion T aus, so gibt es ein r ∈ , so dass gilt mr < n < mr+1 und damit auch T (mr ) ≤ T (n) ≤ T (mr+1 ) . Im Fall  < m wurde z.B. f¨ ur n = mr bereits gezeigt, dass T (n)  n gilt. Es gibt also Konstanten c1 , c2 ∈ R+ mit c1 mr ≤ T (mr ) ≤ c2 mr und damit auch mit c1 mr+1 ≤ T (mr+1 ) ≤ c2 mr+1 . Damit gilt

N

c1 · n < c1 mr ≤ T (mr ) ≤ T (n) ≤ T (mr+1 ) ≤ c2 mr+1 < (c2 m) · n m also insbesondere T (n)  n auch wenn n keine ganzzahlige Potenz von m ist.

70

4 Grundlegende algebraische Strukturen

In den anderen F¨ allen (  ≥ m ) kann man genauso argumentieren. Die hergeleiteten Formeln f¨ ur die Ordnung der Funktion T gelten also sogar f¨ ur beliebiges n ∈ (n ≥ m) !

N

Folgerung: Im Fall der Langzahlmultiplikation nach Karatsuba ist m = 2 und  = 3 . Damit liest man aus dem Satz ab: Op[Prod2 ](n)  nlog2 3  n1.58496...

.

n

n

Folgerung: Rechnet man das Produkt von I = a·β 2 +b und J = c·β 2 +d ( a , b , c , d wie oben) nach der u ¨blichen Methode aus, also n

I · J = acβ n + (ad + bc)β 2 + bd , so ben¨otigt man 4 Produkte von Zahlen der β-L¨ ange n2 und einige Operationen mit linearem Zeitaufwand. Damit ist  = 4 und m = 2 , was zeigt, dass f¨ ur die rekursive Variante der u ur ¨blichen Multiplikation wie die f¨ Schulmethode gilt Op[I · J ← Prod(I, J)](n, n)  n2 . Folgerung: Hat man es nicht wie in den beiden vorhergehenden Folgerungen mit zwei etwa gleich großen Zahlen I und J zu tun, sondern mit deutlich verschieden großen Zahlen ( β-L¨ angen n und m ), so zerhackt man die gr¨oßere der beiden in Teile, die so groß sind wie die kleinere der Zahlen. Dann multipliziert man mit diesen Teilen und setzt zum Ergebnis zusammen. Der gesamte Vorgang wird von den Multiplikationen dominiert, so dass insgesamt gilt Op[Prod](m, n) 

max(m, n) · Op[Prod] (min(m, n)) . min(m, n)

Im Fall der Schulmethode Prod1 f¨ uhrt dies auf die bereits bekannte Aufwandsabsch¨ atzung Op[Prod1 ](m, n)  m · n , bei Karatsuba auf Op[Prod2 ](m, n)  max(m, n)·min(m, n)α−1 mit α = log2 3 . Da die gleiche Formel mit α = 2 die Schulmethode beschreibt, kann man in Zukunft f¨ ur das Produkt von long integers Op[Prod](m, n)  max(m, n) · min(m, n)α−1 schreiben und die beiden besprochenen Methoden durch Einsetzen von α = 2 oder α = log2 3 beschreiben. Als Programm sieht der Algorithmus von Karatsuba etwa wie in der Prozedur Prod2 beschrieben aus (ohne das geschilderte Zerhacken verschieden großer Zahlen I und J ). Nach 4.1.3.1 und einer der Folgerungen dazu gilt also Op[I · J ← Prod2 (I, J)]  max(Lβ (I), Lβ (J)) · min(Lβ (I), Lβ (J))log2 3−1 . Die Prozedur Shift beschreibt die Multiplikation mit einer Potenz von β :

4.1 Ganze Zahlen

71

Produkt ganzer Zahlen (Karatsuba) procedure Prod2 (I, J) # Eingabe: I = (s , i0 , . . . , in−1 )β , # J = (t , j0 , . . . , jm−1 )β if s = 0 or t = 0 then # Ausgabe: I · J Return ((0, 0)) # end if # i mit  > n − 1 bzw. j mit if m = 1 and n = 1 then #  > m − 1 seien = 0 gesetzt! Return (Prod1 (I, J)) end if n ←  12 max(m, n) · 2  if n − 1 < n2 then a ← (0, 0) else a ← (s, in /2 , . . . , in −1 ) end if b ← (s, i0 , . . . , in /2−1 )  if m − 1 < n2 then c ← (0, 0) else c ← (t, jn /2 , . . . , jn −1 ) end if d ← (t, j0 , . . . , jn /2−1 ) temp 1 ← Prod2 (Dif(a, b), Dif(d, c)) temp 2 ← Prod2 (a, c) ; temp 3 ← Prod2 (b, d) temp 1 ← Sum(temp2 , Sum(temp3 , temp1 ))  temp 1 ← Shift(temp1 , n2 ) ; temp 2 ← Shift(temp2 , n ) Return (Sum(temp2 , Sum(temp1 , temp3 ))) end

Produkt mit einer Potenz der Zahlbasis procedure Shift(I, m) if s = 0 then Return ((0, 0)) else Return ((s, 0, . . . , 0, i0 , . . . , in−1 ))    end if m end

# Eingabe: I = (s , i0 , . . . , in−1 )β , # m∈ # Ausgabe: I · β m

N

F¨ ur diese Verschiebung gilt Op[I · β m ← Shift(I, m)] Lβ (I). Folgerung: H¨atte man nicht wie Karatsuba m = 2 , sondern etwa m = 4 gew¨ahlt (d.h. die Zahlen der β-L¨ ange n in 4 gleiche Teile aufgespalten), so w¨ are f¨ ur  > 4 der Aufwand Op(n)  nlog4  .

72

4 Grundlegende algebraische Strukturen

Wegen log4  < log2 3 ⇐⇒  ≤ 8 hieße das, dass man einen asymptotisch besseren Algorithmus als den von Karatsuba erhielte, wenn es gel¨ ange das Produkt der zwei Zahlen der β-L¨ ange n durch h¨ ochstens 8 Produkte von Zahlen der β-L¨ ange n4 und einigen Additionen und Verschiebungen auszudr¨ ucken. Dies ist in der Tat m¨ oglich und gelingt auch f¨ ur noch feinere St¨ uckelungen der Zahlen I und J . Der Karatsuba-Algorithmus ist damit nur der erste von einer Folge von Algorithmen mit dem Aufwand Op[Prodr+1 ](n)  nlogr+1 (2r+1) , r = 1, 2, . . . Wegen logr+1 (2r + 1) < 1 + logr+1 2 → 1 f¨ ur r → ∞ gibt es also zu jedem ε > 0 einen Algorithmus f¨ ur die Langzahlmultiplikation mit einem Aufwand, der von n1+ε dominiert wird. Wegen der großen Vorfaktoren sind diese Algorithmen aber nur von theoretischem Interesse. A. L. Toom [Too] formulierte einen ¨ ahnlichen √ Algorithmus mit dem beachtlichen asymptotischen Aufwand O(n1+3.5/ log2 n ) . 4.1.3.2 Beispiel: Um absch¨ atzen zu k¨ onnen, ab welcher Zahlengr¨ oße n sich der Karatsuba-Algorithmus lohnt, wird der Aufwand f¨ ur die beiden Algorithmen Prod1 und Prod2 etwas genauer untersucht. ange n , dass F¨ ur Prod1 ergibt sich bei zwei Zahlen gleicher β-L¨ die Hauptschleife n2 -mal durchlaufen wird und jedesmal ein Produkt, eine Division mit Rest und 2 Summen ausgef¨ uhrt werden. Nachdem Produkt und Division etwa gleich schnell berechnet werden k¨onnen, meist aber deutlich langsamer als die Addition sind, kann man etwa Op[Prod1 ](b) = n2 (2k + 2p) vermerken, wobei k , wie bereits zuvor, ein Maß f¨ ur die Addition, p f¨ ur die Multiplikation, ist. Ein realistisches Verh¨ altnis w¨ are etwa p ≈ 2k . Im Beweis von 4.1.3.1 findet man f¨ ur Karatsuba mit  > m die Formel Op[Prod2 ](n) = nlog2 3 (k1 + 2k2 ) − 2k2 n ange 1 angewandt). mit k1 = 2(k + p) ( Prod1 auf β-L¨ Gilt nun etwa k = c = 1 , so ergibt sich f¨ ur β = 215 die folgende Tabelle, die zeigt, dass sich, je nach den sehr vom Rechner abh¨ angigen Werten der Konstanten, der Karatsuba-Algorithmus erst ab sehr großen Zahlenwerten lohnt. Man wird deshalb in aller Regel große Zahlen nur soweit nach Karatsuba zerlegen, bis die einzelnen Bruchst¨ ucke kleiner als dieser Zahlenwert sind und diese Bruchst¨ ucke dann nach der Standardmethode ausmultiplizieren.

4.1 Ganze Zahlen

73

In der Prozedur Prod2 wird man also die erste Zeile ersetzen durch if m ≤ S and n ≤ S mit einer geeigneten Schranke S . p= Op[Prod2 ](n)=

1 1.5 2.0 2.5

22nlog2 3 − 18n 23nlog2 3 − 18n 24nlog2 3 − 18n 25nlog2 3 − 18n

Op[Prod1 ](n)=

4n2 5n2 6n2 7n2

Op[Prod2 ](n) n0 zu tun. Asymptotisch liefert das zwar immer noch einen Algorithmus mit O(nlog2 3 ) , aber der entsprechende Vorfaktor l¨ asst sich durch eine g¨ unstige Wahl von n0 noch deutlich beeinflussen. Ein asymptotisch sehr schneller Algorithmus (O(n log n log log n)) zur Langzahlmultiplikation beruht auf der schnellen Fourier-Transformation (kurz FFT, [ScS]). Diese wird hier nicht besprochen, da der trade off point“ ” nochmals deutlich h¨ oher als bei Karatsuba liegt. Das hochspezialisierte Paket GMP bietet FFT nur u ¨ber den Schalter ‘--enable-fft’ an und im Hilfetext dazu liest man: ‘By default multiplications are done using Karatsuba and 3-way Toom-Cook algorithms, but a Fermat FFT can be enabled, for use on large to very large operands. Currently the FFT is recommended only for knowledgeable users who check the algorithm thresholds for their CPU.’ ¨ Ahnlich wie beim Algorithmus von Karatsuba zur Langzahlmultiplikation f¨ uhrt ein Teile und Herrsche“– Verfahren bei der ” Matrixmultiplikation zu einer verbesserten zeitlichen Komplexit¨ at. Die Idee dazu stammt von V. Strassen [Str] :   a12 , B = b11 b12 ∈ Rn×n 11 Es seien R ein Ring, A = a a21 a22 b21 b22 n × n-Matrizen ( n Zweierpotenz) mit den n2 × n2 -Untermatrizen aij und bij (1 ≤ i, j ≤ 2) .

4.1.3.3 Aufgaben:

74

4 Grundlegende algebraische Strukturen





c11 c12 := A · B sei das entsprechend in Untermatrizen aufgec21 c22 teilte Produkt der beiden gegebenen Matrizen. a) Man gebe eine Rekursionsformel f¨ ur OpR [Standard](n) an, wenn ur das Produkt nach der Standardmethode cij = ai1 b1j + ai2 b2j f¨ (1 ≤ i, j ≤ 2) berechnet wird. b) Man gebe eine Rekursionsformel f¨ ur OpR [Strassen](n) an, wenn die Eintr¨ age von C wie folgt berechnet werden: m1 = (a12 − a22 )(b21 + b22 ) , m2 = (a11 + a22 )(b11 + b22 ) , m3 = (a11 − a21 )(b11 + b12 ) , m4 = (a11 + a12 )b22 , m5 = a11 (b12 − b22 ) , m6 = a22 (b21 − b11 ) , m7 = (a21 + a22 )b11 , c11 = m1 + m2 − m4 + m6 , c12 = m4 + m5 , c21 = m6 + m7 , c22 = m2 − m3 + m5 − m7 . C=

c)

Man l¨ ose allgemein die Rekursion

* T (n) =

R

d)

e)

a bT

n 2

 n 2

+c

2

f¨ ur n = 1 f¨ ur n > 1

N

f¨ ur a ∈ + , b, c ∈ . Man bestimme die Komplexit¨ at der in c) gegebenen Funktion T und vergleiche damit den Standardalgorithmus zur MatrixMultiplikation mit dem Strassen-Algorithmus. F¨ ur a = 1.2 bestimme man den break even point“ des Strassen– ” Algorithmus, d.h. das n , ab dem der Strassen–Algorithmus schneller als die Standardmethode ist.

4.1.4 Division In einem euklidischen Ring R verf¨ ugt man bekanntlich u ¨ber eine Gradfunktion δ : R\{0} → , so dass zu beliebigen a, b ∈ R\{0} Elemente q, r ∈ R mit a = bq + r und r = 0 oder δ(r) < δ(b) existieren. In Z nimmt man meist f¨ ur die Gradfunktion δ(r) = |r| ( δ(r) = |r|n mit jedem beliebigen, aber festen n ∈ N geht auch). Die Elemente q und r sind i.Allg. nicht eindeutig festgelegt, wie etwa das Beispiel 5 = 2 · 2 + 1 = 2 · 3 − 1 zeigt. F¨ ur I, J ∈ Z , J = 0 schreibt man

N

I = ZQuo(I, J) ·J + ZRest(I, J)       Ganzzahliger Quotient

Ganzzahliger Rest

mit 0 ≤ ZRest(I, J) < |J| f¨ ur I ≥ 0 , −|J| < ZRest(I, J) ≤ 0 f¨ ur I < 0 . Durch die Vorzeichenwahl sind ZQuo(I, J) und ZRest(I, J) eindeutig. Die Rechner-Methode zur Langzahldivision ¨ ahnelt sehr der Methode beim Rechnen per Hand. Die einzige Schwierigkeit ist die Raterei“ beim ziffern” weisen Aufbau des Quotienten. Diese muss noch algorithmisch formuliert werden.

4.1 Ganze Zahlen

75

Die Zahlen I und J seien wieder in der Form I = (s , i0 , . . . , in−1 )β und J = (t , j0 , . . . , jm−1 )β gegeben, weiterhin sei Q := ZQuo(I, J) = (u , q0 , . . . , q−1 )β . Der Einfachheit halber betrachtet man vorerst nur positives I und J . Da der Quotient einer Zahl der β-L¨ ange 2 durch eine der L¨ ange 1 (double precision/single precision integer) u u¨blicherweise bereits zur Verf¨ gung steht, nimmt man als Tipp f¨ ur die Leitziffer q := q−1 des Quotienten Q die Zahl , + in−1 β + in−2 q ∗ := . jm−1 Ist diese gr¨oßer als β − 1 , so-erg¨ anzt uhren. man den Dividenden mit einer f¨ in−1 ∗ den Null, nimmt also q := jm−1 . Sorgt man vor der eigentlichen Division durch geeignetes Erweitern des Quotienten daf¨ ur, dass die Leitziffer jm−1 des Divisors J gr¨ oßer als die H¨alfte der Zahlbasis β ist, jm−1 ≥ " β2 # , so kann man zeigen, dass dieser Tipp q ∗ h¨ ochstens um 2 gr¨ oßer ist, als der wahre Wert q , also q ∈ {q ∗ , q ∗ − 1 , q ∗ − 2} . Hat man das richtige q durch Probieren aus q ∗ bestimmt, so berechnet man I  = I − q · J · β n−m = (s , i0 , . . . , in−2 )β ( in−2 k¨onnte hier ausnahmsweise entgegen der fr¨ uher getroffenen Vereinbarung verschwinden, vgl. 2. Schritt im folgenden Beispiel). Als Tipp f¨ ur die n¨achste Ziffer q := q−2 nimmt man nun ,  +  in−2 β + in−3 ∗ q := min ,β − 1 . jm−1 ochstens um 2 gr¨ oßer als der wahre Wert q . So Auch dieses q ∗ ist h¨ verf¨ahrt man rekursiv weiter. Bevor bewiesen wird, dass das alles wirklich so geht, ein einf¨ uhrendes Beispiel zu diesem so genannten Pope-Stein Divisions-Algorithmus [PSt]: 4.1.4.1 Beispiel: Es seien β = 10 , I = 4561238 und J = 222 . Durch Erweitern mit d = 3 erh¨ alt man 13683714 und 666 , also wie gefordert 6 ≥ " β2 # = 5 . Damit ist q ∗ = " 13 6 # = 2 , was wegen 1368 − 2 · 666 = 36 > 0 richtig ist (w¨ are q ∗ zu groß gewesen, so h¨atte man hier ein negatives Ergebnis bekommen); es ist also q = 2 usw.: 13683714 : 666 =20. . . 1332 q∗ = 2 0363 0000 q∗ = 0 3637

76

4 Grundlegende algebraische Strukturen

Bis dahin verl¨ auft die Rechnung also genauso wie gewohnt. Jetzt ergibt sich allerdings wegen q ∗ = " 36 atzung, 6 # = 6 eine falsche Sch¨ denn 3637 − 6 · 666 = −359 < 0 , d.h. q ∗ ist zu groß. Wegen −359 + 666 = 307 > 0 sieht man aber, dass q = q ∗ − 1 = 5 zum Ziel f¨ uhrt. Der Rest der Rechnung verl¨ auft wieder wie gewohnt und man erh¨alt 13683714 : 666 = 20546 Rest 78 bzw. 4561238 : 222 = 20546 Rest 78 3 = 26 . Nun zur Begr¨ undung der einzelnen Rechenschritte des Pope-Stein-Algorithmus ( I , J , Q bzw. q und q ∗ wie oben definiert): 4.1.4.2 Satz:

Mit den eingef¨ uhrten Bezeichnungen gilt . - . β   ) ⇒ β2 ≤ jm−1 0.

5.3 Pollard-(p − 1)

177

Diesen Wert erh¨ alt man, indem man f¨ ur alle m verschiedenen Primzahlen q1 < q2 < . . . < qm ≤ S jeweils die gr¨ oßte Primzahlpotenz Qi = qiαi ≤ S bestimmt. Es ist m  k= Qi . i=1

Dann w¨ahlt man eine beliebige ganze Zahl g > 1 mit ggT(g, N ) = 1 . Wenn p ein Primteiler von N ist, f¨ ur den p − 1 ein Teiler von k ist, dann gilt mit dem Satz von Fermat g k ≡ 1 mod p . Also ist p Teiler von g k − 1 bzw. von g k − 1 mod N , und damit ist d = ggT(g k − 1 mod N, N ) ein (trivialer oder nichttrivialer) Teiler von N . Es ist nicht n¨ otig, k explizit auszumultiplizieren. Setzt man R0 = g Qi und berechnet f¨ ur i = 1, 2, . . . , m die Werte Ri = Ri−1 mod N , so erh¨ alt k man Rm = g mod N . Diese Potenzen modulo N lassen sich sehr schnell mit dem im vorigen Abschnitt angegebenen Algorithmus ModPot berechnen. Es seien pj ein Primteiler von N , und g ein Element der multiplikativen Gruppe Z∗pj mit ord(g) = sj . Dann ist sj Teiler der Gruppenordnung |Z∗pj | = pj − 1 , und es gilt g sj ≡ 1 mod pj . Der Primteiler pj erscheint genau dann als Teiler des Ergebnisses d , wenn g k ≡ 1 mod pj ist, also wenn sj ein Teiler von k ist pj |d ⇐⇒ ordZ∗p (g)|k . j

oßer ist die Je mehr Teiler die Gruppenordnung pj − 1 besitzt, desto gr¨ Wahrscheinlichkeit, dass sj wesentlich kleiner als pj − 1 ist und der Teiler pj von N auch bei relativ niedriger Schranke S gefunden werden kann. Pollard-(p − 1)-Algorithmus procedure PolP1(N, S) # Eingabe: N und ein S > 0 , R0 ← g mit g > 1 und ggT(g, N ) = 1 # Ausgabe: Faktor d von N (u.U d = N ) q1 < . . . < qm ← alle Primzahlen ≤ S # # for i from 1 to m do Bestimme αi bzw. Qi mit Qi = qiαi ≤ S und qi Qi > S . Ri ← ModPot(Ri−1 , Qi , N ) end do Return(ggT(Rm − 1, N )) end

Man erh¨alt die trivialen Ergebnisse d = 1 bzw. d = N , wenn die Ordnungen sj von g in den Gruppen Z∗pj f¨ ur keinen bzw. f¨ ur alle Primteiler pj von N Teiler von k sind. Es besteht daher nach einem trivialen Ergebnis die Chance, dass der Algorithmus mit einem anderen Wert f¨ ur g erfolgreicher ist.

178

5 Faktorisierung ganzer Zahlen

5.3.1.2 Beispiel: F¨ ur die ersten 10 Primzahlen pj > 400 , j = 1, . . . , 10 sind in der folgenden Tabelle die Faktorisierungen der Ordnungen pj − 1 der Gruppen Z∗pj angegeben und f¨ ur die Werte g = 2, 3, 5 die Faktorisierungen der Ordnungen ord (g) in diesen Gruppen. j 1 2 3 4 5 6 7 8 9 10

pj 401 409 419 421 431 433 439 443 449 457

Z∗p |

∗ ∗ ∗

∗ ∗

pj − 1 = | 24 · 52 23 · 3 · 17 2 · 11 · 19 22 · 3 · 5 · 7 2 · 5 · 43 24 · 33 2 · 3 · 73 2 · 13 · 17 26 · 7 23 · 3 · 19

j

∗ ∗ ∗ ∗ ∗ ∗

ord(2) 23 · 52 23 · 3 · 17 2 · 11 · 19 22 · 3 · 5 · 7 43 23 · 32 73 2 · 13 · 17 25 · 7 22 · 19

∗ ∗ ∗

∗ ∗

ord(3) 24 · 52 23 · 3 · 17 11 · 19 3·5·7 43 33 2 · 73 13 · 17 26 · 7 22 · 3 · 19

∗ ∗ ∗

∗ ∗ ∗

ord(5) 52 23 · 3 · 17 19 2·3·5·7 5 · 43 24 · 33 3 · 73 2 · 13 · 17 2·7 23 · 19

W¨ahlt man S = 20 , so ist k = 24 · 32 · 5 · 7 · 11 · 13 · 17 · 19. Die faktorisierten Ordnungen, die dieses k teilen, sind in der Tabelle mit einem Stern gekennzeichnet. F¨ ur die folgende Werte von N und g gibt der Algorithmus aus:

N1 N2 N3 N4 N5

= 409 · 433 = 177097 = 401 · 449 = 180049 = 419 · 421 = 176399 = 409 · 443 = 181187 = 401 · 439 = 176039

g=2 d = N1 d=1 d = N3 d = N4 d=1

g=3 d = 409 d=1 d = N3 d = N4 d=1

g=5 d = 409 d = 449 d = N3 d = N4 d=1

An den Beispielen von N1 und N2 kann man erkennen, dass der Algorithmus mit verschiedenen Werten g verschieden erfolgreich sein kann. F¨ ur N3 und N4 ist das Ergebnis immer trivial, da in beiden F¨ allen f¨ ur jeweils beide Primteiler die zugeh¨ orige Gruppenordnung pj − 1 Teiler von k ist. Im Fall von N3 kann der Teiler 421 gefunden werden, indem man die Schranke S absenkt und den Algorithmus noch einmal wiederholt: F¨ ur S = 10 ist beispielsweise k = 23 · 32 · 5 · 7 . Im Fall N4 nutzt auch ein Absenken von S nichts, weil beide Gruppenordnungen pj − 1 denselben gr¨ oßten Teiler 17 haben. Und im Fall N5 h¨ atte man den Teiler 401 mit einer h¨oheren Schranke S gefunden, z.B. mit S = 30 . F¨ ur den Fall, dass man das triviale Ergebnis N = 1 erhalten hat, schlagen J. M. Pollard und P. L. Montgomery in [Po1] und [Mon] eine relativ aufw¨andige zweite Stufe f¨ ur den Pollard-(p − 1)-Algorithmus vor, die mit Fourier-Transformationen arbeitet. Sie soll speziell solche Primteiler p von N finden, f¨ ur die p − 1 = uv ist, wobei u ein Teiler von k ist und v eine Primzahl zwischen S und einer gr¨ oßeren Schranke S  .

5.4 Elliptic Curve Method (ECM)

179

In vorhergehenden Beispiel k¨ onnte mit einer solchen zweiten Stufe der Teiler 439 von N5 gefunden werden. Im Fall N2 w¨ urde sie dagegen keinen Erfolg bringen, da beide Gruppenordnungen keine solchen großen Primteiler zwischen S und S  besitzen. Eine andere Variation l¨ auft einfach darauf hinaus, die Schranke S recht hoch zu w¨ahlen und den ggT mehrmals zwischendurch zu berechnen, anstatt nur einmal zum Schluß. Dies sollte aber auch nicht zu h¨ aufig geschehen, da ggT-Berechnungen verh¨ altnism¨ aßig zeitaufw¨ andig sind. In Maple wurde dies besonders geschickt implementiert. Dort ist die Schranke S = 2000 fest gew¨ ahlt. Dadurch kann bei den einzelnen Funktionsaufrufen die Zeit f¨ ur das Bestimmen der Primzahlen qi ≤ S und ihrer Potenzen qiαi gespart werden. Man hat jeweils mehrere Potenzen qiαi in einem Produkt Pl zusammengefaßt und diese 52 großen Produkte direkt in den Programmcode geschrieben. Pl Nach jeder Berechnung von Rl = Rl−1 wird d = ggT(Rl −1, N ) berechnet. Man bricht den Algorithmus ab, sobald f¨ ur ein l > 0 ein nichttriviales Ergebnis 1 < d < N auftritt. Erh¨ alt man jedoch d = N f¨ ur ein l > 0 , so geht man zur¨ uck zum letzten Wert Rl−1 und potenziert ihn dieses Mal in kleineren Schritten, n¨ amlich mit jedem einzelnen Primteiler von Pl , und berechnet dabei nach jeder Potenz den ggT . 5.3.2 Aufwandsabsch¨ atzung Die Anzahl m der Iterationen im Pollard-(p−1)-Algorithmus ist die Anzahl von Primzahlen kleiner oder gleich der Schranke S , also O( logS S ) . √ Die Werte Qi liegen alle in dem Intervall [ S, S] . Bei der Berechnung Qi von Ri−1 mod N mit dem Algorithmus ModPot werden log Qi = O(log S) Iterationsschritte durchgef¨ uhrt, in denen jeweils eine oder zwei Multiplikationen modulo N stattfinden. Insgesamt werden also O(log S logS S ) = O(S) Multiplikationen modulo N durchgef¨ uhrt. Damit gilt f¨ ur die maximale zeitliche Komplexit¨ at des Pollard-(p − 1)-Algorithmus◦ Op[d ← PolP1(N, S)](N, S) S log2 N ∼ S · n2 .

5.4 Elliptic Curve Method (ECM) 5.4.1 Pollard-(p − 1) und ECM Der im letzten Abschnitt angegebene Satz von Fermat lautet allgemeiner 5.4.1.1 Satz: (Fermat) Ist G eine endliche Gruppe mit der Ordnung ur jedes |G| = m und dem neutralen Element e , so ist g m = e f¨ g ∈ G . (Analog dazu m · g = e bei additiver Schreibweise.) ◦

Dabei h¨ angt S von n ab, wenn eine gewisse Erfolgschance vorgegeben wird.

180

5 Faktorisierung ganzer Zahlen

Es sei wieder p ein Primteiler von N . Bei dem Pollard-(p − 1)Algorithmus wurde dieser Satz auf die multiplikative Gruppe Z∗p angewandt. Die Ordnung dieser Gruppe ist p − 1 . Wenn g ∈ Z∗p und die Gruppenordnung p − 1 Teiler einer ganzen Zahl k ist, dann ist in dieser Gruppe g k gleich dem neutralen Element 1 . Deshalb ist p Teiler von ggT (g k − 1, N ) . Im Jahr 1987 ver¨ offentlichte H. W. Lenstra in [Le6] eine zu Pollard-(p−1) analoge Faktorisierungsmethode namens Elliptic Curve Method (ECM). Sie verwendet statt Z∗p eine additive Gruppe von Punkten auf einer zuf¨ alligen elliptischen Kurve E mit Koordinaten in Zp . Diese Gruppe E(Zp ) besitzt die Ordnung p + 1 − t , wobei t eine von E und p abh¨ angige ganze Zahl √ mit |t| ≤ 2 p ist. Das neutrale Element von E(Zp ) ist der Punkt (0 : 1 : 0) . Wenn die Gruppenordnung p + 1 − t die ganze Zahl k teilt, so gilt f¨ ur jeden Punkt P dieser Gruppe k · P = (0 : 1 : 0) . Auch bei ECM wird modulo N statt modulo p gerechnet. F¨ ur die dritte Koordinate Z von k · P gilt dann Z ≡ 0 mod p und mit ggT (Z, N ) l¨ asst sich ein Teiler von N finden. Pollard-(p − 1) versagt, wenn die Gruppenordnung p − 1 die Zahl k nicht teilt, etwa weil einer der Primteiler von p − 1 zu groß ist. Der Vorteil von ECM besteht darin, dass der Algorithmus bei einem Misserfolg mit einer anderen Kurve E wiederholt werden kann. Zu einer anderen elliptische Kurve geh¨ort auch ein anderer Wert t , so dass f¨ ur die Gruppenordnung p+1−t eine neue Chance besteht, aus kleinen Primzahlen zusammengesetzt zu sein. 5.4.2 Die Geometrie elliptischer Kurven 5.4.2.1 Definition:

F¨ ur die beiden Parameter a, b ∈ R gelte 4a3 + 27b2 = 0.

(5.1)

Die elliptische Kurve Ea,b sei definiert als die Menge aller Punkte (x, y) ∈ R2 , welche der folgenden Weierstraß-Gleichung gen¨ ugen y 2 = x3 + ax + b .

(5.2)

aren Punkt. Die implizite Die elliptische Kurve Ea,b besitzt keinen singul¨ Schreibweise von Ea,b ist F (x, y) = y 2 −x3 −ax−b = 0 . Ein Punkt (x0 , y0 ) dieser Kurve ist genau dann singul¨ ar, wenn beide partiellen Ableitungen Fx (x0 , y0 ) = Fy (x0 , y0 ) = 0 sind. = 0 Fx (x, y) = −3x2 − a = 0 ⇐⇒ 3x2 + a Fy (x, y) = 2y = 0 ⇐⇒ x3 + ax + b = 0 Die beiden Polynome 3x2 + a und x3 + ax + b haben genau dann eine gemeinsame Wurzel in C , wenn ihre Resultante gleich Null ist.

5.4 Elliptic Curve Method (ECM)

181

res(3x2 + a, x3 + ax + b) = 4a3 + 27b2 = 0 . aren Punkte. Wegen Bedingung (5.1) besitzt die Kurve Ea,b keine singul¨ Graphen elliptischer Kurven sehen etwa wie folgt aus:

E−3,3 : y 2 = x3 − 3x + 3

E−3,0 : y 2 = x3 − 3x

Die Kurve Ea,b besitzt in jedem Punkt eine eindeutig bestimmte Tangente. Der folgende Satz besagt, dass jede nicht-senkrechte Gerade, die eine solche elliptische Kurve in zwei Punkten schneidet, sie auch noch in einem dritten Punkt schneidet, wenn man den Ber¨ uhrungspunkt einer Tangente als doppelten Schnittpunkt z¨ ahlt. 5.4.2.2 Satz: Gegeben seien zwei Punkte P1 = (x1 , y1 ) und P2 = (x2 , y2 ) auf der elliptischen Kurve Ea,b mit (x1 , y1 ) = (x2 , −y2 ) . G sei die Gerade, die Ea,b in den beiden Punkten P1 und P2 schneidet bzw. ber¨ uhrt, sofern P1 = P2 ist. Dann gilt f¨ ur die Stei 2 gung λ von G 3x1 +a , f¨ ur x1 = x2 , 1 λ = y12y −y2 , f¨ u r x1 = x2 , x1 −x2 und der Punkt P3 = (x3 , y3 ) , definiert durch x3 = λ2 − x1 − x2 , y3 = λ(x3 − x1 ) + y1 = λ(x3 − x2 ) + y2 ist ein weiterer Schnittpunkt von G mit Ea,b . Beweis: Wenn x1 = x2 ist, so ist λ=

y1 − y 2 x1 − x2

die Steigung der Geraden G . Setzt man P1 und P2 jeweils in (5.2) ein und zieht die beiden Gleichungen voneinander ab, so erh¨ alt man y12 − y22 = x31 − x32 + a(x1 − x2 ) ⇒ (y1 − y2 )(y1 + y2 ) = (x1 − x2 )(x21 + x1 x2 + x22 + a).

Das l¨asst sich umformen in λ=

y1 − y 2 x2 + x1 x2 + x22 + a = 1 . x1 − x2 y 1 + y2

(∗)

182

5 Faktorisierung ganzer Zahlen

Wenn man nun P2 gegen P1 gehen l¨ asst, erh¨ alt man   Fx (x1 , y1 ) 3x21 + a =− λ= 2y1 Fy (x1 , y1 ) als Steigung der Tangente G , die Ea,b in P1 = P2 ber¨ uhrt. Die Geradengleichung von G ist daher y = λx + µ . Es sei P3 = (x3 , y3 ) ebenfalls ein Schnittpunkt von G und Ea,b . Dann folgt aus (∗) f¨ ur die Punkte-Paare (P3 , P1 ) und (P3 , P2 ) . λ(y3 + y1 ) = x23 + x3 x1 + x21 + a, λ(y3 + y2 ) = x23 + x3 x2 + x22 + a. Voneinander abgezogen ergibt das λ(y1 − y2 ) = x3 (x1 − x2 ) + (x21 − x22 ). Wenn x1 = x2 ist, kann man durch x1 − x2 teilen und erh¨ alt dadurch λ2 = x3 + x1 + x2 . Es folgt x3 = λ2 − x1 − x2 . Setzt man P1 , P2 und P3 in die Geradengleichung ein, so erh¨ alt man y1 = λx1 + µ, y2 = λx2 + µ, y3 = λx3 + µ und daraus folgt y3 = λ(x3 − x1 ) + y1 = λ(x3 − x2 ) + y2 . F¨ ur x1 = x2 gilt y3 = λx3 + (y1 − λx1 ) und y33 = x33 + ax3 + b . Einsetzen der ersten Gleichung in die zweite und des oben f¨ ur diesen Fall berechneten λ liefert (x1 − x3 )2 · (−x41 + 4x3 x31 + 2x21 a + 8x1 b + 4x1 ax3 + 4x3 b − a2 ) = 0 4y12 mit den L¨osungen x1 = x3 oder wie im ersten Fall x3 = −

−x41 + 2x21 a + 8x1 b − a2 = λ2 − x1 − x2 . 4x31 + 4ax1 + 4b

E−3,3 : y 2 = x3 − 3x + 3

E−3,0 : y 2 = x3 − 3x



5.4 Elliptic Curve Method (ECM)

183

Wenn die Punkte (x1 , y1 ) und (x2 , y2 ) rationale Koordinaten besitzen, so gilt das also auch auch f¨ ur den dritten Schnittpunkt (x3 , y3 ) . F¨ ur den Faktorisierungsalgorithmus soll mit der Menge der rationalen Punkte von Ea,b eine Gruppe konstruiert werden. Als Verkn¨ upfung definiert man hierf¨ ur eine Addition, welche die zwei Punkte (x1 , y1 ) und (x2 , y2 ) auf den Punkt (x3 , −y3 ) abbildet, also auf den an der x -Achse gespiegelten dritten Schnittpunkt. In dem im Satz ausgeschlossenen Fall (x1 , y1 ) = (x2 , −y2 ) w¨ are die Gerade G senkrecht. Als dritten Schnittpunkt k¨ onnte man sich hier einen Punkt unendlich weit im Norden vorstellen, der von jeder senkrechten Geraden geschnitten wird. Dieser Punkt soll mit (∞, ∞) bezeichnet werden. 5.4.2.3 Definition: Es sei Ea,b (Q) die Menge aller rationalen Punkte auf der Kurve Ea,b vereinigt mit (∞, ∞) , also Ea,b (Q) = {(x, y); y 2 = x3 + ax + b und x, y ∈ Q} ∪ {(∞, ∞)}. Auf Ea,b (Q) sei eine Addition * Ea,b (Q) × Ea,b (Q) → Ea,b (Q), +: ((x1 , y1 ), (x2 , y2 )) → (x1 , y1 ) + (x2 , y2 ) definiert durch: (i) (x, y) + (∞, ∞) = (∞, ∞) + (x, y) = (x, y) f¨ ur alle (x, y) ∈ Ea,b (Q) . (ii) F¨ ur (x1 , y1 ) = (∞, ∞) und (x2 , y2 ) = (∞, ∞) ist * (∞, ∞), f¨ ur (x1 , y1 ) = (x2 , −y2 ), (x1 , y1 ) + (x2 , y2 ) = (x3 , y3 ), f¨ ur (x1 , y1 ) = (x2 , −y2 ), mit

x3 = λ2 − x1 − x2 , y3 = λ(x1 − x3 ) − y1 = λ(x2 − x3 ) − y2 ,

(3x2 +a) 1 f¨ ur (x1 , y1 ) = (x2 , y2 ), 1) λ = (y(2y 1 −y2 ) f¨ ur (x1 , y1 ) = (x2 , y2 ). (x1 −x2 )

Die Menge Ea,b (Q) bildet mit dieser Addition eine abelsche Gruppe (zum Beweis siehe etwa [Si1]). In dieser Gruppe ist (∞, ∞) das neutrale Element, das Inverse von (x, y) ist (x, −y) . Setzt man x = X/Z und y = Y /Z mit X, Y, Z ∈ Z , Z = 0 in Gleichung (5.2) ein und multipliziert beide Seiten mit Z 3 , so erh¨ alt man Y 2 Z = X 3 + aXZ 2 + bZ 3 .

(5.3)

184

5 Faktorisierung ganzer Zahlen

Jede ganzzahlige L¨ osung (X, Y, Z) ∈ Z3 dieser Gleichung, bei der Z = 0 ist, entspricht einem Punkt (x, y) ∈ Ea,b (Q) mit den rationalen Koordinaten x = X/Z und y = Y /Z , w¨ ahrend die L¨ osung (0, 1, 0) dem unendlichen Punkt (∞, ∞) ∈ Ea,b (Q) zugeordnet werden kann. Zwei L¨ osungen (X, Y, Z) und (X  , Y  , Z  ) repr¨ asentieren genau dann denselben Punkt in Ea,b (Q) , wenn es ein c ∈ Z \ {0} gibt, so dass (X  , Y  , Z  ) = (cX, cY, cZ) . Berechnet man die Koordinaten von (X, Y, Z) jeweils modulo einer Primzahl p und definiert auch die Addition entsprechend, so erh¨ alt man eine Gruppe mit endlicher Ordnung, welche nun definiert werden soll. 5.4.2.4 Definition: Es sei p > 3 eine Primzahl. Zwei Tripel (X, Y, Z) und (X  , Y  , Z  ) aus Z3p \ (0, 0, 0) werden ¨aquivalent genannt, wenn es ein c ∈ Z∗p gibt, so dass (X  , Y  , Z  ) = (cX, cY, cZ) ist. ¨ Die Aquivalenzklasse, die (X, Y, Z) enth¨ alt, wird mit (X : Y : Z) ¨ bezeichnet, und die Menge P2 (Zp ) aller dieser Aquivalenzklassen wird als projektive Ebene u ¨ber Zp bezeichnet. F¨ ur a, b ∈ Zp mit 4a3 + 27b2 ≡ 0 mod p sei Ea,b (Zp ) definiert durch Ea,b (Zp ) = {(X : Y : Z) ∈ P2 (Zp ) : Y 2 Z ≡ X 3 + aXZ 2 + bZ 3 mod p}. Ea,b (Zp ) wird auch als elliptische Kurve modulo p bezeichnet mit den Punkten (X : Y : Z) . Insbesondere nennt man O = (0 : 1 : 0) ∈ Ea,b (Zp ) den Nullpunkt der Kurve. Der Punkt O = (0 : 1 : 0) ist der einzige in Ea,b (Zp ) , bei dem die dritte Koordinate Z = 0 ist. In jeder anderen Klasse (X : Y : Z) ∈ Ea,b (Zp ) gibt es genau einen Repr¨ asentanten (X  : Y  : 1) , denn Z ∈ Z∗p und es gilt −1 (X : Y : Z) = (XZ : Y Z −1 : 1) = (X  : Y  : 1) . asentanten erf¨ ullen die KonDie Koordinaten X  und Y  dieses Repr¨ 2 3 gruenz Y  ≡ X  + aX  + b mod p . Hierbei ist mit Z −1 das Inverse von Z in Z∗p gemeint. Mit der Existenz eines solchen Repr¨ asentanten (X  : Y  : 1) in jeder Klasse außer O ist folgende Definition einer Addition m¨ oglich: 5.4.2.5 Definition:

Auf der Menge Ea,b (Zp ) sei eine Addition * Ea,b (Zp ) × Ea,b (Zp ) → Ea,b (Zp ), +: (P, Q) → P + Q

definiert durch: (i) P + O = O + P = P f¨ ur alle P ∈ Ea,b (Zp ) . (ii) F¨ ur P = (X1 : Y1 : 1) und Q = (X2 : Y2 : 1) mit P, Q = O ist * O f¨ ur (X1 : Y1 : 1) = (X2 : −Y2 : 1), P +Q = R = (X3 : Y3 : 1) sonst mit X3 , Y3 , λ ∈ Zp bestimmt durch

5.4 Elliptic Curve Method (ECM)

X3 ≡ (λ2 − X1 − X2 ) mod p,

*

λ≡

(3X12

185

Y3 ≡ (λ(X1 − X3 ) − Y1 ) mod p,

−1

+ a)(2Y1 ) mod p (X1 : Y1 : 1) = (X2 : Y2 : 1), sonst. (Y1 − Y2 )(X1 − X2 )−1 mod p

Bei der Definition von λ ist mit (X1 − X2 )−1 bzw. (2Y1 )−1 wiederum das jeweilige Inverse in Z∗p gemeint. Analog zu der Gruppe Ea,b (Q) bildet auch die Menge Ea,b (Zp ) mit der darauf definierten Addition eine abelsche Gruppe (siehe [Si1]). Das neutrale Element dieser Gruppe ist O = (0 : 1 : 0) , und das Inverse von (X : Y : Z) ist −(X : Y : Z) = (X : −Y : Z) . Zur Ordnung dieser Gruppe hat Helmut Hasse im Jahre 1934 den folgenden Satz bewiesen (f¨ ur einen Beweis siehe etwa [Si1]): 5.4.2.6 Satz:

(Hasse) Die Gruppe Ea,b (Zp ) hat die Ordnung |Ea,b (Zp )| = p + 1 + t ,

√ wobei t ∈ N von a , b und p abh¨angig ist mit |t| < 2 p . Weiter bewies William Waterhouse 1969 in [Wat]: 5.4.2.7 Satz: Wenn p > 3 eine Primzahl ist und t eine beliebige ganze √ Zahl mit |t| < 2 p , dann existieren Parameter a, b ∈ Zp , so dass |Ea,b (Zp )| = p + 1 + t. Außerdem sind die Ordnungen der elliptischen Kurven modulo p √ √ ziemlich gleichm¨aßig u ¨ ber das Intervall ]p + 1 − 2 p, p + 1 + 2 p[ verteilt. 5.4.2.8 Beispiel: Die Punkte mit Z = 1 der elliptische Kurve E−3,0 (Z5 ) sind gegeben durch die Gleichung Y 2 ≡ X 3 −3X mod 5 . Die einzige L¨osung dieser Gleichung ist X = 0 = Y , d.h. der Punkt (0 : 0 : 1) . Ansonsten liegt nur noch der Punkt (0 : 1 : 0) auf der Kurve, es gilt also |E−3,0 (Z5 )| = 2 und damit t = −4 . √ Wegen 2 5 ≈ 4.47 ist dies der kleinstm¨ ogliche Wert f¨ ur t und 2 der kleinste Wert f¨ ur |Ea,b (Z5 )| . Die Kurve E−3,3 (Z5 ) besteht dagegen aus den 7 Punkten (1 : 1 : 1) , (1 : 4 : 1) , (2 : 0 : 1) , (3 : 1 : 1) , (3 : 4 : 1) , (4 : 0 : 1) , (0 : 1 : 0) (f¨ ur Z = 1 gilt Y 2 ≡ X 3 − 3X + 3 mod 5 ; zu den L¨osungen hiervon kommt noch der Punkt (0 : 1 : 0) dazu), d.h. es ist t = 1 . 5.4.3 Multiplikation von Kurvenpunkten mit Skalaren F¨ ur einen Punkt P ∈ Ea,b (Q) bzw. P ∈ Ea,b (Zp ) und eine nat¨ urliche Zahl n ∈ N sei der Punkt n · P ∈ Ea,b (Q) bzw. n · P ∈ Ea,b (Zp ) wie u ¨blich bestimmt durch n · P = P + . . . + P (n-mal) .

186

5 Faktorisierung ganzer Zahlen

Ist k ein Vielfaches der Gruppenordnung m = |Ea,b (Zp )| , so folgt mit dem Satz von Fermat k · P = O f¨ ur jeden Punkt P ∈ Ea,b (Zp ) . F¨ ur die Berechnung von n · P soll nun eine schnelle Methode gefunden werden. 5.4.3.1 Satz:

F¨ ur (x1 , y1 ) ∈ Ea,b (Q) und jede Zahl n ∈

(xn , yn ) = n · (x1 , y1 ) = (x1 , y1 ) + . . . + (x1 , y1 )

N

sei (n- mal) .

Dann ist (x2i , y2i ) = (xi , yi ) + (xi , yi ) und (x2i+1 , y2i+1 ) = (xi , yi ) + (xi+1 , yi+1 ) f¨ ur ein bestimmtes i ∈ . Ist (xi , yi ) = (∞, ∞) und yi = 0 , so gilt

N

x2i =

(x2i − a)2 − 8bxi . 4(x3i + axi + b)

(5.4)

Sind (xi , yi ), (xi+1 , yi+1 ) = (∞, ∞) sowie x1 = 0 und xi = xi+1 , so gilt (a − xi xi+1 )2 − 4b(xi + xi+1 ) x2i+1 = . (5.5) x1 (xi − xi+1 )2 Beweis: Wegen yi = 0 ist (xi , yi ) = (xi , −yi ) . Damit folgt Gleichung (5.4) direkt aus der Definition der Addition: (3x2i + a)2 − 2xi (2yi )2 (3x2i + a)2 − 2xi · 4(x3i + axi + b) (x2 − a)2 − 8bxi = = i 3 . 3 4(xi + axi + b) 4(xi + axi + b)

x2i = λ2 − 2xi =

Unter den f¨ ur (5.5) angegebenen Voraussetzungen gilt x2i+1 =

(yi − yi+1 )2 − xi − xi+1 . (xi − xi+1 )2

Daraus erh¨alt man x2i+1 (xi − xi+1 )2 = (yi − yi+1 )2 − (xi + xi+1 )(xi − xi+1 )2 = = −2yi yi+1 + 2b + (a + xi xi+1 )(xi + xi+1 ).

(5.6)

Wegen xi = xi+1 ist auch (x1 , y1 ) = (xi+1 , yi+1 ) + (xi , −yi ) = (∞, ∞) . Analog zu (5.6) gilt daher x1 (xi − xi+1 )2 = 2yi yi+1 + 2b + (a + xi xi+1 )(xi + xi+1 ).

(5.7)

Multipliziert man Gleichung (5.6) mit (5.7), so ergibt das x1 x2i+1 (xi − xi+1 )4 = = (2b + (a + xi xi+1 )(xi + xi+1 ))2 − 4(x3i + axi + b)(x3i+1 + axi+1 + b) = = ((a − xi xi+1 )2 − 4b(xi + xi+1 ))(xi − xi+1 )2 .

5.4 Elliptic Curve Method (ECM)

187

Wenn man beide Seiten durch x1 (xi − xi+1 )4 teilt, folgt daraus f¨ ur x1 = 0 die zweite Gleichung der Behauptung.  Die f¨ ur Ea,b (Q) gezeigten Formeln lassen sich auf Ea,b (Zp ) u ¨bertragen. Da man bei der Faktorisierung von N im Grunde nur an der dritten Koordinate des Punktes k · P interessiert ist, ist es vollkommen ausreichend, wenn im folgenden Satz nur Formeln f¨ ur die erste und die dritte Koordinate angegeben werden.

N

5.4.3.2 Satz: F¨ ur (X1 : Y1 : Z1 ) ∈ Ea,b (Zp ) und jede Zahl n ∈ sei (Xn : Yn : Zn ) := n · (X1 : Y1 : Z1 ) . Ist Yi ≡ 0 mod p f¨ ur i ∈ , so gilt X2i ≡ (Xi2 − aZi2 )2 − 8bXi Zi3 mod p, Z2i ≡ 4Zi (Xi3 + aXi Zi2 + bZi3 ) mod p.

N

(5.8)

−1 mod p gilt F¨ ur X1 ≡ 0 mod p und Xi Zi−1 ≡ Xi+1 Zi+1

X2i+1 ≡ Z1 [(Xi Xi+1 − aZi Zi+1 )2 − 4bZi Zi+1 (Xi Zi+1 + Xi+1 Zi )] mod p, (5.9) Z2i+1 ≡ X1 (Xi+1 Zi − Xi Zi+1 )2 mod p. Beweis: (Xi : Yi : Zi ) , (Xj : Yj : Zj ) und deren Summe (Xk : Yk : Zk ) seien Punkte aus Ea,b ( p ) \ {O} . Dann gibt es in Ea,b ( ) \ {(∞, ∞)} Xj Yj Yi i entsprechende Punkte ( X Zi , Zi ) und ( Zj , Zj ) mit der Summe (Zi+j = 0)       Xj Yj Xi+j Yi+j Xi Yi + = mit Xi+j , Yi+j , Zi+j ∈ , , , , Zi Zi Zj Zj Zi+j Zi+j

Z

Q

Z

und es gilt (Xk : Yk : Zk ) = (Xi+j mod p : Yi+j mod p : Zi+j mod p) . F¨ ur (Xi : Yi : Zi ) = O und Yi ≡ 0 mod p folgen daher die Formeln (5.8) aus (5.4): i (( Xi )2 − a)2 − 8b( X X2i (Xi2 − aZi2 )2 − 8bXi Zi3 Zi ) = = ZiXi 3 . X i 4Zi (Xi3 + aXi Zi2 + bZi3 ) Z2i 4(( Zi ) + a( Zi ) + b)

Aber auch f¨ ur (Xi : Yi : Zi ) = O liefern diese Formeln das richtige Ergebnis X2i = Z2i = 0 . Unter den Voraussetzungen (Xi : Yi : Zi ), (Xi+1 : −1 Yi+1 : Zi+1 ) = O , X1 ≡ 0 mod p und Xi Zi−1 ≡ Xi+1 Zi+1 mod p folgen die Formeln (5.9) aus (5.5): Xi+1 Xi i Xi+1 2 (a − X X2i+1 Zi Zi+1 ) − 4b( Zi + Zi+1 ) = = Xi+1 2 X1 Xi Z2i+1 Z1 ( Zi − Zi+1 ) =

Z1 [(Xi Xi+1 − aZi Zi+1 )2 − 4bZi Zi+1 (Xi Zi+1 + Xi+1 Zi )] . X1 (Xi+1 Zi − Xi Zi+1 )2

In den F¨allen (Xi : Yi : Zi ) = O oder (Xi+1 : Yi+1 : Zi+1 ) = O erh¨ alt man ebenfalls das richtige Ergebnis X2i+1 ≡ Z2i+1 ≡ 0 mod p . 

188

5 Faktorisierung ganzer Zahlen

F¨ ur P1 = (X1 : Y1 : Z1 ) = O sollen die Punkte Pn = (Xn : Yn : Zn ) = n · P1 f¨ ur n = 2, 3, . . . mit den Formeln (5.8) und (5.9) berechnet werden. Die ersten Formeln gelten nicht f¨ ur Yi ≡ 0 mod p , und die zweiten −1 nicht f¨ ur X1 ≡ 0 mod p bzw. Xi Zi−1 ≡ Xi+1 Zi+1 mod p . Welche Fehler und Folgefehler treten auf, wenn man sie trotzdem anwendet? Aus Yi ≡ 0 mod p folgt P2i = O . Das richtige Ergebnis w¨ are also in diesem Fall X2i ≡ Z2i ≡ 0 mod p . Formel (5.8) liefert den korrekten Wert f¨ ur Z2i , aber m¨oglicherweise einen falschen Wert f¨ ur X2i (Xi3 + aXi Zi2 + 3 2 bZi ≡ Yi Zi ≡ 0 mod p aus der Kurvengleichung). −1 mod p bedeutet wegen der Symmetrie der zuXi Zi−1 ≡ Xi+1 Zi+1 −1 mod p . Wegen Pi = Pi+1 grundeliegenden Kurve Yi Zi−1 ≡ ±Yi+1 Zi+1 folgt P2i+1 = O . Formel (5.9) liefert hier ebenfalls den richtigen Wert Z2i+1 ≡ 0 mod p , aber einen m¨ oglicherweise falschen Wert f¨ ur X2i+1 . Diese beiden F¨ alle bieten f¨ ur die weiteren Berechnungen die gleiche Ausgangssituation. F¨ ur einen Punkt Pi = O rechnet man mit richtigem Zi ≡ 0 mod p und eventuell falschem Xi . Bei Anwendung der Formeln (5.8) erh¨alt man als Folge genau die selbe Situation. F¨ ur P2i = O ist Z2i ≡ 0 mod p richtig und X2i eventuell falsch. ur Pi = O und richtigen Werten f¨ ur Wendet man bei falschem Xi f¨ Pi+1 die Formeln (5.9) an, so erh¨ alt man 2 X2i+1 ≡ Z1 Xi2 Xi+1 mod p

und

2 Z2i+1 ≡ X1 Xi2 Zi+1 mod p .

−1 −1 Aus Pi = O folgt P2i+1 = Pi+1 = P1 bzw. X2i+1 Z2i+1 ≡ Xi+1 Zi+1 ≡ −1 X1 Z1 mod p . Wegen −1 2 −1 2 2 )(X1 Xi2 Zi+1 )−1 ≡ (Xi+1 Zi+1 ) (X1 Z1−1 )−1 ≡ Xi+1 Zi+1 mod p (Z1 Xi2 Xi+1

liefern die Formeln (5.9) also trotz falschem Xi die richtigen Werte f¨ ur X2i+1 und Z2i+1 . Analog l¨ asst sich dasselbe f¨ ur den Fall Pi+1 = O zeigen. Nun bleibt noch zu untersuchen, welche Auswirkung X1 ≡ 0 mod p hat f¨ ur P1 = O . F¨ ur P2 liefert (5.8) die richtigen Werte X2 ≡ a2 Z14 mod p

und

Z2 ≡ 4bZ14 mod p .

Mit (5.9) erh¨alt man daraus die m¨ oglicherweise falschen Werte X3 ≡ Z13 (a2 Z22 − 4bZ2 X2 ) ≡ 0 mod p

und

Z3 ≡ 0 mod p .

Ist aber erst einmal Xi ≡ Zi ≡ 0 oder Xi+1 ≡ Zi+1 ≡ 0 mod p f¨ ur irgendein i erreicht, so sind auch alle folgenden, mit den Formeln (5.8) und (5.9) daraus berechneten Werte X2i ≡ Z2i ≡ X2i+1 ≡ Z2i+1 ≡ 0 mod p .

5.4 Elliptic Curve Method (ECM)

189

5.4.3.3 Beispiel: Yi 2 Zi ≡ Xi 3 + 4Xi Zi 2 mod 5 i 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Pi Xi Zi (2 : 1 : 1) 2 1 (0 : 0 : 1) 0 4 (2 : 4 : 1) 1 3 (0 : 1 : 0) 1 ∗ 0 (2 : 1 : 1) 4 2 (0 : 0 : 1) 0 4 (2 : 4 : 1) 1 3 (0 : 1 : 0) 1 ∗ 0 (2 : 1 : 1) 1 3 (0 : 0 : 1) 0 4 (2 : 4 : 1) 4 2 (0 : 1 : 0) 1 ∗ 0 (2 : 1 : 1) 4 2 (0 : 0 : 1) 0 4 (2 : 4 : 1) 1 3 (0 : 1 : 0) 1 ∗ 0

Yi 2 Zi ≡ Xi 3 + 2Xi Zi 2 + Zi 3 mod 5 i 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Pi Xi Zi (0 : 4 : 1) 0 1 (1 : 2 : 1) 4 4 (3 : 2 : 1) 0 ∗ 0 ∗ (3 : 3 : 1) 3 1 (1 : 3 : 1) 0 ∗ 0 ∗ (0 : 1 : 1) 0 0 ∗ (0 : 1 : 0) 0 0 (0 : 4 : 1) 0 1 (1 : 2 : 1) 0 ∗ 0 ∗ (3 : 2 : 1) 0 ∗ 0 ∗ (3 : 3 : 1) 0 ∗ 0 ∗ (1 : 3 : 1) 0 ∗ 0 ∗ (0 : 1 : 1) 0 0 ∗ (0 : 1 : 0) 0 0 ∗ (0 : 4 : 1) 0 0 ∗ (1 : 2 : 1) 4 4

Die beiden Tabellen zeigen f¨ ur P1 = (2 : 1 : 1) ∈ E4,0 (Z5 ) bzw. P1 = (0 : 4 : 1) ∈ E2,1 (Z5 ) jeweils die Vielfachen Pi , wie sie aus Definition der Addition folgen, sowie daneben die Werte Xi und Zi , wie man sie mit den Formeln (5.8) und (5.9) erh¨ alt. Die falschen Werte sind durch Sternchen gekennzeichnet. Der Punkt P1 = (2 : 1 : 1) ∈ E4,0 (Z5 ) hat die Ordnung 4 . Daher ist jeder vierte Wert P4k = O . Wegen Y2 = 0 erh¨ alt man einen falschen Wert f¨ ur X4 und als Folgefehler falsche Werte f¨ ur alle weiteren X4k . Die Ordnung von P1 = (0 : 4 : 1) ∈ E2,1 (Z5 ) ist 7. Wegen X1 = 0 liefert (5.9) die falschen Werte X3 = Z3 = 0 , und als Folge davon erh¨ alt man f¨ ur alle weiteren i > 3 ebenfalls Xi = Zi = 0 , unabh¨angig davon, ob dies richtig oder falsch ist. Ausnahme sind hierbei die Werte f¨ ur i = 2k , k ∈ , da bei deren Berechnung ausschließlich (5.8) verwendet wird.

N

5.4.4 Der Faktorisierungsalgorithmus Es sei p > 3 ein Primteiler von N . Da p nicht bekannt ist, k¨ onnen die Koordinaten von n · (X1 : Y1 : Z1 ) = (Xn : Yn : Zn ) nur modulo N berechnet werden. Man verwendet analog zum vorhergehenden Satz die Duplikationsformeln 2 2 3  X2i ≡ (Xi − aZi )2 − 8bXi Zi mod N, (5.10) 3 2 3  ≡ 4Zi (Xi + aXi Zi + bZi ) mod N, Z2i

190

5 Faktorisierung ganzer Zahlen

bzw. die Additionsformeln       ≡ Z1 [(Xi Xi+1 − aZi Zi+1 )2 − 4bZi Zi+1 (Xi Zi+1 + Xi+1 Zi )] mod N, X2i+1    ≡ X1 (Xi+1 Zi − Xi Zi+1 )2 mod N. (5.11) Z2i+1

Dann gilt f¨ ur j = 2i, 2i + 1 unter den im letzten Satz genannten Voraussetzungen Xj ≡ Xj mod p und Zj ≡ Zj mod p. Missachtet man diese Voraussetzungen, so kann schlimmstenfalls gelten Xj ≡ Xj mod p

und Zj ≡ 0 mod p .

Wenn Zj ≡ 0 mod p ist, entweder weil ein Fehler aufgetreten ist oder wegen (Xj : Yj : Zj ) = (0 : 1 : 0) ∈ Ea,b (Zp ) , dann ist p Teiler von ggT (Zj , N ) . Wie bei Pollard-(p − 1) w¨ ahlt man eine ganze Zahl k , die aus m¨ oglichst vielen kleinen Primzahlen zusammengesetzt ist, etwa k = kgV(1, 2, . . . , S) f¨ ur eine bestimmte Schranke S . Wenn k ein Vielfaches der Gruppenordnung von Ea,b (Zp ) ist, dann gilt k · (X1 : Y1 : Z1 ) = (Xk : Yk : Zk ) = (0 : 1 : 0) mit dem Satz von Fermat. Bei entsprechender Berechnung modulo N ist in diesem Fall ggT (Zk , N ) mit großer Wahrscheinlichkeit ein nichttrivialer Teiler von N . Multiplikation mit Skalaren auf elliptischen Kurven

Z

procedure MulSkal(a, b, n, X, Z, N ) # Eingabe: a, b, n, X, Z, N ∈ , # n = (1 , n0 , . . . , n−1 )2 X1 ← X; Z1 ← Z; i ← 1 # Ausgabe: (Xn : Zn ) = n ∗ (X : Z) Berechne X2 und Z2 gem¨ aß (5.10) for j from 2 to  do if n−j =0 then Berechne X2i , Z2i gem¨ aß (5.10) Berechne X2i+1 , Z2i+1 gem¨ aß (5.11) i ← 2i else Berechne X2i+1 , Z2i+1 gem¨ aß (5.11) Berechne X2i+2 , Z2i+2 gem¨ aß (5.10) i ← 2i + 1 end if end do Return (Xn , Zn ) end

Der Algorithmus MulSkal berechnet die X - und Z -Koordinaten von k · (X : Y : Z) mit den Duplikations- und Additionsformeln. Die Y Koordinaten werden dazu nicht ben¨ otigt. Daher sei der durch X und Z repr¨asentierte Punkt mit (X : Z) bezeichnet und die skalaren Vielfachen mod N mit n ∗ (X : Z) . Dadurch k¨ onnen auch die (mod N ) von (mod  p ) unterscheidenden Striche bei Xi , X2i , . . . weggelassen werden.

5.4 Elliptic Curve Method (ECM)

191

5.4.4.1 Beispiel: Bei der Multiplikation des Punktes (Xn : Zn ) mit n = 37 = (1, 1, 0, 1, 0, 0, 1)2 berechnet MulSkal nacheinander die Werte X1 , Z 1 , X2 , Z 2 , X4 , Z4 , X9 , Z 9 , X18 , Z18 , X37 , Z37 , → → → → → X2 , Z 2 , X3 , Z 3 , X5 , Z 5 , X10 , Z10 , X19 , Z19 , X38 , Z38 .

Nun kann der Faktorisierungsalgorithmus formuliert werden. Wie bei Pollard-(p − 1) wird eine Schranke S gew¨ ahlt und f¨ ur alle m verschiedenen Primzahlen q1 < q2 < . . . < qm ≤ S jeweils die gr¨ oßte Primzahlpotenz Qi = qiαi ≤ S bestimmt. Dann ist k=

m 

Qi = kgV(1, 2, . . . , S).

i=1

Auch hier muss k nicht direkt ausmultipliziert werden. Man erh¨ alt k ∗ (X : Z) durch sukzessive Berechnung von Qm ∗ (. . . (Q2 ∗ (Q1 ∗ (X : Z) )) . . .) . Wie bereits erw¨ ahnt, besteht der wesentliche Vorteil gegen¨ uber dem Pollard-(p − 1)-Algorithmus darin, dass zu verschiedenen Kurven Eaj ,bj , festgelegt durch verschiedene Parameter aj , bj , sehr wahrscheinlich auch verschiedene Gruppenordnungen |Eaj ,bj (Zp )| geh¨ oren, welche ziemlich √ √ gleichm¨aßig auf das Intervall ]p + 1 − 2 p, p + 1 + 2 p[ verteilt sind. F¨ uhrt man die Multiplikationen mit k also auf mehreren Kurven parallel aus, so wird dadurch die Wahrscheinlichkeit, dass eine der Gruppenordnungen k teilt, wesentlich erh¨ oht. 5.4.4.2 Beispiel: Pollard-(p−1) kann die Zahl N = 197111 = 439·449 nur mit einer relativ hoch gew¨ ahlten Schranke S faktorisieren. Wegen 439 − 1 = 2 · 3 · 73 und 449 − 1 = 26 · 7 findet dieser Algorithmus f¨ ur einige g (etwa g = 3 ) den Teiler 449 nur f¨ ur S ≥ 64 . Die folgende Tabelle enth¨ alt f¨ ur dieses N die Anfangspunkte und Parameter von 6 zuf¨ allig erzeugten elliptischen Kurven. So wurden z.B. f¨ ur die erste Kurve die Punktkoordinaten X = 107012 und Y = 39043 sowie der Kurvenparameter a = 88032 zuf¨ allig aus ZN gezogen. Daraus wurde b ≡ Y 2 − X 3 − aX mod N = 4864 ermittelt. Reduziert man die Werte X, Y, a, b modulo 449 , so sieht man, dass der Anfangspunkt (X : Y : 1) dem Punkt (150 : 429 : 1) in der Gruppe E28,374 (Z449 ) entspricht. Dieser Punkt hat in seiner Gruppe die Ordnung 476 = 22 · 7 · 17 . Der Teiler 449 kann also mit ECM gefunden werden, wenn man die Schranke S ≥ 17 w¨ ahlt. F¨ ur S = 20 ist z.B. k = 24 · 32 · 5 · 7 · 11 · 13 · 17 · 19 . Dieses k wird von der Ordnung von (150 : 429 : 1) ∈ E28,374 (Z449 ) geteilt. Bei Reduktion mod 439 erh¨ alt man den Punkt (335 : 411 : 1) ∈ E232,35 (Z449 ) . Er hat in seiner Gruppe die Ordnung 448 = 26 · 7 .

192

5 Faktorisierung ganzer Zahlen

j mod X Y a b ord((X : Y : 1)) S 1 N 107012 39043 88032 4864 449 150 429 28 374 476 = 22 · 7 · 17 17 439 335 411 232 35 448 = 26 · 7 64 2 N 154952 54164 35673 56241 449 47 284 202 116 222 = 2 · 3 · 37 37 439 424 167 114 49 92 = 22 · 23 23 3 N 91435 112406 11963 196411 449 288 156 289 198 67 = 67 67 439 123 22 110 178 450 = 2 · 32 · 52 25 4 N 181455 185914 125994 80967 449 59 28 274 147 485 = 5 · 97 97 439 148 217 1 191 461 = 461 461 5 N 171552 29475 7468 50855 449 34 290 284 118 109 = 109 109 439 342 62 5 370 105 = 3 · 5 · 7 7 6 N 74092 38068 23995 175606 449 7 352 198 47 19 = 19 19 439 340 314 289 6 472 = 23 · 59 59

Der Teiler 439 kann also nur mit einer Schranke S ≥ 64 gefunden werden, dann aber fr¨ uher als der Teiler 449 , weil er bereits nach der Multiplikation mit Q1 ·Q2 ·Q3 ·Q4 = 26 ·33 ·52 ·72 in ggT (Z4 , N ) auftritt. Arbeitet man auf allen 6 Kurven parallel, so findet man den Teiler 439 bereits f¨ ur die Schranke S ≥ 7 mit der 5. Kurve. Nach Satz dem Satz von Hasse gilt f¨ ur die Gruppenordnungen 408 ≤ |Ea,b (Z449 )| ≤ 492

und

399 ≤ |Ea,b (Z439 )| ≤ 481.

Die Ordnungen der Punkte sind Teiler der Gruppenordnungen. So hat etwa bei der zweiten Kurve der Punkt (47 : 284 : 1) die Ordnung 222 . Die Ordnung der Gruppe E202,116 (Z449 ) ist daher 444 . Als Variation schl¨ agt Peter L. Montgomery in [Mon] eine alternative Parametrisierung der elliptischen Kurven vor, die auch in Maple verwendet wird. F¨ ur By 2 = x3 + Ax2 + x statt y 2 = x3 + ax + b verwendet man die Duplikationsformeln X2n ≡ (Xn2 − Zn2 )2 mod N, Z2n ≡ 4Xn Zn (Xn2 + AXn Zn + Zn2 ) mod N, und die Additionsformeln Xm+n ≡ Zm−n (Xm Xn − Zm Zn )2 mod N, Zm+n ≡ Xm−n (Xm Zn − Zm Xn )2 mod N, f¨ ur m · P = n · P . Der Vorteil ist, dass man bei der Auswertung dieser Formeln etwas weniger Additionen und Multiplikationen ben¨ otigt als bei der Auswertung der fr¨ uher vorgestellten Duplikations- und Additionsformeln.

5.4 Elliptic Curve Method (ECM)

193

Die Elliptic Curve Method“ ”

procedure ECM(N, S, h) # Eingabe: N , Schranke S und # Anzahl h der Kurven j ← 1; d ← N # Ausgabe: Faktor d von N while j ≤ h and d = N do # (u.U d = N ) W¨ ahle zuf¨ allige aj ∈ N und Xj , Yj ∈ N \ {0} bj ← Yj2 − Xj3 − aj Xj mod N d ← ggT(4a3j + 27b2j , N ) j ←j+1 end do if d < N then Return (d) else Xj,0 ← Xj , Zj,0 ← 1 end if Es seien q1 < . . . < qm alle m verschiedenen Primzahlen ≤ S for i from 1 to m do Bestimme Qi und αi mit Qi = qiαi und Qi ≤ S < qi Qi for j from 1 to h do (Xj,i , Zj,i ) ← MulSkal(aj , bj , Qi , Xj,i−1 , Zj,i−1 , N ) end do h Zi ← j=1 Zj,i mod N d ← ggT(Zi , N ) if 1 < d < N then Return (d) end if end do Return (d) end

Z

Z

5.4.5 Aufwandsabsch¨ atzung H. W. Lenstra hat in [Le6] die asymptotische erwartete Laufzeit seines Faktorisierungs-Algorithmus ECM abgesch¨ atzt. Die Analyse betrachtet nicht nur eine leicht abgewandelte Form des bisher vorgestellten Algorithmus, sondern baut auch auf unbewiesenen aber plausiblen zahlentheoretischen Annahmen auf. Um einen Vergleich mit den anderen Methoden zu haben, wird Lenstras Vorgehen zur Aufwandsabsch¨ atzung kurz wiedergegeben. Die von ihm untersuchte Version von ECM verwendet nicht die Duplikations- und Additionsformeln in der Routine MulSkal, sondern addiert die Kurvenpunkte direkt mit den Formeln aus der Definition (aber mod N ). Dabei treten die Kurvenpunkte nur in der Form (X : Y : 1) oder (0 : 1 : 0) auf.

194

5 Faktorisierung ganzer Zahlen

Bei diese Variante m¨ ussen bei der Addition der Punkte P1 + P2 = P3 f¨ unf verschiedene F¨ alle unterschieden werden: 1. Fall: P1 = O : Setze P3 = P2 . 2. Fall: P2 = O : Setze P3 = P1 . In den anderen F¨ allen ist P1 = (X1 : Y1 : 1) = O und P2 = (X2 : Y2 : 1) = O : 3. Fall: X1 ≡ X2 mod p und Y1 ≡ −Y2 mod p : Setze P3 = O . 4. Fall: X1 ≡ X2 mod p und Y1 ≡ Y2 mod p : Setze P3 = (X3 : Y3 : 1) mit λ ≡ (3X12 + a)(2Y1 )−1 mod N, X3 ≡ λ2 − X1 − X2 mod N, Y3 ≡ λ(X1 − X3 ) − Y1 mod N, 5. Fall: X1 ≡ X2 mod p : Setze P3 = (X3 : Y3 : 1) mit λ ≡ (Y1 − Y2 )(X1 − X2 )−1 mod N, X3 ≡ λ2 − X1 − X2 mod N, Y3 ≡ λ(X1 − X3 ) − Y1 mod N. Wenn die F¨alle 1. oder 2. gegeben sind, l¨ asst sich dies leicht an den Punkten P1 und P2 ablesen. Zur Unterscheidung der F¨ alle 3. bis 5. sowie zur Bestimmung der Inversen in Z∗N bei der Berechnung von λ wird der erweiterte euklidische Algorithmus herangezogen. Er liefert auch gegebenenfalls den gesuchten nichttrivialen Teiler von N . Es gilt ⎧ ⇒ 3. oder 4. Fall, ⎨N ⇒ 5. Fall, ggT(X1 − X2 , N ) = 1 ⎩ d ∈ {1, N } ⇒ nichttrivialer Teiler d gefunden. Im Falle ggT(X1 − X2 , N ) = 1 liefert der erweiterte euklidische Algorithmus auch das Inverse (X1 − X2 )−1 mod N , welches zur Berechnung von λ ben¨otigt wird. ggT(X1 − X2 , N ) = N bedeutet X1 ≡ X2 mod p , so dass aufgrund der Kurvendefinition Y1 ≡ ±Y2 mod p gelten muss. Es wird weiter unterschieden durch: ⎧ ⇒ 3. Fall, ⎨N ⇒ 4. Fall, ggT(Y1 + Y2 , N ) = 1 ⎩ d ∈ {1, N } ⇒ nichttrivialer Teiler d gefunden. Im Fall Y1 ≡ −Y2 mod p erh¨ alt man ggT (Y1 + Y2 , N ) > 1 . Daher bedeutet ggT (Y1 + Y2 , N ) = 1 , dass Y1 ≡ Y2 mod p ist, wobei der erweiterte euklidische Algorithmus das Inverse (Y1 + Y2 )−1 mod N ≡ (2Y1 )−1 mod N f¨ ur die Berechnung von λ liefert.

5.4 Elliptic Curve Method (ECM)

195

Die Anzahl der erforderlichen Punkt-Additionen f¨ ur die Multiplikation eines Kurvenpunktes mit einer Zahl qiαi ist bei Lenstras Version die gleiche wie bei dem Algorithmus ECM. Der Unterschied ist, dass bei Lenstras Version f¨ ur jede einzelne Addition bis zu zwei ggT-Berechnungen erforderlich sind, w¨ahrend bei der hier vorgestellten Variante der ggT erst nach vollendeter Multiplikation des Punktes mit qiαi berechnet wird. Algorithmus ECM werden die h Kurvenpunkte jeweils mit k = mBeim αi multipliziert, wobei f¨ ur die m Primzahlen q1 < q2 < . . . < qm ≤ i=1 qi S die Exponenten αi so gew¨ ahlt sind, dass qiαi ≤ S < qiαi +1 . Dann ist k = kgV(1, 2, 3, . . . , S) . Bei seiner Analyse geht Lenstra allerdings davon aus, dass die h Kurvenpunkte statt mit k mit einem durch die Parameter v und w bestimmten k2 =

w 

re(r)

r=2

multipliziert werden, wobei e(r) die gr¨ oßte ganze Zahl ist mit re(r) ≤ v + √ 2 v + 1 . Die Parameter v und w sollen dabei optimal bestimmt werden. F¨ ur die Multiplikation von h Kurvenpunkten jeweils mit der Zahl k2 ben¨otigt man O(h log k2 ) = O(hw log v) Punkt-Additionen (Routine MulSkal). Wenn A(N ) der Aufwand einer einzelnen Addition von zwei Kurvenpunkten ist, dann hat Lenstras Version von ECM insgesamt eine zeitliche Komplexit¨at von O((hw log v)A(N )) . (5.12) Als zweiten Anhaltspunkt f¨ ur die optimale Wahl der Parameter h , v und w hat Lenstra folgenden Satz u ¨ber die Erfolgswahrscheinlichkeit seines Algorithmus bewiesen:

N

5.4.5.1 Satz: (Lenstra [Le6]) N ∈ habe mindestens zwei verschiedene Primteiler > 3 . Der Parameter v ∈ sei so gew¨ahlt, dass p ≤ v ist f¨ ur den kleinsten solchen Primteiler p > 3 von N und w ∈ sei so gew¨ahlt, dass mindestens drei ganze Zahlen aus dem Inter√ √ vall ]p+1− p, p+1+ p[ ausschließlich Primteiler ≤ w besitzen. Dann gibt es eine Konstante c > 1 , so dass die Erfolgswahrscheinlichkeit von Lenstras ECM mindestens

N

1 − c−hf (w)/ log v

N

(5.13)

betr¨agt. Dabei sei f (w) die Wahrscheinlichkeit, dass eine zuf¨allige √ √ ganze Zahl aus dem Intervall ]p + 1 − p, p + 1 + p[ nur aus Primteilern ≤ w besteht. Diese Wahrscheinlichkeit f (w) soll nun n¨ aher bestimmt werden. F¨ ur eine reelle Zahl x > e definiert man die Funktion √ L(x) = e log x log log x .

196

5 Faktorisierung ganzer Zahlen

Mit dieser Schreibweise kann man aus einem Satz von Canfield, Erd¨ os und Pomerance folgendes schließen (s. [CEP] und [Po3]): 5.4.5.2 Satz: α > 0 sei eine reelle Zahl. Die Wahrscheinlichkeit, dass eine zuf¨allige, positive ganze Zahl ≤ x ausschließlich Primteiler ≤ L(x)α besitzt, betr¨agt L(x)−(2α)

−1

f¨ ur x → ∞.

+o(1)

Lenstra vermutet, √ dass dasselbe ur eine zuf¨ allige ganze Zahl aus dem √ auch f¨ Intervall ]x + 1 − x, x + 1 + x[ gilt: Annahme von Lenstra : α > 0 sei eine reelle Zahl. Die Wahrscheinlichkeit, dass √ eine zuf¨allige, positive ganze Zahl aus dem Intervall √ ]x + 1 − x, x + 1 + x[ ausschließlich Primteiler ≤ L(x)α besitzt, betr¨agt L(x)−(2α)

−1

f¨ ur x → ∞.

+o(1)

Der Term hw log v in der Aufwandsabsch¨ atzung soll minimiert, der Term hf (w)/ log v aus der Erfolgswahrscheinlichkeit soll maximiert werden. Lenstra minimiert daher w/f (w) . Setzt man w = L(p)α , so folgt f (w) = L(p)−(2α) w f (w)

−1

ist minimal f¨ ur α =

+o(1)

√1 2

f (w) = L(p)−1/

−1 w = L(p)(2α) +α+o(1) . f (w)

und

. Setzt man diesen Wert ein, so erh¨ alt man

√ 2+o(1)

und

w = L(p)1/

√ 2+o(1)

.

Das Problem bei dieser Angabe ist, dass der kleinste Primteiler p > 3 von N bei der Wahl des Parameters w noch nicht bekannt ist. Lenstra nimmt aber an, dass die Teiler, die der Algorithmus findet, aufgrund der Definition von k2 ungef¨ ahr von derselben Gr¨ oßenordnung wie die Schranke v sind. Daher schl¨ agt er vor, p in den Formeln f¨ ur w und f (w) durch v zu ersetzen und den Algorithmus mehrmals f¨ ur verschieden große v laufen zu lassen. Der in den Ausdr¨ ucken (5.12) und (5.13) vorkommende Faktor log v ist dann L(p)o(1) . Damit ist der Algorithmus von der Ordnung " n log n √ n √ 1/ 2+o(1) 4 log n 4 A(N ) ∼ h · n · A(N ) ∼ h · e · A(N ) hL(p) bei einer Erfolgswahrscheinlichkeit von 1 − e−hL(p)

−(1/



2+o(1))

log c

.

Dabei sei A(N ) die zeitliche Komplexit¨ at einer einzelnen Addition von zwei Kurvenpunkten modulo N . F¨ ur sie kann O(log2 N ) = O(n2 ) angenommen werden, da sie von den Multiplikationen modulo N bzw. den ggT-Berechnungen bei Lenstras Version dominiert wird.

5.5 Der Algorithmus von Morrison und Brillhart

197

6 n log n Wesentlich ist also der Term im Exponenten von e , der zeigt, 4 dass der gesamte Algorithmus exponentiell von n abh¨ angt. √

urzer formulieSetzt man g = hL(p)−(1/ 2+o(1)) log c , dann kann man k¨ ren: Bei passender Wahl der Parameter h , w und v findet der Algorithmus ECM einen nichttrivialen Teiler von N in der Zeit g · K(p) · A(N ) mit einer Wahrscheinlichkeit von mindestens 1 − e−g . Dabei ist p der kleinste Primteiler von N . F¨ ur die Funktion K : R+ → R+ gilt √ K(x) = e (2+o(1)) log x log log x f¨ ur x → ∞.

5.5 Der Algorithmus von Morrison und Brillhart 5.5.1 Die Grundidee Im Jahre 1975 ver¨ offentlichten M. A. Morrison und J. Brillhart in [MBr] ihren Continued Fraction Algorithm“ (kurz CFRAC). Dieser Methode liegt ” ¨ die folgende Uberlegung von Maurice Kra¨ıtchik (1882-1957) zugrunde, die ihrerseits schon auf Fermat zur¨ uckgeht. Angenommen, es seien zwei ganze Zahlen x und y bekannt mit x2 ≡ y 2 mod N

(5.14)

Dann gibt es eine ganze Zahl k ∈ Z mit kN = x2 − y 2 = (x − y)(x + y) . Berechnet man d = ggT(x − y, N ) und stecken die Primteiler von N teils in (x − y) und teils in (x + y) , so ist d ein nichttrivialer Teiler von N . Bereits 1931 hatten D. H. Lehmer und R. E. Powers die Idee, in Kettenbruchentwicklungen nach solchen Zahlen x und y zu suchen, die der Kongruenz (5.14) gen¨ ugen. Ihre Methode war jedoch zu aufw¨ andig f¨ ur die Rechenmaschinen der damaligen Zeit und geriet daher in Vergessenheit. Erst 1970 entwickelten Michael A. Morrison und John Brillhart daraus den Algorithmus CFRAC und berechneten damit als erste die vollst¨ andige Faktorisierung der Fermatschen Zahl F7 = 2128 + 1 ◦ . Wie in den folgenden Abschnitten noch genauer erl¨ autert√wird, erh¨ alt man bei der Berechnung der Kettenbruchentwicklung von N positive ganze Zahlen Ai−1 und Qi , die f¨ ur i = 1, 2, 3, . . . der Kongruenz A2i−1 ≡ (−1)i Qi mod N gen¨ ugen. ◦

F7 = 59649589127497217 · 5704689200685129054721 .

198

5 Faktorisierung ganzer Zahlen

Um eine Kongruenz der Form x2 ≡ y 2 mod N zu erhalten, versucht man  n bestimmte Werte Qn so zu kombinieren, dass das Produkt (−1) Qn n eine Quadratzahl ergibt. Wenn man eine solche Kombination gefunden hat, berechnet man 8   x= (−1)n Qn , und y= An−1 mod N . Dann gilt y 2 ≡



n

n

A2n−1

n

 ≡ (−1)n Qn = x2 mod N n

und d = ggT(x − y, N ) ist der gesuchte nichttriviale Teiler von N , sofern nicht d = 1 oder d = N ist. 5.5.2 Approximation reeller Zahlen durch Kettenbr¨ uche 5.5.2.1 Definition:

Ein einfacher Kettenbruch ist

[q0 , q1 , q2 , . . . , qm ] := q0 +

1 q1 +

1 q2 +

1 q3 +

..

1

.

qm−1 + q1 m

wobei q0 eine ganze Zahl ist und die so genannten Teilnenner q1 , . . . , qm positive ganze Zahlen sind. Jeder einfache Kettenbruch hat ausmultipliziert einen rationalen Wert. Umgekehrt l¨asst sich auch jede rationale Zahl x0 ∈ Q in einen einfachen Kettenbruch x0 = [q0 , q1 , q2 , . . . , qm ] entwickeln. q0 ∈ Z und die Teilnenner q1 , q2 , . . . , qm ∈ dieser Kettenbruchentwicklung erh¨ alt man mit dem folgenden Algorithmus: Kettenbruchentwicklung

N

R

N

procedure KetBru(x0 , M ) # Eingabe: x0 ∈ , M ∈ , # Ausgabe: Kettenbruchentwicklung q0 ← x0  # x0 = [q0 , q1 , . . . , qM −1 , . . .] m←0 while xm − qm = 0 and m < M do 1 xm+1 ← xm −q m qm+1 ← xm+1  m←m+1 end do Return([q0 , q1 , . . . , qm ]) end

L¨asst man die Schranke M weg, so terminiert dieser Algorithmus genau dann, wenn x0 eine rationale Zahl ist. Das Verfahren entspricht einer fortw¨ahrenden Division mit Rest durch den jeweiligen Z¨ ahler:

5.5 Der Algorithmus von Morrison und Brillhart

5 5:5 1 = = 12 12 : 5 2+

2 5

=

199

1 1 = [0, 2, 2, 2] =0+ 1 2 + 2:2 2 + 5:2 2+ 1 2

und ist identisch mit den Schritten zur ggT-Berechnung von Z¨ ahler und Nenner mit dem euklidischen Algorithmus: 5 12 5 2

= = = =

0 2 2 2

· · · ·

12 5 2 1

+ + + +

5 2 1 0

Wendet man ihn auf eine irrationale Zahl x0 ∈ R an, so erh¨ alt man eine unendliche Entwicklung x0 = q0 + q + 1 1 = [q0 , q1 , q2 , . . .], bei welcher

N

1

sind. ebenfalls q0 ∈ Z und q1 , q2 , . . . ∈ Bricht man die Entwicklung einer reellen Zahl x0 an einer beliebigen Stelle m ab, so hat der (nicht einfache) Kettenbruch [q0 , q1 , . . . , qm , xm+1 ] genau den Wert x0 , w¨ ahrend der einfache Kettenbruch [q0 , q1 , . . . , qm ] einen rationalen Wert Am /Bm besitzt. Weil dieser Wert x0 f¨ ur m → ∞ beliebig genau (s. die Folgerung nach dem n¨ achsten Hilfssatz) ann¨ ahert, wird Am /Bm = [q0 , q1 , q2 , . . . , qm ] als m-ter N¨aherungsbruch von x0 bezeichnet. Wenn man den Z¨ ahler Am und den Nenner Bm des m -ten N¨ aherungsbruches [q0 , q1 , q2 , . . . , qm ] explizit berechnen m¨ ochte, liegt es nahe, den Kettenbruch r¨ uckw¨ arts aufzurollen, also zun¨ achst qm−1 + q1m zu berechnen und sich dann sukzessive bis q0 vorzuarbeiten. Es gibt aber gl¨ ucklicherweise eine viel praktischere Methode, bei der man die Teilnenner qi vorw¨ arts durchl¨ auft und auf diesem Wege f¨ ur i = 0, 1, 2 . . . , m gleich s¨ amtliche Werte Ai und Bi erh¨ alt. q2 +...

5.5.2.2 Satz: Es sei [q0 , q1 , q2 , . . . , qm ] ein einfacher Kettenbruch mit q0 ∈ und den Teilnennern q1 , q2 , . . . , qm ∈ . Setzt man

Z

N

A−2 = 0, B−2 = 1,

A−1 = 1, B−1 = 0,

(5.15)

dann lassen sich die N¨aherungsbr¨ uche Ai = [q0 , q1 , q2 , . . . , qi ] Bi f¨ ur i = 0, 1, 2 . . . , m rekursiv berechnen mit den Formeln Ai = qi Ai−1 + Ai−2 , Bi = qi Bi−1 + Bi−2 ,

(5.16)

wobei man die N¨aherungsbr¨ uche Ai /Bi in gek¨ urzter Form erh¨alt, d.h. ggT(Ai , Bi ) = 1. (5.17)

200

5 Faktorisierung ganzer Zahlen

Beweis: F¨ ur i = 0 folgen die Rekursionsformeln (5.16) aus q0 A0 q0 A−1 + A−2 = q0 = . = B0 1 q0 B−1 + B−2 Wegen ggT (A0 , B0 ) = ggT(q0 , 1) = 1 gilt dann auch (5.17). Der Kettenbruch Ai+1 /Bi+1 = [q0 , q1 , q2 , . . . , qi , qi+1 ] kann aus Ai /Bi = [q0 , q1 , q2 , . . . , qi ] konstruiert werden, indem man dessen letzten Teilnenner 1 qi durch qi + qi+1 ersetzt. Wenn die Rekursionsformeln (5.16) und Gleichung (5.17) bereits f¨ ur irgendein i ≥ 0 bewiesen sind, so gilt auch (qi + Ai+1 = Bi+1 (qi + =

1 qi+1 )Ai−1 1 qi+1 )Bi−1

+ Ai−2 + Bi−2

=

qi Ai−1 + Ai−2 + qi Bi−1 + Bi−2 +

Ai−1 qi+1 Bi−1 qi+1

=

Ai + Bi +

Ai−1 qi+1 Bi−1 qi+1

=

qi+1 Ai + Ai−1 . qi+1 Bi + Bi−1

Das entspricht den Rekursionsformeln f¨ ur i + 1 . Schließlich fehlt noch der Beweis von ggT(Ai+1 , Bi+1 ) = 1 . Dieser wird von dem folgenden Hilfssatz erledigt.  5.5.2.3 Hilfssatz: Wenn man die Werte Ai und Bi mit den Formeln (5.15) und (5.16) berechnet, so gilt Ai−1 Bi − Ai Bi−1 = (−1)i .

(5.18)

Beweis: F¨ ur i = 0 stimmt die Gleichung wegen A−1 B0 − A0 B−1 = 1 · 1 − q0 · 0 = 1 . Wenn sie f¨ ur irgendein i ≥ 0 gilt, so gilt sie auch f¨ ur i + 1 wegen Ai Bi+1 − Ai+1 Bi = Ai (qi+1 Bi + Bi−1 ) − (qi+1 Ai + Ai−1 )Bi = = −(Ai−1 Bi − Ai Bi−1 ) = −(−1)i = (−1)i+1 .



Folgerung: Berechnet man wie im Beweis des Satzes [q0 , . . . , qm , xm+1 ] Am = [q0 , q1 , q2 , . . . , qm ] und bildet die Differenz, so erh¨ alt man aus B m     Am   xm+1 Am + Am−1 Am   − = = [q0 , . . . , qm , xm+1 ] − Bm xm+1 Bm + Bm−1 Bm     Bm Am−1 − Am Bm−1  (HS) 1 1 = = =  < 2 (xm+1 Bm + Bm−1 )Bm  (xm+1 Bm + Bm−1 )Bm Bm Da die Folge der Bm streng monoton steigt, zeigt dies dies Konvergenz der m-ten N¨aherungsbr¨ uche gegen x0 .

5.5 Der Algorithmus von Morrison und Brillhart

201

5.5.3 Die Kettenbruchentwicklung einer Wurzel In der Zahlentheorie interessiert man sich besonders f¨ ur die Kettenbruchent√ wicklung von N , wobei N eine nicht quadratische ganze Zahl ist. Durch die rekursive Berechnung von √ √ x0 = N , q0 = " N #, (5.19) 1 xi+1 = xi −q , qi+1 = "xi+1 #, f¨ ur i = 0, 1, 2, . . . i √ (vgl. die Prozedur KetBru) erh¨ alt man ur die irrationale Zahl N eine √ f¨ unendliche Kettenbruchentwicklung N = [q0 , q1 , q2 , . . .] mit qi ∈ . √ 5.5.3.1 Beispiel: F¨ ur N = 21 ergibt sich: √ x0 = 21 ⇒ q0 = 4, √ √ 1 21+4 21−1 = = 1 + ⇒ q1 = 1, x1 = √21−4 5 5

N

x2 = x3 = x4 = x5 = x6 = x7 =

√ 5 21−1 √ 4 21−3 √ 3 21−3 √ 4 21−1 √ 5 21−4 √ 1 21−4

= = = = =

√ 5( 21+1) 20 √ 4( 21+3) 12 √ 3( 21+3) 12 √ 4( 21+1) 20 √ 5( 21+4) 5

= = = = =

√ 21+1 4 √ 21+3 3 √ 21+3 4 √ 21+1 5



= 1+ = 2+ = 1+

√ 21−3 4 √ 21−3 3 √ 21−1 4 √ 21−4 5

⇒ q2 = 1, ⇒ q3 = 2, ⇒ q4 = 1,

= 1+ ⇒ q5 = 1, √ 21 + 4 = 8 + 21 − 4 ⇒ q6 = 8, ⇒ q7 = 1.

Wegen x7 = x1 wiederholt sich von nun an die Rechnung, so dass √ 21 = [4, 1, 1, 2, 1, 1, 8, 1, 1, 2, . . .] . In der Beispielrechnung sieht es so aus, als ob sich die xi f¨ ur i ≥ 1 immer in der Gestalt xi = √QNi−1 mit ganzen Zahlen Q und Pi schreiben i−1 −Pi lassen. F¨ ur diese Zahlen sollen nun Rekursionsformeln gefunden werden und dann bewiesen werden, dass sie in der Tat immer ganz sind. Im Beispiel wurde f¨ ur i ≥ 1 jeweils wie folgt gerechnet: √ √ √ N − Pi+1 Qi−1 Qi−1 ( N + Pi ) (∗) N + Pi (∗∗) = = = q + . (5.20) xi = √ i N − Pi2 Qi Qi N − Pi Damit (*) richtig ist, muss gelten Qi =

1 √ Qi = xi −q woraus i N −Pi+1 √ −Pi+1 folgt. xi = qi + N Q i

Aus (5.19) folgt xi+1 = letzte Teil von (5.20)

N − Pi2 . Qi−1

(5.21) durch Umformen der

202

5 Faktorisierung ganzer Zahlen

Damit (**) richtig ist, muss gelten Pi+1 = qi Qi − Pi .

(5.22)

Wegen (5.19) muss dabei gelten >√ qi = "xi # = Wegen x0 =



N=

√ N +P0 Q0

N + Pi Qi

? .

(5.23)

setzt man schließlich

P0 = 0 , Q0 = 1.

(5.24)

5.5.3.2 Satz: Es sei N eine nicht quadratische ganze Zahl. Dann sind ur i = 1, 2, 3, . . . aus (5.21) bis die Werte Pi und Qi , die man f¨ (5.24) erh¨alt, ganze Zahlen mit √ √ 0 < Pi < N und 0 < Qi < 2 N . Beweis: F¨ ur i = 1 folgt die Behauptung direkt aus (5.24) bis (5.21) durch √ √ √ P1 = " N # ∈ Z, 0 < " N # < N , √ √ √ √ Q1 = N − " N #2 ∈ Z, 0 < N − " N #2 < N − ( N − 1)2 < 2 N . Wenn f¨ ur ein bestimmtes i ≥ 1 die Werte Pi , Qi ∈ N −P 2 offensichtlich auch Pi+1 ∈ Z . Aus Qi = Qi−1i folgt damit ist auch

Z

sind, dann ist ∈ Z , und

N −Pi2 Qi

2 N − Pi+1 N − (qi Qi − Pi )2 N − Pi2 = = − qi2 Qi + 2qi Pi ∈ Z. Qi Qi Qi √ Nun sei f¨ ur ein bestimmtes i ≥ 1 bereits 0 < Pi < N und Qi > 0 bewiesen. Aus (5.23) und (5.20) folgt √ N − Pi+1 0 < xi − qi = < 1. Qi √ . Falls Qi > Pi ist, folgt√aus (5.22) Pi+1 > 0 . Daher ist Pi+1 < N √ Andernfalls ist Qi ≤ Pi < N , und es folgt Pi+1 > N −Qi > 0 . Dadurch sind die Schranken f¨ ur Pi+1 bewiesen. Aus (5.21) folgt damit Qi+1 > 0 , und aus (5.22) folgt √ Pi + Pi+1 Qi = < 2 N.  qi

Qi+1 =

5.5 Der Algorithmus von Morrison und Brillhart

203

5.5.3.3 Satz: Es sei N eine nicht quadratische ganze Zahl. Dann ist die Folge der qi in der Kettenbruchentwicklung √ N = [q0 , q1 , q2 , . . .] periodisch, d.h. es existieren nat¨ urliche Zahlen k und l , so dass qi = qi+l ist f¨ ur alle i ≥ k . √ Beweis: Aus dem vorhergehenden Satz folgt, dass es h¨ ochstens " N # · √ "2 N # < 2N verschiedene Paare (Pi , Qi ) gibt. Deshalb muss nach h¨ ochstens 2N Schritten wieder ein Paar auftreten, das schon fr¨ uher einmal in der Entwicklung vorgekommen ist. Also gibt es ein l > 0 und ein k < 2N mit (Pk+l , Qk+l ) = (Pk , Qk ) und qk+l = qk . Da jedes Paar (Pi+1 , Qi+1 ) durch seinen Vorg¨ anger (Pi , Qi ) bestimmt ist, wiederholt sich von nun an die Folge der Paare und damit auch die der qi .  Sp¨ater wird noch eine weitere Formel ben¨ otigt, mit der Qi+1 ohne Division berechnet werden kann. Es gilt Qi+1 = Qi−1 + (Pi − Pi+1 )qi .

(5.25)

Aus (5.21) erh¨ alt man n¨ amlich Qi Qi−1 = N − Pi2 und Qi+1 Qi = N − 2 Pi+1 . Subtrahiert man diese beiden Gleichungen, so erh¨ alt man 2 = (Pi − Pi+1 )(Pi + Pi+1 ) = (Pi − Pi+1 )qi Qi , Qi (Qi+1 − Qi−1 ) = Pi2 − Pi+1

denn aus (5.22) folgt Pi + Pi+1 = qi Qi . Formel (5.25) folgt daraus durch Elimination von Qi . Der nun √ folgende Satz ist der Grund, warum die Kettenbruchentwicklung von N eine solche Bedeutung f¨ ur die Faktorisierung von N hat. 5.5.3.4 Satz: Es sei N eine nicht quadratische ganze Zahl. F¨ ur ein i > 0 seien die Werte Ai−1 , Bi−1 und Qi rekursiv berechnet worden mit (5.15), (5.16) und (5.24) bis (5.21). Dann gilt 2 = (−1)i Qi , A2i−1 − N Bi−1

(5.26)

A2i−1 ≡ (−1)i Qi mod N.

(5.27)

und damit

Beweis: Nach Satz 5.5.2.2 ist [q0 , q1 , q2 , . . . , qi ] =

Ai qi Ai−1 + Ai−2 = . Bi qi Bi−1 + Bi−2

Ersetzt man darin qi durch xi , so ergibt das [q0 , q1 , q2 , . . . , qi−1 , xi ] =



N=

xi Ai−1 + Ai−2 . xi Bi−1 + Bi−2

204

5 Faktorisierung ganzer Zahlen

Durch Einsetzen von xi =

√ N +Pi Qi

erh¨ alt man

√ Ai−1 N + Ai−1 Pi + Ai−2 Qi √ N= , Bi−1 N + Bi−1 Pi + Bi−2 Qi √ √ bzw. N Bi−1 + (Bi−1 Pi + Bi−2 Qi ) N = Ai−1 N + Ai−1 Pi + Ai−2 Qi . √ √ angig Da N irrational und damit 1 und N u ¨ber Q linear unabh¨ sind, kann man Koeffizienten vergleichen: √

Ai−1 Pi + Ai−2 Qi = N Bi−1 , Bi−1 Pi + Bi−2 Qi = Ai−1 . alt man (Ai−2 Bi−1 − Ai−1 Bi−2 )Qi = Durch Elimination von Pi erh¨ 2 2 N Bi−1 − A2i−1 . Mit (5.18) ist das (−1)i−1 Qi = N Bi−1 − A2i−1 und daraus folgt die Behauptung.  5.5.4 Der Faktorisierungsalgorithmus Wie bereits am Anfang erw¨ ahnt, sucht man Zahlen x und y , welche die Kongruenz x2 ≡ y 2 mod N erf¨ ullen. F¨ ur die Konstruktion eines solchen Zahlenpaares bieten sich die Werte A i−1 und Qi aus der Ketten√ bruchentwicklung von N an, weil sie f¨ ur i = 1, 2, 3, . . . der Kongruenz (5.27) gen¨ ugen. Da die Werte Ai−1 sehr schnell anwachsen, empfiehlt es sich, diese nur modulo N zu berechnen. Das beschleunigt die Arithmetik und Kongruenz (5.27) bleibt trotzdem g¨ ultig. Man beginnt mit den Startwerten (aus (5.22) folgt Q1 = N − P12 = N − q02 und aus (5.25) Q1 = Q−1 − q02 ; die Wahl f¨ ur Q−1 ist also vern¨ unftig) √ (5.28) A−2 = 0 , A−1 = 1 , Q−1 = N , Q0 = 1 , P0 = 0 , w = " N # , und berechnet rekursiv f¨ ur i = 0, 1, 2, . . . . i , Pi+1 = qi Qi − Pi , qi = w+P Qi Ai = (qi Ai−1 + Ai−2 ) mod N, Qi+1 = Qi−1 + qi (Pi − Pi+1 ).

(5.29)

(vgl. (5.15), (5.16), (5.24), (5.23), (5.22), (5.25)) In der Menge aller hierbei auftretenden Werte Qi soll nun nach einer {Qi1 , . . . , Qin } gesucht werden, f¨ ur die das Produkt n Teilmenge ij (−1) Q eine Quadratzahl ist. Um Indexsalat zu vermeiden, verweni j k=1 det man statt ij einfach den Index n , wenn Elemente dieser bestimmten Teilmenge gemeint sind: Mansucht also nach einer Menge von bestimmten Werten Qn , deren Produkt n (−1)n Qn eine Quadratzahl ist. Daf¨ ur ben¨otigt man die Primfaktorzerlegungen vieler Werte Qi . Man verlagert also das Problem von der Faktorisierung einer √ sehr großen Zahl N auf die Faktorisierung vieler kleinerer Zahlen Qi < 2 N , die ungef¨ ahr die halbe L¨ange von N haben.

5.5 Der Algorithmus von Morrison und Brillhart

205

Aber auch diese sind oft noch schwer zu faktorisieren. Man beschr¨ ankt sich daher auf diejenigen Werte Qi , die sich schon mit wenigen Probedivisionsschritten vollst¨ andig in Primfaktoren unterhalb einer niedrigen Schranke S zerlegen lassen. 5.5.4.1 Definition: Eine Zahl a ∈ Z wird als quadratischen Rest von p ∈ Z bezeichnet, wenn es ein x ∈ Z gibt mit x2 ≡ a mod p . F¨ ur eine ungerade Primzahl p sei das Legendre-Symbol ∗ (a/p) definiert durch

(a/p) =

0 1 −1

falls p Teiler von a ist, falls a quadratischer Rest von p ist, sonst.

5.5.4.2 Satz: Wenn a eine ganze Zahl und p eine ungerade Primzahl ist, dann gilt f¨ ur das Legendre-Symbol (a/p) ≡ a

p−1 2

mod p.

F¨ ur einen Beweis siehe etwa [HWr]. Mit dem Begriff des Legendre-Symbols kann die Menge der Primzahlen ≤ S , durch welche die Werte Qi probedividiert werden m¨ ussen, eingeschr¨ ankt werden: √ 5.5.4.3 Satz: Der Wert Qi aus der Kettenbruchentwicklung von N sei f¨ ur ein i > 0 definiert wie in (5.21). Wenn eine ungerade Primzahl p Teiler von Qi ist, dann ist das Legendre-Symbol (N/p) = 1 oder (N/p) = 0 . Beweis: Aus (5.26) folgt die Kongruenz 2 A2i−1 ≡ N Bi−1 mod p.

Wegen (5.18) ist ggT(Ai−1 , Bi−1 ) = 1 und p kann nicht Teiler von Bi−1 sein. Deshalb ist 2  Ai−1 mod p N≡ Bi−1 ein quadratischer Rest von p oder Null, wenn Ai−1 ≡ 0 mod p ist.  Zu Beginn des Algorithmus bestimmt man also die Menge F = {p1 , p2 , . . . , pm } aller Primzahlen pj ≤ S , f¨ ur welche gilt 1 ≡ N (pj −1)/2 mod pj . Das sind alle ungeraden Primzahlen ≤ S mit (N/pj ) = 1 und die 2. ∗

Bei Einschr¨ ankung auf

Z

∗ p

ist das ein Gruppenhomomorphismus

Z

∗ p

→ {−1, 1} . Zur Ver-

meidung von Verwechslungen wird hier nicht die auch u ¨ bliche Schreibweise

a p

verwendet

206

5 Faktorisierung ganzer Zahlen

Diese Menge F wird Faktorenbasis genannt. Nach dem vorhergehenden Satz finden sich alle ungerade Primteiler ≤ S von Werten Qi in dieser Menge. Sollte man hierbei auf ein pj treffen, f¨ ur welches (N/pj ) = 0 ist, so bedeutet dies, dass pj bereits der gesuchte nichttriviale Teiler von N ist. Gew¨ohnlich wendet man aber diese Faktorisierungsmethode erst an, wenn die Zahl N bereits mit weniger anspruchsvollen Methoden (Probedivisionen, Pollard-( p − 1 ) etc.) nach kleineren Primteilern abgesucht worden ist. Außerdem muss man nat¨ urlich vor Beginn dieses Algorithmus sicherstellen, dass N keine Quadratzahl ist. Nach jedem Iterationsschritt der Kettenbruchentwicklung dividiert man das neu berechnete Qi zur Probe nacheinander durch alle Primzahlen p1 < p2 < . . . < pm der Faktorenbasis F , um eine vollst¨ andige Faktorisierung von Qi in der Form ei,0 ei,1 ei,2 p1 p2

(−1)i Qi = (−1)

. . . pemi,m

zu erhalten. ur j = 1, 2, . . . , m jeweils der Exponent Dabei ist ei,0 = i und ei,j ≥ 0 f¨ der Primzahl pj in der Zerlegung von Qi . andig Man verwirft diejenigen Werte Qi , die auf diese Weise nicht vollst¨ faktorisiert werden k¨ onnen. Den erfolgreich zerlegten Qi ordnet man dagegen einen bin¨aren Vektor vi = (αi,0 , αi,1 , αi,2 , . . . , αi,m ) ∈ Zm+1 2 zu, mit den Koordinaten αi,j = ei,j mod 2 Das Produkt bestimmter Werte Qn ,  (−1)n Qn = (−1)e0 pe11 pe22 . . . pemm , n

ist genau dann eine Quadratzahl, wenn alle Exponenten gerade sind, also  en,j ≡ 0 mod 2 f¨ ur k = 0, 1, 2, . . . , m . ej = n

Diesen Fall erkennt man daran, dass die Summe modulo 2 der dazugeh¨ origen Vektoren vn gleich dem Nullvektor ist. Man betreibt die Kettenbruchentwicklung und die Probedivisionen so lange, bis man m + 2 Werte Qi vollst¨ andig faktorisiert hat. Dann bildet man aus den dazugeh¨ origen Vektoren vi als Zeilenvektoren eine (m + 2) × (m + 1) -Matrix M , auf welcher eine Gauß-Elimination modulo 2 durchgef¨ uhrt wird. Jeder dabei auftretende Nullvektor, d.h. jede lineare Abh¨angigkeit in dieser Matrix M , entspricht einer der gesuchten Kombinationen von Werten Qn mit quadratischem Produkt und f¨ uhrt zu einem trivialen oder nichttrivialen Teiler von N .

5.5 Der Algorithmus von Morrison und Brillhart

207

Um hinterher nachvollziehen zu k¨ onnen, um welche Qn es sich dabei handelt, erg¨ anzt man die Matrix M durch eine (m + 2) × (m + 2) Einheitsmatrix E und f¨ uhrt die Gauß-Elimination modulo 2 auf der so erzeugten (m + 2) × (2m + 3) -Matrix [M |E] durch. Wenn der linke Teil einer Zeile nur noch aus Nullen besteht, hat man eine Menge linear abh¨ angiger Vektoren vn gefunden, deren Zusammensetzung am rechten Teil der Zeile abgelesen werden kann. Der Algorithmus von Morrison und Brillhart (CFRAC)

N

procedure MorBril(N, S) # Eingabe: N, S ∈ , # Ausgabe: Teiler d von N F ← {p1 , . . . , pm } mit pj ≤ S # (u.U. d = N ) und N (pj −1)/2 mod pj = 1 Initialisiere gem¨ aß (5.28) i←1 for  from 1 to m + 2 do Berechne Ai−1 und Qi gem¨ aß (5.29) m e Berechne fi mit Qi = ( j=1 pj i,j )fi und ggT(fi , pj ) = 1 while fi = 1 do i←i+1 Berechne Ai−1 und Qi gem¨ aß (5.29) m e Berechne fi mit Qi = ( j=1 pj i,j )fi und ggT(fi , pj ) = 1 if fi = 1 then e e e e Bestimme ei,j mit (−1)i Qi = (−1) i,0 p1i,1 p2i,2 . . . pmi,m

v ← (ei,0 mod 2, . . . , ei,m mod 2) if v = 0 then fi ← 2 end if end if end do end do T )T M ← ( v1T , . . . , vm+2 Gauß mod 2

[M |E] −→ [M  |M  ] mit M  in Zeilenstufenform for i from 1 to m + 2 do if ( i -te Zeile von M  ) = 0 then Lies aus i -ter Zeile von M  ab: K ← (Menge der Indizes n der vn die hier zu 0 kombiniert wurden) "  x← (−1)n Qn , y ← n∈K An−1 mod N n∈K d = ggT(x − y, N ) if 1 < d < N then Return (d) end if end if end do Return (Kein Erfolg) end

208

5 Faktorisierung ganzer Zahlen

Mit den dazugeh¨ origen Werten Qn und An−1 berechnet man 8   (−1)n Qn und y= An−1 mod N. x= n

n

Dann ist d = ggT(x − y, N ) ein Teiler von N . Wenn d = 1 oder d = N ist, versucht man sein Gl¨ uck mit einer anderen linearen Abh¨ angigkeit. Eventuell m¨ ussen hierf¨ ur weitere Werte Qi erzeugt und faktorisiert werden. Bei manchen Zahlen√ N scheitert CFRAC, weil die Periode der Kettenbruchentwicklung von N so kurz ist, dass sich die Wertepaare (Ai−1 , Qi ) wiederholen, bevor eine der quadratischen Kombinationen zu einem nichttrivialen Ergebnis gef¨ uhrt hat. Der gezeigte Algorithmus sollte daher in der Praxis um eine Funktion zur Erkennung solcher Endlosschleifen erweitert werden. Im Falle √ einer zu kurzen Periode kann man sich damit behelfen, dass man statt N die Zahl √ kN entwickelt, wobei der Faktor k eine kleine, quadratfreie ganze Zahl ist. Zwei praktische Variationen von CFRAC wurden bereits von Morrison und Brillhart in [MBr] angedeutet. Die erste ist bekannt unter dem Namen Large Prime Variation“: Jedes Qi l¨ asst sich in der Form ” m  e pj i,j )fi Qi = ( j=1

schreiben, wobei fi der restliche Faktor von Qi ist, der nach den Probedivisionen u ¨brig bleibt und von keiner der Primzahlen p1 < p2 < . . . < pm aus der Faktorenbasis F geteilt wird. Stellt sich nach den Probedivisionen fi = 1 heraus, so ist Qi vollst¨andig in Primzahlen der Faktorenbasis zerlegt worden. Ist aber fi < p2m , so muss dieser restliche Faktor ebenfalls eine Primzahl sein, und damit w¨are auch in diesen Fall die vollst¨ andige Zerlegung bekannt. Tats¨achlich hat es sich als praktische Variation erwiesen, solche Zerlegungen mit einem einzigen großen Primfaktor nicht einfach zu verwerfen. Je gr¨oßer dieses fi ist, desto seltener werden allerdings weitere Qi -Werte mit diesem Primfaktor auftreten. Und je mehr verschiedene große Primfaktoren fi akzeptiert werden, desto mehr zus¨ atzliche Spalten m¨ ussen der Matrix angef¨ ugt werden und desto l¨ anger dauert schließlich auch die GaußElimination. Daher ist es sinnvoll, diese großen Primfaktoren durch eine obere Schranke S1 zu beschr¨ anken, die kleiner als p2m ist, z.B. S1 = 20pm . Die zweite Variation mit dem Namen Early Abort Strategy“ soll ver” hindern, dass erst langwierig durch alle Primzahlen der Faktorenbasis probedividiert wird, um hinterher doch nur festzustellen, dass das Qi nicht faktorisierbar ist.

5.5 Der Algorithmus von Morrison und Brillhart

209

Nachdem durch eine bestimmte Anzahl von Primzahlen probedividiert worden ist, u uft man, ob der restliche Faktor von Qi immer noch ¨berpr¨ gr¨oßer als ein bestimmter, vorher festgelegter Wert S2 ist, und verwirft das Qi in diesem Fall ohne weitere Probedivisionen. atten Hierbei k¨onnen zwar auch solche Qi verlorengehen, die durchaus h¨ faktorisiert werden k¨ onnen, weil sie nur aus besonders vielen kleinen Primzahlen oder sehr hohen Potenzen von kleinen Primzahlen bestehen, aber bei geschickter Wahl der Schranke S2 machen diese F¨ alle nur einen geringen Anteil aller verworfenen Qi aus und die erhebliche Zeitersparnis macht diesen Verlust wett. F¨ ur sehr große N k¨ onnen sogar mehrere solcher Abbruchm¨oglichkeiten vorgesehen werden. 5.5.4.4 Beispiel: Am Beispiel von N = 6356221 = 2111 · 3011 soll nun der Ablauf von CFRAC in seiner Grundversion erl¨ autert werden. W¨ahlt man die Schranke S = 30 , so erh¨ alt man als Faktorenbasis F = {2, 3, 5, 7, 11, 13, 29} . In der folgenden Tabelle sind f¨ ur i = 1, . . . , 22 die √ Werte Ai−1 und (−1)i Qi aus der Kettenbruchentwicklung von N aufgelistet. Zu jedem Qi ist die vollst¨ andige Primfaktorisierung aufgef¨ uhrt, und in den F¨ allen, in denen diese Zerlegung nur aus Primzahlen der Faktorenbasis besteht, sind im rechten Teil der Tabelle die Werte des entsprechenden Exponentenvektoren vi angegeben. i 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22

Ai−1 2521 15127 32775 211777 244552 456329 6338754 438862 421395 2755456 5932307 211972 6144279 30 6144429 3391163 3179371 3421415 244565 6356195 244383 488740

−780 2173 −724 2353 −2685 60 −2519 2523 −52 2331 −716 2535 −2443 900 −333 4540 −195 4492 −385 676 −1827 2420

= (−1)i Qi −1 2 3 5 7 11 13 29 2 = −2 · 3 · 5 · 13 1 0 1 1 0 0 1 0 = 41 · 53 = −22 · 181 = 13 · 181 = −3 · 5 · 179 = 22 · 3 · 5 0 0 1 1 0 0 0 0 = −11 · 229 = 3 · 292 0 0 1 0 0 0 0 0 = −22 · 13 1 0 0 0 0 0 1 0 = 32 · 7 · 37 = −22 · 179 = 3 · 5 · 132 0 0 1 1 0 0 0 0 = −7 · 349 = 22 · 32 · 52 0 0 0 0 0 0 0 0 = −32 · 37 = 22 · 5 · 227 = −3 · 5 · 13 1 0 1 1 0 0 1 0 = 22 · 1123 = −5 · 7 · 11 1 0 0 1 1 1 0 0 = 22 · 132 0 0 0 0 0 0 0 0 = −32 · 7 · 29 1 0 0 0 1 0 0 1 = 22 · 5 · 112 0 0 0 1 0 0 0 0

210

5 Faktorisierung ganzer Zahlen

In den Zeilen 14 und 20 handelt es sich dabei um Nullvektoren, weil (−1)14 Q14 = 302 und (−1)20 Q20 = 262 Quadratzahlen sind. Sie f¨ uhren aber beide wegen

√ x = A13 = 30, y = √Q14 = 30, x − y = 0, ggT(x − y, N ) = N x = A19 = 6356195, y = Q20 = 26, x − y = 6356169, ggT(x − y, N ) = 1

nur zu trivialen L¨ osungen und k¨ onnen daher verworfen werden. Aus den restlichen Exponentenvektoren (ohne v14 und v20 ) wird eine 9×8 -Matrix gebildet, in welcher nach linear abh¨ angigen Zeilen gesucht wird. Sie wird um eine 9×9 -Einheitsmatrix erg¨ anzt, damit nach der Gauß-Elimination die Zusammensetzungen der linearen Abh¨angigkeiten nachvollzogen werden k¨ onnen. Die Elimination mod 2 wird an folgender Matrix durchgef¨ uhrt: i −1 2 3 5 7 11 13 29 i = 1 1 1 0 1 1 0 0 1 0 1 6 0 0 1 1 0 0 0 0 0 8 0 0 1 0 0 0 0 0 0 9 1 0 0 0 0 0 1 0 0 12 0 0 1 1 0 0 0 0 0 17 1 0 1 1 0 0 1 0 0 19 1 0 0 1 1 1 0 0 0 21 1 0 0 0 1 0 0 1 0 22 0 0 0 1 0 0 0 0 0

6 0 1 0 0 0 0 0 0 0

8 0 0 1 0 0 0 0 0 0

9 12 17 19 21 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1

Nach beendeter Gauß-Elimination enthalten die Zeilen 9, 12, 17 und 22 im linken Teil der Matrix nur noch Nullen. An den Positionen der Einsen im rechten Teil der Matrix l¨ asst sich ablesen, durch welche Zeilen-Additionen diese Nullzeilen zustandegekommen sind: Die Nullzeile in Zeile 9 wurde beispielsweise durch Addition der Zeilen 1, 6 und 9 gebildet. Also ist (−1)1+6+9 Q1 Q6 Q9 eine Quadratzahl. Man berechnet daher " x = A0 A5 A8 mod N = 6354661, y = Q1 Q6 Q9 = 1560, erh¨alt damit aber nur die triviale L¨ osung ggT(x − y, N ) = 1 . i −1 2 3 5 7 11 13 29 i = 1 1 1 0 1 1 0 0 1 0 1 6 0 0 1 1 0 0 0 0 0 8 0 0 0 1 0 0 0 0 0 9 0 0 0 0 0 0 0 0 1 12 0 0 0 0 0 0 0 0 0 17 0 0 0 0 0 0 0 0 1 19 0 0 0 0 1 1 1 0 1 21 0 0 0 0 0 1 0 1 0 22 0 0 0 0 0 0 0 0 0

6 0 1 1 1 1 0 0 1 1

8 0 0 1 0 0 0 1 1 1

9 12 17 19 21 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1

5.5 Der Algorithmus von Morrison und Brillhart

211

Als n¨achstes liest man aus den Zeilen 12 und 17 ab, dass (−1)6+12 Q6 Q12 bzw. (−1)1+17 Q1 Q17 Quadratzahlen sind. Sie liefern aber beide wegen √ x = A5 A11 mod N = 6355831, y = √Q6 Q12 = 390, x = A0 A16 mod N = 6355831, y = Q1 Q17 = 390, ebenfalls nur die triviale L¨ osung ggT (x − y, N ) = 1 . Schließlich f¨ uhrt die Kombination (−1)6+8+22 Q6 Q8 Q22 aus Zeile 22 mit x = A5 A7 A21 mod N = 956424, y =

" Q6 Q8 Q22 = 19140

zu dem gesuchten nichttrivialen Teiler ggT (x − y, N ) = 2111 . 5.5.5 Aufwandsabsch¨ atzung Die bisher gr¨ undlichste Analyse der asymptotischen, erwarteten Laufzeit von CFRAC stammt von Carl Pomerance [Po3]: Die Wahl der Schranke S hat einen wesentlichen Einfluss auf die Laufzeit, da sie die Anzahl m der Primzahlen in der Faktorenbasis bestimmt, von welcher abh¨angt, wieviele Probedivisionen pro Qi durchgef¨ uhrt werden m¨ ussen und wie umfangreich schließlich die Matrix ist, auf der die GaußElimination vorgenommen wird. Man definiert daher genau wie bei der Analyse von ECM f¨ ur reelles x > e die Funktion √ L(x) := e log x log log x und nimmt an, dass S = L(N )α ist, wobei f¨ ur den Exponenten α > 0 ein optimaler Wert gefunden werden soll. √ Die √ Werte Qi ∈ [0, 2 N ] werden mit Hilfe der Kettenbruchentwicklung von N deterministisch erzeugt. F¨ ur die Analyse von CFRAC m¨ ochte man aber annehmen k¨ onnen, dass sie a hnlich verteilt sind wie zuf¨ a llig gezogene ¨ Zahlen aus diesem Intervall. Insbesondere m¨ ochte man annehmen k¨ onnen, dass der Anteil der durch die Probedivisionen vollst¨ andig zerlegbaren Qi dem von zuf¨allig gezogenen Zahlen entspricht. Dem steht entgegen, dass f¨ ur bestimmte N die Periode der Kettenbruchentwicklung so kurz ist, dass sie gar nicht gen¨ ugend verschiedene faktorisierbare Qi enth¨ alt. In anderen F¨ allen werden ungew¨ ohnlich viele Qi produziert, die nur aus großen Primteilern bestehen und daher nicht zerlegt werden k¨onnen, oder die Faktorenbasis enth¨ alt zu wenig Primzahlen. Und bei manchen N f¨ uhren die L¨ osungen x, y der Kongruenz x2 ≡ y 2 mod N besonders h¨aufig zu trivialen Teilern von N . kann man jeweils dadurch begegnen, dass man √ Diesen Widrigkeiten √ kN statt N entwickelt, wobei k eine kleine, quadratfreie ganze Zahl ist. Als Voraussetzung f¨ ur seine Laufzeitanalyse formuliert Pomerance daher die folgenden Annahmen:

212

5 Faktorisierung ganzer Zahlen

N

Es gibt eine Konstante N0 ∈ , so dass f¨ ur N ≥ N0 folgendes gilt: 1.) Es gibt eine Zahl k√∈ Z mit 1 ≤ k ≤ log2 N , so dass die Periode des Kettenbruchs von kN mindestens die L¨ ange N 1/100 hat. 2.) F¨ ur diese Zahl k und f¨ ur ein beliebiges α , 1/10 < α < 1 , gilt (kN/p) = 1 f¨ ur mindestens 1/3 aller Primzahlen p ≤ L(N )α . √ aherung von kN ist und Qi = A2i−1 − 3.) Wenn Ai /Bi die i -te N¨ 2 kN Bi−1 , dann sind in der Hinsicht, dass ein bestimmter Anteil von ihnen alle Primfaktoren √ unter einer bestimmten Schranke besitzt, die Qi im Intervall √ [0, 2 kN ] genauso verteilt wie die gesamten ganzen Zahlen in [0, 2 kN ] . 4.) L¨asst man den Algorithmus CFRAC so lange laufen, bis 1 + "log2 N # Paare x, y mit x2 ≡ y 2 mod kN erzeugt sind, so gilt f¨ ur mindestens eines dieser Paare x ≡ ±y mod N . Der Einfachheit halber wird von nun an k = 1 angenommen. agt n¨ aherungsweise Die Anzahl der Primzahlen p ≤ L(N )α betr¨ L(N )α L(N )α = L(N )α+o(1) = √ α log(L(N ) ) α log N log log N

f¨ ur N → ∞.

Ein Drittel davon ist ebenfalls L(N )α+o(1) . Mit der zweiten Annahme von Pomerance werden also zum Erstellen der Matrix m = L(N )α+o(1) vollst¨andig faktorisierte Werte Qi ben¨ otigt. Unter der dritten Annahme folgt mit dem Satz von Canfield, Erd¨ os und Pomerance, auf den schon bei der Analyse von ECM Bezug genommen wurde, dass die Wahrscheinlichkeit, dass sich ein Qi vollst¨ andig in Primzahlen ≤ S = L(N )α zerlegen l¨ asst, f¨ ur N → ∞ den folgenden Wert hat: L(N )−(4α)

−1

+o(1)

Der Exponent −(4α)−1 + o(1) im Gegensatz zu −(2α)−1 + o(1) bei ECM erkl¨art sich hierbei dadurch, dass sich die Qi wie zuf¨ allige, positive √ ganze Zahlen < 2 N verhalten, anstatt ≤ N . Es ist also zu erwarten, dass −1 L(N )α+(4α) +o(1) Qi -Werte erzeugt werden m¨ ussen, damit m = L(N )α+o(1) davon vollst¨ andig in Primzahlen der Faktorenbasis zerlegt werden k¨ onnen. F¨ ur die Erzeugung eines einzelnen Qi veranschlagt man den Aufwand O(log2 N ) = L(N )o(1) und f¨ ur die Probedivisionen eines Qi durch s¨ amtliche m Primzahlen der Faktorenbasis L(N )α+o(1) .

5.5 Der Algorithmus von Morrison und Brillhart

213

Multipliziert man diese Zeiten mit der Anzahl von Qi -Werten, die insgesamt erzeugt und getestet werden m¨ ussen, so ergibt dies f¨ ur das Erstellen der Matrix insgesamt die erwartete Laufzeit L(N )2α+(4α)

−1

+o(1)

.

Die Gauß-Elimination auf dieser L(N )α+o(1) × L(N )α+o(1) -Matrix ben¨ otigt einen Aufwand von L(N )3α+o(1) . Addiert man die Zeiten f¨ ur das Erstellen der Matrix und die GaußElimination, so folgt mit der Annahme von Pomerance f¨ ur CFRAC eine gesamte Laufzeit von −1 L(N )max{2α+(4α) ,3α}+o(1) . −1 alt man √Minimiert man den Ausdruck max{2α + (4α) , 3α} , so erh¨ 1/ 8 als optimale Wahl f¨ ur α . Die asymptotische, erwartete zeitliche √ Komplexit¨at von CFRAC in der Grundversion mit S = L(N )1/ 8 ist also √ 2+o(1)

L(N )

f¨ ur N → ∞ .

Bei Verwendung der Large Prime Variation“ k¨ onnen zus¨ atzlich zu den ” Qi , die nur aus Primzahlen der Faktorenbasis bestehen, auch noch diejenigen Qi verwendet werden, die einen einzigen, einfachen Primteiler aus dem Intervall zwischen S = L(N )α und S1 ≤ L(N )2α besitzen. atzlichen FaktorisierungsMan erh¨alt diese faktorisierten Qi ohne zus¨ aufwand, so dass auch hier die Faktorisierung eines einzelnen Qi die Zeit L(N )α+o(1) ben¨ otigt. Obwohl bei dieser Variation ein gr¨ oßerer Anteil von Qi -Werten vollst¨ andig in Primzahlen der Faktorenbasis zerlegt werden kann als in der Grundversion, betr¨ agt die asymptotische Wahrscheinlichkeit f¨ ur die Faktorisierbarkeit eines Qi ebenfalls nur L(N )−(4α)

−1

+o(1)

.

Der Zuwachs betrifft also nur das o(1) “ im Exponenten von L(N ) . ” Da mit der Large Prime Variation“ mehr Primzahlen in den Zerlegun” gen vorkommen k¨ onnen, stellt sich die Frage, um wieviel komplexer die Gauß-Elimination dadurch wird. Muss sie nun etwa auf einer L2α+(1) × L2α+o(1) -Matrix statt auf einer α+o(1) L × Lα+o(1) -Matrix durchgef¨ uhrt werden ? Um dies zu vermeiden, schl¨ agt Pomerance ein Verfahren vor, das er cull“ nennt (etwa: Kahlschlag): Man ordnet die zerlegten Qi ’s nach ihrem ” jeweils gr¨oßten Primteiler. Dann geht man genau einmal durch die Reihe der dazugeh¨origen Vektoren v . Jedes v , das seine letzte 1 nicht an der selben Position wie eines seiner beiden benachbarten v ’s hat, wird sofort gel¨oscht.

214

5 Faktorisierung ganzer Zahlen

Wenn aber n Vektoren ihre letzte 1 an der selben Stelle haben, wird der erste davon jeweils modulo 2 zu den folgenden n − 1 Vektoren addiert, wodurch deren letzte 1 wegf¨ allt. Da jedes Qi h¨ ochstens einen Primteiler > S = L(N )α besitzt, bleiben nach diesem ersten Ausd¨ unnen nur noch Vektoren u ¨brig, bei denen alle zu den Primteilern > S = L(N )α geh¨ origen Koordinaten 0 sind, so dass die Matrix auf L(N )α+o(1) Spalten reduziert werden kann. Dieser einmalige Durchgang durch die maximal L(N )2α+o(1) großen Primzahlen ben¨otigt eine Laufzeit von h¨ ochstens L(N )2α+o(1) und wird deshalb bei weitem von der Komplexit¨ at L(N )3α+o(1) der Gauß-Elimination dominiert. Da das Erstellen der Matrix und die Gauß-Elimination mit Large Pri” me Variation“ zumindest asymptotisch die gleiche Komplexit¨ at besitzt wie ohne, betr¨agt die erwartete zeitliche Komplexit¨ at von CFRAC mit Large ” Prime Variation“ ebenfalls L(N )

√ 2+o(1)

f¨ ur N → ∞ .

F¨ ur die Early Abort Strategy“ fand Pomerance folgende optimalen √ ” 1/28 Werte: Nach Probedivision jedes einzelnen Qi ’s bis L(N ) u uft ¨berpr¨ man, ob der restliche Kofaktor noch gr¨ oßer als S2 = N 1−1/7 ist. Wenn dies der Fall ist, wird die Probedivision f¨ ur dieses Qi abgebrochen. Die asymptotische zeitliche Komplexit¨ at von CFRAC mit einer Abbruchm¨ oglichkeit betr¨agt dann √ L(N ) 7/4+o(1) f¨ ur N → ∞. Man kann bei der Zerlegung der Qi ’s auch mehrere solcher Abbruchm¨oglichkeiten vorsehen. F¨ ur eine Early Abort Strategy“ mit n Ab” bruchm¨oglichkeiten gibt Pomerance eine zeitliche Komplexit¨ at von √ L(N ) 3/2+1/(2n+2)+o(1) f¨ ur N → ∞. L¨asst man dabei n → ∞ gehen, so dr¨ uckt das die zeitliche Komplexit¨ at von CFRAC herab auf einen idealen Wert von √ L(N ) 3/2+o(1) f¨ ur N → ∞ . Je nach Strategie hat man also eine Algorithmus mit dem erwarteten zeitlichen Aufwand (mit einem γ zwischen 32 und 2 ) √ √ L(N ) γ+o(1) = e γ log N log log N +o(1) f¨ ur N → ∞ .

5.6 Verwendung der Algorithmen

215

5.6 Verwendung der Algorithmen Carl Friedrich Gauß (1777-1855) hatte die Idee, ganze Zahlen mit Hilfe der Theorie der bin¨aren quadratischen Formen zu faktorisieren [Gau]. Daniel Shanks gelang es, aus dieser Theorie einen Algorithmus zu entwickeln, der relativ einfach auf Computern implementiert werden kann [Sha]. Er stellte diesen Algorithmus mit dem Namen Square Forms Factorization (SQUFOF) im Jahre 1975 auf einem AMS-Meeting in San Antonio vor. Die diesem Algorithmus zugrundeliegende Theorie ist sehr umfangreich weshalb dieser Algorithmus hier nicht besprochen wird. Die bisher wohl ausf¨ uhrlichste Behandlung der zugrundeliegenden Theorie und des Algorithmus von Shanks finden sich in [Bue]. Andere Algorithmen werden in den bekanntesten ComputeralgebraProgrammen nicht verwendet. Der Aufbau der Faktorisierungsfunktion ifactor in Maple ist etwa der folgende: 1.) Probedivision bis 1699, 2.) Primalit¨atstest, 3.) Wurzelziehen, 4.) Pollard-(p − 1) mit Schranke S = 2000 , 5.) Probedivision bis 100 000, 6.) Weitere Methoden nach Wahl (2.Parameter von ifactor; Wenn nichts angegeben wird, wird der Kettenbruchalgorithmus von Morrison und Brillhart verwendet): a) pollard“ Pollard-ρ-Algorithmus, ” b) lenstra“ Lenstras ECM-Algorithmus, ” c) squfof“ D. Shanks Algorithmus mit quadratischen Formen. ” Der Aufbau der Funktion FactorInteger in Mathematica ist ¨ ahnlich: 1.) Probedivision, 2.) Pollard-(p − 1), 3.) Pollard Rho, 4.) Probedivision, und es gibt noch eine zus¨ atzliche Funktion FactorIntegerECM, die mit elliptischen Kurven arbeitet. F¨ ur eine feste Schranke S findet der Pollard-(p − 1) Algorithmus kleinere bis mittlere Teiler in O(n2 ) Schritten. Durch die vorgeschalteten Probedivisionen wird dieser Algorithmus in Maple erstmals bei der Faktorisierung von 2941189 aufgerufen und scheitert zum ersten Mal bei 12007001 = 4001 · 3001. Sein Einsatz als erster nichttrivialer Algorithmus erscheint also sinnvoll. Die Laufzeit von Pollard-ρ h¨ angt von der Gr¨ oße der Teiler p von N ab. Dieser Algorithmus scheint damit besonders geeignet f¨ ur mittelgroße Teiler.

216

5 Faktorisierung ganzer Zahlen

Die Laufzeit des Morrison-Brillhart-Algorithmus ist unabh¨ angig von der Gr¨oße der Teiler. Sie h¨ angt nur von der Gr¨oße von N ab. Dieser Algorithmus erscheint damit g¨ ur den Fall, dass N zwei Primteiler von √unstig f¨ der Gr¨oßenordnung von N besitzt. Da dieser Algorithmus asymptotisch schneller als Pollard-ρ ist und man a priori nichts u ¨ber eventuelle Primteiler weiß, wird er von Maple auch folgerichtig als erste Wahl angeboten. Lenstras ECM-Algorithmus und der erw¨ ahnte Algorithmus SQUFOF sind von ¨ahnlicher asymptotische Laufzeit wie CFRAC und werden deshalb in Maple als Alternativen angeboten, die man im Falle des Scheiterns von CFRAC zu Rate ziehen kann. Neuere Versionen von Mathematica, Magma und anderen Systemen bieten zus¨ atzlich zu den oben genannten Verfahren das so genannte quadratische Sieb (QS) an. Dieses wurde Anfang der 80er Jahre von Carl Pomerance in [Po3] vorgestellt und war ab da der schnellste bekannte Faktorisierungs-Algorithmus, bis dann Anfang der 90er Jahre das Zahlk¨orper-Sieb (number field sieve, NFS abgek¨ urzt) bekannt wurde [LMP]. Urspr¨ unglich war das NFS nur f¨ ur Zahlen der speziellen Bauart N = rt − s geeignet, wobei r, t ∈ , s ∈ Z und r und s dem Betrag nach klein sind. Es wurden und werden große Anstrengungen unternommen, das NFS auf beliebige Zahlen zu zu verallgemeinern. Inzwischen gibt es lauff¨ ahige Implementierungen dieses so genannten GNFS (general number field sieve=verallgemeinertes Zahlk¨ orper-Sieb; siehe etwa [Zay]), die aber noch nicht Eingang in die g¨angigen Computeralgebra Programme gefunden haben. Das GNFS ist mit einem Aufwand von √ 3 2 e1.9223 log N (log log N ) f¨ ur N → ∞

N

asymptotisch das schnellste bekannte Verfahren zur Faktorisierung ganzer Zahlen. Bis zur Gr¨ oße von ungef¨ ahr 100 Dezimalen ist aber das quadratische Sieb mit dem gr¨oßeren asymptotischen Aufwand von √ L(N ) = e log N log log N f¨ ur N → ∞ immer noch u ¨berlegen. Die Mathematica-Entwickler haben in der neuesten Version CFRAC durch die Version PMPQS (multiple polynomial quadratic sieve with single large prime variation) von QS ersetzt, die nach ihren Angaben bei Primteilern zwischen 5 und 40 Ziffern ca. 40-80mal schneller als CFRAC ist. Das quadratische Sieb wird im folgenden Abschnitt erl¨autert.

5.7 Das quadratische Sieb

217

5.7 Das quadratische Sieb 5.7.1 Die Grundidee Die Grundidee des quadratischen Siebs (und auch des NFS) ist die gleiche wie bei CFRAC. Es werden ganze Zahlen x und y gesucht, die Gleichung (5.14) erf¨ ullen, also x2 ≡ y 2 mod N , f¨ ur die aber x ≡ ±y mod N gilt. Mit ggT(x − y, N ) oder ggT(x + y, N ) findet man dann einen nichttrivialen Teiler von N . W¨ahrend bei CFRAC aber geeignete x und y mit Hilfe von Kettenbruchentwicklungen gesucht werden, wird f¨ ur QS das Polynom √ f (x) = (x + " N #)2 − N (5.30) verwendet. ahlt, dass das Produkt Angenommen x1 , x2 , . . . xk werden derart gew¨ f (x1 ) · . . . · f (xk ) ein Quadrat y 2 ist. Sei weiterhin √ √ √ x = (x1 + " N #)(x2 + " N #) . . . (xk + " N #) , dann gilt √ √ x2 = (x1 + " N #)2 · . . . · (xk + " N #)2 y 2 = f (x1 ) · . . . · f (xk ) √ √ = [(x1 + " N #)2 − N ] · . . . · [(xk + " N #)2 − N ] √ √ = (x1 + " N #)2 · . . . · (xk + " N #)2 + Vielfache von N , d.h. modulo N sind diese beiden Ausdr¨ ucke gleich, erf¨ ullen also (5.14). Um passende xi zu erhalten, werden Zahlen in einem Interval [−M, M ] , dem so genannten Siebintervall, mit einer von N abh¨ angigen Schranke M u uft, ob sie u ¨berpr¨ ¨ber einer bestimmten Menge kleiner Primzahlen zerfallen. Die Zusammensetzung dieser Menge, die wie bei CFRAC Faktorenbasis genannt wird, wird nun erl¨ autert. 5.7.2 Die Faktorenbasis Die Faktorenbasis F besteht aus Primzahlen p , die m¨ ogliche Teiler der Funktionswerte f (x) sind, und der Zahl −1 , da die untersuchten Zahlen auch negativ sein k¨ onnen. Aus der Definition von f folgt dann, dass f¨ ur Primzahlen p aus der Faktorenbasis gilt √ (x + " N #)2 ≡ N mod p , d.h. N ist ein quadratischer Rest modulo p .

218

5 Faktorisierung ganzer Zahlen

Da die Faktorenbasis nicht zu große Primzahlen enthalten sollte, gibt man sich eine von N abh¨ angige obere Schranke B f¨ ur ihre M¨ achtigkeit vor. Diese Schranke B und Gr¨ oße des Siebintervalls M haben erheblichen Einfluss auf die Laufzeit des gesamten Algorithmus und m¨ ussen entsprechend geschickt gesetzt werden. Ist diese Vorarbeit geleistet, f¨ ullt man die Faktorenbasis (außer mit der −1 , die immer dabei ist) mit kleinen Primzahlen p , so dass jeweils N ein quadratischer Rest modulo p ist. Die l¨asst sich mit Hilfe des bereits im Abschnitt u ¨ber den Algorithmus von Morrison und Brillhart eingef¨ uhrten Legendre-Symbols (N/p) erreichen. Die Berechnung kann etwa mit der oft Euler-Kriterium genannten Formel 5.5.4.2 erfolgen. 5.7.3 Das Sieben In der Siebphase werden nun Zahlen f (x) gesucht, die komplett u ¨ber der Faktorenbasis zerfallen. Dazu kann man dem Siebintervall [−M, M ] eine zuf¨allig gew¨ahlte Zahl x entnehmen, f (x) berechnen, und pr¨ ufen, ob sich diese Zahl vollst¨andig mit den Elementen der Faktorenbasis zerlegen l¨ asst. Hat man ausreichend viele dieser vollst¨ andig zerlegbaren Funktionswerte gefunden, versucht man diese so zu kombinieren, dass in dem Produkt alle Exponenten von den beteiligten Elementen der Faktorenbasis gerade sind, also ein vollst¨andiges Quadrat vorliegt. ¨ Ahnlich wie bei CFRAC f¨ uhrt das auf ein lineares Gleichungssystem u ¨ber Z2 : sind p1 < . . . < pm die Primzahlen der Faktorenbasis F und ei,0 ei,1 ei,2 p1 p 2

f (xi ) = (−1)

. . . pemi,m ,

so ordnet man diesem f (xi ) einen bin¨ aren Vektor vi = (αi,0 , αi,1 , αi,2 , . . . , αi,m ) ∈ Zm+1 2 zu, mit den Koordinaten αi,j = ei,j mod 2 . Ein Produkt verschiedener f (xi ) ist genau dann ein vollst¨ andiges Quadrat, wenn die Summe der zugeh¨origen vi der Nullvektor ist. 5.7.3.1 Beispiel: F¨ ur N = 152769431 kann man etwa B = 13 und M = 2197 w¨ahlen. Damit ist f (x) = x2 + 24718x − 24550 und z.B. F = {−1, 2, 5, 11, 13, 17, 19, 23, 31, 71, 79, 109, 113} eine geeignete Faktorenbasis. F¨ ur das aus dem Siebintervall zuf¨ allig gezogene x = 1002 ergibt sich dann f (x) = 25746890 = 2 · 5 · 13 · 23 · 79 · 109 , d.h. dieser Wert zerf¨ allt vollst¨ andig in Faktoren aus der Faktorenbasis. Der bin¨ are Exponentenvektor dazu ist (0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0) .

5.7 Das quadratische Sieb

219

Schreibt man die gefundenen Exponentenvektoren hintereinander als Spalten in eine Matrix A , so bekommt man sicher eine nichttriviale L¨ osung des homogenen linearen Gleichungssystems A ·  = 0 u ¨ber Z2 , wenn man mehr Spalten als Zeilen, also mehr als B St¨ uck, hat. Der L¨ osungsvektor  liefert dann die f (xi ) , deren Produkt ein Quadrat Das bisher geschilderte Verfahren ist allerdings noch viel zu aufw¨ andig und l¨asst sich noch sehr viel effektiver gestalten. Zuerst einmal gilt es, m¨ oglichst viele Probedivisionen f¨ ur die Zerlegung der f (xi ) zu vermeiden. Außerdem kann man probieren, die dabei auftretenden Zahlen noch kleiner zu bekommen. Da f (x) ein einfaches quadratisches Polynom ist, kann man sich eine ahlen und die zwei Wurzeln der Primzahlen pi aus der Faktorenbasis ausw¨ zi1 , zi2 ∈ {0, 1, . . . , pi − 1} von f (x) mod pi berechnen. Damit weiß man dann aber, dass f¨ ur k ∈ Z auch alle Werte zi1 + kpi und zi2 + kpi Nullstellen von f (x) mod pi sind. Auf diese Weise kann man ohne Probedivisionen von sehr vielen Zahlen im Siebintervall auf einmal feststellen, dass sie durch pi teilbar sind. Dieser Idee verdankt das Verfahren seinen Namen. Da das Siebintervall meist zu groß ist, um alle Werte auf einmal zu untersuchen, k¨onnte man sich jetzt ein gewisses Teilintervall davon vornehmen und alle Funktionswerte f (zi1 + kpi ) und f (zi2 + kpi ) aus diesem Bereich durch die h¨ ochste enthaltene Potenz von pi teilen. Macht man das f¨ ur alle pi aus der Faktorenbasis, so steht am Schluss an der Stelle der v¨ ollig u ¨ber der Faktorenbasis zerfallenden Funktionswerte jeweils eine 1 . Protokolliert man in einem Vektor jeweils mit, durch welche pi und wie oft man schon geteilt hat, so hat man dazu auch gleich den passenden Vektor (ei,0 , . . . , ei,m ) . Am Anfang dieses Verfahrens steht jeweils die Berechnung der Wurzeln √ zi1 , zi2 des quadratischen Polynoms f (x) = (x + " N #)2 − N modulo pi . Dazu muss man die Quadratwurzel von N modulo pi berechnen k¨ onnen. Dies kann z.B. mit dem nach Shanks und Tonelli benannten Algorithmus geschehen, der jetzt beschrieben wird (vgl. etwa [Gon] f¨ ur andere M¨ oglichkeiten). Der so genannte Shanks-Tonelli-Algorithmus berechnet die Quadratwurzel aus einer Zahl a modulo einer Primzahl p . Da das nur f¨ ur einen quadratischen Rest modulo p geht, also f¨ ur (a/p) = 1 , weiß man nach dem p−1 Euler-Kriterium, dass dann a 2 ≡ 1 mod p gelten muss. Ist das der Fall, so zerlegt man p − 1 in p − 1 = s · 2e mit ungeradem s und e ∈ . Zus¨atzlich sucht man sich irgendein Nichtquadrat n , also ein p−1 Element mit n 2 ≡ −1 mod p . Damit setzt man

N

w := a

s+1 2

, b := as , g = ns , r = e .

Mit diesen Werten gilt dann w2 = as+1 = b · a . Ist b ≡ 1 mod p , so ist w gerade die gesuchte Quadratwurzel.

220

5 Faktorisierung ganzer Zahlen

Die Chancen daf¨ ur stehen gut, denn e

k

e

b2 = (as )2 = as2 = ap−1 ≡ 1 mod p ⇒ ord b = 2m mit m < e Ist m doch nicht 0 , so kann man die Ordnung mit dem folgenden Trick schrittweise absenken und so doch noch das Gew¨ unschte erreichen. Setze w = w · g 2

r−m−1

, g = g2

r−m

, b = b · g  , r = m .

(5.31)

Mit diesen neuen Gr¨ oßen gilt dann  r−m−1 2 r−m 2 = a · b · g2 = a · b w = w · g 2 und dieses neue b hat jetzt h¨ ochstens die Ordnung 2m−1 , denn b

2m−1

= b · g2

r−m 2

m−1

= b2

m−1

m−1

≡ −1 mod p und

denn wegen ord b = 2m ist b2 g2

r−1

= (ns )2

r−1

= ns2

g2

r−1

e−1

≡ (−1) · (−1) = 1 mod p ,

=n

p−1 2

≡ −1 mod p

Reicht dies immer noch nicht, d.h. ist m − 1 = 0 , so benennt man um zu w ← w , b ← b , g ← g  , r ← m und wiederholt dieses Verfahren, d.h. macht mit (5.31) weiter. Wurzel aus a modulo einer Primzahl p procedure ShanksTonelli(a, p) p−1

if a 2 mod p = 1 then Return ( kein Quadrat“) ” end if s ← p − 1; e ← 0 while ZRest(s, 2) = 0 do s ← 2s ; e ← e + 1 end do

Z

# Eingabe: a ∈ , p prim # Ausgabe: w mit w2 ≡ a mod p

s+1

w ← a 2 mod p; b ← as mod p; g ← ns mod p r ← e mod p; m ← log2 (ord(b, p)) while m = 0 do ρ ← 2r−m−1 ; g  ← g 2ρ mod p; b ← bg  mod p w ← wg ρ mod p; r ← m mod p; m ← log2 (ord(b, p)) w ← w  ; b ← b ; g ← g  ; r ← r  end do Return(w) end

5.7.3.2 Beispiel: √ Wie im letzten Beispiel sei N = 152769431 und f (x) = (x + " N #)2 − N . Ist etwa p = 13√, so muss zur Berechnung der Wurzeln von f die Quadratwurzel N mod p berechnet werden.

5.7 Das quadratische Sieb

221

Der Shanks-Tonelli-Algorithmus startet also mit p = 13 und a = p−1 N ≡ 9 mod 13 . Wegen a 2 ≡ 1 mod p ist die Berechnung der Quadratwurzel m¨ oglich. Nun zerlegt man p − 1 = 12 in s · 2e = 3 · 22 . Ein Nichtquadrat mod 13 ist etwa n =√2 . Damit ergibt sich w ≡ 3 , b ≡ 1 , g ≡ 8 , r ≡ 2 mod 13 , d.h. N mod 13 ≡ w = 3 wurde bereits im ersten Schritt des Shanks-Tonelli-Algorithmus berechnet. √ Wegen " N # = 12359 ≡ 4 ergeben sich die Nullstellen von f (x) mod 13 also aus x + 9 = ±3 zu z1 = 1 und z2 = 7 . Arbeitet man mit der Faktorenbasis F des letzten Beispiels (also 13 an der 5ten Stelle), so kann man bei den x-Werten 1 + 13k und 7 + 13k mit k ∈ Z jeweils f (x) durch 13 teilen und an der 5ten Stelle des zugeh¨ origen Exponentenvektors 1 addieren. Da nat¨ urlich f (x) den Primteiler 13 mehrfach enthalten kann, k¨onnte man bei den resultierenden Werten auch nochmals die Teilbarkeit testen und den Faktor solange aus f (x) herausziehen und im Exponentenvektor addieren, bis der Rest teilerfremd zu 13 ist. In der folgenden Tabelle wurde das so gemacht. Im Anschluss an das Beispiel wird eine schnellere Variante diskutiert. Mit der letzten Primzahl der √ aktuellen Faktorenbasis, p = 113 , gelingt die Berechnung von N mod p erst nach einmaliger Anwendung von (5.31): Zuerst zerlegt man p−1 = 112 in s·2e = 7·24 . Ein Nichtquadrat mod 113 ist etwa n = 3 . Damit ergibt sich w ≡ 1 , b ≡ 15 , g ≡ 40 , r ≡ 4 mod 113 . x

f (x) Primteiler

40 59 113 202 566 631 686 844 1002 1150 1332 1522 1535 1554 1876 1983

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Exponentenvektor (0, (0, (0, (0, (0, (0, (0, (0, (0, (0, (0, (0, (0, (0, (0, (0,

1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0,

1, 0, 0, 1, 0, 0, 0, 0, 1, 2, 2, 1, 1, 0, 0, 0,

0, 1, 0, 1, 0, 3, 1, 0, 0, 2, 0, 1, 1, 0, 2, 0,

1, 1, 0, 1, 1, 2, 0, 0, 1, 0, 0, 2, 1, 1, 0, 4,

1, 0, 1, 0, 0, 0, 1, 1, 0, 3, 1, 0, 0, 0, 2, 1,

1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 2, 1, 0, 0, 0, 0,

1, 2, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0,

0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 2, 1, 0,

0, 0, 0, 0, 2, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0,

0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0,

0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1,

0) 0) 0) 1) 0) 0) 0) 1) 0) 0) 1) 1) 0) 0) 0) 0)

222

5 Faktorisierung ganzer Zahlen

  Wegen b ≡ 1 mod p bekommt man √ mit (5.31) w ≡ 18 , b ≡ 1 ,   g ≡ 98 und r ≡ 2 mod 113 , d.h. N mod 113 ≡ 18 . √ Mit " N # = 12359 ≡ 42 mod 113 ergeben sich die Nullstellen von f (x) mod 113 also aus x + 42 = ±18 zu z1 = 53 und z2 = 89 . Siebt man etwa die Zahlen von 1 bis 2000 durch, so finden sich am Ende die auf der Vorseite gezeigten interessanten Eintr¨ age im Siebarray: Diese Exponentenvektoren, mod 2 genommen, kommen als Spalten in die Koeffizientenmatrix des zu l¨ osenden Gleichungssystems. Das im Beispiel beschriebene Testen von Funktionswerten auf mehrfache Teilbarkeit durch eine Primzahl ist so nat¨ urlich noch viel zu aufw¨ andig. Da viele der betrachteten Zahlen nicht quadratfrei u ¨ber der Faktorenbasis sind, kann man zur Vermeidung von teuren Probedivisionen zwei m¨ ogliche Ans¨atze verfolgen. Eine M¨ oglichkeit liefert der Satz von Hensel, der es erm¨oglicht aus Nullstellen von f mod p auch die von f mod pt zu berechnen. Man kann aber auch das Sieben nach h¨ oheren Potenzen von p weglassen und am Schluss nicht nur die Funktionswerte betrachten, die zu 1 reduziert wurden, sondern all die, die unter einer gewissen Schranke liegen. F¨ ur das Hensel-Lifting in diesem einfachen Fall ur die betrachtete √ muss f¨ Primzahl pi aus der Faktorenbasis ggT(2(x + " N #), pi ) = 1 sein. Ist das der Fall, so setzt man startend mit t = 1 f¨ ur jede der beiden Nullstellen z (t) = zi1 und z (t) = zi2 mod pi jeweils v = f (z (t) )/pti ∈ und damit

N

b=−

2(z (t)

v √ mod pi und z (t+1) = z (t) + b·t . + " N #)

Dieses z (t+1) ist dann eine Nullstelle von f mod pt+1 und damit auch jedes z (t+1) + kpt+1 mit k ∈ Z . i das betrachtete Man l¨asst das k ∈ Z so laufen, dass z (t+1) + kpt+1 i Teilintervall des Siebintervalls durchl¨ auft, teilt die Funktionswerte durch pi und addiert 1 im zugeh¨ origen Exponentenvektor. Dann setzt man t um 1 hoch und wiederholt dieses Verfahren bis zu einem geeigneten tmax . Auch im oben ausgeschlossenen Fall pi = 2 kann man mit der folgenden ¨ Uberlegung relativ einfach h¨ ohere Potenzen von 2 in f (x) finden. Da man N√ als ungerade voraussetzen kann, gilt 2|f (x) falls 2 ein Teiler von x + " N # ist. Man kann leicht nachrechnen, dass sogar gilt 8|f (x) falls N ≡ 1 mod 8 , 4|f (x) falls N ≡ 5 mod 8 und 2|f (x) falls N ≡ 3 oder 7 mod 8 . Um große Zahlen m¨ oglichst zu vermeiden, wird beim quadratischen Sieb auch statt mit den Zahlen selbst nur mit ihren 2 -L¨ angen (Bitl¨ ange) gerechnet. Das Siebarray wird dann jeweils nicht mit f (x) , sondern mit der 2 -L¨ange von f (x) belegt und statt der Divisionen durch die Primfaktoren aus der Faktorenbasis werden deren vorher bestimmte 2 -L¨ angen abgezogen.

5.7 Das quadratische Sieb

223

Da die 2 -L¨angen nicht genau die Logarithmen zur Basis 2 sind, sondern die ganzzahlig aufgerundeten Werte, entstehen so Rundungsfehler. Am Ende des Siebprozesses steht somit an der Stelle der v¨ ollig zerfallenden Funktionswerte oft nicht die der 1 entsprechende 0 , sondern ein betragsm¨aßig kleiner Wert. Je nachdem, ob man auch nach gr¨ oßeren Potenzen der pi gesiebt hat, oder nicht, muss man hier also eine geeignete Schranke bereitstellen, so dass mit großer Wahrscheinlichkeit die Funktionswerte, die nach dem Sieben betragsm¨aßig unter dieser Schranke liegen, diejenigen sind, die vollst¨ andig u agt in [Si2] z.B. vor, nur ¨ber der Faktorenbasis zerfallen. Silverman schl¨ 2er-Potenzen wie oben beschrieben zu behandeln, bei den restlichen Primzahlen aber nur die erste Potenz zu sieben und dann alle Werte unter der Schranke 12 n(N ) + n(M ) − 2 n(pmax ) zu nehmen, wobei pmax die gr¨ oßte Primzahl in der Faktorenbasis sei und T ein Faktor zwischen 1.5 und 2.5 bei einer Gr¨oße von 30-60 Bit von N . 5.7.4 Mehrere Polynome Nochmals eine deutliche Beschleunigung des Algorithmus kann erreicht werden, indem man nicht nur das in (5.30) angegebene Polynom, sondern mehrere Polynome mit den gleichen Grundeigenschaften verwendet. Die wesentliche Eigenschaft des bisherigen f (x) war dabei √ f (x) ≡ (x + " N #)2 mod N . Deshalb setzt man f (x) = ax2 + 2bx + c an und bestimmt die ganzzahligen ¨ Koeffizienten so, dass die entsprechende Aquivalenz af (x) ≡ (ax + b)2 mod N erf¨ ullt ist. Es folgt direkt, dass dann b2 − ac ≡ 0 mod N sein muss. Da f (x) mod N ein Quadrat sein soll, nimmt man f¨ ur a ein Quadrat, denn dann folgt das aus obiger Gleichung automatisch. M¨ochte man wieder ein symmetrisches Siebintervall [−M, M ] nehmen, so sollen nat¨ urlich die Werte von f (x) nicht zu groß werden, denn dann rechnet es sich leichter mit ihnen und die Wahrscheinlichkeit, dass sie v¨ ollig u oßer. ¨ber der Faktorenbasis zerfallen, ist gr¨ Das quadratische Polynom f (x) hat sein Minimum bei x = − ab mit 2 2 dem Wert f (− ab ) = c − ba = ac−b . An den R¨andern des Intervalls hat man a 2 dagegen die Werte aM ± 2bM + c . Soll das ein m¨ oglichst kleines, symmetrisches Intervall sein, so kann man wegen b2 − ac ≡ 0 mod N etwa b2 − ac = N w¨ ahlen, denn damit hat man das negative Minimum f (− ab ) = − Na .

224

5 Faktorisierung ganzer Zahlen

Damit an den beiden R¨ andern bei ±M ungef¨ ahr der entgegengesetzte Wert Na angenommen werden kann, sollte das Minimum − ab ungef¨ ahr in der Mitte dazwischen liegen. Dies kann man erreichen, indem man 0 < b < a ⇐⇒ 0 < ab < 1 nimmt. Dann sind die Werte an den beiden Intervallr¨andern aM 2 ± 2bM + c ungef¨ ahr gleich, also ≈ aM 2 + c alt man damit schließlich Aus der Bedingung Na ≈ aM 2 ± 2bM + c erh¨ 6 N a2 M 2 +ac a2 M 2 +b2 −N 2N −b2 2 ≈ aM + c = = , also a ≈ a a a M2 . Nach dieser Diskussion, erscheint es also sinnvoll, die Gr¨ oßen a , b und c wie folgt zu bestimmen: √ 2N a ein Quadrat mit a ≈ und (N/p) = 1 f¨ ur jeden Primteiler p|a , M 2 2 b mit 0 < b < a und b ≡ N mod a , c mit b − ac = N . beginnt mit der Suche nach einem geeigneten a etwa bei 6 Man √ 2N 2 ur alle Primteiler p dieser Zahl (N/p) = 1 , weicht " M # . Gilt nicht f¨ man zu benachbarten Quadratzahlen aus. Zu einem festen a sind nun L¨ osungen b von x2 − N ≡ 0 mod a gesucht. Dies heißt, dass f¨ ur jeden Primteiler p von a gelten muss x2 − N ≡ 0 mod p . Jede dieser quadratischen Gleichungen hat 2 L¨ osungen, denn es wurde ja bereits im ersten Schritt daf¨ ur gesorgt, dass (N/p) = 1 ist. Diese L¨ osungen kann man wieder mit dem Shanks-Tonelli-Algorithmus berechnen. Mit Hensel-Lifting kann man diese L¨ osungen f¨ ur p = 2 liften, so dass man je zwei L¨osungen von x2 − N ≡ 0 mod p2 bekommt. Kombiniert man die L¨osungen zu verschiedenen Primteiler-Quadraten mit Hilfe des Chinesischen Restsatzes, so bekommt man zu einem festen a mit  Primfaktoren 2 m¨ogliche Werte f¨ ur b . √

2N ≈ 34.9 . 5.7.4.1 Beispiel: F¨ ur N = 152 769 431 und M = 500 ist M Da f¨ ur das n¨ achstgelegene Quadrat 36 der Primteiler p = 3 mit (N/p) = −1 dabei w¨ are, kann man etwa a = 25 w¨ ahlen, denn (N/5) = 1 . Das Polynom x2 − N hat mod 5 die zwei Wurzeln 1 und 4 . Einmaliges Hensel-Lifting liefert die L¨ osungen 9 und 16 mod 25 . Mit diesen beiden Werten erh¨ alt man zwei geeignete Polynome zu diesem Wert von a :

f = 25x2 + 18x − 6 110 774 oder f = 25x2 + 32x − 6 110 767 Betrachtet man dagegen N = 1 524 212 467 931 und M = 1000 , so ist etwa a = 4225 = (5 · 13)2 ein geeigneter Wert. Das Polynom x2 − N hat mod 5 die zwei Wurzeln 1 und 4 . Einmaliges HenselLifting liefert die L¨ osungen 9 und 16 mod 25 . Dagegen bekommt man mod 13 die Wurzel 6 und 7 oder mod 132 geliftet 45 und 124 .

5.7 Das quadratische Sieb

225

Kombination dieser L¨ osungen mit dem Chinesischen Restsatz liefert die 4 Ergebnisse 1566 , 3166 , 1059 und 2659 mod a , was auf die 4 Polynome 4 225x2 + 3 132x − 360 759 767 , 4225x2 + 6 332x − 360 757 975 , 4 225x2 + 2 118x − 360 760 082 , 4225x2 + 5 318x − 360 758 674 f¨ uhrt. ¨ Ublicherweise geht man so vor, dass man wie im Beispiel zu einem festen a alle m¨oglichen Werte b und c berechnet, und m¨ oglichst auf mehreren Prozessoren oder Rechnern parallel mit diesen Polynomen siebt. Es wird berichtet [Gua], dass Implementierungen mit k Computern dabei fast kmal so schnell wie auf einem Computer sind. Durch die beschriebene Wahl der Koeffizienten a , b und c kommt man mit einer kleineren Faktorenbasis und einem kleineren Siebarray aus, als bei dem anf¨anglichen Polynom (5.30). Nach dem Sieben ist bei großem N das zu l¨ osende lineare Gleichungs√ 2 system u ¨ber Z2 ein Problem. Silverman empfiehlt etwa B ≈ L(N ) 4 und M ≈ B 3 . F¨ ur die Zahl RSA-129, eine 129-stellige Zahl, die aus zwei großen Primfaktoren besteht, w¨ aren das fast 2 Millionen Primzahlen. Bei der Faktorisierung im Jahr 1994 mit dem quadratischen Sieb wurden zwar nicht ganz so viele verwendet ( nur“ 524 339, s. [AGL] ), das resultierende Glei” chungssystem der Gr¨ oße 569 466 mal 524 339 war aber immer noch gigantisch. Trotzdem ließ sich dieser letzte Schritt auf einem einzigen Computer erledigen. Die Siebphase dominiert also deutlich. F¨ ur lineare Gleichungssysteme dieser Gr¨oßenordnung u osungsverfahren ¨ber Z2 sind spezialisierte L¨ n¨otig, etwa der Algorithmus von Wiedemann [Wie].



An der Siebphase dieser Faktorisierung nahmen etwa 600 Personen mit insgesamt ca. 1600

Computern teil. Trotzdem dauerte das fast 8 Monate

6 Polynom–Faktorisierung

6.1 Motivation In vielen Teilgebieten der Mathematik st¨ oßt man auf das Problem, ein gegebenes Polynom faktorisieren zu m¨ ussen. W¨ ahrend man in der Codierungstheorie oder Kryptographie eher Polynome u orpern fakto¨ber endlichen K¨ risieren muss (etwa f¨ ur die Konstruktion zyklischer Codes, die Berechnung der Anzahl von Punkten auf elliptischen Kurven oder den ’index calculus’ Algorithmus zum Berechnen diskreter Logarithmen), braucht man f¨ ur andere Teilgebiete der Computeralgebra (etwa als Vorarbeit f¨ ur die Summation oder Integration) auch die Faktorisierung von Polynomen u ¨ber Ringen der Charakteristik 0 . F¨ ur den Anfang wird man dort univariate Polynome u ¨ber Q oder algebraischen Erweiterungen Q[α], Q[α, β] betrachten. Nach dem in 4.6.6.2 bewiesenen Satz von Gauß kann sich bei Q[x] auf Z[x] beschr¨ anken. Eine erste Idee, wie man Polynome aus Z[x] faktorisieren k¨ onnte, wird meist nach Kronecker benannt, obwohl sie wohl bereits 90 Jahre vor Kronecker (1793) von Friedrich von Schubert entwickelt worden war (Schuberts Idee beruht ihrerseits auf einer von Newton in seiner Arithmetica Universalis (1707) angegebenen Methode zum Auffinden linearer und quadratischer Faktoren). Die Grundidee ist dabei denkbar einfach: Es sei f (x) ∈ Z[x] mit deg f (x) = n . Zerf¨ allt f (x) in Faktoren g(x) , h(x) ∈ Z[x] , also f (x) = g(x)h(x) , so hat einer dieser Faktoren $ % Grad ≤ n2 . Es sei also m = n2 und g(x) der gesuchte Faktor vom Grad ≤ m . Zur Bestimmung von g(x) berechnet man m + 1 ganzzahlige Funktionswerte f (a0 ) , . . . , f (am ) f¨ ur beliebige ai ∈ Z f¨ ur i = 0 , . . . , m . Wegen g(x)|f (x) in Z[x] gilt insbesondere g(ai )|f (ai ) f¨ ur i = 0 , . . . , m in Z . Da jedes f (ai ) nur endlich viele Teiler in Z hat, gibt es auch nur endlich viele M¨oglichkeiten f¨ ur die g(ai ) . Mittels Polynominterpolation durch die St¨ utzpunkte (a0 , g(a0 )) , . . . , (am , g(am )) l¨ asst sich das zugeh¨ orige g(x) bestimmen. Kandidaten mit nicht-ganzzahligen Koeffizienten werden nat¨ urlich sofort verworfen. Weiterhin kommen nur Polynome in Frage, deren Leitkoeffizient den Leitkoeffizienten von f teilt.

228

6 Polynom–Faktorisierung

Hat ein Kandidat all diese Tests bestanden, k¨ onnte man vor der n¨ otigen Polynomdivision noch f¨ ur eine weitere Zahl am+1 ∈ Z pr¨ ufen, ob g(am+1 ) den Funktionswert f (am+1 ) teilt. Nun kann man mit Polynomdivision nachpr¨ ufen, ob dieses g(x) wirklich ein Teiler von f (x) in Z[x] ist. Die ai wird man bei per Hand gerechneten Beispielen nat¨ urlich so w¨ ahlen, dass f (ai ) m¨ oglichst wenige ganzzahlige Faktoren hat, um die Suche etwas k¨ urzer zu gestalten. 6.1.1 Beispiel: f (x) = x5 +x4 +x2 +x+2 soll mit der Kronecker-Methode faktorisiert werden. Ganzzahlige Nullstellen von f (x) sind Teiler des konstanten Terms 2 von f (x) , hier also ±1 oder ±2 . Wegen x −2 −1 0 1 2 f (x) −12 2 2 6 56 hat f (x) keine Linearfaktoren. Man muss also nur noch nach Teilern g(x) vom Grad 2 suchen. W¨ ahlt man als St¨ utzpunkte −1 , 0 , 1 aus, so ergibt sich das folgende Bild: ai −1 0 1 f (ai ) 2 2 6 g(ai ) ±1; ±2 ±1; ±2 ±1; ±2; ±3; ±6 Es gibt 4 · 4 · 8 = 128 m¨ ogliche St¨ utzstellenkombinationen, von denen je zwei auf (bis auf das Vorzeichen) gleiche Polynome f¨ uhren. Das Polynom g(x) mit den Funktionswerten 1 , 1 , 3 an den vorgegebenen St¨ utzstellen ist x2 +x+1 . Polynomdivision zeigt, dass dies ein Teiler von f (x) ist. Der zweite Faktor ist also h(x) = x3 − x + 2 . Jeder der gefundenen Faktoren muss grunds¨ atzlich nach dem gleichen Verfahren weiter untersucht werden. Im vorliegenden Fall hat man allerdings schon die vollst¨ andige Faktorisierung in irreduzible Faktoren erreicht. 6.1.2 Beispiel: Sehr viel Arbeit kann man sich sparen, wenn man ein Polynom zuerst modulo verschiedener Primzahlen p faktorisiert und aus diesen Faktorisierungen versucht, Informationen u ¨ber die Grade der irreduziblen Faktoren des Polynoms zu erhalten. Zerf¨allt f (x) u allt dieses Polynom modu¨ber Z in Faktoren, so zerf¨ lo einer Primzahl p mindestens in Faktoren gleichen Grades, wenn nicht gerade p den Leitkoeffizienten von f teilt.

6.1 Motivation

Einige Faktoren k¨ onnen nat¨ urlich u ¨ber len. Es sei etwa

Zp

229

auch noch weiter zerfal-

f (x) = x8 + x6 − 3x4 − 3x3 + 8x2 + 2x − 5 . Die vollst¨andige Faktorisierung modulo 13 ist f (x) ≡ (x4 + 2x3 + 3x2 + 4x + 6)(x3 + 8x2 + 4x + 12)(x + 3) mod 13 , die vollst¨andige Faktorisierung modulo 2 ist dagegen f (x) ≡ (x6 + x5 + x4 + x + 1)(x2 + x + 1) mod 2 . Wie man auf diese Faktorisierungen kommt, wird im folgenden noch beschrieben werden. Jetzt sei nur soviel gesagt, dass diese Faktorisierungen sehr viel leichter zu bekommen sind, als Faktorisierungen u ¨ber Z . Aus der Faktorisierung mod 2 liest man hier ab, dass f (x) entweder irreduzibel ist, oder in zwei Faktoren vom Grad 6 und 2 zerf¨ allt. Dies steht aber im Widerspruch zur Faktorisierung mod 13, nach der nur die Faktorgrade 8 ; 7, 1 ; 5, 3 ; 4, 4 ; 4, 3, 1 m¨ oglich sind. Das Polynom f (x) ist also irreduzibel u ¨ber Z und damit auch u ¨ber Q . Kroneckers Methode ist als Algorithmus sehr schlecht: Die Wahl der ¨ St¨ utzpunkte ai h¨ angt sehr vom Geschick des Einzelnen ab. Uberl¨ asst man das einem Rechner, so wird man meist große Funktionswerte f (ai ) mit vielen Primteilern bekommen. Das Zerlegen in Primteiler ist sehr aufw¨ andig (exponentiell in der β L¨ange der zu faktorisierenden Zahl; vgl. den entsprechenden Abschnitt). Dann m¨ ussen noch Interpolationspolynome durch all diese Primteiler berechnet werden und mit Polynomdivision getestet werden. Insgesamt h¨ angt der Rechenaufwand f¨ ur Kroneckers Methode exponentiell vom Grad des betrachteten Polynoms ab. Der Algorithmus ist f¨ ur praktische Anwendungen uninteressant. Wie im letzten Beispiel gezeigt, ist es oft g¨ unstig zur Faktorisierung eines Polynoms von Z in den endlichen K¨ orper Zp (p prim) auszuweichen. Es gibt Methoden, die aus solchen Faktorisierungen die vollst¨ andige Faktorisierung u ateren ¨ber Z berechnen. Diese Methoden werden in einem sp¨ Abschnitt noch behandelt. Abgesehen von diesem Interesse an der Faktorisierung ganzzahliger Polynome, ist – wie bereits erw¨ ahnt – die Faktorisierung von Polynomen u ¨ber endlichen K¨orpern auch f¨ ur sich selbst genommen in vielen mathematischen Teilgebieten von gr¨ oßtem Interesse.

230

6 Polynom–Faktorisierung

6.2 Quadratfreie Faktorisierung Es sei R ein faktorieller Ring (also insbesondere nullteilerfrei und wie immer kommutativ mit 1). Der Polynomring R[x] ist dann ebenfalls faktoriell (vgl. den Abschnitt u ¨ber Ideale). Bevor man die Faktorisierungs-Algorithmen der folgenden Abschnitte auf ein gegebenes Polynom f ∈ R[x] anwendet, zerlegt man f zun¨ achst in seinen Inhalt Inh(f ) und den verbleibenden primitiven Anteil pA(f ) und durchsucht beide nach mehrfachen Faktoren. Dann zerlegt man f in nicht unbedingt irreduzible Faktoren, die keine mehrfachen Teilfaktoren mehr enthalten. Da R[x] faktoriell ist, l¨ asst sich f (x) ∈ R[x] \ (R∗ ∪ {0}) eindeutig∗ als f (x) = a · f1µ1 · f2µ2 · . . . · fkµk

(6.1)

mit verschiedenen irreduziblen, paarweise nicht assoziierten Faktoren f1 , . . . , fk ∈ R[x] \ R und a ∈ R∗ , µ1 , . . . , µk ∈ schreiben. Das Polynom f heißt quadratfrei, wenn in seiner Zerlegung in Primelemente (=irreduzible Polynome) gilt: µ1 = . . . = µk = 1 . Unter der quadratfreien Faktorisierung von f (x) ∈ R[x] \ (R∗ ∪ {0}) versteht man eine Darstellung der Form

N

m f = c · q1 · q22 · . . . · qm

(6.2)

mit c ∈ R∗ und quadratfreien, paarweise teilerfremden q1 , . . . , qm ∈ R[x] . Das Produkt q1 · q2 · . . . · qm heißt der quadratfreie Anteil von f (und ist auch wirklich quadratfrei). Die Faktoren der quadratfreien Faktorisierung sind bis auf Assoziiertheit eindeutig. Die Quadratfreiheit l¨ asst sich ¨bernmit Hilfe der formalen Ableitung u pr¨ ufen. Definiert man f¨ ur f := i=0 ai xi ∈ R[x] die formale Ableitung  

f :=

n−1 

(i + 1)ai+1 xi ∈ R[x],

i=0

so pr¨ uft man leicht nach, dass  eine R-lineare Abbildung von R[x] ist. Es gilt die Produktregel (f g) = f  g+f g  und die Kettenregel (f (g)) = f  (g) · g  . Ist char(R) = 0  , so ist genau dann f  = 0 , wenn f ∈ R ist. Ist dagegen char(R) = p = 0 , so ist f  = 0 genau dann der Fall, wenn f von der Gestalt g(xp ) mit einem g ∈ R[x] ist. ∗

ν

ν

ν

d.h.: ist f (x) = b · g1 1 · g2 2 · . . . · g  eine andere Zerlegung, so ist  = k und (m¨ oglicherweise

nach Umnummerierung) gi und fi sind assoziiert mit νi = µi f¨ ur i = 1, . . . , k .  (i + 1) bedeutet hier 1R + . . . + 1R mit i + 1 Summanden.  Folgt f¨ ur n ∈ und r ∈ R aus nr = 0 stets r = 0 , so hat R die Charakteristik 0 , i.Z.

N

char(R) = 0 . Gibt es r = 0 mit dieser Eigenschaft, so ist char(R) das kleinste n dazu.

6.2 Quadratfreie Faktorisierung

231

N

Ist g ∈ R[x] \ R irreduzibel und g m mit m ∈ ein Teiler von f in R[x] , also etwa f = g m · h , so gilt nach Ketten- und Produktregel f  = m · g m−1 · g  · h + g m · h = g m−1 · (m · g  · h + g · h ) . Da der Klammerausdruck in R[x] ist, ist g m−1 ein Teiler von f in R[x] . Ist m ein Vielfaches von char(R) , so verschwindet der erste Summand in der Klammer und es ist sogar g m ein Teiler von f . Da auf jeden Fall g m−1 ein Teiler von ggT(f, f  ) ist, wenn g m das Polynom f teilt, folgt insbesondere, dass f quadratfrei ist, wenn ggT(f, f  ) = 1 ist. Die Umkehrung davon ist auf jeden Fall richtig, wenn char(R) = 0 ist. Ist n¨amlich g m die gr¨ oßte Potenz von g , die in f aufgeht, so ist g m−1 die gr¨oßte Potenz von g , die in ggT(f, f  ) aufgeht, da g kein Teiler des nichtverschwindenden Ausdrucks m · g  · h ist. Im Fall char(R) = p k¨ onnte p dagegen ein Teiler von m sein, so dass sogar g m den ggT(f, f  ) teilt. orper Zp (tp ) Das Standardbeispiel f = xp − tp eines u ¨ber dem Unterk¨ des K¨orpers Zp (t) irreduziblen (und somit quadratfreien) Polynoms mit f  = 0 und damit ggT(f, f  ) = f zeigt, dass bei char(R) = 0 i.Allg. nicht aus der Quadratfreiheit eines Polynoms auf ggT(f, f  ) = 1 geschlossen werden kann. In der Algebra wird gezeigt, dass K¨ orper der Charakteristik 0 und endliche K¨orper vollkommen◦ sind und dass bei diesen K¨ orpern aus der Quadratfreiheit auf ggT(f, f  ) = 1 geschlossen werden kann. Der angegebene Fall eines unendlichen K¨ orpers der Charakteristik p ist also die einzige Chance f¨ ur ein solches Gegenbeispiel. m Ist f = c i=1 qii eine quadratfreie Faktorisierung, so ist die formale Ableitung ⎞ ⎞ ⎛ ⎛ m m m m m      ⎟ ⎟ ⎜ ⎜ j−1  f = c · qii ⎠ = c · qii−1 · ⎝ j · qj · qi ⎠ ⎝j · q j · q j · j=1

i=1 i=j

i=1

j=1

i=1 i=j

m m i−1 ein gemeinsamer Teiler von f = c i=1 qii−1 · mDamit ist  i=1 qi  i=1 qi und f und damit auch ein Teiler von ggT(f, f ) . F¨ ur char(R) = 0 ist dieser Teiler bereits ein ggT , denn ist h ein irm reduzibler Teiler von ur i=1 qi , so ist h ein Teiler von genau einem qj f¨ j = 1, . . . , m , denn die qj sind ja paarweise teilerfremd vorausgesetzt.



K heißt vollkommen, wenn jedes irreduzible f ∈ K[x] nur einfache Wurzeln in K hat.

232

6 Polynom–Faktorisierung

m m  i=1 qi , die Damit teilt h die m − 1 Summanden von j=1 j · qj · i=j m  dieses qj enthalten, den Summanden j · qj · i=1 qi und damit die ganze i=j m i=1 qi von Null verschieden, also Summe aber nicht: es sind j , qj und i=j m i=1 qi wegen der Nullteilerfreiheit auch deren Produkt; der Teiler h teilt i=j

nicht und wegen der Quadratfreiheit von qj teilt er auch qj nicht∗ . Es gilt also 

ggT(f, f ) =

m 

qii−1

i=1

m  f , qi f¨ ur char(R) = 0 . =c· ggT(f, f  ) i=1

(6.3)

Nun sei char(R) = p  . Als faktorieller Ring ist R insbesondere nullteilerfrei. Ist R zus¨atzlich endlich (dies sei im folgenden jeweils vorausgesetzt), so ist R automatisch ein K¨ orper (vgl. etwa [Me1]) und somit vollkommen. m m  i=1 qi , bei Es verschwinden diejenigen Summanden in j=1 j · qj · i=j denen die Charakteristik p den Index j teilt. Ist h wieder ein irreduzibler m Teiler von ur j = i=1 qi und somit auch Teiler eines bestimmten qj f¨ 1, . . . , m , so teilt h die Summe nur, wenn durch diesen Effekt genau der Term ohne qj verschwindet, d.h. wenn p den Index j teilt. Ist das nicht der Fall, mso folgert man wie im Fall char(R) = 0 , dass h den Summanden j · qj · i=1 qi nicht teilt. i=j

Damit ist gezeigt ggT(f, f  ) =

m 

qii

i=1 p|i

m 

 f qi f¨ ur char(R) = p. (6.4) = c · ggT(f, f  ) i=1 m

qii−1 ,

i=1 pi

pi

ur f (x) wie in (6.2) gegeben Setzt man im Fall char(R) = 0 f¨  ) f¨ ur j = 1, 2, . . . F0 := f , Fj := ggT(Fj−1 , Fj−1

so ist nach (6.3) Fj =

m 

qii−j , also insbesondere Fj = 1 f¨ ur j > m .

i=j

Berechnet man nun Gj := so ist Gj =

∗ 

m i=j

Fj−1 f¨ ur j = 1, . . . , m , Fj

qi und damit Gj f¨ ur j = 1, . . . , m . qj = Gj+1

Es ist char(R) = 0 und deshalb der Quotientenk¨ orper vollkommen ⇒ ggT(qj , qj ) = 1 Die Schreibweise char(R) = p suggeriert bereits, dass es sich bei der Charakteristik um eine

Primzahl handelt. Dies ist bei nullteilerfreien Ringe mit 1 in der Tat immer der Fall.

6.2 Quadratfreie Faktorisierung

233

Normale ggT-Berechnungen k¨ onnten dabei in den Quotientenk¨ orper K := Q(R) von R f¨ uhren, sollen aber hier jeweils so durchgef¨ uhrt werden, dass sie auch wieder Ergebnisse in R[x] liefern (vgl. den Abschnitt u ¨ber die ggT-Berechnung bei Polynomen). Ein einfacher Algorithmus im Fall char(R) = 0 f¨ ur die quadratfreie Zerlegung eines primitiven (d.h. Inh(f ) = 1 ) Polynoms f sieht dann etwa wie die folgende Prozedur SQF aus. Quadratfreie Faktorisierung im Fall char(R) = 0 procedure SQF(f ) i←1 temp1 ← f d temp1 ) temp2 ← ggT(temp1 , dx d temp2 ) temp3 ← ggT(temp2 , dx while temp2 = temp3 do temp1 ·temp3 qi ← temp2 2

i←i+1 temp1 ← temp2 ; temp2 ← temp3 d temp3 ← ggT(temp2 , dx temp2 ) end do m←i temp1 ·temp3 qm ← temp2

m2

Return (

j=1

# Alle aufgerufenen Unterroutinen # wie ggT oder Division sollen # Ergebnisse in R[x] liefern. # # Eingabe: primitives f ∈ R[x] # mit char(R) = 0 # Ausgabe: quadratfreie Faktorisierung # wie in (6.2) #

qjj )

end

6.2.1 Beispiel: Gegeben sei das primitive Polynom f ∈ R = Z[x] durch f =2x17 − 11x16 + 26x15 − 69x14 + 120x13 − 120x12 + 228x11 + 54x10 + 42x9 + + 273x8 − 534x7 − 117x6 − 884x5 − 790x4 − 584x3 − 732x2 − 144x − 216 .

Seine quadratfreie Zerlegung ist f = (2x − 3) · (x2 − 2x − 3)2 (x4 + 3x2 + 2)3 . Soll das Polynom 12 · f quadratfrei zerlegt werden, so k¨ onnte man auch seinen Inhalt 12 zerlegen in 3·22 und die Faktoren dieser Zerlegung sinngem¨ aß auf die oben berechnete Zerlegung seines primitiven Teils verteilen. $ %2 $ %3 12 · f = [3(2x − 3)] · 2(x2 − 2x − 3) (x4 + 3x2 + 2) . Die quadratfreie Zerlegung des Inhalts von f wird von den meisten Computeralgebra-Systemen nur soweit gemacht, wie dieser noch polynomial ist: die 12 im letzten Beispiel wird etwa von Maples convert(f,sqrfree)-Befehl nicht mehr zerlegt.

234

6 Polynom–Faktorisierung

Die vollst¨andige Zerlegung von f in irreduzible Faktoren lautet (2x − 3)(x + 1)2 (x − 3)2 (x2 + 1)3 (x2 + 2)3 . 6.2.2 Beispiel: Es sei f (x, y) := 27x8 −36x6 y+81x5 y 2 +54x6 +12x4 y 2 −108x3 y 3 −72x4 y+36xy 4 +24x2 y 2 .

Betrachtet man x als Hauptvariable, d.h. R = Z[y] und Z[x, y] = R[x] , so ist Inh(f ) = 3 ∈ R und die quadratfreie Zerlegung von pA(f ) ist (x4 + 2x2 + 3y 2 x)(3x2 − 2y)2 , so dass die quadratfreie Zerlegung von f lautet [3(x4 + 2x2 + 3y 2 x)][(3x2 − 2y)]2 . Betrachtet man y als Hauptvariable, d.h. R = Z[x] und Z[x, y] = R[y] , so ist Inh(f ) = 3x ∈ R und quadratfreie Zerlegung von pA(f ) ist (x3 + 2x + 3y 2 )(3x2 − 2y)2 ,

was aber insgesamt auf die gleiche quadratfreie Zerlegung von f wie oben f¨ uhrt. Eine Verbesserung zu SQF stammt von D. Y. Y.Yun und wurde in [Yun] ¨ angegeben. Die Verbesserung zielt vor allem darauf ab, durch kleine Anderungen an dem hier gezeigten Algorithmus die ggT-Berechnungen in der Schleife effektiver zu machen. f Yun betrachtet zus¨ atzlich zu dem bisher betrachteten ggT(f,f ) = c · m q aus (6.3) die Ausdr¨ u cke i=1 i ⎛ ⎛ ⎞ ⎞ m m m m  ⎟ d f f ⎜ ⎜   ⎟ j · qj · qi ⎠ und qj · qi ⎠ . =c·⎝ =c·⎝   ggT(f, f ) dx ggT(f, f ) j=1

i=1 i=j

j=1

i=1 i=j

Damit gilt 

f d f − ggT(f, f  ) dx ggT(f, f  )

⎞ ⎛ m m   ⎟ ⎜ qi ⎠ . = c · q1 · ⎝ (j − 1) · qj · j=2

(6.5)

i=2 i=j

f und dem soeben berechneten Bildet man nun den ggT von ggT(f,f ) Ausdruck, so erh¨ alt man den ersten Faktor q1 der quadratfreien Faktorisierung von f , da q2 , . . . , qm den Klammerausdruck in (6.5) nicht teilen. f als auch (6.5) durch q1 , so hat Dividiert man jetzt sowohl ggT(f,f )  m m m  i=2 qi man c · i=2 qi und c · , woraus man nach dem j=2 (j − 1) · qj · i=j gleichen Verfahren q2 berechnen kann.

6.2 Quadratfreie Faktorisierung

235

Rekursive Fortsetzung liefert die komplette quadratfreie Zerlegung von f . Damit hat man zwar eine Ableitung zus¨ atzlich zu berechnen, die zu berechnenden ggTs sind jetzt aber deutlich  einfacher. Bezeichnet ni den m Grad des Faktors qi (also n = deg(f ) = i=1 (i · ni ) ), so wird im jtenSchritt in der Schleife  bei Yun der ggT von Polynomen vom Grad m m ≤ i=j ni berechnet (statt i=j (i − j)ni bei der zuerst vorgestellten Methode). Da die Berechnung des ggT zweier Polynome vom Grad ≤ n von der Ordnung O(n2 ) ist, ben¨ otigt die Schleife bei Yun ⎛ ⎞2 m m   ⎝ ni ⎠ = O(n2 ) j=1

i=j

Operationen in R , ebenso wie die Berechnung von ggT(f, f  ) vor der Schleife. Damit ist der gesamte Algorithmus von quadratischer Ordnung, d.h. m OpR [c · q1 · q22 · . . . · qm gem¨aß (6.2) ← SQFYun (f )] = O(n2 ) Quadratfreie Faktorisierung im Fall char(R) = 0 nach Yun procedure SQFYun (f ) d f) i ← 1 ; temp1 ← ggT(f, dx f f temp2 ← temp ; temp3 ← temp 1

temp4 ← temp3 − temp2 while temp4 = 0 do qi ← ggT(temp2 , temp4 ) i←i+1 temp temp2 ← qi 2 ; temp3 ← temp4 ← temp3 − temp2 end do i Return ( j=1 qjj )

1

# # # # # # # #

Alle aufgerufenen Unterroutinen wie ggT oder Division sollen Ergebnisse in R[x] liefern. Eingabe: primitives f ∈ R[x] mit char(R) = 0 Ausgabe: quadratfreie Faktorisierung wie in (6.2)

temp3 qi

end

Setzt man im Fall char(R) = p f¨ ur f (x) wie in (6.2) gegeben  ) f¨ ur j = 1, 2, . . . F0 := f , Fj := ggT(Fj−1 , Fj−1

so ist nach (6.4) die Situation etwas komplizierter als im Fall char(R) = 0 . Um diesem Fall gerecht zu werden, ordnet man in (6.2) die Exponenten nach Restklassen mod p       2p p+1 p+2 m p+m . . . q11 qp+1 . . . q22 qp+2 . . . . . . qm f = qpp q2p q p+m . . . .

N

oßte Index, f¨ ur den es ein Dabei sei m ∈ 0 , 0 ≤ m ≤ p − 1 der gr¨ qi = 1 (qi = 0 ist in (6.2) sowieso vorausgesetzt) mit i ∈ m + pZ gibt.

236

6 Polynom–Faktorisierung

Damit liefert Anwendung von (6.4)    F0 = qii · qii · 

i≡0 mod p

F1 =

qii ·



i≡0 mod p

F2 =

Fm





·



i≡0 mod p

i≡m



·



i≡1 mod p

,

mod p

qii−1 ,

i≡m mod p

qii−2



· ... ·

i≡m

i≡2 mod p

qii−1 ·

qii



qii−1 · . . . ·

i≡2 mod p

qii−1

i≡1 mod p

qii ·



qii−1 ·



· ... ·

i≡2 mod p

i≡1 mod p

qii

i≡0 mod p

.. . =



i≡1 mod p

qii

qii−2 ,

mod p



qii−2 · . . . ·



qii−m .

i≡m mod p

i≡2 mod p

Da jetzt alle Exponenten Vielfache der Charakteristik p sind, verschwindet die n¨achste Ableitung, d.h. es ist Fm +1 = Fm . oßen Ist m ≥ 1 so berechnet man nun wie im Fall char(R) = 0 die Gr¨ F  Gj := Fj−1 f¨ u r j = 1, . . . , m und liest daraus ab j 

G1 =

qi ·

 

i≡1 mod p

i≡2 mod p

Gm

qi ,

i≡m mod p

i≡2 mod p

G2 =



qi · . . . ·



qi · . . . ·

qi ,

i≡m mod p

.. . =



qi .

i≡m mod p

Ist dagegen m = 0 , so ist f selbst eine p-te Potenz, d.h. es gibt ein Polynom g mit f = g p . Dieses g zerlegt man entsprechend quadratfrei. Durch die jetzt kompliziertere Form der Gj im Fall m ≥ 1 liefert die Gj f¨ ur j = 1, . . . , m − 1 und Hm := Gm noch Berechnung von Hj := Gj+1 nicht die gesuchten Werte qj wie im Fall char(R) = 0 . Es gilt  qi . Hj = i≡j mod p

Betrachtet man nun ggT(Hj , Fj ) =



qi f¨ ur j = 1, . . . , m ,

i≡j mod p i=j

so liest man daraus ab, dass Hj ur j = 1, . . . , m . = qj f¨ ggT(Hj , Fj )

6.2 Quadratfreie Faktorisierung

237

Damit sind die Werte q1 , . . . , qp−1 berechnet, denn qm +1 , . . . , qp−1 = 1 waren ja bereits bekannt. Vergleicht man nun die beiden Polynome m       p p qjj ggT(Hj , Fj )p = q1 qp+1 q2p+1 ...

j=1



p+1 2p+1 F0 = q1 qp+1 q2p+1 . . .



p p m p p q22 qp+2 q2p+2 . . . . . . qm q p+m q2p+m . . .











p+2 2p+2 m p+m 2p+m q22 qp+2 q2p+2 . . . . . . qm q p+m q2p+m . . .



2p 3p qpp q2p q3p . . .



so liest man daraus den Quotienten ab: f1 := m

F0

qj j=1 j

ggT(Hj , Fj )p











p+1 m p+m = qp+1 q2p+1 . . . . . . qp+m q 2p+m . . .



2p 3p qpp q2p q3p . . .



Quadratfreie Faktorisierung im Fall char(R) = p procedure SQFp(f, p) sqfp(f, p, 0, 0) end procedure sqfp(f, p, Z1 , Z2 ) i ← 1 , F0 ← f , g ← f  if g = 0 then 0 F1 ← ggT(F0 , g) , G1 ← F F1 while Fi − Fi−1 = 0 i←i+1 k ← pZ2 · (Z1 · p + i − 1) d Fi ← ggT(Fi−1 , dx Fi−1 ) Fi−1 G Gi ← Fi , Hi−1 ← Gi−1 i Hi−1 qk ← ggT(Hi−1 ,Fi−1 )

# # # # # # # # # # # # #

Die Prozedur sqfp wird von SQFp mit Z1 = Z2 = 0 gestartet und ruft sich dann mit anderen Werten Z1 , Z2 rekursiv selbst auf. Die Gr¨ oßen Z1 , Z2 kontrollieren, welche qi dabei berechnet werden. Alle nicht explizit berechneten qi seien =1 gesetzt. Alle aufgerufenen Unterroutinen wie ggT oder Division sollen Ergebnisse in R[x] liefern. Eingabe: primitives f ∈ R[x] und p = char(R) Ausgabe: quadratfr. Fakt. wie in (6.2)

end do m ← i − 1 , Hm ← Gm for i from 1 to p − 1 do k ← pZ2 · (Z1 · p + i) , qqi ← qk end do F0 sqfp( m , p, Z1 + 1, Z2 ) l=1

qq l ·ggT(Hl ,Fl ) l

else if F0 ∈ R[x] \ R then √ sqfp( p F0 , p, 0, Z2 + 1) else  Return( qii ) end if end if end

238

6 Polynom–Faktorisierung

Das Polynom f1 hat kleineren Grad als das urspr¨ ungliche f , sieht prinzipiell aber genauso aus. Damit kann man die eben beschriebenen Operationen nochmals auf f1 anwenden und erh¨ alt somit den n¨ achsten Abschnitt der quadratfreien Faktorisierung von f , n¨ amlich die Polynome qp+1 , . . . , q2p−1 . Rekursive Fortsetzung dieses Verfahrens liefert nun aus f =       p+m p 2p 3p p+1 2 p+2 m qp+1 q(+1)p+1 . . .

qp+2 q(+1)p+2 . . . . . . qp+m q(+1)p+m . . .

qp q2p q3p . . .

die Polynome qp+1 , . . . , qp+p−1 f¨ ur  = 2, 3, . . . , bis man schließlich bei d p 2p 3p fL = 0 anlangt. einem  = L mit fL = qp q2p q3p . . . und damit mit dx 2 3 Daraus kann man direkt das Polynom qp q2p q3p . . . ablesen. Dieses Polynom hat kleineren Grad als das urspr¨ unglich gegebene. Seine mit dem soeben beschriebenen Algorithmus berechnete quadratfreie Faktorisierung liefert die restlichen Faktoren qp , q2p , . . . der quadratfreien Faktorisierung von f . Es folgen eine m¨ ogliche Implementierung und ein Beispiel des Algorithmus zur Berechnung der quadratfreien Faktorisierung mod p .

6.2.3 Beispiel: Es sei f =x47 + 2x46 + x45 + x44 + 2x43 + x42 + 2x41 + x40 + 2x39 + x38 + + 2x37 + x36 + x35 + 2x34 + x33 + x32 + 2x31 + x30 + 2x26 + x25 + + 2x24 + x23 + 2x22 + x21 + x17 + 2x16 + x15 + 2x14 + x13 + 2x12 + + x8 + 2x7 + x6 + x2 + 2x + 1 ∈

Z3 [x]

Im ersten Schritt (Z1 = 0 , Z2 = 0) wird q1 = q2 = 1 berechnet. Nun ist f1 =x44 + 2x43 + x42 + 2x38 + x37 + 2x36 + 2x35 + x34 + 2x33 + 2x32 + + x31 + 2x30 + 2x29 + x28 + 2x27 + x26 + 2x25 + x24 + x23 + 2x22 + + x21 + x14 + 2x13 + x12 + x11 + 2x10 + x9 + 2x8 + x7 + 2x6 + + 2x5 + x4 + 2x3 + x2 + 2x + 1 und die Routine wird nochmals mit Z1 = 1 und Z2 = 0 aufgerufen. Dabei wird q4 = 1 , q5 = x + 1 und f2 = x42 + 2x36 + 2x33 + 2x30 + 2x27 + x24 + x21 + x12 + x9 + 2x6 + 2x3 + 1 berechnet. Wegen f2 = 0 wird x3 durch x ersetzt, Z1 = 0 , Z2 = 1 gesetzt und die Prozedur mit dem neuen f = x14 + 2x12 + 2x11 + 2x10 + 2x9 + x8 + x7 + x4 + x3 + 2x2 + 2x + 1 gestartet. Dieser Schritt liefert q3 = x2 + 1 , q6 = x3 + 2x + 2 und f1 = x6 + x3 + 1.

6.3 Der Berlekamp-Algorithmus

239

Da f1 = 0 ist, wird wieder x3 durch x ersetzt, Z1 = 0 , Z2 = 2 gesetzt und die Prozedur mit dem neuen f = x2 + x + 1 gestartet, was q9 = 1 und q18 = x + 2 liefert. Nun ist f2 = 1 und der Algorithmus ist damit beendet. Insgesamt wurde also die quadratfreie Faktorisierung (x2 + 1)3 (x + 1)5 (x3 + 2x + 2)6 (x + 2)18 des urspr¨ unglichen Polynoms f berechnet, was in diesem Fall bereits die vollst¨ andige Faktorisierung mod 3 ist. Damit wurde in diesem Fall das folgende Diagramm durchlaufen: Z1 Z2

0 1 2

0

1

q1 , q 2 → q4 , q 5  q3 , q 6 ↓ q9 , q18

(alle nicht explizit aufgef¨ uhrten qi mit i ≤ 18 werden gleich 1 gesetzt). Dieser Algorithmus l¨ asst sich ¨ ahnlich wie im Fall char(R) = 0 mit der Idee von Yun noch etwas beschleunigen, so dass man wieder mit O(n2 ) Operationen in R rechnen kann. Dies soll hier nicht weiter ausgef¨ uhrt werden.

6.3 Der Berlekamp-Algorithmus 6.3.1 Grundvariante f¨ ur kleine K¨ orper M¨ ochte man ein Polynom vom Grad n aus GF(q)[x] ( q = ps , p prim) faktorisieren, so kommen alle q n Polynome vom Grad < n als Teiler in Frage. Der einfachste, aber nat¨ urlich auch d¨ ummste Algorithmus w¨ are es, alle Kandidaten mittels Polynomdivision durchzuprobieren. Es ist klar, dass dies kein sch¨ ones Verfahren ist, da der Rechenaufwand exponentiell vom Grad des untersuchten Polynoms abh¨ angt. Berlekamps [Be1]Verdienst ist es, als erster die Anzahl der zu ankt zu haben und somit einen untersuchenden Polynome auf O(n3 · q) eingeschr¨ in n und q polynomialen Algorithmus bereitgestellt zu haben. Ist das zu faktorisierende Polynom in dichter Darstellung gespeichert, so ben¨ otigt es den Platz von s · (n + 1) = O(n log q) Elementen aus p . Betrachtet man deshalb n log q als Eingabegr¨ oße, so ist der Berlekamp-Algorithmus wegen oße. q = O(plog q ) nicht polynomial in dieser Eingabegr¨ Bevor der Algorithmus von Berlekamp vorgestellt wird, sollen noch einige aus der Algebra bekannte Fakten u orper wiederholt werden, die im ¨ber endliche K¨ folgenden ben¨ otigt werden. Wie bereits im Abschnitt u orper erw¨ ahnt, ist GF(q)∗ = GF(q)\ ¨ber endliche K¨ {0} eine zyklische Gruppe. Damit gilt f¨ ur jedes Element a dieser Gruppe nach ur jedes a ∈ GF(q) : aq = a . dem Satz von Fermat aq−1 = 1 und somit f¨

Z

240

6 Polynom–Faktorisierung

¨ Jedes K¨ orperelement ist deshalb eine Wurzel des Polynoms xq − x . Uber GF(q) zerf¨ allt dieses Polynom in Linearfaktoren



xq − x =

(x − a) .

a∈GF(q)

orper-Homomorphismus von Die Frobenius-Abbildung x → xp ist einn K¨ n n ur alle a1 , . . . , ar ∈ GF(q) . Insbesondere folgt (a1 +. . .+ar )p = ap1 +. . .+apr f¨ q . Zusammen mit a = a f¨ ur alle a ∈ GF(q) folgt f¨ ur jedes GF(q) und n ∈ h(x) ∈ GF(q)[x] : h(x)q = h(xq ) . Da GF(q)[x] ein euklidischer und damit insbesondere auch ein faktorieller Ring der Charakteristik p ist, kann jedes f (x) ∈ GF(q)[x] von positivem Grad eindeutig in der Form (6.1) geschrieben werden. Beim Faktorisieren kann man sich auf normierte Polynome beschr¨ anken, denn das Durchmultiplizieren mit dem Inversen des Leitkoeffizienten ¨ andert nichts an der Faktorisierung. Nach dem vorhergehenden Abschnitt kann man zuerst die quadratfreie Faktorisierung von f berechnen und muss dann nur noch die quadratfreien TeilPolynome faktorisieren. Nach dieser Vorarbeit hat man es mit einem normierten quadratfreien Polynom zu tun. Der Einfachheit halber wird dieses Polynom ab jetzt mit f (x) ∈ GF(q)[x] bezeichnet und es sei f = f1 · . . . · fk mit verschiedenen, irreduziblen und normierten Faktoren fi . Die Grundidee von Berlekamp ist es nun, Polynome g(x) ∈ GF(q)[x] mit

N

1 ≤ deg(ggT(f, g)) < n = deg(f ) zu finden, denn dann ist ggT(f, g) ein nichttrivialer Teiler von f . Solche Polynome g heißen f -reduzierend. Das Problem dabei ist es, geeignete Polynome g zu finden: Dazu nimmt man sich ein Polynom G , das von f geteilt wird und von dem man im Gegensatz zu f bereits eine Zerlegung in Faktoren kennt. Die ur bekannten Faktoren g1 , . . . , gm von G sind dann sicher gute Kandidaten f¨ f -reduzierende Polynome. F¨ ur die Wahl des Polynoms G erinnert man sich nun an die bekannte Faktorisierung des Polynoms



xq − x =

(x − a) .

a∈GF(q)

Substituiert man in diese Gleichung statt x ein beliebiges Polynom (x) ∈ GF(q)[x] , so erh¨ alt man (x)q − (x) =



((x) − a) .

(6.6)

a∈GF(q)

W¨ ahlt man nun also das Polynom  so, dass G(x) := (x)q − (x) durch f teilbar ist, so hat man die oben beschriebene Situation, denn von G ist ja eine Faktorisierung (nicht unbedingt in irreduzible Faktoren !) bekannt.

6.3 Der Berlekamp-Algorithmus

241

Unter den Faktoren (x) − a von G sind dabei sicher f -reduzierende Polynome, wenn deg() < deg(f ) ist. Man sucht also ein Polynom  mit den Eigenschaften deg() < deg(f ) (6.7) q ≡  mod f , Der folgende Satz zeigt, dass man schon sehr weit ist, wenn man solch ein  hat. 6.3.1.1 Satz: Es sei f (x) ∈ GF(q)[x] normiert und (x) ∈ GF(q)[x] mit q ≡  mod f und deg  > 0 . Dann gilt:



f (x) =

ggT(f (x), (x) − a).

a∈GF(q)

Beweis: ggT(f,  − a)|f ggT( − a,  − b) = 1 f¨ ur a = b ⇒ ggT(ggT(f,  − a), ggT(f,  − b)) = 1 ⇒



; ⇒

ggT(f,  − a)|f

a∈GF(q)

q ≡  mod f ⇐⇒ f |q −  =

 a∈GF(q)



( − a) ⇒ f |

ggT(f,  − a).



a∈GF(q)

Die Hauptfrage ist nun also die Anzahl der L¨ osungen von (6.7) und, falls es L¨ osungen gibt, wie man diese bekommt. Aus (6.6) und der Irreduzibilit¨ at der f1 , . . . , fk folgt, dass jeder der Faktoren fi von f eines der Polynome  − a teilt, d.h. jede L¨ osung von (6.7) erf¨ ullt (x) ≡ ai mod fi (x) , 1 ≤ i ≤ k

(6.8)

f¨ ur ein k-Tupel (a1 , . . . , ak ) von K¨ orperelementen. orperUmgekehrt kann man zu jedem beliebigen k-Tupel (a1 , . . . , ak ) von K¨ elementen eine L¨ osung  von (6.7) finden, denn nach dem Chinesischen Rest osung (x) mit deg() < deg(f ) . satz gibt es zu (6.8) eine eindeutige L¨ F¨ ur diese L¨ osung gilt (x)q ≡ aqi mod f (x) , 1 ≤ i ≤ k und damit wegen aqi = ai auch (6.7). Damit ist gezeigt, dass (6.7) genau q k L¨ osungen besitzt, denn zu jedem k-Tupel (a1 , . . . , ak ) von K¨ orperelementen geh¨ ort wegen (6.8) genau ein jeweils anderes  . Gleichung (6.7) stellt ein ganz einfaches lineares dar. Um n−1 Gleichungssystem i q  x . Wegen (x) = (xq ) das einzusehen macht man den Ansatz (x) = i i=0 heißt das, dass man die Koeffizienten in der folgenden Gleichung berechnen will 

die fi sind wegen der Quadratfreiheit paarweise teilerfremd, die erzeugten Ideale paarweise

erzeugend

242

6 Polynom–Faktorisierung n−1 

i xi =

i=0

n−1 

i xqi mod f (x) .

(6.9)

i=0

Um einen Koeffizientenvergleich durchf¨ uhren zu k¨ onnen, muss man dazu erst noch die Potenzen xqi auf der rechten Seite modulo f reduzieren. Jedes xqi ergibt nach dieser Reduktion ein Polynom vom Grad kleiner als n = deg(f ) . Die Koeffizienten der reduzierten Monome schreibt man in die so genannte Berlekamp-Matrix B = (bji ) mit 0 ≤ i, j ≤ n − 1 : qi

x



n−1 

bji xj mod f (x) , 0 ≤ i ≤ n − 1

j=0

Mit diesen Abk¨ urzungen wird (6.9) zu n−1 

j xj =

j=0

n−1  i=0

i

n−1  j=0

bji xj =

n−1 n−1  

i bji xj

j=0 i=0

Koeffizientenvergleich liefert jetzt j =

n−1 

bji i , 0 ≤ j ≤ n − 1

i=0

oder in Matrixschreibweise:

=B·

 mit

 := (0 , . . . , n−1 )t Die gesuchten Vektoren

 bilden also den Eigenraum der Matrix B zum osungsEigenwert 1, bzw. den Kern der Matrix B −En . Da es q k verschiedene L¨ polynome (x) gibt, also auch ebensoviele Vektoren

 , heißt dies, dass der Rang r der Matrix B − En gleich n − k ist, d.h. n − r ist die Anzahl der irreduziblen Faktoren von f . Das Polynom f ist genau dann irreduzibel, wenn B − En den Rang n − 1 hat. osung 1 (x) = 1 bzw.

1 = Im Kern von B − En befindet sich die L¨ (1, 0, . . . , 0)t , die aber wegen deg 1 = 0 nicht f -reduzierend und damit uninteressant ist. Die anderen Basiselemente

2 , . . . ,

k des Kerns von B −En , bzw. ihre polynomialen Entsprechungen 2 (x) , . . . , k (x) haben dann sicher Grad > 0 . Zusammen mit 6.3.1.1 sieht man, dass es zu jedem i (x) (i > 1) mindestens ein ai ∈ GF(q) gibt, so dass i (x) − ai f -reduzierend ist. Aus dem Rang von B−En weiß man im voraus, wieviele irreduzible Faktoren von f es gibt und beginnt diese nun mit der Berechnung von ggT(f (x), 2 (x) − a) f¨ ur alle a ∈ GF(q) zu suchen. Sollte man dabei nicht alle k irreduziblen Faktoren von f gefunden haben, so berechnet man jeweils den ggT der bereits gefundenen Faktoren mit 3 (x) usw. Bei diesem Prozess kommt man sicher auf die vollst¨ andige Faktorisierung von f , selbst wenn die einzelnen ggT(f (x), (x)−a) nicht unbedingt irreduzibel sind: Nach (6.8) gibt es Elemente ai1 , ai2 ∈ GF(q) mit i (x) ≡ ai1 mod f1 (x) und ur 1 ≤ i ≤ k . W¨ are ai1 = ai2 f¨ ur 1 ≤ i ≤ k , so g¨ abe i (x) ≡ ai2 mod f2 (x) f¨ es f¨ ur jede L¨ osung (x) von (6.7) ein b ∈ GF(q) mit b mod f1 (x) ≡ (x) ≡ osung (x) ist ja eine Linearkombination der i . b mod f2 (x) , denn jede L¨

6.3 Der Berlekamp-Algorithmus

243

Da gezeigt wurde, dass (6.8) f¨ ur beliebige k-Tupel (a1 , . . . , ak ) von K¨ orperelementen l¨ osbar ist, muss es auch eine L¨ osung  geben, die modulo f1 und f2 verschiedene Werte liefert. Damit gibt es also ein 1 ≤ i ≤ k mit ai1 = ai2 , was zur Folge hat, dass i (x) − ai1 zwar durch f1 , nicht aber durch f2 teilbar ist. Die irreduziblen Faktoren von f werden also im Laufe des Prozesses sicher getrennt.

Z

6.3.1.2 Beispiel: Das Polynom x8 + x4 + x3 + x2 + x + 1 soll u ¨ber 2 faktorisiert werden. Der Algorithmus SQFp liefert die quadratfreie Faktorisierung (x5 + x4 + 1)(x + 1)3 mit dem offensichtlich irreduziblen Faktor x + 1 . Man muss sich also nur noch um den ersten Faktor f := x5 + x4 + 1 k¨ ummern. Dieser ist quadratfrei mit deg f = n = 5 . Die Spalten der Matrix B sind die Koeffizienten der Polynome ur 0 ≤ i ≤ n − 1 = 4 . F¨ ur i = 0, 1, 2 ist nichts zu rechx2i mod f f¨ nen, f¨ ur i = 3, 4 ergibt sich: x6 ≡ x5 + x ≡ x4 + x + 1 , x8 ≡ x7 + x3 ≡ x4 + x3 + x2 + x + 1 asst sich dabei sehr einfach mit dem folDie Berechnung der x2i mod f l¨ genden linearen Schieberegister bewerkstelligen bzw. nach dem gleichen Verfahren als Software implementieren. Damit ist

⎛1 0 0 1 1⎞ ⎛0 0 0 1 1⎞ ⎛0 1 0 0 0⎞ 0 0 0 1 1 0 1 0 1 1 ⎜ ⎟ ⎜ ⎟ ⎜0 0 1 0 1⎟ ⎟ ⇒ B − En = ⎜ 0 1 1 0 1 ⎟  ⎜ 0 0 0 1 1 ⎟ 0 1 0 0 1 B=⎜ ⎝ ⎠ ⎝ ⎠ ⎝ ⎠ 0 0 0 0 1 0 0 1 1 1

Zeitpunkt 0 1 2 3 4 5 6 7 8 9

0 0 0 1 1 0 0 1 1 0

0 0 0 0 0 0 0 0 0 0

Speicherinhalt 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 1 1 0 0 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1

Die unterstrichenen Speicherinhalte sind die Spalten von B .

Schieberegister zu f =x5 +x4 +1

Damit ist

⎛1 0 0 1 1⎞ ⎛0 0 0 1 1⎞ ⎛0 1 0 0 0⎞ ⎜0 0 0 1 1⎟ ⎜0 1 0 1 1⎟ ⎜0 0 1 0 1⎟ ⎟ ⇒ B − En = ⎜ 0 1 1 0 1 ⎟  ⎜ 0 0 0 1 1 ⎟ B=⎜ 0 1 0 0 1 ⎝ ⎠ ⎝ ⎠ ⎝ ⎠ 0 0 0 0 1 0 0 1 1 1

0 0 0 1 1 0 0 1 1 0

0 0 0 0 0 0 0 0 0 0

Der Rang der Matrix ist r = 3 , das Polynom f zerf¨ allt in n−r = k = 2 irreduzible Faktoren. Außer der trivialen L¨ osung 1 (x) = 1 findet man aus

2 = (0 , 0 , 1 , 1 , 1)t das f -reduzierende 2 (x) = x4 + x3 + x2 .

244

6 Polynom–Faktorisierung

Wegen ggT(f , 2 −0) = x2 +x+1 und ggT(f , 2 −1) = x3 +x+1 gilt also f (x) = (x2 +x+1)(x3 +x+1) und damit ist (x2 +x+1)(x3 +x+1)(x+1)3 die vollst¨ andig faktorisierte Form des urspr¨ unglich gegebenen Polynoms u ¨ber 2 .

Z

6.3.1.3 Beispiel: Da die Werte ggT(f (x), (x) − a) nicht zwangsl¨ aufig irreduzibel sind, bekommt man die irreduziblen Teiler des untersuchten Polynoms i.Allg. nicht so direkt serviert wie im letzten Beispiel. Die Behauptung , dass man einfach so lange ggT(f (x), (x) − a) f¨ ur die verschiedenen (x) und a ∈ GF(q) berechnen muss, bis man n − r verschiedene Werte beisammen hat, ist schlichtweg falsch, wie das folgende Beispiel zeigt: Es sei f = x10 + x8 + x7 + x6 + x2 + 1 und wieder p = 2 . Dieses f ist bereits quadratfrei. Die Berechnung aller ggT(f (x), (x) − a) mit L := {x9 + x5 + x4 + x3 + x2 + x, x8 + x6 + x5 + x4 + x3 + x2 , x7 + x3 + x}





=2

 



=3

 





=4

liefert in diesem Fall die 6-elementige Menge {x3 +x+1, x4 +x+1, x6 +x4 +x+1, x5 +x4 +1, x5 +x4 +x2 +1, x7 +x3 +x+1} . Da man aus dem Rang r von B − En weiß, dass f in n − r = 4 irreduzible Faktoren zerf¨ allt, und dass die Summe der Grade dieser Faktoren nat¨ urlich gleich dem Grad n = 10 von f ist, sieht man, dass die 4 Faktoren von f nicht als Teilmenge dieser Menge erscheinen. Aus der Herleitung weiß man, dass alle irreduziblen Faktoren von f in den berechneten 6 Elementen enthalten sind und dass es zu jedem irreduziblen Faktor fi von f sowohl Elemente dieser Menge gibt, die diesen enthalten, als auch andere, die ihn nicht enthalten. Da f¨ ur ein festes  gilt ggT( − a,  − b) = 1 f¨ ur a = b , muss man diese ggTs nicht berechnen. Im vorliegenden Fall beginnt man etwa mit 2 = x9 + x5 + x4 + x3 + x2 + x , was auf K := {x4 + x + 1, x6 + x4 + x + 1} f¨ uhrt. Statt nun mit ggT(f (x), 3 (x) − a) weiterzumachen, zerlegt man die bereits berechneten Faktoren u ∈ K weiter, indem man gleich ggT(u(x), 3 (x) − a) berechnet. W¨ ahlt man 3 = x8 + x6 + x5 + x4 + x3 + x2 , so ist der erste nichttriviale (also = 1, u(x) ) Teiler, den man findet ggT(x6 + x4 + x + 1, 3 ) = x + 1 . Das Element x6 + x4 + x + 1 wird deshalb aus K gestrichen und durch 6 4 +x+1 die zwei Polynome x + 1 und x +xx+1 = x5 + x4 + 1 ersetzt. Da man jetzt erst 3 der 4 Teiler von f hat, f¨ ahrt man entsprechend rekursiv fort. Der letzte Faktor findet sich schließlich bei der Untersuchung von ggT(x5 + x4 + 1, x7 + x3 + x) = x3 + x + 1 . Man ersetzt 5 4 +1 = x2 + x + 1 und erh¨ alt x5 + x4 + 1 in K durch x3 + x + 1 und xx3+x +x+1 2 3 4 somit K = {x + 1, x + x + 1, x + x + 1, x + x + 1} . Der zeitliche Aufwand f¨ ur diese Variante des Berlekamp-Algorithmus liegt im Aufstellen der Matrix B , dem Triangulieren der n × n-Matrix B − En zur Kern-Berechnung und in den anschließenden ggT-Berechnungen.

6.3 Der Berlekamp-Algorithmus

245

Berlekamp-Algorithmus f¨ ur kleines“ GF(q) ” procedure Berle(f, q) # Kern , ggT usw. jeweils # in GF(q) bzw. GF(q)[x] . n ← deg(f ) n−1 # Li = i.tes Element von L . B ← (bji ) mit xqi ≡ j=0 bji xj mod f # f¨ ur 0 ≤ i ≤ n − 1 # Eingabe: f (quadratfrei) und K ← Kern(B − En ) , k ← dim(K) # K¨ orpergr¨ oße q . L ← Basis von K ohne 1 # K ← {f } ; i ← 1 # Ausgabe: Faktoren von f while |K| < k do for u in K do for a in GF(q) do g ← ggT(u, Li − a) K ← ((K \ {u}) ∪ {g, ug }) \ {1} if |K| = k then Return(K) end if end do end do i←i+1 end do end

Da man in diesem Algorithmus viele Operationen mit univariaten Polynomen u orpern ausf¨ uhren muss, sollte man diese in dichter ¨ber endlichen K¨ Darstellung abspeichern. Damit k¨ onnen f¨ ur die Verkn¨ upfung zweier Polynome vom Grad ≤ n jeweils O(n) (Addition und Subtraktion) bzw. O(n2 ) (Multiplikation, Division und ggT ) Operationen im endlichen K¨ orper veranschlagt werden. F¨ ur sehr großes n sollte man die Multiplikation mit dem Karatsuba-Algorithmus ( O(nlog2 3≈1,585 ) ) oder sogar mit der schnellen Fouriertransformation (allgemein O(n log n log log n) , bei Zp sogar O(n log n) , nach [Mo2] ab ca. n = 600 lohnend) erw¨ agen. Bei diesen asymptotisch schnellen Multiplikationsalgorithmen wird auch die ggT-Berechnung entsprechend schneller ( log n-faches der Multiplikation; s. [AHU]). F¨ ur das Aufstellen von B braucht man xqi mod f (x) mit i = 0, . . . , n − 1 . Dazu berechnet man erst die Potenzen xi mod f (x) f¨ ur i = 0, . . . , q analog zu obigem Schieberegister-Beispiel. Dabei erfordert jeder Schritt O(n) Additionen im K¨ orper. Der Gesamtaufwand f¨ ur die Berechnung der ersten nichttrivialen Spalte von B ist so O(nq) . Die folgenden Spalten werden 2 jeweils durch x2q = (xq ) mod f (x) , x3q = x2q · xq mod f (x) ,. . . berechnet. Dies erfordert O(n) Produkte und Reduktionen von Polynomen vom Grad ≤ n , also O(n3 ) Grundoperationen. Damit braucht das Aufstellen von B insgesamt O(nq + n3 ) K¨ orperoperationen. Die vielleicht schneller erscheinende Berechnung von xq mod f durch fortgesetztes Quadrieren und anschließende Multiplikation mit xq mod f ist nur f¨ ur großes q schneller und wird deshalb im Abschnitt u ¨ber große K¨orper verwendet.

246

6 Polynom–Faktorisierung

Das Triangulieren der Matrix B mit dem Gauß-Eliminationsverfahren ben¨otigt O(n3 ) Rechenschritte in GF(q) . Es gibt Vorschl¨ age, wie man das asymptotisch schneller machen k¨ onnte ([CoW]: O(nw ) mit w < 2, 376 ), diese erscheinen aber unpraktikabel. Besteht K bereits aus den Faktoren u1 , . . . , ur von f mit den Graden m1 , . . . , mr mit r < k und m1 + . . . + mr = n , so erfordert wegen deg Li < n die Berechnung von ggT(uj , Li − a) f¨ ur festes i , festes a und j = 1, . . . , r den Gesamtaufwand O(m1 · n + . . . + mr · n) = O(n2 ) . Dies wird in der while-Schleife maximal k · q-mal geschehen. Alle ggT-Berechnungen ben¨otigen also zusammen O(q · k · n2 ) Rechenschritte. Damit hat die Grundversion des Algorithmus von Berlekamp eine gesamte zeitliche Komplexit¨ at von O(qn2 (1 + k) + 2n3 ) = O(2n3 + n2 kq) . Da f h¨ochstens k = n Faktoren hat, ist die maximale zeitliche Komplexit¨at des Algorithmus OpGF(q) [f1 . . . fk ← Berle(f, q)] = O(n3 q) W¨ahlt man ein zuf¨ alliges Polynome f vom Grad n aus GF(q)[x] , so ist dieses mit circa der Wahrscheinlichkeit n1 irreduzibel∗ . Ist der K¨orper ausreichend groß, so kann man im Mittel Hn := 1 + 12 + . . . + n1  verschiedene, irreduzible Faktoren von f erwarten [Kn2]. Wegen n→∞ Hn − n n → γ (Euler-Konstante ≈ 0, 5772 ) folgt Hn ≈ n n . Ein zuf¨allige gew¨ ahltes Polynome f vom Grad n aus GF(q)[x] hat also im Mittel O(log n) irreduzible Faktoren, d.h. man wird bei der Grundversion des Berlekamp-Algorithmus und der Schulversion der Polynommultiplikation mit dem mittleren Aufwand O(qn2 log(n)) rechnen. Mit den oben erw¨ ahnten schnelleren Multiplikationsverfahren f¨ ur großes n ließe sich der Aufwand f¨ ur die ggT-Berechnungen auf O(n log2 (n)) und somit die maximale zeitliche Komplexit¨ at des Berlekamp-Algorithmus auf O(n3 + n2 log2 (n)q) bzw. erwartet O(n3 + n log3 (n)q) dr¨ ucken. Verwendet man etwa die polynomiale Darstellung von GF(q = ps ) u ¨ber GF(p) = Zp , so ben¨ otigt eine Addition O(s) , eine Multiplikation O(s2 ) Operationen in Zp . Je nach der Gr¨ oße von p sind diese Rechnungen in Kurzzahlarithmetik zu erledigen oder erfordern ihrerseits weitere Rechnungen in Langzahlarithmetik. Im schlimmsten Fall bedeutet dies nochmal einen Faktor (s log p)2 f¨ ur Op(Berle(f, q)) .



Es gibt

1 n

Dabei ist µ :



n

µ(d)q d ≈

N → {−1, 0, 1} d|n

1 n nq

normierte irreduzible Polynome vom Grad n [HQ], [Kn2].

die M¨ obius-µ-Funktion. Es ist µ(d) = 0 , falls die Primfaktorzer-

legung von d nicht quadratfrei ist und µ(d) = (−1)r , f¨ ur d quadratfrei mit r Primfaktoren.  Hn ist die n-te Partialsumme der harmonischen Reihe und wird als n-te harmonische Zahl bezeichnet.

6.3 Der Berlekamp-Algorithmus

247

Bei der Laufzeit kann man auch ohne Schaden noch die quadratfreie Faktorisierung hinzunehmen, da diese mit O(n2 ) Schritten von den folgenden Schritten dominiert wird. Daf¨ ur kann man dann die bisherige Voraussetzung quadratfrei“ fallen lassen. ” Da in der Laufzeit die Gr¨ oße q des K¨ orpers eingeht, die z.B. in kryptographischen Anwendungen ziemlich groß werden kann, ist diese Version des Algorithmus nur f¨ ur kleinere K¨ orper geeignet. Eine f¨ ur große K¨ orper geeignetere Version wurde ebenfalls von Berlekamp [Be2] angegeben und wird im folgenden Abschnitt behandelt. Auch f¨ ur große Werte von n ist der Algorithmus in dieser Form ungeeignet, denn die Berlekamp-Matrix ben¨ otigt Speicherplatz in der Gr¨ oßenordnung O(n2 ) und ihre Behandlung mit dem Gauß-Eliminationsverfahren geht mit O(n3 ) in die Laufzeit ein. 6.3.2 Variante f¨ ur große K¨ orper Grundlage f¨ ur den Berlekamp-Algorithmus zur Faktorisierung eines Polynoms f mit deg f = n u orper GF(q) (ob groß oder ¨ber dem endlichen K¨ klein) ist der in Satz 6.3.1.1 formulierte Sachverhalt  f (x) = ggT(f (x), (x) − a) a∈GF(q)

wobei (x) ∈ GF(q)[x] ein Polynom von positivem Grad mit q ≡  mod f ist. Solch ein Polynom (x) l¨ asst sich dabei u ¨ber ein lineares Gleichungssystem ( n × n Koeffizientenmatrix) einfach bestimmen. Dieses Gleichungssystem hat k linear unabh¨ angige L¨ osungen 1 (x) , . . . , k (x) wenn f in k irreduzible Faktoren zerf¨ allt. Das Problem in großen K¨ orpern ( groß“ heißt hier q ' n ) ist es also, ” die kq gr¨oßten gemeinsamen Teiler auf der rechten Seite zu berechnen. Da die Faktoren dieses Produkts paarweise teilerfremd sind, sind h¨ ochstens k der q Faktoren von positivem Grad (man stelle sich die Ineffizienz dieser Methode etwa im Fall q = 2>100 und k ≤ 10 vor). Man k¨ onnte sich also viel Rechenzeit ersparen, wenn man von vornherein w¨ usste, f¨ ur welche a ∈ GF(q) gilt deg(ggT(f,  − a)) > 0 . Solch ein Kriterium mit Hilfe von Resultanten liefert Satz 2.5.4. Nach diesem Satz sind die interessanten K¨ orperelemente gerade die Wurzeln in GF(q) des Polynoms F (y) := resx (f (x) , (x) − y) . Dieses F (y) ist ein Polynom vom Grad n in y . Da es aber h¨ ochstens k K¨orperelemente a mit deg(ggT(f,  − a)) > 0 gibt, heißt das, dass F (y) u ¨ber GF(q) h¨ochstens k Wurzeln hat. Wegen

248

6 Polynom–Faktorisierung

yq − y =



(y − a)

a∈GF(q)

kann man die h¨ochstens k interessanten Linearfaktoren herausfiltern: F ∗ (y) := ggT(F (y), y q − y) hat genau die a ∈ GF(q) als einfache Wurzeln, f¨ ur die es sich lohnt ggT(f,  − a) zu berechnen. Damit ist das Problem, ein allgemeines Polynom f (x) ∈ GF(q)[x] vom Grad n in irreduzible Faktoren zu zerlegen, auf die Berechnung der Wurzeln des vollst¨andig in Linearfaktoren zerfallenden Polynoms F ∗ (y) vom Grad k ≤ n reduziert. Da F ∗ (y) ein Teiler von y q − y ist, kann man mit (4.2) schreiben  (S(y) − b) ≡ 0 mod F ∗ (y) b∈GF(p)

Mit der gleichen Argumentation wie beim Beweis von 6.3.1.1 folgt sofort  F ∗ (y) = ggT(F ∗ (y) , S(y) − b) (6.10) b∈GF(p)

Falls man mit dieser Formel eine nichttriviale Faktorisierung des Hilfsunglichen polynoms F ∗ (y) und damit auch eine Faktorisierung des urspr¨ Polynoms f (x) bek¨ ame, so h¨ atte man dazu nur p statt q = ps ggTBerechnungen ben¨ otigt. Dies w¨ are insbesondere f¨ ur kleine Charakteristik p und großes s eine ganz erhebliche Vereinfachung. Gibt es ein b ∈ GF(p) mit S(y) ≡ b mod F ∗ (y) , so ist ggT(S(y) − b, F ∗ (y)) = F ∗ (y) und (6.10) liefert nur eine triviale Faktorisierung. Dies kann in der Tat passieren, l¨ asst sich aber durch eine einfache Substitution in (6.10) wieder gutmachen: Es sei {1 , c , c2 , . . . , cs−1 } eine Basis des GF(p)Vektorraumes GF(q) und 0 ≤ i ≤ s − 1 . Substituiert man ci y f¨ ur x in (4.2), so erh¨alt man wegen (ci )q = ci : yq − y =



(S(y) − b) ⇐⇒ y q − y = c−i

b∈GF(p)



(S(ci y) − b)

b∈GF(p)

Damit erh¨alt man die Verallgemeinerung  ggT(F ∗ (y) , S(ci y) − b) F ∗ (y) =

(6.11)

b∈GF(p)

von (6.10). Rechnet man von dieser Gleichung ausgehend wie beim Grundalgorithmus von Berlekamp weiter, so werden dabei sicher alle irreduziblen Teiler gefunden.

6.3 Der Berlekamp-Algorithmus

249

Angenommen, es g¨ abe im Widerspruch dazu zu jedem i ein bi mit S(ci y) ≡ bi mod F ∗ (y) d.h. jede Faktorisierung w¨ are trivial. Sind d1 = d2 ∈ GF(q) zwei der k Nullstellen von F ∗ (y) , so gilt also auch S(ci d1 ) = bi = S(ci d2 ) f¨ ur 0 ≤ i ≤ s − 1 . Dies heißt S(ci d1 ) − S(ci d2 ) = 0 f¨ ur 0 ≤ i ≤ s − 1 . Da aber S(a) f¨ ur a ∈ GF(q) die Spur von a ist und diese nach 4.5.3 linear ist, gilt ur 0 ≤ i ≤ s − 1. Sp(ci (d1 − d2 )) = 0 f¨ Wieder wegen der Linearit¨ at von Sp und wegen der Voraussetzung, dass die ci eine Basis von GF(q) bilden, gilt damit Sp(a(d1 − d2 )) = 0 f¨ ur alle a ∈ GF(q). Da Sp nach 4.5.3 surjektiv ist, heißt das d1 = d2 im Widerspruch zur Voraussetzung. Damit kommt man u.U. nicht gleich mit den ersten p ggT-Berechnungen in (6.10) aus, die h¨ ochstens s · p ggT-Berechnungen in (6.11) reichen aber. Dies ist immer noch ein erheblicher Vorteil gegen¨ uber ps . Nat¨ urlich bekommt man diese Vereinfachung nicht umsonst. Der geringere Aufwand f¨ ur die ggT-Berechnungen wird erkauft mit der zus¨ atzlichen Berechnung von F (y) = resx (f (x) , (x) − y) , F ∗ (y) = ggT(F (y), y q − y) und ggT(F ∗ (y) , S(ci y) − b) . Nach [Co2] ist die Berechnung der Resultante f¨ ur F mit dem Aufwand O(sn5 + s2 n4 ) verbunden. atte man W¨ urde man den ggT bei F ∗ so ausrechnen, wie er dasteht, h¨ mit einem Aufwand von O(nq) zu rechnen. Das h¨ angt wieder von dem großen q ab, was man ja gerade vermeiden wollte. Große modulare Potenzen procedure ModPot(r, n, s) t←r for i from 2 to  do if n−i = 0 then t ← t2 mod s else t ← t · r2 mod s end if end do Return(t) end

N

# Eingabe: r, s ∈ R (Ring), n ∈ , # n = (1 , n0 , . . . , n−1 )2 # Ausgabe: rn mod s

Da q sehr viel gr¨ oßer als n ist, kann man diesen ggT allerdings schneller berechnen, indem man zuerst y q mod F (y) mit dem Algorithmus ModPot, also im Wesentlichen durch fortgesetztes Quadrieren, berechnet.

250

6 Polynom–Faktorisierung

Da die Schleife  − 1 = log2 (n)! − 1-mal durchlaufen wird und in jeder Schleife eine feste Anzahl von Operationen in R ausgef¨ uhrt wird, ben¨ otigt ModPot O(log n) Operationen in R . Speziell im Fall von R = GF(q)[y] und s = F (y) kann man sich diese Operationen zus¨atzlich noch erleichtern, indem man einmal am Anfang die folgenden auf Polynome vom Grad < n reduzierten Ausdr¨ ucke berechnet: y n mod F (y) , y n+1 mod F (y) , . . . , y 2n−2 mod F (y) . Ist n¨amlich r(y) ≡ r0 + r1 y + . . . + rn−1 y n−1 mod F (y) , so kann man die reduzierte Form von r2 mod F einfach bestimmen, indem man r2 berechnet und dann die dort auftretenden Potenzen y n , . . . , y 2n−2 durch die bereits mod F reduzierten Ausdr¨ ucke ersetzt. Damit kommt man in der Schleife mit O(n2 ) Operationen in GF(q) aus. Der Aufruf ModPot(y, q, F (y)) erfordert O(log q) Operationen im Ring GF(q)[x] , bzw. O(n2 log q) Operationen im K¨ orper GF(q) . Dies dominiert die anschließende Berechnung von ggT(F (y), y q −y mod F (y)) , die mit O(n2 ) Operationen auskommt, d.h. der ganze Schritt ist von der Ordnung O(n2 log q) . Das gleiche Problem tritt nochmals auf beim Aufstellen der Matrix B . Das Berechnen der ersten nichttrivialen Spalte ist mit der bisher verwendeten Methode mit dem f¨ ur großes q nicht akzeptablen Aufwand O(nq) verbunden. Wird diese Spalte dagegen mit ModPot(x, q, f (x)) berechnet, so sinkt der Aufwand daf¨ ur auf O(n2 log q) . Die weiteren Spalten sind die Koeffizienten von xqi mod f (x) mit i = 2, . . . , n − 1 und k¨ onnen nun mit den in ModPot bereits bestimmten Ausdr¨ ucken xn mod f (x) , xn+1 mod f (x) , . . . , x2n−2 mod f (x) durch x2q = 2 (xq ) mod f (x) , x3q = x2q · xq mod f (x) ,. . . und Substituieren der reduzierten Werte f¨ ur xn , xn+1 , . . . , x2n−2 berechnet werden. orperoperationen verbunden, Jeder dieser n−2 Schritte ist mit O(n2 ) K¨ so dass man den Aufwand f¨ ur das Aufstellen der Matrix bei großen K¨ orpern insgesamt von O(nq + n3 ) auf O(n2 log q + n3 ) = O(n2 s log p + n3 ) reduziert hat. Da S(ci y)−b den Grad ps−1 = pq hat, darf man ggT(F ∗ (y) , S(ci y)−b) auch nicht direkt berechnen, sondern muss erst S(ci y) modulo F ∗ reduzieren. Dies kann man erreichen, indem man die in S(y) vorkommeni den Potenzen y p f¨ ur i = 0, . . . , s − 1 mit ModPot(y, pi , F ∗ ) berechnet (das ben¨otigt jeweils O(k 2 log pi ) K¨ orperoperationen, also insgesamt O(k 2 s2 log p) ) und dann geeignet kombiniert. Dieser Schritt ist so von der Ordnung O(k 2 s2 log p) , also schlimmstenfalls O(n2 s2 log p) bzw. im Schnitt O(s2 log p log2 n) . Damit sind die dominierenden Schritte des Berlekamp-Algorithmus f¨ ur große K¨orper die ggT-Berechnungen zur Faktorisierung von F ∗ in (6.11), die Berechnung der Resultante und die Reduktion von S mod F ∗ .

6.3 Der Berlekamp-Algorithmus

251

Dies bedeutet einen Gesamtaufwand von maximal O(n2 log p · s2 + n2 p · s + n5 s + n4 s2 ) bzw. erwartet O(log2 n log p · s2 + n2 ps + n5 s + n4 s2 ) . ¨ Durch den Ubergang von q zu log q gewinnt man hier also bei großen K¨orpern. Bei großen Polynomgraden ist diese Variante dagegen noch schlechter als die Grundversion. 6.3.2.1 Beispiel: Gegeben sei das normierte, quadratfreie Polynom f = x7 + (2α2 + 2α)x6 + (2α3 + 2α2 )x5 + (α2 + α + 2)x4 + + (2α2 + α + 2)x3 + (α3 + α2 + 2α + 2)x2 + + (α2 + α + 1)x + 2α2 + α3 ∈ GF(81)[x]

⎛1

Dabei sei α eine Wurzel des u ¨ber Z3 irreduziblen Polynoms x4 + x + 2 . Dieses Trinom ist primitiv, d.h. α erzeugt GF(81)∗ und {1, α, α2 , α3 } ist eine Basis des Z3 -Vektorraumes GF(81) . Nun berechnet man x81 mod f mit ModPot(x, 81, f (x)) und daraus die weiteren f¨ ur die Berlekamp-Matrix ben¨ otigten Potenzen x81i mod f f¨ ur i = 2, . . . , 6 durch fortgesetztes Quadrieren. Aus den Koeffizienten dieser Polynome liest man die Eintr¨ age f¨ ur die Matrix ab. Es ergibt sich ⎞ α3 +α 2 α3 +α+2 2 α3 +2 α2 +α+2 2 α3 +2 α+2 α3 +2 α2 +1 2 α2 +2 α+1

2 α3 +2 2 α+1 2 α2 +2 α3 +α2 +α+2 0 2 α2 +α+2 2 α3 +α2 0 2 α3 +α2 +2 α+1 α2

⎜0 ⎜0 ⎜0 ⎜ ⎝0

2 α3 +α2 +α+1 α2 +2 2 α3 +α+2 2 α+1

α2 +α α2 +α α3 +α2 +2 2α 0 α2 +α+1

α3 +2 α2 +α+2 α2 +2 α3 +α2 +α+2 2 α3 +α+2 2 α3 +2 α2 +2 α α3 +α2 +α+1 α3 +2 α+1 α3 +2 α α2 +α α3 α3 +α2 +2 α α3 +2 α2 +2 α+1

2 α2 +α+1 α2 +α 2 α3 +α+1 2 2 α3 +2 α α3 +α2 +α

Die triangulierte Form von B − En ist ⎛ 0 2 α+1 α3 +α2 +α+2 2 α α3 +2 α 0

0

α2 +1

0 0

0 0 0 0 0

0 0 0 0 0

⎜ ⎜0 ⎜0 ⎜0 ⎝

α3 +2 α 2 0 2 α3 +α2 +α+1 α3 +2 α 2 α3 +α2 +α+2 α3 +α+2 α3 +2 α2 +α+1 2 α3 +2 α+2 1 0 2 α3 +2 α2 +2 α3 +2 α2 +2 α+2 2 α2 +2 α+2 0 0 0 0 0 0 0 0 0 0 0 0

⎟ ⎟ ⎟ ⎟ ⎠

⎞ ⎟ ⎟ ⎟ ⎟ ⎠

woraus man bereits abliest, dass f drei irreduzible Faktoren hat. Die zu Polynomen umgeschriebenen Basisvektoren von Kern(B − En ) sind 1 , (2α3 + α + 1)x + (α3 + 2α + 1)x2 + x3 + (2α + 2)x4 + 2α3 x6 , (α2 + 1)x + (α3 + α2 + 2α)x2 + (2α + 1)x4 + x5 + (2α2 + 2α3 + 1)x6

252

6 Polynom–Faktorisierung

Beginnt man mit dem zweiten dieser drei Polynome, so ergibt sich F =2y 7 + (α3 + 2)y 6 + (α3 + α2 + 2)y 5 + 2α3 y 4 + (2α2 + 2α + 1)y 3 + (α3 + α + 2)y 2 + α3 y + 2 + 2α3 + 2α2 + 2α und daraus F ∗ = y 3 + (α2 + α + 2)y 2 + (2α2 + 2α + 1)y + 2α . alt F ∗ Wegen deg F ∗ = 3 und der Konstruktion von F ∗ enth¨ drei Linearfaktoren, deren Wurzeln auf drei zueinander teilerfremde, nichttriviale Faktoren von f f¨ uhren. Da bereits bekannt ist, dass f drei irreduzible Faktoren besitzt, f¨ uhrt also bereits dieser erste Schritt zu einer vollst¨ andigen Zerlegung. Die Berechnung von ggT(F ∗ (y) , S(y) − b) f¨ ur b ∈ Z3 mit S(y) = y + y 3 + y 9 + y 27 liefert die noch unvollst¨ andige Faktorisierung F ∗ = (y + 2α2 + α + 2)(y 2 + 2α2 x + α3 + α2 ) . Der quadratische Faktor wird schließlich durch die Berechnung von ggT(y 2 + 2α2 y + α3 + α2 , S(αy) − b) f¨ ur b ∈ Z3 zerlegt. Aus den drei Faktoren y + 2α3 + α2 + α, y + 2α2 + α + 2, y + α3 + α2 + 2α von F ∗ liest man die drei Werte a1 = α3 + 2α2 + 2α, a2 = α2 + 2α + 1, a3 = 2α3 + 2α2 + α ab f¨ ur die sich die Berechnung von ggT(f,  − ai ) lohnt. Die Berechnung dieser drei ggTs liefert die vollst¨ andige Zerlegung f = (x2 +(2α+2)x+α+2)(x2 +(2α+1)x+2)(x3 +(2α2 +α)x2 +2αx+2α2 ) . Dazu waren insgesamt 9 ggT-Berechnungen n¨ otig (6 f¨ ur die Faktorisierung von F ∗ und 3 f¨ ur die Zerlegung von f ) statt sch¨ atzungsweise k · q = 243-ggT-Berechnungen beim Standard-Algorithmus. 6.3.3 Verbesserungen von Cantor und Zassenhaus Probabilistische Versionen des Berlekamp-Algorithmus f¨ ur große K¨ orper wurden von Cantor und Zassenhaus in [CZa] vorgeschlagen. Der erste Vorschlag zielt darauf ab, den Aufwand f¨ ur die Berechnung der Resultante resx (f (x) , (x) − y) , f¨ ur ggT(F (y), y q − y) und ggT(F ∗ (y) , S(ci y) − b) zu sparen, nimmt daf¨ ur aber in Kauf, dass wieder einige (aber bei weitem nicht so viele, wie bei der Grundversion des Berlekamp-Algorithmus) ggTs umsonst berechnet werden.

6.3 Der Berlekamp-Algorithmus

253

Je nach gerader oder ungerader Charakteristik des K¨ orpers werden zwei F¨alle unterschieden. Ist p und somit auch q ungerade, so gilt xq − x = x · (x

q−1 2

− 1) · (x

q−1 2

+ 1) ,

d.h. aus (6.7) folgt f | · (

q−1 2

− 1) · (

q−1 2

+ 1) .

Nun kann man hoffen, dass sich die irreduziblen Teiler von f f¨ ur beliebiges  aus dem L¨ osungsraum aus (6.7) jeweils circa zur H¨ alfte in den q−1 beiden gleich großen Faktoren  2 ± 1 finden. Deshalb berechnet man f¨ ur verschiedene, zuf¨ allig aus dem Kern von B − q−1 En gew¨ahlte Vektoren  den ggT(f,  2 −1) bzw., falls schon nichttriviale q−1 Faktoren u von f gefunden sind ggT(u,  2 − 1) . q−1

Der ggT(f,  2 −1) ist trivial, wenn entweder alle irreduziblen Faktoren q−1 f1 , . . . , fk das Polynom  2 − 1 teilen oder wenn keiner der Faktoren dieq−1 ¨r alle i = sen Ausdruck teilt. Das ist der Fall, wenn gilt  2 ≡ 1 mod fi f u q−1 2 1, . . . , k bzw. wenn  ≡ 1 mod fi f u ¨r alle i = 1, . . . , k . Die Vektoren  bilden einen GF(q)-Vektorraum der Dimension k . Die entsprechenden Polynome (x) bilden den Ring W := { ∈ GF(q)[x]; q ≡  mod f } . Da die Faktoren f1 , . . . , fk irreduzibel u ¨ber GF(q) vorausgesetzt waren, ist Ki := GF(q)[x]/fi  f¨ ur i = 1, . . . , k jeweils ein K¨ orper isomorph zu GF(q ni ) . Die Teilmenge Wi := { ∈ Ki ; q = } ist jeweils isomorph zu GF(q) . k Die Abbildung φ :  → ( mod f1 , . . . ,  mod fk ), von W nach j=1 Wi ist nach dem Chinesischen Restsatz ein Isomorphismus. q−1

q−1

Der ggT(f,  2 − 1) ist also trivial, wenn entweder φ( 2 ) = q−1 (1 , . . . , 1) ist oder wenn keine einzige Komponente von φ( 2 ) gleich 1 ist. Ist α ein primitives Element von GF(q) , so gilt f¨ ur ein beliebiges, von   q−1 q−1 j Null verschiedenes Element β := α dieses K¨ orpers β 2 = αj 2 . Ist j gerade, d.h. β ein Quadrat, so ist dies eine Potenz von αq−1 = 1 , q−1 also selber 1 . Ist j dagegen ungerade, so ist dies gleich α 2 , also von 1 2 verschieden und damit wegen β = 1 gleich −1 . In GF(q) gibt es deshalb q−1 genau q−1 Elemente β mit β 2 = 1 (Quadrate) und q+1 Elemente β 2 2 q−1 mit β 2 = 1 (Nichtquadrate). Sind die Komponenten von φ(

q−1 2

) voneinander unabh¨ angig, so ist  k φ( ) = (1 , . . . , 1) mit der Wahrscheinlichkeit q−1 , bzw. keine einzi2q k  q−1 ge Komponente von φ( 2 ) gleich 1 mit der Wahrscheinlichkeit q+1 . 2q q−1 2

254

6 Polynom–Faktorisierung q−1

Die Wahrscheinlichkeit f¨ ur einen nichttrivialen ggT(f,  2 − 1) ist also k  k  q+1 q−1 − . P (q, k) = 1 − 2q 2q Da q ungerade vorausgesetzt war, gilt q ≥ 3 . Die Methode wird nur verwendet im Fall von mindestens 2 irreduziblen Teilern von f , man kann somit k ≥ 2 voraussetzen. Diskussion der Funktion P (q, k) unter diesen Voraussetzungen zeigt nun, dass sie ihr globales Minimum in dem Punkt (3, 2) annimmt. Wegen P (3, 2) = 49 erh¨ alt man wie erhofft in fast der H¨alfte aller F¨alle einen nichttrivialen ggT . Wie der Berlekamp-Algorithmus f¨ ur große K¨ orper braucht diese verbesserte Version erst mal die Berlekamp-Matrix und deren Eigenraum zum Eigenwert 1 . Dieser Programmteil ist also mit dem Aufwand O(n2 log p · s + 2n3 ) verbunden. Dann geht es in die Schleife, in der jeweils zuerst ein  aus der berechneten Basis zuf¨ allig kombiniert wird. Das Kombinieq−1 ren ben¨otigt O(kn) Rechenschritte. Dann wird  2 mod f mit ModPot 2 berechnet, was mit O(n2 log( q−1 2 ) = O(n log p · s) geht. Die folgende ggTBerechnung ben¨otigt mit Standardverfahren O(n2 ) , d.h. die gesamte Arbeit in der Schleife wird von n2 log p · s dominiert. Nachdem pro Schleifendurchlauf mit einer Wahrscheinlichkeit P (q, k) ≥ 4 ein nichttrivialer Faktor gefunden wird, erwartet man mindestens bei je9 dem zweiten Durchlauf einen Treffer. Da man insgesamt log n irreduzible Faktoren erwartet, wird man im Mittel mit 2 log n Durchl¨ aufen auskommen, was also auf die erwartete Komplexit¨ at von O(2(n2 log n log p · s + n3 )) f¨ uhrt. Gegen¨ uber der urspr¨ unglichen Version von Berlekamp ist das eine deutliche Verbesserung sowohl bei der Potenz von n , als auch bei der K¨ orpergr¨oße ( log p · s statt p · s ). Diese verbesserte Version des BerlekampAlgorithmus f¨ ur große K¨ orper findet sich in der Literatur oft unter dem Namen Big Prime Berlekamp 6.3.3.1 Beispiel: Betrachtet wird wieder das Polynom f = x7 + (2α2 + 2α)x6 + (2α3 + 2α2 )x5 + (α2 + α + 2)x4 + + (2α2 + α + 2)x3 + (α3 + α2 + 2α + 2)x2 + + (α2 + α + 1)x + 2α2 + α3 ∈ GF(81)[x] dessen Faktorisierung bereits im vorhergehenden Beispiel mit dem Berlekamp-Algorithmus f¨ ur große K¨ orper berechnet worden ist. Bis zur Berechnung einer Basis von Kern(B − En ) verl¨ auft die Cantor-Zassenhaus-Variante genauso wie Berlekamps Version. Man kann also die geordnete Basis [1 , (α2 + 1)x + (α3 + α2 + 2α)x2 + (2α + 1)x4 + x5 + (2α2 + 2α3 + + 1)x6 , (2α3 + α + 1)x + (α3 + 2α + 1)x2 + x3 + (2α + 2)x4 + 2α3 x6 ]

6.3 Der Berlekamp-Algorithmus

255

aus dem bereits gerechneten Beispiel u oglicher ¨bernehmen. Ein m¨ Verlauf des Algorithmus sieht nun etwa wie folgt aus: Zuf¨allig gew¨ ahlte Koeffizienten der Linearkombination: λ1 = α3 , λ2 = 2α3 + 2α2 + α + 1 , λ3 = α3 + 2α. Die zugeh¨ orige Linearkombination ist  =(α3 + α2 + α)x6 + (α3 + 2α)x5 + (2α3 + 2)x4 + (2α3 + α+ + 1)x3 + (2α3 + 2α2 + α + 1)x2 + (α2 + α + 2)x + α3 Damit ist 

q−1 2

− 1 ≡(α3 + 2)x6 + (α2 + 2)x5 + (α3 + 2α + 1)x4 + + (2α2 + 2α3 + 2 + 2α)x3 + (α3 + α2 )x2 + + (α3 + α2 + α + 2)x + 2 + α mod f

Der ggT diese Ausdrucks mit f liefert die Zerlegung U von f U = {x3 + (2α2 + α)x2 + 2αx + 2α2 , x4 + αx3 + (α2 + α)x2 + 2α2 x + 2α + 1} Mit den neuen Koeffizienten λ1 = α3 + α2 + α , λ2 = 2 , λ3 = α3 + 2α2 + 2α erh¨alt man nun die Linearkombination  =(α3 + 2α2 + α + 2)x6 + (α3 + 2α2 + 2α)x5 + (2α3 + α2 + α+ + 1)x4 + (2α2 + α3 )x3 + 2x2 + (α3 + α2 + α)x + α2 + α + α3 mit 

q−1 2

− 1 ≡(2α3 + 2α)x6 + (α3 + 2α2 + 2α + 1)x5 + (2α2 + 2α + 1)x4 + + (α3 + α2 + 1)x3 + α2 x2 + (2α3 + 2)x + 2α3 + 2α2 mod f .

Nun werden alle ggTs dieses Ausdrucks mit den zwei berechneten Teilern von f in der Menge U berechnet. W¨ ahrend der erste Teiler in U nichts Neues bringt, liefert der zweite die neuen Teiler x2 + (2α + 1)x + 2 und x2 + (2α + 2)x + α + 2 . Damit sind bereits die 3 gesuchten Teiler von f gefunden: {x2 +(2α+2)x+α+2, x2 +(2α+1)x+2, x3 +(2α2 +α)x2 +2αx+2α2 } Die Faktorisierung von f wurde in diesem Fall besonders sparsam mit nur 3 ggT-Berechnungen erreicht.

256

6 Polynom–Faktorisierung

F¨ ur einen ¨ahnlichen Ansatz im Fall p = 2 sollte man sich an (4.2) erinnern, was hier xq − x = S(x) · (S(x) + 1) und damit f |S() · (S() + 1) bedeutet. Berechnet man wieder f¨ ur zuf¨ allig gew¨ ahlte  aus dem L¨ osungsraum den Ausdruck ggT(f, S()) , bzw. ggT(u, S()) , wenn man schon Teiler u von f hat, so erh¨ alt man m¨ oglicherweise nichttriviale Teiler von f . Betrachtet man wieder die Abbildung φ :  → ( mod f1 , . . . ,  mod fk ), k von W nach j=1 Wi , so folgt wegen der in 4.5.3 nachgewiesenen Linearit¨at der Spurfunktion φ(S()) = (S() mod f1 , . . . , S() mod fk ) = = (S( mod f1 ) , . . . , S( mod fk )) . Die Funktionswerte S( mod fi ) f¨ ur i = 1, . . . , k sind Elemente von GF(2) , k¨onnen also nur 0 oder 1 sein. Die i-te Komponente von φ(S()) ist genau dann gleich 0 , wenn fi das Polynom S() teilt. Der ggT(f, S()) wird also genau dann trivial, wenn alle Komponenten von φ(S()) verschwinden ( ggT = f ), oder wenn alle Komponenten von φ(S()) gleich 1 sind ( ggT = 1 ). Geht man davon aus, dass die S( mod fi ) unabh¨ angig voneinander sind, so ist die Wahrscheinlichkeit f¨ ur jeden dieser F¨ alle ( 12 )k , also die Wahrscheinlichkeit f¨ ur eine nichttriviale Faktorisierung P (k) = 1 − 2( 12 )k = 1 k−1 1−(2) . Da man dieser Verfahren nur f¨ ur k > 1 anwendet, hat man also auch in diesem Fall mit P (k) ≥ 12 sehr gute Erfolgsaussichten. 6.3.3.2 Beispiel: Gegeben sei das normierte, quadratfreie f ∈ GF(32) f = x10 + x9 + (α2 + 1)x8 + (α3 + α)x7 + x6 + x5 + x4 + (α3 + α)x3 + x + 1

(sogar primitiven) Polynoms x5 + x3 + 1 sei. Nach der u ¨blichen Vorarbeit erh¨ alt man die geordnete Basis (1, (α3 + α2 + 1)x + (α4 + α + 1)x2 + (α3 + α2 + α + 1)x3 + + x4 + (α4 + α2 + α + 1)x8 , (α4 + α3 + α)x + (α2 + α)x2 + (α4 + α3 + α2 )x3 + x5 + (α + 1)x6 + (α4 + α3 + α2 + α+ + 1)x7 + (α3 + α2 )x8 , αx + (α3 + α + 1)x2 + (α3 + α2 + + α)x3 + α2 x6 + (α4 + α2 + α)x7 + (α4 + α2 )x8 + x9 ) von Kern(B − En ) , woraus man insbesondere abliest, dass f in 4 irreduzible Teiler zerf¨ allt.

6.3 Der Berlekamp-Algorithmus

257

Beginnt man z.B. mit den zuf¨ alligen Koeffizienten der Linearkombination α2 + α, α4 + α2 , α2 , α3 + α , so erh¨ alt man (x) =(α3 + α)x9 + (α + 1)x8 + (α4 + α2 + α)x7 + (α3 + + α2 + 1)x6 + α2 x5 + (α4 + α2 )x4 + (α3 + α2 + α + 1)x3 + + (α4 + α3 + 1)x2 + (α4 + α2 + 1)x + α2 + α und damit mod f S() ≡(α4 + α2 + 1)x9 + (α4 + α2 + α + 1)x8 + (α4 + α)x7 + + (α3 + α2 + α + 1)x6 + (α2 + α + 1)x5 + (α4 + α3 + α2 + + α)x4 + x3 + (α3 + α2 + α + 1)x2 + (α3 + α2 )x + α4 + α und somit aus ggT(f, S()) bzw. ggT(f, S() mod f ) die erste nichttriviale Zerlegung von f . Nach diesem Schritt ist U = {x4 + αx3 + α4 x2 + (α + 1)x + α4 + 1, x6 + (α + 1)x5 + (α4 + α + 1) x4 + (α4 + α3 + α2 + α + 1)x3 + x2 + (α4 + α3 + 1)x + α4 + α}

Rechnet man nun z.B. mit den zuf¨ alligen Koeffizienten der Linearkombination α4 + α2 + α , α4 , α4 + α3 + α2 + α , α weiter, so erh¨alt man (x) =αx9 + (α4 + α2 + 1)x8 + (α2 + α + 1)x7 + (α + 1)x6 + + (α4 + α3 + α2 + α)x5 + α4 x4 + (α4 + α + 1)x3 + (α+ + 1)x2 + (α4 + α2 )x + α4 + α2 + α und damit S() ≡(α3 + α2 )x9 + (α4 + α + 1)x8 + (α3 + α + 1)x6 + (α3 + + α2 + α)x5 + (α4 + α2 + α + 1)x4 + (α4 + α2 )x3 + (α+ + 1)x2 + (α4 + α3 + α2 )x + α3 + α2 + α mod f Mit dieser Spur wird nun jeweils der ggT(u, S()) f¨ ur alle u ∈ U berechnet. Der erste ggT ist 1 , der zweite, mit dem Polynom 6. Grades aus U , liefert eine Verfeinerung der bisher berechneten Zerlegung: ggT(u, S()) = x2 + (α3 + α2 )x + α3 + α . Nach diesem Schritt ist U ={x4 + (α3 + α2 + α + 1)x3 + (α3 + α2 + α + 1)x2 + (α4 + + α2 )x + α4 + α3 + α, x4 + αx3 + α4 x2 + (α + 1)x + α4 + + 1, x2 + (α3 + α2 )x + α3 + α}

258

6 Polynom–Faktorisierung

Rechnet man nun z.B. mit den zuf¨ alligen Koeffizienten der Linearkombination α4 + α2 + 1 , α3 + α , α4 + α2 , α3 + α2 + α + 1 weiter, also mit der Linearkombination (x) =(α3 + α2 + α + 1)x9 + (α3 + α2 + α)x8 + (α4 + α2 + α)x7 + +(α4 + α2 )x5 + (α3 + α)x4 + (α4 + α3 + α + 1)x3 + +(α3 + α + 1)x2 + (α4 + α3 + α)x + α4 + α2 + 1 so ergibt sich die Spur S() ≡(α3 + α)x9 + (α3 + α2 + α + 1)x8 + (α4 + α + 1)x7 + + (α3 + α)x6 + (α4 + α3 + α2 + α)x5 + (α4 + α2 + α+ + 1)x4 + (α4 + α3 + α2 )x3 + (α3 + α + 1)x2 + (α3 + α2 + + α)x + α4 + α2 + α mod f Der ggT der Spur mit dem ersten u (Grad 4 ) liefert dann auch schon den letzten Faktor: ggT(u, S()) = x2 + (α2 + α + 1)x + α2 + 1 + α4 also insgesamt die vollst¨ andige Zerlegung von f : U = {x2 + (α2 + α + 1)x + α2 + 1 + α4 , x2 + α3 x + α + 1 + α3 , x4 + αx3 + α4 x2 + (α + 1)x + α4 + 1, x2 + (α3 + α2 )x + α3 + α} . Bei dem geschilderten Verlauf wurden insgesamt 4 ggT-Berechnungen durchgef¨ uhrt. Nur eine davon ergab einen trivialen ggT , alle anderen f¨ uhrten direkt zur Zerlegung von f ! Bekanntlich ist xq − x das Produkt aller x − a mit a ∈ GF(q) , d.h. das Produkt aller verschiedenen normierten, u ¨ber GF(q) irreduziblen Polynome vom Grad 1 . Eine weitere Verbesserung des Faktorisierungsalgorithmus beruht auf dem folgenden Satz, der dieses Ergebnis verallgemeinert. r

6.3.3.3 Satz: Das Polynom xq − x ist das Produkt aller verschiedenen, normierten, u ¨ber GF(q) irreduziblen Polynome, deren Grad die Zahl r ∈ teilt.

N

Beweis: Es sei m(x) ∈ GF(q)[x] ein irreduzibles Polynom vom Grad d mit d | r , also etwa r = d · r . Dann ist der Restklassenring F := GF(q)[x]/m(x) ein K¨ orper mit q d Elementen. d

F¨ ur jedes f ∈ F gilt also f q = f und somit auch f

qr

=f

q d·r





=

f

qd

q d

q d ... =f.

6.3 Der Berlekamp-Algorithmus

259

Insbesondere gilt dies nat¨ urlich f¨ ur das Polynom f (x) = x , was f¨ ur r x ∈ F bedeutet xq = x , bzw. f¨ ur x ∈ GF(q)[x] r

r

xq ≡ x mod m(x) ⇐⇒ m(x) | xq − x , r

d.h. jedes irreduzible Polynom vom Grad d | r teilt xq − x . r Es bleibt noch zu zeigen, dass das alle Polynome sind, die xq −x teilen. Dazu geht man vom Gegenteil aus und betrachtet ein irreduzibles Polynom r m(x) ∈ GF(q)[x] vom Grad d > r mit m(x) | xq − x . Der K¨ orper F d−1 sei wie oben definiert. F¨ ur ein beliebiges f (x) = i=0 fi xi ∈ F ist dann r r r f (x)q = f (xq ) = f (x) , denn in F gilt wegen m(x) | xq − x , dass r r xq = x . Somit ist jedes f ∈ F eine Wurzel des Polynoms z q − z , was r aber wegen |F | = q d > q r = deg(z q − z) nicht m¨ oglich ist.  6.3.3.4 Beispiel: Das Polynom x16 − x hat u ¨ber Z2 die Faktoren x , x + 1 , x2 + x + 1 , x4 + x + 1 , x4 + x3 + 1 und x4 + x3 + x2 + x + 1 , also genau alle verschiedenen, normierten, u ¨ber Z2 irreduziblen Polynome vom Grad 1 , 2 und 4 . Mit diesem Satz kann man mit einer Folge einfacher ggT-Berechnungen ein gegebenes quadratfreies Polynom f (x) ∈ GF(q)[x] vom Grad n faktorisieren in f (x) = d1 (x) · d2 (x) · · · . . . · dn (x) , wobei di das Produkt aller verschiedenen, normierten, u ¨ber GF(q) irreduziblen Teiler vom Grad i von f sei. Es ist n¨amlich ⎛ ⎞ i−1  i di (x) = ggT ⎝xq − x, f (x)/ dj (x)⎠ f¨ ur i = 1, 2, . . . j=1

Faktorisierung nach Graden (Distinct Degree Factorization) procedure DDF(f, q) # Eingabe: f ∈ GF(q)[x] quadratfrei  d =f # Ausgabe: d1 , d2 ,. . . mit r ← x ; h ← f ; g ← 0 ; n ← deg(f ) i i = Produkt aller # und d i while g < n/2 and h = 1 do # Teiler vom Grad i g ← g + 1 ; r ← rq mod h dg ← ggT(r − x, h) if dg = 1 then h ← h/dg r ← r mod h end if end do n ← deg(h) ; if n > 1 then dn ← h end if Return(d1 , . . . , dn ) end

6.3.3.5 Beispiel: F¨ ur f (x) = x21 + x20 + x18 + x17 + x15 + x6 + x5 + x3 + 2 x + 1 ∈ Z2 [x] liefert DDF die Faktorisierung

260

6 Polynom–Faktorisierung

f = (x + 1) (x2 + x + 1) (x12 + x9 + x6 + x3 + 1) (x6 + x5 + x3 + x2 + 1) .           d1

d2

d4

d6

Ist der Grad von di gleich i , so ist di irreduzibel. Im Beispiel weiß man also, dass d1 , d2 und d6 irreduzibel sind und d4 aus 3 irreduziblen Faktoren vom Grad 4 besteht. Ist n = deg(f ) und berechnet man rq mod h jeweils mit ModPot(r, q, h) so erfordert das h¨ ochstens O(n2 log q) Operationen in GF(q) , denn deg(h) ≤ deg(f ) . Die folgende ggT-Berechnung erfordert O(n2 ) Operationen, wird also von dem ersten Schritt dominiert. Da die Schleife maximal n uhrt das auf eine Gesamtkomplexit¨ at dieses Teils 2 -mal durchlaufen wird f¨ von O(n3 log q) . Die if -Schleife wird maximal so oft durchlaufen, wie es verschiedene irreduzible Faktoren in f gibt. Hier erwartet man im Schnitt O(log(n)) Faktoren und im schlimmsten Fall O(n) Faktoren und jeder Schritt ist von der Ordnung O(n2 ) , d.h. dieser Teil schl¨ agt insgesamt mit erwartet O(n2 log(n)) bis maximal O(n3 ) zu Buche und wird somit von obigem O(n3 log q) dominiert. Es gilt also Op[(d1 , . . . , dn ) ← DDF(f, q)](n, q) = O(n3 log q) . i

andigste Wie gezeigt, ist die Berechnung von xq − x mod h(x) der aufw¨ Teil des Algorithmus. Eine Verbesserung mit Hilfe der Berlekamp-Matrix B wurde in [Le7] vorgeschlagen und beruht auf dem 6.3.3.6 Hilfssatz: Es seien f (x) ∈ GF(q)[x] quadratfrei mit deg(f ) = n n−1 und B = (bji ) die Matrix mit xqi ≡ j=0 bji xj mod f (x) f¨ ur 0 ≤ i ≤ n − 1 . F¨ ur ein beliebiges g(x) ∈ GF(q)[x] mit deg g < deg f gilt dann B · g = g q mod f (x) , wobei g und g p hier die Koeffizientenvektoren der entsprechenden Polynome seien. n−1 i q q Beweis: Es sei g(x) = i=0 gi x . In GF(q)[x] gilt g(x) = g(x ) = n−1 qi i=0 gi x . Damit folgt   n−1 n−1  n−1   n−1  q j gi bji x mod f (x) = bji gi xj = B · g .  g(x) ≡ i=0

j=0

j=0

i=0

Damit muss man einmal am Anfang die Berlekamp-Matrix berechnen, was mit ModPot bekanntlich mit dem Aufwand O(n2 log q + n3 ) verbunden i ist, und dann jeweils xq −x mod h(x) u ¨ber das Produkt mit der BerlekampMatrix B gem¨aß dem Hilfssatz bestimmen.

6.3 Der Berlekamp-Algorithmus

261

Da das jeweils mit O(n2 ) geht und die Schleife maximal n2 -mal durchlaufen wird, sinkt damit die Komplexit¨ at dieses Programmteils auf O(n3 + n2 log q) gegen¨ uber obigem O(n3 log q) . Eine sehr ausf¨ uhrliche Diskussion der Laufzeit dieses Algorithmus findet sich in [FGP]. Dort wird unter anderem gezeigt, dass nach der Anwendung der quadratfreien Faktorisierung und der Faktorisierung nach Graden die Wahrscheinlichkeit f¨ ur eine bereits vollst¨ andige Faktorisierung asymptotisch nahe bei e−γ liegt◦ , also bei u ¨ber 56%. Um die verbleibenden reduziblen Faktoren di mit deg di > i nun noch vollst¨andig zu zerlegen (der Gesamtgrad dieser di hat laut [FGP] den Erwartungswert log n ), verwendet man einen ¨ahnlichen Ansatz wie bei der ‘Big Prime’-Variante des Berlekamp-Algorithmus. Wie bereits im Beweis des vorhergehenden Satzes gezeigt, ist jedes f ∈ F eine Wurzel des Polyr r r r r noms z q −z , d.h. f q ≡ f mod xq −x bzw. xq −x | f q −f . Insbesondere r enth¨alt also f q − f alle irreduziblen Polynome vom Grad r u ¨ber GF(q) . Deshalb gilt f¨ ur ungerades q und beliebiges f i

di = ggT(di , f q − f ) = ggT(di , f ) · ggT(di , f

q i −1 2

− 1) · ggT(di , f

q i −1 2

+ 1)

q i −1

und man kann hoffen durch die Berechnung von ggT(di , f 2 − 1) nichttriviale Teiler von di zu finden. Der große Vorteil bei diesem Verfahren ist nat¨ urlich, dass dazu keine Berlekamp-Matrix und keine L¨ osung eines linearen Gleichungssystems n¨ otig ist. Außerdem sieht man ohne weitere Rechnung sofort am Grad, ob eines der beteiligten Polynome irreduzibel ist. Ist deg di > i , so gibt es irreduzible Polynome fi1 ,. . . , fij mit deg fi = i f¨ ur  = 1, . . . , j und di = fi1 · . . . · fij . Nach dem Chinesischen Restsatz ist der kanonische Homomorphismus φ : GF(q)[x]/di (x) → GF(q)[x]/fi1 (x) × . . . × GF(q)[x]/fij (x) sogar ein Ringisomorphismus und alle Restklassenringe auf der rechten Seite sind wegen der Irreduzibilit¨ at der fi K¨ orper isomorph zu GF(q i ) . Analog zur Argumentation am Anfang ist ggT(di , f trivial, wenn alle fi das Polynom f q i −1 2

q i −1 2 q i −1

Polynom f − 1 teilt, d.h. wenn φ(f all seine Eintr¨age = 1 sind.

q i −1 2

−1) genau dann

− 1 teilen oder kein fi das

2

) der volle 1-Vektor ist oder

q i −1

Dies ist genau dann der Fall, wenn f 2 ≡ 1 mod fi f¨ ur  = 1, . . . j ist, d.h. wenn f in allen GF(q)[x]/fi (x) ein Quadrat ist, oder wenn f in all diesen K¨orpern ein Nichtquadrat ist. Da es in GF(q i ) genau q 2−1 Quadrate und q 2+1 Nichtquadrate gibt, ist die Wahrscheinlichkeit f¨ ur eine nichttriviale Faktorisierung i



γ ≈ 0, 577216 sei die Eulersche Konstante

i

262

6 Polynom–Faktorisierung

 P (q i , j) = 1 −

qi − 1 2q i

j

 −

qi + 1 2q i

j ≥

4 9

Deshalb erwartet man etwa 2 Schritte pro Treffer. Pro Schritt wird q i −1 2

f − 1 mod di berechnet, was mit ModPot etwa O(deg(di )2 log q 2−1 ) = 3 2 O(i j log q) Schritte erfordert. Der Algorithmus, der oft mit EDF (Equal Degree Factorization) bezeichnet wird, sieht dann etwa so aus: Faktorisierung, Produkt gleicher Grade, q ungerade (EDF) i

procedure EDF(d, i, q) # Eingabe: Polynom d(x) = quadratfreies Produkt if deg(d) ≤ i then Return(d) end if # # irreduzibler Faktoren f ← zuf¨ alliges Polynom vom Grad # vom Grad i deg(d) − 1 aus GF(q)[x] # Ausgabe: Irreduzible Faktoren q i −1 f ← ggT(d, f 2 − 1 mod d) # f1 ,. . . , fj von d(x) Return(EDF(f, i, q) · EDF(d/f, i, q)) end

6.3.3.7 Beispiel: Gegeben sei das quadratfreie Polynom f =x7 + (α + 1)x6 + 2x5 + (2α2 + 2α)x4 + (2α2 + 2α + 2)x3 + + (α3 + α2 + 2)x2 + (2α2 + α + 1)x + α ∈ GF(81)[x] . Dabei sei α eine Wurzel des u ¨ber Z3 irreduziblen Polynoms x4 + x + 2 . Dieses Trinom ist primitiv, d.h. α erzeugt GF(81)∗ und {1, α, α2 , α3 } ist eine Basis des Z3 -Vektorraumes GF(81) . DDF liefert d1 (x) = x3 +(2α3 +α2 +2α+2)x2 +(2α3 +α2 +1)x+2+α3 +2α2 +2α , also 3 noch nicht getrennte Linearfaktoren und d2 (x) =x4 + (α3 + 2α2 + 2α + 2)x3 + (α2 + α + 1)x2 + + (α3 + 2α2 + 2α)x + α3 + 2 , was aus 2 quadratischen Faktoren besteht. Mit d1 k¨ onnte EDF z.B. so ablaufen (im Algorithmus ist d jeweils das als erstes Argument u ¨bergebene Polynom): Erster Aufruf: EDF(d1 , 1, 81) Zuf¨ alliges f = x2 + 2α3 + 2α2 + α + 2 + (2α2 + 1)x ⇒f

q i −1 2

q i −1

mod d = 2 ⇒ ggT(d, f 2 − 1 mod d) = 1 Ausgabe: EDF(d1 , 1, 81) · EDF(1, 1, 81) Rekursiver Aufruf (EDF(1, 1, 81) liefert 1): EDF(d1 , 1, 81) Zuf¨ alliges f = x2 + α3 + α2 + 2α + 2 + α3 x

6.3 Der Berlekamp-Algorithmus q i −1

q i −1 2

⇒ f 2 mod d = 1 ⇒ ggT(d, f Ausgabe: EDF(d1 , 1, 81) · EDF(1, 1, 81)

263

− 1 mod d) = d

Rekursiver Aufruf (EDF(1, 1, 81) liefert 1): EDF(d1 , 1, 81) Zuf¨ alliges f = x2 + 2α3 + 2α2 + α + 2 + (2α3 + 1)x ⇒f

q i −1 2

mod d = (α3 + α2 )x2 + 2x + 2α + 2 + 2α3 + α2 q i −1

⇒ ggT(d, f 2 − 1 mod d) = x + α2 + 2 Ausgabe: EDF(x + α2 + 2, 1, 81) · EDF(x2 + (2α3 + 2α)x + 2α3 + 1, 1, 81) Rekursiver Aufruf (EDF(x + α2 + 2, 1, 81) liefert x + α2 + 2): EDF(x2 + (2α3 + 2α)x + 2α3 + 1, 1, 81) Zuf¨ alliges f = x + 2α3 + α2 + α + 1 ⇒f

q i −1 2

mod d = α3 x + α2 + 2α + 1 + 2α3 q i −1

⇒ ggT(d, f 2 − 1 mod d) = x + 2α2 + 2 Ausgabe: EDF(x + 2α2 + 2, 1, 81) · EDF(x + α2 + 2α + 1 + 2α3 , 1, 81) = (x + 2α2 + 2) · (x + α2 + 2α + 1 + 2α3 ) also zusammen mit dem bereits weiter oben berechneten Linearfaktor mit insgesamt 4 ggT-Berechnungen d1 = (x + α2 + 2)(x + 2α2 + 2)(x + α2 + 2α + 1 + 2α3 ). Entsprechend erh¨ alt man f¨ ur d2 die Zerlegung d2 = (x2 + (α3 + 2α2 + α + 2)x + α3 + 2)(x2 + αx + 1) , so dass damit die vollst¨ andige Faktorisierung f =(x + α2 + 2)(x + 2α2 + 2)(x + α2 + 2α + 1 + 2α3 ) (x2 + (α3 + 2α2 + α + 2)x + α3 + 2)(x2 + αx + 1) berechnet wurde. Ist q gerade, also von der Form p = 2s , so verwendet man wieder die Spurfunktion, von der man nach (4.2) weiß, dass  rs−1 rs−1   i  i (q r ) p p x · −x= x x +1 i=0

i=0

264

6 Polynom–Faktorisierung r

Da f q − f alle irreduziblen Polynome vom Grad r u alt, ¨ber GF(q) enth¨ folgt ⎞ ⎛ ⎞ ⎛ is−1 is−1  j  j i f p ⎠ · ggT ⎝di , f p + 1⎠ di = ggT(di , f q − f ) = ggT ⎝di , j=0

j=0

is−1 j und man kann hoffen, mittels ggT(di , j=0 f p ) nichttriviale Teiler von di zu finden. Auch hier hat man sehr gute Chancen f¨ ur ein nichttriviales Ergebnis. Besteht di aus den j irreduziblen Faktoren fi1 ,. . . , fij , so ist obiis−1 pi ger ggT trivial, falls von allen fi geteilt wird, oder falls es i=0 f von keinem geteilt wird. Von den insgesamt 2j M¨ oglichkeiten f¨ uhren also genau 2 zu einem trivialen Ergebnis, d.h. mit der Wahrscheinlichkeit  j 1 − 2 12 ≥ 12 f¨ ur j ≥ 2 erh¨ alt man eine nichttriviale Zerlegung. Um den gezeigten Algorithmus EDF tauglich f¨ ur die Charakteristik 2 zu machen, muss man also nur eine if -Abfrage nach q einbauen und im geraden Fall is−1 j q i −1 statt ggT(d, f 2 − 1 mod d) den ggT(d, j=0 f p mod d) berechnen.

6.4 Berlekamp-Hensel Faktorisierung 6.4.1 Grundidee Um einen besseren Algorithmus als den von Kronecker zu bekommen, bedient man sich der Technik des Rechnens in homomorphen Bildern, die f¨ ur den Fall der Faktorisierung eines univariaten Polynoms durch das folgende Diagramm beschrieben wird. Bevor man ein gegebenes Polynom f aus Z[x] dieses Diagramm durchlaufen l¨asst, macht man es primitiv und quadratfrei (Algorithmus vonYun). L¨ osung in Z[x]

Gegebenes Polynom

in

Z[x]

Bild der L¨ osung in Zpt [x] Bildproblem in Zp [x]

Bild der L¨ osung in Zp [x] L¨ ose Bildproblem in Zp [x]

6.4 Berlekamp-Hensel Faktorisierung

265

Durch Multiplizieren von f mit LK(f )deg f −1 und anschließende Substitution x ← x/ LK(f )) erh¨ alt man ein Polynom fˆ(x) , das normiert ist, in Z[x] liegt und aus dessen Faktorisierung man durch die umgekehrte Transformation die Faktorisierung von f in Z[x] ablesen kann. Diese Normierung erleichtert die Wahl der Primzahl p (s. das folgende Beispiel) und die sp¨ atere R¨ ucktransformation aus Zp [x] , macht aber die Koeffizienten des betrachteten Polynoms unn¨otig groß. L¨ asst man deshalb diesen Schritt weg, so muss man sich Gedanken machen, wie man nach der R¨ ucktransformation den urspr¨ unglichen Leitkoeffizienten wieder herstellen kann. Das Durchlaufen des Diagramms f¨ uhrt auf eine Faktorisierung von f , wenn die gew¨ahlte Primzahl p nicht gerade ungl¨ ucklich gew¨ ahlt wurde. Dies ist sicher dann der Fall, wenn p den Leitkoeffizienten von f teilt und somit der Grad von f durch die Abbildung nach Zp [x] verringert wird. Ebenso ist p ungl¨ ucklich, wenn das Bild von f in Zp [x] nicht mehr quadratfrei ist. Der zweite Punkt l¨ asst sich leicht mit Hilfe von Resultanten nachpr¨ ufen. Da wir u orper arbeiten, ist ¨ber einem endlichen und somit vollkommenen K¨ f genau dann quadratfrei in Zp [x] , wenn gilt ggT(f mod p, f  mod p) = 1 . Dies ist genau dann der Fall, wenn resx (f mod p, f  mod p) nicht verschwindet, also wenn p kein Teiler von resx (f, f  ) ist. 6.4.1.1 Beispiel: Das Polynom f (x) = 10x6 − 9x5 − 7x4 + 40x2 − 36x − 28 ∈ Z[x] soll faktorisiert werden. Es ist primitiv und wegen ggT(f, f  ) = 1 quadratfrei. Geht man zu x fˆ(x) = 105 · f ( ) = x6 − 9x5 − 70x4 + 40000x2 − 360000x − 2800000 10 u ¨ber und faktorisiert dieses normierte Polynom, so muss man sich zwar nicht mehr um ein eventuelles Verschwinden des Leitkoeffizienten k¨ ummern, hat es aber daf¨ ur mit deutlich gr¨ oßeren Koeffizienten zu tun. Die vollst¨ andige Faktorisierung von fˆ lautet fˆ = (x − 14)(x + 5)(x2 + 20x + 200)(x2 − 20x + 200) . R¨ ucktransformation liefert f (x) = 10−5 fˆ(10x) = (2x + 1)(5x − 7)(x2 − 2x + 2)(x2 + 2x + 2) . Verzichtet man auf diese Normierung, so muss p ∈ {2 , 5} sein, damit der Leitkoeffizient 10 von f nicht beim Rechnen modulo p verschwindet.

266

6 Polynom–Faktorisierung

Wegen resx (f, f  ) = −6002376864600064000 = −215 53 136 192 292 muss p ∈  {2, 5, 13, 19, 29} sein, da sonst f mod p nicht mehr quadratfrei ist. Es gilt z.B. f ≡ 10(x + 4)(x + 6)(x + 9)2 (x + 7)2 mod 13 , f ≡ 3x(x + 4)(x2 + 5x + 2)(x2 + 2x + 2) mod 7 , f ≡ 10(x + 14)(x + 9)(x + 2)(x + 5)(x + 12)(x + 3) mod 17 . W¨ahrend sich aus der ersten Faktorisierung wegen des doppelten Faktors (x + 9)(x + 7) nicht auf die Faktorisierung in Z[x] schließen l¨asst, ist f in den beiden anderen F¨ allen quadratfrei. Die Faktorisierung mod 7 f¨ uhrt mit dem Satz von Hensel relativ direkt auf die Faktorisierung in Z[x] , w¨ ahrend f mod 17 in mehr irreduzible Faktoren zerf¨ allt als f selbst und deshalb noch zus¨ atzliche Arbeit erfordert. Der sehr allgemeine Fall des Satzes von Hensel wird in dem vorliegenden Fall deutlich einfacher. Der Ring R ist Z[x] , das Ideal I ist p , die Elemente a1 , a2 , . . . , ak sind die mit dem Berlekamp-Algorithmus oder irgendeinem anderen Faktorisierungs-Algorithmus gefundenen irreduziblen Faktoren von f in Zp [x] , n ist 1 und wir betrachten das Polynom F (x1 , x2 , . . . , xk ) := f − x1 · x2 · . . . · xk aus

Z[x][x1 , x2 , . . . , xk ] .

Bezeichnet man die irreduziblen Faktoren des quadratfreien Polynoms f wie beim Berlekamp-Algorithmus mit f1 , f2 , . . . , fk (nicht zu verwechseln mit den gleichnamigen Polynomen im Satz von Hensel), so gilt nach Definition von F F (f1 , f2 , . . . , fk ) ≡ 0 mod p .  ∂F (f , . . . , f ) ist in diesem einfachen Die Jakobi-Matrix U = ∂x 1 k i 1≤i≤k

Fall der Zeilenvektor U = (u1 , . . . , uk ) mit ui := −

k 

fj f¨ ur 1 ≤ i ≤ k .

j=1 j=i

Da die ui teilerfremd sind und v = F (f1 p,...fk ) ein Polynom kleineren Grades als f ist, gibt es nach der Folgerung zu Satz 2.4.2 ein b = (bj )1≤j≤k mit U · b ≡ −v mod p und deg bj < deg fj . Mit diesem b ist auch f (2) := fj + bj · p ein normiertes Polynom mit deg f (2) = deg fj . j j

6.4 Berlekamp-Hensel Faktorisierung

267

Mit dieser Strategie f¨ ur die L¨ osung von U · b ≡ −v mod p hat man (t) (t) F f1 ,...fk Erfolg, denn auch auch in den folgenden Liftschritten mit v = pt dieses Polynom hat kleineren Grad als f . Das Polynom (t+1)

fj

(t)

:= fj + bj · pt (1)

hat also immer noch den gleichen Grad wie fj = fj und ist normiert. Da das relativ einfach ist, kann man sich auch an das quadratische Liften wagen. Statt der im Sinne von 2.4.2 verallgemeinerten B´ezout-Gleichung:◦ u1 b1 + . . . + uk bk ≡ −v mod p , muss man daf¨ ur die Gleichung (t)

(t)

u1 b1 + . . . + uk bk = −v mod pt

(6.12)

k (t) (t) mit ui := − j=1 fj , t ∈ unter Einhaltung der Gradschranken j=i ur 1 ≤ i ≤ k nach bi l¨ osen. deg bi < deg fi f¨ An die L¨osung von (6.12) tastet man sich schrittweise heran. Zuerst betrachtet man eine solche Gleichung mit nur zwei Termen auf der linken Seite und mit t = 1 , also etwa Sa + T b = v mod p mit teilerfremden Polynomen a und b und deg(v) < deg(a) + deg(b) . Aus 2.4.2 ist bekannt, dass diese Gleichung eindeutig l¨ osbar ist. Mit Hilfe der Prozedur Gcdex aus dem Abschnitt u ¨ber Ideale (man befindet sich ja in dem euklidischen Ring Zp [x] ) kann man effektiv die Gleichung S  a + T  b = 1 mod p l¨ osen. Beidseitige Multiplikation mit v f¨ uhrt dann auf S  va + T  vb = v mod p . Teilt man wie im Beweis von 2.4.2 die beiden Summanden mit Rest durch den kgV(a, b) = ab , so erh¨ alt man

N

S  va = qab + r ⇒ (a|r ⇐⇒ r = a˜ r) ⇒ S  v − qb = r˜      T vb = q ab + r ⇒ (b|r ⇐⇒ r = ar) ⇒ T  v − q  a = r , und S := r˜ , T := r l¨ osen Sa + T b = v mod p . Wegen q + q  = 0 reicht f¨ ur die Berechnung von S und T neben dem Aufruf von Gcdex die eine Division mit Rest S  v = qb+S und damit T  v = q  a+T ⇐⇒ T = T  v+qa . Als kleine Routine sieht das etwa so aus B´ ezout-Gleichung mit zwei Termen mod p procedure bezout2 (a, b, v, p) Gcdex(a, b, S, T ) q ← PQuo(Sv, b) Return([PRest(Sv, b), qa + T v]) end ◦

Z

# Eingabe: p prim, a, b, v ∈ p [x] # mit deg(v) < deg(a) + deg(b) # Ausgabe: [S, T ] mit Sa + T b = v mod p # PQuo , PRest und Gcdex # arbeiten in p [x]

Z

Da es sich um eine Gleichung mit ganzzahligen L¨ osungen handelt, spricht man auch von

einer diophantischen Gleichung (nach Diophantos von Alexandria)

268

6 Polynom–Faktorisierung

Hat man erst einmal die L¨ osung mod p , so kann man diese mit einfachem Hensel-Lifting unter Verwendung der Routine bezout2 liften zu einer L¨ osung von Sa + T b = v mod pt . B´ ezout-Gleichung mit zwei Termen mod pt

N

Z

p prim, a, b, v ∈ p [x] , t ∈ mit deg(v) < deg(a) + deg(b) [S, T ] mit Sa + T b = v mod pt

# Eingabe: # # Ausgabe:

procedure bezout2l (a, b, v, p, t) [S, T ] ← bezout2(a, b, v, p) for i from 1 to p − 1 do b−v V ← Sa+T pi [σ, τ ] ← bezout2(a, b, −V, p) S ← (S + σpi ) mod pi+1 T ← (T + τ pi ) mod pi+1 enddo Return([S, T ]) end

Damit kann man nun endlich (6.12) l¨ osen, indem man rekursiv bezout2l aufruft. Man setzt β0 := v und berechnet dann f¨ ur i = 1, . . . , k − 1 die eindeutige L¨osung βi , bi der Gleichung k 

βi fi + bi

fj ≡ βi−1 mod pt

(6.13)

j=i+1

aus. Am Ende setzt man noch bk := βk−1 , d.h. bk fk−1 + bk−1 fk ≡ βk−2 . oßen, wie Die so berechneten bi sind wirklich die in (6.13) gesuchten Gr¨ man durch Einsetzen u uft: ¨berpr¨ 

=−u1 b1

b1

 k 





(t)

=−uk−2 bk−2



(t) (t)

fj + . . . + bk−2 fk fk−1

k−3 



=−uk−1 bk−1

 k−2  (t)

(t)

fj + bk−1 fk

j=1

j=2

≡βk−3

k−3

(t) f j=1 j



 (t)

k−2



j=1



=−uk bk

 k−2  (t)

fj + bk fk−1

j=1

 ≡βk−2

 



 (t)

fj

 (t)

fj

j=1



mod pt ((6.13),i=k−1)



mod pt ((6.13) mit i=k−2)



≡β0 mod pt ≡v mod pt

B´ ezout-Gleichung mit mehreren Termen mod pt

Z

procedure bezoutm (F, v, p, t) # Eingabe: F =Faktorenliste f1 , . . . , fk ∈ p [x] # von f ∈ [x] , deg(v) < deg(f ) β0 ← v # p prim, t ∈ k ← L¨ ange von F # Ausgabe: [b1 , . . . , bk ] wie in (6.12) for i from 1 to k − 1 do k [βi , bi ] ← bezout2l(fi , j=i+1 fj mod pt , βi−1 , p, t) end do Return([b1 , . . . , bk−1 , βk−1 ]) end

Z

N

6.4 Berlekamp-Hensel Faktorisierung

269

6.3.2 Beispiel: Mit f (x) := x6 + x4 + x2 + 1 und p = 13 ist f1 := x + 5 , f2 := x2 + 5 , f3 := x − 5 und f4 := x2 − 5 und es folgt −U = (x5 − 5x4 + x − 5 , x4 − 4x2 − 5 , x5 + 5x4 + x + 5 , x4 + 6x2 + 5) Zu dieser Matrix ist bereits in Beispiel 2.4.3 eine Rechtsinverse W mod 13 mit kleinen Graden berechnet worden, n¨ amlich W = (−2, 1, 2, 5)t . Weiterhin ist v=

F (f1 , . . . , f4 ) ≡ 2x4 + 2x2 + 4 mod 13 . 13

Damit ist eine L¨ osung von −U b ≡ v mod 13 der Vektor ⎞ ⎛ −4x4 − 4x2 + 5 4 2 2x + 2x + 4 ⎟ b = W v ≡ ⎜ ⎠ mod 13 . ⎝ 4x4 + 4x2 − 5 4 2 −3x − 3x − 6 Da die Eintr¨ age von b alle vom Grad 4 sind, w¨ urden sie beim Lift(2) ur j = 1, . . . 4 den Grad erh¨ ohen, was schritt fj = fj + bj · 13 f¨ nat¨ urlich unerw¨ unscht ist. Gem¨ aß der Folgerung zu Satz 2.4.2 gibt es aber auch eine L¨ osung b , bei der dieser Effekt nicht auftritt. Solch eine L¨ osung ist in Beispiel 2.4.4 bereits berechnet worden, n¨amlich b = (5, 5, −5, −5)t . Die Prozedur bezoutm liefert diese L¨osung jetzt sehr viel direkter. Damit hat man nun die algorithmische Grundlage, um linear oder quadratisch liften zu k¨onnen. Linear braucht man bezoutm nur mod p und mit der gegebenen Faktorenliste, im quadratischen Fall wird bezoutm mod p gebraucht und mit der bereits gelifteten Faktorenliste L . Lineares Hensel-Lifting nach dem Berlekamp-Algorithmus procedure henlin (f, F, p, t) # Eingabe: F =Faktorenliste f1 , . . . , fk ∈ # von f ∈ [x] , p prim, t ∈ m ← p; L ← F # Ausgabe: L =geliftete Faktorenliste k ← L¨ ange von F (t) (t) f1 , . . . , fk mod pt for j from 1 to t − 1 do # k # Li = i.tes Element von L fp ← i=1 Li f −fp v ← m mod m bezoutm(F, v, p, 1) for i from 1 to k do Li ← Li + bi · m mod(p · m) end do m←m·p end do Return(L) end

Z

Zp [x]

N

270

6 Polynom–Faktorisierung

6.3.3 Beispiel: Mit dem in vorhergehenden Beispiel berechneten b erh¨ alt man die Faktoren mod 132 von f (2)

f1

(2)

= x + 70 , f2

(2)

= x2 + 70 , f3

(2)

(2)

= x − 70 , f4

= x2 − 70 .

(2)

ur i = 1, . . . , 4 . Es gilt fi ≡ fi mod 13 und deg fi = deg fi f¨ Quadratisches Hensel-Lifting nach dem Berlekamp-Algorithmus # Eingabe: procedure henqu (f, F, p, t) # m ← p; L ← F ;  ← 1 # Ausgabe: k ← L¨ ange von F # for j from 1 to t do k p f p ← i=1 Li ; v ← f −f mod m m bezoutm(L, v, p, ) for i from 1 to k do Li ← Li + bi · m mod m2 end do m ← m2 ;  ← 2 end do Return(L) end

F =Faktorenliste f1 , . . . , fk ∈ von f ∈ [x] , p prim, t ∈ L =geliftete Faktorenliste (t) (t) f1 , . . . , fk mod pt

Z

Zp [x]

N

6.3.4 Beispiel: Es sei wieder f (x) := x6 + x4 + x2 + 1 ∈ Z[x] gegeben. Dieses Polynom ist quadratfrei und normiert. Da 3 kein Teiler von resx (f, f  ) ist, kann man etwa mod p = 3 faktorisieren und erh¨ alt mit dem Berlekamp-Algorithmus f (x) = (x2 + 2x + 2)(x2 + 1)(x2 + x + 2) bzw. die Faktorenliste F := [x2 + 2x + 2, x2 + 1, x2 + x + 2] . Ruft man nun henlin mit diesen Werten auf, so erh¨ alt man hintereinander (1) v L (2) v L (3) v L

= x4 + 2 + 2 x5 + x , b = [x + 2, 0, x + 2] ⇒ =[x2 − 4x − 1, x2 + 1, x2 + 4x − 1] mod 9 = 2x2 + 2x4 , b = [x, 0, 2x] ⇒ =[x2 + 5x − 1, x2 + 1, x2 − 5x − 1] mod 27 = x4 + x2 , b = [2x, 0, x] ⇒ =[x2 − 22x − 1, x2 + 1, x2 + 22x − 1] mod 81

usw. Analog kommt man da mit henqu schon in 2 Lift-Schritten hin. 6.3.1 Wie weit muss man liften? Nun stellt sich die Frage, wie weit man liften muss, um von der Faktorisierung modulo pt auf die gesuchte Faktorisierung in Z[x] schließen zu k¨onnen. Dar¨ uber geben die Ungleichungen von Mignotte in 2.7.6 Auskunft.

6.4 Berlekamp-Hensel Faktorisierung

In Zpt rechnet man mit ganzzahligen Vertretern zwischen −  t und p2 . W¨ahlt man nun t so, dass 9

271



pt −1 2



:  $n%  pt − 1 n > max{|bj | , deg q ≤ } = $ n2 % f  := B  ⇐⇒ pt > B 2 2 4

mit B := 2B  + 1 bzw. B := 2B  je nachdem ob p gerade oder ungerade ist, so ¨andert sich nichts, wenn man die gesuchte Faktorisierung in Z[x] modulo pt betrachtet. Eine aus der Faktorisierung in Zp [x] nach Zpt [x] hochgeliftete Faktorisierung k¨onnte h¨ ochstens aus mehr Faktoren bestehen als dieses Bild der gesuchten Faktorisierung in Z[x] . In diesem Fall k¨ onnten einige der (t) (t) Faktoren f1 , . . . , fk mit den Faktoren in Z[x] u ¨bereinstimmen, andere m¨ ussen zu Faktoren in Z kombiniert werden. 6.3.1.1 Beispiel: F¨ u das bereits √ mehrfach betrachtete f (x) := x6 + x4 + "r  n 2 2 x + 1 ist  i=0 ai = 4 , n = 6 und damit (f¨ ur ungerades √ 3 ahlen p) B = 2 · · 4 = 12 . Man kann also ein p < B w¨ 1 und solange liften, bis man bei einem pt > B angelangt ist, oder man kann gleich eine Primzahl p > B nehmen und sich damit das Hensel-Lifting sparen. Die erste M¨ oglichkeit wurde bereits im letzten Beispiel durchgerechnet: f (x) ≡ (x2 + 5x − 1)(x2 − 5x − 1)(x2 + 1) mod 27 Probedivisionen zeigen nun, dass x2 + 1 auch ein Teiler von f (x) in Z[x] ist, die beiden anderen mod 27 gefundenen Teiler aber keine Faktoren in Z[x] sind. Weiteres Liften bringt auch nichts, weil 27 schon u ¨ber der Mignotte-Schranke liegt. Die einzig verbleibende M¨ oglichkeit ist, dass f (x) mod 3 in mehr Faktoren zerf¨ allt, als es das in Z[x] tut. In der Tat ist (x2 + 5x − 1)(x2 − 5x − 1) ≡ x4 + 1 mod 27 ein Teiler von f in Z[x] , womit die vollst¨ andige Faktorisierung von f in Z[x] gefunden w¨ are: f (x) = (x4 + 1)(x2 + 1) . Die zweite M¨ oglichkeit kann man etwa mit p = 13 durchrechnen. Der Berlekamp-Algorithmus liefert f (x) ≡ (x2 + 5)(x2 − 5)(x + 5)(x − 5) mod 13 .

272

6 Polynom–Faktorisierung

Mit Polynomdivision pr¨ uft man nun leicht nach, dass diese Faktoren keine echten Teiler sind. Die Produkte (x − 5)(x + 5) ≡ x2 + 1 mod 13 und (x2 − 5)(x2 + 5) ≡ x4 + 1 mod 13 sind dagegen die bereits oben auf andere Weise gefundenen irreduziblen Faktoren in Z[x] . Bereits im letzten Beispiel war auch die L¨ osung mod 13 geliftet worden. Die Faktorisierung von f (x) in Z[x] erh¨ alt man aus dieser Faktorisierung wie aus der Faktorisierung mod 13 durch Kombination zweier Faktoren. Dieser Liftschritt jenseits der Mignotteschranke bringt nichts. Ist f nicht normiert, und l¨ asst man trotzdem die Normierung fˆ(x) := x deg(f )−1 LK(f ) · f ( LK(f ) ) weg um die Koeffizienten (und damit auch die Mignotte-Schranke) m¨ oglichst klein zu halten, so stellt sich die Frage, wie man mit dem Leitkoeffizienten von f umgeht. In Zp [x] rechnet man ja auf jeden Fall mit normierten Polynomen. Ist g(x) einer der berechneten normierten Faktoren von f (x) mod pt und ist pt bereits gr¨ oßer als B , so berechnet man gˆ := LK(f ) · g(x) mod pt . Da f (x) primitiv vorausgesetzt war, ist auch jeder der gesuchten Teiler in Z[x] primitiv. Deshalb betrachtet man pA(ˆ g ) in Z[x] . Dieses Polynom enth¨alt den richtigen Anteil von LK(f ) und ist m¨ oglicherweise einer der gesuchten Teiler in Z[x] . Ist es dies auch nicht, so muss man wieder Teiler kombinieren. 6.3.1.2 Beispiel: (Fortsetzung von 6.4.1.1)

F¨ ur

f (x) = 10x6 − 9x5 − 7x4 + 40x2 − 36x − 28 ist B  ≈ 187.6 , man kann also etwa pt = p = 379 > B = 2B  nehmen und muss dann nicht mehr liften. Die normierte Faktorisierung von f mod 379 ist (x2 − 2x + 2)(x − 189)(x2 + 2x + 2)(x − 153) . Es folgt LK(f ) · g = 10(x2 − 2x + 2) 10(x − 189) 10(x2 + 2x + 2) 10(x − 153)

gˆ = ≡ 10x2 − 20x + 20 ≡ 10x + 5 ≡ 10x2 + 20x + 20 ≡ 10x − 14

pA(ˆ g) = mod 379 mod 379 mod 379 mod 379

, x2 − 2x + 2 , , 2x + 1 , , x2 + 2x + 2 , , 5x − 7 .

Die vier Polynome in der letzten Spalte sind gerade auch die irreduziblen Teiler von f in Z[x] . Dies war durch Zufall der g¨ unstige Fall in dem die Grade dieser Faktoren den Faktoren in Z[x] entsprachen.

6.4 Berlekamp-Hensel Faktorisierung

273

Nimmt man p = 401 , so erh¨ alt man die normierte Faktorisierung (x − 19)(x − 21)(x + 159)(x + 21)(x − 200)(x + 19) . Wie oben ergibt sich daraus LK(f ) · g = 10(x − 19) 10(x − 21) 10(x + 159) 10(x + 21) 10(x − 200) 10(x + 19)

gˆ = ≡ ≡ ≡ ≡ ≡ ≡

10x − 190 10x + 191 10x − 14 10x − 191 10x + 5 10x + 190

pA(ˆ g) = mod 401 mod 401 mod 401 mod 401 mod 401 mod 401

, x − 19 , , 10x + 191 , , 5x − 7 , , 10x − 191 , , 2x + 1 , , x + 19 .

Davon sind nur 5x−7 und 2x+1 echte Teiler in Z[x] , die anderen Faktoren m¨ ussen miteinander kombiniert werden. So ist etwa (x − 19)(x + 21) ≡ x2 + 2x + 2 mod 401 ein weiterer Teiler in Z[x] (hier muss nicht mehr die Multiplikation mit LK(f ) versucht werden, denn dieser Faktor steckt in den Linearfaktoren 5x − 7 und 2x + 1 bereits vollst¨ andig drin). Die letzten Beispiele zeigen, dass man sich viel Arbeit mit dem Kombinieren der Faktoren am Ende sparen kann, wenn man eine gl¨ uckliche Primzahl w¨ahlt, modulo der das gegebene Polynom m¨oglichst wenige Teiler hat. Im letzten Beispiel f¨ uhrte etwa p = 379 ohne jegliche Kombination direkt auf die Faktorisierung in Z[x] . In dem Beispiel mit x6 +x4 +x2 +1 war 3 von der Anzahl der Faktoren her g¨ unstiger als 13 , es musste aber in jedem Fall kombiniert werden. Der daf¨ ur verantwortliche Faktor x4 + 1 von f (x) hat die f¨ ur dieses Verfahren unangenehme Eigenschaft, dass er modulo jeder Primzahl zerf¨ allt, obwohl er in Z[x] irreduzibel ist. Der Berlekamp-Algorithmus und das anschließende Hensel-Lifting funktionieren abh¨angig von n und p in polynomialer Zeit. Es stellt sich nun die Frage, wie stark das Kombinieren und Testen von entsprechend gelifteten Faktoren am Ende auf die Gesamtzeit des Algorithmus wirkt. 6.3.2 Swinnerton-Dyer Polynome

N

6.3.2.1 Satz: Es seien n ∈ und p1 , . . . , pn paarweise verschiedene Primzahlen. Das Polynom fp1 , ... , pn (x) vom Grad 2n , dessen Wurzeln √ √ e1 p1 + . . . + en pn mit ei = ±1 f¨ ur i = 1 , . . . , n sind, hat ganzzahlige Koeffizienten und ist irreduzibel in Z[x] . Weiterhin zerf¨allt fp1 , ... , pn (x) f¨ ur jede Primzahl p modulo p in irreduzible Faktoren vom Grad h¨ochstens 2 Die Polynome fp1 , ... , pn (x) heißen Swinnerton-Dyer Polynome.

274

6 Polynom–Faktorisierung

N

Beweis: Wir zeigen zun¨ achst per Induktion nach n ∈ , dass gn (x) := √ √ fp1 , ... , pn (x) ∈ Z[x] ist, dass ζn := p1 + . . . + pn ein primitives Element √ √ der K¨orpererweiterung Kn : Q mit Kn := Q[ p1 , . . . , pn ] ist und dass n [Kn : Q] = 2 ist. F¨ ur n = 1 ist die Behauptung sofort klar. Nun sei n > 1 . Ist gn−1 ∈ Z[x] , so folgt aus der Definition von gn (x) √ √ √ gn (x) = gn−1 (x + pn ) · gn−1 (x − pn ) ∈ Z[ pn ][x]. Mit Satz 2.5.3 liest man daraus ab   gn (x) = resy gn−1 (x − y), y 2 − pn . Als Resultante zweier Polynome aus Z[x][y] ist damit gn (x) ∈ Z[x] . Die 2n−1 Elemente der Menge Bn−1 mit @√ A pi1 · . . . · pij ; j = 1, . . . , k , 1 ≤ i1 < i2 < . . . < ij ≤ k Bk := {1} ∪ erzeugen den Q-Vektorraum Kn−1 . Wegen der Induktionsvoraussetzung [Kn−1 : Q] = 2n−1 ist Bn−1 sogar eine Basis von Kn−1 : Q . √ pn liegt nicht in Kn−1 , denn es l¨ asst sich nicht als Das Element Q-Linearkombination der Elemente von Bn−1 darstellen. G¨abe es n¨amlich eine solche nichttriviale Linearkombination, so folgte aus der Tatsache, dass p1 , . . . , pn paarweise verschiedene Primzahlen sind, dass mindestens zwei der Koeffizienten in der Kombination ungleich Null w¨ aren. Nummeriert man die Primzahlen gerade so, dass etwa pn−1 eine der Primzahlen ist, die in dieser nichttrivialen Linearkombination vorkommt, so g¨abe es Elemente a, b ∈ Kn−2 \ {0} mit pn − a2 − b2 pn−1 √ √ √ a + b pn−1 = pn ⇒ pn−1 = ∈ Kn−2 , 2ab was aber ein Widerspruch zur Induktionsvoraussetzung w¨ are. Dies zeigt [Kn : Kn−1 ] = 2 und damit [Kn : Q] = [Kn : Kn−1 ] · [Kn−1 : Q] = 2n . √ √ Es bleibt also noch zu zeigen, dass ζn := p1 + . . . + pn ein primitives Element der K¨ orpererweiterung Kn : Q ist. Dazu betrachten wir die Wurzeln w1 := ζn−1 , w2 , . . . , w2n−1 von gn−1 (x) . Dann ist √ h(x) := gn−1 (w1 + pn −x) ∈ Q[ζn ][x] .    =ζn

√ √ √ Wegen h( pn ) = 0 = h(− pn ) ( w1 + 2 pn ∈ {w2 , . . . , w2n−1 } , denn √ w1 − wj ∈ Kn−1 und pn ∈ Kn−1 ) gilt √ √ ggT(h(x), x2 − pn ) = x − pn ∈ Q[ζn ][x] ⇒ pn ∈ Q[ζn ]. Da nach Induktionsvoraussetzung ζn−1 primitives Element von Kn−1 ist √ √ und wegen ζn−1 + pn = ζn , folgt Q[ζn ] = Kn−1 [ pn ] = Kn .

6.4 Berlekamp-Hensel Faktorisierung

275

Da [Q[ζn ] : Q] = 2n ist und ζn Wurzel des normierten Polynoms gn (x) vom Grad 2n ist, ist gn (x) das Minimalpolynom von ζn , also insbesondere irreduzibel. √ Rechnet man modulo p , so ist pi als Wurzel des Polynoms x2 − pi ∈ ¨ GF(p)[x] (1 ≤ i ≤ n) in GF(p) oder schlimmstenfalls in GF(p2 ) . Uber 2 GF(p ) zerf¨allt gn (x) somit in Linearfaktoren. Die irreduziblen Faktoren von gn (x) mod p sind also h¨ ochstens quadratisch.  6.3.2.2 Beispiel: f17,19,23 (x) =(x + ·(x + ·(x − ·(x −

√ √ √ √

17 + 17 − 17 + 17 −

√ √ √ √

19 + 19 + 19 + 19 +

√ √ √ √

23)(x + 23)(x + 23)(x − 23)(x −

√ √ √ √

17 + 17 − 17 + 17 −

√ √ √ √

19 − 19 − 19 − 19 −

√ √ √ √

23)· 23)· 23)· 23) =

=x − 236x + 11678x − 210428x + 1261129 . 8

6

4

2

F¨ ur dieses Polynom erh¨ alt man als Faktorisierungen:

Z

in : mod 2 : mod 3 : mod 5 : mod 7 : mod 11 : mod 13 : mod 17 : mod 19 : mod 23 : mod 29 : :

x8 − 236x6 + 11678x4 − 210428x2 + 1261129 , (x + 1)8 , (x2 + 2x + 2)(x2 + x + 2)(x + 1)2 (x + 2)2 , (x2 + x + 1)(x2 + x + 2)(x2 + 4x + 2)(x2 + 4x + 1) , (x2 + x + 3)(x2 + 6x + 6)(x2 + 6x + 3)(x2 + x + 6) , (x2 + 2x + 2)(x2 + 9x + 2)(x2 + 2x + 5)(x2 + 9x + 5) , (x2 + 5x + 10)(x2 + 8x + 10)(x2 + 10x + 6)(x2 + 3x + 6) , (x2 + 12x + 13)2 (x2 + 5x + 13)2 , (x + 4)2 (x + 8)2 (x + 15)2 (x + 11)2 , (x2 + 12)2 (x2 + 8)2 , (x2 + 11x + 20)(x2 + 18x + 20)(x2 + 18x + 12) ·(x2 + 11x + 12),

√ Insbesondere gilt B = 84 · 33364545494 ≈ 15343410, 08 . Die n¨achstgr¨oßte Primzahl ist p = 15343417 . Die Faktorisierung von f17,19,23 (x) modulo p ist (x + 5180808) · (x + 723412) · (x + 4014938) · (x + 9919158)· (x + 10162609) · (x + 14620005) · (x + 11328479) · (x + 5424259) .

Um eine Faktorisierung von f17,19,23 in Z[x] zu erhalten, m¨ usste man jetzt hintereinander erst die 8 Faktoren modulo p testen, dann 28 Kombinationen von je 2 Faktoren, 56 Kombinationen von je 3 Faktoren und schließlich 70 Kombinationen von je 4 Faktoren. Die Swinnerton-Dyer Polynome f¨ uhren also zur Explosion der Rechenzeit beim Faktorisieren mit dem Berlekamp-Hensel-Algorithmus. Dieser schlimmste Fall l¨ asst sich mit einem Algorithmus von A. K. Lenstra, H. W. Lenstra und L. Lov´ asz ([LLL] oft LLL- oder L3 -Algorithmus genannt) abfangen, der mit Hilfe ganzzahliger Gitter arbeitet.

7 Summation in endlich vielen Termen

7.1 Grundbegriffe n Die Summation B k=m f (k) ist in vielerlei Hinsicht das diskrete Analogon n zur Integration m f (x) dx. Die zur Untersuchung n¨ otige Differenzenrechnung hat sich parallel zur Differentialrechnung entwickelt. Brook Taylor, dessen Name von der Differentialrechnung her wohlbekannt ist, gilt auch als einer der Urv¨ ater der Differenzenrechnung (Methodus Incrementorum, London 1717). Eine zentrale Rolle f¨ ur die Differenzenrechnung spielen binomische Polynome:   7.1.1 Definition: F¨ ur k ∈ Z wird das binomische Polynom xk ∈ Q[x] definiert durch ⎧ k−1 ⎪   ⎨ 1  (x − i) f¨ x ur k ∈ 0 := k! i=0 ⎪ k ⎩ 0 f¨ ur −k ∈ .   F¨ ur n, k ∈ 0 stimmt das binomische Polynom xk an der Stelle n mit den bekannten Binomialkoeffizienten u ¨berein, es gibt also keine Verwirrung durch die Schreibweise 9 :   x n . = k x=n k   x F¨ ur k ∈ 0 ist degx xk = k . Die Folge k k∈N0 bildet also eine Basis des -Vektorraumes [x] .

N

N

N

Q

N

7.1.2 Satz:

Q

(Produktsatz f¨ ur binomische Polynome) F¨ ur n, k ∈       x x−k x x−n . = n k k n

Z

gilt:

Beweis: F¨ ur n < 0 oder k < 0 ist die Behauptung trivial. Es seien nun also n, k ≥ 0. F¨ ur jede ganze Zahl m ≥ n, k gilt dann

278

7 Summation in endlich vielen Termen

   m! m m−n (m − n)! m! 1 = · = = k (m − n)! n! (m − n − k)! k! k! (m − n − k)! n! n    (m − k)! m m−k m! . = = n (m − k)! k! (m − n − k)! n! k Damit stimmen die beiden Polynome in unendlich vielen St¨ utzpunkten u ¨berein, sind also gleich.  Der Vollst¨andigkeit halber sei noch (ohne Beweis) der Binomialsatz angegeben, der in dieser Allgemeinheit demn¨ achst ben¨ otigt wird. 7.1.3 Satz: (Binomialsatz) Es sei R ein nicht notwendig kommutativer Ring mit Einselement und x, y ∈ R seien vertauschbare Elemente. Dann gilt f¨ ur n ∈ n    n k n−k (x + y)n = x y . k

N

k=0

7.1.4 Definition: Ein Tupel (F, F) aus einem K¨ orper F der Charakteristik 0 und einer Abbildung F : F → F heißt (Vorw¨ arts-) Differenzenk¨orper, wenn f¨ ur alle f, g ∈ F gilt: (∆1) F(f + g) = Ff + Fg, (∆2) F(f · g) = f · Fg + g · Ff + Ff · Fg, (∆3) F1 = 0 . Die Menge K := {f ∈ F, Ff = 0} heißt der Konstantenk¨orper des Differenzenk¨ orpers F . Es ist aus den drei Grundeigenschaften nachweisbar, dass K wirklich ein K¨orper ist, der den Primk¨ orper Q umfasst. Weiterhin folgt, dass F eine K-lineare Abbildung des K-Vektorraumes F ist: (∆1)

Ff = Fg = 0 ⇒ F(f + g) = 0 (∆3)

F0 = F(0 + 0) = F0 + F0 ⇒ F0 = 0 , (∆1)

0 = F(f − f ) = F(f ) + F(−f ) ⇒ (Ff = 0 ⇒ F(−f ) = 0) , (∆2)

Ff = Fg = 0 ⇒ F(f · g) = 0 , (∆3)

0 = F(1) = F(f · f −1 ) = f · F(f −1 ) + f −1 · Ff + Ff · F(f −1 ) ⇒ (Ff = f =0

0 ⇒ f · F(f −1 ) = 0 ⇒ F(f −1 ) = 0) , (∆1)

(∆2)

Fa = Fb = 0 ⇒ F(af + bg) = F(af ) + F(bg) = a · Ff + f · Fa + Fa · Ff + b · Fg + g · Fb + Fb · Fg = a · Ff + b · Fg f¨ ur alle a, b ∈ K, f, g ∈ F . √ 7.1.5 Beispiel: Es sei F = √ Q( 3). Jedes Element dieses K¨orpers l¨asst sich in der Form f = a + 3b mit a, b ∈ Q schreiben.

7.1 Grundbegriffe

Da die Abbildung

* κ:

√ 3) √ a + 3b

Q(

279

√ → Q( √ 3) → a − 3b

bekanntlich ein Automorphismus von F ist, erf¨ ullt die durch F := κ − id definierte Abbildung offensichtlich die Bedingung (∆1). Weiterhin gilt f¨ ur f, g ∈ F : F(f · g) = κ(f · g) − f · g = κf · κg − f · g = = f (κg − g) + g(κf − f ) + (κf − f )(κg − g) = = f Fg + gFf + Ff · Fg also√(∆2). Die√Bedingung√(∆3) ist trivialerweise erf¨ ullt. Damit ist orper mit Konstan(Q( 3) , a + 3b → −2 3b) ein Differenzenk¨ tenk¨orper K = Q. F¨ ur den Nachweis der Eigenschaft (∆1) – (∆3) im letzten Beispiel wurden die speziellen Eigenschaften des Automorphismus κ gar nicht benutzt. Man kann deshalb Differenzenk¨ orper auch einfach als Paar aus einem K¨orper F und einem Automorphismus κ einf¨ uhren. Die in der vorhergehenden Definition geforderte Abbildung F ergibt sich dann aus F := κ−id. 7.1.6 Beispiel: Das Standardbeispiel eines Differenzenk¨ orpers ist der K¨ orper der rationalen Funktionen Q(x) mit dem Translationsoperator * Q(x) → Q(x) T : f (x) → f (x + 1). Da T ein K¨ orperautomorphismus ist, ist nach dem vorhergehenden Bemerkungen (Q(x), ∆) ein Differenzenk¨ orper, wobei ∆ := T − id gesetzt sei, also ∆f (x) = f (x + 1) − f (x) . Konstantenk¨ orper ist der Primk¨orper Q. Die im vorhergehenden Beispiel eingef¨ uhrten Operatoren T (= Translationsoperator, in vielen englischsprachigen B¨ uchern mit E bezeichnet) und ∆ (Vorw¨artsdifferenz) lassen sich bei Bedarf auch v¨ ollig analog in einem Erweiterungsk¨ orper F von Q(x) definieren. Sind Verwechslungen m¨oglich, so wird die Hauptvariable extra gekennzeichnet. Weiterhin werden auch andere Schrittweiten als 1 f¨ ur die beiden Operatoren zugelassen. F¨ ur f (x, y) ∈ Q(x, y) schreibt man T f (x, y) := f (x + h, y) und

x,h

∆ f (x, y) := f (x + h, y) − f (x, y).

x,h

Der Zusammenhang ∆ = T −id bleibt auch in dieser Schreibweise erhalx,h

x,h

ten. Ist h = 1 und die Hauptvariable x eindeutig, so kann man bei der k¨ urzeren Notation T und ∆ bleiben. Steht die Variable x fest, so kann man nat¨ urlich statt T auch T h schreiben. x,h

280

7 Summation in endlich vielen Termen

Im Folgenden werden nur noch diese beiden Operatoren betrachtet. F¨ ur weitere Informationen zu allgemeinen Differenzenk¨ orpern siehe etwa [Coh]. Der Differenzenoperator ∆ entspricht dem Operator D der Differential   (x) f (x+h)−f (x) rechnung statt lim . im diskreten Fall f (x+h)−f h h h→0

h=1

Beide Operatoren sind linear u orper. Die ¨ber dem jeweiligen Konstantenk¨ Produktregel (∆2) ist durch den letzten Term etwas komplizierter als die bekannte Produktregel der Differentialrechnung. Bei der Quotientenregel f¨ ur ∆ sieht der Nenner etwas anders aus. Wie man leicht nachrechnet, gilt   1 ∆g(x) ∆ =− und damit g(x) g(x) · T g(x)  ∆

f (x) g(x)

 =

−f (x) · ∆g(x) + g(x)∆f (x) . g(x) · T g(x)

Da T eine K-lineare Abbildung ( K =Konstantenk¨ orper) und mit der Identit¨at vertauschbar ist, kann man eine Potenz ∆n des Differenzenoperators f¨ ur n ∈ 0 mit Hilfe des Binomialsatzes berechnen. Es gilt   n  n n j n T n−j (−1) ∆ = (T − id) = j j=0

N

und damit ( T ist sogar K¨ orperautomorphismus)   n  n n−j T (−1)j f (x) · T n−j g(x) = ∆n (f (x) · g(x)) = j j=0   n  j n (∆ + id)n−j f (x) · T n−j g(x) . = (−1) j j=0 uhrt auf Nochmalige Anwendung des Binomialsatzes auf (∆ + id)n−j f (x) f¨ n 

(−1)j

j=0

=

n n−j   j=0 k=0

   n−j  n  n−j ∆k f (x) · T n−j g(x) = j k k=0

(−1)j

   n n−j ∆k f (x) · T n−j g(x) . k j

Mit Hilfe des Produktsatzes 7.1.2 erh¨ alt man daraus    n n−j   n n−k ∆k f (x) · T n−j g(x) = (−1)j j k j=0 k=0

7.1 Grundbegriffe

=

n n−k  

(−1)j

k=0 j=0

=

n    n

k=0

=

k

n  

k=0

281

   n n−k ∆k f (x) · T n−j g(x) = j k

· ∆k f (x)

n−k 

 (−1)j

j=0

 n−k · T n−j g(x) = j

    n−k n · T n−k−j T k g(x) . · ∆k f (x) (−1)j j k j=0 

n−k 

Wendet man nochmals den Binomialsatz auf die innere Summe an, so hat man damit den folgenden Satz gezeigt. 7.1.7 Satz: gilt

(Leibnizsche Produktregel) F¨ ur n ∈ ∆ (f (x) · g(x)) = n

n    n k=0

k

N0

und f (x), g(x) ∈ F

· ∆k f (x)∆n−k g(x + k).

Wie x bereits am Anfang des Abschnitts bemerkt, bilden die Polynome k k∈N0 eine Basis des Q− Vektorraumes Q[x] . Es gibt also zu jedem Polynom p(x) ∈ Q[x] vom Grad n eine eindeutige Darstellung der Gestalt   n  x mit pj ∈ Q. pj · (7.1) p(x) = j j=0 Zur Bestimmung der Koeffizienten (pj )j∈N0 betrachtet man die Wirkung des Differenzenoperators auf die binomischen Polynome. F¨ ur k ∈ gilt

N



  k−1 k−1 1  x 1  = (x + 1 − i) − (x − i) = k k! i=0 k! i=0   k−2 k−2   1 (x + 1) = (x − i) − (x − k + 1) (x − i) = k! i=0 i=0   k−2  1 x . = (x − i) = k−1 (k − 1)! i=0

(7.2)

    Wegen x0 = 1 und xk = 0 f¨ ur negatives k , stimmt diese Formel sogar f¨ ur k ∈ . F¨ ur j, k ∈ 0 gilt also  9  :    x x x und damit ∆k = ∆k = δj,k j−k j j x=0

Z

N

(Kronecker-Symbol).

282

7 Summation in endlich vielen Termen

Damit gilt f¨ ur j ≤ n     :   n 9 x x x = . ∆k · j j x=0 k k=0

Einsetzen in (7.1) ergibt p(x) =

n  j=0

pj

 :   n 9  x x . ∆k · j x=0 k

k=0

Wegen der Linearit¨ at von ∆ und der Unabh¨angigkeit der Koeffizienten pj von x erh¨alt man        n n  n   % $ k x x x k = . pj ∆ p(x) = · ∆ p(x) x=0 · j x=0 k    k j=0 k=0 k=0 =pk    =p(x)

Damit ist gezeigt: 7.1.8 Satz: (Newton- oder MacLaurin-Entwicklung) F¨ ur p(x) ∈ mit deg(x) = n gilt   n  % $ k x . p(x) = ∆ p(x) x=0 · k

Q[x]

k=0

Betrachtet man zum Vergleich die MacLaurin-Entwicklungeines Polynoms in der Differentialrechnung % $ k n  D p(x) x=0 k p(x) = x , k! k=0

  so sieht man, dass den xk die Polynome k! · xk entsprechen. Diese Polynome heißen auch (fallende) faktorielle Polynome. F¨ ur k ∈ 0 sei   k−1  x = (x)k := k! (x − i) . k i=0

N

Leider existieren in der Literatur sehr viele verschiedene Abk¨ urzungen f¨ ur faktorielle Polynome (z.B. [x]k , [x]k , x[k] , x(k) , xk etc. siehe [Jor]). Die hier gegebene Definition wird sp¨ ater noch deutlich verallgemeinert werden. Einsetzen der neuen Definition in (7.2) zeigt ∆(x)k = k(x)k−1 , also die Entsprechung zu Dxk = kxk−1 .

7.1 Grundbegriffe

283

Die Newton-Entwicklung lautet jetzt % n $ k  ∆ p(x) x=0 (x)k . p(x) = k! k=0

Die gleiche Formel kann man nochmals verwenden, um schnell rekursiv die Koeffizienten % $ k ∆ p(x) x=0 ak := k! zu berechnen. F¨ ur j ≤ n gilt % $ k j   n   % ∆ p(x) x=0 j $ k ∆ p(x) x=0 = p(j) = (j)k = k k! k=0 k=0  $ % % $ j−1 ∆j p(x) x=0  ∆k p(x) x=0 = j! + j! k!(j − k)! k=0 $ j % % j−1 $ ∆ p(x) x=0 p(j)  ∆k p(x) x=0 ⇐⇒ = − ⇐⇒ j! j! k!(j − k)! k=0

p(j)  ak − j! (j − k)! j−1

⇐⇒ aj =

f¨ ur

j = 0, 1, . . . , n .

k=0

7.1.9 Beispiel: Es sei p(x) = x2 + 2 . Dann ist a0 = p(0) = 2 , a1 = p(1) − a0 = 3 − 2 = 1 und a2 = 21 p(2) − 12 a0 − a1 = 3 − 1 − 1 = 1 und damit       x x x . +2 + p(x) = 2 ·  1 +1 ·  x +1 · x(x − 1) = 2    2 1 0 =(x)0

=(x)1

=(x)2

Das Analogon Dxk = kxk−1 der Differentialrechnung zu dem soeben nachgewiesenen ∆(x)k = k(x)k−1 gilt bekanntlich sogar f¨ ur alle k = 0. Die faktoriellen Polynome sind bisher nur f¨ ur k ∈ definiert und es stellt sich die Frage, wie man die Definition von (x)k zu verallgemeinern hat, um ∆(x)k = k(x)k−1 auch f¨ ur negative k zu bekommen. Sind n und m positive ganze Zahlen mit n > m , so liest man aus der Definition der faktoriellen Polynome ab, dass (x)n = (x)m · (x − m)n−m ist. Setzt man m = 0 in diese Formel ein, so sieht man, dass die Formel auch in diesem Fall richtig bleibt, falls man (x)0 = 1 definiert. Probiert man nun n = 0 , so sagt die Formel, dass

N

(x − m)−m =

1 1 bzw. (x)−m = (x)m (x + m)m

eine sinnvolle Erweiterung der Definition der faktoriellen Polynome auf negative ganze Zahlen w¨ are.

284

7 Summation in endlich vielen Termen

Die Definition der faktoriellen Polynome wird also wie folgt erweitert: ⎧ k−1  ⎪ ⎪ ⎪ (x − i) f¨ ur k ∈ 0 ⎪ ⎨ i=0 (x)k := −k−1 ⎪  ⎪ 1 ⎪ ⎪ f¨ ur −k ∈ . ⎩ (x − k − i) i=0

N

N

F¨ ur −k ∈

N

∆(x)k = ∆

gilt damit

−k−1  i=0

: −k−1 : −k−1  9  9 1 1 1 − = (x − k − i) (x + 1 − k − i) (x − k − i) i=0 i=0

−k−2 −k−2   1 1 1 1 = − = x + 1 − k i=0 (x − k − i) x + 1 i=0 (x − k − i)

=k· =k·

−k−1  1 1 = (x + 1)(x + 1 − k) i=1 x − k + 1 − i −k 

1 = k(x)k−1 . x−k+1−i i=0

Diese Regel gilt also jetzt wie gew¨ unscht f¨ ur alle k ∈ Z mit k = 0. Insbesondere f¨ ur die Summation rationaler Funktionen wird die vorliegende Definition faktorieller Polynome nochmals erweitert, und zwar von x auf ein beliebiges Polynom f (x) ∈ F , also ⎧ k−1  ⎪ ⎪ ⎪ f (x − i) f¨ ur k ∈ 0 ⎪ ⎨ i=0 (f (x))k := −k−1 ⎪  ⎪ 1 ⎪ ⎪ f¨ ur −k ∈ . ⎩ f (x − k − i) i=0

N

N

Nachdem es sich f¨ ur negatives k nicht um ein Polynom handelt spricht man nur noch von der k-ten Faktoriellen von f . Die Zahl k nennt man in Analogie zum Exponenten in der Potenz k (f (x)) auch faktoriellen Exponenten von (f (x))k . Um mit diesen neuen Begriffen arbeiten zu k¨ onnen, untersucht man wieder die Wirkung des Differenzenoperators auf diese Ausdr¨ ucke. Ist k ∈ , so gilt

N

∆ (f (x))k = ∆

k−1 

f (x − i) =

i=0

= f (x + 1)

k−1 

f (x + 1 − i) −

k−1 

i=0 k−2  i=0

f (x − i) − f (x − k + 1)

f (x − i) =

i=0 k−2  i=0

f (x − i) =

7.2 Die unbestimmte Summation

285

= (f (x))k−1 · ∆ f (x − k + 1). x,k

F¨ ur −k ∈

N

gilt 

−k−1

∆ (f (x))k = ∆

i=0

−k−1 −k−1   1 1 1 = − f (x − k − i) f (x + 1 − k − i) f (x − k − i) i=0

 −k

= f (x + 1)

i=0

i=0

 1 1 − f (x + 1 − k) f (x + 1 − k − i) f (x + 1 − k − i) −k

i=0

= (f (x))k−1 ∆ f (x − k + 1). x,k

Zusammen ist also f¨ ur k ∈ Z * (f (x))k−1 · ∆ f (x − k + 1) falls k = 0 x,k ∆ (f (x))k = 0 falls k = 0

(7.3)

7.2 Die unbestimmte Summation Gibt es zu einem f (x) ∈ F ein g(x) ∈ F mit ∆g(x) = f (x), so gilt n  k=m

f (k) =

n 

∆g(k) =

k=m

n 

g(k + 1) −

k=m

n 

g(k) = g(n + 1) − g(m),

k=m

falls f (x) f¨ ur x = m, . . . , n bzw. g(x) f¨ ur x = m, . . . , n + 1 definiert sind. Der Zusammenhang n  x=n+1 ∆g(x) = f (x) ⇒ f (k) = [g(x)]x=m k=m

ist die (bis auf die obere Grenze) genaue Entsprechung des Hauptsatzes der Differential- und Integralrechnung C n x=n Dg(x) = f (x) ⇒ f (x)dx = [g(x)]x=m . m

Dies f¨ uhrt auf die folgende 7.2.1 Definition: Gibt es zu f (x) ∈ F ein g(x) ∈ F mit ∆g(x) = f (x) , so heißt f (x) in endlich vielen Termen summierbar in F und g(x) seine unbestimmte Summe. Man schreibt  g(x) = f (x).  In der Literatur ist statt auch ∆−1 gebr¨ auchlich, g(x) wird auch diskrete Stammfunktion von f (x) genannt. Im Gegensatz zur Stammfunktion der Differential- und Integralrechnung ist diese nicht nur bis auf Konstanten eindeutig, sondern bis auf Funktionen mit der Periode 1 .

286

7 Summation in endlich vielen Termen

Man verschafft sich einen ersten Eindruck u ¨ber die unbestimmte Summation, indem man auf viele bekannte Funktionen den Differenzenoperator anwendet und die so erhaltene Tabelle umdreht.  Nr. f (x) = ∆g(x)

f (x) = g(x)

Tipp

cx

a ac − 1

(1) acx (c = 0, a = 1) (2) (x)k ax (a = 1, k ∈ (3) (x)k

ak

N)

Z

N

differenzieren

x

1 (x)k+1 k+1



x k+1



$ j % n  ∆ p(x) x=0 j !

j=0

(p = Polynom vom Grad n, a = 1) (6) sin(ax + b) (a = 2kπ, k ∈

Z)

(7) cos(ax + b) (a = 2kπ, k ∈

Z)

(8) sinh(ax + b) (a = 2kπi, k ∈

Z)

(9) cosh(ax + b)

Z

(a =  2kπi, k ∈ ) a (10) log 1 + ax + b (11) a log(ax + b) a∈

Z

(1) nach a

0

(k  ∈ , k = −1) x (4) k (k ∈ 0 ) (5) p(x) · a

d ax dak a − 1

aj

dj daj



ax a−1

Newton-Entw. von p(x) und (2)

− cos(ax + b − a2 ) 2 sin

a 2

∆ cos(ay + b) y,1

und x = y + sin(ax + b − a2 ) 2 sin

a

1 2

analog zu (6)

2

mit sin cosh(ax + b − a2 ) 2 sinh

a

analog zu (6),

2

nur hyperbolisch sinh(ax + b − a2 ) 2 sinh

a

analog zu (7),

2

nur hyperbolisch log(ax + b) log Γ(ax + b)

In der letzten Spalte wird gegebenenfalls ein Tipp gegeben, was zu tun ist, um die angegebene Formel selber herzuleiten. Die Wirkung von ∆ auf binomische Polynome wurde bereits untersucht:       x  x x x = ⇒ = ∆ k k−1 k−1 k Wie etwa bei Integraltabellen u asst man jeweils das +C “ bzw. ¨blich, l¨ ” +Funktion der Periode 1“ weg. ”

7.3 Die Polygamma-Funktionen

N

Damit erh¨alt man f¨ ur k ∈ die Formel :  9    n x=n+1  x j n+1 = = k x=0 k−1 k j=0

oder

n    j j=0

k

 =

287

 n+1 . k+1

7.2.2 Beispiel: Ein schon etwas fortgeschritteneres Beispiel erh¨ alt man mit Hilfe von Beispiel 7.1.9. Dort war gezeigt worden: x2 + 2 = 2(x)0 + (x)1 + (x)2 .  ist offensichtlich linear): Wegen ∆(x)k = k(x)k−1 gilt ( 

(x)k−1 =

1 (x)k k

bzw.



(x)k =

(x)k+1 . k+1

Damit folgt 

(x2 + 2) = 2

(x)1 (x)2 (x)3 + + bzw. 1 2 3

:x=n+1 9 (x)1 (x)2 (x)3 (k + 2) = 2 = + + 1 2 3 x=0 k=0   1 1 = (n + 1) · 2 + n + n(n − 1) . 2 3 n 

2

7.3 Die Polygamma-Funktionen B k+1 Bekanntlich gilt die Formel xk dx = xk+1 nur f¨ ur k = −1 , f¨ ur k = −1 ist das Ergebnis nicht mehr in Q(x) . Erst, wenn man den Logarithmus naturalis zum Grundk¨ orper hinzunimmt, wird auch der Fall k = −1 l¨ osbar. Bei der Summation liegt das Problem sehr ¨ ahnlich. Die Formel 

(x)k =

(x)k+1 k+1

gilt nur f¨ ur k = −1 . Auch hier muss eine u ¨ber Q(x) transzendente Funktion, die so genannte Digamma-Funktion, hinzugenommen werden um den Fall k = −1 behandeln zu k¨ onnen. Da sich diese Digamma-Funktion, bzw. die ganze Klasse der so genannten Polygamma-Funktionen, aus der Gammafunktion ableiten, werden erst einige Grundlagen aus der Funktionentheorie wiederholt. F¨ ur z ∈ C mit Re(z) > 0 ist die Gammafunktion Γ(z) als eulersches Integral definiert: C ∞

Γ(z) = 0

tz−1 exp(−t) dt

288

7 Summation in endlich vielen Termen

In der Halbebene Re(z) > 0 konvergiert dieses Integral absolut und stellt dort eine analytische Funktion dar. F¨ ur die Ableitung gilt C ∞ k tz−1 (n(t)) exp(−t) dt f¨ ur k ∈ 0 , Re(z) > 0 . Γ(k) (z) =

N

0

Weiterhin ist Γ(1) = 1 und durch partielle Integration folgt die Funktionalgleichung Γ(z + 1) = z · Γ(z) f¨ ur Re(z) > 0 . Insbesondere gilt also Γ(n + 1) = n! , weshalb die Gammafunktion als Verallgemeinerung der Fakult¨ at betrachtet werden kann. Durch iterierte Anwendung der Funktionalgleichung erh¨ alt man f¨ ur n ∈ 0

N

Γ(z) =

Γ(z + n + 1) . z · (z + 1) · . . . · (z + n)

Die rechte Seite dieser Gleichung ist definiert f¨ ur Re(z) > −(n + 1) und f¨ ur z = 0, −1, −2, . . . , −n . Diese Gleichung erlaubt also die analytische Fortsetzung auf die linke Halbebene mit Ausnahme der Menge − 0 . In der Funktionentheorie wird gezeigt, dass diese Fortsetzung die einzig m¨ ogliche ist. In den Ausnahmestellen liegen einfache Pole vor. Die Gammafunktion ist also nach dieser Fortsetzung eine in C meromorphe Funktion mit der Polstellenmenge − 0 . Wenn hier von der Gammafunktion geredet wird, ist jeweils diese auf \ − 0 fortgesetzte Funktion gemeint. Sie hat in ihrem Definitionsbereich keine ur alle z ∈ \ − Nullstellen und es gilt Γ(z) = Γ(z) f¨ 0 , also insbesondere − Γ(x) ∈ f¨ ur x ∈ \ 0 .

N

N C

N

R

R N

Die Gamma-Funktion auf der reellen Achse

C N

Der Betrag der Gamma-Funktion u ¨ber der gaußschen Zahlenebene

7.3 Die Polygamma-Funktionen

F¨ ur z ∈ C \

7.3.1 Definition:

N−0

und m ∈

N

289

heißt

Ψm (z) := Dm n (Γ(z)) Polygamma-Funktion. Im Fall m = 1 spricht man von der DigammaFunktion∗ oder gaußschen Psi-Funktion , im Fall m = 2 von der Trigamma-Funktion◦ etc. Diese Definition der Polygamma-Funktionen ist in der Literatur nicht einheitlich. Einige Autoren (vgl etwa [Jor]) verwenden z + 1 statt z als Argument. Die hier angegebene Definition geht wohl auf Legendre zur¨ uck. In der rechten Halbebene l¨ asst sich die Polygamma-Funktion wie die Gammafunktion als Integral schreiben. Es ist C ∞ C ∞ m−1 Ψ1 (z) = 0

exp(−t) exp(−zt) − dt , Ψm (z) = (−1)m t 1 − exp(−t)

t

0

exp(−zt) dt 1−t

f¨ ur m = 2, . . . und Re(z) > 0 . Insgesamt ist die Polygamma-Funktion Ψm (z) eine in C meromorphe Funktion mit Polen der Ordnung m in z = 0, −1, −2, . . . Es ist Ψm (z) = Ψm (z) , also insbesondere Ψm (x) ∈ R f¨ ur x ∈ R \ N− 0 . Die Digamma-Funktion ist die Funktion, die die angesprochene L¨ ucke bei der Summation schließt: ∆Ψm (x) = ∆Dm nΓ(x) = Dm ∆nΓ(x) = Dm (nΓ(x + 1) − nΓ(x)) =   1 Γ(x + 1) m m m−1 1 m−2 − 2 = = D n = D n(x) = D =D Γ(x) x x   1 (m − 1)! (7.4) = Dm−3 (−1)(−2) 3 = . . . = (−1)m−1 x xm f¨ ur m ∈ N also insbesondere f¨ ur m = 1 : ∆Ψ1 (x + 1) = ∆(x + 1) =

1 = (x)−1 x+1

(dies zeigt, woher die erw¨ ahnte Alternativdefinition von  mit dem Argument x + 1 statt x kommt) bzw.  (x)−1 = Ψ1 (x + 1) = (x + 1) . Die dabei gewonnene allgemeinere Formel



(z)

geschrieben;



heißt Digamma und ist ein nicht mehr gebr¨ auchliches griechisches

Zeichen  Γ (z) ψ(z) = Γ(z) geschrieben; es ist ψ (m−1) (z) = Ψm (z) ◦ Teilweise wie  – aber mit einem zus¨ atzlichen kleinen Querstrich – geschrieben.

290

7 Summation in endlich vielen Termen

 1 (−1)m−1 = ur m ∈ Ψm (x) f¨ xm (m − 1)!

N

(7.5)

ist nat¨ urlich auch von großem Interesse. Die Digamma-Funktion Ψ1 (z) = ψ(z) = (z) auf der reellen Achse

Die Trigamma-Funktion Ψ2 (z) = ψ  (z) auf der reellen Achse

Aus (7.4) liest man ab, dass die Polygamma-Funktion der Rekursion Ψm (z + 1) = Ψm (z) +

(−1)m−1 (m − 1)! zm

gehorcht. Mit Hilfe dieser und anderer Formeln l¨ asst sich die PolygammaFunktion sehr effektiv berechnen, was hier aber nicht weiter ausgef¨ uhrt werden soll (man vergleiche dazu etwa [ASt]).

7.4 Shiftfreie Faktorisierung 7.4.1 Definition: Ein Polynom f (x) ∈ F heißt r-shiftfrei, wenn ggT (f (x), T r f (x)) = 1 ist ( r ∈ , im Fall von 1-shiftfrei spricht man auch einfach von shiftfrei). Ist ein Polynom f (x) f¨ ur jedes r ∈ r-shiftfrei, so heißt f (x) vollst¨andig shiftfrei. Eine Dark stellung f (x) = i=1 (fi (x))i mit shiftfreien, paarweise teilerfremden Faktoren fi (x) heißt shiftfreie Faktorisierung von f . Besitzt k andig shiftfreif (x) eine Darstellung f (x) = i=1 (fi (x))i mit vollst¨ en, paarweise teilerfremden Faktoren fi (x) , so heißt diese Zerlegung vollst¨andig shiftfreie Faktorisierung von f . Mit Hilfe von Resultanten l¨ asst sich ein Polynom sehr leicht auf vollst¨ andige Shiftfreiheit pr¨ ufen, denn der gr¨ oßte gemeinsame Teiler von f (x) und T r f (x) ist nach 2.5.4 genau dann nichttrivial, wenn g(r) := resx (f (x), T r f (x)) verschwindet.

N

N

7.4 Shiftfreie Faktorisierung

291

Man berechnet also die ganzzahligen positiven Nullstellen von g(r) ( 0 ist trivialerweise immer eine Wurzel, außerdem ist g(r) achsensymmetrisch, d.h. die negativen Wurzeln bringen keine neue Information). 7.4.2 Beispiel: Es sei n(x) = x6 +6x5 +16x4 +30x3 +37x2 +36x+18 ∈ Q[x] . Die Resultante g(r) = resx (n(x), T r n(x)) (ein Polynom vom Grad 36 ) hat die ganzzahligen Nullstellen 0, ±1 und ±2 . Das Polynom n ist also nicht shiftfrei. Es ist h := ggT(n, T n) = x2 + 2x + 3, also T −1 h · h = (h)2 = (x2 + 2x + 3)2 = x4 + 5x2 + 2x3 + 4x + 6 ein Teiler von n . n = x2 + 4x + 3 ist wegen Der Rest (h) 2 resx (x2 + 4x + 3, (x + r)2 + 4(x + r) + 3) = r2 (r − 2)(r + 2) zwar shiftfrei, aber nicht vollst¨ andig shiftfrei: ggT(x2 + 4x + 3, (x + 2)2 + 4(x + 2) + 3) = x + 3. und damit n(x) = (x2 + 4x + 3)1 · (x2 + 2x + 3)2 zwar eine shiftfreie Zerlegung von n , wegen des ersten Faktors aber nicht vollst¨ andig shiftfrei ( x2 + 2x + 3 ist irreduzibel u ¨ber Q , also erst recht vollst¨ andig shiftfrei). Es ist bereits an diesem Beispiel klar, dass sich eine vollst¨ andig shiftfreie Zerlegung im Allgemeinen auch nicht erreichen l¨ asst. Ist das betrachtete Polynom der Nenner einer rationalen Funktion z(x) r(x) = n(x) , so kann man mit Hilfe der shiftfreien Faktorisierung von n(x) gem¨aß 2.6.3 die shiftfreie Partialbruchzerlegung von r(x) berechnen. Auch wenn n(x) keine vollst¨ andig shiftfreie Zerlegung besitzt, kann man sich in diesem Fall durch Erweitern mit den fehlenden Termen behelfen und r umschreiben in zˆ(x) r(x) = k i=1 (ni (x))i mit vollst¨andig shiftfreier Faktorisierung des neuen Nenners. Daraus kann man dann die so genannte vollst¨andig shiftfreie Partialbruchzerlegung berechnen. 7.4.3 Beispiel: (Fortsetzung) Wegen x2 + 4x + 3 = T −2 (x + 3) · (x + 3) = (x + 1)(x + 3) fehlt dem Polynom n(x) = x6 + 6x5 + 16x4 + 30x3 + 37x2 + 36x + 18 der Faktor T −1 (x + 3) = x + 2 , man schreibt also 1 z.B. die rationale Funktion r(x) := n(x) um in x+2 r(x) = . (1)1 (x2 + 2x + 3)2 (x + 3)3 Der Nenner ist jetzt eine vollst¨ andig shiftfreie Faktorisierung.

292

7 Summation in endlich vielen Termen

Der erweiterte euklidische Algorithmus liefert 1 1 (5x2 +26x+32)·(x2 +2x+3)2 − (5x3 +6x2 +18x+10)·(x+3)3 = x+2 66 66 und damit die Partialbruchzerlegung 9 : 1 5x2 + 26x + 32 5x3 + 6x2 + 18x + 10 r(x) = . − 66 (x + 3)3 (x2 + 2x + 3)2 Durch fortgesetzte Division mit Rest (vgl. Beweis von 2.6.3) erh¨ alt man daraus die vollst¨ andig shiftfreie Partialbruchzerlegung 9 : 5 1 1 1 5x − 4 11(x + 2) r(x) = . + − − 2 − 2 66 (x + 1)1 (x + 2)2 (x + 3)3 (x + 2)1 (x + 2x + 3)2

7.5 Partielle Summation Analog zur Integration l¨ asst sich aus der Produktregel (∆2) eine Rechenregel zur partiellen Summation herleiten. Es gilt ∆(f g) = f ∆g + g∆f + ∆f ∆g = f ∆g + ∆f (g + ∆g) = f ∆g + ∆f T g ⇐⇒ f ∆g = ∆(f g) − ∆f T g und damit



(f ∆g) = f g −



∆f T g.

Mit Hilfe dieser Rechenregel und der Tabelle diskreter Stammfunktionen kann man nun schon schwierigere Funktionen summieren.  7.5.1 Beispiel: Es soll x sin(ax + b) bestimmt werden. W¨ ahlt man f (x) = x und ∆g(x) = sin(ax + b) , so ist ∆f (x) = 1 und − cos(ax+b− a 2) (f¨ ur a = 2kπ, k ∈ Z ). Damit ergibt partielg(x) = 2 sin( a 2) le Summation   1 a   a  x cos ax + b − x sin(ax + b) = − − T g(x). 2 2 sin 2   at von Wegen T g(x) = − 2 sin1 a cos ax + b + a2 und der Linearit¨ ( ) 2  kann man jetzt das Ergebnis aus der Tabelle ablesen. Es folgt   a 1 x + 2 sin(ax + b) x sin(ax + b) = cos ax + b − h 2 h a mit h := −2 sin 2 . 7.5.2 Beispiel: Auch die gerade eingef¨ uhrte Polygamma-Funktion l¨ asst sich mit Hilfe partieller Summation summieren.

7.6 Der Algorithmus von Moenck

293

Mit f (x) = Ψm (x) und ∆g(x) = 1 ist ∆f (x) = (−1)m−1 (m−1)! xm (vgl. (7.4)) und g(x) = x . Damit erh¨ alt man f¨ ur m ≥ 2 



(m − 1)! · (x + 1) = xm   1 (7.5) 1 m−1 = (m − 1)! · + m = xΨm (x) − (−1) xm−1 x

Ψm (x) = xΨm (x) −

(−1)m−1

= xΨm (x) + ((m − 1)Ψm−1 (x) − Ψm (x)) = = (x − 1)Ψm (x) + (m − 1)Ψm−1 (x). Im Spezialfall m = 1 erh¨ alt man entsprechend    1 Ψ1 (x) = xΨ1 (x) − = 1+ x = xΨ1 (x) − (x + Ψ1 (x)) = (x − 1)Ψ1 (x) − x Die Liste solcher Beispiele l¨ asst sich beliebig erweitern. Wie bei der Integration ist es aber oft sehr schwierig, geeignete Funktionen f und g zu finden. Insbesondere ist diese Suche nach f und g im allgemeinen kein Algorithmus. F¨ ur rationale Funktionen hat R. Moenck ([Mo3]) einen Algorithmus angegeben, der mit Hilfe rekursiver Anwendung partieller Summatid∆h on arbeitet. Moenck betrachtet Ausdr¨ ucke der Gestalt ahlt man hT h . W¨ 1 ∆h g = − h , so folgt nach der Quotientenregel ∆g = . Damit ist der zu hT h  summierende Ausdruck von der Gestalt f ∆g mit f = d und g = − h1 . Es folgt also  d∆h d  ∆d =− + . (7.6) hT h h Th

7.6 Der Algorithmus von Moenck z(x) Gegeben sei eine rationale Funktion r(x) = n(x) ∈ Q(x) mit z(x), n(x) ∈ Z[x], deg z(x) < deg n(x) und nat¨urlich n(x) = 0 . Mittels geeigneter Erweiterung l¨asst sich r(x) in die Form

r(x) = k

zˆ(x)

i=1 (ni (x))i

mit vollst¨andig shiftfreier Faktorisierung des Nenners bringen. Da die (ni (x))i f¨ ur i = 1, . . . , k paarweise teilerfremd sind und wegen (ni (x))i =

i−1  j=0

ni (x − j) =

i 

ni (x − j + 1)

j=1

gibt es nach 2.6.3 eine zugeh¨ orige vollst¨ andige Partialbruchzerlegung

294

7 Summation in endlich vielen Termen

r(x) = k i=1

i

zˆ(x)

j=1

ni (x − j + 1)

=

i k  



i=1 =1

j=1

wi, (x) ni (x − j + 1)

mit deg wi, < deg ni f¨ ur 1 ≤  ≤ i ≤ k (vgl. Beispiel 7.4.3). Man kann also rationale Funktionen summieren, wenn man in der Lage ist Summanden der Gestalt w(x) (ni (x)) mit  ≤ i, deg w(x) < deg ni (x) und vollst¨ andig shiftfreiem ni (x) zu summieren. Dazu setzt man h(x) = (ni (x − 1))−1 in (7.6) und erh¨ alt −

  d ∆d d · ∆(ni (x − 1))−1 + = . (ni (x − 1))−1 (ni (x))−1 (ni (x − 1))−1 · (ni (x))−1

Da wegen (7.3) gilt ∆(ni (x − 1))−1 = (ni (x − 1))−2 ∆ ni (x −  + 1) x,−1

hat man zusammen −

  ∆d d + = (ni (x − 1))−1 (ni (x))−1 =

d · (ni (x − 1))−2 ∆ ni (x −  + 1) x,−1

(ni (x − 1))−1 (ni (x))−1 d · ∆ ni (x −  + 1)  x,−1

ni (x −  + 1)(ni (x))−1 ∆ ni (x −  + 1)  d · x,−1 = . (ni (x))

=

(7.7)

Um diesen Sachverhalt ausnutzen zu k¨ onnen, zerlegt man das Polynom w(x) w(x) im Z¨ahler von (ni (x)) nach B´ezout in c(x) · ni (x −  + 1) + d(x) · ∆ ni (x −  + 1) = w(x).

(7.8)

x,−1

Das geht, da ni (x −  + 1) und

∆ ni (x −  + 1) teilerfremd sind (dies

x,−1

ist noch zu begr¨ unden) und deg w(x) < deg ni (x) ist. Wie u ¨blich ist man an L¨osungen c(x), d(x) m¨ oglichst kleinen Grades interessiert, da man ja mit diesen Polynomen weiterrechnen muss. Die L¨ osung ist sogar eindeutig, wenn man deg c(x), deg d(x) < deg ni (x) fordert. Mit dieser Zerlegung bekommt man w(x) = (ni (x))

c(x) · ni (x −  + 1) + d(x) · ∆ ni (x −  + 1) x,−1

(ni (x))

=

7.6 Der Algorithmus von Moenck

c(x) = + (ni (x))−1

295

d(x) · ∆ ni (x −  + 1) x,−1

(ni (x))

Zusammen mit (7.7) wird nun die Summation von (nw(x) m¨ oglich, i (x)) denn durch  c(x) + ∆d(x)  w(x) d(x) =− + (7.9) (ni (x)) (ni (x − 1))−1 (ni (x))−1 wird der faktorielle Exponent der Nenner um 1 abgesenkt. Man kann also rekursiv so weitermachen, bis man beim faktoriellen Exponenten 1 angelangt ist. 7.6.1 Beispiel: (Fortsetzung von 7.4.3) Einige der Summanden der vollst¨andig shiftfreien Partialbruchzerlegung von r(x) kann man nun direkt summieren. Der einfachste Summand ist  5 5 1 5  (x)−1 = = Ψ1 (x + 1). 66 (x + 1) 66 66  1 1 Den Summanden 66 (x+2)2 kann man mit der Moenckschen Reduktion (7.9) vereinfachen. Mit  = 2 und ni = x + 2 ist ni (x −  + 1) = x + 1 und n (x ∆ i −  + 1) = (x + 2) − (x + 1) = 1.

x,−1

Der Satz von B´ezout (7.8) liefert zu w(x) = 1 die Polynome c(x) = 1 und d(x) = −x . Die Formel (7.9) lautet also 

 1 + ∆(−x) 1 −x =− + = (x + 2)2 (x + 1)1 (x + 2)1 x 1 . = =1− x+1 x+1

Die 1 kann man dabei ohne Schaden weglassen. Da x + 2 linear ist, 1 = h¨atte man dies auch einfacher haben k¨ onnen. Es ist n¨ amlich (x+2) 2 (x)−2 und damit 

(x)−2 =

1 1 (x)−2+1 = −(x)−1 = − . −2 + 1 x+1

In jedem Fall kann man f¨ ur den zweiten Summanden von r notieren  1 1 1 1 =− . 66 (x + 2)2 66 x + 1 Entsprechend erh¨ alt man f¨ ur

296

7 Summation in endlich vielen Termen



1 1  1 = (x)−3 = 66 (x + 3)3 66 1 1 1 =− (x)−3+1 = (x)−2 = 66 −3 + 1 132 1 1 = . 132 (x + 2)(x + 1)  1 x+2 . Auch dieser wird Nun zum letzten Summanden − 6 (x2 +2x+3) 2 mit der Reduktion (7.9) vereinfacht. Mit  = 2 und ni = x2 + 2x + 3 ist ni (x −  + 1) = x2 + 2 und 2 2 ∆ ni (x −  + 1) = (x + 2x + 3) − (x + 2) = 2x + 1. −

x,−1

Zu w(x) = x + 2 liefert der Satz von B´ezout c(x) = 23 und d(x) = − 13 x + 23 . Mit Formel (7.9) folgt nun    − 13 x + 23  23 + − 13 x+2 =− 2 + (x2 + 2x + 3)2 x +2 x2 + 2x + 3 und damit 9 :  1 1 x−2 x+2 1 . − = − + 6 (x2 + 2x + 3)2 18 x2 + 2 x2 + 2x + 3 Damit hat man bisher insgesamt 

5 1 1 1 1 Ψ1 (x + 1) − + − 66 66 x + 1 132 (x + 1)(x + 2) 1 1 x−2 1  1  5x − 4 − − − . 2 2 18 x + 2 18 x + 2x + 3 66 x2 + 2

r(x) =

Der eigentliche Algorithmus von Moenck ist damit am Ende, denn die Nenner der noch zu summierenden rationalen Funktionen sind vollst¨andig shiftfrei und u ¨ber Q nicht weiter zu zerlegen. Da die Nennerpolynome in den verbleibenden Summen nun vom Grad kleiner als 5 sind, kann man jetzt vollst¨ andige Partialbruchzerlegungen u ¨ber C berechnen und kommt so zum Ziel. √ √ Mit der Faktorisierung x2 + 2x + 3 = (x + 1 − i 2)(x + 1 + i 2) und B´ezout erh¨ alt man die vollst¨ andige Partialbruchzerlegung √ √ 1 i 2 1 1 i 2 √ √ =− + x2 + 2x + 3 4 x+1−i 2 4 x+1+i 2 und damit

√ √ √ √ 1 1  i 2 i 2 − (x + 1 − i 2) − (x + 1 + i 2). = Ψ Ψ 1 1 18 x2 + 2x + 3 72 72

7.6 Der Algorithmus von Moenck

297

Entsprechend erh¨ alt man aus der komplexen Partialbruchzerlegung  √ √  5x − 4 1 −5 + 2 2i −5 − 2 2i √ √ =− + x2 + 2 2 x + 2i x − 2i die diskrete Stammfunktion √ √ √ √ −5 − 2 2i 1  5x − 4 −5 + 2 2i (x + 2i) + − = Ψ Ψ1 (x − 2i) 1 2 66 x +4 132 132  also insgesamt r(x) = 1 1 1 1 1 x−2 + − + 66 x + 1 132 (x + 1)(x + 2) 18 x2 + 2 √ √ √ √ i 2 i 2 5 + Ψ1 (x + 1) + Ψ1 (x + 1 − i 2) − Ψ1 (x + 1 + i 2)+ 66 72 72 √ √ √ √ −5 − 2 2i −5 + 2 2i + Ψ1 (x + 2i) + Ψ1 (x − 2i). 132 132 −

Wegen aΨm (z) + aΨm (z) = aΨm (z) + aΨm (z) = 2 Re(aΨm (z)) kann man dabei die komplex aussehenden Terme zusammenfassen und erh¨alt schließlich 

1 1 1 1 1 x−2 + − + 66 x + 1 132 (x + 1)(x + 2) 18 x2 + 2  √  √ i 2 5 + Ψ1 (x + 1) + 2 Re Ψ1 (x + 1 − i 2) + 66 72   √ √ −5 + 2 2i + 2 Re Ψ1 (x + 2i) . 132

r(x) = −

Nun noch zu der nachzutragenden Begr¨ undung f¨ ur (7.9): 7.6.2 Hilfssatz:

ggT(n(x), ∆ n(x)) = 1 ⇐⇒ n ist -shiftfrei. x,

Beweis: ⇒ “ W¨are ggT(n(x), T  n(x)) = g(x) mit deg g(x) > 0 , also n(x) ” nicht -shiftfrei, so w¨ are dieses g(x) auch ein Teiler von ∆ n(x) = x,

T n(x) − n(x) = T  n(x) − n(x) und damit ggT(n(x), ∆ n(x)) = 1 .

x,



x,

⇐ “ Ist g(x) := ggT(n(x), ∆ n(x)) von positivem Grad, so teilt g(x) x,

die Polynome n(x) und n(x + ) − n(x) . Damit teilt g(x) auch n(x + ) = T  n , also auch ggT(n(x), T  n(x)) . 

298

7 Summation in endlich vielen Termen

7.7 Der Algorithmus von Gosper Ein weiteres m¨ achtiges Verfahren zur unbestimmten Summation ist der 1978 ver¨offentlichte Algorithmus von Gosper ([Gos]). Dieser ist in der Lage  rational in x ist (also f (x) ∈ F f (x) = g(x) zu berechnen, falls g(x+1) g(x) und g(x+1) orper des Differenzenk¨ orpers g(x) ∈ K(x) , wobei K der Konstantenk¨ (F, ∆) sei). Das Problem ist, dass man dies nat¨ urlich nicht a priori weiß. Der Algorithmus muss also auf gut Gl¨ uck gestartet werden. Er entscheidet g(x+1) ob g(x) wirklich rational ist und berechnet g(x) in diesem Fall. Die Methode ist denkbar einfach. Es wird gezeigt werden, dass rational ist, falls gibt mit

g(x+1) g(x)

f (x) f (x−1)

rational ist und dass es Polynome p, q, r ∈ K[x] p(x) q(x) f (x) = · f (x − 1) p(x − 1) r(x)

N

ur alle j ∈ 0 . und ggT(q(x), T j r(x)) = 1 , f¨ Mit diesen Polynomen kann man weiterhin zeigen, dass es ein Polynom s(x) ∈ K[x] mit q(x + 1) g(x + 1) = s(x)f (x) p(x) gibt, f¨ ur das die folgende Funktionalgleichung gilt: p(x) = q(x + 1)s(x) − r(x)s(x − 1) . Da man Schranken f¨ ur den Grad von s(x) angeben kann, l¨ asst sich s(x) aus der Funktionalgleichung berechnen und man hat damit auch g(x) .  Nun zu den Einzelheiten des Vorgehens. Ist g(x) = f (x) ⇐⇒ f (x) = ∆g(x) bekannt und g(x+1) (und damit nat¨ urlich auch g(x−1) g(x) g(x) ) rational, so folgt g(x+1) ∆g(x) g(x + 1) − g(x) f (x) g(x) − 1 , = = = f (x − 1) ∆g(x − 1) g(x) − g(x − 1) 1 − g(x−1) g(x) d.h. insbesondere, dass auch

f (x) f (x−1)

rational ist.

Damit gibt es Polynome p, q, r ∈ K[x] mit f (x) p(x) q(x) = ; f (x − 1) p(x − 1) r(x)

(7.10)

man nehme etwa p(x) = 1 und f¨ ur q(x), r(x) den Z¨ ahler bzw. den Nenner f (x) der rationalen Funktion f (x−1) . Dies ist allerdings noch nicht die Darstelf (x) lung von f (x−1) , die man f¨ ur das weitere Vorgehen braucht. Wie bereits erw¨ahnt, h¨atte man in (7.10) gerne

7.7 Der Algorithmus von Gosper

ggT(q(x), T j r(x)) = 1 f¨ ur alle j ∈

N0 .

299

(7.11)

Diese Forderung l¨ asst sich wie folgt immer erf¨ ullen. Gibt es ein j0 ∈ mit ggT(q(x), T j0 r(x)) = d(x) und deg d(x) > 0 so ersetzt man q(x) ←

q(x) r(x) , r(x) ← −j0 d(x) T d(x)

N0

(7.12)

und p(x) ← p(x)(d(x))j0 . Damit bekommt die rechte Seite von (7.10) die Gestalt p(x)(d(x))j0 q(x)T −j0 d(x) p(x − 1)(d(x − 1))j0 d(x)r(x) was wegen

immer noch

(d(x))j0 T −j0 d(x) =1 (d(x − 1))j0 d(x) f (x) f (x−1)

ist.

f (x) gilt nun ggT(q(x), T j0 r(x)) = In der neuen Darstellung (7.10) von f (x−1) uck 1 . Um alle j ∈ 0 mit (7.11) zu finden, greift man wieder auf 2.5.4 zur¨ und betrachtet h(j) := resx (q(x), T j r(x)).

N

Aus der Definition der Resultanten folgt, dass h(j) ein Polynom vom Grad deg q · deg r ist. F¨ ur jede der endlich vielen Wurzeln j0 ∈ 0 von h(j) ist also die Substitution (7.12) durchzuf¨ uhren. Nach endlich vielen Schritten erh¨alt man so eine Darstellung (7.10), die die Bedingung (7.11) erf¨ ullt.

N

7.7.1 Beispiel: Es sei f (x) = xax mit a ∈ K \ {0 , 1} . Dann ist xa xax f (x) = ∈ K(x) . = x−1 f (x − 1) (x − 1)a x−1 Man startet mit q(x) = xa, r(x) = x − 1 und p(x) = 1 . Es ist   a 0   = a(j − 1) h(j) = resx (xa, x + j − 1) =  1 j − 1

N

orige also j0 = 1 die einzige Wurzel von h(j) in 0 . Der zugeh¨ nichttriviale gr¨ oßte gemeinsame Teiler ist d(x) = ggT(xa, x) = x . Damit liefert die Substitution (7.12) q(x) ← also mit (7.10):

xa x−1 = a , r(x) ← = 1 , p(x) ← x x x−1

300

7 Summation in endlich vielen Termen

f (x) xa x a = = . f (x − 1) x−1 x−11 Mit der nun vorliegenden Zerlegung (7.10) mit Zusatzbedingung (7.11) macht man den Ansatz g(x + 1) =

q(x + 1) s(x)f (x) p(x)

(7.13)

aus dem versucht werden soll die Funktion s(x) ∈ F zu berechnen. Der folgende Hilfssatz zeigt, dass dieser Ansatz sinnvoll ist. 7.7.2 Hilfssatz:

Ist

g(x+1) g(x)

rational, so ist s(x) in (7.13) ein Polynom.

Beweis: Aufl¨osen von (7.13) nach s(x) liefert p(x) g(x + 1) p(x) g(x + 1) = q(x + 1) f (x) q(x + 1) ∆g(x) p(x) 1 . = q(x + 1) 1 − g(x)

s(x) =

g(x+1)

g(x) Da p(x) und q(x + 1) nach Voraussetzung Polynome sind und g(x+1) rational ist, zeigt dies, dass s(x) rational ist. Es gibt also Polynome z(x) z(x), n(x) mit s(x) = n(x) . Diese Darstellung sei optimal durchgek¨ urzt ist, also ggT(z(x), n(x)) = 1 , und im Widerspruch zur Aussage des Hilfssatzes sei deg n(x) > 0 . Nun setzt man (7.13) in f (x) = ∆g(x) ein. Es ergibt sich

q(x + 1) q(x) s(x)f (x) − s(x − 1)f (x − 1) ⇐⇒ p(x) p(x − 1) f (x − 1) (7.10) p(x) q(x)s(x − 1) ⇐⇒ p(x) = q(x + 1)s(x) − p(x − 1) f (x) p(x) = q(x + 1)s(x) − r(x)s(x − 1).

f (x) =

Einsetzen von s(x) = f¨ uhrt auf

z(x) n(x)

(7.14)

und Ausmultiplizieren mit dem Hauptnenner

n(x)n(x − 1)p(x) = z(x)n(x − 1)q(x + 1) − z(x − 1)n(x)r(x).

N

(7.15)

oßte ganze Zahl mit ggT(n(x), T i0 n(x)) = Nun sei i0 ∈ 0 die gr¨ t(x) und deg t > 0 , d.h. die gr¨ oßte ganzzahlige Wurzel des Polynoms resx (n(x), T i n(x)). Da t(x) das Polynom n(x) teilt, sieht man an (7.15), dass t(x) das Produkt z(x)n(x − 1)q(x + 1) teilt. Wegen ggT(z(x), n(x)) = 1 folgt ggT(z(x), t(x)) = 1 . Wegen der Maximalit¨ at von i0 gilt ggT(n(x), T i0 +1 n(x)) = 1 ⇐⇒ ggT(n(x − 1), T i0 n(x)) = 1.

7.7 Der Algorithmus von Gosper

301

Da t(x) ein Teiler von T i0 n(x) ist, heißt dies insbesondere ggT(n(x − 1), t(x)) = 1 . Also ist t(x) ein Teiler von q(x + 1) , bzw. t(x − 1) ein Teiler von q(x) . Ausgehend von ggT(T −(i0 +1) n(x), n(x − 1)) = T −(i0 +1) t(x) kann man nun aber v¨ollig analog argumentieren, dass T −(i0 +1) t(x) das Polynom n(x − 1) und damit nach (7.15) auch z(x − 1)n(x)r(x) teilt. Wegen ggT(n(x − 1), z(x − 1)) = 1 folgt nun ggT(T −(i0 +1) t(x), z(x − 1)) = 1 , wegen der Maximalit¨ at von i0 gilt ggT(T −(i0 +1) t(x), n(x)) = 1 , −(i0 +1) d.h. T t(x) ist ein Teiler von r(x) bzw. t(x − 1) ein Teiler von T i0 r(x) . Damit ist aber t(x − 1) ein gemeinsamer nichttrivialer Teiler von q(x) und T i0 r(x) , was ein Widerspruch zu (7.11) ist. Damit ist deg n(x) = 0 gezeigt, s(x) ist also ein Polynom.  Um das Polynom s(x) mit Hilfe der Funktionalgleichung (7.14) bestimmen zu k¨onnen, braucht man noch eine Schranke f¨ ur den Grad k := deg s(x) . Dazu schreibt man (7.14) um in s(x) + s(x − 1) s(x) − s(x − 1) + (q(x + 1) + r(x)) . 2 2 (7.16) Es ist k = deg(s(x) + s(x − 1)) = 1 + deg(s(x) − s(x − 1)) (das bleibt auch richtig f¨ ur konstantes s = 0 , wenn man dem Nullpolynom den Grad −1 zuweist). Nun sei p(x) = (q(x + 1) − r(x))

 := max(deg(q(x + 1) − r(x)), deg(q(x + 1) + r(x))). Ist  = deg(q(x + 1) − r(x)) , so hat die rechte Seite von (7.16) den Grad  + k , es ist also k = deg(p(x)) − . Ist dagegen  = deg(q(x + 1) + r(x)) um mindestens 2 gr¨ oßer als deg(q(x + 1) − r(x)) , so hat die rechte Seite von (7.16) den Grad  + k − 1 , es ist also k = deg(p(x)) −  + 1. Es bleibt noch die M¨ oglichkeit  = deg(q(x + 1) + r(x)) = deg(q(x + 1) − r(x)) + 1 zu betrachten. Der Koeffizient von x+k−1 auf der rechten Seite von (7.16) ist   1 k · LK(q(x + 1) + r(x)) + LK(q(x + 1) − r(x)) · LK(s). 2 Ist dieser Koeffizient von Null verschieden, so ist wieder k = deg(p(x))− LK(q(x+1)−r(x)) +1 . Ist k0 := −2LK(q(x+1)+r(x)) dagegen ganzzahlig, so k¨ onnte dieser Wert noch gr¨oßer sein als deg(p(x)) −  + 1 .

302

7 Summation in endlich vielen Termen

Zusammen ist also gezeigt, dass s(x) fast immer kleiner oder gleich deg(p(x)) −  + 1 ist. Einzige Ausnahme ist der Fall, dass k0 ganzzahlig und gr¨oßer als deg(p(x)) −  + 1 ist, in diesem Fall ist deg s(x) = k0 . In jedem Fall kann man damit s(x) mit unbestimmten Koeffizienten ansetzen und durch Einsetzen in die Funktionalgleichung (7.14) berechnen. 7.7.3 Beispiel: (Fortsetzung von 7.7.1) Wegen p(x) = x, q(x) = a und r(x) = 1 ist  = 0 und damit k = 1 . Mit dem Ansatz s(x) = s1 x + s0 wird (7.14) also zu x = a(s1 x + s0 ) − (s1 x + s0 − s1 ) ⇐⇒ 1 = as1 − s1 , 0 = as0 − s0 + s1 Man liest ab

s1 =

1 1 , s0 = − a−1 (a − 1)2

und damit aus (7.13)   x (a − 1)x − 1 x+1 a 1 xax = a g(x + 1) = − x a − 1 (a − 1)2 (a − 1)2 1 ⇐⇒ g(x) = ((a − 1)x − a)ax (a − 1)2 Zur Probe berechne man ∆g(x) bzw. vergleiche mit Eintrag (2) unserer Summationstabelle. 7.7.4 Beispiel: Ein sehr viel komplizierteres Beispiel, bei dem das gospersche Verfahren seine M¨ achtigkeit beweisen kann, ist x3 3 j=1 (j + 1)

f = x

Bearbeitet man dies mit Maple, so wird erst das unbestimmte Produkt berechnet. Das Programm liefert x2 π √ √ 1 1 √  . f= (x + 1) sin(π 2 + 2 I 3 )Γ(x + 12 − 12 I 3)Γ(x + 12 + 12 I 3)Γ(x) Setzt man nun infolevel[‘sum‘]:=5 und berechnet sum(f,x), so bekommt man die Einzelschritte des ausgef¨ uhrten Algorithmus zu sehen (die Ausgabe wurde zur besseren Lesbarkeit etwas aufbereitet): sum/indefnew sum/extgosper

: :

sum/gospernew

:

sum/gospernew

:

indefinite summation applying Gosper algorithm to a(x):= x^2*Pi/(x+1)/sin(Pi*(1/2+1/2*I*3^(1/2)))/ GAMMA(x+1/2-1/2*I*3^(1/2))/ GAMMA(x+1/2+1/2*I*3^(1/2))/GAMMA(x) a(x)/a(x-1):= -4*x^3/(x+1)/(x-1)^3/(-2*x+1+I*3^(1/2))/ (2*x-1+I*3^(1/2)) Gosper’s algorithm applicable

7.7 Der Algorithmus von Gosper

: : : : : : : :

sum/gospernew sum/gospernew sum/gospernew sum/gospernew sum/gospernew sum/gospernew sum/gospernew sum/indefnew

p:= x^3 q:= -4 r:= -4*x^3-4 degreebound:=0 solving equations to find f Gosper’s algorithm successful f:= 1/4 indefinite summation finished

Die Ausgabe ist schließlich  −

x (x + 1) sin(π

1 2

303

+

1 2

 x3 + 1 π

√  I 3 )Γ(x)Γ(x +

was identisch ist mit g=

1 2

√ + 1/2 I 3)Γ(x +

1 2



1 2

√ , I 3)

−1 x−1 

(j 3 + 1)

j=1

Per Hand h¨ atte man dies nat¨ urlich ohne den Umweg u ¨ber die Berechnung der Produkte gemacht. Es ist f (x) −4 x3 x3 p(x) q(x) · = = = · f (x − 1) (x − 1)3 (x3 + 1) (x − 1)3 −4x3 − 4 p(x − 1) r(x) ( p , q und r wie oben von Maple berechnet). Aus p(x) = q(x + 1)s(x) − r(x)s(x − 1) ⇐⇒ x3 = −4 · s(x) − (−4x3 − 4) · s(x − 1) berechnet man mit der Gradschranke deg s = 0 die L¨ osung s(x) = (im Maple-Ausdruck mit f bezeichnet) und somit 1 q(x) −4 (x − 1)3 = · s(x − 1)f (x − 1) = · p(x − 1) (x − 1)3 4 x−1  3 (j + 1) j=1 −1 = x−1  (j 3 + 1)

g(x) =

j=1

1 4

8 Gr¨ obner-Basen

8.1 Variet¨ aten und Ideale Es sei K ein beliebiger kommutativer K¨ orper. Zu einem n -Tupel a = (a1 , . . . , an ) von Elementen einer K¨ orpererweiterung L : K sei * K[x1 , . . . , xn ] → L φa : . f → f (a) = f (a1 , . . . , an ) Die Elemente a1 , . . . , an ∈ L heißen algebraisch unabh¨angig u ¨ber K , falls Kern φa = {0} ist, sonst algebraisch abh¨angig. Ist f ∈ Kern φa , so heißt a eine Nullstelle von f . Die Menge der gemeinsamen Nullstellen von endlich vielen Polynomen f1 , . . . , fr ∈ K[x1 , . . . , xn ] heißt algebraische Mannigfaltigkeit oder Variet¨at M in An (L) , wobei An (L) den affinen Raum der n -Tupel u orper L bezeichnet, in Zeichen M = VL ({f1 , . . . , fr }) . ¨ber dem K¨ Ist M die Variet¨ at der gemeinsamen Nullstellen von f1 , . . . , fr in L , so ist M sogar die Variet¨ at der gemeinsamen Nullstellen aller Polynome des Ideals I = f1 , . . . , fr  ⊆ K[x1 , . . . , xn ] in L . Man bezeichnet deshalb M auch als Variet¨ at von I in L , in Zeichen M = VL (I) und nennt die Elemente von M Nullstellen von I . Da jeder K¨orper nur die trivialen Ideale 0 und K enth¨ alt, ist er insbesondere ein noetherscher Ring. Nach Hilbert (vgl. den Abschnitt u ¨ber Ideale) ist also K[x1 , . . . , xn ] ein noetherscher Ring. Deshalb kann man jede Variet¨at M als Variet¨ at eines Ideals I auffassen, denn jedes Ideal ist ja endlich erzeugt. Nun seien M := VL (I) und N := VL (J) die zu den von F = {f1 , . . . , fr } und G = {g1 , . . . , gs } erzeugten Idealen I = F  und J = G ¨ geh¨origen Variet¨aten. Bei den folgenden Uberlegungen werden die in 2.4.9 zusammengestellten Eigenschaften von Idealen verwendet. Falls I ⊂ J ist, so gilt offensichtlich M ⊇ N , d.h., die Abbildung VL , die jedem Ideal die zugeh¨ orige Variet¨ at zuordnet, kehrt die Inklusion um. Der Fall I  J und M = N ist allerdings m¨ oglich: 8.1.1 Beispiel: In Q[x, y] gilt xy  x2 y, xy 2  . Beide Ideale haben aber die gleiche Variet¨ at in A2 (C) , n¨ amlich alle Punkte (a1 , a2 ) mit a1 = 0 oder a2 = 0 ( Koordinatenachsen“ in A2 (C) ). ”

306

8 Gr¨ obner-Basen

Der Schnitt M ∩ N der Variet¨ aten M und N ist wieder eine Variet¨ at, n¨ amlich die zu F ∪ G geh¨ orige, in Zeichen VL (F ) ∩ VL (G) = VL (F ∪ G) oder in Idealschreibweise VL (I) ∩ VL (J) = VL (I + J) . Auch die Vereinigung M ∪ N der beiden Variet¨ aten M und N ist wieder eine Variet¨ at, etwa von dem Ideal I ∩ J oder dem Ideal I · J : Ist h ∈ I ∩ J , so gilt h(m) = 0 f¨ ur alle m ∈ M und h(n) = 0 f¨ ur alle n ∈ N also zusammen h(m) = 0 f¨ ur alle m ∈ M ∪ N . Das zeigt VL (I ∩ J) ⊇ M ∪ N . Ist dagegen m ∈ M ∪ N , so gibt es ein Polynom f ∈ I mit f (m) = 0 und ein g ∈ J mit g(m) = 0 . Das Polynom f · g ist dann ein Element von I · J mit der Eigenschaft (f · g)(m) = 0 . Dies zeigt VL (I · J) ⊆ M ∪ N . Wegen I · J ⊆ I ∩ J und der die Inklusion umkehrenden Eigenschaft von VL , gilt also M ∪ N ⊇ VL (I · J) ⊇ VL (I ∩ J) ⊇ M ∪ N. Es gilt also bei allen drei Inklusionen das Gleichheitszeichen. F¨ ur die Basen heißt das: VL (F )∪VL (G) = VL (F ·G) , wobei F ·G die Menge aller Produkte von Elementen aus F und G bedeutet. L¨asst sich eine Variet¨ at M auf diese Weise als Vereinigung zweier nichtleerer und echter Teilvariet¨ aten M1 und M2 darstellen, so heißt sie reduzibel (¨ uber dem Grundk¨ orper K ), sonst irreduzibel. 8.1.2 Beispiel: Die Variet¨ at VC (xy) von xy ⊆ Q[x, y] ist reduzibel, denn sie ist die Vereinigung der Variet¨ aten VC (x) und VC (y) der Ideale x und y . Wie bereits gezeigt, kann eine Variet¨ at M durchaus das Nullstellengebilde verschiedener Ideale sein. Die Teilmenge I(M ) := {f ∈ K[x1 , . . . , xn ],

f (a) = 0 f¨ ur alle a ∈ M ⊆ An (L)}

von K[x1 , . . . , xn ] ist, wie sich leicht nachpr¨ ufen l¨ asst, ein Ideal das seinerseits auch wieder die Variet¨ at M besitzt, d.h. es gilt VL (I(M )) = M . Die Inklusion VL (I(M )) ⊇ M ist klar nach Definition. Ist M = VL ({f1 , . . . , fs }) , so gilt insbesondere f1 , . . . , fs  ⊆ I(M ) und damit VL (f1 , . . . , fs ) = M ⊇ VL (I(M )) , also die andere Inklusion. Das Ideal I(M ) heißt das zu M geh¨orige Ideal. F¨ ur zwei Variet¨ aten M, N ⊂ An (L) weist man leicht nach: (i) M ⊆ N ⇐⇒ I(M ) ⊇ I(N ) und M = N ⇐⇒ I(M ) = I(N ) , (ii) I(M ∪ N ) = I(M ) ∩ I(N ) . oßtm¨ ogliDie Abbildung I weist also einer Variet¨ at M ⊆ An (L) das gr¨ che zugeh¨orige Ideal in K[x1 , . . . , xn ] zu und kehrt dabei die Inklusion um. Erkl¨art man I sogar f¨ ur beliebige Teilmengen (also nicht nur f¨ ur Variet¨aten) S ⊆ An (L) , so ist VL (I(S)) die kleinste Variet¨ at, die die Menge S enth¨alt. Ist n¨amlich M ⊆ An (L) eine beliebige Variet¨ at mit M ⊇ S , so folgt I(M ) ⊆ I(S) und damit VL (I(M )) ⊇ VL (I(S)) .

8.1 Variet¨ aten und Ideale

307

Da die Abbildung VL ◦ I Teilmengen S ⊆ An (L) zu Variet¨ aten in An (L) abschließt“, nennt man S := VL (I(S)) auch den Zariski” Abschluss von S . Der affine Raum An (L) mit den Variet¨ aten als abgeschlossenen Mengen (Zariski-Topologie) ist ein topologischer Raum. 8.1.3 Satz: Eine Variet¨at M ist genau dann irreduzibel, wenn das zugeh¨orige Ideal I(M ) ein Primideal ist. Beweis: ⇐ “ Sind M1 und M2 echte Teilvariet¨ aten von M mit M = M1 ∪ ” M2 ⇐⇒ I(M ) = I(M1 ) ∩ I(M2 ) und I(M ) = I(M1 ), I(M2 ) , so gibt es Polynome f ∈ I(M1 ) \ I(M ) und g ∈ I(M2 ) \ I(M ) . F¨ ur diese Polynome gilt f · g ∈ I(M ) aber f, g ∈ I(M ) , d.h. I(M ) ist nicht prim. ⇒ “ Ist M irreduzibel und f · g ∈ I(M ) mit f, g ∈ I(M ) , so setzt man ” M1 := {a ∈ An (L), f (a) = 0} und M2 := {a ∈ An (L), g(a) = 0} . Da aus f (a) · g(a) = 0 folgt, dass f (a) = 0 oder g(a) = 0 ist, heißt das M = M1 ∪ M2 . Da M1 und M2 echte Teilvariet¨ aten von M (f, g ∈ I(M )) sind, ist das ein Widerspruch zur Irreduzibilit¨ at von M .  8.1.4 Satz: Sind M, M1 , M2 Variet¨aten mit M ⊆ M1 ∪ M2 und irreduziblem M , so gilt M ⊆ M1 oder M ⊆ M2 . Beweis: Aus M ⊆ M1 ∪ M2 folgt I(M ) ⊇ I(M1 ) ∩ I(M2 ) . Ist weder I(M1 ) ⊆ I(M ) noch I(M2 ) ⊆ I(M ) , so gibt es f ∈ I(M1 ) \ I(M ) und g ∈ I(M2 ) \ I(M ) mit f · g ∈ I(M1 ) ∩ I(M2 ) ⊆ I(M ) also auch mit f (m) · g(m) = 0 f¨ ur alle m ∈ M . Daraus folgt f ∈ I(M ) oder g ∈ I(M ) im Widerspruch zur Voraussetzung.  Ist M eine Menge von Variet¨ aten in An (L) , so besitzt M bzgl. Inklusion ein minimales Element, denn die Menge zugeh¨ origer Ideale besitzt ein maximales Element (da K[x1 , . . . , xn ] noethersch ist) und die Abbildung I dreht die Inklusion um. Diese Vor¨ uberlegung f¨ uhrt auf 8.1.5 Satz: (Zerlegung von Variet¨ aten) Jede u ¨ ber K definierte Variet¨at M l¨asst sich als Vereinigung von endlich vielen u ¨ ber K irreduziblen Variet¨aten darstellen. Beweis: G¨abe es Variet¨ aten, die sich nicht als Vereinigung von irreduziblen Variet¨aten darstellen lassen, so h¨ atte diese Menge von Variet¨ aten nach Vor¨ uberlegung ein minimales Element M . Da M nicht als Vereinigung von irreduziblen Variet¨ aten darstellbar ist und folglich auch selbst nicht irreduzibel ist, gibt es zwei echte Teilvariet¨ aten M1 und M2 mit M = M1 ∪ M2 . Wegen M1 , M2 ⊂ M und der Minimalit¨ at von M sind M1 und M2 sehr wohl als Vereinigungen irreduzibler Variet¨ aten darstellbar, was die Annahme zum Widerspruch f¨ uhrt. 

308

8 Gr¨ obner-Basen

Folgerung: Ist M = M1 ∪ . . . ∪ Mr , so folgt f¨ ur die zugeh¨ origen Ideale nach den hergeleiteten Rechenregeln I(M ) = I(M1 ∪ . . . ∪ Mr ) = I(M1 ) ∩ . . . ∩ I(Mr ) . Die Ideale I(M1 ), . . . , I(Mr ) sind dabei nach Satz 8.1.3 Primideale, da die Variet¨ aten M1 , . . . , Mr nach Voraussetzung irreduzibel sind. Es gilt also: Jedes zu einer Variet¨ at geh¨ orige Ideal l¨ asst sich als Schnitt von Primidealen darstellen.∗ Eine Teilmenge S des Erweiterungsk¨ orpers L von K heißt transzendent u angig ¨ber K , wenn jede endliche Teilmenge von S algebraisch unabh¨ u ¨ber K ist. Eine u ¨ber K transzendente Teilmenge B von L heißt eine Transzendenzbasis von L : K , wenn L : K(B) algebraisch ist. In der Algebra-Vorlesung wird gezeigt (vgl. etwa [Me2]), dass solche Transzendenzbasen existieren und dass je zwei Transzendenzbasen die gleiche M¨ achtigkeit haben. Diese M¨achtigkeit heißt der Transzendenzgrad von L : K in Zeichen Trg(L : K) := |B| . M¨ochte man sich beim Arbeiten mit Variet¨ aten von Idealen nicht jedesmal Gedanken u orper L von K machen, so setzt man ¨ber den Oberk¨ L zweckm¨aßig als so genannten Universalk¨orper u ¨ber K voraus, d.h. man setzt voraus, dass L unendlichen Transzendenzgrad u ¨ber K hat und algebraisch abgeschlossen ist. Man kann L etwa aus K gewinnen, indem man zuerst abz¨ ahlbar unendlich viele Unbestimmte y1 , y2 , . . . zu K adjungiert und dann algebraisch abschließt. Zum Arbeiten mit einem einzelnen Ideal reicht zwar immer schon eine K¨orpererweiterung K(α1 , . . . , αm ) mit endlich vielen Elementen α1 , . . . , αm aus einem Oberk¨ orper von K aus, solch eine K¨ orpererweiterung l¨ asst sich aber immer isomorph in einen Universalk¨ orper L u ¨ber K einbetten: 8.1.6 Satz: Jede K¨orpererweiterung K(α1 , . . . , αm ) mit endlich vielen Elementen α1 , . . . , αm aus einem Oberk¨orper von K kann isomorph in einen Universalk¨orper L u ¨ ber K eingebettet werden. Beweis: Die Elemente α1 , . . . , αm seien so nummeriert, dass α1 , . . . , αr mit r ≤ m algebraisch unabh¨ angig u ¨ber ¨ber K sind und αr+1 , . . . , αm u K(α1 , . . . , αr ) algebraisch sind. angig u Nun w¨ahlt man α1 , . . . , αr ∈ L algebraisch unabh¨ ¨ber K . Dies ist wegen des unendlichen Transzendenzgrades von L u oglich. ¨ber K m¨ Dann gibt es einen Isomorphismus ϕ : K(α1 , . . . , αr ) → K(α1 , . . . , αr ) , uhrt. der die Elemente von K festl¨ asst und αi f¨ ur i = 1, . . . , r in αi u ¨berf¨ ∗

Wegen dieser Sonderstellung der Nullstellengebilde von Primidealen werden von manchen

Autoren nur diese Variet¨ aten genannt, die Nullstellengebilde beliebiger Ideale werden dort einfach Nullstellengebilde“ oder auch algebraische Mengen“ genannt. ” ”

8.1 Variet¨ aten und Ideale

309

Ist r = n , so ist der Beweis hiermit beendet. Es sei also r < n . Dann ist αr+1 Wurzel eines Polynoms f (x) ∈ K(α1 , . . . , αr )[x] . Durch Abbildung der Koeffizienten von f (x) mit dem Isomorphismus ϕ erh¨ alt man nun ein  Polynom f  (x) ∈ K(α1 , . . . , αr )[x] mit einer Wurzel αr+1 ∈ L. Damit l¨asst sich der Isomorphismus ϕ fortsetzen zu einem Isomorphismus  ϕ : K(α1 , . . . , αr+1 ) → K(α1 , . . . , αr+1 ).

Fortsetzung dieses Verfahrens f¨ uhrt auf den gew¨ unschten Isomorphismus ψ : K(α1 , . . . , αn ) → K(α1 , . . . , αn ) .



Ist a ∈ An (L) eine Nullstelle des Ideals I , so heißt a allgemeine Nullstelle von I , wenn gilt: f ∈ I ⇐⇒ f (a) = 0 . Durch jeden Punkt a ∈ An (L) wird eindeutig das Ideal I := I({a}) ⊂ K[x1 , . . . , xn ] definiert, welches diesen Punkt als allgemeine Nullstelle besitzt. Da dieses Ideal offensichtlich das Einselement nicht enth¨ alt, ist es vom gesamten Ring verschieden. Das so definierte Ideal ist sogar ein Primideal, denn ist f · g ∈ I , also f (a) · g(a) = 0 , so ist f (a) = 0 oder g(a) = 0 und damit f ∈ I oder g∈I. 8.1.7 Beispiel: x ⊆ Q[x, y] hat die allgemeine Nullstelle (0, t) , wobei t eine neue Unbestimmte ist, d.h. ein von x und y verschiedenes transzendentes Element aus L , denn es gilt f ∈ x ⇐⇒ f (0, t) = 0. x ist ein Primideal, die zugeh¨ orige Variet¨ at M ist irreduzibel. Die Punkte von M entstehen alle durch Einsetzen von√Werten f¨ ur t in die allgemeine Nullstelle, also etwa (0, 1), (0, i), (0, 3 2), . . . 8.1.8 Satz: Es seien a ∈ An (L) und I := I({a}) das Primideal mit der allgemeinen Nullstelle a . Dann gilt K[x1 , . . . , xn ]/I ∼ = K[a1 , . . . , an ] und damit auch die Isomorphie der zugeh¨origen Quotientenk¨orper. Beweis: Die bereits eingef¨ uhrte Abbildung * K[x1 , . . . , xn ] → L φa : f → f (a) = f (a1 , . . . , an ) ist offensichtlich ein Ringhomomorphismus mit Kern φa = I und Bild φa = K[a1 , . . . , an ] . Damit folgt die Behauptung aus dem Homomorphiesatz. Da I prim ist, handelt es sich um Integrit¨ atsbereiche, man darf also Quotientenk¨orper bilden, die dann nat¨ urlich auch isomorph sind.  8.1.9 Satz: Es sei L Universalk¨orper u ¨ ber K . Dann besitzt jedes Primideal I = K[x1 , . . . , xn ] eine allgemeine Nullstelle a in An (L) .

310

8 Gr¨ obner-Basen

Beweis: Es sei φ : K[x1 , . . . , xn ] → K[x1 , . . . , xn ]/I der kanonische Epimorphismus. Benennt man die Nebenklassen von x1 , . . . , xn um in a1 := φ(x1 ), . . . , an := φ(xn ) , so gilt: f ∈ Kern φ = I ⇐⇒ φ(f ) = 0 ⇐⇒ f (a1 , . . . , an ) = 0. Da der Restklassenring K[x1 , . . . , xn ]/I = 0 und nullteilerfrei ist ( I ist prim !), l¨ asst sich der Quotientenk¨ orper bilden. Die Nebenklassen a1 , . . . , an lassen sich so als Elemente eines Erweiterungsk¨ orpers von K deuten, der sich seinerseits isomorph in einen Universalk¨ orper L einbetten l¨asst. Damit ist a = (a1 , . . . , an ) eine allgemeine Nullstelle von I .  Wenn jedes von K[x1 , . . . , xn ] verschiedene Primideal in An (L) eine allgemeine Nullstelle a besitzt, so ist also das einzige Primideal ohne allgemeine Nullstelle das Einheitsideal 1 = K[x1 , . . . , xn ] . Es gilt sogar allgemeiner: 8.1.10 Satz: Es sei L Universalk¨orper u ¨ ber K. Besitzt ein Ideal I in K[x1 , . . . , xr ] keine Nullstelle a ∈ An (L) , so ist I = K[x1 , . . . , xn ] . Beweis: Angenommen, das Ideal I = K[x1 , . . . , xn ] hat keine Nullstelle. Da der Ring K[x1 , . . . , xn ] noethersch ist, gibt es dann ein maximales Ideal I  ⊇ I das ebenfalls keine Nullstelle besitzt und von K[x1 , . . . , xn ] verschieden ist. In einem kommutativen Ring mit 1 ist jedes maximale Ideal prim. Damit ist I  prim und hat nach dem vorhergehenden Satz im Widerspruch zur Annahme eine allgemeine Nullstelle.  F¨ ur diese Aussage reicht statt eines Universalk¨ orpers L u ¨ber K ein u orper L (vgl. etwa [CLO]), der Be¨ber K algebraisch abgeschlossener K¨ weis wird dann allerdings etwas aufw¨ andiger. Der vorliegende Satz mit dieser Voraussetzung wird auch als schwacher Nullstellensatz bezeichnet. Folgerung: F¨ ur Polynome f1 , . . . , fr ∈ K[x1 , . . . , xn ] und u ¨ber K algebraisch abgeschlossenes L heißt das: f1 , . . . , fr haben keine gemeinsame Nullstelle in An (L) ⇐⇒ 1 ∈ f1 , . . . , fr  Die Aussage des letzten Satzes l¨ asst sich nun noch verallgemeinern zu dem so genannten Hilbertschen Nullstellensatz: 8.1.11 Satz: (Hilbertscher Nullstellensatz) Ist f ∈ K[x1 , . . . , xn ] ein Polynom, das in allen gemeinsamen Nullstellen der Polynome f1 , . . . , fr ∈ K[x1 , . . . , xn ] in An (L) ( L algebraisch abgeschlossen u mit ¨ ber K ) verschwindet, so gilt: Es gibt ein q ∈ f q ∈ f1 , . . . , fr  .

N

Beweis: Der Beweis wird mit Hilfe eines Kunstgriffs gef¨ uhrt der diesen Satz auf die vorhergehende Folgerung zur¨ uckf¨ uhrt. Die gezeigte Vorgehensweise wird sp¨ater genauso mit Hilfe von Gr¨ obner-Basen auch angewandt: Ist f = 0 , so ist die Behauptung klar, es sei also f = 0 .

8.1 Variet¨ aten und Ideale

311

Zu den bereits benutzten Unbekannten x1 , . . . , xn nimmt man eine neue Unbekannte z dazu. Nun betrachtet man die Polynome f1 , . . . , fr+1 mit fr+1 := 1 − z · f . Eine gemeinsame Nullstelle von f1 , . . . , fr+1 ist insbesondere eine gemeinsame Nullstelle von f1 , . . . , fr . Da nach Voraussetzung auch f diese Nullstelle besitzt, ist fr+1 an dieser Stelle immer gleich 1 , also von Null verschieden. Damit haben f1 , . . . , fr+1 keine gemeinsame Nullstelle in An+1 (L) , es gilt nach der vorangegangenen Folgerung 1 ∈ f1 , . . . , fr+1  ⊆ K[x1 , . . . , xn , z]. Es gibt also Polynome g1 , . . . , gr+1 ∈ K[x1 , . . . , xn , z] mit 1=

n 

gi fi = g1 f1 + . . . + gr fr + gr+1 (1 − zf ).

i=1

Die gi h¨angen dabei im Gegensatz zu den fi auch von z ab. Substituiert man also z = f1 in diese Gleichung, so f¨ allt der letzte Summand weg und in den gi erh¨alt man Potenzen von f1 . Multipliziert man diese Gleichung mit der h¨ochsten in einem Nenner vorkommenden Potenz von f , so erh¨ alt man f q = h1 f1 + . . . + hr fr mit hi = gi (x1 , . . . , xn , f1 )f q ∈ K[x1 . . . . , xn ] oder f q ∈ f1 , . . . , fr  ⊆ K[x1 , . . . , xn ].



N

Gibt es umgekehrt ein q ∈ mit f q ∈ f1 , . . . , fr  , so verschwindet q trivialerweise f und damit auch f auf allen gemeinsamen Nullstellen von f1 , . . . , fr . ur ein q ∈ ist gerade Die Menge aller f ∈ R mit √ f q ∈ f1 , . . . , fr  f¨ das in 2.4.9 definierte Radikal I des Ideals f1 , . . . , fr  . F¨ ur einen u ¨ber K algebraisch abgeschlossenen K¨ orper L l¨ asst sich das Radikal eines Ideals I ∈ K[x1 , . . . , xn ] nach dem Hilbertschen Nullstellensatz auch in der Form √ I = {f ∈ K[x1 , . . . , xn ] ; f (a) = 0 f¨ ur alle a ∈ VL (I)}

N

schreiben. Mit den bereits eingef¨ uhrten Bezeichnungen heißt das: √ I = I(VL (I)). Dies wird auch als der starke Nullstellensatz bezeichnet. √ √ F¨ ur ein beliebiges Ideal I ⊆ R gilt I ⊇ I . Ein Ideal I ⊆ R mit I = "√ √ I heißt Radikalideal. Wegen I = I ist insbesondere jedes Radikal ein Radikalideal.

312

8 Gr¨ obner-Basen

Zusammenfassung: (i) F ⊂ G ⊂ K[x1 , . . . , xn ] ⇒ VL (G) ⊂ VL (F ) (ii) F , G ⊂ K[x1 , . . . , xn ] ⇒ VL (F ) ∪ VL (G) = VL (F · G) = VL (F  ∩ G) (iii) F , G ⊂ K[x1 , . . . , xn ] ⇒ VL (F ) ∩ VL (G) = VL (F ∪ G) aten ⇒ I(M1 ) ⊃ I(M2 ) (iv) M1 ⊂ M2 ⊂ An (L) Variet¨ aten ⇒ I(M1 ∪ M2 ) = I(M1 ) ∩ I(M2 ) (v) M1 , M2 ⊂ An (L) Variet¨ (vi) F¨ ur jedes Ideal I ⊂ K[x1 , . . . , xn ] gilt ( L algebraisch abgeschlossen): √ I(VL (I)) = I (vii) F¨ ur jede Variet¨ at M ⊂ An (L) gilt: VL (I(M )) = M .

8.2 Reduktionen modulo Polynomidealen Es seien K ein K¨ orper und R = K[x1 , . . . , xn ] = K[X] ein Polynomring u orper (Schreibweisen wie im Abschnitt u ¨ber diesem K¨ ¨ber Polynome eingef¨ uhrt). Weiterhin sei < eine zul¨ assige Ordnungsrelation auf Term(X) . Jedes Polynom f (X) ∈ K[X] sei in seiner zugeh¨ origen kanonischen Normalform f (X) =

m 

aJi X Ji mit aJi ∈ K \ {0} f¨ ur i = 0, . . . , m

i=0

und X J0 < X J1 < . . . < X Jm dargestellt. Sind f1 , . . . , fs ∈ K[X] , E := {f1 , . . . , fs } und I := E , so gilt nat¨ urlich fi ≡ 0 mod I f¨ ur beliebiges i ∈ {1, . . . , s} . und damit auch fi fi ≡ 0 mod I ⇐⇒ LT(fi ) − ≡ LT(fi ) mod I LK(fi ) LK(fi )

.

fi Die in LT(fi ) − LK(f vorkommenden Terme sind dabei bez¨ uglich der i) Ordnungsrelation < kleiner, als LT(fi ) falls fi = 0 ist. Ein Term X L = x11 · . . . · xnn heißt Vielfaches des Terms X J = xj11 · . . . · xjnn wenn f¨ ur i = 1, 2, . . . , n gilt i ≥ ji . Ist ein m := aX L ∈ K[X] gegeben und X L Vielfaches von einem  LT(fi ) , also etwa X L = LT(fi ) · X L , so gilt:   fi L L L mod I m = aX = aX · LT(fi ) ≡ aX · LT(fi ) − LK(fi )  fi ≡ m − aX L · mod I . LK(fi )

F¨ ur X L ∈ Term(X; f ) gilt entsprechend

8.2 Reduktionen modulo Polynomidealen

313

 fi f ≡ f − aX L · mod I LK(fi )   

=:g

Dies f¨ uhrt auf die folgende Definition: 8.2.1 Definition: f, fi = 0

Mit den eingef¨ uhrten Bezeichnungen schreibt man f¨ ur f −→ fi g [m]

und sagt: f reduziert sich zu g modulo fi durch Elimination von m ¨ Ublicherweise wird man dabei f¨ ur a den Koeffizienten von X L in f w¨ahlen, dies ist aber nicht zwingend: 8.2.2 Beispiel: Das Polynom 2x2 y 2 ist Vielfaches beider Leitterme der Idealbasis E = {f1 := x2 y − x, f2 := xy 2 − 1} in Q[x, y] (bzgl. jeder der drei meistverwendeten Ordnungsrelationen). Damit ergeben sich u.a. die folgenden m¨ oglichen Reduktionen: Wegen   x2 y 2 = y(x2 y) −→ y x2 y − (x2 y − x) [x2 y 2 ] = y(x) = xy f1 x2 y 2 = x(xy 2 ) −→ x xy 2 − (xy 2 − 1) [x2 y 2 ] = x(1) = x f2 gilt etwa 2x2 y 2 −→ 2xy [2x2 y 2 ] f1 2 2 2x y −→ 2x [2x2 y 2 ] f2 2 2 2 2 2x y −→ x + x y [x2 y 2 ] −→ x + xy [x2 y 2 ] f2 f1 8.2.3 Definition: L (i) Gibt es ein X L ∈ Term(X; f ) und a ∈ K mit f −→ fi g[aX ] , so schreibt man auch f −→ fi g und sagt: f reduziert sich zu g modulo fi . (ii) Gibt es ein fi ∈ E mit f −→ fi g , so schreibt man f −→ E g und sagt: f reduziert sich zu g modulo E . Das Tupel (K[X], −→ ist ein Umformungssystem. Die Schreibweisen E ) ∗ ∗ −→ , ←− , ↓ und g werden sinngem¨ aß aus dem Abschnitt u ¨ber UmE E E E formungssysteme f¨ ur die Relation −→ bernommen. E 8.2.4 Beispiel: Es seien f1 (x, y) = x2 y−3y 2 +2y , f2 (x, y) = y 2 −2x , E = {f1 , f2 } und I = E ⊂ Q[x, y] . Weiterhin sei g(x, y) = x4 − 2x2 y 2 + 5y 3 + x (alle Polynome nach Gesamtgrad und dann lexikographisch mit x > y sortiert). Bez¨ uglich der gegebenen Ordnungsrelation ist LT(f1 ) = x2 y und LT(f2 ) = y 2 . Damit kann g z.B. auf die folgenden Weisen modulo E reduziert werden:

314

8 Gr¨ obner-Basen

g −→ f1 = −→ f2 = −→ f2 =

x4 − 2x2 y 2 + 5y 3 + x + 2y(x2 y − 3y 2 + 2y)[−2x2 y 2 ] x4 − y 3 + 4y 2 + x x4 − y 3 + 4y 2 + x + y(y 2 − 2x)[−y 3 ] x4 − 2xy + 4y 2 + x x4 − 2xy + 4y 2 + x − 4(y 2 − 2x)[4y 2 ] x4 − 2xy + 9x =: g1 (x, y)

oder g −→ f2 = g −→ f2 =

x4 − 2x2 y 2 + 5y 3 + x + 2x2 (y 2 − 2x)[−2x2 y 2 ] x4 − 4x3 + 5y 3 + x x4 − 4x3 + 5y 3 + x − 5y(y 2 − 2x)[5y 3 ] x4 − 4x3 + 10xy + x =: g2 (x, y)

Die Polynome g1 und g2 sind in Normalform bez¨ uglich −→ , da E weder in Term(X; g1 ) , noch in Term(X; g2 ) Vielfache von LM(f1 ) oder LM(f2 ) enthalten sind. ∗ ∗ g −→ g1 E mit g1 E = g2 E vor, d.h. −→ Damit liegt hier der Fall g2 E ←− E E E ist nicht konfluent. Ist S also ein Algorithmus, der jedem Element g ein g E zuordnet, so ist dieser Normalform-Algorithmus f¨ ur das E aus dem vorhergehenden Beispiel kein kanonischer Simplifikator. Als Programm k¨ onnte die Reduktion eines Polynom modulo eines anderen Polynoms in Normalform etwa wie folgt aussehen: Vollst¨ andige Reduktion bzgl {g} procedure RedPolPol( f, g ) count ← 1 f ← f while count = 1 do count ← 0 for X I in Term(X; f ) do if LT(g)|X I then a ← Koeffizient von X I in f  I f  ← h mit f  −→ g h[aX ] count ← 1 end if end do end do Return ( f  ) end

# Eingabe: f, g ∈ K[X] ,  # Ausgabe: f  {g} mit f −→ g f

Das folgende Beispiel zeigt, dass ein einmaliger Durchlauf des vorhergehenden Algorithmus pro Basiselement im allgemeinen nicht gen¨ ugt. 8.2.5 Beispiel: Es seien f1 = yz +2y , f2 = xy 2 +xyz und f = x2 y 2 (alle nach Gesamtgrad, dann lexikographisch mit x > y > z sortiert). Das Polynom f ist bereits vollst¨ andig bez¨ uglich f1 reduziert.

8.2 Reduktionen modulo Polynomidealen

315

Da das Leitmonom x2 y 2 ein Vielfaches des Leitmonoms xy 2 von f2 ist, ergibt sich 2 2 2 f −→ f2 x y − x · f2 = −x yz . Das Ergebnis ist jetzt nicht mehr reduziert bez¨ uglich f1 : 2 2 2 −x2 yz −→ f1 −x yz + x f1 = 2x y .

Erst jetzt ist das Ergebnis reduziert bez¨ uglich f1 und f2 . Vollst¨ andige Reduktion bzgl E procedure RedPolBas(f, E) count ← 1 ; f  ← f while count=1 do count ← 0 ; f  ← f  for i from 1 to |E| do f  ← RedPolPol( f  , fi ) end do if f  = f  then count ← 1 ; f  ← f  end if end do Return ( f  ) end

# Eingabe: f ∈ K[X] , E ⊆ K[X] # (endlich).  # Ausgabe: f  E mit f −→ E f .

Ein Ziel beim Rechnen mit Polynomidealen ist es, eine Idealbasis F von I = E zu finden, so dass −→ konfluent und damit der zugeh¨ orige F Normalform-Algorithmus ein kanonischer Simplifikator wird. Solche Basen existieren und werden Standardbasen oder Gr¨ obner-Basen genannt (B. Buchberger betrachtete diese Basen 1965 in seiner Doktorarbeit und benannte sie nach seinem Doktorvater W. Gr¨ obner). 8.2.6 Definition: Eine Basis E = {f1 , . . . , fs } eines Ideals I ⊆ K[X] heißt reduziert bez¨ uglich der zul¨ assigen Ordnungsrelation < , wenn gilt: (i) f1 , . . . , fs sind normiert bzgl. < . ur i = 1, . . . , s . (ii) fi = fi E\{f } f¨ i

F¨ ur das Nullideal I = {0} sei E = ∅ die reduzierte Basis. 8.2.7 Definition: Eine Menge G ⊆ K[X] \ {0} heißt Gr¨obner-Basis des Ideals I = G bzgl. der Ordnungsrelation < , wenn f¨ ur jedes g(x) ∈ K[X] die Normalform modulo G eindeutig ist, d.h. wenn gilt: ∗ ∗ g2 G ←− g −→ g1 G ⇒ g1 G = g2 G G G

Ist G zus¨ atzlich eine reduzierte Basis, so nennt man G reduzierte Gr¨obner-Basis. Die Reduktion einer gegebenen Basis E erledigt das folgende Programm:

316

8 Gr¨ obner-Basen

Reduktion einer Basis procedure RedBas(E) # Eingabe: E ⊆ K[X] (endlich),  if E = {0} then Return(∅) end if # Ausgabe: reduziertes E mit   # E  = E E ← E ; count ← 1 while count=1 do count ← 0 for ei in E  do ei ← RedPolBas( ei , E  \ {ei } ) if ei = ei then E  ← (E  \ {ei }) ∪ {ei } ; count ← 1 end if end do E  ← E  end do D E Return (

f LK(f )

; f ∈ E  \ {0} )

end

Eine Menge E ist also genau dann Gr¨ obner-Basis von I = E ⊆ K[X] , wenn die Reduktion −→ des Umformungssystems (K[X], −→ E E ) konfluent ist. Da −→ noethersch ist, ist dies genau dann der Fall, wenn −→ lokal E E konfluent ist, d.h. wenn f¨ ur alle g ∈ K[X] gilt: g2 ←− E g −→ E g1 ⇒ g1 ↓E g2 (vgl. die Folgerung zu Satz 2.3.8). Der zugeh¨orige Normalform-Algorithmus S ist dann ein kanonischer Simplifikator von (K[X], −→ E ) . Es sei TermE (X) := {X J ∈ Term(X) , X J = X JE } die Menge der Terme, die bereits in Normalform bzgl. E vorliegen. Da jedes Polynom, das in Normalform bzgl. E vorliegt, eine Linearkombination von Elementen aus TermE (X) ist, ist TermE (X) ein Erzeugendensystem der Algebra K[X]/E . Diese Erzeugendensystem ist aber i.Allg. nicht linear unabh¨angig, wie bereits im vorhergehenden Beispiel durchgerechnet wurde. 8.2.8 Beispiel: Bez¨ uglich der gegebenen Basis E = {f1 , f2 } aus 8.2.4 ist TermE (xy) = {1, y, xy, x, x2 , x3 , x4 , . . .} . Dies kann man sich graphisch wie folgt verdeutlichen. In einem kartesischen Koordinatensystem identifiziert man jeden ganzzahligen Gitterpunkt (i, j) mit dem Term xi y j . Alle Terme, die Vielfache von LT(f1 ) = x2 y sind, liegen in der nord¨ ostlichen Viertelebene vom Punkt (2, 1) , die Vielfachen von LT(f2 ) = y 2 in der durch (0, 2) gegebenen Viertelebene. Die Punkte im nichtschraffierten Gebiet sind gerade die Elemente von TermE (xy) .

8.3 Der Buchberger-Algorithmus

317

Wegen g1 ≡ g2 mod I ⇐⇒ x4 − 4x3 + 10xy + x ≡ x4 − 2xy + 9x mod I ⇐⇒ 4x3 − 12xy + 8x ≡ 0 mod I folgt die lineare Abh¨ angigkeit von TermE (xy) . Der im folgenden Kapitel vorgestellte Algorithmus von Buchberger wird deshalb praktikabel, weil er sich zum Untersuchen der lokalen Konfluenz auf endlich viele so genannte kritische Paare beschr¨ ankt: 8.2.9 Definition: Sind X I = xi11 · . . . · xinn = LT(fi ) und X J = xj11 · . . . · xjnn = LT(fj ) die Leitterme der Polynome fi , fj ∈ E , so heißt der Term X L = x11 · . . . · xnn mit k := max(ik , jk ) f¨ ur k = 1, . . . , n kleinstes gemeinsames Vielfaches dieser beiden Leitterme, i.Z. X L = kgV (LT(fi ), LT(fj )) . Das Paar   fi fj L−I L−J X · (LT(fi ) − · (LT(fj ) − ), X ) LK(fi ) LK(fj ) heißt dann kritisches Paar bzgl. E . Die Differenz der beiden Komponenten des kritischen Paars heißt S-Polynom SP(fi , fj ) von fi und fj . 8.2.10 Beispiel: Es seien f (x, y) := x3 y 2 − x2 y 3 + x und g(x, y) := x4 y + 1 2 3 y ∈ Q[x, y] . Dann ist (bzgl. der lexikographischen Ordnung)   kgV (LT(f ), LT(g)) = kgV x3 y 2 , x4 y = x4 y 2 ein Polynom, das sich auf zwei Arten bez¨ uglich der Ideal-Basis E = {f, g} reduzieren l¨ asst, n¨ amlich gerade in die zwei Komponenten eines kritischen Paares: ; * x(x2 y 3 − x) = x3 y 3 − x3 x(x3 y 2 ) −→ f x4 y 2 = ⇒ y(x4 y) −→ y(− 13 y 2 ) = − 13 y 3 g 1 SP(f, g) = x3 y 3 − x3 + y 3 3 Da sowohl x3 y 3 − x3 , als auch − 13 y 3 kongruent zu x4 y 2 modulo I = E sind, ist SP(f, g) ≡ 0 mod I .

8.3 Der Buchberger-Algorithmus W¨are −→ konfluent, so w¨ urden sich beide Komponenten eines jeden kritiE schen Paares zu einem gemeinsamen Nachfolger reduzieren lassen, d.h. das zugeh¨orige S-Polynom m¨ usste sich zu Null reduzieren. Tut es dies nicht, so liegt es nahe, die vorliegende Basis um eine Normalform dieses S-Polynoms zu erweitern.

318

8 Gr¨ obner-Basen

Es ist klar, dass f¨ ur die neue Basis E  gilt: E   = E = I . Mit dieser neuen Basis verf¨ ahrt man nun entsprechend weiter, bis sich wirklich alle S-Polynome zu Null reduzieren. Mit dieser Vorgehensweise stellen sich die folgenden Fragen (F1) Bricht dieser Algorithmus f¨ ur jedes Ideal I ⊆ K[X] und jede vorgegebene Idealbasis E von I nach endlich vielen Schritten ab? (F2) Wenn (F1) mit ja“ beantwortet werden kann: Ist die nach Ablauf des ” Algorithmus vorliegende Idealbasis eine Gr¨ obner-Basis ? Beide Fragen k¨onnen mit ja“ beantwortet werden, wie im Folgenden ge” zeigt wird. Entscheidend f¨ ur die Endlichkeit des Buchberger-Algorithmus ist die Tatsache, dass das in einem Schritt zur vorgegebenen Idealbasis E hinzugef¨ ugte S-Polynom bzgl. E reduziert ist, d.h. insbesondere, dass der Leitterm des S-Polynoms nicht Vielfaches von einem Leitterm der Polynome in E ist. Der folgende Satz zeigt, dass so etwas nur endlich oft geht: I

I

I

I

8.3.1 Satz: Hat eine Folge f1 = x11,1 · . . . · xn1,n , f2 = x12,1 · . . . · xn2,n , . . . von Termen die Eigenschaft, dass kein fk Vielfaches eines fr¨ uheren fm (1 ≤ m < k) ist, so ist diese Folge endlich. Beweis: Induktion nach der Variablenanzahl N : I I N = 1 : F¨ ur die Exponenten in f1 = x11,1 , f2 = x12,1 , . . . muss gelten I1,1 > I2,1 > . . . . Diese Folge ganzer Zahlen ist durch 0 nach unten beschr¨ ankt, also endlich. Es sei nun N > 1 und der Satz gelte also f¨ ur alle n < N . F¨ ur den I I Induktionschritt zu N betrachtet man die Folge, die mit x11,1 · . . . · xN1,N I,1 I,N beginnt. F¨ ur f = x1 · . . . · xN gilt dann f¨ ur mindestens ein i (1 ≤ i ≤ N ) : I,i < I1,i . Es seien i1 , . . . , ik (1 ≤ k ≤ N, 1 ≤ ij ≤ N f¨ ur j = 1, . . . , k, ij = im f¨ ur j = m) Indizes, in denen I,ij < I1,ij gilt. Es gibt endlich viele M¨ oglichkeiten solch ein k-Tupel (i1 , . . . , ik ) auszuw¨ahlen und zu jedem dieser k-Tupel gibt es nur endlich viele k-Tupel (I,i1 , . . . , I,ik ) , die die Voraussetzung I,ij < I1,ij f¨ ur j = 1, . . . , k erf¨ ullen, denn die Exponenten sind ja durch Null nach unten beschr¨ ankt. Nennt man das k-Tupel von Exponenten (I,i1 , . . . , I,ik ) den Typ von ” f “, so ist damit gezeigt, dass es in der Folge f1 , f2 , . . . nur endlich viele verschiedene Typen gibt. Eine unendliche Folge mit der geforderten Eigenschaft kann es also nur geben, wenn es eine unendliche Teilfolge von Termen gleichen Typs in ihr gibt. Nun betrachtet man diese unendliche Teilfolge. Da alle Elemente dieser Folge in den Exponenten von xi1 , . . . , xiN u ¨bereinstimmen, streicht man diese Variablen und erh¨ alt eine unendliche Folge f1 , f2 , . . . , in der kein fk  Vielfaches eines fr¨ uheren fm (1 ≤ m < k) ist, in den N − k Variablen xi mit i ∈ {1, . . . , N } \ {i1 , . . . , ik } . Wegen N − k < N ist diese Folge im Widerspruch zur Annahme nach Induktionsvoraussetzung endlich. 

8.3 Der Buchberger-Algorithmus

319

Sind in K[X] die Terme erst nach Grad und dann lexikographisch geordnet, so kann man diesen bei 1 beginnend der Gr¨ oße nach jeweils eine nat¨ urliche Zahl, ihre sog. Ordnungsnummer zuordnen, in K[x, y, z] mit x > y > z etwa ord(1) = 1 , ord(z) = 2 , ord(y) = 3 , ord(x) = 4 , ord(z 2 ) = 5 , ord(yz) = 6 , . . . usw. Der folgende Beweis arbeitet mit Induktion nach dieser Ordnungszahl, setzt also eine Ordnung nach Gesamtgrad voraus. Der Beweis l¨ asst sich f¨ ur andere vertr¨ agliche Ordnungen entsprechend anpassen, dies soll hier aber nicht ausgef¨ uhrt werden (siehe auch den Zusammenhang der Ordnungen u ¨ber die Ordnungsmatrizen!). Im Fall von 2 Variablen x und y und der Ordnung nach dem Gesamtgrad gibt die Ordnungsnummer gerade die Stellung in einer Art Pascalschem Dreieck an: 1 x x2 3

x

y y2

xy 2

x y .. .

xy .. .

2

y3

8.3.2 Satz: Es sei G = {g1 , . . . , gu } eine nach den endlich vielen Schritten des Algorithmus von Buchberger vorliegende Idealbasis von I = E ⊆ K[X] . Dann ist G eine Gr¨obner-Basis von I . Beweis: Zu zeigen ist, dass f G f¨ ur jedes f ∈ K[X] eindeutig ist. Wie angek¨ undigt geschieht dies per Induktion nach der Ordnungszahl des Leitterms von f . Die Induktion startet mit dem Element 1 = x01 · . . . · x0n mit der Ordnungszahl 1 . Dieser Term hat bzgl. jeder Idealbasis die eindeutig bestimmte Normalform 1 , bzw. 0 bzgl. des Nullideals. Dies gilt erst recht bzgl. G . Der Satz gelte also f¨ ur alle Polynome f mit ord(LT(f )) < N ∈ . Nun betrachtet man ein Polynom h mit ord(LT(h)) = N und LK(h) = a ∈ K . Um alle m¨ oglichen Reduktionen von h bzgl. G zu untersuchen, spaltet man das Leitmonom a LT(h) von hauf in a1 LT(h)+. . .+ap LT(h) p mit K¨orperelementen a1 , . . . , ap ∈ K und i=1 ai = a . Nun gibt es drei F¨ alle zu unterscheiden: (i) LT(h) = LT(h)G ist bereits in Normalform

N

(ii) LT(h) ist Vielfaches genau eines LT(gi ) (1 ≤ i ≤ u) (iii) LT(h) ist Vielfaches mehrerer LT(gi ) (1 ≤ i ≤ u) zu (i) Wegen ord(LT(h)) = N ist ord(h − a LT(h)) < N . Da LT(h) bereits in Normalform vorliegt, kann h also nur durch Reduktion von h − a LT(h) reduziert werden. Nach Induktionsvoraussetzung ist h − a LT(h) eindeutig und damit auch hG . G

zu (ii) In diesem Fall wird im Laufe der Reduktion jeder Summand aj LT(h) (1 ≤ j ≤ p) des Leitmonoms a · LT(h) von h irgendwann gi durch das entsprechende Vielfache von aj (LT(gi ) − LK(g ) ersetzt. i)

320

8 Gr¨ obner-Basen

Das Ergebnis ist jeweils ein Polynom mit einem Leitterm mit einer Ordnungsnummer < N und kann damit nach Induktionsvoraussetzung zu einem eindeutig bestimmten Element in Normalform weiter reduziert werden. ur i ∈ {i1 , . . . , ir } (1 < r ≤ zu (iii) Ist LT(h) Vielfaches von LT(gi ) f¨ n, 1 ≤ i ≤ n, i = ik f¨ ur  = k ), so kann man a1 LT(h) + . . . + ap LT(h) reduzieren, indem man jeden beliebigen Summanden aj LT(h) (1 ≤ j ≤ p) durch das entsprechende Vielfache von gi aj (LT(gi ) − LK(g ) ersetzt. i ) 

Jede m¨ogliche Reduktion von a LT(h) ist also gekennzeichnet durch ein p -Tupel von Indizes (I1 , . . . , Ip ) mit nicht notwendig verschiedenen Ij ∈ {i1 , . . . , ir } . Es wird gezeigt, dass ein beliebiges IndexTupel I1 , . . . , Ip dabei im Endeffekt auf die gleiche Normalform f¨ uhrt, wie etwa das p -Index-Tupel (i1 , . . . , i1 ) . Da LT(h) Vielfaches der Leitterme von gi1 und gi ist, ist LT(h) auch Vielfaches von k := kgV(LT(gi1 )), LT(gi ) , also etwa LT(h) = v · k . Reduktion von LT(h) liefert also v · k1 und v · k2 , wobei (k1 , k2 ) das zu gi1 und gi geh¨ orige kritische Paar ist, bzw. k1 − k2 = SP(gi1 , gi ) . Da der Buchberger-Algorithmus aber erst abbricht, wenn die Normalformen aller S-Polynome Null sind, heißt das, dass Reduktion von LT(h) mit gi1 und Reduktion mit gi letztendlich zum gleichen Ergebnis f¨ uhrt.  Damit ist gezeigt, dass man zu jedem Ideal I in K[X] mit dem Buchbergerschen Algorithmus in endlich vielen Schritten eine Gr¨ obner-Basis G berechnen kann. Ist S der zu dieser Gr¨ obner-Basis geh¨ orige NormalformAlgorithmus ( S(f ) = RedPolBas(f, G) ), so folgt aus der Definition von Gr¨obner-Basen sofort: S(f ) = S(g) ⇐⇒ f ≡ g mod I f ∈ I ⇐⇒ S(f ) = 0. Da der Algorithmus von Buchberger erst stoppt, wenn sich alle SPolynome zu Null reduzieren, ist eine Basis E von I also genau dann eine Gr¨obner-Basis von I , wenn f¨ ur alle f, g ∈ E mit f = g gilt: RedPolBas(SP(f, g), E) = 0 . 8.3.3 Beispiel: Es sei E := {f1 , f2 , f3 } ⊆ Q[x, y, z] mit f1 := x3 yz − xz 2 , f2 := xy 2 z − xyz, f3 := x2 y 2 − z 2 . eine Basis des Ideals I ⊆ Q[x, y, z] . Dann ist (Ordnung nach Gesamtgrad, dann x > y > z ) kgV(LT(f1 ), LT(f2 )) = x3 y 2 z und es gilt

8.3 Der Buchberger-Algorithmus

321

x3 y 2 z −→ x3 y 2 z − y(x3 yz − xz 2 ) = xyz 2 und f1 3 2 x y z −→ x3 y 2 z − x2 (xy 2 z − xyz) = x3 yz 2 . f2 uglich der Basis E Damit ist (xyz 2 , x3 yz 2 ) ein kritisches Paar bez¨ und SP(f1 , f2 ) = xyz 2 − x3 yz 2 = − SP(f2 , f1 ) . asst sich SP(f1 , f2 ) Da x3 yz 2 Vielfaches von LT(f1 ) = x3 yz ist, l¨ reduzieren: 2 3 2 3 2 SP(f1 , f2 ) = xyz 2 − x3 yz 2 −→ f1 xyz − x yz + z(x yz − xz ) =

= xyz 2 − xz 3 . Dieses Polynom ist in Normalform bzgl. E , da offensichtlich keiner seiner zwei Terme Vielfaches von x3 yz, xy 2 z oder x2 y 2 ist. Damit ist E keine Gr¨ obner-Basis von I . Die beiden Terme xyz 2 und xz 3 von SP(f1 , f2 ) sind Elemente von TermE (xyz) , die wegen SP(f1 , f2 ) ≡ 0 mod I linear abh¨ angig in der Q -Algebra Q[x, y, z]/I sind. Mit dem folgenden Algorithmus l¨ asst sich eine Gr¨ obner-Basis eines Ideals I = E in endlich vielen Schritten berechnen: Berechnung einer Gr¨ obner-Basis procedure Gr¨ obner( E ) G←E P ← {{f, g} , f, g ∈ G , f = g} while P = ∅ do w¨ ahle ein {f, g} ∈ P P ← P \ {{f, g}} h ← SP(f, g) h ← RedPolBas( h, G ) if h = 0 then P ← P ∪ {{f, h} , f ∈ G} G ← G ∪ {h} end if end do Return ( G ) end

# Eingabe: E ⊆ K[X] # (endlich). # Ausgabe: Gr¨ obner-Basis G # mit G = E .

Da der Algorithmus nicht festlegt, in welcher Reihenfolge die S-Polynome betrachtet werden sollen und man auch bei verschiedenen Basen starten kann, ist noch nicht gekl¨ art, wieviele verschiedene Gr¨ obner-Basen ein Ideal I haben kann. Dar¨ uber gibt der folgende Satz Auskunft: 8.3.4 Satz: Zwei Teilmengen F und G von K[X] erzeugen genau dann das gleiche Ideal I , wenn sie die gleichen reduzierten Gr¨obner-Basen GB(F ) und GB(G) besitzen.

322

8 Gr¨ obner-Basen

Reduzierte Gr¨ obner-Basen sind nach diesem Satz also eindeutig, wobei das nat¨ urlich nur bis auf Reihenfolge der Basiselemente gemeint ist und nur f¨ ur eine feste vertr¨ agliche Ordnungsrelation. Bevor dieser Satz bewiesen wird, werden einige n¨ otige Hilfss¨ atze bereitgestellt: Es sei F eine endliche Teilmenge von K[X] . Es sei V (F ) die Menge aller Terme in x1 , . . . , xn , die Vielfache eines Leitterms eines Elements von F sind, also V (F ) := {X J ∈ Term(X) , X J ist Vielfaches eines LT(f ) f¨ ur f ∈ F } (siehe die graphische Darstellung in einem der vorhergehenden Beispiele). 8.3.5 Hilfssatz: Sind F und G reduzierte Gr¨ obner-Basen des Ideals I , so gilt: V (F ) = V (G) . Beweis: Angenommen, der Satz ist falsch und es gibt einen Term t ∈ V (F ) \ V (G) , d.h. es gilt t = t · LT(fi ) f¨ ur ein fi ∈ F . Da t ∈ V (G) ist, reduziert sich t · fi bzgl. G nicht zu Null:  t · fi −→ G t G = 0

t · fi ist aber ein Element von I und reduziert sich trivialerweise bzgl. F zu Null. Die Tatsache, dass t G = 0 ist, widerspricht also der Voraussetzung, dass G eine Gr¨ obner-Basis von I ist.  8.3.6 Hilfssatz: Sind F und G zwei reduzierte Gr¨ obner-Basen des Ideals I , so sind sie gleichm¨ achtig und haben (bis auf Reihenfolge) die gleichen Leitterme. Beweis: Angenommen fi ist ein Polynom aus der Basis F , dessen Leitterm mit keinem Leitterm von G u ¨bereinstimmt. Wegen 8.3.5 ist V (F ) = V (G) . Wegen LT(fi ) ∈ V (F ) folgt also LT(fi ) ∈ V (G) d.h. es gibt ein gj ∈ G und einen Term v = 1 mit LT(fi ) = v · LT(gj ) . Wegen LT(gj ) ∈ V (G) = V (F ) gibt es dann aber auch einen Term v  mit LT(gj ) = v  · LT(f ) , also zusammen LT(fi ) = v · v  · LT(f ) mit v = 1 . Das ist aber ein Widerspruch zur Voraussetzung, dass F eine reduzierte Gr¨obner-Basis ist.  Nun zum Beweis des eigentlichen Satzes: Beweis: (von Satz 8.3.4) Da f¨ ur das Nullideal ∅ die einzige reduzierte Gr¨ obner-Basis ist, sei F = ∅ =  G . Da F und G nach 8.3.6 bis auf Reihenfolge die gleichen Leitterme besitzen und gleichm¨ achtig sind, gibt es ein s ∈ und ein π ∈ Ss mit F = {f1 , f2 , . . . , fs }, G = {g1 , g2 , . . . , gs } und LT(fi ) = LT(gπ(i) ) f¨ ur i = 1, 2, . . . , s . Angenommen es gibt unter diesen Indizes i = 1, . . . , s einen Index i0 mit fi0 = gπ(i) . Man betrachtet das Polynom h := fi0 − gπ(i0 ) .

N

8.3 Der Buchberger-Algorithmus

323

Da die beiden beteiligten Polynome den gleichen Leitterm besitzen und beide normiert sind, kommt dieser Leitterm also in h nicht mehr vor. Als Differenz zweier Polynome aus F  = G = I ist h selbst wieder in I und nach Voraussetzung von Null verschieden. Ist nun t ∈ Term(X; h) ein einzelner Term von h , so gibt es zwei M¨ oglichkeiten: (i) t kommt in fi0 vor, also t ∈ Term(X; fi0 ) , (ii) t kommt in gπ(i0 ) vor, d.h. t ∈ Term(X; gπ(i0 ) ) . Im Fall (i) ist t ∈ V (F ) , denn sonst w¨ are fi0 bzgl. F \ {fi0 } nicht reduziert. Im 2. Fall folgt analog t ∈ V (G) , was aber wegen 8.3.5 auch heißt t ∈ V (F ) . Das heißt, dass in jedem Fall t ∈ V (F ) gilt, was zur Folge hat, dass das Polynom h , das aus diesen Termen besteht, bereits in Normalform bzgl. der Basis F ist. Wegen h ∈ I und hF = 0 ist das aber ein Widerspruch zu der Voraussetzung, dass F eine reduzierte Gr¨ obnerBasis ist. Es gibt also keinen Index i0 mit fi0 = gπ(i0 ) .  Nach Satz 8.3.4 sind insbesondere reduzierte Gr¨ obner-Basen von Interesse. Mit den bereits eingef¨ uhrten Prozeduren l¨ asst sich eine reduzierte Gr¨obner-Basis eines Ideals IE nun etwa aus E berechnen, indem man hintereinander die Prozeduren Gr¨ obner und RedBas auf E anwendet, also G := RedBas(Gr¨ obner(E)) berechnet. Folgerung: (i) Ist f ∈ K[X] normiert, so ist G = {f } offensichtlich eine Gr¨ obnerBasis des Hauptideals I = f  . Zusammen mit dem vorhergehenden Satz heißt das: Ein Ideal I ist genau dann ein Hauptideal, wenn seine reduzierte Gr¨ obner-Basis nur aus einem Element besteht. (ii) Nach der Folgerung zu Satz 8.1.10 haben Polynome f1 , . . . , fr ∈ K[X] genau dann keine gemeinsame Nullstelle in An (L) (L algebraisch abgeschlossen), wenn 1 ∈ f1 , . . . , fr  ist, d.h. wenn die Gr¨ obner-Basis von f1 , . . . , fr nur aus der 1 besteht. (iii) Aus dem Beweis des Hilbertschen Nullstellensatzes liest man ab: " obner-Basis von f1 , . . . , fr , 1 − z · f . f ∈ f1 , . . . , fr  ⇐⇒ {1} ist Gr¨ 8.3.7 Beispiel: Das Gleichungssystem x2 y + 4y 2 − 17 = 0 2xy − 3y 3 + 8 = 0 xy 2 − 5xy + 1 = 0 hat keine L¨ osung (egal bei welchem Oberk¨ orper) da das von E := {x2 y + 4y 2 − 17, 2xy − 3y 3 + 8, xy 2 − 5xy + 1} erzeugte Ideal die reduzierte Gr¨ obner-Basis {1} besitzt.

324

8 Gr¨ obner-Basen

8.3.8 Beispiel: Gr¨ obner-Basen werden auch dazu verwendet, geometrische Sachverhalte zu beweisen. Als Beispiel soll hier der Satz nachgerechnet werden, dass sich die Diagonalen eines Parallelogramms halbieren.

(u2 , u3 )

(0, 0)

•CCC v• vv  CC vv   CC v  CC vvv CCv(x1 , x2 )   v ◦ vv CCC   vv CC   vvv CC  C vv •v •

(u1 , 0)

Da es sich um ein Parallelogramm handelt, ist die Koordinate des vierten Punktes (u1 + u2 , u3 ) . Da jeweils zwei gegen¨ uberliegende Punkte und der Diagonalenschnittpunkt auf einer Geraden liegen, gilt u3 x2 u3 x2 u1 +u2 = x1 und u1 −u2 = u1 −x1 . Die Behauptung, dass der Diagonalenschnittpunkt die Diagonale durch den Ursprung halbiert lautet als Gleichung formuliert 4(x21 + x22 ) = (u1 + u2 )2 + u23 . Damit wird die Geometrie der Figur beschrieben durch die Gleichungen u3 x1 − x2 (u1 + u2 ) = 0 , u3 (u1 − x1 ) − x2 (u1 − u2 ) = 0 und man fragt sich, ob das Polynom g := 4(x21 + x22 ) − (u1 + u2 )2 − u23 auf allen Punkten der beschriebenen Variet¨ at verschwindet. Um Ausartungsf¨alle zu vermeiden, fordert man u1 = 0 und u3 = 0 . Dies kann man ebenfalls als Gleichungen formulieren, indem man mit den zwei neuen Variablen z1 und z2 schreibt u 3 z1 − 1 = 0 , u 1 z2 − 1 = 0 . Damit lautet also die Frage nach der Richtigkeit des geometrischen Satzes umformuliert: ?" g ∈ u3 x1 − x2 (u1 + u2 ) , u3 (u1 − x1 ) − x2 (u1 − u2 ) , u3 z1 − 1 , u1 z2 − 1 .

Da die reduzierte Gr¨ obner-Basis von u3 x1 −x2 (u1 +u2 ) , u3 (u1 −x1 )−x2 (u1 −u2 ) , u3 z1 −1 , u1 z2 −1 , 1−yg gleich {1} ist, ist dies der Fall, die Behauptung also richtig. Der kritische Punkt an dieser Rechnung sind die beiden Ungleichungen. L¨asst man diese weg, so besteht die Variet¨ at aus drei irreduziblen Variet¨ aten. Eine davon beschreibt den Spezialfall u1 = 0 , die andere den Fall u3 = 0 , weshalb g dann nicht in dem Radikalideal liegt. Im vorliegenden Fall waren die Ungleichungen relativ naheliegend. F¨ ur kompliziertere F¨ alle gibt es Untersuchungen, welche Ungleichungen zu w¨ ahlen sind (vgl. [Kap] oder [Wu]).

8.4 Eliminationsideale

325

8.4 Eliminationsideale Es sei Y ein Teiler des Terms X und K[Y ] der entsprechende Unterring von K[X] . 8.4.1 Definition: Es sei I ⊆ K[X] ein Ideal. Der Schnitt von I mit K[Y ] heißt Eliminationsideal von I bez¨ uglich Y , i.Z.: IY := I ∩ K[Y ].

N

Speziell f¨ ur Y = x+1 · . . . · xn mit  ∈ 0 heißt IY das -te Eliminationsideal von I und wird auch mit I bezeichnet werden, also I := Ix+1 ·...·xn = I ∩ K[x+1 , . . . , xn ] . Es ist leicht nachzupr¨ ufen, dass IY bzw. I wirklich Ideale von K[Y ] sind, I0 ist das Ideal I selbst. 8.4.2 Definition: Gilt f¨ ur alle Y J ∈ Term(Y ) und X I ∈ Term(X/Y ) I mit X = 1 , dass Y J < X I ist, so schreibt man Y * X/Y. Zu jedem Teiler Y von X l¨ asst sich sofort eine zul¨ assige Ordnungsrelation < angeben, so dass Y * X/Y ist: man definiere etwa die lexikographische Ordnung auf X so, dass jedes Element von Y kleiner ist als ein beliebiges Element aus X/Y . Speziell f¨ ur Y = xk+1 · . . . · xn und die lexikographische Ordnung mit xn < xn−1 < . . . < x1 gilt also z.B. Y * X/Y . 8.4.3 Satz: Es sei Y ein Teiler von X und < eine zul¨assige Ordnungsrelation mit Y * X/Y . Dann gilt (i) Sind X I ∈ Term(X) und Y J ∈ Term(Y ) mit X I < Y J , so gilt X I ∈ Term(Y ) . g , dann gilt p, g ∈ (ii) Sind f ∈ K[Y ] und p, g ∈ K[X] mit f −→ p K[Y ] . Beweis: (i) Angenommen, X I ∈ Term(Y ) . Dann kann man X I in der Form X I = Y I1 · Z I2 mit Z I2 ∈ Term(X/Y ) \ {1} schreiben. Wegen Y * X/Y ist Y J < Z I2 . Da aber X I < Y J vorausgesetzt ist, folgt Y I1 · Z I2 < Z I2 . Da < eine zul¨ assige Ordnungsrelation ist, gilt Y I1 ≥ 1 und damit auch I1 I2 I2 Y ·Z ≥Z . g ist ein Y I ∈ Term(Y ; f ) Vielfaches von LT(p) , also (ii) Wegen f −→ p LT(p) ∈ Term(Y ) . Da alle Elemente von Term(X; p) bzgl. < kleiner oder gleich LT(p) sind, folgt also Term(X; p) ⊆ Term(Y ) oder p ∈ K[Y ] . 

326

8 Gr¨ obner-Basen

8.4.4 Satz: Es sei Y ein Teiler von X und < eine zul¨assige Ordnungsrelation mit Y * X/Y . Sei weiterhin I ⊆ K[X] ein Ideal und G eine Gr¨obner-Basis von I bzgl. < . Dann gilt: GY := G ∩ K[Y ] ist eine Gr¨ obner-Basis von IY . Beweis: Es sei G = {g1 , . . . , gs } . Da IY ein Ideal ist, folgt wegen GY ⊆ IY sogar GY  ⊆ IY . Da G eine Gr¨ obner-Basis von I ist, besitzt jedes Element von I bzgl. G die eindeutige Normalform 0 . Insbesondere f¨ ur jedes f ∈ IY gilt ∗ f −→ 0 . Wegen f ∈ K[Y ] und der Voraussetzung Y * X/Y bedeutet G dies nach Punkt (ii) des vorhergehenden Satzes, dass f¨ ur die Einzelschritte ∗ f −→ f  −→ f  −→ . . . von f −→ 0 gilt gi1 , f  , gi2 , f  , . . . ∈ K[Y ] . gi gi G 1 2 ur alle Damit sind gi1 , gi2 , . . . ∈ GY und man liest ab f ∈ GY  f¨ f ∈ IY . Das zeigt GY  ⊇ IY und, weil die andere Inklusion schon gezeigt war, auch GY  = IY . GY ist also eine Basis des Ideals GY . Ist f ein beliebiges Element von K[Y ] ⊆ K[X] , so besitzt f bez¨ uglich ∗ g G eine eindeutige Normalform g , d.h. f −→ . Wegen f ∈ K[Y ] kann G G man wie im letzten Abschnitt argumentieren, dass alle Einzelschritte dieser ∗ Vereinfachung sogar mit Elementen aus GY funktionieren, also f −→ gG . GY Y

obner-Basis.  Die Idealbasis GY von IY ist also sogar eine Gr¨ Speziell f¨ ur Y = x+1 · . . . · xn und die lexikographische Ordnung mit xn < xn−1 < . . . < x1 gilt wie bereits erw¨ ahnt Y * X/Y . Ist G eine Gr¨obner-Basis von I ⊂ K[x1 , . . . , xn ] , so ist also nach dem vorhergehenden Satz G := G ∩ K[x+1 , . . . , xn ] eine Gr¨obner-Basis des Eliminationsideals I . 8.4.5 Beispiel: Gegeben sei die Basis E := {zx+yx−x+z 2 −2, xy 2 +2zx−3x+z+y−1, 2z 2 +zy 2 −3z+2zy+y 3 −3y} des Ideals I ∈ Q[x, y, z] . Die reduzierte Gr¨ obner-Basis dieses Ideals bez¨ uglich der lexikographischen Ordnung mit x > y > z ist G = {xz 2 − 2x − z 4 + 4z 2 − 4, y + z 4 + 2z 3 − 5z 2 − 3z + 5, z 6 + 2z 5 − 7z 4 − 8z 3 + 15z 2 + 8z − 10} . In Maple l¨ asst sich das etwa je nach Version nach dem Laden des entsprechenden Pakets mit with(Groebner) -oder ¨ alter with(grobner)- mit dem Befehl gbasis(E,[x,y,z],plex) oder gbasis(E,plex(x,y,z)) berechnen. Daraus liest man mit dem vorhergehenden Satz ab: Gyz = {y + z 4 + 2z 3 − 5z 2 − 3z + 5 , z 6 + 2z 5 − 7z 4 − 8z 3 + 15z 2 + 8z − 10} Gz = {z 6 + 2z 5 − 7z 4 − 8z 3 + 15z 2 + 8z − 10} .

8.4 Eliminationsideale

327

Besonders interessant ist vorerst das einzelne Polynom aus Q[z] in Gz . Die vollst¨ andige Faktorisierung dieses Polynoms u ¨ber Q lautet z 6 + 2z 5 − 7z 4 − 8z 3 + 15z 2 + 8z − 10 = (z 2 − 2)(z 4 + 2z 3 − 5z 2 − 4z + 5). Jede z-Koordinate einer Nullstelle von I ist also Wurzel von einem dieser beiden Faktoren. Handelt es sich um eine Nullstelle von z 2 −2 , so kann man die beiden anderen Elemente der Gr¨ obner-Basis durch Substitution von z 2 = 2 entsprechend vereinfachen. Aus z 4 + 2z 3 − 5z 2 + y − 3z + 5 wird so z + y − 1 , aus y + z 4 + 2z 3 − 5z 2 − 3z + 5 wird 0 . Ist die z-Koordinate einer Nullstelle von I dagegen eine Wurzel von z 4 + 2z 3 − 5z 2 − 4z + 5 , so kann man z 4 = −2z 3 + 5z 2 + 4z − 5 in die anderen Polynome einsetzen und erh¨ alt −z 2 + x + 2 und y + z . Damit hat man die Variet¨ at VL (I) in die zwei u ¨ber Q irreduziblen Variet¨aten VL (y + z − 1, z 2 − 2) und VL (x − z 2 + 2, y + z, z 4 + 2z 3 − 5z 2 − 4z + 5) zerlegt. Die Punkte der ersten Variet¨ at kann man nun sehr leicht, von z 2 − 2 ausgehend berechnen. Es gilt √ √ √ √ VL (y + z + 1, z 2 − 2) = {(t, 1 − 2, 2) , (t, 1 + 2, − 2)} mit einem Parameter t ∈ L . Das ist ein paralleles Geradenpaar. Die zweite Variet¨ at ist dagegen endlich. Das Polynom z 4 + 2z 3 − 2 5z − 4z + 5 hat vier komplexe Wurzeln, die sich sogar noch formal berechnen lassen. Die formalen L¨ osungen sollen hier allerdings nicht angegeben werden, da jede von ihnen mehrere Seiten f¨ ullt. Aus diesen Formeln kann man dann numerische L¨ osungen in beliebiger Genauigkeit berechnen. Im vorliegenden Fall stellt sich heraus, dass alle vier L¨ osungen in R liegen, n¨ amlich z1 = −3.034390300 , z2 = −1.320384656 , z3 = 0.805515643 und z4 = 1.549259313 . ur jeEinsetzen dieser vier Werte in x − z 2 + 2 = 0 liefert f¨ den z-Wert genau einen x-Wert, n¨ amlich x1 = 7.207524493 , x2 = −.2565843600 , x3 = −1.351144549 und x4 = 0.400204419 . Einsetzen in y + z = 0 liefert f¨ ur jeden z-Wert genau einen y-Wert, n¨amlich y1 = 3.034390300 , y2 = 1.320384656 , y3 = −.805515643 und y4 = −1.549259313 . Die Variet¨ at besteht also aus den vier Punkten P1 P2 P3 P4

= = = =

( 7.207524493 , 3.034390300 ( − .2565843600 , 1.320384656 ( − 1.351144549 , − 0.805515643 ( 0.400204419 , − 1.549259313

, − 3.034390300 ) , − 1.320384656 ) , 0.805515643 ) , 1.549259313 )

328

8 Gr¨ obner-Basen

8.4.6 Beispiel: Im geben:

R3

sei die Fl¨ ache x(t, u) in Parameterdarstellung ge-

⎞ ⎛ ⎞ x(t, u) t+u x(t, u) = ⎝ y(t, u) ⎠ = ⎝ t2 + 2tu ⎠ . t3 + 3t2 u z(t, u) ⎛

Berechnung einer Gr¨ obner-Basis zu der Idealbasis E := {x − t − u, y − t2 − 2tu, z − t3 − 3t2 u} mit lexikographischer Ordnung und t > u > x > y > z liefert G = {t + u − x, u2 − x2 + y, 2ux2 − 2uy − 2x3 + 3xy − z, uxy − uz − x2 y − xz + 2y 2 , 2uxz − 2uy 2 + 2x2 z − xy 2 − yz, 2uy 3 − 2uz 2 − 4x2 yz + xy 3 − 2xz 2 + 5y 2 z, 4x3 z − 3x2 y 2 − 6xyz + 4y 3 + z 2 } Die Fl¨ ache

x(t, u) f¨ ur −1 ≤ t, u ≤ 1

Die Fl¨ ache 4x3 z − 3x2 y 2 − 6xyz + 4y 3 + z 2 = 0

Nach dem vorhergehenden Satz heißt das Gxyz = {4x3 z − 3x2 y 2 − 6xyz + 4y 3 + z 2 } d.h. 4x3 z − 3x2 y 2 − 6xyz + 4y 3 + z 2 = 0 ist eine implizite Darstellung der Fl¨ache.

A Anhang CA-Systeme

1. Universelle Programme Im folgenden werden einige der großen“ Computeralgebra-Programme mit ” jeweils einer kurzen Beschreibung alphabetisch aufgelistet. Die Liste erhebt keinen Anspruch auf Vollst¨ andigkeit und bei der Schnelllebigkeit von Software und Internet ist sie wahrscheinlich auch bald nicht mehr ganz aktuell. Trotzdem wird sie den Einstieg f¨ ur Neulinge hoffentlich erleichtern. Einige der aufgelisteten Programme sind schon u ¨ber 30 Jahre in der Entwicklung und haben dabei viele verschiedene Stationen durchlaufen, werden also vermutlich auch nicht so schnell aussterben“. ” Axiom Plattformen: Fr¨ uher haupts¨ achlich IBM Maschinen, dann auch Solaris und Windows. Die neueste Debian-Version gibt es f¨ ur Linux auf den u ¨blichen Debian-Plattformen (also arm, hppa, i386, ia64, m68k, mips, mipsel, powerpc, s390, sparc). Den Aldor-Compiler gibt es f¨ ur Intel Linux, Alpha, Sparc (Solaris 7 oder 8) und Windows 9x, NT, 2000 und XP. Autoren: Urspr¨ unglich unter dem Namen Scratchpad in den Forschungszentren der IBM in Yorktown Heights und in Heidelberg entwickelt (J. Griesmer, R. Jenks, D. Yun, J. Grabmeier etc.). Alter: Internes Forschungsprojekt der IBM seit den 70er Jahren, erst ab Ende 1991 unter dem Namen Axiom auf dem Markt. In den Jahren 1991-2002 als Produkt von NAG (http://www.nag.co.uk/) vertrieben. Inzwischen unter einer BSD-¨ ahnlichen Lizenz zu haben. Sp¨ ater kam noch Aldor als Compiler dazu. Ab 1994 war Aldor Teil von Axiom, hat sich jetzt aber zu einer eigenst¨ andigen Sprache weiterentwickelt. Infos: Axiom-Homepage http://www.nongnu.org/axiom/ und Aldor -Homepage http://www.aldor.org/. Preis: Axiom ist jetzt freie Software. Literatur: — J. Griesmer, R. Jenks, D. Yun: Scratchpad User’s Manual, IBM Research Publications RA70, 1974. — R. Jenks, R. Sutor: Axiom, The scientific computation system.

330

A Anhang CA-Systeme

Beschreibung: Urspr¨ unglich in Lisp geschrieben mit eigener m¨ achtiger Programmiersprache. Schon zu Scratchpad-Zeiten war dieses Programm mit mindestens 12 MByte Speicherbedarf das Monster unter den CA-Sprachen (heute 92 MByte Quellcode). Durch das Designkonzept mit abstrakten Datentypen wurde die Realisation mathematischer Kategorien und Datenstrukturen erm¨ oglicht. Dadurch nicht nur die u ¨blichen Routinen universeller CA-Systeme, sondern auch Rechnen mit nichtassoziativen oder -kommutativen Algebren oder Darstellungstheorie endlicher Gruppen m¨ oglich. Derive Plattformen: PCs mit (je nach Version) DOS, Windows 95, 98, Me, NT, XP oder 2000. Lief sogar auf dem PC-kompatiblen HP 95LX Palmtop. Autoren: D. Stoutemyer, A. Rich. Alter: 1988. Infos: Soft Warehouse Europe, Softwarepark, A-4232 Hagenberg, Austria Tel.:(+43) (0) 7236-3297-0, Fax: (+43) (0) 7236-3297-71, Email: [email protected], WWW: http://www.derive-europe.com/. Preis: Die Version f¨ ur Lehrkr¨ afte, Studenten oder Sch¨ uler ist ab ca. 83E zu haben. Eine Testversion gibt es f¨ ur 30 Tage kostenlos. Literatur: Eine aktuelle Sammlung von Derive-B¨ uchern findet sich jeweils auf der Derive-Homepage. Hier seien etwa die folgenden B¨ ucher genannt — Ellis, W. Jr.; Lodi, E.: A Tutorial Introduction to Derive [ELo] — Glynn, J.: Mathematik entdecken mit Derive - von der Algebra bis zur Differentialrechnung [Gly] Beschreibung: Moderner Nachfolger von MuMath (wohl ¨ altestes CAProgramm f¨ ur Micros; nicht mehr verf¨ ugbar) mit Fenstertechnik, PullDown-Men¨ us und Graphik. Anf¨ anglich (bis Version 4) war die Programmierm¨oglichkeit eingeschr¨ ankt. Erstaunlich leistungsstark: Im Vergleich teilweise besser als sehr viel gr¨ oßere Programme. ¨ Das Osterreichische Unterrichts-Ministerium hat Derive f¨ ur alle Gymnasien als Standardwerkzeug f¨ ur den Mathematikunterricht bereits 1991 eingekauft ! Andere L¨ ander bzw. Bundesl¨ander folgten nach, etwa Belgien, Schweden und im Jahr 2000 Brandenburg. Kopplung mit den Computeralgebra-Handhelds TI-89, TI-92+, Voyage 200 von Texas Instruments m¨oglich. Macsyma Plattformen: Symbolics (=spezielle Lisp-Rechner), DEC VAX und MicroVAX, Sun-2 und Sun-3 und jetzt auch auf PC ≥ 386 (DOS- und WIN 3.1.-Versionen) und seit 2000 auch f¨ ur Linux. Autoren: J. Moses, W. Martin und viele andere am Massachusetts Institute of Technology (MIT) zusammen mit der Firma Symbolics (Entwicklungsaufwand ≥ 100 Mann-Jahre !).

1. Universelle Programme

331

Alter: 1968. Infos: Macsyma Inc., 20 Academy Street, Arlington, MA 02476, Tel: +1 781 646 4550, Email: [email protected] , URL: http://www.macsyma.com/. Preis: Lite Version von Macsyma 2.3 f¨ ur Windows beim Springer-Verlag f¨ ur ca. 75E (ISBN 3-540-14703-9) mit Handbuch. Vollversion in den USA um die 250 US $. Literatur: R. H. Rand: Computer Algebra in Applied Mathematics, An Introduction to Macsyma [Ran] Beschreibung: Sehr ausgereiftes und umfassendes Programm; Routinen auch zur Gruppentheorie oder etwa zu Lie-Algebren. In Lisp geschrieben. Zur Zeit mehr als 300000 Zeilen Lisp-Code und u ¨ber 300 Unterroutinen plus große Share-Library. Eigene einfache Sprache ¨ahnlich zu der von Reduce oder Cayley. Trotz des anf¨ anglich recht hohen Preises sehr verbreitet an Universit¨ aten und Forschungseinrichtungen. Es existieren viele Abk¨ ommlinge bzw. Varianten von Macsyma, etwa DOE-Macsyma (Speziell auf reinen LispMaschinen), Vaxima (unter Vax-Unix) oder Aljabr (Macintosh). Unter http://gnuwin.epfl.ch/apps/maxima/de/ kann man inzwischen lesen: Maxima ist eine Common Lisp-Implementation des Macsyma-Systems ” f¨ ur computerbasierte Algebra vom MIT. Maxima wird bald unter der GNU Public License freigegeben.“ Dort kann man bereits jetzt eine Windows-Version von Maxima frei herunterladen. Magma Plattformen: PCs mit Linux oder Windows, Apple Macintosh mit Mac OS X, Suns unter Solaris, DEC Alpha mit OSF/1 oder Linux, IBM Maschinen mit AIX, HP unter HP-UX und SGIs mit IRIX (32-bit and 64-bit). Autoren: Computational Algebra Group an der Universit¨ at von Sydney (J. Cannon, W. Bosma, C. Playoust,. . . ) Alter: Verkauf ab Dezember 1993. Infos: Homepage unter http://magma.maths.usyd.edu.au/. Preis: Studenten-Version f¨ ur PCs (Windows, Linux oder Mac mit OS X) zu 150 US $. Eine Hochschul-Lizenz f¨ ur einen Rechner und 3 Jahre kostet etwa 1150 US $. Literatur: Es gibt zwei Handb¨ ucher zum Programm ([CPl] und [CPB]), die aber im Buchhandel momentan nicht lieferbar sind. Bestandteil von Magma sind aber ca. 3000 Seiten Dokumentation. Weiterhin gibt es — Pecquet, L.: A first course in Magma [Pec]; — Bosma, W.; Cannon, J.; Playoust, C.: The Magma algebra system. I: The user language [BCP]

332

A Anhang CA-Systeme

¨ Beschreibung: Ahnlich wie in Axiom oder auch in MuPAD werden hier mathematische Strukturen sauber, d.h. entsprechend den Schreibweisen der Universellen Algebra oder der Kategorientheorie eingef¨ uhrt. Daher kommt auch der Name des Programms – ein Magma ist eine Menge mit einer inneren Verkn¨ upfung und das Grundkonzept dieser Programmiersprache. Vom Aufbau her ist Magma ¨ ahnlich wie Gap oder Maple: Um einen in C geschriebenen Kern herum gibt es in Magma geschriebene Module. Auch C-Routinen k¨ onnen in Magma eingebracht werden. Es sind bereits Gruppen, Halbgruppen, Ringe, K¨ orper, Algebren, Moduln, Graphen, Codes und endliche Geometrien implementiert. Magma ist der Nachfolger des fr¨ uher von der gleichen Gruppe vertriebenen, auf Gruppentheorie spezialisierten Cayley, das es inzwischen nicht mehr gibt. Außer diesen Quellen enth¨ alt das Programm Algorithmen zur Zahlentheorie von Kant und die reelle Arithmetik basiert auf Pari. Maple Plattformen: Sehr verbreitet: von PC und Macintosh u ¨ber Workstations bis hinauf zu Supercomputern. Autoren: K. Geddes, G. Gonnet mit einem Team an der University of Waterloo in Kanada. Alter: 1985. Infos: Webseite von Maple http://www.maplesoft.com/ bzw. die der deutschen Vertriebsfirma Scientific Computers (Friedlandstrasse 18, 52064 Aachen) unter http://www.scientific.de/. Preis: Eine Studentenversion f¨ ur 189E kann man bei Scientific Computers bestellen (ISBN 1-894511-47-6). Weiterhin gibt es Klassenzimmerlizenzen f¨ ur 1.349E (15 Vollversionen) bis hin zur kommerziellen Einzelplatzversion zu 1.795 US $. Literatur: Eine sehr ausf¨ uhrliche Liste findet man bei Waterloo Maple unter http://www.maplesoft.com/publications/books/. Beschreibung: Der Kern von Maple ist in C geschrieben und umfasst nur“ um die 20000 Zeilen Quellcode. Das ist der einzig geheime“ Teil ” ” von Maple der kompiliert nur ca. 650 KByte umfasst. Der riesige Rest von Maple ist in der eigenen Maple-Sprache geschrieben und zug¨ anglich. Die große Share Library wird ebenfalls im Quellcode mitgeliefert. Sehr umfassendes und ausgereiftes Paket mit Unterpaketen auch zum Rechnen in endlichen K¨ orpern, Gruppentheorie, Geometrie etc. An vielen Hochschulen gibt es Campuslizenzen, Baden-W¨ urttemberg hat Maple landesweit angeschafft (s. http://notes.ikg.rt.bw.schule.de/). Mathematica Plattformen: Sehr verbreitet: von PC (Dos/Win/Linux) und Macintosh u ¨ber Workstations bis hinauf zu Supercomputern wie etwa CONVEX.

1. Universelle Programme

333

Autoren: St. Wolfram. Alter: 1988. Infos: Wolfram Research Inc., 100 Trade Center Drive, Champaign, Ill. 61820-7237, USA, Tel.: +1 217 398 0700, E-Mail: [email protected], URL: http://www.wri.com/. Preis: Mathematica f¨ ur PC, Mac oder Linux gibt es in Deutschland ab ca. 140E (Studentenversion) bis hinauf u ur die professionelle ¨ber 5000E f¨ Einzelplatzlizenzen. Literatur: Wolfram, St.: The Mathematica Book [Wol]. Online-Version der Dokumentation unter http://documents.wolfram.com/v5/. Beschreibung: Das neueste der beschriebenen universellen Systeme. Vollst¨andig in C geschrieben; dadurch nicht ganz so offen wie Maple oder Reduce, wo man fast alle Quellen hat. Sehr gef¨ allige Oberfl¨ ache (Notebook etc.). War lange den anderen Systemen in der Graphik deutlich u ur aber in einigen Punkten im symbolischen Rech¨berlegen, hat daf¨ nen bei den Vergleichstests nicht so gut abgeschnitten. Voll programmierbar in eigener einfacher Sprache. Große Materialsammlung unter http://library.wolfram.com/infocenter MuPAD Plattformen: Sun (Solaris), Macintosh (MacOS 9 oder X), PC (ab 386, Windows und Linux). Autoren: Arbeitsgruppe um B. Fuchssteiner am Institut f¨ ur Automatisierung und instrumentelle Mathematik an der Universit¨ at Paderborn. Den Anfang von MuPAD (= Multi Processing Algebra Data Tool) machten die Diplomarbeiten von K. Morisse, O. Kluge, A. Kemper und H. Naundorf. Alter: Die ersten zwei der genannten Diplomarbeiten wurden bereits 1989 geschrieben. Den Namen MuPAD gibt es seit Ende 1990. Im Jahr 1992 gibt es die erste Release-Nummer mit einer Eins vor dem Komma, die u oßeren Publikum zug¨ anglich gemacht ¨ber anonymous ftp einem gr¨ wird. Anfang 2004 stand die Z¨ ahlung bei Version 3.0. Infos: Im WWW unter http://www.mupad.de/ mit Download-M¨ oglichkeit (Demoversionen f¨ ur 30 Tage und kostenlose Light-Version. ¨ Preis: Uber 230 Schulen in Nordrhein-Westfalen arbeiten bereits mit MuPAD (Projekt MUMM=Mathematik Unterricht mit MuPAD). Im Rahmen dieses Projekts k¨ onnen Sch¨ uler MuPAD bereits ab 10E erwerben. Die Studentenversion gibt es f¨ ur ca. 110E, unbegrenzte Schullizenzen f¨ ur knapp 400E und die Einzellizenz f¨ ur die Industrie f¨ ur 550E. Literatur: Benno Fuchssteiner et al.: MuPAD: Multi Processing Algebra Data Tool (zu MuPAD Version 1.2), Birkh¨ auser Verlag Basel, 1994, ISBN 3-7643-5017-2. W. Oevel, F. Postel, G. R¨ uscher, S. Wehmeier: Das MuPAD Tutorium, SciFace Software, Paderborn (Germany), ISBN 3933764-00-9. Vollst¨ andige Liste unter http://www.mupad.de/BIB/.

334

A Anhang CA-Systeme

Beschreibung: Leistungsf¨ ahiges Programm mit eigener Sprache, Bibliotheken zur Zahlentheorie, linearen Algebra, symbolischen Integration, Gr¨obner-Basen, Graphik etc. Das System ist offen, d.h. Anwender haben vollen Einblick in den Bibliotheks-Code, k¨ onnen nahezu jeden Teil des Systems erweitern und ver¨ andern, neue Routinen und Datentypen definieren und sogar Module in C++ schreiben, die zur Laufzeit zu MuPAD hinzugeladen werden k¨ onnen. Das Programm verf¨ ugt u ¨ber ein tief integriertes Typsystem, das vom Anwender erweitert werden kann. Viele Funktionen des Systems lassen sich f¨ ur Objekte eines bestimmten Typs neu definieren. Ein Quelltext-Debugger geh¨ ort zum Lieferumfang. Pari Plattformen: Da der vollst¨ andige Quellcode verteilt wird, l¨ asst sich Pari auf so ziemlich jedem 32- oder 64-bit Computer mit einem ordentlichen C-Compiler einsetzen. F¨ ur 680x0- und die Intel-Familie ab dem 386er gibt es aber spezielle Assembler-Teile, die das System deutlich schneller machen. Autoren: C. Batut, D. Bernardi, H. Cohen, M. Olivier an der Universit¨ at von Bordeaux, Frankreich. Alter: 1989 Infos: Homepage http://www.parigp-home.de/. Preis: Kostenlos (unter der GPL). Literatur: Ein ca. 160-seitiges Handbuch ist im TEX-Quellcode bei der Distribution mit dabei. Beschreibung: Pari ist ein Programm zur Zahlentheorie und f¨ ur einfache numerische Analysis, das zur Zeit aus mehr als 32000 Zeilen Quellcode besteht. Dazu geh¨ ort ein Paket zur Linearen Algebra ebenso wie der Umgang mit Polynomen, rationalen Funktionen oder elliptischen Kurven. Es handelt sich aber nicht um ein Programm zur symbolischen Manipulation im u ¨blichen Sinne (Eingabe von sin(x) liefert etwa die Taylorentwicklung des Sinus um den Ursprung), der Funktionsumfang l¨asst sich auch nicht mit dem von Maple, Macsyma oder den anderen großen Pakten vergleichen. Wesentliche Vorteile von Pari sind seine Geschwindigkeit und die Verwendbarkeit als Bibliothek zur Verwendung von anderen Programmiersprachen (C, Pascal, Fortran,. . . ) aus. Die Entwickler von Pari geben an, dass ihr Programm je nach Anwendung 5 bis 100 mal schneller als Maple oder Mathematica ist. Verwendet man Pari nicht als Programmbibliothek f¨ ur eigene Programme, so ruft man den GP/PariCalculator auf, in dem man – wie auch bei anderen CA-Systemen u ¨blich – interaktiv arbeiten kann. Arbeitet man mit GNU-Emacs, so ist es m¨oglich und empfehlenswert, Pari als Emacs-Unterprozess laufen zu lassen. Man kann Pari auch so u ur die Langzahla¨bersetzen, dass f¨ rithmetik Gmp verwendet wird.

2. Spezialisierte Programme

335

Reduce Plattformen: Sehr verbreitet: von Atari und PC u ¨ber Workstations bis hinauf zu Großcomputern wie etwa Cray. Autoren: A. C. Hearn. Alter: 1968. Infos: Homepage http://www.zib.de/Symbolik/reduce/ Preis: Je nach Rechner und Ausstattung zwischen 99E und 1300E. Es gibt aber eine freie Demoversion (ohne garbage collection) und einen Testserver zum Online-Rechnen mit Reduce. Literatur: Anthony C. Hearn: Reduce User’s and Contributed Packages Manual, Version 3.7 , February 1999. Lieferbar vom Konrad-ZuseZentrum, Berlin. Eine ausf¨ uhrliche Buchliste zu Reduce findet sich unter http://www.zib.de/Symbolik/reduce/Overview/books.html. Beschreibung: Ein Macsyma-¨ ahnliches Paket (etwas kleiner); sehr ausgereift und umfassend mit eigener Sprache. In einem Algol-¨ ahnlichen Lisp-Dialekt namens RLisp geschrieben. Dadurch leichter zu portieren als Macsyma. Sehr offenes System, alle Quellen werden mitgeliefert. Große Share-Libraries (E-Mail: [email protected]). Sehr verbreitet an Universit¨aten und Forschungseinrichtungen. Von Hans-Gert Gr¨ abe von der Universit¨ at Leipzig gibt es z.B. ein Zusatzpaket namens Cali zur konstruktiven kommutativen Algebra.

2. Spezialisierte Programme Zu den spezialisierten Programmen werden im Folgenden nur einige Kurzinfos gegeben. Gap Spezialgebiet: Gap (=Groups, Algorithms and Programming) ist ein System f¨ ur diskrete Algebra mit dem gr¨ oßten Schwerpunkt auf Gruppentheorie. Herkunft: Die Entwicklung von Gap begann 1986 unter Prof. Neub¨ user an der RWTH Aachen. Seit seiner Emeritierung im Jahr 1997 wird die Gap-Entwicklung von der School of Computer Science an der University of St Andrews in Schottland koordiniert. Kommentar: Gap steht (mit einem Manual von ca. 800 Seiten als LaTeXfile) kostenlos mit allen Quellen zur Verf¨ ugung, s. http://www.gapsystem.org/. Aufbau (kleiner C-Kern und der Rest in der eigenen Sprache geschrieben) wie bei Maple. Auch das Interface erinnert sehr an die Text-Version von Maple.

336

A Anhang CA-Systeme

L¨auft auf so ziemlich jeder Unix-Version, Macintosh und Windows-PCs. Gap enth¨alt eine große Bibliothek mit gruppentheoretischen Daten, Charaktertafeln, den kompletten Cambridge Atlas endlicher Gruppen etc. Der Gap-Server enth¨ alt eine beeindruckende Liste von Ver¨ offentlichungen, die mit Unterst¨ utzung des Programms entstanden sind, bzw. erst durch Gap m¨ oglich waren. CoCoA Spezialgebiet:: Kommutative Algebra, Polynomringe, Gr¨ obnerbasen etc. Herkunft: A. Capani, G. Niesi, L. Robbiano (Universit` a degli studi di Genova) und viele andere ab 1987, Homepage: http://cocoa.dima.unige.it/. Siehe auch [KRo]. Kommentar: Das in C geschriebene Programmpaket ist f¨ ur Forschung und Lehre frei verf¨ ugbar und l¨ auft auf den u ¨blichen Unix-Plattformen, unter Linux (PC und Macintosh PPC), Mac OS X und DOS oder Windows. Je nach Betriebssystem gibt es eine Kommandozeilen-basierte Version, eine graphische Oberfl¨ ache oder auch eine Emacs-Schnittstelle. CoCoA umfasst eine Pascal-¨ ahnliche Programmiersprache namens CoCoAL, mit der man auch die eingebetteten Bibliotheken anpassen und erweitern kann. Die meisten Skripten des alten Macaulay-Systems wurden in CoCoAL u ¨bersetzt. Felix Spezialgebiet: Kommutative Polynomringe, nicht kommutative Algebren und Module u ¨ber diesen. Herkunft: J. Apel und U. Klaus von der Fakult¨ at f¨ ur Mathematik und Informatik der Universit¨ at Leipzig, s. http://felix.hgb-leipzig.de/. Kommentar: Berechnungen in kommutativen und nicht-kommutativen Ringen und Modulen. Verallgemeinerung von Buchbergers Algorithmus auf nichtkommutative Ringe, freie k-Algebren und Algebren vom aufl¨osbaren Typ. Eigene Sprache (interpretiert oder kompiliert). Felix f¨ ur Windows, BSD, Linux oder Solaris kann frei heruntergeladen werden. Es besteht jeweils aus einem maschinenabh¨ angigen Assemblerteil und der darauf aufsetzenden eigenen Felix-Sprache. Kant Spezialgebiet: Kant ist ein m¨ achtiges Werkzeug f¨ ur algebraische Zahlentheorie. Herkunft: Gruppe um M. Pohst, Technische Universit¨ at Berlin (davor Heinrich-Heine-Universit¨ at D¨ usseldorf), Homepage http://www.math.tuberlin.de/˜kant/kash.html Kommentar: Ab 1987 urspr¨ unglich in Fortran entwickelt. Baute auf dem (damals noch Public Domain) Paket Magma auf. Ab 1991 neu in C geschrieben, nach wie vor in enger Kooperation mit der Magma-Gruppe.

2. Spezialisierte Programme

337

F¨ ur nichtkommerzielle Zwecke frei erh¨ altlich f¨ ur Windows und g¨ angige Unixe. F¨ ur diejenigen, die nicht in C programmieren wollen, gibt es eine spezielle Shell namens Kash (basierend auf Gap). Pascal-¨ ahnliche Programmiersprache, erweiterbare Bibliothek, TEX-basiertes Hilfesystem. LiDIA Spezialgebiet: Zahlentheorie Herkunft: Abteilung Theoretische Informatik, Kryptographie und Computeralgebra der Technischen Universit¨ at Darmstadt. Homepage: http://www.informatik.tu-darmstadt.de/TI/LiDIA/. Kommentar: LiDIA ist eine C++ Bibliothek f¨ ur Zahlentheorie mit Schnittstellen zur Arithmetik von Cln (http://www.ginac.de/CLN/), Gmp (http://www.swox.com/gmp/), libI (http://math.arizona.edu/ ˜aprl/math/comp/bigint/), Piologie (http://www.hipilib.de/ piologie.htm). Die St¨ arken von LiDIA liegen z.B. in der ganzzahligen Faktorisierung, der Reduktion ganzzahliger Gitter, linearer Algebra u ¨ber Z und dem Rechnen in Zahlk¨orpern. LiDIA kann f¨ur nichtkommerzielle Zwecke frei verwendet werden. Macaulay 2 Spezialgebiet: Algebraische Geometrie und kommutative Algebra. Herkunft: Das erste Macaulay ab 1977 von D. Bayer (Columbia Univ.) und M. Stillman (Cornell Univ.). Dann v¨ollig neu geschrieben als Macaulay 2 von M. Stillman und D. Grayson (Univ. of Illinois). Homepage: http://www.math.uiuc.edu/Macaulay2/. Kommentar: Der Macaulay 2-C-Kern bietet schnelle Polynom- und Matrixarithmetik, Gr¨ obnerbasen, Syzygien und Hilbert Funktionen. Auf dem Server gibt es (unter der GPL) den Quellcode und bin¨ are Versionen f¨ ur Linux, SunOS, Solaris, Windows und andere Unix-Versionen. Macaulay 2 baut u.a. auf Bibliotheken von Singular und Gmp auf. Mehr zu den mathematischen F¨ ahigkeiten liest man entweder in der OnlineDokumentation nach oder in [EGSS]. Simath Spezialgebiet: Algebraische Zahlentheorie. Herkunft: Anfangs Arbeitsgruppe von G. Zimmer an der Universit¨ at des Saarlandes. Seit 2002 pflegt die Gruppe von K. Nakamula von der Tokyo Metropolitan University das Programm. Homepage: http://simath.info/ ( Si“ im Namen von der langj¨ ahrigen Siemens-Unterst¨ utzung). ” Kommentar: Offenes, in C geschriebenes System mit vielen m¨ achtigen Kommandos zum Umgang mit Zahlk¨ orpern, elliptischen Kurven etc. Interaktiver Rechner Simcalc. L¨ auft unter verschiedenen Unix-Varianten (Solaris, HP-UX, IRIX, Linux, etc.)

338

A Anhang CA-Systeme

Singular Spezialgebiet: Kommutative Algebra, algebraische Geometrie und Singularit¨aten-Theorie. Herkunft: G.M. Greuel, G.Pfister, H. Sch¨ onemann vom Fachbereich Mathematik der Universit¨ at Kaiserslautern (seit 1984). Homepage: http://www.singular.uni-kl.de/. Kommentar: Singular arbeitet haupts¨ achlich mit Polynomen, Idealen und Modulen u ¨ber verschiedenen Ringen. Sehr allgemeine Implementation von Gr¨obner-Basen, Faktorisierung multivariater Polynome, Resultanten etc. Interaktive Shell zur einfachen Verwendung, eigene C-¨ ahnliche Sprache, aber auch Erweiterungsm¨ oglichkeit der Bibliotheken mit C oder C++. Freie Software unter der GPL. Neben dem Quellcode gibt es Bin¨arversionen f¨ ur Windows, verschiedene Unix-Varianten (Linux auf PCs und DEC-Alpha, HP-UX, Solaris, IRIX, AIX, OSF, FreeBSD und MacOS X). Singular kann außer mit sich selbst auch mit Mathematica und MuPAD kommunizieren. Speziell zur Langzahlarithmetik gibt es eine F¨ ulle von Bibliotheken, die angeboten werden. Ein nicht mehr ganz neuer (1994), von M. Riordan zusam¨ mengestellter Uberblick dazu (mit Kommentaren und Quellen oder Bezugsadressen, oft mit den damaligen Quellen im gleichen Verzeichnis), findet sich unter ftp://nic.funet.fi/pub/sci/math/multiplePrecision/BIGNUMS.TXT. Außer den bereits oben bei den einzelnen Beschreibungen erw¨ ahnten Paketen sind dort Mp, Arithmetic in Global Fields, die Arbitrary Precision Math Library, BigNum, zwei namenlose Pakete von Lenstra, Bmp, Spx, Amp, Gennum, Miracl, Ubasic, LongInt und Elliptic Curve Primality Proving aufgef¨ uhrt. Von diesen Paketen hat sich das schon seit 1991 unter der GNU Lesser ” General Public License“ (kurz GPL) ver¨ offentlichte Gmp (=GNU Multiple Precision) immer mehr zum anerkannten Standard entwickelt und ur die inwird jetzt von anderen (teilweise auch kommerziellen) Systemen f¨ terne Langzahlarithmetik verwendet (z.B. Maple, Pari, LiDIA, Kaffee, siehe die Projekt-Homepage unter http://swox.com/gmp/). Trotz der vielen großen, und schon lange eingef¨ uhrten ComputeralgebraSysteme, trauen sich auch Neuentwicklungen auf den Markt, so etwa Yacas (=yet another computer algebra system, s. http://yacas.sourceforge.net/). Yacas wird von einer Gruppe Interessierter entwickelt und unter der GPL mit allen Quellen angeboten. Nachdem die meisten anderen universellen Programme kommerzieller Natur sind, ist dies nat¨ urlich f¨ ur Einsteiger besonders interessant, auch wenn das Programm (noch?) nicht den großen Funktionsumfang dieser Pakete beinhaltet. Auch Yacas besteht aus einem kleinen C-Kern (mit Gmp als Rechenmaschine f¨ ur die Langzahlarithmetik) und einer eigenen Sprache, in der der Rest des Systems geschrieben ist.

2. Spezialisierte Programme

339

In diesem Zusammenhang sei auch TeXmacs (http://www.texmacs.org/) genannt. GNU TeXmacs ist ein freier wissenschaftlicher wysiwyg-Texteditor (what-you-see-is-what-you-get), der auf der mathematischen Textverarbeitung TEX aufsetzt und dabei viele M¨ oglichkeiten des Editors Emacs bietet. TeXmacs besitzt Plugins f¨ ur viele der genannten ComputeralgebraSysteme (momentan Axiom, Macaulay 2, Maxima, Pari und Yacas), so dass man Ausgaben dieser Programme direkt in seine Textdokumente u ¨bernehmen und ansprechend setzen kann. TeXmacs-Konverter existieren f¨ ur TEX und LATEX, Konverter f¨ ur Html und MathML sind in der Entwicklung.

B Anhang Beispielsitzungen

1. Maple Die folgende Beispielsitzung zeigt einige wenige M¨ oglichkeiten des sehr umfangreichen Computeralgebra-Systems Maple Bei den meisten verwendeten Befehlen d¨ urfte sp¨ atestens nach Vergleich mit der Ausgabe klar sein, was sie tun. In anderen Computeralgebra-Sprachen gibt es viele dieser Befehle nat¨ urlich auch und in teilweise fast der gleichen Syntax. Wer Genaueres zu Maple wissen m¨ ochte, sollte sich eines der vielen B¨ ucher zu diesem leistungsf¨ ahigen Programm besorgen, auch wenn die, wie so oft bei Software, etwas den aktuellen Versionen hinterherhinken. Die neuesten B¨ ucher u ¨ber Maple beschreiben Maple 7, viele andere sogar Maple V obwohl es seit Anfang 2003 bereits Maple 9 gibt. Trotzdem sind diese B¨ ucher sicher wertvoll und f¨ ur den Einstieg in dieses große Programmpaket geeignet. Die Unterschiede zwischen den verschiedenen Releases fallen dem Anf¨ anger sowieso oft gar nicht auf. Die folgende Liste zeigt eine Auswahl der aktuellsten Handb¨ ucher: — Robert M. Corless: Essential Maple 7 [Cor] — Alexander Walz: Maple 7 - Rechnen und Programmieren [Wal] — Andr´e Heck: Introduction to Maple [Hec] Nachdem Maple u uhrliche Online-Hilfe verf¨ ugt, kann man ¨ber eine ausf¨ auch ohne eines dieser B¨ ucher recht gut zurechtkommen. Mit dem Befehl ?? (= Gib mir Hilfe zur Online-Hilfe) kann man sich N¨ aheres erkl¨ aren lassen. Jeder eingegebene Befehl wird bei Maple sofort interpretiert und ausgef¨ uhrt. Jeder Befehl muss mit einem Semikolon oder einem Doppelpunkt abgeschlossen werden. Beim Semikolon wird das Ergebnis angezeigt, beim Doppelpunkt wird die Anzeige unterdr¨ uckt. Meist wird man Maple u ache (Motif ¨ber seine graphische Benutzeroberfl¨ bei Unix, MS Windows oder Macintosh-Oberfl¨ ache) verwenden. Hier kann man interaktiv sogenannte Worksheets erstellen und speichern.

342

B Anhang Beispielsitzungen

Die gespeicherten Worksheets tragen u ¨blicherweise die Endung ‘.mws’, sind reine Textdateien und zwischen den verschiedenen Plattformen, auf denen Maple verf¨ ugbar ist, frei austauschbar. Das gezeigte Beispiel zeigt solch ein Worksheet. Zum Ausf¨ uhren des Worksheets l¨ adt man es mit u u File ¨ber das Men¨ und den dort enthaltenen Open-Befehl in die Benutzeroberfl¨ ache und kann dann Zeile f¨ ur Zeile durch Dr¨ ucken von Return die einzelnen enthaltenen Befehle ausf¨ uhren, oder das ganze Worksheet mit dem Befehl Execute Worksheet aus dem Edit-Men¨ u wie ein Programm ablaufen lassen. Der restart-Befehl am Anfang bewirkt, dass Maple seinen internen Speicher wieder freigibt und alle Variablen, Prozeduren etc., die vielleicht von einem anderen Worksheet oder einem fr¨ uheren Lauf des gleichen Worksheets hinterlassen wurden, zur¨ ucksetzt. Zuweisungen geschehen mit :=, mit % bezieht man sich auf das letzte berechnete Ergebnis, spart sich also dieses nochmals abzutippen. Entsprechend greift man mit %% bzw. %%% auf den vor- und vorvorletzten Ausdruck zur¨ uck. Maple verf¨ ugt u ¨ber eine solide Grundausstattung an Befehlen, hat aber nicht gleich f¨ ur alle Spezialit¨ aten Befehle parat. M¨ ochte man etwa mit Permutationsgruppen arbeiten, so muss man erst das Paket groups mit dem Befehl with(groups) nachladen. Auf einem 1GHz Pentium-PC unter Linux ben¨ otigt Maple f¨ ur das gezeigt 22-seitige Beispiel etwas mehr als 4 Sekunden CPU-Zeit!

1. Maple

343

344

B Anhang Beispielsitzungen

1. Maple

345

346

B Anhang Beispielsitzungen

1. Maple

347

348

B Anhang Beispielsitzungen

1. Maple

349

350

B Anhang Beispielsitzungen

1. Maple

351

352

B Anhang Beispielsitzungen

1. Maple

353

354

B Anhang Beispielsitzungen

1. Maple

355

356

B Anhang Beispielsitzungen

1. Maple

357

358

B Anhang Beispielsitzungen

1. Maple

359

360

B Anhang Beispielsitzungen

1. Maple

361

362

B Anhang Beispielsitzungen

1. Maple

363

Neben dem u ¨blichen Benutzerinterface bietet Maple u ¨ber so genannte Maplets auch die M¨ oglichkeit, f¨ ur Nicht-Programmierer geeignete visuelle Interfaces zu programmieren. Hier ein Beispiel aus dem Student Package.

364

B Anhang Beispielsitzungen

2. Mathematica Ein anderes Computeralgebrapaket ist Mathematica (f¨ ur eine genauere Beschreibung und Bezugsquellen siehe Anhang A). Neben den m¨ achtigen mathematischen Funktionen stehen hier ¨ ahnlich wie in LATEX verschiedene Styles zur Verf¨ ugung, die es einem erlauben Ein- und Ausgaben ansprechend zu formatieren und so ganze Artikel mit der eingebauten Computeralgebra zu schreiben. Ein typisches Mathematica-Notebook (mit einem mathematisch interessanten Beispiel) sieht etwa wie folgt aus:

3. Gap

365

3. Gap Ein haupts¨achlich auf Gruppentheorie spezialisiertes Computeralgebra-Programm ist z.B. Gap (f¨ ur eine genauere Beschreibung und Bezugsquellen siehe Anhang A). In Gap kann man zus¨ atzlich zu den Grundoperationen mit endlichen K¨orpern oder Permutationsgruppen, die ja wie gezeigt teilweise auch in Maple angeboten werden, etwa auch mit Homomorphismen verschiedener Strukturen arbeiten. Die Syntax ist der von Maple sehr ¨ahnlich. Das Eingabeprompt ist gap>, der Rest ist Ausgabe.

366

B Anhang Beispielsitzungen

gap> g := Group((1,2,3,4), (2,4), (5,6,7));; g.name:="g";; gap> p4 := MappingByFunction( g, g, x -> x^4 ); MappingByFunction( g, g, function ( x ) return x ^ 4; end ) gap> IsHomomorphism( p4 ); true gap> p6 := MappingByFunction( g, g, x -> x^6 ); MappingByFunction( g, g, function ( x ) return x ^ 6; end ) gap> IsHomomorphism( p6 ); false Da Gap sehr offen gehalten ist, gibt es auch einige von Anwendern geschriebene Zus¨atze, so etwa das Paket Guava zur algebraischen Codierungstheorie, das haupts¨achlich an der TU Delft entwickelt wurde. Zwei Beispiele mit Guava vermitteln einen Einblick in diese Paket. gap> B := BinaryGolayCode(); A perfect cyclic [23,12,7] code over GF(2) gap> c := CodewordNr(B, 4); x^22 + x^20 + x^17 + x^14 + x^13 + x^12 + x^11 + x^10 gap> TreatAsVector(c); gap> c; [ 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 1 0 0 1 0 1 ] gap> R := ReedMullerCode( 3, 1 ); a linear [8,4,4] Reed-Muller (3,1) code over GF(2) gap> w := [ 1, 1, 1, 1 ] * R; [ 1 0 0 1 0 1 1 0 ] gap> Decode( R, w ); [ 1 1 1 1 ] gap> Decode( R, w + "10000000" ); # Error in first position [ 1 1 1 1 ] # Corrected by Guava

Bibliographie

1. Bu ¨ cher und Zeitschriften Die hier verwendeten Abk¨ urzungen, wie etwa EUROSAM-84“, stehen f¨ ur Prodee” dingsb¨ ande von Konferenzen und werden in Abschnitt 2 dieser Bibliographie genauer erl¨ autert. [ABV] [AGL]

[AHU]

[Aig] [ALo] [ASt] [Akr] [And] [AVL] [Bac] [BaCL] [Bch] [BCL]

[BCM]

Ash, D.W.; Blake, I.F.; Vanstone, S.A.: Low complexity normal bases. Discrete Applied Mathematics 25, Nr. 3, 1989, 191-210. Atkins, D.; Graff, M.; Lenstra, A. K.; Leyland, P. C.: The magic words are squeamish ossifrage. Advances in cryptology - ASIACRYPT ’94. 4th international conference on the theory and applications of cryptology, Wollongong, Australia, 28. Nov.-1. Dez. 1994, Proceedings. Berlin: SpringerVerlag. Lect. Notes Comput. Sci. 917, 1995, 263-277. [Herausgeber: Pieprzyk, J.; ISBN 3-540-59339-X; ISSN 0302-9743] Aho, A.V.; Hopcroft, J.E.; Ullman, J.D.: The design and analysis of computer algorithms. Addison-Wesley, 1974. [Addison-Wesley Series in Computer Science and Information Processing, Zentralblatt 0326.68005] Aigner, M.: Diskrete Mathematik. Vieweg Studium, Aufbaukurs Mathematik, 1993. [ISBN 3-528-07268-7] Adams, W.W.; Loustaunau, P.: An Introduction to Gr¨ obner Bases. Graduate Studies in Mathematics, AMS 3, 1994. [ISBN 0-8218-3804-0] Abramowitz, W.; Stegun, I.A.: Handbook of Mathematical Functions. Dover Publ. Inc. (New York), 1968. Akritas, A.G.: Elements of computer algebra with applications. John Wiley & Sons, Inc. (New York), 1989. Anderson, W.M.: A Survey of Polynomial Factorisation Algorithms. M. Phil. Thesis, Univ. of Edinburgh, CST-73-91, 1991. Adelson-Velskii, G.M.; Landis, E.M.: . Doklady Nauk SSSR 146, 1962, ¨ 263-266. [Englische Ubersetzung in Soviet Math 3, S. 1259-1263] Bach, E.: Toward a Theory of Pollard’s Rho Method. Information and Computation 90, 1991, 139-155. Barth´ elemy, J.-P., Cohen, G., Lobstein, A.: Algorithmic Complexity. University College London Press Limited, 1996. [ISBN 1-85728-451-8] Bachmann, P.: Die analytische Zahlentheorie. Teubner, Bibliotheca mathematica Teubneriana, 1894. Buchberger, B.; Collins, G.E.; Loos, R. (Herausgeber): Computer Algebra, Symbolic and Algebraic Computation. Computing Supplementum 4, Springer (Wien, New York), 1982. [Inzwischen ist eine 2. Auflage erschienen (wieder beim Springer-Verlag, allerdings nicht mehr in der Reihe Computing Supplementum)] Bosma, W.; Cannon, J.; Matthews, G.: Programming with algebraic structures: Design of the Magma language. ISSAC-94, 1994, 52-57.

368

[BCP]

[Be1] [Be2] [Ber] [Bre] [Brn] [Br1] [Br2] [BTr] [BPo] [Buc]

[Bue] [BWe]

[CAk] [Cas]

[Cav] [CCa]

[CEP] [CFa] [CL1] [CL2] [CLO] [CMu] [Coh]

[Cor]

Bibliographie

Bosma, W.; Cannon, J.; Playoust, C.: The Magma algebra system. I: The user language. J. Symb. Comput. 24, No.3-4, 1997, 235-265. [ISSN 0747-7171] Berlekamp, E.R.: Factoring Polynomials over Finite Fields. Bell System Tech. J. 46, 1967, 1853-1859. Berlekamp, E.R.: Factoring Polynomials over Large Finite Fields. Math. Comput. 24, 1970, 713-735. [ISSN 0025-5718] Bernstein, D.: Proving Primality after Agrawal-Kayal-Saxena. Online unter http://cr.yp.to/papers/aks.pdf, 2003, 15 S.. Bressoud, D.M.: Factorization and Primality Testing. Springer (New York), 1989. Brent, R.P.: An Improved Monte Carlo Factorization Algorithm. Nordisk Tidskrift for Informationsbehangling (BIT) Vol. 20, 1980, 176-184. Bronstein, M.: The Transcendental Risch Differential Equation. J. Symb. Comput. 9, 1990, 49-60. Bronstein, M.: Integration of Elementary Functions. J. Symb. Comput. 9, 1990, 117-173. Brown, W.S.; Traub, J.F.: On Euclid’s algorithm and the theory of subresultants. J. ACM, 18, 4, 1971. 505-514 Brent, R.P.; Pollard, J.M.: Factorization of the eighth Fermat Number. Math. Comput. Vol. 36, 1981, 627-630. Buchberger, B.: Ein Algorithmus zum Auffinden der Basiselemente des Restklassenringes nach einem nulldimensionalen Polynomideal. Promotionsschrift, Univ. Innsbruck, 1965. Buell, D.A.: Binary Quadratic Forms. Classical Theory and Modern Computations. Springer (New York), 1989. Becker, Th.; Weispfenning, V.: Gr¨ obner Bases. A Computational Approach to Commutative Algebra. Graduate Texts in Mathematics 141, Springer (New York, Berlin . . . ), 1993. [In Kooperation mit H. Kredel] Collins, G.E.; Akritas, A.G.: Polynomial real root isolation using Descartes’ rule of signs. SYMSAC-76, 1976, 272-275. Cassels, J.W.S.: An Introduction to the Geometry of Numbers. Die Grundlehren der Mathematischen Wissenschaften, Band 99, Springer (Berlin, G¨ ottingen, Heidelberg), 1959. Caviness, B.F.: On canonical forms and simplification. J. Assoc. Comput. Mach. 17, 1970, 385-396. Cherry, G.W.; Caviness, B. F.: Integration in Finite Terms with Special Functions: A Progress Report. Lect. Notes Comput. Sci. 174, 1984, 351-358. os, P.; Pomerance C.: On a problem of Oppenheim Canfield, E.R., Erd¨ concerning ‘Factorisatio Numerorum’. J. Number Theory 17, 1983, 1-28. Caviness, V.S.; Fateman, R.J.: Simplification of Radical Expressions. SYMSAC-76, 1976, 329-338. Collins, G.E.; Loos, R.: Polynomial real root isolation by differentiation. SYMSAC-76, 1976, 15-25. Collins, G.E.; Loos, R.: ALDES/SAC-2 now available. SIGSAM Bulletin, 1982. Cox, D.; Little, J.; O’Shea, D.: Ideals, Varieties and Algorithms. Springer (New York, Berlin . . . ), 1992. Collins, G.E.; Musser, D.R.: Analysis of the Pope-Stein Division Algorithm. Inf. Process. Lett. 6, 1977, 151-155. Cohen, H.: A Course in Computational Algebraic Number Theory. Springer (Berlin, Heidelberg, New York), 1997. [ISBN 3-540-55640-0 und 0-38755640-0] Corless, R.: Essential Maple 7. Springer-Verlag New York, 2002. [ISBN: 0-387-95352-3]

1. B¨ ucher und Zeitschriften

[CoW]

[Co1] [Co2] [CPl]

[CPB]

[CZa] [Da1] [Da2] [Da3] [DHR] [DTr] [DST]

[ELo] [EGSS]

[FGP]

[FWH]

[vGG] [Gau] [GCL] [GGr]

[GHLV]

[GKW]

[Gly]

369

Coppersmith, D.; Winograd, S.: Matrix multiplication via arithmetic progressions. J. Symb. Comput. 9, 3, 1990, 251-280. [ISSN 0747-7171, Zentralblatt 0702.65046] Collins, G.E.: Subresultants and reduced polynomial remainder sequences. J. ACM 14, 1, 1967, 128-142. Collins, G.E.: The Calculation of Multivariate Polynomial Resultants. J. ACM 18, 4, 1971, 515-532. Cannon, J.; Playoust, C.: Algebraic Programming with Magma I: An Introduction to the Magma Language. Springer (Berlin, Heidelberg, New York), 1997. [ISBN 3-540-62746-4] Cannon, J.; Playoust, C.; Wieb, B.: Algebraic Programming with Magma II: An Introduction to the Magma Categories. Springer (Berlin, Heidelberg, New York), 1997. [ISBN 3-540-62747-2] Cantor, D.G.; Zassenhaus, H.: A new Algorithm for Factoring Polynomials over a Finite Field. Math. Comp. 36, 1981, 587-592. Davenport, J.H.: The Parallel Risch Algorithm (I). EUROCAM-82, 1982, 144-157. Davenport, J.H.: y  + f y = g . EUROSAM-84, 1984, 341-350. Davenport, J.H.: The Risch Differential Equation Problem. SIAM J. Comput. 15, 1986, 903-918. Deprit, A.; Henrard, J.; Rom, A.: Lunar Ephemeris: Delaunay’s Theory Revisited. Science 168, 1970, 1569-1570. Davenport, J.H., Trager, B.M.: The Parallel Risch Algorithm (II). ACM Trans. Math. Software 11, 1985, 356-362. Davenport, J.H.; Siret, Y.; Tournier, E.: Computer Algebra. Academic Press (London . . . ), 1988. [Franz¨ osisches Original: Calcul Formel, syst`emes et algorithmes de manipulation alg´ebriques, Masson (Paris).] Ellis, W. Jr.; Lodi, E.: A Tutorial Introduction to Derive. Brooks, Cole, Pacific Grove (USA), 1991. [94 Seiten, ISBN 0-534-15522-7] Eisenbud, D.; Grayson, D.; Stillman, M.; Sturmfels, B.: Computations in algebraic geometry with Macaulay 2. Springer-Verlag, 2001. [Nummer 8 in der Serie Algorithms and Computations in Mathematics“, ISBN 3-540” 42230-7] Flajolet, Ph.; Gourdon, X.; Panario, D.: The Complete Analysis of a Polynomial Factorization Algorithm over Finite Fields. J. Algorithms 40, No. 1, 2001, 37-81. [ISSN 0196-6774] Fuchssteiner, B; Wiwianka, W.; Hering, K. (Redaktion): . mathPAD journal Vol. 1, Heft 3, 1991. [Online verf¨ ugbar: ftp://ftp.mupad.de/MuPAD/mathpad/mathPAD] von zur Gathen, J.; Gerhard, J.: Modern Computer Algebra. Cambridge University Press (Cambridge), 2003. [2. Auflage, ISBN 0-521-82646-2] Disquisitiones Aritmeticae: Neuauflage bei Yale University Press (New Haven). 1966, . Geddes, K.O.; Czapor, S.R.; Labahn, G.: Algorithms for Computer Algebra. Kluwer (Boston, Dordrecht, London), 1992. Gonnet, G.H.; Gruntz, D.W.: Algebraic Manipulation: Systems. Technical Report 153, ETH Z¨ urich, Institute of Scientific Comp., 1991. [http://www.inf.ethz.ch/research/wr/publications/tr.html] Geddes, K.O.; Heal, K.M.; Labahn, G.; Vorkoetter, S.M.; Monagan M.B. (Editor): Maple V Programming Guide (Version A): Release 5. Springer Verlag, 1998. [2. Auflage, 379 Seiten, ISBN 0-387-98398-8] Grabmeier, J.; Kaltofen, E.; Weispfennig, V.: Computer Algebra Handbook, Foundations, Applications, Systems. Springer, Berlin, 2003. [637 Seiten, mit CD-Rom, ISBN 3-540-65466-6] Glynn, J.: Mathematik entdecken mit DERIVE - von der Algebra bis zur Differentialrechnung. Birkh¨ auser (Basel), 1995. [ISBN 3-7643-5001-6, u ¨bersetzt von Daniela Treichel]

370

[Gon]

[Gua] [Hec] [Hen] [HHR]

[Hor] [HQ]

[HSA]

[HWH] [HWr] [Je1] [Je2]

[Jun]

[Jor]

[Kah] [Kal] [Kap] [KBe] [KBK]

[Kl1] [Kl2] [KLL]

[Kne] [Kn1]

Bibliographie Gonzalo, T.: Square Roots Modulo p . Proceedings der LATIN 2002: Theoretical Informatics : 5th Latin American Symposium, Cancun, Mexico, April 3-6, Lecture Notes in Computer Science (LNCS), Springer-Verlag Heidelberg 2286, 2002. [Herausgeber: Rajsbaum, S., ISSN: 0302-9743] Guan, D. J.: Experience in Factoring Large Integers Using Quadratic Sieve. , 2003. [Online Folien http://guan.cse.nsysu.edu.tw/] Heck, A.: Introduction to Maple. Springer-Verlag, New York, 2003. [3. Auflage, ISBN 0-387-00230-8] Hensel, K.: Theorie der Algebraischen Zahlen. Teubner (Leipzig), 1908. Heal, K.M.; Hansen, M.L.; Rickard, K.M.: Maple V Learning Guide (Version A): Release 5. Springer Verlag, 1998. [2. Auflage, 296 Seiten, ISBN 0-387-98397-X] Horowitz, E.: A sorting algorithm for polynomial multiplication. J. Assoc. Comput. Machin. 22, 1975, 450-462. Heise, W.; Quattrocchi, P.: Informations- und Codierungstheorie. SpringerVerlag (Berlin, Heidelberg, New York, 1995. [ISBN 3-540-57477-8; Dritte, neubearbeitete Auflage] Horowitz, E.; Sahni, S.; Anderson-Freed, S.: Grundlagen von Datenstrukturen in C. International Thomson Publishing (Bonn, Albany, . . . ), 1994. [ISBN 3-929821-00-1] Harper, D.; Wooff, C.; Hodgkinson, D.: A Guide to computer algebra systems. John Wiley & Sons (Chichester), 1991. Hardy, G.H.; Wright, E.M.: Einf¨ uhrung in die Zahlentheorie. Oldenbourg ¨ Verlag, M¨ unchen, 1985. Ubersetzung der 3. Auflage Jebelean, T.: Practical Integer Division with Karatsuba Complexity. ISSAC-97, 1997, 339-341. [ISBN 0-89791-875-4] Jebelean, T.: A Double-Digit Lehmer-Euclid Algorithm for Finding the GCD of Long Integers. J. Symb. Comp. Vol. 19, 1997, 145-157. [ISSN: 0747-7171] Jungnickel, D.: Finite Fields – Structure and Arithmetics. B.I.-Wissenschaftsverlag (Mannheim), 1993. [Zentralblatt 0779.11058, ISBN 3-41116111-6] Jordan, C.: Calculus of finite differences. Chelsea Publishing Company (New York), 1965. [ISBN 0-828-40033-4, Zentralblatt 0154.33901, 3. Auflage] Kahrimanian, H.: Analytic differentiation by a digital computer. MA Thesis, Temple University, Philadelphia, 1953. Kaltofen, E.: A Note on the Risch Differential Equation. Lect. Notes Comput. Sci. 174, 1984, 359-366. Kapur, D.: Geometry Theorem Proving Using Hilbert’s Nullstellensatz. SYMSAC-86, 1986, 202-208. Knuth, D.E., Bendix, P.B.: Simple Word Problems in Universal Algebras. OXFORD-67, 1967, 263-298. Kofler, M.; Bitsch, G.; Komma, M.: Maple: Einf¨ uhrung, Anwendung, Referenz. Addison-Wesley, Scientific Computing, 2001. [4., u ¨berarbeitete Auflage, 557 Seiten plus CD-Rom, ISBN 3-8273-1732-0] Klip, D.A.: A comparative study of algorithms for sparse polynomial multiplication. SIGSAM Bull. 12, No. 3, 1978, 12-19. Klip, D.A.: New algorithms for polynomial multiplication. SIAM J. Comput. 8, , 1979. 326-343 Kannan, R.; Lenstra, A.K.; Lov´ asz, L.: Polynomial Factorization and Nonrandomness of Bits of Algebraic and some Transcendental Numbers. Math. Comput. 50, Nr. 181, 1988, 235-250. Kneser, M.: Lineare Abh¨ angigkeit von Wurzeln. Acta Arith. 26, 307-308, 1975. [ISSN 0065-1036, Zbl 0314.12001] Knuth, D.E.: The Art of Computer Programming - Volume 1: Fundamental Algorithms. Addison Wesley (Reading, Massachusetts . . . ), 1968.

1. B¨ ucher und Zeitschriften

[Kn2] [KOf]

[Kol] [KRo] [Kre] [KrJ] [Kro]

[KRSW]

[Lan] [LRi]

[Leh] [Le1] [Le2] [Le3]

[Le4] [Le5] [Le6] [Le7]

[Lo2] [LLL] [LMP]

[LNi] [LSc] [Loo]

371

Knuth, D.E.: The Art of Computer Programming - Volume 2: Seminumerical Algorithms. Addison Wesley (Reading, Massachusetts . . . ), 1969. Karatsuba, A.A.; Ofman, Y.: Multiplication of Multidigit Numbers on Automata. Soviet Physics-Doklady 7, 1963, 595-596. [Russisches Original in Dokl. Akad. Nauk SSSR 145, 1962, 293-294.] Kolchin, E.R.: Differential Algebra and Algebraic Groups. Pure and Applied Mathematics Vol. 54, 1973. Kreuzer, M.; Robbiano, L.: Computational Commutative Algebra I. Springer Verlag, 2000. [ISBN 3-540-67733-X] Kredel, H.: MAS Modula-2 Algebra System. DISCO-90, 1990, 270-271. Krandick, W.; Jebelean, T.: Bidirectional Exact Integer Division. J. Symb. Comput. 21, 1996, 441-455. [ISSN 0747-7171] Kronecker, L.: Vorlesungen u ¨ ber Zahlentheorie. Springer-Verlag (Berlin, Heidelberg, New York), 1978. [1. Bd.: 1. - 33. Vorlesung. Bearb. u. herausg. von Kurt Hensel. Reprint der Erstaufl. beim Teubner-Verlag, Leipzig, 1901] Klein, G.; Rott, M.; Sch¨ afler, S.; Wimmer, S.: Schnelle Algorithmen f¨ ur d¨ unnbesetzte Polynome. Technische Universit¨ at M¨ unchen; Fakult¨ at f¨ ur Mathematik; Interdisziplin¨ ares Projekt Informatik - Mathematik, 1997. [Die Dokumentation zu Spock gibt es im WWW unter http://www.ma.tum.de/˜kaplan/ca/spock/] Landau, S.: Factoring Polynomials over Algebraic Number Fields. SIAM J. Comput. 14, 1985, 184-195. Lazard, D.; Rioboo, R.: Integration of Rational Functions: Rational Computation of the Logarithmic Part. J. Symb. Comp. 9, Nr. 2, 1990, 113-115. Lehmer, D.H.: Euclid’s Algorithm for Large Numbers. Am. Math. Mon. 45, 1938, 227-233. [ISSN 0001-0782] Lenstra, A.K.: Lattices and Factorization of Polynomials over Algebraic Number Fields. EUROCAM-82, 1982, 32-39. Lenstra, A.K.: Factoring Polynomials over Algebraic Number Fields. EUROCAL-83, 1983, 245-254. Lenstra, A.K.: Factoring Multivariate Polynomials over Algebraic Number Fields. Proc. of the 11th Symp. on Mathematical foundations (Prag) of computer science in LNCS 176, 1984, 389-396. Lenstra, A.K.: Factoring Multivariate Polynomials over Algebraic Number Fields. SIAM J. Comput. 16, 1987, 591-598. Lenstra, H.W.: Algorithms for finite fields. London Mathematical Society Lecture Note Series 154, 1990, 76-85. Lenstra, H.W.: Factoring integers with elliptic curves. Annals of Mathematics Vol. 126, 1987, 649-673. Lenstra, A.K.: Factorization of polynomials. Computational methods in number theory, Part I, Math. Cent. Tracts Vol. 154/155, 1982, 169-198. [Mathematisch Centrum Amsterdam, Zentralblatt 0509.12002] Lorenz, F.: Lineare Algebra II. Wissenschaftsverlag (Mannheim, Wien, Z¨ urich), 1989. [2. Auflage] Lenstra, A.K.; Lenstra, H.W.; Lov´ asz, L.: Factoring Polynomials with Rational Coefficients. Math. Ann. 261, 1982, 515-534. Lenstra, A.K.; Lenstra, H.W.jun.; Manasse, M.S.; Pollard, J.M.: The factorization of the ninth Fermat number. Math. Comput. 61, No.203, 1993, 319-349. [ISSN 0025-5718, Zentralblatt 0792.11055] Lidl, R.; Niederreiter, H.: Introduction to finite fields and their applications. University Press (Cambridge), 1986. Lenstra, H.W.; Schoof, R.J.: Primitive normal bases for finite fields. Math. Comput. 48, 1987, 217-231. Loos, R.G.K.: The Algorithm Description Language ALDES. SIGSAM Bulletin 14, Number 1, 1976, 15-39.

372

Bibliographie

[Mat]

[MBr] [Men]

[Me1] [Me2] [Mi1] [Mi2] [Mi3] [Mo1] [Mo2] [Mo3] [MOm] [Mon] [Mor] [MOVW] [Mu1] [Mu2] [Nar] [Nol] [Nor] [NZe] [Par] [Pec] [Pin] [Po1] [Po2] [Po3]

Matiyasevich, Y.V.: Diophantine representation of recursively enumerable predicates. Actes Congr. internat. Math. 1, 1971, 235-238. [Je nach Transskription auch Matijasevic geschrieben] Morrison, M. A.; Brillhart M.: A Method of Factoring and the Factorization of F7 . Math. Comput. 29, 1975, 183-205. Menezes, A.J. (Editor); Blake, I.F.; Gao, X.; Mullin, R.C.; Vanstone, S.A.: Applications of finite fields. Kluwer Academic Publishers (Boston/USA), 1993. [ISBN 0-7923-9282-5] Meyberg, K.: Algebra, Teil 1. Carl Hanser (M¨ unchen, Wien), 1975. Meyberg, K.: Algebra, Teil 2. Carl Hanser (M¨ unchen, Wien), 1976. Mignotte, M.: An Inequality about Factors of Polynomials. Math. Comput. 28, 1974, 1152-1157. Mignotte, M.: Some Inequalities About Univariate Polynomials. SYMSAC-81, 1981, 195-199. Mignotte, M.: Mathematics for Computer Algebra. Springer (New York, Berlin . . . ), 1991. Moenck, R.T.: Studies in Fast Algebraic Algorithms. Ph.D. Thesis, Univ. of Toronto, 1973. Moenck, R.T.: Practical fast polynomial multiplication. SYMSAC-76, 1976, 136-148. Moenck, R.T.: On Computing Closed Forms for Summations. MACSYMA77, 1977, 225-236. Massey, J.; Omura, J.: Computational method and apparatus for finite field arithmetic. U.S.patent #4.587.627, 1986. Montgomery, P.L.: Speeding the Pollard and elliptic curve methods of factorization. Math. Comput. Vol. 48, 1987, 243-264. Mordell, L.J.: On the linear independence of algebraic numbers. Pac. J. Math. 3, 625-630, 1953. [ISSN 0030-8730, Zbl 0051.26801] Mullin, R.C.; Onyszchuk, J.M; Vanstone, S.A.; Wilson, R.M.: Optimal normal bases in GF (pn ) . Discrete Appl. Math. 22, No. 2, 1989, 149-161. Musser, D.R.: Multivariate polynomial factorization. J. ACM 22, 1975, 291-308. [ISSN 0004-5411] Musser, D.R.: On the efficiency of a polynomial irreducibility test. J. ACM 25, 1978, 271-282. Narkiewicz, W.: Elementary and Analytic Theory of Algebraic Numbers. Panstwowe Wydawnictwo Naukowe (Warschau), 1974. Nolan, J.: Analytic differentiation on a digital computer. Thesis, Massachusetts Institute of Technology (Cambridge, USA), 1953. Norman, A. C.: Integration in Finite Terms. Computing Suppl. 4, 1982, 57-69. Najid-Zejli, H.: Computation in Radical Extensions. EUROSAM-84, 1984, 115-122. Parberry, I.: Problems on Algorithms. Prentice-Hall, Inc., 1995. [ISBN 013-433558-9] Pecquet, L.: A first course in Magma. The computer algebra system. Springer-Verlag Berlin Heidelberg, 2001. [ISBN: 3-540-65885-8] Pinch, R.G.E.: Some Primality Testing Algorithms. Department of Pure Mathemetics and Mathematical Statistics, University of Cambridge, 1993. Pollard, J.M.: Theorems on Factorization and Primality Testing. Proc. Cambridge Philo. Soc. Vol. 76, 1974, 521-528. Pollard, J.M.: A Monte Carlo Method for Factorization. Nordisk Tidskrift for Informationsbehangling (BIT) Vol. 15, 1975, 331-334. Pomerance, C.: Analysis and Comparison of some Integer Factoring Algorithms. Computational Methods in Number Theory Part I, 1982, 89-139. in: Mathematical Centre Tract #154, Mathematisch Centrum, Amsterdam, Herausgeber: Lenstra, H.W.; Tijdeman, R.

1. B¨ ucher und Zeitschriften

[Po4] [Pri] [PSt] [Ran]

[Re1] [Ric] [Rie] [Ris] [Ri1] [Ri2] [Ri3] [Rob] [Ro1] [Ro2] [Ro3] [Ro4]

[RSA] [RSc] [Sch] [Sc¨ o] [ScS] [Scw] [Sca] [SFl] [Sha]

[Si1] [Si2]

373

Pomerance, C.: The Quadratic Sieve Factoring Algorithm. EUROCRYPT84, 1985, 169-182. Pritchard, P.: A Sublinear Additive Sieve for Finding Prime Numbers. Comm. ACM 24, 1981, 18-23. Pope, D.A.; Stein, M.L.: Multiple Precision Arithmetic. Commun. ACM 3, 1960, 652-654. Rand, R.H.: Computer Algebra in Applied Mathematics, An Introduction to Macsyma. Research Notes in Mathematics 94, 1984. Pitman (BostonLondon-Melbourne) Redfern, D.: Maple V Handbook - Release 4. Springer-Verlag, 1996. [3. Auflage, ISBN 0-387-94538-5] Richardson, D.: Some undecidable problems involving elementary functions of a real variable. J. Symb. Logic 33, 1968, 514-520. Riesel, H.: Prime Numbers and Computer Methods for Factorization. Birkh¨ auser (Boston), 1994. [zweite Auflage] Risch, R.H.: The Problem of Integration in Finite Terms. Trans. Am. Math. Soc. 139, 1969, 167-189. Risch, R.H.: The Problem of Integration in Finite Terms. Trans. Am. Math. Soc. 139, 1969, 167-189. Risch, R.H.: The Solution of the Problem of Integration in Finite Terms. Bull. Am. Math. Soc. 76, 1970, 605-608. Risch, R.H.: Algebraic Properties of the Elementary Functions of Analysis. Amer. Jour. of Math. 101, 1979, 743-759. Robbiano, L.: Term Orderings on the Polynomial Ring. EUROCAL-85, 1985, 513-517. Rosenlicht, M.: Liouville’s Theorem on Functions with Elementary Integrals. Pacific J. Math. 24, 1968, 153-161. Rosenlicht, M.: Integration in Finite Terms. Amer. Math. Monthly 79, 1972, 963-972. Rosenlicht, M.: On Liouville’s Theory of Elementary Functions. Pacific Journal of Mathematics Vol. 65, Nr. 2, 1976, 485-493. Rothstein, M.: Aspects of Symbolic Integration and Simplification of Exponential and Primitive Functions. Ph. D. Thesis, Univ. of Wisconsins, Madison, 1976. Rivest, R.L.; Shamir, A.; Adleman, L.: A method for obtaining digital signatures and public-key cryptosystems. Commun. ACM 21, 1978, 120-126. Rosser, J. Barkley; Schoenfeld, L.: Approximate Formulas for some Functions of Prime Numbers. Ill. J. Math. 6, 1962, 64-69. Schinzel, A.: On Linear Dependence of Roots. Acta arithmetica 28, 1975, 161-175. Sch¨ onhage, A.: The Fundamental Theorem of Algebra in Terms of Computational Complexity. Technical Report, Math. Inst. Univ. T¨ ubingen, 1982. Sch¨ onhage, A.; Strassen, V.: Schnelle Multiplikation großer Zahlen. Computing 7, 1971, 281-292. [ISSN 0010-485X] Schwardmann, U.: Computeralgebra-Systeme, Programme f¨ ur Mathematik mit dem Computer. Addison-Wesley, 1995. [ISBN 3-89319-682-X] Schwartz, D. I.: Introduction to Maple. Prentice Hall, 1999. [ISBN 0-13095133-1] Sedgewick, R., Flajolet, Ph.: Analysis of Algorithms. Addison-Wesley, 1996. [ISBN 0-201-40009-X] Shamir, A.: A Polynomial Time Algorithm for Breaking the MerkleHellman Cryptosystem. Proc. 23rd IEEE Symposium on the Foundations of Computer Science, 1982. Silverman, J.J.: The Arithmetic of Elliptic Curves. Graduate Texts in Math. 106, 1986. [Springer-Verlag] Silverman, R.: The Multiple Polynomial Quadratic Sieve Method of Computation. Math. Comput.Vol. 48, No. 177, 1987, 329-340.

374

[Si3] [Si4]

[Sie] [SSh]

[Str] [SSC]

[Til]

[Too]

[Tra] [Vi1] [Vi2] [Vi3]

[Wal] [Wa1] [Wa2] [Wes] [Wg1] [Wg2] [Wan] [WaR] [Wat] [Wei] [Wie] [Wir] [Wol]

[WRo]

Bibliographie

Simon, B.: Comparative CAS Reviews. Notices of the American Mathematical SocietyVolume 39, Number 7, September 1992, 700-710. Simon, B.: Symbolic Magic. The Desktop Engineering Magazine Volume 3, Issue 8, April 1998. [ISSN 1085-0422, http://www.deskeng.com/articles/98/April/symbolic/] Siegel, C.L.: Algebraische Abh¨ angigkeit von Wurzeln. Acta Arith. 21, 5964, 1972. [ISSN 0065-1036, Zbl 0254.10030] Stepanov, S.A.; Shparlinskij, I. .: On the construction of a primitive normal basis in a finite field. Mathematics of the USSR-Sbornik 67 Nr. 2, 1990, 527-533. Strassen, V.: Gaussian elimination is not optimal. Numer. Math. 13, 1969, 354-356. [ISSN 0029-599X, Zbl 0185.40101] Singer, M.F.; Saunders, B.D.; Caviness, B.F.: An Extension of Liouville’s Theorem of Integration in Finite Terms. SIAM J. Comput. 14, Nr. 4, 1985, 966-990. van Tilborg, H.C.A.: An Introduction to Cryptology. Kluwer International Series in Engineering and Computer Science, 52 (Kluwer Academic Publishers), 1988. [ISBN 0-89838-271-8] Toom, A.L.: The Complexity of a Scheme of Functional Elements Simulating the Multiplication of Integers. Dokl. Akad. Nauk SSSR 150, 1963, ¨ 496-498. [Englische Ubersetzung in: Soviet Mathematics 3, 1963.] Trager, B.: Integration of Algebraic Functions. Ph. D. Thesis, Dept. of EECS, M.I.T., 1984. Viry, G.: Factorisation des polynˆ omes ` a plusieurs variables ` a coefficients entiers. RAIRO, Inf. Theor. 12, 1978, 305-318. [ISSN 0296-1598] Viry, G.: Factorisation des polynomes ` a plusieurs variables. RAIRO, Inf. Theor. 14, 1980, 209-223. [ISSN 0296-1598] Viry, G.: Factorisation sur Z[X] des polynomes de degr´e elev´ e a l’aide d’un monomorphisme. RAIRO, Inform. Theor. Appl. 24, No.4, 1990, 387-407. [ISSN 0988-3754] Walz, A.: Maple 7 - Rechnen und Programmieren. R. Oldenbourg Verlag GmbH (M¨ unchen), 2002. [ISBN 3-486-25542-8] Waerden, B.L. van der: Algebra I. Springer (Berlin), 1993. [9. Auflage] Waerden, B.L. van der: Algebra II. Springer (Berlin), 1993. [6. Auflage] Wester, M.J. (ed.): Computer Algebra Systems: A Practical Guide. John Wiley & Sons (Chichester), 1999. [436 Seiten, ISBN: 0-471-98353-5] Wang, P.S.: Factoring multivariate polynomials over algebraic number fields. Math. Comput. 30, 1976, 324–336. Wang, P.S.: An improved multivariate polynomial factoring algorithm. Math. Comput. 32, 1978, 1215-1231. [ISSN 0025-5718] Wan, D.: Factoring multivariate polynomials over large finite fields. Math. Comput. 54, No.190, 1990, 755-770. [ISSN 0025-5718] Wang, P.S.; Rothschild, L.P.: Factoring multivariate polynomials over the integers. Math. Comput. Vol. 29, 1975, 935–950. [ISSN 0025-5718] Waterhouse, W.C.: Abelian varieties over finite fields. Ann. Sci. Ecole Norm. Sup. (4) 2, 1969, 521-560. Weispfenning, V.: Admissible Orders and Linear Forms. SIGSAM Bulletin 21, Number 2, 1987. Wiedemann, D. H.: Solving sparse linear equations over finite fields. IEEE Transactions on Information Theory 32, 1, 1986, 54-62. [ISSN:0018-9448] Wirth, N.: Programming in Modula-2. Springer (Berlin, Heidelberg, New York), 1985. Wolfram, St.: The Mathematica Book. Wolfram Media, Inc., 2003. [5. Auflage, ISBN 1-57955-022-5, 1488 Seiten, die deutsche Version Das Mathe” ¨ matica Buch“ von Addison-Wesley mit ISBN 3-8273-1036-9 ist die Ubersetzung der 3. Auflage] Weinberger, P.J.; Rothschild, L.P.: Factoring Polynomials over Algebraic Number Fields. ACM Trans. on Mathematical Software 2, 1976, 335-350.

2. Konferenzen und zugeh¨ origen Proceedingsb¨ ande

[Wu] [Yun] [Zay]

[Zi1] [Zi2] [Zi3] [Zas]

375

Wu, W.: Basic Principles of Mechanical Theorem Proving in Elementary Geometries. J. Syst. Sci. and Math. Sci. 4(3), 1984, 207-235. Yun, D.Y.Y.: On Squarefree Decomposition Algorithms. SYMSAC-76, 1976, 26-35. Zayer, J.: Faktorisieren mit dem Number Field Sieve. Dissertation an der Universitt des Saarlandes, 1995. [http://www.informatik.tudarmstadt.de/ftp/pub/TI/reports/zayer.diss.ps.gz] Zippel, R.E.: Probabilistic Algorithms for Sparse Polynomials. PhD thesis, Massachusetts Institute of Technology (Cambridge, USA), 1979. Zippel, R.E.: Probabilistic Algorithms for Sparse Polynomials. EUROSAM79, 1979, 216-226. Zippel, R.E.: Effective Polynomial Computation. Kluwer (Boston, Dordrecht, London), 1993. [ISBN 0-7923-9375-9] Zassenhaus, H.: On Hensel Factorisation I. J. Number Theory 1, 1969, 291-331.

2. Konferenzen und zugeho ande ¨rigen Proceedingsb¨ AAECC-2

AAECC-3

AAECC-4

AAECC-5

AAECC-6

AAECC-7

AAECC-8

AAECC-9

Applied Algebra, Algorithmics and Error-Correcting Codes; 2nd International Conference, Toulouse (Frankreich), 1.-5. Oktober 1984. Ver¨ offentlicht in Lecture Notes in Computer Science (LNCS) 228, SpringerVerlag Berlin etc. [Herausgeber: Poli, A.; ISBN 3-540-16767-6] Algebraic Algorithms and Error-Correcting Codes; 3rd International Conference, Grenoble (Frankreich), 15.-19. Juli 1985. Ver¨ offentlicht in Lecture Notes in Computer Science (LNCS) 229, Springer-Verlag Berlin etc. [Herausgeber: Calmet, J.; ISBN 3-540-16776-5] Applicable Algebra, Error-Correcting Codes, Combinatorics and Computer Algebra; 4th International Conference, Karlsruhe (Deutschland), 23.-26. September 1986. Ver¨ offentlicht in Lecture Notes in Computer Science (LNCS) 307, Springer-Verlag Berlin etc. [Herausgeber: Beth, T.; Clausen, M.; ISBN 3-540-19200-X] Applied Algebra, Algebraic Algorithms and Error-Correcting Codes; 5th International Conference, Menorca (Spanien), 15.-19. Juni 1987. Ver¨ offentlicht in Lecture Notes in Computer Science (LNCS) 356, SpringerVerlag Berlin etc. [Herausgeber: Huguet, L.; Poli, A.; ISBN 3-54051082-6] Applied Algebra, Algebraic Algorithms and Error-Correcting Codes; 6th International Conference, Rom (Italien), 4.-8. Juli 1988. Ver¨ offentlicht in Lecture Notes in Computer Science (LNCS) 357, Springer-Verlag Berlin etc. [Herausgeber: Mora, T.; ISBN 3-540-51083-4] Applied Algebra, Algebraic Algorithms and Error-Correcting Codes; 7th International symposium, Toulouse (Frankreich), 1989. Ver¨ offentlicht North-Holland, Amsterdam. Applied Algebra, Algebraic Algorithms and Error-Correcting Codes; 8th International Symposium bzw. 2. International Joint Conference (IJC-2) zusammen mit International Symposium on Symbolic Algebraic Computation (ISSAC-90) , Tokyo (Japan), 20.-24. August 1990. Ver¨ offentlicht in Lecture Notes in Computer Science (LNCS) 508, SpringerVerlag Berlin etc. [Herausgeber: Sakata, S; ISBN 3-540-54195-0] Applied Algebra, Algebraic Algorithms and Error-Correcting Codes; 9th International symposium, New Orleans/LA (USA), 7.-11. Oktober 1991. Ver¨ offentlicht in Lecture Notes in Computer Science (LNCS) 539, Springer-Verlag Berlin etc. [Herausgeber: Mattson, H.F.; Mora, T.; Rao, T.R.N.; ISBN 3-540-54522-0 oder 0-387-54522-0]

376

Bibliographie

AAECC-10

AAECC-11

AAECC-12

AAECC-13

AAECC-14

AAECC-15

DISCO-90

DISCO-92

DISCO-93

DISCO-96

EUROCAL-83

EUROCAL-85

EUROCAL-85

EUROCAL-87

Applied Algebra, Algebraic Algorithms and Error-Correcting Codes; 10th International Symposium, San Juan de Puerto Rico (Puerto Rico), 10.-14. Mai 1993. Ver¨ offentlicht in Lecture Notes in Computer Science (LNCS) 673, Springer-Verlag Berlin etc. [Herausgeber: Cohen, G.; Mora, T.; Moreno, O.; ISBN 3-540-56686-4] Applied Algebra, Algebraic Algorithms and Error-Correcting Codes; 11th International Symposium, Paris (Frankreich), Juli 1995. Ver¨ offentlicht in Lecture Notes in Computer Science (LNCS) 948, SpringerVerlag Berlin etc. [Herausgeber: Cohen, G.; Giusti M.; Mora, T.; ISBN 3-540-60114-7] Applied Algebra, Algebraic Algorithms and Error-Correcting Codes, Toulouse (Frankreich), 23.-27. Juni 1997. Ver¨ offentlicht in Lecture Notes in Computer Science (LNCS) 1255, Springer-Verlag Berlin etc. [Herausgeber: Mora, T.; Mattson, H.; ISBN 3-540-63163-1] Applied Algebra, Algebraic Algorithms and Error-Correcting Codes, Honolulu, Hawaii (USA), 15.-19. November 1999. Ver¨ offentlicht in Lecture Notes in Computer Science (LNCS) 1719, Springer-Verlag Berlin etc. [Herausgeber: Fossorier, M.; Hideki Imai; Shu Lin; Poli, A; ISBN 3-540-66723-7] Applied Algebra, Algebraic Algorithms and Error-Correcting Codes, Melbourne (Australia), 26.-30. November 2001. Ver¨ offentlicht in Lecture Notes in Computer Science (LNCS) 2227, Springer-Verlag Berlin etc. [Herausgeber: Boztas, S.; Shparlinski, I.; ISBN 3-540-40111-3] Applied Algebra, Algebraic Algorithms and Error-Correcting Codes, Toulouse (Frankreich), 12.-16. Mai 2003. Ver¨ offentlicht in Lecture Notes in Computer Science (LNCS) 2643, Springer-Verlag Berlin etc. [Herausgeber: Fossorier, M.; Hoeholdt, T.; Poli, A.; ISBN 3-540-40111-3] Design and implementation of symbolic computation systems, Capri (Italien), 10.-12. April 1990. Ver¨ offentlicht in Lecture Notes in Computer Science (LNCS) 429, Springer-Verlag Berlin etc. [Herausgeber: Miola A.; ISBN: 3-540-52531-9] Design and implementation of symbolic computation systems, Bath (Großbritannien), 13.-15. April 1992. Ver¨ offentlicht in Lecture Notes in Computer Science (LNCS) 721, Springer-Verlag Berlin etc. [Herausgeber: Fitch J.P.; ISBN 3-540-57272-4] Design and implementation of symbolic computation systems, Gmunden ¨ (Osterreich), 15.-17. September 1993. Ver¨ offentlicht in Lecture Notes in Computer Science (LNCS) 722, Springer-Verlag Berlin etc. [Herausgeber: Miola, A.; ISBN 3-540-57235-X] Design and implementation of symbolic computation systems, Karlsoffentlicht in Lecture ruhe (Deutschland), 18.-20. September 1996. Ver¨ Notes in Computer Science (LNCS) 1128, Springer-Verlag Berlin etc. [Herausgeber: Calmet, J.; Limongelli, C.; ISBN 3-540-61697-7] European Conference on Computer Algebra, Symbolic and Algebraic Computation, London (England), 28.-30. M¨ arz 1983. Ver¨ offentlicht in Lecture Notes in Computer Science (LNCS) 162, Springer-Verlag Berlin etc. European Conference on Computer Algebra, Volume 1: Invited Lectu¨ res, Linz (Osterreich), 1.-3. April 1985. Ver¨ offentlicht in Lecture Notes in Computer Science (LNCS) 203, Springer-Verlag Berlin etc. [Herausgeber: Buchberger, B.; ISBN 3-540-15983-5] European Conference on Computer Algebra, Volume 2: Research Con¨ tributions, Linz (Osterreich), 1.-3. April 1985. Ver¨ offentlicht in Lecture Notes in Computer Science (LNCS) 204, Springer-Verlag Berlin etc. [Herausgeber: Caviness, B.F.; ISBN 3-540-15984-3] European Conference on Computer Algebra, Leipzig, 2.-5.Juni 1987. Ver¨ offentlicht in Lecture Notes in Computer Science (LNCS) 378, Springer-Verlag Berlin etc. [Herausgeber: Davenport, J.H.; ISBN 3-54051517-8

2. Konferenzen und zugeh¨ origen Proceedingsb¨ ande

377

EUROCRYPT European Workshop on the Theory and Application of Cryptographic 84 Techniques, Paris (Frankreich), 9.-11. April 1984. Ver¨ offentlicht in Lecture Notes in Computer Science (LNCS) 209, Springer-Verlag Berlin etc. [Herausgeber: Beth, Th.; Cot, N.; Ingemarsson, I.; 491 S.; ISBN 3-540-16076-0] EUROCAM-82 European Computer Algebra Conference, Marseille (Frankreich), 5.7. April 1982. Ver¨ offentlicht in Lecture Notes in Computer Science (LNCS) 144, Springer-Verlag Berlin etc. [Herausgeber: Calmet, J.; ISBN 3-540-11607-9] EUROSAM-74 European Symposium on Symbolic and Algebraic Manipulation der SIGSAM, Stockholm (Schweden), 1.-2. August 1974. Ver¨ offentlicht im SIGSAM Bulletin. EUROSAM-79 European Symposium on Symbolic and Algebraic Manipulation, Marseille (Frankreich), 1979. Ver¨ offentlicht in Lecture Notes in Computer Science (LNCS) 72, Springer-Verlag Berlin etc. [Herausgeber: Ng; ISBN 3-540-09519-5] EUROSAM-84 International Symposium on Symbolic and Algebraic Computation, Cambridge (England), 9.-11. Juli 1984. Ver¨ offentlicht in Lecture Notes in Computer Science (LNCS) 174, Springer-Verlag Berlin etc. [Herausgeber: Fitch, J.; ISBN 3-540-13350-X] ISSAC-88 International Symposium on Symbolic and Algebraic Computation der ACM, Rom (Italien), 4.-8. Juli 1988. Ver¨ offentlicht in Lecture Notes in Computer Science (LNCS) 358, Springer-Verlag Berlin etc. [Herausgeber: Gianni, P.; ISBN 3-540-51084-2] ISSAC-89 International Symposium on Symbolic and Algebraic Computation der ACM, Portland (Oregon,USA), 17.-19. Juli 1989. Ver¨ offentlicht als Proceedings-Band bei ACM-Press. [ISBN 0-89791-325-6] ISSAC-90 International Symposium on Symbolic and Algebraic Computation bzw. 2. International Joint Conference (IJC-2) zusammen mit Applied algebra, algebraic algorithms and error-correcting codes (AAECC-8) der ACM, Tokyo (Japan), 20.-24 August 1990. Ver¨ offentlicht als Proceedings-Band bei ACM-Press. [Herausgeber: Watanabe, S.; Nagata, M.; ISBN 0-89791-401-5] ISSAC-91 International Symposium on Symbolic and Algebraic Computation der ACM, Bonn (Deutschland), 15.-17. Juli 1991. Ver¨ offentlicht als Proceedings-Band bei ACM-Press. [Herausgeber: Watt, S.M.; ISBN 0-89791437-6] ISSAC-92 International Symposium on Symbolic and Algebraic Computation der ACM, Berkeley (California, USA), 27.-29 Juli 1992. Ver¨ offentlicht als Proceedings-Band bei ACM-Press. [Herausgeber: Wang, P.; ISBN 089791-489-9] ISSAC-93 International Symposium on Symbolic and Algebraic Computation der offentlicht als ProceedingsACM, Kiew (Ukraine), 6.-8 Juli 1993. Ver¨ Band bei ACM-Press. [Herausgeber: Bronstein, M.; ISBN 0-89791-6042] ISSAC-94 International Symposium on Symbolic and Algebraic Computation der ACM, Oxford (Großbrittannien), 20.-22 Juli 1994. Ver¨ offentlicht als Proceedings-Band bei ACM-Press. [Herausgeber: von zur Gathen, J. et al., ISBN 0-89791-638-7] ISSAC-95 International Symposium on Symbolic and Algebraic Computation der ACM, Montreal (Kanada), 10.-12. Juli 1995. Ver¨ offentlicht als Proceedings-Band bei ACM-Press. [Herausgeber: Levelt, A.; ISBN 0-89791699-9] ISSAC-96 International Symposium on Symbolic and Algebraic Computation der ACM, Z¨ urich (Schweiz), 24.-26. Juli 1996. Ver¨ offentlicht als Proceedings-Band bei ACM-Press. [Herausgeber: Lakshman, Y.N.; ISBN 089791-796-0]

378

Bibliographie

ISSAC-97

International Symposium on Symbolic and Algebraic Computation der ACM, Maui (HI, USA), 21.-23. Juli 1997. Ver¨ offentlicht als Proceedings-Band bei ACM-Press. [Herausgeber: K¨ uchlin, W.; ISBN 0-89791875-4] ISSAC-98 International Symposium on Symbolic and Algebraic Computation der ACM, Rostock (Deutschland), 13.-15. August 1998. Ver¨ offentlicht als Proceedings-Band bei ACM-Press. [Herausgeber: Gloor, O.; ISBN 158113-002-3]) ISSAC-99 International Symposium on Symbolic and Algebraic Computation der ACM, Vancouver (Kanada), 28.-31. Juli. Ver¨ offentlicht als ProceedingsBand bei ACM-Press. [Herausgeber: Dooley, S.; ISBN 1-58113-073-2]) ISSAC-2000 International Symposium on Symbolic and Algebraic Computation der ACM, St. Andrews (Schottland), 2000. Ver¨ offentlicht als ProceedingsBand bei ACM-Press. [Herausgeber: Traverso, C.; ISBN 1-58113-218-2]) ISSAC-2001 International Symposium on Symbolic and Algebraic Computation der ACM, London (Ontario, Kanada), 2001. Ver¨ offentlicht als ProceedingsBand bei ACM-Press. [Herausgeber: Kaltofen, E.; Villard, G.; ISBN 1-58113-417-7]) ISSAC-2002 International Symposium on Symbolic and Algebraic Computation der ACM, Lille (Frankreich), 7.-10. Juli 2002. Ver¨ offentlicht als Proceedings-Band bei ACM-Press. [Herausgeber: Giusti, M.; ISBN 1-58113484-3]) ISSAC-2003 International Symposium on Symbolic and Algebraic Computation der ACM, Philadelphia (USA), 3.-6. August 2003. Ver¨ offentlicht als Proceedings-Band bei ACM-Press. [Herausgeber: Hoon Hong; ISBN 1-58113641-2]) MACSYMA-77 MACSYMA Users’ Conference, Berkeley (California, USA), 27.-29. Juli 1977. Ver¨ offentlicht vom MIT.[Herausgeber: Fateman R.J. et al. MACSYMA-79 MACSYMA Users’ Conference, Washington (D.C, USA), 20.-22. Juni 1979. Ver¨ offentlicht vom MIT.[Herausgeber: Lewis, V.E.] MACSYMA-84 MACSYMA Users’ Conference, New York (USA), 23.-25. Juli 1984. Veroffentlicht vom MIT.[Herausgeber: Golden, V.E.; Hussain, M.A.] ¨ OXFORD-67 Conference on Computational Problems in Abstract Algebra (Leech, J. ed.), Oxford, England, 29. August-2. September 1967. Ver¨ offentlicht Pergamon Press, Oxford. SYMSAC-66 Symposium on Symbolic and Algebraic Computation der ACM, , 1966. Ver¨ offentlicht als Proceedings-Band bei ACM-Press. SYMSAC-71 Symposium on Symbolic and Algebraic Computation der ACM, Los Angeles (USA), 23.-25. M¨ arz 1971. Ver¨ offentlicht als Proceedings-Band bei ACM-Press. [Herausgeber: Petrick, S.R.] SYMSAC-76 Symposium on Symbolic and Algebraic Computation der ACM, Yorktown Heights (New York, USA), 10.-12. August 1976. Ver¨ offentlicht als Proceedings-Band bei ACM-Press. [Herausgeber: Jenks, R.D.] SYMSAC-81 Symposium on Symbolic and Algebraic Computation der ACM, Snowbird (Utah, USA), 5.-8. August 1981. Ver¨ offentlicht als ProceedingsBand bei ACM-Press. [Herausgeber: Wang, P.S.; ISBN 0-89791-047-8] SYMSAC-86 Symposium on Symbolic and Algebraic Computation der ACM, Waterloo (Kanada), 21.-23. Juli 1986. Ver¨ offentlicht als Proceedings-Band bei ACM-Press. [Herausgeber: Char, B.W.; ISBN 0-89791-199-7]

Index

Mathematische Abk¨ urzungen, wie etwa Mon(X; p) , die sich alphabetisch einsortieren lassen, finden sich unter dem entsprechenden Buchstaben. Nicht alphabetisch einzusortierende Symbole. wie etwa −→ sind unter dem Stichpunkt Symbole aufgelistet. Die Seitenzahlen von Algorithmen sind durch den Schrifttyp typewriter gekennzeichnet, die von mathematischen Symbolen sind schr¨aggestellt.

A Ableitung –, formale 51 230 –, partielle 180 Abschluss –, Zariski- 306 Additionsformeln 189 190 192 adjungiert 89 Adleman 167 ahnlich 28 ¨ ¨ Ahnlichkeitskoeffizienten 28 algebraisch –, abh¨ angig 305 –, unabh¨ angig 305 Algol 4 Algorithmus 7 –, Berlekamp- 271 –, –, f¨ ur kleine K¨ orper 239 –, Brent- 172 –, CFRAC 215 –, deterministischer 7 –, ECM 215 –, erweiterter euklidischer 24 194 –, –, Berlekamps Version 87

–, –, –, –, –, –, –, –, –, –, –, –, –, –, –, –, –, –, –, –, –, –, –, –, –, –,

euklidischer 23 57 –, Anzahl Divisionsschritte 81 –, erweiterter 24 50 98 194 –, Verbesserung nach Lehmer 85 exponentieller 11 Floyd- 169 Gosper 298 Gr¨ obnerbasis 20 Knuth-Bendix 20 Komplexit¨ at eines 7 Kronecker- 227 logarithmischer 11 Morrison-Brillhart- 197 215 Normalform- 314 315 Pollard- (p − 1) - 176 179 Pollard- ρ - 169 215 polynomialer 11 Pope-Stein- 75 –, Komplexit¨ at 78 probabilistischer 7 PRS- 139 –, erweiterter 165 –, nach Brown 159 –, nach Collins 154 Shanks 215 Shanks-Tonelli- 219

380

Index

–, squfof 215 –, terminierender 7 –, verbesserte Subresultanten 162 –, von Caviness und Fateman 98 –, von Karatsuba, Aufwand 67 –, –, Grundidee 66 –, –, Komplexit¨ at 69 70 73 –, von Massey und Omura 109 –, von Strassen 73 Aljabr 331 Amp 338 AND-Schalter 110 111 Anteil –, primitiver 28 –, strikt antisymmetrischer, einer Relation 15 antisymmetrisch 15 Arbitrary Precision Math Library 338 Arithmetica Universalis 227 Arithmetic in Global Fields 338 Array –, dynamisches 59 assoziiert 28 –, s. Ring 230 asymptotisch gleich 10 Auswahlaxiom 16 AVL-B¨ aume 121 127 131 Axiom 329 338

B Bach 176 Bahn –, Ceres- 1 –, Mond- 2 Balanced Trees 120 Basis –, Gr¨ obner- 315 –, Ideal- 315 –, –, reduzierte 315 –, polynomiale 110 –, Standard- 315 B¨ aume –, ausgeglichene 121 –, AVL- 121 Bendix 20

Berlekamp 239 271 –, Algorithmus von 242 –, –, ‘Big Prime’-Variante 254 261 –, –, f¨ ur kleine K¨ orper 239 –, –, Komplexit¨ at 246 249 –, –, Variante f¨ ur große K¨ orper 112 249 Berlekamp-Matrix 241 247 254 260 261 Bernstein 168 β - L¨ ange 60 B´ezout 23 144 267 B´ezout-Gleichung 267 BigNum 338 Big Prime Berlekamp 254 Bilinearform 109 Binary-Mult 130 131 Binomialkoeffizienten 277 Binomialsatz 278 Bmp 338 break even point 12 Brent 174 –, Algorithmus von 172 Bressoud 168 Brillhart 168 197 Brown 157 Buchberger 315

C C 59 Cali 335 Canfield 195 212 Cauchy 40 Caviness 14 98 107 Ceres –, Bahn 1 CFRAC 216 217 Charakteristik 91 Chinesischer Restsatz 224 241 Chinesisches Restproblem 48 –, Lagrangesche L¨ osung 48 –, L¨ osung in euklidischen Ringen 50 –, Newtonsche L¨ osung 48 Church-Rosser-Eigenschaft 17 CoCoA 336 CoCoAL 336

Index

Collins 154 Computeralgebra-Programme 4 Computerwort 58 Inh(f ) 28 230 Continued Fraction Algorithm (CFRAC) 197 CRP –, s. Chinesisches Restproblem 48

D Darstellung –, euklidische 80 Datenexplosion 57 degi 115 degxi 115 Delaunay 1 Derive 5 330 Diagonalordnungen 114 Differentialk¨ orper 102 Differentialrechnung 277 Differenzenrechnung 277 Differenzieren –, symbolisches 4 Digamma 288 Digamma-Funktion 287 Diophantos von Alexandria 267 Diskreter Logarithmus 108 Distinct Degree Factorization 259 Division –, nach Pope-Stein 75 DOE-Macsyma 331 dominiert 9 Duplikationsformeln 189 190 192

E

Z

Ea,b ( p ) 184 –, inverse Elemente 185 –, neutrales Element 185 Ea,b ( ) 183 –, inverse Elemente 183 –, neutrales Element 183 Ebene –, projektive 184 ECM 180 Eigenwert 39 Einheit 21 Einheitengruppe 21

Q

381

Element –, exponentielles 103 –, logarithmisches 102 –, primitives 89 91 108 274 –, –, Berechnung 91 –, –, Minimalpolynom 92 Eliminationsideal 325 Elliptic Curve Method 180 Elliptic Curve Primality Proving 338 Emacs 334 Entwicklung –, Newton- oder MacLaurin- 282 Epimorphismus 48 Equal Degree Factorization 262 Erd¨ os 195 212 Erzeugendensystem 21 Euler 260 Euler-Konstante 246 Euler-Kriterium 205 218 Eulersche Konstante 260 Exponentenmatrix 130 Exponent –, faktorieller 284 exponentiell 103

F Fachgruppe Computeralgebra der GI –, DMV und GAMM 5 Faktorenbasis 205 217 Faktoren –, mehrfache 230 Faktorielle –, k -te 284 faktorielle Polynome 282 Faktorisierung –, ganzer Zahlen 167 –, nach Graden 259 –, quadratfreie 230 –, shiftfreie 290 –, vollst¨ andig shiftfreie 290 –, von Polynomen, nach Kronecker 227 Faktorring 27 107 Fakult¨ at 288 Fateman 98 Felix 336

382

Index

Fermat 176 179 185 197 239 Fermatsche Zahl –, F7 197 –, F8 174 FFT 73 Fibonacci 80 Fibonacci-Zahlen 80 Floyd –, Algorithmus von 169 172 Fortran 4 Fourier-Transformationen 178 Fourier-Transformation –, schnelle 73 Frobenius 240 –, Abbildung 240 Funktion –, Digamma- 287 –, Gamma- 287 –, M¨ obius- µ 246 –, Polygamma- 287 –, Psi- 288 –, Trigamma- 288

Goldener Schnitt 81 Gosper 298 Grad 115 –, einer K¨ orpererweiterung 90 Gradfunktion 74 Gradsatz 90 92 Grammatrix 40 Graph –, einer elliptischen Kurve 180 Gr¨ obner 20 315 Gr¨ obner-Basen 14 Gr¨ obner –, Basis 315 Gr¨ obner-Basis –, reduzierte 315 Grundoperationen 7 Gruppe –, abelsche 183 185 Gruppenordnung 117 Gruppe –, zyklische 108

G

Hadamard 40 Halbgruppe 113 Hash-Tabelle 131 Hash-Tabellen 121 127 Hash Tables 120 Hasse 185 –, Satz von 192 Hauptideal 21 Hauptidealring 22 23 Hensel 21 51 266 Hensel-Lifting 222 224 271 –, lineares 52 –, quadratisches 52 54 267 Hensel –, Satz von 266 Hilbert 305 hilbertscher Basissatz 22 Horowitz 129 130

Gammafunktion 287 –, Funktionalgleichung der 287 107 p Gap 331 335 365 Gauß 1 23 29 136 215 227 gaußscher Ring 22 Gen-Mult 131 Gennum 338 Gesamtgrad 115 GF(q) 107 ggT –, und Resultante 32 Gleichung –, B´ezout- 267 –, diophantische 267 GMP 66 73 174 Gmp 338 GNFS –, Aufwand 216 –, siehe verallgemeinertes Zahlk¨ orperSieb 216 GNU Multiple Precision 338

Z

H

I Ideal 21 –, Basis 21 Idealbasis 315 Ideal

Index

–, Basis, minimale 21 –, Eliminations- 325 –, –,  -tes 325 –, endlich erzeugtes 21 Ideale –, paarweise erzeugende 47 241 Ideal –, Erzeugendensystem 21 –, Haupt- 21 –, maximales 22 27 –, Prim- 22 –, zu einer Variet¨ at 306 Induktion –, noethersche 18 Inhalt –, eines Polynoms 28 230 Integral –, eulersches 287 Integrit¨ atsbereich 22 23 Integrit¨ atsring 22 27 31 Interpolationspolynom –, Lagrange- 50 –, Newton- 50 irreduzibel 22 –, bzgl. einer Reduktionsrelation 15 Irreduzibilit¨ atstest –, mit Berlekamp 242 Iterator 121

J Jacobi 108 Jakobi-Matrix 51

K Kahrimanian 4 Kant 332 336 Karatsuba 66 Kash 336 Kettenbruch –, einfacher 198 Kettenbruchentwicklung –, einer Wurzel 201 –, periodische 201 202 Kettenbruch –, m -ter N¨ aherungsbruch 199 Kettenregel 230 Knoten 59

383

Knuth 20 80 kodominant 8 10 Komplexit¨ at 7 –, asymptotische 7 –, der Langzahladdition 62 –, der Langzahlmultiplikation 70 –, der Langzahlsubtraktion 62 –, des Berlekamp Algorithmus, f¨ ur große K¨ orper 249 –, des Berlekamp-Algorithmus, Grundversion 246 –, des Massey-Omura Multiplizierers 109 –, erwartete zeitliche 7 –, maximale zeitliche 7 –, zeitliche 7 konfluent 17 314 315 316 –, lokal 17 316 Konfluenz –, lokale 317 Konklusion 15 Konstante –, Eulersche 260 Konstantenk¨ orper 102 Koordinaten –, rationale 182 K¨ orper –, der rationalen Funktionen 90 –, Differential- 102 –, endlicher 91 107 239 K¨ orpererweiterung 89 –, algebraische 89 –, –, einfache 91 –, einfache 89 –, einfach elementare 102 –, elementare 103 –, elementar transzendente 103 –, Grad einer 90 K¨ orpererweiterung –, primitives Element 89 K¨ orpererweiterung –, transzendente 101 K¨ orper –, Konstanten- 102 –, Universal- 308 –, vollkommener 231 265

384

Index

Kosequenzen 147 Kosequenz –, erste 144 –, zweite 144 Kra¨ı tchik 197 kritisches Paar 317 Kronecker 264 281 –, Leopold 227 Kronecker-Symbol 281 Kurve –, elliptische 180 –, –, alternative Parametrisierung 192 –, –, modulo p 184 –, Graph einer elliptischen 180

L Lagrange 48 Lam´e 80 Landau 42 L¨ ange –, β - 60 Lβ (I) 60 Legendre 168 173 289 Legendre-Symbol 205 218 Lehmer 83 173 176 197 Leibniz 1 281 Leibnizsche Produktregel 281 Leitkoeffizient 28 115 –, bei der Faktorisierung 272 Leitmonom 115 Leitterm 28 115 Lemma –, von Gauß 29 137 Lenstra 107 108 180 193 196 275 –, Annahme von 196 level 129 L(I) 60 LiDIA 337 Lisp 4 59 60 Liste –, verkettete 59 121 logarithmisch 102 Logarithmus –, diskreter 108 110 –, Jacobi- 108

–, Zech- 108 110 lokal konfluent 316 LongInt 338 long integer 57 Lov´ asz 275 Lucas 173 Lucas-Lehmer-Test 173

M Macaulay 336 337 Macaulay 2 338 MacLaurin 282 MacLaurin-Entwicklung 282 Macsyma 5 330 Magma 216 331 Mannigfaltigkeit –, algebraische 305 Maple 5 12 14 60 65 66 79 97 115 116 123 124 129 139 168 179 192 215 216 302 303 331 332 341 Maple-Befehle –, plex 115 –, sort 116 –, tdeg 116 –, termorder 116 Maple –, PROD 123 –, SUM 123 Massey 109 Massey-Omura Matrix 111 Mathematica 5 Mathematica 215 216 332 Matiyasevich 14 107 Matrix –, Gram- 40 –, hermitesche 39 –, Jakobi- 51 –, Massey-Omura 109 110 –, Multiplikation nach Strassen 73 –, positiv definite 39 –, Rechtsinverse einer 51 –, skalare 40 –, Sylvester- 30 34 Maxima 338 Mignotte 42 270 272 –, Schranke von 272

Index

–, Ungleichungen von 270 Minimalpolynom 89 Miracl 338 Mittel –, arithmetisches 39 –, geometrisches 39 M¨ obius –, µ -Funktion 246 modp1 124 129 Mond –, Bahn 2 Monoid –, abelsches 113 –, geordnetes 114 Monom 103 Monte-Carlo-Methode 169 Montgomery 178 192 Mon(X; p) 114 Morrison 168 197 Morrison-Brillhart –, Kettenbruchalgorithmus 197 Mp 338 m(r, d) 123 Multiindizes 114 Multiplikation –, Matrix-, nach Strassen 73 –, von Punkten elliptischer Kurven mit Skalaren 185 MuMath 330 MuPAD 333

N Nachfolger –, gemeinsamer 15 Najid-Zejli 95 Newman 18 Newton 1 48 282 Newton-Entwicklung 282 Newton –, Isaac 227 NFS 216 217 –, Aufwand 216 –, siehe Zahlk¨ orper-Sieb 216 Nichtquadrat 253 261 Nolan 4 Normalbasis 108

385

–, geringer Komplexit¨ at 109 –, optimale 109 111 –, primitive 108 110 –, –, Berechnung 108 Normalform-Algorithmus 16 315 Normalform –, bzgl. einer Reduktionsrelation 15 –, kanonische 13 312 Normierung –, eines ganzzahligen Polynoms 265 Norm –, r - 41 n -te harmonische Zahl 246 Nullpunkt –, einer elliptischen Kurve 184 Nullstelle 305 –, allgemeine 309 Nullstellensatz –, Hilbertscher 310 –, schwacher 310 –, starker 311 Nullteiler 95 number field sieve 216

O Ofman 66 Ω(g(n)) 176 Omura 109 OpGF(q) [y ← A(x)] 8 Op[y ← A(x)] 7 Ordnung –, Diagonal- 114 –, elliptischer Kurven 185 –, invers lexikographische 114 –, lexikographische 114 Ordnung nach Gesamtgrad 115 Ordnungsmatrix 116 Ordnungsrelation –, zul¨ assige 94 312

P (P1) 117 (P2) 117 Paar –, kritisches 20 317 paarweise erzeugend 47 241

386

Index

Pari 174 332 334 338 Partialbruchzerlegung 35 –, quadratfreie 36 –, shiftfreie 36 291 –, vollst¨ andige 38 –, vollst¨ andig shiftfreie 291 Pascal 59 Perl 66 Pinch 168 π(x) 168 PMPQS 216 Pointer 59 118 –, nil- 59 Pollard 169 173 174 175 176 178 –, Monte-Carlo-Methode (s. ρ -Algorithmus) 169 –, (p − 1) -Algorithmus 176 179 –, –, Aufwand 179 –, –, zweite Stufe 178 –, ρ -Algorithmus 169 –, –, aperiodischer Teil 169 –, –, Aufwand 176 –, –, Erwartungswert aperiodischer Teil 175 –, –, Erwartungswert Iterationen 175 –, –, Erwartungswert periodischer Teil 175 –, –, periodischer Teil 169 Pollard- (p − 1) 191 Polygamma-Funktion 287 Polynom ¨ –, Ahnlichkeit 28 –, Anzahl irreduzible Faktoren 246 –, binomisches 277 –, Darstellung, dense 119 –, –, dicht 119 –, –, dicht distributiv 120 –, –, dicht rekursiv 120 –, –, distributiv 118 –, –, d¨ unn 118 –, –, d¨ unn distributiv 120 –, –, d¨ unn rekursiv 120 –, –, rekursiv 119 –, –, sparse 118 –, d¨ unnbesiedelt 118

–, faktorielles 282 –, Faktorisierung, in [x] 264 –, f -reduzierendes 240 –, ganzzahliges, Normierung 265 Polynomideale 315 Polynom –, Inhalt 28 230 –, irreduzibel, Anzahl 246 –, primitiver Anteil 28 –, quadratfreies 230 240 –, reines 90 Polynom-Restfolge –, s. PRS 136 Polynom –, S- 317 –, Swinnerton-Dyer 273 Pomerance 195 211 212 Pope 75 Positivit¨ atsbereich 116 Potenzprodukt 113 Powers 197 pA(f ) 28 230 PPQuo(f, g) 132 PPRest(f, g) 132 PQuo(f, g) 132 Pr¨ amisse 15 PRest(f, g) 132 prim 22 Primelement 22 Primfaktorisierungen 23 Primideal 22 Primitives Element 91 108 –, Berechnung 91 –, Minimalpolynom 92 Primzahlen –, Anzahl ≤ x 168 –, Mersenne- 173 Primzahl –, ungl¨ uckliche 265 Probedivisionen –, zur Faktorisierung ganzer Zahlen 168 Produktregel 230 –, leibnizsche 281 Produktsatz

Z

Index

–, f¨ ur binomische Polynome 277 Prozeduren –, Berle (Berlekamp-Algorithmus f¨ ur kleines“ GF(q) ) 244 ” –, bezout2 (B´ezout-Gleichung, zwei Terme mod p ) 267 –, bezout2l (B´ezout-Gleichung, zwei Terme mod pt ) 267 –, bezoutm (B´ezout-Gleichung, mehrere Terme mod pt ) 268 –, ComPosInt (Vergleich positiver ganzer Zahlen) 61 –, DDF (Faktorisierung nach Graden, Distinct Degree Factorization) 259 –, Dif (Differenz ganzer Zahlen) 63 –, DifPosInt (Differenz positiver ganzer Zahlen) 62 –, Div (Ganzzahlige Division mit Rest) 78 –, ECM (Lenstras Elliptic Curve Method) 192 –, EDF (Faktorisierung eines Produkts aus gleichen Graden, q ungerade) 262 –, Gcdex (Gr¨ oßter Gemeinsamer Teiler, erweiterte Version) 24 –, Gcd (Gr¨ oßter Gemeinsamer Teiler ganzer Zahlen, Grundversion) 82 oßter Gemeinsa–, Gcd Lehmer (Gr¨ mer Teiler ganzer Zahlen nach Lehmer) 85 –, Gr¨ obner (Berechnung einer Gr¨ obnerBasis, Buchberger-Algorithmus) 321 –, henlin (Hensel-Lifting, nach Berlekamp 269 –, henqu (Hensel-Lifting, nach Berlekamp 270 –, KetBru (Kettenbruchentwicklung) 198 –, ModPot (große modulare Potenzen) 174 249 –, ModPot (Potenzen mod N ) 177 –, ModPot (Potenzen mod N ) 179 –, MorBril (Kettenbruchmethode von Morrison und Brillhart, CFRAC) 207

387

–, MulSkal (Multiplikation mit Skalaren auf elliptischen Kurven) 190 195 –, PDiv (Polynomdivision) 133 –, –, Aufwand 133 –, PggTK[x] ( ggT von Polynomen) 134 –, PggT K[x] (Polynom- ggT ), Aufwand 134 ur R0 [X] = –, PggTnR0 [X] (Basis-ggT f¨ R[x] ) 139 –, PggT R0 [X] (g1 , g2 ) 138 –, PolP1 (Pollard- (p−1) -Algorithmus) 177 –, PolRho (Pollard- ρ -Algorithmus) 170 –, PPDiv (Pseudodivision) 134 –, Prod 1 (Produkt ganzer Zahlen, Schulmethode) 64 –, Prod 2 (Produkt ganzer Zahlen nach Karatsuba) 70 –, PRS EXT (erweiterter Subresultantenalgorithmus) 165 –, PRSBrown−Sres (f1 , f2 ) 159 –, PRSCollins (PRS nach Collins) 154 –, PRSSres−V1 (Subresultanten-PRS, Version 1) 161 –, PRSSres−V2 (Subresultanten-PRS, Version 2) 162 –, PRSSres−V3 162 –, PRSSres−V4 (Subresultanten-PRS, Version 4) 163 –, PSum (Summe von Polynomen) 125 –, RedBas (Reduktion eine Idealbasis) 315 –, RedPolBas (Reduktion eines Polynoms bzgl. einer Idealbasis) 315 320 –, RedPolPol (Reduktion eines Polynoms bzgl eines anderen) 314 –, ShanksTonelli (Wurzel aus a modulo einer Primzahl p ) 220 –, Shift (Produkt mit einer Potenz der Zahlbasis) 71 –, SQFp (Quadratfreie Faktorisierung im Fall char(R) = p ) 237

388

Index

–, SQF (Quadratfreie Faktorisierung im Fall char(R) = 0 ) 233 –, SQFYun (Quadratfreie Faktorisierung im Fall char(R) = 0 nach Yun) 235 –, SumPosInt (Summe positiver ganzer Zahlen) 61 –, Sum (Summe ganzer Zahlen) 63 PRS 136 138 144 –, euklidische 139 –, normale 136 139 –, primitive 139 –, reduzierte 154 –, Subresultanten 156 157 –, –, erweiterte 165 Pseudodivision 57 132 Psi-Funktion 288 Punkt –, singul¨ arer 180

Q QS –, Aufwand 216 –, siehe quadratisches Sieb 216 Quadrat 253 261 quadratfrei 240 –, s. Polynom 230 Quadrat –, Nicht- 253 261 Quadratwurzel –, mod p 219 Quotientenk¨ orper 232 Quotientenregel 280

R Radikal 90 Radikalideal 311 Radikalschreibweise 95 Rational machen des Nenners 97 Rechtsinverse 51 Reduce 4 14 101 335 Reduktionsrelation 15 Reduktionssystem 15 Relation –, antisymmetrischer Anteil, strikt 15 –, noethersche 15

–, Reduktions- 15 res(f, g) 30 Restklassenring 27 Rest –, quadratischer 205 Resultante 30 180 290 Resultanten 265 Resultante –, und ggT 32 Richardson 14 107 Riesel 168 Ring –, -elemente, assoziierte 28 230 –, euklidischer 22 23 74 132 –, faktorieller 22 132 230 –, gaußscher 22 –, Hauptideal- 22 23 –, Integrit¨ ats- 22 27 –, irreduzibles Element 22 –, noetherscher 22 305 –, nullteilerfreier 230 232 –, Primelement 22 –, ZPE- 22 Risch 102 Rivest 167 RSA-129 225 r -Norm 41 r -shiftfrei 290

S (S1) 13 16 (S2) 13 16 Satz –, binomischer 51 –, Grad- 90 –, hilbertscher Basis- 22 –, u ¨ber das primitive Element 91 –, von B´ezout 23 144 –, von Brown 157 –, von Canfield Erd¨ os und Pomerance 212 –, von Collins 154 –, von Gauß 227 –, von Hasse 185 –, von Hensel 51 222 –, von Lam´e 80

Index

–, von Legendre (Primteiler von N = an ± bn ) 173 –, von Newman 18 –, von Risch 102 104 –, von Schinzel 96 –, von Taylor, f¨ ur kommutative Ringe 51 Schieberegister –, zyklisches 109 Schinzel 95 Schnitt –, goldener 81 –, von Gerade und elliptischer Kurve 181 Schoof 108 Schubert –, Friedrich von 227 Schwellenwert 12 Scratchpad 329 Shamir 167 Shanks 168 215 219 Shanks-Tonelli-Algorithmus 219 224 shiftfrei 290 –, vollst¨ andig 290 Shparlinsky 108 Siebintervall 217 Sieb –, quadratisches 216 –, Zahlk¨ orper- 216 –, –, verallgemeinertes 216 sieve –, number field 216 –, quadratic 216 –, –, multiple polynomial 216 Simath 337 Simcalc 337 Simplifikator –, kanonischer 13 314 315 Singular 337 O “-Notation 8 Sort-Mult 130 131 Spock 121 122 131 S-Polynom 317 Spx 338 sresj (f, g) 145 –, Grad 146

Stack 129 Stammfunktion –, diskrete 285 Standardbasis 315 Stein 75 Stepanov 108 Strassen 73 Struktursatz –, von Risch 102 104 Subresultante –, j -te 145 Subresultanten –, erweiterter Algorithmus 165 –, Hauptsatz 147 151 Subresultanten-Kette 58 147 Subresultanten –, Polynom-Restfolge 157 Subresultanten PRS 156 Summationsregeln 285 summierbar –, in endlich vielen Termen 285 Swinnerton-Dyer 273 –, Polynome 273 Sylvester-Matrix 30 31 Sylvestermatrix 34 Symbole –, (a/p) 205 –, A(p, q) 126 –, ∆ (Differenzenoperator) 279 –, ∆ 279 x,h

–, –, –, –, –, –, –, –, –, –, –, –, –, –, –,

↓ 15 ↓E 313  28 .r 41 (∞, ∞) 183 K(A) 89 L : K 89 ∗ 313 ←− E ma (x) 89 M(p, q) 128 n ∗ (X : Z) 190 O(f (n)) 9 O (f (n)) 9 Ω(f (n)) 9 ≺ 10

389

390

–, –, –, –, –, –, –, –, –, –, –, –, –, –, –, –, –, –,

Index

! 9