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
© Copyright 2024