本文集中讨论列车事件表生成算法,列车事件表记录列车运行中的各类事件,如到站、开车、通过车站、交会、越行、让行等,时间与地点的表。典型应用场景为查询列车通过各站点的时刻,以及特定条件下的列车交会信息。qETRC软件采用直接遍历时刻表的方法生成事件表,提供直观展示效果。
运行图是列车运行情况的直观表示。所有事件均能在运行图上找到对应图解,例如两条运行线的交点表示两列车交会,如G7804事件对应上表第7项,通过沧州西的事件对应上表第9项。
qETRC软件处理的事件包括单车次事件和双车次事件,单车次事件仅涉及当前列车自身,计算相对简单,如到达、出发及预定通过时刻;双车次事件则涉及两列车交互,计算逻辑较为复杂。本文重点探讨双车次事件的计算。
双车次事件计算有两种基本思路:一是通过图形元素的相交关系直接获取交叉点坐标,再反推事件的时间与地点;二是从原始数据出发,直接计算事件的精确时间与地点。pyETRC采用前者,qETRC采用后者。
qETRC通过列车运行线的双重单调性(空间与时间上的单调性)实现事件计算,核心思想为“齐头并进”策略,同时遍历两运行线的站表,使得它们的空间距离尽可能接近,以减少冗余计算,确保事件不被遗漏。这种方法有效降低算法复杂度,实现高效计算。
通过直接遍历时刻表生成事件表,qETRC获得更可靠的事件排序与计算结果,但算法实现较为复杂,处理不完整时刻表时更为繁琐。与ETRC的算法相比,qETRC通过“齐头并进”的思想,结合运行线的双重单调性,实现更高效、更准确的事件计算。
qETRC在生成事件表时采用直接遍历时刻表的方法,这使得软件在处理复杂运行图时表现出较高的效率。以京沪高速线运行图为例,计算全程车次事件表几乎无卡顿,而pyETRC在相同测试中可能需要较长的计算时间。这种方法在事件排序上更为可靠,尽管实现过程相对复杂,尤其是在处理不完整时刻表时。
总的来说,qETRC采用直接遍历时刻表的算法生成列车事件表,通过“齐头并进”的策略优化计算效率,确保事件的准确与全面。这种方法在处理复杂运行图时展现出优势,同时为用户提供准确、高效的服务。
本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。