c# - 在城市使用公共(public)汽车的公共(public)交通

标签 c# algorithm data-structures graph graph-theory

我正在开发一个 Journey Planner 网站。目前在这种情况下有一些简单的事情,即现在该网站只能规划公交路线,公交车的时间目前不可用。所以这意味着我们只有公交路线存储在数据库中,并且由于公交车时间不可用,因此旅客的等待时间也不相关。可用的是单个公交车两站之间的时间和距离。

我认为使用无向加权图存储每辆公共(public)汽车在每个公共(public)汽车站的时间和距离成本是可行的方法。然后我可以使用 Dijkstra 算法根据用户偏好根据时间或距离计算用户输入的两个位置之间的最短路径。如果公交路线在站点相交,然后使用这些交叉路口站点供旅客换乘公交车,我会通过简单的 C# 函数找出是否需要两辆或三辆公交车。但是每辆公共(public)汽车都会有一个单独的图表。另一种(不确定这是否正确)方法是使用包含城市每个公交车站作为节点的图表,然后使用这种技术找出两个车站之间的旅行方式。哪个是正确的方法?我应该使用 A* 算法代替 Dijkstra 算法吗?

设计的几个一般要点:我希望该应用程序是可扩展的,这样我可以在以后需要时添加其他交通工具。此外,如果可能的话,也可以稍后添加公交车时间,而无需对网站进行重大更改。我在这里见过不少专家,他们从事过很多复杂的交通项目。因此,请帮助我找到以最具可扩展性、模块化和可扩展性的方式实现此功能的最佳方式。

最佳答案

图表必须是方向图 - 道路两侧的公交车站(即使在像英国这样很少有中间线的国家)也不是同一个车站!

关于c# - 在城市使用公共(public)汽车的公共(public)交通,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4246735/

相关文章:

python - 有效地对元组列表进行分组

不重复的字符串组合 C

python - 删除项目后重命名字典键的更好方法?

c# - 查询 TreeNodeCollection

c# - Fluent NHibernate Many to Many with extra column 不插入

javascript - 在 UWP 中使用 Composition 制作移动圆圈

c++ - 如何计算最小公共(public)祖先算法的时间复杂度?

c++ - 解码无符号短值的函数

c - 错误 : A function Can't return char type in C

c# - 评估 NumFound 时出现 OutOfMemory 异常