82
Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 28. November 2013

Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

Embed Size (px)

DESCRIPTION

Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen. Köln 28. November 2013. Einleitendes Beispiel ( Selbstabbildende Information). Minimal neighbour. Original Ergebnis. Minimal neighbour. Ersetze in jeder Zeile - PowerPoint PPT Presentation

Citation preview

Page 1: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

Einführung in die InformationsverarbeitungTeil Thaller

Stunde III: Algorithmen

Köln 28. November 2013

Page 2: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

I. Einleitendes Beispiel

(Selbstabbildende Information)

2

Page 3: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

Minimal neighbour

Original Ergebnis

3

Page 4: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

Ersetze in jeder Zeile

jedes Pixel

durch den niedrigsten Pixelwert der dieses

Pixels umschreibenden 3 x 3 Matrix.

Minimal neighbour

4

Page 5: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

Minimal neighbour

5

Page 6: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

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 250

6

Page 7: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

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 250

7

Page 8: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

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 250

8

Page 9: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

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 250

9

Page 10: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

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 250

10

Page 11: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

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 250

11

Page 12: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

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 250

12

Page 13: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

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 250

13

Page 14: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

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 250

14

Page 15: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

Minimal neighbour

* 15

Page 16: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

II. Algorithmen: Allgemeine Eigenschaften

16

Page 17: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

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

Page 18: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

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

Page 19: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

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

Page 20: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

Beispiel: Sequentielles

Suchen

Laufzeit: linear

Algorithmen: Laufzeit

1 Clio

2 Melpomene

3 Terpsichore

4 Thalia

5 Euterpe

6 Erato

7 Urania

8 Polyhymnia

9 Kalliope

20

Page 21: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

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 Clio

2 Melpomene

3 Terpsichore

4 Thalia

5 Euterpe

6 Erato

7 Urania

8 Polyhymnia

9 Kalliope

21

Page 22: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

Beispiel: Binäres Suchen

Laufzeit: ?

Algorithmen: Laufzeit

1 Clio

2 Erato

3 Euterpe

4 Kalliope

5 Melpomene

6 Polyhymnia

7 Terpsichore

8 Thalia

9 Urania

22

Page 23: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

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 Clio

2 Erato

3 Euterpe

4 Kalliope

5 Melpomene

6 Polyhymnia

7 Terpsichore

8 Thalia

9 Urania

23

Page 24: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

Beispiel: Binäres Suchen

Laufzeit steigt mit Logarithmus der zu durchsuchenden Anzahl.

Algorithmen: Laufzeit

1 Clio

2 Erato

3 Euterpe

4 Kalliope

5 Melpomene

6 Polyhymnia

7 Terpsichore

8 Thalia

9 Urania

24

Page 25: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

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

Page 26: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

III. Zahlen und Bedeutung

(2 Klassen von Information)

26

Page 27: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

Problem:

Gesucht ist ein Algorithmus, der sicherstellt, dass ein Bild nicht manipuliert wurde.

Bildversiegelung

27

Page 28: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

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

Page 29: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

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

Page 30: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

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

Page 31: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

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 = even

089 + 134 + 236 + 224 + 278 + 003 = 964 = even

220 + 025 + 127 + 236 + 251 + 221 = 1080 = even31

Page 32: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

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

Page 33: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

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

Page 34: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

Information verstecken

01001000

01001011

01001001

34

Page 35: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

Information verstecken

H

K

I

„Watermarking of images“

*35

Page 36: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

IV. Zeichenbasierte Algorithmen

36

Page 37: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

Soundex

Problem: Welche der drei folgenden Namen sind gleich?

Theckenperger

Tegenberger

Tekekenperger

37

Page 38: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

Soundex1 Das erste Zeichen jedes Namens wird beibehalten.

2 W und H werden ignoriert.

3A, 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

Page 39: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

Soundex

Problem: Welche der drei folgenden Namen sind gleich?

Theckenperger

Tegenberger

Tekekenperger

39

Page 40: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

Soundex

Problem: Welche der drei folgenden Namen sind gleich?

Theckenperger

Tegenberger

Tekekenperger

T Regel 1

40

Page 41: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

Soundex

Problem: Welche der drei folgenden Namen sind gleich?

Theckenperger

Tegenberger

Tekekenperger

Tx Regel 2

41

Page 42: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

Soundex

Problem: Welche der drei folgenden Namen sind gleich?

Theckenperger

Tegenberger

Tekekenperger

T x Regel 3

42

Page 43: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

Soundex

Problem: Welche der drei folgenden Namen sind gleich?

Theckenperger

Tegenberger

Tekekenperger

T 2 Regel 4.2

43

Page 44: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

Soundex

Problem: Welche der drei folgenden Namen sind gleich?

Theckenperger

Tegenberger

Tekekenperger

T 2x Regel 5

44

Page 45: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

Soundex

Problem: Welche der drei folgenden Namen sind gleich?

Theckenperger

Tegenberger

Tekekenperger

T 2 x Regel 3

45

Page 46: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

Soundex

Problem: Welche der drei folgenden Namen sind gleich?

Theckenperger

Tegenberger

Tekekenperger

T 2 5 Regel 4.5

46

Page 47: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

Soundex

Problem: Welche der drei folgenden Namen sind gleich?

Theckenperger

Tegenberger

Tekekenperger

T 2 51 Regel 4.1

47

Page 48: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

Soundex

Problem: Welche der drei folgenden Namen sind gleich?

Theckenperger T251

Tegenberger

Tekekenperger

48

Page 49: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

Soundex

Problem: Welche der drei folgenden Namen sind gleich?

Theckenperger T251

Tegenberger

Tekekenperger

T Regel 1

49

Page 50: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

Soundex

Problem: Welche der drei folgenden Namen sind gleich?

Theckenperger T251

Tegenberger

Tekekenperger

Tx Regel 2

50

Page 51: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

Soundex

Problem: Welche der drei folgenden Namen sind gleich?

Theckenperger T251

Tegenberger

Tekekenperger

T 2 Regel 4.2

51

Page 52: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

Soundex

Problem: Welche der drei folgenden Namen sind gleich?

Theckenperger T251

Tegenberger

Tekekenperger

T 2x Regel 3

52

Page 53: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

Soundex

Problem: Welche der drei folgenden Namen sind gleich?

Theckenperger T251

Tegenberger

Tekekenperger

T 2 5 Regel 4.5

53

Page 54: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

Soundex

Problem: Welche der drei folgenden Namen sind gleich?

Theckenperger T251

Tegenberger T251

Tekekenperger

T 2 51 Regel 4.1

54

Page 55: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

Soundex

Problem: Welche der drei folgenden Namen sind gleich?

Theckenperger T251

Tegenberger T251

Tekekenperger

T 2 2 Regeln 4.2 / 5 / 3

55

Page 56: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

Soundex

Problem: Welche der drei folgenden Namen sind gleich?

Theckenperger T251

Tegenberger T251

Tekekenperger T225

*56

Page 57: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

V. Symbolische Operationen I

57

Page 58: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

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

Page 59: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

Towers of Hanoi

S1 S2 S3 59

Page 60: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

Towers of Hanoi

S1 S2 S3 60

Page 61: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

Towers of Hanoi

S1 S2 S3 61

Page 62: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

Towers of Hanoi

S1 S2 S3 62

Page 63: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

Towers of Hanoi

S1 S2 S3 63

Page 64: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

Towers of Hanoi

S1 S2 S3 64

Page 65: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

Towers of Hanoi

S1 S2 S3 65

Page 66: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

Towers of Hanoi

S1 S2 S3 66

Page 67: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

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

Page 68: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

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

Page 69: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

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

Page 70: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

Towers of Hanoi

Fragen

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

Page 71: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

VI. Symbolische Operationen II

71

Page 72: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

Das Problem

72

Page 73: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

A* Algorithmus: Ausgangslage

73

Page 74: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

A* Algorithmus: Zwischenschritt

74

Page 75: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

A* Algorithmus: Zwischenschritt

75

Page 76: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

A* Algorithmus: Zwischenschritt

76

Page 77: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

A* Algorithmus: Zwischenschritt

77

Page 78: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

A* Algorithmus: Schluß

78

Page 79: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

A* formell

A = Stapel verwendbarer Felder; B Stapel geprüfter Felder

(1) Füge den Startknoten in A ein (2) Wiederhole: (2.1) Wähle den Knoten n mit den niedrigsten Kosten F (n) aus A aus und verschiebe ihn in B (2.2) Für jeden an n direkt angrenzenden Knoten m: (2.2.1)Wenn m nicht betretbar (Hindernis, Wasser, etc.) oder bereits in B ist, ignoriere ihn (2.2.2) Füge m in A ein, wenn er noch nicht enthalten ist (2.2.3) Trage die Kosten F (m) und G(m) ein und vermerke als Vorgänger n bzw. aktualisiere sie wenn m schon enthalten war und ein Weg über n mit kleinerem G(m) gefunden wurde (3) Wenn der Zielknoten in A eingefügt wurde, ist ein Weg gefunden worden. Wenn A leer geworden ist, ohne den Zielknoten zu finden, existiert kein Weg

*

79

Page 80: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

Demo

80

Page 81: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

Das Problem ?

81

Page 82: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen

Danke für heute!

82