Suchstrategien Tiefensuche Suchstrategien Greedy- Suche A*- Suche Oradea Uniform- Cost- Suche Zerind A*- Suche Arad Fagaras Sibiu Greedy- Suche Timisoara Riminicu V. Breitensuche Pitesti Bucharest Suchstrategien Prof. Dr. Bernd Schmidt Lehrstuhl für Operations Research und Systemtheorie, Universität Passau
Gliederung 1. Einführung 2. Suchstrategien: Breitensuche Tiefensuche Uniform Cost Suche Greedy- Suche A*- Suche Lehrstuhl für Operations Research und Systemtheorie Planen
Definitionen Plan Ein Plan ist eine Abfolge von Aktionen, die einen Anfangszustand A durch Ausführung von Aktionen über Zwischenzustände Z in einen Endzustand E überführt. ZF▼ F▲ KF▼ ZF▲ WF▼ F▲ ZF▼ A E Ein Zustand ist eine Menge von Zustandsvariablen. x1= a1 Anfangszustand x2= a1 ... Z A Zustand der Umwelt vor Beginn der Abarbeitung des Plans xn= an x1= z1 Zwischenzustand x2= z1 ... xn= zn Zustände können sein in konkreten Plänen: Standorte auf einer Landkarte Positionen von Spielsteinen Farbe eines Objektes, das seine Farbe wechseln soll Aktionen/ Operationen können sein: - gehe zu, (einzige Aktion in Wegsuche- Problemen) - kaufe etc., Achtung: ein Plan muss nicht zum Ziel führen es gibt auch fehlerhafte Pläne x1=e1 Endzustand E x2=e2 ... Zustand der nach Erreichen des Ziels eingenommen werden soll xn=en Im Endzustand besitzen alle Zustandsvariablen den richtigen Wert. Lehrstuhl für Operations Research und Systemtheorie Planen
Suchstrategien Bewertungskriterien Vollständigkeit Wird eine Lösung garantiert gefunden, wenn es eine gibt? Zeitkomplexität Innerhalb welcher Schranken bewegt sich die Dauer zur Ermittlung eines Ergebnisses? Speicherkomplexität Innerhalb welcher Schranken bewegt sich der Verbrauch an Speicherplatz? Optimalität (bzgl. der Pfadkosten) Wird eine beste Lösung gefunden, wenn eine existiert? Lehrstuhl für Operations Research und Systemtheorie Planen
Suchstrategien Klassifikation Klassifikation von Suchstrategien blinde Suche: Breitensuche Tiefensuche Uniform Cost Suche Tiefenbeschränkte Suche - Informierte Suche: Greedy Suche A*- Suche kein Wissen über die Richtung zum Ziel vorhanden Zielrichtung ist bekannt, Verarbeitung in heuristischer Funktion Lehrstuhl für Operations Research und Systemtheorie Planen
Suchstrategien Datenstrukturen Datenstrukturen für Suchbäume Knoten { Zustand // Zustand, der dem Knoten entspricht Mutterknoten // Verweis auf den erzeugenden Konten Operator // erzeugender Operator Tiefe Pfadkosten // aufsummiert, beginnend am Anfangszustand } Kanten = Übergänge zwischen den Knoten = Zustände = Aktionen Lehrstuhl für Operations Research und Systemtheorie Planen
Suchstrategien Netz aus Knoten und Kanten Oradea Knoten Kanten Zerind Neamt Iasi Arad Vasuli Sibiu Fagaras Riminicu V. Timisoara Pitesti Lugoj Hirsova Urziceni Bucharest Mehadia Eforie Dobreta Giurgiu Craiova Lehrstuhl für Operations Research und Systemtheorie Planen
Suchstrategien Wegsuche in Rumänien Wie gelangt man zum Strassennetz? Oradea Zerind Expandieren! Alle möglichen Aktionen ausführen, die von einem Zustand aus ausführbar sind. Arad Sibiu Fagaras Timisoara Riminicu V. Beispiel: Expandieren des Anfangszustandes: Arad Timisoara Sibiu Zerind Lehrstuhl für Operations Research und Systemtheorie Planen
Suchstrategien Blinde Suche: Wegsuche in Rumänien Oradea Expandieren des Anfangszustandes: Zerind Arad Arad Sibiu Fagaras Timisoara Sibiu Zerind Timisoara Riminicu V. Bewertung + Auswahl: Welcher Knoten soll als nächster expandiert werden? Blinde Suche: alle drei Knoten sind gleichberechtigt Lehrstuhl für Operations Research und Systemtheorie Planen
Suchstrategien Informierte Suche: Wegsuche in Rumänien Oradea Expandieren des Anfangszustandes: W O Zerind S Arad Arad Sibiu Fagaras Timisoara Sibiu Zerind Timisoara Riminicu V. Bewertung + Auswahl: Welcher Knoten soll als nächster expandiert werden? Informierte Suche: Zusatzinformation wird verarbeitet: z.B. Sibiu liegt in Richtung Bucharest, daher Sibiu zuerst expandieren Lehrstuhl für Operations Research und Systemtheorie Planen
Suchstrategien Queue Organisation der Daten Eine Queue ist eine Warteschlange für zu expandierende Knoten. Suchstrategien unterscheiden sich durch… …den Mechanismus, der die Reihenfolge zu expandierender Knoten festlegt …den Mechanismus, der entscheidet, an welcher Stelle die noch zu expandierenden Knoten in die Queue eingereiht werden. Queue expandieren Lehrstuhl für Operations Research und Systemtheorie Planen
Suchstrategien Queue Organisation der Queue Wird ein Knoten expandiert, so werden die Tochterknoten am Ende der Queue angehängt. Der expandierte Knoten wird aus der Queue entfernt. Die Queue wächst am hinteren Ende. Queue d d d d+1 d+1 Tiefe d expandieren Tiefe d+1 Lehrstuhl für Operations Research und Systemtheorie Planen
Gliederung 1. Einführung 2. Suchstrategien: Breitensuche Tiefensuche Uniform Cost Suche Greedy- Suche A*- Suche Lehrstuhl für Operations Research und Systemtheorie Planen
Suchstrategien Beispiel Breitensuche Breitensuche: in einer Ebene werden die Knoten von links nach rechts aufgefüllt 1 2 3 4 5 6 Lehrstuhl für Operations Research und Systemtheorie Planen
Suchstrategien Breitensuche: Wegsuche in Rumänien Aufgabe: finde einen Weg von Arad nach Bucharest Oradea Zerind Neamt Iasi Arad Vasuli Sibiu Fagaras Riminicu V. Timisoara Pitesti Lugoj Hirsova Urziceni Bucharest Mehadia Eforie Dobreta Giurgiu Craiova Lehrstuhl für Operations Research und Systemtheorie Planen
Suchstrategien Breitensuche: Wegsuche in Rumänien 1. Anfangsknoten mit Anfangszustand Arad Arad Queue Arad 2. Nach der Expansion von Arad Arad Queue Timisoara Sibiu Zerind Timisoara Sibiu Zerind 3. Nach der Expansion von Timisoara Arad Queue Sibiu Zerind Lugoj Timisoara Sibiu Zerind Lugoj Lehrstuhl für Operations Research und Systemtheorie Planen
Gliederung 1. Einführung 2. Suchstrategien: Breitensuche Tiefensuche Uniform Cost Suche Greedy- Suche A*- Suche Lehrstuhl für Operations Research und Systemtheorie Planen
Suchstrategien Beispiel Tiefensuche Tiefensuche: alle Knoten eines Pfades werden bis zur maximalen Tiefe expandiert 1 2 3 4 5 6 7 8 Lehrstuhl für Operations Research und Systemtheorie Planen
Suchstrategien Tiefensuche: Wegsuche in Rumänien 1. Anfangsknoten mit Anfangszustand Arad Arad Queue Arad 2. Nach der Expansion von Arad Arad Queue Timisoara Timisoara 3. Nach der Expansion von Timisoara Arad Queue Lugoj Timisoara Lugoj Lehrstuhl für Operations Research und Systemtheorie Planen
Gliederung 1. Einführung 2. Suchstrategien: Breitensuche Tiefensuche Uniform Cost Suche Greedy- Suche A*- Suche Lehrstuhl für Operations Research und Systemtheorie Planen
Suchstrategien Uniform Cost Suche Uniform Cost Suche (Blinde Suche) Modifizierte Breitensuche Einführung von Pfadkosten direkter Verbindungen durch Pfadkostenmatrix Knoten mit den geringsten Pfadkosten werden zuerst expandiert Arad Zerind Sibiu Timisoara ... 75 140 118 - Zusatzinformation: Pfadkostenmatrix Lehrstuhl für Operations Research und Systemtheorie Planen
Suchstrategien Uniform Cost Suche Organisation der Queue Neu generierte Knoten werden derart eingefügt, dass die Knoten bezüglich ihrer Pfadkosten aufsteigend sortiert sind. Queue 2 Zerind Timisoara Sibiu Oradea 75 118 140 146 Timisoara Sibiu Zerind 118 140 75 expandieren Oradea 146 Lehrstuhl für Operations Research und Systemtheorie Planen
Suchstrategien Uniform Cost Suche: Wegsuche in Rumänien Queue Arad Arad Arad Queue Zerind Timisoara Sibiu Timisoara 118 Sibiu 140 Zerind 75 Arad Queue Timisoara Sibiu Oradea Timisoara 118 Sibiu 140 Zerind 75 Oradea 146 Lehrstuhl für Operations Research und Systemtheorie Planen
Suchstrategien Uniform Cost Suche Arad Queue Sibiu Oradea Lugoj Timisoara 118 Sibiu 140 Zerind 75 Lugoj 229 Oradea 146 Arad Queue Oradea Riminicu V. Lugoj Fagaras Timisoara 118 Sibiu 140 Zerind 75 Lugoj 229 Riminicu V. 220 Fagaras 239 Oradea 146 Lehrstuhl für Operations Research und Systemtheorie Planen
Gliederung 1. Einführung 2. Suchstrategien: Breitensuche Tiefensuche Uniform Cost Suche Greedy- Suche A*- Suche Lehrstuhl für Operations Research und Systemtheorie Planen
Suchstrategien Greedy Suche Informierte Suche Bewertungsfunktion: Heuristik h: Knoten Int ermittelt die (geschätzte) Entfernung eines Knotens (= Zustand) zum Ziel Expandieren von Knoten Expandiert wird der Knoten, dem die geringste geschätzte Entfernung zum Ziel zugeschrieben wird. Eigenschaften Nicht vollständig Nicht optimal Lehrstuhl für Operations Research und Systemtheorie Planen
Suchstrategien Greedy Suche Queue Arad 366 Arad Arad Queue Sibiu Timisoara Zerind Timisoara 329 Sibiu 253 Zerind 374 Arad Queue Fagaras Riminicu V. Timisoara Arad Zerind Oradea Timisoara 329 Sibiu 253 Zerind 374 Riminicu V. 193 Fagaras 178 Oradea 380 Arad 366 Lehrstuhl für Operations Research und Systemtheorie Planen
Gliederung 1. Einführung 2. Suchstrategien: Breitensuche Tiefensuche Uniform Cost Suche Greedy- Suche A*- Suche Lehrstuhl für Operations Research und Systemtheorie Planen
Suchstrategien A*- Suche Kombination von Uniform Cost Suche und Greedy Suche Bewertung der Knoten: Heuristik h(n) = f(n) + g(n) Dabei: f(n) = Summe der Strassenkilometer (Arad Ortn) (Uniform Cost Suche) g(n) = Luftliniendistanz (Ortn Bucharest) (Greedy- Suche) Eigenschaften Vollständig. Optimal. Organisation der Queue - Neu generierte Knoten werden derart eingefügt, dass die Knoten bezüglich ihrer Pfadkosten aufsteigend sortiert sind - Analog zur Uniform Cost Suche, Greedy- Suche Lehrstuhl für Operations Research und Systemtheorie Planen
Suchstrategien A*- Suche Queue 0 Arad 366 366 Arad Arad Queue 118 Timisoara 329 447 Sibiu Timisoara Zerind 140 Sibiu 253 393 75 Zerind 374 449 Arad 118 Timisoara 329 447 140 Sibiu 253 393 75 Zerind 374 449 Queue Riminicu V. Fagaras Timisoara Zerind Oradea Arad 220 Riminicu V. 193 413 239 Fagaras 178 417 146 Oradea 380 526 280 Arad 366 646 Lehrstuhl für Operations Research und Systemtheorie Planen