Detailseite
Projekt Druckansicht

Modernes Hashing:Platz- und zeiteffiziente Suchstrukturen und Simulation von Zufälligkeit mit dem Mehrfunktionen-Paradigma

Fachliche Zuordnung Theoretische Informatik
Förderung Förderung von 2007 bis 2014
Projektkennung Deutsche Forschungsgemeinschaft (DFG) - Projektnummer 60576965
 
Erstellungsjahr 2014

Zusammenfassung der Projektergebnisse

(1) Auf der Basis des Mehrfunktionenparadigmas können äußerst platzeffiziente Datenstrukturen zur Darstellung von Funktionen erstellt werden ("retrieval"). Die Konstruktion verwendet überraschende Verbindungen zum Verhalten von zufälligen dünn besetzten Matrizen. Solche Datenstrukturen wurden theoretisch konstruiert; ihr praktisches Verhalten wurde experimentell untersucht, wobei sich die Laufzeit für die Erstellung als Flaschenhals erweist. (2) Als Ergebnis einer längeren Entwicklung konnte ausgehend von den "retrieval"-Ergebnissen, i. W. gleichzeitig mit anderen Forschern in Deutschland und den USA und unabhängig von ihnen, eine der offenen Fragen über Schwellwerte ("thresholds") für das Funktionieren des Mehrfunktionenparadigmas bei der Verwendung von einer festen Anzahl von Hashfunktionen geklärt werden. Interessant ist der dabei verwendete Zusammenhang zwischen zufälligen XORSAT-Formeln und Hashing. (3) Mit dem "split-and-share"-Ansatz lassen sich viele Konstruktionen, die voraussetzen, dass rein zufällige Hashfunktionen (oder sogar Folgen von solchen Funktionen) gegeben sind, auf rein algorithmische Konstruktionen zurückführen. Dies wurde unter dem Stichwort "applications of a splitting trick" für einige komplexe Anwendungen wie approximative Wörterbücher oder Simulation von Zufälligkeit durchgeführt; der Ansatz ist auf alle in diesem Projekt untersuchten hashingbasierten Verfahren anwendbar, so dass hier grundsätzlich die Annahme der gegebenen vollen Zufälligkeit verzichtbar ist. (4) Als "Hash, displace, and compress" wurde eine Methode vorgestellt, die extrem platzeffiziente Konstruktionen für perfekte Hashfunktionen zulässt, also Funktionen, die eine gegebene Menge injektiv in einen kaum größeren Wertebereich abbilden und die in konstanter Zeit auswertbar sind. (5) Es wurde bewiesen, dass einfache universelle Hashklassen wie die universelle multiplikative Klasse und ähnliche Klassen schlecht mit Cuckoo-Hashing zusammen funktionieren, sogar mit hoher Wahrscheinlichkeit zum Crash der Anwendung führen können, selbst wenn die betrachteten Schlüsselmengen in einem gewissen Sinn zufällig sind. Dies widerspricht einer in anderen Konstruktionen wie Linearem Sondieren u. ä. beobachteten Erfahrungstatsache, dass nämlich schwache Klassen zusammen mit einigermaßen zufälligen Schlüsseln immer zu gutem Verhalten führen. (6) Den Gegenpol zu diesen negativen Ergebnissen bilden in der Ausführung nicht wesentlich teurere Hashklassen, die sogar für Cuckoo-Hashing mit "stash" geeignet sind. Diese Klassen haben viele weitere sehr interessante Eigenschaften; eine sehr lange Reihe von Konstruktionen für Zufallsgraphen und Zufallshypergraphen bleiben verwendbar, wenn man die rein zufälligen Kanten durch solche ersetzt, die mit Hilfe dieser Hashfunktionen generiert werden. (7) Von praktischer Relevanz sind die Untersuchungen zur Kombination von Cuckoo-Hashing, also dem Mehrfunktionenparadigma, und dem Speichern von Daten in Seiten. Es ergeben sich extrem platzeffiziente Datenstrukturen mit mittleren Zugriffskosten sehr wenig über einem "page fault". Insbesondere im Experiment erweist sich der Ansatz als äußerst robust. (8) Überraschende Antworten ergaben sich auf die Frage, ob es positive Effekte hat, wenn man bei der Anwendung des Mehrfunktionenparadigmas unterschiedliche Grade, d. h. Funktionenanzahl bei unterschiedlichen Schlüsseln zulässt. Für einige Anwendungen (Existenz perfekter Matchings) sollten die Grade möglichst gleich sein, für andere wieder (leicht konstruierbare Matchings) ist es von Vorteil, unterschiedliche Grade zu verwenden ("mixed hypergraphs"). (9) Basierend auf Erfahrungen mit hashingbasierten Graphstrukturen wurde wurde eine neue "greedy" Heuristik für das Auffinden von Matchings in Zufallsgraphen entwickelt, die eine bekannte Schwäche vergleichbarer Verfahren vermeidet. (10) In vielen Bereichen des Projektes wurden Methoden des "Algorithm Engineering" benutzt, um Algorithmen zu implementieren und in Iterationen über Experimente zu verbessern.

Projektbezogene Publikationen (Auswahl)

 
 

Zusatzinformationen

Textvergrößerung und Kontrastanpassung