一种解决旅行商问题的自适应粒子群优化方法技术

技术编号:19481300 阅读:25 留言:0更新日期:2018-11-17 10:40
本发明专利技术公开了一种解决旅行商问题的自适应粒子群优化方法,在现有的标准粒子群算法的基础之上采用反向学习初始化粒子种群,并使粒子群优化算法的惯性权重w,学习因子c,随着迭代次数的增加自适应调整,从而提高粒子群优化算法的寻优能力,并在算法的后期引入混沌局部搜索避免算法陷入局部最优。用标准函数对改进后的算法进行测试,得到的结果明显优于标准PSO优化算法,并将改进后的粒子群优化算法应用到旅行商问题的优化求解中,取得比较好的优化结果。

【技术实现步骤摘要】
一种解决旅行商问题的自适应粒子群优化方法
本专利技术属于问题优化领域,涉及一种具体解决旅行商问题的自适应粒子群优化方法,涉及一种解决旅行商问题的基于反向学习和混沌局部搜索的自适应粒子群优化方法。
技术介绍
人类社会发展的过程中,最优化问题普遍存在于人们生活、学习、工作的方面。例如,在生活中,人们从一个地点到另一个地点总希望找到一条既快捷又方便的路径;生产中,希望能耗最低等。Reynolds在20世纪80年代中期通过模拟鸟类飞行行为提出Boid模型,并在计算机中仿真实现了鸟类的运行轨迹,模型中的每个个体存在感知能力,能感知自身及周边各种环境的变化,个体之间相互靠近但是要避免碰撞。在鸟群飞行的过程中,远离中心群落的鸟群会不断靠拢,最终形成趋于一致的大群体。受Boid模型的启发,计算机研究学者Eberhart和心理学家Kennedy于1995年在IEEE国际会议上发表的论文中提出了粒子群优化算法(ParticleSwarmOptimization,PSO)。对于标准PSO算法,在每一次迭代过程中通过粒子的位置来寻找个体的最优值Pbest,并比较每个个体的最优值得到当前的全局最优值Gbest。式(1)和式(2)分别为粒子的速度和位置更新公式。v(t+1)=w*v(t)+c1r1(Pbest-x(t))+c2r2(Gbest-x(t))(1)x(t+1)=x(t)+v(t+1)(2)其中,t为当前迭代次数,v为粒子飞行速度,x为当前粒子位置,w为惯性权重,用于修正自身原有飞行速度。w越小,粒子的局部搜索能力越强,全局搜索能力相对较弱;w越大,粒子的局部搜索能力较弱,全局搜索能力较强。c1、c2为加速因子,一般取常数2;r1、r2为两个相互独立、并在[0,1]之间取值的随机数。标准PSO算法具有操作简单、容易实现、无需确定太多参数等优点。在标准PSO算法中,初始粒子的产生一般是在给定的范围内随机生成一定规模的粒子,这会导致初始粒子的多样性缺失,使粒子的初始解较差,进而会影响算法的收敛效果;惯性权重w和加速因子c均为常量,不利于群体的进化;算法后期粒子容易早熟陷入局部极值。
技术实现思路
针对标准粒子群优化算法的以上缺陷,本专利技术提出一种解决旅行商问题的基于反向学习和混沌局部搜索的自适应粒子群优化方法。本专利技术所采用的技术方案是:一种解决旅行商问题的自适应粒子群优化方法,其特征在于,包括以下步骤:步骤1:利用反向学习方法得到初始种群,设置参数;步骤2:计算每个粒子适应值,确定个体最优位置Pbest和全局最优粒子Gbest;步骤3:更新惯性权重w和加速因子c;步骤4:更新对粒子的位置和速度进行;步骤5:计算更新后每个粒子适应值,并与当前粒子的适应值比较,将适应值更优的粒子位置代替Pbest;步骤6:计算并比较每个粒子的适应值,将适应值最优的粒子位置作为全局最优位置Gbest;步骤7:判断算法是否早熟;若是,则执行步骤8;若否,执行步骤9;步骤8:对当前全局最优粒子Gbest进行k次混沌局部搜索,在每次混沌局部搜索中将生成的新粒子与全局最优粒子的适应值进行比较,若新粒子的适应值优于全局最优粒子Gbest时,新粒子的位置作为全局最优位置Gbest;继续执行下述步骤9;步骤9:令迭代次数iter=iter+1,当迭代次数iter大于最大迭代次数MaxIter时,本流程结束;否则回转执行步骤3。本专利技术在以下三个方面对标准粒子群算法进行了改进:(1)采用反向学习的策略对粒子群体进行初始化,使粒子具有多样性,提高了粒子初始解的质量,加速了算法的收敛;(2)采取参数自适应动态调整的方法,较好的平衡算法的全局和局部寻优能力;(3)当算法早熟收敛时,利用Logistic在当前最优解附近进行混沌局部搜索,增强算法的局部寻优能力。函数性能测试结果表明,IPSO极大改善了标准PSO的优化性能,有效避免了早熟收敛、易陷入局部极值的问题。附图说明图1本专利技术实施例的流程图;图2本专利技术实施例中函数w(t)曲线示意图;图3本专利技术实施例中函数c(t)曲线示意图;图4本专利技术实施例中函数Sphere的本专利技术方法(IPSO)与PSO的收敛曲线示意图;图5旅行商问题随机结果图;图6改进粒子群算法在旅行商问题中的优化结果图。具体实施方式为了便于本领域普通技术人员理解和实施本专利技术,下面结合附图及实施例对本专利技术作进一步的详细描述,应当理解,此处所描述的实施示例仅用于说明和解释本专利技术,并不用于限定本专利技术。请见图1,本专利技术提供的一种解决旅行商问题的自适应粒子群优化方法,包括以下步骤:步骤1:利用反向学习方法得到初始种群,设置参数;根据反向学习的定义,先随机生成规模为N的初始种群P,群体中每个个体X=(x1,x2,…,xn),按照反向学习方式(3)生成反向群体P*,合并两个种群,计算每个粒子的适应值,按照适应值的优劣从中选取较优的前一半的粒子形成新的种群作为初始种群;x*=omin+omax-xi(3);其中,omax、omin分别为优化范围的最大值和最小值;设置粒子最大更新速度vmax、最小更新速度vmin、优化边界和omax、omin,最大迭代次数MaxIter、初始迭代次数iter=0。步骤2:计算每个粒子适应值,确定个体最优位置Pbest和全局最优粒子Gbest;计算每个粒子的适应值,将每个粒子位置作为当前个体最优位置Pbes,比较每个粒子适应值,将适应值最优的粒子位置作为全局最优位置Gbest。步骤3:更新惯性权重w和加速因子c;在标准的PSO算法中,惯性权重w的取值影响算法的寻优能力。当w取值在[0.9,1.2]时,粒子能很快的找到全局最优区域,但到最优值附近时收敛速度却很慢;当w<0.8时,在最优值附近收敛速度很快,但是全局搜索能力较差。因此,本专利技术提出一种基于迭代次数变化的惯性权重函数,在开始阶段使w保持最大,算法的全局搜索能力较强;随着迭代次数的增加,w逐渐减小,算法具有较强的局部寻优能力。w的更新公式如下:其中iter为当前迭代次数,MaxIter为总迭代次数,s为大于1的常数,本实施例s取10。为了提高算法的搜索性能,令算法在初期加速因子较大使得初期的粒子具有较强的全局搜索能力,在算法的后期加速因子减小使粒子的局部搜索能力更强,采用式(5)的方式对加速因子c进行调整,其中,iter为当前迭代次数,MaxIter为总迭代次数。针对算法后期容易早熟陷入局部极值的问题,当粒子早熟时,对全局最优粒子进行k次混沌局部搜索。步骤4:更新对粒子的位置和速度进行;粒子的速度和位置更新公式为:v(t+1)=w*v(t)+c1r1(Pbest-x(t))+c2r2(Gbest-x(t));x(t+1)=x(t)+v(t+1);其中,t为当前迭代次数,v为粒子飞行速度,x为当前粒子位置,Pbest为当前个体最优位置,Gbest为全局最优粒子位置,w为惯性权重,用于修正自身原有飞行速度;c1、c2为加速因子,一般取常数2;r1、r2为两个相互独立、并在[0,1]之间取值的随机数。步骤5:计算更新后每个粒子适应值,并与当前粒子的适应值比较,将适应值更优的粒子位置代替Pbest;步骤6:计算并比较每个粒子的适应值,将适应值最优的粒子位置作为全局最优位置Gbest本文档来自技高网
...

【技术保护点】
1.一种解决旅行商问题的自适应粒子群优化方法,其特征在于,包括以下步骤:步骤1:利用反向学习方法得到初始种群,设置参数;步骤2:计算每个粒子适应值,确定个体最优位置Pbest和全局最优粒子Gbest;步骤3:更新惯性权重w和加速因子c;步骤4:更新对粒子的位置和速度进行;步骤5:计算更新后每个粒子适应值,并与当前粒子的适应值比较,将适应值更优的粒子位置代替Pbest;步骤6:计算并比较每个粒子的适应值,将适应值最优的粒子位置作为全局最优位置Gbest;步骤7:判断算法是否早熟;若是,则执行步骤8;若否,执行步骤9;步骤8:对当前全局最优粒子Gbest进行k次混沌局部搜索,在每次混沌局部搜索中将生成的新粒子与全局最优粒子的适应值进行比较,若新粒子的适应值优于全局最优粒子Gbest时,新粒子的位置作为全局最优位置Gbest;继续执行下述步骤9;步骤9:令迭代次数iter=iter+1,当迭代次数iter大于最大迭代次数MaxIter时,本流程结束;否则回转执行步骤3。

【技术特征摘要】
1.一种解决旅行商问题的自适应粒子群优化方法,其特征在于,包括以下步骤:步骤1:利用反向学习方法得到初始种群,设置参数;步骤2:计算每个粒子适应值,确定个体最优位置Pbest和全局最优粒子Gbest;步骤3:更新惯性权重w和加速因子c;步骤4:更新对粒子的位置和速度进行;步骤5:计算更新后每个粒子适应值,并与当前粒子的适应值比较,将适应值更优的粒子位置代替Pbest;步骤6:计算并比较每个粒子的适应值,将适应值最优的粒子位置作为全局最优位置Gbest;步骤7:判断算法是否早熟;若是,则执行步骤8;若否,执行步骤9;步骤8:对当前全局最优粒子Gbest进行k次混沌局部搜索,在每次混沌局部搜索中将生成的新粒子与全局最优粒子的适应值进行比较,若新粒子的适应值优于全局最优粒子Gbest时,新粒子的位置作为全局最优位置Gbest;继续执行下述步骤9;步骤9:令迭代次数iter=iter+1,当迭代次数iter大于最大迭代次数MaxIter时,本流程结束;否则回转执行步骤3。2.根据权利要求1所述的解决旅行商问题的自适应粒子群优化方法,其特征在于:步骤1中,根据反向学习的定义,先随机生成规模为N的初始种群P,群体中每个个体X=(x1,x2,…,xn),按照反向学习方式生成反向群体P*,合并两个种群,计算每个粒子的适应值,按照适应值的优劣从中选取较优的前一半的粒子形成新的种群作为初始种群;所述反向学习方式为:x*=omin+omax-xi;其中,omax、omin分别为优化范围的最大值和最小值;设置粒子最大更新速度vmax、最小更新速度vmin、优化边界omax和omin,最大迭代次数MaxIter、初始迭代次数iter=0。3.根据权利要求1所述的解决旅行商问题的自适应粒子群优化方法,其特征在于:步骤2中,计算每个粒子的适应值,将每个粒子位置作为当前个体最优位置Pbest,比较每个粒子适应值,将适应值最优的粒子位置作为全局最优位置Gbest。4.根据权利要求1所述的解决旅行商问题的自适应粒子群优化方法,其特征在于:步骤3中,惯性权重w的更新公式如下:其中iter为当前迭代次数...

【专利技术属性】
技术研发人员:方娜万畅
申请(专利权)人:湖北工业大学
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1