+ All Categories
Home > Documents > Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember...

Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember...

Date post: 05-Apr-2015
Category:
Upload: adalinda-eberhardt
View: 102 times
Download: 0 times
Share this document with a friend
81
Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008
Transcript
Page 1: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

Einführung in die InformationsverarbeitungTeil Thaller

Stunde III: Algorithmen

Köln 4. Dezember 2008

Page 2: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

I. Einleitendes Beispiel

(Selbstabbildende Information)

Page 3: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

Minimal neighbour

Original Ergebnis

Page 4: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

Ersetze in jeder Zeile

jedes Pixel

durch den niedrigsten Pixelwert der dieses

Pixels umschreibenden 3 x 3 Matrix.

Minimal neighbour

Page 5: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

Minimal neighbour

Page 6: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

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

Page 7: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

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

Page 8: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

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

Page 9: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

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

Page 10: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

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

Page 11: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

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

Page 12: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

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

Page 13: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

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

Page 14: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

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

Page 15: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

Minimal neighbour

*

Page 16: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

II. Algorithmen: Allgemeine Eigenschaften

Page 17: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

Ein Algorithmus ist eine Funktion f(Dein, Daus), die Eingabedaten Dein in Ausgabedaten Daus schrittweise transformiert und dabei bestimmte Bedingungen erfüllt.

Algorithmen: Definition

Page 18: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

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

Page 19: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

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

Page 20: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

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

Page 21: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

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

Page 22: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

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

Page 23: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

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

Page 24: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

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

Page 25: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

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

Page 26: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

III. Zahlen und Bedeutung

(2 Klassen von Information)

Page 27: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

Problem:

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

Bildversiegelung

Page 28: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

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

Page 29: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

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

Page 30: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

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

Page 31: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

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

Page 32: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

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

Page 33: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

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}

Page 34: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

Information verstecken

01001000

01001011

01001001

Page 35: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

Information verstecken

H

K

I

„Watermarking of images“

*

Page 36: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

IV. Zeichenbasierte Algorithmen

Page 37: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

Soundex

Problem: Welche der drei folgenden Namen sind gleich?

Theckenperger

Tegenberger

Tekekenperger

Page 38: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

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.

Page 39: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

Soundex

Problem: Welche der drei folgenden Namen sind gleich?

Theckenperger

Tegenberger

Tekekenperger

Page 40: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

Soundex

Problem: Welche der drei folgenden Namen sind gleich?

Theckenperger

Tegenberger

Tekekenperger

T Regel 1

Page 41: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

Soundex

Problem: Welche der drei folgenden Namen sind gleich?

Theckenperger

Tegenberger

Tekekenperger

Tx Regel 2

Page 42: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

Soundex

Problem: Welche der drei folgenden Namen sind gleich?

Theckenperger

Tegenberger

Tekekenperger

T x Regel 3

Page 43: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

Soundex

Problem: Welche der drei folgenden Namen sind gleich?

Theckenperger

Tegenberger

Tekekenperger

T 2 Regel 4.2

Page 44: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

Soundex

Problem: Welche der drei folgenden Namen sind gleich?

Theckenperger

Tegenberger

Tekekenperger

T 2x Regel 5

Page 45: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

Soundex

Problem: Welche der drei folgenden Namen sind gleich?

Theckenperger

Tegenberger

Tekekenperger

T 2 x Regel 3

Page 46: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

Soundex

Problem: Welche der drei folgenden Namen sind gleich?

Theckenperger

Tegenberger

Tekekenperger

T 2 5 Regel 4.5

Page 47: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

Soundex

Problem: Welche der drei folgenden Namen sind gleich?

Theckenperger

Tegenberger

Tekekenperger

T 2 51 Regel 4.1

Page 48: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

Soundex

Problem: Welche der drei folgenden Namen sind gleich?

Theckenperger T251

Tegenberger

Tekekenperger

Page 49: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

Soundex

Problem: Welche der drei folgenden Namen sind gleich?

Theckenperger T251

Tegenberger

Tekekenperger

T Regel 1

Page 50: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

Soundex

Problem: Welche der drei folgenden Namen sind gleich?

Theckenperger T251

Tegenberger

Tekekenperger

Tx Regel 2

Page 51: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

Soundex

Problem: Welche der drei folgenden Namen sind gleich?

Theckenperger T251

Tegenberger

Tekekenperger

T 2 Regel 4.2

Page 52: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

Soundex

Problem: Welche der drei folgenden Namen sind gleich?

Theckenperger T251

Tegenberger

Tekekenperger

T 2x Regel 3

Page 53: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

Soundex

Problem: Welche der drei folgenden Namen sind gleich?

Theckenperger T251

Tegenberger

Tekekenperger

T 2 5 Regel 4.5

Page 54: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

Soundex

Problem: Welche der drei folgenden Namen sind gleich?

Theckenperger T251

Tegenberger T251

Tekekenperger

T 2 51 Regel 4.1

Page 55: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

Soundex

Problem: Welche der drei folgenden Namen sind gleich?

Theckenperger T251

Tegenberger T251

Tekekenperger

T 2 2 Regeln 4.2 / 5 / 3

Page 56: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

Soundex

Problem: Welche der drei folgenden Namen sind gleich?

Theckenperger T251

Tegenberger T251

Tekekenperger T225

*

Page 57: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

V. Symbolische Operationen I

Page 58: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

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 Zwischenlagerverwendet 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.

Page 59: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

Towers of Hanoi

S1 S2 S3

Page 60: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

Towers of Hanoi

S1 S2 S3

Page 61: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

Towers of Hanoi

S1 S2 S3

Page 62: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

Towers of Hanoi

S1 S2 S3

Page 63: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

Towers of Hanoi

S1 S2 S3

Page 64: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

Towers of Hanoi

S1 S2 S3

Page 65: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

Towers of Hanoi

S1 S2 S3

Page 66: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

Towers of Hanoi

S1 S2 S3

Page 67: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

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.

Page 68: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

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.

Page 69: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

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()); }

Page 70: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

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

*

Page 71: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

VI. Symbolische Operationen II

Page 72: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

Das Problem

Page 73: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

A* Algorithmus: Ausgangslage

Page 74: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

A* Algorithmus: Zwischenschritt

Page 75: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

A* Algorithmus: Zwischenschritt

Page 76: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

A* Algorithmus: Zwischenschritt

Page 77: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

A* Algorithmus: Zwischenschritt

Page 78: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

A* Algorithmus: Schluß

Page 79: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

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

*

Page 80: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

Demo

Page 81: Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.

Das Problem ?


Recommended