基于二分图的共享网络司乘匹配方法与流程

文档序号:20689496发布日期:2020-05-08 19:13阅读:388来源:国知局
基于二分图的共享网络司乘匹配方法与流程

本申请涉及计算机、交通运输技术领域,特别涉及一种基于二分图的共享网络司乘匹配方法。



背景技术:

城市人口激增与日益增长的出行需求是造成城市交通拥堵的原因之一。近年来各地鼓励交通出行者使用公共交通服务。随着人工智能与自动驾驶技术的蓬勃发展,未来的交通方式将转变为以自动驾驶的出租车服务为主的共享交通模式。区别于传统的出租车,自动驾驶出租车系统必须依靠有效的合乘匹配算法,决定仍有空位的车辆与新乘客之间的匹配。

现有的出租车动态合乘匹配方法有:

《合乘动态匹配多级筛选方法》提出了一种三级匹配处理的合乘匹配方法,其中三层级分别是时间以及绕行约束、就近原则、用户喜好原则。第一二层级筛选出候选车辆集,第三层级进行匹配。其缺点在于:该专利根据用户喜好进行合乘匹配,但使用就近原则筛选候选集合的方法只能给用户提供局部选项。

《面向出租车动态合乘的智能调度方法和系统》提出了一种基于效用函数的合乘候选集筛选方法,其中效用函数包括路径拓扑、乘车费用两方面的信息。该专利使用效用函数估计合乘概率筛选候选集,根据用户的选择进行合乘匹配。其缺点在于无法进一步达到合乘的整体最优。

《一种出租车合乘匹配及付费方法》提出了以减轻价格的奖励方式的一种多人合乘思路,其缺点在于未给出实际可行的匹配方法和付费方法。

《基于复杂路网的出租车合乘集群优化系统及其优化方法》提出了一种基于复杂路网的多目标合乘匹配方法。该方案包含了合乘的乘客绕行比例之和最小、合乘车辆行驶路程最短的目标函数、合乘匹配方案最大化三个目标函数,其求解方法是遗传算法。其缺点在于其求解算法属于一种搜索算法,并不能严格保证达到全局最优,且其变量较难用简单的数据结构进行表示。

《quantifyingthebenefitsofvehiclepoolingwithshareabilitynetworks》提出了一种基于乘客与乘客匹配的共享网络的共享合乘模型,可适用于两人与三人之间的合乘。与本方案相比,其缺点在于分类情况多,公式较多,计算量大,且三人之间合乘匹配的计算时间无法满足现实需要。

上述方案主要提供了筛选合乘候选集的不同方法,并将用户选择作为匹配的依据,但未对合乘优化匹配方法进行进一步研究。根据用户的选择进行匹配的方法,仅仅适用于求解单个乘客或单个车辆的最优匹配情况,往往导致其他多名乘客无法得到理想的合乘方案,无法实现合乘的集群优化,达不到整体的最优化,未能有效提高合乘率。



技术实现要素:

本申请的目的是提供一种基于二分图的共享网络司乘匹配方法,能够适用于多乘客多车辆的多对多合乘匹配问题,有实质性地提高车辆的合乘率,减少交通污染。

为了实现上述任务,本申请采用以下技术方案:

一种基于二分图的共享网络司乘匹配方法,包括以下步骤:

乘客通过手持终端设备在出租车合乘预订系统中输入合乘的请求并上传至云服务器;

云服务器收集一段时间内在设定区域内的所有乘客发起的合乘的请求,并搜寻所述设定区域内的所有拥有空位的出租车集合;根据每个乘客的请求以及所述出租车集合中所有出租车的位置与载客信息,分别针对每一个乘客的请求筛选出满足出租车最大载客数约束并同时满足车上乘客与发出请求的乘客的时间约束的出租车,得到对应于每一个乘客的请求的候选出租车集合;

对所有请求和所有候选出租车进行多对多匹配,得到出租车与请求的最优匹配,并根据匹配结果生成订单;

对于未被接受的请求,将被加入到未匹配集合;云服务器再对未匹配集合所有的请求循环进行匹配,直到所有的请求被接受或者没有出租车可满足请求约束为止。

进一步地,所述合乘的请求包括出发地点、目的地点、出发时间、最晚到达时间、乘客数。

进一步地,所述对所有请求和所有候选出租车进行多对多匹配,以及对未匹配集合所有的请求循环进行匹配时采用的算法为二分图最大匹配算法。

进一步地,所述车上乘客与发出请求的乘客的时间约束,表示为:

对于车上乘客在新乘客上车之前下车,即ew≤tr,时间约束为:

对于车上乘客在新乘客下车之后下车,即ew≥er,时间约束为:

对于车上乘客在新乘客上下车之间下车,即tr≤ew≤er,时间约束为:

其中,ew表示出租车最晚到达时间,tr,er分别表示乘客的请求中设定的出发时间和最晚到达时间,or,ow分别表示请求出发地点和出租车当前所在位置,dr,dw分别表示请求的目的地点,出租车目的地,cuv表示地点u、v间的旅行时间,其中u、v表示or、ow、dr或dw。

进一步地,若乘客的容忍值记为θ,表示乘客在起始点和目的地能够接受的最大延迟时间,令t′r=tr+θ,e′w=ew+θ,e′r=er+θ,将它们代入时间约束条件公式,公式形式不变。

进一步地,所述对所有请求和所有候选出租车进行多对多匹配,包括:

将请求集合r中所有请求r与对应的候选出租车集合wc内出租车w的映射关系m转化为二分图b;其中,二分图的两个子集分别是请求集合r和有空车位的出租车集合w,二分图b的边则由请求集合r中所有请求r与对应候选集合w内出租车w的映射关系m组成,二分图b由左列的请求集合r和右列的出租车集合w以及连接左右顶点的映射m构成;

利用图论的二分图最大匹配算法求解出最优匹配集。

进一步地,所述将请求集合r中所有请求r与对应的候选出租车集合wc内出租车w的映射关系m转化为二分图b,包括:

先将请求集合r中所有请求r对以列的方式置于一边,出租车集合w中所有出租车w以列的方式置于另一边,再利用请求r与候选出租车集合wc的映射关系m,将请求r与对应的候选出租车进行连接,剔除未连接的对象,得到二分图b。

进一步地,所述利用图论的二分图最大匹配算法求解出最优匹配集,包括:

最优匹配集由边组成,集合中每个匹配代表新的请求r被对应的出租车w接受,可形成合乘关系,生成新的订单;根据最优匹配集中的每个匹配,更新对应的订单和出租车状态。

本申请具有以下技术特点:

1.提高车辆合乘率,进而提高车辆利用率。

本申请通过手持终端设备上传需求信息,由云服务器将需求信息和供应信息进行汇总处理,并以最大匹配为目标建立优化模型,因此,本申请能够利用到实时的供需信息,再使用基于图论的方法进行优化匹配,提高了车辆的合乘率,进而大大提高了车辆的利用率。

2.计算量较少,时间复杂度较低,能满足现实需求。

一是将人与人之间的合乘匹配问题转化为人与车的合乘匹配问题,减少了计算量。对于人与人之间的合乘匹配,假设车辆上没有乘客,判断两个请求的起始点与目的地在时间上的相对位置情况需要三次比较,在相对位置确定之后判断两位乘客能否合乘最坏需要四次比较,共十二次比较。对于人与车的合乘匹配,由于车上有乘客,判断两请求起始点与目的地的相对位置需要三次比较,在相对位置确定之后判断两位乘客能否合乘最坏需要三次比较,共九次比较。减少了比较次数也即减少了计算量。

二是继承了二分图最大匹配算法的优势。此类算法是一类在多项式时间内求解任务分配问题的组合优化算法,在本方案的具体表现是求解出租车合乘的最优匹配。

3.具有较强的兼容性和扩展性

提出了利用二分图来描述请求与车辆对象的关系。一方面能高效使用计算机的数组(邻接矩阵)或字典(邻接表)等数据结构进行存储和计算,另一方面便于使用许多成熟的图论算法进行求解,扩展性较强。

附图说明

图1为本申请的匹配方法的流程示意图;

图2为请求与车辆的二分图示意图;

图3为最优匹配集的示意图;

图4为匈牙利算法求解过程示意图;

图5为模拟数据示例图;

图6为一次司乘匹配算法的求解结果示例图;

图7为合乘率变化曲线图。

具体实施方式

本申请提供一种基于图论的合乘匹配方法,该方法将乘客之间的合乘匹配问题转化为乘客与出租车的合乘匹配问题,并提出了利用二分图来描述请求与出租车对象的关系,最后使用图论的二分图最大匹配算法求解合乘的最优匹配;下面对本申请的技术方案进行进一步详细说明。

本方案中定义了路网、请求、出租车三个对象。

路网用一个有向图g=(v,e)表,其中v是道路中顶点(vertex)的集合,e是边(edge)的集合,每条边记为(u,v)。边的取值表示旅行时间,用cuv表示,其中u、v是顶点。

请求r=<or,dr,tr,er>。or,dr分别表示请求起始点(上车点)和请求目的地(下车点),它们都是路网g上的某个顶点;tr,er分别表示乘客设定的出发时间和最晚到达时间。

出租车w=<ow,dw,ew>。ow,dw分别表示出租车当前所在位置和出租车目的地(车上乘客的下车点),它们都是路网g上的某个顶点;ew表示出租车最晚到达时间(到达车上乘客下车点最晚时间)。当车上没有乘客时,则ow=dw。

下面是对基础变量的解释说明:

一种基于二分图的共享网络司乘匹配方法,该方法可用于动态的两个乘客的合乘匹配过程,如图1所示,包括以下步骤:

s1,在乘客需要出租车合乘服务时,乘客通过手持终端设备在出租车合乘预订系统中输入合乘的请求并上传至云服务器;其中所述合乘的请求包括出发地点、目的地点、出发时间、最晚到达时间、乘客数。

s2,云服务器收集一段时间内,例如一分钟内在设定区域内的所有乘客发起的合乘的请求,并搜寻所述设定区域内的所有拥有空位的出租车集合;根据每个乘客的请求以及所述出租车集合中所有出租车的位置与载客信息,分别针对每一个乘客的请求筛选出满足出租车最大载客数约束并同时满足车上乘客与发出请求的乘客的时间约束的出租车,得到对应于每一个乘客的请求的候选出租车集合;即在不超载情况下,赶在最晚到达之间之前将乘客送达目的地的出租车的集合。

在该步骤中,所述设定区域的大小可以根据实际需求进行设定;在所述设定区域中,所有乘客的合乘请求r构成请求集合r,而在该区域中当前所有可用出租车,即拥有空车位的出租车构成集合w。对于每一个请求r,利用时间约束条件,所拥有空车位的出租车中筛选出相应的候选出租车集合wc,从而得到请求r与相应候选出租车集合wc内出租车的映射m。

其中,所述的时间约束为:

对于新的请求r和有空位的出租车,能够乘坐同一辆车的条件是满足时间约束。时间约束可分为车上乘客在新乘客上车之前下车、车上乘客在新乘客下车之后下车、车上乘客在新乘客上下车之间下车三种情况,其中后两种属于合乘情况。令cr,cw分别表示出租车从当前位置到达车上乘客目的地需要的旅行时间和从新请求起始点到目的地的旅行时间,则时间约束条件可用如下公式表示:

对于车上乘客在新乘客上车之前下车,即ew≤tr,时间约束需满足:

对于车上乘客在新乘客下车之后下车,即ew≥er,时间约束需满足:

对于车上乘客在新乘客上下车之间下车,即tr≤ew≤er,时间约束需满足:

若乘客的容忍值记为θ,表示乘客在起始点和目的地能够接受的最大延迟时间。令t′r=tr+θ,e′w=ew+θ,e′r=er+θ,将它们代入上面的三个时间约束条件公式(式1、式2、式3),公式形式不变。

s3,在对该时段内所有的请求进行过筛选操作并得到相应候选出租车集合之后,使用图论中的二分图最大匹配算法对所有请求和所有候选出租车进行多对多匹配,得到出租车与请求的最优匹配,并根据匹配结果生成订单;匹配成功意味着请求被接受,生成新的订单。

s3.1,将请求集合r中所有请求r与对应的候选出租车集合wc内出租车的映射关系m转化为二分图b,请求与出租车的二分图如图2所示。

设g=(v,e)是一个无向图,如果顶点v可分割为两个互不相交的子集(a,b),并且图中的每条边(i,j)所关联的两个顶点i和j分别属于这两个不同的顶点集(iina,jinb),则称图g为一个二分图。

在本方案中,二分图的两个子集分别是请求集合r和有空车位的出租车集合w,二分图b的边则由请求集合r中所有请求r与对应候选集合wc内出租车的映射关系m组成。如图2所示,二分图b由左列的请求集合r和右列的出租车集合w以及连接左右顶点的映射m构成。因而请求r与候选出租车集合wc的二分图转换的步骤描述如下:

根据方案的s2,得到所有请求r与对应候选出租车集合wc内出租车w所构成的映射关系m。先将请求集合r中所有请求r对以列的方式置于一边,出租车集合w中所有出租车w以列的方式置于另一边,再利用请求r与候选出租车集合wc的映射关系m,将请求r与对应的候选出租车进行连接,剔除未连接的对象,得到二分图b。

s3.2,利用图论的二分图最大匹配算法求解出最优匹配集。如图3所示,最优匹配集由边组成,集合中每个匹配代表新的请求r被对应的出租车w接受,可形成合乘关系,生成新的订单。根据最优匹配集中的每个匹配,更新对应的订单和出租车状态。

在图论中,边指向一个点成为匹配。已匹配的点不能够再次匹配。最大匹配是指最大基数的匹配。给定一个二分图,求解二分图最大匹配的算法有时间复杂度为o(n2)的匈牙利算法(hungarianalgorithm)、复杂度为霍普克洛夫特-卡普算法(hopcroft-karpalgorithm)。下面用以匈牙利算法进行举例。

匈牙利算法步骤如下:

(1)建立有向图g,分为二分图的左右两侧

(2)优先选择左侧序号更小的进行匹配。

(3)如果左侧两个点的目标点冲突,让序号小的点选择另一个可能的目标点进行匹配。如果没有可匹配的其他点,则匹配失败。

(4)不断重复(2),(3)步骤,直至遍历完左侧顶点,返回匹配集合。

在本方案中,如图2所示,第一步先通过执行(1)和步骤(2),得到由请求集合r和出租车集合w构成的二分图b。第二步按左侧序号的顺序,如图4步骤①②③④所示,依次从请求1、2、3进行匹配,其中步骤③展现了两个目标节点冲突的情况,其处理方法是让序号小的点选择另一个可能的目标点进行匹配,处理完的结果如步骤④所示。最终得到最优匹配集合,即请求1与出租车b合乘匹配、请求2与出租车c合乘匹配、请求3与出租车a合乘匹配。

s4,对于未被接受的请求,将被加入到未匹配集合;云服务器再对未匹配集合所有的请求循环使用二分图最大匹配算法,直到所有的请求被接受或者没有出租车可满足请求约束为止。

将未被匹配的请求加入未匹配集合。若该时段内的未匹配集合为空集或者未匹配集合中所有请求的候选出租车集合均为空,则算法结束,否则重复s3、s4。

数据模拟实例:

该实例采用模拟实验的方式对算法进行检验,其中需要模拟的对象有路网、出租车和请求。实验采用的路径规划算法为a*算法,选取的评价指标为一段时间内的合乘率。具体的模拟方法描述如下:

一、数据模拟方法

如图5模拟数据示例所示,路网采用矩阵的形式进行表示,行数和列数均为10,共100个节点,180条边。

对于请求,利用泊松过程对请求的产生时间进行随机模拟,其中选取的两请求之间的平均时间间隔为1分钟,请求的起点和重点从整个路网中的节点不重复地随机选取。如图5所示,图上的点表示请求的起点。请求的截止时间从最小距离和1,5倍最短距离中选取。

如图5所示,星号表示出租车,对于出租车,则随机在路网上选取7个节点作为出租车的车位置。

二、实验步骤

第一步,根据第一部分的数据模拟方法,生成10x10矩阵路网、平均时间间隔为1分钟的一天请求数据、初始化7辆车。

第二步,以10分钟为一批收集请求数据,使用本申请的匹配方法对请求进行派单,实时更新请求信息和出租车信息,迭代直至无数据或一天结束。

第三步,收集每10分钟内的合乘数和成功订单总数,计算合乘率,绘画合乘率变化图。

三、实验结果和分析

图6显示了一次司乘匹配算法的求解结果。图中共有8辆车、15个请求,请求包含了已匹配请求8辆和未匹配请求1辆。需要注意的是,图中只显示了5辆车的原因是其余两辆车的位置与请求的起点相同,星号被已匹配请求覆盖。图中(7,4)、(9,4)所示的两个请求被位于(9,8)的出租车先后接走,实现了合乘。

该实验采用的评价指标是一天内每两个小时的平均合乘率。该实验路网的规模是10,请求的产生的平均时间间隔是1分钟,总时长为一天。如图7合乘率变化曲线所示,一天内的平均合乘率为53.4%,每两个小时内的平均合乘率最低是47.8%,最高是64.2%,以方差为0.00193的较小波动幅度在平均值上下波动,显示了该合乘匹配算法具有较强稳健性的特点。

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