Algorithm like Bellman-Ford, only for multiple start, single destination?
Asked Answered
C

2

5

Algorithms like the Bellman-Ford algorithm and Dijkstra's algorithm exist to find the shortest path from a single starting vertex on a graph to every other vertex. However, in the program I'm writing, the starting vertex changes a lot more often than the destination vertex does. What algorithm is there that does the reverse--that is, given a single destination vertex, to find the shortest path from every starting vertex?

Constitutive answered 27/2, 2015 at 19:30 Comment(1)
Also consider using the roy-floyd algorithm if your nodes change a lot.Hurty
D
10

Just reverse all the edges, and treated destination as start node. Problem solved.

Darrel answered 27/2, 2015 at 19:33 Comment(2)
I can't believe I didn't think of that. I'll give it a try, and probably mark your answer as accepted (since you answered first.) Thanks!Constitutive
fantastic ANSWER :)))Russel
A
1

If this is an undirected graph: I think inverting the problem would give you advantages. View the actual destination as the start and find the shortest path from that to all of the other nodes in the graph. By doing this you can use the traditional pathing algorithms.

Aleshia answered 27/2, 2015 at 19:34 Comment(2)
Formulating it that way (rather than reversing the edges) assumes the distance is symmetric (which may be fine, it's just something to keep in mind)Moulton
@harold That would be true if the edges were weighted - I didn't assume there would be edge weights since the OP didn't mention them.Aleshia

© 2022 - 2024 — McMap. All rights reserved.