本发明专利技术提供一种求解多车场带时间窗车辆路径问题的变邻域搜索算法,在局部搜索过程中采用or-opt和2-opt混合算子进行局部搜索;将模拟退火算法模型中的Metropolis准则引入到VNS算法的基本框架中,用于在一定条件下接受部分较差解,以减小算法陷入局部最优的可能性,从而提高算法的可靠性;在算法框架中加入后优化过程,使算法的求解质量和收敛速度都得到一定程度的提高。
【技术实现步骤摘要】
本专利技术涉及运筹学领域中的车辆调度问题,具体为一种求解多车场带时间窗车辆路径问题的变邻域搜索算法或是一种基于变邻域搜索算法的求解模型。
技术介绍
现实中大量的物流车辆调度问题都可以归结为多车场带时间窗的车辆路径问题(Multi Depot Vehicle Routing Problem with Time Windows,MDVRPTW):物流车辆最初分别于多个不同物理地点上的车场,它们需要以最少的路径成本将指定数量的货物在要求的时间范围内送达顾客,并最后返回车场。尽管MDVRPTW的实际应用已经非常广泛,但该问题在理论研究中尚未得到很好的解决。“多车场”与“时间窗”分别在问题的空间和时间方面施加的双重约束,使原本就具有 NP复杂性的问题求解具备了叠加的难度,针对大规模问题的求解效率还有待提高。MDVRPTff仍是车辆路径问题集合中为数不多的没有得到深入研究的课题之一。现实中的物流决策者对该类问题通常采用“以车场为中心对顾客分区并在区内规划路线”这一经验性做法,路线规划的科学性和有效性都难以保障。MDVRPTW包含多车场车辆路径问题(MDVRP)和带时间窗车辆路径问题(VRPTW)这两类子问题的特性,但由于MDVRP和VRPTW所分别关注的空间和时间这两方面的约束具有相互冲突的求解特性,使得它们在组合为一个新问题之后,用于解决原有问题的启发式思想难以被重用。当前求解MDVRPTW的算法主要以元启发式为主,包括禁忌搜索算法、遗传算法、变邻域搜索算法、粒子群算法以及模拟退火算法等等。而这些元启发式算法在问题求解过程中都会遇到过早陷入局部最优,即早熟收敛的情况,这也是元启发式算法在求解MDVRPTW的一大通病。同时元启发式算法中通常需要设置较多的经验参数,而这些参数往往需要根据具体的问题来进行设置,不具备较强的通用性。因而,如何减小算法陷入局部最优的可能性以及相关参数的选取都是元启发式算法研究的难点问题。
技术实现思路
本专利技术的目的是提供一种求解多车场带时间窗车辆路径问题的变邻域搜索算法。本专利技术的目的是按以下方式实现的,步骤如下 (I)多车场带时间窗车辆路径问题有车辆载重、服务时间窗和车辆最长行驶时间的限制,在所有客户点的可能排列中,绝大部分对应的都是不可行解,许多算法在求解带有负载或时间窗等约束条件的车辆路径问题时,通常在求解过程中都只保留可行解,而将不可行解舍弃,但值得注意的是,在这些不可行解中,有可能存在少数的不可行解,即经过一定次数的迭代过程后能求得质量更好的可行解,鉴于此,本算法模型在求解过程中允许不可行解的存在,以使得算法具有更广阔的搜索空间,进而增大算法求得更优解的可能性; 在本算法模型中,解的评价函数表示为/Cr) =cCr) + Ctqijd + β {χ) + r#Cr),其中α、β、γ为惩罚因子,且O" > Q, β> O, r> O。对于解z来说,令c Cr)表示车辆总的行驶距离或时间,令^Cr)表示车辆总的载重违反量,令i/Cr)表示车辆总的行驶时间违反量,令#Cr)表示车辆总的时间窗违反量,在计算车辆经过单条路径的行驶时间违反量时,本文引入了由Savelsbergh提出的向前时间松弛Forward Time Slack的概念,用于对行驶时间违反量进行相应的优化; (2)本算法在初始解的构造阶段采用三标准聚类算法,依据客户的地理位置和时间窗大小将客户分配到特定的车场,并规划路线,进而生成初始解; (3)Shaking过程主要依据事先定义的邻域结构集合对解的结构进行一定的调整,以充分扩展当前解的搜索空间,减小算法在后续求解过程中陷入局部最优的可能性,对于Shaking过程而言,邻域结构集合的构造在很大程度上决定着变邻域搜索算法的求解效率以及逃离局部最优的能力; MDVRPTff的解是有多条路径组成,而每条路径都看成是客户节点的有向序列,在求解MDVRPTff时,本算法引入两种交换算子,分别为Cross-exchange和iCross-exchange,并利用这两种算子对当前解中的两条路径进行信息交互,进而产生新解,每次执行Shaking·过程时,MVNS算法将从上述两种算子中随机选择一种用于路径交换,今嫌Picross表示iCross-exchange被选取的概率,则Cross-exchange被选取的概率为I _ Pieross,值得注意的是,Aw的取值一般比较小,这主要是因为MDVRPTW的解是具有方向性,因而在路径交换过程中应尽量保持子路径的原有方向以增大求得可行解的可能性; 参与路径交换的两条初始路径、相应子路径的起始位置以及子路径的长度都需要通过当前解的邻域结构来确定,一般情况下,变邻域搜索算法都会采用多个邻域结构来提高算法的求解质量和稳定性,该集合由12个邻域结构组成,而且每个邻域结构都指定了参与路径交换的车场数以及子路径的最大长度,其中Cr表示分配给路径r的客户个数,由于MDVRPTff存在多个车场,用于路径交换的两条路径既从同一车场内选取或从不同的车场中分别选取,子路径是从选定的路径中随机选取出来的一段序列,其长度不能超过邻域结构规定的最大长度,在所有的邻域结构中,每个在其规定范围内的子序列长度被选择的概率都是相同的; (4)在本算法模型中,局部搜索过程将对Shaking过程中产生的新解^的邻域空间进行搜索以求得局部最优解4,在Shaking过程结束后,由于MDVRPTW的当前解z中只有两条路径发生改变,而其余路径均保持不变,因此Local Search过程只需要对这两条路径分别进行局部搜索,Local Search过程在整个VNS算法框架中是耗时最多的部分,而且在较大程度上决定着VNS算法最终的求解质量,因而在设计局部搜索算法时需要充分考虑到算法的求解效率,在本算法模型中选取了 2-op和or-opt作为局部搜索算子,以便能在较短的时间范围内求得质量较好的局部最优解,值得注意的是,每次的局部搜索过程都只采用一种算子,两种算子通过随机的方式进行选取,其中,参数表示2-opt被选取的概率,相应地Or-opt被选取的概率可以表示为I - ,采用这种混合算子的方式较为充分的结合2-opt和Or-opt两种算子的寻优能力,并且能在一定程度上拓展算法的求解空间; (5)为了在一定程度上加快算法的收敛速度,并提高算法的求解质量,本算法在求解过程中引入了后优化过程,在局部搜索完成之后,如果得到的局部最优解A优于全局最优解xbM, f{x^ < /( )则继续对&进行后优化操作以寻求更好的全局最优解,本算法中的后优化操作选用由Gendreau提出的US算法,该算法适用于求解带时间窗的旅行商问题和车辆路径问题; (6)在定义MDVRPTW的解的评价函数时,引入了车辆的载重违反量、行驶时间违反量以及时间窗违反量,并对这三种违反量设定了相应的惩罚因子,而在实验求解过程中,这些惩罚因子通常设定为较大的常数,以便使得算法迭代过程中更趋向于向可行解收敛,但这样做同时也使得算法容易陷入局部最优,本文通过采用在求解过程中接受部分较差解的方法来增大对求解空间的扰动,以减小算法过早陷入局部最优的可能性; 本算法模型通过引入模拟退火算法模型中本文档来自技高网...
【技术保护点】
一种求解多车场带时间窗车辆路径问题的变邻域搜索算法,?其特征在于步骤如下:(1)多车场带时间窗车辆路径问题有车辆载重、服务时间窗和车辆最长行驶时间的限制,在所有客户点的可能排列中,绝大部分对应的都是不可行解,许多算法在求解带有负载或时间窗等约束条件的车辆路径问题时,通常在求解过程中都只保留可行解,而将不可行解舍弃,但值得注意的是,在这些不可行解中,有可能存在少数的不可行解,即经过一定次数的迭代过程后能求得质量更好的可行解,鉴于此,本算法模型在求解过程中允许不可行解的存在,以使得算法具有更广阔的搜索空间,进而增大算法求得更优解的可能性;????在本算法模型中,解的评价函数表示为f(x)?=?c(x)?+?αq(x)?+?βd(x)?+?γw(x),其中α、β、γ为惩罚因子,且α?>?0,β?>?0,γ?>?0,对于解x来说,令c(x)表示车辆总的行驶距离或时间,令q(x)表示车辆总的载重违反量,令d(x)表示车辆总的行驶时间违反量,令w(x)表示车辆总的时间窗违反量,在计算车辆经过单条路径R的行驶时间违反量时,本文引入了由Savelsbergh提出的向前时间松弛Forward?Time?Slack的概念,用于对行驶时间违反量进行相应的优化;(2)本算法在初始解的构造阶段采用三标准聚类算法,依据客户的地理位置和时间窗大小将客户分配到特定的车场,并规划路线,进而生成初始解;(3)Shaking过程主要依据事先定义的邻域结构集合对解的结构进行一定的调整,以充分扩展当前解的搜索空间,减小算法在后续求解过程中陷入局部最优的可能性,对于Shaking过程而言,邻域结构集合的构造在很大程度上决定着变邻域搜索算法的求解效率以及逃离局部最优的能力;MDVRPTW的解是有多条路径组成,而每条路径都看成是客户节点的有向序列,在求解MDVRPTW时,本算法引入两种交换算子,分别为Cross?exchange和iCross?exchange,并利用这两种算子对当前解中的两条路径进行信息交互,进而产生新解,每次执行Shaking过程时,MVNS算法将从上述两种算子中随机选择一种用于路径交换,令参数picross表示iCross?exchange被选取的概率,则Cross?exchange被选取的概率为1???picross,值得注意的是,picross的取值一般比较小,这主要是因为MDVRPTW的解是具有方向性,因而在路径交换过程中应尽量保持子路径的原有方向以增大求得可行解的可能性;????参与路径交换的两条初始路径、相应子路径的起始位置以及子路径的长度都需要通过当前解的邻域结构来确定,一般情况下,变邻域搜索算法都会采用多个邻域结构来提高算法的求解质量和稳定性,该集合由12个邻域结构组成,而且每个邻域结构都指定了参与路径交换的车场数以及子路径的最大长度,其中Cr表示分配给路径r的客户个数,由于MDVRPTW存在多个车场,用于路径交换的两条路径既从同一车场内选取或从不同的车场中分别选取,子路径是从选定的路径中随机选取出来的一段序列,其长度不能超过邻域结构规定的最大长度,在所有的邻域结构中,每个在其规定范围内的子序列长度被选择的概率都是相同的;?(4)在本算法模型中,局部搜索过程将对Shaking过程中产生的新解xs的邻域空间进行搜索以求得局部最优解xl,在Shaking过程结束后,由于MDVRPTW的当前解x中只有两条路径发生改变,而其余路径均保持不变,因此Local?Search过程只需要对这两条路径分别进行局部搜索,Local?Search过程在整个VNS算法框架中是耗时最多的部分,而且在较大程度上决定着VNS算法最终的求解质量,因而在设计局部搜索算法时需要充分考虑到算法的求解效率,在本算法模型中选取了2?op和or?opt作为局部搜索算子,以便能在较短的时间范围内求得质量较好的局部最优解,值得注意的是,每次的局部搜索过程都只采用一种算子,两种算子通过随机的方式进行选取,其中,参数表示2?opt被选取的概率,相应地Or?opt被选取的概率可以表示为1???p2?opt,采用这种混合算子的方式较为充分的结合2?opt和Or?opt两种算子的寻优能力,并且能在一定程度上拓展算法的求解空间;(5)为了在一定程度上加快算法的收敛速度,并提高算法的求解质量,本算法在求解过程中引入了后优化过程,在局部搜索完成之后,如果得到的局部最优解xl优于全局最优解xb,即,f(xl)??0时,以一定的概率(e?Δf/T)接受解xl并更新当前解x,即x?=?xl,本文对温度采用线性冷...
【技术特征摘要】
【专利技术属性】
技术研发人员:张俊,颜秉珩,
申请(专利权)人:浪潮电子信息产业股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。