1 / 28

Spezialvorlesung Suchalgorithmen

Spezialvorlesung Suchalgorithmen. Thema: Einzelzustandsraumsuche Stefan Edelkamp. Struktur des Buchs. Überblick. Heuristiken und Graphabstraktionen Verbindung Dijkstra und A* Datenstrukturen Vorrangwarteschlangen (State-of-the-Art) Hash-Tabellen (State-of-the-Art)

aspen
Download Presentation

Spezialvorlesung Suchalgorithmen

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. SpezialvorlesungSuchalgorithmen Thema: Einzelzustandsraumsuche Stefan Edelkamp

  2. Struktur des Buchs

  3. Überblick • Heuristiken und Graphabstraktionen • Verbindung Dijkstra und A* • Datenstrukturen • Vorrangwarteschlangen (State-of-the-Art) • Hash-Tabellen (State-of-the-Art) • Speicherplatzbeschränkte Suche • DFID + IDA*, Anomalie • Frontier-Suche • BFHS + Lokalität

  4. Überblick • Heuristiken und Graphabstraktionen • Verbindung Dijkstra und A* • Datenstrukturen • Vorrangwarteschlangen (State-of-the-Art) • Hash-Tabellen (State-of-the-Art) • Speicherplatzbeschränkte Suche • DFID + IDA*, Anomalie • Frontier-Suche • BFHS + Lokalität

  5. Heuristiken h konsistent 0 ≤ w(u,v) + h(v) – h(u) h zulässig h(u) ≤ h*(u) Satz: Konsistenz impliziert Zulässigkeit Beweis:Sei p = (s=v0,…vk=t) beliebiger Pfad   h(u) ≤ h*(u)

  6. Graphabstraktion durch Knotenkontraktion Additiv: Nicht-Additiv:

  7. Überblick • Heuristiken und Graphabstraktionen • Verbindung Dijkstra und A* • Datenstrukturen • Vorrangwarteschlangen (State-of-the-Art) • Hash-Tabellen (State-of-the-Art) • Speicherplatzbeschränkte Suche • DFID + IDA*, Anomalie • Frontier-Suche • BFHS + Lokalität

  8. Dijkstra´s Kürzeste Wege Algorithmus Initialisierung: f(s) = 0, f(u) = unendlich, falls u <> s Auswahl: u mit f(u) = min { f(v) | v ist in Open } Update: f(v) = min { f(v), f(u) + w(u,v) | v ist Nachfolger von u }

  9. A* = Dijkstra + Neubewertung der Kantengewichte h konsistent 0 ≤ w(u,v) + h(v) – h(u)  neues Kantengewicht nicht negativ Initialisierung: f(s) = h(s), f(u) = unendlich, falls u <> s Auswahl: u mit f(u) = min { f(v) | v ist in Open } Update: f(v) = min { f(v), f(u) + w(u,v) +h(v) – h(u) | v ist Nachfolger von u }

  10. Vor- und nach der Neubewertung der Kantengewichte Problem: Negative Kantengewichte  Wiederöffnung bereits expandierter Knoten

  11. Überblick • Heuristiken und Graphabstraktionen • Verbindung Dijkstra und A* • Datenstrukturen • Vorrangwarteschlangen(State-of-the-Art) • Hash-Tabellen (State-of-the-Art) • Speicherplatzbeschränkte Suche • DFID + IDA*, Anomalie • Frontier-Suche • BFHS + Lokalität

  12. Datenstrukturen (1): Vorrangwarteschlangen Neu in 2005: Relaxed Weak Queues (Katajainen, Elmasry. Jensen): Insert/DecreaseKey: O(1) und DeleteMinO(log n) worst-case mit „einfacher“ Datenstruktur als Fibonacci-Heaps!

  13. Weak-Heaps Merging zweier WHs:

  14. Relaxierte Weak-Queues (Heap-geordneter) Bin-baum == Perfekter(balancierter) WH Binomialqueue: Dualdarstellungsanordnung von Bin-bäumen Weak-Queue: Dualdarstellungsanordnung von WHs Relaxierte Weak-Queue: Liste von WHs nahe Dualdarstellungsanordnung + wenige Anordnungsfehler

  15. Überblick • Heuristiken und Graphabstraktionen • Verbindung Dijkstra und A* • Datenstrukturen • Vorrangwarteschlangen (State-of-the-Art) • Hash-Tabellen (State-of-the-Art) • Speicherplatzbeschränkte Suche • DFID + IDA*, Anomalie • Frontier-Suche • BFHS + Lokalität

  16. Datenstrukturen (2):Hash-Tabellen Neu in 2003: Cuckoo Hashing (Pagh et al.): Insert: O(1) amortisiert und Lookup O(1) worst-case mit „einfacher“ Datenstruktur!

  17. Cuckoo-Hashing Einfügen: Rehash der gesamten Tabelle Problem:

  18. Suffix-Lists

  19. Bit-State Hashing Single Bit-State Double Bit-State

  20. Überblick • Heuristiken und Graphabstraktionen • Verbindung Dijkstra und A* • Datenstrukturen • Vorrangwarteschlangen (State-of-the-Art) • Hash-Tabellen (State-of-the-Art) • Speicherplatzbeschränkte Suche • DFID + IDA*, Anomalie • Frontier-Suche • BFHS + Lokalität

  21. DFID und IDA* • DFID (depth-first iterative-deepening): simuliert die Breitensuche mit stetig ansteigender Kostenschranke: f(n) = g(n) • IDA* (iterative-deepening A*) simuliert A* mit stetig ansteigender Kostenschranke f(u)=g(u)+h(u)

  22. Analyse IDA*  Anzahl erwarteter Knoten, die von IDA* bis zur Kostenschranke c in einem Suchbaum mit Ni Knoten in Tiefe i expandiert werden

  23. Anomalie Tiefensuche + Tiefenschranke  Wiederöffnung bereits expandierter Knoten

  24. Überblick • Heuristiken und Graphabstraktionen • Verbindung Dijkstra und A* • Datenstrukturen • Vorrangwarteschlangen (State-of-the-Art) • Hash-Tabellen (State-of-the-Art) • Speicherplatzbeschränkte Suche • DFID + IDA*, Anomalie • Frontier-Suche • BFHS + Lokalität

  25. Frontier-Suche (1):Genutzte Operatoren

  26. X Y Z A X A X Y Z X Y Z B C D A t t+1 t+2 Frontier-Suche (2):Munagala & Ranade • I: Lösche Duplikate in aktuell generierter BFS-Schicht • II: Subtrahiere BFS-Schichten t undt+1von t+2.

  27. Überblick • Heuristiken und Graphabstraktionen • Verbindung Dijkstra und A* • Datenstrukturen • Vorrangwarteschlangen (State-of-the-Art) • Hash-Tabellen (State-of-the-Art) • Speicherplatzbeschränkte Suche • DFID + IDA*, Anomalie • Frontier-Suche • BFHS + Lokalität

  28. Breadth-First Heuristic Search

More Related