1 / 64

Problemlösen durch Suchen

Problemlösen durch Suchen. Überblick. Problemlösende Agenten Motivation: Problemlösen durch Suche Problemtypen Probleme formulieren Beispielprobleme Einfache Suchalgorithmen. Problemlösende Agenten. Offline-Problemlösen, da Wissen vollständig!. Begriffe: Online / Offline. Offline:

dana-holman
Download Presentation

Problemlösen durch Suchen

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Problemlösen durch Suchen

  2. Überblick • Problemlösende Agenten • Motivation: Problemlösen durch Suche • Problemtypen • Probleme formulieren • Beispielprobleme • Einfache Suchalgorithmen

  3. Problemlösende Agenten Offline-Problemlösen, da Wissen vollständig!

  4. Begriffe: Online / Offline • Offline: • Berechne erst vollständige Lösung • Dann Ausführung in der Realwelt • Online: „Interleaving“, d.h. Verzahnung • Berechnung • Aktion • Berechnung • Aktion …

  5. Problemlösen durch Suchen • Erinnerung: Modellbasierte Agenten „denken“ über Wirkung ihrer Aktionen nach • Besonders wichtig, wenn eine Aktion nicht ausreicht, um zum Ziel zu kommen, … • … sondern mehrere Aktionen in der richtigen Reihenfolge nötig sind! • Ansatz: Mehrere Aktionsfolgen durchspielen

  6. Beispiel: Rumänien • Standort: Arad • Ziel: Bukarest • Zielformulierung: • In Bukarest sein • Problemformulierung: • Zustände: Verschiedene Städte • Aktionen: Von einer Stadt zur anderen fahren • Lösung finden: • Folge von Städten finden, z.B. Arad, Sibiu, Fagaras, Bukarest

  7. Beispiel: Rumänien

  8. Einordnung der Umgebung „Landkarte“ • Statisch: Städte fest • Beobachtbar: Agent kennt Standort • Diskret: Fahrt nur durch „diskrete“ Städte, nicht querfeldein • Deterministisch: Aktion „Fahre nach X“ endet in X

  9. Weitere Begriffe: Problemtypen • Deterministisch, vollständig beobachtbar Ein-Zustands-Problem (single state problem) • Agent weiß genau, in welchem Zustand er gelangen wird; Lösung ist eine Zustandsfolge (Ein-Zustands-Problem heißt nicht, dass es nur einen Zustand gibt!) • Nicht-beobachtbar Sensorloses Problem (“Angepasstes (conformant) Problem”) • Z.B. Staubsauger kennt seinen Ort nicht ; Lösung ist eine Zustandsfolge • Nicht-deterministisch und/oder teilweise beobachtbar Kontingenzproblem • Wahrnehmungen liefern neue Information über aktuellen Zustand • Meist Interleaving erforderlich • Wenn die neue Information durch anderen Agenten verursacht wird: Adversariales Problem • Unbekannter Zustandsraum  Explorationsproblem

  10. Beispiel: Staubsaugerwelt • Einzustands-Problem, Start #5 Lösung?

  11. Beispiel: Staubsaugerwelt • Einzustands-Problem, Start #5 Lösung?[Rechts, Saugen]

  12. Beispiel: Staubsaugerwelt • Sensorlos, Start in {1,2,3,4,5,6,7,8}z.B. Rechts geht über in {2,4,6,8}, d.h. Menge von Zuständen statt nur eines Zustands.Lösung?

  13. Beispiel: Staubsaugerwelt • Sensorlos, Start in {1,2,3,4,5,6,7,8}z.B. Rechts geht über in {2,4,6,8} }, d.h. Menge von Zuständen statt nur eines Zustands. Lösung?[Rechts,Saugen,Links,Saugen]

  14. Beispiel: Staubsaugerwelt • Kontingenz-Problem • Nicht-deterministisch: Z.B. Saugen kann Teppich verschmutzen! • Teilweise beobachtbar: Ort, Schmutz am aktuellen Ort. • Wahrnehmung: [L, Sauber], d.h. Start in #5 oder #7Lösung?

  15. Beispiel: Staubsaugerwelt • Kontingenz-Problem • Nicht-deterministisch: Z.B. Saugen kann Teppich verschmutzen! • Teilweise beobachtbar: Ort, Schmutz am aktuellen Ort. • Wahrnehmung: [L, Sauber], d.h. Start in #5 oder #7Lösung? [Rechts, wenn Schmutz dann Saugen]

  16. Formulierung des Single-State Problems Nach Festlegen der Zustände ist ein Problem definiert durch vier Punkte: • Anfangszustand, z.B. „in Arad" • Aktionen, die in einem Zustand möglich sind, sind gegeben durch die NachfolgerfunktionS(x) = Menge der Aktion–Zustand Paare • Z.B. S(Arad) = {<Arad  Zerind, Zerind>, … } • Pfadkosten (additiv) • Z.B. Summe der Distanzen, # Aktionen etc. • c(x,a,y) ≥ 0 sind die Schrittkosten • Zieltest: • Explizit, z.B. x = „in Bukarest" • Implizit, z.B. Schachmatt(x) Eine Lösung ist eine Sequenz von Aktionen die vom Anfangszustand zum Zielzustand führen.

  17. Wahl des Zustandsraums • Realwelt ist hochkomplex  Zustandsraum muss abstrahieren • Wahl der Zustände schwierigster Teil der Problemformulierung! • Hier: • Zustand = Stadt • Kosten = Entfernung der Mittelpunkte • Was wurde ignoriert / idealisiert? • Kosten = Strecke (nicht Fahrzeit, Spritkosten) • Ausdehnung der Stadt, Stau, Straßenzustand • Detailabläufe: Gas geben, lenken, … • (Abstrakter) Zustand = Menge realer Zustände • (Abstrakte) Aktion = komplexe Kombination realer Aktionen • Z.B. "Arad  Zerind" repräsentiert eine komplexe Menge möglicher Routen, Umwege, Gasgeben, Lenken, etc. • Um Realisierbarkeit zu garantieren muss jeder reale Zustand "in Arad“ zu einem realen Zustand "in Zerind“ führen • (Abstrakte) Lösung = • Menge der Pfade die Lösungen in der Realwelt sind • Jede abstrakte Aktion sollte "einfacher" sein als das reale Problem

  18. Pfadkostenfunktion • Hier: Pfadkosten = Summe der Schrittkosten • Schritt = Aktion, die von einem Zustand zum nächsten führt • Sinnvoll z.B. bei Städte-Problem • A nach B 20 km • B nach C 10 km • A über B nach C 30 km • Gegenbeispiel: • Auto beschleunigt auf Weg von A nach B: 3 sec • Auto beschleunigt auf Weg von B nach C: 3 sec • Auto beschleunigt von A nach B (3 sec), ist also auf Weg von B nach C schon schneller (1 sec) !

  19. Staubsaugerwelt als Zustandsraum • Zustände? • Aktionen? • Zieltest? • Pfadkosten?

  20. Staubsaugerwelt als Zustandsraum • Zustände? Diskreter Schmutz und diskreter Ort • Aktionen?Links, Rechts, Saugen • Zieltest? Kein Schmutz an allen Orten • Pfadkosten?1 pro Aktion

  21. Beispiel: Schiebefax • Zustände? • Aktionen? • Zieltest? • Pfadkosten?

  22. Beispiel: Schiebefax • Zustände?Anordnungen • Aktionen?Verschiebe Lücke links, rechts, rauf, runter • Zieltest?Bestimmte Anordnung • Pfadkosten? 1 pro Verschieben [Bemerkung: optimale Lösung der n-Puzzle Familie ist NP-hart]

  23. 8-Damen Problem • Zustände: 0-8 Damen in bel. Anordnung • Ausgangszustand: Brett leer • Nachfolgerfunktion: 1 Dame auf freies Feld setzen • Pfadkosten: Egal • Zieltest: Alle 8 Damen da, keine wird bedroht

  24. Verwandte Problem der Routensuche • Routensuche (Zustand = Stadt) • Touring Problem: • Jede Stadt 1x besuchen, Anfangs- = Endstadt • Zustand = Aktuelle Stadt + alle schon besuchten • Traveling Salesman Problem: Kürzesten Weg für Touring finden

  25. Realweltproblem: Manipulation durch Roboter • Zustände?: Reellwertige Gelenkwinkel des Arms, reellwertige Objektkoordinaten • Aktionen?: Kontinuierliche Gelenkwinkel, Gelenkwinkelgeschwindigkeiten, -beschleunigungen • Zieltest?: Z.B. vollständige Montage • Pfadkosten?: Ausführungszeit

  26. Suchbäume • Idee: • Offline, simulierte Exploration des Suchraums, indem Nachfolger bereits untersuchter Zustände generiert werden (“Expandierung” von Zuständen)

  27. Suchbaum: Beispiel

  28. Suchbaum: Beispiel

  29. Suchbaum: Beispiel

  30. Implementierung: Allgemeiner Suchbaum

  31. Implementierung: Zustände / Knoten • Ein Zustand ist eine Repräsentation einer physischen Konfiguration • Ein Knoten ist eine Datenstruktur, die Bestandteil des Suchbaums ist. Umfasst Zustand, Elternknoten, Aktion, Pfadkosten g(x), Tiefe • Ein Zustand kann durch mehrere Knoten repräsentiert sein! (Z.B. Arad – Sibiu – Arad bei ungünstiger Strategie) • Die Expand Funktion erzeugt neue Knoten und belegt die Felder der Datenstrukturen mit Werten. Insb. wird die Nachfolgefunktion SuccessorFn des Problems angewendet, um die entsprechenden Zustände zu erhalten.

  32. Suchstrategien • Eine Suchstrategie ist definiert durch die Reihenfolge, in der die Knoten expandiert werden. • Strategien werden anhand folgender Kriterien bewertet: • Vollständigkeit: Wird garantiert eine Lösung gefunden, falls eine existiert? • Zeitkomplexität: Zahl der erzeugten Knoten • Speicherkomplexität: Maximalzahl der Knoten im Speicher • Optimalität: Wird die Lösung mit den geringsten Kosten sicher gefunden? • Optimalität heißt nicht: Die (optimale oder suboptimale) Lösung wird mit geringstem Suchaufwand gefunden! • Zeit- und Speicherkomplexität werden in folgenden Größen ausgedrückt: • b: Maximaler Verzweigungs (branching-)faktor des Suchbaums • d: Minimale Tiefe (depth) der optimalen Lösung • m: Maximale Tiefe des Suchbaums (u.U. ∞)

  33. Uninformierte Suchstrategien • Uninformierte Suchstrategien verwenden nur die Information, die durch die Problemdefinition gegeben ist • Wichtigste Strategien: • Breitensuche (Breadth-first search) • Suche mit einheitliche Kosten (Uniform-cost search) • Tiefensuche (Depth-first search ) • Tiefenbeschränkte Suche (Depth-limited search) • Iterative Tiefensuche (Iterative deepening search)

  34. Breitensuche • Expandiere zuerst Knoten mit geringster Tiefe • Implementierung: • Rand (fringe) ist eine FIFO-Schlange, d.h. neue Nachfolger werden am Ende der Schlange einsortiert

  35. Breitensuche • Expandiere zuerst Knoten mit geringster Tiefe • Implementierung: • Rand (fringe) ist eine FIFO-Schlange, d.h. neue Nachfolger werden am Ende der Schlange einsortiert

  36. Breitensuche • Expandiere zuerst Knoten mit geringster Tiefe • Implementierung: • Rand (fringe) ist eine FIFO-Schlange, d.h. neue Nachfolger werden am Ende der Schlange einsortiert

  37. Breitensuche • Expandiere zuerst Knoten mit geringster Tiefe • Implementierung: • Rand (fringe) ist eine FIFO-Schlange, d.h. neue Nachfolger werden am Ende der Schlange einsortiert

  38. Eigenschaften der Breitensuche • Vollständig? Ja (falls b endlich) • Zeit?1+b+b2+b3+… +bd + bd+1-b = O(bd+1) (Wenn Lsg. auf Tiefe d müssen noch bd+1-b Knoten (unnötig) erzeugt werden.) • Speicher?O(bd+1) (jeder Knoten wird gespeichert) • Optimal? Ja (falls Kosten = 1 pro Schritt) • Speicher ist das Hauptproblem (noch mehr als Zeit)

  39. Suche mit einheitliche Kosten • Expandiere Knoten mit (bisher) geringsten Pfadkosten zuerst • Implementierung: • Rand = Schlange geordnet nach Pfadkosten • Equivalent zu breadth-first falls Schrittkosten alle gleich • Vollständig? Ja, falls Schrittkosten ≥ ε • Zeit? # Knoten mit g ≤ Kosten der optimalen Lösung, O(bceiling(C*/ ε)), wobei C* = Kosten der optimalen Lösung • Speicher? # Knoten mit g≤ Kosten der opitmalen Lösung, O(bceiling(C*/ ε)) • Optimal? Ja – Knoten werden in ansteigender Ordnung von g(n) expandiert

  40. Depth-first search • Expandiere tiefsten Knoten zuerst • Implementierung: • Rand = LIFO Schlange, d.h. Nachfolger nach vorne

  41. Depth-first search • Expandiere tiefsten Knoten zuerst • Implementierung: • Rand = LIFO Schlange, d.h. Nachfolger nach vorne

  42. Depth-first search • Expandiere tiefsten Knoten zuerst • Implementierung: • Rand = LIFO Schlange, d.h. Nachfolger nach vorne

  43. Depth-first search • Expandiere tiefsten Knoten zuerst • Implementierung: • Rand = LIFO Schlange, d.h. Nachfolger nach vorne

  44. Depth-first search • Expandiere tiefsten Knoten zuerst • Implementierung: • Rand = LIFO Schlange, d.h. Nachfolger nach vorne

  45. Depth-first search • Expandiere tiefsten Knoten zuerst • Implementierung: • Rand = LIFO Schlange, d.h. Nachfolger nach vorne

  46. Depth-first search • Expandiere tiefsten Knoten zuerst • Implementierung: • Rand = LIFO Schlange, d.h. Nachfolger nach vorne

  47. Depth-first search • Expandiere tiefsten Knoten zuerst • Implementierung: • Rand = LIFO Schlange, d.h. Nachfolger nach vorne

  48. Depth-first search • Expandiere tiefsten Knoten zuerst • Implementierung: • Rand = LIFO Schlange, d.h. Nachfolger nach vorne

  49. Depth-first search • Expandiere tiefsten Knoten zuerst • Implementierung: • Rand = LIFO Schlange, d.h. Nachfolger nach vorne

  50. Depth-first search • Expandiere tiefsten Knoten zuerst • Implementierung: • Rand = LIFO Schlange, d.h. Nachfolger nach vorne

More Related