Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung 5 SS 2001 Segmentschnitt II (n Segmente)

Slides:



Advertisements
Ähnliche Präsentationen
Kap. 13 Sweep-Line Algorithmen Kap Schnittprobleme
Advertisements

WS 03/041 Algorithmentheorie 01 - Einleitung Prof. Dr. S. Albers Prof. Dr. Th. Ottmann.
Kapitel 6: Klassifizierung von Sortiertechniken
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.
Halbzeit: Kurze Wiederholung
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.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 4 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 – Kürzeste Wege) T. Lauer.
WS 06/07 Algorithmentheorie 01 - Einleitung Prof. Dr. Th. Ottmann Tobias Lauer.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (03 – Verschiedene Algorithmen für dasselbe Problem) Prof. Dr. Th. Ottmann.
Geometrisches Divide and Conquer
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II Vorlesung Foliendesign: cand. geod. Jörg Steinrücken.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Übung Diskrete Mathematik SS 2003 Segmentschnitt I.
Institut für Kartographie und Geoinformation Dipl.-Ing. J. Schmittwilken Diskrete Mathe II Übung
Diskrete Mathe II Übung IKG - Übung Diskrete Mathe II – Jörg Schmittwilken 2 Ü6 Wendet den Scan-Line Algorithmus auf unten stehende Situation.
Institut für Kartographie und Geoinformation Dipl.-Ing. J. Schmittwilken Diskrete Mathe II Übung
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik I Vorlesung Listen-
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II Vorlesung In welcher Masche liegt der Punkt p?
Minimum Spanning Tree: MST
Theorie und Praxis geometrischer Algorithmen
Punktbeschriftung mit vier Rechtecken gleicher Höhe (Anzahlmaximierung) Julia Löcherbach.
BSP Binary Space Partitioning
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.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation I Vorlesung 5 WS 2000/2001 Topologie, Landkarten, Datenstrukturen.
Diskrete Mathematik II
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II Vorlesung 8 SS 2000 Punkt-in-Polygon-Verfahren II (Trapezkarte)
Geoinformation II Vorlesung 2 SS 2001 AVL-Bäume.
Geoinformation II Vorlesung 4 SS 2001 Voronoi-Diagramme.
Konstruktion der Voronoi-Diagramme II
Geoinformation II (6. Semester)
Geoinformation II Vorlesung 3 SS 2001 Polygon Overlay.
Diskrete Mathematik II
Diskrete Mathematik II
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
Hartmut Klauck Universität Frankfurt SS
Information und Kommunikation
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Konstruktion der Voronoi-Diagramme I
Vorlesung Mai 2000 Konstruktion des Voronoi-Diagramms II
Gegenseitige Lage von Geraden Schnittpunktberechnung
Seminar: Grundlagen Wissenschaftlichen Arbeitens
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
Korrektheit von Programmen – Testen
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung 6 SS 2001 Segmentschnitt III.
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.
Analyse der Laufzeit von Algorithmen
Diskrete Mathe II Übung
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Foliendesign: Jörg Steinrücken & Tobias Kahn Vorlesung
Vorlesung Einführendes Beispiel-
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung der Algorithmus von Floyd Foliendesign:
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II 6. Sem. Vorlesung April 2000 AVL-Bäume.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Datenstrukturen für den Algorithmus von.
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 Suche des kürzesten Weges in einem Netz.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Foliendesign: Jörg Steinrücken & Tobias Kahn Vorlesung
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Voronoi-Diagramme.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung der Algorithmus von Floyd.
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
Gliederung der Vorlesung
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II 6. Sem. Vorlesung 4 4. Mai 2000 Voronoi-Diagramm.
Vorlesung April 2000 Polygon Overlay
Diskrete Mathematik II
 Präsentation transkript:

Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung 5 SS 2001 Segmentschnitt II (n Segmente)

Lutz Plümer - Diskrete Mathematik - 2. Semester - SS Vorlesung 52 Übersicht I Von 2 zu n Segmenten Vorgehen Reduktion von 2-dim auf 1-dim Was haben wir davon? Scan-Line-Verfahren Idee Scan-Line-Verfahren Ist das wirklich schon der tolle Algorithmus, den wir suchen? Gegenbeispiel

Lutz Plümer - Diskrete Mathematik - 2. Semester - SS Vorlesung 53 Übersicht II Und nun? Nachbarschaft Ausnutzung der Nachbarschaft Ordnungsrelation x < Ordnung der Segmente durch die Scan-Line Scan-Line & dynamische Ordnung Zusatzfrage: Wann wird der Schnittpunkt S1 erkannt? Vereinfachende Annahmen Algorithmus Scan-Line Algorithmus (II)

Lutz Plümer - Diskrete Mathematik - 2. Semester - SS Vorlesung 54 Von 2 zu n Segmenten naheliegendes Vorgehen: überprüfe jedes Paar von Segmenten Wie viele Paare gibt es? –O(n 2 ) wende den zuvor skizzierten Algorithmus auf diese Paare an geht es auch schneller? optimal wäre O(n * log n) (so schnell wie Sortieren)

n² n log n

Lutz Plümer - Diskrete Mathematik - 2. Semester - SS Vorlesung 56 Vorgehen was wissen wir, was können wir ausnutzen? –Vermeidung unnötiger Berechnungen, deren Ergebnis durch systematische Überlegung gewonnen werden kann was ist eine besonders einfache Variante dieses Problems? –alle Segmente liegen auf einer Geraden ( x-Achse) –eindimensionale Problemstellung Können wir die allgemeine (schwierige) Variante auf die spezielle (einfache) zurückführen?

Lutz Plümer - Diskrete Mathematik - 2. Semester - SS Vorlesung 57 Reduktion von 2-dim auf 1-dim Überlappung der horizontalen Projektionen ist notwendig, aber nicht hinreichend für einen Schnitt

Lutz Plümer - Diskrete Mathematik - 2. Semester - SS Vorlesung 58 Was haben wir davon? nur Segmente, deren horizontale Projektionen sich überlappen, können sich auch schneiden man kann die Prüfung auf diese Segmente einschränken Überprüfen aller Segmente durch sequentielles Vorgehen von links nach rechts (Scannen) Scan-Line

Lutz Plümer - Diskrete Mathematik - 2. Semester - SS Vorlesung 59 Scan-Line-Verfahren A B F C D E S1S1 S3S3 S2S2 S4S4

Lutz Plümer - Diskrete Mathematik - 2. Semester - SS Vorlesung 510 Idee: horizontale Scan-Line über die Ebene schieben –aktive Elemente: Schnitt mit der Scan-Line –nur aktive Elemente können horizontale Überschneidungen haben –überprüfe aktive Elemente auf Schnittfreiheit Problem: wo sind die Haltepunkte der Scan-Line –Anfangspunkt eines Segments –Endpunkt eines Segments –interessant sind also die x-Koordinaten der Anfangs- und Endpunkte 1. Schritt: sortiere alle Punkte nach aufsteigenden x-Koordinaten –anders ausgedrückt: sortiere die x-Koordinaten und statte jede x-Koordinate mit einem Verweis auf den zugehörigen Punkt aus

Lutz Plümer - Diskrete Mathematik - 2. Semester - SS Vorlesung 511 Scan-Line-Verfahren A B F C D E S1S1 S3S3 S2S2 S4S4

Lutz Plümer - Diskrete Mathematik - 2. Semester - SS Vorlesung 512 Scan-Line-Verfahren A B F C D E S1S1 S3S3 S2S2 S4S4

Lutz Plümer - Diskrete Mathematik - 2. Semester - SS Vorlesung 513 Scan-Line-Verfahren A B F C D E S1S1 S3S3 S2S2 S4S4

Lutz Plümer - Diskrete Mathematik - 2. Semester - SS Vorlesung 514 Scan-Line-Verfahren A B F C D E S1S1 S3S3 S2S2 S4S4

Lutz Plümer - Diskrete Mathematik - 2. Semester - SS Vorlesung 515 Scan-Line-Verfahren A B F C D E S1S1 S3S3 S2S2 S4S4

Lutz Plümer - Diskrete Mathematik - 2. Semester - SS Vorlesung 516 Scan-Line-Verfahren A B F C D E S1S1 S3S3 S2S2 S4S4

Lutz Plümer - Diskrete Mathematik - 2. Semester - SS Vorlesung 517 Scan-Line-Verfahren A B F C D E S1S1 S3S3 S2S2 S4S4

Lutz Plümer - Diskrete Mathematik - 2. Semester - SS Vorlesung 518 Scan-Line-Verfahren A B F C D E S1S1 S3S3 S2S2 S4S4

Lutz Plümer - Diskrete Mathematik - 2. Semester - SS Vorlesung 519 Scan-Line-Verfahren A B F C D E S1S1 S3S3 S2S2 S4S4

Lutz Plümer - Diskrete Mathematik - 2. Semester - SS Vorlesung 520 Scan-Line-Verfahren A B F C D E S1S1 S3S3 S2S2 S4S4

Lutz Plümer - Diskrete Mathematik - 2. Semester - SS Vorlesung 521 Scan-Line-Verfahren A B F C D E S1S1 S3S3 S2S2 S4S4

Lutz Plümer - Diskrete Mathematik - 2. Semester - SS Vorlesung 522 Ist das wirklich schon der tolle Algorithmus, den wir suchen?

Lutz Plümer - Diskrete Mathematik - 2. Semester - SS Vorlesung 523 Gegenbeispiel zu viele Elemente gleichzeitig aktiv O(n 2 )

Lutz Plümer - Diskrete Mathematik - 2. Semester - SS Vorlesung 524 Und nun? Scannen allein reicht nicht zu viele Elemente gleichzeitig aktiv wir können uns an jedem Haltepunkt der Scan-Line maximal ein oder zwei (oder konstant viele) Tests erlauben also müssen wir sparen... und zusätzliches Wissen einspeisen nur benachbarte Segmente können sich schneiden

Lutz Plümer - Diskrete Mathematik - 2. Semester - SS Vorlesung 525 Nachbarschaft - Umgebung A B

Lutz Plümer - Diskrete Mathematik - 2. Semester - SS Vorlesung 526 Ausnutzung der Nachbarschaft wie definiert man Nachbarschaft so, daß man sehr schnell erkennt, ob zwei Segmente benachbart sind? Nutzung der Scan-Line –Betrachte die Schnittpunkte der aktiven Segmente mit der Scan-Line –ordne die Segmente nach den y-Koordinaten ihrer Schnittpunkte mit der Scan-Line –nenne diese Ordnung x <

Lutz Plümer - Diskrete Mathematik - 2. Semester - SS Vorlesung 527 Ordnungsrelation x < x x B A C A x < B A x < C C x < A C x < B A x < B C x < B

Lutz Plümer - Diskrete Mathematik - 2. Semester - SS Vorlesung 528 Ordnung der Segmente durch die Scan-Line – x< ist eine partielle Ordnung... –... die nur auf der Menge der aktiven Elemente definiert ist –die Ordnung x< zwischen zwei Elementen wird an ihren Schnittpunkten umgedreht aus a x< b wird b x< a am Schnittpunkt s von a und b diese Ordnung ist natürlich eindimensional und für die aktiven Elemente vollständig sie ist abhängig vom Haltepunkt x der Scan-Line diese Ordnung ist also dynamisch und hängt von x als Parameter ab tun wir vorübergehend so, als hätten wir diese Ordnung im Griff

Lutz Plümer - Diskrete Mathematik - 2. Semester - SS Vorlesung 529 Scan-Line & dynamische Ordnung A B F C D E S1S1 S3S3 S2S2 S4S4

Lutz Plümer - Diskrete Mathematik - 2. Semester - SS Vorlesung 530 Scan-Line & dynamische Ordnung A B F C D E S1S1 S3S3 S2S2 S4S4 A

Lutz Plümer - Diskrete Mathematik - 2. Semester - SS Vorlesung 531 Scan-Line & dynamische Ordnung A B F C D E S1S1 S3S3 S2S2 S4S4 A E

Lutz Plümer - Diskrete Mathematik - 2. Semester - SS Vorlesung 532 Scan-Line & dynamische Ordnung A B F C D E S1S1 S3S3 S2S2 S4S4 B E A

Lutz Plümer - Diskrete Mathematik - 2. Semester - SS Vorlesung 533 Scan-Line & dynamische Ordnung A B F C D E S1S1 S3S3 S2S2 S4S4 B D A E

Lutz Plümer - Diskrete Mathematik - 2. Semester - SS Vorlesung 534 Scan-Line & dynamische Ordnung A B F C D E S1S1 S3S3 S2S2 S4S4 B C A D E

Lutz Plümer - Diskrete Mathematik - 2. Semester - SS Vorlesung 535 Scan-Line & dynamische Ordnung A B F C D E S1S1 S3S3 S2S2 S4S4 B D C E

Lutz Plümer - Diskrete Mathematik - 2. Semester - SS Vorlesung 536 Scan-Line & dynamische Ordnung A B F C D E S1S1 S3S3 S2S2 S4S4 B E C D

Lutz Plümer - Diskrete Mathematik - 2. Semester - SS Vorlesung 537 Scan-Line & dynamische Ordnung A B F C D E S1S1 S3S3 S2S2 S4S4 F C B E D

Lutz Plümer - Diskrete Mathematik - 2. Semester - SS Vorlesung 538 Scan-Line & dynamische Ordnung A B F C D E S1S1 S3S3 S2S2 S4S4 B C F E D

Lutz Plümer - Diskrete Mathematik - 2. Semester - SS Vorlesung 539 Scan-Line & dynamische Ordnung A B F C D E S1S1 S3S3 S2S2 S4S4 B C F E

Lutz Plümer - Diskrete Mathematik - 2. Semester - SS Vorlesung 540 Scan-Line & dynamische Ordnung A B F C D E S1S1 S3S3 S2S2 S4S4 C E F

Lutz Plümer - Diskrete Mathematik - 2. Semester - SS Vorlesung 541 Scan-Line & dynamische Ordnung A B F C D E S1S1 S3S3 S2S2 S4S4 C F E

Lutz Plümer - Diskrete Mathematik - 2. Semester - SS Vorlesung 542 Scan-Line & dynamische Ordnung A B F C D E S1S1 S3S3 S2S2 S4S4 C

Lutz Plümer - Diskrete Mathematik - 2. Semester - SS Vorlesung 543 Scan-Line & dynamische Ordnung A B F C D E S1S1 S3S3 S2S2 S4S4

Lutz Plümer - Diskrete Mathematik - 2. Semester - SS Vorlesung 544 Zusatzfrage: Wann wird der Schnittpunkt S 1 erkannt? A S1S1 Übung: Wird ein Schnittpunkt ggf. mehr als einmal erkannt? C D E B

Lutz Plümer - Diskrete Mathematik - 2. Semester - SS Vorlesung 545 Vereinfachende Annahmen Annahme 2 Segmente schneiden sich höchstens in einem Punkt in keinem Punkt schneiden sich mehr als 2 Segmente die x-Koordinaten aller Segmente sind paarweise verschieden kein Segment ist vertikal Gegenbeispiele

Lutz Plümer - Diskrete Mathematik - 2. Semester - SS Vorlesung 546 Algorithmus Scan-Line Input: S: eine Menge von Segmenten Output: die Schnittpunkte der Elemente von S Sei T = Endpunkte der Segmente von S nach x-Koordinaten sortiert (Haltepunkte) L = // aktive Segmente von S while T do bestimme und entferne den nächsten Punkt p T x ist x-Koordinate von p case: p ist linker Endpunkt von s fuege_ein(s,x,L) sl = vorgaenger(s,x,L) sr = nachfolger(s,x,L) schnitt(sl,s,T); schnitt(s,sr,T); p ist rechter Endpunkt von s sl = vorgaenger(s,x,L) sr = nachfolger(s,x,L) entferne(s,x,L) schnitt(sl,sr,T) p ist Schnittpunkt von s und t vertausche(s,t,L,x) // t < s sl = vorgaenger(t,x,L) sr = nachfolger(s,x,L) schnitt(sl,t,T) schnitt(s,sr,T)

Lutz Plümer - Diskrete Mathematik - 2. Semester - SS Vorlesung 547 Algorithmus (II) fuege_ein(s,x,L): fügt das Segment s in die Menge L ein entsprechend der Ordnung an der Stelle x entferne(s,x,L): entfernt das Segment s aus die Menge L an der Stelle x nachfolger(s,x,L):liefert den Nachfolger von s in L an der Stelle x, falls vorhanden vorgaenger(s,x,L) liefert den Vorgänger von s in L an der Stelle x, falls vorhanden schnitt(s,t,T)prüft s und t auf Schnitt. Berechnet ggf. den Schnittpunkt p und fügt ihn als neuen Haltepunkt in T ein. offene Probleme: eine geeignete Datenstruktur für T eine geeignete Datenstruktur für L Prüfung auf Schnitt, Berechnung des Schnittpunkts