首页 > 分享 > 【优化求解】基于动态全局搜索和柯西变异改进的花授粉算法matlab源码

【优化求解】基于动态全局搜索和柯西变异改进的花授粉算法matlab源码

一、花朵授粉算法

花朵授粉算法( Flower Pollination Algorithm,FPA)是由英国剑桥大学学者Yang于2012年提出的,其基本思想来源于对自然界花朵自花授粉、异花授粉的模拟,是一种新的元启发式群智能随机优化技术 。算法中为了简便计算,假设每个植物仅有一朵花,每朵花只有一个配子,我们可以认为每一个配子都是解空间中的一个候选解。

Yang通过对花朵授粉的研究,抽象出以下四大规则:

1) 生物异花授粉被考虑为算法的全局探测行为,并由传粉者通过Levy飞行的机制实现全局授粉;

2)非生物自花授粉被视作算法的局部开采行为,或称局部授粉;

3)花朵的常性可以被认为是繁衍概率,他与两朵参与授粉花朵的相似性成正比例关系;

4)花朵的全局授粉与局部授粉通过转换概率 p∈[0,1]进行调节。 由于物理上的邻近性和风等因素的影响,在整个授粉活动中,转换概率 p是一个非常重要的参数。 文献[1]中对该参数的试验研究认为,取 p =0.8 更利于算法寻优。

直接上步骤(以多元函数寻优为例):

目标函数 : min g = f(x1,x2,x3,x4...........xd)

设置参量:N(候选解的个数),iter(最大迭代次数),p(转换概率),lamda(Levy飞行参数)

初始化花朵,随机设置一个NXd的矩阵;

计算适应度,即函数值;

获取最优解和最优解得位置;

A循环 1 : 1 :iter

    B循环

        if rand < p

            全局授粉;

        else

            局部授粉;

        end if

        更新新一代的花朵与适应度(函数变量和函数值);

    B循环end

    获取新一代的最优解与最优解位置;

A循环end

全局更新公式:xi(t+1) = xi(t) + L(xi(t) - xbest(t))    L服从Levy分布,具体可以搜索布谷鸟算法。

局部更新公式:xi(t+1) = xi(t) + m(xj(t) - xk(t))    m是服从在[0,1]上均匀分布的随机数。其中,xj和xk是两个不同的个体

二、基于动态全局搜索和柯西变异的花授粉算法

(1)混沌映射

 (2)动态全局搜索方法

 (3)基于柯西变异的优化方法

(4)DCFPA的实现流程图

在这里插入图片描述

图1 DCFPA流程图

二、演示代码

%__________________________________________

% fobj = @YourCostFunction

% dim = number of your variables

% Max_iteration = maximum number of generations

% SearchAgents_no = number of search agents

% lb=[lb1,lb2,...,lbn] where lbn is the lower bound of variable n

% ub=[ub1,ub2,...,ubn] where ubn is the upper bound of variable n

% If all the variables have equal lower bound you can just

% define lb and ub as two single number numbers

% To run ALO: [Best_score,Best_pos,cg_curve]=ALO(SearchAgents_no,Max_iteration,lb,ub,dim,fobj)

% The Whale Optimization Algorithm

function [Leader_score,Leader_pos,Convergence_curve]=WOA(SearchAgents_no,Max_iter,lb,ub,dim,fobj,handles,value)

% initialize position vector and score for the leader

Leader_pos=zeros(1,dim);

Leader_score=inf; %change this to -inf for maximization problems

%Initialize the positions of search agents

Positions=initialization(SearchAgents_no,dim,ub,lb);

Convergence_curve=zeros(1,Max_iter);

t=0;% Loop counter

% Main loop

while t<Max_iter

for i=1:size(Positions,1)

% Return back the search agents that go beyond the boundaries of the search space

Flag4ub=Positions(i,:)>ub;

Flag4lb=Positions(i,:)<lb;

Positions(i,:)=(Positions(i,:).*(~(Flag4ub+Flag4lb)))+ub.*Flag4ub+lb.*Flag4lb;

% Calculate objective function for each search agent

fitness=fobj(Positions(i,:));

All_fitness(1,i)=fitness;

% Update the leader

if fitness<Leader_score % Change this to > for maximization problem

Leader_score=fitness; % Update alpha

Leader_pos=Positions(i,:);

end

end

a=2-t*((2)/Max_iter); % a decreases linearly fron 2 to 0 in Eq. (2.3)

% a2 linearly dicreases from -1 to -2 to calculate t in Eq. (3.12)

a2=-1+t*((-1)/Max_iter);

% Update the Position of search agents

for i=1:size(Positions,1)

r1=rand(); % r1 is a random number in [0,1]

r2=rand(); % r2 is a random number in [0,1]

A=2*a*r1-a; % Eq. (2.3) in the paper

C=2*r2; % Eq. (2.4) in the paper

b=1; % parameters in Eq. (2.5)

l=(a2-1)*rand+1; % parameters in Eq. (2.5)

p = rand(); % p in Eq. (2.6)

for j=1:size(Positions,2)

if p<0.5

if abs(A)>=1

rand_leader_index = floor(SearchAgents_no*rand()+1);

X_rand = Positions(rand_leader_index, :);

D_X_rand=abs(C*X_rand(j)-Positions(i,j)); % Eq. (2.7)

Positions(i,j)=X_rand(j)-A*D_X_rand; % Eq. (2.8)

elseif abs(A)<1

D_Leader=abs(C*Leader_pos(j)-Positions(i,j)); % Eq. (2.1)

Positions(i,j)=Leader_pos(j)-A*D_Leader; % Eq. (2.2)

end

elseif p>=0.5

distance2Leader=abs(Leader_pos(j)-Positions(i,j));

% Eq. (2.5)

Positions(i,j)=distance2Leader*exp(b.*l).*cos(l.*2*pi)+Leader_pos(j);

end

end

end

t=t+1;

Convergence_curve(t)=Leader_score;

if t>2

line([t-1 t], [Convergence_curve(t-1) Convergence_curve(t)],'Color','b')

xlabel('Iteration');

ylabel('Best score obtained so far');

drawnow

end

set(handles.itertext,'String', ['The current iteration is ', num2str(t)])

set(handles.optimumtext,'String', ['The current optimal value is ', num2str(Leader_score)])

if value==1

hold on

scatter(t*ones(1,SearchAgents_no),All_fitness,'.','k')

end

end

四、仿真结果

表1 测试函数基本信息

在这里插入图片描述各个函数收敛曲线及结果显示如下:
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

仿真实验表明,DCFPA算法比FPA具有更好的全局优化能力,提升了算法的收敛速度与求解精度。

五、参考文献及代码私信博主

[1] 贺智明, 李文静. 基于动态全局搜索和柯西变异的花授粉算法[J]. 计算机工程与应用, 2019, 55(19): 74-80.

部分理论引用网络文献,若有侵权联系博主删除 关注我领取海量matlab电子书和数学建模资料 私信完整代码和数据获取及论文数模仿真定制 各类智能优化算法改进及应用 生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化、背包问题、 风电场布局、时隙分配优化、 最佳分布式发电单元分配、多阶段管道维修、 工厂-中心-需求点三级选址问题、 应急生活物质配送中心选址、 基站选址、 道路灯柱布置、 枢纽节点部署、 输电线路台风监测装置、 集装箱调度、 机组优化、 投资优化组合、云服务器组合优化、 天线线性阵列分布优化、CVRP问题、VRPPD问题、多中心VRP问题、多层网络的VRP问题、多中心多车型的VRP问题、 动态VRP问题、双层车辆路径规划(2E-VRP)、充电车辆路径规划(EVRP)、油电混合车辆路径规划、混合流水车间问题、 订单拆分调度问题、 公交车的调度排班优化问题、航班摆渡车辆调度问题、选址路径规划问题、港口调度、港口岸桥调度、停机位分配、机场航班调度、泄漏源定位 机器学习和深度学习时序、回归、分类、聚类和降维

2.1 bp时序、回归预测和分类

2.2 ENS声神经网络时序、回归预测和分类

2.3 SVM/CNN-SVM/LSSVM/RVM支持向量机系列时序、回归预测和分类

2.4 CNN|TCN|GCN卷积神经网络系列时序、回归预测和分类

2.5 ELM/KELM/RELM/DELM极限学习机系列时序、回归预测和分类 2.6 GRU/Bi-GRU/CNN-GRU/CNN-BiGRU门控神经网络时序、回归预测和分类

2.7 ELMAN递归神经网络时序、回归预测和分类

2.8 LSTM/BiLSTM/CNN-LSTM/CNN-BiLSTM/长短记忆神经网络系列时序、回归预测和分类

2.9 RBF径向基神经网络时序、回归预测和分类

2.10 DBN深度置信网络时序、回归预测和分类 2.11 FNN模糊神经网络时序、回归预测 2.12 RF随机森林时序、回归预测和分类 2.13 BLS宽度学习时序、回归预测和分类 2.14 PNN脉冲神经网络分类 2.15 模糊小波神经网络预测和分类 2.16 时序、回归预测和分类 2.17 时序、回归预测预测和分类 2.18 XGBOOST集成学习时序、回归预测预测和分类 2.19 Transform各类组合时序、回归预测预测和分类 方向涵盖风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、用电量预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断 图像处理方面 图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知 路径规划方面 旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、 充电车辆路径规划(EVRP)、 双层车辆路径规划(2E-VRP)、 油电混合车辆路径规划、 船舶航迹规划、 全路径规划规划、 仓储巡逻 无人机应用方面 无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配、无人机安全通信轨迹在线优化、车辆协同无人机路径规划 通信方面 传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化、水声通信、通信上传下载分配 信号处理方面 信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化、心电信号、DOA估计、编码译码、变分模态分解、管道泄漏、滤波器、数字信号处理+传输+分析+去噪、数字信号调制、误码率、信号估计、DTMF、信号检测 电力系统方面 微电网优化、无功优化、配电网重构、储能配置、有序充电、MPPT优化、家庭用电 元胞自动机方面 交通流 人群疏散 病毒扩散 晶体生长 金属腐蚀 雷达方面 卡尔曼滤波跟踪、航迹关联、航迹融合、SOC估计、阵列优化、NLOS识别 车间调度 零等待流水车间调度问题NWFSP置换流水车间调度问题PFSP混合流水车间调度问题HFSP 、零空闲流水车间调度问题NIFSP、分布式置换流水车间调度问题 DPFSP、阻塞流水车间调度问题BFSP

相关知识

改进的花朵授粉算法程序(Matlab)资源
基于花授粉算法优化实现SVM数据分类
改进的花朵授粉算法在物流配送中心选址问题中的应用
【优化覆盖】基于matlab入侵杂草和花授粉混合算法无线传感器覆盖优化问题【含Matlab源码 1328期】
【优化求解】基于matlab遗传算法求解红绿灯管理优化问题【含Matlab源码262期】.md资源
基于正余双弦自适应灰狼优化算法的医药物流配送路径规划
适应性花朵授粉算法研究
花授粉优化算法及代码实现
CMOFPA:多目标花授粉算法
MATLAB植物虫害识别

网址: 【优化求解】基于动态全局搜索和柯西变异改进的花授粉算法matlab源码 https://m.huajiangbk.com/newsview758346.html

所属分类:花卉
上一篇: 依次填入下列横线上最恰当的一组词
下一篇: 在同一直角坐标系中,函数y=kx