Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Foliendesign: Jörg Steinrücken & Tobias Kahn Vorlesung 5 11.05.00.

Ähnliche Präsentationen


Präsentation zum Thema: "Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Foliendesign: Jörg Steinrücken & Tobias Kahn Vorlesung 5 11.05.00."—  Präsentation transkript:

1

2 Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Foliendesign: Jörg Steinrücken & Tobias Kahn Vorlesung 5 11.05.00 Segmentschnitt (n Segmente)

3 Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 4 - 04.05.002 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)

4 n² n log n

5 Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 4 - 04.05.004 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?

6 Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 4 - 04.05.005 Reduktion von 2-dim auf 1-dim Überlappung der horizontalen Projektionen ist notwendig, aber nicht hinreichend für einen Schnitt

7 Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 4 - 04.05.006 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“

8 Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 4 - 04.05.007 Scan-Line-Verfahren A B F C D E S1S1 S3S3 S2S2 S4S4

9 Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 4 - 04.05.008 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

10 Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 4 - 04.05.009 Scan-Line-Verfahren A B F C D E S1S1 S3S3 S2S2 S4S4

11 Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 4 - 04.05.0010 Scan-Line-Verfahren A B F C D E S1S1 S3S3 S2S2 S4S4

12 Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 4 - 04.05.0011 Scan-Line-Verfahren A B F C D E S1S1 S3S3 S2S2 S4S4

13 Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 4 - 04.05.0012 Scan-Line-Verfahren A B F C D E S1S1 S3S3 S2S2 S4S4

14 Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 4 - 04.05.0013 Scan-Line-Verfahren A B F C D E S1S1 S3S3 S2S2 S4S4

15 Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 4 - 04.05.0014 Scan-Line-Verfahren A B F C D E S1S1 S3S3 S2S2 S4S4

16 Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 4 - 04.05.0015 Scan-Line-Verfahren A B F C D E S1S1 S3S3 S2S2 S4S4

17 Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 4 - 04.05.0016 Scan-Line-Verfahren A B F C D E S1S1 S3S3 S2S2 S4S4

18 Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 4 - 04.05.0017 Scan-Line-Verfahren A B F C D E S1S1 S3S3 S2S2 S4S4

19 Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 4 - 04.05.0018 Scan-Line-Verfahren A B F C D E S1S1 S3S3 S2S2 S4S4

20 Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 4 - 04.05.0019 Scan-Line-Verfahren A B F C D E S1S1 S3S3 S2S2 S4S4

21 Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 4 - 04.05.0020 Ist das wirklich schon der tolle Algorithmus, den wir suchen?

22 Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 4 - 04.05.0021 Gegenbeispiel zu viele Elemente gleichzeitig aktiv  O(n 2 )

23 Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 4 - 04.05.0022 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“

24 Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 4 - 04.05.0023 Nachbarschaft  - Umgebung A B

25 Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 4 - 04.05.0024 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 <‘‘

26 Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 4 - 04.05.0025 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

27 Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 4 - 04.05.0026 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“

28 Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 4 - 04.05.0027 Scan-Line & dynamische Ordnung A B F C D E S1S1 S3S3 S2S2 S4S4

29 Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 4 - 04.05.0028 Scan-Line & dynamische Ordnung A B F C D E S1S1 S3S3 S2S2 S4S4 A

30 Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 4 - 04.05.0029 Scan-Line & dynamische Ordnung A B F C D E S1S1 S3S3 S2S2 S4S4 A E

31 Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 4 - 04.05.0030 Scan-Line & dynamische Ordnung A B F C D E S1S1 S3S3 S2S2 S4S4 B E A

32 Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 4 - 04.05.0031 Scan-Line & dynamische Ordnung A B F C D E S1S1 S3S3 S2S2 S4S4 B D A E

33 Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 4 - 04.05.0032 Scan-Line & dynamische Ordnung A B F C D E S1S1 S3S3 S2S2 S4S4 B C A D E

34 Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 4 - 04.05.0033 Scan-Line & dynamische Ordnung A B F C D E S1S1 S3S3 S2S2 S4S4 B D C E

35 Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 4 - 04.05.0034 Scan-Line & dynamische Ordnung A B F C D E S1S1 S3S3 S2S2 S4S4 B E C D

36 Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 4 - 04.05.0035 Scan-Line & dynamische Ordnung A B F C D E S1S1 S3S3 S2S2 S4S4 F C B E D

37 Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 4 - 04.05.0036 Scan-Line & dynamische Ordnung A B F C D E S1S1 S3S3 S2S2 S4S4 B C F E D

38 Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 4 - 04.05.0037 Scan-Line & dynamische Ordnung A B F C D E S1S1 S3S3 S2S2 S4S4 B C F E

39 Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 4 - 04.05.0038 Scan-Line & dynamische Ordnung A B F C D E S1S1 S3S3 S2S2 S4S4 C E F

40 Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 4 - 04.05.0039 Scan-Line & dynamische Ordnung A B F C D E S1S1 S3S3 S2S2 S4S4 C F E

41 Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 4 - 04.05.0040 Scan-Line & dynamische Ordnung A B F C D E S1S1 S3S3 S2S2 S4S4 C

42 Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 4 - 04.05.0041 Scan-Line & dynamische Ordnung A B F C D E S1S1 S3S3 S2S2 S4S4

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

44 Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 4 - 04.05.0043 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

45 Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 4 - 04.05.0044 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)

46 Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 4 - 04.05.0045 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


Herunterladen ppt "Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Foliendesign: Jörg Steinrücken & Tobias Kahn Vorlesung 5 11.05.00."

Ähnliche Präsentationen


Google-Anzeigen