如何在加权(无向)图中找到两个节点之间的长度为X的路径

时间:2013-01-17 21:15:49

标签: algorithm math graph map routing

给定图形,如何在图形中的两个节点之间找到长度为X的路径。理想情况下,路径最多只能访问一次。

1 个答案:

答案 0 :(得分:0)

您可以实施修改后的BFS算法。一旦找到从A到B的第一条路径,您就拥有所述路径的最小长度,因此如果X小于此值,您就已经知道现在有路径。

如果X大于此值,请按以下步骤操作:浏览刚刚找到的A到B的路径,并使用它与B的距离注释每个节点。

然后,继续进行BFS搜索,直至覆盖整个图表。

每次你的搜索到达一个已经使用过的节点时,你都可以看到它是否通向B,如果是,它会离它有多远。这使您可以知道刚刚找到的新路径的长度,并且可以与X进行比较。

再次,使用它与B的距离来注释此路径中的每个节点。您应该允许对节点进行多次注释,并且一旦您点击通向B的已使用节点,请使用所有注释值进行比较。说节点。

每当您点击长度大于X的路径时,您都可以停止搜索。