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

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

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

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

„„Inside CAS“Inside CAS“Teil I: Polynome faktorisierenTeil I: Polynome faktorisieren

Teil II: Automatisches BeweisenTeil II: Automatisches Beweisen

Heinz Klemenz, KZO Wetzikon, 13.6.2005

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

„„Inside CAS“Inside CAS“Teil I: Polynome faktorisierenTeil I: Polynome faktorisieren

EinleitungEinleitung Kronecker-Algorithmus im Ring Z[x]Kronecker-Algorithmus im Ring Z[x] Berlekamp-Algorithmus in ZBerlekamp-Algorithmus in Zpp[x][x] „„Lifting“ nach Z[x]Lifting“ nach Z[x] Cantor und Zassenhaus (1980) prohabilistischCantor und Zassenhaus (1980) prohabilistisch Multivariate Polynome (Kronecker)Multivariate Polynome (Kronecker)

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

Einleitung 1Einleitung 1

Von Von „Hand“:„Hand“:

x4 x3 2 x3 2 x3 2 x4 1

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

Einleitung 2Einleitung 2 Weshalb sollte man Polynome faktorisieren Weshalb sollte man Polynome faktorisieren

können?können?

BeispieleBeispiele• Terme vereinfachen (Kürzen!)Terme vereinfachen (Kürzen!)• Polynomiale Gleichungen exakt lösenPolynomiale Gleichungen exakt lösen• CodierungstheorieCodierungstheorie• KryptographieKryptographie• Symbolische IntegrationSymbolische Integration• Gröbner-Basen vereinfachen (autom. Beweisen)Gröbner-Basen vereinfachen (autom. Beweisen)

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

Einleitung 3Einleitung 3 Wie kann ein Polynom Wie kann ein Polynom algorithmischalgorithmisch

faktorisiert werden?faktorisiert werden? Erste VersucheErste Versuche• Isaac Newton, 1707: Isaac Newton, 1707:

„Arithmetica universalis“„Arithmetica universalis“• Friedrich von Schubert, 1793: Friedrich von Schubert, 1793:

Lineare und quadratische Faktoren findenLineare und quadratische Faktoren finden• Leopold Kronecker, 1823-1891:Leopold Kronecker, 1823-1891:

Ausarbeitung der Ideen von Newton und Ausarbeitung der Ideen von Newton und SchubertSchubert

NeuzeitNeuzeit• 1967 Elwin Berlekamp: Faktorisieren in Z1967 Elwin Berlekamp: Faktorisieren in Zpp[x][x]

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

„„Inside CAS“Inside CAS“Teil I: Polynome faktorisierenTeil I: Polynome faktorisieren

EinleitungEinleitungKronecker-Algorithmus im Ring Z[x]Kronecker-Algorithmus im Ring Z[x] Berlekamp-Algorithmus in ZBerlekamp-Algorithmus in Zpp[x][x] „„Lifting“ nach Z[x]Lifting“ nach Z[x] Cantor und Zassenhaus (1980) prohabilistischCantor und Zassenhaus (1980) prohabilistisch Multivariate Polynome (Kronecker)Multivariate Polynome (Kronecker)

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

Der Kronecker-Der Kronecker-Algorithmus 1Algorithmus 1

Leopold Kronecker 1823-1891Leopold Kronecker 1823-1891 Schüler von KummerSchüler von Kummer Student von Dirichlet Student von Dirichlet

und Jakob Steinerund Jakob Steiner Professor in Berlin Professor in Berlin

1883 mit 60 J. (!)1883 mit 60 J. (!) Streit mit Cantor und Streit mit Cantor und

WeierstrassWeierstrass Vorläufer des Brower-Vorläufer des Brower-

schen Intuitionismusschen Intuitionismus

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

Der Kronecker-Der Kronecker-Algorithmus 2Algorithmus 2

Wir betrachten ein Polynom Wir betrachten ein Polynom ff((xx) aus ) aus Z[Z[xx] vom Grad ] vom Grad nn..• Wir suchen Wir suchen gg((xx) und ) und hh((xx), so dass gilt:), so dass gilt:

ff((xx) = ) = gg((xx)·)·hh((xx), wobei der Grad von g(x) ), wobei der Grad von g(x) höchstens höchstens mm=[=[nn/2] beträgt./2] beträgt.

• Beispiel: Beispiel: ff((xx) = ) = xx77+2+2xx44++xx33+2 = +2 = gg((xx)·)·hh((xx) ) mit mit gg((xx) höchstens vom Grad 3...) höchstens vom Grad 3...

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

Der Kronecker-Der Kronecker-Algorithmus 3Algorithmus 3

Beobachtung: Der TI-89 schafft i. a. nur Beobachtung: Der TI-89 schafft i. a. nur quadratische Faktoren (wie Newton).quadratische Faktoren (wie Newton).

Wie finden wir kubische Faktoren nach Wie finden wir kubische Faktoren nach Kronecker?Kronecker?

Idee: Da Idee: Da gg((xx) Teiler von ) Teiler von ff((xx), sind auch ), sind auch die (ganzen) Zahlen die (ganzen) Zahlen gg((xxii) Teiler von ) Teiler von ff((xxii) ) für die ganzzahligen Stützstellen für die ganzzahligen Stützstellen xxii..

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

Der Kronecker-Der Kronecker-Algorithmus 4Algorithmus 4

Beispiel: Beispiel: ff((xx) = ) = xx77+2+2xx44++xx33+2 +2 Ansatz:Ansatz: gg((xx) = ) = xx33+a+axx22+b+bxx+c +c xx-Werte:-Werte: -1-1 00 11 ff((xxii)) 22 22 66 g(g(xxii)) ±1,±2±1,±2 ±1,±2±1,±2 ±1,±2±1,±2

±3,±6±3,±6 Damit sind 4·4·8 = 128 bzw. 64 Fälle möglich Damit sind 4·4·8 = 128 bzw. 64 Fälle möglich

(je zwei bis auf das Vorzeichen gleich)(je zwei bis auf das Vorzeichen gleich)

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

Der Kronecker-Der Kronecker-Algorithmus 5Algorithmus 5

GleichungssystemGleichungssystem g g((xxii) = ) = xxii33+a+axxii

22+b+bxxii+c+cfür die Stützstellen für die Stützstellen xxii lösen. lösen.

liefert die Koeffizienten a, b und c. liefert die Koeffizienten a, b und c. Schauen, ob dann Schauen, ob dann gg((xx) Teiler von ) Teiler von ff((xx) ist.) ist.

abc

101

12

1 2 1 1 0 10 2 0

1,21,2

1,2,3,6

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

Der Kronecker-Der Kronecker-Algorithmus 6Algorithmus 6

Realisierung mit TI-Basic (ca. 12 Sekunden):Realisierung mit TI-Basic (ca. 12 Sekunden):

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

Der Kronecker-Der Kronecker-Algorithmus 7Algorithmus 7

Fazit: Der Kronecker-Algorithmus ist für Fazit: Der Kronecker-Algorithmus ist für die Computer-Praxis untauglich.die Computer-Praxis untauglich.

Schuld sind die vielen möglichen Teiler.Schuld sind die vielen möglichen Teiler. Eine Verbesserung ergibt sich, wenn man Eine Verbesserung ergibt sich, wenn man

nicht über Z, sondern über Znicht über Z, sondern über Zpp ( (pp prim) prim) faktorisiert, muss nachher aber „liften“.faktorisiert, muss nachher aber „liften“.

ff22((xx) = ) = xx77++xx3 3 = = xx33((xx44+1) +1) ( (xx33++22)()(xx44+1) +1)

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

„„Inside CAS“Inside CAS“Teil I: Polynome faktorisierenTeil I: Polynome faktorisieren

EinleitungEinleitung Kronecker-Algorithmus im Ring Z[x]Kronecker-Algorithmus im Ring Z[x]Berlekamp-Algorithmus in ZBerlekamp-Algorithmus in Zpp[x][x] „„Lifting“ nach Z[x]Lifting“ nach Z[x] Cantor und Zassenhaus (1980) prohabilistischCantor und Zassenhaus (1980) prohabilistisch Multivariate Polynome (Kronecker)Multivariate Polynome (Kronecker)

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

Der Berlekamp-Der Berlekamp-Algorithmus 1Algorithmus 1

Elwyn Berlekamp Elwyn Berlekamp (geb. 1940) (geb. 1940)

Studium der Studium der ElektrotechnikElektrotechnik

Professor der Professor der Mathematik in Mathematik in BerkeleyBerkeley

1967: Berlekamp-1967: Berlekamp-AlgorithmusAlgorithmus

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

Der Berlekamp-Der Berlekamp-Algorithmus 2Algorithmus 2

Voraussetzungen für den Algorithmus:Voraussetzungen für den Algorithmus: Koeffizienten der Polynome werden Koeffizienten der Polynome werden modulomodulo

einer Primzahl gerechnet. einer Primzahl gerechnet. Polynome sind Polynome sind normiertnormiert, d.h. der Koeffizient , d.h. der Koeffizient

der höchsten Potenz ist 1.der höchsten Potenz ist 1. Polynome sind Polynome sind quadratfreiquadratfrei, d.h. keine Fakto-, d.h. keine Fakto-

ren kommen mehrfach vor. {ggT(ren kommen mehrfach vor. {ggT(ff((xx),),ff‘(‘(xx))=1}))=1} Beispiel: Beispiel: ff((xx) = ) = xx77+2+2xx44++xx33+2+2 ist quadratfreies, ist quadratfreies,

normiertes, univariates Polynom über Znormiertes, univariates Polynom über Z

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

Der Berlekamp-Der Berlekamp-Algorithmus 3Algorithmus 3

Grundidee des Berlekamp-Algorithmus:Grundidee des Berlekamp-Algorithmus:Um Teilerpolynome Um Teilerpolynome ffii((xx) von ) von ff((xx) zu ) zu finden, bestimmen wir Polynome finden, bestimmen wir Polynome gg((xx), so ), so dass ggT(dass ggT(ff((xx), ), gg((xx))= ))= ffii((xx) gilt.) gilt.

Aber: Wie findet man die Polynome Aber: Wie findet man die Polynome gg((xx)?)?Ohne Herleitung: Man muss zuerst die Ohne Herleitung: Man muss zuerst die Berlekamp-MatrixBerlekamp-Matrix aufstellen... aufstellen...

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

Der Berlekamp-Der Berlekamp-Algorithmus 4Algorithmus 4

... und die Berlekamp-Matrix sieht ... und die Berlekamp-Matrix sieht folgendermassen aus (TI89: in ca.10 s)folgendermassen aus (TI89: in ca.10 s)

Beispiel: Beispiel: ff77((xx) = ) = xx77+2+2xx44++xx33+2 in Z+2 in Z77[x][x]

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

Der Berlekamp-Der Berlekamp-Algorithmus 5Algorithmus 5

Die Berlekamp-Matrix Die Berlekamp-Matrix BB ist so definiert: ist so definiert: x0 mod f7(x)

x7 mod f7(x)x14 mod f7(x)

x21 mod f7(x)

x28 mod f7(x)

x35 mod f7(x)

x42 mod f7(x)

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

Der Berlekamp-Der Berlekamp-Algorithmus 6Algorithmus 6

Im nächsten Schritt wird der Kern von B-Im nächsten Schritt wird der Kern von B-E mit dem sog. „Nullraumalgorithmus“ E mit dem sog. „Nullraumalgorithmus“ bestimmt. (z.B. mit Maple)bestimmt. (z.B. mit Maple)

Mit den Komponenten der Basisvektoren Mit den Komponenten der Basisvektoren werden Polynome werden Polynome hhii((xx) gebildet:) gebildet:

hh11((xx) = ) = xx44 + 6 + 6 hh22((xx) = ) = xx55 + + xx33 + 6 + 6xx

hh33((xx) = ) = xx66 +3 +3xx33 + 2 + 2

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

Der Berlekamp-Der Berlekamp-Algorithmus 7Algorithmus 7

Die Dimension Die Dimension dd der Basis liefert dabei gerade der Basis liefert dabei gerade die Anzahl die Anzahl irreduziblerirreduzibler Faktoren. Faktoren.

Diese möglichen Faktoren Diese möglichen Faktoren ffii(x) erhalten wir (x) erhalten wir durch Berechnung der ggT(durch Berechnung der ggT(ff((xx), ), hhii((xx)-c) = )-c) = ggii((xx))

Sobald wird Sobald wird d d Faktoren gefunden haben, Faktoren gefunden haben, terminiert der Algorithmus.terminiert der Algorithmus.

gg11((xx) = ) = xx22+4+4xx+1+1, gg22((xx) = ) = xx3+2+2, , gg33((xx) = ) = x4+1, wobei aber wobei aber xx44+1=(+1=(xx22+4+4xx+1)(+1)(xx22+3+3xx+1) mod 7 +1) mod 7 noch zerlegt werden kannnoch zerlegt werden kann

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

Der Berlekamp-Der Berlekamp-Algorithmus 8Algorithmus 8

Die Faktorisierung über ZDie Faktorisierung über Z77 lautet: lautet:ff77((xx) = ) = ((xx3+2)+2)(x(x22+4x+1)(x+4x+1)(x22+3x+1) +3x+1)

Weitere Beispiele:Weitere Beispiele:ff55((xx) = () = (xx2+2)+2)(x(x22+2+2xx+4)(x+4)(x22+3)(x+3) +3)(x+3) ff1313((xx) = ) = ((xx3+2)+2)(x(x22+8)(x+8)(x22+5)+5)ff2929((xx) = () = (xx22+17)(+17)(xx22+12)(+12)(xx22+3+3xx+9)(+9)(xx+26)+26)ff991991((xx) = ) = ((xx3+2)+2)((xx22+571+571xx+1)(+1)(xx22+420+420xx+1)+1)

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

„„Inside CAS“Inside CAS“Teil I: Polynome faktorisierenTeil I: Polynome faktorisieren

EinleitungEinleitung Kronecker-Algorithmus im Ring Z[x]Kronecker-Algorithmus im Ring Z[x] Berlekamp-Algorithmus in ZBerlekamp-Algorithmus in Zpp[x][x]„„Lifting“ nach Z[x]Lifting“ nach Z[x] Cantor und Zassenhaus (1980) prohabilistischCantor und Zassenhaus (1980) prohabilistisch Multivariate Polynome (Kronecker)Multivariate Polynome (Kronecker)

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

„„Lifting“ nach Z[Lifting“ nach Z[xx]] Wie erhalten wir aus Faktorisierungen in ZWie erhalten wir aus Faktorisierungen in Zpp[[xx] die ] die

Faktorsierung in Z[Faktorsierung in Z[xx]?]? 1. Idee1. Idee: Modulo eine : Modulo eine grossegrosse Primzahl Primzahl pp faktorisieren faktorisieren 2. Idee2. Idee: Modulo eine : Modulo eine kleinekleine Primzahl Primzahl qq faktorisieren faktorisieren

und dann Faktorisierung modulo und dann Faktorisierung modulo pp==qqtt daraus daraus ermitteln (Hensel-Lifting)ermitteln (Hensel-Lifting)

In beiden Fällen: Schranke (Mignotte) für den Modul In beiden Fällen: Schranke (Mignotte) für den Modul pp finden, so dass Faktoren in Z finden, so dass Faktoren in Zpp[[xx] erscheinen, die ] erscheinen, die auch in Z[x] vorkommen und dann Probedivisionenauch in Z[x] vorkommen und dann Probedivisionen

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

„„Inside CAS“Inside CAS“Teil I: Polynome faktorisierenTeil I: Polynome faktorisieren

EinleitungEinleitung Kronecker-Algorithmus im Ring Z[x]Kronecker-Algorithmus im Ring Z[x] Berlekamp-Algorithmus in ZBerlekamp-Algorithmus in Zpp[x][x] „„Lifting“ nach Z[x]Lifting“ nach Z[x]Cantor und Zassenhaus (1980) prohabilistischCantor und Zassenhaus (1980) prohabilistischMultivariate Polynome (Kronecker)Multivariate Polynome (Kronecker)

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

„„Inside CAS“Inside CAS“LiteraturLiteratur

M. Kaplan: Computeralgebra, Springer, 2005M. Kaplan: Computeralgebra, Springer, 2005 D. E. Knuth: Arithmetik, Springer, 2001D. E. Knuth: Arithmetik, Springer, 2001 F. Winkler: Polynomial Algorithms in F. Winkler: Polynomial Algorithms in

Computer Algebra, Springer, 1996Computer Algebra, Springer, 1996 Geddes, Czapor, Labahn: Algorithms for Geddes, Czapor, Labahn: Algorithms for

Computer Algebra, Kluwer 1992Computer Algebra, Kluwer 1992

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

„„Inside CAS“Inside CAS“SchlussbemerkungenSchlussbemerkungen

Hinter dem Faktorisieren steckt Hinter dem Faktorisieren steckt interessante Mathematik.interessante Mathematik.

Algorithmisches Faktorisieren ist nicht Algorithmisches Faktorisieren ist nicht streng deterministisch.streng deterministisch.

Ein Algorithmus zum Faktorisieren Ein Algorithmus zum Faktorisieren braucht viel Rechenaufwand.braucht viel Rechenaufwand.