Randomiiert inkrementelle Kontruktion der Trapezzerlegung einer Menge von Strecken in der Ebene (Literatur: deberg et al., Kapitel 6) Chritian Knauer 1 Problemtellung Gegeben: Eine Menge von n Strecken S in der Ebene Berechne: Die von S induzierte ebene Unterteilung (unterteile die Strecken au S bei den Schnittpunkten) 2
Trapezzerlegung einer Menge von Strecken S: Menge von n Strecken in der Ebene mit k Schnittpunkten Trapezzerlegung von S Verfeinerung der von S induzierten ebene Unterteilung zeichne durch jeden der End- und Schnittpunkte der Strecken in S eine vertikale Strecke nach oben und unten bi eine Strecke au S getroffen wird unterteile die Strecken au S bei den Punkten an denen eine vertikale Erweiterung auftrifft 3 Beipiel Trapezzerlegung 4
Beipiel Trapezzerlegung 5 Beipiel Trapezzerlegung 6
Beipiel Trapezzerlegung 7 Eigenchaften der Trapezzerlegung Facetten ind Trapeze oder Dreiecke (mit evtl. unterteilten Seiten) Komplexität: O(n+k) 8
Problemtellung Gegeben: Eine Menge von n Strecken S in der Ebene (mit k Schnittpunkten) Berechne: Die Trapezzerlegung von S Annahme: Die Strecken au S ind in allgemeiner Lage, d.h. in einem Punkt chneiden ich höchten zwei Strecken und die x-koordinaten aller End- und Schnittpunkte ind verchieden 9 Inkrementeller Aufbau S = ( 1,, n ) T i it die Trapezzerlegung zu S i := { 1,, i } kontruiere T i au T i-1 durch Einfügen von i (für i>1) finde da Trapez t von T i-1, da einen Endpunkt p von i enthält ( Konfliktlokaliierung ) finde von t au alle Trapeze und Kanten von T i-1, die von i gechnitten werden ( Durchfädeln ) füge neue vertikale Kanten von den Endpunkten von i und den Schnittpunkten von i mit Strecken au S i-1 ein ( Unterteilen ) chneide vorhandene vertikale Kanten die i chneiden bei den Schnittpunkten ab und verchmelze die zu den entfernten Kanten adjazenten Trapeze ( Verkürzen ) 10
Beipiel: Kontruktion von T i au T i-1 11 Beipiel: Durchfädeln von i i 12
Beipiel: Unterteilen i 13 Beipiel: Verkürzen i 14
Beipiel: Verkürzen i 15 Beipiel: Die Zerlegung T i i 16
Lokaliierung von Streckenendpunkten in T i Verwendung einer zuätzlichen Datentruktur G i peichert die Gechichte der Kontruktion von T i ermöglicht Punktlokaliierung in T i Konfliktlokaliierung für einen Endpunkt p von i durch Punktlokaliierung von p in T i Anpaen der Datentruktur beim Einfügen neuer Strecken erwartete Suchzeit Õ(log n) pro Anfrage, erwartete Gröe Õ(n+k) 17 G i : Gechichte der Kontruktion von T i gerichteter azyklicher Graph Blätter ind bechriftet mit einem Trapez t?t i innere Knoten v haben Augrad 2 ind bechriftet mit einem Endpunkt p(v) einer der Strecken au S i oder einer Strecke (v)?s i repräentieren eine Region r(v) der Ebene wenn v die Wurzel it, dann it r(v)= R 2 wenn v da Kind eine Knoten u it, der mit einem Endpunkt p(u) einer der Strecken au S i bechriftet it, dann it r(v)={p?r(u) p it link von p(u)}, fall v linke Kind von u it r(v)={p?r(u) p it recht von p(u)}, fall v rechte Kind von u it wenn v da Kind eine Knoten u it, der mit einer Strecke (u)?s i bechriftet it, dann it r(v)={p?r(u) p it oberhalb von (u)}, fall v linke Kind von u it r(v)={p?r(u) p it unterhalb von (u)}, fall v rechte Kind von u it 18
Aufbau von G 1 p 2 U 1 p 1 p W T 1 T V p 2 W U V 19 Kontruktion von G i au G i-1 im Unterteilungchritt wird ein Trapez au T i-1 in höchten 4 Trapeze unterteilt r r l l l l 20
Kontruktion von G i au G i-1 erzeuge für jede Trapez da im Unterteilungchritt entteht ein neue Blatt und pae die Suchtruktur an den Blättern von G i-1 entprechend an 21 Kontruktion von G i au G i-1 erzeuge für jede Trapez da im Unterteilungchritt entteht ein neue Blatt und pae die Suchtruktur an den Blättern von G i-1 entprechend an G i-1 22
Kontruktion von G i au G i-1 erzeuge für jede Trapez da im Unterteilungchritt entteht ein neue Blatt und pae die Suchtruktur an den Blättern von G i-1 entprechend an r G i-1 l l r 23 Kontruktion von G i au G i-1 erzeuge für jede Trapez da im Unterteilungchritt entteht ein neue Blatt und pae die Suchtruktur an den Blättern von G i-1 entprechend an G i-1 24
Kontruktion von G i au G i-1 erzeuge für jede Trapez da im Unterteilungchritt entteht ein neue Blatt und pae die Suchtruktur an den Blättern von G i-1 entprechend an G i-1 l l 25 Kontruktion von G i au G i-1 erzeuge für jede Trapez da im Unterteilungchritt entteht ein neue Blatt und pae die Suchtruktur an den Blättern von G i-1 entprechend an G i-1 26
Kontruktion von G i au G i-1 erzeuge für jede Trapez da im Unterteilungchritt entteht ein neue Blatt und pae die Suchtruktur an den Blättern von G i-1 entprechend an r G i-1 l l r 27 Kontruktion von G i au G i-1 erzeuge für jede Trapez da im Unterteilungchritt entteht ein neue Blatt und pae die Suchtruktur an den Blättern von G i-1 entprechend an G i-1 28
Kontruktion von G i au G i-1 erzeuge für jede Trapez da im Unterteilungchritt entteht ein neue Blatt und pae die Suchtruktur an den Blättern von G i-1 entprechend an G i-1 l l 29 Kontruktion von G i au G i-1 Identifiziere Blätter von G i deren korrepondierende Trapeze beim Verkürzen miteinander verchmelzen 30
Beipiel: Kontruktion von G i au G i-1 G i-1 T U V W T U V W 31 Beipiel: Kontruktion von G i au G i-1 G i-1 T U V W p q 32
Beipiel: Kontruktion von G i au G i-1 G i-1 T p U V W q t 3 p t 1 t2 u 1 u 2 q v w 1 1 v w 2 2 w 3 t 3 u 1 u 2 v 2 v 1 w 3 t 2 t 1 w 2 w 1 33 Beipiel: Kontruktion von G i au G i-1 G i-1 T p U V W t 3 v 1 q w 3 q p t v w 1 1 1 t 3 w w t 3 2 2 t 2 t 1 w 2 w 1 34
Punktlokaliierung in T i mit Hilfe von G i uche, augehend von der Wurzel von G i, rekuriv da Trapez von T i (= Blatt von G i ), in dem der Anfragepunkt q liegt ei v ein innerer Knoten von G i mit q?r(v) wenn v mit einem Endpunkt p(v) einer Strecke au S i bechriftet it, dann fahre mit der Suche im linken Kind von v fort, fall q link von p(v) liegt fahre mit der Suche im rechten Kind von v fort, fall q recht von p(v) liegt wenn v mit einer Strecke (v)?s i bechriftet it, dann fahre mit der Suche im linken Kind von v fort, fall q über (v) liegt fahre mit der Suche im rechten Kind von v fort, fall q unter (v) liegt 35 Beipiel: Suchen in T 1 mit Hilfe von G 1 q 1 q U p 1 p 1 W T 1 T 1 V q 1 W U V 36
Beipiel: Suchen in G i mit Hilfe von G i p i i G i-1 i T U V W q i V q i p i t v w 1 1 1 t 3 w w t 3 2 2 i q i t 3 v 1 i w 3 t 2 t 1 w 2 w 1 37 Algorithmu Inert( i ) uche in G i-1 da Trapez t von T i-1 da einen Endpunkt von i enthält finde von t au alle Trapeze und Kanten von T i-1, die von i gechnitten werden füge neue vertikale Kanten von den Endpunkten von i und den Schnittpunkten von i mit Strecken au S i-1 ein erzeuge für jede Trapez da entteht ein neue Blatt in G i und pae die Suchtruktur an den Blättern von G i-1 entprechend an chneide vorhandene vertikale Kanten die i chneiden bei den Schnittpunkten ab und verchmelze die zu den entfernten Kanten adjazenten Trapeze identifiziere Blätter von G i deren korrepondierende Trapeze miteinander verchmelzen 38
Bemerkungen halbdynamicher Algorithmu zur Berechnung der Trapezzerlegung liefert Datentruktur zur Punktlokaliierung in der Trapezzerlegung 39 Laufzeitanalye der Algorithmu it determinitich, er trifft keine Zufallentcheidungen beim Einfügen von S in einer feten Reihenfolge? wir nehmen an, da alle Einfügereihenfolgen gleich wahrcheinlich ind die Anzahl der von dem Algorithmu durchgeführten Schritte it eine Zufallvariable wir betrachten den Erwartungwert dieer Zufallvariable al Maß für die Effizienz de Algorithmu wir nennen dieen Erwartungwert die erwartete Laufzeit de Algorithmu bei zufälliger Einfügereihenfolge e werden keine Annahmen über die tatitiche Verteilung der Eingabe gemacht 40
Übericht Laufzeitanalye Geamtkoten etzen ich zuammen au Koten für die trukturellen Änderungen der ebenen Unterteilung und die Kontruktion der Gechichte O(n log n + k) erwartet Bem.: Die Koten für die Kontruktion der Gechichte ind aymptotich genauo gro, wie die Koten für die trukturellen Änderungen der ebenen Unterteilung Koten für die Lokaliierung von Streckenendpunkten in der Gechickte Õ(log n) pro Punktlokaliierunganfrage 41 Koten für die trukturellen Änderungen ei S`? S fet mit S =i im folgenden ei auerdem T:=T i-1, T :=T i betrachte den i-ten Einfügechritt mit S i =S und die Zufallvariable T St (? ) := Koten für die trukturellen Änderungen im i-ten Schritt beim Ablauf de Algorithmu auf der Eingabe S mit der Einfügereihenfolge? erwartete Koten (unter der Bedingung S i =S ) E St := E[T St S i =S ] =??S Pr( wurde im i-ten Schritt eingefügt S i =S ) (Koten für da Einfügen von ) = (1/i)??S (Koten für da Einfügen von ) 42
Koten für die trukturellen Änderungen für t?t bezeichnet f(t) die Anzahl der Kanten von t Komplexität de Einfügen von it O(? t?t, t chneidet f(t)) 43 Koten für die trukturellen Änderungen E St =??S Pr( wurde im i-ten Schritt eingefügt S i =S ) (Koten für da Einfügen von ) = (1/i)??S (Koten für da Einfügen von ) = (1/i)??S? t?t, t chneidet f(t) 44
Koten für die trukturellen Änderungen? t?t, t chneidet f(t) =? t?t, inzident zu t f(t) 45 Koten für die trukturellen Änderungen E St =??S Pr( wurde im i-ten Schritt eingefügt S i =S ) (Koten für da Einfügen von ) = (1/i)??S (Koten für da Einfügen von ) = (1/i)??S? t?t, t chneidet f(t) = (1/i)??S? t?t, inzident zu t f(t) 46
Koten für die trukturellen Änderungen??S? t?t, inzident zu t f(t) = 4? t?t f(t) jede Trapez t?t it zu höchten 4 Strecken?S adjazent 47 Koten für die trukturellen Änderungen E St =??S Pr( wurde im i-ten Schritt eingefügt S i =S ) (Koten für da Einfügen von ) = (1/i)??S (Koten für da Einfügen von ) = (1/i)??S? t?t, t chneidet f(t) = (1/i)??S? t?t, inzident zu t f(t) = (1/i) 4? t?t f(t) 48
Koten für die trukturellen Änderungen E St =??S Pr( wurde im i-ten Schritt eingefügt S i =S ) (Koten für da Einfügen von ) = (1/i)??S (Koten für da Einfügen von ) = (1/i)??S? t?t, t chneidet f(t) = (1/i)??S? t?t, inzident zu t f(t) = (1/i) 4? t?t f(t) = O((1/i) (n+k)) wobei K = # Schnittpunkte in S 49 Koten für die trukturellen Änderungen ei Y eine Zufallvariable mit der Eigenchaft, da die Ereignie (Y=y i ):={??O Y(?)=y i } für y 1,,y k eine Partition von O bilden dann it E[X] =? i Pr(Y=y i ) E[X Y=y i ] Bewei:? i Pr(Y=y i ) E[X Y=y i ] =? i Pr(Y=y i )?? X(? ) Pr(? Y=y i ) =? i?? Pr(Y=y i ) X(? ) Pr(? Y=y i ) =??? i Pr(Y=y i ) X(? ) Pr(? Y=y i ) =?? X(? )? i Pr(Y=y i ) Pr(? Y=y i ) =?? X(? ) Pr(? ) = E[X] 50
Koten für die trukturellen Änderungen erwartete Koten unter der Bedingung S i =S E[T St S i =S ] = O((1/i) (n+#schnittpunkte in S )) betrachte die Zufallvariable K(? ) := Anzahl der Schnittpunkte in S i erwartete Koten E[T St ] =? S?S, S =i Pr(S i =S ) E[T St S i =S ] =? S?S, S =i Pr(S i =S ) O((1/i) (n+#schnittpunkte in S )) = O((1/i) (n+e[k])) 51 Koten für die trukturellen Änderungen ei q 1,,q k die Menge der Schnittpunkte der Strecken au S definiere für j=1,,k die 0-1-Zufallvariablen K j =1 gdw. der Schnittpunkt q j liegt in T dann it K =? j=1...k K j und E[K] =? j=1...k E[K j ] =? j=1...k Prob(q j liegt in T ) angenommen, q j it der Schnittpunkt der Strecken u,v?s n 2 n Prob(q j liegt in T ) = Prob({u,v}?S ) = / i 2 i damit it E[K] = ki(i-1)/(n(n-1)) und E[T St ] = O((1/i) (n+ki(i-1)/(n(n-1)))) 52
Koten für die trukturellen Änderungen die erwarteten Geamtkoten für die trukturellen Änderungen der ebenen Unterteilung und die Kontruktion der Gechichte erhält man durch Summation über E[T St ]? i=1,...,n O((1/i) (n+ki(i-1)/(n(n-1)))) = O(nh n +k/2) = O(n log n+k) 53 Suchzeit in G i ei p? IR 2 ein feter Punkt betrachte Zufallvariable L : O IR, wobei für??o L(? ) := Länge de Suchpfade von p in G i beim Ablauf de Algorithmu auf der Eingabe S mit der Einfügereihenfolge? für 4 = k = i bezeichnet b k da Blatt von G k, da p enthält definiere die 0-1-Zufallvariable L k =1 gdw. b k-1? b k L =O(? k=4...i L k ) wenn b k-1? b k dann wird b k-1 bei der Kontruktion von G k zu einem inneren Knoten v auf dem Suchpfad von p in G k it v O(1) Knoten vor b k E[L] =O(? k=4...i E[L k ]) Linearität de Erwartungwerte 54
Suchzeit in G i Pr(b k-1?b k ) = 4/k Rückwärtanalye: ei T k? S fet mit T k =k Pr(b k-1? b k S k =T k ) = Pr(r(b k ) wird durch k begrenzt S k =Q k ) = Pr( k? {Strecken von S k die r(b k ) definieren} S k =Q k ) = 4/k Pr(b k-1? b k ) =? T =k Pr(S k =T) Pr(b k? b k-1 S k =T) = 4/k E[L] = O(log i) E[L] =O(? k=4...i E[L k ]) = O(? k=4...i Pr(b k-1? b k )) = O(? k=4...i 4/k)=O(h i ) L = Õ(log i) Chernoff-Schranke für harmoniche Zufallvariablen 55 Suchzeit in G i T i := von den Stützgeraden der Strecken au T i induzierte Unterteilung T i it eine Verfeinerung von T i alle Punkte in einer Facette von T i haben in G i den gleichen Suchpfad #{Suchpfade in G i } = #{Facetten von T i } = O(i 2 ) au jeder Facette von T i wählen wir einen Punkt {q 1,,q j } mit j=o(i 2 ) Tiefe von G i = max { L p p? {q 1,,q j }} = Õ(log i) Pr(Tiefe von G i > c log i) = Pr (Länge de Suchpfade von q 1 in G i > c log i oder oder Länge de Suchpfade von q j in G i > c log i ) = Pr (Länge de Suchpfade von q 1 in G i > c log i) + + Pr(Länge de Suchpfade von q j in G i > c log i ) = #{Suchpfade in G i } Pr(Länge de Suchpfade eine feten Punkte in G i > c log i ) = O(i 2 ) (1/p(c,i)) für alle c>c 0 >0 mit lim c 8 deg n (p(c,i)) 8 56
Zuammenfaung Satz: Zu einer Menge S von n Strecken in der Ebene mit k Schnittpunkten kann in O(n log n + k) erwarteter Zeit die Trapezzerlegung T(S) von S kontruiert werden. Dabei wird eine Datentruktur der Gröe Õ(n+k) aufgebaut, mit der man in Õ(log n) Zeit Punktlokaliierunganfragen in T(S) beantworten kann. 57