28.10.2014 Aufrufe

Umwege in Polygonen - Universität Bonn

Umwege in Polygonen - Universität Bonn

Umwege in Polygonen - 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.

Knoten des Baumes tauchen genau alle Eckpunkte von P auf. Die Kanten s<strong>in</strong>d als Teile<br />

von kürzesten Wegen direkte, gerade Verb<strong>in</strong>dungsstrecken zwischen gegenseitig sichtbaren<br />

Eckpunkten. E<strong>in</strong> solcher Shortest Path Tree ist <strong>in</strong> Abb. 36 dargestellt.<br />

Um den Shortest Path Tree zu erhalten, s<strong>in</strong>d verschiedene Verfahren denkbar. Guibas<br />

et al. haben <strong>in</strong> [GHL + 87] e<strong>in</strong>en Algorithmus vorgestellt, der <strong>in</strong> l<strong>in</strong>earer Zeit O(n) zu e<strong>in</strong>em<br />

Eckpunkt p e<strong>in</strong>es schon triangulierten Polygons den Shortest Path Tree berechnet. Da nach<br />

Chazelle [Cha91] die Triangulierung e<strong>in</strong>es Poylgons ebenfalls <strong>in</strong> l<strong>in</strong>earer Zeit möglich ist,<br />

können wir auf diese Weise <strong>in</strong> Zeit O(n) e<strong>in</strong>en Shortest Path Tree zum Eckpunkt p erhalten.<br />

Abbildung 37: der Sichtbarkeitsgraph e<strong>in</strong>es Polygons<br />

E<strong>in</strong> andere Möglichkeit besteht dar<strong>in</strong>, zunächst <strong>in</strong> e<strong>in</strong>er Vorbereitungsphase den Sichtbarkeitsgraphen<br />

des Polygons zu berechnen (siehe Abb.37). Die Knoten dieses Graphen s<strong>in</strong>d<br />

wieder die Eckpunkte des Polygons. Die Kanten s<strong>in</strong>d alle direkten geraden Verb<strong>in</strong>dungen<br />

zwischen gegenseitig sichtbaren Eckpunktpaaren. Dieser Sichtbarkeitsgraph e<strong>in</strong>es Polygons<br />

lässt sich z.B. <strong>in</strong> O(n 2 ) durch n Rundläufe durch den Polygonrand analog zum Vorgehen <strong>in</strong><br />

[Lee83] bestimmen. Dabei kann man erreichen, dass <strong>in</strong> der berechneten Datenstruktur, die<br />

zu e<strong>in</strong>em Eckpunkt <strong>in</strong>zidenten Kanten des Sichtbarkeitsgraphen im Uhrzeigers<strong>in</strong>n sortiert<br />

gespeichert s<strong>in</strong>d.<br />

Anschließend kann man durch folgendes leichte Verfahren <strong>in</strong> l<strong>in</strong>earer Zeit den Shortest<br />

Path Tree berechnen. Man beg<strong>in</strong>nt mit den Kanten zu allen von p aus sichtbaren Punkten.<br />

Dann setzt man für jede Kante des bisher konstruierten Teiles des Shortest Path Tree, die zu<br />

e<strong>in</strong>em bestimmten Eckpunkt q führt, den Baum mit den Kanten des Sichtbarkeitsgraphen<br />

<strong>in</strong> q fort, die bildlich gesprochen h<strong>in</strong>ter die von P C <strong>in</strong> q gebildete Ecke biegen (siehe dazu die<br />

dünn gepunktet gezeichneten Verlängerungen der Kanten des Shortest Path Tree <strong>in</strong> Abb.<br />

36). Die zum Auff<strong>in</strong>den dieser Kanten benötigten Informationen können durch e<strong>in</strong>en l<strong>in</strong>earen<br />

Durchlauf durch alle Sichtbarkeitskanten für jeden Eckpunkt vorab berechnet werden.<br />

Wie auch immer man den Shortest Path Tree berechnet, danach können wir durch e<strong>in</strong>en<br />

von p aus gestarteten Durchlauf durch die n − 1 Kanten jedem Eckpunkt q die Länge des<br />

kürzesten Pfades π(p, q) zuordnen. Fassen wir das bisher erreichte <strong>in</strong> e<strong>in</strong>em Lemma zusammen:<br />

Lemma 7.3 Zu e<strong>in</strong>em e<strong>in</strong>fachen Polygon P und e<strong>in</strong>em der n Eckpunkte p des Polygons<br />

kann man <strong>in</strong> e<strong>in</strong>er Laufzeit von O(n) den zugehörigen Shortest Path Tree berechnen, bei<br />

dem zu jedem Knoten q die Distanz |π(p, q)| gespeichert ist.<br />

Um nun zu e<strong>in</strong>er Randkante e mit den Endpunkten q l und q r den Trichter bezüglich p<br />

55

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!