资源简介
以优化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源码,中文详细注解
相关资源
- 基于MATLAB的质点弹道计算与外弹道优
- matlab优化工具箱讲解
- 龚纯《精通MATLAB最优化计算》随书源
- 工程优化问题的Matlab实现代码
- matlab编写的susan算法程序
- 协同进化遗传算法求解函数优化问题
- 粒子群算法优化pid源码 matlab仿真.ra
- 坐标转换/坐标标定(matlab优化方法实
- 时频分析tfsap
- 多种群遗传算法的函数优化算法(源
- 合成孔径雷达成像csChirp Scaling算法M
- 30个优化智能算法matlab
- 用matlab实现RSA数字签名
- matlab实现RSA公钥密码体制
- 粒子群算法优化RBF网络matlab源码
- PSAT工具软件
- pso解决单目标优化问题
- 灰狼优化算法求解柔性作业车间问题
- 利用WOA算法优化libsvm中SVDD算法的参数
- 最优化算法规划-单纯形法MATLAB程序
- matlab开发-GMRESArnoldi
- 蝴蝶优化算法
- RANSAC算法用MATLAB写的代码
- 优化的基于不定频滞环的SVPWM控制si
- 灰狼优化算法的仿真
- 粒子群算法求解函数优化问题.zip
- 最优化方法及其Matlab程序设计 - 马昌
- matlab求解最优化线性规划问题代码以
- 论文研究-基于改进蚁群算法的车辆路
- 精通MATLAB最优化计算全书配套算法M文
评论
共有 条评论