Benutzer-Werkzeuge

Webseiten-Werkzeuge


paper:motionplanning:section033

Eine Heuristik zur realistischen Bewegungsplanung bei beschränkter Geschwindigkeit und beweglichen Hindernissen

Benjamin Eckstein
Verfasser:Benjamin Eckstein
Erstgutachter:Dr. Frank Hoffmann
Zweitgutachter: Prof. Dr. Helmut Alt
Freie Universität Berlin

KAPITEL 3 Der Lösungsansatz durch die RAMP-Heuristik

3.5 Beispielhafter Ablauf der RAMP-Heuristik

Anhand eines einfachen Beispiels fassen wir nochmal den Ablauf der RAMP-Heuristikzusammen.
Aus der Startposition und initialer Geschwindigkeit des Agenten wird der Wurzelwegpunkt Wr erzeugt und in die noch leere Prioritätswarteschlange Q eingefügt.

In der ersten Iteration wird Wr aus Q entfernt und mit der Funktion reach(Wr) neue Nachfolge-Wegpunkt gesucht.

Die Menge Ω = reach(Wr) besteht aus den drei Wegpunkten W1,W2,W3. Sei die Priorität eval(W1 ) < eval(W2) < eval(W3). Diese werden ihrer Priorität nach in Q eingefügt.

Bei jeder weiteren Iteration wird der Wegpunkt W′ mit der kleinsten Priorität aus Q entfernt und mit reach(W′) neue Nachfolge-Wegpunkte gesucht, bewertet und in Q eingefügt.

Der Wegpunkt W21 kann das Ziel direkt erreichen. Jedoch wird beim weiteren Suchen noch eine bessere Lösung über den Wegpunkt W3 gefunden. Die Warteschlange wurde abgearbeitet. Alle anderen Wegpunkte in Q führten zu keiner Lösung.

Die Lösung 1 wurde zuerst gefunden, aber durch Lösung 2 noch übertroffen. Der Algorithmus ist terminiert. Die Bahnkurven werden angezeigt.

3.6 Laufzeitanalyse

Die Laufzeit der RAMP-Heuristik kann vorerst nicht nach oben beschränkt werden, da eine Terminierung nach Abschnitt 3.2 nur stattfindet, wenn die Prioritätswarteschlange Q leer ist. Die Anzahl der gespeicherten Wegpunkte von Q wird zwar mit jedem Iterationsschritt um einen Wegpunkt verringert, aber durch das Finden von neuen Wegpunkten durch reach um maximal I Wegpunkte erhöht. In der Implementierung wurde deshalb eine künstliche Schranke eingefügt, die nach ϕ Schleifendurchläufen den Algorithmus terminieren lässt.

Angenommen der Algorithmus terminiert nach 0 < N ≤ ϕ Iterationsschritten. Sowohl das Validieren, ob ein Wegpunkt dem Zielpunkt entspricht, als auch das Evaluieren einer Priorität erfolgt in konstanter Zeit. Die Laufzeit von reach ergibt sich aus I Versuchen, bei denen jeweils maximal 3 * D Schritte auf Kollision getestet werden.

Ein Aufruf von reach besteht damit aus maximal 3 * I * D Kollisionsprüfungen. Vor einer Kollisionsprüfung muss die elementare Bewegung B für den Agenten A berechnet werden, was nach Abschnitt 2.2 in konstanter Zeit möglich ist. Eine Kollisionsprüfung für zwei elementare Bewegungen ist nach Abschnitt 2.3 ebenfalls in konstanter Zeit berechenbar. Jedoch muss die Bewegung B gegen alle zeitlich überlappenden elementaren Bewegungen ϒ aller Hindernisse o ∈ O getestet werden. Die Laufzeit hängt also signifikant von der Anzahl n ≤|ϒ| der zu prüfenden elementaren Bewegungen ab und damit von der Anzahl der Hindernisse und der zeitlichen Dauer von B. n ist kleiner als |ϒ, weil bei einer ersten gefundenen Kollision die restlichen Bewegungen nicht mehr geprüft werden müssen.

Insgesamt ergibt sich folglich eine Laufzeit von O(N * I * D * n), wobei N ≤ ϕ nach oben beschränkt ist und n ≤|ϒ| von der Anzahl der Hindernisse und deren Geschwindigkeit abhängt, da |O|≤|ϒ| gilt.

Anmerkung 1: Der Algorithmus terminiert auch ohne ein gegebenes ϕ, wenn eine vorläufige Lösung gefunden wurde, da jeder Wegpunkt mit einer schlechteren Reisezeit sofort verworfen wird und für jeden Wegpunkt Wi ∈ Ω = reach(W) die akkumulierte Zeit ti > t größer sein muss als die vom untersuchten Wegpunkt W.

Anmerkung 2: Durch die restriktive Bewertung der Wegpunkte nach Abschnitt 3.4 und dem Schwellwert μ ist die Anzahl der Wegpunkte pro Datenfeld begrenzt. Jeder Wegpunkt erhöht für das jeweilige Datenfeld F den Wert von c. Da c zu der Priorität von W beiträgt, steigt die Priorität stetig an, je mehr Wegpunkte bewertet wurden. Daraus ergibt sich eine zwangsläufige Terminierung.

Anmerkung 3: Neue durch reach gefundende Wegpunkte können in logarithmischer Zeit in die Prioritätswarteschlange Q eingefügt werden, da diese durch einen Heap implementiert werden kann. Die logarithmische Zeit für das Einfügen hängt von der Größe der in Q gespeicherten Wegpunkte ab. Q wächst bei jedem Iterationschritt um 0 ≤|Ω|≤ I Wegpunkte abzüglich des untersuchten Wegpunktes. Q beinhaltet also nach N Schritten im Worst-Case emax = ∑ i=1NI - 1 = N *I -N Elemente. Dadurch erhöht sich die Laufzeit auf O(N * I * D * n + N * log(emax)).

paper/motionplanning/section033.txt · Zuletzt geändert: 2011/12/30 18:13 von ben