时间总线路由的体系结构设计
Architecture Design for Bus Routing with Time
这是为了确认我的设计是否足够好,或者随着时间的推移获得更好的解决总线路由问题的想法。这是我的解决方案,主要步骤如下:
有一条边table表示所有边(源和目标表示顶点(公交车站):
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
有一个 table 表示总线详细信息,例如从时间、到时间、边缘等。
注意:我对 "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
使用dijkstra
算法寻找最近的路径。
从busedgetimes
table中获取dijkstra
算法检测到的最近路径中最早的第一个顺序的即将到来的公交车。 => 虽然这会导致有点复杂的查询。
我可以对此做任何改进吗,或者有什么更好的设计吗?
文档链接,与此相关的文章非常有用。
这是完全正常的常规方式。另见,
这是为了确认我的设计是否足够好,或者随着时间的推移获得更好的解决总线路由问题的想法。这是我的解决方案,主要步骤如下:
有一条边table表示所有边(源和目标表示顶点(公交车站):
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
有一个 table 表示总线详细信息,例如从时间、到时间、边缘等。
注意:我对 "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
使用
dijkstra
算法寻找最近的路径。从
busedgetimes
table中获取dijkstra
算法检测到的最近路径中最早的第一个顺序的即将到来的公交车。 => 虽然这会导致有点复杂的查询。
我可以对此做任何改进吗,或者有什么更好的设计吗?
文档链接,与此相关的文章非常有用。
这是完全正常的常规方式。另见,