欢迎来到天天文库
浏览记录
ID:32882495
大小:44.41 KB
页数:3页
时间:2019-02-17
《基于混合粒子群算法的tsp搜索算法》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、基于混合粒子群算法的TSP搜索算法1、案例背景 粒子群算法(ParticleSwarmOptimization,PSO)是Kennedy博士和Eberhart博士在1995年提出的一种基于群体智能的优化算法,它首先初始化一群随机粒子,然后通过迭代寻找问题的最优解,在每一次迭代过程中,粒子通过个体极值和群体极值更新自身的速度和位置。 标准粒子群算法通过追随个体极值和群体极值来完成极值寻优的,虽然操作简单,且能够快速收敛,但是随着迭代次数的不断增加,在种群收敛集中的同时,各粒子也越来越相似,可能在局部解周边无法跳出。混合粒
2、子群算法摒弃了传统粒子群算法中的通过跟踪极值来更新粒子位置的方法,而是引入了遗传算法中的交叉和变异操作,通过粒子同个体极值和群体极值的交叉以及粒子自身变异的方式来搜索最优解。 2、案例目录 本案例的目录为:第十五章 基于混合粒子群算法的TSP搜索算法15.1 理论基础15.2 案例背景15.2.1 问题描述15.2.2 算法流程15.2.3 算法实现15.3MATLAB程序实现15.3.1 适应度函数15.3.2 粒子初始化15.3.3 交叉操作15.3.4 变异操作15.3.5 仿真结果15.4延伸阅读.15.5
3、 参考文献..3、主程序%%循环寻找最优路径forN=1:nMaxN%计算适应度值indiFit=fitness(individual,cityCoor,cityDist);%更新当前最优和历史最优fori=1:indiNumberifindiFit(i)4、vidual(i,:);endend[value,index]=min(recordPbest);recordGbest(N)=recordPbest(index);%%变异操作c1=round(rand*(n-1))+1;%产生变异位c2=round(rand*(n-1))+1;%产生变异位whilec1==c2c1=round(rand*(n-2))+1;c2=round(rand*(n-2))+1;endtemp=xnew1(i,c1);xnew1(i,c1)=xnew1(i,c2);xnew1(i,c2)=temp5、;%新路径长度变短则接受dist=0;forj=1:n-1dist=dist+cityDist(xnew1(i,j),xnew1(i,j+1));enddist=dist+cityDist(xnew1(i,1),xnew1(i,n));ifindiFit(i)>distindividual(i,:)=xnew1(i,:);endend[value,index]=min(indiFit);L_best(N)=indiFit(index);tourGbest=individual(index,:);end
4、vidual(i,:);endend[value,index]=min(recordPbest);recordGbest(N)=recordPbest(index);%%变异操作c1=round(rand*(n-1))+1;%产生变异位c2=round(rand*(n-1))+1;%产生变异位whilec1==c2c1=round(rand*(n-2))+1;c2=round(rand*(n-2))+1;endtemp=xnew1(i,c1);xnew1(i,c1)=xnew1(i,c2);xnew1(i,c2)=temp
5、;%新路径长度变短则接受dist=0;forj=1:n-1dist=dist+cityDist(xnew1(i,j),xnew1(i,j+1));enddist=dist+cityDist(xnew1(i,1),xnew1(i,n));ifindiFit(i)>distindividual(i,:)=xnew1(i,:);endend[value,index]=min(indiFit);L_best(N)=indiFit(index);tourGbest=individual(index,:);end
此文档下载收益归作者所有