Vom Weihnachtsstau zur Optimalroute: Dijkstra rettet deinen 24. Dezember – Sortierschranke (sorting barrier) durchbrochen

Der Dijkstra-Algorithmus kann das Königsberger Brückenproblem nicht lösen. Aber die Berechnung kürzester Pfade in gewichteten Graphen ist durchaus interessant – zum Beispiel, wenn man wissen möchte, wie man von Frankfurt nach München die kürzeste Strecke findet.

Schneller als Dijkstra

Der Dijkstra-Algorithmus dient der Berechnung des kürzesten Pfads in gewichteten Graphen mit nicht-negativen Kantenlängen.

Dazu schreiben wir ein Java Demo Programm:

Und eine Graph Klasse:

Das Ergebnis nach der Ausführung in Eclipse:

Der Code ist auch in meinem GitLab-Repo zu finden.

Jahrelang hat man gedacht, das der Dijkstra-Algorithmus die schnellste Lösung des Problems ist. Das mathematische Tempolimit, in den Quellen als Sortierschranke (sorting barrier) bezeichnet, galt seit dem Jahr 1984.

In diesem Jahr gelang es dem Informatiker Robert Tarjan zusammen mit einem Kollegen, den klassischen Dijkstra-Algorithmus so weit zu optimieren, dass er genau an diese theoretische Grenze stieß. Vor kurzem hat man dann eine bahnbrechende Entdeckung gemacht, es geht doch schneller wie in A New Algorithm Makes It Faster to Find the Shortest Paths gezeigt.

Dieser Artikel beschreibt einen bedeutenden Durchbruch in der Informatik, bei dem Forscher eine vierzig Jahre alte Geschwindigkeitsbarriere für Kürzeste-Wege-Algorithmen durchbrochen haben. Während klassische Methoden wie der Dijkstra-Algorithmus durch die notwendige Sortierung von Distanzen begrenzt waren, nutzt das neue Team um Ran Duan innovative Gruppierungstechniken. Durch die gezielte Identifizierung einflussreicher Knotenpunkte umgeht das Verfahren die Sortierschranke und arbeitet effizienter auf komplexen Graphen.

Zusammenfassend lässt sich sagen: Während der aktuelle messbare Geschwindigkeitsvorteil gegenüber der optimierten Dijkstra-Variante eher klein ist, ist der theoretische Unterschied gigantisch, da er beweist, dass das bisherige mathematische Gesetz zur Höchstgeschwindigkeit für diese Art von Problemen nicht mehr gilt.

Man kann sich das wie das Durchbrechen der Schallmauer vorstellen: Es geht nicht nur darum, ein paar Stundenkilometer schneller zu sein als das bisher schnellste Flugzeug, sondern darum, eine physikalische Grenze überwunden zu haben, die zuvor als absolut galt, und damit den Weg für eine völlig neue Generation von Triebwerken zu ebnen. Ich bin gespannt was da noch kommt.