CN110222912A - 基于时间依赖模型的铁路行程路线规划方法及装置 - Google Patents
基于时间依赖模型的铁路行程路线规划方法及装置 Download PDFInfo
- Publication number
- CN110222912A CN110222912A CN201910543806.8A CN201910543806A CN110222912A CN 110222912 A CN110222912 A CN 110222912A CN 201910543806 A CN201910543806 A CN 201910543806A CN 110222912 A CN110222912 A CN 110222912A
- Authority
- CN
- China
- Prior art keywords
- model
- node
- station
- time
- railway
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000036962 time dependent Effects 0.000 title claims abstract description 64
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 126
- XEEYBQQBJWHFJM-UHFFFAOYSA-N Iron Chemical compound [Fe] XEEYBQQBJWHFJM-UHFFFAOYSA-N 0.000 claims abstract description 14
- 229910052742 iron Inorganic materials 0.000 claims abstract description 7
- 238000012546 transfer Methods 0.000 claims description 121
- 238000011161 development Methods 0.000 claims description 11
- 238000010276 construction Methods 0.000 claims description 5
- 230000008859 change Effects 0.000 abstract description 40
- 230000006870 function Effects 0.000 description 19
- 238000012360 testing method Methods 0.000 description 17
- 238000004364 calculation method Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 5
- 238000012217 deletion Methods 0.000 description 4
- 230000037430 deletion Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 230000002441 reversible effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000000052 comparative effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 238000011282 treatment Methods 0.000 description 2
- 241000156948 Aphantopus hyperantus Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/20—Instruments for performing navigational calculations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/04—Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
- G06Q10/047—Optimisation of routes or paths, e.g. travelling salesman problem
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/40—Business processes related to the transportation industry
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Physics & Mathematics (AREA)
- Remote Sensing (AREA)
- Strategic Management (AREA)
- Radar, Positioning & Navigation (AREA)
- Economics (AREA)
- General Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- Marketing (AREA)
- Theoretical Computer Science (AREA)
- Tourism & Hospitality (AREA)
- Operations Research (AREA)
- Development Economics (AREA)
- Quality & Reliability (AREA)
- Entrepreneurship & Innovation (AREA)
- Game Theory and Decision Science (AREA)
- Automation & Control Theory (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Primary Health Care (AREA)
- Train Traffic Observation, Control, And Security (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供一种基于时间依赖模型的铁路行程路线规划方法及装置,该方法结合中国铁路网络实际情况,对标准时间依赖模型进行修改,改进后的模型可处理中国铁路网络中的最早到达、最少换乘和最短行程时间等问题;以此模型为基础建立基于时间依赖模型的空铁联运模型和空铁地联运模型;然后使用改进的时间依赖模型以及Dijkstra算法求解中国铁路最短路径搜索问题,通过选择Dijkstra算法的数据结构同时采用A*算法思想对算法进行加速,提高了算法效率;最后基于回溯思想将最短路径搜索算法修改为K优路径算法,实现中国铁路网络行程规划中最早到达K优路径、最少换乘K优路径、最短行程时间K优路径、票价最低K优路径问题的实时求解。
Description
技术领域
本发明属于铁路行程路线规划领域,特别涉及一种基于时间依赖模型的铁路行程路线规划方法及装置。
背景技术
随着社会的发展,人们的出行需求逐渐增大。铁路作为基本交通方式之一,具有价格低、速度较快等特点,因此它所承受的客运量也变得越来越大。根据中国国家统计局公布的《2018年国民经济和社会发展统计公报》得到:2018年我国全年运输总量(铁路、公路、水运、民航)179亿人次,其中铁路运输量33.7亿人次,比去年增长9.4%。铁路已经成为人们的重要出行方式之一。显然,根据旅客的出行需要(换乘最少、票价最低以及时间最少等)来得到两地之间的铁路乘车方案是旅客选择铁路方式出行需要面临的首要问题。铁路客运换乘网络计算模型是用来优化旅客的中转换乘方案所构造的网络结构。由于信息量或用途的差异,可分别基于铁路网络,列车开行方案,列车运行时刻表三种信息结构来构造计算模型。
铁路网络的计算模型主要以地理信息为基础建立的。将客运站均抽象为一个节点,站节点之间的连接关系是由铁路来决定的。换句话说,如果两站之间存在客运的铁轨,则将在这两个站之间形成一个弧段。显然,这种模型可以用来解决有关里程数方面的问题,由于完全没有涉及车次以及时间,所以不可能给出行车方案。
基于开行方案的换乘网络主要用于优化乘车费用和换乘次数,除了车站节点外,一个车站的每对停靠列车生成一个虚拟点,称为列车停靠点。这样便可以方便地求出换乘最少的路径,但是不能得到对应的换乘时间等具体信息。
基于运行时刻表的换乘网络不仅具有优化乘车费用和换乘次数的功能,还应具有优化换乘时间的功能。目前,基于运行时刻表的模型主要分为两种,时间扩展模型和时间依赖模型。
时间扩展模型以一列车经过车站的到达和出发事件为设置的节点,假如有n趟车经过该车站,将产生2*n个节点。同站内的到达节点和出发节点分别排序,按时间顺序依次相连,同时需要加入换乘边。
时间依赖模型(Time-Dependent Model),最早由Brodal和Jacob在2001年提出,由Pyrga,Schulz,Wagner和Zaroliagis在2004年进行扩展,和时间扩展模型不同的是,节点集中一部分由车站节点构成,每一类列车经过一个车站,也将形成一个节点。弧的权值是在线计算的,依赖于到达该弧的到达时间。2007年,Pyrga,Schulz,Wagner和Zaroliagis将时间依赖模型与时间扩展模型进行了性能方面的比对,得出结论:时间扩展模型的稳定性更好,而时间依赖模性的效率更高。
时间依赖模型,适用于时刻表计算模型的建模。时间依赖模型以时间依赖图为基础,该图是一个二元组G=(V,E)每个节点v∈V代表一个车站或者经过它的类车节点;若两个类车节点A,B之间有基础连接,则它们之间对应一条边e,这条边的权重函数为f(A,B)(t)-t,其中t为从车站A的v节点出发的时刻,而函数f(A,B):T→T满足f(A,B)(t)=t′,t′是从节点v在时刻t出发到达车站B的时刻。对于不同的时刻t,f(A,B)(t)-t的值是可能发生改变的,因此边的权值是需要进行动态计算的,即图中弧段的权值不是一个常数,而是一个与时间有关的函数,在不同的时间下,该函数计算得到的权值一般都是不同的。
目前,基于时间依赖模型的最短路算法较多采用Dijkstra或者其改进搜索方法。非FIFO下的时间依赖模型k短路的研究由于模型本身以及算法效率较低,限制了其在实际工程中的应用。标准图中的k短路径算法进行修改可以较好地应用于FIFO下的时间依赖模型。其中,回溯算法可以较好的解决k短路问题。
中国铁路网络具有特殊性和复杂性,需要对现有技术公开的时间依赖模型以及算法进行改进来实现中国铁路路径行程规划。
发明内容
为了解决现有技术中存在的问题,本发明提供一种基于时间依赖模型的铁路行程路线规划方法及装置。
本发明具体技术方案如下:
本发明提供一种基于时间依赖模型的铁路行程路线规划方法,该方法包括如下步骤:
构建适用于铁路网的时间依赖模型,所述时间依赖模型包括固定换乘时间模型和变化换乘时间模型,所述固定换乘时间模型的数据图G=(V,E),V表示点集合,E表示边集合,点集合表示为V=S∪P∪Q,边集合表示为E=A∪D∪I∪O∪R;所述变化换乘时间模型的数据图G=(V,E),V表示点集合,E表示边集合,点集合表示为V=P,边集合表示为
在时间扩展图上,运行改进的Dijkstra算法进行搜索,获取最优路径。
进一步的改进,所述方法还包括在获取的最优路径基础上,利用回溯算法获取K优路径。
进一步的改进,所述构建适用于铁路网的时间依赖模型还包括:按照行驶线路和车次对列车进行分类。
进一步的改进所述铁路网的固定换乘时间模型构建方法包括如下步骤:
构建组成固定换乘时间模型数据图的点集合V,点集合表示为V=S∪P∪Q;其中,S为所有车站节点组成的集合,对于一系列节点s0,s1,s2,...,sk-1,k>0为一类车从station(s0)出发,然后依次访问station(s1),station(s2),…,station(sk-1)的节点;对于任何一个u∈S,∑u为在station(u)中停车的火车路线集合;Pu代表每一个经过station(u)的p∈∑u的车节点集合,P=∪u∈SPu;Sx代表城市x中拥有的所有可以同城换乘的车站;Q代表所有城市的集合;对于u∈S,代表第i类车在station(u)的类车节点;对于x∈Q,代表第i站在city(x)的车站节点;
构建组成固定换乘时间模型数据图的边集合E,边集合表示为E=A∪D∪I∪O∪R,包含了如下五种类型的边:
station(u)和station(v)是由同一类车访问的节点;是两个相邻的类车节点;e∈R为行车弧段,称e∈A∪D∪I∪O为换乘弧段;
根据点集合和边集合构建数据图,获得适用于铁路网的固定换乘时间模型。
进一步的改进,所述铁路网的变化换乘时间模型构建方法包括如下步骤:
构建组成变化换乘时间模型数据图的点集合V,点集合表示为V=P,对于任何一个城市x∈Q,Sx代表城市x中拥有的所有可以同城换乘的车站;对于任何一个u∈S,∑u为在station(u)中停车的火车路线集合;Pu代表每一个经过station(u)的p∈∑u的节点集合,P=∪u∈SPu;对于u∈S,代表第i类车在station(u)的类车节点;对于x∈Q,代表第i站在city(x)的车站节点;
构建组成变化换乘时间模型数据图的边集合E,边集合表示为包含了如下两种类型的边:
station(u)和station(v)是由同一类车访问的节点,是两个相邻的类车节点;
根据点集合和边集合构建数据图,获得适用于铁路网的变化换乘时间模型。
以上所指铁路网包括中国铁路网。
进一步的改进,所述方法还包括在适用于铁路网的时间依赖模型的基础构建基于时间依赖模型的空铁联运模型和/或空铁地联运模型。
进一步的改进,运行改进的Dijkstra算法采用的数据结构包括Dial桶、N元堆、Fib堆或二元堆。
进一步的改进,所述运行改进的Dijkstra算法获取最优路径包括利用改进的Dijkstra算法获取最早到达路径,具体包括如下步骤:
(1)创建两个表:OPEN和CLOSE,其中,OPEN表保存所有已考察而未删除的节点,CLOSE表中记录已访问过的节点;
(2)把起始点放入OPEN表中等待检查;
(3)从OPEN表中找出到达时间最小的点,找出从这个点出发的所有子节点,把这个点放到CLOSE表中;
(4)遍历考察这个点的子节点,若该子节点在CLOSE表中,则丢弃;否则记录该节点的可行的最早的到达时间,若该子节点已在OPEN表中,到达时间较早则更新权值,否则丢弃,若该子节点不在OPEN表中,则放子节点到OPEN表中;
(5)重复第(3)和第(4)步,直到OPEN表为空,或找到目标点,即获得最早到达路径。
进一步的改进,所述运行改进的Dijkstra算法获取最优路径包括利用改进的Dijkstra算法获取最少换乘路径,具体包括如下步骤:
(1)创建两个表:OPEN和CLOSE,其中OPEN表保存所有已考察而未删除的节点,CLOSE表中记录已访问过的节点;
(2)把起始点放入OPEN表中等待检查;
(3)从OPEN表中找出换乘次数最少的点,找出这个点的所有子节点,把这个点放到CLOSE表中;
(4)遍历考察这个点的子节点,若该子节点在CLOSE表中,则丢弃;否则记录该节点的换乘次数,若该子节点已在OPEN表中,换乘次数较少则更新权值,换乘次数相同但到达时间较早则到达时间权值,否则丢弃,若该子节点不在OPEN表中,则放子节点到OPEN表中;
(5)重复第(3)和第(4)步,直到OPEN表为空,或找到目标点,即获得最少换乘路径。
进一步的改进,所述运行改进的Dijkstra算法获取最优路径包括利用改进的Dijkstra算法获得最短行程时间路径,具体包括如下步骤:
(1)创建两个表:OPEN和CLOSE,其中OPEN表保存所有已考察而未删除的节点,CLOSE表中记录已访问过的节点;
(2)把起始点放入OPEN表中等待检查;
(3)从OPEN表中找出行程时间最小的点,找出这个点的所有子节点,把这个点放到CLOSE表中;
(4)遍历考察这个点的子节点,若该子节点在CLOSE表中,则丢弃;否则记录从起始节点到达该节点为止的行程时间,若该子节点已在OPEN表中,行程时间较小则更新权值,否则丢弃,若该子节点不在OPEN表中,则放子节点到OPEN表中;
(5)重复第(3)和第(4)步,直到OPEN表为空,或找到目标点,即获取最短行程时间路径。
进一步的改进,所述运行改进的Dijkstra算法获取最优路径包括利用改进的Dijkstra算法获取票价最低路径,具体包括如下步骤:
(1)运行K短路的最少换乘算法,求出前K条最短换乘的路径;
(2)计算搜索出的前K条路径的权值;
(3)最小权值的路径即为所求的票价最低路径。
进一步的改进,本发明还提供一种基于时间依赖模型的铁路路径优化装置,其特征在于,所述装置包括:
模型构建组件:所述模型构建组件被配置为构建适用于铁路网的时间依赖模型,所述时间依赖模型包括固定换乘时间模型和变化换乘时间模型,所述固定换乘时间模型的数据图G=(V,E),V表示点集合,E表示边集合,点集合表示为V=S∪P∪Q,边集合表示为E=A∪D∪I∪O∪R;所述变化换乘时间模型的数据图G=(V,E),V表示点集合,E表示边集合,点集合表示为V=P,边集合表示为
搜索组件:所述搜索组件被配置为在时间扩展图上,运行改进的Dijkstra算法进行搜索,获取最优路径。
本发明提供的基于时间依赖模型的铁路行程路线规划方法及装置在考虑同城换乘、结算站、列车开行周期等问题基础上,建立了适合中国铁路网应用需求的铁路路径时间依赖模型,并且基于时间依赖模型的票程规划计算模型,提出了基于改进的Dijkstra算法获取最优路径及基于回溯思想的K优路算法,与现有技术相比,本发明提供的铁路行程路线规划方法效率显著提高。
附图说明
图1为适用于中国铁路网的固定换乘时间模型;
图2为适用于中国铁路网的变化换乘时间模型;
图3为数据结构的效率对比图;
图4为空铁联运的时间依赖模型;
图5为含有大巴的空铁地联运时间依赖模型;
图6为最早到达下的适用于中国铁路网的固定换乘时间模型;
图7为最早到达算法正向标号;
图8为最少换乘下的适用于中国铁路网的固定换乘时间模型;
图9为最少换乘算法正向标号
图10为最短行程时间下的适用于中国铁路网的固定换乘时间模型;
图11为最短行程时间算法正向标号;
图12为最优路径算法效率测试图;
图13为前K优路径算法效率测试图。
附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所描述的步骤。
具体实施方式
由于本发明的方法描述是在计算机系统中实现的,该计算机系统可以设置在服务器或客户端的处理器中。例如本文所述的方法可以实现为能以控制逻辑来执行的软件,其由服务器中的CPU来执行。本文所述的功能可以实现为存储在非暂时性有形计算机可读介质中的程序指令集合。当以这种方式实现时,该计算机程序包括一组指令,当该组指令由计算机运行时其促使计算机执行能实施上述功能的方法。可编程逻辑可以暂时或永久地安装在非暂时性有形计算机可读介质中,例如只读存储器芯片、计算机存储器、磁盘或其他存储介质。除了以软件来实现之外,本文所述的逻辑可以利用分立部件、集成电路、与可编程逻辑设备(诸如,现场可编程门阵列(FPGA)或微处理器)结合使用的可编程逻辑,或者包括它们任意组合的任何其他设备来体现。所有此类实施均落入本发明的范围之内。
本发明一个实施例提供一种基于时间依赖模型的铁路行程路线规划方法,如图1所示,该方法包括如下步骤:
S1:构建适用于中国铁路网的时间依赖模型;
步骤S1具体包括:
S11:对列车进行分类;
步骤S11中,按照行驶线路和车次对列车进行分类。
现有技术公开的分类方法包括按站台、按行车线路和速度等级进行分类。其中,按照站台信息来分类,车站节点不变,车节点将变成站台节点,列车从一个站台行驶到另一个站台将形成一个行车弧,站台和站节点之间将形成换乘弧。但是该分类存在基础数据很难得到的问题。标准时间依赖模型是按行车线路和速度等级进行分类,该分类在处理k短路径问题时比较棘手。每一个车节点可能结合了多辆车次的列车,因此第一短路和第二短路的节点序列完全相同,只是中间选取的子弧段可能不太一样,得到最短路径之后,需要对搜索到的最短路径进行回溯,寻找次短路作为可能的次短路被选,同时,由于在搜索过程中最短路的节点均被标号,且放入CLOSE表中,在搜索次短路径的时候,算法需要考虑错综复杂,基于该种分类方式实现难度较大。
本发明提出了按照行驶线路和车次进行分类的方法。考虑到相同车次的列车不同天开行,行驶线路可能不太一样,故加入了行驶线路一致的要求。按车次进行划分,在搜索次短路径时,节点代表的车次唯一,降低了次短路经算法回溯的难度。同时,采用该种分类,虽然节点规模较上种方式多了10%左右,但是在搜索k短路方面处理简单,效率大大提升。该分类方式的分类标准比按行车线路和速度等级进行分类方法标准更为严格,且对于处理k短路问题十分高效。
此外考虑到铁路中可能存在对开行的列车车次,将按照行驶线路以及对开的列车车次进行分类,在按照行驶线路和车次进行划分的基础上,将相对开的车次(行驶经停站相同,方向相反)进行合并。在搜索算法时,需要保证扩展所在节点相连的其他节点的时候,该节点的前继节点将不会被访问。虽然该分类方式较之前的规模减少了20%左右,扩展节点范围得到一定减少,但是算法中附加处理显著增多。
在中国铁路基础数据下,根据上述几种分类方式的不同,得到的数据图规模见表1。
表1分类方式与节点数
从表中可以看出,就数据规模来讲,正反向线路和车次<按线路和速度等级<按线路和车次,但是就算法复杂度来讲,按线路和车次<按正反向线路和车次<按线路和速度等级。本申请采用的是按线路和车次的分类方式,可以看出该该分类方式测试时间虽然较长,但是稳定性高,且多出的10%左右的节点对效率没有影响。
S12:分别构建适用于中国铁路网的固定换乘时间模型和变化换乘时间模型;
中国铁路基础数据,包括以下三个部分的基础文件:city_bcp,station_bcp,segment_bcp。
其中city_bcp文件保存了中国所有城市的城市码以及城市名称和所属省份,station_bcp文件包含了中国所有客运车站的信息,以及车站所属城市的信息,同时对该车站进行了相应的属性标记,来表示该车站是否可以进行出发以及换乘,segment_bcp文件保存了每一辆车行驶线路的每一个小弧段,具体信息包括:全车次,起始站码,停靠站码,站车次,里程,起始时间,停靠时间;
其中,构建适用于中国铁路网的固定换乘时间模型包括:
S41:构建组成固定换乘时间模型数据图的点集合V;
其中,步骤S41中,构建模型的基础部分数据保存为edge和node两个文件,该文件即由上述的三个文件city_bcp,station_bcp,segment_bcp生成,具体格式如下:
node文件为模型数据图中点的集合,点集合分为三种,分别是城市节点集合,站节点集合和车节点集合,每个点记录包含如下6个信息:节点编号,节点编码(站节点编码为三位字符,城市节点编码为四位数字,车节点编码为三位字符加车类别号的数字),节点名称,所在城市的编码,所在城市的名称,节点属性标号;节点属性标号中,0-2代表车站节点,3代表城市节点,4代表类车节点。对于车站节点的属性标记,0代表普通车站,不能换乘,不能作为它所属城市的出发站或到达站,1代表可以站内换乘的车站,2代表可以城内换乘(站间换乘)的车站,1和2代表的车站均可以作为它所属城市的出发站或到达站;
由此,得出的点集合表示为V=S∪P∪Q;
S为所有车站节点组成的集合,对于一系列节点s0,s1,s2,...,sk-1,k>0为一类车从station(s0)出发,然后依次访问station(s1),station(s2),…,station(sk-1)的节点;
对于任何一个u∈S,∑u为在station(u)中停车的火车路线集合;
Pu代表每一个经过station(u)的p∈∑u的车节点集合,P=∪u∈SPu;
Sx代表城市x中拥有的所有可以同城换乘的车站;
Q代表所有城市的集合;
对于u∈S,代表第i类车在station(u)的类车节点;
对于x∈Q,代表第i站在city(x)的车站节点;
S42:构建组成固定换乘时间模型数据图的边集合E;
edge文件为模型数据图中的边集合,也可称为弧段集合,共分为5种,分别是车节点→车节点,车节点→站节点,站节点→车节点,站节点→城节点,城节点→站节点,每一段弧的记录包含如下10个信息:弧段编号(弧段编号相同的小弧段代表同一类的弧段),起始节点编号,经停节点编号,起始出发时间,经停到达时间,行程时间(同类车下一个弧段的节点出发时间减去本弧段的节点的到达时间),弧段里程,全车次,站车次,弧段属性标号(0-4数字代表了上面的5种类别);
由此得出,边集合表示为E=A∪D∪I∪O∪R,包含了如下五种类型的边:
station(u)和station(v)是由同一类车访问的节点,是两个相邻的类车节点;
e∈R为行车弧段,称e∈A∪D∪I∪O为换乘弧段;
欲使该模型成立,需要满足如下的假设条件:
假设:u和v是S的两个节点,且于是有如果d1,d2是离开节点的两个出发时间,a1,a2是到达的两个到达时间,则有解释为不可能有两辆属于同一类车在相邻两站之间发生超车的现象。
构建的适用于中国铁路网的固定换乘时间模型如图1所示,图中,第一个大圈为同属于一个城市的节点集合,第二个圈为属于同一个城市的节点集合,图中车站A和车站B同属于城市节点A,车站C所在城市仅有此一个换乘站,因此不与城市节点相连,对于车站C来说,不用建立属于C的城市节点。且换乘时间设置如下:将下车弧(即车节点→站节点)的权值设为常数,将上车弧的权值设为0,同城换乘时,将进城弧的权值设为常数,出城弧的权值设为0。
S43:根据点集合和边集合构建数据图;
步骤S43中,读取node和edge文件,生成Map地图,采用邻接表来存储数据图,其中每两个节点之间的弧段由多个子弧段组成,每个子弧段标记着不同的出发时间和到达时间,按照出发时间从小到大(也就是到达时间从小到大)对同属于一个弧段类别的子弧段进行排序。
构建数据图的时候,由于需要解决同城换乘的问题,引入了城市节点,对于可以同城换乘的情况,建立模型时将站节点和城市节点相连,也就是站节点属性为2的话,将加入站节点→城节点,城节点→站节点的边。对于站节点属性为1的情况,加入车节点→站节点,站节点→车节点即可。对于站节点为不可换乘车站的情况,将仅加入站节点→车节点的边,而没有加入车节点→站节点的边,这样就避免了算法在搜索过程中在该站换乘的情况,同时再对终点判断处理的时候,以车节点所属的站信息来判断,就可以避免终点站不能站内换乘,而没有车节点→站节点的边,导致没有结果的情况。
其中,构建适用于中国铁路网的变化换乘时间模型包括:
S31:构建组成变化换乘时间模型数据图的点集合V,其中V=P;
对于任何一个城市x∈Q,Sx代表城市x中拥有的所有可以同城换乘的车站;
对于任何一个u∈S,∑u为在station(u)中停车的火车路线集合;
Pu代表每一个经过station(u)的p∈∑u的节点集合,P=∪u∈SPu;
对于u∈S,代表第i类车在station(u)的类车节点;
对于x∈Q,代表第i站在city(x)的车站节点;
S32:构建组成变化换乘时间模型数据图的边集合E,其中,包含了如下两种类型的边:
station(u)和station(v)是由同一类车访问的节点,是两个相邻的类车节点。欲使该模型成立,需要满足假设一和假设二的条件:
假设一:u和v是S的两个节点,且于是有如果d1,d2是离开节点的两个出发时间,a1,a2是到达的两个到达时间,则有 解释为不可能有两辆属于同一类车在相邻两站之间发生超车的现象。
假设二:对于任意一个车站u∈S和存在其中x∈V,记是到达的最小时间间隔,τu是在station(u)换乘时所需要的最大换乘时间。同时必须保证下面的假设成立:为了保证在换乘时间不相同时,不会出现后到车站先出车站的情况。
根据以上模型,有如下定理:如果出发时间的时间区域的范围为δ,同一类车的节点出发的最小间隔时间为τ,满足δ<τ,则对于到达节点的两个总行程x1和x2,若x1≤x2,则有
根据上述定理,若车节点间所有子弧段的权值满足t2-t1≥τ时,有 代表t时刻从节点出发,到达节点后从节点出发的时刻,则可以得到如下推论:
推论:若上述定理的前提条件成立,且有车节点间所有子弧段的权值满足t2-t1≥τ时,有成立,则可得对于到达节点的两个总行程x1和x2,若x1≤x2,则有其中表示到达节点的总行程为x时,到节点的总行程。于是,可以得到一个FIFO网络。
对推论给予证明:根据定理,假设x1≤x2,则有由于可得:
采用反证法,假设由于x2-x1≥0, 可得故有于是根据推论中的假设有 故
和假设矛盾,所以假设不成立,推论得证。
S33:根据点集合和边集合构建数据图。
读取node和edge文件,生成Map地图,采用邻接表来存储数据图,其中每两个节点之间的弧段由多个子弧段组成,每个子弧段标记着不同的出发时间和到达时间,按照出发时间从小到大(也就是到达时间从小到大)对同属于一个弧段类别的子弧段进行排序。
构建的适用于中国铁路网的变化换乘时间模型如图2所示,该模型取消了城市和车站节点,除了将站节点间的车节点两两相连以外,将同城可以换乘的站节点中的车节点也两两相连。圈内为站节点(不含同城换乘的站节点),或者城节点(含有多个换乘站的城市节点)。
S2:基于时间依赖模型运行改进的Dijkstra算法获取最优路径。
步骤S2中,每次搜索从节点A出发到节点B的弧段时,寻找可行的优化子弧段作为连接弧段进行搜索,最终利用改进的Dijkstra算法得到最优路径。
传统的Dijkstra算法时间复杂度高,本申请采用Dial桶的数据结构。
算法效率比较如下:
在中国铁路网络的基础上,将城市划分为大小两类,大城市代表拥有同城换乘站的城市,其余为小城市。分别选取大城市→大城市,大城市→小城市,小城市→大城市,小城市→小城市各500组随机点对,作为实验用例,来比对每一个数据结构的性能。测试结果如下(时间单位为微秒):
表2数据结构的效率对比
各数据结构算法的复杂度见表3。
表3数据结构算法复杂度
从表中可以发现,在同样模型和同样输入的情况下,Dial桶结构效率最佳,在堆结构中,二元堆,三元堆,十元堆的效率相差不多,百元堆的效率相比降低明显,Fib堆好于百元堆;取上述的大城市到大城市的500组测试时间结果,见图3。
基于时间依赖模型运行改进的Dijkstra算法获取最优路径包括:
1.根据最早到达行程规划算法获取最早到达路径
基于适用于中国铁路网的固定换乘时间模型。
最早到达行程规划算法需要找出从节点A出发到达子节点B的出发时间最早的可行子弧段。如果A属于站节点,B属于城节点,则连接AB弧段的出发到达时间是没有意义的,算法需要的是它们的差值,即为同城换乘的时间。则从A到达B的时间就是到达A的时间加上同城换乘的时间。
改进的Dijkstra算法主要过程如下:
(1)创建两个表:OPEN和CLOSE,其中,OPEN表保存所有已考察而未删除的节点,CLOSE表中记录已访问过的节点;
(2)把起始点放入OPEN表中等待检查;
(3)从OPEN表中找出到达时间最小的点,找出从这个点出发的所有子节点,把这个点放到CLOSE表中;
(4)遍历考察这个点的子节点,若该子节点在CLOSE表中,则丢弃;否则记录该节点的可行的最早的到达时间,若该子节点已在OPEN表中,到达时间较早则更新权值,否则丢弃,若该子节点不在OPEN表中,则放子节点到OPEN表中;
(5)重复第(3)和第(4)步,直到OPEN表为空,或找到目标点,即获得最早到达路径。
2.换乘最少行程规划算法获取最少换乘路径
基于适用于中国铁路网的固定换乘时间模型。
最少换乘与最早到达算法首先需要修改数据图上边的权值,将车节点到站节点的换乘边权值赋为1,其余边权值赋为0。如果在从车节点A到车节点B再到车节点C时,如果A→B所乘的车和B→C所乘的车不相同的话,在车节点内部便存在换乘的可能,算法结果便可能出现错误。实际上,由于对于同一列车行驶线路和列车等级相同时,这种情况出现的概率是很小的,但不是没有可能,所以按行驶线路和车次进行分类解决了上述问题。同时节点需要维护换乘次数的权值作为主权值之外,还需维护到达时间权值作为辅权值。主权值相同时,辅权值大的总权值较大。
改进的Dijkstra算法主要过程如下:
(1)创建两个表:OPEN和CLOSE,其中OPEN表保存所有已考察而未删除的节点,CLOSE表中记录已访问过的节点;
(2)把起始点放入OPEN表中等待检查;
(3)从OPEN表中找出换乘次数最少,找出这个点的所有子节点,把这个点放到CLOSE表中;
(4)遍历考察这个点的子节点,若该子节点在CLOSE表中,则丢弃;否则记录该节点的换乘次数,若该子节点已在OPEN表中,换乘次数较少则更新权值,换乘次数相同但到达时间较早则到达时间权值,否则丢弃,若该子节点不在OPEN表中,则放子节点到OPEN表中;
(5)重复第(3)和第(4)步,直到OPEN表为空,或找到目标点,即获得最少换乘路径。
3.乘车时间最短行程时间规划算法获取最短行程时间路径
对于最短行程时间规划算法,在适用于中国铁路网的固定换乘时间模型下,改进的Dijkstra算法不再成立,需要采用适用于中国铁路网的变化换乘时间模型来求解。
在适用于中国铁路网的变化换乘时间模型下,对Dijkstra算法进行改进,每个节点标记的时间不是抵达该节点的时间,而是即将离开该节点的时间。同时,计算节点权值的时候,记录的消耗值也是计算即将离开节点的时间和出发时间的差值。故在搜索到终点时,记录的消耗时间需要加以修正,应为抵达该终止节点的时间和出发时间的差值。
改进的Dijkstra算法的主要过程为:
(1)创建两个表:OPEN和CLOSE,其中OPEN表保存所有已考察而未删除的节点,CLOSE表中记录已访问过的节点;
(2)把起始点放入OPEN表中等待检查;
(3)从OPEN表中找出行程时间最小的点,找出这个点的所有子节点,把这个点放到CLOSE表中;
(4)遍历考察这个点的子节点,若该子节点在CLOSE表中,则丢弃;否则记录从起始节点到达该节点为止的行程时间,若该子节点已在OPEN表中,行程时间较小则更新权值,否则丢弃,若该子节点不在OPEN表中,则放子节点到OPEN表中;
(5)重复第(3)和第(4)步,直到OPEN表为空,或找到目标点,即获取最短行程时间路径。
4.票价最低行程规划算法获取票价最低路径
对于旅客提出的票价最低的查询需求,给出的是基于最少换乘条件下的最低票价的策略。由于换乘系数越多的车次,价格肯定比同等级的直达车贵很多,并且在购票难度、换乘难度、方案实用性方面,优势都已不再明显,因此基于最少换乘下的票价最低策略是合理且实用的。欲得出票价最低的策略,先采用最少换乘算法将前k条最少换乘的策略求出(k大于等于1且为整数),然后调用票价引擎得到每一条路线的票价权值,最后进行计算,按票价筛选出票价最低的策略。关于基本的票价查询算法,简要介绍如下:
根据列车号,可以查询到特殊计价线的线路编号和计价方式,以及在该种特殊计价段下的里程数。将不同的计价线路以及线路编号和计价方式命名为一个新的函数,然后调用相应的函数进行票价计算。比如,京津城际上运行的列车,它的特殊计价线路只有一个,特殊计价线的线路编号为100,计价方式为7,因此实现了JingJin_100_7函数,用price_calcu来给相应路段的列车计算票价时,将调用该函数,进行票价的计算。
以上为按照计价线路来进行票价的计算,最新加入的高铁以及动车的票价,很难寻找出票价计算的公式,故对一部分线路现采取查表计算的方式。查表计算对上面的函数没有任何影响,只是将不同线路编号和计价方式的票价计算函数的实现方式做了一些调整,将原来的公式计算改为了查表计算。为了规范票价计算,对于查表类票价计算进行规范。统一使用“线名+线号+计价方式”作为命名规范,文件格式为.csv文件。例如京沪高铁上的高速列车,其命名为“JingHu_299_7.csv”。
对于票价计算,调用函数为ticket_price,该函数接受两个参数,第一个参数为请求的字符串,第二个参数为传入的JSON包,该函数调用price_calcu函数将返回的结果封装为price字段的JSON包放入传入的JSON包中返回给用户。请求计算票价的字符串的格式如下:列车全车次|起始站编码|终止站编码|。ticket_price函数先对传进来的字符串进行解析,获得车次,起始站,终点站的信息,然后调用price_calcu函数进行票价计算,将结果打包,放入传入的JSON包中返回。
由此得到的票价最低算法如下:
(1)运行k短路的最少换乘算法,求出前k条最短换乘的路径;
(2)计算搜索出的前k条路径的权值;
(3)最小权值的路径即为所求的票价最低路径。
本发明另一个实施例提供的基于时间依赖模型的铁路行程路线规划方法中,为了提高最短路径搜索效率采用A*算法思想对Dijkstra算法进行加速。
A*(A-Star)算法是一种静态路网中求解最短路的有效方法。
A*算法在计算权值时考虑当前节点到目的节点的估值h(n),然后利用现在的实际权值g(n)计算,得到估价权值f(n)=g(n)+h(n),用新的权值f(n)来进行排序。保证找到最短路径(最优解的)条件,关键在于估价函数h(n)的选取:估价值h(n)<=n到目标节点的距离实际值,这种情况下,搜索的点数多,搜索范围大,效率较低,但能得到最优解。如果估价值>实际值,搜索的点数少,搜索范围小,效率高,但不能保证得到最优解。由于对结果要求的精确性,同时需要k短路径的求取,因此必须保证估价值h(n)<=n到目标节点的距离实际值。关键问题就是如何得到A*的估价数据表格。
采用FLOYD算法,进行两车站点对之间的无换乘时间的计算。把数据图用邻接矩阵ADiag表示出来,里面仅存在车站的节点,如果从Vi到Vj有车可达,则ADiag[i,j]=d,d表示该路的长度;否则ADiag[i,j]=INF无穷大。把各个顶点插入数据图中,比较插点后的距离与原来的距离,同时考虑是否更新ADiag[i,j],ADiag[i,j]取min(ADiag[i,j],ADiag[i,k]+ADiag[k,j]),于是在ADiag中就包含了两点之间最短路的信息。对i,j,k分别进行循环遍历,不断试图更新ADiag[i,j]值,直到对于所有的i和j,ADiag[i,j]的值不再改变为止。于是,得到了每一点到另一点的最短路径值的下界,满足估价值h(n)<=n到目标节点的距离实际值的要求。
在实际使用中,先根据station_bcp提供的客运车站信息,得到所有的车站信息,假设车站数为N,先构建出N*N的二维数据表格(邻接矩阵)ADiag。利用segment中提供的列车开行信息,更新ADiag中的值,同时将可以同城换乘的车站也要考虑,然后利用FLOYD算法,得到车站到车站的A*数据表。同时,还需考虑到,终点站为城市节点而不是车节点的情况,这样在处理时需要搜索车站到城市的估价距离。需要将得到的车站到车站的A*数据表结果进行合并,将同一个城市的可作为出发或到达车站的节点进行合并,变为一个城市节点,数值取原数据图中所属站的最小值即可。
本发明第三个实施例提供的基于时间依赖模型的铁路行程路线规划方法在适用于中国铁路网的时间依赖模型的基础上构建了适用于中国铁路网的空铁联运模型。
飞机和铁路都是基于时刻表的,所以单纯的航空规划,可以将飞机当做列车,按照中国铁路网的基本模型来对航空进行建模,这样可以解决单纯的航空规划上的几类基本问题(最早到达、最少换乘、最短行程时间等);而且,由于铁路模型和航空模型的一致性,使得可以将模型合并起来解决空铁联运问题。
空铁联运模型分为两层;第一层为火车;第二层为飞机;层的内部都是时间依赖模型;层与层之间以同城换乘的形式来进行连通。即:火车站通过同城换乘去飞机场;并且增加假设:所有的飞机场都是“大站”,能够作为到达站以及进行同城换乘。
因此,单纯的铁路模型和单纯的航空模型就被合并成为了一个空铁联运的时间依赖模型;当处理铁路规划的时候,仅仅在第一层中进行搜索;当处理航空规划的时候仅仅在第二层中搜索;当处理空铁联运的时候,在两层中都进行搜索;得到的时间依赖模型下的模型如图4所示。
大圈代表一个城市A,中心的标有A的节点代表该城市节点,其余三个小圈代表的是车站或者机场节点,这里假设车站A和车站B为车站节点,C为机场节点。换乘弧和同城换乘弧的引入如图所示。
适用于中国铁路网的空铁联运的时间依赖模型如下:对于任何一个u∈S,令集合∑u为在station(u)中停止的火车路线或者航班集合;Pu代表每一个经过station(u)的p∈∑u的节点集合,同时,令P=Uu∈SPu;Sx代表城市x中拥有的所有可以同城换乘的机场或车站,Q代表所有城市的集合;于是节点的集合V可以表示为V=SUPUQ,对于u∈S,令代表第i类车在station(u)的类车节点或者是航班节点;对于x∈Q,令代表第i站在city(x)的车站节点;以上的station(u)均指的是机场或者是火车站。
对于图G中边的集合E=AUDUIUOUR,包含了如下五种类型的边:
station(u)和station(v)是由同一类车或者航班访问的节点,是两个相邻的类车节点或者是航班节点。
称e∈R为行车弧段,称e∈AUDUIUO为换乘弧段;欲使该模型成立,需要满足固定换乘时间模型的假设一的条件。
可以发现,将航班信息当成列车信息来处理后,在形式上和之前的模型没有任何的区别,在搜索中,只需要判断站节点的属性,比如是飞机或者火车,便可以用于求取列车规划,航空规划或者混合规划。
本发明第四个实施例提供的基于时间依赖模型的铁路行程路线规划方法在适用于中国铁路网的时间依赖模型的基础上构建了适用于中国铁路网的空铁地联运模型。
考虑到大巴一定是每天都开行的,而且由于大巴的不确定性,也就是说大巴的出发时间、行走路线都是可以在一定范围内变化的,所以将大巴建模成时间图也是不合适的。因为虽然大巴也是有时刻表,但时刻表却是没有约束力的。
考虑到大巴的不确定性,并且根据收集到的原始的数据,将所有的大巴设定为直达的,而且是每天开行,开行时间也都是固定的。对于单纯的大巴规划,本发明综合线网模型和时间依赖模型对大巴进行建模。
大巴模型中,图中每一个节点代表了一个站。当两站之间有一趟大巴经过的时候,就在节点之间增加一条边。与线网模型不同,大巴模型保留了所有大巴的信息,因为节点与节点之间存在有多条边。与时间依赖模型不同的是,大巴模型中没有车节点,边也是权值固定的,没有进行压缩。
大巴模型实际上就是一个没有车节点的时间依赖模型,考虑到大巴模型需要面对的搜索问题比较简单,所以并没有把途径一样的车进行合并,而是为每一趟车单独保留了一条边。
进而获得的含有大巴的空铁地联运时间依赖模型如图5所示。
可以发现,将站节点和站节点之间直接相连,代表了从站A抵达站B和站B抵达站A的大巴线路;在搜索中需要对边的属性进行判断,区分其为大巴还是火车/航班的行车弧段。
由此,基于适用于中国铁路网的固定换乘时间下的解决空铁地联运的时间依赖模型如下:对于任何一个u∈S,令集合∑u为在station(u)中停止的火车路线或者航班集合;Pu代表每一个经过station(u)的p∈∑u的节点集合,同时,令P=Uu∈SPu;Sx代表城市x中拥有的所有可以同城换乘的机场或车站,Q代表所有城市的集合;于是节点的集合V可以表示为V=SUPUQ,对于u∈S,令代表第i类车在station(u)的类车节点或者是航班节点;对于x∈Q,令代表第i站在city(x)的车站节点;以上的station(u)均指的是机场或者是火车站;不同车站间的表示大巴的换乘弧段;用集合T来表示。
对于数据图G中边的集合E=AUDUIUOUTUR,包含了如下六种类型的边:
T=Uu,v∈S,u≠v{u,v}
station(u)和station(v)是由同一类车或者航班访问的节点,是两个相邻的类车节点或者是航班节点。
称e∈RUT为行车弧段,称e∈AUDUIUO为换乘弧段。欲使该模型成立,需要满足适用于中国铁路网的固定换乘时间模型的假设条件。
由于模型上并没有进行压缩,所以如果直接以时间依赖模型的算法来搜索最短路径问题,时间效率可能会比较低。但,大巴具有不确定性,而且大巴在路途上消耗的时间很长,条件也不是很好,大部分人只会愿意乘坐直达的大巴,根本不会接受大巴换乘的情况。所以,大巴规划中,不会面对最少换乘、最短行程时间等问题,唯一会遇到的问题是:从站A去站B是否有直达车辆。面对这个问题,本发明提供的模型显然是简单且有效的,只需要遍历从站A出发的所有边即可。
本发明第五个实施例提供的基于时间依赖模型的铁路行程路线规划方法在最短路径算法的基础上基于回溯算法思想获取K优路径,具体包括如下:
1.k最早达到行程规划算法
求解最早到达K优路径问题是在最早到达最短路径算法的基础上,对其进行修改:首先,在最早到达算法运行的过程中,算法不记录每一个节点的前继,只记录到当前节点的时间,同时将主循环中搜索到终止节点的循环跳出删除,使得算法第一遍搜索全图,得到起始节点到所有节点的最早到达时间。正向搜索完毕后,进行反向搜索,将回滚的路径保留,每次扩展到达时间最早的路径,最终得到前k条最短路径停止。
k最早到达行程规划算法主要流程为:
(1)运行最早到达算法得到起始点到所有节点的最早到达时间;
(2)创建路径队列LIST,初始化I(已搜索得到的路径数)为0;
(3)将可抵达终止节点的节点加入路径队列LIST中,记录的权值为到达终点的时间;
(4)从LIST队列中取出到达终止节点的到达时间最早的路径,并将该路径删除;
(5)如果该路径的起始点为旅客需求的起始点,则该路径为解,I加1;否则找到可到达该路径的节点(节点需要保证由该节点出发到达(4)中路径的到达时间小于(4)中路径的起点出发时间),对路径进行拓展,并将拓展路径加入LIST中;
(6)重复步骤(4)和(5),直至I大于k或LIST为空。
通过如下算法实例来表示算法的流程:
建立如图6所示的适用于中国铁路网的固定换乘时间模型,存在A,B,D共三个车站节点,8趟直达车,按照开行车次共分为4类,故存在8个车节点,记为a至h。弧段上的数字代表他们的运行时间(发车时间—到达时间)。每个站内的换乘时间均设置为1小时,因此上车弧权值为0,下车弧权值为1。
搜索从A站在时间段[0,24]内出发,前3条最早到达节点D的行程方案。首先,对全图进行节点标号,记录下最早达到的时间,得到的全标号如图7所示。
开始进行回溯,将回溯的列表显示如下,回溯中需要记录路径的到达终点的时间,此外还需记录当前起始节点的发车时间,初始的回溯路径表如下:
表4初始的回溯路径表
而后进行回溯算法初始化,需找下一个弧段到达时间小于等于回溯路径起点发车时间的弧段,进行扩展,同时继承到达终点的时间,考虑是否修正到达终点的时间,得到的回溯路径列表如下:
表5考虑是否修正到达终点的时间得到的回溯路径表
随后,运行回溯算法,扩展到达权值最小的路径,此处为到达终点时间最小的路径,记录更新起点发车时间,得到的回溯路径如下:
表6记录更新起点发车时间得到的回溯路径
继续回溯算法,得到新的回溯路径表:
表7新的回溯路径表
继续最短路径表,可以发现,此时第一条路径的起点存在两个前继,但是有一个的起点发车时间不满足要求,所以路径只能回溯出一条,得到的新的表如下:
表8回溯出一条路径得到的新表
此后一直运行该算法,可以得到最早到达路径,列表如下:
表9最早达到路径表
最早到达路径已得到,为A→a→b→B→g→h→D,需要寻找其余的最早到达路径,先将得到的最早到达路径取出,发现表格中还存在其余的一条记录,它的到达终点时间稍晚,扩展该路径,得到下表:
表10最早到达扩展路径表
此时,该路径可以分裂为两条,得到新的回溯结果列表如下:
表11分裂后得到的新的回溯路径表
继续扩展路径,得到新的一条最短路径A→a→b→B→c→d→D,此时回溯结果表如下:
表12回溯结果表
将得到的最短路径取出,继续运行算法,得到最后一条结果为A→e→f→B→c→d→D,表格如下:
表13最后一条最短路径
至此,算法运行完毕,得到3条最早到达路径,其权值和节点序列分别为:
(1)18:A→a→b→B→g→h→D;
(2)19:A→a→b→B→c→d→D;
(3)19:A→e→f→B→c→d→D。
2.k换乘最少行程规划算法
k换乘最少行程规划算法主要流程为:
(1)运行最少换乘算法得到起始点到所有节点的最少换乘次数;
(2)创建路径队列LIST,初始化I(已搜索得到的路径数)为0;
(3)将可抵达终止节点的节点加入路径队列LIST中,记录的权值为换乘次数;
(4)从LIST队列中取出到达终止节点的换乘次数最少的路径,并将该路径删除;
(5)如果该路径的起始点为旅客需求的起始点,则该路径为解,I加1;否则找到可到达该路径的节点(节点需要保证由该节点出发到达(4)中路径的到达时间小于(4)中路径的起点出发时间),对路径进行拓展,并将拓展路径加入LIST中;
(6)重复步骤(4)和(5),直至I大于k或LIST为空。
通过如下算法实例来表示算法的流程:
建立如图8所示的适用于中国铁路网的固定换乘时间模型,该模型和最早到达举的例子基本相同,只是新加入了一个由A直达D的列车,其余同最早到达。先进行正向算法,对全局进行标号,此时标号分为主标号和辅标号,主标号为换乘次数,辅标号为到达时间,得到的标号如图9所示。
跟k最早到达行程规划算法相同,先进行初始化,将和终止节点相连的节点的路径主权值(换乘次数),起点的发车时间,以及路径列表如下:
表14初始的回溯路径表
而后,进行回溯路径扩展,和最早到达相同,只需扩展前一路径的到达时间小于或者等于路径起点发车时间的弧段,保证算法的正确性,进行回溯算法,得到第一条最少换乘路径为A→i→j→k→D,此时回溯结果表为:
表15第一次回溯结果表
而后,将第一条记录取出,继续算法,可以得到新的最少换乘路径为A→a→b→B→g→h→D,得到的回溯表如下:
表16第二次回溯结果表
此后,继续算法,还可以得到新的两条最少换乘路径,此处没有列出。
可以发现,最少换乘算法和最早到达算法,正向搜索也需要记录到达每个节点的时间,同时得记录换乘的次数,反向回溯时利用正向标记的时间判断弧段是否可行,利用正向标记的换乘次数记录来计算该回溯路径的权值。优化的方式和最早到达基本相同,从正向搜索的停止条件以及反向回溯LIST表的长度方面入手。
3.k乘车时间最短行程时间规划算法
k乘车时间最短行程时间规划算法主要流程为:
(1)运行最短行程时间算法得到起始点到所有节点的最短行程时间;
(2)创建路径队列LIST,初始化I(已搜索得到的路径数)为0;
(3)将可抵达终止节点的节点加入路径队列LIST中,记录的权值为行程时间;
(4)从LIST队列中取出到达终止节点的行程时间最短的路径,并将该路径删除;
(5)如果该路径的起始点为旅客需求的起始点,则该路径为解,I加1;否则找到可到达该路径的节点(节点需要保证由该节点出发到达(4)中路径的到达时间小于(4)中路径的起点出发时间),对路径进行拓展,并将拓展路径加入LIST中;
(6)重复步骤(4)和(5),直至I大于k或LIST为空。
通过如下算法实例来表示算法的流程:
建立如图10所示的适用于中国铁路网的变化换乘时间模型,该模型取消了站节点,站内的换乘需要将站内的所有车节点依次相连。在数据图中存在的站节点,已经失去了换乘的作用,为了方便表示,该节点仅作为出发和到达节点使用。
建立的简化模型存在三趟车,分别以a→b,c→d,e→f→g表示,其中b、c和f均在一个车站B中,因此需要将这些同个站内的车节点依次相连来表示换乘关系。根据可变换乘时间模型的要求,弧段的权值设置为(出发时间–下一个节点对应的出发时间),而不是(出发时间–到达时间)。
在该图上,进行数据图的最短行程时间的标号,需要记录最短行程时间,同时辅助记录最早到达时间来需找下一段的可行弧,确定下一段弧的行程,得到的标号的数据图如图11所示。
跟上述算法相同,先进行初始化,将和终止节点相连的节点的路径权值(行程时间),起点的发车时间,以及路径列表如下:
表17初始化的路径
我们对第一条权值最小的路径进行回溯,得到的新的回溯结果列表为:
表18回溯结果列表
此后,进行下一步回溯,需要注意的是,此时路径起始节点f的前继有两个,并且它们的到达时间均小于或等于起点的发车时间,因此均是合理的解,此时该路径分裂为两条路径,需要注意的是,此时权值(行程时间)需要按照公式进行修正:将路径扩展出A→B,权值为:Len+正向节点A的行程时间记录+A→B边的权值-正向节点B的行程时间记录;对于b→f→g→D路径,权值修改为:14.9+1.9+(8.3-4)-5.2=15.9,但是对于e→f→g→D路径,权值修改为:14.9+0+(8.3-3.1)-5.2=14.9不变。因此,得到的路径表如下:
表19权值修改后的路径表
此后继续回溯,寻找到最短路径A→a→b→f→g→D,此时的回溯表为:
表20最短路径的回溯表
将结果取出,对新的回溯表的最短路径进行扩展,得到回溯表为:
表21最短路径扩展回溯表
继续回溯,得到的新的最短路径为A→a→b→c→d→D,此时的回溯表为:
表22新的最短路径回溯表
取出最短路,进行回溯,得到的回溯表如下:
表23最短路径回溯表
此时,对节点c,存在两个合法前继,均需要扩展,得到新的回溯表为:
表24节点扩展后的回溯表
继续扩展当前最短路,由于f节点存在两个合法前继,因此需要扩展该路径,得到的回溯表如下:
表25f节点扩展后的回溯表
此后的过程不再赘述,可以依次搜索得到新的三条最短路。至此,所有的k最短行程时间路径已经找出,将权值和节点序列列写如下:
(1)14.9:A→a→b→f→g→D
(2)15.9:A→a→b→c→d→D
(3)15.9:A→e→f→c→d→D
(4)16.9:A→a→b→f→c→d→D
(5)16.9:A→a→b→c→d→D
根据结果可以发现,第四和第五在物理意义上是一样的,只是换乘时多引入了一个换乘节点,因此需要在搜索算法中加一个换乘边的约束即可避免这种情况。4.票价最低行程规划算法
对于旅客提出的票价最低的查询需求,给出的是基于最少换乘条件下的最低票价的策略。由于换乘系数越多的车次,价格肯定比同等级的直达车贵很多,并且在购票难度、换乘难度、方案实用性方面,优势都已不再明显,因此基于最少换乘下的票价最低策略是合理且实用的。欲得出k票价最低的策略,先采用最少换乘算法将前k’条最少换乘的策略求出(k’大于等于k且为整数),然后调用票价引擎得到每一条路线的票价权值,最后进行计算,按票价筛选出票价最低的策略。关于基本的票价查询算法,可以参考票价最低算法的介绍。
得到的票价最低算法如下:
(1)运行k短路的最少换乘算法,求出前k’条最短换乘的路径
(2)计算搜索出的前k’条路径的权值
(3)前k条较小权值的路径即为所求。
以上4种算法为并列的算法,写到一个实施例中方便比对。
本发明实施例6对最优路径搜索效率进行了比较,采用Dial桶结构,进行了最早到达,最少换乘,票价最低和最短行程时间四种算法的效率测试,得到的测试结果如下:(时间单位:微秒)
表26最优路径算法效率测试
对上述结果进行绘图,见图12(图12为将每个目标下的四类测试数据合并处理):
从图中可以发现,最短行程时间算法和其他算法相比较慢,这与数据图的规模有关。由于模型的改动,将造成模型边数的急剧增加,导致算法的效率大大降低。假设某个大城市拥有5个同城换乘的车站,每个车站每天经行的车次为100趟(这对于北京等大城市是很容易满足的),则仅仅对于该站来讲,拥有500个可以换乘的节点,增加的弧段数为500*500即25万条弧段,而固定换乘时间模型,总的弧段数仅为10万条,可想而知,大城市节点对于算法的影响是极其巨大的。
将本申请的实验结果和现有结果(德国部分地区铁路的信息)进行了对比,数据图的规模对比如下:
表27数据图规模对比
将实验的测试结果比较如下(单位:毫秒):
表28平均测试时间对比
与现有测试环境对比,CPU主频方面的差距不到一倍,内存差距较大,但对测试效率影响不大。故得出,本发明提供的方法效率比原始模型高很多;除了模型方面的修改之外,搜索方法方面,也进行了优化,将行车边的查找方式改为了索引结构,相比现有方法的二分查找方式,加速效果十分明显。
本发明第七个实施例对K优路径的算法效率进行比较,测试k=15的k短路算法,基于最早到达,最少换乘,票价最低以及最短行程时间四种算法,测试结果如下:(时间单位:微秒)。
表29前K优路径算法效率测试
采用MATLAB对上述结果进行绘图,结果见图13(将每个目标下的四类测试数据合并处理),从图中可以发现,在采用了多种优化方式下,算法的效率达到了每条结果1毫秒左右的查询速度;最少换乘实际应用中采用了Pareto来实现结果的约束,同时对效率影响很低;票价最低主要就是搜索最少换乘的数目(此处是前50条),然后调用票价引擎票价计算,最后返回15个票价最低的结果,可以基本保证返回的是最优解。
Claims (8)
1.一种基于时间依赖模型的铁路行程路线规划方法,其特征在于,所述方法包括如下步骤:
构建适用于铁路网的时间依赖模型,所述时间依赖模型包括固定换乘时间模型和变化换乘时间模型,所述固定换乘时间模型的数据图G=(V,E),V表示点集合,E表示边集合,点集合表示为V=S∪P∪Q,边集合表示为E=A∪D∪I∪O∪R;所述变化换乘时间模型的数据图G=(V,E),V表示点集合,E表示边集合,点集合表示为V=P,边集合表示为
在时间扩展图上,运行改进的Dijkstra算法进行搜索,获取最优路径。
2.如权利要求1所述的基于时间依赖模型的铁路行程路线规划方法,其特征在于,所述方法还包括在获取的最优路径基础上,利用回溯算法获取K优路径。
3.如权利要求1所述的基于时间依赖模型的铁路行程路线规划方法,其特征在于,所述构建适用于铁路网的时间依赖模型还包括:按照行驶线路和车次对列车进行分类。
4.如权利要求2所述的基于时间依赖模型的铁路行程路线规划方法,其特征在于,所述铁路网的固定换乘时间模型构建方法包括如下步骤:
构建组成固定换乘时间模型数据图的点集合V,点集合表示为V=S∪P∪Q;其中,S为所有车站节点组成的集合,对于一系列节点s0,s1,s2,...,sk-1,k>0为一类车从station(s0)出发,然后依次访问station(s1),station(s2),…,station(sk-1)的节点;对于任何一个u∈S,∑u为在station(u)中停车的火车路线集合;Pu代表每一个经过station(u)的p∈∑u的车节点集合,P=∪u∈SPu;Sx代表城市x中拥有的所有可以同城换乘的车站;Q代表所有城市的集合;对于u∈S,代表第i类车在station(u)的类车节点;对于x∈Q,代表第i站在city(x)的车站节点;
构建组成固定换乘时间模型数据图的边集合E,边集合表示为E=A∪D∪I∪O∪R,包含了如下五种类型的边:
station(u)和station(v)是由同一类车访问的节点;是两个相邻的类车节点;e∈R为行车弧段,称e∈A∪D∪I∪O为换乘弧段;
根据点集合和边集合构建数据图,获得适用于铁路网的固定换乘时间模型。
5.如权利要求2所述的基于时间依赖模型的铁路行程路线规划方法,其特征在于,所述铁路网的变化换乘时间模型构建方法包括如下步骤:
构建组成变化换乘时间模型数据图的点集合V,点集合表示为V=P,对于任何一个城市x∈Q,Sx代表城市x中拥有的所有可以同城换乘的车站;对于任何一个u∈S,∑u为在station(u)中停车的火车路线集合;Pu代表每一个经过station(u)的p∈∑u的节点集合,P=∪u∈ SPu;对于u∈S,代表第i类车在station(u)的类车节点;对于x∈Q,代表第i站在city(x)的车站节点;
构建组成变化换乘时间模型数据图的边集合E,边集合表示为 包含了如下两种类型的边:
station(u)和station(v)是由同一类车访问的节点,是两个相邻的类车节点;
根据点集合和边集合构建数据图,获得适用于铁路网的变化换乘时间模型。
6.如权利要求1所述的基于时间依赖模型的铁路行程路线规划方法,其特征在于,所述方法还包括在适用于铁路网的时间依赖模型的基础上构建基于时间依赖模型的空铁联运模型和/或空铁地联运模型。
7.如权利要求1所述的基于时间依赖模型的铁路行程路线规划方法,其特征在于,运行改进的Dijkstra算法采用的数据结构包括Dial桶、N元堆、Fib堆或二元堆。
8.一种基于时间依赖模型的中国铁路行程路线规划装置,其特征在于,所述装置包括:
模型构建组件:所述模型构建组件被配置为构建适用于铁路网的时间依赖模型,所述时间依赖模型包括固定换乘时间模型和变化换乘时间模型,所述固定换乘时间模型的数据图G=(V,E),V表示点集合,E表示边集合,点集合表示为V=S∪P∪Q,边集合表示为E=A∪D∪I∪O∪R;所述变化换乘时间模型的数据图G=(V,E),V表示点集合,E表示边集合,点集合表示为V=P,边集合表示为
搜索组件:所述搜索组件被配置为在时间扩展图上,运行改进的Dijkstra算法进行搜索,获取最优路径。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910543806.8A CN110222912B (zh) | 2019-06-21 | 2019-06-21 | 基于时间依赖模型的铁路行程路线规划方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910543806.8A CN110222912B (zh) | 2019-06-21 | 2019-06-21 | 基于时间依赖模型的铁路行程路线规划方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110222912A true CN110222912A (zh) | 2019-09-10 |
CN110222912B CN110222912B (zh) | 2021-06-11 |
Family
ID=67814153
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910543806.8A Active CN110222912B (zh) | 2019-06-21 | 2019-06-21 | 基于时间依赖模型的铁路行程路线规划方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110222912B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110879866A (zh) * | 2019-11-05 | 2020-03-13 | 东南大学 | 基于旅客出行多元数据分析的空铁联程中转地点确定方法 |
CN111626502A (zh) * | 2020-05-26 | 2020-09-04 | 武汉大学深圳研究院 | 一种动态城市交通路网的通勤路径规划方法 |
CN113760957A (zh) * | 2021-09-13 | 2021-12-07 | 华立科技股份有限公司 | 一种电能表历史数据的检索方法及系统 |
CN114611807A (zh) * | 2022-03-16 | 2022-06-10 | 赵涵 | 一种交通运输购票换乘推荐指数构建方法 |
CN114693216A (zh) * | 2022-04-12 | 2022-07-01 | 大连理工大学 | 基于两段算法的电动汽车灾后电力配送方案生成方法 |
CN114923497A (zh) * | 2022-04-21 | 2022-08-19 | 西南交通大学 | 一种铁路出行的路径规划方法、装置、设备及存储介质 |
CN115952985A (zh) * | 2022-12-21 | 2023-04-11 | 大连理工大学 | 模块车和公交车在多线路多班次交通系统中的混合调度方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103043084A (zh) * | 2012-12-31 | 2013-04-17 | 北京交通大学 | 一种城市轨道交通换乘优化方法和系统 |
JP2018086926A (ja) * | 2016-11-29 | 2018-06-07 | 東日本旅客鉄道株式会社 | 鉄道快適性評価方法及び鉄道快適性評価装置 |
CN109816214A (zh) * | 2018-12-29 | 2019-05-28 | 张嘉敏 | 周期运行图混合速度列车流结构优化模型与算法 |
-
2019
- 2019-06-21 CN CN201910543806.8A patent/CN110222912B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103043084A (zh) * | 2012-12-31 | 2013-04-17 | 北京交通大学 | 一种城市轨道交通换乘优化方法和系统 |
JP2018086926A (ja) * | 2016-11-29 | 2018-06-07 | 東日本旅客鉄道株式会社 | 鉄道快適性評価方法及び鉄道快適性評価装置 |
CN109816214A (zh) * | 2018-12-29 | 2019-05-28 | 张嘉敏 | 周期运行图混合速度列车流结构优化模型与算法 |
Non-Patent Citations (4)
Title |
---|
DANIE DELLING,DOROTHEA WAGNER: "Time-Dependent Route Planning", 《ROBUST AND ONLINE LARGE-SCALE OPTIMIZATION》 * |
XIN WANG,XIAO-BIN XU,YIN-DONG JI,XIN-YA SUN: "Fault diagnosis using neuro-fuzzy network and Dempster-Shafer theory", 《2012 INTERNATIONAL CONFERENCE ON WAVELET ANALYSIS AND PATTERN RECOGNITION》 * |
余震江: "基于最短路径Dijkstra算法的铁路客运中转径路优化研究", 《中国优秀硕士学位论文全文数据库(电子期刊)》 * |
杨洋: "公共交通系统中的前K短路径算法的研究", 《中国优秀硕士学位论文全文数据库(电子期刊)》 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110879866A (zh) * | 2019-11-05 | 2020-03-13 | 东南大学 | 基于旅客出行多元数据分析的空铁联程中转地点确定方法 |
CN111626502A (zh) * | 2020-05-26 | 2020-09-04 | 武汉大学深圳研究院 | 一种动态城市交通路网的通勤路径规划方法 |
CN111626502B (zh) * | 2020-05-26 | 2022-04-15 | 武汉大学深圳研究院 | 一种动态城市交通路网的通勤路径规划方法 |
CN113760957A (zh) * | 2021-09-13 | 2021-12-07 | 华立科技股份有限公司 | 一种电能表历史数据的检索方法及系统 |
CN113760957B (zh) * | 2021-09-13 | 2024-08-02 | 华立科技股份有限公司 | 一种电能表历史数据的检索方法及系统 |
CN114611807A (zh) * | 2022-03-16 | 2022-06-10 | 赵涵 | 一种交通运输购票换乘推荐指数构建方法 |
CN114693216A (zh) * | 2022-04-12 | 2022-07-01 | 大连理工大学 | 基于两段算法的电动汽车灾后电力配送方案生成方法 |
CN114693216B (zh) * | 2022-04-12 | 2024-09-24 | 大连理工大学 | 基于两段算法的电动汽车灾后电力配送方案生成方法 |
CN114923497A (zh) * | 2022-04-21 | 2022-08-19 | 西南交通大学 | 一种铁路出行的路径规划方法、装置、设备及存储介质 |
CN115952985A (zh) * | 2022-12-21 | 2023-04-11 | 大连理工大学 | 模块车和公交车在多线路多班次交通系统中的混合调度方法 |
CN115952985B (zh) * | 2022-12-21 | 2023-08-18 | 大连理工大学 | 模块车和公交车在多线路多班次交通系统中的混合调度方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110222912B (zh) | 2021-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110222912A (zh) | 基于时间依赖模型的铁路行程路线规划方法及装置 | |
CN110428096B (zh) | 基于票务信息的城市轨道交通多交路运输组织优化方法 | |
CN101436345B (zh) | 基于TransCAD宏观仿真平台的港区道路交通需求预测系统 | |
CN108269399A (zh) | 一种基于公路网客流od反推技术的高铁客流需求预测方法 | |
CN110309962B (zh) | 基于时间扩展模型的铁路行程路线规划方法及装置 | |
CN111310077B (zh) | 一种旅客智能行程推荐系统和方法 | |
CN106097226A (zh) | 基于层次规划的城市常规公交线网设计方法 | |
CN110599760B (zh) | 一种多模式交通网络下的出行行为模拟方法 | |
CN102867408A (zh) | 一种公交出行路线的选择方法和系统 | |
CN106203725A (zh) | 基于启发式搜索的门到门出行路径方案个性化推荐方法 | |
CN110599765A (zh) | 一种基于多源数据融合的公路客货运输量指标统计方法 | |
CN106225800A (zh) | 基于实时路况信息的环境友好型车辆导航路径构建方法 | |
CN103226801A (zh) | 基于多用户配流模型的空港集疏运交通量确定方法 | |
CN107833459A (zh) | 一种基于gps数据的城市公交运行状况评价方法 | |
CN106651728A (zh) | 一种综合运输体系客运方式优势运距的确定方法 | |
CN114358808A (zh) | 基于多源数据融合的公交od估计及分配方法 | |
CN116882842A (zh) | 一种公共综合交通体系通达度评估方法 | |
CN111008736A (zh) | 用于新航线的开通决策方法及系统 | |
CN114912659A (zh) | 铁路客运中转换乘方案计算方法及系统、设备和存储介质 | |
Feng et al. | Choices of intercity multimodal passenger travel modes | |
Wang et al. | Dynamic parking allocation model in a multidestination multiple parking lot system | |
CN117146848A (zh) | 路径规划方法、装置及电子设备 | |
CN111127076A (zh) | 一种出租车共享模式下的定价方法 | |
CN115169669A (zh) | 一种基于轨迹大数据支持的出租车合乘方法 | |
Vanderwaart et al. | Applications of Inferred Origins, Destinations, and Interchanges in Bus Service Planning |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |