Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Diskrete Mathematik II

Ähnliche Präsentationen


Präsentation zum Thema: "Diskrete Mathematik II"—  Präsentation transkript:

1 Diskrete Mathematik II
Vorlesung 6 Segmentschnitt III

2 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 II - SS Vorlesung

3 Scan-Line-Verfahren F B C D A E S2 S3 S4 S1
Lutz Plümer - Diskrete Mathematik II - SS Vorlesung

4 Gegenbeispiel zu viele Elemente gleichzeitig aktiv  O(n2)
Lutz Plümer - Diskrete Mathematik II - SS Vorlesung

5 Nachbarschaft A B e-Umgebung
Lutz Plümer - Diskrete Mathematik II - SS Vorlesung

6 Ordnungsrelation „x <‘‘
B A C x‘ Ax < B Ax < C Cx < B Cx‘ < A Ax‘ < B Cx‘ < B Lutz Plümer - Diskrete Mathematik II - SS Vorlesung

7 Scan-Line & dynamische Ordnung
B F C D E S1 S3 S2 S4 Lutz Plümer - Diskrete Mathematik II - SS Vorlesung

8 Scan-Line & dynamische Ordnung
B F C D E S1 S3 S2 S4 A Lutz Plümer - Diskrete Mathematik II - SS Vorlesung

9 Scan-Line & dynamische Ordnung
B F C D E S1 S3 S2 S4 A E Lutz Plümer - Diskrete Mathematik II - SS Vorlesung

10 Scan-Line & dynamische Ordnung
F B S2 S3 C S4 D A S1 E B E A Lutz Plümer - Diskrete Mathematik II - SS Vorlesung

11 Scan-Line & dynamische Ordnung
B F C D E S1 S3 S2 S4 B D A E Lutz Plümer - Diskrete Mathematik II - SS Vorlesung

12 Scan-Line & dynamische Ordnung
B F C D E S1 S3 S2 S4 B C A D E Lutz Plümer - Diskrete Mathematik II - SS Vorlesung

13 Scan-Line & dynamische Ordnung
B F C D E S1 S3 S2 S4 B D C E Lutz Plümer - Diskrete Mathematik II - SS Vorlesung

14 Scan-Line & dynamische Ordnung
F B S2 S3 C S4 D A S1 E B E C D Lutz Plümer - Diskrete Mathematik II - SS Vorlesung

15 Scan-Line & dynamische Ordnung
B F C D E S1 S3 S2 S4 F C B E D Lutz Plümer - Diskrete Mathematik II - SS Vorlesung

16 Scan-Line & dynamische Ordnung
B F C D E S1 S3 S2 S4 B C F E D Lutz Plümer - Diskrete Mathematik II - SS Vorlesung

17 Scan-Line & dynamische Ordnung
B F C D E S1 S3 S2 S4 B C F E Lutz Plümer - Diskrete Mathematik II - SS Vorlesung

18 Scan-Line & dynamische Ordnung
B F C D E S1 S3 S2 S4 C E F Lutz Plümer - Diskrete Mathematik II - SS Vorlesung

19 Scan-Line & dynamische Ordnung
B F C D E S1 S3 S2 S4 C F E Lutz Plümer - Diskrete Mathematik II - SS Vorlesung

20 Scan-Line & dynamische Ordnung
B F C D E S1 S3 S2 S4 C Lutz Plümer - Diskrete Mathematik II - SS Vorlesung

21 Scan-Line & dynamische Ordnung
B F C D E S1 S3 S2 S4 Lutz Plümer - Diskrete Mathematik II - SS Vorlesung

22 Zusatzfrage: Wann wird der Schnittpunkt S1 erkannt?
B A S1 Übung: Wird ein Schnittpunkt ggf. mehr als einmal erkannt? Lutz Plümer - Diskrete Mathematik II - SS Vorlesung

23 Vereinfachende Annahmen
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 II - SS Vorlesung

24 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 II - SS Vorlesung

25 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 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 Schnitt-punkt 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 Lutz Plümer - Diskrete Mathematik II - SS Vorlesung

26 Datenstrukturen für T und S
Datenstrukur für T AVL-Baum letztes Semester was ist ein AVL-Baum erstens ein Suchbaum zweitens ausgeglichen Datenstruktur für L AVL-Baum? Problem: „Vorgänger“ und „Nachfolger“ finden das wird vom AVL-Baum nicht unterstützt also: Variante des AVL-Baums alle Informationen sind in Blättern (nicht in inneren Knoten) die Blätter bilden eine doppelt verkettete Liste Lutz Plümer - Diskrete Mathematik II - SS Vorlesung

27 Eine Variante des AVL-Baums
mit einer doppelt verketteten Liste der Blätter für die Menge der aktiven Elemente Lutz Plümer - Diskrete Mathematik II - SS Vorlesung

28 für die Haltepunkte ... ...mit den Operationen
Einfügen eines gefundenen Schnittpunktes Finden und Entfernen des nächsten (also minimalen) Elements ... ... genügt ein „normaler“ AVL-Baum obwohl man mit Kanonen auf Spatzen schießt besser: ein Heap (wie bei Dijkstra) Lutz Plümer - Diskrete Mathematik II - SS Vorlesung 28


Herunterladen ppt "Diskrete Mathematik II"

Ähnliche Präsentationen


Google-Anzeigen