WS 2006-07 Algorithmentheorie 01 – Divide and Conquer (Segmentschnitt) Prof. Dr. Th. Ottmann.

Slides:



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

Algorithmentheorie 08 – Dynamische Programmierung (4) Editierdistanz Approximative Zeichenkettensuche Sequence Alignment Prof. Dr. Th. Ottmann WS
Kap. 13 Sweep-Line Algorithmen Kap Schnittprobleme
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
WS 03/041 Algorithmentheorie 01 - Einleitung Prof. Dr. S. Albers Prof. Dr. Th. Ottmann.
WS Prof. Dr. Th. Ottmann Algorithmentheorie 09 - Suche in Texten KMP, BM.
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.
Sortierverfahren Richard Göbel.
Sortierverfahren Richard Göbel.
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.
WS Algorithmentheorie 05 - Treaps Prof. Dr. Th. Ottmann.
Dynamische Programmierung (2) Matrixkettenprodukt
Algorithmentheorie 02 – Polynomprodukt und Fast Fourier Transformation
Prinzipien des Algorithmenentwurfs Backtracking Prof. Dr. Th. Ottmann
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.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (10 - Suchverfahren) T. Lauer.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Analyse natürlicher Bäume) Prof. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (03 – Verschiedene Algorithmen für dasselbe Problem) Prof. Dr. Th. Ottmann.
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)
Algorithmen und Datenstrukturen
WS 06/07 Algorithmentheorie 01 - Einleitung Prof. Dr. Th. Ottmann Tobias Lauer.
Algorithmentheorie 12 – Spannende Bäume minimalen Gewichts
Union-Find-Strukturen
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (03 – Verschiedene Algorithmen für dasselbe Problem) Prof. Dr. Th. Ottmann.
Geometrisches Divide and Conquer
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II Vorlesung In welcher Masche liegt der Punkt p?
Theorie und Praxis geometrischer Algorithmen
Merge-Sort und Binäres Suchen /10D. Haehn Populäres algorithmisches Lösungsverfahren Populäres algorithmisches Lösungsverfahren Divide: Problem.
Geoinformation II Vorlesung 4 SS 2001 Voronoi-Diagramme.
Konstruktion der Voronoi-Diagramme II
Geoinformation II (6. Semester)
Diskrete Mathematik II
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung 5 SS 2001 Segmentschnitt II (n Segmente)
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II Vorlesung 7 SS 2000 Punkt-in-Polygon-Verfahren I (Trapezkarte)
Effiziente Algorithmen
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Einführung in die Programmierung
Konstruktion der Voronoi-Diagramme I
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
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
SWE1 / Übung 10 ( ) Rekursion Binärbäume.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation III Vorlesung 1 WS 2001/02 Punkt-in-Landkarte I (Streifenkarte)
Diskrete Mathematik II
Diskrete Mathematik II
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
Diskrete Mathe II Übung IKG - Übung Diskrete Mathe II – Jörg Schmittwilken 2 Übung5 Prüft, ob sich folgende Segmente schneiden: –P1(1/7) P2(3/1)
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Voronoi-Diagramme.
Geoinformation II 6. Sem. Vorlesung April 2000 Geometrische Algorithmen - ein einführendes, größeres Beispiel für ein Semester-begleitendes Programmier.
Institut für Kartographie und Geoinformation Dipl.-Ing. J. Schmittwilken Diskrete Mathe II Übung
WS03/041 Dynamische Programmierung (3) Konstruktion optimaler Suchbäume Prof. Dr. S. Albers Prof. Dr. Th. Ottmann.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II 6. Sem. Vorlesung 4 4. Mai 2000 Voronoi-Diagramm.
Diskrete Mathematik II
 Präsentation transkript:

WS Algorithmentheorie 01 – Divide and Conquer (Segmentschnitt) Prof. Dr. Th. Ottmann

2 WS Das Divide - and - Conquer Prinzip Quicksort Formulierung und Analyse des Prinzips Geometrisches Divide – and – Conquer -Closest-Pair -Segmentschnitt -Voronoi-Diagramm

3 WS 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 berechneten Teillösungen zu einer Gesamtlösung zusammen

4 WS Segmentschnittproblem Bestimme alle Paare sich schneidender Segmente

5 WS Segmentschnittproblem Bestimme alle Paare sich schneidender Segmente A B C D E A. B. C. D. E..A.D.B.C.E Die getrennte Repräsentation der Segmente erlaubt eine Aufteilung

6 WS ReportCuts Input:Menge S bestehend aus vertikalen Segmenten und Endpunkten von horizontalen Segmenten. Output:Alle Schnittpunkte von vertikalen Segmenten mit horizontalen Segmenten, von denen mindestens ein Endpunkt in S ist. 1. Divide if |S| > 1 then teile S mittels einer vertikalen Geraden G in zwei gleichgroße Mengen S 1 (links von G) und S 2 (rechts von G) else S enthält keine Schnitte

7 WS ReportCuts A B C D E A D B C E S S1S1 S2S2 1. Divide-Schritt 2. Conquer ReportCuts(S 1 ); ReportCuts(S 2 )

8 WS ReportCuts 3. Merge: ??? Mögliche Schnitte für ein horizontales Segment in S 1 Fall 1: beide Endpunkte in S 1 h S1S1 S2S2

9 WS ReportCuts Fall 2: nur ein Endpunkt von h in S 1 2 a) rechter Endpunkt in S 1 h S1S1 S2S2

10 WS ReportCuts 2 b) linker Endpunkt von h in S 1 h S1S1 rechter Endpunkt in S 2 h S1S1 rechter Endpunkt nicht in S 2 S2S2 S2S2

11 WS Verfahren: ReportCuts(S) 3. Merge: Gib Schnitte aus zwischen vertikalen Segmenten in S 2 und horizontalen Segmenten in S 1, bei denen linker Endpunkt in S 1 und rechter Endpunkt weder in S 1 noch S 2 Analog für S 1 S1S1 S2S2

12 WS Implementierung Menge S L(S): y-Koordinaten aller linken Endpunkte in S, deren rechter Partner nicht in S R(S): y-Koordinaten aller rechten Endpunkte in S, deren linker Partner nicht in S V(S): y-Intervalle der vertikalen Segmente in S

13 WS Basisfälle S enthält nur ein Element s Fall 1: s = (x,y) ist ein linker Endpunkt L(S) = {y} R(S) = V(S) = Fall 2: s = (x,y) ist ein rechter Endpunkt L (S)= R(S) = {y} V(S) = Fall 3: s = (x,y 1,y 2 ) ist ein vertikales Segment L(S) = R(S) = V(S) = {[y 1,y 2 ]}

14 WS Merge-Schritt L(S i ), R(S i ), V(S i ) i=1,2 seien berechnet S = S 1 S 2 L(S) = R(S) = V(S) = L,R: sortiert nach steigenden y-Koordinaten verkettete Listen V: sortiert nach steigenden unteren Endpunkten verkettete Liste

15 WS Ausgabe der Schnittpunkte V(S 2 ) h3h3 h2h2 h1h1 L(S 1 )

16 WS Laufzeit Eingabe (vertikale Seg., linke/rechte Endpunkte horizontaler Seg.) wird anfangs einmal sortiert; abgespeichert in Array. Divide-and-Conquer: T(n) = 2T(n/2) + an + Größe der Ausgabe T(1) = O(1) O(n log n + k) k = #Schnittpunkte

17 WS Berechnung des Voronoi-Diagramms Gegeben: Eine Menge von Orten (sites) Gesucht: Eine Unterteilung der Ebene in Regionen gleicher nächster Nachbarn

18 WS Definition von Voronoi-Diagrammen P : Menge von Orten H(p | p ) = {x | x liegt näher an p als an p } Voronoi-Region von p

19 WS Berechnung des Voronoi-Diagramms Divide : Einteilung der Menge der Orte in zwei Hälften Conquer: Rekursive Berechnung der beiden kleineren Voronoi-Diagramme Abbruchbedingung: Voronoi-Diagramm eines einzelnen Ortes ist die gesamte Ebene Merge: Verbindung der Diagramme durch einen Kantenzug

20 WS Berechnung des Voronoi-Diagramms Ergebnis: Das fertige Voronoi-Diagramm Laufzeit: Bei n gegebenen Orten O(n log n)