代码之家  ›  专栏  ›  技术社区  ›  Royal Pinto

随时间变化的公交线路体系结构设计

  •  1
  • Royal Pinto  · 技术社区  · 6 年前

    1. 有一个表示所有边的边表(源和目标表示顶点(公共汽车站)):

      postgres=# select id, source, target, cost from busedges;
       id | source | target | cost
      ----+--------+--------+------
        1 |      1 |      2 |    1
        2 |      2 |      3 |    1
        3 |      3 |      4 |    1
        4 |      4 |      5 |    1
        5 |      1 |      7 |    1
        6 |      7 |      8 |    1
        7 |      1 |      6 |    1
        8 |      6 |      8 |    1
        9 |      9 |     10 |    1
       10 |     10 |     11 |    1
       11 |     11 |     12 |    1
       12 |     12 |     13 |    1
       13 |      9 |     15 |    1
       14 |     15 |     16 |    1
       15 |      9 |     14 |    1
       16 |     14 |     16 |    1
      
    2. 有一个表,其中表示巴士的细节,如从时间,到时间,边缘等。

      注意:我已经为“from”和“to”列使用了整数格式,以获得更快的结果,因为我可以执行整数查询,但是如果可用,我可以用任何更好的格式替换它。

      postgres=# select id, "busedgeId", "busId", "from", "to" from busedgetimes;
       id | busedgeId | busId | from  |  to
      ----+-----------+-------+-------+-------
       18 |         1 |     1 | 33000 | 33300
       19 |         2 |     1 | 33300 | 33600
       20 |         3 |     2 | 33900 | 34200
       21 |         4 |     2 | 34200 | 34800
       22 |         1 |     3 | 36000 | 36300
       23 |         2 |     3 | 36600 | 37200
       24 |         3 |     4 | 38400 | 38700
       25 |         4 |     4 | 38700 | 39540
      
    3. 使用 dijkstra

    4. 从火车站乘即将到来的公共汽车 busedgetimes 表中最早的一阶最接近的路径检测 迪杰斯特拉 算法=&燃气轮机;但这会导致一个有点复杂的查询。

    与此相关的文档、文章链接将非常有用。

    1 回复  |  直到 6 年前
        1
  •  2
  •   Evan Carroll    6 年前

    这完全是正常的,也是正常的做法。另见,