Algorithm 查找比给定距离短的所有备用路径
图算法问题给你 我有一个图形,用来表示道路网络。因此,它有循环(一个迂回将是一个微不足道的)。此外,有些边缘是双向的,有些是单向的(单向街道)。边按其长度加权 假设我有两个节点,并且已经计算了它们之间的最短路径。我想做的是找到连接两个节点的所有其他路径,这两个节点的距离小于某个距离X。将这些路径称为“备选路径” 下面是ascii艺术的一个例子,我用字母标记了边缘,用数字标记了节点Algorithm 查找比给定距离短的所有备用路径,algorithm,graph,Algorithm,Graph,图算法问题给你 我有一个图形,用来表示道路网络。因此,它有循环(一个迂回将是一个微不足道的)。此外,有些边缘是双向的,有些是单向的(单向街道)。边按其长度加权 假设我有两个节点,并且已经计算了它们之间的最短路径。我想做的是找到连接两个节点的所有其他路径,这两个节点的距离小于某个距离X。将这些路径称为“备选路径” 下面是ascii艺术的一个例子,我用字母标记了边缘,用数字标记了节点 F 5----6 E / \ G 3--------4
F
5----6
E / \ G
3--------4
/ D \
B / \ C
1--------------2
A
假设我有一条覆盖边A的路径,从1->2开始,我想找到替代者。如果BDC的长度小于X,则该路径的另一个备选路径是BDC。BEFGC是另一个路径
另一个示例路径是连接节点1->4的BD。另一种是AC
更多要求:
谢谢 如果您运行Dijkstra算法来查找最短路径,那么您就有了一个表,该表为您提供了每个节点到源节点的最短距离。我会从图中删除最短路径上的点,运行Dijkstra算法,然后对目标进行深度优先搜索,每次您当前正在调查的路径变成一个循环时终止搜索,或者,到目前为止路径上的距离与从当前节点到源的最短距离之和大于X
每次实际到达源节点时,您都可以打印到目前为止的路径。这与查找常规路径似乎没有太大区别,您已经可以这样做了。Dijkstra的算法支持找到给定长度下的所有路径,也不应该给出循环。只需在没有主路径的子图上运行它?是的,我需要第二个clwhisk。找到长度X以下的所有路径,删除这些路径段,在剩余图形中找到的任何路径都应满足您的标准。是吗?是的,这很有效。傻,我没想到。