1 简介

为了提高短期电力负荷预测的准确性,降低因预测精度不高带来的电能损失,提出将花朵授粉算法(flower pollination algorithm,FPA)与BP神经网络相结合,利用FPA算法具有收敛速度快,全局搜索能力强的特点,对BP神经网络的权值和阈值进行优化,改善传统BP神经网络因权值和阈值的选择具有随机性而陷入局部最优和收敛速度慢的缺点.最后,通过某地区实际负荷数据验证了优化后的BP神经网络的预测精度得到了提高.

花朵授粉算法( Flower Pollination Algorithm,FPA)是由英国剑桥大学学者Yang 于2012年提出的,其基本思想来源于对自然界花朵自花授粉、异花授粉的模拟,是一种新的元启发式群智能随机优化技术 。

     据统计,目前在自然界中被人类发现的植物大约有 37 万 种,显花植物大约占有 20 万种,而其中 80% 的植物依靠生物授粉繁衍后代。花植物已经进化了大约 1. 25 亿年,在演化过程中,花朵授粉在花植物繁衍过程中承担着举足轻重的作用,对于花植物,如果没有花,很难想象植物世界是个什么样子。人类的发展和生存与跟花植物也是息息相关的,例如人们生活中吃的苹果等水果都是花朵授粉的结果。花朵授粉是通过花粉的传播来实现,而花粉的传播主要是靠昆虫及动物来完成。在实际授粉过程中,一些花朵仅仅吸引和依靠一种特定的昆虫来成功授粉,即一些花朵与传粉者之间形成了一种非常特别的花—传粉者伙伴关系。授粉形式主要有非生物和生物两种,大概 90% 的显花植物是属于生物授粉植物,即花粉主要是通过动物和昆虫来传播而实现繁衍后代。大约 10% 的显花植物是属于非生物授粉植物,不需要任何传粉者来传播花粉,而是通过自然风或者扩散途径来完成传粉,以实现子代的繁殖。在依赖生物传粉的显花植物中大约有 85% 的植物是由蜜蜂完成传粉的,蜜蜂在实际传粉中可能只对一些特定花植物进行传粉,而忽视其他种类的花植物,这样以便以最小的代价获得最大的收益。同时对于一些花植物而言,也获得更多的传粉机会,繁衍更多的后代。根据显花植物的授粉对象不同,可分为异花授粉和自花授粉两种。在一般情况下,异花授粉是两性花,一般一朵花的雌蕊接受的花粉是另一朵花的雄蕊的花粉,这就是所谓的异花授粉。自花授粉是显花植物成熟的花粉粒传到同一朵花的柱头上或同一种显花植物的不同花之间进行传粉,并能正常地受精结实的过程。由于传粉者鸟、蜜蜂等能飞行很长的距离,故异花授粉可以发生在远距离的地方,这种方式称为全局授粉。另外,鸟和蜜蜂具有 Levy 飞行的行为,跳或飞行的步长服从 Levy飞行分布。而自花授粉称为局部授粉。

     花朵授粉算法是模拟自然界中显花植物花朵传粉的过程,该算法的理想条件假设如下:

a) 生物异花授粉是带花粉的传粉者通过 Levy 飞行进行的全局授粉过程。

b) 非生物自花授粉是局部授粉过程。

c) 花的常性可以被认为是繁衍概率,繁衍概率与参与的两朵花的相似性成比例关系。

d) 转换概率 p∈[0,1]控制全局授粉与局部授粉之间的转换,由于物理上的邻近性和风等其他因素的影响,局部授粉在整个授粉活动中是一个非常重要的部分 p。

然而,在现实的自然界中,每一棵显花植物可以开好多朵花,每朵花产生数百万甚至数十亿的花粉配子。但是,为了把问题简单化,假设每棵显花植物仅仅只开一朵花,且每朵花仅产生一个花粉配子。因此,问题经过简化后,意味着一朵花或一个配子就对应于优化问题中的一个解。

【BP预测】基于花朵授粉算法优化BP神经网络实现数据预测附matlab代码_神经网络

2 部分代码

function [aa,fminf,Ntime ] = fpa(n,p,N_iter,d )

%UNTITLED3 此处显示有关此函数的摘要

%   此处显示详细说明

Lb=-600*ones(1,d);

Ub=600*ones(1,d);

 Sol=zeros(n,d);

  Fitness=zeros(1,n);

for i=1:n,

  Sol(i,:)=Lb+(Ub-Lb)*rand;

  Fitness(i)=Fun(Sol(i,:));

end

% Find the current best

[fmin,I]=min(Fitness);

best=Sol(I,:);

S=Sol;

 Ntime=1;

  Ntime= Ntime-1;

for t=1:N_iter,

        % Loop over all bats/solutions

        for i=1:n,

          % Pollens are carried by insects and thus can move in

          % large scale, large distance.

          % This L should replace by Levy flights  

          % Formula: x_i^{t+1}=x_i^t+ L (x_i^t-gbest)

          if rand<p,

          %% L=rand;

          L=Levy(d);

          dS=L.*(Sol(i,:)-best);

          S(i,:)=Sol(i,:)+dS;

          % Check if the simple limits/bounds are OK

          S(i,:)=simplebounds(S(i,:),Lb,Ub);

          % If not, then local pollenation of neighbor flowers 

          else

              epsilon=rand;

              % Find random flowers in the neighbourhood

              JK=randperm(n);

%               end

              % As they are random, the first two entries also random

              % If the flower are the same or similar species, then

              % they can be pollenated, otherwise, no action.

              % Formula: x_i^{t+1}+epsilon*(x_j^t-x_k^t)

%            

               S(i,:)=S(i,:)+epsilon*(Sol(JK(1))-Sol(JK(2)));

%               

              % Check if the simple limits/bounds are OK

              S(i,:)=simplebounds(S(i,:),Lb,Ub);

          end

          % Evaluate new solutions

           Fnew=Fun(S(i,:));

          % If fitness improves (better solutions found), update then

            if (Fnew<=Fitness(i)),

                Sol(i,:)=S(i,:);

                Fitness(i)=Fnew;

           end

          % Update the current global best

          if Fnew<=fmin,

                best=S(i,:)   ;

                fmin=Fnew   ;

          end

               Ntime=Ntime+1;

             aa( Ntime)=fmin; 

        end

        % Display results every 100 iterations

%          if round(t/10)==t/10,

%           best

%            fmin

%        fmin

%   

%        best

%          end

        end

        fminf=fmin;

end

3 仿真结果

【BP预测】基于花朵授粉算法优化BP神经网络实现数据预测附matlab代码_权值_02

【BP预测】基于花朵授粉算法优化BP神经网络实现数据预测附matlab代码_权值_03

4 参考文献

[1]牛庆、曹爱民、陈潇一、周冬. 基于花朵授粉算法和BP神经网络的短期负荷预测[J]. 电网与清洁能源, 2020, 36(10):5.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

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

【BP预测】基于花朵授粉算法优化BP神经网络实现数据预测附matlab代码_神经网络_04