1 / 72

Das Maßproblem von Klee

Jörg Bruder Benjamin Drayer Joachim Krempel Daniel Schüssele. Das Maßproblem von Klee. Übersicht. Problem 1-dimensional Problem 2-dimensional Scanline (Bentley) Naive Lösung Segmentbaum Lösung Problem d-dimensional. Das eindimensionale Maßproblem.

bowen
Download Presentation

Das Maßproblem von Klee

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Jörg Bruder Benjamin Drayer Joachim Krempel Daniel Schüssele Das Maßproblem von Klee

  2. Übersicht • Problem 1-dimensional • Problem 2-dimensional • Scanline (Bentley) • Naive Lösung • Segmentbaum Lösung • Problem d-dimensional

  3. Das eindimensionale Maßproblem Gegeben: n Intervalle auf einer Geraden.

  4. Das eindimensionale Maßproblem Gegeben: n Intervalle auf einer Geraden.

  5. Das eindimensionale Maßproblem Gegeben: n Intervalle auf einer Geraden. Gesucht: Länge der Vereinigung über alle n Intervalle

  6. Das eindimensionale Maßproblem Gegeben: n Intervalle auf einer Geraden. Gesucht: Länge der Vereinigung über alle n Intervalle

  7. Das eindimensionale Maßproblem Gegeben: n Intervalle auf einer Geraden. Gesucht: Länge der Vereinigung über alle n Intervalle Platzbedarf: O(n)

  8. Das eindimensionale Maßproblem Gegeben: n Intervalle auf einer Geraden. Gesucht: Länge der Vereinigung über alle n Intervalle Platzbedarf: O(n) Zeitkomplexität: O(n log(n))

  9. Das zweidimensionale Maßproblem

  10. Das zweidimensionale Maßproblem Gegeben: n Rechtecke

  11. Das zweidimensionale Maßproblem Gegeben: n Rechtecke Gesucht: Die von den Rechtecken überdeckte Fläche

  12. Scanline • Speicherung der Rechtecke • Scanline • Berechnung der Fläche

  13. Speicherung der Rechtecke q = (x-low, x-high, y-low, y-high)

  14. Scanline • Sortiere x-Werte aufsteigend • Verschmelze gleiche x-Werte • Analog y-Werte • Speichere die v als Listen bei den u

  15. Scanline

  16. Scanline

  17. Scanline

  18. Scanline

  19. Berechnung der Fläche

  20. Berechnung der Fläche • m(i)=Maß der aktiven Segmente

  21. Naiver Ansatz • Verwende die Scanline • Berechne m(i) als eindimensionales Maßproblem • Achtung: Worstcaselaufzeit

  22. Segmentbaum • Idee • Blätter • q-voll, q-partiell • 1-Umbrella • count(x) • Delta(x) • Einfügen • Löschen • Gesamtalgorithmus

  23. Segmentbaum • Idee • Blätter • q-voll, q-partiell • 1-Umbrella • count(x) • Delta(x) • Einfügen • Löschen • Gesamtalgorithmus

  24. Idee • Speichere nicht die Fragmente aus denen ein Segment besteht sondern markiere bestimmte Knoten. • Der Unterbaum, der von jedem Knoten ausgeht überdeckt gewisse Segmente. • Das Maß der aktiven Segmente soll in den Knoten gespeichert werden. • Wenn dies realisiert ist, dann kann man an der Wurzel des Baumes das Gesammtmaß für die gerade aktiven Segmente ablesen.

  25. Segmentbaum • Idee • Blätter • q-voll, q-partiell • 1-Umbrella • count(x) • Delta(x) • Einfügen • Löschen • Gesamtlgorithmus

  26. Blätter doppelt, Speichere alle y-Werte bis auf und da sie einmal als Anfang und einmal als Ende eines Segments auftreten.

  27. Segmentbaum • Idee • Blätter • q-voll, q-partiell • 1-Umbrella • count(x) • Delta(x) • Einfügen • Löschen • Gesamtlgorithmus

  28. q-voll, q-partiell Knoten A ist q-voll, wenn das Segment von A ganz in q liegt

  29. q-voll, q-partiell Knoten A ist q-partiell, wenn A nicht q-voll ist aber einen Sohn hat, der q-voll oder q-partiell ist.

  30. Segmentbaum • Idee • Blätter • q-voll, q-partiell • 1-Umbrella • count(x) • Delta(x) • Einfügen • Löschen • Gesamtalgorithmus

  31. 1-Umbrella Konstrukt um Infomationen effizient in den Knoten zu halten 1-Umbrella für Segment q: -Tip t

  32. 1-Umbrella Konstrukt um Infomationen effizient in den Knoten zu halten 1-Umbrella für Segment q: -Tip t - high-line, low-line, high-tip, low-tip

  33. 1-Umbrella Konstrukt um Infomationen effizient in den Knoten zu halten 1-Umbrella für Segment q: -Tip t - high-line, low-line, high-tip, low-tip - q-volle Knoten an der high- oder low-line

  34. 1-Umbrella Konstrukt um Infomationen effizient in den Knoten zu halten 1-Umbrella für Segment q: -Tip t - high-line, low-line, high-tip, low-tip - q-volle Knoten an der high- oder low-line Analyse:

  35. 1-Umbrella Konstrukt um Infomationen effizient in den Knoten zu halten 1-Umbrella für Segment q: -Tip t - high-line, low-line, high-tip, low-tip - q-volle Knoten an der high- oder low-line Analyse: - O(log(n)) Knoten

  36. 1-Umbrella Konstrukt um Infomationen effizient in den Knoten zu halten 1-Umbrella für Segment q: -Tip t - high-line, low-line, high-tip, low-tip - q-volle Knoten an der high- oder low-line Analyse: - O(log(n)) Knoten - O(log(n)) Zeit

  37. Segmentbaum • Idee • Blätter • q-voll, q-partiell • 1-Umbrella • count(x) • Delta(x) • Einfügen • Löschen • Gesamtalgorithmus

  38. count(x) • Idee war das Maß in den Knoten zu speichern nicht die Umbellas • Gefahr: Das Maß soll sich nur erhöhen, wenn ein noch nicht ganz enthaltenes Segment eingefügt wird • Gefahr: Beim Löschen muß berücksichtigt werden ob es noch andere Segmente gibt, die das gelöschte Intervall überdecken • Lösung: Zusatzinformation in den Knoten

  39. count(x) • Informationen in den Knoten • Speichere im Knoten x das aktuelle Maß val(x) • Speichere im Knoten x, wie oft x als q-voller Knoten in einem 1-Umbrella vorkommt als count(x)

  40. Segmentbaum • Idee • Blätter • q-voll, q-partiell • 1-Umbrella • count(x) • Delta(x) • Einfügen • Löschen • Gesamtalgorithmus

  41. Delta(x) Aktualisiert val(x) und count(x) im Knoten x, wenn ein Segment eingefügt wird und gibt Änderung zurück Fall 1: Fall 2: - count(x)++ - Änderung=Segmentgröße - val(x) - val(x)=Segmentgröße - count(x)++ - Änderung=0 - val(x) bleibt

  42. Delta(x) Algorithmus: if(val(x)=Segmentgröße){ count(x)++; return 0; } else{ count(x)++; f=Segmetgröße-val(x); val(x)=Segmentgröße; return f; } Laufzeit: O(1)

  43. Segmentbaum • Idee • Blätter • q-voll, q-partiell • 1-Umbrella • count(x) • Delta(x) • Einfügen • Löschen • Gesamtlgorithmus

  44. Einfügen • Berechnen des 1-Umbrellas • Von low- und high-tip bis t mit Delta(x) updaten • Bei t Informationen verschmelzen • Information zur Wurzel propagieren

  45. Einfügen Algorithmus: incr=Delta(low-tip); x=father(low-tip);

  46. Einfügen

  47. Einfügen

  48. Einfügen Algorithmus: incr=Delta(low-tip); x=father(low-tip); while(x!=t){ f=0; if(x hat einen q-vollen Sohn y){ f=Delta(y); }

  49. Einfügen

  50. Einfügen Algorithmus: incr=Delta(low-tip); x=father(low-tip); while(x!=t){ f=0; if(x hat einen q-vollen Sohn y){ f=Delta(y); } if(val(x)=Wert des gesammten von x aufgespannten Segments){ incr=0; } else{ incr=incr+f; val(x)=val(x)+incr; } x=father(x); }

More Related