【问题标题】:Application searching railway connections应用程序搜索铁路连接
【发布时间】:2014-02-14 13:02:30
【问题描述】:

我正在管理一个项目,描述如下。

应用程序应该显示从城市 A 到城市 B 的火车连接,并根据总行程时间、总公里数、车站等待时间等进行优化。它有更多要求,但并不难,所以我可以一个人处理.

我想收到执行建议。我在考虑间接图,其中城市是顶点,铁路是边。每条铁路都会有起点城市、终点城市、长度,也许还有一些其他参数。

主要问题如下:在数据库中会有指定的起始站、结束站和中间站的火车,以及给定的到达和离开时间。 您会提出什么算法来找到从城市 A 到城市 B 的最佳连接?

我正在考虑以下问题:会有维度矩阵A[n][n],其中n 是城市数。设ab 为A 和B 城市的ID。如果有A 到B 的直达列车,则为A[a][b]=1,否则为A[a][b]=0。如果不存在这样的连接,系统会尝试通过与A和B相连的城市寻找连接。是否有效的解决方案?

【问题讨论】:

  • 您必须考虑这些数据的数字化。其中连接的总和值越低应该是最好的。
  • 好的,所以您建议将低连接数设为最理想的状态?我同意这一点:)但是考虑到我还没有编写任何算法,优化对于未来来说是一个相当大的问题。感谢您的帮助:)
  • 不仅连接数少。它可能类似于 Google pagerank,其中每个连接都有一个排名,总排名总和将是最喜欢的。
  • Is there is a route from city a to city b in no more than x days? 密切相关,我的回答也可以让您将等待时间考虑在内。

标签: sql algorithm graph


【解决方案1】:

为每个轨道段创建边缘,以便您可以对交叉点和侧线等进行建模。节点将这些边中的每一个结合在一起,它们不必只是站。

然后让自己 boost::graph 并使用其中一种算法为您完成所有艰苦的工作:) 建议的算法是 A* 或 Dijkstra。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多