Ich möchte kürzesten Weg ( k wäre kleiner als 10) zwischen allen Paaren in einem Graphen erzeugen . Die Grafik ist (eigentlich eine U-Bahn-Karte):
- positiv gewichtet
- ungerichtet
- spärlich
- mit etwa 100 Knoten
Mein aktueller Plan ist es, kürzestes Routing auf jedes Paar anzuwenden ; Ich suche jetzt nach einer effizienteren Alternative (möglicherweise mit dynamischer Programmierung).
algorithms
graphs
optimization
shortest-path
Franklin Yu
quelle
quelle
Antworten:
Dies scheint ein recht junges Forschungsgebiet zu sein. Ein kürzlich veröffentlichtes Papier von Agarwal und Ramachandran ist auf dem ArXiv zu finden [1]. Der Abschnitt mit den vorherigen Arbeiten gibt Ihnen auch einen Einblick in die Geschichte des Problems.
Das aller Paarek
Hier ist es in der Tat die beste Wahl, den Eppsteins-Algorithmus nur wiederholt anzuwenden [2]. Die allgemeine Beobachtung, dass eine wiederholte Anwendung eines Algorithmus für die Single-Source-Version des Problems der schnellste Ansatz ist, wurde bereits 1977 von EL Lawler gemacht [3]; Eppstein bietet den bislang schnellsten Algorithmus für dieses Teilproblem.
Verweise
[2] Eppstein, D. Die k kürzesten Wege finden. SIAM Journal on Computing 28, 2 (1999), 652–673.
[3] Lawler, EL Kommentar zu einer Berechnung der k kürzesten Pfade in einem Diagramm. Mitteilungen der ACM, 20 (8): 603–605, 1977.
quelle