当前位置: 首页 > 专利查询>北工业大学专利>正文

一种改进标准混合蛙跳算法的方法技术

技术编号:13375802 阅读:134 留言:0更新日期:2016-07-20 23:09
本发明专利技术一种改进标准混合蛙跳算法的方法,步骤是:参数初始化;计算每只青蛙个体的适应值,找出该青蛙种群的全局最优青蛙个体的适应值及其位置;对青蛙种群降优排序;划分青蛙子种群;找出每个青蛙子种群最优与最差青蛙个体位置;对每个青蛙子种群的最差青蛙个体的位置进行更新操作;计算每个青蛙子种群中被更新位置的青蛙个体的适应值,并找出此时青蛙种群全局最优适应值及其位置;实现下次迭代后青蛙种群最优适应值的预测,进而调整移动步长变异系数dj及步骤间的跳转;判断是否满足结束条件。本发明专利技术方法克服了标准混合蛙跳算法存在的进化后期收敛速度严重减慢、收敛精度不足和易陷入局部最优的缺陷。

【技术实现步骤摘要】

本专利技术的技术方案涉及计算机辅助设计的数据处理方法,具体地说是一种改进标准混合蛙跳算法的方法
技术介绍
很多
中的许多数据处理问题都需要建立模型来解决,最后都将转化为函数优化问题。所以函数优化应用越来越普遍、越来越重要。2003年Eusuff等结合模因算法和粒子群优化算法提出了一种全新的函数优化算法——混合蛙跳算法,该算法具有算法结构简单、对初始值要求不高、收敛速度快、设置参数个数较少、鲁棒性强和实现简单且执行效率较高,特别是其混合机制对跳出局部最优及保证算法收敛于全局最优有非常大的帮助,该算法已在计算机领域和许多工程领域的数据处理中得到广泛的应用。然而上述现有的混合蛙跳算法仍存在一些缺陷:进化后期收敛速度严重减慢、收敛精度不足和易陷入局部最优。当前有许多研究对其性能进行改进:引入变异算子对种群个体进行变异操作,增大个体的搜索空间;将其与人工鱼群算法联合使用,提高其收敛速度;采用模糊控制技术对其参数进行动态调整,提高其收敛精度和收敛速度。以上改进研究在一定程度上提高了混合蛙跳算法的整体性能,但在算法精度、效率和保证收敛于全局最优方面仍未得到很好地解决,需要进一步的改进与完善。
技术实现思路
本专利技术所要解决的技术问题是:提供一种改进标准混合蛙跳算法的方法,是将标准混合蛙跳算法中的种群混合机制与子种群内部迭代机制进行了合并处理,并动态调整移动步长,借助于MicrosoftVisualC++计算机软件实现改进后的算法,克服了现有技术中标准混合蛙跳算法存在的进化后期收敛速度严重减慢、收敛精度不足和易陷入局部最优的缺陷。本专利技术解决该技术问题所采用的技术方案是:一种改进标准混合蛙跳算法的方法,是将标准混合蛙跳算法中的种群混合机制与子种群内部迭代机制进行了合并处理,并动态调整移动步长,借助于MicrosoftVisualC++计算机软件实现改进后的算法,具体步骤如下:第一步,确定需要初始化的参数及其初值:参照标准混合蛙跳算法的参数初始化情况,确定改进后混合蛙跳算法需要初始化的参数,包括:青蛙种群的个体数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和最小允许误差Δ,这些参数的初值由用户从求解问题的类型、复杂程度和期望求解精度方面综合考虑进而确定其初值;第二步,计算每只青蛙个体的适应值,找出该青蛙种群的全局最优青蛙个体的适应值及其位置:借助MicrosoftVisualC++计算机软件编写人机界面,设置参数适应值Yg和位置Xg用于记录该青蛙种群的全局最优青蛙个体的适应值及其位置,将第一步中设置的参数及其初值输入人机界面中,根据青蛙种群的适应值函数,编写程序计算该青蛙种群中每只青蛙个体所在位置Xi的适应值Yi,并通过循环比较法确定出该青蛙种群的全局最优青蛙个体的适应值及其位置并分别赋给适应值Yg和位置Xg,具体操作如下:当求解极大值问题时,适应值Yi较大的青蛙个体属于优势青蛙个体,适应值Yi较小的青蛙个体属于劣势或称差势青蛙个体;当求解极小值问题时,适应值Yi较小的青蛙个体属于优势青蛙个体,适应值Yi较大的青蛙个体属于劣势或称差势青蛙个体;首先将第1只青蛙个体的适应值Y1及其位置X1暂时作为青蛙种群全局最优青蛙个体的适应值及其位置分别赋给适应值Yg和位置Xg,之后将该青蛙种群全局最优青蛙个体的适应值Yg轮流与其他青蛙个体的适应值Yi进行比较,将每次比较后较优的适应值及其位置重新作为全局最优青蛙个体的适应值及其位置赋给适应值Yg和位置Xg,轮流比较结束之后的适应值Yg和位置Xg即为该青蛙种群的全局最优青蛙个体的适应值及其位置;第三步,对青蛙种群按适应值从优势到劣势进行降优排序:根据第二步中得到的每只青蛙个体的适应值Yi,以及两只青蛙个体孰优孰劣的比较,借助MicrosoftVisualC++计算机软件,编写冒泡法程序对第二步所述青蛙种群按照从优到劣的顺序进行排序,具体操作如下:一个青蛙种群的个体数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++计算机软件实现改进后的算法,具体步骤如下:第一步,确定需要初始化的参数及其初值:参照标准混合蛙跳算法的参数初始化情况,确定改进后混合蛙跳算法需要初始化的参数,包括:青蛙种群的个体数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;第...

【技术特征摘要】
1.一种改进标准混合蛙跳算法的方法,其特征在于:是将标准混合蛙跳算法中的种群
混合机制与子种群内部迭代机制进行了合并处理,并动态调整移动步长,借助于
MicrosoftVisualC++计算机软件实现改进后的算法,具体步骤如下:
第一步,确定需要初始化的参数及其初值:
参照标准混合蛙跳算法的参数初始化情况,确定改进后混合蛙跳算法需要初始化的参
数,包括:青蛙种群的个体数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和最小允许误差Δ,这些参数的初值由用户从求解问题的类型、复杂
程度和期望求解精度方面综合考虑进而确定其初值;
第二步,计算每只青蛙个体的适应值,找出该青蛙种群的全局最优青蛙个体的适应值
及其位置:
借助MicrosoftVisualC++计算机软件编写人机界面,设置参数适应值Yg和位置Xg用
于记录该青蛙种群的全局最优青蛙个体的适应值及其位置,将第一步中设置的参数及其初
值输入人机界面中,根据青蛙种群的适应值函数,编写程序计算该青蛙种群中每只青蛙个
体所在位置Xi的适应值Yi,并通过循环比较法确定出该青蛙种群的全局最优青蛙个体的适
应值及其位置并分别赋给适应值Yg和位置Xg,具体操作如下:
当求解极大值问题时,适应值Yi较大的青蛙个体属于优势青蛙个体,适应值Yi较小的
青蛙个体属于劣势或称差势青蛙个体;当求解极小值问题时,适应值Yi较小的青蛙个体属
于优势青蛙个体,适应值Yi较大的青蛙个体属于劣势或称差势青蛙个体;
首先将第1只青蛙个体的适应值Y1及其位置X1暂时作为青蛙种群全局最优青蛙个体
的适应值及其位置分别赋给适应值Yg和位置Xg,之后将该青蛙种群全局最优青蛙个体的
适应值Yg轮流与其他青蛙个体的适应值Yi进行比较,将每次比较后较优的适应值及其位置
重新作为全局最优青蛙个体的适应值及其位置赋给适应值Yg和位置Xg,轮流比较结束之
后的适应值Yg和位置Xg即为该青蛙种群的全局最优青蛙个体的适应值及其位置;
第三步,对青蛙种群按适应值从优势到劣势进行降优排序:
根据第二步中得到的每只青蛙个体的适应值Yi,以及两只青蛙个体孰优孰劣的比较,
借助MicrosoftVisualC++计算机软件,编写冒泡法程序对第二步所述青蛙种群按照从
优到劣的顺序进行排序,具体操作如下:
一个青蛙种群的个体数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青蛙子种群;
第五步,找...

【专利技术属性】
技术研发人员:杜江袁中华
申请(专利权)人:北工业大学
类型:发明
国别省市:天津;12

相关技术
    暂无相关专利
网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1