11.07.2015 Aufrufe

Berechnung der Triangulation eines Polygons in ... - Universität Bonn

Berechnung der Triangulation eines Polygons in ... - Universität Bonn

Berechnung der Triangulation eines Polygons in ... - Universität Bonn

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Die <strong>Berechnung</strong> <strong>der</strong> <strong>Triangulation</strong> <strong>e<strong>in</strong>es</strong><strong>Polygons</strong> <strong>in</strong> fast-l<strong>in</strong>earer Zeit.Ausarbeitung zum Vortrag von Adrian PolkoAnhand des Papers von Raimund Seidel: ”A Simple and Fast IncrementalRandomized Algorithm for Comput<strong>in</strong>g Trapezoidal Decompositions and forTriangulat<strong>in</strong>g <strong>Polygons</strong>”Im Rahmen des Informatik A-Sem<strong>in</strong>ars WS 2001/2002”Algorithmische Geometrie und Bewegungsplanung für Roboter”Rhe<strong>in</strong>ische Friedrich-Wilhelms-Universität <strong>Bonn</strong>, Institut fürInformatik I


11 E<strong>in</strong>führungDie <strong>Triangulation</strong> von Polygonen f<strong>in</strong>det <strong>in</strong> vielen Bereichen Anwendung, deshalb war die Berechenbarkeitdieses Problems schon früher von großer Bedeutung. Trotzdem blieb diese Berechenbarkeitbis vor e<strong>in</strong>em Jahrzehnt ungelöst. Das Problem kann wie folgt näher spezifiziert werden:Problem: Gegeben seien die Koord<strong>in</strong>aten von n aufe<strong>in</strong>an<strong>der</strong> folgenden Ecken <strong>e<strong>in</strong>es</strong> e<strong>in</strong>fachen <strong>Polygons</strong>P . Gesucht werden n − 3 Diagonalen, die P <strong>in</strong> n − 2 Dreiecke teilen.E<strong>in</strong>e kurze Geschichte: 1978 veröffentlichte Garey e<strong>in</strong> Verfahren mit <strong>der</strong> Komplexität O(n log n),welches auf e<strong>in</strong>em Sweep basierte. Vier Jahre später präsentierte Chazelle e<strong>in</strong>en Algorithmus mitgleicher Komplexität. Die O(n log n) Grenze wurde dann von O(n log C P ) unterboten, wobei C P den”shape” Parameter beschreibt, <strong>der</strong> nicht größer als n ist und vom Polygon P abhängt.Tarjan und Van Wyk machten 1986 e<strong>in</strong>en Durchbruch mit e<strong>in</strong>em O(n log log n) Algorithmus. DreiJahre später erreichte auch e<strong>in</strong> e<strong>in</strong>facheres Verfahren von Kirkpatrick diese Zeitschranke. Zwischenzeitlichpräsentierte Clarkson e<strong>in</strong>en randomisierten Algorithmus mit <strong>der</strong> erwarteten LaufzeitO(log ∗ n). Schließlich entdeckte Chazelle e<strong>in</strong> determ<strong>in</strong>istisches Verfahren mit l<strong>in</strong>earer Laufzeit,welches die Frage <strong>der</strong> Komplexität dieses Problems beantwortete.Diese Ausarbeitung stellt e<strong>in</strong>en randomisierten Algorithmus mit <strong>der</strong> erwarteten Laufzeit O(n log ∗ n)vor. Die Tugend des Verfahrens liegt <strong>in</strong> <strong>der</strong> E<strong>in</strong>fachheit. Außerdem ist dieser Algorithmus praktischund läßt sich leicht implementieren, was man von den meisten o.g. Algorithmen nicht behauptenkann. Wie die meisten Vorgänger, kann unserer Algorithmus e<strong>in</strong> Polygon P nicht direkt triangulieren.Zunächst wird e<strong>in</strong>e Struktur berechnet, die als ”Trapezzerlegung” von P bezeichnet wird.Fournier und Montuno stellten fest, dass sich die <strong>Triangulation</strong> von P aus dieser Struktur <strong>in</strong>l<strong>in</strong>earer Zeit ableiten läßt.


22 TrapezzerlegungIn diesem und folgenden Abschnitten arbeiten wir <strong>in</strong> <strong>der</strong> euklidischen Ebene mit dem üblichenx-y Koord<strong>in</strong>atensystem.Def<strong>in</strong>ition 1 Zwei L<strong>in</strong>iensegmente <strong>in</strong> <strong>der</strong> Ebene heißen kreuzungsfrei, falls ihre Schnittmenge leerist, o<strong>der</strong> aus e<strong>in</strong>em geme<strong>in</strong>samen Endpunkt besteht.Def<strong>in</strong>ition 2 Sei S e<strong>in</strong>e Menge von n kreuzungsfreien und nicht-horizontalen L<strong>in</strong>iensegmenten <strong>in</strong><strong>der</strong> Ebene. Für jedes Segment aus S und jeden Endpunkt p <strong>e<strong>in</strong>es</strong> L<strong>in</strong>iensegments zeichnen wir zweihorizontale Strahlen, die sich nach rechts und l<strong>in</strong>ks von p erstrecken, bis sie auf an<strong>der</strong>e L<strong>in</strong>iensegmente<strong>in</strong> S stoßen. Für jeden Endpunkt p <strong>e<strong>in</strong>es</strong> L<strong>in</strong>iensegments bezeichnen wir die zwei horizontalenStrahlen, die durch p verlaufen, als horizontale Erweiterung durch p.Def<strong>in</strong>ition 3 Die L<strong>in</strong>iensegmente <strong>in</strong> S bilden zusammen mit ihren horizontalen Erweiterungen e<strong>in</strong>enplanaren Graphen, den wir Trapezzerlegung von S, o<strong>der</strong>kurzT (S) nennen.Abbildung 1: Trapezzerlegung von 5 L<strong>in</strong>iensegmenten


3Da jede Fläche von T (S) aus zwei horizontalen Seiten besteht, (wobei e<strong>in</strong>e die Länge 0 haben kann- wie <strong>in</strong> <strong>der</strong> Abbildung 1 -) werden diese Flächen Trapeze genannt.Was ist die Komplexität von T (S)? Falls S aus n L<strong>in</strong>iensegmenten besteht, gibt es höchstens2n verschiedene Endpunkte. Zu jedem Endpunkt gehört die horizontale Erweiterung, die höchtenszwei Knoten <strong>in</strong> T (S) verursacht.T (S) hat deshalb höchstens 6n Knoten. Außerdem ist dieser Graphplanar und hat deshalb T (S) O(n) Kanten und Flächen.Unserer Algorithmus erfor<strong>der</strong>t, dass jedes Trapez <strong>in</strong> T (S) höchstens mit jeweils zwei Trapezenoberhalb und unterhalb benachbart ist. Wir bezeichnen e<strong>in</strong> Trapez als nicht degeneriert, wenn se<strong>in</strong>eOber- bzw. Unterseite sich höchstens über zwei an<strong>der</strong>e Trapezunter- bzw. oberseiten erstreckt.Diese Eigenschaft wird automatisch e<strong>in</strong>gehalten, wenn die Endpunkte <strong>der</strong> L<strong>in</strong>iensegmente <strong>in</strong> S unterschiedlichey-Koord<strong>in</strong>aten haben. Von nun an nehmen wir an, dass S diese Eigenschaft besitzt. Wieauch <strong>in</strong> [CTV] erwähnt, ist diese Eigenschaft ke<strong>in</strong>e E<strong>in</strong>schränkung <strong>der</strong> Allgeme<strong>in</strong>heit, da diese Eigenschaftdurch e<strong>in</strong>e kle<strong>in</strong>e Drehung des Koord<strong>in</strong>atensystems erzielt werden kann. Die Drehung kannauch durch e<strong>in</strong> lexikoographische Anordnung simuliert werden: Haben zwei verschiedene Endpunktegleiche y-Koord<strong>in</strong>aten, dann liegt <strong>der</strong> Punkt mit <strong>der</strong> kle<strong>in</strong>eren x-Koord<strong>in</strong>ate tiefer.Abbildung 2: Degenerierte Menge von L<strong>in</strong>iensegmentenDie degenerierte Menge von L<strong>in</strong>iensegmenten (Abbildung 2) kann durch Drehung des Koord<strong>in</strong>atensystemso<strong>der</strong> durch lexikographische Anordnung zu e<strong>in</strong>em nicht degenerierten System umgewandeltwerden (Abbildung 3).Abbildung 3: Degeneration wurde durch Drehung o<strong>der</strong> lexikographische Anordnung behoben.


4Schließlich wollen wir noch die Beziehung zwischen <strong>der</strong> Trapezzerlegung und <strong>der</strong> <strong>Triangulation</strong> <strong>e<strong>in</strong>es</strong>e<strong>in</strong>fachen <strong>Polygons</strong> herstellen. Diese Beziehung wurde bereits <strong>in</strong> [FM] und [CI] entdeckt.Sei S = {s 0 ,s 1 ,...,s n−1 } e<strong>in</strong>e Menge von L<strong>in</strong>iensegmenten, die e<strong>in</strong>e geschlossene Polygonhüllebilden. Dabei haben s i und s i+1 e<strong>in</strong>en geme<strong>in</strong>samen Endpunkt. Für zwei L<strong>in</strong>iensegmente s i ,s j ∈ Sgilt foldende Bed<strong>in</strong>gung : s i ∩ s j = ∅ , falls |i − j| > 1 (wir betrachten alle Indizes modulo n). DieHülle bildet nun e<strong>in</strong> e<strong>in</strong>faches Polygon P mit n Ecken. Um P zu triangulieren, müssen wir n − 3kreuzugsfreie Diagonalen f<strong>in</strong>den, die P <strong>in</strong> n − 2 Dreicke teilen.Lemma 1 Sei S = {s 0 ,s 1 ,...,s n−1 } e<strong>in</strong>e Menge von Ecken auf <strong>der</strong> Hülle <strong>e<strong>in</strong>es</strong> e<strong>in</strong>fachen <strong>Polygons</strong>P .IstT (S) bekannt, dann kann die <strong>Triangulation</strong> von P <strong>in</strong> Zeit O(n) berechnet werden.Beweis : Wir nehmen an, dass P ke<strong>in</strong>e Ecken mit gleicher y-Koord<strong>in</strong>ate hat. Wie bereits erwähnt,lässt sich diese Bed<strong>in</strong>gung ohne Weiteres herstellen, so dass die Allgeme<strong>in</strong>heit une<strong>in</strong>geschränkt bleibt.Die <strong>Berechnung</strong> <strong>der</strong> <strong>Triangulation</strong> des <strong>Polygons</strong> P , ausgehend von T (S), geschieht <strong>in</strong> drei Schritten:Im ersten Schritt werden alle Trapeze entfernt, die außerhalb von P liegen.Abbildung 4: T (S) nachdemdieäußeren Trapeze entfernt wurden.Überprüfe, ob T (S) Trapeze enthält, die zwei Ecken von P auf verschiedenen Seiten be<strong>in</strong>halten. Fallse<strong>in</strong> solches Paar existiert, zeichne e<strong>in</strong>e Diagonale zwischen den Ecken.Abbildung 5: E<strong>in</strong>führung <strong>der</strong> Diagonalen <strong>in</strong> die Trapeze.Die e<strong>in</strong>gezeichneten Diagonalen, teilen P <strong>in</strong> y-monotone Unterpolygone auf.


5Abbildung 6: Aufteilung von P <strong>in</strong> Polygone, die leicht zu triangulieren s<strong>in</strong>d.✷Diese Klasse von Polygonen lässt sich <strong>in</strong> Zeit O(n) triangulieren. Die Verfahrensweise wird <strong>in</strong> [FM]und [CI] näher erläutert.3 AlgorithmusFür unsere Zwecke setzen wir e<strong>in</strong>e Datenstruktur für die Tarpezzerlegung T (S) voraus, die für jedesTrapez τ ∈T(S) e<strong>in</strong>en Zugriff auf die benachbarten Trapeze <strong>in</strong> konstanter Zeit ermöglicht. Weiterh<strong>in</strong>wird vorausgesetzt, dass T (S) nicht degeneriert ist. Wie auch schon im letzten Abschnitt erwähnt, istdiese Eigenschaft e<strong>in</strong>gehalten, wenn zwei verschiedene Endpunkte <strong>der</strong> L<strong>in</strong>iensegmente verschiedene y-Koord<strong>in</strong>aten haben. Dadurch ist gewährleistet, dass jedes Trapez <strong>in</strong> T (S) höchstens zwei obere bzw.untere Nachbarn hat. E<strong>in</strong>e <strong>der</strong>artige Datenstruktur erlaubt uns e<strong>in</strong>e effiziente Navigation durch T (S),d. h. wir können e<strong>in</strong>e Kurve C durch T (S) günstig verfolgen. Die Kosten, die dabei anfallen, s<strong>in</strong>dproportional zur Komplexität von C plus <strong>der</strong> Anzahl <strong>der</strong> Trapeze, die man bei dieser Tour durchläuft.Wir halten fest, dass die Größe dieser Datenstruktur l<strong>in</strong>ear zur Anzahl <strong>der</strong> L<strong>in</strong>iensegmente <strong>in</strong> S ist.Zusätzlich führen wir e<strong>in</strong>e Suchstruktur Q(S) mit.Q(S) soll uns helfen, für e<strong>in</strong>en beliebigen Punkt pdas Trapez zu f<strong>in</strong>den, das p enthält. Im Allgeme<strong>in</strong>en ist Q(S) e<strong>in</strong> gerichteter, azyklischer Graph mite<strong>in</strong>em Wurzelknoten und genau e<strong>in</strong>er Senke für jedes Trapez aus T (S). Je<strong>der</strong> Knoten, <strong>der</strong> ke<strong>in</strong>e Senkeist, hat zwei ausgehende Kanten und ist entwe<strong>der</strong> mit dem Etikett X o<strong>der</strong> Y versehen. Ist e<strong>in</strong> Knotenmit X gekennzeichnet, ist <strong>der</strong> Schlüssel dieses Knotens e<strong>in</strong> L<strong>in</strong>iensegment aus S. Falls <strong>der</strong> Knotenmit Y versehen ist, hat er e<strong>in</strong>e reelle Zahl als Schlüssel, die für die y-Koord<strong>in</strong>ate <strong>e<strong>in</strong>es</strong> Endpunktes<strong>e<strong>in</strong>es</strong> L<strong>in</strong>iensegments aus S steht (mit an<strong>der</strong>en Worten: Es ist die horizontale Erweiterung durchdiesen Endpunkt).Falls wir nun zu e<strong>in</strong>en beliebigen Punkt q das Trapez aus T (S) suchen, das q enthält, verfahren wir


6a1a y2s3b y14sb42 3Abbildung 7: Trapezzerlegung für das L<strong>in</strong>iensegment s und die dazugehörige Suchstruktur Q({s}).wie folgt: Wir beg<strong>in</strong>nen an <strong>der</strong> Wurzel von Q(S) und bewegen uns entlang <strong>e<strong>in</strong>es</strong> Pfades bis zu e<strong>in</strong>erSenke, die bekanntlich e<strong>in</strong>em Trapez aus T (S) entspricht. An jedem Knoten auf dem Pfad erfolgt e<strong>in</strong>Vergleich mit dem Schlüssel des Knotens. An e<strong>in</strong>em X-Knoten stellen wir fest, ob q sich l<strong>in</strong>ks o<strong>der</strong>rechts von dem L<strong>in</strong>iensegment bef<strong>in</strong>det, welches <strong>der</strong> Schlüssel dieses Knotens ist. Liegt q l<strong>in</strong>ks davon,folgen wir <strong>der</strong> l<strong>in</strong>ken Kante. Wenn q rechts vom Schlüsselsegment liegt, folgen wir <strong>der</strong> rechten Kante.Der Fall, dass q auf dem Schlüsselsegment liegt kann vernachlässigt werden, da dieser für unsereZwecke nicht relevant ist. Kommen wir an e<strong>in</strong>em Y -Knoten an, vergleichen wir die y-Koord<strong>in</strong>ate vonq mit dem Schlüssel des Knotens, <strong>der</strong> bekanntlich e<strong>in</strong>e horizontale Erweiterung <strong>e<strong>in</strong>es</strong> Endpunktesaus S repräsentiert. Liegt q oberhalb <strong>der</strong> horizontalen Erweiterung, wird <strong>der</strong> rechten Kante gefolgt.Wenn q unterhalb <strong>der</strong> horizontalen Erweiterung liegt, wird <strong>der</strong> l<strong>in</strong>ken Kante gefolgt. Da wir e<strong>in</strong> nichtdegeneriertesSystem vorf<strong>in</strong>den (laut Annahme) ist <strong>der</strong> Fall, dass q auf <strong>der</strong> horizontalen Erweiterungliegt, irrelevant.Weiterh<strong>in</strong> nehmen wir an, dass die Trapeze <strong>in</strong> T (S) mitdenSenken<strong>in</strong>Q(S) festverdrahtets<strong>in</strong>d,d. h. für jedes Trapez aus T (S) können wir <strong>in</strong> konstanter Zeit die entsprechende Senke <strong>in</strong> Q(S)bestimmen. Gleiches gilt für die und umgekehrte Richtung.Sei nun s e<strong>in</strong> nicht-horizontales L<strong>in</strong>iensegment mit dem oberen Endpunkt a und dem unterenEndpunkt b, das ke<strong>in</strong>e L<strong>in</strong>iensegmente aus S kreuzt. Sei S ′ = S ∪{s}. Im Folgenden möchten wirT (S ′ ) und Q(S ′ ) berechnen, wenn T (S) und Q(S) gegeben s<strong>in</strong>d.Falls <strong>der</strong> obere Endpunkt a ke<strong>in</strong> Endpunkt <strong>der</strong> L<strong>in</strong>iensegmente aus S ist, benutzen wir Q(S) umdas Trapez τ a , welches a enthält, zu lokalisieren. Das Trapez τ a wird mit e<strong>in</strong>er horizontalen L<strong>in</strong>ie, diedurch a verläuft, geteilt und wir erhalten damit e<strong>in</strong>e neue Trapezzerlegung T ′ . Die Senke aus Q(S),die τ a entspricht, verwandelt sich zu e<strong>in</strong>em Y -Knoten, dessen Schlüssel die y-Koord<strong>in</strong>ate von a ist.Die K<strong>in</strong><strong>der</strong>knoten s<strong>in</strong>d die zwei neuen Trapeze, die wir durch Teilung des Trapezes τ a erzeugt haben.Damit haben wir die Strukturen T ′ und Q ′ .Ist a e<strong>in</strong> Endpunkt <strong>e<strong>in</strong>es</strong> L<strong>in</strong>iensegments aus S, setzt man T ′ = T und Q ′ = Q.


7Wir wollen mit dem unteren Endpunkt b ähnlich verfahren und die Trapezzerlegung T ′′ sowie dieSuchstruktur Q ′′ aus T ′ bzw. Q ′ ableiten.Nun ”fädeln” 1 wir das L<strong>in</strong>iensegment s durch T ′′ , <strong>in</strong>dem wir alle Trapeze bestimmen, die von sdurchschnitten werden. Diese Trapeze werden <strong>in</strong> zweigeteilt und auf je<strong>der</strong> Seite verschmelzen wir diehorizontalen Erweiterungen aus T ′′ mit s. SoerhaltenwirT (S ′ ).Die Suchstruktur Q(S ′ ) erhalten wir wie folgt: Für jedes neue Trapez aus T (S ′ ) erzeugen wir dieentsprechende Senke <strong>in</strong> <strong>der</strong> Suchstruktur. Jede Senke aus Q ′′ ,dievons zerschnitten wurde, wirdzu e<strong>in</strong>em X-Knoten mit dem Schlüssel s und den zwei neuerzeugten Senken als K<strong>in</strong><strong>der</strong>knoten. DasTrapez aus T ′′ ,dasb enthält, bekommt noch e<strong>in</strong>en Y -Knoten, da es zusätzlich durch die horizontaleErweiterung, die durch b verläuft, geteilt wird.DieZeit,diewirbenötigen um T (S ′ ) und Q(S ′ )ausT (S) bzw.Q(S) abzuleiten, setzt sich aus<strong>der</strong> Zeit für die Lokalisirung <strong>der</strong> beiden Endpunkte und <strong>der</strong> ”thread<strong>in</strong>g”-Zeit zusammen. Letzteresist proportional zur <strong>der</strong> Anzahl <strong>der</strong> horizontalen Erweiterungen aus T (S), die s schneiden, o<strong>der</strong> <strong>der</strong>Anzahl <strong>der</strong> horizontalen Erweiterungen aus T (S ′ ), die <strong>in</strong> s münden.Wieviel Zeit brauchen wir um T (S) zu erzeugen, wenn wir die L<strong>in</strong>iensegmente nache<strong>in</strong>an<strong>der</strong>e<strong>in</strong>fügen, beg<strong>in</strong>nend mit leeren Strukturen? Offensichtlich ist dies abhängig von <strong>der</strong> E<strong>in</strong>fügereihenfolge.Zwar ist T (S) von dieser Reihenfolge unabhängig, Q(S) und die Zeit um e<strong>in</strong>en Punkt zulokalisieren, hängen aber sehr stark von dieser Reihenfolge ab. Schlechte Beispiele s<strong>in</strong>d schnell gefunden:Stellen wir uns e<strong>in</strong>e Menge S vor, mit n vertikalen L<strong>in</strong>iensegmenten, die die x-Achse schneiden.Werden die L<strong>in</strong>iensegmente nach <strong>der</strong> steigenden x-Koord<strong>in</strong>ate e<strong>in</strong>gefügt, dann werden die Pfade von<strong>der</strong> Wurzel zur Senke <strong>in</strong> Q(S) lang. Wollen wir nun e<strong>in</strong>en Punkt lokalisieren, <strong>der</strong> auf <strong>der</strong> x-Achseliegt und sich rechts von allen L<strong>in</strong>iensegmenten bef<strong>in</strong>det, dann benötigen wir O(n) Zeit.Künftig argumentieren wir, dass wenn die L<strong>in</strong>iensegmente <strong>in</strong> zufälliger Reihenfolge e<strong>in</strong>gefügt werden,wobei jede Anordnung mit gleicher Wahrsche<strong>in</strong>lichkeit vorkommt, verhält sich Q(S) <strong>in</strong>Erwartungbesser. Dadurch wird die erwartete Zeit für die Konstruktion <strong>der</strong> Strukturen auch angemessen,die sich bekanntlich aus <strong>der</strong> erwarteten Zeit für die Lokalisierung <strong>der</strong> Punkte und <strong>der</strong> erwarteten”thread<strong>in</strong>g”-Zeit zusammensetzt. Die folgenden Lemmata geben Auskunft über diese Zeiten.Lemma 2 Sei s 1 ,...,s n e<strong>in</strong>e zufällige Reihenfolge <strong>der</strong> L<strong>in</strong>iensegmente aus S, undS i = {s 1 ,...,s i }mit 0 ≤ i ≤ n. Für 1 1,log n


8Lemma 3 Sei s 1 ,...,s n e<strong>in</strong>e zufällige Reihenfolge <strong>der</strong> L<strong>in</strong>iensegmente aus S, undS i = {s 1 ,...,s i }mit 0 ≤ i ≤ n. Für 1 ≤ i ≤ n seien T (S i ) und Q(S i ) die Trapezzerlegung und Suchstruktur für S i ,die aus T (S i−1 ) bzw. Q(S i−1 ) durch E<strong>in</strong>fügen von s i entstanden s<strong>in</strong>d.Sei q e<strong>in</strong> Punkt, den man <strong>in</strong> T (S n ) mittels Q(S n ) lokalisieren möchte. Unter Berüchsichtigungaller Anordnungen von S beträgt die erwartete Anzahl von Schlüsselvergleichen 5H n ∈ O(log n).Beweis : Sei τ j das Trapez <strong>in</strong> T (S j ), das q enthält. Angenommen τ i−1 ist bekannt, was ist dann E i ,die erwartete Anzahl von Vergleichen um, τ i zu f<strong>in</strong>den? Mit an<strong>der</strong>en Worten: Wir kennen das Trapezaus T (S i−1 ), das q enthält. Was ist dann die erwartete Anzahl von Vergleichen, um das Trapez <strong>in</strong>T (S i ) zu f<strong>in</strong>den, welches q enthält?S<strong>in</strong>d τ i−1 und τ i gleich, dann s<strong>in</strong>d ke<strong>in</strong>e Vergleiche nötig. Falls die Trapeze verschieden s<strong>in</strong>d, istentwe<strong>der</strong> e<strong>in</strong>e <strong>der</strong> Seiten e<strong>in</strong> Teil des neuen L<strong>in</strong>iensegments s i o<strong>der</strong> die horizontalen Erweiterungendurch die Endpunkte von s i .Ist die rechte Seite von τ i e<strong>in</strong> Teil von s i ,istexakte<strong>in</strong>X-Vergleich zwischen q und s i nötig, umτ i zu identifizieren. zwischen q und s i . Wegen <strong>der</strong> zufälligen Anordnung ist die Wahrsche<strong>in</strong>lichkeitdafür, dass s i τ i von <strong>der</strong> rechten Seite e<strong>in</strong>grenzt, höchstens 1/i (τ i kann auch rechts unbegrenzt se<strong>in</strong>).Folglich beträgt <strong>der</strong> Erwartungswert für die Anzahl <strong>der</strong> Vergleiche zwischen q und <strong>der</strong> rechten Seitevon τ i höchstens 1/i. Wegen <strong>der</strong> Symmetrie folgt das Gleiche für die l<strong>in</strong>ke Seite von τ i .Falls die obere Seite von τ i e<strong>in</strong> Teil <strong>der</strong> horizontalen Erweiterung durch e<strong>in</strong>en Endpunkt von s iist, ist e<strong>in</strong> zusätzlicher Vergleich nötig, nämlich e<strong>in</strong> Y -Vergleich zwischen q und <strong>der</strong> horizontalenErweiterung. Wegen <strong>der</strong> zufälligen Reihenfolge <strong>der</strong> L<strong>in</strong>iensegmente tritt dieses Ereignis höchstensmit <strong>der</strong> Wahrsche<strong>in</strong>lichkeit 1/i auf. Gleiches gilt für die Unterseite von τ i .Die erwartete Anzahl von Vergleichen zwischen q und den Trapezseiten von τ i ist also höchstens4/i. Mike Hohmeyer fand heraus, dass noch e<strong>in</strong> zusätzlicher Vergleich auftreten kann: Wir nehmen an,dass die obere Seite von τ i , e<strong>in</strong> Teil <strong>der</strong> horizontalen Erweiterung durch den tiefergelegenen Endpunktvon s i ist (was mit <strong>der</strong> Wahrsche<strong>in</strong>lichkeit 1/i auftreten kann). Weiterh<strong>in</strong> nehmen wir an, dass eske<strong>in</strong>e horizontale Erweiterung gibt, die s i im Inneren schneidet, und dass ke<strong>in</strong> an<strong>der</strong>es L<strong>in</strong>iensegmentaus S i e<strong>in</strong>en geme<strong>in</strong>samen Endpunkt mit s i hat. Zusammengefasst bedeutet dies, dass s i komplett<strong>in</strong> τ i−1 enthalten se<strong>in</strong> muß. Um q <strong>in</strong> τ i zu lokalisieren, mußzuerst e<strong>in</strong> Vergleich zwischen q und <strong>der</strong>horizontalen Erweiterung des oberen Endpunktes stattf<strong>in</strong>den. Wenn also diese spezielle Konfigurationauftaucht, ist e<strong>in</strong> weiterer Vergleich mit <strong>der</strong> Wahrsche<strong>in</strong>lichkeit von höchstens 1/i nötig.Falls wir das Trapez τ i−i , welches q enhielt kennen, müssen wir <strong>in</strong> Erwartung 5/i Vergleicheanstellen, um das Trapez τ i zu f<strong>in</strong>den, das nach E<strong>in</strong>fügen von s i den Punkt q enthält. Es gilt deshalbE i =5/i. Um das Lemma zu beweisen genügt es, die gesamte erwartete Anzahl von Vergleichen zubetrachten ∑ 1≤i≤n E i. ✷Aus den Lemmata 2 und 3 und <strong>der</strong> davor geführten Diskussion folgt unmittelbar:Theorem 1 Sei S e<strong>in</strong>e Menge von n kreuzungsfreien, nicht-horizontalen L<strong>in</strong>iensegmenten <strong>in</strong> <strong>der</strong>Ebene. Seien T (S) die Trapezzerlegung und Q(S) die Suchstruktur von S, die durch <strong>in</strong>krementellesE<strong>in</strong>fügen <strong>der</strong> L<strong>in</strong>iensegmente aus S <strong>in</strong> zufälliger Reihenfolge entstanden s<strong>in</strong>d.1. T (S) und Q(S) können <strong>in</strong> <strong>der</strong> erwarteten Zeit O(n log n) aufgebaut werden.2. Die erwartete Größe von Q(S) ist O(n).3. Für e<strong>in</strong>en beliebigen Punkt q brauchen wir <strong>in</strong> Erwartung O(log n) Zeit, um q <strong>in</strong> T (S) mittelsQ(S) zu lokalisieren.(Die Erwartungswerte gelten h<strong>in</strong>sichtlich <strong>der</strong> zufälligen Anordnung <strong>der</strong> L<strong>in</strong>iensegmente aus S, wobeijede Permutation von S mit gleicher Wahrsche<strong>in</strong>lichkeit vorkommt.)


9Im Folgenden zeigen wir, dass wenn S L<strong>in</strong>iensegmente enthält, die e<strong>in</strong>e e<strong>in</strong>fache polygonale Kettebilden, können T (S) und Q(S) noch schneller aufgebaut werden.Der kosten<strong>in</strong>tensive Teil beim E<strong>in</strong>fügen <strong>e<strong>in</strong>es</strong> Segments sche<strong>in</strong>t die Lokalisierung <strong>der</strong> Endpunkte zuse<strong>in</strong>. Falls nun S aus e<strong>in</strong>er polygonalen Kette C besteht, kommt <strong>der</strong> Gedanke auf, die L<strong>in</strong>iensegmente<strong>der</strong> Reihe nach entlang C e<strong>in</strong>zufügen. Beim E<strong>in</strong>fügen <strong>e<strong>in</strong>es</strong> L<strong>in</strong>iensegments s i erspart man sich dieLokalisierung des geme<strong>in</strong>samen Endpunktes von s i und s i−1 , <strong>der</strong> bereits beim E<strong>in</strong>fügen von s i−1lokalisiert wurde. Die Position des an<strong>der</strong>en Endpunktes kann beim ”thread<strong>in</strong>g” ermittelt werden.Lei<strong>der</strong> verzichtet diese Strategie auf Randomisierung und man kann nicht mehr von konstantenKosten beim ”tread<strong>in</strong>g” ausgehen. Tatsächlich kann man schnell Beispiele f<strong>in</strong>den, wo <strong>der</strong> ”thread<strong>in</strong>g”-Vorgang O(i) Zeitfür n/2 ≤ i ≤ n benötigt, was dann zu e<strong>in</strong>em Algorithmus mit <strong>der</strong> Laufzeit O(n 2 )führt.Wir verfolgen die folgende Strategie: Die L<strong>in</strong>iensegmente werden weiterh<strong>in</strong> <strong>in</strong> zufälliger Reihenfolgee<strong>in</strong>gefügt. Gelegentlich halten wir aber an, um alle Endpunkte <strong>in</strong> <strong>der</strong> vorhandenen Trapezzerlegungzu lokalisieren, <strong>in</strong>dem wir uns entlang C bewegen. Um die Effizienz dieses Verfahrens zu zeigen,brauchen wir zwei Lemmata. Das erste Lemma sagt uns, wie uns die gewonnen Informationen überdie zwischenzeitliche Lokalisierung <strong>der</strong> Endpunkte weiterhelfen, das an<strong>der</strong>e h<strong>in</strong>gegen gibt Auskunftüber die Kosten <strong>der</strong> Verfolgung von C durch die Trapezzerlegung.Lemma 4 Sei s 1 ,...,s n e<strong>in</strong>e zufällige Reihenfolge <strong>der</strong> L<strong>in</strong>iensegmente aus S, undS i = {s 1 ,...,s i }mit 0 ≤ i ≤ n.Sei 1 ≤ j ≤ k ≤ n. Istq e<strong>in</strong> Punkt, dessen Position <strong>in</strong> T (S j ) bekannt ist, dann kann q mit Hilfevon Q(S k ) <strong>in</strong> T (S k ) <strong>in</strong>nerhalb <strong>der</strong> erwarteten Zeit 5(H k − H j ) ∈ O(log(k/j)) lokalisiert werden.Beweis : Wir verfahren wie im Beweis von Lemma 3. In diesem Fall beträgt die erwartete Lokalisierungszeit∑ j


10Bevor wir den Algorithmus präsentieren, müssen wir noch e<strong>in</strong> paar Worte zur Notation verlieren.Im Folgenden bezeichnet log (i) den i-ten iterierten Logarithmus, d.h. log (0) n = n und für i>0 giltlog (i) n = log(log (i−1) n). Für n>0 bezeichne log ∗ n die größte natürliche Zahl l, so dass log (l) n ≥ 1,und für n>0 und 0 ≤ h ≤ log ∗ n sei N(h) dieAbkürzung für ⌈n/ log (h) n⌉. WelcheGrößenordnunghat log ∗ n ?Nunfür ”praktische” Werte von n kann log ∗ n als Konstante angesehen werden. So istzum Beispiel log ∗ n ≤ 5für alle n ≤ 10 20000 .DieE<strong>in</strong>gabefür den unteren Algorithmus ist e<strong>in</strong>e e<strong>in</strong>fache, polygonale Kette C bestehend aus naufe<strong>in</strong>an<strong>der</strong>folgenden L<strong>in</strong>iensegmenten entlang C.1. Erzeuge s 1 ,...,s n e<strong>in</strong>e zufällige Reihenfolge <strong>der</strong> L<strong>in</strong>iensegmente aus C.2. Erzeuge die Trapezzerlegung T 1 und die dazugehörige Suchstruktur Q 1 für die Menge {s 1 }.3. for h =1to log ∗ n do3.1. for N(h − 1)


11Dieses Theorem lässt sich leicht verallgeme<strong>in</strong>ern. Schließlich setzt <strong>der</strong> Algorithmus nur e<strong>in</strong>e Eigenschaftvoraus, nämlich dass C e<strong>in</strong>e Zusammenhangskomponente repräsentiert. Stellt C e<strong>in</strong>enverbundenen, planaren Graphen G dar, würde sich dieses Ergebnis weiterh<strong>in</strong> bestätigen. Schritt 3.2müßte folglich modifiziert werden. In diesem Fall würden wir den kompletten Graphen durchlaufen,<strong>in</strong>dem wir e<strong>in</strong>en Algorithmus zur Graphdurchmusterung verwenden würden. Wenn wir jetzt nocherlauben, dass G aus mehreren Zusammenhangskomponenten besteht, lassen sich die Theoreme 1und 2 wie folgt vere<strong>in</strong>igen:Theorem 3 Sei S e<strong>in</strong>e Menge von kreuzungsfreien L<strong>in</strong>iensegmenten <strong>in</strong> <strong>der</strong> Ebene, die e<strong>in</strong>en planarenGraphen mit k Zusammenhangskomponenten repräsentiert. Weiterh<strong>in</strong> sei T (S) die Trapezzerlegungvon S.• Die Trapezzerlegung T (S) und die dazugehörige Suchstruktur Q(S) können <strong>in</strong> <strong>der</strong> ZeitO(n log ∗ n + k log n) aufgebaut werden.• Die ewartete Größe von Q(S) ist O(n).• Die erwartete Lokalisierungszeit für e<strong>in</strong>en beliebigen Punkt q beträgt O(log n).Beweis : Wir benutzen weiterh<strong>in</strong> den oben beschriebenen Algorithmus, än<strong>der</strong>n jedoch denSchritt 3.2 so ab, dass die L<strong>in</strong>iensegmente je<strong>der</strong> Zusammenhangskomponente des Graphen <strong>in</strong> <strong>der</strong>Reihenfolge e<strong>in</strong>er Graphdurchmusterung (z.B. Tiefensuche) abgelaufen werden. Bei diesem Schrittwerden die Zusammenhangskomponenten nache<strong>in</strong>an<strong>der</strong> abgearbeitet und die Endpunkte <strong>der</strong> nochnicht e<strong>in</strong>gefügten L<strong>in</strong>iensegmente müssten dann noch lokalisiert werden. Lemma 3 sagt aus, dass dieLokalisierungszeit für jede Zusammenhagskomponente <strong>in</strong> Erwartung O(log n) beträgt. ✷


12Literatur[C82] Chazelle, B. A theorem on polygon cutt<strong>in</strong>g with applications, Proc. 23rd Annual IEEE onFound. of Comput. Sci. (1982), 339-349.[C90] Chazelle, B. Triangulat<strong>in</strong>g a simple polygon <strong>in</strong> l<strong>in</strong>ear time, Pr<strong>in</strong>ceton Univ. Computer ScienceTech. Rep. CS-TR-264-90; to appear <strong>in</strong> Proc. 31st Annual IEEE Symp. on Found. of Comput.Sci. (1990)[CI] Chazelle, B., Incerpi, J. <strong>Triangulation</strong> and shape-complexity, ACM Trans. on Graphics 3 (1984),135-152.[CC] Clarkson, K. and Cole, R. Private Communication.[CTV] Clarkson, K., Tarjan, R.E., Van Wyk, C.J. A fast Las Vegas algorithm for triangulat<strong>in</strong>g asimple polygon, Disc. and Comput.Geom. 4(5) (1989), 432-432.[FM] Fournier, A., Montuno, D.Y. Triangulat<strong>in</strong>g simple polygons and equivalent problems, ACMTrans. on Graphics 3. (1984), 153-174.[GJPT] Garey, M.R., Johnson, D.S., Preparata, F.P., Tarjan, R.E. Triangulat<strong>in</strong>g a simple polygon,Inform. Process. Lett. 7 (1978), 175-180.[HM] Hertel, S., Mehlhorn, K. Fast triangulation of a simple polygon, Proc. Conf. Found. Comput.Theory, New York, Lecture Notes on Computer Science 158 (1983), 207-218.[HMRT] Hoffman, K., Mehlhorn, K., Rosenstiehl, P., Tarjan, R.E. Sort<strong>in</strong>g Jordan sequences <strong>in</strong> l<strong>in</strong>eartime us<strong>in</strong>g level-l<strong>in</strong>ked search trees, Infor. and Control 68 (1986), 170-184.[KKT] Kirkpatrick, D.G., Klawe, M.M, Tarjan, R.E. O(n log log n) polygon triangulation with simpledata structures, Proc. 6th Annual ACM Symp. Comput. Geom. (1990), 34-43.[TA82] Toussa<strong>in</strong>t, G. and Avis, D. On a convex hull algorithm for convex polygons and its applicationsto triangulation problems, Pattern Recognition 15,1 (1982), 23-29.[TV] Tarjan, R.E., Van Wyk, C.J. An O(n log log n)-time algorithm for triangulat<strong>in</strong>g a simple polygon,SIAM J. Comput. 17 (1988), 143-178.[T88] Toussa<strong>in</strong>t, G. An aoutput-complexity-sensitive polygon triangulation algorithm, ReportSICS-86.3, McGil. University, Montreal, 1988.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!