Informierte Suche.

Slides:



Advertisements
Ähnliche Präsentationen
8. Termin Teil B: Wiederholung Begriffe Baum
Advertisements

Grundlagen des A*-Algorithmus und Anwendung in der Routenplanung
Knapsack & Bin Packing Sebastian Stober
Man bestimme den „minimalen aufspannenden Baum“ des Graphen.
Single-Source Shortest Paths: SSSP
Rekursion: Rekurrenz: Algorithmen rufen sich selbst (rekursiv) auf.
Falls Algorithmen sich selbst rekursiv aufrufen, so kann ihr Laufzeitverhalten bzw. ihr Speicherplatzbedarf in der Regel durch eine Rekursionsformel (recurrence,
Minimum Spanning Tree: MST
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (26-Graphenalgorithmen: Wiederholung und Übung) Prof. Th. Ottmann.
Spezialvorlesung Suchalgorithmen Thema: Einzelzustandsraumsuche Stefan Edelkamp.
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Graphen Ein Graph ist eine Kollektion von Knoten und Kanten. Knoten sind einfache Objekte. Sie haben Namen und können Träger von Werten, Eigenschaften.
Lineare Suche Divide-and-Conquer-Suche Kombinationssuche
R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister)
Die 1-Baum-Relaxation des TSP mit der Subgradientenmethode
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Approximationsalgorithmen …liefern in polynomieller.
Probleme mit Rand- und Nebenbedingungen
Problemlösen durch Suchen
Suchbäume Richard Göbel.
FH-Hof Künstliche Intelligenz - Suchbäume Richard Göbel.
Heuristiken Automatic Problem Solving Institut für Informatik
Algorithmentheorie 6 – Greedy-Verfahren
WS Algorithmentheorie 13 - Kürzeste (billigste) Wege Prof. Dr. Th. Ottmann.
Prof.Dr.S. Albers Prof. Dr. Th. Ottmann
1 Bewegungsplanung Computational Geometry Prof. Dr. Th. Ottmann Bewegungsplanung bei unvollständiger Information Ausweg aus einem Labyrinth Finden eines.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (17 – Bäume: Grundlagen und natürliche Suchbäume) Prof. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 – Kürzeste Wege) T. Lauer.
Algorithmen und Datenstrukturen
Algorithmen und Komplexität
Minimum Spanning Tree: MST
Wegplanung mit Fast Forward Andreas Bauer2 Inhalt Klassisches Planen Verschiedene Planerstrategien Fast Forward –Allgemeines –Systemarchitektur.
Wir müssen also überlegen: Implementierung der Knoten, Implementierung der Kanten, daraus: Implementierung des Graphen insgesamt. Annahme: die Knoteninhalte.
Teil I: Uninformierte Suche
Teil II: Informierte Suche
Einführung in die Informatik I Prof. Dr. Bernd Schmidt Lehrstuhl für Operations Research und Systemtheorie, Universität Passau Planung.
Khatuna Khvedelidze Teona Khizanishvili
Vortrag über Graphen Von Jörg Hendricks.
Bernhard Schneider Harald Aigner Christian Becker
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung 1 SS 2001 Algorithmus von Dijkstra.
Effiziente Algorithmen
Effiziente Algorithmen
Splay Trees Von Projdakov Benjamin.
Effiziente Algorithmen
Effiziente Algorithmen
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Hartmut Klauck Universität Frankfurt SS
Verteilte Algorithmen und Datenstrukturen Kapitel 4: Caching Christian Scheideler Institut für Informatik Universität Paderborn.
Christian Scheideler Institut für Informatik Universität Paderborn
Anwendungen der Planung
Suchstrategien Tiefensuche Suchstrategien Greedy- Suche A*- Suche
Analyse der Laufzeit von Algorithmen
Algorithmen und Datenstrukturen 1 SS 2002

Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Suche des kürzesten Weges in einem Netz.
Der A*-Algorithmus.
Lösungshinweise zu den Suchalgorithmen. Der Baum zum Zustandsgraphen GE OBE DUI GE D MH D OB MH DUI E DOBMH OBE DUIGED MH DGE MH EDUI D OBMH DGE MH DUIEE.
Binärbäume.
Programmiersprachen II Fortsetzung Datenstrukturen Balancierte Bäume 3 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
 Präsentation transkript:

Informierte Suche

Überblick Best-first Suche Greedy best-first Suche A* Suche Heuristiken Lokale Suchalgorithmen Hill-climbing Simulated annealing Local beam Suche Genetische Algorithmen

Erinnerung: Suchbäume Eine Suchstrategie ist definiert durch die Reihenfolge, in der Knoten expandiert werden!

Best-first Suche (Bestensuche) Idee: Evaluierungsfunktion f(n) für jeden Knoten n Abschätzung der “Kosten“ oder “Distanz” bis zum Ziel Expandiere den am meisten Erfolg versprechenden, noch nicht expandierten Knoten Implementierung: Ordne die Randknoten nach zunehmenden Kosten Spezialfälle: greedy best-first Suche A* Suche

Rumänien, Schrittenkosten in km Beachte: Bei uninformierter Suche stand nur die Tabelle (rechts) zur Verfügung Algorithmus “wusste” also nichts von z.B. der Zweidimensionalität des Problems! Jetzt wird aus der Landkarte weitere Information zur Konstruktion von f(n) bezogen

Greedy best-first Suche Evaluationsfunktion f(n) = h(n) (Heuristikfunktion) = Schätzung der Kosten von n bis zum Ziel Expandiere Knoten mit minimalem h(n) Z.B. hLL(n) = Luftlinie von n nach Bukarest Heuristikfunktion verwendet nur Information aus dem Zustand, nicht dem Knoten bzw. Suchbaum Greedy best-first Suche expandiert den Knoten, der am nächsten am Ziel zu sein scheint.

Beispiel: Greedy best-first Suche

Beispiel: Greedy best-first Suche

Beispiel: Greedy best-first Suche

Beispiel: Greedy best-first Suche

Eigenschaften der greedy best-first Suche Vollständig? Nein – kann in Schleifen steckenbleiben, z.B. Iasi  Neamt  Iasi  Neamt  Zeit? O(bm), kann aber durch gute Heuristik erheblich verbessert werden Speicher? O(bm) -- behält alle Knoten im Speicher Optimal? Nein Vorteil: Schnell

Schleife: Neamt -- Iasi

A* Suche Idee: Expandiere keine Pfade weiter, wenn sie bereits teuer sind! Evaluationsfunktion f(n) = g(n) + h(n) g(n) = Bisher angefallene Kosten bis zu n h(n) = Geschätzte Kosten von n zum Ziel f(n) = Geschätzte Kosten des Pfades über n zum Ziel

A* Suche Beispiel

A* Suche Beispiel

A* Suche Beispiel

A* Suche Beispiel

A* Suche Beispiel

A* Suche Beispiel

Zulässige Heuristikfunktionen Eine Heuristikfunktion h(n) ist zulässig wenn für jeden Knoten n gilt: h(n) ≤ h*(n), wobei h*(n) die wahren Kosten von n zum Ziel sind. Eine zulässige Heuristikfunktion ist optimistisch, d.h. überschätzt nie die Kosten bis zum Ziel. Dadurch werden günstige Pfade nicht wegen Kostenüberschätzung vorzeitig abgebrochen. Beispiel: hLL(n) - Luftlinie ist nie eine Überschätzung der Straßendistanz Theorem: Wenn h(n) zulässig ist, dann ist A* mit TREE-Search optimal.

Optimalitätsbeweis für den A*-Algorithmus Sei G2 eine suboptimale Lösung (Zielknoten) am Rand. Sei n ein nicht expandierter Knoten am Rand, so dass n sich auf dem Pfad zum optimalen Ziel G befindet. Zeige, dass G2 nicht expandiert wird: Erinnerung: f(m) = g(m) + h(m) = (Kosten bis m) + (Restkosten bis Ziel) h* = wahre Restkosten f(G2) = g(G2) da h(G2) = 0 f(G) = g(G) da h(G) = 0 g(G2) > g(G) da G2 suboptimal f(G2) > f(G) s.o. h(n) ≤ h*(n) da h zulässig g(n) + h(n) ≤ g(n) + h*(n) f(n) ≤ f(G) Daher: f(G2) > f(n), folglich expandiert A* den Knoten G2 nicht.

Konsistente (= Monotone) Heuristikfunktionen Eine Heuristikfunktion ist konsistent wenn für jeden Knoten n und jeden durch eine Aktion a generierten Nachfolger n' von n gilt: (Dreiecksungleichung) Wenn h konsistent ist, gilt f(n') = g(n') + h(n') = g(n) + c(n,a,n') + h(n') ≥ g(n) + h(n) = f(n) d.h. f(n) steigt monoton auf jedem Pfad. Theorem: Wenn h(n) konsistent ist, dann ist A* mit GRAPH-Suche optimal.

Veranschaulichung f-Kosten steigen monoton  „Höhenlinien“ oder „Konturen“ konstanter f-Werte im Zustandsraum Alle Knoten n innerhalb der Kontur i haben geschätzte Kosten von f<=fi, wobei fi < fi+1. Einheitliche Kosten (h(n)=0): „Kreisförmige“ Konturen, da h keine Information liefert . Je besser h gewählt ist, desto enger umschließen die Konturen den optimalen Pfad. A* expandiert Knoten in der Reihenfolge ansteigender f-Werte.

Eigenschaften von A* Vollständig? Ja (es sei denn es gibt unendlich viele Knoten mit f ≤ f(G) ) Zeit? Exponentiell in ((Relativer Fehler von h gemessen an h* ) x Länge der Lösung ) Speicher? Behält alle Knoten im Speicher (Hauptnachteil) Optimal? Ja Optimal effizient bezgl. # benötigter Knoten

Bsp.: Zulässige Heuristiken Schiebefax: h1(n) = # falsch positionierter Steine h2(n) = Summe der Manhattan-Distanzen zum Ziel für alle Steine h1(S) = ? 8 h2(S) = ? 3+1+2+2+2+3+3+2 = 18

Dominanz Wenn h2(n) ≥ h1(n) für alle n (beide zulässig), dann gilt: h2 dominiert h1 h2 ist besser für Suche Typische Suchkosten (durchschnittliche # expandierter Knoten): d=12 IDS = 3,644,035 Knoten A*(h1) = 227 Knoten A*(h2) = 73 Knoten d=24 IDS = Zu viele Knoten A*(h1) = 39,135 Knoten A*(h2) = 1,641 Knoten Für zulässige Heuristiken h1 und h2 gilt: h(n) = max(h1(n), h2(n)) ist ebenfalls zulässig (und dominiert h1 und h2 ).

Relaxed Problems Ein Problem mit weniger Beschränkungen der Aktionen heißt relaxed problem. Bsp.: Regeln des Schiebefax relaxen: Steine können sich frei bewegen. Dann beschreibt h1(n) die exakten Kosten zum Ziel.  h1(n) ergibt optimale Lösung. Oder: Stein kann auf jedes benachbarte Feld. Dann beschreibt h2(n) die exakten Kosten zum Ziel.  h2(n) ergibt optimale Lösung. Die Kosten der optimalen Lösung eines relaxed problems sind nie höher als die Kosten der optimalen Lösung des echten Problems. Warum interessant? Exakte Kosten des relaxed problems sind zulässige und oft sehr gute Heuristik für das echte Problem!

Zusammenfassung Heuristikfunktionen schätzen die Kosten des kürzesten Weges. Gute Heuristikfunktionen reduzieren Suchaufwand erheblich. Greedy best-first Suche: Expandiert Knoten mit kleinstem h Unvollständig, nicht optimal A* - Suche: Expandiert Knoten mit kleinstem g+h Vollständig, optimal, optimal effizient Zulässige Heuristiken können aus exakten Kosten eines „relaxed problems“ gewonnen werden.

Lokale Suche und Optimierung Kurzer Überblick zu: Hill-Climbing Simulated Annealing Genetische Algorithmen Lokale Suche in kontinuierlichen Räumen

Lokale Suche Für viele Optimierungsprobleme ist der Pfad zum Ziel irrelevant. Der (zuvor nur implizit definierte) Zielzustand selbst ist die Lösung. Bsp. 8 Damen, VLSI-Design, Travelling Salesman Lokale Suchalgorithmen: Werten nur aktuellen Zustand aus, nicht Pfad Keine systematische Suche Wenig Speicherbedarf Anwendbar auf sehr große Probleme, insbesondere … … Probleme bei denen suboptimale aber gute Lsg. ausreicht.

Beispiel: n-Damen Setze n Damen auf n × n Brett wobei niemals zwei Damen in der gleichen Reihe, Spalte oder Diagonale sein dürfen.

Travelling Salesman Problem (TSP) Finde kürzeste geschlossene Tour durch n Städte Starte mit bel. geschlossener Tour Dann paarweiser Austausch der Verbindungen Führt sehr schnell zu Lösungen ca. 1% unter Optimum für mehrere tausend Städte

Hill-climbing Wähle stets Folgezustand mit maximierter Nutzenfunktion “Bergsteigen im Nebel mit Gedächtnisverlust“ Kein Suchbaum, keine Vorausplanung, kein Speicheraufwand Terminiert, wenn kein besserer Folgezustand

Hill-climbing: 8-Damen Problem h = # Paare von Damen die sich bedrohen h = 17 für obigen Zustand Zahlen: h-Werte bei Verschiebung einer Dame innerhalb der Spalte

Hill-climbing: 8-Damen Problem Lokales Minimum mit h = 1

Hill-climbing / Gradientenaufstieg Bei kontinuierlichen Problemen Darstellung der Nutzenfunktion als “Landschaft” Aufstieg in steilster Richtung (Gradientenaufstieg)

Hill-Climbing: Probleme Geht nicht zurück (bergab)  Terminiert auf lokalen Maxima oder Plateaus. Welches Maximum erreicht wird hängt vom Anfangszustand ab. Probleme, falls Zustände Diskretisierung eines kontinuierlichen Problems sind. Bsp. Kammlinie: Folge unverbundener lokaler Maxima

Hill-Climbing: Verbesserungsvorschläge Wiederholtes Starten mit Zufallszuständen Zufällige Seitwärtsbewegung, um Plateaus zu entkommen Aber Schleife auf flachen Maxima! Gelegentlich Schritte bergab erlauben  Führt zu simulated annealing

Simulated Annealing Konvention: Suche der Minima (nicht Maxima) Idee: Lokalen Minima durch Schritte bergauf entkommen. Häufigkeit und Größe der Bergaufschritte allmählich verringern. Vergleich: Ball in Berglandschaft Starkes Erdbeben: Ball hüpft auch aus Senken mit hohen Wänden heraus Leichtes Wackeln: Ball überwindet nur noch kleine Hindernisse „Simuliertes Tempern“ „Wackeln“: Temperatur T „Fahrplan:“ Mit hohem T starten, langsam abkühlen Umsetzung: T entspricht der Wahrscheinlichkeit von Aufwärtsschritten

Simulated Annealing Hier: Maxima-Suche

Eigenschaften des Simulated Annealing Wenn T hinreichend langsam abnimmt, geht die Wahrscheinlichkeit gegen 1, dass das globale Optimum gefunden wird. Weit verbreitet für Aufgaben wie VLSI-Layout, Fahrplan-Erstellung etc.

Local Beam Suche Start mit k zufällig generierten Zuständen Wenn Ziel dabei: Schluss. Generiere alle Nachfolger für jeden der k Zustände. Wähle aus diesen ca. b*k Zuständen die k besten aus. Goto 2.

Local Beam Suche Unterschied zu k-fachem, parallelem Hill-Climbing (d.h. mit k Zufallszuständen starten): Beim parallelen Hill-Climbing kein Austausch Local Beam: Bei Auswahl der k Besten aus b*k Nachfolgezuständen können manche Knoten viele Nachfolger „durchbringen“, andere gar keinen. Dadurch u.U. Konzentration der k Zustände auf kleinen Teil des Suchraums Vergleichbar dem „Survival of the fittest“ bei genetischen Algorithmen (jedoch ohne crossover und Mutation)

Genetische Algorithmen Start mit k zufällig generierten Zuständen (Population) Nachfolge-Zustände werden erzeugt durch: Crossover zweier Elternzustände Selektion gemäß Evaluationsfunktion (Fitnessfunktion) Mutation Beachte: Zustände müssen so repräsentiert sein, dass Crossover, Selektion und Mutation gültige Zustände erzeugen! Meist: Repräsentation durch Zeichenketten (oft binär). Erfolg des GA hängt stark von Repräsentation ab

Genetische Algorithmen Fitnessfunktion: # Paare einander nicht bedrohender Damen (min = 0, max = 8 × 7/2 = 28) 24/(24+23+20+11) = 31% 23/(24+23+20+11) = 29% etc

Genetische Algorithmen Crossover nützlich, wenn Zeichenketten in sinnvolle Komponenten zerlegt werden können.

Online-Suchagenten Bisher: Nur Offline-Suche, d.h. Vorausplanung bis zum Ende Online-Suchagent: Zyklus: Beobachtung – Berechnung – Aktion (Interleaving) Online-Suche nötig, falls Umgebung dynamisch Explorationsproblem Unbeobachtbare Zustände Unbekannte Wirkung von Aktionen, Aktion = Experiment

Online-Agent Zustand s Actions(s) : Liste möglicher Aktionen a Schrittkosten c(s, a, s´) sind nur a posteriori bekannt (nach Erreichen von s´ durch Aktion a) Zieltest(s)

Online-Agent: Sackgassen Gefahr von Sackgassen: Kein Algorithmus kann in allen Zustandsräumen Sackgassen vermeiden! Bew.: „Widersacherargument“ Bei A kann Agent Nachfolgezustände nicht unterscheiden Versagt daher stets in einem der beiden Fälle Andere Formulierung: „Widersacher“ kann Zustandsraum umbauen, ohne das Agent das merkt. Daher Voraussetzung, das Zustandsraum „sicher explorierbar“: Von jedem aus Startzustand erreichbaren Zustand ist Zielzustand erreichbar Z.B. durch Umkehrbarkeit von Aktionen

Online-Agent: Besonderheiten Unbeobachtbarkeit, Bsp. Labyrinth: Unbekannte Aktionen: Agent weiß nicht, dass „rechts“ von (1,1) nach (1,2) führt. Auch Rückweg „links“: (1,2) --> (1,1) unbekannt! Nicht beobachtbare Umgebung: Agent sieht Mauer nicht. Motiviert Abspeichern explorierter Aktions-Zustands-Paare: result[a, s] = s´ speichert Zustand s´, der durch Aktion a aus s erreicht wurde Bsp. Mauern: Agent kann in teilweise unbeobachtbarer Umgebung zu beliebig langen Wegen veranlasst werden.

Online-Agent: Besonderheiten Kein „Springen“ im Suchbaum: Um in anderem Zweig des Baums zu suchen, ist physisches Zurückgehen durch mehrere Zustände erforderlich! Bsp.: Um bei Timisoara weiterzusuchen, Rückfahrt von Fagaras über Sibiu und Arad! Motiviert Knotenexpandierung in lokaler Reihenfolge (Tiefensuche statt Breitensuche)

Online-Suchagent mit Tiefensuche function Online-DFS-Agent(s´) returns Action inputs: s´ Wahrnehmung, die aktuellen Zustand identifiziert static: a, s: vorherige Aktion, vorheriger Zustand, anfangs Null result[a,s] Tabelle, gibt Folgezustand zu a, s unexplored[s] Tabelle noch nicht probierter Aktionen für (schon besuchten) Zustand s unbacktracked[s] Tabelle noch nicht probierter Rückschritte für (schon bes.) Zustand s if Goal-Test(s´) then return stop if s´ neuer Zustand then unexplored[s´] <- Actions(s´) if s not Null then result[a,s] <- s´ unbacktracked[s´] <- s (am Anfang einfügen) if unexplored[s´] leer then if unbacktracked[s´] then return stop else a <- Aktion b, so dass result[b,s´] = Pop(unbacktracked[s´]) else a <- Pop(unexplored[s´]) s <- s´ return a

Lokale Online-Suche Hill-Climbing: Ist bereits online-fähig Aber: Leidet unter ähnlichen Problemen wie lokale Offline-Suche erlaubt aber keine Lösungen wie Local Beam oder zufällige Neustarts. Alternative: Hill-Climbing + Random Walk Wähle aus den erlaubten Aktionen zufällig Führt in endlichem Raum zum Ziel Aber u.U. sehr langsam Bsp.: Rückwärtsschritt 2x so wahrscheinlich wie vorwärts:

LRTA* Hill-Climbing + Random Walk unzureichend Besser: Hill-Climbing + „Lernen einer Kostenschätzung“ Führt zu Learning Real Time A* (LRTA*) Idee: Verwende anfangs heuristische Kostenschätzung h(s) Verbessere h(s) zu H(s) durch Erfahrungen im Zustandsraum Dadurch Vermeidung lokaler Minima Prinzip: „Optimismus bei Unsicherheit“

LRTA* Berechne Kosten bis Ziel aus Kosten bis zum Folgezustand + geschätzten weiteren Kosten bis Ziel Aktualisiere H des alten Zustands mit dem im neuen Zustand verfügbaren Wissen Falls Nachbarn des neuen Zustands längeren Weg zum Ziel anzeigen, als erwartet, zurückgehen. Dadurch u.U. mehfaches Hin- und Herpendeln, um lokales Minimum von H „einzuebnen“

LRTA*

Learning Real Time A* (LRTA*) function LRTA*-Agent(s´) returns Action inputs: s´ Wahrnehmung, die aktuellen Zustand identifiziert static: a, s: vorherige Aktion, vorheriger Zustand, anfangs Null result[a,s] Tabelle, gibt Folgezustand zu a, s H[s] Tabelle mit Kostenschätzung von Zustand s bis Ziel, anfangs Null if Goal-Test(s´) then return stop if s´ neuer Zustand (d.h. ohne H-Wert) then H[s´] <- h(s´) if s not Null then result[a,s] <- s´ H[s] <- min LRTA*-Cost(s, b, result[b, s], H) wobei b in Actions(s) a <- Aktion b in Actions(s´) die LRTA*-Cost(s´, b, result[b, s´], H) minimiert s <- s´ return a ________________________________________________________________________ function LRTA*-Cost(s, b, s´, H) returns Kostenschätzung if s´ undefined then return h(s) else return c(s, a, s´) + H[s´]

Zusammenfassung Online-Suche falls Umgebung / Zustände / Wirkung von Aktionen (teilweise) unbekannt Besonderheiten im Vgl. zu Offline-Suche: Gefahr von Sackgassen Sichere Explorierbarkeit / Umkehrbarkeit von Aktionen sehr hilfreich Kein „Springen“ im Suchbaum, physisches Zurückgehen erforderlich Entsprechendes Problem bei lokaler Suche Gute Lösung: Lernen von Kostenschätzung durch LRTA*