Einführung in die Informationsverarbeitung Teil Eide (auf Basis von Thaller 2014–15) Stunde III:...

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