【智能优化算法】基于黑寡妇优化算法求解单目标优化问题含Matlab源码
1 简介
本期为大家介绍黑寡妇优化算法(Black Widow Optimization Algorithm,BWO)。该算法由Adria´n F. Peña-Delgado等人于2020年提出,主要模拟了"黑寡妇"蜘蛛独特的繁殖行为,因其简单有效而在近年来得到广泛关注。
黑寡妇优化算法
“黑寡妇”蜘蛛是从加拿大西部到南部发现的一种有毒蜘蛛,因其毒素只存在于雌性体内故得名"黑寡妇"。这些蜘蛛以蟑螂、甲虫和蝴蝶等昆虫为食;它们在树上织网,栖息在森林和沼泽中。雄性通过性信息素来辨别雌性的交配状态,因为雌性会表现出同类相食的行为,所以雄性对处于饥饿状态或是营养不良的雌性不感兴趣。毕竟回归到自然界,物竞天择,强者为尊,大家的想法还是那么纯净。
运动行为
黑寡妇以线性和螺旋形在蛛网中运动:
式中x* 为当前最优个体位置,β、m 分别为[-1,1]、[0.4,0.9]内的随机数,xr1为种群内随机选择的一个个体。可以看出,直接采取最优个体引导机制,设置两种更新方式可以看做减小种群陷入局部最优值概率的一种操作。图1展示了这两种位置更新方式:
图1 黑寡妇的两种位置更新方式
性信息素
同大多数昆虫一样,雌性的生理状况越好,她所散发出的性信息素越浓郁,生育能力也就越强。所以雄性会依据性信息素浓度来选择配偶。性信息素的计算方式为:
对于最小化问题,fitness_max、fitness_min 分别为适应度最差、最优值。很明显性信息素均位于[0,1]内,对于性信息素等于或小于0.3的雌性蜘蛛,原文中认为她们十分饥渴,神秘而危险。因此这类个体采取如下更新方式:
其中xr1、xr2为随机选择的个体, 为二进制数值(对于当前个体随机设为0或1)。很明显这一操作就是为了对适应度值较差的个体进行重组,对种群资源充分利用。至此,算法迭代伪代码为:
2 部分代码
%_________________________________________________________________________%
% Black Widow Optimization Algorithm (source code) %
% %
% Developed in MATLAB R2018a(9.4) %
% %
% %
%_________________________________________________________________________%
clear
clc
SearchAgents_no=50; % number of Black Widows Spiders
Function_name='F3'; % <== write 'F2' or 'F3' and so on. Name of the test function that can be from F1 to F23, for F24+ are ing. problems.
Max_iteration=250; % Maximum numbef of iterations
[lb,ub,dim,fobj]=Get_Function(Function_name); % Load details of the selected benchmark function
[vMin,theBestVct,Convergence_curve]=BWOA(SearchAgents_no,Max_iteration,lb,ub,dim,fobj);
display(['The best solution obtained by BWOA is : ', num2str(theBestVct)]);
display(['The best optimal value of the objective funciton found by BWOA is : ', num2str(vMin)]);
%**********************************************************************************************************
figure('Position',[500 500 660 290])
subplot(1,2,1);
func_plot(Function_name);
title('Objective space')
xlabel('x_1');
ylabel('x_2');
zlabel([Function_name,'( x_1 , x_2 )'])
subplot(1,2,2);
t = 1:Max_iteration+1;
semilogy(t,Convergence_curve, 'r-');
title(Function_name)
xlabel('Iteration');
ylabel('Fitness');
3 仿真结果
4 参考文献
[1]张勋才, 牛莹, 王时达,等. 一种基于改进的黑寡妇蜘蛛算法的拉伸弹簧优化方法:.
[2] Adrián F. Peña-Delgado et al. A Novel Bio-Inspired Algorithm Applied to Selective Harmonic Elimination in a Three-Phase Eleven-Level Inverter[J]. Mathematical Problems in Engineering, Vol. 2020, Article ID 8856040, 10 pages.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。
【智能优化算法】基于黑寡妇优化算法求解单目标优化问题含Matlab源码相关推荐
- 【单目标优化求解】基于matlab黑猩猩算法求解单目标问题【含Matlab源码 1413期】
一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[单目标优化求解]基于matlab黑猩猩算法求解单目标问题[含Matlab源码 1413期] 点击上面蓝色字体,直接付费下载,即可. 获取代 ...
- 【BP回归预测】改进的鲸鱼算法优化BP神经网络回归预测(多输入单输出)【含Matlab源码 2184期】
⛄一.鲸鱼算法优化BP神经网络简介 1 鲸鱼优化算法(Whale Optimization Algorithm,WOA)简介 鲸鱼优化算法(WOA),该算法模拟了座头鲸的社会行为,并引入了气泡网狩猎策 ...
- 【生产优化】基于matlab遗传算法求解帐篷工序问题【含Matlab源码 2145期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源: [生产优化]基于matlab遗传算法求解帐篷工序问题[含Matlab源码 2145期] 点击上面蓝色字体,直接付费下载,即可. 获取代码 ...
- 【物流选址】基于matlab免疫算法求解物流选址问题【含Matlab源码 020期】
一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[物流选址]基于matlab免疫算法求解物流选址问题[含Matlab源码 020期] 获取代码方式2: 付费专栏Matlab路径规划(初级版 ...
- 【ACO TSP】基于matlab蚁群算法求解31城市旅行商问题【含Matlab源码 1147期】
一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[TSP]基于matlab蚁群算法求解31城市旅行商问题[含Matlab源码 1147期] 点击上面蓝色字体,直接付费下载,即可. 获取代码 ...
- 【TS TSP】基于matlab禁忌搜索算法求解31城市旅行商问题【含Matlab源码 1143期】
一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[TSP]基于matlab禁忌搜索算法求解31城市旅行商问题[含Matlab源码 1143期] 点击上面蓝色字体,直接付费下载,即可. 获取 ...
- 【风电功率预测】基于matlab麻雀算法优化LSSVM风电功率预测(多输入单输出)【含Matlab源码 1718期】
⛄一.麻雀算法优化LSSVM简介 1 标准麻雀算法 算法运算过程由探索者.追随者与预警者3部分构成,其中探索者与追随者的总数量与比例不变,根据适应度数值的改变,两者可以相互转化.通过觅食和反捕食行为来 ...
- 【定位问题】RSSI和模拟退火优化粒子群算法求解无线传感器网络定位问题【含Matlab源码 1766期】
⛄一.简介 1 引言 随着物联网技术的发展,传感器之间通过通信方式连接在一起,构成了极为庞大的无线传感器网络,这使得传感器在各行各业的应用相当广泛[.然而,因为大规模抛撒的传感器节点无法全部配备价格昂 ...
- 【定位问题】基于matlab chan算法、fang算法、taylor算法求解目标定位问题【含Matlab源码 2135期】
⛄一.chan+taylor算法移动基站无源定位简介 1 引言 随着无人机的普及,低空空域的安全问题受到人们的极大关注.针对该问题,本研究对"非合作型"无人机采用一种基于时差法的无 ...
- 【语音隐写】基小波变换算法求解水印嵌入提取【含Matlab源码 513期】
⛄一.简介 随着计算机和网络的飞速发展,人们的许多创作和成果都以数字形式进行存储和发布.然而,数字作品极易被非法拷贝.伪造和窜改,使得很多版权所有者不愿意利用网络公开其作品,从而阻碍其自身发展.目前, ...
最新文章
- 2014年工作中遇到的10个问题:221-230
- android 获得应版本号,Android获得本应用版本号和版本名称
- 封杀所有Bytespider蜘蛛,太频繁,太操蛋,不杀不行~~~
- boost::geometry::segment_intersection_points用法的测试程序
- MATLAB拉格朗日插值
- JavaEE还是Spring? 都不行! 我们呼吁新的竞争者!
- android studio打包纯H5项目(集成5+SDK)
- 用遗传算法进行智能排课,相信老师会很喜欢
- 语义分割模型架构演进与相关论文阅读
- java1.8 64_jdk 1.8 64位 官方版
- 实战Java商品库存管理系统
- 十分钟入门 Kafka,通俗易懂地理解分布式消息系统!!
- RS锁存器,D锁存器、D触发器简介
- CSDN学霸课表——来,这有一份PS入门速效大法
- html5画布动态时钟,HTML5之canvas绘制动态时钟
- STM32F103_study62_The punctual atoms(Clock system initialization function analysis)
- 农民股神六万元博出千万身家
- 五则运算c语言程序,C语言算术运算示例程序
- 利用ArcGIS软件将csv文件转换为shp格式
- 蓝桥杯每日一题(22):三升序列(python)
热门文章
- sun.misc.BASE64Encoder是内部专用 API, 可能会在未来发行版中删除
- 扫雷算法实现(简易版,只能在CMD指令中玩)
- 亚马逊服务器一键重装系统,如何使用Amazon Alexa轻松设置智能家居设备
- inv在C语言是什么函数,机械原理中的inv 函数是什么意思?
- Android - 一种相似图片搜索算法的实现
- java clh_【Java】CLH 自旋锁
- opencv图像处理学习(四十)——伪彩色处理
- 解析程序包出现问题(更新下载apk)
- 微软云服务器密码如何重置,微软云密码重置
- 生命以负熵为生:零知识证明的前世今生