Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "WS 06/07 Algorithmentheorie 01 - Einleitung Prof. Dr. Th. Ottmann Tobias Lauer."—  Präsentation transkript:

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

2 2WS 06/07 Organisatorisches Vorlesung:Mo. 14 - 16 Uhr, HS 00-036, Geb.101 Do. 14 - 16 Uhr, HS 00-036, Geb.101 alle 14 Tage Übungen:Do. 14 - 16 Uhr alle 14 Tage (erster Termin: 9. November) Einteilung und Räume werden noch bekanntgegeben. Termin- und Themenübersicht auf Kurs-Website: http://ad.informatik.uni-freiburg.de/lehre/ws0607/algtheo/

3 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

4 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

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

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

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

8 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

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

10 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

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

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

13 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

14 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

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

16 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

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

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

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

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

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


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

Ähnliche Präsentationen


Google-Anzeigen