Bahnplanungsframework für ein autonomes Fahrzeug - oops ...
Bahnplanungsframework für ein autonomes Fahrzeug - oops ...
Bahnplanungsframework für ein autonomes Fahrzeug - oops ...
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.