最快路径计算问题

yi127 2002-10-25 10:35:08
小弟这两天在学算法,导师让研究一下铁路的最快路径问题,存储信息是列车时刻表,输入起始站和终点站,输出最佳乘车选择,譬如http://www.gaocan.com/train2.html所做的一样。我还不太有思路,有谁可以和我讨论一下么?
谢谢。
...全文
51 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
crazy_lazy_pig 2002-11-05
  • 打赏
  • 举报
回复
这个问题好象非常复杂,只用时刻表好象还不够用。
你首先应该利用列车时刻表做一个以各车站为节点的图,其边为现有铁路线。
其次你要麻烦了,不过若不是要求最优算法的话,道是有一个最笨的算法,反正你是要分析时间复杂度的。
笨算法是:
找出所有起始站和终点站间的通路,在各通路上找出每两各站之间的能互达的列车,做出两站间所有可行的列车组合,找出最快的一种。此为完全遍历算法,不知你是否喜欢。
简单点的或是最优算法我再考虑,今天没时间了
crazy_lazy_pig 2002-11-05
  • 打赏
  • 举报
回复
看到 yi127(青松) 的分析感觉很有道理,看来你是明白的,只是找不到好的算法。
我昨天已经很疲劳了,突然看到一个自己感兴趣的问题,就没多考虑,先参与再说。今天再分析一下感到并非如你所说是一个动态图。其实可以把它做成一个带有平行边的非简单有向图,就是说凡是有列车可达的站点就连一条边,只是边的权恐怕要复杂一点了,就是要取成“(发车时间,到站时间)”这样二维数的形式了。
作好了图就是要改进Dijkstra算法了,你说可以找到最快的一辆车,我不知你是怎么做的,我想既然可以找出,利用上面做的“复杂”图应该能找出其它列车。
另外听说现在Dijkstra算法并不是最先进的,听说有一种解决简单图任意两点间最短路线选择(城市交通乘车选择问题)算法很好,虽然没能完全解决,却能比Dijkstra算法更高效的完成简单图的搜索。
djniulihao 2002-11-05
  • 打赏
  • 举报
回复
GZ
yi127 2002-11-05
  • 打赏
  • 举报
回复
谢谢crazy_lazy_pig,zhoukun666:
你们说的我也想到了。
简单的思考就是一个最短路问题,用Dijkstra算法,但实际要比Dijkstra算法难。1)因为要求输入想在几点出发,若没有合适的直达车,有时倒车比直达还快。即这是一个动态的图,边的权值不停在变化。2)因为有倒车所以要把中途倒车耽误的时间加上,即每个点也有权值。3)Dijkstra算法可找到最快的一辆车,但最快的第2、3辆车不好找。我现在在考虑这个问题。
当然,全列出来是一种方法,但应该不是最佳。
zhoukun666 2002-11-04
  • 打赏
  • 举报
回复
就是最短路径问题:
程序构思:
首先,你应该把图形建立成加权图性的邻接数组,在申明一个一维数组来纪录已经查找的的数组(Visited)和一个一维数组来用来纪录顶点间距离综合的变化(Distant)
取原来的距离总和于新加入顶点后的距离总和的最小值作为新的距离的总和,
yi127 2002-11-03
  • 打赏
  • 举报
回复
可否详细些?
sxzbj 2002-10-26
  • 打赏
  • 举报
回复
这个问题用递归,
yi127 2002-10-25
  • 打赏
  • 举报
回复
我要找到一算法,并分析时间复杂性。

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧