一种城市公共交通系统的行程时间计算方法和装置与流程

文档序号:14672436发布日期:2018-06-12 20:02阅读:1018来源:国知局
一种城市公共交通系统的行程时间计算方法和装置与流程

本申请属于数据处理技术领域,特别是涉及一种城市公共交通系统的行程时间计算方法和装置。



背景技术:

城市公共交通系统的是指由多种城市公共交通方式组成的有机总体,其包含公共交通工具和设施。公共交通工具是现代人们生活中不可缺少的出行工具,用户乘坐公共交通工具时,怎么计算乘车的行程时间,进而来规划自己的行程安排,是用户最关心的问题。

目前,一些计算城市公共交通系统行程时间的方案包括:使用应用统计回归理论,结合大量实测数据(路段长度和交叉口数量)对城市公共交通系统的行程时间进行预测;利用卡尔曼滤波算法,在相对理想情况下建立预测模型,利用预测模型来预测城市公共交通系统的行程时间;采用卡尔曼滤波方法和时间序列方法相结合的方式来对历史数据进行分析,进而对城市公共交通系统行程时间进行预测。

然而,根据上述这些计算方案都通常只是计算乘车时间,忽略了乘车等待时间、换乘时间等时间因素,在实际情况中,如果利用上述方案计算行程时间,由于考虑的时间因素不全面,会导致计算的行程时间不准确,进而会影响用户的行程安排,给用户带来不便。



技术实现要素:

有鉴于此,本申请提供了一种城市公共交通系统的行程时间计算方法和装置,主要目的在于解决目前计算城市公交系统行程时间的方案,考虑的时间因素不全面,导致计算的行程时间不准确,进而影响用户的行程安排的问题。

依据本申请的第一方面,提供了一种城市公共交通系统的行程时间计算方法,该方法包括:

获取输入的出发地和目的地;

根据所述出发地和目的地,确定乘坐公共交通工具可选的出行路线方案;

在所述出行路线方案中计算乘坐各个公共交通工具的消耗时间以及所述各个公共交通工具之间的换乘时间,其中所述消耗时间包括步行到站时间、乘车等待时间、乘车时间、和/或刷卡进站时间、和/或刷卡出站时间、和/或出站刷卡排队时间,所述换乘时间包括换乘行走时间和换乘等待时间;

根据所述消耗时间和所述换乘时间,确定所述出行路线方案对应的行程时间。

依据本申请的第二方面,提供了一种城市公共交通系统的行程时间计算装置,该装置包括:

获取单元,用于获取输入的出发地和目的地;

路线确定单元,用于根据所述获取单元获取的出发地和目的地,确定乘坐公共交通工具可选的出行路线方案;

计算单元,用于在所述路线确定单元确定的出行路线方案中计算乘坐各个公共交通工具的消耗时间以及所述各个公共交通工具之间的换乘时间,其中所述消耗时间包括步行到站时间、乘车等待时间、乘车时间、和/或刷卡进站时间、和/或刷卡出站时间、和/或出站刷卡排队时间,所述换乘时间包括换乘行走时间和换乘等待时间;

计算单元,还用于根据所述消耗时间和所述换乘时间,确定所述出行路线方案对应的行程时间。

依据本申请的第三方面,提供了一种存储设备,其上存储有计算机程序,所述程序被处理器执行时实现第一方面所述的城市公共交通系统的行程时间计算方法。

依据本申请的第四方面,提供了一种城市公共交通系统的行程时间计算装置,所述装置包括存储设备和处理器,

所述存储设备,用于存储计算机程序;

所述处理器,用于执行所述计算机程序以实现第一方面所述的城市公共交通系统的行程时间计算方法。

借由上述技术方案,本申请提供的一种城市公共交通系统的行程时间计算方法和装置,与目前现有的计算城市公交系统行程时间的方案相比,本申请在根据输入的出发地和目的地,确定乘坐公共交通工具可选的出行路线方案之后,在出行路线方案中计算乘坐各个公共交通工具的消耗时间以及各个公共交通工具之间的换乘时间,在计算消耗时间和换乘时间时由于考虑了步行到站时间、乘车等待时间、乘车时间、刷卡进站时间、刷卡出站时间、出站刷卡排队时间、换乘行走时间和换乘等待时间等多种时间因素,进而可以将行程时间分解计算,使得考虑的时间因素更加全面,最后根据计算得到的消耗时间和换乘时间,可以准确确定得到出行路线方案对应的行程时间,从而通过这种方式来更加准确的计算用户整个出行路线方案的行程时间,使得用户能够更好的根据计算出的行程时间安排自己的出行计划,给用户带来便利。

上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1为本申请的城市公共交通系统的行程时间计算方法的一个实施例的流程图;

图2为行程路线方案为公交时的一个实施例的位置分布图;

图3为行程路线方案为不换乘地铁时的乘客进出站示意图;

图4为行程路线方案为换乘地铁时的乘客进出站示意图;

图5为一个地铁站点的乘客进出站示意图;

图6为一个地铁站点的乘客进出站及各个对应时间的示意图;

图7为乘客比较密集的站点示意图;

图8为乘客比较稀疏的站点示意图;

图9为乘客排队进出站示意图;

图10为本申请的城市公共交通系统的行程时间计算装置的一个实施例的结构框图;

图11为本申请的城市公共交通系统的行程时间计算装置的实体结构示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

本申请实施例提供了一种城市公共交通系统的行程时间计算方法,能够结合乘车过程中的多种时间因素,使得计算得出的行程时间能够更加准确,方便用户安排自己的出行。

如图1所示,本申请实施例提供了方法的步骤包括:

步骤101,获取输入的出发地和目的地。

步骤102,根据出发地和目的地,确定乘坐公共交通工具可选的出行路线方案。

步骤103,在出行路线方案中计算乘坐各个公共交通工具的消耗时间以及各个公共交通工具之间的换乘时间,其中消耗时间包括步行到站时间、乘车等待时间、乘车时间、和/或刷卡进站时间、和/或刷卡出站时间、和/或出站刷卡排队时间,换乘时间包括换乘行走时间和换乘等待时间。

其中,各个公共交通工具形成的出行路线方案可以是下列情况中的任一:

直接一条公交路线、直接一条地铁路线、公交转公交路线、地铁转地铁路线、公交转地铁路线、地铁转公交路线、公交转地铁再转公交路线、地铁转公交再转地铁路线,其中换乘的公交路线或者地铁路线数量可以是一条或者多条。

步骤104,根据消耗时间和换乘时间,确定出行路线方案对应的行程时间。

在上述技术方案中,根据用户输入的出发地和目的地,确定一条或多条合适的出行路线方案,以供用户进行选择。用户可以根据自己的实际需要从多条出行路线方案中筛选出最合适的出行路线方案。

然后,若出行路线方案中只有一条路线,则用户无需换乘,对应的换乘时间和换乘行走时间为0,只需计算用户到达该条路线的上车站点的步行到站时间、在上车站点的乘车等待时间、用户上车后的乘车时间以及下车后步行到目的地的时间,并将这些时间进行累加得到的消耗时间即为用户从出发地到目的地的行程时间。

若出行路线方案中有多条路线,则用户需要根据路线的数量确定换乘的次数,进而计算每次换乘时的换乘行走时间和换乘等待时间,以及用户到达第一条路线的上车站点的步行到站时间、在各个路线的上车站点的乘车等待时间、各个路线上车后的乘车时间、下车后步行到目的地的时间,将上述计算的时间进行累加得到最终的行程时间。

其中,步行到站时间、步行出站时间以及换乘行走时间,都可以根据距离除以平均行走的速度来进行计算。

通过上述技术方案,可以将步行到站时间、乘车等待时间、乘车时间、刷卡进站时间、刷卡出站时间、出站刷卡排队时间,以及换乘行走时间和换乘等待时间等多种因素进行结合,来更加准确的计算用户整个出行路线方案的行程时间,进而使得用户能够更好的根据计算出的行程时间安排自己的出行计划,给用户带来便利。

在具体实施例中,若公共交通工具为公交,则步骤103具体包括:

步骤103a1,依据出发地到公交上车站点的距离,计算公交的步行到站时间。

步骤103a2,根据出行路线方案中的公交线路和当前时间段,计算公交上车站点相应的公交乘车等待时间和公交乘车时间。

步骤103a3,将公交乘车等待时间和公交乘车时间进行累加得到公交的消耗时间。

在上述技术方案中,当出行路线方案中有公交线路时,提取出行路线中的公交线路,通过全球定位系统(Global Positioning System,GPS),计算出发地到公交上车站点的距离,该距离除以平均的步行速度得到步行到站时间。由于每个上车站点在一天中不同的时间段的交通拥堵情况是不同的,因此,不同的时间段对应的公交乘车等待时间以及公交乘车时间都是不同的,可以提取用户到达上车站点时对应的时间段(即当前时间段),根据该时间段计算得到的公交乘车等待时间和公交乘车时间更符合用户的实际情况。使得计算得到的公交的消耗时间能够更加准确,这样当用户处于上下班高峰时段时,就会根据当前的时间段来计算用户实际乘车需要的时间,提高行程时间计算的准确性,使用户能够根据该行程时间更好的安排自己的出行计划。

在具体实施例中,在步骤103a2之前,方法还包括:

步骤103b1,每间隔预定时间,获取每个公交站点的位置S1,S1下一个站点的位置S2,以及距离S1最近的公交车辆v的位置P3,其中,将一天中公交的工作时间按照预定时间分成多个时间段。

步骤103b2,计算P3和S1的距离dist(P3,S1),以及S1和S2之间的距离dist(S1,S2)。

步骤103b3,如果dist(P3,S1)<预定距离阈值m,则P3和S1之间为一个加速过程,则公交车辆v到达S1的时间计算公式为:

其中,t(S1,v)为公交车辆v到达S1的时间,t(P3,v)为公交车辆v到达P3的时间,a为公交车辆v的加速度。

步骤103b3,如果dist(P3,S1)≥m并且dist(P3,S1)≤dist(S1,S2),则P3和S1之间为一个加速过程和一段匀速过程,则公交车辆v到达S1的时间计算公式为:

每经过20-40s的更新时间,利用GPS获取一次各个公交车辆的位置,由于更新时间不够及时,GPS获取各个公交车辆位置时,公交车辆可能还未到达相应站点,也可能已经离开相应站点了。当公交车辆已经离开相应站点时使用公式(1)或(3)计算公交车辆v到达S1的时间;当公交车辆还未到达相应站点时,使用公式(2)或(4)计算公交车辆v到达S1的时间。

其中S1代指每个公交站点,将一天中公交的运行时间进行等分,划分成若干个时间段,将每个时间段按照上述公式计算得出各个站点各个时间段的公交车辆到达时间。

步骤103b4,计算每个预定时间段的每两个相邻站点的出行时间公式为:

Ttv(S1,S2)=t(S2,v)-t(S1,v)。

步骤103b5,将每个预定时间段的每两个相邻站点的出行时间保存至历史数据库中,其中,t(S2,v)为公交车辆v到达S2的时间,同理t(S1,v)的计算方法。

在具体实施例中,步骤103a2具体包括:

步骤103a21,计算当前时间段p的公交车辆到达时间,将公交车辆到达时间减去当前时间作为公交乘车等待时间。其中当前时间段p的公交车辆到达时间按照上述步骤103b3或步骤103b4中的方法进行计算。

步骤103a22,从历史数据库中提取历史天数中当前时间段p的公交线路中各个相邻站点的非当天出行时间Tntp(S1,S2),以及当天的当前时间段的上一个时间段p-1的公交线路中各个相邻站点的当天出行时间Trtp-1(S1,S2),则当前时间段p的各个相邻站点的出行时间Tptp(S1,S2)的计算公式为:

Tptp(S1,S2)=a1×Tntp(S1,S2)+a2×Trtp-1(S1,S2),a1为非当天出行时间的权值,a2为当天出行时间的权值。

步骤103a23,将计算得到的各个相邻站点的出行时间进行累加作为公交乘车时间。

在上述技术方案中,由于每间隔预定时间会将按照上述公式得到的各个站点对应的公交车辆到达时间,进而,按照上述公式,计算各个相邻站点每个时间段对应的出行时间,由于每天各个时间段对应的出行时间大致相似。在计算出行路线方案中公交路线上各个相邻站点对应的出行时间时,对历史数据库中历史天数中所有的时间段p对应的各个相邻站点的出行时间计算平均值即非当天出行时间Tntp(S1,S2),以及历史数据库中当天的当前时间段的上一个时间段p-1对应的Trtp-1(S1,S2),将这二者进行结合,使得计算得出的各个相邻站点的出行时间Tptp(S1,S2)能够更加准确。

在具体实施例中,方法还包括:

步骤(1)设置a1和a2的初始值,例如a1=0.2,a2=0.8;

步骤(2)根据a1和a2的数值计算Tptp(S1,S2);

步骤(3)判断Tptp(S1,S2)是否在预定出行时间范围(优选为0至10分钟)内;

步骤(4)当判断结果为是时,则将此时的a1和a2的数值保存;

步骤(5)当判断结果为否时,参照如下条件进行操作:

若Tptp(S1,S2)>Trtp(S1,S2)且Tntp(S1,S2)>Trtp-1(S1,S2),则将a2随机增加一个0至(1-a2)之间的值;

若Tptp(S1,S2)>Trtp(S1,S2)且Tntp(S1,S2)≤Trtp-1(S1,S2),则将a1随机增加一个0至(1-a1)之间的值;

若Tptp(S1,S2)≤Trtp(S1,S2)且Tntp(S1,S2)>Trtp-1(S1,S2),则将a1随机增加一个0至(1-a1)之间的值;

若Tptp(S1,S2)≤Trtp(S1,S2)且Tntp(S1,S2)≤Trtp-1(S1,S2),则将a2随机增加一个0至(1-a2)之间的值;

按照上述条件进行迭代计算,即重复步骤(2)-(5),直至计算得出的Tptp(S1,S2)属于预定出行时间范围(优选为0至10),并将此时的a1和a2的数值保存。

权重值a1和a2,也可以按照其他的方式进行改变,但是无论怎么变化,都得使a1+a2=1。

在具体实施例中,当用户选择只使用公交出行时,则步骤102具体包括:

步骤1021,根据出发地O确定经过出发地的路线集合{O.l}={l|O.s∈{l.s}},并根据目的地D确定经过目的地的路线集合{D.l}={l|D.s∈{l.s}},其中l为路线,s为站点,O.s为上车站点,D.s为下车站点,{O.l}经过上车站点的路线集合,{D.l}经过下车站点的路线集合,{l.s}为路线经过的站点集合。

步骤1022,判断{O.l}和{D.l}中是否存在交集。

步骤1023,若存在交集路线,则确定交集路线为出发地到目的地的直达路线,并将直达路线作为出行路线方案。

步骤1024,若不存在交集路线,则判断{O.l}和{D.l}两个集合中是否存在距离小于等于预设阈值的两个站点。

步骤1025,若存在两个站点距离小于等于预设阈值(优选为100m),则将两个站点确定为换乘站点,并将出发地到换乘站点的路线和换乘站点到达目的地的路线作为换乘路线。

步骤1026,若两个站点距离大于设定阈值,则建立与{O.l}路线集合中的站点存在交集的路线集合{Cl1};

步骤1027,判断路线集合{Cl1}中是否存在到达目的地的路线;

步骤1028,若是,则将存在的到达目的地的路线作为换乘路线;

步骤1029,若否,则将{O.l}路线集合替换为路线集合{Cl1},重复步骤1024-1027重新查找能够到达目的地的换乘路线,其中,换成次数初始值为0每重新查找一次换乘次数加1;

当换乘次数小于等于换乘阈值(例如,换乘阈值为5)时,将查找到的各个换乘路线作为出行路线方案。

通过上述技术方案,使得选出的出行路线方案能够更加符合用户的出行需求,并且,通过设置的换乘阈值,可以限制出行路线方案的换乘次数,避免用户换乘次数太多影响出行。

在具体实施例中,若公共交通工具为地铁,则步骤103具体还包括:

步骤103c1,从历史数据库中调取当前时间段对应的地铁线路中,地铁上车站点的刷卡进站时间、地铁上车站点的乘车等待时间、对应地铁线路的乘车时间、地铁下车站点的刷卡出站时间和出站刷卡排队时间,其中,历史数据库中保存有不同时间段的每个地铁站点分别对应的刷卡进站时间、刷卡出站时间、出站刷卡排队时间、乘车等待时间以及每段地铁线路的乘车时间。

每间隔预定时间获取一次地铁各个站点的刷卡进站时间、刷卡出站时间、地铁的乘车时间、出站刷卡排队时间,并将这些时间与相应的时间段进行映射,并保存在历史数据库中,历史数据库每接收一个时间段的时间数据,就计算该时间段的各个地铁站点的时间数据的平均值,并将对应的平均值一起保存至对应时间段的历史数据库中。这样,当从历史数据库中调取当前时间段对应的各个时间数据时,可以直接调取历史数据库中的平均值。

步骤103c2,将地铁上车站点的刷卡进站时间、对应地铁线路的乘车时间、地铁下车站点的刷卡出站时间和出站刷卡排队时间进行累加,作为地铁的消耗时间。

通过上述技术方案,当出行路线方案中有地铁线路时,提取出行路线中的地铁线路,并从历史数据中调取对应当前时间段的各项时间数据,能够将一天中各个时间段地铁所消耗的时间进行区分,使得出的地铁消耗时间更加符合实际地铁的运行时间,进而提高行程时间计算的准确性。

在具体实施例中,方法还包括:

步骤103c’,获取不同时间段的每个地铁站点的各个上车乘客的位置或下车乘客的位置,并通过密度聚类算法计算上车乘客的密度或下车乘客的密度。

步骤103c”,判断上车乘客的密度或下车乘客的密度是否大于等于预定密度值。

步骤103c”’,当判断结果为是时,获取对应地铁站点的地铁到站后第一名乘客的出站时间、地铁出发前最后一名乘客进站时间以及进/出站行走时间,其中同一个地铁站点的进站行走时间和出站行走时间相同。

步骤103c””,各个时间段的每个地铁站点的刷卡进站时间=刷卡出站时间=(第一名乘客的出站时间-最后一名乘客进站时间+进/出站行走时间)/2。由于相同站点在同一时间段时的刷卡进站时间和刷卡出站时间相同,因此刷卡进站时间=刷卡出站时间。

通过上述技术方案,可以根据各个时间段的乘客的密度不同来计算各个时间段的每个地铁站点的刷卡进站时间和刷卡出站时间,使得计算得出刷卡进站时间和刷卡出站时间更加符合该时间段的实际情况,准确性更高。

当确认的出行路线方案中,只有公交时,利用上述公交的计算方案计算公交的消耗时间。另外公交的换乘时间中的换乘行走时间根据两个换乘站点的距离进行计算,换乘等待时间与公交的乘车等待时间的计算方案相同,这样就可以将公交的换乘时间计算出来。将公交的消耗时间与换乘时间进行累加得到最终的行程时间。

当确认的出行路线方案中,只有地铁时,利用上述地铁的计算方案计算地铁的消耗时间。地铁的换乘行走时间同样根据两个地铁换乘站点的距离进行计算,地铁的换乘等待时间从历史数据库中提取换乘站点的乘车等待时间,将换乘行走时间和换乘等待时间进行累加得到地铁的换乘时间。然后再与计算出的地铁的消耗时间相加得到最终的行程时间。

当确认的出行路线方案中,既有公交也有地铁时,提取出行路线方案中的公交线路,按照上述公交线路的运行时间的计算方式计算公交的消耗时间。提取出行路线方案中的地铁线路,按照上述地铁线路的运行时间的计算方式计算地铁的消耗时间。若换乘路线为公交换地铁时,则按照两个换乘站点的距离计算换乘步行时间,并从历史数据库中提取地铁换乘站点的乘车等待时间,进而计算得出换乘时间。若换乘路线为地铁换公交时,则同样按照两个换乘站点的距离计算换乘步行时间,并按照上述公交站点的乘车等待时间的计算方案,计算该公交换乘站点的换乘等待时间,进而计算得出换乘时间。最后将公交消耗时间、地铁消耗时间和换乘时间进行累加得到最终的行程时间。

根据本申请的另一个实施例的城市公共交通系统的行程时间计算方法:

(一)公交算法

公交算法包括公交路径算法和公交消耗时间算法。每当一个乘客输入OD(Origin to Destination,起点到终点)之后,本申请将提供几条不同的路径以供选择,然后根据当前的交通情况对每条路径进行消耗时间的预测。根据这些路径和相应的时间,乘客能够轻松的选择他们的路径。

(1)计算公交的路径算法

说明:O.s——上车站点,D.s——下车站点,{O.l}——经过上车站点的线路集合,{D.l}——经过下车站点的线路集合,l——线路l,{l.s}——线路l经过的站点集合。

算法步骤:

1)确定乘客的OD,确定经过起点和终点的线路集合,{O.l}={l|O.s∈{l.s}}、{D.l}={l|D.s∈{l.s}},并且设置初始换乘次数置为0。

2)如果{O.l}和{D.l}中存在交集l,l={O.l}∩{D.l},则该线路l为直达线路。

3)如果两个集合中不存在交集,即φ={O.l}∩{D.l},则确定两个线路集合中分别所拥有的站点集合是否存在交集。其中,交集的确定为站点距离小于一定阈值r(r的具体数值可以根据实际情况进行设定),即{s1,s2}∈{dist(s1,s2)<r},其中s1为集合{O.l}中的站点,s2为集合{D.l}中的站点。

4)如果站点存在交集,则该站点为换乘站点,路径为O-s1-s2-D,此时,将换乘次数加一。

5)如果不存在交集即φ∈{dist(s1,s2)<r}则建立线路集合{Cl1},该线路集合{Cl1}为和{O.l}线路集合中的站点存在交集的所有线路集:{Cl1}∈{l|l.s∈{O.l.s}}。

6)将O.l替换为{Cl1}中的线路之后,再重复步骤2)至5)的操作,同时将换乘次数加一,直到找出能够到达目的地D的线路。其中,要保证换乘次数不超过换乘阈值(例如,5次)。

(2)计算公交的消耗时间算法

时间构成:总时间=乘车时间+步行换乘时间+等车时间

其中,乘车时间为上车后的乘车时间估计;步行换乘时间:站点间步行时间可通过两个站点的距离除以步行速度计算得到;等车时间为等待车辆到站时间估计。

算法步骤:

到站时间的估计:

因为GPS数据的更新时间是20-40秒,因此在进行计算时,不能确定获取的车辆的位置是在站点之前还是在站点之后,因此通过下述算法利用加速度的原理来预测该站点的到站时间。

1)选择一个车辆的GPS点,确定它的线路,方向和位置。

2)选择该线路该方向上的第一个站点作为S1,找到S1的下一个站点S2和距离S1最近的一个车辆v的GPS点P3。

3)计算S1和P3之间的距离,记为dist(P3,S1)。

4)计算S1和S2之间的距离,记为dist(S1,S2)。

5)如果dist(P3,S1)<100米,则S1到P3之间为一个加速过程,计算S1的车辆到达时间的公式为:

其中,t(S1,v)为公交车辆v到达S1的时间,t(P3,v)为公交车辆v到达P3的时间,a为公交车辆v的加速度。

6)如果dist(P3,S1)≥100米,并且dist(P3,S1)<dist(S1,S2),S1到S3是一个加速过程和一段匀速过程,计算S1的车辆到达时间的公式为:

7)如果dist(P3,S1)>dist(S1,S2),则P3与S1的距离较远,此时不计算S1的车辆到达时间。

8)计算完每个站点的到达时间,则相邻的两个站点间的出行时间计算公式为Ttv(S1,S2)=t(S2,v)-t(S1,v),按照上述公式计算各个相邻的两个站点的出行时间,并将其保存至历史数据库中。

预测相邻两个站点间的出行时间

从历史数据库中提取对应当前时间段的历史数据(非当天数据)和当天的当前时间段的上一个时间段的当天数据,计算公式如下:

Tptp(S1,S2)=a1×Tntp(S1,S2)+a2×Trtp-1(S1,S2)

其中a1和a2是动态权值,需要根据下面的算法决定a1,a2的值。

动态权值确定算法

1)设置a1和a2的初始值:a1=0.2,a2=0.8。

2)根据a1和a2的数值计算Tptp(S1,S2)。

3)如果Tptp(S1,S2)>Trtp(S1,S2)且Tntp(S1,S2)>Trtp-1(S1,S2),则将a2随机增加一个0至(1-a2)之间的值。

4)如果Tptp(S1,S2)>Trtp(S1,S2)且Tntp(S1,S2)≤Trtp-1(S1,S2),则将a1随机增加一个0至(1-a1)之间的值。

5)如果Tptp(S1,S2)≤Trtp(S1,S2)且Tntp(S1,S2)>Trtp-1(S1,S2),则将a1随机增加一个0至(1-a1)之间的值。

6)如果Tptp(S1,S2)≤Trtp(S1,S2)且Tntp(S1,S2)≤Trtp-1(S1,S2),则将a2随机增加一个0至(1-a2)之间的值。

7)如果得到的值Tptp(S1,S2)>10,则返回步骤2),否则将a1和a2的值保存。

如图2所示,乘客在站点S3等待公交,准备前往站点S5,此时离乘客最近的公交V1在S1和S2之间。则此时乘客的的乘车时间计算公式为:

Tt(P,t)=Tptp(s3,s4)+Tptp(s4,s5)

等待时间计算公式为:

图2中不涉及换乘,如果涉及换乘,相应的换乘行走时间为两个换乘站点的距离除以步行平均速度获得。

(二)地铁算法

将地铁按照时空分割成几个小段,分别计算每个小段的时间,如图3所示是无换乘的一次地铁出行,消耗的时间可以分为五个部分计算:

L1为乘客从入口闸机到入口月台的步行消耗时间;

L2是乘客等待下一列车的等待时间;

L3是乘客从站点O到站点D的乘车时间;

L4是乘客下车到出口闸机的时间;

L5为在出口闸机等待的时间。

如图4所示,是有一次换乘的的地铁出行,消耗时间可以分为7个部分:

其中:L1至L5与上述相同;

L6是从换乘站换乘的月台1到月台2的步行时间;

L7为在月台2等待时间;

L8是换乘后地铁上的乘车时间。

如图5和6所示,图中A(m,n):地铁车辆到达时间;

D(m,n):地铁车辆出发时间;

Tout(m,n):车辆到站后第一名乘客A出站时间;

Tin(m,n):车辆出发前最后一名乘客B进站时间;

Lwi(n):进站行走时间;

Lwo(n):出站行走时间;

(1)地铁站内走行时间算法

如图5所示,C进入站点,步行L1的时间上车,上车后等待L2的时间列车从站点出发;B进入站点,步行L1的时间上车,然后车直接离开,即L2=0;A下列车后经过L4的时间到达出站闸机口,不用等待直接出站,即L5=0;而D下车后经过L4的时间到达闸机口,又等待了L5的时间出站。B和A是特殊情况,为了能够更好的计算所以我们要想办法找到这一类人群。

而这种特殊情况使用下述公式计算进出站的步行时间L1和L4,

(i)Tout(m,n)=A(m,n)+L4(n)

(ii)Tin(m,n)=D(m,n)-L1(n)。

(2)寻找特殊人群算法

当一个列车刚到站的时候,会有很多乘客离开列车准备出站,他们会经过相同的距离从月台到达出站闸机口,因此所用的时间也差不多,如图7表示有很多人同时下车,如图8表示下车的乘客不多,分别对应图9中做的两种情况,通过DBSCAN(Density-Based Spatial Clustering of Applications,密度聚类算法),计算得出在队伍的前面即为特殊出站人群。同理通过相同OD站点的乘客聚类找出特殊进站人群。

对于不换乘的路径,根据进出站的时间计算公式可以得到:

Tout(m,n)-Tin(m,n)=L1(n)+L4(n)-(D(m,n)-A(m,n))。

因为同一个站点L1和L4可以看作相同,即Lp(n)=L1(n)=L4(n),因此可以得到公式:

Lp(n)=(Tout(m,n)-Tin(m,n)+Lw(m,n))/2。

结合进站时间t(n1)和出站时间t(n2),因此我们可以计算得到:

进站等待时间L2=D(m,n1)-t(n1)-L1;

乘车时间L3=A(m,n2)-D(m,n1);

出站闸机口等待时间L5=t(n2)-A(m,n2)-L4;

(3)计算换乘走行时间算法

对于有一次换乘的乘客来说,乘客从线路1换乘到线路2,能够得到时间A(m1,n2)和D(m2,n2),假设换乘等待时间L7=0,则计算D(m2,n2)-A(m1,n2)即为换乘走行时间L6,L6=D(m2,n2)-A(m1,n2)。

根据乘客的出行距离不同,乘客选择的出行方式往往也不相同。相对于短途出行部分乘客会选择单一公交出行方式,相对于长距离出行乘客可能倾向选择地铁出行,而有的乘客会选择公交和地铁相结合的出行方式。

下面会针对三种不同的出行方式,举例详细说明每种出行方式的出行时间估算过程。

(a)基于单一公交出行方式:

对于不换乘的一次公交出行方式,出行消耗时间=步行到站时间+乘车等待时间+乘车时间。

对于有换乘的公交出行方式,出行消耗时间=步行到站时间+第一次乘车等待时间+第一次乘车时间+换乘走行时间+换乘等待时间+第二次乘车时间。

其中步行到站时间可以通过调用地图应用程序编程接口(Application Programming Interface,API)计算当前位置和站点之间的距离与平均步速的比值得到,乘车等待时间可以通过公交到站时间的相应公式得到,可以通过相邻站点的出行时间计算公式得到各个相邻站点的出行时间并累加得到乘车时间,换乘走行时间同样可以通过换乘站点之间的距离计算得到。

(b)基于单一地铁出行方式

对于不换乘的一次地铁出行方式,出行时间=步行到站时间+刷卡进站时间+站点等车时间+乘车时间+出站时间+出站刷卡排队时间。

对于有一次换乘的地铁出行方式,出行时间=步行到站时间+刷卡进站时间+路线1的站点等待时间+路线1的乘车时间+换乘走行时间+换乘等待时间+路线2的乘车时间+出站时间+出站刷卡排队时间。

其中步行到站时间同样可以通过调用地图API获得,刷卡进站和刷卡出站时间可以通过地铁站内走行时间获得,站间等待时间、乘车时间和出闸机口等待时间、换乘走行时间可以通过上述地铁算法获得。

(c)公交地铁结合的出行方式:

公交地铁结合的出行方式是比较普遍的出行方式,总的行程消耗时间=公交消耗时间+换乘消耗时间+地铁消耗时间。

公交和地铁消耗时间可以按照上述方案分别进行计算获得,而公交地铁换乘消耗的时间即两个站点之间的步行消耗时间,可以通过调用地图API获取两点之间的距离除以平均步行速度获得。

通过应用上述技术方案,可以将公交行程时间分解计算,分解为乘车时间、步行换乘时间、等车时间,和公交实时到站数据联动,采用动态权值确定算法估算实时公交行程耗时;可以将地铁行程时间分解计算,无换乘地铁耗时分解为入口闸机到入口月台步行时间、等车时间、出发地与目的地之间的乘车时间、下车到出口闸机时间、出口等待时间,一次换乘地铁耗时在无换乘基础上加换乘月台间行走时间、换乘等待时间、换乘行车时间,和地铁到站信息联动,估算时间更为准确。

进一步的,作为图1方法的具体实现,本申请实施例提供了一种城市公共交通系统的行程时间计算装置,如图10所示,该装置包括:

获取单元21,用于获取输入的出发地和目的地;

路线确定单元22,用于根据出发地和目的地,确定乘坐公共交通工具可选的出行路线方案;

计算单元23,用于在出行路线方案中计算乘坐各个公共交通工具的消耗时间以及各个公共交通工具之间的换乘时间,其中消耗时间包括步行到站时间、乘车等待时间、乘车时间、和/或刷卡进站时间、和/或刷卡出站时间、和/或出站刷卡排队时间,换乘时间包括换乘行走时间和换乘等待时间;

计算单元23,还用于根据消耗时间和换乘时间,确定出行路线方案对应的行程时间。

在具体实施例中,若公共交通工具为公交,则计算单元23具体包括:

步行时间计算模块,用于依据出发地到公交上车站点的距离,计算公交的步行到站时间;

乘车时间计算模块,用于根据出行路线方案中的公交线路和当前时间段,计算公交上车站点相应的公交乘车等待时间和公交乘车时间;

累加模块,用于将公交乘车等待时间和公交乘车时间进行累加得到公交的消耗时间。

在具体实施例中,装置还包括:

位置获取模块,用于每间隔预定时间,获取每个公交站点的位置S1,S1下一个站点的位置S2,以及距离S1最近的公交车辆v的位置P3,其中,将一天中公交的工作时间按照预定时间分成多个时间段;

距离计算模块,用于计算P3和S1的距离dist(P3,S1),以及S1和S2之间的距离dist(S1,S2);

判断模块,用于如果dist(P3,S1)<预定距离阈值m,则P3和S1之间为一个加速过程,则公交车辆v到达S1的时间计算公式为:

其中,t(S1,v)为公交车辆v到达S1的时间,t(P3,v)为公交车辆v到达P3的时间,a为公交车辆v的加速度;

判断模块,还用于如果dist(P3,S1)≥m并且dist(P3,S1)≤dist(S1,S2),则P3和S1之间为一个加速过程和一段匀速过程,则公交车辆v到达S1的时间计算公式为:

相邻站点时间计算模块,用于计算每个预定时间段的每两个相邻站点的出行时间公式为:

Ttv(S1,S2)=t(S2,v)-t(S1,v);

将每个预定时间段的每两个相邻站点的出行时间保存至历史数据库中,其中,t(S2,v)为公交车辆v到达S2的时间,同理t(S1,v)的计算装置。

在具体实施例中,乘车时间计算模块,还用于计算当前时间段p的公交车辆到达时间,将公交车辆到达时间减去当前时间作为公交乘车等待时间;

提取模块,用于从历史数据库中提取历史天数中当前时间段p的公交线路中各个相邻站点的非当天出行时间Tntp(S1,S2),以及当天的当前时间段的上一个时间段p-1的公交线路中各个相邻站点的当天出行时间Trtp-1(S1,S2),则当前时间段p的各个相邻站点的出行时间Tptp(S1,S2)的计算公式为:

Tptp(S1,S2)=a1×Tntp(S1,S2)+a2×Trtp-1(S1,S2),a1为非当天出行时间的权值,a2为当天出行时间的权值;

乘车时间计算模块,还用于将计算得到的各个相邻站点的出行时间进行累加作为公交乘车时间。

在具体实施例中,装置还包括:

权重值计算模块,用于设置a1和a2的初始值;根据a1和a2的数值计算Tptp(S1,S2);

判断模块,还用于判断Tptp(S1,S2)是否在预定出行时间范围内;当判断结果为是时,则将此时的a1和a2的数值保存;当判断结果为否时,参照如下条件进行操作:

若Tptp(S1,S2)>Trtp(S1,S2)且Tntp(S1,S2)>Trtp-1(S1,S2),则将a2随机增加一个0至(1-a2)之间的值;

若Tptp(S1,S2)>Trtp(S1,S2)且Tntp(S1,S2)≤Trtp-1(S1,S2),则将a1随机增加一个0至(1-a1)之间的值;

若Tptp(S1,S2)≤Trtp(S1,S2)且Tntp(S1,S2)>Trtp-1(S1,S2),则将a1随机增加一个0至(1-a1)之间的值;

若Tptp(S1,S2)≤Trtp(S1,S2)且Tntp(S1,S2)≤Trtp-1(S1,S2),则将a2随机增加一个0至(1-a2)之间的值;

按照上述条件进行迭代计算,直至计算得出的Tptp(S1,S2)属于预定出行时间范围,并将此时的a1和a2的数值保存。

在具体实施例中,若公共交通工具为公交,则路线确定单元22具体包括:

站点确定模块,用于根据出发地O确定经过出发地的路线集合{O.l}={l|O.s∈{l.s}},并根据目的地D确定经过目的地的路线集合{D.l}={l|D.s∈{l.s}},其中l为路线,s为站点,O.s为上车站点,D.s为下车站点,{O.l}经过上车站点的路线集合,{D.l}经过下车站点的路线集合,{l.s}为路线经过的站点集合;

判断模块,还用于判断{O.l}和{D.l}中是否存在交集;若存在交集路线,则确定交集路线为出发地到目的地的直达路线,并将直达路线作为出行路线方案;若不存在交集路线,则判断{O.l}和{D.l}两个集合中是否存在距离小于等于预设阈值的两个站点;若存在两个站点距离小于等于预设阈值,则将两个站点确定为换乘站点,并将出发地到换乘站点的路线和换乘站点到达目的地的路线作为换乘路线;若两个站点距离大于设定阈值,则建立与{O.l}路线集合中的站点存在交集的路线集合{Cl1};

判断模块,还用于判断路线集合{Cl1}中是否存在到达目的地的路线;若是,则将存在的到达目的地的路线作为换乘路线;若否,则将{O.l}路线集合替换为路线集合{Cl1},重新查找能够到达目的地的换乘路线,其中,每重新查找一次换乘次数加1;

路线确定模块,用于当换乘次数小于等于换乘阈值时,将查找到的各个换乘路线作为出行路线方案。

在具体实施例中,若公共交通工具为地铁,则提取模块,还用于从历史数据库中调取当前时间段对应的地铁线路中,地铁上车站点的刷卡进站时间、地铁上车站点的乘车等待时间、对应地铁线路的乘车时间、地铁下车站点的刷卡出站时间和出站刷卡排队时间,其中,历史数据库中保存有不同时间段的每个地铁站点分别对应的刷卡进站时间、刷卡出站时间、出站刷卡排队时间、乘车等待时间以及每段地铁线路的乘车时间;

累加模块,还用于将地铁上车站点的刷卡进站时间、地铁上车站点的乘车等待时间、对应地铁线路的乘车时间、地铁下车站点的刷卡出站时间和出站刷卡排队时间进行累加,作为地铁的消耗时间。

在具体实施例中,装置还包括密度获取模块,:

密度获取模块,用于获取不同时间段的每个地铁站点的各个上车乘客的位置或下车乘客的位置,并通过密度聚类算法计算上车乘客的密度或下车乘客的密度;

判断模块,还用于判断上车乘客的密度或下车乘客的密度是否大于等于预定密度值;当判断结果为是时,获取对应地铁站点的地铁到站后第一名乘客的出站时间、地铁出发前最后一名乘客进站时间以及进/出站行走时间,其中同一个地铁站点的进站行走时间和出站行走时间相同;

每个时间段的每个地铁站点的刷卡进站时间=刷卡出站时间=(第一名乘客的出站时间-最后一名乘客进站时间+进/出站行走时间)/2。

基于上述图1所示方法,相应的,本申请实施例还提供了一种存储设备,其上存储有计算机程序,程序被处理器执行时实现图1所示方法对应的步骤。

基于上述图1所示方法和图10所示装置的实施例,本申请实施例还提供了一种城市公共交通系统的行程时间计算装置,如图11所示,包括存储设备32和处理器31,其中存储设备32和处理器31均设置在总线33上。

存储设备32,用于存储计算机程序;

处理器31,用于执行计算机程序以实现图1所示方法对应的步骤。

通过本申请的上述技术方案,可以解决现有的公共交通系统行程时间估算考虑的时间因素不全面,导致预计时间不准确的问题。可以将行程时间分解计算,和公交实时到站预测数据、地铁列车时刻表信息联动,同时考虑地铁乘车进站走行时间、出站走行时间、等车时间,以及出发地到车站,车站到目的地的走行时间,使计算时间更准确。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景所述的方法。

本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本申请所必须的。

本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。

上述本申请序号仅仅为了描述,不代表实施场景的优劣。

以上公开的仅为本申请的几个具体实施场景,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1