Lk=10000; %设置markov链长
t0=1000; % 设置初始温度
tf=0.01; %终止温度
a=0.95; %指数降温系数
k=1; %迭代次数,初始值设置为1
x1=[0 0]; %二维函数初始解
while t0>0.00001 %当温度大于终止温度时,循环继续
for m=1:Lk
f(1)=fun(x1); %调用函数fun计算初始解x1对应的目标函数值
x2(1)=x1(1)+0.01*(rand-0.5); %产生新解
x2(2)=x1(2)+0.01*(rand-0.5);
x2=[x2(1) x2(2)];
f(2)=fun(x2); %调用函数fun计算新解 x2对应的目标函数值
if f(2)-f(1)<0 %若新解对应的目标函数值小于初始解则保留新解坐标,并将其值存储在解x1中
x1=x2;
elseif exp((f(1)-f(2))/t0)>rand
x1=x2;
end
temp(m,1)=x1(1); %记录本次比较中较优解对应的序号位置t
temp(m,2)=x1(2);
temp(m,3)=f(1);
end
[fmin,i]=min(temp(:,3)); %记录同一温度T下、Lk次比较中最优解的值fmin以及最优解对应的序号位置i
x1(1)=temp(i,1); %将同一温度T下、Lk次比较中最优解的坐标存储至x1中
x1(2)=temp(i,2);
ret1(k)=x1(1); %记录第N次迭代时的最优解坐标
ret2(k)=x1(2);
se(k)=fmin; %记录第N次迭代时的最优解值
k=k+1; %迭代次数加1
t0=t0*a; %指数降温
end
[fmin,I]=min(se); %记录N次迭代中的全局最优解以及最优解对应的迭代步数
I %达到最优解的代数
x(1)=ret1(I);
x(2)=ret2(I);
x(1)
x(2)
fmin %最优解
tt=1:k-1;
plot(tt,se); %绘制寻优过程曲线
title('模拟退火算法求解二维Rosenbrock函数最优值');
xlabel('迭代次数');
ylabel('各代历史最优解');
shenjingwangluo.rar_matlab 人工智能
版权申诉
5星 · 超过95%的资源 187 浏览量
2022-09-24
20:30:33
上传
评论
收藏 1KB RAR 举报
Kinonoyomeo
- 粉丝: 77
- 资源: 1万+
最新资源
- 基于Bagging集成学习方法的情绪分类预测模型研究(数据集+代码).rar
- nacos-server-2.3.0-BETA.zip
- 双11活动数据分析-商品销售数据、促销活动的信息、用户行为数据
- 基于记忆与模型协同过滤的电影推荐系统研究与实践(数据集+代码).rar
- 基于LDA主题分析的《老友记》情景喜剧数据集的建模分析(数据集+代码).rar
- html css js网页制作实例-展示一个基本的交互效果
- DevExpress控件通用导出Excel,支持多个控件同时导出
- 基于情感分析+聚类分析+LDA主题分析对服装产品类的消费者评论分析(数据集+代码).rar
- 编译原理-研究如何将高级语言编写的程序转换成计算机能够执行的低级指令或者其他形式的表达
- php中ImageMagick安装教程;ImageMagick安装包;ImageMagick安装注意事项;pdf转img
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈