为什么火车时间?

候家萱候家萱最佳答案最佳答案

我们要明确一个前提条件——假设列车是按时刻表精确运行,且不考虑信号灯等外部因素导致的延误(这种概率极小) 接下来我们讨论的问题就比较简单了——在按时刻表行驶的前提下,一列火车的运行时刻可以由以下步骤得到: 1.按起止站点列表所有可能的路径集合;

2.计算每一条路径上的所有停靠站点的集合(包括本局管内路段的起点和终点),并记录每趟列车经过的线路区段编号;

3.根据起点局和终点局的编码规则为每一趟列车生成一个识别号;

4.按照一定的时间间隔(如20秒),通过查询数据库的方式计算出每个区段的列车通过时刻(即列车进入此区段并在其区间停留的时刻);

5.添加各种人为操作的延时(如调度命令处理、机车车辆走行延时等),并以此作为最终结果输出给用户。 我们已经获得了每一个区段列车的通过时刻,为了获得整个列车的运行时刻,只需要将各个区段列车的通过时刻串联起来即可。不过这样做的问题在于,如果存在两条相邻路径,它们各自包含某个区段时所允许的调度间隔不同,则必须对此进行区分。否则两个序列一重合,就会发生错误。对于任意一趟列车来说,我们所需要做的,就是追踪这趟列车的轨迹,判断它究竟走了哪条路径,并根据这条路径上的停靠站点及其顺序来计算出它的运行时刻。

当然,实际的情况要比上述复杂的多。由于信号机的开放状况会影响列车运行的实时性,因此我们不能预先设定好所有路径,而应该让信号机与列车运行相互影响。另一方面,由于调度命令的处理也需要一定的时间,我们也必须考虑命令到达各信号机处所消耗的时间。

以上仅仅介绍了如何计算出列车的运行时刻,至于如何获得途经的各车站和区间的停靠站点,以及如何为列车指定一个唯一的标识符等等,就不是本文讨论的内容了。

我来回答
请发表正能量的言论,文明评论!