CN107180276B - 一种o2o外卖平台智能调度与路线优化方法 - Google Patents
一种o2o外卖平台智能调度与路线优化方法 Download PDFInfo
- Publication number
- CN107180276B CN107180276B CN201710368060.2A CN201710368060A CN107180276B CN 107180276 B CN107180276 B CN 107180276B CN 201710368060 A CN201710368060 A CN 201710368060A CN 107180276 B CN107180276 B CN 107180276B
- Authority
- CN
- China
- Prior art keywords
- order
- distributor
- assigned
- orders
- distribution
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 26
- 238000005457 optimization Methods 0.000 title claims abstract description 19
- 238000004364 calculation method Methods 0.000 claims abstract description 13
- 238000007781 pre-processing Methods 0.000 claims abstract description 8
- 239000011159 matrix material Substances 0.000 claims description 7
- 238000012163 sequencing technique Methods 0.000 claims description 7
- 230000000694 effects Effects 0.000 claims description 3
- 235000012054 meals Nutrition 0.000 description 4
- 238000010586 diagram Methods 0.000 description 2
- 101100460704 Aspergillus sp. (strain MF297-2) notI gene Proteins 0.000 description 1
- 241000531116 Blitum bonus-henricus Species 0.000 description 1
- 235000008645 Chenopodium bonus henricus Nutrition 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 235000013305 food Nutrition 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/04—Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
- G06Q10/047—Optimisation of routes or paths, e.g. travelling salesman problem
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/08—Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
- G06Q10/083—Shipping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/08—Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
- G06Q10/087—Inventory or stock management, e.g. order filling, procurement or balancing against orders
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
- G06Q50/12—Hotels or restaurants
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Economics (AREA)
- Tourism & Hospitality (AREA)
- Human Resources & Organizations (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- Marketing (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- Quality & Reliability (AREA)
- Development Economics (AREA)
- Entrepreneurship & Innovation (AREA)
- Operations Research (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Game Theory and Decision Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Primary Health Care (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种O2O外卖平台智能调度与路线优化方法,包括以下步骤:对外卖订单数据进行预处理;快速生成外卖订单智能指派模型;确定配送路线,估算配送成本。本发明对外卖订单数据进行预处理时考虑了配送时间、延迟成本等因素,减少了指派、路线选取环节的计算量。本发明对外卖订单进行智能快速指派提高外卖订单的指派效率。本发明利用外卖配送需先去商家取货后去客户送货的思想快速选取配送路线。本发明利用外卖订单预处理完成对动态时间、配送员位置与容量约束及配送与延迟单位成本等参数的初始化,对待指派订单按照其与已指派订单的距离智能选择配送员,利用外卖配送必先到商家取货、后向客户配送的思想为每个配送员快速选择配送路线。
Description
技术领域
本发明属于物流调度与优化技术,特别是一种O2O外卖平台订单智能调度与路线优化方法。
背景技术
当前有很多O2O外卖平台,如百度外卖、饿了么、美团等,而外卖调度与配送作为餐饮O2O的重要支撑环节,其优劣直接影响互联网餐饮外卖的进一步扩张与发展。然而,由于区域性限制、时效性要求高、利润点相对较低等诸多原因,外卖配送物流成本居高不下,外卖调度与配送优化是外卖平台最大的难题。
目前专门针对O2O外卖平台外卖调度与配送路线的公开文献较少,多数仍然采用传统物流配送优化模型及其变形,如设施选址-分配问题(LAP)、路径优化问题(VRP)和同时送取货VRP问题(VRPSPD)。LAP重点是确定配送中心最佳位置,不允许路线巡回访问;VRP虽允许路线巡回访问,但要求开始与结束位置都必须为同一配送中心,且二者都为先从配送中心取货,后向客户配送的过程;VRPSPD为同时送取货的车辆路径问题,所有配送货物都要从配送中心装车送至客户,所有从客户装车的货物都要送至配送中心。但这些方法应用于O2O外卖平台订单调度与配送路线选取时效果都不理想:1)由于外卖配送一般会划分合理的区域范围且距离不会太远,同时为了避免影响餐品质量与口味,一般要求出餐后30分钟送达客户,有严格的配送时间约束;2)传统物流配送优化问题都有固定的配送中心(一般中心较少)且车辆都从中心出发最终回到中心的闭环结构,而外卖配送路线优化问题,必须保证先去订单的商家取餐、后配送到客户,商家、客户不能同等对待,订单的商家、客户位置为动态需求且调度时配送员位置也不固定;3)传统物流配送优化问题调度之后转化为旅行商问题(TSP),寻找最优路线属于NP问题,多采用启发式算法求解,算法效率普遍较低,而O2O外卖平台订单非常多且比较集中,需要快速指派配送员并给出推荐路线。这些因素共同影响,使得O2O外卖平台外卖调度与配送优化问题的处理更为复杂。
发明内容
为解决现有技术存在的上述问题,本发明要提出一种同时考虑配送时间约束、商家与客户位置依据订单需求动态变化且快速高效的O2O外卖平台智能调度与路线优化方法。
为了实现上述目的,本发明的技术方案如下:1、一种O2O外卖平台智能调度与路线优化方法,其特征在于:包括以下步骤:
A、对外卖订单数据进行预处理
A1、依据当前未配送外卖订单记录,令K为已指派尚未完成配送的外卖订单数,K’为未指派配送员的外卖订单数,则Lsk或Lsk’分别为第k或k’个订单的商家位置,Lck或Lck’分别为第k或k’个订单的客户位置,由于位置主要用于计算距离,而外卖配送的区域范围非常小,用直线距离取代地理空间距离对结果不产生影响;k=1,2,…,K,k’=1,2,…,K’;
A2、令该配送区域内配送员数为N,xki=1或xk’i=1分别表示订单k或k’指派给配送员i,xki=0或xk’i=0分别表示订单k或k’未指派给配送员i;xi(s,t)表示配送员i是否需要走边e(s,t),即是否需要从s位置直接沿着边e(s,t)去t位置,其中是为1,否为0,边长记为l(s,t);订单k生效时刻为Tk0,订单k的客户希望最迟送达时刻为LTk,配送员到订单k的商家取餐的时刻为Tks,配送员把订单k送达客户的时刻为Tkt;s,t∈{(K+K’)个订单的商家或客户位置},i=1,2,…,N;
A3、给定配送员平均配送速度为v,单位时间配送成本为uc,超出指定配送时间的延迟单位时间成本为dc,通过当前配送员的手机GPS获取位置数据;计算当前所有K’+K个外卖订单的所有商家Lsk、客户位置Lck的边长,边长矩阵L=(l(s,t))2K×2K,边长实际为两点s(s1,s2)、t(t1,t2)的欧氏距离,如式(1)所示:
B、快速生成外卖订单智能指派模型
B1、给定配送员已指派未配送的订单容量约束为Q;
B2、判断:如果K’+K≤N×Q,则全部指派,否则只取K’中先下订单的(N×Q-K)作为本次要指派的订单,其他(K’+K-N×Q)个订单下次调度时指派,同时将本次需要指派的订单作为K’;
B3、将当前所有未指派订单按照订单生成的先后顺序排序,订单序号越小,表示订单生成越早,应该更优先被指派;设定当前未指派订单序号k’=1;
B4、判断:当前是否有空闲配送员i,i=1、2、…、N,有则将订单k’指派给配送员i,即xk’i=1,转到步骤B7,否则转到步骤B5;
B5、计算当前订单k’到所有已指派未完成订单的距离,如式(2)所示:
d(k’,k)=l(Lsk’,Lsk)+l(Lck’,Lck),k=1、2、…、K (2)
B6、将d(k’,k)按照距离由小到大的顺序排列,对应排序后的订单序号kmin=1、2、…、K,之后为订单k’指派配送员:
B61、设定当前排序后的订单序号kmin=1;
B62、订单kmin已指派的配送员为imin,判断:如果配送员imin已指派未完成数:
是则转到步骤B63;否则转到步骤B64;
B63、令kmin=kmin+1,判断:如果kmin≤K,转到步骤B62;否则转到步骤B8;
B64、将k’指定给配送员imin,即xk’imin=1;
B7、令当前商品节点序号k’=k’+1,K=K+1;判断:如果k’≤K’,则转到步骤B4;否则转到步骤B8;
B8、所有订单指派完毕,停止指派;
C、确定配送路线,估算配送成本
C1、设定当前配送员序号i=1,已指派未完成订单的配送成本Z=0;
C2、判断:如果配送员序号i≤N,则转到步骤C3,否则转到步骤C5;
C3、判断:如果配送员i没有已指派尚未完成的订单,则令Zi=0,转到步骤C4,否则估算配送员i的配送成本Zi:
C31、假定指派给配送员i的订单为ki=1,2,…,Ki,令Di={配送员i要配送订单的所有商家位置}={Lski|ki=1,2,…,Ki},Di’=Φ,Φ为空集,位置变量li为配送员i的当前位置,Zi=0,当前时刻为T;
C33、判断:如果dmin为某订单ki的商家位置Lski,则令Di’=Di’∪{dmin},同时用订单ki对应的客户位置Lcki取代Di中的dmin,Tkis=T,Zi=Zi+ti×uc;否则dmin为某订单的客户位置,则Di’=Di’∪{dmin},同时将dmin从Di中移除,即Di=Di-{dmin},Tkit=T,Zi=Zi+ti×uc+max{Tkit-LTk,0}×dc;
C34、判断:如果Di≠Φ,则转到步骤C32;否则Di’中元素的顺序即为配送顺序,转到步骤C4;
C4、令Z=Z+Zi,i=i+1,转到步骤C2;
C5、停止计算,输出每个配送员i的最优配送路线Di’和总的配送成本Z。
与现有技术相比,本发明具有以下有益效果:
1、本发明对外卖订单数据进行预处理时考虑了配送时间、延迟成本等因素
外卖订单数据包含商家、客户位置、订单时刻、订单期望配送时间要求等多指标因素,为了完成对配送员的智能快速指派和配送路线快速生成,本发明预处理过程中综合考虑配送员的当前位置、配送员到达商家及客户的时刻,预估配送员的平均配送速度、单位时间配送成本、超出指定配送时间的延迟单位时间成本等因素,并计算获得所有商家、客户的距离,减少指派、路线选取环节的计算量。
2、本发明对外卖订单进行智能快速指派提高外卖订单的指派效率
为避免出现个别配送员订单特别多而其他配送员空闲的情况,本发明为配送员设置订单容量约束,同时订单指派时优先指派空闲配送员;并依据订单生成时间的顺序指派配送员,避免出现个别订单由于与其他订单距离较远而长时间未被配送的情况。依据单一商家或客户位置进行指派,易于出现先到达客户但尚未到商家取货的情况,鉴于此,本发明为订单指派配送员时,同时考虑商家和客户的位置,只有二者距离都很近的订单才会指派给同一个配送员。
3、本发明利用外卖配送需先去商家取货后去客户送货的思想快速选取配送路线
传统路线优化问题应用于外卖配送时会受以下三个方面的制约:1)多数路线优化求解算法都需要给定配送中心,车辆从配送中心出发最终回到配送中心的闭环配送路线,而外卖配送的商家位置和数量都是动态需求,且配送路线不是闭环结构;2)多数路线优化求解算法由于是NP问题,都采用启发式算法求解,耗费时间长,而O2O外卖平台的订单数据量非常大,要求快速给出建议路线,无法完成多次访问订单数据的任务;3)传统算法即使能实现同时送取货的任务,但所有送的货都来自于固定配送中心,所有取得货都要送到固定配送中心,而外卖配送所有的外卖都需要从随机、动态的商家取货、配送给动态、随机的客户。因此,本发明利用先到商家、后到客户的思想选取路线可以消除外卖配送的条件制约,直接依据配送员到待取餐商家和已取餐客户的距离进行判断,无须固定配送中心或商家位置、无须多次访问数据、无须建立复杂模型即可快速完成配送路线选取过程。
4、本发明的方法包括三个过程:一个外卖订单数据预处理过程、一个快速生成外卖订单智能指派过程和依据已指派订单确定配送路线的过程;利用外卖订单预处理完成对动态时间、配送员位置与容量约束及配送与延迟单位成本等参数的初始化,对待指派订单按照其与已指派订单的距离智能选择配送员,利用外卖配送必先到商家取货、后向客户配送的思想为每个配送员快速选择配送路线,并估算配送成本,为调度员提供调度依据。
附图说明
本发明共有附图3张,其中:
图1是O2O外卖平台智能调度与路线优化流程图。
图2是订单初始关系结构图。
图3是订单最终配送路线图。
具体实施方式
下面参考附图,详细描述本发明提出的O2O外卖平台智能调度与路线优化方法。
如图1所示,本发明包括三个阶段:
1、对外卖订单数据进行预处理;
2、快速生成外卖订单智能指派模型;
3、确定配送路线,估算配送成本。
下面以具体例子来说明本发明的实施过程。假设现有待指派订单5个,配送员3个,已指派未完成订单3个,各订单通过GPS获取商家和客户的位置,详见表1,表1中订单的初始结构如图2所示。
表1订单情况
具体步骤如下:
A、对外卖订单数据进行预处理
A1、依据当前未配送外卖订单记录,令K=3为已指派尚未完成配送的外卖订单数,K’=5为未指派配送员的外卖订单数,则Lsk(或Lsk’)为第k(或k’)个订单的商家位置,Lck(或Lck’)为第k(或k’)个订单的客户位置,由于位置主要用于计算距离,而外卖配送的区域范围非常小,用直线距离取代地理空间距离对结果不产生影响;k=1,2,…,K,k’=1,2,…,K’;
A2、令该配送区域内配送员数为N=3,xki=1(或xk’i=1)表示订单k(或k’)指派给配送员i,为0表示未指派给配送员i;xi(s,t)表示配送员i是否需要走边e(s,t)(是否需要从s位置直接沿着边(s,t)去t位置),其中是为1,否为0,边长记为l(s,t);订单k生效时刻为Tk0,订单k的客户希望最迟送达时刻为LTk,配送员到订单k的商家取餐的时刻为Tks,配送员把订单k送达客户的时刻为Tkt;s,t∈{(K+K’)个订单的商家或客户位置},i=1,2,…,N;
A3、给定配送员平均配送速度为v=30km/h(0.5km/m),单位时间配送成本为uc=0.2元/m,超出指定配送时间的延迟单位时间成本为dc=0.2元/m,通过当前配送员的手机GPS获取位置数据。计算当前所有K’+K(即11)个外卖订单的所有商家Lsk、客户位置Lck的边长,边长矩阵L=(l(s,t))2K×2K,边长实际为两点s(s1,s2)、t(t1,t2)的欧氏距离,如式(1):
由定义可知l(s,t)=l(t,s),边长矩阵L为对称矩阵,可表示为上三角或下三角矩阵,具体见表2。
B、快速生成外卖订单智能指派模型
B1、给定配送员已指派未配送的订单容量约束为Q=5;
B2、判断:K’+K=8<N×Q=3×5,则可以全部指派。
B3、将当前所有未指派订单按照订单生成的先后顺序排序,订单序号越小,表示订单生成越早,应该更优先被指派,假定当前订单已经按照生成顺序排列;设定当前未指派订单序号k’=1(即订单1’);
B7、当前商品节点序号k’=k’+1=2,K=K+1=4,K=4对应订单为订单1’,当前各订单状态下表所示;判断:k’=2≤K’=5,则转到步骤B4;
订单 | 1 | 2 | 3 | 1’->4 | 2’ | 3’ | 4’ | 5’ |
订单状态 | 配送员1 | 配送员2 | 配送员2 | 配送员3 | 未指派 | 未指派 | 未指派 | 未指派 |
B5、计算当前订单k’到所有已指派未完成订单的距离,如式(2)
d(k’,k)=l(Lsk’,Lsk)+l(Lck’,Lck),k=1,2,…,K=4 (2)
如d(k’,1)=l(Lsk’,Ls1)+l(Lck’,Lc1)=1.68+8.91=10.59;
同样,得到d(k’,2)=11.92,d(k’,3)=14.23,d(k’,4)=5.54
B6、将d(k’,k)按照距离由小到大的顺序排列,分别为:d(k’,4)=5.54≤d(k’,1)=10.59≤d(k’,2)=11.92≤d(k’,3)=14.23,对应排序后的订单序号kmin=1,2,…,K,kmin=1对应的订单为订单4,kmin=2对应的订单为订单1,kmin=3对应的订单为订单2,kmin=4对应的订单为订单3,之后为订单k’指派配送员:
B61:设定当前排序后的订单序号kmin=1(对应订单4);
B64:将k’指定给配送员imin=3,即xk’3=1(订单2’指派给了配送员3)。
B7、当前商品节点序号k’=k’+1=3,K=K+1=5,当前各订单状态下表所示;判断:如果k’=3≤K’=5,则转到步骤B4;
B5、计算当前订单k’到所有已指派未完成订单的距离,如式(2)
d(k’,k)=l(Lsk’,Lsk)+l(Lck’,Lck),k=1,2,…,K=5 (2)
得到d(k’,1)=17.75,d(k’,2)=7.13,d(k’,3)=15.53,d(k’,4)=13.87,d(k’,5)=11.3
B6、将d(k’,k)按照距离由小到大的顺序排列,分别为:d(k’,2)=7.13≤d(k’,5)=11.3≤d(k’,4)=13.87≤d(k’,3)=15.53≤d(k’,1)=17.75,对应排序后的订单序号kmin=1,2,…,K,kmin=1对应的订单为订单2,kmin=2对应的订单为订单5,kmin=3对应的订单为订单4,kmin=4对应的订单为订单3,kmin=5对应的订单为订单1,之后为订单k’指派配送员:
B61:设定当前排序后的订单序号kmin=1(对应订单2);
B64:将k’指定给配送员imin=2,即xk’2=1(订单3’指派给了配送员2)。
B7、当前商品节点序号k’=k’+1=4,K=K+1=6,当前各订单状态下表所示;判断:如果k’=4≤K’=5,则转到步骤B4;
订单 | 1 | 2 | 3 | 1’->4 | 2’->5 | 3’->6 | 4’ | 5’ |
订单状态 | 配送员1 | 配送员2 | 配送员2 | 配送员3 | 配送员3 | 配送员2 | 未指派 | 未指派 |
B5、计算当前订单k’到所有已指派未完成订单的距离,如式(2)
d(k’,k)=l(Lsk’,Lsk)+l(Lck’,Lck),k=1,2,…,K=6 (2)
得到d(k’,1)=11.95,d(k’,2)=9.85,d(k’,3)=7.5,d(k’,4)=5.75,d(k’,5)=9.21,d(k’,6)=10.75
B6、将d(k’,k)按照距离由小到大的顺序排列,分别为:d(k’,4)=5.75≤d(k’,3)=7.5≤d(k’,5)=9.21≤d(k’,2)=9.85≤d(k’,6)=10.75≤d(k’,1)=11.95,对应排序后的订单序号kmin=1,2,…,K,kmin=1对应的订单为订单4,kmin=2对应的订单为订单3,kmin=3对应的订单为订单5,kmin=4对应的订单为订单2,kmin=5对应的订单为订单6,kmin=6对应的订单为订单1,之后为订单k’指派配送员:
B61:设定当前排序后的订单序号kmin=1(对应订单4);
B64:将k’指定给配送员imin=3,即xk’3=1(订单4’指派给了配送员3)。
B7、当前商品节点序号k’=k’+1=5,K=K+1=7,当前各订单状态下表所示;判断:如果k’=5≤K’=5,则转到步骤B4;
订单 | 1 | 2 | 3 | 1’->4 | 2’->5 | 3’->6 | 4’->7 | 5’ |
订单状态 | 配送员1 | 配送员2 | 配送员2 | 配送员3 | 配送员3 | 配送员2 | 配送员3 | 未指派 |
B5、计算当前订单k’到所有已指派未完成订单的距离,如式(2)
d(k’,k)=l(Lsk’,Lsk)+l(Lck’,Lck),k=1,2,…,K=7 (2)
得到d(k’,1)=9.14,d(k’,2)=6.28,d(k’,3)=9.8,d(k’,4)=8.48,d(k’,5)=7.56,d(k’,6)=12.3,d(k’,7)=11.03
B6、将d(k’,k)按照距离由小到大的顺序排列,分别为:d(k’,2)=6.28≤d(k’,5)=7.56≤d(k’,4)=8.48≤d(k’,1)=9.14≤d(k’,3)=9.8≤d(k’,7)=11.03≤d(k’,6)=12.3,对应排序后的订单序号kmin=1,2,…,K,kmin=1对应的订单为订单2,kmin=2对应的订单为订单5,kmin=3对应的订单为订单4,kmin=4对应的订单为订单1,kmin=5对应的订单为订单3,kmin=6对应的订单为订单7,kmin=7对应的订单为订单6,之后为订单k’指派配送员:
B61:设定当前排序后的订单序号kmin=1(对应订单2);
B64:将k’指定给配送员imin=2,即xk’2=1(订单5’指派给了配送员2)。
B7、当前商品节点序号k’=k’+1=6,K=K+1=8,当前各订单状态下表所示;判断:如果k’=6>K’=5,则转到步骤B8;
订单 | 1 | 2 | 3 | 1’->4 | 2’->5 | 3’->6 | 4’->7 | 5’->8 |
订单状态 | 配送员1 | 配送员2 | 配送员2 | 配送员3 | 配送员3 | 配送员2 | 配送员3 | 配送员2 |
B8、所有订单指派完毕,停止指派。
C、确定配送路线,估算配送成本Z
C1、设定当前配送员序号i=1,已指派未完成订单的配送成本Z=0;
C2、判断:如果配送员序号i=1≤N,则转到步骤C3
C3、判断:如果配送员i有已指派尚未完成的订单,则估算配送员i的配送成本Zi:
C31、假定指派给配送员i的订单为ki=1,2,…,Ki,令Di={配送员i要配送订单的所有商家位置}={Lski|ki=1,2,…,Ki},由于只有订单1指派给配送员1,所以Di={订单1的商家位置Ls1},Di’=Φ(空集),位置变量li为配送员i的当前位置,不失一般性,假定当前位置为(0,0),Zi=0,当前时刻为T=12:10;
C33、判断:dmin(即Ls1)为订单1的商家位置Lski,则令Di’=Di’∪{dmin}={Ls1},同时用订单1对应的客户位置Lcki取代Di中的dmin,即Di={Lc1},Tkis=T=12:20,Zi=Zi+ti×uc=0+10×0.2=2元;
C34、判断:如果Di={Lc1}≠Φ(空集),则转到步骤C32;
C33、判断:dmin为订单1的客户位置Lc1,则Di’=Di’∪{dmin}={Ls1,Lc1},同时将dmin从Di中移除,即Di=Di-{dmin}=Φ,Tkit=T=12:34,Zi=Zi+ti×uc+max{Tkit-LTk,0}×dc=2+14×0.2+max{12:34-12:40,0}×0.2=4.8;
C34、判断:由于Di=Φ,则Di’={Ls1,Lc1}中元素的顺序即为配送顺序,转到步骤C4;
C4、令Z=Z+Zi=4.8,i=i+1=2,转到步骤C2;
i=2
C3、判断:如果配送员i有已指派尚未完成的订单,则估算配送员i的配送成本Zi:
C31、假定指派给配送员i的订单为ki=1,2,…,Ki,令Di={配送员i要配送订单的所有商家位置}={Lski|ki=1,2,…,Ki},由于订单2、3、6、8都指派给配送员2,所以Di={Ls2,Ls3,Ls6,Ls8},Di’=Φ,位置变量li为配送员i的当前位置,不失一般性,假定当前位置为(0,0),Zi=0,当前时刻为T=12:10;
C33、判断:dmin(即Ls8)为订单8的商家位置Lski,则令Di’=Di’∪{dmin}={Ls8},同时用订单8对应的客户位置Lc8取代Di中的dmin,即Di={Ls2,Ls3,Ls6,Lc8},Tkis=T=12:19,Zi=Zi+ti×uc=0+9×0.2=1.8元;
C34、判断:由于Di={Ls2,Ls3,Ls6,Lc8}≠Φ(空集),则转到步骤C32;
C33、判断:dmin为订单8的客户位置Lc8,则Di’=Di’∪{dmin}={Ls8,Lc8},同时将dmin从Di中移除,即Di=Di-{dmin}={Ls2,Ls3,Ls6},Tkit=T=12:24,Zi=Zi+ti×uc+max{Tkit-LTk,0}×dc=1.8+5×0.2+max{12:24-12:50,0}×0.2=2.8;
C34、判断:由于Di={Ls2,Ls3,Ls6}≠Φ(空集),则转到步骤C32;
C33、判断:dmin(即Ls2)为订单2的商家位置Lski,则令Di’=Di’∪{dmin}={Ls8,Lc8,Ls2},同时用订单2对应的客户位置Lc2取代Di中的dmin,即Di={Lc2,Ls3,Ls6},Tkis=T=12:37,Zi=Zi+ti×uc=2.8+13×0.2=5.4元;
C34、判断:由于Di={Lc2,Ls3,Ls6}≠Φ(空集),则转到步骤C32;
C33、判断:dmin(即Ls6)为订单6的商家位置Lski,则令Di’=Di’∪{dmin}={Ls8,Lc8,Ls2,Ls6},同时用订单6对应的客户位置Lc6取代Di中的dmin,即Di={Lc2,Ls3,Lc6},Tkis=T=12:41,Zi=Zi+ti×uc=5.4+4×0.2=6.2元;
C34、判断:由于Di={Lc2,Ls3,Lc6}≠Φ(空集),则转到步骤C32;
C33、判断:dmin为订单6的客户位置Lc6,则Di’=Di’∪{dmin}={Ls8,Lc8,Ls2,Ls6,Lc6},同时将dmin从Di中移除,即Di=Di-{dmin}={Lc2,Ls3},Tkit=T=12:52,Zi=Zi+ti×uc+max{Tkit-LTk,0}×dc=6.2+11×0.2+max{12:52-12:50,0}×0.2=8.8;
C34、判断:由于Di={Lc2,Ls3}≠Φ(空集),则转到步骤C32;
C33、判断:dmin为订单2的客户位置Lc2,则Di’=Di’∪{dmin}={Ls8,Lc8,Ls2,Ls6,Lc6,Lc2},同时将dmin从Di中移除,即Di=Di-{dmin}={Ls3},Tkit=T=13:03,Zi=Zi+ti×uc+max{Tkit-LTk,0}×dc=8.8+11×0.2+max{13:03-12:40,0}×0.2=15.6;
C34、判断:由于Di={Ls3}≠Φ(空集),则转到步骤C32;
C33、判断:dmin(即Ls3)为订单3的商家位置Lski,则令Di’=Di’∪{dmin}={Ls8,Lc8,Ls2,Ls6,Lc6,Lc2,Ls3},同时用订单3对应的客户位置Lc3取代Di中的dmin,即Di={Lc3},Tkis=T=13:21,Zi=Zi+ti×uc=15.6+18×0.2=19.2元;
C34、判断:如果Di={Lc3}≠Φ(空集),则转到步骤C32;
C33、判断:dmin为订单3的客户位置Lc3,则Di’=Di’∪{dmin}={Ls8,Lc8,Ls2,Ls6,Lc6,Lc2,Ls3,Lc3},同时将dmin从Di中移除,即Di=Di-{dmin}=Φ,Tkit=T=13:36,Zi=Zi+ti×uc+max{Tkit-LTk,0}×dc=19.2+15×0.2+max{13:36-12:40,0}×0.2=33.4;
C34、判断:由于Di=Φ,则Di’={Ls8,Lc8,Ls2,Ls6,Lc6,Lc2,Ls3,Lc3}中元素的顺序即为配送顺序,转到步骤C4;
C4、令Z=Z+Zi=4.8+33.4=38.2,i=i+1=3,转到步骤C2;
C2、判断:如果配送员序号i=3≤N,则转到步骤C3;
C3、判断:如果配送员i有已指派尚未完成的订单,则估算配送员i的配送成本Zi:
C31、假定指派给配送员i的订单为ki=1,2,…,Ki,令Di={配送员i要配送订单的所有商家位置}={Lski|ki=1,2,…,Ki},由于订单4、5、7都指派给配送员3,所以Di={Ls4,Ls5,Ls7},Di’=Φ,位置变量li为配送员i的当前位置,不失一般性,假定当前位置为(0,0),Zi=0,当前时刻为T=12:10;
C33、判断:dmin(即Ls5)为订单5的商家位置Lski,则令Di’=Di’∪{dmin}={Ls5},同时用订单5对应的客户位置Lc5取代Di中的dmin,即Di={Ls4,Lc5,Ls7},Tkis=T=12:17,Zi=Zi+ti×uc=0+7×0.2=1.4元;
C34、判断:由于Di={Ls4,Lc5,Ls7}≠Φ(空集),则转到步骤C32;
C33、判断:dmin(即Ls4)为订单4的商家位置Lski,则令Di’=Di’∪{dmin}={Ls5,Ls4},同时用订单4对应的客户位置Lc4取代Di中的dmin,即Di={Lc4,Lc5,Ls7},Tkis=T=12:23,Zi=Zi+ti×uc=1.4+6×0.2=2.6元;
C34、判断:由于Di={Lc4,Lc5,Ls7}≠Φ(空集),则转到步骤C32;
C33、判断:dmin为订单4的客户位置Lc4,则Di’=Di’∪{dmin}={Ls5,Ls4,Lc4},同时将dmin从Di中移除,即Di=Di-{dmin}={Lc5,Ls7},Tkit=T=12:34,Zi=Zi+ti×uc+max{Tkit-LTk,0}×dc=2.6+11×0.2+max{12:34-12:40,0}×0.2=4.8;
C34、判断:由于Di={Lc5,Ls7}≠Φ(空集),则转到步骤C32;
C33、判断:dmin为订单5的客户位置Lc5,则Di’=Di’∪{dmin}={Ls5,Ls4,Lc4,Lc5},同时将dmin从Di中移除,即Di=Di-{dmin}={Ls7},Tkit=T=12:40,Zi=Zi+ti×uc+max{Tkit-LTk,0}×dc=4.8+6×0.2+max{12:40-12:40,0}×0.2=6;
C34、判断:由于Di={Ls7}≠Φ(空集),则转到步骤C32;
C33、判断:dmin(即Ls7)为订单7的商家位置Lski,则令Di’=Di’∪{dmin}={Ls5,Ls4,Lc4,Lc5,Ls7},同时用订单对7应的客户位置Lc7取代Di中的dmin,即Di={Lc7},Tkis=T=12:52,Zi=Zi+ti×uc=6+12×0.2=8.4元;
C34、判断:如果Di={Lc7}≠Φ(空集),则转到步骤C32;
C33、判断:dmin为订单7的客户位置Lc7,则Di’=Di’∪{dmin}={Ls5,Ls4,Lc4,Lc5,Ls7,Lc7},同时将dmin从Di中移除,即Di=Di-{dmin}=Φ,Tkit=T=13:00,Zi=Zi+ti×uc+max{Tkit-LTk,0}×dc=8.4+8×0.2+max{13:00-12:50,0}×0.2=12;
C34、判断:由于Di=Φ,则Di’={Ls5,Ls4,Lc4,Lc5,Ls7,Lc7}中元素的顺序即为配送顺序,转到步骤C4;
C4、令Z=Z+Zi=38.2+12=50.2,i=i+1=4,转到步骤C2;
C2、判断:如果配送员序号i=4>N,则转到步骤C5;
C5、停止计算,输出每个配送员i的最优配送路线Di’和总的配送成本Z:每个配送员i的最优配送路线为Di’,分别为:D1’={Ls1,Lc1},D2’={Ls8,Lc8,Ls2,Ls6,Lc6,Lc2,Ls3,Lc3},D3’={Ls5,Ls4,Lc4,Lc5,Ls7,Lc7};总的配送成本Z=50.2元。配送路线如图3所示。
上面是本发明提出的方法的一种实施方式,但在某些步骤上,可以进行适当改变,以适应具体情况的要求。例如,在第一阶段的步骤A3利用两点位置求边长,可以根据实际条件需要适当调整为空间距离。例如,在第三阶段估算配送成本时,配送员的配送路线选取策略可以适当调整。
本发明不局限于本实施例,任何在本发明披露的技术范围内的等同构思或者改变,均列为本发明的保护范围。
Claims (1)
1.一种O2O外卖平台智能调度与路线优化方法,其特征在于:包括以下步骤:
A、对外卖订单数据进行预处理
A1、依据当前未配送外卖订单记录,令K为已指派尚未完成配送的外卖订单数,K’为未指派配送员的外卖订单数,则Lsk或Lsk’分别为第k或k’个订单的商家位置,Lck或Lck’分别为第k或k’个订单的客户位置,由于位置主要用于计算距离,而外卖配送的区域范围非常小,用直线距离取代地理空间距离对结果不产生影响;k=1,2,…,K,k’=1,2,…,K’;
A2、令该配送区域内配送员数为N,xki=1或xk’i=1分别表示订单k或k’指派给配送员i,xki=0或xk’i=0分别表示订单k或k’未指派给配送员i;xi(s,t)表示配送员i是否需要走边e(s,t),即是否需要从s位置直接沿着边e(s,t)去t位置,其中是为1,否为0,边长记为l(s,t);订单k生效时刻为Tk0,订单k的客户希望最迟送达时刻为LTk,配送员到订单k的商家取餐的时刻为Tks,配送员把订单k送达客户的时刻为Tkt;s,t∈{(K+K’)个订单的商家或客户位置},i=1,2,…,N;
A3、给定配送员平均配送速度为v,单位时间配送成本为uc,超出指定配送时间的延迟单位时间成本为dc,通过当前配送员的手机GPS获取位置数据;计算当前所有K’+K个外卖订单的所有商家Lsk、客户位置Lck的边长,边长矩阵L=(l(s,t))2K×2K,边长实际为两点s(s1,s2)、t(t1,t2)的欧氏距离,如式(1)所示:
B、快速生成外卖订单智能指派模型
B1、给定配送员已指派未配送的订单容量约束为Q;
B2、判断:如果K’+K≤N×Q,则全部指派,否则只取K’中先下订单的(N×Q-K)作为本次要指派的订单,其他(K’+K-N×Q)个订单下次调度时指派,同时将本次需要指派的订单作为K’;
B3、将当前所有未指派订单按照订单生成的先后顺序排序,订单序号越小,表示订单生成越早,应该更优先被指派;设定当前未指派订单序号k’=1;
B4、判断:当前是否有空闲配送员i,i=1、2、…、N,有则将订单k’指派给配送员i,即xk’i=1,转到步骤B7,否则转到步骤B5;
B5、计算当前订单k’到所有已指派未完成订单的距离,如式(2)所示:
d(k’,k)=l(Lsk’,Lsk)+l(Lck’,Lck),k=1、2、…、K (2)
B6、将d(k’,k)按照距离由小到大的顺序排列,对应排序后的订单序号kmin=1、2、…、K,之后为订单k’指派配送员:
B61、设定当前排序后的订单序号kmin=1;
B62、订单kmin已指派的配送员为imin,判断:如果配送员imin已指派未完成数:
是则转到步骤B63;否则转到步骤B64;
B63、令kmin=kmin+1,判断:如果kmin≤K,转到步骤B62;否则转到步骤B8;
B64、将k’指定给配送员imin,即xk’imin=1;
B7、令当前商品节点序号k’=k’+1,K=K+1;判断:如果k’≤K’,则转到步骤B4;否则转到步骤B8;
B8、所有订单指派完毕,停止指派;
C、确定配送路线,估算配送成本
C1、设定当前配送员序号i=1,已指派未完成订单的配送成本Z=0;
C2、判断:如果配送员序号i≤N,则转到步骤C3,否则转到步骤C5;
C3、判断:如果配送员i没有已指派尚未完成的订单,则令Zi=0,转到步骤C4,否则估算配送员i的配送成本Zi:
C31、假定指派给配送员i的订单为ki=1,2,…,Ki,令Di={配送员i要配送订单的所有商家位置}={Lski|ki=1,2,…,Ki},Di’=Φ,Φ为空集,位置变量li为配送员i的当前位置,Zi=0,当前时刻为T;
C33、判断:如果dmin为某订单ki的商家位置Lski,则令Di’=Di’∪{dmin},同时用订单ki对应的客户位置Lcki取代Di中的dmin,Tkis=T,Zi=Zi+ti×uc;否则dmin为某订单的客户位置,则Di’=Di’∪{dmin},同时将dmin从Di中移除,即Di=Di-{dmin},Tkit=T,Zi=Zi+ti×uc+max{Tkit-LTk,0}×dc;
C34、判断:如果Di≠Φ,则转到步骤C32;否则Di’中元素的顺序即为配送顺序,转到步骤C4;
C4、令Z=Z+Zi,i=i+1,转到步骤C2;
C5、停止计算,输出每个配送员i的最优配送路线Di’和总的配送成本Z。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710368060.2A CN107180276B (zh) | 2017-05-23 | 2017-05-23 | 一种o2o外卖平台智能调度与路线优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710368060.2A CN107180276B (zh) | 2017-05-23 | 2017-05-23 | 一种o2o外卖平台智能调度与路线优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107180276A CN107180276A (zh) | 2017-09-19 |
CN107180276B true CN107180276B (zh) | 2020-06-30 |
Family
ID=59832379
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710368060.2A Active CN107180276B (zh) | 2017-05-23 | 2017-05-23 | 一种o2o外卖平台智能调度与路线优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107180276B (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107679656A (zh) * | 2017-09-28 | 2018-02-09 | 浪潮软件股份有限公司 | 一种订单配送路线生成方法及装置 |
CN109726843B (zh) * | 2017-10-30 | 2023-09-15 | 阿里巴巴集团控股有限公司 | 配送数据预测的方法、装置和终端 |
CN108446923B (zh) * | 2018-01-31 | 2020-11-06 | 安庆师范大学 | 一种基于自助式劳务众包平台的任务定价方法 |
CN110232195B (zh) * | 2018-03-06 | 2020-12-29 | 北京三快在线科技有限公司 | 一种模拟配送过程的方法及装置 |
CN108960649B (zh) * | 2018-07-11 | 2021-10-15 | 南京联迪信息系统股份有限公司 | 一种外卖配送调度方法 |
CN109034575A (zh) * | 2018-07-13 | 2018-12-18 | 广州餐道信息科技有限公司 | 一种骑手智能调度方法 |
CN108921445A (zh) * | 2018-07-13 | 2018-11-30 | 广州餐道信息科技有限公司 | 一种蜂窝式订单指派方法 |
CN109359912B (zh) * | 2018-10-10 | 2022-03-25 | 餐道信息科技有限公司 | 一种智能并单及派单方法 |
CN109934451A (zh) * | 2019-01-16 | 2019-06-25 | 深圳壹账通智能科技有限公司 | 基于数据分析的跑腿代购方法、装置、存储介质和设备 |
CN109711789A (zh) * | 2019-01-22 | 2019-05-03 | 北京顺丰同城科技有限公司 | 一种配送范围的确定方法及装置 |
CN110472794B (zh) * | 2019-08-21 | 2022-07-12 | 南京邮电大学 | 一种无人机协同加速物流调度优化方法 |
CN112541716B (zh) * | 2019-09-20 | 2024-08-13 | 北京三快在线科技有限公司 | 选择待配送任务节点的方法、装置、存储介质和电子设备 |
CN112801748A (zh) * | 2021-02-03 | 2021-05-14 | 拉扎斯网络科技(上海)有限公司 | 一种配送路径数据的获得方法、装置以及电子设备 |
CN112837128B (zh) * | 2021-02-19 | 2023-04-28 | 拉扎斯网络科技(上海)有限公司 | 订单指派方法、装置、计算机设备及计算机可读存储介质 |
CN112819413B (zh) * | 2021-02-24 | 2023-06-20 | 南京信息工程大学 | 一种适用于即时物流的配送改进算法 |
CN113095553A (zh) * | 2021-03-29 | 2021-07-09 | 北京沃东天骏信息技术有限公司 | 调度方法、装置、电子设备及存储介质 |
TWI769928B (zh) * | 2021-09-24 | 2022-07-01 | 國立陽明交通大學 | 餐飲線上配送系統之系統可靠度評估方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104751272A (zh) * | 2015-03-04 | 2015-07-01 | 径圆(上海)信息技术有限公司 | 智能订单调度方法、服务器、电动车、移动终端及系统 |
CN105469201B (zh) * | 2015-07-20 | 2021-12-14 | 浙江工业大学 | 一种物流配送中心作业任务处理与调度的方法 |
CN106651089B (zh) * | 2016-09-19 | 2020-09-11 | 清华大学 | 生产调度问题的分布集鲁棒模型的建模及优化求解方法 |
CN106485443B (zh) * | 2016-09-21 | 2019-09-03 | 北京邮电大学 | 一种基于第三方智能云平台的快递竞单管理系统和方法 |
-
2017
- 2017-05-23 CN CN201710368060.2A patent/CN107180276B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN107180276A (zh) | 2017-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107180276B (zh) | 一种o2o外卖平台智能调度与路线优化方法 | |
CN107194513B (zh) | 一种解决全渠道物流配送问题的优化方法 | |
CN109214551B (zh) | 一种配送调度方法及装置 | |
Dreyfuss et al. | Optimal spares allocation to an exchangeable-item repair system with tolerable wait | |
CN109711778B (zh) | 一种仓储网络的库存调拨方法、装置及存储介质 | |
Gaur et al. | A periodic inventory routing problem at a supermarket chain | |
CN109214608B (zh) | 一种车辆调度优化方法 | |
CN107145971A (zh) | 一种动态调整的快递配送优化方法 | |
CN108921327A (zh) | 应用于货到人系统的货架搬运方法、装置及系统 | |
CN108830528A (zh) | 基于时空属性的快件配送路径规划方法 | |
CN109034575A (zh) | 一种骑手智能调度方法 | |
CN104463354A (zh) | 一种分布式库存调度的改进方法 | |
CN106960301A (zh) | 医药电商镜像拣选方法及系统 | |
CN108564211B (zh) | 物流运输路径规划方法及系统 | |
CN102598034A (zh) | 为多个需求组提供不同服务质量的有效库存管理 | |
CN102982432A (zh) | 订单的处理方法和处理装置 | |
CN110689307B (zh) | 一种物品配送时间优化方法及其系统 | |
CN115187169A (zh) | 基于协同路径规划的物流配送系统及方法 | |
CN115062868A (zh) | 一种预聚类的车辆配送路径规划方法和装置 | |
Grzechca | Cycle time in assembly line balancing problem | |
Huang et al. | Optimal production and rationing decisions in supply chains with information sharing | |
CN109583634A (zh) | 一种基于现代投资组合理论的外卖配送路径选择方法 | |
CN111062769B (zh) | 派单方法、系统以及存储装置 | |
CN116777146A (zh) | 一种骑手与无人车联合服务的外卖配送动态调度优化方法 | |
JP6621142B2 (ja) | 配送ルート組換システム |
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 |