一种车辆路径问题的优化方法及装置与流程

文档序号:11251512阅读:486来源:国知局
一种车辆路径问题的优化方法及装置与流程

本发明属于计算机技术领域,尤其涉及一种车辆路径问题的优化方法及装置。



背景技术:

车辆路径问题是np-hard组合优化问题,目前用于求解该类问题的算法主要有精确算法、传统启发式算法以及现代启发式算法。其中,精确算法可以找到最优解,但只适用于规模较小的问题,随着问题规模的增大以及计算机能力的限制,精确算法的求解效率降低,传统启发算法(例如扫描法、节约法和两阶段算法等)可以求解较大规模问题,提高问题的求解效率,但容易陷入局部最优,现代启发式算法(例如粒子群算法、模拟退火算法、禁忌搜索算法和遗传算法等)是现在使用最多的,可以求解大规模问题,通过规则提高了搜索效率,解的质量也优于传统启发式算法,但这些算法或多或存在收敛速度慢、容易陷入局部最优以及参数难调整的问题。

人工蜂群算法因为其结果简单易实现、参数少以及性能好的特点,一经提出便受到了各界学者的关注,但现有的人工蜂群算法存在大部分进化算法都存在的缺点——收敛速度慢,通过现有的人工蜂群算法解决车辆路径问题效率较低。



技术实现要素:

本发明的目的在于提供一种车辆路径问题的优化方法及装置,旨在解决由于现有技术无法提供一种车辆路径问题优化的有效方法,导致车辆路径问题优化效率较低的问题。

一方面,本发明提供了一种车辆路径问题的优化方法,所述方法包括下述步骤:

根据车辆路径问题的优化目标,生成所述优化目标的初始种群,计算所述初始种群中每个个体的适应度值;

确定所述初始种群中个体的邻居范围并搜索每个邻居范围内的最优个体,通过所述每个邻居范围内的最优个体引导雇佣蜂进行邻域搜索,生成第一种群;

在所述第一种群中选取部分优秀个体,同归根据预设的搜索公式以及公式使用概率,通过观察蜂对所述部分优秀个体进行邻域搜索,生成第二种群;

当所述第二种群中存在连续更新失败次数达到预设更新阈值的失败个体时,通过侦察蜂随机生成用来替代所述失败个体的新个体;

当个体评价次数超过预设最大评价次数时,将所述第二种群中的最优个体输出为所述车辆路径问题的最优路径,否则将所述第二种群设置为所述初始种群,重新执行确定所述初始种群中个体的邻居范围的操作。

另一方面,本发明提供了一种车辆路径问题的优化装置,所述装置包括:

初始化模块,用于根据车辆路径问题的优化目标,生成所述优化目标的初始种群,计算所述初始种群中每个个体的适应度值;

第一种群生成模块,用于确定所述初始种群中个体的邻居范围并搜索每个邻居范围内的最优个体,通过每个邻居范围内的最优个体引导雇佣蜂进行邻域搜索,生成第一种群;

第二种群生成模块,用于在所述第一种群中选取部分优秀个体,通过根所述部分优秀个体和所述第一种群中的最优个体引导观察蜂进行邻域搜索,生成第二种群;

个体替换模块,用于当所述第二种群中存在连续更新失败次数达到预设更新阈值的失败个体时,通过侦察蜂随机生成用来替代所述失败个体的新个体;以及

循环输出模块,用于当个体评价次数超过预设最大评价次数时,将所述第二种群中的最优个体输出为所述车辆路径问题的最优路径,否则将所述第二种群设置为所述初始种群,重新执行确定所述初始种群中个体的邻居范围的操作。

本发明在生成车辆优化目标的初始种群后,建立初始种群中每个个体的邻居范围,通过每个邻居范围内的最优个体引导雇佣蜂对初始种群中的个体进行邻域搜索,生成第一种群,从第一种群中选取部分优秀个体,通过部分优秀个体和第一种群中的最优个体引导观察蜂进行邻域搜索,生成第二种群,当第二种群中存在连续更新失败次数达到预设更新阈值的失败个体时,通过侦察蜂随机生成用来替代失败个体的新个体,当个体评价次数超过预设最大次数时,将第二种群中的最优个体输出为车辆路径问题的最优路径,否则将第二种群设置为下一次迭代的初始种群,并重新执行确定初始种群中个体的邻居范围的操作,从而通过加强蜜蜂间的信息交流,使得雇佣蜂和观察蜂的搜索不是盲目独立的,有效地提高了人工蜂群算法的收敛速度和优化性能,进而有效地提高了车辆路径问题的优化效率和优化效果。

附图说明

图1是本发明实施例一提供的车辆路径问题的优化方法的实现流程图;

图2是本发明实施例一提供的通过雇佣蜂进行邻域搜索的示例图;

图3是本发明实施例二提供的车辆路径问题的优化装置的结构示意图;以及

图4是本发明实施例二提供的车辆路径问题的优化装置的优化结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

以下结合具体实施例对本发明的具体实现进行详细描述:

实施例一:

图1示出了本发明实施例一提供的车辆路径问题的优化方法的实现流程,为了便于说明,仅示出了与本发明实施例相关的部分,详述如下:

在步骤s101中,根据车辆路径问题的优化目标,生成优化目标的初始种群,计算初始种群中个体的适应度值。

本发明实施例适用于求解车辆路径问题(vrp)的系统或平台。根据车辆路径问题的优化目标,例如路程最短、费用最少或者时间最短等优化目标,建立相应的数学模型,即优化模型。在建立好优化模型后,初始化相关参数和初始种群,其中,相关参数可包括种群个体数量、最大评价次数、个体连续更新失败的最大次数(更新阈值)、个体评价次数以及记录所有个体连续更新失败次数的集合等。

在本发明实施例中,可根据人工蜂群算法中的种群初始化公式,生成一组多维随机值,第i个多维随机值表示为xi=(xi,1,xi,2,…),i=1,2,...,sn,sn为种群个体数量,由于人工蜂群初始化得到的每个多维随机值是一组连续的实数,而车辆行走的一条路径为一列整数序列,因此需要对每个多维随机值进行离散化,离散化后的多维随机值为不同的整数序列。将离散化后的多维随机值设置为初始种群中的个体,并根据构建的优化模型计算每个个体的适应度值(或目标函数值)。

具体地,人工蜂群中的种群初始化公式可表示为:

其中,xij为第i个多维随机值的第j维分量,为预设的第j维分量的最小值,为预设的第j分量的最大值,rand0,1为0-1之间的随机值。

具体地,在对每个多维随机值进行离散化时,可分别将每个多维随机值中的分量进行排序,得到每个多维随机值中每个分量的序列号,因此每个多维随机值可对应一组序列号。例如,当一个多维随机值为(0.3,0.5,0.8,0.1)时,离散化后该多维随机值为(2,3,4,1),这些分量可依次表示路径节点2、3、4、1。

在步骤s102中,确定初始种群中个体的邻居范围并搜索每个邻居范围内的最优个体,通过每个邻居范围内的最优个体引导雇佣蜂进行邻域搜索,生成第一种群。

在本发明实施例中,为初始种群中每个个体建立一个邻居范围,一个邻居范围可认为是每只雇佣蜂的局部视野,根据每个邻居范围中个体的适应度值搜索出该邻居范围内的最优个体,再通过这些最优个体对雇佣蜂的邻域搜索进行引导,使得雇佣蜂具有良好的方向性。邻域搜索后得到初始种群中每个个体对应的新个体,为了便于区分,将这些新个体称为第一新个体。将初始种群中每个个体与自身对应的第一新个体进行适应度值的比较,以对每个个体与对应的第一新个体间的优劣性进行评价,从而将每个个体与对应的第一新个体间的优秀个体保留下来,构成第一种群。其中,在雇佣蜂对一个个体进行一次邻域搜索后,可对个体评价次数进行加一操作。

具体地,可根据初始种群中当前的个体与初始种群中其它个体间的距离平均值,建立该个体的邻居范围,具体地,当个体xi与个体xj的距离dij<r·mdi时,可认为个体xj是个体xi的邻居,其中,r为预设参数,mdi为个体xi与初始种群中其它个体的距离平均值。

具体地,通过每个邻居范围内的最优个体引导雇佣蜂进行邻域搜索的公式为:

vi,j=xi,j+rand0,1·(xnbest-xi,j),其中,vi,j为初始种群中第i个个体在邻域搜索后得到第一新个体vi的第j维,xi,j为初始种群中第i个个体xi的第j维,xnbest为第i个个体的邻居范围内的最优个体。在邻域搜索时,先确定当前个体变异的维度j,再通过邻域搜索公式对当前个体维度j的分量(例如图2中个体x的分量3)进行变异,得到变异后的分量(例如图2中第一新个体xnew的分量6),查找变异后的分量在当前个体中的维度(例如图2中个体x的分量6所在维度),将该维度的分量设置为当前个体维度j的分量。

在步骤s103中,在第一种群中选取部分优秀个体,通过部分优秀个体和第一种群中的最优个体引导观察蜂进行邻域搜索,生成第二种群。

在本发明实施例中,根据第一种群种个体的适应度值,在第一种群种按照预设的选取比例q选择b=q·sn个优秀个体,为便于区分,将这些优秀个体统称为部分优秀个体。将部分优秀个体的顺序打乱,并根据预设公式使用概率pstr在部分优秀个体中选择前floor(pstr·b)个个体作为第一部分个体,剩余的b-floor(pstr·b)个个体作为第二部分个体,并通过该部分优秀个体以及第一种群中的最优个体,引导雇佣蜂采用预设第一公式对第一部分个体进行邻域搜索、预设第二公式对第二部分个体进行邻域搜索,生成部分优秀个体中每个个体对应的新个体,为了便于区分,将这些新个体称为第二新个体。根据部分优秀个体每个个体的适应度值和对应第二新个体的适应度值,保留部分优秀个体和对应的第二新个体之间的优秀个体,构成第二种群。从而通过在第一种群种选取部分优秀个体进行观察蜂的邻域搜索,有效地降低了通过观察蜂的搜索、选择压力,提高了观察蜂邻域搜索的效率。其中,观察蜂每对一个个体进行邻域搜索后,可对个体评价次数进行加一操作。

具体地,第一公式为vi,j'=xpbest,j+φ·(xi,j-xk,j),第二公式为vi,j'=xbest,j+φ·(xpbest,j-xi,j),其中,xpbest为从部分优秀个体中随机选取的一个个体,xk为从第二种群中随机选取的不同于个体xi和个体xpbest的个体,xbest为第二种群中的最优个体,xi为部分优秀个体中的第i个个体,vi'为部分优秀个体中的第i个个体xi邻域搜索后得到的第二新个体,φ为[-1,1]中的一个随机实数。

优选地,当部分优秀个体中的个体比对应的第二新个体差时,计算该个体与对应的第二新个体间的适应度值差值(适应度值间的差值),当该个体的邻域搜索是采用第一公式完成时,将该适应度值差值累加到第一公式的提升度上,否则将该适应度值差值累加到第二公式的提升度上,继而根据第一公式的提升度和第二公式的提升度更新公式使用概率,从而有效提高通过观察蜂进行的邻域搜索的效果。具体地,根据第一公式的提升度和第二公式的提升度更新公式使用概率时,先计算第一公式和第二公式的平均提升度,当公式的平均提升度之和为0时,公式使用概率为0.5,否则,公式使用概率的公式为:

pstr=0.1+0.8·aid1/(aid1+aid2),

其中,aid1为第一公式的平均提升度,aid1=id1/floor(pstr·b),aid2为第二公式的平均提升度,aid2=id2/(b-floor(pstr·b)),id1为第一公式的提升度,id2为第二公式的提升度。

在本发明实施例中,可将选取比例的倒数值设置为在第一种群中选取部分优秀个体的次数阈值,每完成一次上述的部分优秀个体选取、观察蜂邻域搜索和公式使用概率更新,就对当前的选取次数进行加一操作,并判断当前的选取次数是否超过次数阈值,当未超过时,将第二种群设置为第一种群,并跳转至在第一种群中选取部分优秀个体的操作。

在步骤s104中,第二种群中是否存在连续更新失败次数达到预设更新阈值的失败个体。

在本发明实施例中,雇佣蜂的邻域搜索和观察蜂的邻域搜索即分别对初始种群中个体进行更新和对第一种群中个体进行更新,当更新前的个体优于更新后的个体,可认为该个体此次更新失败。当第二种群中存在连续更新失败次数达到预设更新阈值的失败个体时执行步骤s105,否则执行步骤s106。

在步骤s105中,通过侦察蜂随机生成用来替代失败个体的新个体。

在本发明实施例中,在侦察蜂阶段,通过人工蜂群中的种群初始化公式生成一个多维随机值,并对该多维随机值进行离散化,得到一个新个体,用该新个体代替连续更新失败次数达到预设更新阈值的失败个体。其中,侦察蜂每更新一个个体后,可对个体评价次数进行加一操作。

在步骤s106中,个体评价次数是否超过预设最大评价次数。

在本发明实施例中,在初始化时,个体评价次数为0,每完成一次雇佣蜂阶段、观察蜂阶段的邻域搜索以及侦察蜂的个体更新,可对个体评价次数进行更新。当个体评价次数超过预设的最大评价次数时,认为车辆路径问题的优化完成,执行步骤s108,否则执行步骤s107。

在步骤s107中,将第二种群设置为初始种群,重新执行确定初始种群中个体的邻居范围的操作。

在本发明实施例中,当个体评价次数未超过最大评价次数时,将第二种群设置为下次迭代过程的初始种群,循环执行雇佣蜂、观察蜂的邻域搜索以及侦察蜂的个体更新等操作。

在步骤s108中,将第二种群中的最优个体输出为车辆路径问题的最优路径。

在本发明实施例中,当个体评价次数超过最大评价次数时,将第二种群中的最优个体作为车辆路径问题的最优路径输出,完成对车辆路径问题的优化。

在本发明实施例中,在雇佣蜂阶段通过邻居范围内的最优个体引导雇佣蜂的邻域搜索,加强了蜂群局部信息的交流,在观察蜂阶段通过部分优秀个体、整个种群中的最优个体引导观察蜂的邻域搜索,降低观察蜂搜索负担的同时加强了蜂群全局信息的交流,从而有效地提高了人工蜂群算法的收敛速度和优化性能,进一步有效地提高了车辆路径问题的优化效率。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如rom/ram、磁盘、光盘等。

实施例二:

图3示出了本发明实施例二提供的车辆路径问题的优化装置的结构,为了便于说明,仅示出了与本发明实施例相关的部分,其中包括:

初始化模块31,用于根据车辆路径问题的优化目标,生成优化目标的初始种群,计算初始种群中个体的适应度值;

第一种群生成模块32,用于确定初始种群中个体的邻居范围并搜索每个邻居范围内的最优个体,通过每个邻居范围内的最优个体引导雇佣蜂进行邻域搜索,生成第一种群;

第二种群生成模块33,用于在第一种群中选取部分优秀个体,通过部分优秀个体和第一种群中的最优个体引导观察蜂进行邻域搜索,生成第二种群;

个体替换模块34,用于当第二种群中存在连续更新失败次数达到预设更新阈值的失败个体时,通过侦察蜂随机生成用来替代失败个体的新个体;

循环输出模块35,用于当个体评价次数超过预设最大评价次数时,将第二种群中的最优个体输出为车辆路径问题的最优路径,否则将第二种群设置为初始种群,重新执行确定初始种群中个体的邻居范围的操作。

优选地,如图4所示,初始化模块31包括模型建立模块411和种群生成模块412,其中:

模型建立模块411,用于根据车辆路径问题的优化目标,建立相应的优化模型,初始化优化模型的相关参数;以及

种群初始化模块412,用于种群生成模块,用于根据人工蜂群的种群初始化公式生成一组多维的随机值,离散化所有随机值并将离散化后的随机值设置为初始种群中的个体,根据优化模型计算初始种群中每个个体的适应度值。

优选地,第一种群生成模块32包括邻居确定模块421邻居搜索模块422第一邻域搜索模块423和第一更新模块424,其中:

邻居确定模块421,用于根据初始种群中每个个体间的距离,确定初始种群中每个个体的邻居范围;

邻居搜索模块422,用于根据每个邻居范围中所有个体的适应度值,搜索每个邻居范围的最优个体;

第一邻域搜索模块423,用于根据每个邻居范围内的最优个体引导雇佣蜂对初始种群中对应的个体进行邻域搜索,生成初始种群中每个个体对应的第一新个体;以及

第一更新模块424,用于根据初始种群每个个体的适应度值和对应的第一新个体的适应度值,将初始种群中每个个体与对应的第一新个体中的优秀个体设置为第一种群中的个体。

优选地,第二种群生成模块33包括部分选取模块431、第二邻域搜索模块432和第二更新模块433,其中:

部分选取模块431,用于根据第一种群中个体的适应度值和预设选取比例选取部分优秀个体,打乱部分优秀个体的顺序,将顺序打乱的部分优秀个体根据预设的公式使用概率划分为第一部分个体和第二部分个体;

第二邻域搜索模块432,用于通过部分优秀个体和第一种群中的最优个体,引导观察蜂采用预设的第一公式和第二公式分别对对第一部分个体、第二部分个体进行邻域搜索,生成部分优秀个体对应的第二新个体;以及

第二更新模块433,用于根据部分优秀个体与对应的第二新个体的适应度值,将部分优秀个体与对应的第二新个体中的优秀个体设置为第二种群的个体。

优选地,第二种群生成模块33还包括差值计算模块434、概率更新模块435和选取循环模块436,其中:

差值计算模块434,用于当部分优秀个体对应的第二新个体优于部分优秀个体时,计算部分优秀个体与对应的第二新个体的适应度值差值;

概率更新模块435,用于根据适应度值差值分别计算第一公式的提升度和第二公式的提升度,根据第一公式第二公式的提升度更新公式使用概率;以及

选取循环模块436,用于判断部分优秀个体的选取次数是否超过预设次数阈值,当选取次数未超过次数阈值时,将第二种群设置为第一种群并重新执行选取部分优秀个体的操作。

在本发明实施例中,在雇佣蜂阶段通过邻居范围内的最优个体引导雇佣蜂的邻域搜索,加强了蜂群局部信息的交流,在观察蜂阶段通过部分优秀个体、整个种群中的最优个体引导观察蜂的邻域搜索,降低观察蜂搜索负担的同时加强了蜂群全局信息的交流,从而有效地提高了人工蜂群算法的收敛速度和优化性能,进一步有效地提高了车辆路径问题的优化效率。

在本发明实施例中,车辆路径问题的优化装置的各模块可由相应的硬件或软件模块实现,各模块可以为独立的软、硬件模块,也可以集成为一个软、硬件模块,在此不用以限制本发明。本发明实施例中各模块的具体实施方式可参考前述实施例一中各步骤的描述,在此不再赘述。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1