28.02.2014 Aufrufe

Bahnplanungsframework für ein autonomes Fahrzeug - oops ...

Bahnplanungsframework für ein autonomes Fahrzeug - oops ...

Bahnplanungsframework für ein autonomes Fahrzeug - oops ...

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.

6.3 Datenstrukturen 73<br />

p u b l i c c l a s s B i n a r y S o r t e d L i s t where T : IComparable<br />

2 {<br />

p u b l i c L i s t l i s t = new L i s t ( ) ;<br />

4<br />

p u b l i c v oid Add ( T d a t a )<br />

6 {<br />

add ( data , 0 , l i s t . Count ) ;<br />

8 }<br />

10 p r i v a t e void add ( T data , i n t from , i n t t o )<br />

{<br />

12 i f ( from >= t o )<br />

{<br />

14 l i s t . I n s e r t ( from , d a t a ) ;<br />

r e t u r n ;<br />

16 }<br />

18 i n t mid = ( from + t o ) / 2 ;<br />

i f ( l i s t [ mid ] . CompareTo ( d a t a ) < 0)<br />

20 add ( data , mid + 1 , t o ) ;<br />

e l s e<br />

22 add ( data , from , mid ) ;<br />

}<br />

24 }<br />

Algorithmus (6.3): Funktion Add <strong>ein</strong>er sortierten Liste im C# Stil.<br />

6.3.3 OCTREE<br />

Möchte man effizient nach Konfigurationen suchen, so bietet der Octree <strong>ein</strong>e gute Möglichkeit die<br />

Daten so zu organisieren, dass die Suche in logarithmischer Zeit abläuft. Da die Konfigurationen drei<br />

Dimensionen x, y und θ haben und diese nach dem Prinzip „Devide & Conquer“ zweigeteilt werden,<br />

entstehen 8 mögliche Teilbäume. Dieses Prinzip wiederholt man so lange, bis die Abstände wischen<br />

den Rändern kl<strong>ein</strong> genug sind, so dass man diese als gleichen Knoten zusammenfassen würde. Diese<br />

Elemente des Octrees werden Blätter genannt, da der Raum an dieser Stelle nicht mehr weiter geteilt<br />

wird. Die Blätter des Octrees enthalten dann die gewünschten Daten und sind alle in gleicher Tiefe,<br />

woraus zu folgern ist, dass der Zugriff darauf konstant ist. Dabei ist noch zu unterscheiden, ob in den<br />

Blättern <strong>ein</strong>e Liste aller Konfigurationen gepflegt wird. Da im Falle des Closed Set nur darauf geachtet<br />

werden muss, ob es an dieser Stelle bereits <strong>ein</strong>e Konfiguration vorhanden ist, müsste diese nichtmal<br />

selbst gespeichert werden, sondern nur der Raum markiert werden. Im Falle des Open Sets möchte<br />

man aber unter Umständen die Referenz auf die vorliegende Konfiguration haben, so dass nur <strong>ein</strong>e<br />

Konfiguration in den Blättern des Octrees gespeichert werden muss. In der Abbildung (Abb. 6.16)<br />

ist der Aufbau <strong>ein</strong>es Octrees der Tiefe drei Skizziert. Das ausgegraute Element wurde hier nach drei<br />

Suchschritten bereits auf 1 = 1<br />

8 3 512<br />

des gesamten Raumes <strong>ein</strong>geschränkt.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!