加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

模拟退火算法实现代码

发布时间:2020-12-14 04:45:08 所属栏目:大数据 来源:网络整理
导读:模拟退火算法:主程序实现如下: 具体算法实现函数,请点击这里https://s.wcd.im/v/43dvdZ36/ %main.m 文件 close all; clear all; zuobiao=[0.37 0.75 0.45 0.76 0.71 0.07 0.42 0.59 0.32 0.6 0.3 0.67 0.62 0.67 0.20 ... 0.35 0.27 0.94 0.82 0.37 0.61

模拟退火算法:主程序实现如下:

具体算法实现函数,请点击这里https://s.wcd.im/v/43dvdZ36/

%main.m 文件
close all;
clear all;

zuobiao=[0.37 0.75 0.45 0.76 0.71 0.07 0.42 0.59 0.32 0.6 0.3 0.67 0.62 0.67 0.20 ...
0.35 0.27 0.94 0.82 0.37 0.61 0.42 0.6 0.39 0.53 0.4 0.63 0.5 0.98 0.68;
0.91 0.87 0.85 0.75 0.72 0.74 0.71 0.69 0.64 0.64 0.59 0.59 0.55 0.55 0.5...
0.45 0.43 0.42 0.38 0.27 0.26 0.25 0.23 0.19 0.19 0.13 0.08 0.04 0.02 0.85]
plot(zuobiao(1,:),zuobiao(2,‘g*‘),hold on
plot(zuobiao(1,:))
length=max(size(zuobiao));
%求初始距离..

% zhixu=randperm(length); %随机生成一个路线经过点的顺序
% temp=zuobiao(1,:);
% newzuobiao(1,:)=temp(zhixu);
% temp=zuobiao(2,:);
% newzuobiao(2,:)=temp(zhixu);
% newzuobiao;
% f=juli(newzuobiao);
f=juli(zuobiao);
%参数定义区--------------------------------------
%初始温度为10000
tmax=100;
tmin=0.001;
%温度下降速率
down=0.95;

%退火算法的函数..
figure
t=tmax;
while t>tmin
for n=1:5000
newzuobiao=newpath(zuobiao,length);
newf=juli(newzuobiao);
if newf<f
zuobiao=newzuobiao;
f=newf;
elseif rand<exp(-(newf-f)/t)
zuobiao=newzuobiao;
f=newf;
end
end
huatu=[zuobiao,zuobiao(:,1)];
plot(huatu(1,huatu(2,:)); hold on
plot(huatu(1,‘ro‘);text(0.1,0.1,[‘总距离为‘,num2str(f)]); hold off
pause(0.00001);
t=t*down;
f;
end

%newpath.m 文件(随机的交换两个点的坐标) % function zuobiao=newpath(zuobiao,length) % %随机交换两个点的坐标.. % a=ceil(rand(1,2)*length); % qian=a(1); % hou=a(2); % temp=zuobiao(:,qian); % zuobiao(:,qian)=zuobiao(:,hou); % zuobiao(:,hou)=temp; %juli.m 文件(计算按某种方式围成的圈的总路程) % function lucheng=juli(zuobiao) % length=max(size(zuobiao)); % s=0; % for i=2:length % s=s+sqrt(sum((zuobiao(:,i)-zuobiao(:,i-1)).^2)); % end % if length~=2 % s=s+sqrt(sum((zuobiao(:,1)-zuobiao(:,length)).^2)); % end % lucheng=s;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读