首页 / 一种基于双修补机制的灾后多中心物资配送方法及系统

一种基于双修补机制的灾后多中心物资配送方法及系统实质审查 发明

技术领域

[0001] 本发明涉及一种基于双修补机制的灾后多中心物资配送方法及系统,属于物资配送技术领域。

相关背景技术

[0002] 灾后物资配送问题,是车辆路径问题的一种具体应用,其每个配送点的时间要求均需兼顾。所以,灾后物资配送问题通常描述为时间累积CVRP,其目标为到达所有配送点的时间总和最小化,这有别于传统CVRP以最小化车辆总路程的目标。
[0003] 在实际的灾后物资配送问题中,管理部门会根据受灾区域情况,配备多个物资配送中心,如此会更高效地进行物资配送。该问题属于多中心CCVRP,属于典型的组合优化问题。相较于CVRP,MDCCVRP在车辆数上的约束不仅体现在总车辆数上,而且每个配送中心处驻扎的最大车辆数亦有约束。
[0004] 可见,为克服车辆数上的约束问题,亟需一种基于双修补机制的灾后多中心物资配送方法及系统。

具体实施方式

[0018] 下面通过附图以及具体实施例对本发明技术方案做详细的说明,应当理解本申请实施例以及实施例中的具体特征是对本申请技术方案的详细的说明,而不是对本申请技术方案的限定,在不冲突的情况下,本申请实施例以及实施例中的技术特征可以相互组合。
[0019] 本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符"/",一般表示前后关联对象是一种“或”的关系。实施例一
[0020] 图1是本发明实施例一中的一种基于双修补机制的灾后多中心物资配送方法的流程图。本实施例提供的基于双修补机制的灾后多中心物资配送方法可应用于终端,可以由基于双修补机制的灾后多中心物资配送装置来执行,该装置可以由软件和/或硬件的方式实现,该装置可以集成在终端中,例如:任一具备通信功能的智能手机,平板电脑或计算机设备。参见图1,本实施的方法具体包括如下步骤:获取受灾区域内的路网基础数据、车辆数据、配送点数据和受灾点数据;
将所述路网基础数据、车辆数据、配送点数据和受灾点数据输入至预设的物资配
送路径规划模型中,获得所述物资配送路径规划模型生成的物资配送策略,其中,所述物资配送路径规划模型以车辆由各配送点出发到达所有受灾点的总时间最
小化为优化问题,通过模因演算法求解优化问题得到路径规划的最优解,所述模因演算法通过双修补机制修补初始种群中存在车辆约束违背的个体。
[0021] MDCCVRP是一类复杂的问题,属于NP‑hard,解空间随着问题规模的增大,呈爆炸式增长。为了算法描述方便,先对问题进行符号描述。假设G=(V,E)为受灾区域,其中顶点集V包括VC和VD两个子集合,VC={v1,v2,v3,…,vN}表示受灾点集合,VD={vN+1,v N+2,v N+3,…,v N+M}表示配送中心集合,E为边集,代表道路,(vi,vj) ∈E(vi,vj∈V)为任意两个顶点间的边。车队K驻扎在VD各车场处,车容量为Q,中心d∈VD处的最大驻扎车辆数为Kd。令车辆k到达配送点i处的时间为 ,配送点i的物资需求量为qi。若配送点i未被车辆k服务,则 为0。车辆由VD各点处出发,对VC中所有点服务一次且仅一次,然后回到各自对应VD中出发点,使得在满足车辆最大负载量Q的前提下,物资配送车辆到达所有垃圾收集点的总时间最小化,即:
                                   (1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
其中,公式(1)为目标函数;公式(2)确保车辆到达受灾点后,随即离开;公式(3)约定每个受灾点仅配送一次物资;公式(4)确保车辆最终回到相同的中心点,公式(5)约束每辆车最多进行一趟服务;公式(6)、(7)约束了总车辆数和每个中心点的最大车辆数;公式(8)约束车辆不能超过最大负载量Q;公式(9)则给出了车辆达到受灾点的时间计算方式,并通过充分大的数P避免子路径;公式(10)‑(11)定义了车辆到达时间;公式(12)‑(13)定义了二值变量 分别表示车辆k是否从配送中心点d出发以及其是否经过边(i, j)。
[0022] MDCCVRP的解可表示为:(14)
其中,|RD|表示由车场d出发的路径数,问题的解由所有车场路径组成。
[0023] 本发明针对MDCCVRP特点,提出了基于双修补机制的MA算法(MADRM),算法由初始种群处罚,经过若干代的进化迭代,从而得到满意解。进化过程主要由选择、交叉组成。为了进一步提升解的质量,对当前解进行局部搜索。具体算法过程描述如下。
[0024] 种群初始化对于基于迭代框架的算法而言,初始解的质量意义重大。而且,MADRM为基于种群的智能搜索算法,种群的多样性对于扩大搜索空间尤为重要。鉴于此,本发明构造了一种多策略初始种群生成方法。
[0025] 基于聚类的初始化方法首先,将VC中的受灾点按照就近原则,分配到VD中各配送中心点。如此,VC得到一个围绕中心点的划分。对于每个中心点处的受灾点,依据到该中心点处的距离由近及远进行排序。车辆按照排序后的顺序对受灾点进行物资配送。若车辆容量已满,则其中空车进行物资配送。依次规则,直至所有受灾点均被配送物资。该方法产生数量为1的个体。
[0026] 基于最佳插入法的初始化方法 该方法每次在未配送物资的受灾点中,在满足容量Q约束条件下,选取最佳的受
灾点插入到现有路径中。所谓最佳点即插入该点时,路径增加的累积时间最小。一直持续该过程,直到所有受灾点均有了物资配送。由于该方法的确定性,所以其产生数量为1的个体。
[0027] 随机性方法该方法与确定性方法类似,只是每次选中的受灾点以随机的方式进行。由于随机
性,该方法能够产生多个不同的个体。如此,可以确保种群的多样性。这里,该方法共产生个体数为popsize – 2,popsize为子种群规模。
[0028] 由上述三种策略构造初始种群Pop后,对个体进行目标值与适应值计算,得到初始最优可行解S。
[0029] 双修补机制(DRM)由于初始种群以及后续进化过程中,路径能够满足车辆负载约束Q,但车辆数的两个约束不能保证。所以,本发明提出了双修补机制,其主要由两种修补算子组成,具体如下:
总车辆数的修补算子(RepTotV)
令当前个体ind中使用车辆数超过总车辆数|K|,则进行如下修补:
步骤1 OldInd←ind;
步骤2 DRS←{};
步骤3 保留ind中|K|负载量多的路径,将其余路径移至DRS;
步骤4 ICS[|K|]←{{},{},…,{}};
步骤5 对于DRS中的每条路径R
步骤5.1 对于R中的受灾点按照物资需求量由大到小排序;
步骤5.2 对于R中的每个受灾点R[i](i=1→|R|)
如果ind中存在路径ind[j],使得插入受灾点R[i]后,仍能够满足容量约束Q,则
ICS[j]←ICS[j]∪R[i]。否则返回OldInd,结束修补;
步骤6 对于ind中每条路径ind[j] (j=1→|K|)
采用最佳插入法将ICS[j]中的所有受灾点插入到路径ind[j]中。
[0030] 步骤7 返回ind。
[0031] 配送中心处车辆数的修补算子(RepDepV)RepDepV算子主要是通过为个体ind中的所有路径重新定位配送中心点的方式,确
保每个中心点处的车辆数不越界,具体步骤描述如下:
步骤1 定义长度为配送中心数的数组cnt[|VD|],用以统计各配送中心处已用车
辆数,初始化所有元素为0;
步骤2 对于ind中的每条路径R
步骤2.1 minCst←InfValue,InfValue为实数范围内的最大值;
步骤2.2 对于车辆数未满配送中心d∈VD (Kd>cnt[d])
 步骤2.2.1 计算更换路径R的配送中心为d所产生的额外车辆行驶时间time(R,
d),其计算公式如下:
(15)
其中, 表示配送中心至R中第1个配送点的时间。
[0032] 步骤2.2.2 如果minCst>time(R, d),则minCst←time(R, d),d*←d;步骤2.3 以d*替换R的配送中心;
步骤2.4 cnt[d*]←cnt[d*]+ 1;
步骤3 对ind采用单点插入(Single Insertion, SI)及交换(Swap)两种传统局部搜索算子进行邻域搜索。
[0033] 步骤4 返回ind。
[0034] 双修补机制双修补机制的流程如下:
步骤1 如果当前个体ind中的车辆数越界(大于|K|),转步骤2,否则转步骤6;
步骤2 ind′←ind;
步骤3 对ind′实施RepTotV修补;
步骤4 如果修补后的ind′中的总车辆数在|K|范围内,则执行步骤5,否则转步骤
7;
步骤5 ind←ind′;
步骤6 如果ind中存在配送中心点车辆越界问题,对ind实施RepDepV修补;
步骤7 返回ind。
[0035] 3.3交叉及局部搜索算子(1)交叉算子
MADRM中设计了一种基于路径的交叉算子。对于父个体p1与p2,分别从中随机地选取两条路径R1与R2。以R2替换p1中的R1的方式,从而生成子个体child。如此,child中若存在冗余物资配送点,则删除。另一方面,如果child中存在遗漏的配送点,则采用最佳插入法补齐。
[0036] (2)局部搜索过程对于MA而言,其特点是具有良好的局部搜索能力,因为其中包含了局部搜索过程。
本发明的MADRM算法中,局部搜索过程主要由五种传统的局部搜索算子组成,包括单点插入SI、双点插入(Double Insertion, DI)、Swap、3‑Opt以及弧‑点交换(Arc‑node Exchange, ANE)。五种局部搜索算子按照随机顺序被调用,当前算子不能提升ind的质量时,启动下一局部搜索算子。持续此过程,直至ind不能改进时停止局部搜索过程。
[0037] MADRM总流程基于上述各部分的设计,MADRM的步骤如下:
步骤1 采用3.1的三种方式,生成规模为psize的初始种群Pop;
步骤2 对于Pop中存在车辆约束违背的个体,采用双修补机制修补;
步骤3 将Pop中最优可行解保存至S中;
步骤4 c←1;
步骤5 采用3.3交叉算子生成子个体child,并对其进行局部搜索;
步骤6 如果child为Pop的非克隆个体,则跳转步骤7,否则跳转步骤9;
步骤7 Pop←Pop∪{child};
步骤8 对Pop中个体进行排序,并剔除最末个体,以保持psize的规模;
步骤9 c←c+1;
步骤10 如果c≤cycs,则跳转步骤5;
步骤11 若算法终止条件未达到,则跳转步骤4;
步骤12对于Pop中存在车辆约束违背的个体,采用双修补机制修补;
步骤13将当前Pop中最优可行解保存至S′中;
步骤14 如果S′优于S,则以其更新S,即S←S′;
步骤15 返回S。
[0038] MADRM的算法流程如图2所示。
[0039] 为了验证MADRM方法的有效性,本发明选取当前最有代表性方法POPMUSIC(E. Lalla‑Ruiz and S. Voß, “A popmusic approach for the multi‑depot cumulative capacitated vehicle routing problem,” Optimization Letters, vol. 14, no. 3, pp. 671–691, 2020.)、VNS(500000)以及PLS(X. Wang, T.‑M. Choi, Z. Li, and S. Shao, “An effective local search algorithm for the multidepot cumulative capacitated vehicle routing problem,” IEEE Transactions on Systems, Man, and Cybernetics: Systems, vol. 50, no. 12, pp. 4948–4958, 2020.)。测试数据采用当前关于MDCCVRP问题流行的测试集pr与p,其中pr测试集包含10个测试样例,受灾点数目由48到288。p测试集包含23个测试样例,受灾点数目由50到360。两个测试集中的受灾点规模涵盖了小规模到大规模,配送中心数目根据受灾点数以及分布情况进行设置。
[0040] MADRM采用C++编程,运行环境为Intel(R) Xeon(R) Gold 5218 2.30 GHz。两个重要参数popsize与内循环数cycs,经过充分的调参过程,分别设置为15以及popsize·min{5, |VC| /20},其中min{5, |VC| /20}是在5与|VC| /20之间选取小者。另外,算法的运行终止条件采用运行时间控制。由于PLS为当前关于MDCCVRP考虑车辆数两项约束的最具代表性算法,所以为了比较的公平性,本发明MADRM运行时间采用了与其相当的运行时间,主要通过机器CPU主频进行折算。由于PLS的运行机器CPU主频为2.6GHz,所以MADRM在测试样例上的单次运行时间为PLS运行时间的2.6/2.3倍。MADRM在每个算例上独立运行30次,同时进行以0.05显著性水平的t‑test检验。
[0041] 基于上述实验设置,MADRM以及其他比较算法的实验结果如表1、2所示,其中Best、Avg及Time分表代表最优值、平均值以及运行时间(秒)。Mean代表整个测试集上的均值,B‑C‑W代表MADRM与相应算法在t‑test检验下的明显好(+)、可比较以及明显差(‑)的算例数。BKS为迄今为止的最优解,若其被MADRM刷新,则对应结果以“†”标记。各算法的结果若为最小值,则以粗体显示。
[0042] 表1 pr测试集上各算法的结果
[0043] 由表1所示结果可以看出,MADRM在整个pr测试集上,更新了6个算例的最优解记录,其余4个算例上达到了最小值。对于其他算法而言,达到最优解记录的测试样例数分别为:POPMUSIC:0、VNS(500000):1、PLS:4。从最优性能角度考虑,MADRM在pr测试集上优于POPMUSIC、VNS(500000)以及PLS。从平均性能角度,MADRM的测试集均值小于其他算法,MADRM:8073.17、PLS:8168.16、VNS(500000) :8991.16、POPMUSIC:22617.16。在所有算例上,由t‑test检验知MADRM均明显好于POPMUSIC、VNS(500000)。对于PLS而言,MADRM在8个算例上明显好于PLS,仅在2个算例上没有明显区别。
[0044] 表2 p测试集上各算法的结果
[0045] 由表2结果知,在测试集p中的23个算例上,MADRM刷新了18个测试样例的最优解记录,在4个算例上达到最优解记录,仅在p04上的值略大于VNS(500000)的最优值,分别为2627.92 、2618.44。POPMUSIC、VNS(500000)以及PLS取得最优解记录的算例数分别为0、4、
4,三个算法总的达到最优解记录数为5。平均性能方面,MADRM取得23个算例中的22个算例上的最小值,仅p04上的最小值由PLS取得。由t‑test检验知MADRM几乎在所有算例上,明显优于其他算法。
[0046] 由上述结果分析,可以得出结论:本发明所提MADRM在解决灾后多中心物资配送问题时,具有明显的优化效果。
[0047] 为了检验双修补机制(DRM)对算法的贡献,我们将其从MADRM中去除,记所得算法为MA*。修补算子RepTotV与RepDepV,仅在种群初始化时实施修补,且种群中仅保留可行解。实验结果如表3所示。
[0048] 表3 MADRM与MA*对比结果
[0049] 由表3所示结果知,MADRM在两个测试集上取得最小值数分别为9和20,占据绝了大多数。而MA*取得的最小值数分别为4和7,相比MADRM较为悬殊。由t‑test检验知,MADRM明显好于MA*的测试样例数分别为8和14,仅在4个算例上弱于后者。可以看出,双修补机制(DRM)对于MADRM具有重要的意义。为了较直观地比较,这里给出两个算法在8个代表性算例上的收敛曲线图,如图3所示,图中横坐标轴代表算法运行时间,纵坐标轴代表目标值。
[0050] 在曲线图中,6个算例上(pr01,pr04,pr07,p10,p08及 p23),算法开始不久后,MADRM即迅速收敛,并一直在MA*对应曲线的下方。仅在p01算例上,MADRM收敛曲线位于MA*对应曲线上方,在p15上,两条曲线出现重叠现象。这些与表3结果是一致的。实施例二
[0051] 一种基于双修补机制的灾后多中心物资配送系统,其特征在于,所述系统包括:获取模块:用于获取受灾区域内的路网基础数据、车辆数据、配送点数据和受灾点数据;
路径规划模块:用于将所述路网基础数据、车辆数据、配送点数据和受灾点数据输入至预设的物资配送路径规划模型中,获得所述物资配送路径规划模型生成的物资配送策略,其中,
所述物资配送路径规划模型以车辆由各配送点出发到达所有受灾点的总时间最
小化为优化问题,通过模因演算法求解优化问题得到路径规划的最优解,所述模因演算法通过双修补机制修补初始种群中存在车辆约束违背的个体。
[0052] 本发明实施例所提供的基于双修补机制的灾后多中心物资配送系统可执行本发明任意实施例所提供的基于双修补机制的灾后多中心物资配送方法,具备执行方法相应的功能模块和有益效果。实施例三
[0053] 本发明实施例还提供了一种计算机设备,包括处理器及存储介质;所述存储介质用于存储指令;
所述处理器用于根据所述指令进行操作以执行下述方法的步骤:
获取受灾区域内的路网基础数据、车辆数据、配送点数据和受灾点数据;
将所述路网基础数据、车辆数据、配送点数据和受灾点数据输入至预设的物资配
送路径规划模型中,获得所述物资配送路径规划模型生成的物资配送策略,其中,所述物资配送路径规划模型以车辆由各配送点出发到达所有受灾点的总时间最
小化为优化问题,通过模因演算法求解优化问题得到路径规划的最优解,所述模因演算法通过双修补机制修补初始种群中存在车辆约束违背的个体。
[0054] 对于本实施例中各步骤的详细内容可参见实施例一,在此不作赘述。鉴于本实施例与实施例一采用相同的技术构思,因此也具备诸如实施例一所述的技术效果。实施例四
[0055] 本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现下述方法的步骤:获取受灾区域内的路网基础数据、车辆数据、配送点数据和受灾点数据;
将所述路网基础数据、车辆数据、配送点数据和受灾点数据输入至预设的物资配
送路径规划模型中,获得所述物资配送路径规划模型生成的物资配送策略,其中,所述物资配送路径规划模型以车辆由各配送点出发到达所有受灾点的总时间最
小化为优化问题,通过模因演算法求解优化问题得到路径规划的最优解,所述模因演算法通过双修补机制修补初始种群中存在车辆约束违背的个体。
[0056] 对于本实施例中各步骤的详细内容可参见实施例一,在此不作赘述。鉴于本实施例与实施例一采用相同的技术构思,因此也具备诸如实施例一所述的技术效果。
[0057] 本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器等)上实施的计算机程序产品的形式。
[0058] 本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的方法。
[0059] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令方法的制造品,该指令方法实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0060] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0061] 以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

当前第1页 第1页 第2页 第3页
相关技术
修补机制相关技术
方法系统相关技术
张玉州发明人的其他相关专利技术