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

Das Maßproblem von Klee

  • Upload
    bowen

  • View
    45

  • Download
    0

Embed Size (px)

DESCRIPTION

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. - PowerPoint PPT Presentation

Citation preview

Page 1: Das Maßproblem von Klee

Das Maßproblem von Klee

Jörg Bruder Benjamin DrayerJoachim KrempelDaniel Schüssele

Page 2: Das Maßproblem von Klee

Übersicht

● Problem 1-dimensional● Problem 2-dimensional● Scanline (Bentley)● Naive Lösung● Segmentbaum Lösung● Problem d-dimensional

Page 3: Das Maßproblem von Klee

Das eindimensionale Maßproblem

Gegeben: n Intervalle auf einer Geraden.

Page 4: Das Maßproblem von Klee

Das eindimensionale Maßproblem

Gegeben: n Intervalle auf einer Geraden.

Page 5: Das Maßproblem von Klee

Das eindimensionale Maßproblem

Gegeben: n Intervalle auf einer Geraden.

Gesucht: Länge der Vereinigung über alle n Intervalle

Page 6: Das Maßproblem von Klee

Das eindimensionale Maßproblem

Gegeben: n Intervalle auf einer Geraden.

Gesucht: Länge der Vereinigung über alle n Intervalle

Page 7: Das Maßproblem von Klee

Das eindimensionale Maßproblem

Gegeben: n Intervalle auf einer Geraden.

Gesucht: Länge der Vereinigung über alle n Intervalle

Platzbedarf: O(n)

Page 8: Das Maßproblem von Klee

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))

Page 9: Das Maßproblem von Klee

Das zweidimensionale Maßproblem

Page 10: Das Maßproblem von Klee

Das zweidimensionale Maßproblem

Gegeben: n Rechtecke

Page 11: Das Maßproblem von Klee

Das zweidimensionale Maßproblem

Gegeben: n Rechtecke

Gesucht: Die von den Rechtecken überdeckte Fläche

Page 12: Das Maßproblem von Klee

Scanline

● Speicherung der Rechtecke● Scanline● Berechnung der Fläche

Page 13: Das Maßproblem von Klee

Speicherung der Rechtecke

q = (x-low, x-high, y-low, y-high)

Page 14: Das Maßproblem von Klee

Scanline

● Sortiere x-Werte aufsteigend● Verschmelze gleiche x-Werte

u1 u2 ... uk

● Analog y-Werte

v1 v2 ... v l

● Speichere die v als Listen bei den u

Page 15: Das Maßproblem von Klee

Scanline

Page 16: Das Maßproblem von Klee

Scanline

Page 17: Das Maßproblem von Klee

Scanline

Page 18: Das Maßproblem von Klee

Scanline

Page 19: Das Maßproblem von Klee

Berechnung der Fläche

Page 20: Das Maßproblem von Klee

Berechnung der Fläche

● m(i)=Maß der aktiven Segmente

i 1

k 1

u i ui 1 m i

Page 21: Das Maßproblem von Klee

Naiver Ansatz

● Verwende die Scanline● Berechne m(i) als eindimensionales Maßproblem● Achtung: Worstcaselaufzeit O n2

Page 22: Das Maßproblem von Klee

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

Page 23: Das Maßproblem von Klee

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

Page 24: Das Maßproblem von Klee

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.

Page 25: Das Maßproblem von Klee

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

Page 26: Das Maßproblem von Klee

Blätter

Speichere alle y-Werte v i bis auf v1 v lund doppelt,da sie einmal als Anfang und einmal als Ende eines Segments auftreten.

q v i , v j

Page 27: Das Maßproblem von Klee

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

Page 28: Das Maßproblem von Klee

q-voll, q-partiellKnoten A ist q-voll, wenn das Segment von A ganz in q liegt

Page 29: Das Maßproblem von Klee

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

Page 30: Das Maßproblem von Klee

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

Page 31: Das Maßproblem von Klee

1-UmbrellaKonstrukt um Infomationen effizient in den Knoten zu halten

1-Umbrella für Segment q:

-Tip t

Page 32: Das Maßproblem von Klee

1-UmbrellaKonstrukt um Infomationen effizient in den Knoten zu halten

1-Umbrella für Segment q:

-Tip t

- high-line, low-line, high-tip, low-tip

Page 33: Das Maßproblem von Klee

1-UmbrellaKonstrukt 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

Page 34: Das Maßproblem von Klee

1-UmbrellaKonstrukt 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:

Page 35: Das Maßproblem von Klee

1-UmbrellaKonstrukt 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

Page 36: Das Maßproblem von Klee

1-UmbrellaKonstrukt 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

Page 37: Das Maßproblem von Klee

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

Page 38: Das Maßproblem von Klee

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

Page 39: Das Maßproblem von Klee

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)

Page 40: Das Maßproblem von Klee

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

Page 41: Das Maßproblem von Klee

Delta(x)Aktualisiert val(x) und count(x) im Knoten x, wenn ein Segment eingefügt wird und gibt Änderung zurück

Fall 1:

- count(x)++- Änderung=0- val(x) bleibt

Fall 2:

- count(x)++- Änderung=Segmentgröße - val(x)- val(x)=Segmentgröße

Page 42: Das Maßproblem von Klee

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)

Page 43: Das Maßproblem von Klee

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

Page 44: Das Maßproblem von Klee

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

Page 45: Das Maßproblem von Klee

EinfügenAlgorithmus:incr=Delta(low-tip);x=father(low-tip);

Page 46: Das Maßproblem von Klee

Einfügen

Page 47: Das Maßproblem von Klee

Einfügen

Page 48: Das Maßproblem von Klee

EinfügenAlgorithmus:incr=Delta(low-tip);x=father(low-tip);while(x!=t){

f=0;if(x hat einen q-vollen Sohn y){

f=Delta(y);}

Page 49: Das Maßproblem von Klee

Einfügen

Page 50: Das Maßproblem von Klee

EinfügenAlgorithmus: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);}

Page 51: Das Maßproblem von Klee

Einfügen

Page 52: Das Maßproblem von Klee

EinfügenAlgorithmus: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);}

Page 53: Das Maßproblem von Klee

Einfügen●Die Hilfsfunktion Delta(x) wird in konstanter Zeit abgearbeitet. ●Die Berechnung des 1-Umbrellas O(log(n)). ●Die Schleifendurchläufe der while-Schleife O(log(n))●Propagieren ebenfalls in O(log(n))

●=> Einfügen in O(log(n))

Page 54: Das Maßproblem von Klee

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

Page 55: Das Maßproblem von Klee

Löschen

● Analog zum Einfügen

Page 56: Das Maßproblem von Klee

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

Page 57: Das Maßproblem von Klee

Gesamtalgorithmus

Analyse:

Scanline ist an u i

Lese aktive Segmente m(i) an der Wurzel ab,berechne Fläche mit Hilfe von ui u i 1 m i

Lösche Segmente die inaktiv werden

Füge Segmente ein, die aktiv werden

- Scanline O(n)

- Löschen/Einfügen O(log(n))

- m(i) berechnen O(1)

=> Gesamtlaufzeit O(n log(n))

Page 58: Das Maßproblem von Klee

Beispiel

Page 59: Das Maßproblem von Klee

Beispielx-Werte: 2<4<7<8<9<10

y-Werte: 2<3<4<5<8

Page 60: Das Maßproblem von Klee

Beispiel

Page 61: Das Maßproblem von Klee

BeispielFüge Segement a=[4,8] ein

Page 62: Das Maßproblem von Klee

Beispiel

Page 63: Das Maßproblem von Klee

BeispielFläche=4(4-2)=8

Füge Segement b=[3,5] ein

Page 64: Das Maßproblem von Klee

Beispiel

Page 65: Das Maßproblem von Klee

BeispielFläche=5(7-4)+8=23

Entferne a=[4,8]

Page 66: Das Maßproblem von Klee

Beispiel

Page 67: Das Maßproblem von Klee

BeispielFläche=2(8-7)+23=25

Entferne b=[3,5]

Page 68: Das Maßproblem von Klee

Beispiel

Page 69: Das Maßproblem von Klee

BeispielFläche=0(9-8)+25=25

Füge c=[2,3] ein

Page 70: Das Maßproblem von Klee

Beispiel

Page 71: Das Maßproblem von Klee

BeispielFläche=1(10-9)+25=26

Entferne c=[2,3]

Page 72: Das Maßproblem von Klee

Das mehrdimensionale Maßproblem

● d-Dimensionen● Scanlineansatz● Kosten: O nd 1 log n