[发明专利]一种基于多策略增强的哈里斯老鹰算法的工程优化方法有效
申请号: | 201910934463.8 | 申请日: | 2019-09-29 |
公开(公告)号: | CN110728001B | 公开(公告)日: | 2023-08-04 |
发明(设计)人: | 李俊;李晨阳 | 申请(专利权)人: | 温州大学 |
主分类号: | G06F30/17 | 分类号: | G06F30/17;G06N3/006 |
代理公司: | 温州名创知识产权代理有限公司 33258 | 代理人: | 陈加利 |
地址: | 325000 浙江省温州市*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 策略 增强 里斯 老鹰 算法 工程 优化 方法 | ||
1.一种基于多策略增强的哈里斯老鹰算法的工程优化方法,其特征在于,包括以下步骤:
步骤S1、实际工程问题的优化目标函数构建;确认实际工程问题的优化目标,并根据优化目标确定优化变量,优化变量要满足相应的约束,通过优化目标和优化变量构建优化目标函数;
步骤S2、参数初始化;该算法的初始化参数包括有最大迭代次数T、哈里斯鹰群的种群数量N;优化目标函数的初始化参数包括有目标函数的搜索空间(Cmin,Cmax),目标函数的变量范围、及目标函数的维度大小dim;
步骤S3、初始化哈里斯鹰的种群位置;利用公式(1)来初始化种群的位置,把哈里斯鹰的初始化位置限定在目标函数搜索空间的随机位置之中,公式(1)如下所示:
Xm,n=(Cmax-Cmin)*rand+Cmin(m=1,2,…N)(n=1,2,…dim)(1)
在公式(1),X是初始化后的种群位置;rand是(0,1)之间的随机数;Cmax是目标函数的上界,Cmin是目标函数的下界;N是种群的大小;dim是目标函数维度的大小,根据上述每个变量的范围来初始化变量位置;
步骤S4、根据目标函数来计算初始化种群中每个哈里斯鹰的适应度值并且计算种群的值是否满足目标函数的约束条件,从而找到种群中拥有最优的适应度值且符合约束条件的个体Xbest作为猎物,它相应的适应度值是
步骤S5、采用变量E来动态的模拟猎物的运动状态和种群的执行状态,从而为每一个哈里斯鹰找到最好的执行策略;变量E的公式如下所示:
在公式(2)中,E0是(-1,1)之间的随机数代表着初始的能量状态,t是当前迭代次数,T是最大的迭代次数,E的值是随着迭代次数的增加,从(-1,1)范围内向0趋近;
通过E的值可以动态的在探索和开发之间,以及在开发的不同策略之间切换;对于种群中每个哈里斯鹰来说,当E的绝对值大于1的时候,这个哈里斯鹰进入探索阶段,转入步骤S6;当E的绝对值小于1的时候,该哈里斯鹰进入开发阶段,转入步骤S7;
步骤S6、探索阶段;在本阶段,采用反向对数螺旋策略来更新哈里斯鹰的位置,如公式(4)所示:
Xreverse_best=rand×(Cmax+Cmin)-Xbest (3)
Xnext=|Xbest-Xreverse_best|×ebl×cos(2πl)+Xbest (4)
其中Xbest是当前迭代中的最优解位置,Xreverse_best是根据公式(3)得到的当前最优解的反向解;Xnext是哈里斯鹰更新后的新位置,l是(-1,1)之间的随机值,b=1是一个常数;
根据上述反向对数螺旋公式来对哈里斯鹰进行探索位置的随机更新,期望找到可能最优解的区域;并跳至步骤S8;
步骤S7、开发阶段;在这个阶段,哈里斯鹰会采用不同的策略来更新其位置,主通过变量E来进行不同策略的切换,从而为每一个哈里斯鹰选择合适的策略进行位置更新,同时Rosenbrock直接搜索算法也会在本阶段引入来更新哈里斯鹰的位置;并跳至步骤S9;
步骤S8、通过步骤S5和S6可以对整个种群的位置进行更新,更新后的新种群,通过目标函数和约束条件,计算所有更新位置后的满足约束条件的哈里斯鹰的适应度函数进行排序后选出当前新种群的最优解把这个当前迭代的最优解和目前假设的最优解Xbest进行比较,如果比Xbest更优,则替换它,执行如下公式:
步骤S9、判读是否达到最大的迭代次数T;若是,则输出最优解的位置Xbest,此时Xbest就是我们所求的目标函数的最优解,也就是我们找到的实际工程优化问题的最优解;若没达到迭代次数,返回步骤S5,执行下一次的迭代过程;
所述的步骤S7具体包括:
步骤S7.1、本阶段是算法的开发阶段,通过变量E来控制执行的不同策略,同时引入变量r来模拟兔子是否逃脱追捕,r是(0,1)之间的随机数;具体判断如下:
A1、当r≥0.5且|E|≥0.5时,用公式(6)更新哈里斯鹰的位置;
X(t+1)=ΔX(t)-E|JXrabbit(t)-X(t)| (6)
在公式(6)中,ΔX(t)=Xrabbit(t)-X(t),表示的是在t次迭代中,兔子即最优解的位置和当前位置之间的差值;J=2(1-r5)表示的是(0,2)之间的随机数,r5是(0,1)之间的随机数,用来表示兔子的随机跳跃强度,J的值在每次的迭代中都会改变;X(t)表示t迭代中当前鹰派成员的位置;
A2、当r≥0.5且|E|≤0.5时,用公式(7)更新哈里斯鹰的位置;
X(t+1)=Xrabbit(t)-E|ΔX(t)| (7)
在公式(7)中,Xrabbit(t)表示的是t次迭代中兔子的位置;其中ΔX(t)=Xrabbit(t)-X(t),表示的是在t次迭代中,兔子的位置和当前位置之间的差值;
A3、当r0.5且|E|0.5时,用公式(8)更新哈里斯鹰的位置;
在公式(8)中,F是目标函数,Y和Z分别由公式(9)和(10)表示:
Y=Xrabbit(t)-E|JXrabbit(t)-X(t)| (9)
Z=Y+S×LF(D) (10)
在公式(9)和(10)中,D是问题的维数,S是1×D的随机向量,LF(D)是这个levy飞行产生的1×D维度的随机数,LF(D)用公式(11)表示:
在公式(11),μ,υ是(0,1)的随机数,β是一个常量,在HHO中β=1.5;
A4、当r0.5且|E|0.5的时,用公式(12)更新哈里斯鹰的位置;
在公式(12)中,F是目标函数,Y和Z分别由公式(13)和(14):
Z=Y+S×LF(D) (14)
在公式(13)和(14)中,是整个种群每个维度的均值;S是1×D的随机向量;LF(D)是这个levy飞行产生的1×D维度的随机数;LF(D)用公式(11)表示;
步骤S7.2、在本阶段引入Rosenbrock直接搜索算法,当步骤S7.1执行完之后,会对每个开发阶段的哈里斯鹰进行判定是否进行Rosenbrock直接搜索算法进行局部搜索;判定的主要是通过变量prod进行,其公式如下所示:
在公式(15)中,N是种群的规模,ti是第i次迭代中最优解未被更新的次数,rand是(-1,1)之间的随机数,根据公式(15)可以求出Rosenbrock直接搜索算法在开发阶段被引入的概率prob;在HHO的开发阶段当prob的值大于0.8时候,就可以判断出算法在本次迭代中的最优解更新频率过低,就假定算法陷入局部最优值,利用Rosenbrock直接搜索算法进行本地搜索,从而跳出局部最优值;
所述的步骤S7.2中的Rosenbrock直接搜索算法具体包括:
B1、探测阶段;初始点x0,设定初始的搜索方向(d1,d2,d3……dn),一般初始方向为坐标轴方向;设定初始的步长ξ1,ξ2,ξ3,……ξn;步长增长因子α(α1),缩小因子β(-1β0);
探测阶段开始,沿着n个搜索方向根据公式(16)依次循环搜索;
y=x+di×ξi (16)
在公式(16)中,x表示的是当前的位置,di和ξi分别表示第i个搜索方向和第i个搜索方向的移动步长;
如果y的值比x的值要好,我们就判定其成功,我们就通过公式(17)更新搜索步长:
ξi=α×ξi (17)
在公式(17)中,α是增长因子;
如果y的值比x的值要差,我们就判定其不成功我们就通过公式(18)更新搜索步长:
ξi=β×ξi (18)
在公式(18)中,β表示的是缩小因子;
上述过程一直持续到设定的终止条件;
B2、转轴阶段:算法会重置搜索步长为初始值,并重新的构建新的搜索方向,新的搜索方向的更新主要是通过正交归一化方法来更新其新的搜索方向,过程如下:
通过探测阶段后,通过如下公式来定义一组需要转换的新方向(p1,p2,p3……pn);
在公式(19)中,d表示的是原来的的方向,ξ是更新后的步长;
通过GS正交化对新的方向(p1,p2,p3……pn)进行正交化,归一化数学描述如公式(20)所示:
通过归一化之后,新的搜索方向由公式(21)定义:
确定好新的搜索方向之后,开始继续进行探测阶段的循环,直到满足特定的终止条件。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于温州大学,未经温州大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910934463.8/1.html,转载请声明来源钻瓜专利网。