%% I. 清空环境变量
clear all
clc
%% II. 导入城市位置数据
X = [16.4700 96.1000
16.4700 94.4400
20.0900 92.5400
22.3900 93.3700
25.2300 97.2400
22.0000 96.0500
20.4700 97.0200
17.2000 96.2900
16.3000 97.3800
14.0500 98.1200
16.5300 97.3800
21.5200 95.5900
19.4100 97.1300
20.0900 92.5500];
%% III. 计算距离矩阵
D = Distance(X); %计算距离矩阵 对角线上为0
N = size(D,1); %城市的个数
%% IV. 初始化参数
T0 = 1e10; % 初始温度
Tend = 1e-30; % 终止温度
L = 2; % 各温度下的迭代次数,没有用到
q = 0.9; %降温速率
Time = ceil(double(solve([num2str(T0) '*(0.9)^x = ',num2str(Tend)]))); % 计算迭代的次数
% Time = 132;
count = 0; %迭代计数
Obj = zeros(Time,1); %目标值矩阵初始化
track = zeros(Time,N); %每代的最优路线矩阵初始化
%% V. 随机产生一个初始路线
S1 = randperm(N);
DrawPath(S1,X)
disp('初始种群中的一个随机值:')
OutputPath(S1);
Rlength = PathLength(D,S1);
disp(['总距离:',num2str(Rlength)]);
%% VI. 迭代优化
while T0 > Tend
count = count + 1; %更新迭代次数
temp = zeros(L,N+1);
%%
% 1. 产生新解 增加一个扰动
S2 = NewAnswer(S1);
%%
% 2. Metropolis法则判断是否接受新解
[S1,R] = Metropolis(S1,S2,D,T0); %Metropolis 抽样算法
%%
% 3. 记录每次迭代过程的最优路线
if count == 1 || R < Obj(count-1)
Obj(count) = R; %如果当前温度下最优路程小于上一路程则记录当前路程
else
Obj(count) = Obj(count-1);%如果当前温度下最优路程大于上一路程则记录上一路程
end
track(count,:) = S1;
T0 = q * T0; %降温
end
%% VII. 优化过程迭代图
figure
plot(1:count,Obj)
xlabel('迭代次数')
ylabel('距离')
title('优化过程')
%% VIII. 绘制最优路径图
DrawPath(track(end,:),X)
%% IX. 输出最优解的路线和总距离
disp('最优解:')
S = track(end,:);
p = OutputPath(S);
disp(['总距离:',num2str(PathLength(D,S))]);
精通模拟退火算法通过matlab建模案例.zip
版权申诉
46 浏览量
2023-05-26
12:05:41
上传
评论
收藏 365.64MB ZIP 举报
![avatar](https://profile-avatar.csdnimg.cn/2ab41b4b301b4cc6861912179f3798cc_qq_41127811.jpg!1)
![avatar-vip](https://csdnimg.cn/release/downloadcmsfe/public/img/user-vip.1c89f3c5.png)
JGiser
- 粉丝: 7589
- 资源: 5112
最新资源
- mmexport1718013090167.mp4
- 基于CBS算法多AGV路径规划仿真系统源代码+项目开发说明+演示程序(高分毕业设计)
- 基于CBS算法多AGV路径规划仿真系统源代码+项目开发说明+演示程序(高分毕业设计)
- 基于C#和NET MAUI开发的音乐播放器+源代码+文档说明+sln.zip
- 基于python+flask+mysql实现的豆瓣电影可视化系统+源代码+文档说明+数据库sql.zip
- 程氏舞曲V4.2程氏舞曲V4.2程氏舞曲V4.2程氏舞曲V4.2
- FPGA读写 AD9708+ AD9280 ADDA实验Verilog逻辑源码Quartus工程文件+文档说明+硬件参考原理图
- 基于CH340C设计USB转TLL串口通信模块PADS 9.5设计硬件(原理图+PCB)文件.zip
- 信号与系统大作业-图像处理 实现了直接滤波法维纳滤波法最小二乘滤波法LR递归法matlab源码.zip
- php-leetcode题解之最小栈.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)