SXXX/UE-DMG(WINF)/1003/200/30 Übungen DMG Diskrete Mathematik und Graphentheorie Wirtschaftsinformatik Wintersemester Cenker Institut für Statistik und Decision Support Systems Universitätsstraße 5/9, 1010 Wien c September 2003, CC: UEDMG. Kompiliert: 2. September 2003 Zur Übung Sinn und Zweck dieser Sammlung ist es, den Studierenden begleitend zur Vorlesung eine Möglichkeit zu geben, ihr Wissen aus der Vorlesung zu überprüfen, anzuwenden und zu erweitern. In dieser Sammlung sind auch Programmierbeispiele enthalten, die in Gruppen von jeweils 1 bis 5 Studierenden gemeinsam gelöst werden sollen. Die Lösung wird dann von diesen in geeigneter Form (Notebook, Code, Folien mit Erklärung, Beispiele etc.) präsentiert, erklärt und abgegeben. Mindestens 50 % des Programmieraufwandes sind die Dokumentation des Quellcodes! Als Programmiersprachen kommen Java (http://java.sun.com) oder MatLab/SciLab zur Anwendung; es ist sowohl objektorientiert als auch (relativ) unabhängig von der verwendeten Plattform. Borland bietet auf seiner Homepage http://www.borland.com etwa den JBuilder (Personal Edition) für Java gegen Registrierung gratis an. SciLab (http://www-rocq.inria.fr/scilab) ist ein PD MatLab–Klon (interaktives Lineare Algebra und Mathematik System, Syntax C++/Fortran/Mathematik, gute Grafik). Octave (http://www.octave.org) ist ein weiterer PD MatLab–Klon, mit mehr Kompatibilität als SciLab jedoch einer etwas komplizierten“ Grafik (gnuPlot). Einige Bei” spiele können mit MS Excel gerechnet werden (siehe Anmerkungen). Um mit endlichen Automaten und Turing Maschinen zu arbeiten, kann auch KaraToJava (http://www.educeth.ch/informatik/karatojava) der ETH-Zürich verwendet werden (PD). Ausgewählte Programme werden in der Übung präsentiert, bzw. Beispiele können auch ins Internet gestellt werden. Übungsmodus: Der genaue Modus wird in der Vorbesprechung festgelegt. Bei der Präsentation der Beispiele werden Sie au Grund von Vortrag, Richtigkeit der Ausführung, Ausarbeitung und Beantwortung von Zwischenfragen bewertet. Die Ausarbeitung eines Programmes ist Pflicht. Die Programme werden gegen Voranmeldung (auch für Gruppen) vergeben. Aktuellste Informationen im Internet: Aktuelle Informationen finden Sie immer auf den Homepages der ÜbungsleiterInnen. I. A. sollten Links vom PISWI auf diese Homepages vorhanden sein. Literatur: Grundsätzlich ist zu bemerken, dass die Wahl, welche Literatur beschafft/gelesen wird, davon abhängt, ob der Stil eines Autors Ihnen liegt oder nicht. Daher sollte vor dem Kauf eines Buches dieses in der Institutsbibliothek oder der UB entlehnt, auszugsweise gelesen oder durchgeschmökert werden! • Schulbücher als Auffrischung • Gerd Baron, Peter Kirschenhofer: Einführung in die Mathematik für Informatiker, Band 1 und 3. Springer Wien, 1989. • John E. Hopecroft, Jeffrey D. Ullman: Introduction to Automata Theory, Languages and Computation. Addison-Wesley 1979, ISBN 0-201-02988-X • Josef Leydold: Mathematik für Ökonomen Oldenburg 1998, ISBN 3-486-24524-4 • Richard Bronson: Schaum’s Outline of Matrix Operations. McGraw-Hill, 1988. ISBN 0070079781. • Seymour Lipschutz: Schaum’s Outline of Essential Computer Mathematics. McGrawHill, 1982. Weiters stehen Ihnen die Lehrbuchsammlung der UB und die Fachbibliothek für Mathematik, Statistik und Informatik zur Verfügung, sowie Skripten und OnLine-Lehr- und Lernmaterial am Internet. Inhaltsverzeichnis 1 Vollständige Induktion 1 2 Komplexe Zahlen z ∈ C 6 3 Relationen und Ordnungen 13 4 Differenzengleichungen 17 5 Halbgruppen und Gruppen 27 6 Graphen 33 7 Endliche Automaten 42 LATEX iii 1 Vollständige Induktion Die vollständige Induktion in der Mathematik ist eine einfache Beweismethode, die sich aus den Peano-Axiomen für die natürlichen Zahlen herleitet. Sie besteht aus drei Schritten: 1. Induktionsbasis (-anfang): Die Aussage A(1) ist wahr (oder A(1) bis A(n − 1) sind wahr). 2. Induktionsvoraussetzung (-annahme): Die Aussage A(n) ist wahr. 3. Induktionsschritt: Zeige, dass aus A(n) auch A(n + 1) folgt, d. h., dass die Aussage A(n) für alle n ∈ N gilt. 1.1 1.2 Beweise mittels vollständiger Induktion! n(n + 1) 2 a) Pn i= b) Pn i2 = c) Pn i3 = ( i=1 i=1 i=1 n(n + 1)(2n + 1) 6 n(n + 1) 2 ) 2 / Beweise folgende Summenformeln mittels vollständiger Induktion! Pn 2 a) i=1 (2i − 1) = n b) Pn c) Pn i=1 (2i − 1)2 = 2 i=1 (2i) = n(2n − 1)(2n + 1) 3 2n(n + 1)(2n + 1) 3 / Die obigen Summen sind sogenannte arithmetische Reihen k-ter Ordnung, d. h., die k-ten Differenzen aufeinander folgender Reihenglieder sind konstant. Die Summenformeln können auch mit Hilfe eines sogenannten Differenzenschemas gefunden werden. Für eine arithmetische Reihe erster Ordnung gilt, dass aufeinander folgende Folgenglieder einen konstanten Abstand d haben, also n X k=1 a + (k − 1)d = a + (a + d) + (a + 2d) + · · · + (a + (n − 1)d) = na + 1 n(n − 1) d 2 Für eine arithmetische Reihe k-ter Ordnung lässt sich folgendes Differenzenschema aufschreiben: a1 a2 ∆11 ∆21 a3 ∆12 ∆31 a4 ∆22 ... ∆13 ∆32 a5 ∆14 ∆23 ··· ··· ... ··· ··· wobei ∆1j = aj+1 − aj und k−1 ∆kj = ∆k−1 . j+1 − ∆j Liegt eine arithmetische Reihe der Ordnung k vor, so ist ∆kj konstant für alle j, d. h., ∆k+1 = 0, für alle j. Die Summe dieser Reihe ist dann j n n n n 1 2 Sn = a1 + ∆1 + ∆1 + · · · + ∆k1 . 1 2 3 k+1 Beispiel: 1 Pn i=1 k5 32 31 243 211 180 1024 781 570 390 3125 1320 750 360 7776 2101 2550 480 9031 4380 1230 120 16807 4651 2550 600 720 ··· 120 0 ··· 0 ··· ··· 6930 1830 120 32768 15961 ··· ··· ··· D.h., die Summenformel lautet n X n n n n n n 5 k = 1+ 31 + 180 + 390 + 360 + 120 1 2 3 4 5 6 i=1 1.3 Finde und vereinfache die Summenformeln für folgende Summen mit Hilfe eines Differenzenschemas! a) Pn k=1 k b) Pn k=1 k2 c) 2 Pn k=1 k3 d) Pn k=1 k4 / 1.4 Programm: Arithmetische Reihe. Schreibe ein Programm, das nach Angabe der ersten Folgenglieder oder nach Angabe ihrer Definition überprüft, ob eine arithmetische Reihe der Ordnung k vorliegt. Es soll sodann die Ordnung der Folge und die Summenformel ausgeben, bzw., die Summe für eingegebene n berechnen. Überprüfe das Programm mit den Beispielen 1.1, 1.2 und 1.9, sowie mit folgenden Zahlenfolgen 1 15 1 16 4 21 8 36 9 16 33 27 64 25 51 64 36 75 105 125 100 49 66 88 111 141 226 144 / 1.5 Zeige, dass mit αi > 0, i = 1, . . . , n, für n > 1 gilt: (1 + α1 )(1 + α2 ) · · · (1 + αn ) > 1 + (α1 + α2 + · · · + αn ) / 1.6 Bernoulli Ungleichung: Zeige, dass für h > −1 gilt: (1 + h)n ≥ (1 + nh) ∀n ∈ N / 1.7 1 − q n+1 Geometrische Reihe: Zeige, dass a + aq + aq 2 + · · · + aq n = a 1 − q , für q 6= 1! / 1.8 Zeige: 1.9 Beweise folgende Summenformeln mittels vollständiger Induktion! Pn k=1 k = 2 − n +n 2 . 2 2k / (n − 1)n(n + 1) 3 a) 1 · 2 + 2 · 3 + · · · + (n − 1)n = b) 1 · 2 · 3 + 2 · 3 · 4 + · · · + (n − 2)(n − 1)n = c) 1 1 1 n 1 1 · 2 + 2 · 3 + 3 · 4 + · · · + n(n + 1) = n + 1 d) n + (n + 1) + · · · + 2n = 23 n(n + 1) (n − 2)(n − 1)n(n + 1) 4 LÖSUNG : n → n + 1: (n + 1) + (n + 2) + · · · + (2n + 1) + (2n + 2) = 23 n(n + 1) − n + (2n + 1) + (2n + 2). / 3 1.10 Zeige, dass gilt: a) 2n > n2 b) 2n > n3 für n > no 1 )3 < 2. Hinweis: für n ≥ 10 ist (1 + n für n > no / 1.11 Sei a1 = 1, a2 = 1 und an+1 = an−1 + an , für n > 2. Zeige, dass für die so definierten Fibonacci-Zahlen folgende Summenformeln gelten! Pn a) i=1 ai = an+2 − 1 Pn 2 b) i=1 ai = an · an+1 Pn c) i=1 a2i−1 = a2n Pn d) i=1 a2i = a2n+1 − 1 Bemerkung: Siehe auch die vielen Internet-Seiten zu den Fibonacci-Zahlen! BEMERKUNG : 1.12 Fib(n) = √1 5 √ √ 1 + 5 1 − n ( 2 ) − ( 2 5 )n . P Binomischer Lehrsatz. Zeige, dass nk=0 nk an−k bk = (a + b)n für alle a, b ∈ R und alle n ∈ N. n! , n ≥ k ≥ 0, erfüllen folgende Hinweis: Die Binomialkoeffizienten nk = k!(n − k)! Rekurrenzrelation: n n n+1 + = . k k+1 k+1 / Zeige und verwende diese! 1.13 / Programm: Pascal’sches Dreieck. Verwende die Rekurrenzrelation n+1 n n = + k+1 k+1 k um eine Tabelle zu generieren, die als Einträge die Binomialkoeffizienten nk enthält, wobei n der Zeilenindex und k der Spaltenindex ist. Speichere diese Tabelle in einem möglichst effizienten Array. Implementiere ein Inter face, das nach Eingabe von n und k den Koeffizienten nk ausgibt, bzw., nach Eingabe von n alle zugehörigen Binomialkoeffizienten! Fange Fehleingaben ab! / 4 1.14 1.15 Zeige bzw. widerlege folgende Eigenschaften der Binomialkoeffizienten! Pn n n a) k=0 k = 2 P[ n2 ]+1 n = 2n−1 b) k=0 2k P[ n2 ]+1 n c) = 2n−1 k=1 2k−1 Pn k n d) k=0 (−1) k = 0 Pn k+1 n e) =0 k=1 k(−1) k Pn n n−1 f) k=0 k k = n2 Pm n+k g) = n+m+1 k=0 n n+1 n Pr m = n+m h) k=0 k r r−k Pn 1 n+1 1 n i) k=0 k + 1 k = n + 1 2 B PB A A+B j) = C+B , A, B, C ∈ N k=0 C+k k B Pn A A+B = , A, B ∈ N k) k=0 n−k k n Pn m m = 2m l) k=0 n−k k n Pn n 2 = 2n m) k=0 k n Pm n−1+k n+m = n) k=0 k m Pn n−1+k = 2n o) k=0 n k n n−1 n p) = k k−1 k k −n n+k−1 k q) (−x) = x k k / Sei M die auf folgende Weise rekursiv definierte Menge: a∈M x ∈ M ∧ y ∈ M ⇒ xyb ∈ M a) Gib alle Zeichenketten in M der Länge 7 an. b) Zeige durch vollständige Induktion, dass für jedes w ∈ M gilt: (Anzahl der Symbole a in w) = (Anzahl der Symbole b in w) + 1 / 5 2 Komplexe Zahlen z ∈ C Ein Großteil der folgenden Beispiele wird nicht in den Übungen gerechnet, da diese bereits laut Lehrplan in der Schule gerechnet werden sollten (2.1–2.6, 2.10–2.16, 2.24, 2.25). Der Einschub über Taylorreihen, die Sie später auch in der Vorlesung kennen lernen werden, dient zur Erläuterung und (hoffentlich) zum Verständnis der EulerFormel und einige ihrer Anwendungen. Exzerpiere aus Schulbüchern, Formelsammlungen etc. die wichtigsten Formeln für das Rechnen mit komplexen Zahlen (Addition, Subtraktion, Multiplikation, √ Division, Polardarstellung, Wurzelziehen u.Ä.). Beachte, dass die komplexe Einheit −1 in der Mathematik mit i bezeichnet wird, während in der Elektrotechnik die Bezeichnung j üblich ist! 2.1 Stelle folgende Zahlen in der komplexen Zahlenebene dar! 1 1+i 6 − 3i 2i − 2 3−i −i −1−i / 2.2 Addiere z1 + z2 und subtrahiere z2 − z1 ! a) z1 = 3 + 2i, z2 = 3 − 2i c) z1 = 7i, z2 = 3 − i b) z1 = −1 − i, z2 = 2 − 2i d) z1 = 4 + 2i, z2 = −i / 2.3 Bilde das Produkt z1 · z2 mit den Zahlen aus Beispiel 2.2! / 2.4 Bilde die Quotienten zz21 und zz21 mit den Zahlen aus Beispiel 2.2! / 2.5 Berechne! a) i5 + i7 + i2 + i12 + i27 b) i(−i) + (−i)2 + i4 − i5 (−i)3 c) (3i − 3)2 + (i + 3i2 )3 / 6 2.6 Berechne und vereinfache! a) i(5 − 2i)2 2 + 5i 7 + 2i (7 − 2i)2 (1 + 2i)2 e) 3+i 7 − 2i h) (14 − 4i)3 b) + 2i d) 25 − 5i 3 − 2i g) (3 + 2i)2 c) (1 + i)(3 − 3i) f) i) (4 − i)2 3 + 2i 7 + 3i 7 − 3i / Taylorreihen. Um komplizierte, jedoch n-mal stetig differenzierbare Funktionen f (x) durch einfachere Funktionen (etwa lineare oder quadratische oder etwa f (x + h) ≈ f (x) + hf 0 (x)) näherungsweise darzustellen, gibt es in der Mathematik unter anderem das Hilfsmittel der Taylorreihen. Eine solche Funktion f (x) kann dann durch eine Taylorreihe folgendermaßen dargestellt werden: f (x) = n X f (k) (x0 ) k! k=0 (x − x0 )k + Rn (x) wobei für das Restglied Rn (x) gilt, dass Rn (x) = f (n+1) (x0 + θ(x − x0 )) (x − x0 )n+1 (n + 1)! und |Rn (x)| ≤ C · |x − x0 |n+1 , (n + 1)! θ ∈ (0, 1) falls |f (n) ξ| ≤ C, ξ ∈ [x, x0 ], ∀n, sodass Rn (x) umso kleiner ist, je näher x an x0 liegt, und je größer n ist. Als Punkt x0 , an dem die Taylorreihe entwickelt wird, wählen wir einen, an dem die Ableitungen f (k) (x0 ) einfach zu berechnen sind. Eine Taylorreihe heißt auch MacLaurin-Reihe, falls x0 = 0. 1 Beispiel: f (x) = 1 − x 1 (1 − x)2 2 f 00 (x) = (1 − x)3 6 f 000 (x) = (1 − x)4 ⇒ f 0 (x) = Daher ist f (x) = f (x0 ) + f 0 (x0 )(x − x0 ) + 21 f 00 (x0 )(x − x0 )2 + 16 f 000 (x0 )(x − x0 )3 + · · · = 1 + x + x2 + x3 + x4 + · · · bei Entwicklung an der Stelle x0 = 0. 7 Typische Taylorreihen sind: ex = sin x = cos x = log(x + 1) = 1 = 1−x 3 4 2 1 + x + x + x + x + ··· 2! 3! 4! 5 7 3 x − x + x − x + ··· 3! 5! 7! 4 6 2 x x x + − + ··· 1− 2! 4! 6! 3 4 2 x − x2 + x3 − x4 + · · · 1 + x + x2 + x3 + · · · Betrachten wir nun die Taylorreihen für ex , sin x und cos x, so lässt sich daraus folgern, dass für x = iϕ gilt eiϕ = cos ϕ + i sin ϕ was sich durch einen einfachen Koeffizientenvergleich beweisen lässt! 2.7 Leite folgende Identität her (i ist die komplexe Einheit): eiϕ = cos ϕ + i sin ϕ / 2.8 Zeige folgende Identitäten eiϕ − e−iϕ sin ϕ = 2i eiϕ + e−iϕ cos ϕ = 2 / 2.9 Taylorreihen: Entwickle folgende Funktionen in eine Taylorreihe um den Nullpunkt ! 1 a) f (x) = 1 − x c) f (x) = log(1 + x) e) f (x) = 1 2 1−x g) f (x) = arctan x x −x Hinweis: sinh(x) = e −2 e , b) f (x) = (1 + x)α d) f (x) = cosh x f) f (x) = 1 2 1+x x −x cosh(x) = e +2 e 8 α∈R / 2.10 Taylorreihen: Berechne die Werte folgender Reihen: a) k+1 1 k=1 (−1) k P∞ b) P∞ k=1 k e−λ λ k! Anleitung: Betrachte die Taylorreihen von log(1 + x) und ex ! / Polardarstellung. Aus der Formel eiϕ = cos ϕ + i sin ϕ erhalten wir eine andere Darstellung für komplexe Zahlen z = a + ib, die sogenannte Polardarstellung z = (r, ϕ) = r(cos ϕ + i sin ϕ) . mit r= √ a2 + b 2 tan ϕ = b a bzw. a = r cos ϕ b = r sin ϕ . Es gelten folgende Rechenregeln z1 · z2 = r1 r2 (cos(ϕ1 + ϕ2 ) + i sin(ϕ1 + ϕ2 )) z1 = z2 r1 (cos(ϕ1 r2 − ϕ2 ) + i sin(ϕ1 − ϕ2 )) z n = rn (cos(nϕ) + i sin(nϕ)) (Satz von Moivre) zk = √ n z= √ n r(cos ϕ + k · 2π ϕ + k · 2π + i sin ) n n k = 0, . . . , n − 1 2.11 Programm: Komplexe Zahlen. Schreibe ein Programm, das komplexe Zahlen in ihre verschiedenen Darstellungen umwandelt. Weiters soll es alle elementaren (binären) Operationen zwischen zwei komplexen Zahlen durchführen können, wie auch Wurzelziehen und Potenzieren. e und π sollen als Konstante in geeigneter Form enthalten sein. Es ist nicht notwendig, einen Parser zu schreiben! / 2.12 Stelle die folgenden komplexen Zahlen in Polarkoordinaten dar! a) z = 2 − 2i b) z = −i c) z =1+i d) z = −1 + i / 9 2.13 2.14 Die Polarkoordinaten von z sind r = 2 und ϕ = 2π 3. Berechne z in kartesischer Darstellung! / Wandle folgende Zahlen in die kartesische Form um! 3(cos ϕ + i sin ϕ) ϕ = 30◦ , 45◦ , 90◦ , 135◦ , 270◦ , 315◦ / 2.15 Wandle folgende Zahlen in die kartesische Form! 3(cos ϕ + i sin ϕ) ϕ= π π π 3π 3π 7π , , , , , 6 4 2 4 2 4 / 2.16 Wandle die Zahlen aus Beispiel 2.2 in Polarkoordinaten um und führe dann die Multiplikationen und Divisionen wie in den Beispielen 2.3 und 2.4 durch und wandle die Ergebnisse wieder in kartesische Koordinaten zurück! / 2.17 Löse folgende quadratische Gleichungen in C! a) c) e) g) i) k) m) o) x2 − 4x + 5 = 0 x2 − 6x + 10 2x2 − 4x + 4 = 0 x2 − 4x + 19 = 0 x2 − 10x + 41 = 0 9x2 − 24x + 17 = 0 x2 + 20x + 109 = 0 25x2 − 10x + 13 = 0 b) d) f) h) j) l) n) x2 + 4x + 5 x2 − 4x + 9 x2 − 12x + 45 = 0 2x2 − 6x + 9 = 0 25x2 + 10x + 1 = 0 49x2 − 28x + 53 = 0 x2 + 16x + 65 = 0 / 2.18 Finde das algebraische Polynom vom kleinsten Grad, das folgende Lösungen besitzt a) ±i, ±2i b) 3 − i, 2 ± i, 1 / 10 2.19 Programm: Polynome. Schreibe ein Programm, das aus der Angabe von komplexen Zahlen das zugehörige Polynom vom kleinsten Grad berechnet und ausgibt, das diese Zahlen als Lösungen besitzt. Teste das Programm unter anderem mit a) 3 + i, ±i, 2 b) 3, 0, 2 ± 2i c) ±i, 1, 1 ± 2i / 2.20 Berechne alle Lösungen folgender Gleichungen! a) 9x4 − 37x2 + 4 = 0 b) x4 − 4x2 + 4 = 0 c) x4 + 2x2 − 15 = 0 / 2.21 Programm: Nullstellen. Programmiere einen iterativen Algorithmus (Newton, Bisektion etc.), der eine reelle Lösung x0 einer Gleichung n-ten Grades (an xn + an−1 xn−1 + · · ·+a1 x+a0 = 0) findet. Dividiere die Gleichung sodann durch den der Lösung x0 entsprechenden Linearfaktor (Abspalten der Lösung) und löse die Gleichung in C! Stelle diese sodann graphisch dar! a) x3 − 4x2 + 6x − 4 = 0 c) x4 + 8x3 + 21x2 + 20x = 0 e) x3 − x2 + 17x + 87 = 0 b) x3 + 5x2 + 11x + 7 = 0 d) x3 − 3x2 + 4x − 12 = 0 f) 2x3 − 8x2 + 11x − 5 = 0 / 2.22 Berechne folgende Wurzeln in C und zeichne sie in der komplexen Zahlenebene! √ √ √ √ 3 3 3 3 1 −1 i −i / 11 Bemerkung. Die Multiplikation mit einer komplexen Zahl z entspricht einer Drehung (|z| = 1) bzw. einer Drehstreckung (|z| > 1) oder Drehstauchung (|z| < 1). Die Multiplikation mit z = (1, ϕ) = cos ϕ + i sin ϕ entspricht einer Drehung um den Winkel ϕ. x her, interpretiere sie als komplexe Nimm beliebige 2-dimensionale Vektoren y Zahl x + iy und drehe diese durch Multiplikation mit der entsprechenden Zahl z ∈ C! Bemerkung: statt mit z = (1, ϕ) = cos ϕ+ i sin ϕ zu multiplizieren, kann der Vekcos ϕ − sin ϕ tor auch mit der Matrix multipliziert werden (Drehung). Das entsin ϕ cos ϕ a −b . (Drehstreckung). spricht einer Darstellung einer komplexen Zahl als a+ib = b a 2.23 Berechne folgende n-te Einheitswurzeln in C und zeichne sie in der komplexen Zahlenebene! √ √ √ √ 4 5 6 3 1 1 1 1 / 2.24 Berechne alle Lösungen der Gleichung z 6 = 64 in C! 2.25 Berechne folgende Wurzeln ! √ a) √6 − 8i c) 5 − 3i / √ b) √7 − 6i d) −3 + 6i / 2.26 Berechne folgende Wurzeln ! √ 3 b) √ 7 − 6i 3 d) −3 + 6i √ 3 6 − 8i a) √ 3 c) 5 − 3i / 12 3 Relationen und Ordnungen 3.1 a) Gib die Potenzmengen zu A = {a, b} und zu B = {−, ∗, +} an! b) Wieviele Elemente hat die Potenzmenge von C = {a, b, c, d, e, f, g, h, i, j, k, l, m} ? / 3.2 Gegeben seien die Mengen A, B und C A = {a, b, c, d}; B = {1, 2, 3, 4}; C = {(1, 2), (1, 3), (2, 4)} Gib folgende Produktmengen an: a) A × C c) A × B b) C × A d) A × A / 3.3 Sei A das abgeschlossene Intervall [2, 3] ⊆ R, B = {4} und die Menge C das offene Intervall ]1, 2[⊆ R. Stelle das kartesische Produkt (A∪B) x C in der reellen Zahlenebene graphisch dar! / 3.4 Sei R = {(x, y) ∈ R2 |y = x2 }. Wie sieht die graphische Darstellung von R in der reellen Zahlenebene aus? / 3.5 Welche der folgenden geordneten Paare genügen den entsprechenden (binären) Relationen auf N × N? a) x ρ y ⇔ x = y + 1; b) x ρ y ⇔ x teilt y; c) x ρ y ⇔ x ist ungerade ; d) x ρ y ⇔ x > y2; (2, 2), (2, 3), (3, 3), (3, 2) (2, 4), (2, 5), (2, 6) (2, 3), (3, 4), (4, 5), (5, 6) (1, 2), (2, 1), (5, 2), (6, 4), (4, 3) / 13 3.6 Welche der folgenden geordneten Paare genügen den entsprechenden (binären) Relationen auf S × S? a) S = Z; x ρ y ⇔ x = −y; b) S = Q; x ρ y ⇔ x ≤ 1/y; (1, −1), (2, 2), (−3, 3), (−4, −4) (1, 2), (−3, −5), (−4, 1/2), (1/2, 1/3) / Eigenschaften von Relationen: Sei ρ eine binäre Relation auf der Menge A • reflexiv: aρa, ∀a ∈ A • symmetrisch: aρb ⇔ bρa • transitiv: (aρb ∧ bρc) ⇒ aρc • antisymmetrisch: (aρb ∧ bρa) ⇔ a = b Eine reflexive, symmetrische und transitive Relation auf einer Menge heißt Äquivalenzrelation, eine reflexive, transitive und antisymmetrische Relation heißt Halbordnung, eine Halbordnung in der je zwei Elemente immer vergleichbar sind, d.h., entweder aρb oder bρa für zwei Elemente a und b gilt, heißt Totalordnung dieser Menge. 3.7 Welche der folgenden (binären) Relationen auf der entsprechenden Menge S sind reflexiv, symmetrisch, antisymmetrisch, transitiv? a) S = N; x ρ y ⇔ x + y ist gerade b) S = N; x ρ y ⇔ x teilt y c) S = N; x ρ y ⇔ x = y2 d) S = {0, 1}; e) S = Q; xρy ⇔ |x| ≤ |y| f) S = Z; x ρ y ⇔ x − y ist ein ganzzahliges Vielfaches von 3 g) S = N; x ρ y ⇔ x ist ungerade x ρ y ⇔ x = y2 / 14 3.8 Finde eine Menge S und eine (binäre) Relation ρ auf S, für die gilt: a) ρ ist reflexiv und symmetrisch, aber nicht transitiv b) ρ ist reflexiv und transitiv, aber nicht symmetrisch c) ρ ist nicht reflexiv und nicht symmetrisch, aber transitiv d) ρ ist reflexiv, aber weder symmetrisch noch transitiv / 3.9 3.10 Programm: Relationen. Schreibe ein Programm, das als Eingabe eine Relation R auf einer endlichen Menge A von (alphanumerischen) Zeichen entgegen nimmt, wobei die Elemente (x, y) ∈ R ⊆ A × A in einer Schleife einzeln eingegeben werden sollen! Das Programm soll sodann die Grundeigenschaften für Relationen überprüfen, d. h., es soll ermitteln, ob R reflexiv, symmetrisch, antisymmetrisch bzw. transitiv ist. Beim Vorliegen einer Äquivalenzrelation soll das Programm die Äquivalenzklassen ausgeben, beim Vorliegen einer Totalordnung eine Anordnung von A, sodass für aRb, a, b ∈ A, a stets vor b kommt. / Betrachte die Relation x teilt y“ auf der Menge {1, 2, 3, 6, 12, 18} ” a) Gib die geordneten Paare (x, y) dieser Relation an! b) Welche Vorgänger hat 6? c) Welche unmittelbaren Vorgänger hat 6? d) Zeige, dass dies eine Partialordnung definiert! e) Zeichne einen Graphen, der diese Partialordnung beschreibt! / 3.11 Zeichne einen Graphen für die Partialordnung x teilt y“ auf der Menge ” S = {2, 3, 5, 7, 21, 42, 105, 210}! Gibt es Teilmengen von S die total geordnet sind? Wenn ja, welche? / Bemerkung: Die Äquivalenzklassen K(a) = {b | aρb} der Äquivalenzrelation ρ auf A bilden eine Partition der Menge A. 3.12 Sei M = {1, 2, 3, 4} und P (M ) ihre Potenzmenge. Betrachte die folgende Äquivalenzrelation R: (A, B) ∈ R ⇔ |A \ B| = |B \ A|, A, B ∈ P (M ). Gib jene Äquivalenzklasse bezüglich R an, in der das Element {1, 2} ∈ P (M ) liegt! / 15 3.13 Beschreibe für jede der folgenden Äquivalenzrelationen die entsprechenden Äquivalenzklassen! xρy ⇔ x = y a) S = N; b) S = {1, 2, 3}; ρ = {(1, 1), (2, 2), (3, 3), (1, 2), (2, 1)} / 3.14 3.15 3.16 Gegeben ist die Relation R = {(1, 1), (2, 3), (3, 2)} in A = {1, 2, 3}, d. h., R ∈ A × A. Ist R eine Äquivalenzrelation ? / Welche der Relationen aus Beispiel 3.7 ist eine Äquivalenzrelation? Beschreibe die dazugehörigen Äquivalenzklassen! / Sei S = { ab | a, b ∈ Z, b 6= 0} die Menge aller Brüche. Zwei Brüche heißen genau dann äquivalent ( ab ∼ dc ), wenn ad = bc gilt. a) Zeige, dass ∼ eine Äquivalenzrelation ist! b) Wie sehen die Äquivalenzklassen aus? (z.B. [1/2]) / 3.17 Sei S = Z, x ist kongruent modulo 4 zu y (x ≡4 y), genau dann, wenn x − y ein ganzzahliges Vielfaches von 4 ist. a) Zeige, dass ≡4 eine Äquivalenzrelation ist! b) Wie sehen die Äquivalenzklassen aus? / 3.18 Gib ein Beispiel einer dreistelligen Relation R ⊆ A1 × A2 × A3 , bei der A1 eine Menge von Namen, A2 eine Menge von Adressen und A3 eine Menge von Telefonnummern ist! Stelle diese Relation in einer 3-dimensionalen Skizze perspektivisch dar! / 16 4 Differenzengleichungen Betrachten wir noch einmal Summen arithmetischer Reihen Sn = k und das zugehörige Differenzenschema a1 a2 ∆11 a3 ∆12 ∆21 ∆31 ∆22 ... a4 ∆13 ∆32 ∆23 ... a5 ∆14 ··· ··· ··· Pn i=1 ai der Ordnung ··· wobei ∆1j = aj+1 − aj und k−1 ∆kj = ∆k−1 . j+1 − ∆j Liegt eine arithmetische Reihe der Ordnung k vor, so ist ∆kj konstant für alle j, d. h., ∆k+1 = 0, für alle j. Die Summe dieser Reihe ist dann j n n n n 1 2 Sn = a1 + ∆1 + ∆1 + · · · + ∆k1 . 1 2 3 k+1 Haben wir nun einen diskreten Zeitparameter“ t, so definieren wir die k-te Differenz ” als ∆k yt = ∆(∆k−1 yt ) mit ∆yt = ∆1 yt = yt+1 − yt . Eine homogene lineare Differenzengleichung erster Ordnung mit konstanten Parametern, d. h., eine Gleichung der Form yt+1 + ayt = 0 , a ∈ R fix hat folgende Lösung: yt = A(−a)t mit A = y0 (Startwert). Ist a > 0, so ist die Lösung oszillierend, ist |a| < 1 so konvergiert die Lösung für t → ∞. Die inhomogene lineare Differenzengleichung erster Ordnung mit konstanten Parametern, d. h., eine Gleichung der Form yt+1 + ayt = s a, s ∈ R fix hat folgende Lösung: yt = s A(−a)t + a + 1 A + st a 6= −1 a = −1 Für die obigen Lösungen ist es wichtig, dass in den Differenzengleichungen nur konstante Parameter a und s vorkommen, d. h., diese dürfen nicht vom Zeitindex“ t ” abhängen! 17 4.1 Löse folgende Differenzengleichungen durch Iteration, d. h., durch iteriertes Einsetzen! a) yt+1 = yt + 1 y0 = 1 / b) yt+1 = 3yt y0 = 2 4.2 Löse folgende Differenzengleichungen und bestimme das Verhalten der Lösungen (konvergent, oszillierend etc.)! a) yt+1 = 2yt + 5 b) yt+1 = − 41 yt + 6 c) yt+1 = yt + 5 y0 = 1 y0 = 2 y0 = 1 / 4.3 Berechne die allgemeine Lösung von ∆yt = yt + 3 und die spezielle Lösung, für die y3 = 2 gilt ! / 4.4 Seien folgende Differenzengleichungen und entsprechende Funktionen gegeben. Zeige jeweils, dass die Funktion eine Lösung der Differenzengleichung ist (c0 beliebige Konstante), bzw. berechne die Lösung! a) b) c) d) e) yt+1 − yt yt+1 − yt yt+1 − yt yt+1 − yt yt+1 − yt =0 =0 =1 =1 =1 yt = 5 yt = c 0 yt = t yt = t + c 0 y0 = 1 bzw. y0 = 3 / Die Lösung einer homogenen linearen Differenzengleichung zweiter Ordnung mit konstanten Parametern, d. h., einer Gleichung der Form yt+2 + a1 yt+1 + a2 yt = 0 , a1 , a2 ∈ R fix erhalten wir durch Ersetzen von yt = Aβ t . Wir erhalten dadurch die quadratische Gleichung r a21 a 1 β 2 + a1 β + a2 = 0 mit Lösungen β1,2 = − ± − a2 . 2 4 a2 Je nach Vorzeichen der Diskriminante 41 − a2 unter der Wurzel ergeben sich folgende Lösungen der Differenzengleichung. a21 yt = A1 β1t + A2 β2t 42 − a2 > 0 β1 6= β2 ∈ R a1 t t 42 − a2 = 0 β1 = β2 = β ∈ R yt = A1 β + A2 tβ a1 t 1 cos ϕt + A2 sin ϕt) 4 − a2 < 0 β1,2 = a ± ib ∈ C yt = r (A√ √ + b 2 = a2 r = a2r a2 sin ϕ = 1 − 4a1 2 2 a cos ϕ = − √1 2 a2 18 Die Lösung der inhomogenen linearen Differenzengleichung zweiter Ordnung mit konstanten Parametern yt+2 + a1 yt+1 + a2 yt = s , a1 , a2 , s ∈ R fix (h) ist die Summe aus der Lösung der homogenen Lösung yt (s) len Lösung yt , d. h., (h) (s) yt = yt + yt mit a s+ 2 · t 1 (s) yt = s · t2 2 k Die k-ten Differenzen ∆ yt werden durch ∆k yt = ∆(∆k−1 yt ) wie oben und der speziel- a 6= −2 a = −2 mit ∆yt = ∆1 yt = yt+1 − yt definiert. Somit ist ∆2 (yt ) = ∆(yt+1 − yt ) = ∆(yt+1 ) − ∆(yt ) = (yt+2 − yt+1 ) − (yt+1 − yt ) = yt+2 − 2yt+1 + yt . 4.5 Berechne die allgemeine Lösung von ∆2 yt − 5∆yt + 4yt = 1 ! 4.6 Löse folgende Differenzengleichungen und vergleiche die Schaubilder! Was passiert bei verschiedenen Anfangswerten, was bei verschiedener rechter Seite (Parameter s) ? a) yt+2 − 3yt+1 + 2yt = 0 b) yt+2 − 3yt+1 + 2yt = 1 4.7 y0 = 1, y1 = 0 y0 = 1, y1 = 1 / / Die Rauchgewohnheiten eines Rauchers haben zur Folge, dass seinem Blut eine Tagesdosis von 0.02 mg Nikotin zugeführt wird. 1 % des Nikotins wird innerhalb von 24 Stunden abgebaut. a) Wie kann der Nikotingehalt im Blut berechnet werden, wenn von einem Startwert von x0 = 0 mg ausgegangen wird ? b) Wie verhält sich der Nikotingehalt im Blut über längere Zeit ? c) Wird der gesundheitsschädliche Wert von 1 mg je überschritten ? d) Gibt es einen Grenzwert, bei dem sich Nikotinzufuhr und -abbau die Waage halten ? e) Zeichne/Programmiere Schaubilder, wo einmal (n, xn ) die Koordinaten sind, einmal (xn , xn+1 ) (Phasenraum)! f) Wie verhält sich der Nikotingehalt im Blut, wenn täglich 0.05 mg zugeführt werden ? / 19 4.8 Löse und zeichne Schaubilder (Phasenbilder (xn , xn+1 )) von a) xn+1 = −0.75xn + 7, x0 = 1 b) xn+1 = − 32 xn + 16, x0 = 2 c) xn+1 = −xn + 10, x0 = 2.5 / Gibt es Fixpunkte in diesen Differenzengleichungen ? 4.9 Eine Walpopulation wird auf 1120 Individuen geschätzt. Durch Geburten und natürliche Sterberate ergibt sich ein jährlicher Zuwachs von 15 %. Stelle die zugehörige Differenzengleichung auf und löse sie! Zeichne ein Schaubild! Welchen Einfluss hat eine Fangquote von 120 bzw. 200 Tieren jährlich auf die Gesamtpopulation ? Warum ? / 4.10 Programm: Attraktor von Nullstellen. Das Newton’sche Näherungsverfahren xn+1 = xn − f (xn ) f 0 (xn ) zum Finden von Nullstellen von algebraischen Gleichungen zeigt für die Gleichung x3 − 1 = 0 in der komplexen Zahlenebene ein interessantes Verhalten! Manche Startwerte x0 ∈ C führen zur Lösung 1, manche nicht. Zeichne ein Schaubild des Basins für die Lösung 1, indem komplexe Startwerte, die zur Lösung 1 führen, weiß eingezeichnet werden, alle anderen schwarz! Verfahre mit den anderen Nullstellen ebenso! Es ergibt sich eine fraktale Struktur! Hinweis: Setze zuerst die Funktion in das Verfahren ein und berechne die Differenzengleichung! / 4.11 Löse folgende Differenzengleichung! yt+2 − yt = 0 20 y0 = 1, y1 = 2 / 4.12 Programm: Iteriertes Funktionensystem. Betrachte das folgende iterierte Funktionensystem (IFS): xn+1 = f (xn ) = xn + k · xn · (1 − xn ) 0 ≤ k ≤ 3, x0 ∈ (0, 1) fest. a) Zeichne ein so genanntes Feigenbaum-Diagramm für variables k, in dem die Punkte (Endwerte) (k, pN ) in der xy-Bildebene eingezeichnet werden (es genügt oft ein Maximum von N = 250 Iterationen)! Was kann über die ungefähren Werte k1 = 2.45, k2 = 2.544 bzw. k3 = 2.57 ausgesagt werden? – Diese Art von Verhalten wird auch oft als deterministisches Chaos bezeichnet (chaotisches Verhalten trotz einer gegebenen mathematischen Gleichung). b) Zeichne ein Phasenbild desselben IFS, d. h., zeichne (xn , xn+1 ) für verschiedene Startwerte und verschiedene k in ein Schaubild! / 4.13 Programm: Henon Attraktor. Der Henon-Attraktor ergibt sich, wenn von einem Startwert (x0 , y0 ) aus die Punkte (xn , yn ) gezeichnet werden, die dem Bildungsgesetz xn+1 = yn − ax2n + 1 yn+1 = bxn gehorchen, wobei a und b Konstante sind (etwa a = 1.4, b = 0.3). Schreibe ein Programm, das verschiedene Startwerte und verschiedene Konstanten zulässt und ein Schaubild ausgibt! Bemerkung: Wird in die Graphik hineingezoomt, sehen wir ein selbstähnliches Verhalten, d. h., der Henon Attraktor besteht aus vielen kleinen Attraktionsmengen“. ” / Lineare Differenzengleichungen höherer Ordnung 4.14 Löse folgende Differenzengleichungen! a) yn − 3yn−1 + 2yn−2 = 0 b) 4yn − 4yn−1 + yn−2 = 2 c) yn − 2yn−1 + yn−2 = 3 d) yn − 5yn−1 + 6yn−2 = 0 e) yn − 5yn−1 + 6yn−2 = 2 f) yn − 3yn−1 + 2yn−2 = 1 g) yn + yn−1 − yn−2 − yn−3 = 0 / 21 4.15 Löse folgende Differenzengleichungen! a) yn − 4yn−1 + 4yn−2 = 0, y0 = 1, y1 = 3 b) yn − 3yn−1 + 2yn−2 = 0, y0 = 2, y1 = 3 c) yn + yn−1 − yn−2 − yn−3 = 0, y0 = 2, y1 = −1, y2 = 3 d) yn + 2yn−1 + 2yn−2 = 0, y0 = 0, y1 = −1 ) / 4.16 Ein Vorrat verringert sich in jeder Periode um 10 %. Er wird am Ende jeder Periode um den konstanten Betrag 200 ergänzt. Der Vorrat hat einen Anfangswert von 1000 Einheiten und soll verdoppelt werden. Wie lange dauert es, bis dieses Ziel zu 95 % erreicht ist ? / 4.17 Löse folgende Differenzengleichungen! Vorsicht: Die Parameter sind hier nicht konstant, sondern veränderlich, d. h., sie hängen vom Index ab. Obige Lösungsverfahren können dafür nicht angewendet werden! a) yn − 3yn−1 + 2yn−2 = 4n b) yn − 3yn−1 + 2yn−2 = 2n c) yn − 4yn−1 + 4yn−2 = 3 · 2n + 5 · 4n − 1 d) yn − 2yn−1 + yn−2 = 2n − 2(n − 3), y0 = 0, y1 = 1 / 4.18 Programm: Rössler Attraktor. Das linke System von Differentialgleichungen definiert einen Rössler Attraktor, der durch das rechte System von Differenzengleichungen simuliert werden kann, wobei der infinitesimal kleine Schritt“durch entsprechende ” Werte der Schrittweite h 1 simuliert wird. x0 = −y − z y 0 = x + ay z 0 = b + xz − cz xn+1 = xn − h(yn + zn ) yn+1 = yn + h(xn + ayn ) zn+1 = zn + h(b + xn zn − czn ) wobei a, b, c Konstante sind (etwa a = b = 0.2, c = 8), h die Schrittweite ( 1). 22 / 4.19 Programm: Schmetterlingseffekt, Lorenz-Attraktor (1993). Eine Wetterprognose ist von vielen Parametern wie der Jahreszeit, der Vegetation, dem Luftdruck, der Windrichtung und Windgeschwindigkeit, dem Niederschlag, der Temperatur, der Bewölkung, der Feuchtigkeit, usw. abhängig. In den 60er-Jahren versuchte Edward N. Lorenz am Massachusetts Institute of Technology (MIT) meteorologische Prozesse mittels Systemen von Differentialgleichungen zu beschreiben. Ein Modell für die Erdatmosphäre basierte auf einem Differentialgleichungssystem (links), simuliert durch Differenzengleichungen (rechts) x0 = a · (y − x) y 0 = bx − xz − y z 0 = xy − cz xn+1 = xn + h · a · (yn − xn ) yn+1 = yn + h(bxn − xzn − yn ) zn+1 = zn + h(xn yn − czn ) Als Lorenz eine zuvor getätigte Wetterprognose nachprüfen wollte, gab er die Eingabeparameter nicht wie zuvor auf 6, sondern auf 3 Dezimalstellen genau an. Intuitiv würden die meisten meinen, dass dies das Ergebnis nicht signifikant verändert, da es bei einfachen Rechnungen (vergleiche etwa a = 8.120474, b = 2.134789, c = 3.803876636 mit 8.120, 2.134 und 3.805060918, welches eine durchwegs zu vernachlässigende Abweichung von 0.001184282 liefert) in den meisten Fällen auch keine Rolle spielt. Lorenz erzielte jedoch zwei völlig unterschiedliche Ergebnisse und schloss daraus, dass kleine Veränderungen oder Abweichungen von Parametern zu großen Veränderungen führen können. Eine kleine Ursache kann eine große Wirkung haben (abhängig von den Anfangsbedingungen). Das Wetter ist ein chaotisches System und daher schwer zu prognostizieren. Die genaue Berechenbarkeit der Welt und die längerfristige Prognostizierbarkeit von Vorgängen haben offensichtlich ihre Grenzen. Ähnlich wie bei den Bénard-Zellen kann es in Luftschichten zu Fluktuationen kommen, die sich verstärken. Diese sind nicht vorhersehbar und daher sind Wetterprognosen eine äußerst unsichere Angelegenheit. Beim Attraktor des Differentialgleichungssystems zeigt sich, dass ein sich bewegender Punkt entweder auf dem linken oder dem rechten Teil kreist und dass es spontane Übergänge gibt, die nicht vorhersehbar sind. Da der Attraktor einem Schmetterling ähnelt, wird der Effekt, dass kleine Ursachen große Wirkungen haben können, auch Schmetterlingseffekt genannt und es haben sich etwas übertriebene Beschreibungen wie jene, dass der Flügelschlag eines Schmetterlings in Asien ein Gewitter in Wien auslösen kann, entwickelt. / 4.20 Programm: Mandelbrot und Julia. Apfelmännchen und Julia-Mengen entstehen, wenn für komplexe Zahlen die Vorschrift zn+1 = zn2 + c, zn , c ∈ C iteriert wird. Sei z = a + ib und c = x + iy so ergibt sich zn+1 = (a2 − b2 + x) + i(2ab + y). 23 Apfelmännchen (Mandelbrot-Mengen) erhalten wir dadurch, dass wir das Verhalten beim variablen Startwert c ∈ C einen Punkt in einer bestimmten Farbe codieren, je nachdem, ob |zn | – gegen 0 konvergiert, – gegen ∞ geht, – zwischen verschiedenen Werten oszilliert, – keinem bestimmten Muster folgt. Bei Julia-Mengen hingegen wird z0 variabel und c als konstant angesehen. z0 wird eingefärbt, wenn |zn | konvergiert. Als Konstante nimm etwa c = i, oder c = −0.4+0.7i, c = −0.7 + 0.3i, c = −1.77 + 0.01i . Versuche auch die Formel zn+1 = zn4 + c, 4.21 zn , c ∈ C! / Programm: Biomorphe. Formen wir die Mandelbrot-Iteration“ leicht um ” zn+1 = sin(zn2 ) + c, zn , c, ∈ C, so erhalten wir Biomorphe (C. A. Pickover). Weitere interessante Attraktoren (Galaxien) ergeben sich, wenn wir zn+1 = u · zn (1 − zn ) iterieren, etwa für u = −0.7 + 0.8i. 4.22 / Programm: Bevölkerungswachstum. bn+1 = bn + n(gn − sn ), b0 = 1000 Hierbei ist b die Bevölkerung, g die Geburten im Jahr n und s die Sterbefälle im Jahr n, die sich aus den Prozentsätzen der Geburtenziffer gz und der Sterbeziffer sz berechnen. Etwa gz = 1 %, sz = 0.85 %. Experimentiere mit verschiedenen Prozent- bzw. Promillesätzen! Löse und zeichne ein Schaubild! / 4.23 Programm: Epidemien. Infektionskrankheiten, Epidemien. Erstellen wir ein einfaches Modell für Masern (ohne Impfungen zu berücksichtigen). Jede Person, die Masern noch nicht hatte, kann andere innerhalb der Inkubationszeit (eine Woche) anstecken, nach einer weiteren Woche klingt die Krankheit ab und die Person kann weder angesteckt werden noch anstecken, da sie immun ist. Setzen wir die Zeiteinheit daher auf eine Woche. Sei In die Zahl der Infizierten zum Zeitpunkt n, Sn die Zahl der Suszeptiblen, d. h., jener Personen, die angesteckt werden können. 24 Wir nehmen an, dass jede infizierte Person eine festen Prozentsatz p ansteckt, weiters, dass jede Zeiteinheit G Neugeborene zum Pool der Suszeptiblen hinzu kommen. Unser Modell sieht dann folgendermaßen aus: In+1 = pSn In Sn+1 = Sn − pSn In + G Schreibe ein Programm, das zulässt, dass alle Parameter geändert werden können, und das die Kurven von In und Sn in verschiedenen vergleichenden Diagrammen ausgibt! Sei I0 = 20, S0 = 30000, und p = 0.00003. Experimentiere mit verschiedenen Geburtenzahlen (etwa G = 120 oder G = 360) und vergleiche! / 4.24 Programm: Wachstum. Schreibe ein Programm, das folgende Modelle betrachtet: a) Exponentielles Wachstum: xn+1 = rxn mit Wachstumsrate r (etwa r = 0.1). Stelle die Größe der Population xn dem Zuwachs gegenüber! b) Verhulst-Pearl logistisches Wachstum: xn+1 = xn + rn(1 − nk ). Stelle die Größe der Population xn dem Zuwachs gegenüber! c) Lotka-Volterra Modelle (Räuber-Beute Modelle): Eine Population von Räubern rn steht ihrer Beute bn gegenüber. Die Beute-Population hat eine natürliche Wachstumsrate von bw , während eine fixer Prozentsatz bs den Räubern zum Opfer fällt (Tod durch Altersschwäche gibt es nicht). Die Räuber ihrerseits haben eine Zuwachsrate rw , die von der Anzahl der Beutetiere abhängt, und eine Sterberate von rs . Als Räuber-Beute Modell ergibt sich bn+1 = bn + (bw · bn − bs · bn · rn ) rn+1 = rn + (rw · bn · rn − rs · rn ) Schreibe ein Programm, das dieses Modell implementiert und das auch berücksichtigt, dass eine Population aussterben kann! Sinnvolle Startwerte und Parameter könnten sein a) b0 = 100, r0 = 10, bw = 0.003, bs = 0.0003, rw = 0.00001, rs = 0.0005 b) b0 = 100, r0 = 15, bw = 0.015, bs = 0.000333, rw = 0.0001, rs = 0.001 c) b0 = 10, r0 = 15, bw = 0.005, bs = 0.000333, rw = 0.0001, rs = 0.001 Stelle die beiden Populationen jeweils in einem gemeinsamen Schaubild dar! / 25 4.25 Programm: Türme von Hanoi. Die Sage berichtet, dass in einem buddhistischen Tempel bei Hanoi die Mitglieder eines Mönchsordens seit Urzeiten damit beschäftigt seien, eine mühsame, aber für die Welt als Ganzes sehr wichtige Arbeit zu verrichten: Dort stehen drei Pfosten, auf denen 64 zylindrische Scheiben von jeweils verschiedenem Durchmesser, der Größe nach geordnet, liegen. Anfangs liegen alle Scheiben auf dem ersten Pfosten. Diese sollen auf den dritten Pfosten einzeln umgelegt werden. Dabei kann der zweite Pfosten als Zwischenablage verwendet werden, aber es darf nur immer eine kleinere auf einer größeren Scheibe zu liegen kommen. Wenn diese Arbeit einst vollendet sein wird, ist der Zweck des Weltalls erreicht: Die Menschheit wird vom Zwang der ewigen Wiedergeburt erlöst und darf ins Nirvana eingehen. Das Problem sieht sehr kompliziert aus, vor allem was die dabei nötige Buchhaltung betrifft. Wir wollen die Mönche bei ihrem sehr lobenswerten Werk durch eine Computersimulation unterstützen. Nach längerer Überlegung zeigt sich, dass es nützlich ist, einige Hilfsbegriffe einzuführen: – Ein Turm ist ein Stapel von Scheiben; dabei liegt immer eine kleinere Scheibe auf einer größeren. – Die Höhe eines Turmes ist die Anzahl der Scheiben. Sie kann auch 0 sein. – der Durchmesser eines Turmes sei gleich dem Durchmesser seiner untersten Scheibe – oder 0 für einen leeren Turm. – Ein Turm ist entweder leer, oder er besteht aus einer Scheibe und einem darauf stehenden Turm kleineren Durchmessers und um 1 kleinerer Höhe. Aus dieser rekursiven Beschreibung der Situation können wir nun den Ansatz einer rekursiven Lösung für den Transport eines Turmes gewinnen: – Für einen leeren Turm ist nichts zu tun. – Um einen nicht-leeren Turm von einem Pfosten A auf einen Pfosten E zu verlagern, bringen wir den auf der untersten Scheibe stehenden kleineren Turm (auf die gleiche Weise) auf den dritten Pfosten Z, legen die verbliebene Scheibe von A nach Z um, und holen dann den kleineren Turm (auf die gleiche Weise) vom Hilfspfosten Z nach E. Sei A(n) der Aufwand, einen Turm der Höhe n zu bewegen, und c1 , c2 irgendwelche Konstanten. Dann berechnet sich der Aufwand wie folgt: A(n) = 2A(n − 1) + c1 für n > 0, A(0) = c2 Löse diese Differenzengleichung ! Wie lange arbeiten die Mönche an ihrer Aufgabe, wenn sie für das Umlegen eines Steines etwa 10 Sekunden benötigen ? / 26 5 Halbgruppen und Gruppen Gruppeneigenschaften für (G, ◦): (G1) Abgeschlossenheit: a ◦ b ∈ G ∀a, b ∈ G (G2) Assoziativität: (a ◦ b) ◦ c = a ◦ (b ◦ c) ∀a, b, c ∈ G (G3) Neutrales Element, Einselement: ∃! e ∈ G : a ◦ e = e ◦ a ∀a ∈ G (G4) Inverses Element: ∀a ∈ G ∃ a−1 ∈ G : a ◦ a−1 = a−1 ◦ a = e (G5) Kommutativität: a ◦ b = b ◦ a ∀a, b ∈ G Gilt für ein (G, ◦) (G1), so heißt (G, ◦) Gruppoid, gilt zusätzlich (G2), so heißt (G, ◦) Halbgruppe, gilt zusätzlich (G3), so heißt (G, ◦) Monoid, gilt zusätzlich (G4), so heißt (G, ◦) Gruppe, gilt zusätzlich (G5), so heißt (G, ◦) abelsche oder kommutative Gruppe. Die mathematische Struktur der Gruppe ist ein wesentlicher Konstrukt in der Mathematik. Weiß man von einem Objekt“, dass es eine Gruppe ist, so können die verschie” densten Eigenschaften aus den Gruppeneigenschaften abgeleitet werden. Wir können sogar einfache und bekannte Beispiele als Modell hernehmen, denn es gilt der Satz von Cayley: Jede Gruppe ist zu einer Permutationsgruppe isomorph. Bemerkung: Ein Isomorphismus ϕ : H → G ist ein bijektiver Homomorphismus. Ist G = H so heißt ein Isomorphismus Automorphismus. Ein Homomorphismus ϕ : G → H hat definitionsgemäß folgende Eigenschaft: ϕ(x) + ϕ(y) = ϕ(x + y) . Der Kern eines Homomorphismus ϕ : G → H ist Kerϕ = {x ∈ G | ϕ(x) = ε ∈ H} Permutationen sind bijektive Abbildungen auf einer Menge. Notiert werden die Elemente der Einfachheit halber als Zahlen, die der Position der Elemente in einer geordneten Menge (n-Tupel) entsprechen. Einfache Darstellungen einer Permutation sind entweder Zyklen (etwa (1234)) oder Transpositionen ((1234) = (12)(23)(34)). Die Symmetrische Gruppe Sn entspricht der Menge aller Permutationen von n Elementen, die Altanierende Gruppe An entspricht der Menge aller geraden Permutationen einer Menge von n Elementen. Eine Permutation heißt gerade, wenn sie durch eine gerade Anzahl von Transpositionen dargestellt werden kann. Untergruppen müssen das neutrale Element ε und zu jedem Element a auch a−1 enthalten. 27 Beispiel: Sei M = {1, 2, 3}, so ist SM die symmetrische Gruppe S3 und besteht aus allen bijektiven Abbildungen auf der Menge M und hat demzufolge 3! = 6 Elemente: 123 123 123 = (12) = (23) p2 = = () p1 = ε= 321 132 123 123 123 123 = (12)(23) = (23)(31) p5 = = (12) p4 = p3 = 312 231 213 Die Gruppentafel ist S3 ε p 1 p 2 p 3 p 4 p 5 ε ε p1 p2 p3 p4 p5 p1 p1 ε p2 p3 p4 p5 p2 p2 p4 ε p5 p1 p3 p3 p3 p5 p4 ε p2 p1 p4 p4 p2 p3 p1 p5 ε p5 p5 p3 p1 p2 ε p4 Die Untergruppen dieser Gruppe S3 sind: {ε} {ε, p1 } {ε, p2 } {ε, p3 } A3 = {ε, p4 , p5 } S3 2 Es gilt der Satz von Lagrange: Die Ordnung einer Untergruppe ist stets Teiler der Ordnung der Gruppe. Beispiel: Klein’sche Vierergruppe V4 = {ε, (12)(34), (13)(24), (14)(23)} . Es gilt: {ε} ⊆ V4 ⊆ A4 ⊆ S4 . Es mag verwundern, dass die Existenz dieser Untergruppen der S4 dafür verant” wortlich“ ist, dass eine Gleichung vierten Grades per Formel auflösbar ist. Eine solche Faktorisierung“gibt es für höhere“ Gruppen Sn , n > 4, nicht, und daher auch keine ” ” expliziten Lösungsformeln für Gleichungen vom Grad 5 und höher (Galoistheorie). 2 Beispiel: Weitere wichtige“ Gruppen in der Mathematik sind die Matizengruppen: ” Gl(n) = {n × n − MatrizenA | det A 6= 0} General linear group AB 6= BA, B −1 AB 6= A aber B −1 AB ∼ A Sl(n) = {n × n − MatrizenA | det A = 1} Special linear group n O(n) = {n × n − MatrizenA | hAx, Ayi = x, yi, x, y ∈ R } Orthogonal group SO(n) = {A ∈ O(n) | det A = 1} Special orthogonal g. SO(2) Drehmatrizen in R2 U (n) = {n × n − MatrizenU | hU x, U yi = hx, yi, x, y ∈ Cn }} Unitary group P hx, yi = hy, xi = i xi , ȳi , xi , yi ∈ C SU (n) = {U ∈ U (n) | detU = 1} Special unitary group 2 28 5.1 Welche der folgenden Strukturen ist Gruppoid, Halbgruppe, Monoid oder Gruppe? a) (N, +) d) (Q, ·) g) (R, ·) b) (N0 , +) e) (R, +) h) (R+ , ·) c) (Q, +) f) (R+ , +) i) (Z, ·) / 5.2 Welche der folgenden Strukturen (S, ◦) ist Halbgruppe, Monoid oder Gruppe? a) S = N, x ◦ y := min(x, y) b) S = R, x ◦ y := (x + y)2 c) S = {1, −1, i, −i}, x ◦ y := komplexe Multiplikation (d. h. i2 = −1) d) S = {1, 2, 4}, x ◦ y := x ·6 y (siehe Definition in Beispiel 5.7) / 5.3 Ein Ausdruck der Form an xn + an−1 xn−1 + · · · + a0 mit ak ∈ R, k = 0, . . . , n und n ∈ N heißt Polynom in x mit reellen Koeffizienten“. ak heißen Koeffizienten von xk für alle ” k. Falls k die größte ganze Zahl ist für die ak 6= 0, dann heißt das Polynom vom Grad ” k“. Falls kein solches existiert ist der Grad 0. Die Menge aller Polynome in x über R bezeichnen wir mit R[x]. Wir können in R[x] auf nahe liegende Art die Operationen ‘+’ und ‘·’ definieren. a) Ist (R[x], +) Gruppoid, Halbgruppe, Monoid, Gruppe, kommutativ? b) Ist (R[x], ·) Gruppoid, Halbgruppe, Monoid, Gruppe, kommutativ? c) Bestimme das Inverse von 7x4 − 2x3 + 4 in (R[x], +)! / 5.4 Stelle die Verknüpfungstafel für die Permutationsgruppe G ⊆ S4 mit der Generatormenge {(2, 4, 3, 1)} auf! Gib das Einselement von G sowie das Inverse von (2, 4, 3, 1) an! Die Notation (a1 , . . . , a4 ) bedeutet π(1) = a1 , . . . , π(4) = a4 . Hinweis: G hat 3 Elemente! 29 / 5.5 Stelle die Verknüpfungstafel für die alternierende Gruppe A3 von Permutationen von 3 Elementen auf! Hinweis: Suche aus den in S3 enthaltenen Permutationen die geraden heraus! / 5.6 Sei Z5 = {0, 1, 2, 3, 4}. Definiere die Addition modulo 5“ (+5 ) auf Z5 durch x +5 y = r, ” wobei r der Rest der Division von x + y durch 5 ist (Bsp.: 1 +5 2 = 3, 3 +5 4 = 2) und die Multiplikation modulo 5“ (·5 ) auf Z5 durch x ·5 y = r, wobei r der Rest der Division ” von x · y durch 5 ist (Bsp.: 2 ·5 3 = 1, 3 ·5 4 = 2). Eine andere gebräuchliche Darstellung ist x ≡ r(5) oder x ≡ r mod 5 (sprich: x kongruent r modulo 5“). ” a) Ist (Z5 , +5 ) Gruppoid, Halbgruppe, Monoid, Gruppe, kommutativ? b) Ist (Z5 , ·5 ) Gruppoid, Halbgruppe, Monoid, Gruppe, kommutativ? c) Vervollständige folgende Tabellen! +5 0 1 2 3 4 0 1 2 3 4 3 2 ·5 0 1 2 3 4 0 1 2 3 4 d) Bestimme alle Inversen zu den Elementen in (Z5 , +5 )! e) Welche Elemente von (Z5 , ·5 ) haben Inverse? 1 2 / 5.7 Sei Z6 = {0, 1, 2, 3, 4, 5}. Definiere die Addition modulo 6“ (+6 ) auf Z6 durch x +6 y = ” r, wobei r der Rest der Division von x + y durch 6 ist und die Multiplikation modulo ” 6“ (·6 ) auf Z6 durch x ·6 y = r, wobei r der Rest der Division von x · y durch 6 ist. a) Ist (Z6 , +6 ) Gruppoid, Halbgruppe, Monoid, Gruppe, kommutativ? b) Ist (Z6 , ·6 ) Gruppoid, Halbgruppe, Monoid, Gruppe, kommutativ? c) Stelle die Gruppenverknüpfungstafeln auf ! d) Bestimme alle Inversen zu den Elementen in (Z6 , +6 )! e) Welche Elemente von (Z6 , ·6 ) haben Inverse? / 30 5.8 Eine Teilmenge A ⊆ Ω einer gegebenen endlichen Menge Ω = {ω1 , . . . , ωn } lässt sich durch eine binäre Zeichenkette (0-1-Folge) bA = b1 · · · bn darstellen, 1 ωi ∈ A . wobei bi = 0 ωi ∈ /A a) Beschreibe für Mengen A, B ∈ P (Ω), welche Operationen für binäre Zeichenketten den Mengenoperationen A ∪ B, A ∩ B und Ac entsprechen, d. h., wie die Zeichenketten bA∪B , bA∩B und bAc aus bA und bB gebildet werden! b) Begründe, warum (P (Ω), ∪) und (P (Ω), ∩) Halbgruppen sind! Gib das jeweilige neutrale Element und dessen Darstellung als binäre Zeichenkette an! c) Welche Operation auf binären Zeichenketten entspricht der Mengenoperation der symmetrischen Differenz A∆B = (A \ B) ∪ (B \ A) ? d) Die Hamming-Distanz zwischen den Mengen A, B ∈ P (Ω) ist als die Anzahl der Elemente |A∆B| in der symmetrischen Differenz definiert. Gib an, wie aus bA und bB die Hamming-Distanz zwischen A und B ermittelt werden kann! / 5.9 Programm: Permutationen. a) Schreibe ein Programm, das alle möglichen Permutationen einer gegebenen Zeichenkette ausgibt! Hinweis: Rekursiv! b) Schreibe ein Programm, das alle Binärstrings der Länge n generiert! c) Schreibe ein Programm, das Addition (Multiplikation) modulo n in einer Verknüpfungstafel ausgibt und die Gruppeneigenschaften testet! / 5.10 Programm: Gruppeneigenschaften (umfangreich). a) Schreibe ein Programm, das die Verknüpfungstafel eines beliebigen Gruppoids als quadratische Matrix (Tabelle) akzeptiert, diese ausgibt, und sodann überprüft, ob eine Halbgruppe, ein Monoid, eine Gruppe oder eine Abel’sche Gruppe (kommutative Gruppe) vorliegt und das Ergebnis ausgibt! Anleitung: Die Eingabe erfolgt in einer Matrix, eingegeben werden Charakter bzw. Strings. Damit es nicht zu schwierig wird, kann vorausgesetzt werden, dass nur die Buchstaben a − z verwendet werden. Überprüfe sodann die Definitionseigenschaften durch vollständige Enumeration, d. h., alle Elemente werden durchnummeriert (wenn die Elemente in einer Matrix eingegeben werden, sind dies automatisch die Zeilen- und Spaltenindizes, die Verknüpfungen werden in geschachtelten Schleifen zur Überprüfung der Eigenschaften einzeln abgehandelt. Wenn etwa das Assoziativgesetz (a ∗ b) ∗ c = a ∗ (b ∗ c) überprüft werden soll, gehe alle Tripel (a, b, c) einzeln durch. 31 b) Erweitere obiges Programm durch folgende Merkmale, wenn im speziellen Fall sinnvoll: – Ausgabe aller neutralen Elemente; – Ausgabe des inversen Elementes bei Eingabe eines Elements; – Lösen der Gleichung a ∗ x = b nach Eingabe von a und b. / 5.11 Finde alle Elemente der Alternierenden Gruppe“ A4 aller geraden Permutationen von ” {1, 2, 3, 4} und zeige, dass A4 eine Untergruppe von S4 der Gruppe aller Permutationen von {1, 2, 3, 4} ist! / 5.12 Schreibe die Elemente der alternierenden Gruppe A4 in lexikographischer Ordnung (nach dem Alphabet) auf! / 5.13 Programm: Symmetrische und alternierende Gruppen. a) Schreibe ein Programm, das zu einem eingegebenen n ∈ N alle Elemente der symmetrischen Gruppe Sn ausgibt! b) Schreibe ein Programm, das zu einem eingegebenen n ∈ N alle Elemente der alternierenden Gruppe An ausgibt! Hinweis: Schreibe eine Routine, die eine Zyklenzerlegung einer gegebenen Permutation π durchführt! Damit lässt sich leicht prüfen, ob π ∈ An . / 5.14 (N+ , +) ist eine Halbgruppe. Sei G = Z+ die Menge der positiven ganzen Zahlen, dann ist (G, ·) auch eine Halbgruppe. Zeige, dass die Funktion ϕ : N+ → G, definiert durch ϕ(x) = 2x ein Homomorphismus ist! / Ein Homomorphismus zwischen zwei Halbgruppen (G, ⊕) und (H, ) ist eine Abbildung ϕ : (G, ⊕) → (H, ), a ∈ G 7→ ϕ(a) ∈ H für die ϕ(a ⊕ b) = ϕ(a) ϕ(b) gilt. Ein bijektiver Homomorphismus heißt Isomorphismus. Ist G = H, so heißt ein Homomorphismus auf G Automorphismus. 32 5.15 Seien folgende Abbildungen ϕ : (G, ⊕) → (H, ) gegeben. Welche sind Homomorphismen, welche Isomorphismen? a) (G, ⊕) = (N, +), (H, ) = (2N, +), ϕ(x) = 2x b) (G, ⊕) = (N, +), (H, ) = (2N, ·), ϕ(x) = 2x c) (G, ⊕) = (R, +), (H, ) = (R, +), ϕ(x) = x2 d) (G, ⊕) = (Z, +), (H, ) = (Z, +), ϕ(x) = 2 e) (G, ⊕) = (R, +), (H, ) = (R, +), ϕ(x) = x + 1 f) (G, ⊕) = (R, +), (H, ) = (R, +), ϕ(x) = |x| g) (G, ⊕) = (Z × Z, +), (H, ) = (Z, +), ϕ((x, y)) = x + 2y h) (G, ⊕) = (R[x], +), (H, ) = (R, +) ϕ(an xn + an−1 xn−1 + · · · + a0 ) = an + an−1 + · · · + a0 / 5.16 Zeige, dass ϕ(x) = x ·3 1 ein Homomorphismus von (Z, +) nach (Z3 , +3 ) ist! Bestimme den Kern! / 6 Graphen Bevor wir in medias res gehen, eine Zusammenfassung der wichtigsten Definitionen und Notationen für Graphen. Graphen bestehen aus Knoten (vertex, vertices) und Kanten (edge(s)) und einer Funktion, die jeder Kante ein Paar von Knoten zuordnet. Ein Graph G kann daher durch die Mengen V (G) und E(G) und einer Funktion f gegeben sein. Kanten können gerichtet sein, (x, y) ist etwa die Kante von Knoten x nach Knoten y, oder ungerichtet, {x, y} ist die (ungerichtete) Kante zwischen x und y. Im Folgenden werden wir aber die Notation (x, y) für ungerichtete, und < x, y > für gerichtete Kanten verwenden, da sie einfacher ist. Ein gerichteter Graph besitzt nur gerichtete Kanten, ein ungerichteter nur ungerichtete. Treten beide Arten von Kanten auf, so heißt der Graph gemischt. Es kann in einem Graphen auch Schlingen und Mehrfachkanten geben. Ein schlichter (oder einfacher) Graph hat weder Schlingen noch Mehrfachkanten. Ein vollständiger Graph hat zwischen jedem seiner Knotenpaare eine Kante, d. h., bei n n Knoten hat er 2 Kanten und wird mit Cn bezeichnet. Der kantenlose oder leere Graph hat keine Kanten. Die Kantendichte ist das Verhältnis von Kantenzahl zu 33 Anzahl der Kanten im zugehörigen Maximalgraphen bei gegebener Knotenmenge, d. h., |E|/ n2 . Graphen mit hoher Kantendichte heißen dicht (dense), die mit geringer spärlich (sparse). Den Schatten eines Graphen erhalten wir, indem wir je zwei entgegengesetzt gerichtete Kanten durch eine ungerichtete ersetzen, und alle weiteren gerichteten ebenfalls durch ungerichtete. Ein Teilgraph ist eine Teilmenge eines Graphen. Mit jeder Kante, die im Teilgraph aufscheint, müssen auch die Endknoten aufscheinen. Enthält ein Teilgraph alle Knoten des Originals, so heißt er spannender Teilgraph. Enthält ein Teilgraph mit den Knoten auch alle Kanten auf dieser Knotenmenge, so heißt er gesättigter oder aufgespannter Teilgraph. Knoten, die durch eine Kante verbunden sind, heißen benachbart oder adjazent. Die Endknoten einer Kante heißen zu dieser Kante inzident. Graphen (gerichtete oder ungerichtete) mit n Knoten und k Kanten können sowohl durch eine n × k Inzidenzmatrix BG (falls ein gerichteter Graph vorliegt, darf er keine Schlingen enthalten), als auch durch eine n × n Adjazenzmatrix AG beschrieben werden. Ungerichteter Graph BG = (bi,j ) i=1,...,n bi,j = AG = (ai,j ) i=1,...,n j=1,...,k j=1,...,n ai,j = r 0 1 0 vj inzident zu ej sonst r Kanten zwischen vi und vj sonst Gerichteter Graph BG = (bi,j ) i=1,...,n j=1,...,k AG = (ai,j ) i=1,...,n j=1,...,n bi,j ai,j = 1 −1 = 0 r 0 ej beginnt in vi ej endet in vi sonst r Kanten von vi nach vj sonst Die Anzahl d+ (vi ) der von einem Knoten vi wegführenden Kanten heißt Outdegree, die Anzahl d− (vi ) der zu dem Knoten hinführenden Kanten heißt Indegree. Bei ungerichteten Graphen ist d(vi ) die Anzahl der mit vi inzidenten Kanten der Grad des Knoten. 34 Es gilt: + d (vi ) = n X j=1 aij − d (vi ) = n X aji j=1 d(vi ) = n X j=1 aij = n X aji j=1 Ist d+ (v) = 0, so heißt v Senke, ist d− (v) = 0, so heißt v Quelle. Betrachten wir Kantenfolgen von va nach ve , das sind Folgen von aneinander anschließenden Kanten, die vom Anfangsknoten va bis zum Endknoten ve durchlaufen werden kann. Ist der Anfangs- gleich dem Endknoten, so heißt die Kantenfolge geschlossen, andernfalls heißt sie offen. Eine Kantenfolge, in der keine Kante mehrfach auftritt heißt Kantenzug. Ein Weg ist eine offen Kantenfolge, in der kein Knoten mehrfach auftritt. Ein Zyklus oder Kreis ist eine geschlossene Kantenfolge, in der kein Knoten mehrfach vorkommt (außer Anfangsund Endknoten). Die Anzahl der Kanten in einer Kantenfolge heißt Länge. Ein Knoten vi heißt in k Schritten von vj aus erreichbar, wenn es eine Kantenfolge der Länge k von vj nach vi gibt. Ein ungerichteter Graph heißt zusammenhängend, wenn jeder Knoten des Graphen von jedem anderen Knoten aus erreichbar ist. Die zusammenhängenden gesättigten Teilgraphen eines Graphen heißen Zusammenhangskomponenten des Graphen. Ein gerichteter Graph heißt stark zusammenhängend, wenn jeder Knoten des Graphen von jedem anderen Knoten aus erreichbar ist. Er heißt schwach zusammenhängend, wenn sein Schatten zusammenhängend ist. BEMERKUNG : Es gibt eine Kantenfolge der Länge s von vi nach vj wenn das Element (s) (s) aij > 0, mit AsG = (aij ). BEMERKUNG : Ein Knoten vj ist von vi aus erreichbar, wenn der Eintrag rij > 0, [0] [n−1] wobei die Erreichbarkeitsmatrix R = (rij ) = (max(aij , . . . , aij )) ist, (k) 1 falls aij > 0 [k] . mit aij = 0 sonst Die Distanz d(vi , vj ) zweier Knoten in einem zusammenhängenden Graphen ist die Länge des kürzesten Weges zwischen den beiden Knoten. Eine Euler’sche Linie enthält jeden Knoten mindestens einmal, jede Kante genau einmal. Eine Hamilton’sche Linie enthält jeden Knoten genau einmal. Geschlossene Euler’sche bzw. Hamilton’sche Linien sind solche, die einen geschlossenen Kantenzug bilden. Kreisfreie, gerichtete Graphen heißen azyklisch. Ein ungerichteter, kreisfreier Graph heißt Wald. Ein zusammenhängender Wald heißt Baum. Ein Knoten vom Grad 1 eines Baumes heißt Blatt oder Endknoten. Ein Teilgraph, der alle Knoten eines zusammenhängenden ungerichteten Graphen enthält und zusätzlich ein Baum ist, nennen wir spannenden Baum oder Gerüst. 35 Graphen, die in den folgenden Beispielen verwendet werden und dort nicht explizit angegeben werden, finden sich am Ende dieses Abschnitts. 6.1 Graph G1 gegeben durch: V (G1 ) = {1, 2, . . . , 8}, E(G1 ) = {< x, y > | x teilt y, x < y} Graph G2 gegeben durch: V (G2 ) = {1, 2, . . . , 5}, E(G2 ) = {< x, y > | x < y ≤ x + 3} Bestimme und zeichne G1 ∩ G2 und G1 ∪ G2 ! / 6.2 Graph G1 gegeben durch: V (G1 ) = {1, 2, . . . , 7}, E(G1 ) = {< x, y > | x < y ≤ x + 2} Graph G2 gegeben durch: V (G2 ) = {1, 2, . . . , 9}, E(G2 ) = {< x, y > | x teilt y, x < y} Bestimme und zeichne G1 ∩ G2 und G1 ∪ G2 ! / 6.3 Bestimme alle Quadrupel (a, b, c, d), a, b, c, d ∈ {1, 2, . . . , 7}, sodass der von den Knoten a, b, c, d in G1 aufgespannte (vollständige) Teilgraph mit G2 identisch ist! / 6.4 Bestimme alle Quadrupel (a, b, c, d), a, b, c, d ∈ {1, 2, . . . , 7}, sodass der von den Knoten a, b, c, d in G3 aufgespannte Teilgraph mit G4 identisch ist! / 6.5 Bestimme die Adjazenzmatrizen AG1 , AG2 , AG1 ∩G2 und AG1 ∪G2 für die Graphen aus Beispiel 6.1 bzw. 6.2! / 6.6 Bestimme die Adjazenzmatrizen AG1 und AG3 , sowie die Potenzen A2G1 , AG1 , A2G3 und [2] / AG3 ! 6.7 Bestimme die Adjazenzmatrix AG5 , sowie (mit deren Hilfe) die Anzahl der gerichteten Kantenfolgen der Länge 3 von Knoten 4 nach 6! / 6.8 Entferne aus dem vollständigen (ungerichteten) Graphen mit der Knotenmenge {1, . . . , 5} die Kanten (3, 5) und (4, 5). [2] a) Stelle den resultierenden Graphen G durch seine Adjazenz- und Inzidenzmatrix dar, wobei im Fall der Inzidenzmatrix die Kanten (i, j) gemäß der Relation (i, j) vor (i0 , j 0 ) − (i < i0 ∨ (i = i0 ∧ j < j 0 )) anzuordnen sind ! b) Enthält G eine geschlossene Euler’sche Linie ? Gib diese an bzw. begründe warum, falls keine solche existiert! c) Gib eine geschlossene Hamilton’sche Linie in G an! / 36 6.9 6.10 Sei H5 der Graph, der aus G5 durch Umdrehen aller Kantenrichtungen entsteht. Bestimme die Adjazenzmatrix AH5 , sowie (mit deren Hilfe) die Anzahl der gerichteten Kantenfolgen der Länge 3 von Knoten 4 nach 6! / Gegeben sei die Adjazenzmatrix A (mit Mehrfachkanten) 1 1 0 1 1 0 1 0 A= 0 1 0 2 1 0 2 0 a) Zeichne einen dazu gehörigen ungerichteten Graphen mit den Knoten {1, 2, 3, 4}! b) Berechne A2 ! c) Finde 5 verschiedene Pfade von 4 nach 4 der Länge 2! d) Berechne die Erreichbarkeitsmatrix R! / 6.11 Der 3-dimensionale Hypercube H3 ist durch folgende Knotenmenge und Kantenmenge gegeben: Knoten: V (H3 ) = {x = (x1 , x2 , x3 ) | xi ∈ {0, 1}, i = 1, 2, 3} Kanten: E(H3 ) = {(x, y) | genau zwei Komponenten von x und y stimmen überein} Ermittle für H3 die durchschnittliche Distanz der sieben Knoten x 6= (0, 0, 0) zum Knoten (0, 0, 0). Hinweis: Fasse die Knoten als Punkte im R3 auf und zeichne diese! / 6.12 Zeichne zwei verschiedene ungerichtete zusammenhängende Graphen mit der Knotenmenge V = {1, 2, 3, 4, 5}, die geschlossenen Euler’sche Linien enthalten, und gib deren Adjazenzmatrizen und Inzidenzmatrizen an! / 6.13 Gegeben sei der Graph G15 . a) Welche Knoten sind von 3 aus erreichbar? b) Bestimme die Länge des kürzesten Pfades von 3 nach 6! c) Bestimme einen Pfad der Länge 8 von 1 nach 6! / 37 6.14 Der gerichtete Graph G = (V, E) sei durch V = {1, . . . , 6} und E = {(i, j) | i, j ∈ V, 2i + j ≤ 6} gegeben. a) Zeichne G ! b) Gib die Adjazenzmatrix von G an! c) Ist G ein schlichter Graph ? – Begründung! d) Gib die schwachen Zusammenhangskomponenten von G an! e) Betrachte den von V 0 = {1, 2} aufgespannten Teilgraphen G0 von G! Enthält G0 eine geschlossene Euler’sche Linie ? – Begründung! / 6.15 Gegeben sei der Graph G24 . a) Bestimme die Adjazenzmatrix von G! b) Gib die Indegrees und Outdegrees der Knoten von G an! c) Zeichne den Schatten von G! / 6.16 Programm: Distanzmatrix. Schreibe ein Programm, das die Distanzmatrix D eines gegebenen zusammenhängenden gerichteten Graphen berechnet und ausgibt, d. h., jene Matrix D = (dij )i,j , in der dij die Distanz von Knoten i zu Knotenj ist, d. h., die Länge des kürzesten Weges von i nach j! Anleitung: Es soll die Adjazenzmatrix AG des Graphen eingegeben werden. Verwende weiters die in der Vorlesung gegebene Interpretation der Potenzen AnG von AG ! / 6.17 Programm: Euler’sche Linie. Schreibe ein Programm, das einen durch seine Adjazenzmatrix AG gegebenen gerichteten Graphen G durch Hinzufügen von beliebigen Kanten so erweitert, dass er eine geschlossene Euler’sche Linie enthält! / 38 6.18 Programm: Topologische Knotensortierung. Eine topologischen Knotensortierung ist eine Nummerierung der Knoten eines gegebenen azyklischen gerichteten Graphen G, sodass v ∈ V stets eine kleinere Nummer als w ∈ V bekommt, wenn es einen Weg von v nach w gibt. Implementiere folgenden Algorithmus zur topologischen Knotensortierung: Solange Knoten nicht nummeriert { - Nummeriere Quellen von G mit der kleinsten noch freien Nummer - Entferne die soeben nummerierten Quellen und die von ihnen wegführenden Kanten aus G } / 6.19 Programm: Zyklische Graphen. a) Schreibe ein Programm, das von einem gegebenen Graphen bestimmt, ob er zyklisch oder azyklisch ist! b) Schreibe ein Programm, das von einem gegebenen Graphen bestimmt, ob er kreisfrei ist! Weiters soll es die Menge der erreichbaren Knoten ausgeben. / 6.20 Gegeben sei der Graph G16 . a) Bestimme die Anzahl der Pfade der Länge 3 von 5 nach 2 direkt! b) Bestimme die Anzahl der Pfade der Länge 3 von 5 nach 2 mit Hilfe der Matrix A3G16 ! / 6.21 Bestimme für die Graphen G6 , H6 und G17 (wobei H6 durch Umkehren aller Kantenrichtungen aus G6 entsteht) die entsprechenden Erreichbarkeitsmatrizen R! / 6.22 Zeige für den Graphen G15 mit Hilfe der Erreichbarkeitsmatrix, dass die Knoten 1 und 2 von 3 aus nicht erreichbar sind! / 6.23 Bestimme die starken Zusammenhangskomponenten für die Graphen G1 , G3 , G5 , G7 und H7 (wobei H7 durch Umkehren aller Kantenrichtungen aus G7 entsteht)! / 39 6.24 Untersuche, ob die Graphen G14 , G18 , G19 , G20 , G21 , G22 , G23 eine geschlossene Euler’sche Linie besitzen und bestimme gegebenenfalls eine solche! / 6.25 Untersuche, ob die Graphen G14 , G18 , G19 , G20 , G21 , G22 , G23 eine geschlossene Hamilton’sche Linie besitzen und bestimme gegebenenfalls eine solche! / 6.26 Bestimme in den Graphen G5 und H5 (entstanden durch Umkehrung aller Kantenrichtungen aus G5 ) die Anzahl der Zyklen der Länge 3, auf denen der Knoten 4 liegt! / 6.27 Bestimme in den Graphen G9 und G10 die Anzahl der Dreiecke (Kreise der Länge 3)! / 6.28 Untersuche die Graphen G7 , G8 , G11 und H11 (entstanden durch das Umkehren aller Kantenrichtungen aus G11 ) mit dem Markierungsalgorithmus auf Azyklizität! / 6.29 Bestimme alle Knotenbasen der Graphen G1 , G3 , G5 , G7 und H7 (entstanden durch das Umkehren aller Kantenrichtungen aus G7 )! / Graphen G1 − G24 zu den Beispielen G1 : 2 3 6 1 G5 : b c 8 7 c 6 5 3 5 d b 4 G6 : 4 1 2 3 40 6 1 4 a 1 2 7 3 G4 : d a 2 5 4 G2 : G3 : 7 G7 : G8 : 1 2 7 8 3 4 5 6 11 12 9 10 13 14 4 5 G9 : 3 2 1 4 6 2 7 G10 : G11 : 3 4 5 4 6 5 6 7 8 8 6 G13 : 8 7 1 2 5 G16 : 5 1 3 6 3 5 2 4 2 4 7 2 G15 : 3 1 3 1 G14 : 2 2 1 G12 : 3 1 3 1 41 5 4 4 G17 : ! "%'&#+,$ ( ) * 45.967 3/8210 1 G18 : 3 2 4 G19 : G21 : G20 : G22 : G23 : G24 : 3 1 2 7 Endliche Automaten Ein endlicher Automat ist ein formales System (Q, Σ, δ, q0 , F ), in dem ein bestimmtes Ein-Ausgabeverhalten mit Alphabet Σ durch eine endliche Anzahl interner Systemzustände Q und ihrer Übergänge δ : Q × Σ → Q definiert wird, wobei im Zustand q0 gestartet wird, und verschiedene Endzustände F angegeben sind. 42 7.1 Gib eine Beschreibung einer Geldausgabe durch einen Bankomaten als Endlichen Automaten! Hinweis: Berücksichtige sowohl korrekte wie auch fehlerhafte Eingaben und Verhaltensweisen des Benutzers. Als Nebenbedingung gilt, dass der Code maximal dreimal eingegeben werden kann. / 7.2 Erweitere das Übergangsdiagramm aus Beispiel 7.1 zu einem Graphen, in dem eine geschlossene Euler’sche Linie existiert, und leite daraus eine Testsequenz ab, die alle möglichen Übergänge abdeckt! / 7.3 Gib Endliche Automaten an, die folgende Sprachen über dem Alphabet {0, 1} akzeptieren! a) Die Menge aller Zeichenketten, die mit ‘00’ enden. b) Die Menge aller Zeichenketten, die drei aufeinander folgende Nullen enthalten. c) Die Menge aller Zeichenketten, die so beschaffen sind, dass fünf aufeinander folgende Symbole mindestens zwei Nullen enthalten. / BEMERKUNG (R EGUL ÄRER A USDRUCK ÜBER DEM A LPHABET Σ): 1. ∅ ist ein regulärer Ausdruck (leere Menge {}). 2. ε ist ein regulärer Ausdruck (leere Eingabe {ε}). 3. a ist ein regulärer Ausdruck für alle a ∈ Σ (Menge {a}). 4. Sind r und s reguläre Ausdrücke (Mengen R und S), dann auch • (r + s) – bezeichnet R ∪ S. • (rs) – bezeichnet Verkettung RS. • (r∗ ) – Kleene’scher Abschluss, d. h., alle möglichen Verkettungen inklusive ε. 7.4 Gib reguläre Ausdrücke an, die die folgenden Mengen bezeichnen! a) Die Menge aller Dezimalzahlen mit mindestens einer Ziffer vor und beliebig vielen Ziffern nach dem Dezimalpunkt (Komma). b) Die Menge aller Passwörter aus mindestens einem und höchstens fünf Buchstaben, gefolgt von zwei Ziffern. 43 c) Die Menge aller binären Zeichenketten, in denen nie drei Nullen aufeinander folgen. d) Die Menge aller binären Zeichenketten, in denen die Anzahl von unmittelbar aufeinander folgenden Nullen stets gerade ist. / 7.5 Konstruiere einen regulären Ausdruck, der folgendem Übergangsdiagramm entspricht: 0 Start 1 0 1 1 / 0 7.6 Konstruiere eine (a) Moore-Maschine (b) Mealy-Maschine für folgenden Prozess: Für eine Eingabe aus (A + B)∗ soll diese eine ‘1’ ausgeben, falls die Eingabe mit ABA endet, eine ‘2’ ausgeben, falls sie mit AAB endet, und sonst eine ‘3’ ausgeben. / 7.7 Programm: Lindenmayer-System, kontextfreie Grammatik. Ein L-System besteht aus Variablen, Konstanten (die nicht verändert werden können), Regeln für den Austausch von Variablen (Ersetzungsvorschriften) und Anfangsbedingungen (Axiome), d. h., aus welchem Zustand das L-System startet. Das L-System Fibonacci mit den Variablen A und B, ohne Konstanten und mit den Regeln Ersetze A durch B“ und Ersetze B durch AB“ generiert aus der Anfangsbe” ” dingung A durch Iteration folgende Strings: 0 1 2 3 4 5 6 7 : : : : : : : : A B AB BAB ABBAB BABABBAB ABBABBABABBAB BABABBABABBABBABABBAB Betrachten wir die Länge der Strings, so erhalten wir die Fibonacci-Zahlen, was nicht verwunderlich ist, wenn wir beachten, dass jeder String aus der Zusammenfügung (Konkatenation) der beiden letzten Vorgänger entsteht (nach Initialisierung der ersten beiden). 44 L-Sytem Algenwachstum der Alge Chaetomorpha linum: Alphabet Variablen Konstanten Axiom Ersetzungsvorschriften A = {A, B, C, D, E, +} V = {A, B, C, D, E} K = {+} A A→D+B B→C C→D D→E E→A Iterieren wir und fassen den Buchstaben ‘+’ als Verzweigung auf, so ergibt sich ein Baum, der dem Wachstum der Alge entspricht, wenn wir, wie sonst nicht üblich, alle Entwicklungsstadien gleichzeitig betrachten. Aufgabe: Gegeben seien eine Menge V = {0, 1} von Variablen, vier Konstanten K = {+, −, [, ]}, ein Axiom als Startbedingung aus diesen Symbolen und eine Ersetzungsvorschrift für den Austausch von einzelnen Symbolen in durch eine Kette von Symbolen. a) Schreibe ein Programm, das nach Eingabe des Axioms, der Ersetzungsvorschrift und einer Iterationstiefe n, eine Schleife, in der der jeweilig im letzten Schritt entstandene String nach der Ersetzungsvorschrift behandelt wird, genau n Mal durchläuft ! Der Ergebnisstring soll ausgegeben werden. b) Erweitere das Programm um eine graphische Ausgabe, die aus dem Ergebnisstring nach Eingabe eines Winkels α eine Figur zeichnet, indem die Symbole des Strings in folgender Weise interpretiert werden (Zeichenvorschrift): 0 Gehe einen Schritt in die aktuelle Richtung, zeichne nicht. 1 Gehe einen Schritt in die aktuelle Richtung, zeichne eine Kante. ‘+’ Zeichne die nächste Kante um den Winkel α gedreht zur letzten Richtung vom aktuellen Knoten weiter! ‘−’ Zeichne die nächste Kante um den Winkel −α gedreht zur letzten Richtung vom aktuellen Knoten weiter! ‘[’ Lege den aktuellen Zustand auf einem Stapel ab (Zeichenposition, Zeichenrichtung etc.)! ‘]’ Nimm den letzten Zustand vom Stapel und mach diesen zum aktuellen! Teste die Programme mit: a) Axiom: 1 − 1 − 1 − 1; Ersetzungsvorschrift: 1 → 11 − 1 − 1 − 1 − 1 − 1 + 1, α = 90◦ b) Axiom: 1 − 1 − 1 − 1; Ersetzungsvorschrift: 1 → 1 − 1 + 1 − 1 − 1, α = 90◦ c) Axiom: 1; Ersetzungsvorschrift: 1 − 1 + +1 − 1, α = 60◦ 45 d) Axiom: 1; Ersetzungsvorschrift: 11 + [+1 − 1 − 1] − [1 + 1 + 1], α = 22◦ / 7.8 Programm: Turing Maschinen. Anfang des 20. Jahrhunderts präsentierte David Hilbert eine Liste ungelöster Mathematischer Probleme, darunter: Ist die Mathematik vollständig, d. h., kann jede ihrer Aussagen entweder bewiesen oder widerlegt werden? Ist die Mathematik widerspruchsfrei, oder können falsche Aussagen mittels mathematisch logischer Beweisführung hergeleitet werden? Ist die Mathematik entscheidbar, d. h., gibt es ein Verfahren, das für jede Aussage überprüfen kann, ob diese wahr oder falsch ist? Kurt Gödel zeigte, dass die beiden ersten Aussagen einander ausschließen: Entweder ist das Axiomensystem der Mathematik vollständig, dann führt es zu Widersprüchen, oder es ist widerspruchsfrei, dann gibt es aber Aussagen, von denen nicht entschieden werden kann, ob sie wahr oder falsch sind (Unentscheidbarkeit, Unvollständigkeit). 1936 zeigte Alan M. Turing (1912 - 1954), dass das dritte Problem unlösbar ist (Halteproblem). Dies machte eine exakte Definition des Begriffes Verfahren“ (Algorith” mus) erforderlich. Nach Turings Vorstellung muss ein Verfahren rein mechanisch ausgeführt werden können. Eine Turingmaschine ist nun ein theoretisches Modell eines Rechners zur Abarbeitung eines Algorithmus. Eine Turingmaschine hat folgende Bestandteile: – Ein unendlich langes Speicherband. Auf jedem Feld kann genau ein Zeichen des verwendeten Alphabets gespeichert werden; ein spezielles Zeichen des Alphabets ist das Leerzeichen. – Ein Schaltwerk (Übergangstafel) mit endlich vielen Zuständen, das das Verhalten der Turingmaschine steuert. Siehe etwa die Übergangstafel und das Übergangsdiagramm im nächsten Beispiel. – Einen Schreib-Lesekopf. Er kann den Bandinhalt an der aktuellen Position lesen, ein Zeichen an der aktuellen Position auf das Band schreiben, und sich um einen Schritt nach links oder rechts bewegen. Zu Beginn befindet sich ein bestimmter Bandinhalt auf dem Speicherband, der SchreibLesekopf befindet sich an einer bestimmten Stelle und das Schaltwerk befindet sich im Zustand 1. Dann wird die Turingmaschine gestartet. Das Halteproblem besteht nun darin, dass es Turingmaschinen gibt, von denen nicht vorausgesagt werden kann, ob sie halten oder nicht! Jeder digitale Computer kann genau dieselbe Klasse mathematischer Funktionen berechnen wie eine Turingmaschine, d. h., eine mathematische Funktion ist berechenbar, wenn sie sich auf einer Turingmaschine berechnen lässt. 46 Aufgabe: Schreibe einen Simulator für Turingmaschinen, der durch Eingabe einer Übergangstafel gesteuert wird! Dabei soll es möglich sein, den Inhalt des (unendlichen) Bandes zu initialisieren, d. h. etwa, lauter Leerzeichen (etwa lauter Nullen) oder zufällige Buchstaben aus dem verwendeten Alphabet, das eingegeben werden muss, vor Start der Turing-Maschine auf das Band zu schreiben. / 7.9 Programm: Fleißige Biber. Ein Fleißiger Biber“ ist eine Turingmaschine mit genau n ” Zuständen, gegeben durch eine Übergangstabelle mit n Zuständen, die eine Maximalzahl von Buchstaben eines Alphabets ohne Leerzeichen auf ein leeres Band schreibt! Diese Turingmaschine muss halten, darf aber nicht das Band verlassen. d. h., die Turingmaschine darf keine unendliche Schleife oder oszillierende Zustände enthalten. Ein Kandidat für den Fleißigen Biber mit 5 Zuständen ist derjenige, der nach mehreren Millionen Übergängen 4098 Einser schreibt bevor er hält. Es gibt insgesamt 63 403 380 965 376 verschiedene Biber mit 5 Zuständen! Simuliere folgende Biber und beschreibe, was diese machen! Ist der Biber fleißig? Das Alphabet ist {0, 1}, wobei 0 das Leerzeichen ist. 0 1,R 0 0 Halt 1 1,R 1,L 0 1,R 1 1,R 2 1 0,L 0 1,L 1,L 1,R 1 0 0 1 1 1,R 0 0 1,R 1 1 Halt 0,R 0 1,L 1 3 2 0 1,R 1 0,R 0,L 1,R 1 0 0 1 1,L 1 0 1,R Halt Halt 1,L Folgendes Übergangsdiagramm und folgende Übergangstafel beschreiben den selben Biber – was bewirkt dieser? 1,L 1 0 0 Zustand 0 1,R 0,L 1 0 1 0,R 1 47 lese 0 1 0 1 Aktion 1,R 1,L 0,L 0,R Z.neu 1 0 0 1 Der folgende Biber beginnt auf einem mit Nullen gefüllten Band: 0 1,L 0 1 1,R 1 1 0 0,L 0,L 1,R 1,L 4 0 1 0 1 0,L 1 3 2 0,R 0 0,R 1,L Halt / 48