Is there an algorithm that can perform a quick recount of shortest paths when I know that the only change in the graph is to remove an edge?
Is there an algorithm that allows you to quickly recount the shortest path when the beginning of a node changes only to one of its neighbors?
The answer to both of these questions is yes.
In the first case, the algorithm you are looking for is called LPA * (sometimes, less commonly, called Incremental A *. The name on this document is outdated). This is a (rather complicated) modification of A *, which allows you to quickly recalculate the best paths when only a few edges have changed.
Like A *, LPA * requires a valid heuristic distance . If such a heuristic does not exist, you can simply set it to 0. Performing this in * essentially turns it into a Jikstra algorithm; this in LPA * will turn it into an obscure, rarely used algorithm called DynamicSWSF-SP .
In the second case, you are looking for D * -Lite . This is a fairly simple modification for LPA * (simple, at least after you understand LPA *), which provides incremental tracking of the path when the device moves from beginning to end and receives new information (edges are added / deleted / changed). It is mainly used for robots crossing an unknown or partially known landscape.
I wrote a rather detailed answer (with links to articles in the question) about various path search algorithms here .
source share