Algorithmische Geometrie: Arrangements und Dualität Nico Düvelmeyer WS 2009/2010, 19.1.2010
Überblick 1 Strahlenverfolgung und Diskrepanz 2 Dualität Dualitäts-Abbildung Transformation des Problems zur Bestimmung der Halbebenen-Diskrepanz 3 Aufteilung der Ebene durch Geraden 4 Niveaus und Diskrepanz
Überblick 1 Strahlenverfolgung und Diskrepanz 2 Dualität Dualitäts-Abbildung Transformation des Problems zur Bestimmung der Halbebenen-Diskrepanz 3 Aufteilung der Ebene durch Geraden 4 Niveaus und Diskrepanz
Motivation: ray tracing
Auswahl der Sehstrahlen
Kontrolle der Sehstrahlen: Definition 9.1 Vorweg: Pixel U = [0, 1] 2 S: mit S U, gegebene Menge von n Punkten H: Menge aller abgeschlossenen Halbebenen des R 2 stetiges Maß µ(h) von h H: Flächeninhalt von h U diskretes Maß µ S (h): S h / S Diskrepanz von h: S (h) := µ(h) µ S (h) Halbebenen-Diskrepanz von S H (S) := sup h H S (h) Die Diskrepanz der Probe S ist der maximale Unterschied zwischen dem Flächenanteil eines Objektes der Szene im Pixel und dem relativen Anteil der Punkte aus S, die zu dem Objekt gehören. Die Diskrepanz ist nur für eine fest vorgegebene Klasse von geometrischen Objekten definiert.
Lemma 9.2 Es gibt eine Halbebene h H mit maximaler Diskrepanz H (S) = S (h). Wir unterscheiden zwei Typen für die Halbebene h: 1. h enthält genau einen Punkt aus S im Rand. 2. h enthält mindestens zwei Punkte aus S im Rand. Es gibt nur O(n) viele Kandidaten für Halbebenen h von maximaler Diskrepanz vom Typ 1, und alle diese Kandidaten können in Zeit in O(n) bestimmt werden.
Vorgriff: Satz 9.3 Die Halbebenen-Diskrepanz einer Menge von n Punkten des Einheitsquadrats kann in Zeit in O(n 2 ) berechnet werden. Beweis. Lemma 9.2, Typ 1 in Zeit in O(n) Typ 2: n(n 1) 2 O(n 2 ) viele Kandidaten pro Kandidat: stetiges Maß in O(1) Berechnung aller diskreten Maße µ S (h) in O(n 2 )
Überblick 1 Strahlenverfolgung und Diskrepanz 2 Dualität Dualitäts-Abbildung Transformation des Problems zur Bestimmung der Halbebenen-Diskrepanz 3 Aufteilung der Ebene durch Geraden 4 Niveaus und Diskrepanz
Überblick 1 Strahlenverfolgung und Diskrepanz 2 Dualität Dualitäts-Abbildung Transformation des Problems zur Bestimmung der Halbebenen-Diskrepanz 3 Aufteilung der Ebene durch Geraden 4 Niveaus und Diskrepanz
Dualitäts-Abbildung
Definition 9.4 Punkt p := (p x, p y ) R 2 Gerade p = { (x, y) : y = p x x p y } nicht-vertikalen Gerade l, y = mx + b Punkt p = l = (m, b) (wobei p = l)
Dualität Punkt Funktional Vertikalen Geraden der Form {c} R haben keinen dualen Punkt. Unsere Dualität ist damit eineindeutige Zuordnung von Punkten affin linearen Funktionalen über R
Beobachtung 9.5 Die Dualitäts-Abbildung o o hat folgende Eigenschaften: Beweis. Sie erhält Inzidenzen: p l genau dann, wenn l p. Sie erhält die Ordnung: p liegt genau dann über l, wenn l über p liegt.
Beobachtung 9.5 Die Dualitäts-Abbildung o o hat folgende Eigenschaften: Beweis. Sie erhält Inzidenzen: p l genau dann, wenn l p. Sie erhält die Ordnung: p liegt genau dann über l, wenn l über p liegt. (p x, p y ) l = {(x, mx + b)} p y = mp x + b l = (m, b) p = {(x, p x x p y )} b = p x m p y (p x, p y ) über l = {(x, mx + b)} p y mp x + b l = (m, b) über p = {(x, p x x p y )} b p x m p y
Überblick 1 Strahlenverfolgung und Diskrepanz 2 Dualität Dualitäts-Abbildung Transformation des Problems zur Bestimmung der Halbebenen-Diskrepanz 3 Aufteilung der Ebene durch Geraden 4 Niveaus und Diskrepanz
Primales Problem Zu einer Menge S von n verschiedenen Punkten der Ebene wollen wir das diskrete Maß µ S (h) für alle diejenigen Halbebenen h bestimmen, deren Randgerade zwei der Punkte aus S enthält.
Duales Problem (Grundlagen) Was wird aus dem primalen Problem der primalen Ebene, wenn wir nur die Situation in der dualen Ebene betrachten? Gegeben: Menge S := { p : p S } n (nicht-vertikale Geraden) der Ebene h für interessante h? µ S (h) =?
h h: Halbebene, in dessen Rand zwei Punkt p, q S liegen p, q S, p q l(p, q) := die Gerade durch p und q Annahme: l(p, q) nicht vertikal h = h(p, q): alle Punkte unterhalb (oberhalb) von l(p, q) (streng!) {l(p, q) } = p q h : alle Geraden oberhalb von Punkt l(p, q)
µ S (h) nµ S (h(p, q)) = Anzahl von Punkten p aus S: Punkt p unterhalb von Gerade l(p, q) nµ S (h(p, q)) = Anzahl von Geraden g aus S : Punkt l(p, q) unterhalb von Gerade g nµ S (h(p, q)) = Anzahl Geraden g S oberhalb vom Punkt l(p, q)
Duales Problem Gegeben: Gesucht: Menge S n nicht-vertikale Geraden der Ebene für alle Paare (p, q) aus S die Anzahl Geraden g S oberhalb/unterhalb vom Punkt l(p, q) für alle Schnittpunkte s von zwei Geraden aus S die Anzahlen von Geraden aus S oberhalb von s, durch s, und unterhalb von s.
Entartete Lage Annahme: l(p, q) nicht vertikal Wenn doch: p, q haben selbe x-koordinaten Lösung: nur O(n) viele solche Halbebenen h µ S (h) für diese separat berechnen Übung! geht mit Laufzeit in O(n log n)
Überblick 1 Strahlenverfolgung und Diskrepanz 2 Dualität Dualitäts-Abbildung Transformation des Problems zur Bestimmung der Halbebenen-Diskrepanz 3 Aufteilung der Ebene durch Geraden 4 Niveaus und Diskrepanz
Definition 9.6 L: Menge von n Geraden L induziert eine Aufteilung der Ebene in Ecken, Kanten und Flächen dieses teilweise unbeschränkt zusammen das von L induzierte Arrangement A(L) A(L) heißt einfach, falls keine drei Geraden durch einen Punkt keine zwei Geraden parallel Komplexität von A(L): Gesamtzahl Ecken + Kanten + Flächen
Satz 9.7 Es sei L eine Menge von n Geraden der Ebene und A(L) das von L induzierte Arrangement. 1. Die Anzahl von Ecken in A(L) ist maximal n(n 1)/2 = ( n 2). 2. Die Anzahl von Kanten in A(L) ist maximal n 2. 3. Die Anzahl von Flächen in A(L) ist maximal n 2 /2 + n/2 + 1 = ( n 2) + ( n 1) + ( n 0) = 1 + 1 + 2 + + n. Das Maximum wird jeweils genau für einfache Arrangements angenommen. Beweis. Zuordnung (wenn möglich) Fläche tiefster Punkt Flächen ohne tiefsten Punkt: selbes Problem in Dimension 1 In wieviele Bereiche wird maximal eine Gerade durch n Punkte geteilt? Max. ( n 1) Bereiche mit Punkt am weitesten links 1 Bereich ohne Punkt am weitesten links Formel überträgt sich schön auf höherdimensionale Arrangements
Repräsentation von A(L) A(L) als doppelt verkettete Kantenliste vorher: großes Rechteck B(L) darumlegen B(L) muss alle Ecken von A(L) enthalten
Idee Berechnung A(L) Gleitebenenverfahren A(L) in Zeit in O(n 2 log n) zu langsam inkrementellen Algorithmus bestimmen zuerst B(L) verfeinern Ebenenaufteilung einzeln durch l 1,..., l n L doppelt verkettete Kantenlisten A 1,..., A n
Algorithmus 9.8 Eingabe: eine Menge L = {l 1,..., l n } von n Geraden der Ebene Ausgabe: eine doppelt verkettete Kantenliste D für die Ebenenaufteilung, die durch B(L) und durch den Teil von A(L) innerhalb von B(L) induziert wird 1: Funktion KONSTRUIEREAUFTEILUNG(L) 2: Berechne ein umbeschriebenes Rechteck B(L) =: A 0, welches alle Ecken von A(L) im Inneren enthält. 3: Initialisiere eine doppelt verkettete Kantenliste D für die von B(L) induzierte Ebenenaufteilung.
Algorithmus 9.8 4: Für i 1 bis n mache 5: Suche die Kante k in D = A i 1, die den linken Schnittpunkt q von l i mit dem Rand von B(L) enthält. 6: Bestimme die beschränkte Fläche f von D, die inzident zu k ist. 7: Solange f nicht die unbeschränkte Fläche ist, mache 8: Teile f durch l i in zwei Teilflächen in D. Iteriere dafür ausgehend von q durch die Randkanten von f bis zum zweiten Schnittpunkt p von l i mit dem Rand von f. 9: Setze f auf die nächste von l i geschnittene Fläche von D. Iteriere dafür durch die von p ausgehenden Halbkanten. 10: q p
Analyse Berechnung A(L) Berechnung B(L) in O(n 2 ) äußere Schleife: n Durchläufe Bestimmung k: O(i) innere Schleife: O(i) Durchläufe aber Aufwand für Aufteilung und nächstes f nicht in O(1), nur O(i)! Gesamtaufwand innere Schleife? Wie Komplex ist lokal die Geometrie?
Definition 9.9 Die Zone der Gerade l in dem Arrangement A(L) ist die Menge der Flächen in A(L), deren Abschluss von l geschnitten wird. Die Komplexität dieser Zone ist die Summe der einzelnen Komplexitäten, also der Summe von jeweils Anzahl Kanten und Anzahl Ecken pro enthaltener Fläche.
Zonensatz (Satz 9.10) Die Komplexität einer Zone einer Gerade in einem Arrangement A(L) von m Geraden der Ebene ist in O(m). Beweis. vollständige Induktion
Zonensatz (Satz 9.10) Die Komplexität einer Zone einer Gerade in einem Arrangement A(L) von m Geraden der Ebene ist in O(m). Beweis. vollständige Induktion Hinzunahme Gerade am Rand
Zonensatz (Satz 9.10) Die Komplexität einer Zone einer Gerade in einem Arrangement A(L) von m Geraden der Ebene ist in O(m). Beweis. x-achse l falls l L, so 2(m 1) + 2m = 4m 2 mehr als für A(L \ {l}) andere horizontale Geraden in L: leicht drehen Unterscheidung links/rechts-begrenzende Kanten maximal 5 zusätzliche links-begrenzende Kanten bei Hinzunahme der Gerade l 1 dabei l 1,..., l k auf l in L am weitesten rechts {x} = l l 1, v(w) nächster Schnittpunkt auf l 1 oberhalb(unterhalb) l
Zonensatz (Satz 9.10) Die Komplexität einer Zone einer Gerade in einem Arrangement A(L) von m Geraden der Ebene ist in O(m). Beweis. neue(zusätzliche) links-begrenzende Kanten: auf l 1 1. vw (k = 1) oder vx (k > 1) 2. xw (k > 1) durch l 1 geteilt 3. im Punkt v 4. im Punkt w 5. im Punkt x (nur bei k = 2) Kegel B mit Spitze v (rechts oben von v) nicht in Zone außerhalb von vw auf l 1 keine links-begrenzenden Kanten weitere geschnittene links-begrenzende Kanten nur gekürzt
Satz 9.11 Die doppelt verkettete Kantenliste eines Arrangements, welches durch eine Menge von n Geraden der Ebene induziert wird, kann in Zeit in O(n 2 ) konstruiert werden. Beweis. Zonensatz n O(i) = O(n 2 ) i=1
Überblick 1 Strahlenverfolgung und Diskrepanz 2 Dualität Dualitäts-Abbildung Transformation des Problems zur Bestimmung der Halbebenen-Diskrepanz 3 Aufteilung der Ebene durch Geraden 4 Niveaus und Diskrepanz
Duales Problem (Umformuliert) Gegeben: Gesucht: Menge S von n nicht-vertikalen Geraden der Ebene für alle Ecken e in A(S ) die Anzahlen von Geraden aus S oberhalb von e, durch e, und unterhalb von e
Definition 9.12 Das Niveau eines Punktes x des Arrangements A ist als Anzahl von Geraden von A streng oberhalb von x.
Bestimmung des Niveaus aller Ecken für jedes l S Start mit linker Ecke von l in A(S ) Niveau durch explizite Tests mit ganz S gehen auf l nach rechts, aktualisieren Niveau Zonensatzes: Zeit in O(n)
Gezeigt: Satz 9.3 Die Halbebenen-Diskrepanz einer Menge von n Punkten des Einheitsquadrats kann in Zeit in O(n 2 ) berechnet werden. Beweis. Lemma 9.2, Typ 1 in Zeit in O(n) Typ 2: n(n 1) 2 O(n 2 ) viele Kandidaten pro Kandidat: stetiges Maß in O(1) Berechnung aller diskreten Maße µ S (h) in O(n 2 )