首页 理论教育 智能运输系统:RYNSORD算法

智能运输系统:RYNSORD算法

时间:2023-10-14 理论教育 版权反馈
【摘要】:而在火车移动过程中,RYNSORD并不需要火车与火车或火车与车站之间进行通信。RYNSORD这些特点对保证安全和防撞是至关重要的。但是,系统会给某些特殊的中途停靠站授权,将火车的整体路径分解成多组较短的路径,并在每一组路径的调度过程中连续使用RYNSORD。进入RYNSORD系统后,每台车载计算机首先会确定起点和终点间的最短路线。

智能运输系统:RYNSORD算法

RYNSORD对铁路网来说是一个全新的算法,它有下列特点:首先,该算法是一种非集中算法,因为网络中所有列车路径的计算任务是由系统中的所有列车和站点共同完成的。路径的确定过程是动态的,即当列车在驶向终点站的过程中依次连续地选择轨道时,考虑了系统中其他列车的轨道需求。RYNSORD在现代通信网络技术方面也有独特的表现,其中的每一个移动设备,例如火车,都具有智能信息采集功能,并且能完全独立自主地决定自己的运行路线。所以,要确保列车在铁轨上安全地运行,就要求列车在上轨道运行之前,先从该轨道的管理节点处获得确定的预留保证。想象一下,一列火车在启程之前,如果坚持要求为其预留所选择的路线上从起点到终点的每一段轨道,就可能会因为使用了过时的信息,过早将列车前方较远处的轨道锁定,而不能随着时间的推移而选择可能出现的更好的路线。与其相反,RYNSORD算法每次只考虑前方N段轨道的预留。系统中每列火车都要求以N段轨道为间隔为其进行预留,特别要求列车在开始一段新的运行之前,必须要获准使用沿着既定路线上通向终点方向的后续N段轨道。在后续N段轨道的预留过程中,RYNSORD提出了一个新颖的概念——软预留。在传统的硬预留中,一列火车会在特定的时间段内发出N个连续信号请求预留N段轨道,而与轨道段相对应的控制车站批准还是拒绝预留请求,是取决于在请求的瞬间各段轨道是否空闲。这样,当一列火车请求在t1t2时间内使用一段轨道时,即使车站知道该轨道只会被占用到t1+1,接下来的时间都空闲,但它还是会拒绝批准。这导致火车不得不尝试申请备选轨道,而备选轨道上的情况可能会更糟糕。因此,假如火车已经从站点了解到所有轨道被占用的情况,那么它就可能会选择等待1个单位时间,然后再选择较好的解决方案。所以在硬预留模式中,车站控制点采用的是僵化的二选一方式。相对于这种方式,RYNSORD提出软预留的做法:即只是为每列火车指定到达后续N段轨道所对应的站点的时间,该时间一定是单调增加的。这种情况下,如果轨道是可用的,控制节点就可以在火车提出请求的时刻批准轨道的预留,如果轨道暂时不可用,控制节点可以在超出请求时间后轨道变成可用的最早时刻批准预留。这一特征将使RYNSORD具有高效率和高鲁棒性,并能降低整个系统中灾难性事故发生的可能性。

在RYNSORD中,假定一个铁路网中包括一系列铁路车站(也称为节点),车站之间由很多有一定长度的铁路轨道相连。每个车站都配有一个计算引擎和通信设施,每两个车站之间由一条轨道连接,车站之间有双向通信链路,即每条轨道都是双向的。此外,每列火车都配备有车载计算机和通信装置,当火车到站时,就会立即启动与相应站点计算机之间的通信。而在火车移动过程中,RYNSORD并不需要火车与火车或火车与车站之间进行通信。每个轨道区间由一定长度的轨道和独立控制该轨道的车站节点构成。节点X与Y之间的轨道由X或Y控制,控制节点独立负责与各列火车之间就该轨道的使用进行协商。RYNSORD这些特点对保证安全和防撞是至关重要的。图5.1是一个简单的铁路网,从A至F的所有站之间由这个部分连通网络中的各轨道区间段连接起来。图5.1中也显示了相应轨道的长度和控制点。

978-7-111-37676-7-Chapter05-1.jpg

图5.1 RYNSORD中的一个铁路网示例

火车可以随时随刻、从任一车站,异步地进入到RYNSORD中。每列火车都有它自己的始发站、终点站和最高速度。一般来说,火车确切的行驶路线(从始发站到终点站经过的轨道序列)以及据此产生的到达时间都是由RYNSORD动态决定的。但是,系统会给某些特殊的中途停靠站授权,将火车的整体路径分解成多组较短的路径,并在每一组路径的调度过程中连续使用RYNSORD。也就是说,如果期望的路线是A→C→E,那么在RYNSORD调度下先行驶A→C,然后在RYNSORD调度下行驶C→E。但如果过度使用这种中间站,也可能会影响系统的整体性能,因为RYNSORD的优势主要体现在能动态地控制火车路径,以最大限度地提高工作效率,优化资源配置,并避免拥堵。

如前面所述,RYNSORD中一个很重要的概念是前向性,定义为一列火车要通过预留申请与车站协商后续将要使用的轨道段的数量。前向性反映了火车试图为后续行驶预留资源,这些资源包括火车到达终点站前可能需要使用的一系列轨道区间段。

进入RYNSORD系统后,每台车载计算机首先会确定起点和终点间的最短路线。这就是所谓的“主要路线”,其计算是基于各站间的距离,对主要路线的决策过程中并没有考虑拥堵情况。然后车载计算机会确定“次要路线”,其组成轨道与主要路线的轨道应该是不重叠的,但存在一种例外的情况:在极少数情况下,如果有一段(或多段)轨道是网络中的一部分与另一部分相连的唯一通道,那么主要路线和次要路线就必须共用这一段(或多段)轨道。例如,在图5.1中,路段E→F是任一以站F为起点或终点的路径中必不可少的组成部分,因此该线路既在主要路线上,也在次要路线上。

接下来,火车从主要路线和次要路线中提取对应于前方N个轨道区间段(前向值=N时)的站点,将要发向这些站点的预留请求打包并启动预留请求。一个预留请求包由一个连续站点列表和每个中间站的预计到达时间组成。到达时间是根据当前时间、火车速度、车站之间的轨道区间长度计算的,并假设火车不会在中间站等待,也就是说,中间X站的离开时间就等于该站的到达时间。当然,火车在起点站还是要停留,在那些为预留前方N段轨道而发出请求的车站内也是要停留的,在这些站内,到达和离开的时间是会影响到轨道要预留的时间长短的。因此,对于轨道区间段X→Y来说,火车必须为在一定的时间段(离开X的时间,到达Y的时间)内使用该轨道进行预留申请。

火车将预留包发送到列表中的第一个车站。如果这个车站是第一段轨道的控制者,那么它将和列车之间就这段轨道的预留请求进行协商。假设火车需要预留的时间段是(t1t2),如果车站确定在这个时间内轨道不会被占用,就会批准预留。相反,如果所请求的时间段内轨道已经被其他火车占用,显然不会批准进行该预留。然后,车站会计算t2之后最早的时间段,并且为新的时间段(t3t4)预留轨道。时间段的长度根据轨道长度和火车速度进行计算,它将覆盖预留包中的第一个时间段,而使用后续轨道的时间段也被相应修改。如果第一个站不是第一段轨道区间的控制者,预留包就会被转发给第一段轨道区间的控制者。第一段轨道区间的预留完成后,预留包被发送到控制下一段轨道的车站。如前所述,预留过程启动,当第二段轨道的预留时间段确定后,这一阶段的预留结束。如此,这个过程一直持续到所有N段轨道都获得预留时间段后才停止。随后,修改后的预留包沿已启动预留程序的路线返回到火车所在地。主要路线和次要路线会同时执行这个过程。

当一列火车收到它在主要和次要路线上的预留请求回应时,它也有可能不选择能以最短的时间到达后续第N段轨道末端车站的路线为最佳路线(如R1)。因为虽然主要和次要路线都通向最终目的地,且沿着路线R1能较早到达后续第N段轨道的末尾,但这并不就能保证火车能更快地到达其最终目的地。因此,对于每一条主要和次要路线来说,火车会考虑到达后续第N段轨道末尾的时间加上沿着最短路线从第N段轨道末尾到达最终目的地的时间之和。假设主要和次要路线上的这个时间和分别用TT1TT2来表示,火车就会选TT1TT2中值比较小的路线。若TT1=TT2,则火车会任意选择,一般情况下会选择主要路线。然后,火车对没有被选中的路线生成一个预留删除请求,并传送到车站,以解除相应的轨道预留。

因为火车是沿着N段轨道从一个站到下一站前进,这就保证了相应轨道的使用时间与之前批准的预留时间是一致的。然而,如果一列火车早于预计到达时间抵达某车站,而下一段轨道可用的时间段也足够长,车站可以立即允许该火车前进。否则,火车就要撤回对下一轨道段的初始预留时间段,并对其进行修改。当一列火车抵达一个站时,也可能会发现下一段轨道的可用时间比它请求的时间段更早,这是因为当火车在执行最初预留请求时,如果决定选择另一条路线,这段轨道就会由于原预留请求被删除而空置出来。因此,之前批准的这段轨道的预留时间段是这列火车行驶时间的一个上限。如果有多列火车争夺由于这列火车离开而空出来的一段轨道,那么在车站已经等待了最长时间的火车就会得到最高的优先权

为了理解RYNSORD的操作,看图5.2a和图5.2b中的铁路网。除了没有节点F外,它们和图5.1完全相同。假设两列火车Ta和Tb同时进入系统,t=0时分别在节点A和B。Ta和Tb都开往车站E。图5.2a描述了Ta从起点A到终点E的主要路线和次要路线的计算。图5.2b描述了Tb从起点B到终点E的主要路线和次要路线的计算。图5.2a和图5.2b中,实线和虚线分别表示主要路线和次要路线。

假设前向值N=2,火车Ta和Tb从主要路线和次要路线中提取与前方N=2段轨道相关的车站。在这个例子中,假设Tb的主要路线是根据轨道的数量,而不是根据从出发点到终点的英里数来选择的。车站的主要和次要路线是

Train Ta:

Primary path station list:A—>C—>E

Secondary path station list:A—>B—>D

Train Tb:

Primary path station list:B—>D—>E

Secondary path station list:B—>A—>C

978-7-111-37676-7-Chapter05-2.jpg

图5.2 RYNSORD中主要路线和次要路线的计算

a)火车Ta b)火车Tb

假设火车速度为1mile/min,Ta和Tb将会生成预留请求包,并激活

Train Ta:

Primary path:

arrival at A at time 0

departure from A at time 0

arrival at C at time 2

departure from C at time 2

arrival at E at time 4

[no departure since E is the final destination](www.xing528.com)

Secondary path:

arrival at A at time 0

departure from A at time 0

arrival at B at time 1

departure from B at time 1

arrival at D at time 3

[no departure since D is the last station in the station list]

Train Tb:

Primary path:

arrival at B at time 0

departure from B at time 0

arrival at D at time 2

departure from D at time 2

arrival at E at time 8

[no departure since E is the final destination]

Secondary path:

arrival at B at time 0

departure from B at time 0

arrival at A at time 1

departure from A at time 1

arrival at C at time 3

[no departure since D is the last station in the station list]

图5.3a~d描述了RYNSORD中火车传送预留请求包和各车站处理预留请求包的操作过程。在图5.3a中,Ra1和Ra2表示Ta传送的关于主要和次要路线的预留请求包;Rb1和Rb2表示Tb传送的相应预留请求包。在图5.3a中,Ra2请求站A在时间(0,1)内预留轨道A→B。由于在时间段(0,1)内轨道A→B是空闲的,这个请求被顺利批准。由于站A不能控制轨道A→C,Ra1就不能利用站A请求预留A→C。Rb1和Rb2都不能利用站B,因为站B既不能控制B→D,也不能控制B→A。

图5.3b表示预留包传送到下一站的过程。这里,Ra1和Rb1分别预留了时间段(0,1)内轨道A→C和(0,1)内的轨道B→D。Ra2什么都没做,因为B不是轨道B→D的控制者。当Rb2试图为时间间隔(0,1)预留轨道B→A时,因为火车Ta已经预留了这个时间段,因此请求失败。这样,站A就为火车Tb预留了下一个可用的时间段(1,2)。火车Tb更新了它的次要路线预留包,缩写为[B@0/1][A@2/X][C@X/X],这表示在时间0~1内火车Tb在站B等待,在时间2时前进到站A,同样在时间2离开站A,在时间4到达站C。火车Tb不能预留C以后的轨道区间,因为它的前向值为2,这可用子字段“[C@4/X]”表示,X表示未知值。每一个简写的预留包的子字段都可以表示为[站名@到达时间/离开时间(X未知)]。

图5.3c表示预留包的后续传播。Ra1和Rb1分别为时间段(2,4)与(2,8)成功预留了相应的轨道C→E和D→E。Ra2不能为(1,3)时间段预留轨道B→D,因为火车Tb已经预留了(0,2)上的B→D。火车Tb可以预留的时间段为(2,4),这个预留可以简写为[A@0/0][B@1/2][D@4/X]。Rb2成功为(2,4)时间段预留了轨道A→C。

因为前向值为2,此时,Ra1至Rb2的所有预留包已经成功预留到了最后一段轨道区间,并且分别从站A和B将相应预留情况返回给了火车Ta与Tb。在站A,火车Ta发现通过主要路线到达终点站E的总时间是4,而通过次要路线到达D就需要4个时间单位,到达终点站E所需的额外行驶时间至少是6个时间单位,这意味次要路线的总行驶时间是4+6=10个时间单位。显然,火车Ta选择主要路线,即A→C→E为最佳选择,然后将为Ra2所做的预留删除请求传送到车站。对于火车Tb,主要路线需要8个时间单位到达终点站E,而次要路线需要4个时间单位到达C,到终点站E所需的额外行驶时间至少是2个时间单位,即次要路线的总行驶时间是4+2=6个时间单位。因此,火车Tb选择次要路线,即B→A→C,并向车站传送一个预留删除请求,解除它之前在主要路线Rb1上获得的预留。

图5.3d表示当火车Ta和Tb开始运行,并且预留删除请求已经被处理之后RYNSORD的情况。应该注意的是随着火车Ta在轨道A→B上的预留被删除,火车Tb可获准比它预留的时间段(1,2)更早地使用这段轨道。

978-7-111-37676-7-Chapter05-3.jpg

图5.3 预留操作的初始化和进行过程

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈