Umwege in Polygonen - Universität Bonn
Umwege in Polygonen - Universität Bonn
Umwege in Polygonen - Universität Bonn
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