580 likes | 735 Views
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
E N D
Ü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: Evaluierungsfunktionf(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.
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
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
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.
Sei G2eine 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. Optimalitätsbeweis für den A*-Algorithmus
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: h(n) ≤ c(n,a,n') + h(n') (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: • h2dominierth1 • h2ist 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.