Upload
renate-gaus
View
111
Download
1
Embed Size (px)
Citation preview
Diskrete Planung
Navigation Autonomer Mobiler Systeme
Prof. Dr. Bernd Krieg-BrücknerDr. Bernd Gersdorf
Khatuna Khvedelidze
Teona Khizanishvili
Übersicht Diskrete Planung
1. Einführung in die diskrete Planung mit Beispielen2. Diskrete durchführbare Planung
2.1 Ausführliche Beispiele 2.2 Suchmethoden mit bekannten
Algorithmen3. Diskrete optimale Planung
3.1 Vorwärtsiteration3.2 Rückwärstiteration3.3 Vorwärtsiteration versus Dijkstra
1. Einführung in die diskrete Planung mit Beispielen (1)
Aufgabe:
Finde in einem Raum von Zuständen einen Weg /Plan zwischen einem Anfangszustand und einem oder mehreren Endzuständen
1. Einführung in die diskrete Planung mit Beispielen (2) Beispiele für die Anwendung der diskreten
Planung: Zauberwürfel (engl.Rubik's Cube) (a)
Ein Plan, der Farben sortiert Schiebekacheln Puzzle (b)
Ein Plan, der Zahlen sortiert
1. Einführung in die diskrete Planung mit Beispielen (3) Diskrete durchführbare Planung :
Finde einen Plan, der vom Anfangszustand zum Zielzustand führt. Die Aufgabe ist nicht weiter spezifiziert.
Diskrete optimale Planung:
Finde einen Plan, der hinsichtlich einer Randbedingung (z.B. Kosten, Zeit, Weglänge, Energie, Suchdauer…) optimal ist.
1. Einführung in die diskrete Planung mit Beispielen (4)Graphische Darstellung:
2. Diskrete durchführbare Planung
X X
Xx
x' x
f(x, u)x'
U(x). u X x
Xf(x,u)f
U (x)
Xx
X
G
I
u
: deZielzuständer Menge
: tandAnfangszus
: ichungergangsgleZustandsüb Die
und
Zustand einen erzeugt unktionÜbergangsf Die 3.
mAktionsrau
endlichen einen es gibt , Zustand jedenFür 2.
Zuständen wielen unendlichabzählbar od.
wielen endlich mit , umZustandsraleerer nicht Ein 1.
5.
4.
,
DieDer
:ng Formulieru
2. Diskrete durchführbare Planung 2.1 Ausführliche Beispiele(1) Der Zauberwürfel
Der Zustandsraum X: die Menge aller möglichen Konfigurationen
Der Zustand x: irgendeine 3 X 3 X 3 Kombination des Zauberwürfels
Die Aktion: die Drehung des 3 X 3 „Blattes“ um 90 Grad Der Aktionsraum: 12 mögliche Aktionen, in jedem Zustand
2. Diskrete durchführbare Planung 2.1 Ausführliche Beispiele(2)
Ein Roboter in Feldern mit Diskreten Koordinaten (i,j)
(3,5))(10()43(
)}100100{(
)00(
)(
)}01()01()10()10{(
x,uf,u,x
, X
,X
U X, u u, x xx,uf
,-, ,, ,-, ,U:
xX:
dann ) und wenn
:Endzustand Ein 5.
:tandAbfangszus Ein 4.
:ichungergangsgleZustandsüb Eine 3.
mAktionsrau Ein 2.
Zustände Knoten/aller Menge die umZustandsra Ein 1.
:Z.B.
2. Diskrete durchführbare Planung 2.1 Ausführliche Beispiele(3) Ein Roboter im Labyrinth
In den grauen Feldern sind die Knoten und die dazugehörigen Kanten gelöscht
Der Roboter soll den Weg entlang der weißen Felder finden
2. Diskrete durchführbare Planung 2.1 Ausführliche Beispiele(4) Suchalgorithmen für die Findung der Pläne Die Anforderung an die Suchalgorithmen: sie sollen
systematisch sein Bereits besuchte Zustände verfolgen Suche in einer Richtung: bedeutet nicht systematisch zu
sein. Das bewirkt, dass in einem unbegrenzten Graphen keine Lösung gefunden wird, obwohl eine existiert.
Suche in der Wellenfront: ist Systematisch
2.2 Suchmethoden mit bekannten Algorithmen(1)
Graph Allgemeine Vorwärts suchen Bestimmte Vorwärts Suchmethoden
Breitensuche Tiefensuche Dijkstra Algorithmus A* Algorithmus Bestensuche Iterative deepening
Andere Suchmethoden Rückwärtssuche Bidirectionale Suche
2.2 Suchmethoden mit bekannten Algorithmen(2)
Graph G=(V,E) Ungerichtet
Gerichtet
Gewichtet
2.2 Suchmethoden mit bekannten Algorithmen(3)
Endlicher Graph Zustände werden gespeichert Keine redundante Suche
Unendlicher Graph Unendlich suchen
2.2 Suchmethoden mit bekannten Algorithmen(4)
FORWARD SEARCH1 Q.Insert(xI) and mark xI as visited2 while Q not empty do3 x ← Q.GetFirst()4 if x ∈ XG5 return SUCCESS6 forall u ∈ U(x)7 x′ ← f(x, u)8 if x′ not visited9 Mark x′ as visited10 Q.Insert(x′)11 else12 Resolve duplicate x′13 return FAILURE
Allgemeine Vorwärtssuche
2.2 Suchmethoden mit bekannten Algorithmen(5) Bestimmte Vorwärtssuchmethoden
Breitensuche
Tiefensuche
Bestimmte Vorwärtssuchmethoden Dijkstra Suchalgorithmus
Suchalgorithmus um den kürzesten Pfad zu finden
Dijkstra Algorithmus ist stabil und liefert immer einen Ergebnis zurück
Wegen höhen asymptotischenZeitkomplexität des Algorithmus kann die Suche manchmal lange dauern
2.2 Suchmethoden mit bekannten Algorithmen(6)
Bestimmte Vorwärtssuchmethoden Dijkstra Suchalgorithmus
2.2 Suchmethoden mit bekannten Algorithmen(7)
2.2 Suchmethoden mit bekannten Algorithmen(8)
Bestimmte Vorwärtssuchmethoden A* Suchalgorithmus
Dijkstra-Suche,inklusive Kostenfunktion g Bestensuche, inklusive Schätzfunktion h Warteschlange ist ebenfalls eine Min-Priority-Queue Die Priorität bzgl. Eines Knotens k errecht sich wie folgt:
f(k)=g(k)+h(k)
2.2 Suchmethoden mit bekannten Algorithmen(9)
Bestimmte Vorwärtssuchmethoden
Bestensuche Schlechter Fall
Iterative Deepening Bis bestimmte Tiefe untersucht Wenn nicht gefunden Tiefe vergrößern
2.2 Suchmethoden mit bekannten Algorithmen(10)
Andere Suchmethoden Rückwärtssuche
Vom Ziel anfangen Auch bei Dijkstra - wenn nur ein Zielzustand
Bidirektionale Suche Vorwärtssuche und Rückwärtssuche vereinigt
3. Diskrete optimale Planung(1)
Kanten alle über Summe komulative die berechnet :) tionalKostenfunk .
durchläuft
SchritteK Endzustand zum bis stand Anfangszuvom der n,Schrittpla Ein :Plan3.
gehen. zu
nach von Aktionder mit Kante der entlang ist, es teuer wie
:Problems des Graphen im Kante jede für tionKostenfunk Die 2.
übernommen Planung
atendurchführb diskreten einer von werden leBestandtei
KπL
KK
π
u(x,u)x'xu
l(x,u )
G
, XI
f, xX, U(x),
(
)(
5
denunterschei zu Kosten nunendliche mit
Plänen von Kosten endlichen mit Pläne um : Schritt ndeabschließeder ist F 4.
Die 1.
Plan irgendein statt PlanOptimaler Ein
:ngFormulieru
3. Diskrete optimale Planung(2)
Fxk
xIx
G kC*k
go to cost
optimale
come to cost
optimale
*
Für jeden Zwischenzustand unterscheidet man zwei optimale Kosten Die optimale Cost to come: Die bereits angefallenen
Kosten, vom Anfangszustand zum Zwischenzustand Die optimale Cost to go: Die noch aufzuwendenden
Kosten, vom Zwischenzustand zum Zielzustand
3. Diskrete optimale Planung(3)
Die Berechnung der Kosten eines optimalen Plans durch Iteration (Rückwärts und Vorwärts) Die Hauptbeobachtunung: die Teile optimaler
Pläne sind selbst optimal Die Idee:
die iterative Berechnung von optimaler cost to come Funktion mit VorwärtsiterationVorwärtsiteration
die iterative Berechnung von
optimaler cost to go Funktion mit Rückwärtsiteration
Die aktuelle
cost to come
Funktion
Die vorangegangenecost to comeFunktion
die Kosten einer Kante (sie verbinden den aktuellen Zustand mit dem einen neuen Zustand)
die Umkehrfunktion einer Aktion
3. Diskrete optimale Planung 3.1. Vorwärtsiteration(1)
Die optimale cost to come Funktion am K Schritt:
Die abgeleitete Rekursionsformel für die optimale cost to come Funktion im gegebenen K-Schritt Plan:
3. Diskrete optimale Planung 3.1. Vorwärtsiteration(2) Diagramdarstellung von Vorwärtsiterration
bei der Suche einer optimalen Planung Fünf Zustände: a, b, c, d, e Schritte: K=4 der Anfangszustand: ist festgelegt die Menge der Endzustände: ist festgelegt
3. Diskrete optimale Planung 3.1. Vorwärtsiteration(3)
Dupliziere die 5 Zustände
Die erste Zeile zeigt die Zustände vor dem ersten Berechnungsschritt
Die zweite Zeile zeigt die Zustände nach dem ersten Berechnungsschritt
Ausgangsgraph mit 5 Zuständen
3 3. Diskrete optimale Planung
3.1. Vorwärtsiteration(4)
Ein Schritt der Vorwärtsiterration zur Berechnung der Ck*
Die Darstellung von mehreren Berechnungsschritten von Ck*:
Drehe die obere Abbilldung um 90º nach rechts
Füge weitere Spalten ein mit den Zuständen a bis e
Die Berechnung von Ck* verläuft von links nach rechts
3. Diskrete optimale Planung 3.1. Vorwärtsiteration(5) Iterative Berechnung von cost
to come Funktionen
Die Tabelle zeigt alle Möglichkeiten zur komulativen Berechnung von Ck*(cost to come ), wenn Anfangs- und Endzustand bekannt sind
Z.B. wenn XI=a und XF=d, gilt:
Plan1: abd, C3*=6
Plan2: abcd, C4*=4 Optimal
Plan3: aabcd, C5*=6
3. Diskrete optimale Planung 3.2. Rückwärtsiteration
Die optimale cost to go Funktion am K Schritt:
Die abgeleitete Rekursionsformel für die optimale cost to go Funktion im gegebenen K-Schritt Plan:
Die Berechnungsreihenfolge der optimalen cost to go Funktionen:
3. Diskrete optimale Planung 3.3. Vorwärtsiteration versus Dijkstra
Gemeinsamheiten: Beide werden der dynamischen Programmierung zugeordnet Beide berechnen opimale Cost to come Funktionen Werte werden auf die gleiche weise geändert
Unterschiede: Laufzeit von Dijkstra: O(|Vl*lg|V|+|E|) Laufzeit von Vorwärtsiteration: O(|Kl*|V|+|E|) Implementierung: Dijkstra betreibt eine extra sortierte
Warteschlange Min-Priority-Queue In der Praxis:
Iterative Berechnung ist für vielseitige Probleme einsetzbar Für einige Probleme kann es zu kostspielig werden, die
sortierte Warteschlange beizubehalten Gutes Verständnis beider Algorithmen, um festzustellen,
welches für ein gegebenes Problem am angebrachtesten ist.
Danke!