Je veux produire chemin le plus court ( k serait inférieur à 10) entre toutes les paires dans un graphique. Le graphique est (en fait une carte de métro):
- pondéré positivement
- non dirigé
- clairsemé
- avec environ 100 nœuds
Mon plan actuel consiste à appliquer routage de chemin le plus court à chaque paire; Je cherche maintenant une alternative plus efficace (éventuellement avec une programmation dynamique).
algorithms
graphs
optimization
shortest-path
Franklin Yu
la source
la source
Réponses:
Cela semble être un domaine de recherche assez récent. Un article récent d'Agarwal et Ramachandran peut être trouvé sur l'ArXiv [1]. La section des travaux précédents vous donnera également un aperçu de l'historique du problème.
Le toutes pairesk
Ici, en effet, c'est le meilleur choix pour appliquer simplement à plusieurs reprises l'algorithme Eppsteins [2]. L'observation générale qu'une application répétée d'un algorithme pour la version à source unique du problème est l'approche la plus rapide a déjà été faite en 1977 par EL Lawler [3]; Eppstein fournit l'algorithme le plus rapide à ce jour pour ce sous-problème.
Références
[2] Eppstein, D. Trouver les k chemins les plus courts. SIAM Journal on Computing 28, 2 (1999), 652–673.
[3] Lawler, EL Commentaire sur un calcul des k chemins les plus courts dans un graphe. Communications de l'ACM, 20 (8): 603–605, 1977.
la source