Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Informierte Suche.

Ähnliche Präsentationen


Präsentation zum Thema: "Informierte Suche."—  Präsentation transkript:

1 Informierte Suche

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

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

4 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

5 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

6 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.

7 Beispiel: Greedy best-first Suche

8 Beispiel: Greedy best-first Suche

9 Beispiel: Greedy best-first Suche

10 Beispiel: Greedy best-first Suche

11 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

12 Schleife: Neamt -- Iasi

13 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

14 A* Suche Beispiel

15 A* Suche Beispiel

16 A* Suche Beispiel

17 A* Suche Beispiel

18 A* Suche Beispiel

19 A* Suche Beispiel

20 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.

21 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.

22 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.

23 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.

24 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

25 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) = ? = 18

26 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 ).

27 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!

28 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.

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

30 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.

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

32 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

33 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

34 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

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

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

37 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

38 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

39 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

40 Simulated Annealing Hier: Maxima-Suche

41 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.

42 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.

43 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)

44 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

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

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

47 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

48 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)

49 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

50 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.

51 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)

52 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

53 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:

54 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“

55 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“

56 LRTA*

57 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´]

58 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*


Herunterladen ppt "Informierte Suche."

Ähnliche Präsentationen


Google-Anzeigen