一种可预约的出租车匹配方法转让专利

申请号 : CN201811281523.2

文献号 : CN109657820B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 赖永炫杨诗鹏杨帆

申请人 : 厦门大学厦门大学深圳研究院

摘要 :

本发明为一种可预约的出租车匹配方法,包括以下几个步骤:1)初始化路网数据,构建时间依赖的速度网络;2)车辆状态实时更新到系统,乘客发起出行请求并发送到中心服务器进行处理;3)服务器将已就绪请求和空载的出租车抽象成节点建立匹配二分图,并计算乘客请求和出租车配对的效能;4)将系统中的出租车匹配问题转化成最小代价流问题,产生最佳的“出租车‑乘客”匹配方案;5)根据匹配方案,系统发送通知给请求成功的乘客,出租车则前往指定地点接乘客;6)跳转到步骤2),周期性地增量更新请求和匹配。本方法和系统可求解出租车预约请求和实时请求的调配问题,减少乘客等车时间,提高出租车的行驶效率,提高效益。

权利要求 :

1.一种可预约的出租车匹配方法,其特征在于,包括如下步骤;

1)初始化路网数据,根据出租车历史轨迹数据,构建时间依赖的速度网络;

2)出租车实时更新所在的位置信息,空载/重载的状态信息,当乘客发起出行请求至中心服务器,中心服务器根据出行请求的时间窗,将出行请求分为实时请求和预约请求,其中实时请求以及部分满足条件的预约请求为已就绪请求,即可被调配;

3)中心服务器将已就绪请求和空载的出租车抽象成节点建立匹配二分图,并计算已就绪请求和空载的出租车配对的效能;若该空载的出租车可在已就绪请求对应的时间窗内到达上车点,则将该空载的出租车和该已就绪请求对应的节点连上一条边,并以该配对的效能的负值作为该边的权重;

4)往匹配二分图中加上两个点Source和Sink,其中Source连接所有出租车节点,Sink连接所有已就绪请求节点,计算匹配二分图的最小代价流方案,从而产生最佳的出租车-乘客匹配方案;

5)根据出租车-乘客匹配方案,发送通知给出行请求成功的乘客,出租车则前往指定的上车点接乘客,并送达目的地;

6)跳转到步骤(2)。

2.如权利要求1所述的一种可预约的出租车匹配方法,其特征在于:步骤2)中,所述出行请求的数据格式包括如下:q(olon,olat,dlon,dlat,t1,t2,t0)其中,olon表示上车点经度,olat表示上车点纬度,dlon表示终点经度,dlat表示终点纬度,时间窗[t1,t2]表示乘客希望出租车来接送的最佳时间段,t0表示出行请求生成的时间;

根据出行请求q中的时间窗[t1,t2],将出行请求分为两类:实时请求Q1和预约请求Q2其中T1是预设值,为作出预约请求的最小时间差;

通过另外一个预设值T2>T1,将预约请求Q2进行进一步划分:t′表示当前的系统时间,根据出行请求的分类,定义出已就绪请求的集合:为等待请求,所述已就绪请求可进入匹配系统寻找合适的出租车并被匹配服务,等待请求处于等待状态,直至其转换为已就绪请求方可进行匹配。

3.如权利要求2所述的一种可预约的出租车匹配方法,其特征在于:在步骤3)中,所述效能公式如下:u(c,q,t)=α*serv(c,q,t)+(1-α)*trac(c,q,t)其中,c表示出租车,u(c,q,t)表示匹配效能,serv(c,q,t)表示服务水平,trac(c,q,t)表示轨迹效能,α表示一个固定的比例系数,其取值范围为[0,1],t表示所述空载的出租车开始匹配给一个已就绪出行请求的时刻。

4.如权利要求3所述的一种可预约的出租车匹配方法,其特征在于:所述实时请求的服务水平serv(c,q,t)的计算方式如下:其中,pt(c,q,t)为预估出租车接到乘客的时刻:

pt(c,q,t)=t+w(c,q,t)+δ

其中,w(c,q,t)为预估出租车驶往所述上车点所用时间,δ≥0为出租车等待时间,其定义如下等待时间δ表示若出租车在q.t1时刻前到达上车点,出租车需要等待的时间。

5.如权利要求3所述的一种可预约的出租车匹配方法,其特征在于:所述预约请求的服务水平serv(c,q,t)的计算公式如下:其中,K是一个大于等于1的参数。

6.如权利要求3所述的一种可预约的出租车匹配方法,其特征在于:所述轨迹效能的计算公式如下:其中,U是预设的固定参数,设置为出租车接到出行请求到接到乘客之前空驶的平均时间。

7.如权利要求3所述的一种可预约的出租车匹配方法,其特征在于:步骤4)中,将出租车匹配转化成最小代价流问题进行求解,具体的,出租车匹配问题为求取一个匹配方案使得所有的出租车和乘客匹配的总体效能最大:其中, 为当前匹配系统中所有的可行匹配的集合,t'为当前系统时间,Gr为路网,Q为已就绪请求的集合,C为可匹配的出租车集合,借助建立的所述匹配二分图,将出租车匹配问题转化为最小代价流问题:其中,Eb为匹配二分图中边的集合,cw(u,v)为匹配二分图中以u,v为顶点的边的代价权重,f(u,v)为匹配二分图中以u,v为顶点的边上的流量,该匹配二分图要满足以下约束:容量约束:f(u,v)≤capacity(u,v),即边上的流量不能超过边的容量对称性:f(u,v)=-f(v,u)流守恒: 对所有u≠Source,Sink

满足目标流量: 且

其中,Vb为匹配二分图上点的集合,w是集合Vb中的一个顶点,d为目标流量,m、n是分别是出租车数量和出行请求数量,求解该最小代价流问题,得到的匹配结果为所述最佳的出租车-乘客匹配方案。

8.如权利要求1所述的一种可预约的出租车匹配方法,其特征在于:步骤6)中,还包括对路网数据进行网格化操作,将出租车和出现请求定位到网格中,利用矩阵记录网格之间配对的最小权重,对匹配二分图进行增量式更新。

说明书 :

一种可预约的出租车匹配方法

技术领域

[0001] 本发明涉及响应式交通领域,特别是一种可预约的出租车匹配方法。

背景技术

[0002] 需求响应式交通系统(Demand Responsive Transit System)是公交、传统出租车等出行方式的重要的替代方案。系统由乘客、车辆以及调度服务商三方组成。调度服务商,如Uber和滴滴打车,对接大量的车辆和乘客。乘客实时发出请求,通过系统匹配,寻找最合适的车辆进行提供“一对一”的服务。
[0003] 然而,目前大多数的调度服务系统,都仅能处理随机和实时的顾客请求,对于顾预约请求则支持得还很不够。这主要是由于预约调度具有一些内在的困难和挑战性。首先,预约出行很重要的一点就是要接送准时。人们使用预约车的通常原因,是有一些重要的活动(如乘火车或飞机)需要安排。若车辆迟到使得乘客等待,预约乘客的服务体验会相当差。其次,城市道路的复杂性,使得目前仍然很难精确的预估车辆在路上的行驶时间。因此,预约的车辆如果要准时到达,必须在安排的时候预留了较宽松的时间提早到达。但这同时也带来另外的一些问题。比如提前到达的预约车辆需要寻找停车场所,但停车场所有限;而且,预约车服务需要更多的时间和精力,成本也会增加,这会减少它的市场份额。所有这些因素,使得目前的车辆调度系统要么不支持预约车服务,要么该服务是独立于目前调度系统来进行的。
[0004] 本发明方法把预约请求和实时请求统一纳入考虑范围,全局求解的“乘客-车辆”的匹配问题,合理分配出租车资源,可减少乘客的等待时间,提高出租车的行驶效率。

发明内容

[0005] 本发明的主要目的在于克服现有技术中的上述缺陷,提出一种可预约的出租车匹配方法,能够满足乘客预约乘车的需求,全局地调配出租车资源,合理地安排行驶路线。
[0006] 本发明采用如下技术方案:
[0007] 一种可预约的出租车匹配方法,其特征在于,包括如下步骤;
[0008] 1)初始化路网数据,根据出租车历史轨迹数据,构建时间依赖的速度网络;
[0009] 2)出租车实时更新所在的位置信息,空载/重载的状态信息,当乘客发起出行请求至中心服务器,中心服务器根据出行请求的时间窗,将出行请求分为实时请求和预约请求,其中实时请求以及部分满足条件的预约请求为已就绪请求,即可被调配;
[0010] 3)中心服务器将已就绪请求和空载的出租车抽象成节点建立匹配二分图,并计算已就绪请求和空载的出租车配对的效能;若该空载的出租车可在已就绪请求对应的时间窗内到达上车点,则将该空载的出租车和该已就绪请求对应的节点连上一条边,并以该配对的效能的负值作为该边的权重;
[0011] 4)往匹配二分图中加上两个点Source和Sink,其中Source连接所有出租车节点,Sink连接所有已就绪请求节点,计算匹配二分图的最小代价流方案,从而产生最佳的出租车-乘客匹配方案;
[0012] 5)根据出租车-乘客匹配方案,发送通知给出行请求成功的乘客,出租车则前往指定的上车点接乘客,并送达目的地;
[0013] 6)跳转到步骤(2)。
[0014] 步骤2)中,所述出行请求的数据格式包括如下:
[0015] q(olon,olat,dlon,dlat,t1,t2,t0)
[0016] 其中,olon表示上车点经度,olat表示上车点纬度,dlon表示终点经度,dlat表示终点纬度,时间窗[t1,t2]表示乘客希望出租车来接送的最佳时间段,t0表示出行请求生成的时间;
[0017] 根据出行请求q中的时间窗[t1,t2],将出行请求分为两类:实时请求Q1和预约请求Q3
[0018]
[0019] 其中T1是预设值,为作出预约请求的最小时间差;
[0020] 通过另外一个预设值T2>T1,将预约请求Q2进行进一步划分:
[0021]
[0022] t′表示当前的系统时间,根据以上的分类,定义出已就绪请求的集合:
[0023]
[0024] 为等待请求,所述已就绪请求可进入匹配系统寻找合适的出租车并被匹配服务,等待请求处于等待状态,直至其转换为已就绪请求方可进行匹配。
[0025] 在步骤3)中,所述效能公式如下:
[0026] u(c,q,t)=α*serv(c,q,t)+(1-α)*trac(c,q,t)
[0027] 其中,c表示出租车,u(c,q,t)表示匹配效能,serv(c,q,t)表示服务水平,trac(c,q,t)表示轨迹效能,α表示一个固定的比例系数,其取值范围为[0,1],t表示所述空载的出租车开始匹配给一个已就绪出行请求的时刻。
[0028] 所述实时请求的服务水平serv(c,q,t)的计算方式如下:
[0029]
[0030] 其中,pt(c,q,t)为预估出租车接到乘客的时刻:
[0031] pt(c,q,t)=t+w(c,q,t)+δ
[0032] 其中,w(c,q,t)为预估出租车驶往所述上车点所用时间,δ≥0为出租车等待时间,其定义如下
[0033]
[0034] 等待时间δ表示若出租车在q.t1时刻前到达上车点,出租车需要等待的时间。
[0035] 所述预约请求的服务水平serv(c,q,t)的计算公式如下:
[0036]
[0037] 其中,K是一个大于等于1的参数。
[0038] 所述轨迹效能的计算公式如下:
[0039]
[0040] 其中,U是预设的固定参数,设置为出租车接到出行请求到接到乘客之前空驶的平均时间。
[0041] 步骤4)中,将出租车匹配转化成最小代价流问题进行求解,具体的,出租车匹配问题为求取一个匹配方案 使得所有的出租车和乘客匹配的总体效能最大:
[0042]
[0043] 其中, 为当前匹配系统中所有的可行匹配的集合,t'为当前系统时间,Gr为路网,Q为已就绪请求的集合,C为可匹配的出租车集合,借助建立的所述匹配二分图,将出租车匹配问题转化为最小代价流问题:
[0044]
[0045] 其中,Eb为匹配二分图中边的集合,cw(u,v)为匹配二分图中以u,v为顶点的边的代价权重,f(u,v)为匹配二分图中以u,v为顶点的边上的流量,该匹配二分图要满足以下约束:
[0046] 容量约束:f(u,v)≤capacity(u,v),即边上的流量不能超过边的容量[0047] 对称性:f(u,v)=-f(v,u)
[0048] 流守恒: 对所有u≠Source,sink
[0049] 满足目标流量: 且
[0050] 其中,Vb为匹配二分图上点的集合,w是集合Vb中的一个顶点,d为目标流量,m、n是分别是出租车数量和出行请求数量,求解该最小代价流问题,得到的匹配结果为所述最佳的出租车-乘客匹配方案。
[0051] 步骤6)中,还包括对路网数据进行网格化操作,将出租车和出现请求定位到网格中,利用矩阵记录网格之间配对的最小权重,对匹配二分图进行增量式更新。
[0052] 由上述对本发明的描述可知,与现有技术相比,本发明具有如下有益效果:
[0053] 本系统结合出租车的历史轨迹和呼叫数据,全局求解出租车预约请求和实时请求的调配问题,合理分配出租车资源,可减少乘客的等车时间,提高出租车的行驶效率,提高出租车司机的收益。

附图说明

[0054] 图1为本发明系统的流程图;
[0055] 图2为本发明系统的架构图;
[0056] 图3为“车辆-乘客”匹配二分图示例图;
[0057] 图4为“车辆-乘客”匹配二分图更新的示意图;
[0058] 图5厦门市岛内路网网格化示意图;
[0059] 图6 MCF、MUF、RRO三种方法的请求满足率的对比;
[0060] 图7 MCF、MUF、RRO三种方法的请求满足率的对比;
[0061] 图8 MCF、MUF、RRO三种方法司机总收入的对比。

具体实施方式

[0062] 以下通过具体实施方式对本发明作进一步的描述。
[0063] 本发明的一种可预约的出租车匹配方法,其包括有:初始化城市路网、匹配效能的计算、匹配二分图的建立、最优匹配的计算、匹配二分图的增量式更新。参见图1、图2,下面介绍主要的各步骤实现细节:
[0064] 1)初始化路网数据,根据出租车历史轨迹数据,构建时间依赖的速度网络。
[0065] 路网的最基本的数据是地图数据文件,可从openstreet上导出的。首先将地图文件上的非道路的元素过滤掉,然后将该文件导入到数据库中(如neo4j数据库)。同时,读取出租车定位和行驶记录,统计计算得到速度网络。其中,出租车定位和行驶记录可来自出租车公司某个时间段内所有的有效数据,格式为:
[0066] D(lon,lat,dir,speed,day,hour,minute,date)
[0067] 数据从左到右,依次为经度lon、纬度lat、方向dir、速度speed、日期day(7月n日)、小时hour、分钟minute、日期date。速度网络中每条路段有144个值,分别表示一天中每个10分钟内该路段的行驶速度(144=24*60/10)。每个速度的计算方法是,计算以上的出租车记录在对应时间段、在对应路段的速度的加权平均值。
[0068] 2)匹配效能的计算。出租车实时更新所在的位置信息,空载/重载的状态信息;当乘客发起出行请求至中心服务器,中心服务器根据出行请求的时间窗,将出行请求分为实时请求和预约请求,其中实时请求以及部分满足条件的预约请求为已就绪请求,即可被调配。
[0069] 乘客的出行请求的数据格式如下:
[0070] q(olon,olat,dlon,dlat,t1,t2,t0)
[0071] 其中,olon表示起点经度,olat表示起点纬度,dlon表示终点经度,dlat表示终点纬度,时间窗[t1,t2]表示乘客希望出租车来接送的最佳时间段,t0表示出行请求生成的时间。
[0072] 根据出行请求的时间窗[t1,t2],将出行请求分为两类:实时请求Q1和预约请求Q2[0073]
[0074] 其中T1是预设值,为作出预约请求的最小时间差;
[0075] 通过另外一个预设值T2>T1,将预约请求Q2进行进一步划分:
[0076]
[0077] 根据以上的分类,定义出已就绪请求的集合:
[0078]
[0079] 为等待请求,所述已就绪请求可进入匹配系统寻找合适的出租车并被匹配服务,等待请求处于等待状态,直至其转换为已就绪请求方可进行匹配。
[0080] 当考虑一辆出租车是否要去接送某位乘客时,会用一个分值来评估,这个分值又称为匹配效能。匹配效能越高,则表示这辆出租车去接送这个乘客越合理、经济和快速。
[0081] 用t表示一辆出租车开始匹配给一个出行请求q的时刻。用以下公式计算一个匹配的效能:
[0082] u(c,q,t)=α*serv(c,q,t)+(1-α)*trac(c,q,t)
[0083] 其中,c表示出租车,u(c,q,t)表示匹配效能,serv(c,q,t)表示服务水平效能,trac(c,q,t)表示轨迹效能,α表示一个固定的比例系数,其取值范围为[0,1]。
[0084] 实时请求和预约请求的serv(c,q,t)的计算方式有所不同;
[0085] 对于实时请求,serv(c,q,t)的计算公式如下:
[0086]
[0087] 其中,pt(c,q,t)为预估出租车接到乘客的时刻
[0088] pt(c,q,t)=t+w(c,q,t)+δ
[0089] 其中,w(c,q,t)为预估出租车驶往乘车起点所用时间,δ≥0为出租车的等待时间,其定义如下
[0090]
[0091] 等待时间δ表示若出租车在q.t1时刻前到达乘车起点出租车需要等待的时间。
[0092] 对于预约请求,serv(c,q,t)的计算公式如下:
[0093]
[0094] 其中,K是一个大于等于1的参数,K值越大,系统越倾向预约请求的调配。
[0095] 轨迹效能的计算公式如下:
[0096]
[0097] 其中,U是系统预设一个固定参数,一般设置为出租车接到请求到接到乘客之前,空驶的平均时间。
[0098] 对整个匹配系统来说,假设它的路网为Gr,当前时间为t,请求集合Q中由n个请求,出租车集合C中有m辆出租车,那么,Q与C之间的匹配可以用一个n×m的矩阵M表示。矩阵中的元素ai,j默认值为0,当一辆出租车ci被匹配给一个乘客请求qj时,ai,j为1。这个匹配为可行的匹配要满足以下两个条件:
[0099] 条件1:如果ai,j=1,则pt(c,q,t)∈[q.t1,q.t2]
[0100] 条件2: j=1,...,m
[0101] 条件1表示出租车需要在指定的时间内接到乘客,条件2表示一个乘客只能被一个出租车接到。这个可行的匹配的在t时刻总体效能定义如下:
[0102]
[0103] 3)匹配二分图的建立:中心服务器将已就绪请求和空载的出租车抽象成节点建立匹配二分图,并计算已就绪请求和空载的出租车配对的效能;若该空载的出租车可在已就绪请求对应的时间窗内到达上车点,则将该空载的出租车和该已就绪请求对应的节点连上一条边,并以该配对的效能的负值作为该边的权重。
[0104] 本发明运用匹配二分图来解决出租车和乘客匹配的总体最优问题。将空闲的出租车抽象成节点放在左侧,未确定匹配的请求抽象成节点放右侧。对于每一个乘客请求,如果出租车能够在它的请求时间窗[t1,t2]内到达起点并接送,则将该出租车节点和该请求节点连上线。此外,往二分图中加上两个特别的点Source和Sink,Source节点用线连接所有的出租车节点,Sink节点用线连接所有的请求节点。用Eb表示二分图上所有边的集合,每条边都有一个容量cap和一个代价权重cw,其定义如下:
[0105] cap(vi,vj)=1,(vi,vj)∈Eb
[0106]
[0107] 可参见图2
[0108] 4)最优匹配的计算:往匹配二分图中加上两个点Source和Sink,其中Source连接所有出租车节点,Sink连接所有已就绪请求节点,计算匹配二分图的最小代价流方案,从而产生最佳的出租车-乘客匹配方案
[0109] 最优匹配即为总体效能最大的可行匹配。假设 为在t时刻所有可行匹配的集合,则最优匹配的效能为:
[0110]
[0111] 为当前匹配系统中所有的可行匹配的集合,t'为当前系统时间,求取某一时刻t'的最优匹配 的问题称为静态最大匹配效能问题。借助建立的匹配二分图,可将静态最大匹配效能问题转化为最小代价流问题:
[0112]
[0113] Eb为匹配二分图中边的集合,cw(u,v)为匹配二分图中以u,v为顶点的边的代价权重,f(u,v)为匹配二分图中以u,v为顶点的边上的流量求解最小代价刘问题时,二分图要满足以下约束:
[0114] 容量约束:f(u,v)≤capacity(u,v),即边上的流量不能超过边的容量[0115] 对称性:f(u,v)=-f(v,u)
[0116] 流守恒: 对所有u≠Source,Sink
[0117] 满足目标流量: 且
[0118] 其中,Vb为二分图上点的集合,d为目标流量,m、n是分别是车辆数和请求数。
[0119] 求解最小代价流的步骤如下:
[0120] (1)d=min(|C-ΔC|,|Q-ΔQ|),其中,ΔC为在匹配二分图中与请求节点无连线的出租车节点的数量,ΔQ为二分图中与出租车节点无连线的请求节点数量;
[0121] (2)若d>0,则用最小代价流算法求解最小代价流;否则,算法结束,该二分图无最小代价流;
[0122] (3)如果能够求得满足流量d的最小代价流,则保留该匹配结果,算法结束;如果无法求得满足流量d的最小代价流,则表示流量d过大,令d=d-1,继续(2)。
[0123] 步骤(2)中的最小代价流问题(Minimum-cost flow problem,MCFP)是运筹学和图论中的一个经典问题。由于目标和约束条件都是线性的,因此可通过线性规划(linear programming)的方法来求解。典型的算法有Cycle Cancelling算法(Morton Klein,"A primal method for minimal cost flows with applications to the assignment and transportation problems".Management Science.14:205–220.doi:10.1287/mnsc.14.3.205,1967),Network Simplex算法(Orlin,James B."A polynomial time primal network simplex algorithm for minimum cost flows".Mathematical Programming.78(2):109–129.doi:10.1007/BF02614365.ISSN 0025-5610,1997)等。
[0124] 5)根据出租车-乘客匹配方案,发送通知给出行请求成功的乘客,出租车则前往指定的上车点接乘客,并送达目的地。
[0125] 6)跳转到步骤(2),匹配二分图的增量式更新。
[0126] 出租车和乘客的出行请求的状态会随着系统的运转而发生变化,每一个时间段内的匹配最大总体效能有可能不能,匹配方案也不同。匹配系统随着时间变化去改变匹配方案以达到更大的总体效能,这对于预约式的请求尤为重要。当一个请求仍然有充裕的时间等待被服务时,原来已经匹配的出租车可以被更换以达到更大总体效能。但是,频繁地计算、更改匹配方案会使得系统负担加重。因此,采用增量式更新的方式。
[0127] 参见图4,用Q′和C′分别表示在时间t′=t+ut时刻的请求集合和出租车集合。ut是系统做出匹配方案调整的时间间隔。在ut这段时间里,有些出租车可能会由载客状态变为空车状态,有些新的请求可能会出现,有些乘客可能被到达的出租车接走。
[0128] Q′由两部分组成:Q′=Q-∪Q+,其中Q-是由在t时刻的请求集合Q衍生而出的,而Q+则代表了新加入的请求。同样的,C′=C_∪C+,其中C-是由在t时刻的出租车集合C衍生而出的,而C+则代表了新加入的出租车。Q-Q-和C-C-内的请求和出租车所对应的节点将从二分图中删除。需要删除的包括以下两种情况:(1)出租车c已经被匹配给请求q且w(c,q)<τ。τ为预先设定的一个阈值。也就是说当一辆出租车即将到达其预备接送的乘客的起点时,该组匹配无法被撤销。(2)请求q没有匹配的出租车且q.(t+δ)
[0129] 将路网平均分成k行k列,于是路网被分成k2个网格,用gi表示,其中1≤i≤k2。在此基础上,定义代价矩阵L(k2,k2),用dist(i,j)表示网格gi到网格gj的最小代价权重。该矩阵随着时间而改变。可参见附图3。匹配二分图的更新步骤如下所示:
[0130] a)对于已经被出租车接到的乘客,从二分图中删除掉该组匹配对应的出租车节点和请求节点;
[0131] b)对于长时间没有合适的出租车来服务的请求,请求被拒绝,将其节点从二分图中删除;
[0132] c)对于即将到达其预备接送的乘客的起点的出租车,从二分图中删除掉该出租车节点与其他请求节点的连线;同样,也删除掉该请求节点与其他出租车节点的连线边;
[0133] d)对于所有属于C+的出租车,分别计算它与二分图中所有可达的请求的cw并赋到它们连接的边上;
[0134] e)对于所有属于C-的出租车c,它与所有的Q+中的q,如果满足dist(gc,gq)<max{q.t2-t′:q∈Q+},则重新计算它与Q′中所有请求节点的cw;否则,看该与出租车节点相连的所有请求节点,如果dist(gc,gq)>q·t2-t′,则将该出租车节点与该请求节点的相连的边删除,否则,根据出租车当前的行驶位置更新cw。
[0135] 实验验证
[0136] 实验验证采用实际的路网数据和出租车行驶轨迹数据。路网数据来自于开源地图OpenStreetMap(简称OSM),地图范围为[118.0660E,118.1980E]×[24.4240N,24.5600N],将OSM路网数据存储在图数据库Neo4j供实验使用。借助Neo4j Spatial库来实现对路网的读取查询操作。Neo4j Spatial是一个针对Neo4j数据库的空间数据的导入、存储和查询等操作的程序调用库。出租车轨迹数据采用厦门市2014年7月1日到7月10日的行驶轨迹数据。该轨迹数据主要用于两个方面,一个方面是对数据进行定位、统计、计算等操作,建立速度网络。另一方面,获取轨迹数据中的出租车起始点和停靠点,用以模拟乘客请求的出发地和目的地。
[0137] 实验基于存储于Neo4j数据库中的路网,用JAVA语言编写。实验的具体过程如下:提前对出租车轨迹数据进行读取、定位、统计等操作,建立速度网络并存储到路网中,其中每条路段按照每10分钟统计一个速度,所以每条路段有144个速度(144=24*60/10)。随后,对厦门地图进行网格化,平均分为100个小矩形。图5给出了实验过程中对厦门路网网格化的示意图,有路网数据的矩形共有72个,对这72个小矩形寻找最接近其地理中心的道路节点作为锚点,并分时(每10分钟)计算各个矩形锚点之间的最短距离建立起费用矩阵,共得到144个费用矩阵,并存储到数据库中。模拟器读取车辆和请求的信息文件,生成车辆和请求,进行车辆和请求的模拟。首先为当前的时间内的车辆和请求建立二分流图,并计算出它们之间效用,然后,使用最小费用流算法计算出最小费用流方案,再根据这个方案来改变路网中的车辆和请求的匹配,确定匹配关系,更新二分图,更新车辆、请求。当模拟时间耗尽时,模拟终止。
[0138] 实验模拟生成了50辆出租车,按照每5秒一个的频率生成乘客请求,模拟时间90分钟。其中,预约请求占总的请求量的10%。实验先就结合预约请求的采用最小费用流匹配策略(Minimum-cost Flow,MCF)的匹配方法进行实验,得到请求满足率,乘客等待时间和司机总收入三项结果。下文我们用MCF指代本方面方法。此外,实验设置了两个对比算法,其中一个对比算法结合了预约式请求,采用Utility优先策略(Maximum Utility First,MUF),即Utility最大的匹配优先选择并确定,而不是追求整体的最大的策略;另一个对比算法不考虑预约式的请求,采用将预约请求当作实时请求处理的匹配策略(Realtime Request Only,RRO)。
[0139] 请求的满足率的对比结果如图6所示。可以看到,在总的请求满足率上,由于MCF采用整体最优的策略,所以MCF比MUF略高,与同样追求整体最优的RRO相比,MCF的总请求满足率与RRO相差不大。在预约请求的满足率上,MCF比MUF高,这应该是由于MUF在每次更新匹配时,总选择最大Utility的匹配优先确定,导致后面出现的预约请求无法匹配到车辆。RRO由于将预约请求当成实时请求处理,所以它的预约请求满足率为0。在实时请求满足率上,MCF与MUF相差不大,RRO明显高于其他两个算法,其原因是RRO将预约请求都当成实时请求处理。
[0140] 乘客的等待时间对比结果如图7所示。结合图6满足率的对比可以发现,在三种方法中,MCF预约请求满足率最大,预约请求通常会预留较多的时间来让车辆行驶到请求的出发点。所以,MCF等待时间会较其他两种方法来的小。而RRO将预约请求当作实时请求处理,使得它的平均等待时间明显高于其他两个算法。最后是司机收入的结果对比,如图8所示。MUF由于没有考虑整体的最优,使得它的收入低于MCF所带来的收入。而无预约匹配虽然整体的请求满足率不低,但是它将预约请求当作实时请求来处理,在收入上,没有预约请求的额外增收,使得收入比其他两种方法低。
[0141] 从模拟实验可以看出,本发明方法提出的全局求解出租车预约请求和实时请求的调配问题,可以合理分配出租车资源,可减少乘客的等车时间,提高出租车的行驶效率,提高出租车司机的收益。
[0142] 上述仅为本发明的具体实施方式,但本发明的设计构思并不局限于此,凡利用此构思对本发明进行非实质性的改动,均应属于侵犯本发明保护范围的行为。