Einführung in die Informationsverarbeitung Teil Eide (auf Basis von Thaller 2014–15) Stunde III: Algorithmen, Visualisierung Köln 19. November 2015.

Slides:



Advertisements
Ähnliche Präsentationen
Seminar über Algorithmen
Advertisements

Motivation Bisher: Codes mit möglichst kurzer Codelänge.
6. Regelbasierte Systeme
Schnelle Matrizenoperationen von Christian Büttner
Frame-Logik Eine Einführung Andreas Glausch.
7. Natürliche Binärbäume
Suche in Texten (Stringsuche )
3. Kapitel: Komplexität und Komplexitätsklassen
Kapitel 6. Suchverfahren
12. Iteration und Rekursion
2. Kapitel: Komplexität und Komplexitätsklassen
Synonyme: Stapel, Keller, LIFO-Liste usw.
Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. Dezember 2008.
Manfred Thaller, Universität zu Köln Köln 10. Dezember 2010
Softwaretechnologie für Fortgeschrittene Teil Thaller Stunde I: Bildverarbeitung I Köln 19. November 2009.
Einführung in die Informationsverarbeitung Stunde X: Simulationen von Verhalten und Systemen Manfred Thaller, Universität zu Köln Köln 17. Dezember 2007.
Grammatiken, Definitionen
Java: Dynamische Datentypen
FH-Hof Optimierungsverfahren für kombinatorische Probleme Richard Göbel.
Philosophie der Logik nach Frege I
Algorithmus. Ein Kochrezept, zum Beispiel: Kartoffelbrei.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Algorithmen und Datenstrukturen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (10 - Suchverfahren) T. Lauer.
Halbzeit: Kurze Wiederholung
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen Halbzeit: Was haben wir bisher gelernt? Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
Die Türme von Hanoi Die Lösungsfindung nach dem Prinzip der Rekursion wird noch einmal textuell und grafisch erläutert
High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen.
Algorithmen und Komplexität
1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie Wintersemester.
Christian Schindelhauer
Christian Schindelhauer
Minimum Spanning Tree: MST
FH-Hof Algorithmen und Datenstrukturen - Einführung Richard Göbel.
Handlungsplanung und Allgemeines Spiel „Game Description Language (GDL)“ Peter Kissmann.
Splay Trees Von Projdakov Benjamin.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
§3 Allgemeine lineare Gleichungssysteme
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Einführung in die Programmierung Wintersemester 2013/14 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Exponentielles Wachstum
2.4 Rekursion Klassifikation und Beispiele
Algorithmen und Datenstrukturen Übungsmodul 8
PHP: Operatoren und Kontrollstrukturen
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Christian Schindelhauer Wintersemester 2006/07 6. Vorlesung
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Das Traveling Salesman Problem (TSP)
Softwaretechnologie für Fortgeschrittene Teil Thaller Stunde I: Bildverarbeitung I Köln 6. November 2014.
Einführung in die Informationsverarbeitung Teil Thaller Stunde III: Algorithmen Köln 4. November 2010.
Inhalt Einordnung und Funktion der lexikalische Analyse Grundlagen
Wann ist eine Funktion (über den natürlichen Zahlen) berechenbar?
Der A*-Algorithmus.
Gliederung der Vorlesung
Binärbäume.
Softwaretechnologie für Fortgeschrittene Teil Thaller Stunde I: Bildverarbeitung I Köln 15. November 2012.
Sortierverfahren Mit VB 2010 express edition JBS Tr, info Q1.
Programmiersprachen II Fortsetzung Datenstrukturen Balancierte Bäume 3 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Einführung in die Informationsverarbeitung Teil Thaller Stunde V: Wege und warum man sie geht Graphen. Köln 14. Januar 2016.
Spärliche Kodierung von Videos natürlicher Szenen Vortragender: Christian Fischer.
Einführung in die Informationsverarbeitung Teil Eide (auf Basis von Thaller 2014–15) Stunde IV: Simulationen von Verhalten und Systemen Köln 7. Januar.
Rekursionen Erstellt von J. Rudolf im November 2001
Kompetenzniveaus Lernlupe Mathematik
 Präsentation transkript:

Einführung in die Informationsverarbeitung Teil 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

5

Minimal neighbour

Minimal neighbour

Minimal neighbour

Minimal neighbour

Minimal neighbour

Minimal neighbour

Minimal neighbour

Minimal neighbour

Minimal neighbour * 15

II. Algorithmen: Allgemeine Eigenschaften 16

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

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=1N=10N=100N=

Beispiel: Sequentielles Suchen Laufzeit: linear Algorithmen: Laufzeit 1Clio 2Melpomene 3Terpsichore 4Thalia 5Euterpe 6Erato 7Urania 8Polyhymnia 9Kalliope 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 1Clio 2Melpomene 3Terpsichore 4Thalia 5Euterpe 6Erato 7Urania 8Polyhymnia 9Kalliope 21

Beispiel: Binäres Suchen Laufzeit: ? Algorithmen: Laufzeit 1Clio 2Erato 3Euterpe 4Kalliope 5Melpomene 6Polyhymnia 7Terpsichore 8Thalia 9Urania 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 1Clio 2Erato 3Euterpe 4Kalliope 5Melpomene 6Polyhymnia 7Terpsichore 8Thalia 9Urania 23

Beispiel: Binäres Suchen Laufzeit steigt mit Logarithmus der zu durchsuchenden Anzahl. Algorithmen: Laufzeit 1Clio 2Erato 3Euterpe 4Kalliope 5Melpomene 6Polyhymnia 7Terpsichore 8Thalia 9Urania 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

Bildversiegelung

Bildversiegelung = 983 = odd = 964 = even = 1081 = odd 30

Bildversiegelung = 982 = even = 964 = even = 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 verstecken

Information verstecken H K I „Watermarking of images“ * 35

IV. Zeichenbasierte Algorithmen 36

Soundex Problem: Welche der drei folgenden Namen sind gleich? Theckenperger Tegenberger Tekekenperger 37

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

Soundex Problem: Welche der drei folgenden Namen sind gleich? Theckenperger Tegenberger Tekekenperger 39

Soundex Problem: Welche der drei folgenden Namen sind gleich? Theckenperger Tegenberger Tekekenperger TRegel 1 40

Soundex Problem: Welche der drei folgenden Namen sind gleich? Theckenperger Tegenberger Tekekenperger TxTxRegel 2 41

Soundex Problem: Welche der drei folgenden Namen sind gleich? Theckenperger Tegenberger Tekekenperger T xRegel 3 42

Soundex Problem: Welche der drei folgenden Namen sind gleich? Theckenperger Tegenberger Tekekenperger T 2Regel

Soundex Problem: Welche der drei folgenden Namen sind gleich? Theckenperger Tegenberger Tekekenperger T 2xRegel 5 44

Soundex Problem: Welche der drei folgenden Namen sind gleich? Theckenperger Tegenberger Tekekenperger T 2 xRegel 3 45

Soundex Problem: Welche der drei folgenden Namen sind gleich? Theckenperger Tegenberger Tekekenperger T 2 5Regel

Soundex Problem: Welche der drei folgenden Namen sind gleich? Theckenperger Tegenberger Tekekenperger T 2 51Regel

Soundex Problem: Welche der drei folgenden Namen sind gleich? Theckenperger  T251 Tegenberger Tekekenperger 48

Soundex Problem: Welche der drei folgenden Namen sind gleich? Theckenperger  T251 Tegenberger Tekekenperger TRegel 1 49

Soundex Problem: Welche der drei folgenden Namen sind gleich? Theckenperger  T251 Tegenberger Tekekenperger TxTxRegel 3 50

Soundex Problem: Welche der drei folgenden Namen sind gleich? Theckenperger  T251 Tegenberger Tekekenperger T 2Regel

Soundex Problem: Welche der drei folgenden Namen sind gleich? Theckenperger  T251 Tegenberger Tekekenperger T 2xRegel 3 52

Soundex Problem: Welche der drei folgenden Namen sind gleich? Theckenperger  T251 Tegenberger Tekekenperger T 2 5Regel

Soundex Problem: Welche der drei folgenden Namen sind gleich? Theckenperger  T251 Tegenberger  T251 Tekekenperger T 2 51Regel

Soundex Problem: Welche der drei folgenden Namen sind gleich? Theckenperger  T251 Tegenberger  T251 Tekekenperger T 2 2Regeln 4.2 / 5 / 3 55

Soundex Problem: Welche der drei folgenden Namen sind gleich? Theckenperger  T251 Tegenberger  T251 Tekekenperger  T225 * 56

V. Symbolische Operationen I 57

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

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

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

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

Towers of Hanoi Fragen 1.Wie viele Mitarbeiter werden benötigt? n 2. Wieviele Transferschritte? 2 n Wie lange? Schritte == ca Schritt == 1 Sekunde ==> ca Sekunden == ca. 4 * 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 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

Turm1: Turm2: Turm3: Ausgangszustand der Variablen Scheibe 1Scheibe 2Scheibe 3 77

visualisiere(); 78

Turm1: Turm2: Turm3: Ausgangszustand der Variablen Scheibe 1Scheibe 2Scheibe 3 79 Scheibe 4

visualisiere(); 80

Bewegung und Wachstum Ausgangszustand: Position =2; Durchmesser=1; Schritt: Position=Position+1: Durchmesser=Durchmesser+Durchmesser *0.20;

Bewegung und Wachstum Position =2; Durchmesser=1;

Bewegung und Wachstum Position =3; Durchmesser=1.20;

Bewegung und Wachstum Position =4; Durchmesser=1.44;

Bewegung und Wachstum Position =5; Durchmesser=1.728;

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