快递的同城运输是指一个城市内分拨中心与大量网点间的货物运输。目前很多快递公司的同城运输都比较混乱,缺乏管理,参与运输的车辆数很多,装载率低,导致运输成本较高。交货车辆数多,还会造成分拨中心的拥堵,从而影响快递的时效。如何从全局出发,统一调度车辆,将各网点的货物运到分拨中心,是降低运输成本的关键性问题。
快递的同城运输问题本质上是一个车辆路径问题(vehicle routing problem, VRP),最早由Dantzig等[1]在1959年首次提出。几十年来,经过国外学者们的大量研究[2-3],VRP已扩展出多种相关问题。21世纪以来,国内学者也逐渐开始研究VRP。张智海等[4]将并行遗传算法应用于带时间窗的车辆路径问题研究;张文博等[5]将遗传算法和模拟退火算法相结合,求解了带动态时间窗的车辆路径问题;Luo等[6]采用了改进的混合蛙跳算法来求解多车场车辆路径问题;王晓博等[7]研究了多车型混合装卸车辆路径问题,并设计混合遗传算法求解。
与一般的VRP相比,城市VRP需要考虑更多时间、环境因素[8]。Malandraki等[9]、Donati等[10]研究了有时间依赖的车辆路径问题,这类问题将两点间的行驶时间视为随时间动态变化的。Gendreau等[11]、Fleischmann等[12]研究了实时动态调度的车辆路径问题。Chen等[13]综合考虑了时间依赖性以及动态调度。Mamasis等[14]、Minis等[15]考虑了车辆故障的突发情况;李宏[16]研究了城市冷链物流,考虑了时间窗、交通状况、产品腐坏等因素。
本文以快递同城运输为研究对象,除了容量约束、时间窗约束等常规条件外,还考虑了车辆限行情况以及错峰交货时间。首先建立了以最小化运输成本为目标函数的混合整数规划模型,然后依次提出了启发式算法以及列生成算法,最后通过实例对3个方法进行比较,分析各自的特点并得出结论。
1 问题描述记网点集合为
在实际中,有一些网点的货量很大,一辆车不足以装下所有货物。此时优先用该区域能通行的最大型车辆装满直接运到分拨中心,直到剩下的货量能用一辆车装下。经过这样的预处理后,可以假设每个网点只能被一辆车服务。令车辆数为
根据问题描述,给定输入参数,确定决策变量,建立以最小化成本为目标的混合整数规划模型。
2.1 模型参数$\qquad\min \;\left(\sum\limits_{k = 1}^m {c_k^1{{\textit{z}}_k} + \sum\limits_{k = 1}^m {c_k^2\sum\limits_{i = 1}^n {\sum\limits_{j = 0}^n {{d_{ij}}{x_{ijk}}} } } }\right) {\text{。}}$ | (1) |
$ \begin{split} \qquad & \;{\rm{s}}{\rm{.t}}{\rm{.}}\\ &\sum\limits_{j = 0}^n {{x_{ijk}}} = {y_{ik}}, \forall i \in N,k \in M; \end{split} $ | (2) |
$ \qquad \sum\limits_{i = 1}^n {{x_{ijk}}} {\text{≤}} {y_{jk}}, \forall j \in N,k \in M;$ | (3) |
$ \qquad\sum\limits_{k = 1}^m {{y_{ik}}} = 1, \forall i \in N;$ | (4) |
$\qquad \sum\limits_{i = 1}^n {{x_{i0k}}} = {Z_k}, \forall k \in M;$ | (5) |
$ \qquad {y_{ik}}{\text{≤}} 1 - {b_{ik}}, \forall i \in N,k \in M;$ | (6) |
$ \qquad\sum\limits_{i = 1}^n {{v_i}{y_{ik}}} {\text{≤}} {Q_k}, \forall k \in M;$ | (7) |
$ \qquad t_i^1 {\text{≤}} {T_{ik}} {\text{≤}} t_i^2, \forall i \in N,k \in M;$ | (8) |
$ {T_{jk}} {\text{≥}} {T_{ik}} + {t_{ij}} + {l_i} + R({x_{ijk}} - 1) ,\;\; \forall i \in N,j \in N \cup \{ 0\} ,k \in M;$ | (9) |
$ \qquad {T_{0k}}{\text{≤}}{T_i} + R(1 - {y_{ik}}), \qquad \forall i \in N,k \in M;$ | (10) |
$ \qquad {x_{ijk}},{y_{ik}},{{\textit{z}}_k} \in \{ 0,1\},\;\;\;\; \forall j \in N \cup \{ 0\} ,i \in N,k \in M{\text{。}}$ | (11) |
式(1)表示最小化成本的目标函数,其中第1项为固定成本,第2项为油耗成本;式(2)表示当网点
用CPLEX等求解器求解该模型,可以得到关于模型的最优解。但是对于NP-hard问题,只要规模稍大,就难以在短时间内得到较好的解。
3 启发式算法结合快递业务的相关经验设计一个构造性启发式算法,能在短时间内给出一个较好的解。该算法基于2个基本思想。
1) 优先使用大型车。首先,所用车辆数越少,总成本也越低,而使用大型车能够减少总车辆数。其次,当车的容量有较多富余时,考虑能否缩小车型。因为,一方面对单辆车来说,车型越小,成本越低;另一方面,缩小车型意味着可以访问一些对大车型限行的网点。
2) 对于每一辆车要访问的网点集,都是从一个网点开始,以与已确定的网点集的行驶距离之和作为邻域搜索优先指标选择新加入的网点并检验其可行性,从而不断扩张这个网点集。由同一辆车服务的网点间的行驶距离越短,越容易满足时间窗约束,成本也会越低。
记单辆车的访问网点集
步骤1 将所有网点按与分拨中心的行驶距离降序排列,记
步骤2 记
步骤3 从集合
步骤4 令
步骤5 对集合
$\begin{split} &\qquad\sum\limits_{p \in A} {{\rm{dist}}({{S_1^{''}}},p)} {\text{≤}}\sum\limits_{p \in A} {{\rm{dist}}({{S_2^{''}}},p)} {\text{≤}} \cdots {\text{≤}} \\ &\sum\limits_{p \in A} {{\rm{dist}}({{S_i^{''}}},p)} {\text{≤}} \cdots {\text{≤}} \sum\limits_{p \in A} {{\rm{dist}}({{S_{\left| {S''} \right|}^{''}}},p)}{\text{。}} \end{split}$ |
步骤6 记
步骤7 若
步骤8 如果
步骤9 对集合
步骤10 若
在检验时间窗(步骤6)及确定最优访问顺序(步骤9)时,可以直接枚举全排列。在问题描述中已经提到,时间窗的约束非常严格,所以每辆车能访问的网点数不会太多,一般不超过4个。这是快递同城运输中固有的特点。因此即使采用穷举,计算量也不会太大。
4 列生成定义
对于
$\qquad\min \; \sum\limits_{{\omega _j} \in \varOmega } {{c_j}{x_j}} {\text{。}}$ | (12) |
$ \begin{split} & \qquad\;{\rm{s}}{\rm{.t}}{\rm{.}} \\ &\qquad \sum\limits_{{\omega _j} \in \varOmega } {{a_{ij}}{x_j}} = 1, \; \forall i \in N; \end{split} $ | (13) |
$\qquad {x_j} \in \{ 0,1\}, \; \forall {\omega _j} \in \varOmega {\text{。}}$ | (14) |
式(12)为成本目标函数;式(13)表示每个网点都被且仅被访问一次;式(14)表示变量类型。
当该模型的变量数较大时,求解速度比较慢,需要用到列生成技术。在单纯形法中,对于变量较多的模型,最优解中多数变量都是值为0的非基变量,只有小部分值不为0的基变量。列生成的基本思想就是不断生成能优化目标值的列,即寻找检验数为负的变量(对于最小化问题)。在这里,
利用前面介绍的启发式算法生成一个初始解,并转化为初始
$\qquad\min \; \sum\limits_{{\omega _j} \in {\varOmega _0}} {{c_j}{x_j}}{\text{。}} $ |
$ \begin{split} &\qquad\;{\rm{s}}{\rm{.t}}{\rm{.}}\\ &\qquad \sum\limits_{{\omega _j} \in {\varOmega _0}} {{a_{ij}}{x_j}} = 1, \; \forall i \in N{\text{;}} \end{split} $ |
$\qquad 0 {\text{≤}} {x_j} {\text{≤}} 1 ,\quad \forall {\omega _j} \in {\varOmega _0}{\text{。}}$ |
求解上述模型后,能得到对偶变量
以单纯形法中的检验数为目标函数,确定列生成中的子问题。
$\qquad\min \; {\textit{z}} = {c_j} - \sum\limits_{i = 1}^n {{\pi _i}{a_{ij}}}{\text{。}} $ |
$ \begin{split} &\qquad{\rm{s}}{\rm{.t}}{\rm{.}} \\ &\qquad{\omega _j} \in \varOmega {\text{。}} \end{split} $ |
当最优目标值
子问题是列生成算法中的关键。上述子问题是一个带资源约束的初等最短路问题,Feillet等[17]对此提出了一个基于动态规划的精确算法。该算法的原理是通过对图中各个点标号来建立点与点之间的联系,并不断扩展这些标签以检查资源约束,从而获得符合要求的
由于本问题的约束非常严格,
1) 对于网点集合
2) 对于网点集
遵循这2个原则,能大大缩小
步骤1 初始化
步骤2 以
步骤3 若
得到
引入以下符号。
列生成算法过程如下。
1)
2)
3)
4)
5)
6)
7)
8)
9)
10)
11)
12)
13)
14)
15)
实验的运行环境为Intel(R) Core(TM) i5-5200U CPU @ 2.20 GHz 2.19 GHz。实验采用某快递公司在上海的真实数据,网点有120个,车型有4种。任意两点间的行驶时间、行驶距离通过高德API来调取,加上分拨中心,一共有12 100(121×100)条数据。设计12组实例,网点数量分别为10, 20, ···, 120。除了最后一组,每一组都是从这120个网点中随机取点,然后分别用数学模型、启发式算法和列生成3种方法进行求解。对每一组中的每一个方法,均求解5次并对成本和运行时间取平均值作为最后的结果。成本保留两位小数,运行时间保留三位小数。数学模型均调用CPLEX进行求解,设定最长运行时间为600 s,若到600 s还未求解完则直接输出当前解。
以网点数为30的组为例,用列生成求解所得的调度方案如表1所示,一共需要16辆车,平均装载率为0.90。
![]() |
表 1 30个点的调度方案示例 Tab. 1 Scheduling example for 30 points |
统计各组计算完成后的成本和运行时间,实验结果如表2所示,据此分析各算法的特点。数学模型求解时,即使只有10个点也无法在600 s内得到最优解,而且会占用大量内存;启发式算法耗时极短,且不会随着规模的提高而显著增加,其优化结果与列生成相比,平均相对误差为8.86%;列生成在每组中的成本都是最低的,例如第6组中,其成本仅为数学模型的56%,启发式算法的92%,耗时也不算长,在120个网点的规模下,只需175 s就能得到近似最优解。
![]() |
表 2 不同方法间的求解结果对比 Tab. 2 Comparison of solutions between different methods |
实验结果显示,列生成算法能有效解决快递业的同城运输问题。如果问题规模继续扩大,可以给列生成设定最长运行时间或迭代次数,达到条件时输出当前解,由于列生成以启发式算法作为初始解,所以有上界保证。
本文采用的行驶时间数据是通过高德API提前获取的,而不是实时的。但事实上,城市内的交通状况与时段有很大的关系,部分路段在早晚高峰期会比较拥堵,使得实际行驶时间变长。在后续的相关研究中,可以考虑增加交通因素。
[1] |
DANTZIG G B, RAMSER J H. The truck dispatching problem[J].
Management Science, 1959, 6(1): 80-91.
DOI: 10.1287/mnsc.6.1.80. |
[2] |
LAPORTE G. The vehicle routing problem: an overview of exact and approximate algorithms[J].
European Journal of Operational Research, 1992, 59(3): 345-358.
DOI: 10.1016/0377-2217(92)90192-C. |
[3] |
EKSIOGLU B, VURAL A V, REISMAN A. The vehicle routing problem: a taxonomic review[J].
Computers & Industrial Engineering, 2009, 57(4): 1472-1483.
|
[4] |
张智海, 吴星玮. 带时间窗车辆路径问题的并行遗传算法[J].
工业工程, 2007, 10(3): 111-114.
ZHANG Zhihai, WU Xingwei. Parallel genetic algorithm for vehicle routing problem with time window[J]. Industrial Engineering Journal, 2007, 10(3): 111-114. DOI: 10.3969/j.issn.1007-7375.2007.03.027. |
[5] |
张文博, 苏秦, 程光路. 基于动态需求的带时间窗的车辆路径问题[J].
工业工程与管理, 2016, 21(6): 68-74.
ZHANG Wenbo, SU Qin, CHENG Guanglu. Vehicle routing problem with time windows based on dynamic demands[J]. Industrial Engineering and Management, 2016, 21(6): 68-74. |
[6] |
LUO J, CHEN M R. Multi-phase modified shuffled frog leaping algorithm with extremal optimization for the MDVRP and the MDVRPTW[J].
Computers & Industrial Engineering, 2014, 72: 84-97.
|
[7] |
王晓博, 李一军. 多车型单配送中心混合装卸车辆路径问题研究[J].
系统工程学报, 2010, 25(5): 629-636.
WANG Xiaobo, LI Yijun. Study on multi-type vehicles and single centre vehicle routing problem with backhauls[J]. Journal of Systems Engineering, 2010, 25(5): 629-636. |
[8] |
CATTARUZZA D, ABSI N, FEILLET D, et al. Vehicle routing problems for city logistics[J].
European Journal on Transportation and Logistics, 2017, 6(1): 51-79.
DOI: 10.1007/s13676-014-0074-0. |
[9] |
MALANDRAKI C, DASKIN M S. Time dependent vehicle routing problems: formulations, properties and heuristic algorithms[J].
Transportation Science, 1992, 26(3): 185-200.
DOI: 10.1287/trsc.26.3.185. |
[10] |
DONATI A V, MONTEMANNIA R, CASAGRANDEA N, et al. Time dependent vehicle routing problem with a multi ant colony system[J].
European Journal of Operational Research, 2008, 185(3): 1174-1191.
DOI: 10.1016/j.ejor.2006.06.047. |
[11] |
GENDREAU M, GUERTIN F, POTVIN J Y, et al. Parallel tabu search for real-time vehicle routing and dispatching[J].
Transportation Science, 1999, 33(4): 381-390.
DOI: 10.1287/trsc.33.4.381. |
[12] |
FLEISCHMANN B, GNUTZMANN S, SANDVOB E. Dynamic vehicle routing based on online traffic information[J].
Transportation Science, 2004, 38(4): 420-433.
DOI: 10.1287/trsc.1030.0074. |
[13] |
CHEN H K, HSUEH C F, CHANG M S. The real-time time-dependent vehicle routing problem[J].
Transportation Research Part E, 2006, 42(5): 383-408.
DOI: 10.1016/j.tre.2005.01.003. |
[14] |
MAMASIS K, MINIS I, DIKAS G. Managing vehicle breakdown incidents during urban distribution of a common product[J].
Journal of the Operational Research Society, 2013, 64(6): 925-937.
DOI: 10.1057/jors.2012.93. |
[15] |
MINIS I, MAMASIS K, ZEIMPEKIS V. Real-time management of vehicle breakdowns in urban freight distribution[J].
Journal of Heuristics, 2012, 18(3): 375-400.
DOI: 10.1007/s10732-011-9191-1. |
[16] |
李宏. 城市冷链物流配送车辆路径问题的研究[D]. 长沙: 长沙理工大学, 2006.
LI Hong. Research on urban vehicle routing problem for cold chain logistics[D]. Changsha: Changsha University of Science & Technology, 2006. |
[17] |
FEILLET D, DEJAX P, GENDREAU M, et al. An exact algorithm for the elementary shortest path problem with resource constraints: application to some vehicle routing problems[J].
Networks, 2004, 44(3): 216-229.
DOI: 10.1002/(ISSN)1097-0037. |