1 简介

本期为大家介绍黑寡妇优化算法(Black Widow Optimization Algorithm,BWO)。该算法由Adria´n F. Peña-Delgado等人于2020年提出,主要模拟了"黑寡妇"蜘蛛独特的繁殖行为,因其简单有效而在近年来得到广泛关注。

黑寡妇优化算法

“黑寡妇”蜘蛛是从加拿大西部到南部发现的一种有毒蜘蛛,因其毒素只存在于雌性体内故得名"黑寡妇"。这些蜘蛛以蟑螂、甲虫和蝴蝶等昆虫为食;它们在树上织网,栖息在森林和沼泽中。雄性通过性信息素来辨别雌性的交配状态,因为雌性会表现出同类相食的行为,所以雄性对处于饥饿状态或是营养不良的雌性不感兴趣。毕竟回归到自然界,物竞天择,强者为尊,大家的想法还是那么纯净。

运动行为

黑寡妇以线性和螺旋形在蛛网中运动:


式中x* 为当前最优个体位置,β分别为[-1,1]、[0.4,0.9]内的随机数,xr1为种群内随机选择的一个个体。可以看出,直接采取最优个体引导机制,设置两种更新方式可以看做减小种群陷入局部最优值概率的一种操作。图1展示了这两种位置更新方式:

【智能优化算法】基于儿童绘画发展优化算法求解单目标优化问题附matlab代码_随机数图1 黑寡妇的两种位置更新方式

性信息素

同大多数昆虫一样,雌性的生理状况越好,她所散发出的性信息素越浓郁,生育能力也就越强。所以雄性会依据性信息素浓度来选择配偶。性信息素的计算方式为:


对于最小化问题,fitness_max、fitness_min 分别为适应度最差、最优值。很明显性信息素均位于[0,1]内,对于性信息素等于或小于0.3的雌性蜘蛛,原文中认为她们十分饥渴,神秘而危险。因此这类个体采取如下更新方式:

【智能优化算法】基于儿童绘画发展优化算法求解单目标优化问题附matlab代码_迭代_02

其中xr1、xr2为随机选择的个体,  为二进制数值(对于当前个体随机设为0或1)。很明显这一操作就是为了对适应度值较差的个体进行重组,对种群资源充分利用。至此,算法迭代伪代码为:

【智能优化算法】基于儿童绘画发展优化算法求解单目标优化问题附matlab代码_随机数_03

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 仿真结果

【智能优化算法】基于儿童绘画发展优化算法求解单目标优化问题附matlab代码_优化算法_04

【智能优化算法】基于儿童绘画发展优化算法求解单目标优化问题附matlab代码_随机数_05

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代码_迭代_06