这篇文章主要介绍“matlab如何模拟退火算法”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“matlab如何模拟退火算法”文章能帮助大家解决问题。
S1=randperm(N); %随机产生一个初始路线Rlength=PathLength(D,S1);disp(['总距离:',num2str(Rlength)]);Time=ceil(double(solve(['1000*(0.9)^x=',num2str(Tend)])));Obj=zeros(Time,1); %目标值矩阵初始化track=zeros(Time,N); %每代的最优路线矩阵初始化 [S1,R]=Metropolis(S1,S2,D,T0); %Metropolis 抽样算法 temp(k,:)=[S1 R]; %记录下一路线的及其路程 [d0,index]=min(temp(:,end)); %找出当前温度下最优路线 if count==1 || d0<Obj(count-1) Obj(count)=d0; %如果当前温度下最优路程小于上一路程则记录当前路程 Obj(count)=Obj(count-1);%如果当前温度下最优路程大于上一路程则记录上一路程 track(count,:)=temp(index,1:end-1); %记录当前温度的最优路线 fprintf(1,'%d\n',count) %输出当前迭代次数disp(['总距离:',num2str(PathLength(D,S))]);disp('-------------------------------------------------------------')关于“matlab如何模拟退火算法”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注天达云行业资讯频道,小编每天都会为大家更新不同的知识点。