[发明专利]一种改进标准混合蛙跳算法的方法在审
申请号: | 201610145791.6 | 申请日: | 2016-03-15 |
公开(公告)号: | CN105786759A | 公开(公告)日: | 2016-07-20 |
发明(设计)人: | 杜江;袁中华 | 申请(专利权)人: | 河北工业大学 |
主分类号: | G06F17/10 | 分类号: | G06F17/10 |
代理公司: | 天津翰林知识产权代理事务所(普通合伙) 12210 | 代理人: | 胡安朋 |
地址: | 300130 天津市红桥区*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明一种改进标准混合蛙跳算法的方法,步骤是:参数初始化;计算每只青蛙个体的适应值,找出该青蛙种群的全局最优青蛙个体的适应值及其位置;对青蛙种群降优排序;划分青蛙子种群;找出每个青蛙子种群最优与最差青蛙个体位置;对每个青蛙子种群的最差青蛙个体的位置进行更新操作;计算每个青蛙子种群中被更新位置的青蛙个体的适应值,并找出此时青蛙种群全局最优适应值及其位置;实现下次迭代后青蛙种群最优适应值的预测,进而调整移动步长变异系数dj及步骤间的跳转;判断是否满足结束条件。本发明方法克服了标准混合蛙跳算法存在的进化后期收敛速度严重减慢、收敛精度不足和易陷入局部最优的缺陷。 | ||
搜索关键词: | 一种 改进 标准 混合 蛙跳 算法 方法 | ||
【主权项】:
一种改进标准混合蛙跳算法的方法,其特征在于:是将标准混合蛙跳算法中的种群混合机制与子种群内部迭代机制进行了合并处理,并动态调整移动步长,借助于Microsoft Visual C++计算机软件实现改进后的算法,具体步骤如下:第一步,确定需要初始化的参数及其初值:参照标准混合蛙跳算法的参数初始化情况,确定改进后混合蛙跳算法需要初始化的参数,包括:青蛙种群的个体数F、青蛙子种群数m、每个青蛙子种群的青蛙个体数n、每只青蛙个体的位置Xi、最大混合迭代次数N、当前混合迭代次数i、最大移动步长Djmax、进步阀值δ、移动步长变异系数dj、移动步长变异系数上限值dj_big、移动步长变异系数下限值dj_small、移动步长调整结束标志S、预测原始数列长度p和最小允许误差Δ,其中,n=F/m,0<S<1,p≥4;上述所设需要初始化的参数的初值的确定如下:当前混合迭代次数i需赋初值为0;每只青蛙的位置Xi应在解空间内随机初始化,而解空间维度是用户根据求解问题的类型来确定的;青蛙种群的青蛙个体数F、青蛙子种群数m、每个青蛙子种群的青蛙个体数n、最大混合迭代次数N、最大移动步长Djmax、进步阀值δ、移动步长变异系数dj、移动步长变异系数上限值dj_big、移动步长变异系数下限值dj_small、移动步长调整结束标志S、预测原始数列长度p和最小允许误差Δ,这些参数的初值由用户从求解问题的类型、复杂程度和期望求解精度方面综合考虑进而确定其初值;第二步,计算每只青蛙个体的适应值,找出该青蛙种群的全局最优青蛙个体的适应值及其位置:借助Microsoft Visual C++计算机软件编写人机界面,设置参数适应值Yg和位置Xg用于记录该青蛙种群的全局最优青蛙个体的适应值及其位置,将第一步中设置的参数及其初值输入人机界面中,根据青蛙种群的适应值函数,编写程序计算该青蛙种群中每只青蛙个体所在位置Xi的适应值Yi,并通过循环比较法确定出该青蛙种群的全局最优青蛙个体的适应值及其位置并分别赋给适应值Yg和位置Xg,具体操作如下:当求解极大值问题时,适应值Yi较大的青蛙个体属于优势青蛙个体,适应值Yi较小的青蛙个体属于劣势或称差势青蛙个体;当求解极小值问题时,适应值Yi较小的青蛙个体属于优势青蛙个体,适应值Yi较大的青蛙个体属于劣势或称差势青蛙个体;首先将第1只青蛙个体的适应值Y1及其位置X1暂时作为青蛙种群全局最优青蛙个体的适应值及其位置分别赋给适应值Yg和位置Xg,之后将该青蛙种群全局最优青蛙个体的适应值Yg轮流与其他青蛙个体的适应值Yi进行比较,将每次比较后较优的适应值及其位置重新作为全局最优青蛙个体的适应值及其位置赋给适应值Yg和位置Xg,轮流比较结束之后的适应值Yg和位置Xg即为该青蛙种群的全局最优青蛙个体的适应值及其位置;第三步,对青蛙种群按适应值从优势到劣势进行降优排序:根据第二步中得到的每只青蛙个体的适应值Yi,以及两只青蛙个体孰优孰劣的比较,借助Microsoft Visual C++计算机软件,编写冒泡法程序对第二步所述青蛙种群按照从优到劣的顺序进行排序,具体操作如下:一个青蛙种群的个体数F的青蛙种群,将第1只青蛙个体与第2只青蛙个体按第二步中所述适应值比较方法进行比较,当第1只青蛙个体优于第2只青蛙个体时,两只青蛙个体排列次序不变,否则交换两只青蛙个体的排列次序;将第2只青蛙个体与第3只青蛙个体进行比较,当第2只青蛙个体优于第3只青蛙个体时,两只青蛙个体排列次序不变,否则交换两只青蛙个体的排列次序;…将第F‑1只青蛙个体与第F只青蛙个体进行比较,当第F‑1只青蛙个体优于第F只青蛙个体时,两只青蛙个体排列次序不变,否则交换两只青蛙个体的排列次序;至此,该青蛙种群最差青蛙个体排到最后位置;按照此种方式重复操作F‑1次,就完成了该青蛙种群按适应值从优势到劣势进行降优排序;第四步,划分青蛙子种群:将第三步所述的青蛙种群分为m个青蛙子种群,具体划分方法如下:青蛙种群按照第三步的方法排序后,第1只青蛙个体分给第1青蛙子种群,第2只青蛙个体分给第2青蛙子种群,…,第m只青蛙个体分给第m青蛙子种群,第m+1只青蛙个体分给第1青蛙子种群,第m+2只青蛙个体分给第2青蛙子种群,…,第m+m只青蛙个体分给第m青蛙子种群,第2m+1只青蛙个体分给第1青蛙子种群,第2m+2只青蛙个体分给第2青蛙子种群,…,第F‑1只青蛙个体分给第m‑1青蛙子种群,第F只青蛙个体分给第m青蛙子种群;第五步,找出每个青蛙子种群中适应值最优和最差的青蛙个体的位置:根据第三步中对青蛙种群按适应值从优势到劣势进行降优排序,加之第四步的划分青蛙子种群,可知,每个青蛙子种群中第1只青蛙个体的位置和最后1只青蛙个体的位置分别为该青蛙子种群中适应值最优的青蛙个体位置Xb和适应值最差的青蛙个体位置Xw;第六步,对每个青蛙子种群中适应值最差的青蛙个体位置进行更新处理:在第五步中得到每个青蛙子种群中适应值最优和最差的青蛙个体的位置之后,借助Microsoft Visual C++计算机软件编写程序,实现每个青蛙子种群中最差青蛙个体位置的更新处理,具体步骤如下:(6.1)局部深度搜索:利用公式(1)使青蛙子种群适应值最差青蛙个体向青蛙子种群适应值最优青蛙个体方向前进一步:Xw(new)=Xw(old)+rand()×dj×(Xb‑Xw) (1)公式(1)中,Xw(old)和Xw(new)分别是搜索前青蛙子种群中适应值最差青蛙个体位置和该青蛙个体进行搜索后的位置,rand()为0到1之间的随机数,Xb为搜索前该青蛙子种群中适应值最优的青蛙位置,Xw为搜索前该青蛙子种群中适应值最差的青蛙位置,此时的移动步长为rand()×dj×(Xb‑Xw),且需要满足‑Djmax≤rand()×dj×(Xb‑Xw)≤Djmax,当Xw(new)的适应值优于Xw(old)的适应值,则确定执行局部深度搜索并跳转至第七步,否则抛弃局部深度搜索;(6.2)全局深度搜索:利用公式(2)使青蛙子种群适应值最差青蛙个体向青蛙种群适应值最优青蛙个体方向前进一步:Xw(new)=Xw(old)+rand()×dj×(Xg‑Xw) (2)公式(2)中Xg为青蛙种群适应值最优青蛙个体的位置,此时的移动步长为rand()×dj×(Xg‑Xw),且需要满足‑Djmax≤rand()×dj×(Xg‑Xw)≤Djmax,当Xw(new)的适应值优于Xw(old)的适应值,则确定执行全局深度搜索并跳转至第七步,否则抛弃全局深度搜索;(6.3)利用公式(3)对青蛙子种群中适应值最差青蛙个体进行随机移动:Xw(new)=Xw(old)+rand()×Djmax (3);第七步,计算每个青蛙子种群中被更新位置的青蛙个体的适应值,并找出此时青蛙种群全局最优适应值及其位置:根据第六步更新每个青蛙子种群中适应值最差的青蛙个体位置之后,借助Microsoft Visual C++计算机软件,编写程序重新计算每个青蛙子种群中在第六步中被更新位置的青蛙个体的适应值,并仍旧通过上述第二步所述的循环比较法确定出该青蛙种群的全局最优青蛙个体的适应值Yg及其位置Xg;第八步,实现下次迭代后青蛙种群最优适应值的预测,进而调整移动步长变异系数dj及步骤间的跳转:借助Microsoft Visual C++计算机软件,编写程序实现下次迭代后青蛙种群最优适应值的预测,进而调整移动步长变异系数dj及步骤间的跳转,具体步骤如下:(8.1)当当前混合迭代次数i<预测原始数列长度p时,则执行第九步,否则执行下一步(8.2);(8.2)当当前混合迭代次数i>移动步长调整结束标志S×最大混合迭代次数N时,则给移动步长变异系数dj赋移动步长变异系数下限值dj_small,执行第九步,否则执行下一步(8.3);(8.3)当当前混合迭代次数i≥预测原始数列长度p且当前混合迭代次数i≤移动步长调整结束标志S×最大混合迭代次数N时,编写程序实现下次迭代后的最优适应值Yg_per的预测,进而根据预测结果调整移动步长变异系数dj,具体步骤如下:(8.3.1)设置原始序列:x=(x(1),x(2),...,x(p)),其中p≥4,x(1),x(2),...,x(p)分别是最近的连续p次迭代的青蛙种群全局最优适应值;(8.3.2)级比平滑检验:利用公式(4)进行级比平滑检验: 公式(4)中,q={2,3,...,p},当级比σ(q)∈(0.1353,7.389)不成立,则给移动步长变异系数dj赋移动步长变异系数下限值dj_small,并执行第九步;(8.3.3)白化型GM(1,1)建模:①利用公式(5)进行AGO处理:x(1)(q)=x(1)(q‑1)+x(q) (5)公式(5)中,1≤q≤p,且当q=1时,x(1)(1)=x(1);②利用公式(6)进行MEAN处理:z(1)(q)=0.5×x(1)(q)+0.5×x(1)(q‑1) (6)公式(6)中,2≤q≤p;③利用公式(7)和公式(8)求得发展系数a和灰作用量b: ④利用公式(9)和公式(10)求得GM(1,1)白化响应式: 公式(9)和公式(10)中,x(1)=(x(1)(1),x(1)(2),...,x(1)(p))、z(1)=(z(1)(2),z(1)(3),...,z(1)(p))、和xper=(xper(1),xper(2),...,xper(p+1))仅为中间过渡变量,没有实际含义,其中由此完成白化型GM(1,1)建模;(8.3.4)利用公式(11)预测下一次迭代后的青蛙种群全局最优适应值Yg_per: (8.3.5)当(Yg_per‑Yg)<δ,则给移动步长变异系数dj赋移动步长变异系数上限值dj_big,否则给移动步长变异系数dj赋移动步长变异系数下限值dj_small;第九步,判断是否满足结束条件:判断是否达到最大混合迭代次数N或者满足最小允许误差Δ,若否,则重新执行第三步;若是,则结束迭代并将优化结果显示在人机界面上。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于河北工业大学,未经河北工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201610145791.6/,转载请声明来源钻瓜专利网。