Bahnplanungsframework für ein autonomes Fahrzeug - oops ...
Bahnplanungsframework für ein autonomes Fahrzeug - oops ...
Bahnplanungsframework für ein autonomes Fahrzeug - oops ...
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
54 Suchalgorithmen<br />
In diesem Fall wäre n die Tiefe des Erreichbarkeitsbaumes und q die Anzahl der Nachfolger. Da<br />
diese aber mit 1 beginnt und der Rest mit dem Beispiel über<strong>ein</strong>stimmt, muss die 1 wieder subtrahiert<br />
werden, um auf die Formel <strong>für</strong> die Anzahl Knoten in <strong>ein</strong>em Erreichbarkeitsbaum zu kommen.<br />
Unter <strong>ein</strong>er Annahme, dass die Motion Primitiven <strong>ein</strong>e Länge von 1 Meter haben (meistens sogar<br />
noch kürzer), kann man bei <strong>ein</strong>em Erreichbarkeitsbaum der Tiefe 15, gerade <strong>ein</strong>mal maximal 15<br />
Meter radial vom Startpunkt aus entfernt s<strong>ein</strong>. Berechnet man die Ressourcen, die <strong>für</strong> so <strong>ein</strong>en Baum<br />
mit 5 Nachfolgeelementen benötigt werden:<br />
S 15 = −1 +<br />
15∑<br />
i=0<br />
5 i = 516 − 1<br />
5 − 1 − 1 = 38.146.972.655<br />
Unter der Annahme, dass die Motion Primitiven mindestens die Start- und die Endkonfiguration<br />
besitzen, die aus je 3 Werten bestehen à 4 Byte, so hat jede Primitive im Speicher mindestens<br />
24 Byte. Das bedeutet, dass diese Primitiven 38.146.972.655 · 24Byte = 915.527.343.720Byte ≈<br />
852, 65GByte Arbeitsspeicher in Anspruch nehmen. Selbst unter den heutigen Bedingungen, wo 8<br />
GByte Arbeitsspeicher fast Standard ist, sprengt diese simple Rechnung den Rahmen, ganz zu schweigen<br />
von der Kalkulationszeit <strong>für</strong> so viele Elemente.<br />
In diesem Kapitel werden verschiedene Suchalgorithmen vorgestellt und deren Parametriesierbarkeit,<br />
um das genannte Problem zu minimieren.<br />
6.1 A*<br />
A* ist <strong>ein</strong>e heuristische Suche, die darauf arbeitet, dass sowohl die Start- als auch die Endkonfiguration<br />
bekannt sind und die Güte von Zwischenkonfigurationen heuristisch geschätzt und in Relation<br />
gesetzt werden kann. Dies bedeutet, dass berechnete Konfigurationen <strong>ein</strong>e Information darüber liefern<br />
können, ob man in die richtige Richtung sucht. Im Normalfall ist es die Position der Konfigurationen,<br />
aus denen die Entfernung zum Endpunkt berechnet werden kann. Gleichzeitig spielt auch die bereits<br />
zurückgelegte Distanz bis zu dieser Konfiguration <strong>ein</strong>e Rolle. Aus <strong>ein</strong>er Liste von mehreren Konfigurationen<br />
wählt A* immer die Konfiguration mit den geringsten Kosten f (x), die sich berechnen lässt<br />
über die Summe der Heuristikfunktion h(x, e), die die Kosten bis zur Endkonfiguration e schätzt und<br />
der Kostenfunktion g(s, x) <strong>für</strong> die bisher zurückgelegte Distanz als Kosten von der Startkonfiguration<br />
s.<br />
f (x) = g(s, x) + h(x, e)<br />
Solange die Heuristikfunktion die realen Kosten nicht überschätzt, ist A* optimal (Hart, Nilsson &<br />
Raphael 1968 [9]).<br />
∀x, y : h(x, y) ≤ g(x, y)<br />
Auf genauere Auswirkungen und Variationen der heuristischen Funktion wird im nächsten Kapitel<br />
(6.2) <strong>ein</strong>gegangen. An dieser Stelle sei die Heuristikfunktion die euklidische Distanz, die <strong>für</strong> alle<br />
Konfigurationen kl<strong>ein</strong>er oder gleich der tatsächlichen Distanz ist und somit A* optimal ist.