Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "Problemlösen durch Suchen. Überblick Problemlösende Agenten Motivation: Problemlösen durch Suche Problemtypen Probleme formulieren Beispielprobleme Einfache."—  Präsentation transkript:

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: 1.Berechne erst vollständige Lösung 2.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 #7 Lö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 #7 Lösung? [Rechts, wenn Schmutz dann Saugen]

16 Formulierung des Single-State Problems Nach Festlegen der Zustände ist ein Problem definiert durch vier Punkte: 1.Anfangszustand, z.B. in Arad" 2.Aktionen, die in einem Zustand möglich sind, sind gegeben durch die Nachfolgerfunktion S(x) = Menge der Aktion–Zustand Paare –Z.B. S(Arad) = {, … } 3.Pfadkosten (additiv) –Z.B. Summe der Distanzen, # Aktionen etc. –c(x,a,y) 0 sind die Schrittkosten 4.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

29

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+b 2 +b 3 +… +b d + b d+1 -b = O(b d+1 ) (Wenn Lsg. auf Tiefe d müssen noch b d+1 -b Knoten (unnötig) erzeugt werden.) Speicher? O(b d+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(b ceiling(C*/ ε) ), wobei C * = Kosten der optimalen Lösung Speicher? # Knoten mit g Kosten der opitmalen Lösung, O(b ceiling(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

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

52 Eigenschaften der depth-first search Vollständig? Nein: Versagt in unendlich tiefen Suchräumen und Suchräumen mit Schleifen –Modifikation: Verbot der Zustandswiederholung entlang eines Pfades Vollständig in endlichen Suchräumen Zeit? O(b m ): Katastrophal falls m wesentlich größer als d – Aber: Falls Lösungen dicht sind, kann depth-first wesentlich schneller sein als breadth-first Speicher? O(bm), d.h., linear im Speicher! Optimal? Nein

53 Tiefenbeschränkte Suche = depth-first Suche mit Tiefenlimit l, d.h. Knoten mit Tiefe l haben keine Nachfolger Rekursive Implementierung:

54 Iterative Tiefensuche

55 Iterative Tiefensuche l =0 Schwarz: Expandierte Knoten ohne Nachfolger Neustart für jedes l !

56 Iterative Tiefensuche l =1 Schwarz: Expandierte Knoten ohne Nachfolger Neustart für jedes l !

57 Iterative Tiefensuche l =2 Schwarz: Expandierte Knoten ohne Nachfolger Neustart für jedes l !

58 Iterative Tiefensuche l =3 Schwarz: Expandierte Knoten ohne Nachfolger Neustart für jedes l !

59 Iterative Tiefensuche Zahl der Knoten, die depth-limited Suche bis Tiefe d mit Verzweigungsfaktor b generiert: N DLS = b 0 + b 1 + b 2 + … + b d-2 + b d-1 + b d Zahl der Knoten, die Iterative Tiefensuche bis Tiefe d mit Verzweigungsfaktor b generiert: N IDS = (d+1)b 0 + d b 1 + (d-1)b 2 + … + 3b d-2 +2b d-1 + 1b d Für b = 10, d = 5, –N DLS = , , ,000 = 111,111 –N IDS = , , ,000 = 123,456 Overhead = (123, ,111)/111,111 = 11%

60 Eigenschaften der Iterativen Tiefensuche Vollständig? Ja Zeit? (d+1)b 0 + d b 1 + (d-1)b 2 + … + b d = O(b d ) Speicher? O(bd) Optimal? Ja, wenn Schrittkosten = 1

61 Übersicht

62 Wiederholte Zustände Wenn wiederholte Zustände nicht erkannt werden, kann ein lineares Problem exponentiell werden! Zustandsraum Suchbaum

63 Graphensuche Modifikation von Tree-Search: Liste bereits besuchter Zustände Bei wiederholtem Zustand wird der neue Pfad verworfen Findet daher i.a. nicht das Optimum, außer im Fall –konstanter Kosten oder –Breadth-first-seach Speicherprobleme bei sehr vielen Zuständen

64 Zusammenfassung Problemformulierung erfordert gewöhnlich Abstraktion. Irrelevante Details der Realwelt werden weggelassen um einen Zustandsraum zu erhalten, in dem das Problem durch Suche gelöst werden kann. Sehr unterschiedliche blinde / uninformierte Suchstrategien Iterative Tiefensuche benötigt nur linearen Speicher und nicht wesentlich mehr Zeit als andere uninformierte Algorithmen Graphensuche vermeidet wiederholte Zustände


Herunterladen ppt "Problemlösen durch Suchen. Überblick Problemlösende Agenten Motivation: Problemlösen durch Suche Problemtypen Probleme formulieren Beispielprobleme Einfache."

Ähnliche Präsentationen


Google-Anzeigen