Angewandte Mathematik am Rechner 1 SOMMERSEMESTER 2017 Kapitel 3 [Bildquellen: Wikipedia User David Madore, Inductiveload ] Grundlagen 2: Funktionen, Berechenbarkeit und emergente Komplexität Michael Wand Institut für Informatik.
Wiederholung Kapitel 2
Mathematik Mathematische Modelle Studium von Modellen an sich Verstehen der Struktur Folgen von Annahmen Vorgehen Annahmen machen (Axiome) Folgerungen bestimmen Wenn man {a, b, c} annimmt, gilt auch {x, y, z}
Beispiele Natürliche Zahlen 1,2,3,4, Operationen: +,,*, / Modell für diskrete Objekte Reelle Zahlen Modell: Kontinuierliche Gerade Reelle Vektorräume Modell eines Euklidischen Raumes Mehr dazu später N -1.5-1 -0.5 0 0.5 1 1.5 R R 3
Modelle für die Praxis Drei Schritte / Aspekte Konzept Implementation Eigenschaften Beispiel Natürliche Zahlen N Drei Aspekte
Engineering Mathematik vs. Engineering Konzept 0011101001 (233) + 0000000101 (005) = 0011101110 (238) addition Implementation Mathematik Eigenschaften / Axiome Modell besser verstehen
Induktion: Modelle aus Daten Kompromiß 600 K 500 K 400 K 300 K 200 K 100 K Daten zu flexibel zu einfach 1960 1970 1980 1990 2000 2010
Mengen Mengen Sammlung von Elementen Gleiche Elemente nur einmal enthalten Objektive Eigenschaften Gleichheit von Elementen Element in Menge enthalten? Datentypen der Mathematik
3.1 Funktionen
Funktion Funktionen Zuordnung von Elementen f: D W x y = f x x D, xy W Deterministisch Gleiche Eingabe gleiche Ausgabe Ergebnis muß für alle Eingaben definiert sein D = Definitionsmenge (domain) W = Ziel/Wertemenge (codomain / target set) Menge D x D Funktion f y W Menge W
Funktionen Funktion Zuordnung von Elementen f: D W x y = f x x D, xy W Deterministisch Gleiche Eingabe gleiche Ausgabe Ergebnis muß für alle Eingaben definiert sein D = Definitionsmenge (domain) W = Ziel/Wertemenge (codomain / target set) Menge D x 1 x 2 y 1 y 2 Menge W x n Funktion f: Zuordnung y m
Zusammengesetzte Ein- / Ausgabe Signatur: f: A A B B A Funktionen Zuordnung: a 1, a 2, b 1 f a 1, a 2, b 1 Funktion f = f 1 a 1, a 2, b 1 f 2 a 1, a 2, b 1 = b 2 a 3
Informatik vs. Mathematik Informatik Algorithmus / Berechnung Mathematik Wohldefinierte Zuordnung
Algorithmen Algorithmen / Programme Berechnen partielle Funktionen Eingabe: x {0,1} Ausgabe: zwei Möglichkeiten Programm hält an, Ausgabe y {0,1} Programm hält nicht an (keine Ausgabe) Funktionaler Zusammenhang y = f x f Algorithmus y {0,1} y = f(x) x {0,1} Berechnung (evtl. ewig)
+1 +1 +1 +1 +1 +1 +1 3.2 Unendliche Mengen
Mächtigkeit von Mengen Endliche Mengen A = Apfel, Birne, Orange, B = {rot, grün, blau} #A = #B = 3 Unendliche Mengen Natürliche Zahlen N = 0,1,2,, #N = Rationale Zahlen Q (alle Brüche), #Q = Reelle Zahlen R, #R = Als Datentyp Unendlich = Potentiell beliebig viele zur Auswahl
Mächtigkeit von Mengen Mächtigkeit Zwei Mengen sind gleich mächtig, genau dann, wenn es eine bijektive Abbildung zwischen ihnen gibt A B
Mächtigkeit von Mengen Mächtiger B ist mächtiger als A genau dann, wenn es keine surjektive Abbildung von A nach B gibt A B?
Endliche Mengen Vorbereitung: Komplexität endlicher Mengen Potenzmenge P M einer Menge M Jedes Element kann enthalten sein oder nicht, ein Bit pro Element 2 #M Möglichkeiten: #P M = 2 #M Menge aller möglichen Abbildungen M {0,1} Notation M 0,1 0,1 M f f: M 0,1 Auch zwei Möglichkeiten für jedes Element; alle Kombinationen unabhängig möglich. 2 #M Möglichkeiten: # 0,1 M = 2 #M Menge aller Abbildungen von D W Notation D W D M f f: D W # W D = # D W = #W #D Für jedes Urbild aus d #W unabhängige Möglichkeiten Notation #M Mächtigkeit von Menge M (Anzahl Element, falls M endlich)
Abzählbarkeit Mächtigkeit von Mengen Eine Menge ist abzählbar unendlich genau dann, wenn sie genau so mächtig wie N ist Überabzählbar Nicht-abzählbare, unendliche Mengen heißen überabzählbar
Mächtigkeit von Q Satz: Rationale Zahlen (Menge aller Brüche) sind abzählbar
Mächtigkeit von Q Satz: Rationale Zahlen (Menge aller Brüche) sind abzählbar Beweis: Cantor s erstes Diagonalargument 0 1 1 2 2 3 3 0 2 1 2 1 2 2 2 2 2 3 2 3 2 0 3 1 3 1 3 2 3 2 3 3 3 3 3 0 4 1 4 1 4 2 4 2 4 3 4 3 4 0 5 1 5 1 5 2 5 2 5 3 5 3 5
Mächtigkeit von Q Satz: Rationale Zahlen (Menge aller Brüche) sind abzählbar Beweis: Cantor s erstes Diagonalargument 0 1 1 2 2 3 3 0 2 1 2 1 2 2 2 2 2 3 2 3 2 0 3 1 3 1 3 2 3 2 3 3 3 3 3 0 4 1 4 1 4 2 4 2 4 3 4 3 4 0 5 1 5 1 5 2 5 2 5 3 5 3 5
Mächtigkeit von R Satz: Reelle Zahlen sind überabzählbar
Mächtigkeit von R Satz: Reelle Zahlen sind überabzählbar Beweis: Cantor s zweites Diagonalargument Annahme: Aufzählung aller Zahlen in [0,1], Ziffern a ij 0. a 11 a 12 a 13 a 14 a 15 a 16 a 17 1. reelle Zahl 0. a 21 a 22 a 23 a 24 a 25 a 26 a 27 2. reelle Zahl 0. a 31 a 32 a 33 a 34 a 35 a 36 a 37 3. reelle Zahl 0. a 41 a 42 a 43 a 44 a 45 a 46 a 47 4. reelle Zahl 0. a 51 a 52 a 53 a 54 a 55 a 56 a 57 5. reelle Zahl
Mächtigkeit von R Diagonalzahl a ii ቐ a ii 0 9 0. a 11 a 12 a 13 a 14 a 15 a 16 a 17 ist auch eine reelle Zahl. Sie ist nicht aufgelistet. Widerspruch. 0. a 11 a 12 a 13 a 14 a 15 a 16 a 17 1. reelle Zahl 0. a 21 a 22 a 23 a 24 a 25 a 26 a 27 2. reelle Zahl 0. a 31 a 32 a 33 a 34 a 35 a 36 a 37 3. reelle Zahl 0. a 41 a 42 a 43 a 44 a 45 a 46 a 47 4. reelle Zahl 0. a 51 a 52 a 53 a 54 a 55 a 56 a 57 5. reelle Zahl
Formal Beweis durch Wiederspruch A falsch nicht A Folgerung zu falsch impliziert Annahme ist auch falsch A B B falsch B wahr A falsch wahr wahr A wahr falsch wahr
Satz von Cantor Für jede Menge M gilt: Satz von Cantor Die Potenzmenge P(M) ist mächtiger als die Menge M selbst Beweis Ähnliche Idee (Diagonalisierung) Benutzt axiomatische Mengenlehre
3.3 Berechenbarkeit
Algorithmen Algorithmen / Programme Berechnen partielle Funktionen Eingabe: x {0,1} Ausgabe: zwei Möglichkeiten Programm hält an, Ausgabe y {0,1} Programm hält nicht an (keine Ausgabe) Funktionaler Zusammenhang y = f x f Algorithmus y {0,1} y = f(x) x {0,1} Berechnung (evtl. ewig)
Berechenbarkeit Berechenbare Funktionen Funktion f: {0,1} {0,1} f heißt (rekursiv) berechenbar genau dann, wenn eine Programm (z.b. in Python) existiert das f berechnet und immer anhält Wir stellen beliebig viel Speicher bereit
Äquivalenz von Maschinenmodellen Satz: Die folgenden Maschinenmodelle können die gleichen Funktionen berechnen Turingmaschinen Registermaschinen Java/C++ - Programme Beweis: Gegenseitige Simulation
Church-Turing These Äquivalente Maschinenmodelle Turingmaschinen Registermaschinen (CPUs mit unbeschränkt Speicher) Funktionale Modelle (λ-kalkül) Python / Java / C / C++ / C# / PHP / Haskell / Pascal / (unbeschränkter Speicher) Papiercomputer (Mensch folgt fester Methodik) Church-Turing These Diese Modelle sind die allgemeinsten, die es gibt. Es existiert keine physikalisch realisierbare Maschine, die mehr Funktionen berechnen kann.
Frage Sind alle mathematischen Zuordnungen berechenbar? Nein. Drei Schritte Erstens: Es muß unberechenbare Probleme geben Zweitens: Ein konkretes Problem Drittens: Weitere, praktisch relevante Probleme
Es gibt zu viele Probleme Algorithmus / Programm Binärkodierbar: Bitstring x 0,1 Es gibt abzählbar unendlich viele Algorithmen Probleme Funktionen f: 0,1 {0,1} Überabzählbar (Potenzmenge aller Binärstrings) Vergleich Menge der Probleme mächtiger als Menge der Algorithmen (oder schlimmer)
Halteproblem Unentscheidbar: Halteproblem [Turing 1936] Gegeben ein Algorithmus (z.b. Python Programm) und seine Eingabe (Eingabedaten) Frage Hält der Algorithmus jemals an? Also: Stürzt das Programm mit dieser Eingabe nicht ab?
Variante: Satz von Gödel (Erster) Gödel scher Unvollständigkeitssatz In jedem mathematischen Axiomensystem das mindestens die natürlichen Zahlen umfaßt gibt es Aussagen, die nicht beweisbar sind Beweis per Diagonalisierung (sehr ähnlich) Fundamentale Limitierung Fundamentale Limitierung Diskrete Schlußketten Diskrete Schritte in Algorithmen Es bleiben zu viele Probleme
3.4 Emergente Komplexität
Emergente Komplexität Aus einfachen Regeln können komplexe Muster entstehen Turing mächtige Regeln erzeugen potentiell jede Struktur im Universum Auch unter dieser Schwelle entstehen komplexe Muster (z.b. Zahlentheorie: Primzahlen)
im c Emergente Komplexität Mandelbrot- Menge Iteration z z 2 + c z, c C re c Farbe = Zahl Iterationen bis Ergebnis > 2 [Quelle: Wikipedia Contrib. Simpsons contributor ]
Emergente Komplexität Penrose Tilings Bilder: Wikipedia [WP contrib. Inductiveload] Prinzip [WP contrib. Geometry Guy] Kacheln aneinanderfügen Gesamte 2D Ebene gefüllt Global aperiodisch (keine Wiederholungen) Turing mächtig Programmieren durch Design von (anderen) Kacheln
Emergente Komplexität Conway s Game of Life Lebende Zellen mit <2 Nachbarn sterben Lebenden Zellen mit 2 oder 3 Nachbarn leben weiter Lebende Zellen mit >3 Nachbarn sterben Tote Zellen mit genau 3 Nachbarn werden zum Leben erweckt. Das Spiel ist Turing mächtig Video: [Wikipedia user Kieff, CC-SA3]