一种新的改进的混合蛙跳算法(SFLA)(Matlab代码实现)

文章介绍了混合蛙跳算法(SFLA)的基本原理,它是一种基于群体搜索的优化方法,旨在平衡全局信息交换和局部深度搜索。在Matlab中,该算法被应用于神经网络的训练,通过调整学习策略如Levenberg-Marquardt,以提高模型性能并寻找全局最优解。实验展示了算法的部分运行结果。
摘要由CSDN通过智能技术生成

👨‍🎓个人主页:研学社的博客  

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈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.

部分理论引用网络文献,若有侵权联系博主删除。

🌈Matlab代码实现

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

荔枝科研社

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值