Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Teil I: Uninformierte Suche

Ähnliche Präsentationen


Präsentation zum Thema: "Teil I: Uninformierte Suche"—  Präsentation transkript:

1 Teil I: Uninformierte Suche
KI-Übung Teil I: Uninformierte Suche

2 Suche nach einer „intelligenten“ Lösung
Problem: „Fahre von Lübeck nach Berlin“ KI Übung SoSe 2006

3 Suche nach einer „intelligenten“ Lösung
Problem: „Fahre von Lübeck nach Berlin“ KI Übung SoSe 2006

4 Suche nach einer „intelligenten“ Lösung
1. Schritt: das richtige Abstraktionsniveau wählen Ziel formulieren: Nach Berlin zu kommen Für die Planung der Reise wichtig: Kostenebene: Die zurückgelegte Wegstrecke Zustandsebene: In welchem Ort bin ich? Aktionsebene: Von einem benachbarten Ort zum nächsten fahren Weniger wichtig: Kostenebene: Radioempfang entlang des Weges Zustandsebene: Wetterverhältnisse, Mitfahrer, Radio ein / aus Aktionsebene: Bei Kilometer 10 das Lenkrad um 3° nach links einschlagen, bei Wittstock das Radio einschalten Warum? KI Übung SoSe 2006

5 Suche nach einer „intelligenten“ Lösung
1. Schritt: das richtige Abstraktionsniveau wählen Jedes unnötige Detail erhöht die Dimension des Suchraumes (exponentiell) Bei einer geeigneten Abstraktion lässt sich die abstrakte Lösung in eine detaillierte Lösung erweitern (das Wetter kann sich ändern, wir schalten das Radio ein/aus, …) Die Wahl des Abstraktionsniveaus ist für viele KI-Fragestellungen von großer Bedeutung – und basiert teilweise auf Intuition KI Übung SoSe 2006

6 Suche nach einer „intelligenten“ Lösung
Abstraktionsniveau : Aufspaltung eines abstrakten Zustands KI Übung SoSe 2006

7 Suche nach einer „intelligenten“ Lösung
2. Schritt: Problem formulieren Zustände: „in Stadt X“ Nachfolgerfunktion: alle gültigen Zustände, die sich als nächstes erreichen lassen (alle Städte die sich direkt anfahren lassen) Startzustand festlegen Zielzustand festlegen Kosten für den Zustandsübergang (Entfernung, Zeit) KI Übung SoSe 2006

8 Suche nach einer „intelligenten“ Lösung
3. Schritt: Nach einer Lösung suchen Startzustand und Nachfolgerfunktion definieren einen Suchgraphen Dieser Suchgraph wird durchlaufen und jeder betrachtete Zustand wird daraufhin untersucht, ob es sich um den Endzustand handelt Im einfachsten Fall wird bei erreichen eines Endzustandes mit positivem Ergebnis abgebrochen Beispiel Suche startet mit „in Stadt Lübeck“ Nachfolgezustände sind „in Stadt Hamburg“ und „in Stadt Rostock“ KI Übung SoSe 2006

9 Suche nach einer „intelligenten“ Lösung
3. Schritt: nach einer Lösung suchen KI Übung SoSe 2006

10 Suche nach einer „intelligenten“ Lösung
3. Schritt: nach einer Lösung suchen KI Übung SoSe 2006

11 Suche nach einer „intelligenten“ Lösung
Beispiel für Suchproblem: 8-er Puzzle (Schiebe Puzzle) KI Übung SoSe 2006

12 Suche nach einer „intelligenten“ Lösung
Beispiel für Suchproblem: 8-er Puzzle Zustand: eine Konfiguration / Reihenfolge der 8 Plättchen Zustandsübergangsfunktion: Generiert zu einem Zustand die Menge der Zustände, die durch Verschieben von Plättchen auf die leere Stelle erreicht werden können (ein Zug!) Maximal 4 mögliche Folgezustände Kostenfunktion: Jeder Zug kostet „1“ KI Übung SoSe 2006

13 Suche nach einer „intelligenten“ Lösung
Beispiel für Suchproblem: 8-Damen Problem KI Übung SoSe 2006

14 Suche nach einer „intelligenten“ Lösung
Beispiel für Suchproblem: 8-Damen Problem Zustand: eine Konfiguration von 0<n<=8 Damen auf dem Spielbrett Zustandsübergangsfunktion: Generiert zu einem Zustand alle Zustande die durch Hinzufügen einer Dame entstehen, so dass keine Dame eine andere bedroht Kostenfunktion: keine KI Übung SoSe 2006

15 Suche nach einer „intelligenten“ Lösung
Datenstruktur: Suchbaum Enthält Knoten / Kanten Repräsentiert eine Zustandsfolge, d.h. Knoten des Suchbaumes sind keine Zustände (sondern enthalten einen Zustand – zwei Knoten können den selben Zustand enthalten) Knoten-Fachsprache: Elternknoten Zustandsübergang Kosten des Pfades bis zum Knoten Tiefe des Knotens im Suchbaum KI Übung SoSe 2006

16 Suche nach einer „intelligenten“ Lösung
Exkursion „(gerichteter Wurzel-)Baum“ Kreisfreier, zusammenhängender Graph Bei n Knoten genau (n-1) Kanten (und zusammenhängend) Tiefe (depth) d eines Knotens: Anzahl der Kanten eines Pfades zur Wurzel Grad g eines Knotens: Anzahl der vom Konten ausgehenden Kanten Verzweigungsgrad (branching factor) b des Baumes: maximale Anzahl der Nachfolgerknoten über alle Knoten Im gerichteten Wurzelbaum ist ein Knoten (Startknoten) als Wurzel ausgewiesen, dadurch ist die Richtung der Eltern – Kindbeziehung im Baum vorgegeben Knoten ohne Kinder heißen Blätter Pfad: Folge von Kanten zwischen zwei Knoten, die Länge entspricht der (gewichteten) Anzahl der Kanten KI Übung SoSe 2006

17 Suche nach einer „intelligenten“ Lösung
Beispiel: Baum KI Übung SoSe 2006

18 Suche nach einer „intelligenten“ Lösung
Beispiel: Wurzelbaum KI Übung SoSe 2006

19 Suche nach einer „intelligenten“ Lösung
Datenstruktur: Suchbaum Ein Knoten mit dem Startzustand bildet die Wurzel Noch nicht „expandierte“ Knoten sind Blätter im aktuellen Suchbaum, die Menge aller dieser Knoten wird auch als ‚fringe‘ (Rand) bezeichnet KI Übung SoSe 2006

20 Suche nach einer „intelligenten“ Lösung
Suchalgorithmus Falls ein Knoten (im Suchbaum! – nicht im Zustandsgraphen) existiert, dessen Nachfolger noch nicht betrachtet wurden (d.h. ein Blatt-Knoten aus der „fringe“), dann Wenn der Knoten einen Zielzustand enthält, terminiere mit Lösung Sonst, bestimme die Nachfolgerknoten und füge sie zum Suchbaum hinzu Falls nicht, terminiere ohne Ergebnis Mögliche Datenstrukturen zur Verwaltung der „fringe“: FIFO / SCHLANGE (implementiert Breitensuche …) LIFO / STACK (implementiert Tiefensuche …) Komplexere Funktion (ggf. mit Kosten) KI Übung SoSe 2006

21 Suche nach einer „intelligenten“ Lösung
Breitensuche (BFS, breadth first search) Die Blätter des Suchbaumes werden in einer FIFO (first-in-first-out) - Datenstruktur gespeichert Beginnend mit dem Wurzelknoten werden jeweils alle Nachfolger eines Knoten bestimmt und gespeichert Wegen FIFO kommen die Kinder immer nach der Elterngeneration dran, d.h. Es werden erst alle Knoten mit Tiefe n betrachtet, danach alle Knoten mit Tiefe n+1, usw. Es findet eine Suche „in die Breite“ statt KI Übung SoSe 2006

22 Suche nach einer „intelligenten“ Lösung
Breitensuche (BFS, breadth first search) KI Übung SoSe 2006

23 Suche nach einer „intelligenten“ Lösung
Kostenbasierte Suche (uniform cost search) Ähnlich wie Breitensuche, aber statt der Tiefe wird anhand einer Kostenfunktion bestimmt, welche Nachfolger gewählt werden sollen Für Kosten von 1 für alle Zustandsübergänge ergibt sich der gleiche Ablauf wie für Breitensuche KI Übung SoSe 2006

24 Suche nach einer „intelligenten“ Lösung
Kostenbasierte Suche (uniform cost search) KI Übung SoSe 2006

25 Suche nach einer „intelligenten“ Lösung
Tiefensuche (DFS, depth first search) Die Blätter des Suchbaumes werden in einer LIFO (last-in-first-out) - Datenstruktur gespeichert Beginnend mit dem Wurzelknoten wird sukzessive zu einem Knoten ein Nachfolger (Kind) ausgewählt Wegen LIFO wird zuerst ein Pfad bis zum Blatt verfolgt, d.h. Es wird immer der Knoten mit der größten Tiefe weiter expandiert Erst wenn bei einem Knoten der Tiefe n keine unbetrachteten Nachfolger mehr existieren wird der nächste „Geschwisterknoten“ der selben Tiefe betrachtet bzw. ein Knoten mit geringerer Tiefe betrachtet Es findet eine Suche „in die Tiefe“ statt Alternativ zur Verwaltung aller Kinder im Stack: Backtracking vom Kind zum Elternknoten, wo der nächste Kindknoten gewählt wird KI Übung SoSe 2006

26 Suche nach einer „intelligenten“ Lösung
Tiefensuche (DFS, depth first search) KI Übung SoSe 2006

27 Suche nach einer „intelligenten“ Lösung
Tiefensuche mit Tiefenlimit Ähnlich wie Tiefensuche, aber es werden nur Knoten bis zu einer fest definierten Tiefe n betrachtet KI Übung SoSe 2006

28 Suche nach einer „intelligenten“ Lösung
Iterativ fortschreitende Tiefensuche (iterative deepening dfs) Tiefensuche mit Tiefenlimit dmax Falls eine Lösung gefunden wurde, terminiere mit Lösung Sonst: Falls der Suchbaum nicht vollständig durchlaufen wurde, setze inkrementiere dmax um 1 und starte einen neuen Suchlauf Sonst terminiere mit dem Ergebnis, dass keine Lösung existiert Die Suche wird also unter Umständen sehr oft wiederholt?! Ja, aber die meisten Knoten haben immer die Tiefe des Lösungsknoten Es werden nur Knoten mit maximal der Tiefe des Lösungsknoten erzeugt – vergleiche Breitensuche, dort werden für einen Teil der Knoten mit Tiefe n die Kindknoten erzeugt und in der FIFO-Schlange gespeichert Daher ist iterative Tiefensuche schneller als Breitensuche! KI Übung SoSe 2006

29 Suche nach einer „intelligenten“ Lösung
Iterativ fortschreitende Tiefensuche (iterative deepening dfs) KI Übung SoSe 2006

30 Suche nach einer „intelligenten“ Lösung
Iterativ fortschreitende Tiefensuche vs. Breitensuche Im Beispiel Iterative Tiefensuche (IDS): 3 * 2 Knoten der Tiefe * 7 Knoten der Tiefe * 6 Knoten der Tiefe 3 Breitensuche (BFS): 1 * 2 Knoten der Tiefe * 7 Knoten der Tiefe * 16 Knoten der Tiefe * 19 Knoten der Tiefe 4 Im Ergebnis hat IDS einige Knoten mehrfach erzeugt aber insgesamt nur 26 Knoten im Vergleich zu 44 Knoten bei Breitensuche erzeugt! KI Übung SoSe 2006

31 Suche nach einer „intelligenten“ Lösung
Bidirektionale Suche (bidirectional search) Suche sowohl vom Startzustand Richtung Zielzustand als auch vom Zielzustand Richtung Startzustand Reduziert die Suchtiefe und damit die Zeit Aber Oft existieren mehrere Zielzustände (Schach-Matt-Positionen) Die Vorgängerzustände lassen sich oft nicht einfach berechnen KI Übung SoSe 2006

32 Suche nach einer „intelligenten“ Lösung
Bidirektionale Suche (bidirectional search) KI Übung SoSe 2006

33 Suche nach einer „intelligenten“ Lösung
Kriterien zur Bewertung von Lösungsstrategien Vollständigkeit (completeness): wenn es eine Lösung gibt, sollte der Algorithmus sie auch finden. Optimalität (otimality): die vom Algorithmus gefunden Lösung ist hinsichtlich eine Bewertungsfunktion (Kosten) optimal Zeitkomplexität (time complexity): die benötigte Rechenzeit, als Anzahl der insgesamt betrachteten Knoten Speicherkomplexität (space complexity): der zur Abarbeitung benötigte Platz (die Anzahl der gleichzeitig im Speicher befindlichen Knoten) Nachfolgend gilt: b ist der maximale Verzweigungsgrad im Baum d ist die Tiefe des (ersten) Zielknotens m ist die maximale Tiefe im Baum (= Höhe des Baumes) C sind Kosten der optimalen Lösung e sind die minimalen Kosten für einen Zustandsübergang KI Übung SoSe 2006

34 Suche nach einer „intelligenten“ Lösung
Vergleich der betrachteten Suchstrategien Breitensuche Vollständigkeit: ja, falls es zu jedem Knoten endlich viele Nachfolger gibt Optimalität: ja, falls die Kosten für Zustandübergänge immer gleich sind Zeitkomplexität: O(b(d+1)) Im worst case ist die Lösung der letzte Knoten der Tiefe d, d.h. es gibt b Knoten der Tiefe 1, b2 Knoten der Tiefe 2 … bd Knoten der Tiefe d es werden außerdem (bd-1)*b = bd+1-b Knoten der Tiefe d+1 erzeugt und in die FIFO-Schlange geschrieben Speicherkomplexität: O(b(d+1)) In der Schlange befinden sich im worst case die (bd-1)*b Knoten die bei der Betrachtung der Knoten mit Tiefe d erzeugt werden KI Übung SoSe 2006

35 Suche nach einer „intelligenten“ Lösung
Vergleich der betrachteten Suchstrategien Kostenbasierte Suche Vollständigkeit: ja, falls es zu jedem Knoten endlich viele Nachfolger gibt und die Kosten immer > ε > 0 sind Optimalität: Ja, falls alle Kosten ≥ 0 Zeitkomplexität: O(b(C/e)) Anzahl der Knoten nicht abhängig von der Tiefe des Zielknotens im Baum, im worst case wird ein Baum der Tiefe C/e vor der optimalen Lösung betrachtet Speicherkomplexität: O(b(C/e)) Im worst case müssen die Knoten mit der Tiefe C/e gespeichert werden KI Übung SoSe 2006

36 Suche nach einer „intelligenten“ Lösung
Vergleich der betrachteten Suchstrategien Kostenbasierte Suche KI Übung SoSe 2006

37 Suche nach einer „intelligenten“ Lösung
Vergleich der betrachteten Suchstrategien Tiefensuche Vollständigkeit: nein, unendliche Pfade möglich Optimalität: nein, erste gefundene Lösung muss nicht optimal sein Zeitkomplexität: O(bm) Im worst case werden alle Knoten durchlaufen, insbesondere auch der am tiefsten im Baum liegende Knoten mit der Tiefe m m kann unendlich sein, siehe oben! Speicherkomplexität: O(bm) Wenn alle Geschwisterknoten auf dem Weg zum tiefsten Knoten erzeugt und gespeichert werden, werden auf m Ebenen je maximal b Knoten erzeugt Falls die Knoten mit Backtracking – es wird nur jeweils ein Nachfolger- knoten je Knoten generiert, nur falls die Suche unterhalb des Nachfolgers erfolglos ist, wird der nächste generiert - durchlaufen werden : O(m) KI Übung SoSe 2006

38 Suche nach einer „intelligenten“ Lösung
Vergleich der betrachteten Suchstrategien Tiefenbeschränkte Tiefensuche Vollständigkeit: nein, Lösung ggf. durch Tiefenschranke abgeschnitten Optimalität: nein, erste gefundene Lösung muss nicht optimal sein Zeitkomplexität: O(bl) Siehe Tiefensuche, wobei l die maximale Tiefe gemäß Tiefenschranke darstellt Speicherkomplexität: O(bl) KI Übung SoSe 2006

39 Suche nach einer „intelligenten“ Lösung
Vergleich der betrachteten Suchstrategien Iterative Tiefensuche Vollständigkeit: ja, falls es zu jedem Knoten endlich viele Nachfolger gibt Optimalität: ja, falls die Kosten für Zustandsübergänge immer gleich sind Zeitkomplexität: O(bd) Es werden keine Knoten der Tiefe d+1 betrachtet (wegen Schranke)! Knoten der Tiefe d werden 1 x betrachtet, Knoten der Tiefe (d-1) 2 x, usw., aber 2*b(d-1) , d.h. O(bd) (wegen b>=2, 2*bd/b …) Ist günstiger als Breitensuche (!) und ohne weitere a priori – Informationen die bevorzugte uninformierte Suchstrategie Speicherkomplexität: O(bd) Siehe Tiefensuche / tiefenbeschränke Tiefensuche KI Übung SoSe 2006

40 Suche nach einer „intelligenten“ Lösung
Vergleich der betrachteten Suchstrategien Bidirektionale Suche Vollständigkeit: hängt von der Suchstrategie ab, ja falls Breitensuche Optimalität: Zeitkomplexität: O(b(d/2)) Bei Breitensuche Speicherkomplexität: O(b(d/2)) KI Übung SoSe 2006

41 Suche nach einer „intelligenten“ Lösung
Vergleich der betrachteten Suchstrategien Fazit: die geeignete Suchstrategie hängt von der Problemstellung ab, u.a.: Ist die maximale Tiefe des Zielknotens bekannt? Ist der Suchbaum endlich? Sind Zustandübergänge mit Kosten verbunden? Gibt es wenige / viele Zielknoten? Lassen sich die Vorgängerknoten (Elternknoten) effizient bestimmen? KI Übung SoSe 2006

42 Suche nach einer „intelligenten“ Lösung
Vermeidung von Wiederholungen (DFS, depth first search) KI Übung SoSe 2006

43 Suche nach einer „intelligenten“ Lösung
Vermeidung von Wiederholungen (DFS, depth first search) KI Übung SoSe 2006

44 Suche nach einer „intelligenten“ Lösung
Vermeidung von Wiederholungen (DFS, depth first search) KI Übung SoSe 2006

45 Suche nach einer „intelligenten“ Lösung
Vermeidung von Wiederholungen (DFS, depth first search) KI Übung SoSe 2006

46 Suche nach einer „intelligenten“ Lösung
Vermeidung von Wiederholungen (DFS, depth first search) KI Übung SoSe 2006

47 Suche nach einer „intelligenten“ Lösung
Vermeidung von Wiederholungen (GRAPH SEARCH) Open List (SUCHGRAPH) Closed List (HISTORY) KI Übung SoSe 2006

48 Suche nach einer „intelligenten“ Lösung
Vermeidung von Wiederholungen (GRAPH SEARCH) Open List (SUCHGRAPH) Closed List (HISTORY) KI Übung SoSe 2006

49 Suche nach einer „intelligenten“ Lösung
Vermeidung von Wiederholungen (GRAPH SEARCH) Open List (SUCHGRAPH) Closed List (HISTORY) KI Übung SoSe 2006

50 Suche nach einer „intelligenten“ Lösung
Vermeidung von Wiederholungen Zyklen im Zustandsgraphen führen zu wiederholten Abfolgen von Knoten im Suchbaum und zu endlosen Pfaden Idee: bereits betrachtete Zustände merken und nicht erneut betrachten Beispiel 1: Tiefensuche speichert alle Knoten auf dem Pfad Bei jedem neuen Knoten wird getestet, ob Knoten mit dem gleichen Zustand bereits betrachtet Ggf. wird der Knoten nicht weiter betrachtet Beispiel 2: alle bereits betrachteten Zustände werden in einer entsprechenden Datenstruktur (Hashset) gespeichert Reduziert Suchbaum ggf. erheblich Bei allen Suchstrategien von Vorteil Erfordert ggf. sehr viel Speicher KI Übung SoSe 2006

51 Suche nach einer „intelligenten“ Lösung
Weitere Beispiele Touren-Probleme: Zustände enthalten nicht nur eine bestimmte Stadt als Ziel, sondern die Menge der besuchten Städte – Ziel ist eine Tour über alle Städte Spezialfall: Traveling Salesman Problem (TSP): jede Stadt darf nur ein Mal besucht werden Roboter-Navigation: Bewegungen des Roboters im Raum, so dass ein beliebiger Zielzustand erreicht wird Automatische Montageplanung (assembly planning): Suche nach einer Abfolge von Montageschritten, die das fertige Produkt erzeugen Suche im Internet KI Übung SoSe 2006


Herunterladen ppt "Teil I: Uninformierte Suche"

Ähnliche Präsentationen


Google-Anzeigen