WS 06/07 Algorithmentheorie 01 - Einleitung Prof. Dr. Th. Ottmann Tobias Lauer.

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmentheorie 08 – Dynamische Programmierung (1)
Advertisements

Falls Algorithmen sich selbst rekursiv aufrufen, so kann ihr Laufzeitverhalten bzw. ihr Speicherplatzbedarf in der Regel durch eine Rekursionsformel (recurrence,
Programmierung II (SS 2003)
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (26-Graphenalgorithmen: Wiederholung und Übung) Prof. Th. Ottmann.
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
WS 03/041 Algorithmentheorie 01 - Einleitung Prof. Dr. S. Albers Prof. Dr. Th. Ottmann.
Lineare Suche Divide-and-Conquer-Suche Kombinationssuche
Kapitel 6: Klassifizierung von Sortiertechniken
G.Heyer Algorithmen und Datenstrukturen II 1 Algorithmen und Datenstrukturen II Wintersemester 2000 / 2001 Prof. Dr. Gerhard Heyer Institut für Informatik.
Algorithmentheorie 04 –Hashing
Algorithmentheorie 6 – Greedy-Verfahren
WS Algorithmentheorie 13 - Kürzeste (billigste) Wege Prof. Dr. Th. Ottmann.
Prof.Dr.S. Albers Prof. Dr. Th. Ottmann
WS 03/04 Algorithmentheorie 03 - Randomisierung Prof. Dr. S. Albers Prof. Dr. Th. Ottmann.
WS Algorithmentheorie 02 - Polynomprodukt und Fast Fourier Transformation Prof. Dr. Th. Ottmann.
1WS 06/07 Organisatorisches 1.Vorlesung am Montag, : 9-11 Uhr in Gebäude 106, Raum Podcasts: Probleme mit der Videoqualität sind behoben.
WS Algorithmentheorie 05 - Treaps Prof. Dr. Th. Ottmann.
Dynamische Programmierung (2) Matrixkettenprodukt
Algorithmentheorie 02 – Polynomprodukt und Fast Fourier Transformation
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (04 – Entwurfsverfahren) Prof. Th. Ottmann.
Algorithmen und Datenstrukturen
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (03 – Verschiedene Algorithmen für dasselbe Problem) Prof. Dr. Th. Ottmann.
WS Algorithmentheorie 01 – Divide and Conquer (Segmentschnitt) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (10 - Suchverfahren) T. Lauer.
Prof. Dr. S. Albers Prof. Dr. Th. Ottmann
Halbzeit: Kurze Wiederholung
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (03 – Verschiedene Algorithmen für dasselbe Problem) Prof. Dr. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen Organisatorisches zu den Übungen Tobias Lauer.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen Halbzeit: Was haben wir bisher gelernt? Prof. Th. Ottmann.
Algorithmen und Datenstrukturen
WS Algorithmentheorie 08 – Dynamische Programmierung (2) Matrixkettenprodukt Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
WS Algorithmentheorie 08 – Dynamische Programmierung (3) Konstruktion optimaler Suchbäume Prof. Dr. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 4 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Algorithmentheorie 03 – Randomisierung (Closest Pair)
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 – Kürzeste Wege) T. Lauer.
Algorithmen und Datenstrukturen
Algorithmentheorie 12 – Spannende Bäume minimalen Gewichts
Algorithmentheorie 7 – Bin Packing
Union-Find-Strukturen
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (03 – Verschiedene Algorithmen für dasselbe Problem) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (09 - Weitere Sortierverfahren) Prof. Th. Ottmann.
Geometrisches Divide and Conquer
Minimum Spanning Tree: MST
Diskrete Mathe 9 Vorlesung 9 SS 2001
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung 1 SS 2001 Algorithmus von Dijkstra.
Rekursion mit Listen: Quicksort
Merge-Sort und Binäres Suchen /10D. Haehn Populäres algorithmisches Lösungsverfahren Populäres algorithmisches Lösungsverfahren Divide: Problem.
Sortieralgorithmen Sortieren von Arrays.
Effiziente Algorithmen
Geoinformation II Vorlesung 4 SS 2001 Voronoi-Diagramme.
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Effiziente Algorithmen
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Polynome und schnelle Fourier-Transformation
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Vorlesung Mai 2000 Konstruktion des Voronoi-Diagramms II
Sortieralgorithmen Greedy Sortieren: Sortieren durch Auswahl, Einfügen und Austauschen Divide-and-Conquer-Sortieren: Quicksort und merge sort Foliensatz.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II 6. Sem. Vorlesung Mai 2000 Konstruktion des Voronoi-Diagramms.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Foliendesign: Jörg Steinrücken & Tobias Kahn Vorlesung
Christian Scheideler WS 2008
M a r c – o l i v e r p a h l Informatik II – Kapitel 12 „Sortier-Algorithmen“ Zusammenfassung des Kapitel 12 Küchlin, Weber, Einführung in die Informatik,
WS03/041 Dynamische Programmierung (3) Konstruktion optimaler Suchbäume Prof. Dr. S. Albers Prof. Dr. Th. Ottmann.
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Prof. Dr. Ralf Möller Universität zu Lübeck Institut für Informationssysteme Tanya Braun (Übungen) sowie viele Tutoren.
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen
 Präsentation transkript:

WS 06/07 Algorithmentheorie 01 - Einleitung Prof. Dr. Th. Ottmann Tobias Lauer

2WS 06/07 Organisatorisches Vorlesung:Mo Uhr, HS , Geb.101 Do Uhr, HS , Geb.101 alle 14 Tage Übungen:Do Uhr alle 14 Tage (erster Termin: 9. November) Einteilung und Räume werden noch bekanntgegeben. Termin- und Themenübersicht auf Kurs-Website:

3WS 06/07 Organisatorisches Klausur:Teilnahmevoraussetzungen: - 50% der Übungsaufgaben bearbeitet und abgegeben - 1-mal in den Übungen vorgerechnet Bonus bei bestandener Klausur: Verbesserung um - 1/3 Notenstufe, wenn 50% der Übungspunkte erzielt - 2/3 Notenstufe, wenn 80% der Übungspunkte erzielt

4WS 06/07 Literatur Th. Ottmann, P. Widmayer: Algorithmen und Datenstrukturen 4. Auflage, Spektrum Akademischer Verlag, Heidelberg, 2002 Th. Cormen, C. Leiserson, R. Rivest, C. Stein: Introduction to Algorithms, Second Edition, MIT Press, 2001 Originalliteratur Genauere Angaben zum Thema werden jeweils auf der Kurs-Seite im Web veröffentlicht

5WS 06/07 Algorithmen und Datenstrukturen Entwurfsprinzipien und Analysetechniken für Algorithmen Divide and Conquer Greedy Prinzip Dynamische Programmierung Randomisierung Amortisierte Analyse

6WS 06/07 Algorithmen und Datenstrukturen Problem-/Anwendungsbereiche Geometrische Algorithmen Algebraische Algorithmen Graphenalgorithmen Datenstrukturen Internet-Algorithmen Optimierungsverfahren Zeichenkettenverarbeitung

WS 06/07 Divide and Conquer Teile und herrsche lat. divide at impera

8WS 06/07 Das Divide-and-Conquer Prinzip Auffrischung: Quicksort Formulierung und Analyse des Prinzips Geometrisches Divide-and-Conquer -Closest-Pair -Segmentschnitt -Voronoi-Diagramm Fast Fourier Transformation

9WS 06/07 Quick(F l ) v Quick(F r ) Quicksort: Sortieren durch Teilen F F l < vvF r > v v function Quick (F : Folge) : Folge; {liefert zu unsortierter Folge F die sortierte} begin if |F| 1 Quick := F else { wähle Pivotelement v aus F; teile F in F l mit Elementen < v und in F r mit Elementen > v Quick := } end;

10WS 06/07 Formulierung des D&C Prinzips Divide-and-Conquer Verfahren zur Lösung eines Problems der Größe n 1. Divide: n > c: Teile das Problem in k Teilprobleme der Größe n 1,...,n k auf (k 2) n c: Löse das Problem direkt 2. Conquer: Löse die k Teilprobleme auf dieselbe Art (rekursiv) 3. Merge: Füge die k berechneten Teillösungen zu einer Gesamtlösung zusammen

11WS 06/07 Analyse T(n): Maximale Anzahl von Schritten, um ein Problem der Größe n zu lösen T(n) = Spezialfall: k = 2, n 1 = n 2 = n/2 Divide- und Mergeaufwand : DM(n) T(1) = a T(n) = 2T(n/2) + DM(n)

12WS 06/07 Geometrisches Divide-and-Conquer Closest Pair Problem: Bestimme für eine Menge S von n Punkten ein Paar mit minimaler Distanz (bzw. bestimme die minimale Distanz)

13WS 06/07 Divide-and-Conquer Ansatz 1.Divide :Teile S in zwei gleichgroße Mengen S l und S r 2.Conquer:d l = mindist(S l ) d r = mindist(S r ) 3.Merge:d lr = min {d(p l,p r ) | p l S l, p r S r } return min {d l, d r,d lr } SrSr SlSl S dldl d lr d r

14WS 06/07 Divide-and-Conquer Ansatz 1.Divide :Teile S in zwei gleichgroße Mengen S l und S r 2.Conquer:d l = mindist(S l ) d r = mindist(S r ) 3.Merge:? SrSr SlSl S dldl d r

15WS 06/07 Divide-and-Conquer Ansatz 1.Divide :Teile S in zwei gleichgroße Mengen S l und S r 2.Conquer:d l = mindist(S l ) d r = mindist(S r ) 3.Merge:d lr = min {d(p l,p r ) | p l S l, p r S r } return min {d l, d r,d lr } Berechnung von d lr : SrSr SlSl S p d d = min {d l, d r }

16WS 06/07 Merge-Schritt 1.Betrachte nur Punkte im Abstand d von der Mittellinie, gemäß aufsteigenden y-Koordinaten 2.Betrachte zu jedem Punkt p alle Punkte q mit y-Abstand höchstens d; es gibt maximal 7 solche Punkte

17WS 06/07 Merge-Schritt d d dd d = min { d l, d r } p S SlSl SrSr p1p1 p3p3 p4p4 p2p2

18WS 06/07 Implementierung Sortiere Eingabepunkte anfangs einmal gemäß steigenden x-Koordinaten O(n log n) Sind Teilprobleme S l, S r gelöst, so erzeuge Liste der Punkte in S gemäß steigenden y-Koordinaten (Mergesort)

19WS 06/07 Laufzeit (Divide-and-Conquer) Rate Lösung durch wiederholtes Einsetzen Verifiziere durch Induktion Lösung: O(n log n)

20WS 06/07 Rate durch wiederholtes Einsetzen T(n) =

21WS 06/07 Verifiziere durch Induktion Annahme: n = 2 i i = 1: i-1 i: