Diskrete Planung Navigation Autonomer Mobiler Systeme Prof. Dr. Bernd Krieg-Brückner Dr. Bernd...

Post on 05-Apr-2015

108 views 1 download

Transcript of Diskrete Planung Navigation Autonomer Mobiler Systeme Prof. Dr. Bernd Krieg-Brückner Dr. Bernd...

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!