Grundlagen der Künstlichen Intelligenz

Grundlagen der K¨unstlichen Intelligenz
16. M¨
arz 2015 — 11. Klassische Suche: uniforme Kostensuche
Grundlagen der K¨unstlichen Intelligenz
11.1 Einf¨uhrung
11. Klassische Suche: uniforme Kostensuche
11.2 Algorithmus
Malte Helmert
11.3 Eigenschaften
Universit¨
at Basel
16. M¨arz 2015
11.4 Zusammenfassung
M. Helmert (Universit¨
at Basel)
Grundlagen der K¨
unstlichen Intelligenz
16. M¨
arz 2015
1 / 15
M. Helmert (Universit¨
at Basel)
Grundlagen der K¨
unstlichen Intelligenz
16. M¨
arz 2015
11. Klassische Suche: uniforme Kostensuche
2 / 15
Einf¨
uhrung
¨
Klassische Suche: Uberblick
Kapitel¨
uberblick klassische Suche:
I
I
5.–7. Grundlagen
8.–12. Basisalgorithmen
I
I
I
I
I
I
11.1 Einfu¨hrung
8. Datenstrukturen f¨
ur Suchalgorithmen
9. Baumsuche und Graphensuche
10. Breitensuche
11. uniforme Kostensuche
12. Tiefensuche und iterative Tiefensuche
13.–20. heuristische Algorithmen
M. Helmert (Universit¨
at Basel)
Grundlagen der K¨
unstlichen Intelligenz
16. M¨
arz 2015
3 / 15
M. Helmert (Universit¨
at Basel)
Grundlagen der K¨
unstlichen Intelligenz
16. M¨
arz 2015
4 / 15
11. Klassische Suche: uniforme Kostensuche
Einf¨
uhrung
11. Klassische Suche: uniforme Kostensuche
Algorithmus
Uniforme Kostensuche
I
Breitensuche optimal, wenn alle Aktionskosten gleich
I
sonst Optimalit¨at 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¨atswarteschlange (Min-Heap)
f¨
ur Open-Liste
M. Helmert (Universit¨
at Basel)
Grundlagen der K¨
unstlichen Intelligenz
16. M¨
arz 2015
11. Klassische Suche: uniforme Kostensuche
5 / 15
Algorithmus
Erinnerung: generischer Graphensuchalgorithmus
M. Helmert (Universit¨
at Basel)
Grundlagen der K¨
unstlichen Intelligenz
11. Klassische Suche: uniforme Kostensuche
16. M¨
arz 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¨
at Basel)
Grundlagen der K¨
unstlichen Intelligenz
16. M¨
arz 2015
7 / 15
M. Helmert (Universit¨
at Basel)
Grundlagen der K¨
unstlichen Intelligenz
16. M¨
arz 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¨
ur uniforme Kostensuche:
I
hier w¨aren fr¨
uhe Zieltests/fr¨
uhe Updates der Closed-Liste
keine gute Idee. (Warum nicht?)
M¨ogliche Verbesserungen:
I
wie in BFS-Graph reicht eine Menge f¨
ur die Closed-Liste aus
I
eine Baumsuchvariante ist m¨
oglich, aber selten:
dieselben Nachteile wie BFS-Tree und im allgemeinen
nicht einmal semi-vollst¨andig (Warum nicht?)
I
wenn Aktionskosten kleine Ganzzahlen sind,
sind Bucket-Heaps oft effizienter
I
zus¨atzliche fr¨
uhe Duplikatstests f¨
ur erzeugten Knoten
k¨
onnen Speicheraufwand reduzieren
und Laufzeit verbessern oder verschlechtern
Anmerkung: identisch mit Dijkstras Algorithmus
f¨
ur k¨
urzeste Pfade in gewichteten Graphen!
(bei beiden: Variante mit/ohne verz¨
ogerte Duplikateliminierung)
M. Helmert (Universit¨
at Basel)
Grundlagen der K¨
unstlichen Intelligenz
11. Klassische Suche: uniforme Kostensuche
16. M¨
arz 2015
9 / 15
Eigenschaften
M. Helmert (Universit¨
at Basel)
Grundlagen der K¨
unstlichen Intelligenz
11. Klassische Suche: uniforme Kostensuche
16. M¨
arz 2015
10 / 15
Eigenschaften
Vollst¨andigkeit und Optimalit¨at
11.3 Eigenschaften
M. Helmert (Universit¨
at Basel)
Grundlagen der K¨
unstlichen Intelligenz
Eigenschaften der uniformen Kostensuche:
16. M¨
arz 2015
11 / 15
I
uniforme Kostensuche ist vollst¨andig (Warum?)
I
uniforme Kostensuche ist optimal (Warum?)
M. Helmert (Universit¨
at Basel)
Grundlagen der K¨
unstlichen Intelligenz
16. M¨
arz 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¨angt 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¨osungskosten.
Sei b der Verzweigungsgrad und gelte b ≥ 2.
∗
Dann betr¨agt der Zeitaufwand h¨ochstens O(b bc /εc+1 ).
(Warum?)
oft eine sehr schwache obere Schranke
Speicheraufwand = Zeitaufwand
M. Helmert (Universit¨
at Basel)
Grundlagen der K¨
unstlichen Intelligenz
16. M¨
arz 2015
11. Klassische Suche: uniforme Kostensuche
13 / 15
Zusammenfassung
Zusammenfassung
uniforme Kostensuche:
expandiere Knoten in Reihenfolge aufsteigender Pfadkosten
I
u
¨blicherweise als Graphensuche
entspricht dann Dijkstra-Algorithmus
I
vollst¨andig und optimal
I
M. Helmert (Universit¨
at Basel)
Grundlagen der K¨
unstlichen Intelligenz
16. M¨
arz 2015
15 / 15
M. Helmert (Universit¨
at Basel)
Grundlagen der K¨
unstlichen Intelligenz
16. M¨
arz 2015
14 / 15