如何找到两个地方的路线

时间:2012-02-18 12:27:18

标签: algorithm

我有3条公共汽车有3条路线我们可以用公交车A,公交车B,公交车C和他们的路线命名我们的公共汽车r1,r2,r3 ..所以,路线中包含的地方是

bus-A route is r1
bus-B route is r2
bus-C route is r3

r1:[badoc,pin,curri,bat,san,laoag](vise versa)
r2:[pag,bang,bur,pas,bac,laoag](vise versa)
r3:[ban,mar,ding,san,laoag](vise versa)

我希望找到离

最近的路线
CURRENT LOCATION:badoc
TARGET LOCATION:laoag

请帮助我算法应该如何获得路线...非常感谢!

2 个答案:

答案 0 :(得分:1)

您的问题可以使用Dijkstra's Algorithm解决。将公交车站视为节点,并为每条边使用重量一。

答案 1 :(得分:1)

由于图形建模这个问题没有加权,所以这里不需要Dijkstra算法。

BFS也会找到最短路径 - 并且更容易编码,并且会更快地找到解决方案。

将图表设为G=(V,E),以便V = { all stops }E = {(v,u) | u follows v as a stop in some bus }

创建图表后,只需运行BFS - BFS找到的解决方案为guaranteed to be optimal