Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

„Inside CAS“ Teil I: Polynome faktorisieren Teil II: Automatisches Beweisen Heinz Klemenz, KZO Wetzikon, 13.6.2005.

Ähnliche Präsentationen


Präsentation zum Thema: "„Inside CAS“ Teil I: Polynome faktorisieren Teil II: Automatisches Beweisen Heinz Klemenz, KZO Wetzikon, 13.6.2005."—  Präsentation transkript:

1 „Inside CAS“ Teil I: Polynome faktorisieren Teil II: Automatisches Beweisen Heinz Klemenz, KZO Wetzikon,

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, : Ausarbeitung der Ideen von Newton und Schubert Leopold Kronecker, : 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  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)226f(xi)226f(xi)226f(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 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 x+1)(x x+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 x+1)(x x+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.


Herunterladen ppt "„Inside CAS“ Teil I: Polynome faktorisieren Teil II: Automatisches Beweisen Heinz Klemenz, KZO Wetzikon, 13.6.2005."

Ähnliche Präsentationen


Google-Anzeigen