目录
💥1 概述
📚2 运行结果
🎉3 参考文献
👨💻4 Matlab代码
💥1 概述
混合蛙跳算法(Shuffled Frog Leaping Algorithm)是根据青蛙在石块上觅食时的种群分布变化而提出的算法。算法提出于2003年,时间有点久远,但相关的论文并不是特别多,仍有较大的研究和改进空间。
混合蛙跳算法( SFLA) 是一种受自然生物模仿启示而产生的基于群体的协同搜索方法。这种算法模拟青蛙群体寻找食物时,按族群分类进行思想传递的过程,将全局信息交换和局部深度搜索相结合,局部搜索使得思想在局部个体间传递,混合策略使得局部间的思想得到交换。在混合蛙跳算法中,群体( 解集) 由一群具有相同结构的青蛙( 解) 组成。整个群体被分为多个子群,不同的子群被认为是具有不同思想的青蛙的集合。子群中青蛙按照一定策略执行解空间中的局部深度搜索。在已定义的局部搜索迭代次数结束之后,思想在混合过程中进行了交换。局部搜索和混合过程一直持续到定义的收敛条件结束为止。全局信息交换和局部深度搜索的平衡策略使得算法能够跳出局部极值点,向着全局最优的方向进行,这也成为混合蛙跳算法最主要的特点.
📚2 运行结果
主函数部分代码:
%% Clearing and Loading Data
clear;
data=JustLoad();
warning('off');
% Inputs (Train and Test)
inputs=rescale(data.TrainInputs)';
TstInputs=rescale(data.TestInputs)';
% Targets (Train and Test)
targets=rescale(data.TrainTargets)';
TstTargets=rescale(data.TestTargets)';
sizenn=size(inputs);sizenn=sizenn(1,1);
% Number of neurons----------------------
n = 12;
%----------------------------------------
% 'trainlm' Levenberg-Marquardt
% 'trainbr' Bayesian Regularization (good)
% 'trainbfg' BFGS Quasi-Newton
% 'trainrp' Resilient Backpropagation
% 'trainscg' Scaled Conjugate Gradient
% 'traincgb' Conjugate Gradient with Powell/Beale Restarts
% 'traincgf' Fletcher-Powell Conjugate Gradient
% 'traincgp' Polak-Ribiére Conjugate Gradient
% 'trainoss' One Step Secant (good)
% 'traingdx' Variable Learning Rate Gradient Descent
% 'traingdm' Gradient Descent with Momentum
% 'traingd' Gradient Descent
% Creating the NN ----------------------------
net = feedforwardnet(n,'traingdx');
%---------------------------------------------
% configure the neural network
[net tr]= train(net,inputs, targets);
perf = perform(net,inputs, targets);%mse
% Current NN Weights and Bias
% Create Handle for Error
h = @(x) NMSE(x, net, inputs, targets);
🎉3 参考文献
[1]李英海,周建中,杨俊杰等.一种基于阈值选择策略的改进混合蛙跳算法[J].计算机工程与应用,2007,No.594(35):19-21.
部分理论引用网络文献,若有侵权联系博主删除。