Preview only show first 10 pages with watermark. For full document please download

Symbolisches Rechnen Vorlesung Wintersemester 2006, 2014

   EMBED


Share

Transcript

Symbolisches Rechnen Vorlesung Wintersemester 2006, 2014 Johannes Waldmann, HTWK Leipzig 11. Dezember 2015 Symbolisches Rechnen: Definition I Rechnen mit Funktionen. (mit Ausdrucken, die Funktionen bezeichnen, ¨ d.h. gebundene Variablen enthalten) Bsp: expand(λx.(x + 1)2 ) = λx.(x 2 + 2x + 1) I im Gegensatz zum numerischen Rechnen (mit Zahlen) wie in der Mathematik (leider) ublich: der Binder (λ) wird nicht ¨ notiert, die gebundenen Variablen sehen dadurch frei aus: expand((x+1)ˆ2); Symbolisches Rechnen: Motivation hat weitreichende Anwendungen: I Losen ¨ von (parametrisierten) Aufgabenklassen (fur ¨ numerisches Rechnen muß Parameter fixiert werden) I exaktes Losen ¨ von Aufgaben (numer. R. mit Maschinenzahlen: nur Approximation) I experimentelle, explorative, exakte Mathematik ist nutzlich im Studium, benutzt und vertieft: ¨ I I I Mathematik (Analysis, Algebra) Algorithmen-Entwurf, -Analyse Prinzipien von Programmiersprachen ¨ Uberblick I Grundlagen (6 Wochen) I I I Vertiefung (6) I I I I Term-Ersetzungs-Systeme (Differentiation, Vereinfachung) exaktes Rechnen mit (beliebig großen) Zahlen Vektoren (Gitterbasen) ¨ Polynome, Grobnerbasen Geometrische Konfigurationen und Beweise Ausblick (2): Musik-Notationen, Beweisuberpr ufer, ... ¨ ¨ Literatur I I Wolfram Koepf: Computeralgebra, Springer, 2006. http: //www.mathematik.uni-kassel.de/˜koepf/CA/ ¨ Hans-Gert Grabe: Einfuhrung in das Symbolische ¨ ¨ Rechnen, Grobnerbasen und Anwendungen, Skripte, ¨ Leipzig http://www.informatik. Universitat uni-leipzig.de/˜graebe/skripte/ I Franz Baader and Tobias Nipkow: Term Rewriting and All That, Cambridge, 1998. http://www21.in.tum.de/˜nipkow/TRaAT/ I Gerhard Nierhaus: Algorithmic Composition, Springer, 2009. Software I Maxima http://maxima.sourceforge.net/ Hinweis: benutze rlwrap maxima I GHC http://www.haskell.org/ghc/ I Geogebra http://www.geogebra.org/ I Coq/Coqide http://coq.inria.fr/, Isabelle/HOL http://isabelle.in.tum.de/ Beispiel: S.R. und Term-Ersetzung Regeln fur ¨ symbolisches Differenzieren (nach t): D(t) -> 1 D(constant) -> 0 D(+(x,y)) -> +(D(x),D(y)) D(*(x,y)) -> +(*(y,D(x)),*(x,D(y))) D(-(x,y)) -> -(D(x),D(y)) Robert Floyd 1967, zitiert in: Nachum Dershowitz: 33 Examples of Termination, http://citeseerx.ist.psu.edu/viewdoc/ summary?doi=10.1.1.31.9447 I ¨ Korrektheit? Termination? Komplexitat? I Strategie (Auswahl von Regel und Position)? I ausreichend? angemessen? Beispiel: Termersetzung (cont.) data E = Zero | One | T | Plus E E | Times E E deriving Show e :: E e = let b = Plus T One in Times b b d :: E -> E d e = case e of Zero -> Zero ; One -> Zero ; T -> One Plus x y -> Plus (d x) (d y) Times x y -> Plus (Times y (d x)) (Times x (d y)) Beispiel: Inverse Symbolic Calculator http: //oldweb.cecm.sfu.ca/projects/ISC/ISCmain.html zur Bestimmung ganzzahliger Relationen (z.B. zwischen Potenzen einer numerisch gegebenen Zahl) sqrt(2+sqrt 3) ==> 1.9318516525781366 Roots of polynomials of degree less than or equal to 1931851652578136 = -1+4*xˆ2-xˆ4 mit LLL-Algorithmus (Lenstra, Lenstra, and Lovasz, 1982), der einen kurzen Vektor in geeignetem Gitter bestimmt. Hausaufgaben KW 42 I zum Haskell-Programm zum Symb. Differenzieren: I I I ISC I I fuge Syntax und Regel fur ¨ ¨ Quotienten hinzu schlage Regeln zur Vereinfachung vor p √ 2+ 3 verifziere diese Behauptung fur ¨ Mixed constants with 5 operations 1931851652578136 = 1/2/sin(Pi/12) √ √ 2 bestimme ein Polynom mit Nullstelle 2 + 3 3 ¨ Ubung KW 42 zu Aufgabenblatt Geometrie http://www.imn.htwk-leipzig.de/˜waldmann/edu/ ws14/sym/SR-1/Aufgaben.pdf I Skizze zu Aufgabe 4 (kein Beweis), Begriff kollinear I Beweis Aufgabe 7 (von Hand) I Aufgabe 6 fur ¨ Zukunft ¨ die nahere Beispiele aus Einf. Symb. Rechn. http://www.imn.htwk-leipzig.de/˜waldmann/edu/ ws14/sym/SR-1/folien.pdf I Kreisgleiter (Folie 13) herleiten und nachrechnen (maxima) e : subst(r*(x+1),y, xˆ2+yˆ2-1); s : solve(e, x); subst (part (s,2), e); ratsimp (%); Beachte: Vorzeichenfehler auf Folie. Symbolisches Differenzieren I . . . von Quotienten: ¨ Termbaume, Positionen I I I I I Signatur Σ: Menge von Funktionssymbolen mit Stelligkeit, Bsp. {(s, 1), (z, 0), (p, 2)}, Term(Σ) ist die kleinste Menge M mit . . . Pos(t): Menge der Positionen in t ∈ Term(Σ): . . . t(p) Symbol an Position p in t t |p Teilterm an Position p in t Beispiele: I I I Term t = p(z, s(s(z))), Positionen Pos(t) = {, 1, 2, 21, 211}, Symbol t(2) = s, Teilterm t|2 = s(s(z)), Baum-Bereiche Def: Menge P ⊆ N∗ heißt Baum-Bereich (tree domain), wenn (. . . es einen Term t gibt, so daß P = Pos(t) — das soll aber ohne Benutzung des Term-Begriffs definiert werden) I ∈P I P abgeschlossen unter . . . Hinweise: definiere und benutze Relationen [baab] = 6 > [aabab] = . . . > [aaaabb] = . . . Def: (D, >, [·]) ist wohlfundierte monotone Algebra I I keine unendlichen absteigenden Ketten in (D, >) Monotonie: ∀c ∈ Σ, x ∈ D, y ∈ D : x > y ⇒ [c](x) > [c](y ) Def: Algebra ist kompatibel mit R: I Kompatibilitat: ¨ ∀(l, r ) ∈ R, x ∈ D : [l](x) > [r ](x) Satz: →R terminiert ⇐⇒ ∃ wfmA, die mit R kompatibel ist. Beispiel wfmA Signatur Σ = {P/2, S/1, Z /0}. Regelmenge R = {P(Z , y) → y , P(S(x), y ) → S(P(x, y )) verschiedene Σ-Algebren uber N, uberpr ufe ¨ ¨ ¨ Eigenschaften. Welche liefert einen Terminationsbeweis fur ¨ R? I I I [P](x, y ) = x + y, [S](x) = x + 1, [Z ] = 0 [P](x, y ) = 2x, [S](x) = x + 1, [Z ] = 1 [P](x, y ) = 2x + y + 1, [S](x) = x + 1, [Z ] = 0 Aufgabe: finde kompatible wfmA fur ¨ R ∪ {M(Z , y) → Z , M(S(x), y ) → P(M(x, y), y )} Aufgabe: . . . fur ¨ A(A(D, x), y) → A(x, A(x, y)) Merke: kompatibel: links > rechts, Modell: links = rechts, Systematik wfmA Beispiele benutzten lineare Funkt. uber N. Erweiterungen: ¨ Polynome uber N ¨ lineare Funktionen (Matrizen) uber Nd ¨ I . . . uber anderen Halbringen, wie ({−∞} ∪ N, max, +) ¨ ¨ ¨ fur man losen: ¨ jedes solche Klasse von Algebren mochte das Verifikations-Problem: I Monotonie, Kompatibilitat ¨ mit R I I das Synthese-Problem: I gegeben R, gesucht R-kompatible wfmA ¨ (z.B. Losen des Constraint-Systems fur ¨ Koeffizienten) siehe http://www.termination-portal.org/ Aufgaben (evtl. autotool) bestimme wfmAs fur ¨ I I I Peano-Multiplikation (Variante A: ohne Additionsregeln, B: mit) symbolisches Differenzieren {p ∧ (q1 ∨ q2 ) → (p ∧ q1 ) ∨ (p ∧ q2 ), (p1 ∨ p2 ) ∧ q → (p1 ∧ q) ∨ (p2 ∧ q)}. beweise: I I das Verifikationsproblem fur ¨ lineare Interpretationen (uber ¨ N, uber Nd ) ist entscheidbar ¨ das Syntheseproblem fur ¨ lineare Interpretationen mit Anstieg 1 (d.h. [f ](x1 , . . . , xk ) = x1 + . . . + xk + cf ) ist entscheidbar. Motivation gesucht ist Entscheidungsverfahren fur ¨ das Wortproblem: I Eingabe: E uber Σ, s, t ∈ Term(Σ, V ) ¨ I Frage: s ≈E t Plan: Vergleich der →E -Normalformen von s, t. Beispiel: E = {(P(Z , y), y), (P(S(x), y), S(P(x, y))}, s = P(S(S(Z )), x), t = S(P(P(Z , S(Z )), x)), Probleme: 1. Existenz und 2. Eindeutigkeit der Nf. Bsp: E = {(aba, )}, s = abbbaa, t = bba Motivation (II) gesucht ist Entscheidungsverfahren fur ¨ s ≈E t Plan: Vergleich der →E -Normalformen von s, t. Probleme: 1. Existenz und 2. Eindeutigkeit der Nf. ¨ Losung: I I (Ziel): 1. Termination und 2. Konfluenz ¨ (Verfahren): Vervollstandigung. Bsp: E = aba ≈ , abbbaa ≈E bba? Orientiere aba → , nicht konfluent wegen ba ← ababa → ab, neue Regel ba → ab, nicht konfluent wegen . . . , neue Regel . . . , konfluent? terminierend? NFs von s, t? Konfluenz Eine zweistellige Relation ρ heißt konfluent, wenn ∀x, y1 , y2 : ρ∗ (x, y1 ) ∧ ρ∗ (x, y2 ) ⇒ ∃z : ρ∗ (y1 , z) ∧ ρ∗ (y2 , z) (Bild ist einfacher zu merken) I Satz: wenn ρ auf M konfluent ist, dann besitzt jedes x ∈ M ¨ hochstens eine ρ-Normalform. I Beachte: es wird nicht behauptet, daß x uberhaupt eine ¨ Normalform besitzt. ¨ sich Konfluenz Falls ρ jedoch terminiert, dann laßt charakterisieren und entscheiden durch einen Hilfsbegriff ¨ (lokale Konfluenz, spater) Lokale Konfluenz I Eine zweistellige Relation ρ heißt lokal konfluent, wenn ∀x, y1 , y2 : ρ(x, y1 ) ∧ ρ(x, y2 ) ⇒ ∃z : ρ∗ (y1 , z) ∧ ρ∗ (y2 , z) I Beachte: es gibt Relationen ρ, die lokal konfluent sind, aber nicht konfluent. I Satz: wenn ρ terminiert und lokal konfluent ist, dann ist ρ konfluent. lokale Konfluenz erkennt man durch Betrachtung von ¨ Uberlappungen von linken Regelseiten. diese (Teilterme der) linke Seiten enthalten Variablen, deswegen muß man unifizieren. Unifikation—Begriffe I Substitution: partielle Abbildung σ : V → Term(Σ, V ), so daß kein v ∈ dom σ in img σ vorkommt. I Substitution σ auf Term t anwenden: tσ (definiert durch Induktion uber t) ¨ I Produkt von Substitutionen: so definiert, daß t(σ1 ◦ σ2 ) = (tσ1 )σ2 (wie geht das genau?) I die so definierten Substitutionen sind idempotent: σ ◦ σ = σ. Unifikation—Definition Unifikationsproblem (unvollst.) I I Eingabe: Terme t1 , t2 ∈ Term(Σ, V ) Ausgabe: eine Substitution σ = mgu(t1 , t2 ) mit: I σ unifiziert t1 , t2 : t1 σ = t2 σ. Beispiele: bestimme jeweils Menge der Unifikatoren von: I I I I f (X ), f (a) X , f (Y ) f (X ), g(Y ) X , f (X ) ¨ Fur man bestimmte ¨ den Fall mehrerer Unifikatoren mochte ¨ ¨ auswahlen. (⇒ vollst. Def. nachste Folie) Unifikation—Definition (vollst.) I I Eingabe: Terme t1 , t2 ∈ Term(Σ, V ) Ausgabe: eine Substitution σ = mgu(t1 , t2 ) mit: I I σ unifiziert t1 , t2 : t1 σ = t2 σ. σ ist minimal bzgl. ≤ unter allen Unifikatoren von t1 , t2 ¨ benutzt Pra-Ordnung auf Substitutionen: σ1 ≤ σ2 ⇐⇒ ∃τ : σ1 ◦ τ = σ2 Satz: jedes Unifikationsproblem ist entweder gar nicht oder bis ¨ auf Umbenennung eindeutig losbar ¨ Bem: Pra-Ordung: transitiv und symmetrisch. (Beweis?) Warum ist ≤ keine Halbordnung? Unifikation—Algorithmus mgu(s, t) nach Fallunterscheidung I I I s ist Variable: . . . t ist Variable: symmetrisch s = f (s1 , s2 ) und t = g(t1 , t2 ): . . . Bemerkungen: I I I korrekt, ubersichtlich, aber nicht effizient, ¨ ¨ ¨ es gibt Unif.-Probl. mit exponentiell großer Losung (U) mit komprimierter Darstellung: Linearzeit. autotool-Quelltexte Substitution und Unifikation: http://autolat.imn.htwk-leipzig.de/gitweb/?p=tool; a=tree;f=collection/src/Prolog;hb=for-ghc-7.8 Kritische Paare Fur Σ: falls ¨ ein Termersetzungssystem R uber ¨ I I I I (l1 → r1 ) und (l2 → r2 ) sind Regeln in R ohne gemeinsame Variable (ggf. vorher umbenennen!) es gibt p ∈ Pos(l1 ) so daß l1 [p] und l2 unifizierbar sind d. h., es existiert mgu σ mit l1 [p]σ = l2 σ falls (l1 → r1 ) = (l2 → r2 ) (vor Umbenennung), dann p 6=  dann heißt (r1 σ, (l1 σ)[p := r2 σ]) kritisches Paar von R. Ein kritisches Paar (s, t) von R heißt zusammenfuhrbar, falls ¨ ∗ ∗ ∃u : s →R u ∧ t →R u. Satz: ein Termersetzungssystem ist genau dann lokal konfluent, wenn alle kritische Paare zusammenfuhrbar sind. ¨ Orthogonale Systeme I ein TES R uber Σ heißt nichtuberlappend, wenn R keine ¨ ¨ kritischen Paare besitzt. I ein TES R heißt linkslinear, wenn in keiner linken Regelseite eine Variable mehrfach vorkommt. I ein TES R heißt orthogonal, falls es linkslinear und nichtuberlappend ist. ¨ Satz: jedes orthogonale System ist konfluent. Funktionale Programmierung ≈ System R ist orthogonal und ¨ . . . (nachste Folie) Konstruktor-Systeme I Fur Σ: ein Symbol f ∈ Σ heißt definiert, wenn ¨ TES R uber ¨ es als Wurzel einer linken Regelseite in R vorkommt. I Alle anderen Symbole heißten Konstruktoren. I R heißt Konstruktor-System, falls in jeder linken Seite nur ein definiertes Symbol vorkommt (und zwar in der Wurzel). Beispiele: {P(Z , y ) → . . . , P(S(x), y ) → . . . , M(Z , y ) → . . . , M(S(x), y ) → . . . } ist Konstruktor-System, definierte Symbole sind {P, M}, Konstruktoren sind {S, Z } aber {A(A(D, x), y) → A(x, A(x, y ))} nicht. ¨ Vervollstandigung (basic) . . . ist Algorithmus mit dieser Spezifikation I I Eingabe: Gleichungssystem E Ausgabe: Ersetzungssystem R mit Eigenschaften: I I R ist konvergent (:= terminierend und konfluent) ≈R = ≈E ¨ Implementierung: zusatzliche Eingabe: eine wfmA A I I ordne Paare aus E bzgl. >A , Resultat R0 wiederhole bis Ri+1 = Ri : Ri+1 := Ri ∪ die folgenden Paare: ∀(s, t) ∈ CP(Ri ): I I ¨ wahle s0 ∈ NfRi (s), t 0 ∈ NfRi (t) 0 falls s 6= t 0 , ordne (s0 , t 0 ) bzgl. >A . ¨ Korrektheit? Termination? beachte: 3 Fehlermoglichkeiten ¨ Vervollstandigung (improved) ¨ bei einfacher Vervollstandigung: I jedes neue kritische Paar muß sofort orientiert werden. I manche sind evtl. nicht orientierbar alternativer Ansatz: I das Orientieren aufschieben, I bis neue Regeln vorliegen, die zur Umformung des Paares ¨ benutzt werden konnen I so daß das umgeformte Paar orientierbar ist ¨ (nichtdeterministischer) Vervollstandigungsalgorithmus wird formuliert mittels Inferenzsystem ¨ Inferenzsystem fur ¨ Vervollstandigung (Leo Bachmair 1991, zitiert in Baader/Nipkow) I I I Grundbereich: Paare (E, R) , Start: (E0 , ∅), Ziel: (∅, Rn ) Invariante: →Rk ⊆>A und ≈E0 =≈Ek ∪Rk S Fairness: CP(Rn ) ⊆ k Ek ¨ Regeln (weiter evtl. in Ubung) I I I I deduce: (s ←R u →R t) ⇒ (E, R) ` (E ∪ {s ≈ t}, R) orient: (s >A t) ⇒ (E ∪ {s ≈ t}, R) ` (E, R ∪ {s → t}) delete: (E ∪ {s ≈ s}, R) ` (E, R) simplify: (s →R u) ⇒ (E ∪ {s ≈ t}, R) ` (E ∪ {u ≈ t}, R). Korrektheit? Warum ist einfache Vervollst. ein Spezialfall? ¨ Vervollstandigung heute I Anwendung in Theorembeweisern z.B. http://www.waldmeister.org/ I Competition: http://www.cs.miami.edu/˜tptp/CASC/ Forschung z.B. an U Innsbruck http://cl-informatik.uibk.ac.at/mkbtt/ ¨ ¨ ¨ wahle/ andere Terminationsordnung wahrend der Rechnung I I Veranschaulichung (GUI) http: //cl-informatik.uibk.ac.at/software/kbcv/ Werbung: ISR 2015 8th International School on Rewriting ISR 2015 August 10-14, Leipzig, Germany http://www.imn.htwk-leipzig.de/ISR2015/ I basic course (Prof. Aart Middeldorp, UIBK) I advanced courses (verschiedene) kann als Wahlfach belegt werden wir suche Studenten, die bei Vorbereitung und Durchfuhrung ¨ mithelfen lokale Organisation: A. Geser, J. Waldmann. Teilbarkeit, Ringe, Ideale Wiederholung: fur ¨ ganze Zahlen: I Def. (a | c) := (∃b : a · b = c). Bsp: 2 | 12, −5 | 15 ¨ Ubung: was stimmt: 3 | 0, 3 | 3, 0 | 3, 0 | 0 I ¨ Def. gcd (großter gemeinsamer Teiler) I ¨ Merke: großter“ ist irrefuhrend, es geht nicht um <. ¨ ” Zur Definition wird nur | benutzt. I Bestimmung des gcd durch Algorithmus von Euklid Beachte: jetzt brauchen wir >. Diese Ideen (Begriffe und Algorithmen) sollen verallgemeinert werden (auf Polynome, Vektoren). Algorithmus von Euklid input: a >= 1, b >= 1; // a = A, b = B while (a /= b) { // Invariante: gcd(a,b) = gcd(A,B) // Variante: max (a,b) if a > b then a := a - b else b := b - a } output: a // a = gcd(A,B) Beweis: I I I Termination: die Variante ist ∈ N und streng fallend. Korrektheit: die Invarianz folgt aus gcd(a, a) = a, gcd(a − b, b) = gcd(a, b). Beweise dafur: ¨ mit gcd-Definition. Erweiterter Algorithmus von Euklid Satz: g = gcd(a, b) ⇒ ∃p, q : ap + bq = g Bsp: 3 = gcd(15, 21), p = . . . , q = . . . . Beweis: konstruktiv, (p, q) ausrechnen durch: egcd :: N -> N -> (Z,Z) egcd a b = if b == 0 then ( ... , ... ) else let (d , m) = divMod a b (p’ , q’) = egcd b m in ( ... , ... ) Beweis fur ¨ Algorithms: I Korrektheit nach Konstruktion I Termination durch Variante: . . . Euklid — Zusammenfassung wesentliche Argumente sind: I Korrektheit: Subtraktion von Vielfachen bzw. Berechnung des Restes: Resultat ist im erlaubten Bereich“ ” (ist ein Vielfaches des gcd) I Termination: Rest ist kleiner als Divisor. andere Bereiche, in denen das funktioniert? Ringe Ring (R, 0, 1, +, ·) I I (R, 0, +) ist komm. Gruppe, Distributivgesetz fur ¨ · und + (R, 1, ·) ist Monoid, Bsp fur ¨ Ringe: I I Z, Q, C (nicht: N) R ist Ring ⇒ I I I I Matrizen uber R bilden Ring R d×d ¨ Polynome uber R, in Variable X bilden Ring R[X ]. ¨ Polynome uber R, in Variablen X1 , . . . , Xk bilden Ring ¨ R[X1 , . . . , Xk ]. Vektoren R d ? Nein, denn . . . Ideale I Ring (R, 0, 1, +, ·). Def. Menge I ⊆ R heißt (Links-)Ideal, wenn I + I ⊆ I und R · I ⊆ I. I Bsp: R = Z, I = 2Z = Menge der geraden Zahlen. ungerade Zahlen? nichtnegative gerade Zahlen? I Def: das von einer Menge M erzeugte Ideal: hMi := ¨ das (bzgl. Inklusion) kleinste Ideal, das M enthalt. T (equiv.) {I | I ist Ideal und M ⊆ I} I Bsp: h{2}i in Z? h{15, 21}i in Z? (Schreibweise: h15, 21i) I Def: R heißt Hauptidealring, falls jedes Ideal von einem Element erzeugt wird. Bsp: Z, Q[X ]. ¨ Z[X ]? Kein HI-Ring: Q[X , Y ] (Hinweis: hX , Y i). — U: Euklidische Ringe I Def: (R, | · |) ist Euklidischer Ring, falls | · | : R \ {0} → N und ∀a, b ∈ R : b 6= 0 ⇒ ∃q, r : a = b · q + r ∧ |r | < |b|. I Beispiele: (Z, | · |), (Q[X ], deg). ¨ (Pol. in mehreren Variablen nicht, ⇒ Grobnerbasen) I Def: Euklidischer Algorithmus: (a, b) → (b, r ) → · · · → (g, 0). I Lemma: . . . terminiert und hgi = ha, bi. I Satz: (R, | · |) ist Euklidischer Ring ⇒ R ist Hauptidealring. Beweis: I Sei I Ideal in R. Zu konstruieren ist e mit I = hei. ¨ Wahle e ∈ I \ {0} minimal bzgl. | · |. Zeige: I = hei. I Falls f ∈ I \ hei, dann betrachte Euklid (f , e) 7→ g. I g ∈ hf , ei ⊆ I. I Weil e minimal in I, gilt hgi = hei und f ∈ hei. I Polynom-Division I Satz: ∀a, b ∈ Q[X ] : b 6= 0 ⇒ ∃q, r : a = b·q+r ∧deg(r ) < deg(b) I Beweis: konstruktiv durch Angabe eines Algorithmus. Benutze: a 6= 0 ⇒ a = lc a * lt a + red a mit deg(red a) |b2 |) I Satz: . . . erzeugt LG-reduzierte Basis in poly. Zeit. Korrektheit offensichtlich, Laufzeit: folgt aus |b10 |2 < |b1 |2 /3. Eigenschaften von Gittern I jedes Gitter Γ hat eine Basis B = {b1 , . . . , bn }: ∀x ∈ Γ : ∃c1 , . . . , cn ∈ Z : x = b1 c1 + . . . + bn cn I je zwei Basen B, B 0 fur ¨ Γ gilt: ∃T ∈ Zn×n : B 0 = BT . 0 ¨ (B und B sind aquivalent, B ∼ B0) Dann det T ∈ {−1, 1}. ⇒ folgende Def. ist erlaubt: I Die Determinante eines Gitters det Γ ist | det B| fur ¨ eine beliebige Basis B von Γ. det Γ ist das Volumen des Parallel-Epipeds (Spates) aus den Basisvektoren. Orthogonale Basen (hier alles uber Rn anstatt Zn ) ¨ I Def. Vektoren x, y sind orthogonal, falls hx, y i = 0 I Basis B = [b1 , . . . , bn ] orthogonal: i 6= j ⇒ hbi , bj i = 0 m.a.W., B · B T ist eine Diagonalmatrix. ¨ Satz: Jede Basis B besitzt eine aquivalente orthogonale Basis B ∗ , bestimme B ∗ durch Gram-Schmidt-Orthogonalisierung (GSO) bi∗ := bi − πspan(b1 ,...,bi−1 ) (bi ) nach: I I Satz: fur ¨ µ = hx, y i/hy , y i gilt hx − µy, yi = 0 I Bezeichnung: µi,j := hbi , bj∗ i/hbj∗ , bj∗ i. Bestimmung von det Γ durch GSO I I mit GSO kann man die Determinante eines beliebigen Gitters mit Basis B schnell ausrechnen: bestimme O-Basis B ∗ mit B ∼ B ∗ und Q T det(B ∗ · B ∗ ) = i |bi∗ |2 und det(B ∗ · B ∗ T ) = det(B ∗ ) det(B ∗ T ) = det(B ∗ )2 Q (Hadamard) fur ¨ jede Basis B fur ¨ Γ gilt b∈B |b| ≥ det Γ. Beweis: det Γ = det B = det B ∗ und |bi | ≥ |bi∗ | wg. Projektion ¨ Vektorlangen in Gittern I gegeben: Gitter Γ (durch Basis B). ¨ gesucht: Abschatzung fur ¨ λ := min{|x| : x ∈ Γ \ {0}} I λ ≥ mini |bi∗ | mit {b1∗ , . . .} = B ∗ = GSO(B) I (Minkowski): det Γ ≥ vol Balld (λ/2) = (λ/2)d vol Balld (1) vol Balld (1) ≥ vol W √ √ mit W = Wurfel ¨√ mit Eckenmenge {−1/ d, +1/ d}d vol W = (2/ d)d √ √ aus det √ Γ ≥ (λ/2)d (2/ d)d folgt λ ≤ det Γ1/d d ¨ Faktor d“ kann noch verbessert werden. (evtl. U) ” Gitterbasisreduktion (naiv) direkte Verallgemeinerung von Dimension 2: I I I I I Gitter Γ mit Basis B, while (existieren i 6= j, q ∈ Z \ {0} mit |bi − qbj | < |bi |) do bi := bi − qbj ¨ q so wahlen, daß |bi − qbj | minimiert wird (bestimme Minimum einer quadr. Funktion) Implementierung auf Lattice Reduction Challenge anwenden: fur ¨ d = 200 OK, fur ¨ d ≥ 300 nicht. naive Idee muß modifiziert werden: Algorithmus von Lenstra, Lenstra, Lovasz. LLL-reduzierte Basen (size condition) Idee: reduziere bi bzgl. bj∗ (nicht: bj ) I Gitter Γ, Basis B in Zd , O-Basis B ∗ = GSO(B) in Qd . I Def µi,j = hbi , bj∗ i/hbj∗ , bj∗ i, ¨ Def: B heißt großenreduziert, falls ∀i > j : |µi,j | ≤ 1/2. I I I Algorithmus (size reduction) while (existiert i > j mit |µi,j | > 1/2) do bi := bi − bµi,j e · bj ¨ Satz: diese Alg. liefert eine zu B aquivalente ¨ großenreduzierte Basis . . . in Polynomialzeit (quadratisch) LLL-reduzierte Basen (Lovasz condition) I Def. Lovasz-Bedingung (mit Parameter δ) an Stelle i: |πspan(b1 ,...,bi−1 ) (bi )|2 ≤ δ · |πspan(b1 ,...,bi−1 ) (bi+1 )|2 ¨ |b∗ |2 ≤ δ · |b∗ + µi+1,i b∗ |2 equiv. (U) i i+1 i I ∗ |2 alternativ: |bi∗ |2 ≤ 2|bi+1 (nach V. Shoup, siehe v.z.Gathen: MCA, Notes 16.2) ¨ Algorithmus (LLL): do { großenreduktion; wenn ∃i : ¬Lovaszδ (i), dann bi ↔ bi+1 ; continue } I I liefert (1.) Basis mit kurzen Vektor (2.) in Polynomialzeit LLL-Algorithmus: Korrektheit ¨ 1. Satz: B großenu. Lovasz-reduziert ⇒ |b1 | ≤ 2(d−1)/2 λ(Γ) LLL-Algorithmus: Termination, Laufzeit 2. Satz: der Wert von I I P i log det(span(b1 , . . . , bi )) ¨ ist anfangs beschrankt durch . . . ¨ ¨ bleibt bei Großenreduktion unverandert I sinkt bei Tausch um eine Konstante ¨ (der von δ abhangt - wie? ¨ Daraus ergibt sich der Bereich der fur Werte) ¨ δ zulassigen I ist immer ≥ 0 Folgerung: Laufzeit von LLL ist polynomiell in der Dimension. ¨ Quellen, Erganzungen https://cseweb.ucsd.edu/classes/wi12/ cse206A-a/lec3.pdf http://www.cims.nyu.edu/˜regev/teaching/ lattices_fall_2004/ln/lll.pdf http://www.latticechallenge.org/ ¨ sollte man mal ausprobieren: welche Vektorlangen man durch naive Implementierung der Reduktion erreicht. Akustische Signale (Audiodaten) I ¨ ¨ (physikalisch) Gerausch = Folge von Luftdruckanderungen ¨ . . . die sich wellenformig ausbreitet und (u.a.) vom Ohr wahrgenommen wird I (mathematisch) Abbildung von R (Zeit) nach R (Druck) I (informatisch) Bsp. Audio-Synthese Audiosynthese mit Csound I Barry Vercoe, MIT Media Lab, 1968: Music 360, 1973: Music 11, 198*: Csound, http://www.csounds.com/ Software-Synthesizer I Anton Kholomiov: https://hackage.haskell.org/ package/csound-expression Haskell-API fur ¨ csound ghci :m + Csound.Base Csound.IO dac $ osc 440 -- Audio-Ausgabe renderCsd ( osc 440 ) >>= putStrLn -- Quelltext Partituren verwendet: I ¨ Atome: Note (Dauer, Hohe) und Pause (Dauer) I Verknupfungen: nacheinander, wiederholt, gleichzeitig ¨ Werkzeuge (Beispiele): I Han-Wen Nienhuys, Jan Nieuwenhuizen (2003) http://www.lilypond.org/pdf/xivcim.pdf I Paul Hudak, . . . : Haskore Music Notation — An Algebra of Music, JFP 1995 http://citeseerx.ist.psu.edu/ viewdoc/summary?doi=10.1.1.36.8687 Paul Hudak, Henning Thielemann: https://hackage.haskell.org/package/haskore An Algebra of Music (Semantik) Modul haskore-vintage:Haskore.Performance die semantische Algebra: I I Grundbereich: Musikstucke ¨ (als Folge von Ereignissen, monoton nach Zeitpunkt) data Event = Event {eTime::Time, eDur::DurT , ePitch::AbsPitch, eVol::Volume} type Performance = [Event] Operationen: I I I herstellen: Noten, Pausen verknupfen: nacheinander (++), nebeneinander merge ¨ bearbeiten: Tempo skalieren, transponieren An Algebra of Music (Syntax, Interpretation) die syntaktische Algebra (Term-Algebra) data Music = Note Pitch Dur [Attribute] | Rest Dur | Music :+: Music | Music :=: Music | Tempo (Ratio Int) Music | Transpose Int Music die Interpretationsfunktion perform :: PMap -> Context --> Music --> Performance -let m = Note (C,4) 1 [] let p = perform defPMap defCon let s = performToMidi p defUpm outputMidiFile "test.midi" s ˆ Parameter ˆ Syntax ˆ Semantik m An Algebra of Music (Eigenschaften) Beispiele: I nacheinander“ ist assoziativ : ” perform pmap ctxt (a :+: (b :+: c)) == perform pmap ctxt ((a :+: b) :+: c) I Transpose t ist Homomorphismus: . . . Diskutiere: I neutrale Elemente? I kommutativ? I distributiv? (wer uber wen? von links, von rechts?) ¨ I ist Performance ein Halbring? Partitur und Auffuhrung ¨ perform :: ... -> Music -> Performance I Komponist Rhys Chatham, http://www.rhyschatham.net/ http://www.allmusic.com/artist/mn0000759643 Guitar Trio (1977) sieht so aus: Note (C,2) 1 [] und dauert 30 min. eingespielt z.B. von Band Of Susans auf LP The Word and The Flesh 1991. I John Cage (1912-1992): As Slow As Possible wird seit 2001 in Halberstadt aufgefuhrt ¨ http://www.aslsp.org/, wird 639 Jahre dauern, ¨ nachster Klangwechsel: 5. September 2020. ¨ Strome I Semantik: (unendliche) Folge von Werten (z.B. Noten) I Realisierung I I Software: OO: Iterator, funktional (lazy) : data Stream a = Cons a (Stream a) Mathematik: I I I im Bereich Formale Sprachen: ω-Wort, s ∈ Aω = {f | f : N → A} im Bereich Algebra: formale Potenzreihe P S(x) = s0 + s1 x 1 + s2 x 2 + . . . = i∈N si x i Analysis: S heißt die erzeugende Funktion fur ¨ s Herbert Wilf: Generatingfunctionology (1990), http: //www.math.upenn.edu/˜wilf/DownldGF.html ¨ Rechnen mit Stromen (I) data Stream a = Cons a (Stream a) Spezifikation und Verarbeitung durch Gleichungssysteme: Beispiele: I o :: Stream Int ; o = Cons 1 o P erz. Fkt. o = 1 + x · o, o = 1/(1 − x), o = i∈N 1 · x i I map :: (a -> b) -> Stream a -> Stream b map f (Cons x xs) = Cons (f x) (map f xs) s = Cons 1 (map (\ c -> c + 1) s) erzeugende Funktion s = 1 + x · (o + s) ¨ Rechnen mit Stromen (II) data Stream a = Cons { head :: a, tail :: Stream a } zipWith :: (a -> b -> c) -> Stream a -> Stream b -> Stream c zipWith f (Cons x xs) (Cons y ys) = Cons (f x y) (zipWith f xs ys) f = Cons 0 (Cons 1 (zipWith (+) f (tail f))) geschlossener (algebraischer) Ausdruck fur ¨ erzeugende Funktion? Die Papier-Falt-Folge I Definition: f0 = Papierstreifen fk + 1 = falte fk nach links, so daß rechtes Ende auf linkem Ende landet. I Anfangswerte: f0 = , f1 = 1, f2 = 110, f3 = 1101100, . . . I Eigenschaften: I I I fk +1 = fk · 1 · . . . ¨ von fk+1 , damit exist. f := (limk fk ) ∈ {0, 1}ω fk ist Prafix f = merge((10)ω , f ) merge (Cons x xs) ys = Cons x (merge ys xs) zz = Cons 1 (Cons 0 zz) ; f = merge zz f I f ist uberschneidungsfreier Pfad (1 = links, 0 = rechts) ¨ Klassische Musiktheorie I (Bsp.) die Papier-Falt-Folge f kann man als Tonfolge: ¨ das klingt: unregelmaßig, aber langweilig (weil ziellos) I wodurch wird eine Tonfolge zu Musik? dadurch, daß sie einen Komponisten und einen Interpreten ¨ hat, der ein Gefuhl bzw. beim Horer ¨ ausdrucken ¨ hervorrufen will. I ¨ Wollen reicht aber nicht (Kunst kommt von Konnen, . . . ), es gibt Regeln, die beschreiben, ¨ wann Tone wohlklingen (Harmonie, Akkorde) und Tonfolgen spannend sind (Kontrapunkt, Stimmfuhrung) ¨ Leipziger Musikpraktiker und -Theoretiker I Johann Sebastian Bach (1685–1750) http://www.bachmuseumleipzig.de/, http://imslp.org/wiki/Bach-Gesellschaft_ Ausgabe_(Bach,_Johann_Sebastian) I Hugo Riemann (1849–1919) (Hugo-Riemann-Straße: Floßplatz — Bayrischer Platz) Handbuch der Harmonie- und Modulationslehre (1905) https: //archive.org/details/handbuchderharmo00riem Lehrbuch des einfachen, doppelten und imitierenden Contrapunkts (1908) https: //archive.org/details/lehrbuchdeseinfa1908riem Mathematische Musiktheorie ¨ (1990) Guerino Mazzola: Die Geometrie der Tone I Differentialgeometrie: M ist Mannigfaltigkeit: I I ¨ sich durch lokale Karten uberdecken M laßt ¨ (∀x ∈ M : Umgebung von x sieht aus wie ein Rd ) uberlappende Karten passen (diff.bar) zusammen ¨ Motivation in der Mathematik: exakte √ Definition mehrdeutiger Funktionen“, z.B. x 7→ x in C. ” ¨ Riemannsche Flache (Bernhard Riemann, 1826–1866) I musikalische Komposition als Mannigfaltigkeit: I I die lokalen Karten sind Akkorde, A1 paßt zu A2 , wenn A1 ∩ A2 6= ∅ (das ist eine sehr stark vereinfachte Darstellung) Literatur Mathem. Musiktheorie I ¨ ¨ Guerino Mazzola: Geometrie der Tone, Birkhauser 1990. (https://zbmath.org/?q=an:0729.00008) I Thomas Noll: Ist der Tonraum flach oder gekrummt?, Berlin ¨ 2001, http://www.visual-geometry.de/unheard/ materialien/skripte/Tonraum/Tonraum30.11.html I Gerhard Nierhaus: Algorithmic Composition, Springer 2009. (http://www.computermusicjournal.org/ reviews/34-3/doornbusch-nierhaus.html) I Christian Krattenthaler: Musik und Mathematik, http://www.mat.univie.ac.at/˜kratt/artikel/ musimath.html Intern. Math. Nachrichten 224(2013) 29-60, http://www.oemg.ac.at/IMN/ Quelltexte die Beispiele aus der Vorlesung: https://git.imn.htwk-leipzig.de/ws14-code/sr git clone https://git.imn.htwk-leipzig.de/ws14-code/ cd sr cabal sandbox init cabal install cabal haddock --executable --hyperlink-source cabal repl Themen und Prinzip symbolisches Rechnen: I nur Syntax: Terme, Termersetzungssysteme I . . . mit Semantik: I I I I Polynome, algebraische Zahlen Gitter, Vektoren Geometrie Musik Prinzip: beantworte semantische Fragen durch syntaktische Umformungen. (Menge der Umformungsregeln: Kalkul.) ¨ Umformungen I I abstrakt: Termination, Konfluenz (lokal, global), Normalformen konkret I I I fur ¨ Terme: (literale) Ersetzungsrelation, wohlfundierte monotone Algebra, Polynominterpretation, kritische Paare, ¨ Vervollstandigung fur ¨ Vektoren: ¨ Großenreduktion, Lovasz-Reduktion, L3 -Algorithmus fur ¨ Polynome/arithmetische Ausdrucke: ¨ (algebraische) Ersetzung, Simplifikator, Rechnen m. algebr. ¨ Zahlen, zulassige Termordnung, S-Polynome, Buchberger-Algorithmus, Euklid als Spezialfall Anwendungen der Algorithmen I Vervollst.-Algorithmus ⇒ Wortproblem entscheiden ⇒ (Gleichungs-)Theorem beweisen I L3 -Algorithmus ⇒ kurzen Gittervektor finden ⇒ Minimalpolynom finden, (Nachricht entschlusseln, Polynom faktorisieren) ¨ I arithm. Ausdruck simplifizieren (auf 0 testen) ⇒ geometrisches Theorem (v. rationalen konstruktiven Typ) beweisen I ¨ Grobnerbasis ausrechnen ⇒ Idealmitgliedschaft entscheiden ⇒ geometrisches Theorem (v. Gleichungstyp) beweisen ¨ Was (konnte der aufgeweckte Student hier noch) tun? I autotool-Aufgaben dokumentieren, verbessern, erweitern https://autotool.imn.htwk-leipzig.de/cgi-bin/ Trial.cgi?lecture=214 I I I I I abstrakte und Termersetzung ¨ Polynome (Euklid, Grobner) Gitter Geometrie (!) geometrische Geradeausprogramme/Theoreme http://autolat.imn.htwk-leipzig.de/gitweb/?p= tool;a=tree;f=collection/src/Geo;hb=for-ghc-7.8 I Intl. School on Rewriting (10.–14. August) http://www.imn.htwk-leipzig.de/ISR2015/