版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
%粒子群算法求解旅行商问题%BylReijcloseall;clearall;PopSize=500;%种群大小CityNum=14;%城市数OldBestFitness=0;%旧的最优适应度值Iteration=0;%迭代次数MaxIteration=2000;%最大迭代次数IsStop=0;%程序停止标志Num=0;%取得相同适应度值的迭代次数c1=0.5;%认知系数c2=0.7;%社会学习系数w=0.96-Iteration/MaxIteration;%惯性系数,随迭代次数增加而递减%节点坐标node=[16.4796.10;16.4794.44;20.0992.54;22.3993.37;25.2397.24;...22.0096.05;20.4797.02;17.2096.29;16.3097.38;14.0598.12;...16.5397.38;21.5295.59;19.4197.13;20.0994.55];%初始化各粒子,即产生路径种群Group=ones(CityNum,PopSize);fori=1:PopSizeGroup(:,i)=randperm(CityNum)';endGroup=Arrange(Group);%初始化粒子速度(即交换序)Velocity=zeros(CityNum,PopSize);fori=1:PopSizeVelocity(:,i)=round(rand(1,CityNum)'*CityNum);%round取整end%计算每个城市之间的距离CityBetweenDistance=zeros(CityNum,CityNum);fori=1:CityNumforj=1:CityNumCityBetweenDistance(i,j)=sqrt((node(i,1)-node(j,1))^2+(node(i,2)-node(j,2))^2);endend%计算每条路径的距离fori=1:PopSizeEachPathDis(i)=PathDistance(Group(:,i)',CityBetweenDistance);endIndivdualBest=Group;%记录各粒子的个体极值点位置,即个体找到的最短路径IndivdualBestFitness=EachPathDis;%记录最佳适应度值,即个体找到的最短路径的长度[GlobalBestFitness,index]=min(EachPathDis);%找出全局最优值和相应序号%初始随机解figure;subplot(2,2,1);PathPlot(node,CityNum,index,IndivdualBest);title('随机解');%寻优while(IsStop==0)&(Iteration<MaxIteration)%迭代次数递增Iteration=Iteration+1;%更新全局极值点位置,这里指路径fori=1:PopSizeGlobalBest(:,i)=Group(:,index);end%求pij-xij,pgj-xij交换序,并以概率c1,c2的保留交换序pij_xij=GenerateChangeNums(Group,IndivdualBest);pij_xij=HoldByOdds(pij_xij,c1);pgj_xij=GenerateChangeNums(Group,GlobalBest);pgj_xij=HoldByOdds(pgj_xij,c2);%以概率w保留上一代交换序Velocity=HoldByOdds(Velocity,w);Group=PathExchange(Group,Velocity);%根据交换序进行路径交换Group=PathExchange(Group,pij_xij);Group=PathExchange(Group,pgj_xij);fori=1:PopSize%更新各路径总距离EachPathDis(i)=PathDistance(Group(:,i)',CityBetweenDistance);endIsChange=EachPathDis<IndivdualBestFitness;%更新后的距离优于更新前的,记录序号IndivdualBest(:,find(IsChange))=Group(:,find(IsChange));%更新个体最佳路径IndivdualBestFitness=IndivdualBestFitness.*(~IsChange)+EachPathDis.*IsChange;%更新个体最佳路径距离[GlobalBestFitness,index]=min(EachPathDis);%更新全局最佳路径,记录相应的序号ifGlobalBestFitness==OldBestFitness%比较更新前和更新后的适应度值;Num=Num+1;%相等时记录加一;elseOldBestFitness=GlobalBestFitness;%不相等时更新适应度值,并记录清零;Num=0;endifNum>=20%多次迭代的适应度值相近时程序停止IsStop=1;endBestFitness(Iteration)=GlobalBestFitness;%每一代的最优适应度end%最优解subplot(2,2,2);PathPlot(node,CityNum,index,IndivdualBest);title('优化解');%进化曲线subplot(2,2,3);plot((1:Iteration),BestFitness(1:Iteration));gridon;title('进化曲线');%最小路径值GlobalBestFitnessfunctionGroup=Arrange(Group)[xy]=size(Group);[NO1,index]=min(Group',[],2);%找到最小值1fori=1:ypop=Group(:,i);temp1=pop([1:index(i)-1]);temp2=pop([index(i):x]);Group(:,i)=[temp2'temp1']';endfunctionChangeNums=GenerateChangeNums(Group,BestVar);[xy]=size(Group);ChangeNums=zeros(x,y);fori=1:ypop=BestVar(:,i);%从BestVar取出一个顺序pop1=Group(:,i);%从粒子群中取出对应的顺序forj=1:x%从BestVar的顺序中取出一个序号NoFromBestVar=pop(j);fork=1:x%从对应的粒子顺序中取出一个序号NoFromGroup=pop1(k);if(NoFromBestVar==NoFromGroup)&&(j~=k)%两序号同且不在同一位置ChangeNums(j,i)=k;%交换子pop1(k)=pop1(j);pop1(j)=NoFromGroup;endendendendfunctionHold=HoldByOdds(Hold,Odds)[x,y]=size(Hold);fori=1:xforj=1:yifrand>OddsHold(i,j)=0;endendendfunctionSumDistance=PathDistance(path,CityBetweenDistance)L=length(path);%path为一个循环的节点顺序SumDistance=0;fori=1:L-1SumDistance=SumDistance+CityBetweenDistance(path(i),path(i+1));endSumDistance=SumDistance+CityBetweenDistance(path(1),path(L));%加上首尾节点的距离functionGroup=PathExchange(Group,Index)[xy]=size(Group);fori=1:ya=Index(:,i);%取出其中一组交换序pop=Group(:,i);%取出对应的粒子forj=1:x%取出其中一个交换算子作交换ifa(j)~=0pop1=pop(j);pop(j)=pop(a(j));pop(a(j))=pop1;endendGroup(:,i)=pop;endfunctionPathPlot(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高铁保健员聘用协议
- 网络游戏玩家行为规范
- 基础建设水利施工合同范本
- 产业升级二手厂房买卖合同模板
- 城市建设关联交易公共资源分配
- 城市绿化景观改造养护合同
- 地下综合管廊工程劳务招标
- 矿山环保认证项目施工合同模板
- 地质灾害治理合同
- 土地管理中的公民参与机制
- 安置房项目二次结构砖砌体工程专项施工方案培训资料
- SB/T 10756-2012泡菜
- GB/T 36393-2018土壤质量自然、近自然及耕作土壤调查程序指南
- GB/T 3045-2017普通磨料碳化硅化学分析方法
- 新疆维吾尔自治区公共建筑节能设计标准实施细则2023
- 2022年西藏自治区中考英语真题卷(含答案与解析)
- 医院输血质量管理考核标准
- 七年级语文上册:15、《古代诗歌四首》教案
- 气道评估与处理课件
- 脑血管病的介入诊疗课件
- RCS-9626CN电动机保护测控装置
评论
0/150
提交评论