Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Imke Lang Geändert vor über 8 Jahren
1
Einführung in die Informationsverarbeitung Teil Eide (auf Basis von Thaller 2014–15) Stunde III: Algorithmen, Visualisierung Köln 19. November 2015
2
I.Einleitendes Beispiel (Selbstabbildende Information) 2
3
Minimal neighbour Original Ergebnis 3
4
Ersetze in jeder Zeile jedes Pixel durch den niedrigsten Pixelwert der dieses Pixels umschreibenden 3 x 3 Matrix. Minimal neighbour 4
5
5
6
250 50 250 50 250 50 250 50 250 50 250 50 250 50 250 50 250 50 250 50 250 6
7
Minimal neighbour 250 50 250 50 250 50 250 50 250 50 250 50 250 50 250 50 250 50 250 50 250 7
8
Minimal neighbour 250 50 250 50 250 50 250 50 250 50 250 50 250 50 250 50 250 50 250 50 250 8
9
Minimal neighbour 250 50 250 50 250 50 250 50 250 50 250 50 250 50 250 50 250 50 250 50 250 9
10
Minimal neighbour 250 50 250 50 250 50 250 50 250 50 250 50 250 50 250 50 250 50 250 50 250 10
11
Minimal neighbour 250 50 250 50 250 50 250 50 250 50 250 50 250 50 250 50 250 50 250 50 250 11
12
Minimal neighbour 250 50 250 50 250 50 250 50 250 50 250 50 250 50 250 50 250 50 250 50 250 12
13
Minimal neighbour 250 50 250 50 250 50 250 50 250 50 250 50 250 50 250 50 250 50 250 50 250 13
14
Minimal neighbour 250 50 250 50 250 50 250 50 250 50 250 50 250 50 250 50 250 50 250 50 250 50 250 50 250 14
15
Minimal neighbour * 15
16
II. Algorithmen: Allgemeine Eigenschaften 16
17
Ein Algorithmus ist eine Funktion f(D ein, D aus ), die Eingabedaten D ein in Ausgabedaten D aus schrittweise transformiert und dabei bestimmte Bedingungen erfüllt. Algorithmen: Definition 17
18
1.Exaktheit. Die Funktion f kann präzise auf formale Weise beschrieben werden. 2.Finitheit. Die Beschreibung von f ist endlich lang. 3.Vollständigkeit. Die Beschreibung von f umfasst alle vorkommenden Fälle. 4.Effektivität. Die Einzelschritte sind elementar und real ausführbar. 5.Terminierung. Die Funktion f hält nach endlich vielen Schritten an und liefert ein Resultat. 6.Determinismus. Die Funktion f liefert bei gleichen Eingabewerten stets das gleiche Ergebnis, wobei die Folge der Einzelschritte für jeden Eingabewert genau festgelegt ist. Algorithmen: Eigenschaften 18
19
1.linear. 2.logarithmisch. 3.exponentiell. Algorithmen: Laufzeit N=1N=10N=100N=1000 1101001000 13710 110 3 10 30 10 300 19
20
Beispiel: Sequentielles Suchen Laufzeit: linear Algorithmen: Laufzeit 1Clio 2Melpomene 3Terpsichore 4Thalia 5Euterpe 6Erato 7Urania 8Polyhymnia 9Kalliope 20
21
Beispiel: Sequentielles Suchen Suchzeit jedes Namens entspricht Rang in der Liste. Durchschnittliche Suchzeit: n / 2. Laufzeit steigt mit der zu durchsuchenden Anzahl Algorithmen: Laufzeit 1Clio 2Melpomene 3Terpsichore 4Thalia 5Euterpe 6Erato 7Urania 8Polyhymnia 9Kalliope 21
22
Beispiel: Binäres Suchen Laufzeit: ? Algorithmen: Laufzeit 1Clio 2Erato 3Euterpe 4Kalliope 5Melpomene 6Polyhymnia 7Terpsichore 8Thalia 9Urania 22
23
Beispiel: Binäres Suchen – „Thalia“ „Melpomene“ gleich – größer – kleiner „Thalia“? „Terpsichore“ gleich – größer – kleiner „Thalia“? „Thalia“ gleich – größer – kleiner „Thalia“? Algorithmen: Laufzeit 1Clio 2Erato 3Euterpe 4Kalliope 5Melpomene 6Polyhymnia 7Terpsichore 8Thalia 9Urania 23
24
Beispiel: Binäres Suchen Laufzeit steigt mit Logarithmus der zu durchsuchenden Anzahl. Algorithmen: Laufzeit 1Clio 2Erato 3Euterpe 4Kalliope 5Melpomene 6Polyhymnia 7Terpsichore 8Thalia 9Urania 24
25
Nichtdeterministische Algorithmen: potentiell schneller - liefern u.U. keine Lösung NP vollständige Algorithmen: Prinzipiell nicht möglich, irgendein NP-vollständiges Problem mit einem deterministischen Algorithmus in exponentieller Zeit zu lösen. Komplexitätstheorie. * Algorithmen: Sonderfälle 25
26
III. Zahlen und Bedeutung (2 Klassen von Information) 26
27
Problem: Gesucht ist ein Algorithmus, der sicherstellt, dass ein Bild nicht manipuliert wurde. Bildversiegelung 27
28
Bildversiegelung 234231212135178234089064134231222156178123267 178189123234056111134236224097123234221 235 167185135159031137222243278187237220219217221 176135 157176145138278003012034025127236221 159147135158 159162167183177168255248251213 146148144168169154143178181184167257234222244 28
29
Bildversiegelung 234231212135178234089064134231222156178123267 178189123234056111134236224097123234221 235 167185135159031137222243278187237220219217221 176135 157176145138278003012034025127236221 159147135158 159162167183177168255248251213 146148144168169154143178181184167257234222244 29
30
Bildversiegelung 234231212135178234089064134231222156178123267 178189123234056111134236224097123234221 235 167185135159031137222243278187237220219217221 176135 157176145138278003012034025127236221 159147135158 159162167183177168255248251213 146148144168169154143178181184167257234222244 189 + 185 + 135 + 159 + 157 + 158 = 983 = odd 089 + 134 + 236 + 224 + 278 + 003 = 964 = even 220 + 025 + 127 + 236 + 251 + 222 = 1081 = odd 30
31
Bildversiegelung 234231212135178234089064134231222156178123267 178189123234056111134236224097123234221 235 167185135159031137222243278187237220219217221 176135 157176145138278003012034025127236221 159147135157158159162167183177168255248251213 146148144168169154143178181184167257234221244 189 + 185 + 135 + 159 + 157 + 157 = 982 = even 089 + 134 + 236 + 224 + 278 + 003 = 964 = even 220 + 025 + 127 + 236 + 251 + 221 = 1080 = even 31
32
Information verstecken {even, odd, even, even, odd, even, even, even} {even, odd, even, even, odd, even, odd,odd} {even, odd, even, even, odd, even, even, odd} Even 0 ; Odd 1 32
33
Information verstecken {0, 1, 0, 0, odd, even, even, even} {even, odd, even, even, odd, even, odd,odd} {even, odd, even, even, odd, even, even, odd} 33
34
Information verstecken 01001000 01001011 01001001 34
35
Information verstecken H K I „Watermarking of images“ * 35
36
IV. Zeichenbasierte Algorithmen 36
37
Soundex Problem: Welche der drei folgenden Namen sind gleich? Theckenperger Tegenberger Tekekenperger 37
38
Soundex 1Das erste Zeichen jedes Namens wird beibehalten. 2W und H werden ignoriert. 3 A, E, I, O, U und Y ergeben keinen Codewert, gelten jedoch als "Trenner" (s.Regel 5). 4Die anderen Zeichen werden nach folgenden Regeln umgewandelt. 4.1 B, P, F, V ==>1 4.2 C, G, J, K, Q, S, X, Z ==>2 4.3 D, T ==>3 4.4 L ==>4 4.5 M, N ==>5 4.6 R ==>6 5 Ergeben zwei aufeinanderfolgende Zeichen denselben Code, wird er nur einmal gewertet. Sind sie durch einen "Trenner" (s. oben Regel 3) getrennt, wird er jedoch wiederholt. 38
39
Soundex Problem: Welche der drei folgenden Namen sind gleich? Theckenperger Tegenberger Tekekenperger 39
40
Soundex Problem: Welche der drei folgenden Namen sind gleich? Theckenperger Tegenberger Tekekenperger TRegel 1 40
41
Soundex Problem: Welche der drei folgenden Namen sind gleich? Theckenperger Tegenberger Tekekenperger TxTxRegel 2 41
42
Soundex Problem: Welche der drei folgenden Namen sind gleich? Theckenperger Tegenberger Tekekenperger T xRegel 3 42
43
Soundex Problem: Welche der drei folgenden Namen sind gleich? Theckenperger Tegenberger Tekekenperger T 2Regel 4.2 43
44
Soundex Problem: Welche der drei folgenden Namen sind gleich? Theckenperger Tegenberger Tekekenperger T 2xRegel 5 44
45
Soundex Problem: Welche der drei folgenden Namen sind gleich? Theckenperger Tegenberger Tekekenperger T 2 xRegel 3 45
46
Soundex Problem: Welche der drei folgenden Namen sind gleich? Theckenperger Tegenberger Tekekenperger T 2 5Regel 4.5 46
47
Soundex Problem: Welche der drei folgenden Namen sind gleich? Theckenperger Tegenberger Tekekenperger T 2 51Regel 4.1 47
48
Soundex Problem: Welche der drei folgenden Namen sind gleich? Theckenperger T251 Tegenberger Tekekenperger 48
49
Soundex Problem: Welche der drei folgenden Namen sind gleich? Theckenperger T251 Tegenberger Tekekenperger TRegel 1 49
50
Soundex Problem: Welche der drei folgenden Namen sind gleich? Theckenperger T251 Tegenberger Tekekenperger TxTxRegel 3 50
51
Soundex Problem: Welche der drei folgenden Namen sind gleich? Theckenperger T251 Tegenberger Tekekenperger T 2Regel 4.2 51
52
Soundex Problem: Welche der drei folgenden Namen sind gleich? Theckenperger T251 Tegenberger Tekekenperger T 2xRegel 3 52
53
Soundex Problem: Welche der drei folgenden Namen sind gleich? Theckenperger T251 Tegenberger Tekekenperger T 2 5Regel 4.5 53
54
Soundex Problem: Welche der drei folgenden Namen sind gleich? Theckenperger T251 Tegenberger T251 Tekekenperger T 2 51Regel 4.1 54
55
Soundex Problem: Welche der drei folgenden Namen sind gleich? Theckenperger T251 Tegenberger T251 Tekekenperger T 2 2Regeln 4.2 / 5 / 3 55
56
Soundex Problem: Welche der drei folgenden Namen sind gleich? Theckenperger T251 Tegenberger T251 Tekekenperger T225 * 56
57
V. Symbolische Operationen I 57
58
Towers of Hanoi Situation in einem Tempel in Hanoi: Ein Turm von 100 Scheiben auf einer Spindel (S1). Eine leere Spindel (S2). Eine weitere leere Spindel (S3). Transportiere S1 so nach S2 - wobei S3 als Zwischenlager verwendet werden darf - dass: Jeweils nur die oberste Scheibe von einem Turm genommen wird. Niemals eine größere Scheibe auf einer kleineren liegt. Prophezeiung: Ist das erledigt, ist das Ende der Welt gekommen. 58
59
Towers of Hanoi S1 S2 S3 59
60
Towers of Hanoi S1 S2 S3 60
61
Towers of Hanoi S1 S2 S3 61
62
Towers of Hanoi S1 S2 S3 62
63
Towers of Hanoi S1 S2 S3 63
64
Towers of Hanoi S1 S2 S3 64
65
Towers of Hanoi S1 S2 S3 65
66
Towers of Hanoi S1 S2 S3 66
67
Towers of Hanoi Lösung I 1.Finde jemand, der die obersten 99 Scheiben von S1 nach S3 transportiert. 2.Transportiere die unterste Scheibe von S1 nach S2. 3.Finde jemand, der die obersten 99 Scheiben von S3 nach S2 transportiert. 67
68
Towers of Hanoi Lösung II 1.Besteht der zu transportierende Turm aus mehr als einer Scheibe, finde jemand, der einen Turm von n-1 Scheiben von S1 nach S3 transportiert. Nutze S2 als Zwischenablage. 2.Transportiere selbst die unterste Scheibe von S1 nach S2. 3.Besteht der zu transportierende Turm aus mehr als einer Scheibe, finde jemand, der einen Turm von n-1 Scheiben von S3 nach S2 transportiert. Nutze S1 als Zwischenablage. 68
69
Towers of Hanoi Lösung III function transport( int n, stack spindel1, stack spindel2, stack spindel3) { if (n >1) transport(n-1,spindel1,spindel3,spindel2); schritt(spindel1,turm2); if (n>1) transport(n-1,spindel3,turm2,spindel1); } function schritt( stack spindel1, stack spindel2) { spindel2.push(spindel1.pop()); } 69
70
Towers of Hanoi Fragen 1.Wie viele Mitarbeiter werden benötigt? n 2. Wieviele Transferschritte? 2 n -1 3. Wie lange? 2 100 -1 Schritte == ca. 10 30 1 Schritt == 1 Sekunde ==> ca. 10 30 Sekunden == ca. 4 * 10 22 Jahre * 70
71
VI. Symbolische Operationen II 71
72
Das Problem 72
73
A* Algorithmus: Schluß 73
74
VII. Visualisierung 74
75
I. Grundgedanke 75 (1)Ein Satz von Variablen gibt einen bestimmten Zustand wieder. (2)Dieser Zustand wird regelbasiert verändert, wobei eine bestimmte Anzahl von Veränderungen einen „Schritt“, also ein Stadium in der Entwicklung eines Systems wiedergibt. (3) Dieser Zustand kann in regelmäßigen Abständen visualisiert werden.
76
Beispiel: Towers of Hanoi stack turm1, turm2, turm3; Ausgangszustand: Alle 3 Scheiben auf turm1; Dann: transport(3, turm1, turm2, turm3); function transport( int n, stack spindel1, stack spindel2, stack spindel3) { if (n >1) transport(n-1,spindel1,spindel3,spindel2); schritt(spindel1,spindel); if (n>1) transport(n-1,spindel3,turm2,spindel1); } function schritt( stack spindel1, stack spindel2) { spindel2.push(spindel1.pop()); visualisiere(); } 76
77
Turm1: Turm2: Turm3: Ausgangszustand der Variablen Scheibe 1Scheibe 2Scheibe 3 77
78
visualisiere(); 78
79
Turm1: Turm2: Turm3: Ausgangszustand der Variablen Scheibe 1Scheibe 2Scheibe 3 79 Scheibe 4
80
visualisiere(); 80
81
Bewegung und Wachstum Ausgangszustand: Position =2; Durchmesser=1; Schritt: Position=Position+1: Durchmesser=Durchmesser+Durchmesser *0.20; 1 2 3 4 5 6 7 8 9 10 11 12 13 81
82
Bewegung und Wachstum Position =2; Durchmesser=1; 1 2 3 4 5 6 7 8 9 10 11 12 13 82
83
Bewegung und Wachstum Position =3; Durchmesser=1.20; 1 2 3 4 5 6 7 8 9 10 11 12 13 83
84
Bewegung und Wachstum Position =4; Durchmesser=1.44; 1 2 3 4 5 6 7 8 9 10 11 12 13 84
85
Bewegung und Wachstum Position =5; Durchmesser=1.728; 1 2 3 4 5 6 7 8 9 10 11 12 13 85
86
Beispiel Second Life: Body I 86
87
Beispiel Second Life: Body II 87
88
Beispiel Second Life: II 88
89
Exkurs: Logik der Computergraphik Trennung zwischen Graphic Primitives und Graphic Context. Graphic Primitives: Draw line. Draw circle. Draw text. Fill area. [ 3D equivalents. ] 89
90
Exkurs: Logik der Computergraphik Trennung zwischen Graphic Primitives und Graphic Context. Graphic Context: Set line thickness. Set line type. Set line color. Set fill color. Set text font. ……… 90
91
Exkurs: Logik der Computergraphik Trennung zwischen Graphic Primitives und Graphic Context. Die Ausführung identischer Zeicheninstruktionen in geändertem Kontext führt zu unterschiedlichem Aussehen. Aufrufen derselben Primitives mit unterschiedlichen Parametern wie Position und Durchmesser führt zu unterschiedlicher Zeichnung. 91
92
Beispiel Second Life: Nose 92
93
Danke für heute! 93
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.