View
214
Download
0
Category
Preview:
Citation preview
Einführung in die InformationsverarbeitungTeil Eide
(auf Basis von Thaller 2014–15)
Stunde III: Algorithmen, Visualisierung
Köln 19. November 2015
I. Einleitendes Beispiel(Selbstabbildende Information)
2
Minimal neighbour
Original Ergebnis
3
Ersetze in jeder Zeile jedes Pixel durch den niedrigsten Pixelwert der dieses Pixels umschreibenden 3 x 3 Matrix.
Minimal neighbour
4
Minimal neighbour
5
Minimal neighbour
250 250 250 250 250 250 250 250 250 250 250 250
250 250 250 50 50 50 50 50 50 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 50 50 50 50 50 50 250 250 250
250 250 250 250 250 250 250 250 250 250 250 2506
Minimal neighbour
250 250 250 250 250 250 250 250 250 250 250 250
250 250 250 50 50 50 50 50 50 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 50 50 50 50 50 50 250 250 250
250 250 250 250 250 250 250 250 250 250 250 2507
Minimal neighbour
250 250 250 250 250 250 250 250 250 250 250 250
250 250 250 50 50 50 50 50 50 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 50 50 50 50 50 50 250 250 250
250 250 250 250 250 250 250 250 250 250 250 2508
Minimal neighbour
250 250 250 250 250 250 250 250 250 250 250 250
250 250 250 50 50 50 50 50 50 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 50 50 50 50 50 50 250 250 250
250 250 250 250 250 250 250 250 250 250 250 2509
Minimal neighbour
250 250 250 250 250 250 250 250 250 250 250 250
250 250 250 50 50 50 50 50 50 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 50 50 50 50 50 50 250 250 250
250 250 250 250 250 250 250 250 250 250 250 25010
Minimal neighbour
250 250 250 250 250 250 250 250 250 250 250 250
250 250 50 50 50 50 50 50 50 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 50 50 50 50 50 50 250 250 250
250 250 250 250 250 250 250 250 250 250 250 25011
Minimal neighbour
250 250 250 250 250 250 250 250 250 250 250 250
250 250 250 50 50 50 50 50 50 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 50 50 50 50 50 50 250 250 250
250 250 250 250 250 250 250 250 250 250 250 25012
Minimal neighbour
250 250 250 250 250 250 250 250 250 250 250 250
250 250 250 50 50 50 50 50 50 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 250 250 50 50 250 250 250 250 250
250 250 250 50 50 50 50 50 50 250 250 250
250 250 250 250 250 250 250 250 250 250 250 25013
Minimal neighbour
250 250 50 50 50 50 50 50 50 50 250 250
250 250 50 50 50 50 50 50 50 50 250 250
250 250 50 50 50 50 50 50 50 50 250 250
250 250 250 250 50 50 50 50 250 250 250 250
250 250 250 250 50 50 50 50 250 250 250 250
250 250 250 250 50 50 50 50 250 250 250 250
250 250 250 250 50 50 50 50 250 250 250 250
250 250 250 250 50 50 50 50 250 250 250 250
250 250 250 250 50 50 50 50 250 250 250 250
250 250 50 50 50 50 50 50 50 50 250 250
250 250 50 50 50 50 50 50 50 50 250 250
250 250 50 50 50 50 50 50 50 50 250 25014
Minimal neighbour
* 15
II. Algorithmen: Allgemeine Eigenschaften
16
Ein Algorithmus ist eine Funktion f(Dein, Daus), die Eingabedaten Dein in Ausgabedaten Daus schrittweise transformiert und dabei bestimmte Bedingungen erfüllt.
Algorithmen: Definition
17
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
1.linear. 2.logarithmisch. 3.exponentiell.
Algorithmen: Laufzeit
N=1 N=10 N=100 N=1000
1 10 100 1000
1 3 7 10
1 103 1030 10300
19
Beispiel: Sequentielles Suchen
Laufzeit: linear
Algorithmen: Laufzeit
1 Clio2 Melpomene3 Terpsichore4 Thalia5 Euterpe6 Erato7 Urania8 Polyhymnia9 Kalliope
20
Beispiel: Sequentielles Suchen
Suchzeit jedes Namens entspricht Rang in der Liste.
Durchschnittliche Suchzeit: n / 2.
Laufzeit steigt mit der zu durchsuchenden Anzahl
Algorithmen: Laufzeit
1 Clio2 Melpomene3 Terpsichore4 Thalia5 Euterpe6 Erato7 Urania8 Polyhymnia9 Kalliope
21
Beispiel: Binäres Suchen
Laufzeit: ?
Algorithmen: Laufzeit
1 Clio2 Erato3 Euterpe4 Kalliope5 Melpomene6 Polyhymnia7 Terpsichore8 Thalia9 Urania
22
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
1 Clio2 Erato3 Euterpe4 Kalliope5 Melpomene6 Polyhymnia7 Terpsichore8 Thalia9 Urania
23
Beispiel: Binäres Suchen
Laufzeit steigt mit Logarithmus der zu durchsuchenden Anzahl.
Algorithmen: Laufzeit
1 Clio2 Erato3 Euterpe4 Kalliope5 Melpomene6 Polyhymnia7 Terpsichore8 Thalia9 Urania
24
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
III. Zahlen und Bedeutung(2 Klassen von Information)
26
Problem:
Gesucht ist ein Algorithmus, der sicherstellt, dass ein Bild nicht manipuliert wurde.
Bildversiegelung
27
Bildversiegelung
234 231 212 135 178 234 089 064 134 231 222 156 178 123 267
178 189 123 234 056 111 134 236 224 097 123 234 221 221 235
167 185 135 159 031 137 222 243 278 187 237 220 219 217 221
176 135 135 157 176 145 138 278 003 012 034 025 127 236 221
159 147 135 158 158 159 162 167 183 177 168 255 248 251 213
146 148 144 168 169 154 143 178 181 184 167 257 234 222 244
28
Bildversiegelung
234 231 212 135 178 234 089 064 134 231 222 156 178 123 267
178 189 123 234 056 111 134 236 224 097 123 234 221 221 235
167 185 135 159 031 137 222 243 278 187 237 220 219 217 221
176 135 135 157 176 145 138 278 003 012 034 025 127 236 221
159 147 135 158 158 159 162 167 183 177 168 255 248 251 213
146 148 144 168 169 154 143 178 181 184 167 257 234 222 244
29
Bildversiegelung
234 231 212 135 178 234 089 064 134 231 222 156 178 123 267
178 189 123 234 056 111 134 236 224 097 123 234 221 221 235
167 185 135 159 031 137 222 243 278 187 237 220 219 217 221
176 135 135 157 176 145 138 278 003 012 034 025 127 236 221
159 147 135 158 158 159 162 167 183 177 168 255 248 251 213
146 148 144 168 169 154 143 178 181 184 167 257 234 222 244
189 + 185 + 135 + 159 + 157 + 158 = 983 = odd
089 + 134 + 236 + 224 + 278 + 003 = 964 = even
220 + 025 + 127 + 236 + 251 + 222 = 1081 = odd30
Bildversiegelung
234 231 212 135 178 234 089 064 134 231 222 156 178 123 267
178 189 123 234 056 111 134 236 224 097 123 234 221 221 235
167 185 135 159 031 137 222 243 278 187 237 220 219 217 221
176 135 135 157 176 145 138 278 003 012 034 025 127 236 221
159 147 135 157 158 159 162 167 183 177 168 255 248 251 213
146 148 144 168 169 154 143 178 181 184 167 257 234 221 244
189 + 185 + 135 + 159 + 157 + 157 = 982 = even089 + 134 + 236 + 224 + 278 + 003 = 964 = even
220 + 025 + 127 + 236 + 251 + 221 = 1080 = even 31
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
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
Information verstecken01001000
01001011
01001001
34
Information versteckenH
KI
„Watermarking of images“
*35
IV. Zeichenbasierte Algorithmen
36
SoundexProblem: Welche der drei folgenden Namen sind gleich?
Theckenperger
Tegenberger
Tekekenperger
37
Soundex1 Das erste Zeichen jedes Namens wird beibehalten.2 W und H werden ignoriert.
3 A, E, I, O, U und Y ergeben keinen Codewert, gelten jedoch als "Trenner" (s.Regel 5).
4 Die 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
SoundexProblem: Welche der drei folgenden Namen sind gleich?
Theckenperger
Tegenberger
Tekekenperger
39
SoundexProblem: Welche der drei folgenden Namen sind gleich?
Theckenperger
Tegenberger
Tekekenperger
T Regel 1
40
SoundexProblem: Welche der drei folgenden Namen sind gleich?
Theckenperger
Tegenberger
Tekekenperger
Tx Regel 2
41
SoundexProblem: Welche der drei folgenden Namen sind gleich?
Theckenperger
Tegenberger
Tekekenperger
T x Regel 3
42
SoundexProblem: Welche der drei folgenden Namen sind gleich?
Theckenperger
Tegenberger
Tekekenperger
T 2 Regel 4.2
43
SoundexProblem: Welche der drei folgenden Namen sind gleich?
Theckenperger
Tegenberger
Tekekenperger
T 2x Regel 5
44
SoundexProblem: Welche der drei folgenden Namen sind gleich?
Theckenperger
Tegenberger
Tekekenperger
T 2 x Regel 3
45
SoundexProblem: Welche der drei folgenden Namen sind gleich?
Theckenperger
Tegenberger
Tekekenperger
T 2 5 Regel 4.5
46
SoundexProblem: Welche der drei folgenden Namen sind gleich?
Theckenperger
Tegenberger
Tekekenperger
T 2 51 Regel 4.1
47
SoundexProblem: Welche der drei folgenden Namen sind gleich?
Theckenperger T251
Tegenberger
Tekekenperger
48
SoundexProblem: Welche der drei folgenden Namen sind gleich?
Theckenperger T251
Tegenberger
Tekekenperger
T Regel 1
49
SoundexProblem: Welche der drei folgenden Namen sind gleich?
Theckenperger T251
Tegenberger
Tekekenperger
Tx Regel 3
50
SoundexProblem: Welche der drei folgenden Namen sind gleich?
Theckenperger T251
Tegenberger
Tekekenperger
T 2 Regel 4.2
51
SoundexProblem: Welche der drei folgenden Namen sind gleich?
Theckenperger T251
Tegenberger
Tekekenperger
T 2x Regel 3
52
SoundexProblem: Welche der drei folgenden Namen sind gleich?
Theckenperger T251
Tegenberger
Tekekenperger
T 2 5 Regel 4.5
53
SoundexProblem: Welche der drei folgenden Namen sind gleich?
Theckenperger T251
Tegenberger T251
Tekekenperger
T 2 51 Regel 4.1
54
SoundexProblem: Welche der drei folgenden Namen sind gleich?
Theckenperger T251
Tegenberger T251
Tekekenperger
T 2 2 Regeln 4.2 / 5 / 3
55
SoundexProblem: Welche der drei folgenden Namen sind gleich?
Theckenperger T251
Tegenberger T251
Tekekenperger T225
*56
V. Symbolische Operationen I
57
Towers of HanoiSituation 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
Towers of Hanoi
S1 S2 S3 59
Towers of Hanoi
S1 S2 S3 60
Towers of Hanoi
S1 S2 S3 61
Towers of Hanoi
S1 S2 S3 62
Towers of Hanoi
S1 S2 S3 63
Towers of Hanoi
S1 S2 S3 64
Towers of Hanoi
S1 S2 S3 65
Towers of Hanoi
S1 S2 S3 66
Towers of HanoiLö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
Towers of HanoiLö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
Towers of HanoiLö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
Towers of HanoiFragen
1. Wie viele Mitarbeiter werden benötigt? n 2. Wieviele Transferschritte? 2n -13. Wie lange? 2100-1 Schritte == ca. 1030
1 Schritt == 1 Sekunde ==> ca. 1030 Sekunden == ca. 4 * 1022 Jahre
* 70
VI. Symbolische Operationen II
71
Das Problem
72
A* Algorithmus: Schluß
73
VII. Visualisierung
74
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.
Beispiel: Towers of Hanoistack 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
Turm1:
Turm2:
Turm3:
Ausgangszustand der Variablen
Scheibe 1 Scheibe 2 Scheibe 3
77
visualisiere();
78
Turm1:
Turm2:
Turm3:
Ausgangszustand der Variablen
Scheibe 1 Scheibe 2 Scheibe 3
79
Scheibe 4
visualisiere();
80
Bewegung und WachstumAusgangszustand: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 1381
Bewegung und WachstumPosition =2; Durchmesser=1;
1 2 3 4 5 6 7 8 9 10 11 12 1382
Bewegung und WachstumPosition =3; Durchmesser=1.20;
1 2 3 4 5 6 7 8 9 10 11 12 1383
Bewegung und WachstumPosition =4; Durchmesser=1.44;
1 2 3 4 5 6 7 8 9 10 11 12 1384
Bewegung und WachstumPosition =5; Durchmesser=1.728;
1 2 3 4 5 6 7 8 9 10 11 12 1385
Beispiel Second Life: Body I
86
Beispiel Second Life: Body II
87
Beispiel Second Life: II
88
Exkurs: Logik der Computergraphik
Trennung zwischen Graphic Primitives und Graphic Context.
Graphic Primitives: • Draw line.• Draw circle.• Draw text.• Fill area.• [ 3D equivalents. ]
89
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
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
Beispiel Second Life: Nose
92
Danke für heute!
93
Recommended