1 / 51

KI-Übung

Teil I: Uninformierte Suche. KI-Übung. Suche nach einer „intelligenten“ Lösung. Problem: „Fahre von Lübeck nach Berlin“. Suche nach einer „intelligenten“ Lösung. Problem: „Fahre von Lübeck nach Berlin“. Suche nach einer „intelligenten“ Lösung.

waite
Download Presentation

KI-Übung

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. Teil I: Uninformierte Suche KI-Übung

  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 1 2 * 7 Knoten der Tiefe 2 1 * 6 Knoten der Tiefe 3 • Breitensuche (BFS): 1 * 2 Knoten der Tiefe 1 1 * 7 Knoten der Tiefe 2 1 * 16 Knoten der Tiefe 3 1 * 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 … bdKnoten 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) • Siehe Tiefensuche, wobei l die maximale Tiefe gemäß Tiefenschranke darstellt 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: • hängt von der Suchstrategie ab, ja falls Breitensuche • Zeitkomplexität: O(b(d/2)) • Bei Breitensuche • Speicherkomplexität: O(b(d/2)) • Bei Breitensuche 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

More Related