【问题标题】:Graph theory in public transportation公共交通中的图论
【发布时间】:2014-05-16 12:23:23
【问题描述】:

嗨,

我现在正在开发公共交通指南软件。在欧洲,美国的谷歌地图提供了这一点,但在土耳其却没有。我有一个数据库,其中包含所有车站的经纬度,以及其他公交线路、车站信息。在我的计划中,首先我将使用图论(车站是顶点;边权重是车站之间的距离),并连接同一公交线路上的车站;然后寻找路线。之后,我将在 Google Map 上演示路线。我已经完成了第一步,连接站点。然而,之后我发现我的计划中有一个错误,如图所示。 人想靠近A到K,程序应该说

  1. 步行到A站
  2. 在A站坐8路公交车
  3. 8路E站下车
  4. 步行到 H 站
  5. 在H站坐970路
  6. 970在K站下车

但是,E站和H站之间没有连接。所以,图算法找不到从A到K的路线。我应该在E和H之间定义一条步行路径。但这只是城市的小示范全市6500多个车站。我怎么解决这个问题? 我有一个想法,在 1 公里范围内的站点之间添加连接;但我认为这是低效的。 谢谢。

【问题讨论】:

  • 也许你可以比较两个线路车站之间的距离,然后步行选择最近的两个车站? Distance Matrix Service 可能会有所帮助。
  • 感谢您的支持,但它只适用于乘客使用 2 辆巴士。如果两条线不相交而需要第三条或第四条线怎么办?
  • google.com/intl/en/landing/transit 怎么样?土耳其好像已经有几条线了。
  • @MrUpsidown 它只显示土耳其的地铁线路。伊兹密尔只有一条地铁线。
  • 重点是你可以为它做出贡献……

标签: php google-maps google-maps-api-3 graph


【解决方案1】:

在 E 和 H 之间添加一条有向边,权重为“a”。选择“a”,使网络中的所有边权重都没有相同的权重“a”。例如,您可以选择 'a' 为 0,因为我确信网络中的所有边都没有权重为零,因为这意味着某些两个站点之间没有距离。接下来,以这样的方式代码您的程序,每当有一个包含重量'a'的边缘的路线时,那么程序应该说,“从站e步行到站h em>”或权重为“a”的边连接的节点。

否则,您可以有一个图,这样当您必须步行时,从一个节点到另一个节点有两条有向边。假设一条边的权重为 0,另一条边的权重为两个站点之间的距离。确保您的程序以这样一种方式编码,当在 A 站和 B 站之间遇到两条边时,一条边的权重为 0,另一条边为“x”,然后程序给出指令,“Walk from A站到B站,距离'x'公里。"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多