Das Maßproblem von Klee

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

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

Transcript of Das Maßproblem von Klee

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