Algorithmische Geometrie Joachim Giesen Semester: WS 2008/09 Vorwort Dieses Dokument wurde als Skript für die auf der Titelseite genannte Vorlesung erstellt und wird jetzt im Rahmen des Projekts „Vorlesungsskripte der Fakultät für Mathematik und Informatik“ weiter betreut. Das Dokument wurde nach bestem Wissen und Gewissen angefertigt. Dennoch garantiert weder der auf der Titelseite genannte Dozent, die Personen, die an dem Dokument mitgewirkt haben, noch die Mitglieder des Projekts für dessen Fehlerfreiheit. Für etwaige Fehler und dessen Folgen wird von keiner der genannten Personen eine Haftung übernommen. Es steht jeder Person frei, dieses Dokument zu lesen, zu verändern oder auf anderen Medien verfügbar zu machen, solange ein Verweis auf die Internetadresse des Projekts http: // uni-skripte. lug-jena. de/ enthalten ist. Diese Ausgabe trägt die Versionsnummer 2955 und ist vom 31. März 2010. Eine neue Ausgabe könnte auf der Webseite des Projekts verfügbar sein. Jeder ist dazu aufgerufen, Verbesserungen, Erweiterungen und Fehlerkorrekturen für das Skript einzureichen bzw. zu melden oder diese selbst einzupflegen – einfach eine E-Mail an die Mailingliste <uni-skripte@ lug-jena. de> senden. Weitere Informationen sind unter der oben genannten Internetadresse verfügbar. Hiermit möchten wir allen Personen, die an diesem Skript mitgewirkt haben, vielmals danken: • Christoph Göring <sietschie@ gmail. com> (Jahr) 3 Inhaltsverzeichnis 1 Grundlagen 1.1 Affine Geometrie . . . . . . . . . . . . . . . . 1.2 Affine Abhängigkeiten/Unabhängigkeiten . . 1.3 Affine Abbildung . . . . . . . . . . . . . . . . 1.4 Euklidische Räume . . . . . . . . . . . . . . . 1.5 Halbräume . . . . . . . . . . . . . . . . . . . 1.6 Dualität zwischen Punkten und Hyperebenen 1.7 Eigenschaften konvexer Mengen . . . . . . . . 1.8 Konvexe Hüllen von Punktmengen . . . . . . 1.9 Bälle im Rd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Voronoi Diagramme & Delaunay Triangulierung 2.1 Berechnung von Delaunay Triangulierungen in der Ebene . . . . . . . . 2.1.1 Lawsons-Flip-Algorithmus . . . . . . . . . . . . . . . . . . . . . . 2.2 Konvexe Hülle in der Ebene R2 . . . . . . . . . . . . . . . . . . . . . . . 2.2.1 Graham Scan Algorithmus . . . . . . . . . . . . . . . . . . . . . 2.3 Berechnung von Voronoi-Diagrammen in der Ebene . . . . . . . . . . . . 2.3.1 Sweep Line Paradigma . . . . . . . . . . . . . . . . . . . . . . . . 2.4 Inkrementeller Algorithmus zur Berechnung der Delaunay-Triangulierung von P ⊂ R2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5 (Unendliche) Gleitkommazahlsysteme . . . . . . . . . . . . . . . . . . . 2.6 Gleitkommazahlapproximation von Geometrischen Prädikaten . . . . . . 2.7 Degeneriertheit - Symbolische Pertubierung . . . . . . . . . . . . . . . . 2.8 3D Delaunay-Triangulierung für gewichtete Punkte . . . . . . . . . . . . 3 Geometrisch modellieren 3.1 Crust-Algorithmus . . . . . . . . . . . . . . . . . 3.1.1 Korrektheitsbeweis für Crust Algorithmus 3.2 Flächenrekonstruktion . . . . . . . . . . . . . . . 3.2.1 (Konforme) Alpha Shapes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 9 10 10 10 12 12 14 15 16 . . . . . . 17 20 25 27 29 31 33 . . . . . 34 42 44 45 46 . . . . 57 58 62 66 70 4 Topologie (Homologie) 75 4.1 Homologietheorie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 4.2 Simplizale Homologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 4.3 Berechnung von Bettizahlen . . . . . . . . . . . . . . . . . . . . . . . . . . 82 4 Inhaltsverzeichnis 5 Meshing 89 5 Auflistung der Theoreme Sätze Satz 1.1 Kosinussatz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Satz 2.2 Lifted Circle Claim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Satz 2.4 Thales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Satz 2.5 Radons Theorem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 Definitionen und Festlegungen Definition 1.1 Affiner Unterraum . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Definition 1.2 Dimension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Definition 1.3 Affine Kombination von Punkten . . . . . . . . . . . . . . . . . . . 9 Definition 1.4 Affine Hülle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Definition 1.5 Affine Abhängigkeit . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Definition 1.6 Affine Abbildung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Definition 1.8 euklidische Norm . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Definition 1.9 Hyperebenen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Definition 1.10 offener Halbraum . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Definition 1.11 geschlossener Halbraum . . . . . . . . . . . . . . . . . . . . . . . . 12 Definition 1.12 Dualität . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Definition 1.15 Konvexkombination . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Definition 1.16 Bälle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Definition 2.1 Nicht-degeneriert . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Definition 2.2 Voronoi-Zelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Definition 2.3 Bisektor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 6 Inhaltsverzeichnis Definition 2.4 Voronoi-Face . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Definition 2.5 Voronoi-Diagramm . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Definition 2.6 Delaunay-Triangulierung . . . . . . . . . . . . . . . . . . . . . . . . 18 Definition 2.7 Voronoi-Delauny-Dualität . . . . . . . . . . . . . . . . . . . . . . . 18 Definition 2.8 Power-Diagramme . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Definition 2.9 Power-Zelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Definition 2.10 Power-Bisektor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Definition 2.11 Power-Faces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Definition 2.12 Power-Diagramm . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Definition 2.13 Umschreibender Ball eines Simplex . . . . . . . . . . . . . . . . . . 20 Definition 2.14 lokale Delaunay-Eigenschaft . . . . . . . . . . . . . . . . . . . . . . 20 Definition 2.17 Halbkanten-Datenstruktur . . . . . . . . . . . . . . . . . . . . . . . 29 Definition 2.19 Orthogonalität . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Definition 2.20 Orthogonalität zweier Sphären . . . . . . . . . . . . . . . . . . . . 49 Definition 2.21 Orthosphäre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Definition 2.22 Orthosphären Bedingung . . . . . . . . . . . . . . . . . . . . . . . 51 Definition 2.23 Polarität . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 Definition 2.24 Lokale Delaunay-Bedingung . . . . . . . . . . . . . . . . . . . . . . 52 Definition 3.1 Leeres Segment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Definition 3.2 korrekte Kante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Definition 3.3 mediale Achse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Definition 3.4 mediale Bälle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 Definition 3.5 ε-Sampling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 Definition 3.6 Homeomorphismus . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 Definition 3.7 Eingeschränkte Delaunay-Triangulierung . . . . . . . . . . . . . . . 66 Definition 3.8 Pol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 Definition 3.9 Co-Kegel/Cocone . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 Definition 3.10 Alpha Shape . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 Definition 3.11 Kritischer Delaunay-Simplex . . . . . . . . . . . . . . . . . . . . . 70 7 Inhaltsverzeichnis Definition 4.1 Topologischer Raum . . . . . . . . . . . . . . . . . . . . . . . . . . 75 Definition 4.2 Stetige Abbildung . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 Definition 4.3 Homeomorphismus . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 Definition 4.4 Homeomorph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 Definition 4.5 Homotopyäquivalenz . . . . . . . . . . . . . . . . . . . . . . . . . . 75 Definition 4.6 Homotopyäquivalent . . . . . . . . . . . . . . . . . . . . . . . . . . 76 Definition 4.7 Deformationsretrakt . . . . . . . . . . . . . . . . . . . . . . . . . . 76 Definition 4.8 Homotopie invariante Definition 4.9 k-Simplex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 . . . . . . . . . . . . . . . . . . . . . . . . . 76 Definition 4.10 Simplizialer Komplex . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Definition 4.11 Abelsche Gruppe . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Definition 4.12 Untergruppe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Definition 4.13 Ko-Menge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Definition 4.14 Quotient . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Definition 4.15 Gruppen Homomorphismus . . . . . . . . . . . . . . . . . . . . . . 78 Definition 4.16 Kern & Bild eines Homomorphismus . . . . . . . . . . . . . . . . . 78 Definition 4.17 Addition mit simplizialen Komplexen . . . . . . . . . . . . . . . . . 78 Definition 4.18 Randhomomorphismus . . . . . . . . . . . . . . . . . . . . . . . . . 78 Definition 4.19 Zyklen & Ränder . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 Definition 4.20 k-te Homologiegruppe . . . . . . . . . . . . . . . . . . . . . . . . . 79 Definition 4.21 Kettengruppe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 Definition 4.22 Randabbildung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 Definition 4.23 Zyklengruppe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 Definition 4.24 Randgruppen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 Definition 4.25 Homologiegruppen . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 Definition 4.26 Kettenkomplex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 Definition 4.27 Rang einer endlichen Gruppe . . . . . . . . . . . . . . . . . . . . . 81 Definition 4.28 k-Betti Zahl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 8 1 Grundlagen 1.1 Affine Geometrie Voraussetzung: Lineare Algebra im Rd Definition 1.1 (Affiner Unterraum) Eine Teilmenge nennt man affiner Unterraum, wenn entweder A = ∅ oder A ist ein „verschobener“ linearer Unterraum. Das heißt A = V + L, wobei L ein linearer Unterraum des Rd ist und v ∈ Rd ein Vektor. Beispiel 1.1 • Gerade in der Ebene • Gerade im Rd • Ebene im R3 Definition 1.2 (Dimension) dim A = −1 falls A = ∅ und dim L sonst (Dimension des linearen Unterraums). Definition 1.3 (Affine Kombination von Punkten) P Seien p1 , p2 , . . . , pn ∈ Rd , n ≥ 1 und λ1 , . . . , λn ∈ R mit ni=1 λi = 1 dann nennt man λ1 p1 + λ2 p2 + · · · + λn pn eine affine Kombination der Punkte pi . Definition 1.4 (Affine Hülle) Sei S ⊆ Rd . Dann nennt man aff(S) := {λ1 p1 + λ2 p2 + · · · + λn pn mit n ≥ 1, p1, . . . , pn ∈ S, λ1 , . . . , λn ∈ R n X λi = 1} i=1 affine Hülle von S. Eigenschaften Die affine Hülle ist die kleinste affine Unterraum, der S enthält. Beispiel 1.2 • affine Hülle von 2 Punkten pi 6= pj ∈ R3 ist die Gerade durch beide Punkte. • affine Hülle von 3 Punkten paarweise verschiedenen Punkten p1 , p2 und p3 ∈ R3 ist die Ebene durch alle drei Punkte 9 1 Grundlagen 1.2 Affine Abhängigkeiten/Unabhängigkeiten Definition 1.5 (Affine Abhängigkeit) Punkte p1 , . . . , pn ∈ Rd heißen affin abhängig, wenn es α1 , . . . , αn ∈ R gibt, so dass gilt: α1 p1 + α2 p2 + · · · + αn pn = 0 mit n X αi = 0 und mind. ein αi 6= ∅. i=1 Ansonsten heißen die Punkte affin unabhängig. Beispiel 1.3 • Zwei Punkte p1 und p2 ∈ R2 affin unabhängig, wenn die Gerade durch beide Punkte nicht durch den Ursprung geht. • drei Punkte auf einer Gerade sind affin abhängig. Bemerkung 1.1 p1 , . . . , pn sind affin abhängig (n ≥ 3) gdw. p2 − p1 , p3 − p1 , . . . , pn − p1 linear abhängig sind. 1.3 Affine Abbildung Definition 1.6 (Affine Abbildung) Eine affine Abbildung ist eine Abbildung f : Rd → Rk , die als Kombination von linearer Abbildung und Translation ausgedrückt werden kann, d. h. in Koordinatenschreibweise kann f als f (x) = Ax + b mit A ∈ Rk×d (k × d − Matrix), b ∈ Rk aufgeschrieben werden. 1.4 Euklidische Räume Rd Definition 1.7 Skalarprodukt v = (v1 , v2 , . . . , vd ) ∈ Rd und w = (w1 , w2 , . . . , wn ) ∈ Rd hv, wi := v T w = X = 1d vi wi i Eigenschaften • symmetrisch: hv, wi = hw, vi • bilinear: hαv + βu, wi = αhv, wi + βhu, wi und hv, αw + βui = αhv, wi + βhv, ui 10 1.4 Euklidische Räume • nichtnegativ: hv, vi ≥ 0, ∀v ∈ Rd und hv, vi = 0 gdw. v = 0 wegen dieser Eigenschaften induziert das Skalarprodukt eine Norm: Definition 1.8 (euklidische Norm) kvk := q hv, vi, v ∈ Rd Eigenschaften • kvk ≥ 0 und kvk = 0 gdw v = 0 • kλvk = |λ|kvk für λ ∈ R, v ∈ Rd • kv + wk ≤ kvk + kwk mitv, w ∈ Rd (Dreiecksungleichung) Cauchy-Schwarz-Ungleichung |hv, wi| ≤ kvk · kwk, ∀v, w ∈ Rd Winkel zwischen zwei Vektoren (kleiner Winkel) v, w ∈ Rd : cos(α) = hv, wi kvk · kwk Satz 1.1 (Kosinussatz) p, q, r ∈ Rd : kq − rk2 = kq − pk2 + kr − pk2 − 2hr − p, q − pi Definition 1.9 (Hyperebenen) Ein affiner Unterraum mit Codimension 1 im Rd . h := {x ∈ Rd |aT x = α für a ∈ Rd , α ∈ R} Beispiel 1.4 • Ebene im R3 = Hyperebene • Gerade im R2 ist Hyperebene Eigenschaften • Vektor a heißt Normalenvektor. Er steht senkrecht auch Hyperebene, d. h. ∀p, q ∈ h : ha, p − qi = 0 • Entfernung von h zum Ursprung = |α| kak • h ist invariant unter Skalierung der definierten Gleichung mit Skalar λ 6= 0 11 1 Grundlagen 1.5 Halbräume Definition 1.10 (offener Halbraum) Jede Hyperebene teilt den Raum Rd in drei Teile, die Hyperebene und die zwei offenen Halbräume: h+ := {x ∈ Rd |aT x > a} – positiv offener Halbraum h− := {x ∈ Rd |aT x < a} – negativ offener Halbraum Bemerkung 1.2 positiver und negativer Halbraum sind durch die Orientierung der Hyperebene bestimmt. Definition 1.11 (geschlossener Halbraum) h¯+ := {x ∈ Rd |aT x ≥ a} – positiv offener Halbraum h̄− := {x ∈ Rd |aT x ≤ a} – negativ offener Halbraum Konventionen: nicht-vertikale Hyperebene: Hyperebene mit ad 6= 0 heißt nicht-vertikal (Die letzte Komponente ist nicht ungleich 0) • h+ – Halbräume „über“ der Hyperebene • h− – Halbräume „unter“ der Hyperebene h = {x ∈ Rd |aT x = α} = {x ∈ Rd |(a1 , a2 , . . . , ad )T x = α}(mit ad 6= 0) = {x ∈ Rd |a1 x1 + a2 x2 + · · · + ad xd = α} 1 = {x ∈ Rd |xd = (a1 x1 + a2 x2 + · · · + ad−1 xd−1 − α)} ad d = {x ∈ R |xd = b1 x1 + b2 x2 + · · · + bd−1 xd−1 − β} = Graph einer affinen Abbildung Rd−1 → R 1.6 Dualität zwischen Punkten und Hyperebenen beliebiger Punkt aus Rd entspricht nicht-vertikale Hyperebene im Rd 12 1.6 Dualität zwischen Punkten und Hyperebenen Definition 1.12 (Dualität) Sei p = (p1 , p2 , . . . , pd ) ∈ Rd , dann ist p∗ = {x ∈ Rd |xd = d−1 X pi xi = pd } i=1 die duale Hyperebene zu p. Sei h = {x ∈ Rd |xd = Pd−1 i=1 bi xi = β}, dann ist h∗ = (b1 , b2 , . . . , bd−1 , β) der duale Punkt zu h. Eigenschaften (p∗ )∗ = p, (h∗ )∗ = h Beispiel 1.5 p = (1,2), q = (2,3), r = (3,4) 5 "data" f(x) 4 3 2 1 0 0 0.5 1 1.5 2 2.5 3 3.5 4 Abbildung 1.1: Die Punkte p = (1,2), q = (2,3), r = (3,4) p∗ = {x ∈ R2 |x2 = 1x1 − 2} q ∗ = {x ∈ R2 |x2 = 2x1 − 3} r∗ = {x ∈ R2 |x2 = 3x1 − 4} Die drei gerade schneiden sich bei Punkt (1, −1). Dessen duale Ebene ist genau die, die durch die drei Punkte geht. 13 1 Grundlagen 2 f1(x) f2(x) f3(x) 1 0 −1 −2 −3 −4 0 0.5 1 1.5 2 Abbildung 1.2: Die dualen Hyperebenen der Punkte p = (1,2), q = (2,3), r = (3,4) Lemma 1.1 Es gilt für alle p und alle nicht-vertikalen Hyperebenen h: p∈ + h h− h gdw h∗ = ∗ + (p ) (p∗ )− p∗ Lemma 1.2 Seien p, q und r ∈ R2 , dann sind folgende Aussagen äquivalent: • Die Punkte p,q und r sind colinear, d. h. liegen auf einer Gerade l • Die Geraden p∗ , q ∗ und r∗ schneiden sich in einem gemeinsamen Punkt l∗ oder sie sind alle parallel zueinander, falls l vertikal war. 1.7 Eigenschaften konvexer Mengen Definition 1.13 Konvexe Menge: Eine Menge K ⊆ Rd heißt konvex, falls für alle p, q ∈ K und alle λ ∈ [0,1] gilt: λp + (1 − λ)q ∈ K Geometrische Interpretation: Wenn zwei Punkte in der Menge liegen, dann muss auch das verbindende Geradensegment in der Menge liegen. 14 1.8 Konvexe Hüllen von Punktmengen Beispiel 1.6 Kreis ist konvex, Banane nicht Fakt Der Durchschnitt konvexer Mengen ist wieder Konvex. Definition 1.14 Sei X ⊆ Rd eine Teilmenge. Die konvexe Hülle conv(X) von X ist definiert als der Durchschnitt aller konvexer Mengen, die X enthalten, d. h. conv(X) := \ C C⊃X C konvex Beispiel 1.7 Das kleinste konvexe Objekt, dass X enthält. Definition 1.15 (Konvexkombination) Sei p1 , . . . , pn ∈ Rd , dann heißt λ1 p1 + λ2 p2 + · · · + λd pd mit λi ≥ 0, n X λi = 1 i=1 eine Konvexkombination von p1 , . . . , pd . Beispiel 1.8 Jede Kombination liegt innerhalb der von den Punkten aufgespannten konvexen Hülle. Lemma 1.3 Sei X ⊆ Rd . Die konvexe Hülle stimmt mit der Menge aller endlichen Konvexkombinationen von Punkten von X überein, d. h. conv(x) = { X λp p|S ⊆ X ist endlich und p∈S X λp = 1, λp ≥ 0∀p ∈ S} p∈S 1.8 Konvexe Hüllen von Punktmengen Lemma 1.4 Sei X ∈ Rd endlich. Dann gilt: conv(x) = \ H H, so dass X⊆H,H Halbraum Theorem 1.1 (Separationstheorem) Seien C und D ∈ Rd zwei konvexe Mengen, mit C ∩D = ∅. Dann existiert eine Hyperebene h = {x ∈ Rd |aT x = α}, die beide Mengen schwach separiert, d. h. C ⊆ h̄+ und D ⊆ h̄− 15 1 Grundlagen Fakt Wenn C und D abgeschlossen sind und wenigstens eine Menge beschränkt ist, so können beide Mengen stark separiert werden, d. h. C ⊆ h+ und D ⊆ h− . Lemma 1.5 (Radon) Sei S ⊆ Rd mit |S| ≥ d + 2. Dann existieren zwei disjunkte Teilmengen A und B ⊆ S, so dass: conv(A) ∩ conv(B) 6= ∅ Beispiel 1.9 Wenn im R2 4 Punkte gegeben sind, so können diese so in zwei Teilmengen unterteilt werden, dass der Schnitt der konvexen Hüllen nicht leer ist. Theorem 1.2 (Caratheodory) Falls S ⊆ Rd , p ∈ conv(S) gilt, so existiert eine Teilmenge A ⊆ S mit |A| ≤ d + 1, so dass p ∈ conv(A). Theorem 1.3 (Helly) Seien C1 , . . . , Cn ∈ Rd konvexe Teilmengen und n ≥ d + 1. Wenn sich alle d + 1-Tupel dieser konvexen Mengen einen nichtleeren Durchschnitt haben, so ist der Durchschnitt aller dieser Mengen nichtleer, d. h. n \ Ci 6= ∅ i=1 1.9 Bälle im Rd Definition 1.16 (Bälle) Sei c ∈ Rd , r ∈ R≥0 . Dann heißt die Menge 16 Bd (c, r) := {x ∈ Rd |kx − ck ≤ r} 2 Voronoi Diagramme & Delaunay Triangulierung P ⊂ Rd ist endlich Definition 2.1 (Nicht-degeneriert) • Die affine Hülle von Punkten aus P ist homeomorph zu, Rk−1 . • Keine d + 2 Punkte liegen auf gemeinsamer Sphäre Bemerkung 2.1 Degenerierte Fälle sind sehr instabil. Im Augenblich nehmen wir immer an, dass P nicht-degeneriert ist. Später wird die Degeneriertheit explizit behandelt. Definition 2.2 (Voronoi-Zelle) p∈P Vp = {x ∈ Rd |kx − pk ≤ kx − qk ∀q ∈ P } Definition 2.3 (Bisektor) p, q ∈ P Bp,q = {x ∈ Rd |ky − pk = kx − qk} Folgerung x ∈ Bp,q ⇔ ky − pk = kx − qk ⇔ ky − pk2 = kx − qk2 ⇔ kxk2 − 2xt p + kpk2 = kxk2 − 2xT q + kqk2 1 ⇔ (q − p)T x + (kpk2 − kqk2 ) = 0 2 Falls p 6= q: Ursprungsvermeidende Hyperebene Fakt • Vp ist der Schnitt von Halbräumen mit Rand Bp,q . • Vp ist konvex. 17 2 Voronoi Diagramme & Delaunay Triangulierung Abbildung 2.1: Voronoi-Diagramm Definition 2.4 (Voronoi-Face) Ein k-dimensionales Voronoi-Face ist der Schnitt von d + 1 − k Voronoi-Zellen, falls dieser Schnitt nicht leer ist. Folgerung Alle Punkte in einem k-dimensionalen Voronoi-Face (Voronoi k-Face) sind gleich abständig zu d + 1 − k Punkten in p. Definition 2.5 (Voronoi-Diagramm) Zellkomplex, der von den Voronoi-Faces gebildet wird. Definition 2.6 (Delaunay-Triangulierung) D(P ) = {σ = conv(T )| \ Vp 6= ∅} p∈T ⊆P Definition 2.7 (Voronoi-Delauny-Dualität) Wenn k + 1 Voronoi Zellen einen nicht-leeren gemeinsamem Schnitt haben, definieren sie • k-dimensionalen Delaunay-Simplex • (d − k)-dimensionales Voronoi-Face. Delaunay-Simplex und Voronoi-Face sind dual zueinander. 18 Abbildung 2.2: Delaunay-Triangulierung und ihr duales Voronoi-Diagramm In der Ebene R2 : Delaunay Vertex Kante Dreieck Voronoi Zelle Kante Voronoi-Knoten/Vertex Definition 2.8 (Power-Diagramme) (p, wp) ∈ P ⊆ Rd × R πp : Rd → R, x 7→ kx − pk2 − wp p ist Punkt und wp sein Gewicht. Verallgemeinerung von Voronoi-Diagrammen. Bild Falls wp > 0 folgende Interpretation: Definition 2.9 (Power-Zelle) (p, wp ) ∈ P Vp = {x ∈ Rd |πp (x) ≤ πq (x) ∀(q, wq ) ∈ P } Definition 2.10 (Power-Bisektor) (p, wp ), (q, wq ) ∈ P Bp,q = {x ∈ Rd |πp (x) = πq (x)} Folgerung x ∈ B( p, q) ⇔ πp (x) = πq (x) ⇔ kx − pk2 − wp = kx − qk2 − wq ⇔ kxk2 − 2xT p + p2 − wp = kxk2 − 2xT q + kqk2 − wq 1 ⇔ (q − p)T x + (kpk2 − kqk2 − wp + wq ) = 0 2 Das ist für p 6= q eine Ursprungsvermeidende Hyperebene. 19 2 Voronoi Diagramme & Delaunay Triangulierung Bemerkung 2.2 Mögliche Anwendung von Power Diagrammen: P = {(p, wp )} Menge von Atomen mit Zentrum p und Van der Waals-Radius wp . Definition 2.11 (Power-Faces) Genauso wie Voronoi-Faces Definition 2.12 (Power-Diagramm) Komplex der von den Power Faces gebildet wird. Gewichtete Delaunay Triaungulierung dual zum Power Diagramm (genauso wie Delaunay dual zu Voronoi) 2.1 Berechnung von Delaunay Triangulierungen in der Ebene Definition 2.13 (Umschreibender Ball eines Simplex) Ball der alle Knoten des Simplex auf seinem Rand hat. Beobachtung Der umschreibende Ball für einen d-Simplex im Rd ist eindeutig. Definition 2.14 (lokale Delaunay-Eigenschaft) Sei T eine Triangulierung von P , wobei P eine ungewichtete Punktemenge im R2 sei. T hat die lokale Delaunay-Eigenschaft falls jede Kante der Triangulierung entweder 1. eine inzidentes Dreieck hat. (D. h. Kante ist auf dem Rand der komplexen Hülle von T ) 2. Kante hat 2 inzidente Dreiecke abc und bcd hat, so dass der umschreibende Ball von abc den Punkt d nicht enthält. Satz 2.1 Wenn in einer Triangulierung T von P jede Kante die lokale Delaunay-Eigenschaft hat, dann ist T eine Delaunay-Triangulierung. Folgerung Algorithmus der versucht, die lokale Delaunay-Eigenschaft herzustellen, indem er verletzende Kanten flipt. Beweis: Idee: Für jedes Dreieck abc in der Triangulierung gilt: Die umschließende Kreisscheibe enthält keinen Punkt von P im Innern. Voronoi-Vertex: 1. Schnitt der Voronoi-Zellen von a, b, c nichtleer 20 2.1 Berechnung von Delaunay Triangulierungen in der Ebene Abbildung 2.3: lokale Delaunay-Eigenschaft 2. abc (Konvexe Hülle von a, b und c) ist Delaunay Sei p ∈ P \{a, b, c} und q beliebig in Umkreisscheibe. Das Liniensegment qp schneidet Dreiecke t1 , t2 , . . . , tk der Triangulierung. Dazu folge von gewichteten Punkten S1 , S2 , . . . , Sk mit Gewichten w1 , w2 , . . . , wk wi = Radius der Umkreisscheibe von ti Damit ergeben sich eine Folge von Power-Abständen Π1 (p), . . . , Πk () wo kommen die Sks her? Beobachtung 1. Der Power-Abstand ist • negativ, falls innerhalb der Kreisscheibe • 0, falls auf Rand der Kreisscheibe • positiv, falls außerhalb der Kreisscheibe 2. auf der geraden der gemeinsamen Kante von ti und ti+1 gilt Πi = Πi+1 . (Wegen Πi (x) = Πi+1 (x) = Πi (y) = Πi+1 (y) = 0) Außerdem gilt Πi < Πi+1 links vom Power-Bisektor bzw. Πi < Πi+1 rechts vom Power-Bisektor. 21 2 Voronoi Diagramme & Delaunay Triangulierung 3. p ist Knoten von tk . Daraus folgt Πk (p) = 0 → Πk+1 (p) > 0 → Π1 (p) > 0. Das bedeutet p ∈ / Umkreisscheibe von t1 = abc wieso folgt das? Aus Punkt 3 der Beobachtung folgt also die Behauptung. Lawson-Flip Wann immer bc nicht die lokale Delaunay-Eigenschft hat, dann “flippen” der Kante zu ad. d. h. in Triangulierung tauschen wir die Dreiecke abc und bcd aus durch abd und adc. Der Lawson-Flip-Algorithmus muss entscheiden, ob bc die lokale Delaunay-Eigenschaft hat, d. h. ob d in der Umkreisscheibe von abc enthalten ist. Dazu benötigt man den IN_CIRCLE_TEST. Satz 2.2 (Lifted Circle Claim) Dazu Hochhebungsabbildung: h : R2 → R3 (x, y) 7→ (x, y, x2 + y 2 ) Seien p, q, r ∈ R2 . 22 2.1 Berechnung von Delaunay Triangulierungen in der Ebene s ∈ R2 ist 1. auf dem Rand der umschließenden Kreisscheibe genau dann, wenn h(s) ∈ aff(h(p), h(q), h(r)) gilt 2. Innerhalb der Kreisscheibe, falls h(s) Vertikal unterhalb von aff(h(p), h(q), h(r)) liegt. 3. Außerhalb der Kreisscheibe sonst Beweis: Spezialfall: Der Mittelpunkt der Kreisscheibe von p, q und r ist Ursprung. Beobachtung 1. dritte Komponente des gelifteten Punktes ist der quadratische Abstand des Punktes vom Ursprung 2. p, q und r haben alle den gleichen Abstand zum Ursprung → aff(h(p), h(q), h(r)) ist Ebene parallel zur x, y-Ebene, die das Parabol in einem Kreis schneidet Sei s Punkt auf dem Rand der umschließenden Kreisscheibe von p, q und r sx px qx rx s p q r y y y y = λ 2 + µ 2 + ρ 2 2 2 2 2 2 sx + sy px + py qx + qy rx + ry 1 1 1 1 λ, µ, ρ ∈ R Verwendung von Homogenen Koordinaten um die Bedingung λ + µ + ρ = 1 sicherzustellen. Allgemeiner Fall: Der mittelpunkt der Kreisscheibe von p,q und r ist t 6= 0. Translation der Konfiguration mit t. sx + tx px + tx qx + t x sy + ty py + ty qy + t y =λ + µ 2 2 2 2 2 2 (sx + tx ) + (sy + ty ) (px + tx ) + (py + ty ) (qx + tx ) + (qy + ty ) 1 1 1 rx + tx ry + ty +ρ (rx + tx )2 + (ry + ty )2 1 Nachrechnen der dritten Komponente: 2sx tx + t2x + 2sy ty + t2y =λ(2px tx + t2x + 2py ty + t2y ) + µ(2qx tx + t2x + 2qy ty + t2y )+ ρ(2rx tx + t2x + 2ry ty + t2y ) 23 2 Voronoi Diagramme & Delaunay Triangulierung daraus folgt sx tx + sy ty =λ(px tx + py ty ) + µ(qx tx + qy ty ) + ρ(rx tx + ry ty ) =tx (λpx + µqx + ρrx ) + ty (λpy + µqy + ρry ) =tx sx + ty sy h(s + t) ∈ aff(h(p + t), h(q + t), h(r + t)) Daraus folgt die Behauptung, da s beliebig auf Rand gewählt war. Berechnung des IN_CIRCLE-Prädikats durch die Determinante: 1 p x 1 q x Γ = 1 rx 1 s x py p2x + p2y qy qx2 + qy2 ry rx2 + ry2 sy s2x + s2y Determinante verschwindet genau dann, wenn s im Rand der umschließenden Kreisscheibe von p,q und r ist. (Die Determinante ist 0, wenn die Punkte affin abhängig sind.) 1 p x ∆ = 1 qx 1 rx py qy ry Mit der Matrix ∆ heben sich Vorzeichenwechsel der Determinante bei Permutation gegenseitig auf. Lemma 2.1 Ein Punkt s ∈ R2 liegt im Inneren der umschließenden Kreisscheibe von p, q und r genau dann, wenn das Produkt aus ∆ und Γ negativ ist. (∆Γ < 0) Beweis: Spezialfall: p = (0,0), q = (1,0), r = (0,1) und s = ( 41 , 14 ) Damit ist ∆ = 1 und Γ < 0 Idee der stetige Bewegung: Führe p, q, s und r stetig von Situation in Spezialfall über, wobei degenerierte Situationen vermieden werden müssen. Dies funktioniert wegen der Stetigkeit der Determinante. 24 2.1 Berechnung von Delaunay Triangulierungen in der Ebene 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Input: T Triangulierung Output: Delaunay-Triangulierung foreach Kante e ∈ T do Markiere e PUSH e auf den Stack s end while S 6= ∅ do (b, c) = S.pop() entferne Markierung von (b, c) if (b, c) hat nicht die lokale Delaunay-Eigenschaft then FLIP (b, c) zu (a, d) for (x, y) ∈ {ac, cd, db, ba} do if (x, y) nicht markiert ist then markiere (x, y) S.push(x,y) end end end end Algorithm 2.1: Der Lawson-Flip-Algorithmus 2.1.1 Lawsons-Flip-Algorithmus Idee: Wenn immer eine Kante bc nicht die lokale Delaunay-Eigenschaft hat, dann „Flip“ zu ab Satz 2.3 Der Lawson-Flip-Algorithmus terminiert Beweis: Beobachtung Bei jedem Flip bleibt die Anzahl der Dreiecke in der Triangulierung die gleiche. Definition 2.15 Gewicht von Triangulierung T (= w(T )) ist der Vektor aller Winkel, die in T auftreten, aufsteigend geordnet. T < T 0 falls w(T ) < w(T 0 ) (Lexikographischer Vergleich), w(T ) der Winkelvector Behauptung w(t) < w(T 0 ) falls T 0 aus T durch einen Flip entsteht. w(T ) = α1 + α2 , β1 , β2 , γ1 + γ2 , δ1 , δ2 w(T 0 ) = α1 , α2 , β1 + β2 , γ1 , γ2 , δ1 + δ2 25 2 Voronoi Diagramme & Delaunay Triangulierung Um zu zeigen w(T ) < w(T 0 ) benutzen wir den Satz von Thales. versteh das nicht.. evtl. Fehler beim abschreiben? αe > αd = αc > αf Kante: qc : β1 < δ2 bc : γ2 < δ1 dc : β2 < α1 bd : γ1 < α2 => β1 , β2 < β1 + β2 γ2 < δ1 β1 < δ2 γ1 , γ2 < γ1 + γ2 γ1 < α2 β2 < α1 D. h. für jeden Winkel aus w(T ) gibt es einen größeren n w(T 0 ). Da die Anzahl der Triangulierungen endlich und das Maß immer ansteigend ist folgt daraus, dass der Algorithmus terminiert. Satz 2.4 (Thales) Der Mittelpunktswinkel ist doppelt so groß wie der Umfangswinkel. Beweis: Zuerst der einfache Basisfall bei dem der Mittelpunkt auf der Linie liegt: Da die Dreiecke gleichschenklig sind, gilt für das Dreieck amc: 2x + Π − 2α = Π. Daraus folgt x = α. Der Fall, dass der Mittelpunkt im Dreieck enthalten ist: γ + β = α 26 2.2 Konvexe Hülle in der Ebene R2 Der Fall, das der Mittelpunkt nicht enthalten ist: β + x = 2β + 2γ. Daraus folgt wieder x = γ. Der Trick in beiden Fällen: Betrachte Diagonale durch Punkt m und argumentiere danach mit dem Basisfall. 2.2 Konvexe Hülle in der Ebene R2 P ⊂ R2 : Konvexe Hülle ist der Schnitt aller konvexen Mengen, die P enthalten. Definition 2.16 Extrempunkte sind Punkte aus P auf dem Rand der konvexen Hülle. Das algorithmische Ziel ist das Aufzählen der Extrempunkte entlang des Randes der Konvexen Hülle von P. Dazu benötigen wir das Prädikat IS_LEFT_OF(p, q, r) das uns sagt, ob r links von (auf, rechts) der geraden durch p und q liegt. Kurze Kostenanalyse: Finden des lexik. kleinsten Elements + h ∗ (n − 2) ∗ IS_LEFT_OF h ist die Anzahl der Extrempunkte. Das bedeutet der Jarvis-Wrap-Algorithmus ist OutputSensitiv, d. h. Laufzeit hängt von Anzahl der Extrempunkte ab. 27 2 Voronoi Diagramme & Delaunay Triangulierung Abbildung 2.4: IS_LEFT_OF-Prädikat 1 2 3 4 5 6 7 8 9 10 11 12 Input: P ⊂ R2 Output: Extrempunkte auf dem Rand der konvexen Hülle p := Lexikographisch kleinster Punk in P p0 := p repeat q := beliebiger Punkt in P \ {p} forall r ∈ P \ {p, q} do if IS_LEFT_OF(p, q, r) then q := r end end Ausgabe von q p := q until p = p0 Algorithm 2.2: Der Jarvis-Wrap-Algorithmus 28 2.2 Konvexe Hülle in der Ebene R2 Implementierung des IS_LEFT_OF-Prädikats Falls r ∈ aff(p, q): qx px rx ry = λ py + µ qy 1 1 1 daraus folgt: p,q und r sind linear abhängig. Das bedeutet, die folgende Determinante ist 0. 1 p x py ∆ = 1 qx qy = 0 1 rx ry Aus dem stetigen Bewegungs-Argument (z. B. mit Punkten p = (1,0), q = (0,1) und r = (0,0)) folgt: r ist links von der affinen Hülle, falls ∆ > 0. Argument folgt aus der Stetigkeit der Determinante. 2.2.1 Graham Scan Algorithmus Halbkanten-Datenstruktur: Kante zwischen p und q wird gespeichert als zwei Halbkanten. Definition 2.17 (Halbkanten-Datenstruktur) Jede Kante besteht aus zwei Einzelkanten. Jede Einzelkante erhält previous und next. Die Halbkantendatenstruktur eigent sich für die Darstellung planarer Graphen. 1 2 3 4 Input: P ⊂ R2 , P = {p1 , p2 , . . . , pk } Output: Triangulierung und konvexen Hülle Sortiere {p1 , . . . , pk }lexikographisch verbinde alle pi pi+1 mit Kanten berechne untere konvexe Hülle LowerHull(p) berechne obere konvexe Hülle UpperHull(p) Algorithm 2.3: Der Graham-Scan-Algorithmus Lower Hull(P), |P | = n, P ⊂ R2 Die Laufzeit ist O(n log n), da am Anfang die Punkte sortiert werden müssen. Untere Schranke: Konvexe Hülle würde die Zahlen a1 , . . . , an sortieren. Damit ist die untere Schranke Ω(n log n) wenn n Punkte auf der konvexen Hülle liegen. 29 2 Voronoi Diagramme & Delaunay Triangulierung Abbildung 2.5: Halbkanten-Datenstruktur 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 a : a[0, . . . , n] Array mit n + 1 Elementen a[0] := p1 for i = 1 TO n do a[i] := pi end i := 1 while i < LEN GT H(q) − 1 do if IS_LEF T _OF (a[i], a[i + 2], a[i + 1]) then Remove(a,i+1) i := i − 1 else i := i + 1 end end for i = 1 TO Length(a) do Output a[i] end Algorithm 2.4: LowerHull(P ), |P | = n, P ⊂ R2 30 2.3 Berechnung von Voronoi-Diagrammen in der Ebene 2 drehe Reihenfolge von p1 , . . . , pk um LowerHull(p) Algorithm 2.5: UpperHull(P ) 1 Input: a1 , . . . , an ∈ R ≥ 0; a ≥ 0 Output: Zahlen in sortierter Reihenfolge -> Ω(n log n) konstruiere Punkte pi := (ai , a2i ) berechne die Konvexe Hülle Algorithm 2.6: Sortieren mit konvexen Hüllen 1 2 2.3 Berechnung von Voronoi-Diagrammen in der Ebene Komplexität eines Voronoi-Diagramms in der Ebene: Lemma 2.2 Wenn kpk = n ≥ 3 ist, so gibt es höchstens 2n−5 Voronoiknoten und 3n−6 Voronoikanten. (in der Ebene) Beweis: Eulers Formel für planare Graphen: mkn − mka + mF = 2 hier (unendlichen Knoten einfügen und alle Knoten auf der konvexen Hülle damit verbinden.): (nKn + 1) − nKa + n = 2 Summe aller Knotengrade: 2 · nKa ≥ 3(nKn + 1) , da jeder Knoten mindestens Grad 3 hat. daraus folgt: 3 (nKn + 1) + n = 2 + nKa ≥ 2 + (nKn + 1) 2 1 n ≥ 2 + (nKn + 1) 2 2n − 5 ≥ nKn Analog folgt 3n − 6 ≥ nKa 31 2 Voronoi Diagramme & Delaunay Triangulierung Abbildung 2.6: sweep line Abbildung 2.7: beach line 32 2.3 Berechnung von Voronoi-Diagrammen in der Ebene Abbildung 2.8: Punkt-Event 2.3.1 Sweep Line Paradigma 1. Punkt-Event: Sweepline trifft auf einen Punkt aus P . a) Ein neuer Parabelbogen kommt zur beach line hinzu b) Neue Voronoikanten werden in ihrem Verlauf beschrieben Daraus folgt: Es gibt maximal 2n − 1 Parabelbogen auf beachline. 2. Kreis-Event: In dem Moment, in dem a0 verschwindet, gehen alle drei Parabelbögen a0 , a00 und a000 durch einen gemeinsamen Punkt q. Dieser ist ein neuer Knoten im Voronoi-Diagramm, da der offene Kreis K mit Mittelpunkt q leer ist. Lemma 2.3 Ein neuer Parabelpunkt kann auf der beach line nur durch ein Punkt-Event entstehen. Lemma 2.4 Ein Parabelbogen kann von der beach line nur durch ein Kreis-Event verschwinden. 1. Datenstrukturen für das schon konstruierte Voronoi-Diagramm • Halbkantendatenstruktur 2. Datenstruktur für die beach line • ausbalancierten Binärbaum, wobei die Blätter die Parabelbögen darstellen • Schnittpunkte benachbarter Parabelbögen können durch interne Knoten dargestellt werden 3. Datenstruktur für die Events • Prioritätswarteschlange • füge am Anfang alle Punktevents ein. • füge Kreis-Events hinzu, sobald klar ist, wann sie stattfinden (ist Berechenbar bei Punkt-Event) 33 2 Voronoi Diagramme & Delaunay Triangulierung Bemerkung 2.3 Laufzeit pro Punktevent: log n Laufzeit pro Kreisevent: konstante Zeit Insgesamt: O(n log n) 2.4 Inkrementeller Algorithmus zur Berechnung der Delaunay-Triangulierung von P ⊂ R2 P = {p1 , . . . , pn }, S1 = {p1 }, Sn = {p1, . . . , pn } = P, Pi = {1, . . . , pi } Seien Di = D(Si ) die Delaunay-Triangulierung von Si Annahme: x, y, z ∈ R2 mit {x, y, z} ∩ P = ∅ , so dass P ⊂ CONV{x, y, z} und Radius der umschließenden Kreisscheibe von xyz >> max{kpi − pj k|pi , pj ∈ P }∀i = 1, . . . , n. D0 = D(x, y, z) Delaunay-Triangulierung von x,y,z. 1. Einfügen in Dreieck, dass p2 enthält 2. „Splitten“ des Dreiecks 3. Herstellen der lokalen Delaunay-Eigenschaft für alle Kanten 1 2 3 4 5 6 7 Input: P ⊂ R2 Output: Delaunay-Triangulierung for i=1 TO n do FIND σi−1 IN Di−1 WITH pi ∈ σi−1 ADD pi by splitting σi−1 while ∃ Edge bc WITHOUT „lokale Delaunay-Eigenschaft“ do Flip bc to ad end end Algorithm 2.7: Inkremententeller Algorithmus für Delaunay-Triangulierung Der Algorithmus ist in 2 Teilprobleme unterteilt: Das Lokalisierungsproblem in Zeile 2 und das Update-Problem in Zeile 3-6. Das Update besteht aus einer Split-Operation (genannt „1-3-Flip“) und mehreren Flip-Operationen (genannt „2-2-Flip“). 34 2.4 Inkrementeller Algorithmus zur Berechnung der Delaunay-Triangulierung von P ⊂ R2 Abbildung 2.9: D0 , D1 und D2 Anzahl von Flips im Verlauf des Algorithmus Lemma 2.5 Sei σ ∈ Di ∈ / Di−1 , dann hat σ den Punkt pi als einen seiner Knoten. Beweis: Da σ Delaunay-Dreieck enthält die Umkreisscheibe keinen Punkt von Si im Innern. Da Si−1 ⊂ Si gilt das gleiche für Si−1 , d. h. falls pi kein Knoten von σ ist, dann σ ∈ Di−1 . Daraus folgt: pi Knoten von σ. Definition 2.18 • Sei p Knoten von Triangulierung T . Der Stern (Star) von p sind alle Dreiecke in T , die inzidient sind zu p. • Der Link von P sind alle Kanten im Stern von p, die nicht zu p inzident sind. 1. Nur die Dreiecke im Stern von pi können durch Flip-Operationen beim einfügen von pi in Di−1 entstanden sein. Die Anzahl der Flip-Operationen ist ≤ 12 GRAD(pi ), wobei GRAD(pi ) = die Anzahl der Kanten inzident zu pi in Di ist. Jeder Flip erzeugt ein neues Dreieck inzident zu pi 2. Nach jeder Operation müssen wir immer nur die noch nicht geprüften Kanten im Link von pi auf die lokale Delaunay-Eigenschaft prüfen. Beispiel 2.1 Kaskadierender Flip, d. h. es reicht nicht nur die Kanten des Dreiecks in das pi eingefügt wurde auf die lokale Delaunay-Eigenschaft zu prüfen. GRAD(pi ) ≤ i − 1, d. h. höchstens i−1 2 Flips beim Einfügen von pi . Faustregel und Trick: Wenn immer die Auswahl in einem Algorithmus beliebig ist, dann treffe die Entscheidung zufällig. In diesem Fall bedeutet das, dass wir die Reihenfolge der Punkte p1 , . . . , pn zufällig wählen. Jetzt müssen nur noch die erwartete Anzahl von Flip-Operationen beim Einfügen von pi bestimmt werden. 35 2 Voronoi Diagramme & Delaunay Triangulierung Abbildung 2.10: kaskadierender Flip Beobachtung 1. Bei zufälliger (gleichverteilt) Einfügereihenfolge hat jeder Punkt die gleiche Wahrscheinlichkeit als letzter eingefügt zu werden. 2. Gesamtanzahl von Flips über alle Einfügereihenfolgen von i Punkten: i X GRADi (pj ) j=1 Wobei GRADi (pj ) der Knotengrad von pj in Di ist. 3. j=1 GRADi (pj ) Pi = 2 # Kanten in Di 4. Für die Anzahl der Kanten in Di gilt die Eulerformel: Anzahl der Knoten v − Anzahl der Kanten e + Anzahl der Dreiecke f = 2 Für Delaunay-Triangulierungen gilt außerdem folgendes: 3f = 2(e − h) + h = 2e − h, h ist die Anzahl der Kanten auf Rand von Di Daraus folgt: 1 2 f = e− h 3 3 Durch einsetzen in die Euler-Formel erhält man nun 2 1 v−e+ e− h=2 3 3 Daraus folgt: Aus 1-4 folgt: e = 3v − h − 6 1 Gesamtanzahl von Flips ≤ (2 · 3i − 9) ≤ 3i 2 Daraus folgt die durchschnittliche Anzahl von Flips ≤ 3. 36 2.4 Inkrementeller Algorithmus zur Berechnung der Delaunay-Triangulierung von P ⊂ R2 Abbildung 2.11: Delaunay-Graph beim Flip Abbildung 2.12: Delaunay-Graph beim Split Aufwand für das Punktlokalisierungsproblem Datenstruktur für die Punktlokalisierung ist der Delaunay-Graph: Gerichteter, azyklischer Graph. Abgeleitet aus Split und Flip. Knoten des Graphen sind alle Dreiecke, die im Verlauf des inkrementellen Algorithmus auftauchen. Bemerkung 2.4 Beweis der Eulerformel: v − e + f = 2 1. 1-Skelett der Delaunay-Triangulierung. (D. h. der planare Graph der DelaunayKanten und Vertices.) 2. 1-Skelett enthält minimalen Spannbaum von P . Für den Spannbaum gilt: v = |p| = n e=n−1 f =1 Das bedeutet für diesen Fall gilt die Eulerformel. Induktion: Durch Einfügen von Delaunay-Kanten in den Spannbaum gilt: v →v+1 f → f + 1 , weil jede neue Kante ein Gebiet teilt 37 2 Voronoi Diagramme & Delaunay Triangulierung v→v Damit gilt die Eulerformel. Randomisierte Analyse: Sei p1 , . . . , pn zufälige Reihenfolge der Punke in P . D0 , . . . , Dn folge von DelaunayTriangulierungen. D0 = xyz Großes Dreieck, das alle Punkte in P enthält. Di entsteht durch Di−1 durch 1. split-Operation: σ ∈ Di−1 das Dreieck in Delaunay-Triangulierung von p1 , . . . , pi−1 , das P enthält. (1-3-Flip) 2. Flip-Operationen: 2-2-Flip Abbildung 2.13: 2-2-Flip Punktlokalisation durch gerichtete, nicht-zyklische Graphen 38 2.4 Inkrementeller Algorithmus zur Berechnung der Delaunay-Triangulierung von P ⊂ R2 Abbildung 2.14: 1-3-Flip 39 2 Voronoi Diagramme & Delaunay Triangulierung 1. Erwartete Größe, des Graphen. 1 + |{z} Dreieck 3n |{z} + |3 ∗{z2n} Einfügen von n Punkten, Jeder Flip erzeugt 2 neue also n Split-Operationen, Dreiecke, Pro Runde erwarjeder Split erzeugt 3 neue tet drei Flips, n Punkte Dreiecke D. h. Punktlokalisierungsdatenstruktur braucht Speicher O(n) 2. Erwartete Laufzeit Im Schritt i einfügen von pi . D. h. wir suchen σ ∈ Di−1 mit pi ∈ σi . Für Suche starten wir in xyz und gehen dann zu Kind, das pi enthält. IN_TRIANGLE Prädikat: pi ∈ abc falls pi auf gleicher Seite von aff(a, b) wie c, von aff(b, c) wie a, von aff(c, a) wie b. Azyklische Graph zerfällt in Schichten. Eine Schicht für jede Runde. Betrachte jte Schicht 0 < j < i − 2. Auf dieser Schicht sind Dreiecke von Dj gespeichert. Seien Gj die Dreiecke in Dj , die beim Einfügen von pj+1 zerstört werden. Seien Hj die Dreiecke in Dj , die beim Einfügen von pi in Dj zerstört werden. Beobachtung Falls Gj ∩ Hj = ∅, dann ist σj+1 = σj , wobei σj ∈ Dj , σj+1 ∈ Dj+1 die Dreiecke sind, die pi enthalten. Sei Xj = Gj ∩ Hj , der Aufwand von σj nach σj+1 zu gehen ist höchstens proportional zu |Xj |. (Durchlaufen von Dreiecken, die durch Flip-Operationen erzeugt werden.) Wir müssen |Xj | abschätzen. Sei D̂j die Delaunay-Triangulierung von p1 , p2 , . . . , pj , pi . Seien Zj die Dreiecke in D̂j , die durch Einfügen von pj+1 zerstört werden. Symbolische Darstellung: Seien Yj die Dreiecke inzident zu pi , die beim Einfügen von pj+1 in D̂j zerstört werden Xj = Hj (Zj Yj ) |Xj | = |Hj | − (|Zj | − |Yj |) 40 2.4 Inkrementeller Algorithmus zur Berechnung der Delaunay-Triangulierung von P ⊂ R2 Abbildung 2.15: Symbolische Darstellung der Variablen Beachte: Yj ⊆ Zj und Zj Yj ⊆ Hj Erwarteter Suchaufwand ist: E[ i−2 X |Xj |] = i−2 X j=1 j=1 E[|Xj |] = i−2 X E[|Hj |] − j=1 i−2 X E[|Zj |] + i−2 X E[|Yj |] j=1 j=1 Hj : Anzahl der zerstörten Dreiecke beim Einfügen von zufälligen Punkt in die DelaunayTriangulierung von j Punkten. Zj : Anzahl der zerstörten Dreiecke beim Einfügen eines zufälligen Punktes in die DelaunayTriangulierung von j + 1 Punkten. E[|Hj+1 |] = E[|Zj |] E[ i−2 X |Xj |] = E[|H0 |] − E[|Hi−1 |] + j=1 E[|H0 |] = 3, E[|Hi−1 |] = 4 => E[ i−2 X E[|Yj |] j=1 i−2 X |Xj |] ≤ j=1 i−2 X E[|Yj |] j=1 Es bleibt E[|Yj |] zu bestimmen. Dazu: Erwartete Anzahl zerstörter Dreiecke beim Einfügen von pj+1 in D̂j : 1 (Split) + 3 (Flips) = 4 In Yj interessieren uns nur Dreiecke in D̂j , die inzident zu pi sind. Die Wahrscheinlichkeit 3 für ein Dreieck in D̂j inzident zu pi zu sein ist ≤ j+1 . 41 2 Voronoi Diagramme & Delaunay Triangulierung Daraus folgt: E[|Yj |] ≤ E[ i−2 X |Xj |] ≤ 12 j=1 12 3 = 4 j+1 j+1 i−1 X 1 j + 1 j=1 ≤ 12Hi ≤ 12 log(i + 1) ≤ n X 12 log(i + 1) i=1 ≤ 12n log n + 1 ∈ O(n log n) (Gesamte Suchzeit) 2.5 (Unendliche) Gleitkommazahlsysteme Gβ,t mit β, t > 1 natürliche Zahl ist Gleitkommezahlsystem. Gβ,t = {y = σmβ e−t |σ ∈ {−1, +1}, β t−1 ≤ m < β t − 1, e ∈ Z} ∪ {0} β: Basis des Systems t: Genauigkeit (Precision) σ: Vorzeichen m: Mantisse e: Exponent Gleitkommazahl Approximation: x ∈ R : F l(x) = arg miny∈Gβ,t |x − y|. Falls |F l(x)| = 2, d. h. zwei nächste Gleitkommezahlen, dann immer diejenige näher an Null als approximation. Lemma 2.6 Sei µ = 12 β 1−t Dann gilt: 1. F l(x) = x(1 + δ), mit |δ| < µ 2. λ = F l(x)(1 + δ 0 ), mit |δ 0 | < µ (Der relative Approximationsfehler ist immer beschränkt durch µ) Beweis: Annahme x > 0. Dann können wir schreiben x = µβ e−t mit β t−1 ≤ µ < β t − 1, wobei µ ∈ R. Dann y1 = bµcβ e−t , y2 = dµeβ e−t ∈ Gβ,t 1 1 |F l(x) − x| ≤ min{x − y1 , x − y2 } ≤ (y2 − y1 )/2 = (bµc − dµe) ≤ β e−t 2 2 42 2.5 (Unendliche) Gleitkommazahlsysteme Daraus: | 1 e−t β F l(x) − x 1 1 1 | ≤ 2 e−t ≤ = β 1−t = u x µβ 2 β t−1 2 Die Ungleichung ist nur dann eine Gleichung, wenn µ = β t−1 , aber dann |F l(x) − x| = 0, d. h. wir haben immer F l(x) − x <u x Daraus folgt für F l(x) = x(1 + δ) |δ| = | x(1 − δ) − x |<u x Die zweite Behauptung folgt analog. Es gibt 2 Arten von Approximationsfehlern: 1. relativ: | F l(x)−x | x 2. absolut: |F l(x) − x| Notation: 1. a = b ± c heisst a ∈ [b − |c|, b + |c|] 2. a ± b = c ± d falls [a − |b|, a + |b|] ∈ [c − d, c + d] Gleitkommazahlenoperationen: ⊕, , ⊗ x, y ∈ Fβ,t , dann ist x ~ y = F l(x ∗ y), ∗ ∈ +, −, × Bemerkung 2.5 Das ist Definition, die von fast aller moderner Hardware befolgt wird. Korollar zu Lemma: 1. x ⊕ y = x + y ± u|x + y| 2. x y = x + y ± u|x − y| = x − y ± ||x| + |y|| 3. x ⊗ y = xy ± |xy| 43 2 Voronoi Diagramme & Delaunay Triangulierung 2.6 Gleitkommazahlapproximation von Geometrischen Prädikaten Beispiel: IS_LEFT_OF(p,q,r) 1 p x py Implementiert als 1 qx qy > 0 1 rx ry 1 p x py 1 qx qy = (rx − px )(ry − qy ) + (py − ry )(rx − qx ) 1 rx ry Annahme: px , py , qx , qy , rx , ry ∈ Gβ,t (In der Praxis: Koordinaten sind ganze Zahlen in Gβ,t ) Ausdrücke: reelle Ausdrücke w1 = rx − px w2 = ry − qy w3 = py − ry w4 = rx − qx w5 = w1 w2 w6 = w3 w4 w7 = w5 + w6 Gleitkommazahl-Ausdrücke a1 = rx px a2 = ry qy a3 = py ry a4 = rx qx a5 = a1 ⊗ a2 a6 = a3 ⊗ a4 a7 = a5 ⊕ a6 1. ai = wi ± u|wi | aus obigem Lemma. 2. a1 a2 = (w1 ± u|w1 |) · (w2 ± u|w2 |) = w1 w2 ± uw1 |w2 | ± uw2 |w1 | ± u2 |w1 w2 | = w1 w2 ± (2u + u2 )|w1 w2 | Genauso für a3 a4 . 3. a5 = a1 ⊗ a2 = a1 a2 ± u|a1 a2 | (Lemma und def. der Gleitkommazahlen) = w5 ± (2u + u2 )|w5 | ± u|w5 ± (2u + u2 )|w5 || = w5 ± (3u + 3u2 + u3 )|w5 | Genauso für a6 44 2.7 Degeneriertheit - Symbolische Pertubierung 4. a7 = a5 ⊕ a6 = a5 + a6 ± u|a5 + a6 | = w5 ± (3u + 3u2 + u3 )|w5 | + w6 ± (3u + 3u2 + u3 )|w6 | ± ((3u + 3u2 + u3 )(|w5 | + |w6 |)) = w5 + w6 ± (3u + 3u2 + u3 )(|w5 | + |w6 |) ± (3u2 + 3u3 + u4 )(|w5 | + |w6 |) ± u(|w5 | + |w6 |) = w5 + w6 ± (4u + 6u2 + 4u3 + u4 )(|w5 | + |w6 |) = w7 ± (4u + 6u2 + 4u3 + u4 )(|w5 | + |w6 |) = ϕ Das Ergebnis ist ein reeler Ausdruck plus die Abschätzung für den Fehler. Sei a Wert von Gleitkommazahlausdruck, dann falls a > ϕ → w > 0, falls a < −ϕ → w<0 Bemerkung 2.6 Sei B = max{px , py , qx , qy , rx , ry }. Dann gilt |ϕ| ≤ (4u + 6u2 + 4u3 + u4 )8B 2 . Das kann vorberechnet werden. Beobachtung 1. Wenn x ∈ Z, dann ist F l(x) ∈ Z 2. Falls |ϕ| < 1, dann a ∈ (−|ϕ|, |ϕ|). Daraus folgt w = 0, da w ∈ Z angenommen und Eingabekoordinaten aus Z angenommen und alle Operationen +, −, x abgeschlossen in Z. 2.7 Degeneriertheit - Symbolische Pertubierung Bei theoretischer Analyse der Algorithmen immer Annahme von allgemeiner Lage, d. h. in der Ebene 1. keine drei Punkte auf gemeinsamer Geraden 2. keine vier Punkte auf gemeinsamen Kreisrand. Vier Punkte auf Kreisrand führt zu Vierecken im Delaunay-Komplex. Es ist also keine Triangulierung mehr. Vielecke können wir immer Triangulieren, aber wie? Degeneriertheit kann mit zufälligem Verwackeln (= Verrauschen, Pertubieren) der Eingabe aufgehoben werden. Da man die Eingabe aber nur ungern verändern will, werden wir mit symbolischen Pertubieren arbeiten. Eingabe: Punktmenge P = {p1 , . . . , pn } ∈ R2 bzw. (X1 , . . . , Xn ) ∈ R2n Mit Pix = X2i−1 und Piy = X2i . Für {i, j, k} ∈ [n] 3 , d. h. dreielementige Teilmengen von {1, . . . , n}. Folgende Funktion: ti,j,k : R2n → R 45 2 Voronoi Diagramme & Delaunay Triangulierung Frage: Wie ε > 0 wählen? Antwort: Gar nicht, sondern symbolisch pertubieren. 1. Im Vergleich zum nicht pertubierten Prädikat müssen wir jetzt im schlimmsten Fall vier Determinanten berechnen. 2. Falls Eingabe nicht degeneriert, ergibt pertubiertes Prädikat genau das gleiche Ergebnis wie das Unpertubierte. In welche Richtung die Entscheidung aufgelöst wird, hängt von der Reihenfolge der Punkte ab. 2.8 3D Delaunay-Triangulierung für gewichtete Punkte Gewichteter Punkt: (p, wp ) ∈ R3 × R Powerabstand zum gewichteten Punkt: πp (x) = kx − pk2 − wp Abbildung 2.16: Graph der Abstandsfunktion Abbildung 2.17: Graph der quadratischen Abstandsfunktion Beobachtung Nicht alle Eingabepunkte sind Knoten in der Delaunay-Triangulierung. Das tritt genau dann auf, wenn die zugehörige Powerzelle leer ist. Ein gewichteter Punkt ist relevant genau dann, wenn seine Powerzelle nicht leer ist. 46 hier fehle ge Tafeln 2.8 3D Delaunay-Triangulierung für gewichtete Punkte 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 Input: p, q, r 1 p x py d := δ = 1 qx qy 1 rx ry if d > 0 then return true end if d < 0 then return false end 1 q y d := δ1 = 1 ry if d < 0 then return true end if d > 0 then return false end 1 r x d := δ2 = 1 qx if d > 0 then return true end if d < 0 then return false end 1 p y d := δ3 = 1 ry if d > 0 then return true end if d < 0 then return false end return false Algorithm 2.8: IS_LEFT_OF mit symbolisch pertubiert 47 2 Voronoi Diagramme & Delaunay Triangulierung Abbildung 2.18: Graph der quadratischen Powerabstände Abbildung 2.19: Die Powerzelle von p2 ist leer 48 2.8 3D Delaunay-Triangulierung für gewichtete Punkte Beobachtung Ein gewichteter Punkt muss nicht in der eigenen Powerzelle enthalten sein. Abbildung 2.20: p2 ist nicht in seiner Powerzelle enthalten Erinnerung: Ein Dreieck (in der Ebene) gehört zur Delaunay-Triangulierung wenn seine offene Umkreisscheibe keinen Punkt von P im innern enthält. Jetzt: Ein Tetraeder (im R3 bei Eingabe gewichteter Punkte) gehört zur gewichteten Delaunay-Tetraedisierung (im Folgenden immer kurz Triangulierung genannt), wenn seine Orthosphäre weiter oder orthogonal zu allen Eingabepunkten ist. Definition 2.19 (Orthogonalität) (p, wp ), (q, wq ) gewichtete Punkte sind orthogonal zueinander, falls πp,q := kp − qk2 − wp − wq = 0 gilt. Bemerkung 2.7 Gewichteter Punkte mit positivem Gewicht kann als Ball aufgefasst werden. Definition 2.20 (Orthogonalität zweier Sphären) 2 Sphären heißen Orthogonal zueinander, wenn sie sich in einer Sphäre eine Dimension niedriger schneiden. Die Tangenten in den Schnittpunkten sind orthogonal. Definition 2.21 (Orthosphäre) Eindeutige Sphäre, die orthogonal zu den 4 gewichteten Knoten des Tetraeders ist. 49 weiter? 2 Voronoi Diagramme & Delaunay Triangulierung Abbildung 2.21: Darstellung eines gewichteten Punkts als Ball im R2 Abbildung 2.22: 2 Sphären mit orthogonalen Tangenten 50 2.8 3D Delaunay-Triangulierung für gewichtete Punkte Orthosphärenbedingung für gewichtete Delaunay-Triangulierung Orthogonalität: (p, wp ) und (w, wq ) sind orthogonal, falls πp,q = kp − qk2 − wp − wq = 0 [Mehr als orthogonal, falls πp,q > 0] Definition 2.22 (Orthosphären Bedingung) P ⊂ R3 gewichtete Punktmenge Tetraeder abcd in einer Triangulation von P ist DelaunayTetraeder, genau dann wenn die orthosphäre von abcd orthogonal zu den gewichteten Punkten abc und d ist (<- def von orthoshpäre), und mehr als orthogonal von jedem anderen Punkt in P . Quadratische Distanzfunktion zu p ∈ R2 dp (x) = kx − pk2 = −2pT x + kpk2 + kxk2 dp (x) − kxk2 ist Hyperebene im R3 Anwenden der Transformation −kxk2 auf alle Punkte im R2 Behauptung Die Hyperebene hp = dp (x) − kxk2 ist tangential an das Paraboloid π im Punkt −kxk2 1. (p, −kpk2 ) ∈ π: Einsetzen von p in hp 2. Alle Punkte in π sind auf oder unterhalb von hp denn 0 ≤ kx − pk2 = kxk2 − 2pT x + kpk2 = kxk2 + hp x => −kxk2 ≤ hp (x) Die Transformation überführt die Graphen von Abstandsfunktionen in Tangentenebene an π => Schnitte von Abstandsfunktionen in Schnitte von Tangentialebenen => Untere Einhüllende von Abstandsfunktionen wird überführt in obere Einhüllende von Halbräumen begrenzt von Tangentialebenen. Projektion der oberen Einhüllenden ergibt das Voronoidiagramm der Eingabepunkte. Definition 2.23 (Polarität) Nicht-vertikale Hyperebene kann geschrieben werden als h(x) = −2pT x + kpk2 − c. (Bestimmt durch p ∈ R3 und c ∈ R) Polarer Punkt im R4 : h∗ = (p, −kpk2 + c) 51 2 Voronoi Diagramme & Delaunay Triangulierung Lemma 2.7 (Inzidenzlemma) h∗ liegt über (auf, unter) g, genau dann wenn g ∗ über (unter, auf) h liegt. Beweis: h∗ = (p, −kpk + c), g(x) = −2q T x + kqk2 − c Betrachten nur den Fall über (auf, unter analog): −kpk + c > −2q T p + kqk2 − c(h∗ über g) => −kqk2 + c0 > −2rT q + kpk2 − c(g ∗ über h) Abstandsfunktion zu gewichtetem Punkt ergibt Hyperebene im R4 (im Allgemeinen nicht mehr Tangential zu Paraboloid π) Weiterhin gültig: Rückprojektion der oberen Einhüllenden Des Schnittes, der nach unten offenen Halbräume (berandet durch die transformierte Abstandsfunktionen) gibt das Power-Diagramm. (gewichtete Voronoi-Diagramm) Beobachtung Zwei gewichtete Punkte sind orthogonal zueinander, genau dann wenn p̂∗ auf q̂ liegt, wobei p̂ Hyperebene p̂(x) = −2pT x + kpk2 − wp , p̂∗ = (p, −kpk2 + wp ) Analog für q Beweis: p̂∗ liegt auf q̂ bedeutet: −kpk2 + wp = −2q T p + kqk2 − wq => kpk2 − 2pT q + kqk2 − wp − wq = 0 => kp − qk2 − wp − wq = Folgerung Powervertex im R3 (im nicht-degenerierten Fall) hat den gleichen Power-Abstand zu vier gewichteten Eingabepunkten. => Transformierter Powervertex ist im Schnitt von 4 transformierten Abstandsfunktionen. [nicht-vertikale Hyperebenen] => ∃ gewichteter Punkt (v, wv ), der orthogonal zu den vier gewichteten Eingabepunkten ist. Dabei st v der Powervertex. (v, wv ) ist die Orthosphäre des durch die vier Eingabepunkte gegebenen Tetraeders. Definition 2.24 (Lokale Delaunay-Bedingung) Sei P ⊂ R3 eine gewichtete Punktmenge. Ein Dreieck bcd in einer Triangulierung von P hat die lokale Delaunay-Eigenschaft, falls entweder 1. bcd ist auf dem Rand der konvexen Hülle von P [D. h. bcd hat nur einen inzidenten Tetraeder.], oder 52 2.8 3D Delaunay-Triangulierung für gewichtete Punkte 2. bcd hat 2 inzidente Tetraeder abcd und bcde, so dass der gewichtete Punkt e mehr als orthogonal zur Orthosphäre von abcd ist. => Idee: Herstellen der globalen Delaunay-Triangulierung durch sicherstellen er lokalen Bedingung für jedes Dreieck. => „Flippen“ Projektion von 4 Punkten in die Ebene. Satz 2.5 (Radons Theorem) Gegeben n ≥ d + 2 Punkte im Rd . Dann gibt es eine Zerlegung der Punktmenge P = P1 ∪ P2 , so dass conv(P1 ) ∩ conv(P2 ) 6= ∅. Beweis: P n ≥ d + 2 Punkte im Rd müssen affin abhängig sein. Es gibt λi , so dass ni=1 λi pi = 0 P und nicht alle λi = 0 und ni=1 λi = 0. Sei I ⊂ [1, . . . , n] mit λi > 0 falls i ∈ I. c := X λi = − i∈I X λi i∈[1..n] I 1 X 1X λi pi = − λi pi c i∈I c i∈[1,..,n] I | {z } ∈conv{pi |i∈I} | {z } ∈conv{pi |i∈[1,...,n]\I} => conv{pi |i ∈ I}∩ conv{pi | i ∈ [1, . . . , n] \ I} = 6 ∅ Satz 2.6 Haben alle Dreiecke in K die lokale Delaunay-Eigenschaft, dann ist K die (gewichtete) Delaunaytriangulierung Beweis: Genauso wie im ungewichteten 2D-Fall, d. h. zeige dass für jeden Tetraeder abcd ∈ K gilt, dass Orthosphäre von abcd mindestens orthogonal zu allen Punkten aus P . Flips im 3D Projektion von 4D-Tetraeder in den R3 1. Ein Punkt in konvexer Hülle von vier Punkten -> 1-4 Flip 2. Fünf Punkte in konvexer Lage -> 2-3 Flip Entweder zwei Tetraeder inzident zu bcd, oder drei Tetraeder inzident zu a Vorsicht bc nichtkonvexe Kante. Zwei Möglichkeiten: 53 2 Voronoi Diagramme & Delaunay Triangulierung 1. cb hat drei inzidente Tetraeder. => 3-2 Flip möglich 2. cb hat mehr als drei inzidente Tetraeder: => bcd heisst nicht-transformierbar [Beachte: in dem Fall ist die Kante ae nicht vorhanden. ] Inkrementeller Algorithmus 1 2 3 4 5 6 7 8 9 10 11 1 2 3 4 5 6 7 Input: P ⊂ R3 (gewichtet), P = {p1 , . . . , pn } beliebig (d. h. am Besten zufällige Ordnung) Sei Di Delaunay Triangulierung von p1 , . . . , pi , c, y, z, w D0 sei hinreichend großer Tetraeder xyzw for i = 1 TO n do Finde pqrs In Di−1 Mit pi ∈ pqrs // Point Location if pi ist nicht-redundant bzgl p, q, r und s then Füge Pi mittels 1-4 Flip ein end end while ∃bcd Dreieck in momentaner Triangulierung, das nicht die lokale Delaunay-Eigenschaft hat do Flip bcd end Algorithm 2.9: Inkrementeller Algorithmus für 3D Delaunay-Triangulierung Input: Stack von Dreiecken, die möglicherweise geflippt werden müssen while stack 6= ∅ do bcd := pop von stack if bcd ∈ momentanerT riangulierung AND bcd hat nicht lokale Delaunay-Eigenschaft AND bcd ist transformierbar then wende 2-3, 3-2 oder 4-1 Flip an push erzeugte Dreiecke auf den Stack end end Algorithm 2.10: lokale Korrektur Beobachtung Als Linkkandidaten sind nur Dreiecke im Link von pi relevant 1. Falls Dreieck ∈ / Stern von pi , dann gehört das Dreieck zu Di−1 , d. h. es hat die lokale Delaunay-Eigenschaft 2. bc sei Kante im Link => pi bc ∈ Stern(pi ) pi bc ∈ / Link(pi ) (Bild) Seien pi bcx und pi bcy Tetraeder inzident zu pi bc falls xpi bcy konvex ist, könnten wir einen 2-3 Flip anwenden. => neue Tetraeder xypi b, xypi c und xybc xybc hat nur Knoten aus {1, . . . , pi−1 }, gehört nicht zum Stern. Müsste zu DelaunayTriangulierung von Di−1 gehören. Widerspruch, da 2-3-Flip nicht möglich. 54 2.8 3D Delaunay-Triangulierung für gewichtete Punkte Fall xpi bcy nicht-konvex und pi bc ist transformierbar, dann ist auch entweder bcx oder bcy transformierbar, d. h. wir können Dreieck ∈ Link(pi ) anstelle von pi bc transformieren. Behauptung Falls keine Transformierbaren Dreiecke im Link(pi ) gibt, die nicht die lokale DelaunayEigenschaft haben, dann ist momentane Triangulierung die Deleunay Triangulierung D. Beweis: Annahme: Es gibt Dreiecke ∈ Link(pi ), die nicht die lokale Delaunay Eigenschaft haben, aber alle nicht-transformierbar sind. (wollen widerspruch) Seien L Dreiecke im Link von pi , L0 ⊆ L seien Dreiecke, die nicht lokale Delaunay und nicht transformierbar sind. Seien T’ die Tetraeder inzident zu L’, mit T 0 ∩ Stern(pi ) = ∅. Sei t ∈ T 0 , so dass πt,pi minimal ist unter allen Tetraeder in T 0 . Erinnerung πt,pi ist der Abstand der Orthosphäre von t zum (gewichteten) Punkt pi . => πi,pi < 0 [Da nicht lokale Delaunay Eigeschaft im Dreieck t ∩ Stern(pi ) = bcd] Ziel zu zeigen, dass bcd transformierbar ist bcd ∈ Link(pi ) Bild falls pi bcde konvex, dann transformierbar mit 2-3-Flip => pi bcde nicht konvex 1. Annahme: Genau eine nicht-konvexe Kante bc Sei xbcd Tetraeder 6= t inzident zu bce. Falls x = pi , dann 3-2-Flip um Kante bc möglich. => entweder x 6= pi , oder zweite nichtkonvexe Kante 2. Annahme: 2 nichtkonvexe Kanten bc, cd seien bcex und cdey Tetraeder 6= t inzident zu bce BZW. cde Falls x = y = pi => 4-1 Flip möglich Situation: Nicht alle Dreiecke haben die lokale Delaunay-Eigenschaft, aber alle Dreiecke im Link sind nicht transformierbar. 55 2 Voronoi Diagramme & Delaunay Triangulierung abcd Tetraeder, der inzident zu Dreieck bcd ∈ Linkpi , so dass πabcd,pi < 0 minimal ist. Betrachte Dreiecke abc und abd. Seien abcx und abcy Tetraeder 6= abcd. Falls x = y = pi , dann ist abcdpi Transformierbar mit einem 4-1-Flip. Da nichttransformierbarkeit angenommen, gibt es x mit abcx 6= abcpi und bc nicht-konvex. Das bedeutet der Strahl startend von pi , der durch abc geht, muss zuerst durch ein Dreieck im Link(pi ) gehen. Widerspruch: Tetraeder σ in Di−1 sind längs des Strahls von pi geordnet gemäß πσ,pi . Das ist ein Widerspruch zu abcd minimal. [Ordnung längs des Strahls haben wir schon bewiesen, als wir im 2D gezeigt haben, dass lokale Delaunay-Eigenschaft die Delaunay-Eigenschaft impliziert.] 56 3 Geometrisch modellieren Idee: Benutze Delaunay-Triangulierung um Flächen im 3D zu beschreiben. Kurve im R3 : γ[0,1] → R2 mit 1. Glatt (unendlichoft stetig differenzierbar) 2. Injektiv, bis auf γ(0) = γ(1) P ⊂ Σ = γ[0,1] Ziel: Rekonstruiere Σ aus P . Definition 3.1 (Leeres Segment) γ(x, y) heißt leeres Segment, falls x = γ(t), y = γ(s) und γ([t, s]) ∩ P = ∅ Definition 3.2 (korrekte Kante) pq mit p, q ∈ S heißt korrekte Kante, falls γ(p, q) leeres Segment ist, d. h. korrekte Kante verbindet konsekutive Punkte längs von γ. Bemerkung 3.1 Aus beliebigen Sampling ist es schwierig bzw. unmöglich korrekte Kanten zu finden. Wir brauchen zusätzliche Bedingung. Definition 3.3 (mediale Achse) Gegeben Σ ⊂ Rd kompakt (abgeschlossen und beschränkt). Die mediale Achse M (z) = CL{x ∈ Rd \ Σ|x hat mindestens 2 nächste Nachbarn in Σ} Bemerkung 3.2 Mediale Achsen finden auch Anwendung in Abbildung 3.1: Kurve im R2 mit Sampling 57 3 Geometrisch modellieren Abbildung 3.2: Mediale Achse mit Bällen • Virtual Colonoscopy • Fahrplanung in der Robotik • Stick Figures bei Animation Definition 3.4 (mediale Bälle) x ∈ M (z), dann heißt B(x, d(x, Σ)) (d(x, Σ) = infkx − yk mit y ∈ Σ) ein medialer Ball. Definition 3.5 (ε-Sampling) p ⊂ Σ heißt ε-Sampling für ε > 0, falls ∀x ∈ Σ, ∃p ∈ P mit kx − pk ≤ εf (x), wobei f : Σ → R, x 7→ d(x, M (Σ)). [Die Funktion f wird lokale Feature Größen Funktion genannt.] 3.1 Crust-Algorithmus 1 2 3 Input: P ⊂ Σ Sampling der Kurve Σ. Berechne das Voronoi-Diagramm von p. V := Menge der Voronoi-Vertices. Berechne die Delaunay-Triangulierung von P ∪ V . Gebe alle Kanten aus Del(P ∪ V ) aus, deren Endpunkte beide in P sind. Algorithm 3.1: Crust (Krusten)-Algorithmus Behauptung Falls p ε-Sampling mit ε < 0,2, dann gibt der crust-Algorithmus genau die korrekten Kanten aus. Eigenschaften der Feature Größen Funktion: 1. f : Σ → R, x 7→ d(x, M (Σ)) ist 1-Lipschitz, d. h. f (x) ≤ f (y) + kx − yk 58 3.1 Crust-Algorithmus Abbildung 3.3: Bälle schneiden die Kurve Beweis: Sei m ∈ M (z) mit f (y) = ky − mk, dann f (x) ≤ kx − mk ≤ kx − yk + ky − mk = kx − yk + f (y) (Dreiecksungleichung) 2. Feature Verschiebungslemma Sei ε < 1 und kx − yk ≤ εf (x), dann gilt: a) f (x) ≤ 1 1−ε f (y) b) kx − yk ≤ ε 1−ε f (y) Beweis: a) f (x) ≤ f (y) + kx − yk ≤ f (y) + εf (x) Lippschitz-Stetigkeit => (1 − ε)f (x) ≤ 1 f (y) f (y) => f (x) ≤ 1−ε b) kx − yk ≤ εf (x) ≤ ε 1−ε f (y) Schnitte von Bällen mit Σ Lemma 3.1 Falls ein Ball B eine Mannigfaltigkeit Σ ⊂ Rd (z. B. glatte Kurven im R2 , glatte Fläche im R3 ) in mindestens einem Punkt schneidet, und falls entweder 1. B ∩ Σ kein topologischer d-Ball ist, oder 2. γ(B ∩ Σ) keine topologische (d-1)-Sphäre ist dann enthält B einen Punkt von der medialen Achse von Σ. Lemma 3.2 (leeres Segment) Sei P ε-Sampling von Kurve Σ mit ε < 1 seien p ∈ P und x ∈ Σ, so dass das Segment γ(p, x) leer ist. Sei z der Schnitt des Bisektors von px mit Σ. Dann gilt: 1. Der Ball B(z, kz − pk) schneidet Σ nur in γ(p, x) 2. B(z, kp − zk) ist leer, d. h. der offene Ball enthält keine Sample-Punkte 59 3 Geometrisch modellieren 3. kp − zk ≤ εf (z) Beweis: B := B(z, kp − zk) γ := γ(p, x) Annahme: B ∩ Σ 6= γ Verkleinern B zu B 0 . => B 0 ∩ Σ ist kein topologischer 1-Ball. Im offenen Ball B 0 liegt keine Sampling Punkte in B 0 ∩ P = ∅ Radius von B 0 > f (z) da ε-Sampling: ∃p0 : kp0 − zk ≤ εf (z) < f (z) -> Widerspruch.-> 1. 2. und 3. folgen daraus. 3. folgt, da p ein ε-Sample. kz − pk ≤ f (z) Lemma 3.3 (kurze Segmente) Sei x und y zwei bliebige Punkte, so dass γ(x, y) leer ist. Dann gilt: kx − yk ≤ für ε < 1 und jedes ε-Sampling. 2ε 1−ε f (x), (Zwei Punkte x, y, zwischen denen keine Sampling-Punkte liegen: Diese sind relativ nah beieinander (abhängig von der lokalen Feature Größen Funktion) Beweis: da γ(x, y) leeres Segment, ist es Teilstück eines leeren Segments γ(p, q) mit p, q ∈ P Sampling Punkte. Sei z der Schnitt des Bisektors mit γ(p, q). Behandle Ball B(z, kp − zk). => offener Ball B(z, kp − zk) ist leer, d. h. enthält keine Sampling Punkte. => das leere Segment-Lemma gilt. (speziell die dritte Behauptung) x, y ∈ B: kz − xk ≤ εf (z), da ε-Sample. laut Feature Verschiebungslemma: f (z) ≤ 1 1−ε f (x). kx − yk ≤ 2kp − zk (Dreiecksungleichung ≤ 2ε 1−ε f (x)) Lemma 3.4 Sei pq eine korrekte Kante. Für ε < 1 gilt (ε-Sampling) 60 3.1 Crust-Algorithmus Abbildung 3.4: Punktsampling und deren Voronoi-Knoten 1. kp − qk ≤ 2ε 1−ε f (p) 2. pq ist Delaunay-Kante Beweis: 1. da pq eine korrekte Kante ist => γ(p, q) ist leer => kp − qk ≤ 2ε 1−ε f (p) 2. laut Leeren Segment Lemma existiert Ball, der p und q auf dem Rand hat und im Inneren keine Sampling Punkte hat. => pq ist Delaunay-Kante inkorrekte Kanten: deren umschließender leerer Ball schneidet die mediale Achse => sie enthalten einen Voronoi-Knoten. P ∪ V (V - Menge der Voronoi-Knoten) So verschwinden die inkorrekten Kanten. Aber es entstehen neue, zusätzliche Kanten. Diese werden aber einfach nicht ausgegeben. CRUST-Algorithmus: 61 3 Geometrisch modellieren 1 2 3 Input: ε-Sampling, P ⊂ Σ : ε ≤ 0 2 berechne Voronoi-Knoten des Punktsamplings P. berechne Delaunay-Triangulierung von P ∪ V gebe Knoten aus Del(P ∪ V ) aus, deren Endpunkte beide in P liegen Algorithm 3.2: CRUST-Algorithmus 3.1.1 Korrektheitsbeweis für Crust Algorithmus Lemma 3.5 Sei p ein ε < 0,2-Samplung einer glatten Kurve, Σ < R2 , dann sind alle korrekten Kanten in crust(P ). Lemma 3.6 Unter den Vorraussetzungen von Lemma 3.5 ist keine nicht-korrekte Kante in crust(P ). Es gilt immer ε < 0,2-Sampling Lemma 3.7 (Empty Segment) p ∈ P, x ∈ Σ, so dass γ(p, x) leer ist, z Schnittpunkt des Bisektors von p und x mit γ(p, x) dann gilt: 1. B(z, kp − zk) schneidet Σ nur in γ(p, x) 2. B(z, kp − zk) ∩ P = ∅ (B(z, kp − zk) ist ein offener Ball) 3. kp − zk ≤ εf (x) Lemma 3.8 (Small Segment) x, y ∈ Σ, so dass γ(x, y) ∩ P = ∅, dann kx − yk ≤ 2ε 1−ε Lemma 3.9 (Small Edge) Sei pq korrekte Kante, dann 1. kp − qk ≤ 2ε 1−ε f (p) 2. pq ist Delaunay Lemma 3.10 (Segment Angle) 2ε x, y, z ∈ Σ, kx − yk, ky − zk ≤ 1−ε f (y). α sei der Winkel der Tangente von Σ in y mit dem Segment yz, dann gilt: ε 1. α ≤ arcsin 1−ε und ε 2. ]xyz ≥ π − 2 arcsin 1−ε 2 oder z im Nenner? Beweis: 0k /km − yk) ≤ arcsin( ky−zk α = arcsin( ky−z 2 2 /km − yk) Es gilt: 62 3.1 Crust-Algorithmus Abbildung 3.5: Skizze zum Beweis des Small Angle-Lemmas (Lemma 3.10) Abbildung 3.6: Empty Segment Lemma 1. ky − zk ≤ ε 1−ε f (y) 2. f (y) ≥ km − yk ε ) Daraus folgt α ≤ arcsin( 1−ε Für 2. betrachte ]myz = π 2 −α> π 2 ε − arcsin( 1−ε ) und ]myx ≥ π 2 ε − arcsin( 1−ε ) ε Es folgt: ]xyz ≥ π − 2 arcsin( 1−ε ). Das gilt, falls x oberhalb der Tangente liegt sowieso. Ansonsten folgt es wegen der beiden vorherigen Formeln. Beweis: (Lemma 3.5) Sei pq korrekte Kante. Aus dem Empty Segment Lemma folgt B ∩ P = ∅. Aber es ist möglich, dass B ∩ {v|v Voronoi-Vertex von Punktmenge P } = 6 ∅. Beachte: Crust Algorithmus gibt Kanten in der Delaunay-Triangulierung von P ∪ V aus, die beide Enden in P haben. Annahme: v ∈ B, wobei v Voronoi Vertex von P ist. Betrachte kp − vk 63 3 Geometrisch modellieren Abbildung 3.7: Ball B 0 ε 1. kp − vk ≤ 2kp − zk ≤ 2εf (z) ≤ 2 1−ε f (p) 2kp−vk ≥ f (p), sei B 0 Voronoi-Ball mit Mittelpunkt v. B 0 ist Umkreisball eines DelaunayDreiecks rst (Dual zum Voronoi-Vertex v.) => B 0 muss Punkt in der medialen Achse enthalten. kp − mk ≥ 2kp − vk. => B 0 kann Σ nicht in einem 1-Ball schneiden. Insgesamt folgt: Das ist ein Widerspruch falls wurde. 2ε 1 f (p) ≤ kp − vk ≤ 2 1−ε 2ε 1−ε < 1 2 ⇔ 5ε < 1. Widerspruch, da ε < 0,2 angenommen => pq ∈ crust(P ) für alle korrekten Kanten pq. Beweis: (Lemma 3.6) Crust gibt keine nicht-korrekten Kanten aus für ε < 15 . Annahme für Widerspruch: pq nicht-korrekte Kante in Crust(p). Daraus folgt, es gibt Ball D mit p, q ∈ ∂D (Rand von D) und D ∩ P = ∅, D ∩ {v| v Voronoi Vertex von P } = ∅ z, z 0 sind die beiden Schnittpunkte des Bisektors von p und q mit dem Rand von D. B = B(z, kz − pk), B 0 = B(z 0 , kz 0 − pk). 1. Behauptung: Sowohl B als auch B 0 können keinen Punkt von P enthalten. B ∩ P = ∅ = B0 ∩ P Beweis: Transformiere D, so dass p, q ∈ ∂D erhalten bleibt und D(1) = B. [Pencil zwischen D und B.] 64 3.1 Crust-Algorithmus Abbildung 3.8: Skizze zum Beweis von Lemma 3.6 Falls B ∩ P ∅, dann ∃λ ∈ (0,1) mit ∂D(λ) ∩ P 6= ∅, d. h. D(λ) hat p, q und einen weiteren Punkt r ∈ P auf dem Rand => D(λ) ist Voronoi Ball des DelaunayDreiecks pqr. => Widerspruch, da D keine Voronoi-Vertices im Inneren enthält. (nach Annahme.) 2. ]zpz 0 = π2 (Satz von Thales) => Tangenten von B und B 0 in p schneiden sich im Winkel von π2 . => Σ kann nicht tangential zu B und B 0 in P sein. 3. Annahme: Σ ist weder Tangential zu B noch zu B 0 in p. Sei p1 der erste Schnittpunkt von Σ mit B längs Σ, und sei p2 der erste Schnittpunkt von Σ mit B 0 längs Σ 2ε => kp − p1 k, kp − p2 k ≤ 1−ε f (p) (folgt aus dem Small Segment Lemma, da γ(p, p1 ), γ(p, p2 ) leer sind, denn B bzw. B 0 enthalten keine Punkte von P . ε ε Aus Segment Angle Lemma folgt ]p1 pp2 ≥ π−arcsin 1−ε => α ≥ 12 (π−2 arcsin( 1−ε )− π2 ), wobei α der Winkel zwischen Tangente an B in D und dem Liniensegment pp1 ist. [Hier ist α größer angenommen, als entsprechender Winkel für B 0 .] Lemma 3.11 Der Crust-Algorithmus gibt keine nicht-korrekte Kante aus für ε-Sampling mit ε < 0,2 Beweis: pq nicht-korrekt. α Winkel von Segment pp1 mit Tangente an Σ in p D. Ball mit p, q ∈ ∂B B ∩ P 6= ∅ [P Samplepunkte] B ∩ V 6= ∅ [V Voronoivertices des Voronoi-Diagramms von P ] In letzter Stunde: α ≥ π 4 ε − arcsin 1−ε [untere Schranke für α] Heute: Obere Schranke für α. Konstruiere x als Schnitt des Bisektors von p und p1 mit Kurvensegment γp, p1 . 65 3 Geometrisch modellieren Abbildung 3.9: Beispiele für homeomorphe Abbildungen Beobachtung Da p und q nicht konsekutiv längs Σ sind, gilt entweder γ(p, q) 6⊂ B oder γ(q, p) 6⊂ B [Echte Teilmenge]. Bachte: Wir haben gezeigt, dass B keinen Punkt von P im inneren enthält. => B schneidet Σ nicht in 1-Ball, d. h. B muss Punkt der medialen Achse enthalten.. => f (x) ≤ 2r, mit r Radius von B [<=> r ≥ 21 f (x)] ≥ 12 kp−p1 k = εf (x) ≥ kp − xk | {z } Da p einer der beiden konsekutiven Samplepunkte zu x Längs Σ ist [Empty Segment Lemma] r sin α ≥ 21 f (x) sin α ε ) => 2ε ≥ sin α ≥ sin( π4 − arcsin 1−ε => Widerspruch für ε < 0,2, d. h. Ungleichung kann nicht gelten für kleine ε. 3.2 Flächenrekonstruktion Theorem 3.1 (Edelsbrunner & Shah, Amenta & Bern) Sei P ein ε-Sampling einer glatten Fläche Σ mit ε < 0,18, dann sind Σ und D(P, Σ) homeomorph. Glatte Fläche: ϕ und ϕ−1 mit ϕ(B) → B unendlich oft stetig differenzierbar. Wollen glatte Flächen hier, da inf x∈Σ f (x) > 0, d. h. Σ hat positiven Abstand von M (Σ). Definition 3.6 (Homeomorphismus) Bijektive Abbildung zwischen zwei Flächen, die in beide Richtungen stetig ist Definition 3.7 (Eingeschränkte Delaunay-Triangulierung) P ⊂ R3 endliche Punktemenge, Σ ⊂ R3 . Erinnerung: S < P , conv(s) ist Simplex in D(P ), genau dann wenn Vp Voronoizelle von p. Sei S < P , conv(s) ist Simplex in D(P, Σ), genau dann wenn 66 T p∈S T p∈S Vp 6= ∅, wobei Vp ∩ Σ 6= ∅ 3.2 Flächenrekonstruktion Abbildung 3.10: „Aufdickung“ einer Kurve Abbildung 3.11: „Aufdickung“ mittels Kegelkomponenten Nochmal Crustalgorithmus für Kurven: Rot: Vereinigung der Voronoi-Zellen der Voronoi-Vertices des Voronoi-Diagramms von P im Voronoi-Diagramm von P ∪ V Blau: Komplement von Rot im R2 , aufgedickte Version der Kurve Σ. Der Crust-Algorithmus berechnet D(P,Blau). Idee: Gesampletes Objekt Σ (Kurve im R2 , bzw. Fläche im R3 ) ist nicht direkt bekannt, sondern nur über das ε-Samplung P . d. h. wir können D(P, Σ) nicht direkt berechnen, was wir nach Edelsbrunner, Shah, Amenta, Bern-Theorem gerne würden. Stattdessen: Schätze „aufgedickte Version“ ΣD von Σ aus P und berechne D(P, ΣD ). Kleine Vorrausschau: 67 3 Geometrisch modellieren Abbildung 3.12: Mediale Bälle tangential an der Fläche Σ Aufdickung mittels Kegelkomplementen (Co-Cones) an den Sample-Punkten. Normalen Approximation Lemma 3.12 Seien m1 und m2 Mittelpunkte der beiden medialen Bälle Tangential an die Fläche Σ im Punkt p. Dann sind m1 und m2 in Vp enthalten. Beweis: Sei Bi der medialer Achsenball mit Mittelpunkt mi dann ist Bi ∩ Σ = ∅ und p ist ein nächster Punkt zu mi in Σ. => mi ∈ Vp für Sampling von Σ. Lemma 3.13 Sei µ > 0, sei v ∈ Vp mit kv − pk ≥ µf (p) für p ∈ P , wobei P ein ε-Sampling von Σ mit − ε ε ε < 1 ist dann gilt ](mp , → vp ) ≤ arcsin µ(1−ε) + arcsin 1−ε . Beweis: −→ bzw. Idee: Beobachtung: np zeigt in gleiche (bzw. entgegengesetzte) Richtung wie − pm 1 − −→ pm 2 Sei o. B. d. A. v auf gleicher Seite von Σ wie m1 . Wir sind interessiert an ]m1 pv = ]pvm2 + ]vm2 p | 68 {z π−]m2 pv } 3.2 Flächenrekonstruktion Abbildung 3.13: Suchbereich das Crust-Algorithmus in 3D d. h. es reicht ]pvm2 und ]vm2 p abzuschätzen. Lemma 3.14 (Normalenlemma) Sei µ > 0 und v ∈ / Σ ein Punkt aus der Voronoizelle Vp von p mit kv − pk ≥ µf (p). Für − → ε ε ε < 1 gilt: ](vp, np ) ≤ arcsin µ(1−ε + arcsin 1−ε Beweis: m1 - Mittelpunkt von medialen Ball an p. m2 - Mittelpunkt von medialen Ball an p. np ||m1 p np ||m2 p => m1 , m2 und p sind colinear. → n ) = ](pvm ) + ](v, m , p) laut Nebenwinkelsatz. α = ](− vp, p 2 2 Sei y der Schnitt von vm2 mit Σ. y liegt in Vp Voronoizelle von p. (Weil alles konvex ist und die Endpunkte in Vp liegen.) => der nächste Samplingpunkt zu y ist p. (Weil (p) er ja in der Voronoizelle liegt) ky − pk ≤ εf (y), weil ε-Sampling ≤ εf 1−ε lt. Feature Verschiebungslemma ]pvm2 = arcsin kx−pk kv−pk ≤ arcsin ε f (p) 1−ε kx−pk ]vm2 p ≤ arcsin kp−m ≤ arcsin 2k µf (p) ε ≤ arcsin µ(1−ε) ε f (p) 1−ε f (p) ε ≤ arcsin 1−ε Addieren der beiden Winkel ergibt genau das gewünschte Ergebnis. Definition 3.8 (Pol) Den am weitesten von p entfernten Voronoiknoten p+ in Vp nennt man positiver Pol. Der negative Pol p− ∈ Vp von p ist der am weitesten von p+ entfernte Punkt, so dass die → = p+ − p− Vektoren pp+ und pp− einen Winkel von mehr als π bilden. Man nennt − vp + den Pol-Vektor von p. Falls Vp unbeschränkt ist, so ist p der Punkt im unendlichen → ist der Durchschnitt aller Richtungen der unbeschränkten und die Richtung von − vp Voronoi-Kanten. Lemma 3.15 → Für ε < 1 gilt für den Normalenvektor np und dem Pol-Vektor − vp − ε ](np , → vp ) ≤ 2 arcsin 1−ε 69 3 Geometrisch modellieren Definition 3.9 (Co-Kegel/Cocone) → v ) ≥ 3 π} heißt Co-Kegel (Cocone) von p. Die Menge Cp := {y ∈ Vp |](− py, p 8 ≈ Vp \ K 3.2.1 (Konforme) Alpha Shapes Erinnerung: Gegeben P ⊂ Rd endlich und A ⊂ Rd beliebig. Sei Vp die Voronoi-Zelle von p ∈ P , dann ist Vpa = Vp ∩ A. Sei T ⊆ P dann ist conv(T ) ein Simplex der Delaunay-Triangulierung eingeschränkt auf A, genau dann wenn \ p∈T VpA 6= ∅(↔ ( \ Vp ) ∩ A 6= ∅) p∈T Beispiel 3.1 A = Σ (Glatte Kurve bzw. Fläche). Dann ist die Delaunay-Triangulierung von einem dichten Sampling P von Σ eingeschränkt auf A eine homogene Rekonstruktion von Σ. Definition 3.10 (Alpha Shape) Parameter α ∈ [0, ∞) gegeben P ∈ Rd endlich. Das Alpha Shape zum Wert α ist die Delaunay-Triangulierung von P eingeschränkt auf die Menge von Bällen mit Radius α und Mittelpunkt in P . Konvention: Alle Delaunay-Vertices sind α-spät und alle Delaunay-d-Simplices sind α-früh Definition 3.11 (Kritischer Delaunay-Simplex) σ wird kritisch genannt, falls σ sowohl α-früh als auch α-spät ist. Beobachtung kritische Simplices im Alpha-Shape sind entweder Zerstörer oder Erzeuger, d. h. entweder zerstören sie eine Zusammenhangskomponente oder ein "Loch". (Im R2 ist das eine Zusammenhangskomponente im Komplement der α-Bälle) Filtrierung der Delaunay-Triangulierung K0 ⊂ K1 ⊂ . . . ⊂ Kn ("⊂"heißt, alle Simplices in Ki sind auch in Ki+1 enthalten) Folge von Sub-Komplexen der Delaunay mit K0 = P und Kn = Delaunay-Triangulierung von P . d. h. Alpha-Shapes sind eine Filtrierung der Delaunay-Triangulierung von P . 70 3.2 Flächenrekonstruktion Alpha-Shapes für Kurven-(bzw. Flächen-)Rekonstruktion [Bild eines uniformen Samplings] In Alpha-Shape Filtrierung viel Aktivität bei kleinen α-Werten, dann ein α-Intervall ohne Aktivität dann wieder Aktivität durch einfügen von nicht-Rekonstruktionskanten. Achtung: Funktioniert nicht bei Feature-Adaptiven ε-Sampling. Man erhält im kleineren Teil bereits nicht-Rekonstruktionskanten, während im großen Teil noch nicht alle Rekonstruktionskanten im Alpha Shape sind. In der Praxis: Flächenrekonstruktion mit Alpha Shapes ist nicht sehr stabil, da in der Regel keine uniformes Sampling vorhanden. Konforme Alpha Shapes: Anpassung von Alpha Shapes geeignet für Flächenrekonstruktion von ε-Sampling. σ Simplex in Delaunay-Triangulierung α(σ) ist α-Wert bei dem σ im Alpha Shape erscheint. Sei p ∈ P und σ1 , . . . , σk seien alle Delaunay-Simplices inzident zu p, geordnet so dass α(σi ) ≤ α(σi+1 ) Seien αp+ > αp− Werte aus α(σ1 ), . . . , α(σk ) σ̂pi = α(σi ) − αp− αp+ Konforme Alpha Shapes sind Einschränkungen der Delaunay-Triangulierung von P auf S folgende Menge das topologische Innere von p∈P Cpα̂ mit Cpα̂ für α̂ ∈ [0, ∞) ist der Schnitt des Balles mit Mittelpunk p und Radius αp (α̂) = αp+ α̂ + αp− und Vp d. h. Cpα̂ = Vp ∩ B(p, αp+ α̂ + αp− ) Sei α̂(σ) für Delaunay Simplex σ der Wert von α̂ bei dem σ im konformen Alpha Shape erscheint. Beobachtung α̂(σ) = maxi=1,...,k inf{α̂|αpi (α̂) ≥ α(σ)} wobei σ = conv(p1 , . . . , pk ), pi ∈ P [Bild] Das Bild zeigt: Im konformen Alpha Shape können Dinge kritisch werden, die im normmalen Alpha Shape nicht kritisch waren. 71 3 Geometrisch modellieren Konforme Alpha Shapes p ∈ P , σ1 , . . . , σk Delaunay Simplices inzident zu p in Delaunay Triangulierung von P . Sei α(σi ) der Alphawert für den σi im Alpha Shape von P auftaucht. Annahme α(σi ) ≤ α(σi+1 ) Lokales Wachstum des Balles im Zentrum p: Seien αp+ > αp− ∈ {α(σi )} αp (α̂) = αp+ (Radius des Balles mit Zentrum p als Funktion des Parameters α̂ ∈ [0, ∞)) + αp− Konforme Alpha Shapes: Einschränkung der Delaunay Triangulierung von P auf das S topologische Innere (Menge ohne Rand) von p∈P Cpα̂ = C α̂ Cpα̂ = Vp ∩ B(p, αp (α̂)) Behauptung Konforme Alpha Shapes (für wachsendes α̂) sind Filtrierung des Delaunay Triangulierung von P . Beweis: zu zeigen (1) Für hinreichend große α̂ ist das konforme Alpha Shape die Delaunay Triangulierung von P . (2) Für α̂1 < α̂2 gilt: die Simplices im konformen Alpha Shape zu α̂1 sind auch Simplices des konformen Alpha Shapes zu α̂2 (3) ein Simplex im konformen Alpha Shape erscheint nicht später als seine Co-Faces zu (1) Folgt daraus, dass C α̂ ïm Limes"α̂ gegen unendlich den ganzen Raum überdeckt. zu (2) Folgt aus C α̂1 ⊂ C α̂2 zu (3) Beobachtung: α̂(σ) (Wert, bei dem σ im konformen Alpha Shape auftaucht.) = maxp1 ,...,pk inf {α̂|αpi (α̂) ≥ α(σ)} wobei p1 , . . . , pk die Vertices des Simplex σ sind. Zu zeigen: σ taucht nicht später auf, als alle seine Co-Faces. Es gibt Vertex pi von σ mit αpi (α̂(σ)) = α(σ) ≤ α(τ ) ≤ αpi (α̂(τ )) hierbei τ Co-Face von σ. Nach Konstruktion ist αpi eine monoton wachsende Funktion. => α̂(σ) ≤ α̂(τ ), was zu zeigen war. Ziel: Zeige, dass konforme Alpha Shapes besser geeignet sind für Flächenrekonstruktion als Alpha Shapes. Dazu unterschiede von Konformen- und Alpha-Shapes. 72 3.2 Flächenrekonstruktion Satz 3.1 Alle α-kritischen Delaunay-Simplices sind auch α̂-kritisch. (Achtung: Die Umkehrung gilt nicht.) Beweis: Sei σ ein α-kritischer Simplex mit Vertices p1 , . . . , pk , d. h. σ ist α-spät (erscheint also später als alle seine Faces im Alpha Shape) und α-früh (d. h. erscheint vor all seinen Co-Faces im Alpha Shape). Zu zeigen: α ist α̂-spät und α̂-früh. (1) α̂-spät: Reicht Behauptung für alle (k − 2)-Faces zu zeigen. Sei ρi (k + 2)-Face, das durch weglassen von pi entsteht. α̂(ρi ) = max inf {α̂|αpj (α̂) ≥ α(ρi )} < α̂(ρi ) = max inf {α̂|αpj (α̂) ≥ α(σ)}(Weil α(σ) > α(ρi ), da σα-spät ist.) ≤ pj ,j6=i pj ,j6=i (2) α-früh. Reicht zu zeigen für k-Dimensionale Co-Faces von σ. Sei τ so ein Co-Face mit zusätzlichem Vertex p. α̂(σ) = maxpj ∈{p1 ,...,pk } inf {α̂|αpj (α̂) ≥ α(σ)} < α̂(σ) = maxpj ∈{p1 ,...,pk } inf {α̂|αpj (α̂) ≥ α(τ )}(W eilα(σ) < α(τ )) (1) und (2) => σ ist α̂-kritisch, was zu zeigen war. Konforme Alpha Shapes für Flächenrekonstruktion: [Bild] Idee: Skaliere das Ballwachstum, so dass erscheinen von Simplices inzident zu Sample Punkt P nur von der Form von Vp abhängt, aber nicht von der Skalierung. Dazu: αp− = αp1 = 0 (nämlich p selbst zum Zeitpunkt α = 0 im Alpha Shape auf) αp+ = kp − p∗ k, p∗ zweiter Pol von p (1) Voronoi Zelle beschränkt, dann P ol(p) Voronoi-Vertex in Vp , der größten Abstand zu p hat. [Bild] P ol(p) - p Pol-Vektor (2) Falls Vp unbeschränkt ist, dann ist der Pol-Vektor die „durchschnittliche Richtung“ aller Voronoi-Kanten. [Bild] Zweiter Pol (auch negativer Pol genannt) von p ist der am weitesten entfernte Vertex q von p in Vp , im Halbraum mit beschränkender Hyperebene mit normale der Pol-Vektor, d. h. ](P ol − V ektor, p − q) ≥ π2 Lemma 3.16 ε Sei Σ eine glatte Fläche, P sei ein ε-Sampling von Σ. Dann ist für α̂ ≥ η := 1−ε die Delaunay Triangulierung von P eingeschränkt auf Σ (d. h. DΣ (P )) im konformen Alpha Shape zu 2 enthalten. 73 3 Geometrisch modellieren Beweis: Sei αpi der größte α-Wert für den ein Simplex σ aus DΣ (P ) inzident zu p ∈ P im Alpha Shape erscheint. Dann ist αpi ≤ ηf (p) [ε-Sampling Bedingung und Feature Translation Lemma] αp+ ≥ f (p) [Da Voronoizelle Vp Mittelpunkt der medialen Achsenbälle Tangential an Σ in p enthält] => α̂pC = αip α+ p ≤ ηf (p) f (p) ≤η Vorlesung vom 13.1.09 fehlt.. 74 4 Topologie (Homologie) Definition 4.1 (Topologischer Raum) Menge X, σ ⊆ P (X) (Menge aller Teilmengen) 1. ∅, X ∈ σ 2. Beliebige Vereinigung von Mengen aus σj sind wieder in σ 3. endliche Schnitte von Mengen sind wieder in σ Definition 4.2 (Stetige Abbildung) Seien X, Y topologische Räume. X 7→ Y heißt stetig, falls das Urbild einer offenen Menge immer offen ist. Definition 4.3 (Homeomorphismus) f : X 7→ Y heißt homeomorphismus, falls f bijektiv ist und sowohl f als auch f −1 stetig sind. Definition 4.4 (Homeomorph) X, Y heißen homeomorph, falls es homeomorphismus f : X 7→ Y gibt. [X und Y sind im topologischen Sinne gleich] Testen auf homeomorphie ist schwierig. [Nicht im Sinne von Berechenbarkeitstheorie, aber im technischen Sinn, d. h. es gibt wenige Werkzeuge.] Klasifizieren von Flächen (geschlossene Flächen) 1. orientierbare Flächen (normale: Kugel, Donut, zusammengeklebte Donuts) 2. nicht-orientierbaree Flächen (Kugel mit rundem Ausschnitt, in Ausschnitt ist Möbiusband geklebt (Hat Kreis als Rand)) Zylinder -> Fläche mit Rand, keine Manigfaltigkeit mehr. Definition 4.5 (Homotopyäquivalenz) Seien X, Y topologische Räume. Zwei stetige Abbildungen f, g : X 7→ Y heißen homotop zueinander, falls es eine stetige Abbildung H : X × [0,1] 7→ Y gibt, so dass H(x,0) = f (x) und H(x,1) = g(x)∀x ∈ X. 75 4 Topologie (Homologie) Definition 4.6 (Homotopyäquivalent) X, Y sind homotopyäquivalent, falls es stetige Abbildungen f : X 7→ Y und g : X 7→ Y gibt, so dass g ◦ f homotop ist zu IDx und f ◦ g homotop ist zu IDy . IDx : X 7→ X identische Abbildung x 7→ x. Definition 4.7 (Deformationsretrakt) Sei X ein topologischer Raum und Y ⊂ X Unterraum. Ein Deformationsretrakt ist eine stetige Abbildung F : X × [0,1] 7→ X mit 1. F (x,0) = x∀x ∈ X 2. F (x,1) ∈ Y ∀x ∈ X 3. F (y, t) = y∀y ∈ Y, ∀t ∈ [0,1] Beispiel 4.1 Bild: Kreisscheibe, viele Pfeile gehen von Kreisscheibe richtung Mittelpunkt. Länge der Pfeile etwa halber Radius. Kreisscheibe ist homotopyäquivalent zu einem Punkt. Bild: Zwei zusammengeklebte Donuts, mediale Achse, Pfeile vom rand richtung mediale Achse. Jede offene Teilmenge des Rd ist homeotopyäquivalent zu seiner medialen Achse. Hier nur topologische Räume, die Teilmengen des Rd sind. σ für Rd besteht aus allen Teilmengen X ⊆ Rd , so dass für jedes x ∈ X gibt es εx > 0, so dass B(x, εx j) ⊆ X Topologie für Σ ⊂ Rd : σΣ = {Σ ∩ O|O ∈ σ} Definition 4.8 (Homotopie invariante) Eine Invariante ordnet topologischen Räumen algebraische Objekte zu (z. B. Gruppen, Körper oder Zahlen), so dass wenn für zwei topologische Räume X, Y gilt i(X) 6= i(Y ), dann sind X und Y nicht homotopieäquivalent. 4.1 Homologietheorie Invarianten für topologische Räume X ⊆ Rd (X erbt die Topologie von Rd ) Berechnungen für allgemeines X schwierig, deshalb Einschränkung auf spezielle Teilmengen: simpliziale Komplexe. Definition 4.9 (k-Simplex) Die konvexe Hülle von k + 1 affin unabhängigen Punkten im Rd heißt k-Simplex. 76 4.1 Homologietheorie Seien p1 , . . . , pk+1 affin unabhängig. σ(p1 , . . . , pk+1 ) ist der zugehörige k-Simplex und für jede Teilmenge P ⊂ {p1 , . . . , pk } ist τ = σ(P ) ein Face von σ = σ(p1 , . . . , pk+1 ). Definition 4.10 (Simplizialer Komplex) Ein simplizaler Komplex K ist Menge von Simplices mit: 1. σ ∈ K => jedes Face von σ ist in K 2. σ, τ ∈ K => σ ∩ τ = ∅ oder σ ∩ τ ist gemeinsames Face von σ und τ Ziel: konstruiere abelsche Gruppen aus den Mengen der k-Simplices, k = 0,1,2,3, . . . Definition 4.11 (Abelsche Gruppe) (G, +) mit Menge G und Abbildung + : G × G → G, so dass: 1. ∀a ∈ G : ∃ − a ∈ G mit a + (−a) = 0 [Existenz eines Inversen] 2. Kommutativ ∀a, b ∈ G gilt: a + b = b + a Definition 4.12 (Untergruppe) H ⊆ G ist Untergruppe von G, falls H selbst eine Gruppe ist, wenn wir + einschränken auf H. Insbesondere 0 ∈ H. Definition 4.13 (Ko-Menge) Sei H Untergruppe von G und a ∈ G, dann ist die Menge a + H eine Ko-Menge. Beobachtung Es gibt immer eine Bijektion von H auf eine Ko-Menge, da b 6= c ∈ H impliziert a + b = a + c. Definition 4.14 (Quotient) Sei G abelsche Gruppe und H Untergruppe, dann ist der Quotient G|H die Menge aller Ko-Mengen. Beobachtung 1. Für a, b ∈ G gilt entweder a) a + H = b + H, oder b) (a + H) ∩ (b + H) = ∅ 2. Der Quotient G|H ist selbst wieder eine abelsche Gruppe mit der Addition (a + H) + (b + H) = a + b + H Beachte: Addition hängt nicht von Repräsentation der Ko-Menge ab. z ∈ a + H => ∃ha ∈ H mit z = a + ha z + H = a + ha + H = a + H 3. Falls G eine endliche Gruppe ist, d. h. G hat nur endlich viele Elemente, dann kG|Hk = kGk|kHk 77 4 Topologie (Homologie) Definition 4.15 (Gruppen Homomorphismus) Seien G und G0 eine Abbildung f : G → G0 heißt Gruppenhomomorphismus, falls F mit der Addition kommutiert, d. h. f (a + b) = f (a) + f (b) Definition 4.16 (Kern & Bild eines Homomorphismus) Sei f : G → G0 Gruppenhomomorphismus, dann ist Bild(f ) ⊆ G0 : {b ∈ G0 |∃a ∈ G0 mit f (a) = b} Kern(f ) ⊆ G : {a ∈ G|f (a) = o ∈ G} Bild(f ) ist Untergruppe von G0 und Kern(f ) ist Untergruppe von G. Definition 4.17 (Addition mit simplizialen Komplexen) Sei Y simplizaler Komplex und Yk = {σ ∈ Y |dim(σ) = k} K-te Kettengruppe Ck . Sei P (Yk ) die Menge aller Teilmengen von Yk . Wir definieren eine Addition auf Ck wie folgt: a, b ∈ Ck : a + b := (a ∪ b) \ (a ∩ b) (symmetrische Differenz) Beispiel 4.2 (Bild von Dreieck mit Ecken a,b,c. Fläche ist schraffiert.) Y1 = {{a, b}, {b, c}, {a, c}} C1 = {∅, {{a, b}}, {{b, c}}, {{a, c}}, {{a, b}, {b, c}}, {{a, b}, {a, c}}, {{b, c}, {a, c}}, {{a, b}, {b, c}, {a, c} (Bild: {{a,b},{b,c}} + {{a,c}} = {{a,b},{b,c},{a,c}} {{a,b},{b,c}} + {{a,c},{a,b}} = {{b,c},{a,c}} {{a,b},{b,c},{a,c}} + {{b,c}} = {{a,b},{a,c}} ) Definition 4.18 (Randhomomorphismus) δ · Ck → Ck+1 . Sei σ ∈ Yk , dann wird σ abgebildet auf seinen Rand, d. h. δ(σ) = {τ ∈ Yk−1 |τ ist ein Face von σ} δ ist definiert, als die additive Fortsetzung von δ von Simplices auf Ketten, d. h. sei a ∈ Ck , a = {σ1 , . . . , σn } dann δ(a) = δ(σ1 ) + δ(σ2 ) + . . . + δ(σn ) Definition 4.19 (Zyklen & Ränder) Ck+1 →δk+1 Ck →δk Ck−1 Zk = {a ∈ Ck |δk (a) = ∅} ⊆ Ck Zyklen in Ck als Kern von δk eine Untergruppe von Ck . Beispiel 4.3 1. (Bild: Dreieck abc, Inhalt nicht schraffiert) Z1 = {∅, {{a, b}, {b, c}, {a, c}}} 78 4.2 Simplizale Homologie 2. (Bild: Dreieck abc, Inhalt schraffiert, und Dreieck def) Z1 = {∅, {{a, b}, {b, c}, {a, c}}, {{d, e}, {e, f }, {d, f }, {{a, b}, {b, c}, {a, c}, {d, e}, {e, f }, {d, f }}}} Bk = {a ∈ Ck |∃b ∈ Ck+1 mit δk+1 (b) = a} ⊆ Ck Ränder in Ck . Als Bild von δk+1 eine Untergruppe von Ck . Beispiel 4.4 1. B1 = {∅} 2. B1 = {∅, {{a, b}, {b, c}, {a, c}}} Lemma 4.1 (Fundamentales Lemma der Homologietheorie) δk δk+1 (d) = ∅ Beweis: Sei σ ein (k + 1)-Simplex. Jedes (k − 1)-Face im Rand δk+1 (σ) gehört zu genau zwei k-Faces von σ => δk δk+1 (σ) = ∅ Sei d eine (k+1)-Kette. d = {σ1 , . . . , σn }. Dann gilt wegen der Linearität von δk+1 : δk δk+1 (d) = δk n X i=1 δk+1 (σi ) = n X δk δk+1 (σi ) = ∅ i=1 Folgerung Es gilt immer Bk ⊆ Zk ⊆ Ck , d. h. Bk Untergruppe von Zk und Zk Untergruppe von Ck . Definition 4.20 (k-te Homologiegruppe) k-te Homologiegruppe ist der Quotient. Zk |Bk =: Hk 4.2 Simplizale Homologie Y simplizaler Komplex Definition 4.21 (Kettengruppe) Kettengruppen Ck : Ck ist die Menge aller Teilmengen der k-Simplizes von Y . Wird Abelsche Gruppe mit Addition als symmetrische Diffeerenz a, b ∈ Ck : a + b := (a ∪ b) \ (a ∩ b) (Addition Modulo 2) Definition 4.22 (Randabbildung) Randabbildung δk : Ck → Ck−q : Bilde k-Simplizes auf ihren (k − 1)-Dimensionen . . . . 79 4 Topologie (Homologie) Definition 4.23 (Zyklengruppe) Zyklengruppen Zk : {a ∈ Ck |δk (a) = 0}, d. h. Zk sind die k-Ketten, deren Rand leer ist. Definition 4.24 (Randgruppen) Randgruppen: Bk : {a ∈ Ck |∃b ∈ Ck+1 mit δk+1 (b) = a}, d. h. Bk sind die k-Ketten, die (k + 1)-Ketten beranden. Folgerung Aus fundamentalen Lemma der Homologie (δk ◦ δk+1 = 0) folgt: Bk ⊆ Zk Definition 4.25 (Homologiegruppen) Homologiegruppen: Hk = Zk |Bk bild Bildliche Darstellung: Beispiel 4.5 homologie von Dreieck a,b,c: C0 = {∅, {a}, {b}, {c}, {a, b}, {a, c}, {b, c}, {a, b, c}} Z 0 = C0 B0 = {∅, {a, c}, {a, b}, {b, c}} H0 = Z0 |B0 = Menge aller Ko-Mengen von Z0 bezüglich B0 = {{a}+B0 = {{a}, {b}, {a, b, c}, }} = {b} + B0 = {a, b, c} + B0 {∅ + B0 = {∅, {a, b}, {b, c}, {a, c}}} = {a, b} + B0 = {b, c} + B0 } => |C0 | = |Z0 | = 8, |B0 | = 4, |H0 | = 2 => β0 = 1 C1 = {∅, {ab}, {bc}, {ac}, {ab, ac}, {ab, bc}, {ac, bc}, {ab, bc, ac}} Z1 = {∅, {ab, bc, ac}} B1 = {∅} H1 = {∅ + B1 = {∅}, {ab, bc, ac} + B1 = {∅, {ab, bc, ac}}}} => |H1 | = 2, β1 = 1 C2 = {∅}, Z2 = {∅}, B2 = {∅} => H2 = {∅} => |H2 | = 1 => β2 = 0 Bettizahlen(Dreieck) = (1,1,0) Beispiel 4.6 Beispiel 2: V = {a,b,c}, E = {{ab}, {bc}} C0 = {∅, {a}, {b}, {c}, {a, b}{b, c}, {a, c}, {a, b, c}} = Z0 B0 = {∅, {a, b}, {b, c}, {a, c}} => |H0 | = 2 => β0 = 1 Enttäuschend: Die nullte Bettizahl hilft nicht, Dreieck von Segment zu unterscheiden. C1 = {∅, {ab}, {bc}, {ab, bc}} 80 4.2 Simplizale Homologie Z1 = {∅} B1 = {∅} => H1 = {∅} => |H1 | = 1 => β1 = 0 C2 = {∅} = Z2 = B2 = H2 => β2 = 0 Bettizahlen(Segment) = (1,0,0) Beispiel 4.7 Beispiel 3: V = {a, b, c} , E = {{b, c}} C0 = {∅, {a} , {b} , {c} , {a, b} , {b, c} , {a, c} , {a, b, c}} = Z0 B0 = {∅, {b, c}} => |H0 | = 4 => β0 = 2 C1 = {∅, {bc}}, Z1 = {∅} => B1 = {∅} => H1 = {∅} => |H1 | = 1 => β1 = 0 ausserdem: β2 = 0 Bettizahl(Punkt + Segment) = (2,0,0) Beobachtung β0 zählt die Anzahl der Zusammenhangskomponenten des simplizialen Komplexes Beweis: Sei Y simplizialer Komplex mit n Kanten und m Zusammenhangskomponenten. Seien n1 , . . . , nm die Anzahl der Knoten in den einzelnen Zusammenhangskomponenten. n = n1 + . . . + nm Z0 = C0 = Menge aller Teilmengen der Knotenmenge => |Z0 | = 2n Beobachtung 1. Alle Teilmengen der Knotenmenge einer Zusammenhangskomponente beranden genau dann, wenn die Teilmenge eine gerade Anzahl von Knoten enthält. 2. genau die Hälfte aller Teilmengen hat gerade Anzahl von Knoten Folgerung m Anzahl der berandeten Teilmengen ist (2n−1 )(2n−1 ) . . . (2nm −1 ) = 2Σi=1 ni −m = 2n−m => |H0 | = |Z0 |B0 | = 2n /2n−m = 2m j => β0 = log2 |H0 | = m Formal: Y : d-Dimensionaler simplizaler Komplex, d. h. die Dimension des höchstdimensionalen Simplex in Y ist d: Definition 4.26 (Kettenkomplex) {∅} →δd+1 Cd →δd Cd−1 →δd−1 . . . C0 →δ0 {∅} Definition 4.27 (Rang einer endlichen Gruppe) Anzahl der Elemente in der Gruppe 81 4 Topologie (Homologie) Definition 4.28 (k-Betti Zahl) log2 des Rangs der k-ten Homologiegruppe. Zusammenhang der Eulerzahl und der Bettizahl: Y d-dimensionaler simplizialer Komplex. Ck die Anzahl der k-Simplizes in Y χ(Y ) = k k=0 (−1) Ck Pd (Graph in der Ebene: v − e + f = χ(G) = 2) Seien zk dei Anzahl der k-Zyklen, bk die Anzahl der k-Ränder Daraus folgt |Hk | = zk /bk => βk = log2 zk − log2 bk . Weiterhin log2 |Ck | = log2 zk + log2 bk−1 Bemerkung 4.1 δk : Ck → Ck−1 , dim Ck = dim Kern(δk ) + dim Bild(δk ) (aus Linearer Algebra) => χ(Y ) = Σ(−1)k Ck = Σ(−1)k (log2 zk + log2 bk−1 ) = Σ(−1j k (log2 zk − log2 bk )) = Σ(−1)k βk Achtung bei den Randfällen: log(bk−1 ) := 0 d. h. Eulerzahle ist alternierende Summe der Bettizahlen. => Wenn Bettizahl Homotopieinvariante, dann auch Eulerzahl. 4.3 Berechnung von Bettizahlen Ck , k-te Kettengruppe, δk : Ck → Ck−1 , Zk k-te Zyklengruppe (Kern der Randabbildung), Bk k-te Randgruppe (Bild der Randabbildung), Hk = Zk |Bk k-te Homologiegruppe. ck = log2 |Ck |, zk = log2 |Zk |, bk = . . . , βk = log2 |Hk | => ck = zk + bk−1 (Rangsatz aus linearer Algebra) βk = zk − bk (a) zk = zk + 1 (b) bk−1 = bk−1 + 1 82 4.3 Berechnung von Bettizahlen => (a) für den Rang von Hk (d. h. für βk ): βk = βk + 1 => (b) für den Rang von Hk−1 (d. h. für βk−1 ): βk−1 = βk−1 − 1 Bei Alpha Shapes: (a) erzeugt, (b) zerstört. Frage: Wie können wir Rang von Ck um eins erhöhen? Antwort: Durch Filtrierung des simplizialen Komplexes Y . Filtrierung von simplizialen Komplex Y Folge Y0 , Y1 , . . . , Yn von simplizialen Komplexen mit 1. Y0 = ∅, Y1 = Y, Yi ⊂ Yi+1 (Teilkomplex, d. h. alle simplizes aus Yi sind auch in Yi+1 ) 2. Yi und Yi+1 unterscheiden sich um genau einen Simplex Bemerkung 4.2 Aus der Forderung Yi simplizialer Komplex folgt, dass ein Face immer vor seinen Co-Faces eingefügt wird. Beispiel 4.8 Eindimensionaler simplizialer Komplex Bild: (Dreieck): ∅, ein Knoten, zwei Knoten, die Kante dazwischen, der dritte Knoten, zweite Kante, dritte Kante Hinzufügen eines k-Simplex erhöht ck um eins. β0 = 0, β1 = 0 β0 = 1, β1 = 0 β0 = 2, β1 = 0 β0 = 1, β1 = 0 β0 = 2, β1 = 0 β0 = 1, β1 = 0 β0 = 1, β1 = 1 Algorithmus: Union-Find Datenstruktur, die die folgenden 3 Operationen unterstützt: • Add(i): Erzeugt eine neue Komponente für Element i. • Find(i,j): Gibt „wahr“ zurück, falls i und j zur selben Komponente gehören, sonst „falsch“ • Union(i,j): Vereinige die Komponenten, zu der i und j gehören. 83 4 Topologie (Homologie) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Input: σ1 , . . . , σn Simplizes von Y in der Einfügereihenfolge gemäß der Filtrierung β0 = 0, β1 = 0 for i = 1 To n do if dim(σi ) = 0 then β0 = β0 + 1 Add(σi ) else {a, b} = Endpunkte von σi if F ind(a, b) = T rue then β1 = β1 + 1 else β0 = β0 − 1 U nion(a, b) end end end Algorithm 4.1: Berechnung der Bettizahlen im 2D Algorithmus für eindimensionale Komplexe: Erweiterung auf dreidimensionale Komplexe: Fallunterscheidung: Dim(σi ) = 0: Immer β0 = β0 + 1, erzeugen von Komponente = 1: entweder β0 = β0 − 1 (Zwei Komponenten werden verbunden) oder β1 = β1 + 1 (ein Loch wird hinzugefügt) = 2: entweder β1 = β1 − 1 (nicht berandende Kette wird berandend) oder β2 = β2 + 1 (erzeugen von 2-Zyklus) = 3: β2 = β2 − 1 zerstören von 2-Zyklus. Problem: Dim(σi ) = 2 Dreieck Lösungsidee: Gehe rückwärts durch die Filtrierung Bsp in der Ebene: Aufbau eines dualen Graphen. Entfernen von Dreiecken erzeugt Komponenten, entfernen von Kanten (a) vereinigt Komponenten oder (b) erzeugt einen Zyklus (a) β1 = β1 + 1 (Zerstören eines Zyklus im Komplement) (b) β0 = β0 − 1 (Erzeugt Zusammenhangskomponente im Komplement) 84 4.3 Berechnung von Bettizahlen Schwierigkeit: Was ist mit Kanten im Rand das simplizialen Komplexes? In Vorwärtsbetrachtung hat Kante Zyklus erzeugt, d. h. β1 = β1 + 1, aber hier vereinigt das entfernen keine Komponenten im dualen Graph. Lösung: Kompaktifizieren, d. h. füge virtuellen Punkt im „unendlichen“ hinzu plus den Kegel auf dem Rand. Zusätzliche Kanten verbinden Vertices auf dem Rand mit dem Punkt um unendlichen und Dreiecke aus Kanten auf dem Rand plus dem Vertex im unendlichen. Erweitert Filtrierung um zusätzliche Kanten und Dreiecke. Änderung: Einfügen des letzten Dreiecks zerstört nicht, sondern erzeugt. Eine Dimension höher: Kompaktifizieren von 3D simplizialen Komplex mittels Punkt im unendlichen, und rückwärts durchlaufen einer erweiterten Filtrierung erlaubt zu entscheiden, ob ein Dreieck erzeugt oder zerstört. –Vorlesung fehlt (30. 1. 09) Paaren von vernichtern und Erzeugern in persistenter Homologie Filtrierung: Y1 = ∅, Y2 , . . . , Yn = Y Filtrierung von Y , d. h. insbesondere Yj und Yj+1 unterscheiden sich in genau einem Simplex σj+1 = Yj+1 Yj Annahme: Alle σj gelabeld als Vernichter bzw. Erzeuger Persistente i-te Homologiegruppe: Dazu i-dimensionale Erzeuger und (i + 1)-Dimensionale Vernichter sortiert entlang der Filtrierung. Paaren von Vernichtern und Erzeugern: Dazu explizit Aufrechterhalten von Basis der i-ten Homologiegruppen Hij [i-te Homologiegruppe für j-ten Komplex] Explizite: Zyklen, die genau einen Erzeuger enthalten Beobachtung Eine solche Basis existiert immer Beweis: Induktion: Erster Zykel (d. h. für kleinstes j, so dass Hij nicht trivial) ist (= 0) wird vom ersten Erzeuger erzeugt. Induktionsschritt: Gegeben irgendein Zykel Z, der aktuellen Erzeugere enthält. Falls Zykel noch „ältere“ Zykel enthält, dann addiere die zugehörigen Basiszykel zu Z. Da Basiszykel genau einen Erzeuger enthält, kann Z durch diese Addition nicht leer werden. Außerdem entfernt jede Addition genau einen Basiszyklus. 85 4 Topologie (Homologie) Falls σl Erzeuger [von einem i-Zyklus], dann sei cl der zugehörige Basiszyklus. Jetzt Annahme: σj ist (i + 1)-dimensionaler Simplex, der vernichtet. => δσj ist ein Zyklus in Yj+1 . Wir können d ausdrücken als Summe: Σcl + Bj mit ck Basiszyklen. Diese Summe ist eindeutig [Eindeutige Darstellbarkeit aus Basis] Sei ci der jüngste Zyklus in dieser eindeutigen Darstellung und sei σi der zugehörige Erzeuger, dann Paaren wir σi und σj , d. h. Interpretation: Der durch σi erzeugte Zyklus wird durch σj zerstört. [eingekastet, erlaubt Berechnung der Lebensdauer der Features.] Jetzt: Berechnen der Paarung. Folge von Simplices σj = Yj Yj−1 , j = 2, . . . , n Array speichert an Stelle j den zugehörigen Vernichter, falls σj erzeugt und irgendwann vernichtet wird. Andernfalls speichern von ∞ falls σj erzeugt, aber nicht vernichtet wird, bzw. gar nichts, falls σj vernichtet. Außerdem wird Zeiger auf Liste die Simplices „älter“ als σj und σj enthält [falls σj erzeugt und vernichtet wird.] Füllen des Arrays: Gehen linear durch das Array. Annahme an Stelle j wird ein iVernichter eingefügt. Sei I die Indexmenge der i-Erzeuger in δσj , d. h. für alle i ∈ I gilt i < j. Sei k = max {i ∈ I}. Nachschauen im Array an der Stelle k gibt zwei Fälle: 1. Feld im Array an der Stelle k ist leer 2. Feld ist nicht leer, d. h. speichert Index von Vernichter mit Index kleiner als j und Zeiger auf iste mit Indizes kleiner als k. (1) Speichere j an der Stelle k und Zeiger auf I. (2) Update: I = (I ⊕ Lk ), d. h. symmetrische Differenz von I und der Liste Lk auf die im Feld mit Index k verwiesen wird. Weitermachen am neuen Wert von k. Was ist zu zeigen für diesen Algorithmus: 1. Algorithmus terminiert 2. Algorithmus ist korrekt 1. Beobachtung: k wird stetig kleiner und I 6= ∅, da δσj kein Randzyklus in Yj−1 ist. Füll Algorithmus terminiert. Vor dem Korrektheitsbeweis ein Beispiel: 86 4.3 Berechnung von Bettizahlen Beispiel 4.9 Filtrierung: Einfügen in dieser Reihenfolge: s, t, u, st, v, w, sw, tw, uv, sv. Array: 4 7 9 (+,0) (+,0) (+,0) (−,0) (+,0) (+,0) (−,0) (+,1) (−,0) (−,0) → → → → → → → → → → s t u st v w sw tw vu sv → → → 1 ∞ 2 4 (Erzeuger eines 0-Dimensionalen Zyklus) (Vernichter eines 0-Dimensionalen Zyklus) 3 4 5 9 6 7 7 8 ∞ 9 10 {1,2} {1,6} {3,5} Bei 10: s in erscheint in 1, v erscheint bei 5. max davon ist 5. 5 ist aber besetzt 10− > {1,3} = {1,5} ⊕ {3,5} 1 und 8 sind die Zusammenhangskomponenten, die überleben. Zusammenfassende Interpretation: 1. Die Zusammenhangskomponente, die bei j = 1 erzeugt wird, wird nicht zerstört. 2. Die Zusammenhangskomponente, die bei j = 2 erzeugt wird, wird bei j = 4 zerstört. 3. Die Zusammenhangskomponente, die bei j = 3 erzeugt wird, wird erst bei 10 zerstört. 4. Die bei 5 erzeugt wird, wird bei 9 zerstört 5. Bei 6 erzeugt, bei 7 zerstört 6. Der bei 8 erzeugt 1-Zyklus wird garnicht zerstört. (2) Der Korrektheitsbeweise Sei f der Zyklus δσj [σj sei i-Vernichter] und i der „jüngste“ Basiserzeuger in eindeutiger Basisdarstellung von f . Sei k der kollisionsfreie Index beim Einfügen von σj Wir können zeigen: k = i (a) 87 4 Topologie (Homologie) Beobachtung Yl enthält keinen zu f homologen Zyklus [die homologieklasse von f wird erst zum Zeitpunkt i erzeugt.] ⇒ k ≥ i (b) zu zeigen k ≤ i. Annahme: k > i. Sei g die Homologieklasse, die zum Zeitpunkt k erzeugt wird. g und f müssen homolog sein, d. h. g = f + c mit einem Randzyklus c. Da σk der jüngste Erzeuger in g ist, ist σk auf jüngster Erzeugeer in c. Da Array an Stelle k kollisionsfrei war, kann σk nicht der Erzeuger sein, der für Rand c vernichtet wurde. Daraus folgt: c muss einen „jüngeren“ Erzeuger enthalten. Das ist ein Widerspruch. ⇒ k = i 88 5 Meshing Bisher: Kurvenmeshing (Kurvenrekonstruktion) bzw. Flächenmeshing (Flächenrekonstruktion) Delaunay-Dreiecke innerhalb der rekonstruierten Kurve Σ sind nicht unbedingt Dreiecke „guter“ Qualität. Gute Dreiecke: 1. Der kleinste Winkel in jedem Dreieck ist mindestens α 2. der größte Winkel ist höchstens π − β 3. Das Verhältnis der Höhe über der längsten Seite zur Längsten Seite,d. h. mindestens λ (Wir wollen das die Dreiecke eine gewisse Dicke haben) kc−xk ka−bk ist Verhältnis von 1,2 und 3: 1 → 2: Falls kleiner Winkel mind. α, dann ist der größte Winkel höchstens π − α 2 9 1: Man kann den kleinsten Winkel immer kleiner machen, ohne das dies Einfluss auf den größten Winkel haben muss 3 ↔ 1: α kleinster Winkel, x ist Schnittpunkt der Kante mit der Höhe an c a) sin α = kc−xk ka−ck b) ka − ck ≤ ka − bk c) ka − ck ≥ kb − ck => ka − bk ≤ ka − ck + kb − ck ≤ 2ka − ck => 1 sin α = ka−ck kc−xk ≤ ka−bk kc−xk ≤ 2ka−ck kc−xk = 2 sin α ka−bk kc−xk ist 1/aspectratio, d. h. der Kehrwert des Aspect Ratio beschränkt den kleinsten Winkel von unten, und der kleinste Winkel beschränkt den Kehrwert des Aspekt Ratio von oben. (bzw. den Aspect Ratio von Unten). ⇒ d. h. es ist „egal“ ob wir 1 oder 3 sicherstellen. Idee: Einfügen zusätzlicher Knoten. Meshing Problem in der Ebene: 1. Gegeben Polygonale Region mit Randgraph G, unter umständen mit geforderten Kanten im Inneren 89 5 Meshing 2. Gesucht ist eine Triangulierung von G (und den inneren Kanten) deren Dreiecke alle einen kleinsten Winkel von mindestens α haben. Kleine Winkel im Eingabepolygon können nicht entfernt werden. 1 2 3 Berechne kleinstes Achsenparalleles Rechteck, das G enthält. Konstruiere 3x3 Gitter, in dem jede Zelle das Achsenparallele Rechteck aus 1 ist. Platziere G in die mittlere Zelle und füge die 12 Knoten auf dem Rand des Gitters zu G hinzu. Bereche die Delaunay-Triangulierung aller Knoten aus 2 Algorithm 5.1: Ruppert’s Meshing Algorithmus Ein Aufdringlicher Knoten ist ein Knoten der im diametrischen Umkreis einer Kante aus G liegt. Bemerkung 5.1 Falls Kante aus G keinen aufdringlichen Knoten hat, dann gehört sie zur DelaunayTriangulierung Probleme: 1. Es kann aufdringliche Knoten in Delaunay-Triangulierung aus 3 geben 2. Die Dreiecke aus der Delaunay-Triangulierung aus 3 haben nicht unbedingt einen kleinsten Winkel ≥ α Operationen: Split 1: Falls ab ∈ G und ab ∈ / Delaunay-Triangulierung aus 3, dann füge den mittelpunkt m des Segments ab zur Knotenmenge hinzu und füge am und mb zu G hinzu. Retriangulieren um die Delaunay-Eigenschaft wieder herzustellen. (Flips um alle Kanten wieder lokal Delauny zu machen) Split 2: Falls abc ein Dreieck aus der Delaunay-Triangulierung ist, dessen kleinster Winkel kleiner als α ist, dann füge den Mittelpunkt des Umkreises von abc zur Kontenmenge hinzu und re-trianguliere, um Delaunay-Eigenschaft wieder herzustellen. Algorithmus: 90 1 2 3 4 5 6 7 8 9 10 11 12 13 14 while true do while ∃ aufdringlicher Knoten do Wende Split 1 auf die zugehörige Kante an end if @ dünnes Dreieck then exit while loop end abc = dünnes Dreieck p = mittelpunkt des Umkreises von abc if p aufdringlich für Kanten e1 , . . . , ek , k ≥ 1 aus G then split 1 operation angewand auf e1 , . . . , ek end split 2 operationen für o, d. h. einfügen von p in Delaunay-Triangulierung. end Algorithm 5.2: 91 5 Meshing Prüfung: unterschied zu Algorithmik: numerik ist relevant floating point system grundlegend: delaunay-triangulierung, voronoi, eingeschränkte diagramme, auf welche mengen, was damit machen 92