CN107101643A - 一种拼车匹配方法 - Google Patents
一种拼车匹配方法 Download PDFInfo
- Publication number
- CN107101643A CN107101643A CN201710227650.3A CN201710227650A CN107101643A CN 107101643 A CN107101643 A CN 107101643A CN 201710227650 A CN201710227650 A CN 201710227650A CN 107101643 A CN107101643 A CN 107101643A
- Authority
- CN
- China
- Prior art keywords
- driver
- passenger
- distance
- time
- pickup
- 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
- 238000000034 method Methods 0.000 title claims abstract description 20
- 238000011176 pooling Methods 0.000 title abstract 3
- 238000012216 screening Methods 0.000 claims abstract description 20
- 230000008569 process Effects 0.000 claims description 12
- 230000008859 change Effects 0.000 claims description 3
- 238000000638 solvent extraction Methods 0.000 claims description 2
- 230000008901 benefit Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 230000007613 environmental effect Effects 0.000 description 2
- 238000003912 environmental pollution Methods 0.000 description 2
- 230000002035 prolonged effect Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000000630 rising effect Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 201000004569 Blindness Diseases 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000013138 pruning Methods 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/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/34—Route searching; Route guidance
- G01C21/3446—Details of route searching algorithms, e.g. Dijkstra, A*, arc-flags, using precalculated routes
-
- 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/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/34—Route searching; Route guidance
- G01C21/3407—Route searching; Route guidance specially adapted for specific applications
- G01C21/343—Calculating itineraries, i.e. routes leading from a starting point to a series of categorical destinations using a global route restraint, round trips, touristic trips
-
- 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/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/34—Route searching; Route guidance
- G01C21/3453—Special cost functions, i.e. other than distance or default speed limit of road segments
Landscapes
- Engineering & Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Automation & Control Theory (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
一种拼车匹配方法:步骤一:根据出发时间约束筛选司机;步骤二:根据欧式PickUp距离约束筛选司机;步骤三:利用最晚时间约束和费用约束筛选司机(欧式距离);步骤四:利用PickUp最短路距离约束筛选司机;步骤五:利用最晚时间约束和费用约束筛选司机(最短路距离);步骤六:执行匹配。适用于拼车系统的快速匹配。
Description
技术领域
本发明属于地理信息系统领域,涉及一种拼车匹配方法。
背景技术
随着城市人口的不断增长,机动车保有量的不断上升带来的交通拥堵、环境污染等问题日益严重。近年来开始出现的“拼车”理念凭借其充分利用现有车辆、缓解城市交通压力、减少环境污染等优势愈发收到关注。对于司机来说,拼车可以让他们挣取一定费用;而对于乘客,选择拼车不仅有价格上的优势,十分便捷。
但是由于目前拼车门槛低,愿意拼车的司机和乘客的数量不断上升,导致大量的拼车软件在市面上横行,而这些主流的拼车系统的拼车匹配方案大多不够合理:没有考虑降低司机的绕行距离,可能会导致同一时间段内路面上行驶车辆数的上升;或是考虑了司机的绕行距离但是往往需要长时间的计算匹配后才能告知用户匹配结果。日前,有来自麻省理工大学的研究表明,只需要3000辆专门用于拼车服务的共享汽车就可以取代纽约市13000量出租车。因此如何能够合理快速地安排司机与乘客的匹配,在同时满足司机和乘客的要求下使得同一时间段路面上的车辆数下降这一问题的解决便显得尤为重要。
目前已有的拼车匹配方式有以下几类:(1)拼车系统为每一名乘客匹配离他欧式距离最近的司机。这种简单的贪心策略虽然可能大多数情况下对乘客友好,但是也有不少情况下尽管司机乘客的直线距离很近但是司机却要绕很远的路才能接上乘客(例如司机恰好在道路对面),且这一方法并没有考虑到司机回程时出现的绕路情况,最坏情况下司机和乘客的目的地方向恰好相反。这样的盲目性匹配可能会导致道路上的车辆越来越多,背离了拼车环保的初衷(2)乘客需提早(数十分钟甚至几小时)向拼车系统提交拼车需求,系统计算完后返回安排规划。这类方式大多都有考虑司机与乘客线路的相关度,但是计算时间过长,若乘客临时有事或赶时间,显然不合适。并且在极端情况下可能会有经过长时间的计算最终告知乘客无司机可以匹配的情况发生。(3)现有的拼车系统更多的是站在使乘客便捷的角度设计的,往往忽视了司机的感受,譬如设计的路线与司机的原始路线相去甚远、没有考虑或者甚少考虑司机到达其目的地的时间要求等,对司机的使用体验较差。
发明内容
本发明要克服现有技术的上述缺点,提供一种拼车匹配方法,在司机的绕路距离全局最短并尽可能满足司机和乘客双方要求的前提下进行快速匹配。
本发明可以为拼车系统提供匹配计算支持。作为前提,拼车系统需要从司机那里获取起始位置信息orig(d)、目的地位置信息dest(d)、从起点的出发时间start_time(d)以及司机最晚到达目的地的时间约束max_time(d)。
同时乘客也需要向拼车系统提供起始位置信息orig(r)、目的地位置信息dest(r)、愿意支付的最大车费信息max_price(r)、期望的出发时间start_time(r)和出发时间差值Δt(r)(表示乘客希望在[start_time(r)-Δt(r),start_time(r)+Δt(r)]的时间范围内上车)。
上述信息中涉及地理位置信息的部分可由手机等设备的定位功能获取,其余信息由乘客或司机自行输入。
系统会实时维护一个司机集合D和乘客集合R,分别代表可供匹配的全体司机集合和全体乘客集合。每当有司机或乘客向系统发送新的拼车请求时,将他们加入对应的集合中;每当有一对司机和乘客匹配成功时,将他们从对应的集合中删去。本发明以乘客为基础,即根据乘客的条件来筛选司机。循环R中的每一个乘客,将所有符合条件的司机存在每一个乘客的临时列表中,当R玄幻完毕后,最后使用KM算法得到最终结果。
系统计算匹配的具体计算步骤如下:
步骤一:根据出发时间约束筛选司机
假定现在系统时间是8:00,有一名乘客希望在8:30~8:50之间出发,那么容易发现,对于全体司机集合D中的司机,若其出发时间在8:00之前,说明该司机直到出发时均未匹配到合适的乘客,则不纳入计算,并将其从D中删去;若其出发时间在8:50之后,则该司机无论如何都无法满足乘客的需求,无需对其继续计算。由此可以筛掉那些不满足条件的司机,将剩下的全部满足乘客出发时间约束的司机放入一个新的司机集合D1中。
此处存在的问题是如何快速的筛选符合条件的司机,若一个个判断司机集合D中的司机是否满足条件,当司机数量较多时速度会很慢。因此本发明采用了时间索引的方案,即根据司机的出发时间,将出发时间在同一时间段内的司机纳入同一个索引中,例如将出发时间在8:00~8:05分之间的所有司机纳入在同一个索引中。筛选时,只需从当前系统时间所对应的时间索引开始将对应的司机取出,一直取到乘客最晚上车时间对应的时间索引即可,这样就可以根据索引快速地筛选符合出发时间约束的司机。这样的做法还有一个好处:司机在发送拼车请求时,系统即可根据接收到的出发时间将其纳入相应的时间索引中,即时间索引的建立过程和实际匹配计算过程是分开的,进一步提高了效率。
步骤二:根据欧式PickUp距离约束筛选司机
对于集合D1中的司机,尽管已经满足了出发时间的约束条件,但是若司机起点和乘客起点的距离太远,无法按时接到乘客,那么他们也是不应该匹配的。所以可以根据司机起点到乘客起点的距离来筛选司机。由于实际最短路距离的计算开销十分大,而欧式距离(直线距离)的计算开销较小,所以可以先根据欧式距离筛选掉一部分司机,后根据实际距离筛选。
在这里要注意到,时间和距离是可以互相转换的(只需乘一个代表平均时速的常数,路程=速度*时间),根据乘客提供的出发时间区间,可以计算出从当前时间点开始多少距离范围区间内的司机可以到达接乘客。设最远距离为d_max(r),最近距离为d_min(r),可以以乘客的起始位置为圆心,分别以d_min(r)和d_max(r)为半径做两个圆,那么起始位置落在两个圆之间的司机就是符合欧式PickUp距离约束的司机。
如果将D1中的司机一个个取出来计算欧式PickUp距离并比较的话效率较为低下,因此采用了网格索引的方法,即将地图划分为n*m个大小相等的小矩形,那么每个司机的起始位置均能归属于某一个小矩形当中。筛选时,先根据乘客的起点位置找到对于的小矩形,然后从这个小矩形开始向旁边的小矩形扩展,找出所有包含在两个圆之间或和圆相交的小矩形,根据索引将小矩形内的司机全部取出来,然后对取出来的每一个司机,利用其实际出发时间和乘客上车时间区间来计算实际的欧式距离区间,判断司机和乘客间的欧式PickUp距离是否在距离区间中;剩余的小矩形中的司机均不可能符合条件,不予计算。这样就能大大降低计算量。同样的,与时间索引相同,司机在发送拼车请求时,系统即可根据接收到的起始位置将其纳入相应的网格索引中,即网格索引的建立过程和实际匹配计算过程也是分开的,进一步提高了效率。
将经过步骤二筛选后仍符合约束条件的司机放入新集合D2。
步骤三:利用最晚时间约束和费用约束筛选司机(欧式距离)
对于集合D2中的司机,若由于总路程太远导致司机无法在最晚到达时间之前到达目的地,或者由于总路程太远导致乘车费用过高,则也是无法匹配的。所以可以先计算出总路程,再根据司机的最晚时间约束和乘客的最大费用约束来筛选司机。同样的,为了减少计算开销,可以先计算欧式距离筛选,后计算实际距离筛选。
在进行步骤三之前,我们还需要对拼车的费用做一个设计:定义某一次拼车的的拼车费用为
Price(d,r)=RiderTrip(r)+Detour(d,r)①
其中d代表司机;r代表乘客;RiderTrip(r)为乘客从起点到终点的实际路网距离;Detour(d,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)为司机从司机起点到司机终点的距离,即Detour(d,r)为司机当前的路线与原路线的所经过的距离之差。
由上面两式可得
Price(d,r)=Pickup(d,r)+2*RiderTrip(r)+Return(d,r)-DriverTrip(d)③
其中RiderTrip(r)和DriverTrip(d)可在乘客和司机将位置信息发送到拼车系统时直接计算。有了这些,我们便可以继续筛选司机了。
对于D2中的每一名司机,计算司机终点与乘客终点的欧式距离Return,则加上步骤二求出的欧式PickUp距离和预先求出的RiderTrip(r)距离可求得一个总距离,同时利用预先求出的DriverTrip(d)距离可以预估乘客的乘车花费,此时判断是否满足司机最晚到达目的地的时间约束max_time(d)(时间和路程是可以互相转换的)以及乘客的最大花费约束。
将经过步骤三筛选后仍符合约束条件的司机放入新集合D3。
步骤四:利用PickUp最短路距离约束筛选司机
由于实际最短路距离总是大于等于欧式距离的,所以满足了欧式距离并不代表能满足实际最短路距离。
为了避免了欧式距离很近但是绕路距离很远的情况,对于D3中的司机,利用最短路算法计算每个司机起点与乘客起点之间的最短路PickUp长度,然后利用司机实际出发时间和乘客上车时间区间来计算实际的欧式距离区间,判断司机和乘客间的最短路PickUp距离是否在距离区间中。
将经过步骤四筛选后仍符合约束条件的司机放入新集合D4
步骤五:利用最晚时间约束和费用约束筛选司机(最短路距离)
D4集合中的司机都是可以满足在规定时间内接到乘客这个条件的,现在需要考虑的是司机在将乘客送达目的地后,自己是否能够在限定的时间内到达自己的目的地,以及乘客的费用约束(在这里要和步骤三中的费用约束做一下区分,步骤三中是在直线距离下的模拟情况,为了先剔除一部分司机,而本步骤才是最终进行匹配的距离及费用的约束)。
利用最短路算法计算D4中每个司机终点与乘客终点之间的最短路Return长度,用计算结果和步骤四中计算所得的PickUp最短路距离代替步骤三中的欧式Return距离和欧式PickUp距离,检查D4中每个司机是否满足司机的最晚到达时间约束和乘客的最大费用约束,将符合约束条件的的司机放入集合D5中。
步骤六:执行匹配
重复前5个步骤,对每一个乘客进行匹配,计算出所有乘客各自对应的可以匹配的司机集合,直到所有的乘客都进行完毕。然后建立一张二分图,图的左边节点代表司机,右边节点代表乘客,左边一节点di和右边一节点rj有边相连当且仅当司机di在乘客rj的可匹配司机集合中,边的权值为对应的绕路距离Detour(di,rj),对于建立好的图,利用KM算法计算带权最优匹配(使得所有乘客所匹配的司机的绕路距离总和最小)并返回匹配结果。
至此,匹配过程完成。
本发明的优点是:1.本发明在传统的“贪心”拼车匹配方法上综合考虑了司机接客时的绕路距离以及回程时的绕路距离,并使得匹配结果符合全局的绕路距离最小化,践行环保出行的理念。2.本发明在考虑了绕路距离的基础上,通过大量剪枝优化,使得匹配速度大大提升。3.本发明考虑到的司机到达目的地的最晚时间约束条件,更符合并贴近实际的拼车场景,更适用于解决实际的拼车问题。
附图说明
图1表示一名乘客与6名司机的起止位置图,图的左半部分为起点,右半部分为终点。d代表司机,r代表乘客。虚线圆代表以乘客起点为圆心的圆。内圆是满足乘客最早出发时间的距离,外圆是满足乘客最晚出发时间的距离。两圆之间的距离就是满足条件的距离。
图2表示一张步骤5所建立的二分图,图的d代表司机,r代表乘客,边上的权值代表乘客与司机的绕路距离。
具体实施方式
参照附图:
图1表示一名乘客与6名司机的起止位置图,图的左半部分为起点,右半部分为终点。
假定当前的时间为8:05,乘客给出的最晚上车时间区间为8:15~8:25,可承受的最大花费为25,乘客的RiderTrip(r)由计算得到为10,司机们的最晚到达时间均为8:55,司机的DriverTrip(d)均为30。(考虑到时间、路程、费用之间可以相互转换且互成正比,为了方便起见,下面的计算数据直接以时间为基准,如距离10代表10分钟司机能行驶的路程,费用10代表行驶十分钟的路程所要支付的费用)
司机的出发时间start_time(d)由下表给出:
则可建立时间索引如下:
8:00~8:05 | d3 |
8:05~8:10 | d2,d4 |
8:10~8:15 | d5,d6 |
9:00-9:05 | d1 |
由步骤一的时间索引筛选出发时间在8:25之前且在8:05之后的司机,得到D1={d2,d4,d5,d6}
在步骤二中,计算得出D1中各司机起点与乘客起点的欧式距离如下:
driver | EuclideanPickup |
d2 | 11 |
d4 | 24 |
d5 | 12 |
d6 | 14 |
由于乘客的最晚上车时间区间为8:15~8:25,且当前时间为8:05,可得欧式PickUp的距离区间的为10分钟到20分钟的路程。筛选符合这一区间范围的司机,得到D2={d2,d5,d6},然后逐一检查这些司机的实际出发时间,对于d2来说,其实际出发时间为8:06,所以其实际的距离区间为9分钟到19分钟的路程,11恰好在区间范围内,所以符合约束条件。d5,d6同理,最后得到D2={d2,d5,d6}。
在步骤三中,计算得到D2中司机终点与乘客终点的欧式距离如下:
driver | EuclideanReturn |
d2 | 9 |
d5 | 8 |
d6 | 6 |
则计算出的总距离(欧式PickUp+RiderTrip+欧式Return)如下:
由计算价格的③式可得:
max_price(r)>=Price(d,r)=Pickup(d,r)+2*RiderTrip(r)+Return(d,r)-DriverTrip(d)推得:
DriverTrip(d)+max_price(r)-RiderTrip(r)>=Pickup(d,r)+RiderTrip(r)+Return(d,r)所以总路程应该要小于等于30+25-10=45才能满足最大费用约束。
对于司机的最晚到达时间约束,因为当前为8:05,司机希望在8:55之前抵达目的地,则司机行驶的总路程不能超过50分钟的路程。
由此可知,司机的行驶总路程不超过45分钟路程时才能满足最晚时间约束和最大费用约束。
逐一检查D2中的司机,均符合最晚时间约束和最大费用约束,所以D3=D2={d2,d5,d6}
在步骤四中,计算得到D3中各司机起点与乘客起点的实际路网距离如下:
driver | Pickup |
d2 | 13 |
d5 | 14 |
d6 | 17 |
逐一检查D3中的司机,发现对于d6,其出发时间为8:10,对应的时间区间为5分钟到15分钟,而其实际的PickUp距离为17分钟的路程,超出了范围,所以把d6筛除。经过筛选,最终得到D4={d2,d5}
在步骤五中,经过计算得到各司机终点到乘客终点的实际Return距离如下:
driver | Return |
d2 | 14 |
d5 | 10 |
则计算出的总距离(实际PickUp+RiderTrip+实际Return)如下:
driver | TotalDistance |
d2 | 37 |
d5 | 34 |
均符合最晚时间约束和费用约束,所以D5=D4={d2,d5}
最终得到的乘客可匹配司机集合D5={d2,d5}
假设另有一名乘客r’,其可匹配司机集合为D5’={d2,d4,d5,d6},且乘客司机间的绕路距离Detour(di,rj)如下表所示:
d2 | d4 | d5 | d6 | |
r | 7 | / | 4 | / |
r’ | 4 | 7 | 3 | 6 |
则建立的二分图如图2所示,最终的匹配结果为(r,d5),(r’,d2)
假设r与d2匹配,r’分别与d4,d5,d6匹配,则总的绕路距离分别为7+7=14,7+3=10,7+6=13;若r与d5匹配,r’分别与d2,d4,d6匹配,则总的绕路距离分别为4+4=8,4+7=11,4+6=10。
可以看出,尽管r’和d5匹配时绕路距离是所有组合中最短的,但是会导致r只能和d2匹配,使得总体的绕路距离变大,因此尝试将r’和次短的d2匹配,体现了本发明“全局最优”的思想。
Claims (1)
1.一种拼车匹配方法,;包括如下步骤:
步骤一:根据出发时间约束筛选司机
筛掉那些不满足条件的司机,将剩下的全部满足乘客出发时间约束的司机放入一个新的司机集合D1中;
根据司机的出发时间,将出发时间在同一时间段内的司机纳入同一个索引中;筛选时,从当前系统时间所对应的时间索引开始将对应的司机取出,一直取到乘客最晚上车时间对应的时间索引,根据索引快速地筛选符合出发时间约束的司机;
步骤二:根据欧式PickUp距离约束筛选司机
对于集合D1中的司机,尽管已经满足了出发时间的约束条件,但是若司机起点和乘客起点的距离太远,无法按时接到乘客,那么他们也是不应该匹配的;,需要根据司机起点到乘客起点的距离来筛选司机;由于实际最短路距离的计算开销十分大,而欧式距离(直线距离)的计算开销较小,所以先根据欧式距离筛选掉一部分司机,后根据实际距离筛选,欧式距离即直线距离;
时间乘一个代表平均时速的常数换算成距离,距离=速度*时间;根据乘客提供的出发时间区间,计算出从当前时间点开始多少距离范围区间内的司机可以到达接乘客;;设最远距离为d_max(r),最近距离为d_min(r),以乘客的起始位置为圆心,分别以d_min(r)和d_max(r)为半径做两个圆,那么起始位置落在两个圆之间的司机就是符合欧式PickUp距离约束的司机;
如果将D1中的司机一个个取出来计算欧式PickUp距离并比较的话效率较为低下,因此采用了网格索引的方法,即将地图划分为n*m个大小相等的小矩形,那么每个司机的起始位置均能归属于某一个小矩形当中;;筛选时,先根据乘客的起点位置找到对于的小矩形,然后从这个小矩形开始向旁边的小矩形扩展,找出所有包含在两个圆之间或和圆相交的小矩形,根据索引将小矩形内的司机全部取出来,然后对取出来的每一个司机,利用其实际出发时间和乘客上车时间区间来计算实际的欧式距离区间,判断司机和乘客间的欧式PickUp距离是否在距离区间中;剩余的小矩形中的司机均不可能符合条件,不予计算;同样的,与时间索引相同,司机在发送拼车请求时,系统即可根据接收到的起始位置将其纳入相应的网格索引中,即网格索引的建立过程和实际匹配计算过程也是分开的;
将经过步骤二筛选后仍符合约束条件的司机放入新集合D2;
步骤三:在计算欧式距离基础上,利用最晚时间约束和费用约束筛选司机
对于集合D2中的司机,若由于总路程太远导致司机无法在最晚到达时间之前到达目的地,或者由于总路程太远导致乘车费用过高,则也是无法匹配的;所以可以先计算出总路程,再根据司机的最晚时间约束和乘客的最大费用约束来筛选司机;同样的,为了减少计算开销,可以先计算欧式距离筛选,后计算实际距离筛选;
对拼车的费用做一个设计:定义某一次拼车的的拼车费用为
Price(d,r)=RiderTrip(r)+Detour(d,r) ①
其中d代表司机;r代表乘客;RiderTrip(r)为乘客从起点到终点的实际路网距离;Detour(d,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)为司机从司机起点到司机终点的距离,即Detour(d,r)为司机当前的路线与原路线的所经过的距离之差;
由上面两式可得
Price(d,r)=Pickup(d,r)+2*RiderTrip(r)+Return(d,r)-DriverTrip(d) ③
其中RiderTrip(r)和DriverTrip(d)在乘客和司机将位置信息发送到拼车系统时直接计算;
对于D2中的每一名司机,计算司机终点与乘客终点的欧式距离Return,则加上步骤二求出的欧式PickUp距离和预先求出的RiderTrip(r)距离可求得一个总距离,同时利用预先求出的DriverTrip(d)距离可以预估乘客的乘车花费,此时判断是否满足司机最晚到达目的地的时间约束max_time(d)以及乘客的最大花费约束;
将经过步骤三筛选后仍符合约束条件的司机放入新集合D3;
步骤四:利用PickUp最短路距离约束筛选司机
由于实际最短路距离总是大于等于欧式距离的,所以满足了欧式距离并不代表能满足实际最短路距离;
为了避免了欧式距离很近但是绕路距离很远的情况,对于D3中的司机,利用最短路算法计算每个司机起点与乘客起点之间的最短路PickUp长度,然后利用司机实际出发时间和乘客上车时间区间来计算实际的欧式距离区间,判断司机和乘客间的最短路PickUp距离是否在距离区间中;
将经过步骤四筛选后仍符合约束条件的司机放入新集合D4;
步骤五:在计算最短路距离的基础上,利用最晚时间约束和费用约束筛选司机
D4集合中的司机都是可以满足在规定时间内接到乘客这个条件的,现在需要考虑的是司机在将乘客送达目的地后,自己是否能够在限定的时间内到达自己的目的地,以及乘客的费用约束;
利用最短路算法计算D4中每个司机终点与乘客终点之间的最短路Return长度,用计算结果和步骤四中计算所得的PickUp最短路距离代替步骤三中的欧式Return距离和欧式PickUp距离,检查D4中每个司机是否满足司机的最晚到达时间约束和乘客的最大费用约束,将符合约束条件的的司机放入集合D5中;
步骤六:执行匹配
重复前5个步骤,对每一个乘客进行匹配,计算出所有乘客各自对应的可以匹配的司机集合,直到所有的乘客都进行完毕;然后建立一张二分图,图的左边节点代表司机,右边节点代表乘客,左边一节点di和右边一节点rj有边相连当且仅当司机di在乘客rj的可匹配司机集合中,边的权值为对应的绕路距离Detour(di,rj),对于建立好的图,利用KM算法计算带权最优匹配并返回匹配结果,所述的带权最优匹配是使得所有乘客所匹配的司机的绕路距离总和最小。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710227650.3A CN107101643B (zh) | 2017-04-10 | 2017-04-10 | 一种拼车匹配方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710227650.3A CN107101643B (zh) | 2017-04-10 | 2017-04-10 | 一种拼车匹配方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107101643A true CN107101643A (zh) | 2017-08-29 |
CN107101643B CN107101643B (zh) | 2019-10-29 |
Family
ID=59675771
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710227650.3A Active CN107101643B (zh) | 2017-04-10 | 2017-04-10 | 一种拼车匹配方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107101643B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108053638A (zh) * | 2017-10-30 | 2018-05-18 | 张雷 | 一种实现行驶过程中匹配顺路乘客形成合乘的方法 |
CN108171460A (zh) * | 2017-12-29 | 2018-06-15 | 杭州王道控股有限公司 | 一种基于空车资源最大利用率的货车运输方法及其管理系统 |
CN108846542A (zh) * | 2018-04-24 | 2018-11-20 | 中华人民共和国湛江海事局 | 海上现场移动执法调度方法及海上执法调度系统 |
CN109360411A (zh) * | 2018-10-29 | 2019-02-19 | 北京汽车集团有限公司 | 拼车方法及系统 |
CN109903130A (zh) * | 2019-02-19 | 2019-06-18 | 杭州优行科技有限公司 | 派单区域获取方法、装置、服务器及计算机可读存储介质 |
CN110447050A (zh) * | 2017-12-04 | 2019-11-12 | 北京嘀嘀无限科技发展有限公司 | 用于在线按需服务中分配订单的系统和方法 |
CN110986991A (zh) * | 2019-12-29 | 2020-04-10 | 沈阳航空航天大学 | 同出发点车辆共乘方法 |
CN111126799A (zh) * | 2019-12-10 | 2020-05-08 | 广东工业大学 | 基于二分图的共享网络司乘匹配方法 |
CN111598517A (zh) * | 2020-05-20 | 2020-08-28 | 广州回头车信息科技有限公司 | 一种跨城货物顺路拼车的方法 |
CN111678530A (zh) * | 2020-06-05 | 2020-09-18 | 中国银行股份有限公司 | 拼车路径确定方法及装置 |
WO2021031634A1 (zh) * | 2019-08-20 | 2021-02-25 | 南京领行科技股份有限公司 | 一种基于实时单行程车辆的预约单连环派单方法和装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130158861A1 (en) * | 2011-12-19 | 2013-06-20 | Sap Ag | Increasing throughput for carpool assignment matching |
CN104217249A (zh) * | 2014-07-02 | 2014-12-17 | 浙江工业大学 | 一种基于时间与费用约束的动态拼车匹配方法 |
CN104268664A (zh) * | 2014-10-22 | 2015-01-07 | 浙江翼信科技有限公司 | 一种推荐拼车路线的方法及装置 |
CN104951848A (zh) * | 2015-06-10 | 2015-09-30 | 浙江工业大学 | 一种实时拼车匹配方法 |
CN105070040A (zh) * | 2015-07-18 | 2015-11-18 | 成都生辉电子科技有限公司 | 一种易于车主筛选的拼车方法 |
CN105243836A (zh) * | 2015-10-14 | 2016-01-13 | 深圳市十方联智科技有限公司 | 一种拼车方法和设备 |
CN105809484A (zh) * | 2016-03-11 | 2016-07-27 | 浙江工业大学 | 一种动态拼车计费处理方法 |
-
2017
- 2017-04-10 CN CN201710227650.3A patent/CN107101643B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130158861A1 (en) * | 2011-12-19 | 2013-06-20 | Sap Ag | Increasing throughput for carpool assignment matching |
CN104217249A (zh) * | 2014-07-02 | 2014-12-17 | 浙江工业大学 | 一种基于时间与费用约束的动态拼车匹配方法 |
CN104268664A (zh) * | 2014-10-22 | 2015-01-07 | 浙江翼信科技有限公司 | 一种推荐拼车路线的方法及装置 |
CN104951848A (zh) * | 2015-06-10 | 2015-09-30 | 浙江工业大学 | 一种实时拼车匹配方法 |
CN105070040A (zh) * | 2015-07-18 | 2015-11-18 | 成都生辉电子科技有限公司 | 一种易于车主筛选的拼车方法 |
CN105243836A (zh) * | 2015-10-14 | 2016-01-13 | 深圳市十方联智科技有限公司 | 一种拼车方法和设备 |
CN105809484A (zh) * | 2016-03-11 | 2016-07-27 | 浙江工业大学 | 一种动态拼车计费处理方法 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108053638A (zh) * | 2017-10-30 | 2018-05-18 | 张雷 | 一种实现行驶过程中匹配顺路乘客形成合乘的方法 |
CN110447050A (zh) * | 2017-12-04 | 2019-11-12 | 北京嘀嘀无限科技发展有限公司 | 用于在线按需服务中分配订单的系统和方法 |
CN108171460A (zh) * | 2017-12-29 | 2018-06-15 | 杭州王道控股有限公司 | 一种基于空车资源最大利用率的货车运输方法及其管理系统 |
CN108846542A (zh) * | 2018-04-24 | 2018-11-20 | 中华人民共和国湛江海事局 | 海上现场移动执法调度方法及海上执法调度系统 |
CN108846542B (zh) * | 2018-04-24 | 2022-03-15 | 中华人民共和国湛江海事局 | 海上现场移动执法调度方法及海上执法调度系统 |
CN109360411A (zh) * | 2018-10-29 | 2019-02-19 | 北京汽车集团有限公司 | 拼车方法及系统 |
CN109903130B (zh) * | 2019-02-19 | 2021-05-04 | 杭州优行科技有限公司 | 派单区域获取方法、装置、服务器及计算机可读存储介质 |
CN109903130A (zh) * | 2019-02-19 | 2019-06-18 | 杭州优行科技有限公司 | 派单区域获取方法、装置、服务器及计算机可读存储介质 |
WO2021031634A1 (zh) * | 2019-08-20 | 2021-02-25 | 南京领行科技股份有限公司 | 一种基于实时单行程车辆的预约单连环派单方法和装置 |
CN111126799A (zh) * | 2019-12-10 | 2020-05-08 | 广东工业大学 | 基于二分图的共享网络司乘匹配方法 |
CN111126799B (zh) * | 2019-12-10 | 2023-04-11 | 广东工业大学 | 基于二分图的共享网络司乘匹配方法 |
CN110986991A (zh) * | 2019-12-29 | 2020-04-10 | 沈阳航空航天大学 | 同出发点车辆共乘方法 |
CN110986991B (zh) * | 2019-12-29 | 2021-09-17 | 沈阳航空航天大学 | 同出发点车辆共乘方法 |
CN111598517A (zh) * | 2020-05-20 | 2020-08-28 | 广州回头车信息科技有限公司 | 一种跨城货物顺路拼车的方法 |
CN111678530A (zh) * | 2020-06-05 | 2020-09-18 | 中国银行股份有限公司 | 拼车路径确定方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107101643B (zh) | 2019-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107101643A (zh) | 一种拼车匹配方法 | |
CN104021667B (zh) | 整合预约服务与实时打车的出租车合乘调度系统及调度方法 | |
JP6423520B2 (ja) | サービスの供給状況を管理するシステム及び方法 | |
CN104931063B (zh) | 路径规划方法 | |
CN102637359B (zh) | 基于复杂路网的出租车合乘集群优化系统及其优化方法 | |
CN107036617A (zh) | 一种出租车与地铁组合的出行路线规划方法及系统 | |
Bischoff et al. | Proactive empty vehicle rebalancing for Demand Responsive Transport services | |
Jung et al. | Design and modeling of real-time shared-taxi dispatch algorithms | |
CN109598372A (zh) | 基于绿色共享交通的出行方案规划方法和共享交通系统 | |
CN106042963B (zh) | 电气化交通网络和电力系统的协同优化方法与系统 | |
CN110741225B (zh) | 确定目标站点的系统和方法 | |
CN104881710A (zh) | 一种基于车辆自组网的城市快递配送方法 | |
CN104864879A (zh) | 导航路径规划方法及装置 | |
CN112381472B (zh) | 一种地铁接驳公交线路优化方法、装置及存储介质 | |
US9074904B1 (en) | Method for solving carpool matching problem and carpool server using the same | |
JP2016085509A (ja) | 共用車両管理装置及び共用車両管理方法 | |
CN110929925A (zh) | 基于环境温度与用户行为的电动汽车充电站规划方法 | |
CN107590722A (zh) | 基于反向拍卖的移动打车服务系统的订单分配方法 | |
CN103714257B (zh) | 一种公共交通问题线路识别技术 | |
CN107527105B (zh) | 一种拼车组单方法 | |
CN106936171A (zh) | 一种充电控制方法、服务器、无人机、移动充电站及系统 | |
CN107545318B (zh) | 公交线路优先级确定、公交换乘线路排序方法及装置 | |
CN110505665A (zh) | 一种高铁移动终端用户小区切换方法和系统 | |
Jung et al. | Dually sustainable urban mobility option: Shared-taxi operations with electric vehicles | |
CN114936666B (zh) | 基于车-站-平台系统的电动汽车充电导航方法及系统 |
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 |