我正在开发一个旅程计划网站。目前,在这种情况下,有几件事情很简单,即现在该网站仅能规划公交路线,而公交时刻表目前不可用。因此,这意味着我们仅将公交路线存储在数据库中,并且由于公交时刻表不可用,因此旅行者的等待时间也无关紧要。可用的是单个公共(public)汽车的两个站点之间耗时和距离。

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

设计的一些一般要点:我希望该应用程序可扩展,以便以后在需要时可以添加其他运输方式。而且,如果可能的话,也可以稍后增加公交时间,而无需对网站进行重大更改。我在这里看到了很多专家,他们从事许多复杂的运输项目。因此,请以最佳方式,以最可扩展,模块化和可扩展的方式来实现此功能的最佳方法来帮助我。

最佳答案

一个图将必须是一个方向图-道路相对两侧的公交车站(即使在像英国这样很少有中位数的国家或地区)也不是同一站!

10-08 11:30