资源简介
以优化SVM算法的参数c和g为例,对SA(模拟退火)算法MATLAB源码进行了逐行中文注解。是很好的学习材料。
代码片段和文件信息
% 使用模拟退火法求函数 f(xy)=x^2+y^2的最小值
% 使用METROPOLIS接受准则进行模拟
%% 清空环境
tic % 计时
clear
clc
close all
format compact
%% 绘制目标函数图像
x=-5:0.1:5;
y=-5:0.1:5;
[XY]=meshgrid(xy);
value=X.*X+Y.*Y;
figure(‘Name‘‘目标函数图像‘)
mesh(XYvalue)
%% SA算法主程序
lb=[-5-5]; % 参数取值下界
ub=[55]; % 参数取值上界
% 冷却表参数
MarkovLength=1000; % 马可夫链长度
DecayScale=0.95; % 衰减参数
StepFactor=0.02; % Metropolis步长因子
Temperature0=100; % 初始温度
Temperatureend=1; % 最终温度
Boltzmann_con=1; % Boltzmann常数
AcceptPoints=0.0; % Metropolis过程中总接受点
% 随机初始化参数
range=ub-lb;
Par_cur=rand(size(lb)).*range+lb; % 用Par_cur表示当前解
Par_best_cur=Par_cur; % 用Par_best_cur表示当前最优解
Par_best=rand(size(lb)).*range+lb; % 用Par_best表示冷却中的最好解
% 每迭代一次退火(降温)一次,直到满足迭代条件为止
t=Temperature0;
itr_num=0; % 记录迭代次数
while t>Temperatureend
itr_num=itr_num+1;
t=DecayScale*t; % 温度更新(降温)
for i=1:MarkovLength
% 在此当前参数点附近随机选下一点
p=0;
while p==0
Par_new=Par_cur+StepFactor.*range.*(rand(size(lb))-0.5);
% 防止越界
if sum(Par_new>ub)+sum(Par_new
p=1;
end
end
% 检验当前解是否为全局最优解
if (objectFunction(Par_best)>objectFunction(Par_new))
% 保留上一个最优解
Par_best_cur=Par_best;
% 此为新的最优解
Par_best=Par_new;
end
% Metropolis过程
if (objectFunction(Par_cur)-objectFunction(Par_new)>0)
% 接受新解
Par_cur=Par_new;
AcceptPoints=AcceptPoints+1;
else
changer=-1*(objectFunction(Par_new)-objectFunction(Par_cur))/Boltzmann_con*Temperature0;
p1=exp(changer);
if p1>rand
Par_cur=Par_new;
AcceptPoints=AcceptPoints+1;
end
end
end
end
%% 结果显示
disp([‘最小值在点:‘num2str(Par_best)]);
Objval_best= objectFunction(Par_best);
disp([‘最小值为:‘num2str(Objval_best)]);
%% 显示运行时间
toc
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2179 2016-09-30 14:05 my_SA_exmp.m
文件 3476 2016-09-30 16:18 my_SA_SVM_exmp.m
文件 113 2016-09-30 13:40 ob
文件 414 2016-09-30 15:49 objfun_svm.m
文件 20168 2016-09-30 15:49 wine.mat
- 上一篇:工资系统UML图
- 下一篇:GSA引力搜索算法MATLAB源码,中文详细注解
相关资源
- GSA引力搜索算法MATLAB源码,中文详细
- matlab sar 图像检测的程序
- MATLAB非线性优化fmincon详解
- 粒子群算法优化问题matlab程序
- 最优化 一维不精确搜索wolfe matlab
- matlab 遗传算法优化BP神经网络程序
- ProSAIL模型
- 读取sar卫星slc数据代码.rar
- GA求解PID优化问题的MATLAB代码
- 《SeDuMi — 基于matlab的优化软件》帮助
- 图像分类matlab代码
- 传热结构拓扑优化
- SAR雷达回波仿真matlab
- SSD+SAD+NCC立体匹配算法matlab代码
- 遗传算法中的解决Max f (x1 x2) =
- PIO基础鸽群优化算法
- 粒子群优化算法的完整函数测试
- 多目标优化遗传算法
- PSO-SVM 粒子算法优化支持向量机MATLA
- 人工免疫算法寻优最大值
- matlab解决旅行者问题的三种算法遗传
- SAR ADC模型
- 多目标perota优化MATLAB算法
- PSO优化BP神经网络模型.zip
- 动态NSGA-II算法matlab代码
- 遗传算法求解组合优化数据资源
- 最优化-线性规划单纯形法-大M法和两
- 基于遗传算法的BP神经网络优化算法—
- SAR C矩阵转T矩阵
- CMAES的Matlab实现
评论
共有 条评论