Khatuna Khvedelidze Teona Khizanishvili Diskrete Planung Navigation Autonomer Mobiler Systeme Prof. Dr. Bernd Krieg-Brückner Dr. Bernd Gersdorf Khatuna Khvedelidze Teona Khizanishvili
Übersicht Diskrete Planung 1. Einführung in die diskrete Planung mit Beispielen 2. Diskrete durchführbare Planung 2.1 Ausführliche Beispiele 2.2 Suchmethoden mit bekannten Algorithmen 3. Diskrete optimale Planung 3.1 Vorwärtsiteration 3.2 Rückwärstiteration 3.3 Vorwärtsiteration versus Dijkstra Wir werden in diesem Referat auf die folgende Punkte eingehen.
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
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)
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) Allgemeine Vorwärtssuche FORWARD SEARCH 1 Q.Insert(xI) and mark xI as visited 2 while Q not empty do 3 x ← Q.GetFirst() 4 if x ∈ XG 5 return SUCCESS 6 forall u ∈ U(x) 7 x′ ← f(x, u) 8 if x′ not visited 9 Mark x′ as visited 10 Q.Insert(x′) 11 else 12 Resolve duplicate x′ 13 return FAILURE
2.2 Suchmethoden mit bekannten Algorithmen(5) Bestimmte Vorwärtssuchmethoden Breitensuche Tiefensuche
2.2 Suchmethoden mit bekannten Algorithmen(6) 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(7) Bestimmte Vorwärtssuchmethoden Dijkstra Suchalgorithmus
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)
3. Diskrete optimale Planung(2) 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 Hauptbeobachtung: die Teile optimaler Pläne sind selbst optimal Die Idee: die iterative Berechnung von optimaler cost to come Funktion mit Vorwärtsiteration die iterative Berechnung von optimaler cost to go Funktion mit Rückwärtsiteration
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: Die aktuelle cost to come Funktion Die vorangegangene cost to come Funktion 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(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) Ausgangsgraph mit 5 Zuständen 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
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!