Grundlagen der Künstlichen Intelligenz

Werbung
Grundlagen der Künstlichen Intelligenz
16. März 2015 — 11. Klassische Suche: uniforme Kostensuche
Grundlagen der Künstlichen Intelligenz
11.1 Einführung
11. Klassische Suche: uniforme Kostensuche
11.2 Algorithmus
Malte Helmert
11.3 Eigenschaften
Universität Basel
16. März 2015
11.4 Zusammenfassung
M. Helmert (Universität Basel)
Grundlagen der Künstlichen Intelligenz
16. März 2015
1 / 15
M. Helmert (Universität Basel)
Grundlagen der Künstlichen Intelligenz
16. März 2015
11. Klassische Suche: uniforme Kostensuche
2 / 15
Einführung
Klassische Suche: Überblick
Kapitelüberblick klassische Suche:
I
I
5.–7. Grundlagen
8.–12. Basisalgorithmen
I
I
I
I
I
I
11.1 Einführung
8. Datenstrukturen für Suchalgorithmen
9. Baumsuche und Graphensuche
10. Breitensuche
11. uniforme Kostensuche
12. Tiefensuche und iterative Tiefensuche
13.–20. heuristische Algorithmen
M. Helmert (Universität Basel)
Grundlagen der Künstlichen Intelligenz
16. März 2015
3 / 15
M. Helmert (Universität Basel)
Grundlagen der Künstlichen Intelligenz
16. März 2015
4 / 15
11. Klassische Suche: uniforme Kostensuche
Einführung
11. Klassische Suche: uniforme Kostensuche
Algorithmus
Uniforme Kostensuche
I
Breitensuche optimal, wenn alle Aktionskosten gleich
I
sonst Optimalität nicht garantiert
Beispiel:
11.2 Algorithmus
Abhilfe: uniforme Kostensuche
I
expandiere immer Knoten mit minimalen Pfadkosten
(n.path cost alias g (n))
I
Implementierung: Prioritätswarteschlange (Min-Heap)
für Open-Liste
M. Helmert (Universität Basel)
Grundlagen der Künstlichen Intelligenz
16. März 2015
11. Klassische Suche: uniforme Kostensuche
5 / 15
Algorithmus
Erinnerung: generischer Graphensuchalgorithmus
M. Helmert (Universität Basel)
Grundlagen der Künstlichen Intelligenz
11. Klassische Suche: uniforme Kostensuche
16. März 2015
6 / 15
Algorithmus
Uniforme Kostensuche
Erinnerung aus Kapitel 9:
Uniforme Kostensuche
Generische Graphensuche
open := new MinHeap ordered by g
open.insert(make root node())
closed := new HashSet
while not open.is empty():
n := open.pop min()
if n.state ∈
/ closed:
closed.insert(n)
if is goal(n.state):
return extract path(n)
for each ha, s 0 i ∈ succ(n.state):
n0 := make node(n, a, s 0 )
open.insert(n0 )
return unsolvable
open := new OpenList
open.insert(make root node())
closed := new ClosedList
while not open.is empty():
n := open.pop()
if closed.lookup(n.state) = none:
closed.insert(n)
if is goal(n.state):
return extract path(n)
for each ha, s 0 i ∈ succ(n.state):
n0 := make node(n, a, s 0 )
open.insert(n0 )
return unsolvable
M. Helmert (Universität Basel)
Grundlagen der Künstlichen Intelligenz
16. März 2015
7 / 15
M. Helmert (Universität Basel)
Grundlagen der Künstlichen Intelligenz
16. März 2015
8 / 15
11. Klassische Suche: uniforme Kostensuche
Algorithmus
Uniforme Kostensuche: Diskussion
11. Klassische Suche: uniforme Kostensuche
Algorithmus
Uniforme Kostensuche: Verbesserungen
Anpassung der generischen Graphensuche
für uniforme Kostensuche:
I
hier wären frühe Zieltests/frühe Updates der Closed-Liste
keine gute Idee. (Warum nicht?)
Mögliche Verbesserungen:
I
wie in BFS-Graph reicht eine Menge für die Closed-Liste aus
I
eine Baumsuchvariante ist möglich, aber selten:
dieselben Nachteile wie BFS-Tree und im allgemeinen
nicht einmal semi-vollständig (Warum nicht?)
I
wenn Aktionskosten kleine Ganzzahlen sind,
sind Bucket-Heaps oft effizienter
I
zusätzliche frühe Duplikatstests für erzeugten Knoten
können Speicheraufwand reduzieren
und Laufzeit verbessern oder verschlechtern
Anmerkung: identisch mit Dijkstras Algorithmus
für kürzeste Pfade in gewichteten Graphen!
(bei beiden: Variante mit/ohne verzögerte Duplikateliminierung)
M. Helmert (Universität Basel)
Grundlagen der Künstlichen Intelligenz
11. Klassische Suche: uniforme Kostensuche
16. März 2015
9 / 15
Eigenschaften
M. Helmert (Universität Basel)
Grundlagen der Künstlichen Intelligenz
11. Klassische Suche: uniforme Kostensuche
16. März 2015
10 / 15
Eigenschaften
Vollständigkeit und Optimalität
11.3 Eigenschaften
M. Helmert (Universität Basel)
Grundlagen der Künstlichen Intelligenz
Eigenschaften der uniformen Kostensuche:
16. März 2015
11 / 15
I
uniforme Kostensuche ist vollständig (Warum?)
I
uniforme Kostensuche ist optimal (Warum?)
M. Helmert (Universität Basel)
Grundlagen der Künstlichen Intelligenz
16. März 2015
12 / 15
11. Klassische Suche: uniforme Kostensuche
Eigenschaften
11. Klassische Suche: uniforme Kostensuche
Zusammenfassung
Zeit- und Platzaufwand
Eigenschaften der uniformen Kostensuche:
I
Zeitaufwand hängt von Verteilung der Aktionskosten ab
(keine einfachen und genauen Schranken).
I
I
I
I
I
I
11.4 Zusammenfassung
Sei ε := mina∈A cost(a) und gelte ε > 0.
Seien c ∗ die optimalen Lösungskosten.
Sei b der Verzweigungsgrad und gelte b ≥ 2.
∗
Dann beträgt der Zeitaufwand höchstens O(b bc /εc+1 ).
(Warum?)
oft eine sehr schwache obere Schranke
Speicheraufwand = Zeitaufwand
M. Helmert (Universität Basel)
Grundlagen der Künstlichen Intelligenz
16. März 2015
11. Klassische Suche: uniforme Kostensuche
13 / 15
Zusammenfassung
Zusammenfassung
uniforme Kostensuche:
expandiere Knoten in Reihenfolge aufsteigender Pfadkosten
I
üblicherweise als Graphensuche
I
entspricht dann Dijkstra-Algorithmus
I
vollständig und optimal
M. Helmert (Universität Basel)
Grundlagen der Künstlichen Intelligenz
16. März 2015
15 / 15
M. Helmert (Universität Basel)
Grundlagen der Künstlichen Intelligenz
16. März 2015
14 / 15
Herunterladen