一、获取代码方式

获取代码方式1:
完整代码已上传我的资源:【单目标优化求解 】基于matlab烟花算法求解单目标问题【含Matlab源码 1599期】

获取代码方式2:
通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码。

备注:
订阅紫极神光博客付费专栏,可免费获得1份代码(有效期为订阅日起,三天内有效);

二、烟花算法简介

1 烟花算法
烟花算法是由谭营教授等人于2010年提出的一种新型群体优化算法[6],该算法容易实现,鲁棒性较好,一经提出,就得到了广泛的研究和应用[7]。烟花算法由爆炸算子、变异算子、选择策略和映射规则四部分组成。
爆炸算子主要由爆炸强度决定。在实际烟花爆炸过程中,烟花每次爆炸都会产生许多火花,烟花算法中利用爆炸强度使不同适应度的烟花产生不同数目的火花,这样可以避免算法陷入局部最优,使算法尽可能探索搜寻整个可行解的空间。爆炸生成的烟花数目和爆炸半径计算方式分别如公式(4)和公式(5)所示:

式中:Si为第i个烟花爆炸产生的火花数目;m和d为常数;f(xi)为个体适应度的值;Ymax和Ymin分别是当前群体适应度的最大值和最小值;ε为一个极小的数,防止公式无意义。
烟花在爆炸后,需要对爆炸火花进行位移操作和变异操作。本文采用随机位移的方法对火花进行维度的更新。变异操作是为了扩展寻优空间和增加种群的多样性,避免算法陷入局部最优,本文采用高斯变异生成变异火花,计算如公式(6)所示:

其中,e服从均值为1、方差为1的高斯分布。
变异操作之后,火花多样性增加,由选择策略选择下一代烟花,本文采用标准烟花算法中的基于曼哈顿距离的选择策略,计算如公式(7)所示:

式中:d(xi,xj)为两个火花间的曼哈顿距离。
综上,烟花算法的主要流程如下:(1)初始化烟花位置和参数;(2)计算所有烟花的适应度和爆炸半径、火花数目,生成变异火花;(3)使用选择策略选择下一代烟花,循环执行(2),直到满足条件。

2 FWA算法框架
烟花算法的算法流程图如图1所示。

三、部分源代码

%烟花算法进行函数优化
%fitness适应度函数,N烟花数,D变量维数,M变异火花数,Er爆炸半径,En爆炸数目
%LB,UB分别为变量上下界,T为迭代次数,a,b为爆炸数目限制因子,epsion为一很小的常数
clear all
clc
format short
t1=clock;
N=50;D=2;M=5;
En=6;Er=5;
a=0.3;b=0.6;T=100;
epsion=exp(-8);%求最大值变量上下界
LB=[-5.12,-5.12];
UB=[5.12,5.12];
% LB=[-4.0,-4.0];
% UB=[4.0,4.0];%求最小值变量上下界
% LB=[-10,-10];
% UB=[10,10];[xm fmin]=fundmental_FWA(@fitness,N,D,M,Er,En,LB,UB,T,a,b,epsion);
runtime=etime(clock,t1)
%绘图
figure (2)
x1=LB(1):0.2:UB(1);
x2=LB(2):0.2:UB(2);
[x1,x2]=meshgrid(x1,x2);
%求最大值函数
z=x1.^2-10*cos(2.*pi.*x1)+x2.^2-10*cos(2.*pi.*x2)+20;
% z=-(sin(sqrt(x1.^2+x2.^2)).^2-0.5)./(1+0.001.*(x1.^2+x2.^2)).^2+0.5;%求最小值函数
% z=-cos(x1).*cos(x2).*exp(-((x1-pi).^2+(x2-pi).^2));
% z=(1.5-x1-x1.*x2).^2+(2.25-x1+x1.*x2.^2).^2+(2.625-x1-x1.*x2.^3).^2;
% z=-0.0001*(abs(sin(x1).*sin(x2).*exp(abs(100-sqrt(x1.^2+x2.^2)/pi)))+1).^0.1;
% z=-abs(sin(x1).*cos(x2).*exp(abs(1-sqrt(x1.^2+x2.^2)/pi)));mesh(x1,x2,z)
%fitness目标函数,也即适应度函数
function y=fitness(x)
%求最大值函数
y=-(x(1)^2-10*cos(2*pi*x(1))+x(2)^2-10*cos(2*pi*x(2))+20);
% y=-(-(sin(sqrt(x(1).^2+x(2).^2)).^2-0.5)./(1+0.001.*(x(1).^2+x(2).^2)).^2+0.5);%求最小值函数
% y=-cos(x(1))*cos(x(2))*exp(-((x(1)-pi)^2+(x(2)-pi)^2));
% y=(1.5-x(1)-x(1)*x(2))^2+(2.25-x(1)+x(1)*x(2)^2)^2+(2.625-x(1)-x(1)*x(2)^3)^2;
% y=-0.0001*(abs(sin(x(1))*sin(x(2))*exp(abs(100-sqrt(x(1)^2+x(2)^2)/pi)))+1)^0.1;
% y=-abs(sin(x(1))*cos(x(2))*exp(abs(1-sqrt(x(1)^2+x(2)^2)/pi)));

四、运行结果


五、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 包子阳,余继周,杨杉.智能优化算法及其MATLAB实例(第2版)[M].电子工业出版社,2016.
[2]张岩,吴水根.MATLAB优化算法源代码[M].清华大学出版社,2017.
[3]周品.MATLAB 神经网络设计与应用[M].清华大学出版社,2013.
[4]陈明.MATLAB神经网络原理与实例精解[M].清华大学出版社,2013.
[5]方清城.MATLAB R2016a神经网络设计与应用28个案例分析[M].清华大学出版社,2018.

【单目标优化求解 】基于matlab烟花算法求解单目标问题【含Matlab源码 1599期】相关推荐

  1. 【Matlab图像加密】正交拉丁方置乱算法图像加解密【含GUI源码 182期】

    一.代码运行视频(哔哩哔哩) [Matlab图像加密]正交拉丁方置乱算法图像加解密[含GUI源码 182期] 二.matlab版本及参考文献 一.代码运行视频(哔哩哔哩) [Matlab图像处理]自动 ...

  2. 【Matlab肌电信号】肌电信号处理【含GUI源码 966期】

    一.代码运行视频(哔哩哔哩) [Matlab肌电信号]肌电信号处理[含GUI源码 966期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 包子阳,余继周,杨 ...

  3. 【Matlab图像检索】综合特征图像检索【含GUI源码 395期】

    一.代码运行视频(哔哩哔哩) [Matlab图像检索]综合特征图像检索[含GUI源码 395期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.MAT ...

  4. 【Matlab语音处理】声音信号频谱分析仪【含GUI源码 325期】

    一.代码运行视频(哔哩哔哩) [Matlab语音处理]声音信号频谱分析仪[含GUI源码 325期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]韩纪庆,张磊, ...

  5. 【Matlab条形码识别】二维条形码识别【含GUI源码 607期】

    一.代码运行视频(哔哩哔哩) [Matlab条形码识别]二维条形码识别[含GUI源码 607期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.MAT ...

  6. 【图像增强】基于matlab萤火虫算法图像对比度增强【含Matlab源码 2142期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[图像增强]基于matlab萤火虫算法图像对比度增强[含Matlab源码 2142期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方 ...

  7. 【RRT三维路径规划】基于matlab RRT_Star算法三维路径规划【含Matlab源码 1571期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[三维路径规划]基于matlab RRT_Star算法三维路径规划[含Matlab源码 1571期] 点击上面蓝色字体,直接付费下载,即可. ...

  8. 【Matlab验证码识别】遗传算法和最大熵优化+大津法(OTSU)+自定义阈值数字验证码识别【含GUI源码 1694期】

    一.代码运行视频(哔哩哔哩) [Matlab验证码识别]遗传算法和最大熵优化+大津法(OTSU)+自定义阈值数字验证码识别[含GUI源码 1694期] 二.matlab版本及参考文献 1 matlab ...

  9. 【Matlab电力负荷预测】粒子群优化支持向量机短期电力负荷预测【含GUI源码 751期】

    一.代码运行视频(哔哩哔哩) [Matlab电力负荷预测]粒子群优化支持向量机短期电力负荷预测[含GUI源码 751期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 ...

  10. 计算机毕业设计ssm基于协同过滤算法的甜品推荐系统uhnk3系统+程序+源码+lw+远程部署

    计算机毕业设计ssm基于协同过滤算法的甜品推荐系统uhnk3系统+程序+源码+lw+远程部署 计算机毕业设计ssm基于协同过滤算法的甜品推荐系统uhnk3系统+程序+源码+lw+远程部署 本源码技术栈 ...

最新文章

  1. 树莓派/香橙派自建本地DNS加速解析
  2. 鼠标拖动div移动js代码
  3. Android 单元测试学习计划
  4. python数据处理与机器学习
  5. 数学--数论--莫比乌斯反演
  6. 思科服务器 vmware虚拟多少个hba卡,利用Cisco UCS 管理虚拟机网络(上)
  7. java word转html 乱码 poi,java word转html poi
  8. 微机个人笔记-半导体存储器(芯片的角度)概述
  9. JEECG参与2017年度最受欢迎开源项目投票,请投上宝贵一票
  10. runas/cpau/lsrunase使用小结(以管理员运行指定程序)
  11. 大数据在各个行业的应用_大数据的应用领域有哪些
  12. 柔性太阳能电池pdf_CIS太阳能电池.pdf
  13. Repeater的ItemCommand事件和ItemCreated事件,高手请跳过~
  14. LINUX系统使用锐捷客户端认证校园网(华中科技大学)
  15. odoo采购单入库代码剖析
  16. linux 反垃圾邮件网关,反垃圾邮件神器--开源邮件网关ScrolloutF1之二--基本配置
  17. go语言视频教程_ go语言入门视频教程_go语言实战视频教程
  18. ios制作h5的桌面webapp的详解
  19. 自建比赛服务器,王者荣耀自建比赛创建功能是什么 王者荣耀如何创建自建比赛...
  20. 中国石油大学(北京)-《思想道德修养与法律基础#》第一阶段在线作业

热门文章

  1. nginx的学习笔记,第四记。
  2. Gaussian Mixture Model
  3. 【转】C# 控件的自定义拖动、改变大小方法
  4. Ajax异步刷新,测试用户名是否被注册
  5. OPENGL学习笔记整理(三):缓冲区对象
  6. Java运行Python脚本的几种方式
  7. python将图片名写入txt后最新命名并增强图片
  8. Word新建自己的样式
  9. 181112每日一句
  10. Atitit.数据库事务隔离级别 attilax 总结