Einführung
- Im Herbst 2021 stieß der Undergraduate Andrew Krapivin von der Rutgers University auf eine Arbeit, die sein Leben verändern sollte.
- In dieser Arbeit ging es um „kleine Zeiger“, die auf Informationen im Computerspeicher verweisen.
- Krapivin entwickelte eine Methode, Zeiger zu verkleinern und so den Speicherverbrauch zu senken.
Entdeckung einer neuen Hash-Tabelle
- Krapivin führte Experimente mit Hash-Tabellen durch, einer gängigen Methode zur Speicherung von Daten.
- Während der Experimente erfand Krapivin eine neue Art von Hash-Tabelle, die schneller arbeitet als bisherige Ansätze.
- Diese Entdeckung führte zu einem Ergebnis, das eine 40 Jahre alte Vermutung der Datenwissenschaft widerlegt.
Die Bedeutung von Hash-Tabellen
- Hash-Tabellen gehören zu den ältesten Datenstrukturen der Informatik und ermöglichen eine effiziente Datenspeicherung.
- Hash-Tabellen sind dafür ausgelegt, drei Funktionen auszuführen: Elemente suchen, löschen und einfügen.
Yaos Vermutung und ihre Widerlegung
- 1985 formulierte der Informatiker Andrew Yao eine Vermutung darüber, wie sich Elemente im schlechtesten Fall in Hash-Tabellen mit bestimmten Eigenschaften finden lassen.
- Krapivins neue Hash-Tabelle widerlegt Yaos Vermutung und beweist, dass die für Abfragen und Einfügungen im schlechtesten Fall benötigte Zeit proportional zu
(log x)² ist.
Neue Erkenntnis zur durchschnittlichen Abfragezeit
- Krapivin und sein Team zeigten, dass bei nicht-gierigen Hash-Tabellen die durchschnittliche Abfragezeit nicht von
x abhängt.
- Das bedeutet, dass sich eine konstante durchschnittliche Abfragezeit unabhängig vom Füllgrad der Hash-Tabelle erreichen lässt.
Fazit
- Diese Forschung vertieft das Verständnis von Hash-Tabellen und könnte zu praktischen Anwendungen führen.
- Dieses Verständnis von Datenstrukturen kann eine Grundlage für künftige praktische Verbesserungen sein.
1 Kommentare
Hacker-News-Kommentare
Krapivin gelang ein Durchbruch, ohne Yaos Vermutung zu kennen
Tolles Ergebnis, aber es sollte wohl eher eine Vermutung der Informatik genannt werden
Ich frage mich, ob jemand ein GitHub-Repository mit dieser Implementierung kennt
Cool, aber der Stil dieser "Promi-Inszenierung" im Artikel ist etwas unangenehm
Bei der neuen Hashtabelle ist die im Worst Case für Abfragen und Einfügungen benötigte Zeit proportional zu
(log x)²Diesen Artikel zu lesen ist wie eine Erklärung des Monty-Hall-Problems zu lesen
Ein guter aktueller Test
Ich frage mich, ob jemand eine einfache Implementierung von 'Tiny pointers' hat
Wie der Bösewicht in <i>Scooby Doo</i> immer sagte:
Beim groben Überfliegen der Arbeit scheint der wesentliche Unterschied zu sein, dass ihr Einfügealgorithmus für Hashtabellen weiter sucht, statt gierig den ersten leeren Slot zu füllen
Ein interessantes theoretisches Ergebnis, aber in der Praxis scheint der aktuelle 'Trick', eine größere Tabelle als nötig zu reservieren, die bessere Lösung zu sein