51
KI-Übung Teil I: Uninformierte Suche

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

Embed Size (px)

Citation preview

Page 1: KI-Übung Teil I: Uninformierte Suche. KI Übung SoSe 2006 Suche nach einer intelligenten Lösung Problem: Fahre von Lübeck nach Berlin

KI-Übung

Teil I: Uninformierte Suche

Page 2: KI-Übung Teil I: Uninformierte Suche. KI Übung SoSe 2006 Suche nach einer intelligenten Lösung Problem: Fahre von Lübeck nach Berlin

KI Übung SoSe 2006

Suche nach einer „intelligenten“ Lösung

Problem: „Fahre von Lübeck nach Berlin“

Hannover

Rostock

Hamburg

Lübeck

Bremen

Kiel

Magdeburg

Leipzig

Münster

Kassel

Dresden

Wittstock

Berlin

Page 3: KI-Übung Teil I: Uninformierte Suche. KI Übung SoSe 2006 Suche nach einer intelligenten Lösung Problem: Fahre von Lübeck nach Berlin

KI Übung SoSe 2006

Suche nach einer „intelligenten“ Lösung Problem: „Fahre von Lübeck nach Berlin“

Hannover

Rostock

Hamburg

Lübeck

Bremen

Kiel

Magdeburg

Leipzig

Münster

Kassel

Dresden

Wittstock

Berlin

Page 4: KI-Übung Teil I: Uninformierte Suche. KI Übung SoSe 2006 Suche nach einer intelligenten Lösung Problem: Fahre von Lübeck nach Berlin

KI Übung SoSe 2006

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?

Page 5: KI-Übung Teil I: Uninformierte Suche. KI Übung SoSe 2006 Suche nach einer intelligenten Lösung Problem: Fahre von Lübeck nach Berlin

KI Übung SoSe 2006

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

Page 6: KI-Übung Teil I: Uninformierte Suche. KI Übung SoSe 2006 Suche nach einer intelligenten Lösung Problem: Fahre von Lübeck nach Berlin

KI Übung SoSe 2006

Suche nach einer „intelligenten“ Lösung Abstraktionsniveau : Aufspaltung eines abstrakten Zustands

Hamburg

Lübeck

Wittstock

Berlin

Hamburg

Lübeck

Wittstock

Berlin

Hamburg

Lübeck

Wittstock

Berlin

Hamburg

Lübeck

Wittstock

Berlin

Page 7: KI-Übung Teil I: Uninformierte Suche. KI Übung SoSe 2006 Suche nach einer intelligenten Lösung Problem: Fahre von Lübeck nach Berlin

KI Übung SoSe 2006

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)

Page 8: KI-Übung Teil I: Uninformierte Suche. KI Übung SoSe 2006 Suche nach einer intelligenten Lösung Problem: Fahre von Lübeck nach Berlin

KI Übung SoSe 2006

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“

Page 9: KI-Übung Teil I: Uninformierte Suche. KI Übung SoSe 2006 Suche nach einer intelligenten Lösung Problem: Fahre von Lübeck nach Berlin

KI Übung SoSe 2006

Suche nach einer „intelligenten“ Lösung 3. Schritt: nach einer Lösung suchen

Hannover

Rostock

Hamburg

Lübeck

Bremen

Kiel

Magdeburg

Leipzig

Münster

Kassel

Dresden

Wittstock

Berlin

1

1

Page 10: KI-Übung Teil I: Uninformierte Suche. KI Übung SoSe 2006 Suche nach einer intelligenten Lösung Problem: Fahre von Lübeck nach Berlin

KI Übung SoSe 2006

Suche nach einer „intelligenten“ Lösung 3. Schritt: nach einer Lösung suchen

Hannover

Rostock

Hamburg

Lübeck

Bremen

Kiel

Magdeburg

Leipzig

Münster

Kassel

Dresden

Wittstock

Berlin

1

12

2

2

22

Page 11: KI-Übung Teil I: Uninformierte Suche. KI Übung SoSe 2006 Suche nach einer intelligenten Lösung Problem: Fahre von Lübeck nach Berlin

KI Übung SoSe 2006

Suche nach einer „intelligenten“ Lösung Beispiel für Suchproblem: 8-er Puzzle (Schiebe Puzzle)

Page 12: KI-Übung Teil I: Uninformierte Suche. KI Übung SoSe 2006 Suche nach einer intelligenten Lösung Problem: Fahre von Lübeck nach Berlin

KI Übung SoSe 2006

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“

Page 13: KI-Übung Teil I: Uninformierte Suche. KI Übung SoSe 2006 Suche nach einer intelligenten Lösung Problem: Fahre von Lübeck nach Berlin

KI Übung SoSe 2006

Suche nach einer „intelligenten“ Lösung Beispiel für Suchproblem: 8-Damen Problem

Page 14: KI-Übung Teil I: Uninformierte Suche. KI Übung SoSe 2006 Suche nach einer intelligenten Lösung Problem: Fahre von Lübeck nach Berlin

KI Übung SoSe 2006

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

Page 15: KI-Übung Teil I: Uninformierte Suche. KI Übung SoSe 2006 Suche nach einer intelligenten Lösung Problem: Fahre von Lübeck nach Berlin

KI Übung SoSe 2006

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

Page 16: KI-Übung Teil I: Uninformierte Suche. KI Übung SoSe 2006 Suche nach einer intelligenten Lösung Problem: Fahre von Lübeck nach Berlin

KI Übung SoSe 2006

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

Page 17: KI-Übung Teil I: Uninformierte Suche. KI Übung SoSe 2006 Suche nach einer intelligenten Lösung Problem: Fahre von Lübeck nach Berlin

KI Übung SoSe 2006

Suche nach einer „intelligenten“ Lösung Beispiel: Baum

G E A

F D C BK

I H

17

3

6 4 2 3

8 4

Knoten Kante

Kanten-gewicht

Pfad von F nach H(Länge 12)

Blatt

Page 18: KI-Übung Teil I: Uninformierte Suche. KI Übung SoSe 2006 Suche nach einer intelligenten Lösung Problem: Fahre von Lübeck nach Berlin

KI Übung SoSe 2006

Suche nach einer „intelligenten“ Lösung Beispiel: Wurzelbaum

G

E

A

F

D C

B

K

I H

17 3

6 4

2

3

8 4

Wurzel

Elternknoten

Tiefe (2)

Kindknoten

Page 19: KI-Übung Teil I: Uninformierte Suche. KI Übung SoSe 2006 Suche nach einer intelligenten Lösung Problem: Fahre von Lübeck nach Berlin

KI Übung SoSe 2006

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

Lübeck

Hamburg Rostock

Kiel WittstockBremen HannoverLübeck Lübeck

„fringe“

Wittstock

Page 20: KI-Übung Teil I: Uninformierte Suche. KI Übung SoSe 2006 Suche nach einer intelligenten Lösung Problem: Fahre von Lübeck nach Berlin

KI Übung SoSe 2006

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)

Page 21: KI-Übung Teil I: Uninformierte Suche. KI Übung SoSe 2006 Suche nach einer intelligenten Lösung Problem: Fahre von Lübeck nach Berlin

KI Übung SoSe 2006

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

Page 22: KI-Übung Teil I: Uninformierte Suche. KI Übung SoSe 2006 Suche nach einer intelligenten Lösung Problem: Fahre von Lübeck nach Berlin

KI Übung SoSe 2006

Suche nach einer „intelligenten“ Lösung Breitensuche (BFS, breadth first search)

Lübeck

Hamburg Rostock

Kiel WittstockBremen HannoverLübeck LübeckWittstock

Ha

mb

urg

Be

rlin

Ro

sto

ck

Ha

mb

urg

Ro

sto

ck

Ha

mb

urg

Ha

mb

urg

nst

er

Ha

mb

urg

Ka

sse

l

Ma

gd

eb

urg

Ha

mb

urg

Ro

sto

ck

Ha

mb

urg

Be

rlin

Ro

sto

ck

Page 23: KI-Übung Teil I: Uninformierte Suche. KI Übung SoSe 2006 Suche nach einer intelligenten Lösung Problem: Fahre von Lübeck nach Berlin

KI Übung SoSe 2006

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

Page 24: KI-Übung Teil I: Uninformierte Suche. KI Übung SoSe 2006 Suche nach einer intelligenten Lösung Problem: Fahre von Lübeck nach Berlin

KI Übung SoSe 2006

Suche nach einer „intelligenten“ Lösung Kostenbasierte Suche (uniform cost search)

Hamburg

Lübeck

Hamburg

Rostock

Kiel

Wittstock

BremenHannover

Lübeck

Lübeck

70

100

70

90100 120

100

12070

100

110

90100

100120 220

70 100

170 120

Wittstock

170

120

110

Ha

mb

urg

Be

rlin

Ro

sto

ck

Ro

sto

ck

Ha

mb

urg

Ha

mb

urg

nst

er

Ha

mb

urg

Ka

sse

l

Ma

gd

eb

urg

Ha

mb

urg

Ro

sto

ck

Ha

mb

urg

Be

rlin

Ro

sto

ck

350 330

Page 25: KI-Übung Teil I: Uninformierte Suche. KI Übung SoSe 2006 Suche nach einer intelligenten Lösung Problem: Fahre von Lübeck nach Berlin

KI Übung SoSe 2006

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

Page 26: KI-Übung Teil I: Uninformierte Suche. KI Übung SoSe 2006 Suche nach einer intelligenten Lösung Problem: Fahre von Lübeck nach Berlin

KI Übung SoSe 2006

Suche nach einer „intelligenten“ Lösung Tiefensuche (DFS, depth first search)

Lübeck

Hamburg Rostock

Wittstock

BerlinHamburg

Wittstock

Page 27: KI-Übung Teil I: Uninformierte Suche. KI Übung SoSe 2006 Suche nach einer intelligenten Lösung Problem: Fahre von Lübeck nach Berlin

KI Übung SoSe 2006

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

Lübeck

Hamburg Rostock

Wittstock

BerlinHamburg

Wittstock

Tiefenbegrenzung d max=4

Kiel Bremen HannoverLübeck

Page 28: KI-Übung Teil I: Uninformierte Suche. KI Übung SoSe 2006 Suche nach einer intelligenten Lösung Problem: Fahre von Lübeck nach Berlin

KI Übung SoSe 2006

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!

Page 29: KI-Übung Teil I: Uninformierte Suche. KI Übung SoSe 2006 Suche nach einer intelligenten Lösung Problem: Fahre von Lübeck nach Berlin

KI Übung SoSe 2006

Suche nach einer „intelligenten“ Lösung Iterativ fortschreitende Tiefensuche (iterative deepening dfs)

Lübeck

Hamburg Rostock

Kiel WittstockBremen HannoverLübeck LübeckWittstock

Ha

mb

urg

Ro

sto

ck

Be

rlin

Ha

mb

urg

Ro

sto

ck

Ha

mb

urg

Ha

mb

urg

nst

er

Ha

mb

urg

Ka

sse

l

Ma

gd

eb

urg

Ha

mb

urg

Ro

sto

ck

Ha

mb

urg

Be

rlin

Ro

sto

ck

dmax =0

dmax =1

dmax =2

dmax =3

Page 30: KI-Übung Teil I: Uninformierte Suche. KI Übung SoSe 2006 Suche nach einer intelligenten Lösung Problem: Fahre von Lübeck nach Berlin

KI Übung SoSe 2006

Suche nach einer „intelligenten“ Lösung Iterativ fortschreitende Tiefensuche vs. Breitensuche

Im Beispiel Iterative Tiefensuche (IDS):

3 * 2 Knoten der Tiefe 12 * 7 Knoten der Tiefe 21 * 6 Knoten der Tiefe 3

Breitensuche (BFS):1 * 2 Knoten der Tiefe 11 * 7 Knoten der Tiefe 21 * 16 Knoten der Tiefe 31 * 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!

Page 31: KI-Übung Teil I: Uninformierte Suche. KI Übung SoSe 2006 Suche nach einer intelligenten Lösung Problem: Fahre von Lübeck nach Berlin

KI Übung SoSe 2006

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

Page 32: KI-Übung Teil I: Uninformierte Suche. KI Übung SoSe 2006 Suche nach einer intelligenten Lösung Problem: Fahre von Lübeck nach Berlin

KI Übung SoSe 2006

Suche nach einer „intelligenten“ Lösung Bidirektionale Suche (bidirectional search)

Lübeck

Hamburg Rostock

Kiel WittstockBremen HannoverLübeck LübeckWittstock

Berlin

Wittstock Magdeburg Leipzig Dresden

Page 33: KI-Übung Teil I: Uninformierte Suche. KI Übung SoSe 2006 Suche nach einer intelligenten Lösung Problem: Fahre von Lübeck nach Berlin

KI Übung SoSe 2006

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

Page 34: KI-Übung Teil I: Uninformierte Suche. KI Übung SoSe 2006 Suche nach einer intelligenten Lösung Problem: Fahre von Lübeck nach Berlin

KI Übung SoSe 2006

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

Page 35: KI-Übung Teil I: Uninformierte Suche. KI Übung SoSe 2006 Suche nach einer intelligenten Lösung Problem: Fahre von Lübeck nach Berlin

KI Übung SoSe 2006

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

Page 36: KI-Übung Teil I: Uninformierte Suche. KI Übung SoSe 2006 Suche nach einer intelligenten Lösung Problem: Fahre von Lübeck nach Berlin

KI Übung SoSe 2006

Suche nach einer „intelligenten“ Lösung Vergleich der betrachteten Suchstrategien Kostenbasierte Suche

>> ed'

d = 2C = Kosten auf dem Pfad

Page 37: KI-Übung Teil I: Uninformierte Suche. KI Übung SoSe 2006 Suche nach einer intelligenten Lösung Problem: Fahre von Lübeck nach Berlin

KI Übung SoSe 2006

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)

Page 38: KI-Übung Teil I: Uninformierte Suche. KI Übung SoSe 2006 Suche nach einer intelligenten Lösung Problem: Fahre von Lübeck nach Berlin

KI Übung SoSe 2006

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

Page 39: KI-Übung Teil I: Uninformierte Suche. KI Übung SoSe 2006 Suche nach einer intelligenten Lösung Problem: Fahre von Lübeck nach Berlin

KI Übung SoSe 2006

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

Page 40: KI-Übung Teil I: Uninformierte Suche. KI Übung SoSe 2006 Suche nach einer intelligenten Lösung Problem: Fahre von Lübeck nach Berlin

KI Übung SoSe 2006

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

Page 41: KI-Übung Teil I: Uninformierte Suche. KI Übung SoSe 2006 Suche nach einer intelligenten Lösung Problem: Fahre von Lübeck nach Berlin

KI Übung SoSe 2006

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?

Page 42: KI-Übung Teil I: Uninformierte Suche. KI Übung SoSe 2006 Suche nach einer intelligenten Lösung Problem: Fahre von Lübeck nach Berlin

KI Übung SoSe 2006

Suche nach einer „intelligenten“ Lösung Vermeidung von Wiederholungen (DFS, depth first search)

Lübeck

Hamburg Rostock

Wittstock

BerlinHamburg

Wittstock

Page 43: KI-Übung Teil I: Uninformierte Suche. KI Übung SoSe 2006 Suche nach einer intelligenten Lösung Problem: Fahre von Lübeck nach Berlin

KI Übung SoSe 2006

Suche nach einer „intelligenten“ Lösung Vermeidung von Wiederholungen (DFS, depth first search)

Lübeck

Hamburg Rostock

Wittstock

BerlinHamburg

= ?

= ?

Page 44: KI-Übung Teil I: Uninformierte Suche. KI Übung SoSe 2006 Suche nach einer intelligenten Lösung Problem: Fahre von Lübeck nach Berlin

KI Übung SoSe 2006

Suche nach einer „intelligenten“ Lösung Vermeidung von Wiederholungen (DFS, depth first search)

Lübeck

Hamburg Rostock

Kiel WittstockBremen HannoverLübeck LübeckWittstock

Ha

mb

urg

Be

rlin

Ro

sto

ck

Ha

mb

urg

Ro

sto

ck

Ha

mb

urg

Ha

mb

urg

nst

er

Ha

mb

urg

Ka

sse

l

Ma

gd

eb

urg

Ha

mb

urg

Ro

sto

ck

Ha

mb

urg

Be

rlin

Ro

sto

ck

Page 45: KI-Übung Teil I: Uninformierte Suche. KI Übung SoSe 2006 Suche nach einer intelligenten Lösung Problem: Fahre von Lübeck nach Berlin

KI Übung SoSe 2006

Suche nach einer „intelligenten“ Lösung Vermeidung von Wiederholungen (DFS, depth first search)

Lübeck

Hamburg Rostock

Kiel WittstockBremen HannoverLübeck LübeckWittstock

Ha

mb

urg

Be

rlin

Ro

sto

ck

Ha

mb

urg

Ha

mb

urg

nst

er

Ha

mb

urg

Ka

sse

l

Ma

gd

eb

urg

Ha

mb

urg

Be

rlin

Ro

sto

ck

Page 46: KI-Übung Teil I: Uninformierte Suche. KI Übung SoSe 2006 Suche nach einer intelligenten Lösung Problem: Fahre von Lübeck nach Berlin

KI Übung SoSe 2006

Suche nach einer „intelligenten“ Lösung Vermeidung von Wiederholungen (DFS, depth first search)

Lübeck

Hamburg Rostock

Kiel WittstockBremen HannoverLübeck LübeckWittstock

Ha

mb

urg

Be

rlin

Ro

sto

ck

Ha

mb

urg

Ha

mb

urg

nst

er

Ha

mb

urg

Ka

sse

l

Ma

gd

eb

urg

Ha

mb

urg

Be

rlin

Ro

sto

ck

? ?

Page 47: KI-Übung Teil I: Uninformierte Suche. KI Übung SoSe 2006 Suche nach einer intelligenten Lösung Problem: Fahre von Lübeck nach Berlin

KI Übung SoSe 2006

Suche nach einer „intelligenten“ Lösung Vermeidung von Wiederholungen (GRAPH SEARCH)

Hannover

Rostock

Hamburg

Lübeck

Bremen

Kiel

Magdeburg

Leipzig

Münster

Kassel

Dresden

Wittstock

Berlin

Hannover

Rostock

Hamburg

Lübeck

Bremen

Kiel

Magdeburg

Leipzig

Münster

Kassel

Dresden

Wittstock

Berlin

Open List (SUCHGRAPH) Closed List (HISTORY)

Page 48: KI-Übung Teil I: Uninformierte Suche. KI Übung SoSe 2006 Suche nach einer intelligenten Lösung Problem: Fahre von Lübeck nach Berlin

KI Übung SoSe 2006

Suche nach einer „intelligenten“ Lösung Vermeidung von Wiederholungen (GRAPH SEARCH)

Open List (SUCHGRAPH) Closed List (HISTORY)

Hannover

Rostock

Hamburg

Lübeck

Bremen

Kiel

Magdeburg

Leipzig

Münster

Kassel

Dresden

Wittstock

Berlin

Hannover

Rostock

Hamburg

Lübeck

Bremen

Kiel

Magdeburg

Leipzig

Münster

Kassel

Dresden

Wittstock

Berlin

Page 49: KI-Übung Teil I: Uninformierte Suche. KI Übung SoSe 2006 Suche nach einer intelligenten Lösung Problem: Fahre von Lübeck nach Berlin

KI Übung SoSe 2006

Suche nach einer „intelligenten“ Lösung Vermeidung von Wiederholungen (GRAPH SEARCH)

Open List (SUCHGRAPH) Closed List (HISTORY)

Hannover

Rostock

Hamburg

Lübeck

Bremen

Kiel

Magdeburg

Leipzig

Münster

Kassel

Dresden

Wittstock

Berlin

Hannover

Rostock

Hamburg

Lübeck

Bremen

Kiel

Magdeburg

Leipzig

Münster

Kassel

Dresden

Wittstock

Berlin

Page 50: KI-Übung Teil I: Uninformierte Suche. KI Übung SoSe 2006 Suche nach einer intelligenten Lösung Problem: Fahre von Lübeck nach Berlin

KI Übung SoSe 2006

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

Page 51: KI-Übung Teil I: Uninformierte Suche. KI Übung SoSe 2006 Suche nach einer intelligenten Lösung Problem: Fahre von Lübeck nach Berlin

KI Übung SoSe 2006

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