【BP预测】基于Tent混沌映射原子搜索算法优化BP神经网络实现数据回归预测附matlab代码
【BP预测】基于Tent混沌映射原子搜索算法优化BP神经网络实现数据回归预测附matlab代码
TT_Matlab
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,完整matlab代码或者程序定制加qq1575304183。
1 简介
BP神经网络算法使用非常广泛,传统的BP神经网络算法虽然具有不错的拟合非线性函数的能力,但是容易陷入局部的极小值,并且传统的算法收敛的速度慢.本篇文章详细地论述了如何使用ent混沌映射原子搜索算法算法优化传统的BP神经网络算法中初始的权值和阀值,通过相应的验证和比较提出了该模型的有效性.
作为物理-元启发式算法中的一种,ASO 最早在 2018 年由赵卫国提出并将其应用于地下水分散系数估计。ASO 的灵感来自于基本的分子动力学,自然界中所有的物质都是由原子组成,原子具备质量和体积,在一个原子系统中,所有原子都是相互作用并且处于恒定的运动状态,其微观相互作用十分复杂。随着科学技术的发展,近些年来分子动力学发展迅速,已经可以使用计算机模拟原子和分子的物理运动规律。
2 部分代码
%
--------------------------------------------------------------------------
%
GSA code v1.0.
%
Developed
in
MATLAB R2011b
%
The code is based on the following papers.
%
W. Zhao, L. Wang and Z. Zhang, Atom search optimization and its
%
application to solve a hydrogeologic parameter estimation problem,
%
Knowledge-Based Systems (2018), https://doi.org/10.1016/j.knosys.2018.08.030.
%
%
W. Zhao, L. Wang and Z. Zhang, A novel atom search optimization
for
%
dispersion coefficient estimation
in
groundwater, Future Generation
%
Computer Systems (2018), https://doi.org/10.1016/j.future.2018.05.037.
%
--------------------------------------------------------------------------
%
Atom Search Optimization.
function [X_Best,Fit_XBest,Functon_Best]=ASO(alpha,beta,Fun_Index,Atom_Num,Max_Iteration)
%
Dim: Dimension of search space.
%
Atom_Pop: Population (position) of atoms.
%
Atom_V: Velocity of atoms.
%
Acc: Acceleration of atoms.
%
M: Mass of atoms.
%
Atom_Num: Number of atom population.
%
Fitness: Fitness of atoms.
%
Max_Iteration: Maximum of iterations.
%
X_Best: Best solution (position) found so far.
%
Fit_XBest: Best result corresponding to X_Best.
%
Functon_Best: The fitness over iterations.
%
Low: The low bound of search space.
%
Up: The up bound of search space.
%
alpha: Depth weight.
%
beta: Multiplier weight
alpha=50;
beta=0.2;
Iteration=1;
[Low,Up,Dim]=Test_Functions_Range(Fun_Index);
%
Randomly initialize positions and velocities of atoms.
if size(Up,2)==1
Atom_Pop=rand(Atom_Num,Dim).*(Up-Low)+Low;
Atom_V=rand(Atom_Num,Dim).*(Up-Low)+Low;
end
if size(Up,2)>1
for i=1:Dim
Atom_Pop(:,i)=rand(Atom_Num,1).*(Up(i)-Low(i))+Low(i);
Atom_V(:,i)=rand(Atom_Num,1).*(Up(i)-Low(i))+Low(i);
end
end
%
Compute
function
fitness of atoms.
for i=1:Atom_Num
Fitness(i)=Test_Functions(Atom_Pop(i,:),Fun_Index,Dim);
end
Functon_Best=zeros(Max_Iteration,1);
[Max_Fitness,Index]=min(Fitness);
Functon_Best(1)=Fitness(Index);
X_Best=Atom_Pop(Index,:);
%
Calculate acceleration.
Atom_Acc=Acceleration(Atom_Pop,Fitness,Iteration,Max_Iteration,Dim,Atom_Num,X_Best,alpha,beta);
%
Iteration
for Iteration=2:Max_Iteration
Functon_Best(Iteration)=Functon_Best(Iteration-1);
Atom_V=rand(Atom_Num,Dim).*Atom_V+Atom_Acc;
Atom_Pop=Atom_Pop+Atom_V;
for i=1:Atom_Num
% Relocate atom out of range.
TU= Atom_Pop(i,:)>Up;
TL= Atom_Pop(i,:)<Low;
Atom_Pop(i,:)=(Atom_Pop(i,:).*(~(TU+TL)))+((rand(1,Dim).*(Up-Low)+Low).*(TU+TL));
%evaluate atom.
Fitness(i)=Test_Functions(Atom_Pop(i,:),Fun_Index,Dim);
end
[Max_Fitness,Index]=min(Fitness);
if Max_Fitness<Functon_Best(Iteration)
Functon_Best(Iteration)=Max_Fitness;
X_Best=Atom_Pop(Index,:);
else
r=fix(rand*Atom_Num)+1;
Atom_Pop(r,:)=X_Best;
end
% Calculate acceleration.
Atom_Acc=Acceleration(Atom_Pop,Fitness,Iteration,Max_Iteration,Dim,Atom_Num,X_Best,alpha,beta);
end
Fit_XBest=Functon_Best(Iteration);
3 仿真结果
4 参考文献
[1]马俊涛. 基于MATLAB的BP神经网络模型的预测算法研究[C]// 军事信息软件与仿真学术研讨会. 中国电子学会, 2006.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。
-
2023年血糖新标准公布,不是3.9-6.1,快来看看你的血糖正常吗? 2023-02-07
-
2023年各省最新电价一览!8省中午执行谷段电价! 2023-01-03
-
GB 55009-2021《燃气工程项目规范》(含条文说明),2022年1月1日起实施 2021-11-07
-
PPT导出高分辨率图片的四种方法 2022-09-22
-
2023年最新!国家电网27家省级电力公司负责人大盘点 2023-03-14
-
全国消防救援总队主官及简历(2023.2) 2023-02-10
-
盘点 l 中国石油大庆油田现任领导班子 2023-02-28
-
我们的前辈!历届全国工程勘察设计大师完整名单! 2022-11-18
-
关于某送变电公司“4·22”人身死亡事故的快报 2022-04-26
