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

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.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!