% ========ywd 整理自新兴元启发式优化算法=========== %
% Files of the Matlab programs included in the book: %
% Xin-She Yang, Nature-Inspired Metaheuristic Algorithms, %
% Second Edition, Luniver Press, (2010). www.luniver.com %
% ======================================================== %
% -------------------------------------------------------- %
% Bat-inspired algorithm for continuous optimization (demo)%
% Programmed by Xin-She Yang @Cambridge University 2010 %
% -------------------------------------------------------- %
% Usage: bat_algorithm([20 0.25 0.5]); %
% Display help
% help bat_algorithm.m
clc
clear
%读取数据
load data input output
%节点个数
inputnum=2;
hiddennum=5;
outputnum=1;
%训练数据和预测数据
input_train=input(1:1900,:)';
input_test=input(1901:2000,:)';
output_train=output(1:1900)';
output_test=output(1901:2000)';
%选连样本输入输出数据归一化
[inputn,inputps]=mapminmax(input_train);
[outputn,outputps]=mapminmax(output_train);
%构建网络
net=newff(inputn,outputn,hiddennum);
% 参数初始化
para=([25,0.25,0.45]);
n=para(1); % Population size, typically 10 to 25 种群数量,一般取10-25
A=para(2); % Loudness (constant or decreasing) 音量(常数或者递减)
r=para(3); % Pulse rate (constant or decreasing) 脉冲率(常数或者递减)
% This frequency range determines the scalings 确定频率变化范围
Qmin=0; % Frequency minimum 频率最小值
Qmax=2; % Frequency maximum 频率最大值
% Iteration parameters 算法迭代参数设置
tol=0.01; % Stop tolerance 算法结束误差
N_iter=0; % Total number of function evaluations 算法运行总次数
% Dimension of the search variables 变量的参数
d=21;
% Initial arrays 数组初始化
Q=zeros(n,1); % Frequency 频率值
v=zeros(n,d); % Velocities 速度值
for i=1:n
sol(i,:)=randn(1,21);
%sol(i,:)=5*rands(1,21);%更改rands前的参数
v(i,:)=rands(1,21);
Q(i,:)=rands(1,1);
fitness(i)=fun(sol(i,:),inputnum,hiddennum,outputnum,net,inputn,outputn);
end
[fmin,I]=min(fitness);
best=sol(I,:);
maxgen=500;
% ====================================================== %
% Note: As this is a demo, here we did not implement the %
% reduction of loudness and increase of emission rates. %
% Interested readers can do some parametric studies %
% and also implementation various changes of A and r etc %
% ====================================================== %
% Start the iterations -- Bat Algorithm 开始迭代
while (fmin>tol & N_iter<1000)
for j=1:maxgen
% Loop over all bats/solutions
for i=1:n,
Q(i)=Qmin+(Qmin-Qmax)*rand;
v(i,:)=v(i,:)+(sol(i,:)-best)*Q(i);
S(i,:)=sol(i,:)+v(i,:);
% Pulse rate
if rand>r
S(i,:)=best+0.01*randn(1,d);
end
% Evaluate new solutions 评估新解的适应度值
Fnew=fun(S(i,:),inputnum,hiddennum,outputnum,net,inputn,outputn);
% If the solution improves or not too loudness
if (Fnew<=fitness(i)) & (rand<A) ,
sol(i,:)=S(i,:);
fitness(i)=Fnew;
end
% Update the current best 更新当前最优解
if Fnew<=fmin,
best=S(i,:);
fmin=Fnew;
end
yy(i)=fmin;
end
N_iter=N_iter+n;
end
end
% Output/display 输出显示结果
disp(['Number of evaluations: ',num2str(N_iter)]);
disp(['Best =',num2str(best),' fmin=',num2str(fmin)]);
x=best;
w1=x(1:inputnum*hiddennum);
B1=x(inputnum*hiddennum+1:inputnum*hiddennum+hiddennum);
w2=x(inputnum*hiddennum+hiddennum+1:inputnum*hiddennum+hiddennum+hiddennum*outputnum);
B2=x(inputnum*hiddennum+hiddennum+hiddennum*outputnum+1:inputnum*hiddennum+hiddennum+hiddennum*outputnum+outputnum);
net.iw{1,1}=reshape(w1,hiddennum,inputnum);
net.lw{2,1}=reshape(w2,outputnum,hiddennum);
net.b{1}=reshape(B1,hiddennum,1);
net.b{2}=B2;
net=train(net,inputn,outputn);
%% BP网络预测
%预测数据归一化
inputn_test=mapminmax('apply',input_test,inputps);
%网络预测输出
an=sim(net,inputn_test);
%网络输出反归一化
BPoutput=mapminmax('reverse',an,outputps);
AE=mean(output_test-BPoutput);
MAE=mean(abs(output_test-BPoutput));
MSE=mean((output_test-BPoutput).^2);
MAPE=mean(abs((output_test-BPoutput)/output_test));
%%%%% ============ end ====================================


阿里matlab建模师

- 粉丝: 5902
最新资源
- 软件公司质量手册.doc
- 数据库课程设计报告书学生信息管理系统.doc
- 整合网络营销与传统营销.pptx
- 动态网络环境下的音视频同步技术设计与实现.doc
- 网络游戏联合运营协议书范本.doc
- 网络计划技术(完整).ppt
- 基于单片机的循迹小车论文.doc
- 网络故障排查教程.ppt
- 护理执行力之浅见MicrosoftPowerPoint演示文稿.pptx
- 2023年数据库原理及应用期末考试复习题库.doc
- 基于单片机的智能温控系统设计说明.doc
- 第三方系统与SAP系统集成实现方案.doc
- 中小学计算机教育的现状与发展.docx
- 算法效率分析与分治法的应用.pptx
- 最全的通信图标库(可用于VISIO-等).ppt
- 图像处理课件-chapter6.ppt
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈


