[发明专利]一种实时拼车匹配方法在审
申请号: | 201510315033.X | 申请日: | 2015-06-10 |
公开(公告)号: | CN104951848A | 公开(公告)日: | 2015-09-30 |
发明(设计)人: | 曹斌;赵立为;范菁 | 申请(专利权)人: | 浙江工业大学 |
主分类号: | G06Q10/04 | 分类号: | G06Q10/04;G06Q50/30 |
代理公司: | 杭州天正专利事务所有限公司 33201 | 代理人: | 王兵;黄美娟 |
地址: | 310014 浙*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 一种实时拼车匹配方法,包括如下步骤:步骤1实时拼车场景建模;步骤2,实时拼车匹配,步骤2包括:步骤21基于欧氏距离的乘客最大等待时间筛选策略;步骤22基于欧式距离的最大拼车费用筛选策略;步骤23渐进式Return筛选;步骤24渐进式Pickup筛选。 | ||
搜索关键词: | 一种 实时 匹配 方法 | ||
【主权项】:
一种实时拼车匹配方法,包括如下步骤:步骤1实时拼车场景建模;实际拼车场景中,乘客和司机均有起点和终点,此外,乘客还有最迟到达目的地时间和最大拼车费用的要求;为了实现拼车匹配,将对拼车费用建立模型,对拼车问题进行定义,并设计拼车匹配过程中的数据结构;步骤1‑1拼车费用建模;在拼车过程中,司机d首先需要从自己的起点赶到乘客r的起点,接着从乘客r的起点将乘客载至其终点,最后从乘客r的终点回到自己的终点;在拼车结束后,乘客r需要支付一定的拼车费用给司机作为报酬;根据上述的拼车过程,本方法中的拼车费用定义如下:Price(d,r)=RiderTrip(r)+Detour(d,r)其中Price(d,r)表示拼车费用;RiderTrip(r)表示拼车后司机和乘客共同走的路程,即司机载着乘客从乘客起点到乘客终点的路程,路程、费用以及时间均与距离成正比,因此可互相转化;Detour(d,r)表示司机相对其原始路线多走的路程,即绕道路程,其计算方式如下:Detour(d,r)=Pickup(d,r)+RiderTrip(r)+Return(d,r)–DriverTrip(d)其中,Pickup(d,r)是司机起点与乘客起点间的路程,即司机去接乘客时的费用;Return(d,r)表示司机目的地与乘客目的地间的路程距离,即司机在送完乘客时返回的费用;DriverTrip(d,r)是指司机在不接送乘客的情况下自己的原有路程;基于上述关系,可进一步得到计算拼车费用的如下公式:Price(d,r)=Pickup(d,r)+2*RiderTrip(r)+Return(d,r)–DriverTrip(d) (公式1)步骤1‑2拼车匹配过程建模;拼车场景中,乘客和司机都有其各自的拼车约束条件;其中乘客有起点、终点的拼车约束,以及最迟到达时间rmax_ArrTime和最大拼车费用rmax_Price拼车约束;司机有起点与终点的位置约束;因此,将拼车匹配过程定义如下:定义1.给定一个司机集合D和一个乘客r,拼车匹配旨在D中找到一个子集合D’,并且对于D’中的任意一个司机d,需要满足如下约束:·时间约束:Pickup(d,r)+RiderTrip(r)<rmax_ArrTime·费用约束:Price(d,r)<rmax_Price·Skyline约束:D’中的每个司机在Pickup(d,r)与Price(d,r)上是skyline关系;Skyline约束是指集合D’中的司机与司机之间在乘客到达时间与拼车费用两个属性上是skyline关系,即任意一个司机不会同时在等待时间和拼车费用上大于另一个集合中的司机;否则选择该司机则没有实际意义;因此在匹配过程当中,也对这一类的司机进行了相应的skyline过滤处理;步骤1‑3拼车数据结构设计;为了便于后续的拼车匹配计算、记录备选司机和匹配过程,需要设计相关的拼车数据结构;即如下两个表格:司机信息表(Driver Table):该表共有四个字段,用于记录司机的相关信息;包括:1)司机唯一标识ID;2)司机当前位置CurrentLocation;3)司机的目的地位置Destination;4)司机从当前位置到目的地需要经过的路程DriverTrip;匹配记录表(Matching Table):该表共有6个字段,作为拼车匹配记录和计算的依据;包括:1)司机唯一标识ID;2)司机起点与乘客起点间的最短实际路径Pickup,该值可换算表示成乘客的实际等待时间;(3)司机起点与乘客起点间的欧式距离EuclideanPickup;4)司机目的地与乘客目的地间的最短实际路径Return;5)司机目的地与乘客目的地间的欧式距离EuclideanReturn;6)司机的起点与目的地间的最短路径DriverTrip,即Driver Table中的第4个字段;步骤2,实时拼车匹配;使用场景中,会有大量的司机与乘客参与,在每次拼车匹配过程中,有大量的司机与乘客间的最短路径需要计算,而这些计算十分耗时,严重影响了实时拼车场景的应用;为此,设计了一系列的剪枝步骤,尽可能的减少最短路径计算数量,进而提高拼车匹配的效率;步骤2‑1基于欧氏距离的乘客最大等待时间筛选策略;本步骤的核心思路是使用乘客的最迟到达时间作为约束条件,将此条件转化为欧氏距离对司机进行筛选;●时间约束转化:乘客到达其目的地的时间为其等待时间Pickup与其从起点到目的地的路程对应的时间RiderTrip之和;由于乘客RiderTrip为定值,因此将乘客的最迟到达时间rmax_ArrTime与乘客的RiderTrip对应的时间相减即可得到乘客的最大等待时间Max_Pickup;即:Max_Pickup=rmax_ArrTime–Pickup;因此乘客的最迟到达时间被转化为最大等待时间,即司机的Pickup值不能超过Max_Pickup;●欧氏范围查询筛选:为了将不能在乘客最大等待时间Max_Pickup内赶到其起点的司机排除,可以采用欧氏范围查询的筛选方式;首先将时间Max_Pickup转化为对应的欧氏距离(用Max_Pickup乘以当前的路网平均车速),接着以乘客当前的起点为圆心,以Max_Pickup对应的欧氏距离为半径做一个圆形的范围查询(Range Query);所有不在此圆形范围内的司机将会被排除,原因是他们在最短距离(欧氏距离EuclideanPickup)的条件下也无法及时赶到乘客起点;步骤2‑2基于欧式距离的最大拼车费用筛选策略;对通过了上一步欧氏距离筛选的司机,将会被添加到匹配信息表中,并利用乘客的最大拼车费用约束进行进一步筛选,排除在欧氏距离下的所需拼车费用超过乘客最大拼车费用rmax_Price的司机;将拼车费用Price(d,r)(即公式1)当中的Pickup(d,r)和Return(d,r)使用欧氏距离代替,得到欧氏拼车费用公式:EuclideanPrice(d,r)=EuclideanPickup(d,r)+2*RiderTrip(r)+EuclideanReturn–DriverTrip(d) (公式2)因为路网实际距离大于欧氏距离,所以若司机使用公式2计算出的理想拼车费用EuclideanPrice(d,r)大于rmax_Price,则根据不等式的传递性,用公式1得出的实际费用Price(d,r)也将大于rmax_Price;因此这部分司机不满足乘客的最大拼车费用条件,将被排除;至此,步骤1与步骤2均未产生任何的最短路径距离计算,仅利用简单的欧氏距离计算可以过滤掉一部分司机;下面,对于通过上面两步骤筛选的司机,将通过匹配表重排序,对司机Return和Pickup渐进式的搜索与筛选,最后根据skyline的原则为乘客选出候选的司机;步骤2‑3渐进式Return筛选;对于匹配记录表中的每位司机,首先通过EuclideanPickup‑DriverTrip的值按递增进行排序,接着迭代地从匹配表中挑选出司机进行判断和筛选,直到匹配表中所有的所有司机都被计算过或被排除;迭代过程如下:a)以乘客终点为出发点,使用增量式的K近邻算法(Incremental K Nearest Neighbor),找到当前匹配记录表中Return值最小,即实际路网中的终点与乘客终点最近的司机;b)使用此真实Return值代替EuclideanPrice(d,r)(公式2)费用公式中的EuclideanReturn值,得到新的费用公式:Semi‑EuclideanPricePrice(d,r)=EuclideanPickup(d,r)+2*RiderTrip(r)+Return(d,r)–DriverTrip(d) (公式3)c)判断根据公式3计算得到的费用是否超过乘客的最大拼车费用rmax_Price,若超过此费用约束,则将此司机d从匹配信息表中删除;因为司机d提供拼车服务所需的费用大于乘客所能提供的最大拼车费用;同时删除匹配表中d司机以下的所有司机,因为下方的这些司机的EuclideanPickup‑DriverTrip和Return值都大于d,拼车费用也必然大于d;d)进入下一个迭代过程;步骤24渐进式Pickup筛选;对于匹配信息表中所有通过了渐进式Return筛选的司机,首先设置一个阀值MAX,初始化其值为乘客费用约束rmax_Price,接着通过Return–DriverTrip的值按递增顺序进行排序,然后迭代地从匹配表中挑选出司机进行判断和筛选,最后将符合skyline条件的司机加入备选司机集合,直到所有的司机都被处理完毕;迭代过程如下:e)以乘客起点为出发点,使用增量式的K近邻算法(Incremental K Nearest Neighbor),找到当前匹配记录表中Pickup值最小,即实际路网中起点与乘客起点最近的司机d;f)使用此真实Pickup值,与乘客最大等待时间Max_Pickup作比较,若大于乘客最大等待时间,则表示d无法满足乘客的时间约束条件,显然表中剩下的司机的Pickup都将大于d,因此将司机d和表中剩下所有司机都删除;本次匹配结束,返回候选司机集合;g)若真实Pickup小于乘客的最大等待时间,则根据此Pickup值以及司机d在Return筛选阶段得到的真实Return值计算公式1的拼车费用,此费用也将是司机d提供的实际费用;若此费用超过了MAX,则因为不满足skyline费用原则,将司机d和其下方的所有司机全部删除;h)若此司机的实际拼车费用小于MAX,则将此司机加入备选司机集合,然后更新MAX的值为此司机的拼车费用,再将此司机从匹配信息表中删除;更新MAX的值是因为最终返回的所有匹配司机要求是skyline关系;而新的候选司机相对前一个候选司机来说,由于其Pickup要比前一个司机大,所以其收取的拼车费用要比上一个候选司机小才能作为候选司机;i)进入下一个迭代过程。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江工业大学,未经浙江工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201510315033.X/,转载请声明来源钻瓜专利网。
- 同类专利
- 专利分类
G06 计算;推算;计数
G06Q 专门适用于行政、商业、金融、管理、监督或预测目的的数据处理系统或方法;其他类目不包含的专门适用于行政、商业、金融、管理、监督或预测目的的处理系统或方法
G06Q10-00 行政;管理
G06Q10-02 .预定,例如用于门票、服务或事件的
G06Q10-04 .预测或优化,例如线性规划、“旅行商问题”或“下料问题”
G06Q10-06 .资源、工作流、人员或项目管理,例如组织、规划、调度或分配时间、人员或机器资源;企业规划;组织模型
G06Q10-08 .物流,例如仓储、装货、配送或运输;存货或库存管理,例如订货、采购或平衡订单
G06Q10-10 .办公自动化,例如电子邮件或群件的计算机辅助管理
G06Q 专门适用于行政、商业、金融、管理、监督或预测目的的数据处理系统或方法;其他类目不包含的专门适用于行政、商业、金融、管理、监督或预测目的的处理系统或方法
G06Q10-00 行政;管理
G06Q10-02 .预定,例如用于门票、服务或事件的
G06Q10-04 .预测或优化,例如线性规划、“旅行商问题”或“下料问题”
G06Q10-06 .资源、工作流、人员或项目管理,例如组织、规划、调度或分配时间、人员或机器资源;企业规划;组织模型
G06Q10-08 .物流,例如仓储、装货、配送或运输;存货或库存管理,例如订货、采购或平衡订单
G06Q10-10 .办公自动化,例如电子邮件或群件的计算机辅助管理