Spezialvorlesung Suchalgorithmen Thema: Einzelzustandsraumsuche Stefan Edelkamp.

28
Spezialvorlesung Suchalgorithmen Thema: Einzelzustandsraumsuche Stefan Edelkamp

Transcript of Spezialvorlesung Suchalgorithmen Thema: Einzelzustandsraumsuche Stefan Edelkamp.

Page 1: Spezialvorlesung Suchalgorithmen Thema: Einzelzustandsraumsuche Stefan Edelkamp.

SpezialvorlesungSuchalgorithmen

Thema: Einzelzustandsraumsuche

Stefan Edelkamp

Page 2: Spezialvorlesung Suchalgorithmen Thema: Einzelzustandsraumsuche Stefan Edelkamp.

Struktur des Buchs

Page 3: Spezialvorlesung Suchalgorithmen Thema: Einzelzustandsraumsuche Stefan Edelkamp.

Ü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

Page 4: Spezialvorlesung Suchalgorithmen Thema: Einzelzustandsraumsuche Stefan Edelkamp.

Ü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

Page 5: Spezialvorlesung Suchalgorithmen Thema: Einzelzustandsraumsuche Stefan Edelkamp.

Heuristikenh 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)

Page 6: Spezialvorlesung Suchalgorithmen Thema: Einzelzustandsraumsuche Stefan Edelkamp.

Graphabstraktion durch Knotenkontraktion

Additiv: Nicht-Additiv:

Page 7: Spezialvorlesung Suchalgorithmen Thema: Einzelzustandsraumsuche Stefan Edelkamp.

Ü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

Page 8: Spezialvorlesung Suchalgorithmen Thema: Einzelzustandsraumsuche Stefan Edelkamp.

Dijkstra´s Kürzeste Wege Algorithmus

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 }

Initialisierung: f(s) = 0, f(u) = unendlich, falls u <> s

Page 9: Spezialvorlesung Suchalgorithmen Thema: Einzelzustandsraumsuche Stefan Edelkamp.

A* = Dijkstra + Neubewertung der Kantengewichte

h konsistent 0 ≤ w(u,v) + h(v) – h(u)

neues Kantengewicht nicht negativ

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 }

Initialisierung: f(s) = h(s), f(u) = unendlich, falls u <> s

Page 10: Spezialvorlesung Suchalgorithmen Thema: Einzelzustandsraumsuche Stefan Edelkamp.

Vor- und nach der Neubewertung der Kantengewichte

Problem: Negative Kantengewichte Wiederöffnung bereits expandierter Knoten

Page 11: Spezialvorlesung Suchalgorithmen Thema: Einzelzustandsraumsuche Stefan Edelkamp.

Ü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

Page 12: Spezialvorlesung Suchalgorithmen Thema: Einzelzustandsraumsuche Stefan Edelkamp.

Datenstrukturen (1): Vorrangwarteschlangen

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

Page 13: Spezialvorlesung Suchalgorithmen Thema: Einzelzustandsraumsuche Stefan Edelkamp.

Weak-Heaps

Merging zweier WHs:

Page 14: Spezialvorlesung Suchalgorithmen Thema: Einzelzustandsraumsuche Stefan Edelkamp.

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

Page 15: Spezialvorlesung Suchalgorithmen Thema: Einzelzustandsraumsuche Stefan Edelkamp.

Ü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

Page 16: Spezialvorlesung Suchalgorithmen Thema: Einzelzustandsraumsuche Stefan Edelkamp.

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!

Page 17: Spezialvorlesung Suchalgorithmen Thema: Einzelzustandsraumsuche Stefan Edelkamp.

Cuckoo-Hashing

Problem: Rehash der gesamten Tabelle

Einfügen:

Page 18: Spezialvorlesung Suchalgorithmen Thema: Einzelzustandsraumsuche Stefan Edelkamp.

Suffix-Lists

Page 19: Spezialvorlesung Suchalgorithmen Thema: Einzelzustandsraumsuche Stefan Edelkamp.

Bit-State Hashing

Single Bit-State Double Bit-State

Page 20: Spezialvorlesung Suchalgorithmen Thema: Einzelzustandsraumsuche Stefan Edelkamp.

Ü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

Page 21: Spezialvorlesung Suchalgorithmen Thema: Einzelzustandsraumsuche Stefan Edelkamp.

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)

Page 22: Spezialvorlesung Suchalgorithmen Thema: Einzelzustandsraumsuche Stefan Edelkamp.

Analyse IDA*

Anzahl erwarteter Knoten, die von IDA* bis zur Kostenschranke cin einem Suchbaum mit Ni Knoten in Tiefe i expandiert werden

Page 23: Spezialvorlesung Suchalgorithmen Thema: Einzelzustandsraumsuche Stefan Edelkamp.

Anomalie Tiefensuche + Tiefenschranke

Wiederöffnung bereits expandierter Knoten

Page 24: Spezialvorlesung Suchalgorithmen Thema: Einzelzustandsraumsuche Stefan Edelkamp.

Ü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

Page 25: Spezialvorlesung Suchalgorithmen Thema: Einzelzustandsraumsuche Stefan Edelkamp.

Frontier-Suche (1):Genutzte Operatoren

Page 26: Spezialvorlesung Suchalgorithmen Thema: Einzelzustandsraumsuche Stefan Edelkamp.

Frontier-Suche (2):Munagala & Ranade

A

t t+1

t+2

BCD

XYZAX

AXYZ

XYZ

I: Lösche Duplikate in aktuell generierter BFS-Schicht

II: Subtrahiere BFS-Schichten t und t+1 von t+2.

Page 27: Spezialvorlesung Suchalgorithmen Thema: Einzelzustandsraumsuche Stefan Edelkamp.

Ü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

Page 28: Spezialvorlesung Suchalgorithmen Thema: Einzelzustandsraumsuche Stefan Edelkamp.

Breadth-First Heuristic Search