一种基于迭代局部搜索和随机惯性权重的蝙蝠优化算法的制作方法

文档序号:14099058阅读:198来源:国知局

本发明涉及智能优化算法领域,尤其涉及一种基于迭代局部搜索和随机惯性权重的蝙 蝠优化算法方面。



背景技术:

蝙蝠优化算法是杨新社教授2010年基于群体智能提出的一种搜索全局最优解的启发 式优化算法。该算法是根据自然界中蝙蝠利用超声波来探测猎物、躲避障碍物的特点发展 而来的一种全局优化算法。它具有需要调整的参数少、求解速度快、精度高等特点。目前, 蝙蝠优化算法已被成功的运用于建模、优化、控制等多个领域。

针对蝙蝠优化算法也存在易陷入局部最优等问题,有学者将模拟退火思想引入蝙蝠优 化算法中,并对算法中的某些个体进行高斯扰动,这样能够增加算法的全局收敛性和精度; 有学者提出带有高斯变异的混合蛙跳蝙蝠算法,在保持基础蝙蝠算法具有较强全局搜索能 力的同时,增强算法的局部搜索能力;也有学者提出了一种定向蝙蝠算法,该算法考虑通 过蝙蝠之间的声波通讯改变搜索方向、在最优解的产生公式处增加权重、限制脉冲速率和 响度的范围等改进方法。

但是上述优化算法通过采用与其他智能算法结合或限制脉冲速率和响度的方法,使得 其在面对复杂函数时跳出局部最优的能力还有待进一步提高;另外,上述方法均只考虑了 算法会陷入局部最优的问题,忽略了算法优化结果受初始值的影响较大,存在优化结果不 稳定的情况,整体上优化效果不太理想。因此,蝙蝠优化算法如何有效地防止基础蝙蝠算 法陷入局部最优且得到稳定的优化结果,是一个值得深入研究的问题。



技术实现要素:

针对上述的现有蝙蝠优化算法易陷入局部最优、优化结果不稳定的技术缺陷,本发明 提供了一种基于迭代局部搜索和随机惯性权重的蝙蝠优化算法。该算法的主要步骤为:初 始化蝙蝠算法中的参数:种群大小n,脉冲速率ri,响度Ai,迭代次数M,响度衰减系数α, 脉冲速率增加系数γ,脉冲频率fi,脉冲频率范围[fmin,fmax],种群位置Xi和种群速度Vi; 更新脉冲频率fi、种群位置Xi,并利用随机性权重更新种群速度Vi;运行蝙蝠算法,运用 蝙蝠算法,得到当前种群位置的局部最优解;在局部最优解的基础上,运用迭代局部搜索 算法;满足全局最优解的判断条件时,得到全局最优解,算法结束。

进一步地,融合迭代局部搜索、随机惯性权重和蝙蝠优化算法,形成基于迭代局部搜 索和随机惯性权重的蝙蝠优化算法框架。

进一步地,利用公式(1)计算得到ILSSIWBA算法中的随机惯性权重ω:

ω=μmin+(μmaxmin)×rand()+σ×randn() (1)

其中,μmin是随机惯性权重系数的最小值,μmax是随机惯性权重系数的最大值,rand()是 均匀分布于[0,1]的随机数,σ是随机惯性权重与其均值之间的偏离程度,randn()是标准正 态分布的随机数。

进一步地,利用公式(2)更新脉冲频率fi,利用公式(3)更新种群位置Xi

fi=fmin+(fmax-fmin)β (2)

其中,β是[0,1]的随机数;Vit和是在t时刻的速度和位置;Vit-1和是在t-1时刻的速 度和位置;

进一步地,如公式(4)所示,运用所述随机惯性权重更新蝙蝠算法的种群速度:

其中,ω是随机惯性权重,Vit和是在t时刻的速度和位置;Vit-1和是在t-1时刻的速 度和位置,Xm是当前最优位置,fi是脉冲频率。

进一步地,所述种群位置的新解产生公式如公式(5)所示:

Xnew=Xold+εAt (5)

其中,ε是[-1,1]的随机数,At是在这段时间内的平均响度。

进一步地,利用公式(6)更新脉冲速率ri,利用公式(7)更新响度Ai

rit-1=ri0[1-exp(-γt)] (6)

其中,ri0是初始的脉冲速率,对于任意的0<α<1和γ>0,当t→∞时有和

进一步地,在局部最优解Xm的基础上,运用迭代局部搜索算法的步骤如下:

1)对局部最优解Xm进行扰动,利用扰动公式(8)得到一个中间状态X**

X**=Xm×rand() (8)

其中,rand()是均匀分布于[0,1]的随机数;

2)对X**进行局部搜索,得到局部极小值解X'm和局部极小值f(X'm),即扰动后得到 的局部最优解X'm及其适应度值f(X'm);

进一步地,全局最优解的判断条件为:如果f(X'm)<f(Xm)或者则Xm=X'm,f(Xm)=f(X'm)。

进一步地,所述全局最优解的判断条件采用的是随机因素的贪心算法。

本发明的有益效果是:本发明提供一种基于迭代局部搜索和随机惯性权重的蝙蝠优化 算法,融合迭代局部搜索、随机惯性权重和蝙蝠算法,建立了基于迭代局部搜索和随机惯 性权重的蝙蝠优化算法框架,使算法快速跳出局部最优,提高优化算法的寻优精度和优化 结果的稳定性。

附图说明

下面将结合附图及实施例对本发明作进一步说明,附图中:

图1是本发明实施例中ILSSIWBA算法的主要思想示意图;

图2是本发明实施例中ILSSIWBA算法的流程图;

图3是本发明实施例中F1函数迭代曲线图;

图4是本发明实施例中F2函数迭代曲线图;

图5是本发明实施例中F3函数迭代曲线图;

图6是本发明实施例中F4函数迭代曲线图;

图7是本发明实施例中F5函数迭代曲线图;

图8是本发明实施例中F6函数迭代曲线图;

图9是本发明实施例中F7函数迭代曲线图;

图10是本发明实施例中F8函数迭代曲线图;

图11是本发明实施例中F9函数迭代曲线图;

图12是本发明实施例中F10函数迭代曲线图。

具体实施方式

为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图详细说明本 发明的具体实施方式。

本发明提供一种基于迭代局部搜索和随机惯性权重的蝙蝠优化算法,如图1所示,图 1是本发明实施例中ILSSIWBA的主要思想示意图,主要包括以下步骤:初始化蝙蝠算法 中的参数:种群大小n,脉冲速率ri,响度Ai,迭代次数M,响度衰减系数α,脉冲速率 增加系数γ,脉冲频率fi,脉冲频率范围[fmin,fmax],更新脉冲频率fi、种群位置Xi,并 利用随机性权重更新种群速度Vi;运行蝙蝠算法,得到当前种群位置的局部最优解Xm;在 局部最优解Xm的基础上,运用迭代局部搜索算法;满足全局最优解的判断条件,得到全局 最优解,算法结束。

如图2所示,图2是本发明实施例中ILSSIWBA的流程图,流程图中的具体步骤如下:

S201:初始化蝙蝠算法中的参数:种群大小n,脉冲速率ri,响度Ai,响度衰减系数α, 脉冲速率增加系数γ,脉冲频率fi,脉冲频率范围[fmin,fmax],种群速度Vi和种群位置Xi

S202:计算得到随机惯性权重,计算公式为:ω=μmin+(μmaxmin)×rand()+σ×randn(), 其中,μmin是随机惯性权重系数的最小值,μmax是随机惯性权重系数的最大值,rand()是均 匀分布于[0,1]的随机数,σ是随机惯性权重与其均值之间的偏离程度,randn()是标准正态 分布的随机数;

S203:更新脉冲频率fi、种群位置Xi,并利用所述随机性权重更新种群速度Vi,更新 脉冲频率的公式为:fi=fmin+(fmax-fmin)β,更新种群位置的公式为更新种群 的公式为:其中,β是[0,1]的随机数,Vit和是在t时刻的速度和 位置,Vit-1和是在t-1时刻的速度和位置,ω是惯性权重,Xm是当前最优位置,fi是脉 冲频率;

S204:生成的均匀分布随机数rand()>ri时,对当前最优解进行随机扰动,根据新解生 成公式产生种群位置新解,所述新解产生公式为:Xnew=Xold+εAt

S205:判断是否生成的均匀分布随机数rand()<Ai且f(Xi)<f(Xm)?若是,则到步骤 S206;若不是,则到步骤S207;

S206:接受种群位置新解及其适应度值,根据脉冲速率更新公式和响度更新公式更新 脉冲速率ri和响度Ai,更新脉冲速率的公式为:rit+1=ri0[1-exp(-γt)],更新响度的公式为: 其中,ri0是初始的脉冲速率,对于任意的0<α<1和γ>0,当t→∞时有Ait→0和 rit→ri0

S207:根据更新当前种群位置最优解Xm及其适应度值f(Xm);

S208:基于扰动公式,对当前种群位置最优解Xm进行扰动,得到中间状态X**,扰动 公式为:X**=Xm×rand(),其中,rand()是均匀分布于[0,1]的随机数;

S209:对X**进行局部搜索,得到种群位置的局部极小值解X'm及其适应度值f(X'm);

S210:判断是否满足全局最优解的判断条件?所述全局最优解的判断条件为:如果 f(X'm)<f(Xm)或者则Xm=X'm,f(Xm)=f(X'm),采用的是随 机因素的贪心算法。

若不满足,则回到S203;若满足,则到步骤S211;

S211:得到Xm=X'm,f(Xm)=f(X'm);

S212:判断是否m<M?

若是,则回到步骤S203;若不是,则到步骤S213;

S213:得到种群位置全局最优解及其适应度值,算法结束。

根据一种基于迭代局部搜索和随机惯性权重的蝙蝠优化算法,使用10个典型测试函数 对其效果进行仿真对比验证。具体步骤如下:

(1)根据图1所示的ILSSIWBA算法的主要思想示意图,设计ILSSIWBA算法;

(2)10个典型测试函数的编号、函数名、函数表达式、维度和搜索范围如表1所示:

表1 典型测试函数

在测试中,BA算法、DBA算法、ILSSIWBA算法的参数的设置如下:

BA算法:种群大小n为30,脉冲速率r为0.1,响度A为0.9,迭代次数M为250,响 度衰减系数α为0.9,脉冲速率增加系数γ为0.9,脉冲频率fi为1和它的范围[0,2];

DBA算法:种群大小n为30,脉冲速率r为0.1,响度A为0.9,迭代次数M为250, 响度衰减系数α为0.9,脉冲速率增加系数γ为0.9,脉冲频率fi为1和它的范围[0,2],脉冲 速率上限r为0.7,响度下限A为0.6;

ILSSIWBA算法:种群大小n为50,脉冲速率r为0.6,响度A为0.25,迭代次数M为 200,响度衰减系数α为0.9,脉冲速率增加系数γ为0.9,脉冲频率fi为1和它的范围 [0,2],随机惯性权重系数的最小值μmin为0.4,随机惯性权重系数的最大值μmax为0.9,随 机变量权重与其均值之间的偏离程度σ为0.2;

数值仿真平台的相关参数设置如下:仿真实验系统为Win 10,内存为8GB,仿真软件 为Matlab 2016b。

(3)根据图2所示本发明实施例中ILSSIWBA算法的流程图,分别对每一个测试函数 采用蝙蝠算法(BA)、定向蝙蝠算法(DBA)和本发明所提ILSSIWBA算法进行了50组 独立实验。三种算法对典型测试函数的适应度值结果对比如表2所示:

表2 三种算法关于典型测试函数的适应度值结果对比

其中,best代表最小值,media代表中间值,worst代表最大值,mean代表平均值,sd代表 标准差,E代表幂的底数10,例如:1.313E+06代表1.313*106,3.462E-02代表3.462*10-2, 加粗部分代表,使用三种算法得到10个典型测试函数的全局最优解对应的适应度最小值;

(4)不同维度时三种算法关于典型测试函数的全局最优解对应的适应度值结果对比如 表3所示:

表3 不同维度时三种算法关于典型测试函数的全局最优解对应的适应度值结果对比

其中,D代表维度,E代表幂的底数10,例如:-1.08E+03代表-1.08*103,加粗部分代表在 不同维度时使用三种算法得到10个典型测试函数的全局最优解对应的适应度最小值;

(5)维度为30时三种算法的时间复杂度对比如表4所示:

表4 维度为30时三种算法的时间复杂度对比

其中,加粗部分代表维度为30时,使用三种算法得到10个典型测试函数全局最优解时所 需的最少的时间;

(6)仿真过程中F1~F10函数的三种算法迭代曲线图分别如图3~12所示。图3~12的横 轴为迭代次数,纵轴为适应度函数值,短虚线为BA算法的迭代曲线,长虚线为DBA算法 的迭代曲线,实线为本文所提ILSSIWBA算法的迭代曲线。

从表2~4和图3~12可以看出,相较于BA算法和DBA算法,ILSSIWBA算法在引入 迭代局部搜索和随机惯性权重操作后使得算法局部搜索能力有了极大地提升,能跳出局部 最优解,并且快速收敛,具有较强的稳定性。因此,本发明提供的ILSSIWBA算法具有较 强的跳出局部最优的能力,提高了优化算法的寻优精度和优化结果的稳定性。

上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施 方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在 本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形 式,这些均属于本发明的保护之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1