Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Michael Roth Geändert vor über 8 Jahren
1
„Inside CAS“ Teil I: Polynome faktorisieren Teil II: Automatisches Beweisen Heinz Klemenz, KZO Wetzikon, 13.6.2005
2
„Inside CAS“ Teil I: Polynome faktorisieren Einleitung Kronecker-Algorithmus im Ring Z[x] Berlekamp-Algorithmus in Z p [x] „Lifting“ nach Z[x] Cantor und Zassenhaus (1980) prohabilistisch Multivariate Polynome (Kronecker)
3
Einleitung 1 Von „Hand“:
4
Einleitung 2 Weshalb sollte man Polynome faktorisieren können? Beispiele Terme vereinfachen (Kürzen!) Terme vereinfachen (Kürzen!) Polynomiale Gleichungen exakt lösen Polynomiale Gleichungen exakt lösen Codierungstheorie Codierungstheorie Kryptographie Kryptographie Symbolische Integration Symbolische Integration Gröbner-Basen vereinfachen (autom. Beweisen) Gröbner-Basen vereinfachen (autom. Beweisen)
5
Einleitung 3 Wie kann ein Polynom algorithmisch faktorisiert werden? Erste Versuche Isaac Newton, 1707: „Arithmetica universalis“ Isaac Newton, 1707: „Arithmetica universalis“ Friedrich von Schubert, 1793: Lineare und quadratische Faktoren finden Friedrich von Schubert, 1793: Lineare und quadratische Faktoren finden Leopold Kronecker, 1823-1891: Ausarbeitung der Ideen von Newton und Schubert Leopold Kronecker, 1823-1891: Ausarbeitung der Ideen von Newton und Schubert Neuzeit 1967 Elwin Berlekamp: Faktorisieren in Z p [x] 1967 Elwin Berlekamp: Faktorisieren in Z p [x]
6
„Inside CAS“ Teil I: Polynome faktorisieren Einleitung Einleitung Kronecker-Algorithmus im Ring Z[x] Berlekamp-Algorithmus in Z p [x] „Lifting“ nach Z[x] Cantor und Zassenhaus (1980) prohabilistisch Multivariate Polynome (Kronecker)
7
Der Kronecker-Algorithmus 1 Leopold Kronecker 1823-1891 Schüler von Kummer Student von Dirichlet und Jakob Steiner Professor in Berlin 1883 mit 60 J. (!) Streit mit Cantor und Weierstrass Vorläufer des Brower- schen Intuitionismus
8
Der Kronecker-Algorithmus 2 Wir betrachten ein Polynom f(x) aus Z[x] vom Grad n. Wir suchen g(x) und h(x), so dass gilt: f(x) = g(x)·h(x), wobei der Grad von g(x) höchstens m=[n/2] beträgt. Wir suchen g(x) und h(x), so dass gilt: f(x) = g(x)·h(x), wobei der Grad von g(x) höchstens m=[n/2] beträgt. Beispiel: f(x) = x 7 +2x 4 +x 3 +2 = g(x)·h(x) mit g(x) höchstens vom Grad 3... Beispiel: f(x) = x 7 +2x 4 +x 3 +2 = g(x)·h(x) mit g(x) höchstens vom Grad 3...
9
Der Kronecker-Algorithmus 3 Beobachtung: Der TI-89 schafft i. a. nur quadratische Faktoren (wie Newton). Wie finden wir kubische Faktoren nach Kronecker? Idee: Da g(x) Teiler von f(x), sind auch die (ganzen) Zahlen g(x i ) Teiler von f(x i ) für die ganzzahligen Stützstellen x i.
10
Der Kronecker-Algorithmus 4 Beispiel: f(x) = x 7 +2x 4 +x 3 +2 Ansatz:g(x) = x 3 +ax 2 +bx+c x-Werte:-101 f(xi)226f(xi)226f(xi)226f(xi)226 g(x i )±1,±2±1,±2±1,±2 ±3,±6 Damit sind 4·4·8 = 128 bzw. 64 Fälle möglich (je zwei bis auf das Vorzeichen gleich)
11
Der Kronecker-Algorithmus 5 Gleichungssystem g(x i ) = x i 3 +ax i 2 +bx i +c für die Stützstellen x i lösen. liefert die Koeffizienten a, b und c. Schauen, ob dann g(x) Teiler von f(x) ist.
12
Der Kronecker-Algorithmus 6 Realisierung mit TI-Basic (ca. 12 Sekunden):
13
Der Kronecker-Algorithmus 7 Fazit: Der Kronecker-Algorithmus ist für die Computer-Praxis untauglich. Schuld sind die vielen möglichen Teiler. Eine Verbesserung ergibt sich, wenn man nicht über Z, sondern über Z p (p prim) faktorisiert, muss nachher aber „liften“. f 2 (x) = x 7 +x 3 = x 3 (x 4 +1) (x 3 +2)(x 4 +1)
14
„Inside CAS“ Teil I: Polynome faktorisieren Einleitung Einleitung Kronecker-Algorithmus im Ring Z[x] Kronecker-Algorithmus im Ring Z[x] Berlekamp-Algorithmus in Z p [x] „Lifting“ nach Z[x] Cantor und Zassenhaus (1980) prohabilistisch Multivariate Polynome (Kronecker)
15
Der Berlekamp-Algorithmus 1 Elwyn Berlekamp (geb. 1940) Studium der Elektrotechnik Professor der Mathematik in Berkeley 1967: Berlekamp- Algorithmus
16
Der Berlekamp-Algorithmus 2 Voraussetzungen für den Algorithmus: Koeffizienten der Polynome werden modulo einer Primzahl gerechnet. Polynome sind normiert, d.h. der Koeffizient der höchsten Potenz ist 1. Polynome sind quadratfrei, d.h. keine Fakto- ren kommen mehrfach vor. {ggT(f(x),f‘(x))=1} Beispiel: f(x) = x 7 +2x 4 +x 3 +2 ist quadratfreies, normiertes, univariates Polynom über Z
17
Der Berlekamp-Algorithmus 3 Grundidee des Berlekamp-Algorithmus: Um Teilerpolynome f i (x) von f(x) zu finden, bestimmen wir Polynome g(x), so dass ggT(f(x), g(x))= f i (x) gilt. Aber: Wie findet man die Polynome g(x)? Ohne Herleitung: Man muss zuerst die Berlekamp-Matrix aufstellen...
18
Der Berlekamp-Algorithmus 4 ... und die Berlekamp-Matrix sieht folgendermassen aus (TI89: in ca.10 s) Beispiel: f 7 (x) = x 7 +2x 4 +x 3 +2 in Z 7 [x]
19
Der Berlekamp-Algorithmus 5 Die Berlekamp-Matrix B ist so definiert:
20
Der Berlekamp-Algorithmus 6 Im nächsten Schritt wird der Kern von B-E mit dem sog. „Nullraumalgorithmus“ bestimmt. (z.B. mit Maple) Mit den Komponenten der Basisvektoren werden Polynome h i (x) gebildet: h 1 (x) = x 4 + 6 h 2 (x) = x 5 + x 3 + 6x h 3 (x) = x 6 +3x 3 + 2
21
Der Berlekamp-Algorithmus 7 Die Dimension d der Basis liefert dabei gerade die Anzahl irreduzibler Faktoren. Diese möglichen Faktoren f i (x) erhalten wir durch Berechnung der ggT(f(x), h i (x)-c) = g i (x) Sobald wird d Faktoren gefunden haben, terminiert der Algorithmus. g 1 (x) = x 2 +4x+1g 2 (x) = x+2, g 3 (x) = wobei aber x 4 +1=(x 2 +4x+1)(x 2 +3x+1) mod 7 noch zerlegt werden kann g 1 (x) = x 2 +4x+1, g 2 (x) = x 3 +2, g 3 (x) = x 4 +1, wobei aber x 4 +1=(x 2 +4x+1)(x 2 +3x+1) mod 7 noch zerlegt werden kann
22
Der Berlekamp-Algorithmus 8 Die Faktorisierung über Z 7 lautet: f 7 (x) = (x+2)(x 2 +4x+1)(x 2 +3x+1) Die Faktorisierung über Z 7 lautet: f 7 (x) = (x 3 +2)(x 2 +4x+1)(x 2 +3x+1) Weitere Beispiele: f 5 (x) = (x+2)(x 2 +2x+4)(x 2 +3)(x+3) f 13 (x) = (x+2)(x 2 +8)(x 2 +5) f 29 (x) = (x 2 +17)(x 2 +12)(x 2 +3x+9)(x+26) f 991 (x) = (x+2)(x 2 +571x+1)(x 2 +420x+1) Weitere Beispiele: f 5 (x) = (x 2 +2)(x 2 +2x+4)(x 2 +3)(x+3) f 13 (x) = (x 3 +2)(x 2 +8)(x 2 +5) f 29 (x) = (x 2 +17)(x 2 +12)(x 2 +3x+9)(x+26) f 991 (x) = (x 3 +2)(x 2 +571x+1)(x 2 +420x+1)
23
„Inside CAS“ Teil I: Polynome faktorisieren Einleitung Einleitung Kronecker-Algorithmus im Ring Z[x] Kronecker-Algorithmus im Ring Z[x] Berlekamp-Algorithmus in Z p [x] Berlekamp-Algorithmus in Z p [x] „Lifting“ nach Z[x] Cantor und Zassenhaus (1980) prohabilistisch Multivariate Polynome (Kronecker)
24
„Lifting“ nach Z[x] Wie erhalten wir aus Faktorisierungen in Z p [x] die Faktorsierung in Z[x]? 1. Idee: Modulo eine grosse Primzahl p faktorisieren 2. Idee: Modulo eine kleine Primzahl q faktorisieren und dann Faktorisierung modulo p=q t daraus ermitteln (Hensel-Lifting) In beiden Fällen: Schranke (Mignotte) für den Modul p finden, so dass Faktoren in Z p [x] erscheinen, die auch in Z[x] vorkommen und dann Probedivisionen
25
„Inside CAS“ Teil I: Polynome faktorisieren Einleitung Einleitung Kronecker-Algorithmus im Ring Z[x] Kronecker-Algorithmus im Ring Z[x] Berlekamp-Algorithmus in Z p [x] Berlekamp-Algorithmus in Z p [x] „Lifting“ nach Z[x] „Lifting“ nach Z[x] Cantor und Zassenhaus (1980) prohabilistisch Multivariate Polynome (Kronecker)
26
„Inside CAS“ Literatur M. Kaplan: Computeralgebra, Springer, 2005 D. E. Knuth: Arithmetik, Springer, 2001 F. Winkler: Polynomial Algorithms in Computer Algebra, Springer, 1996 Geddes, Czapor, Labahn: Algorithms for Computer Algebra, Kluwer 1992
27
„Inside CAS“ Schlussbemerkungen Hinter dem Faktorisieren steckt interessante Mathematik. Algorithmisches Faktorisieren ist nicht streng deterministisch. Ein Algorithmus zum Faktorisieren braucht viel Rechenaufwand.
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.