一种新型群智能优化算法-鸽群算法制造技术

技术编号:13681859 阅读:60 留言:0更新日期:2016-09-08 12:55
本发明专利技术属于优化算法领域,提供了一种新型群智能优化算法‑鸽群算法。算法包括起飞、飞行、归巢三大过程。起飞过程包括初始化、腾空和上升三个子过程,用于初始化鸽群位置、飞行速度和最优解的方向;飞行过程包括平飞、转弯和追逐三个子过程,用于寻找局部最优解、全局最优解和改善全局最差解;归巢过程则避免算法陷入局部最优解。本发明专利技术算法具有如下特点:1)算法对目标函数的性质要求不高,可以是函数表达式,也可以是非函数形式的表示形式;2)对低维函数具有全局收敛性较强、算法循环次数少、收敛速度快的特点;3)对高维、多峰值、复杂问题具有较强的全局收敛性、较少的循环次数以及较高的稳定性。

【技术实现步骤摘要】

本专利技术属于优化算法领域,用于求解连续函数的全局数值最优解,一种新型群智能优化算法:鸽群算法。
技术介绍
函数的极值问题是数学中的重要问题之一。目前优化算法主要分为两类,一类是传统的优化算法,如牛顿法、单纯形法、共轭梯度法、区间算法、模式搜索法、分枝定界法和填充函数法等。另一类则是基于生物学、物理学和人工智能发展的群智能优化算法,如遗传算法、粒子群算法、蚁群算法、和声算法、鱼群算法和猴群算法等。传统的优化算法在处理非线性函数以及复杂、多峰值高纬度函数时,计算速度、收敛速度慢,并且容易陷入局部最优解。近些年逐渐兴起的群智能优化算法,能较好地解决组合优化问题中约束条件的限制,并不易陷入局部最优解,被广泛应用。目前,群智能优化算法已经在各个领域都发挥了很重要的作用,但群智能优化算法普遍存在早熟收敛,全局寻优能力较弱,算法循环次数较多,在高维情况下收敛速度慢,容易陷入局部最优等问题。因此,存在进一步的研究空间和价值。
技术实现思路
本专利技术原创性地提出了一种新型群智能优化算法:鸽群算法(PCA),用于求解连续函数的全局数值最优解。鸽群是一种常见的群居动物,具有强烈的归巢性,并具有敏感性高,记忆力好等特点。本专利技术对鸽群的生活行为特征进行凝练,进而提出了鸽群算法。算法包含三大过程:起飞过程、飞行过程和归巢过程。本专利技术的技术方案:一种新型群智能优化算法-鸽群算法,步骤如下:(1)起飞过程:模拟鸽群起飞的特点,包含初始化、腾空、上升三个子过程,用来均匀化初始值并寻找最优解的方向;1)初始化定义N为鸽群中鸽子数量;向量Xi=(xi1,xi2,…,xij,…,xin),i=1,2,…,N,j=1,2,…,n为鸽子i的当前位置;n为未知数个数,即维度;每只鸽子的当前位置向量xi对应优化问题的一个可行解,并具有相同的维度n;向量Yi=(yi1,yi2,…,yin)为鸽子i当前最优位置;向量Pb=(pb1,pb2,…,pbn)为鸽群当前最优位置;向量Pw=(pw1,pw2,…,pwn)为鸽群当前最差位置。步骤1:鸽群位置的初始化对于一个多维函数,变量xij有定义域[xdown,xup],由于鸽群在起飞时有先有后,因此在定义域范围内,每只鸽子的初始定义域范围按式(1)递减,这样可以使得鸽群的初始化位置更丰富,定义向量将向量λ打乱顺序获得向量λ':xij=λi'[β(xup-xdown)+xdown] (1)式中:β为[0,1]内的随机数。步骤2:鸽群敏感度初始化鸽子反应灵敏,警觉性高,易受到惊吓,每只鸽子的敏感性不同。定义αi为鸽子i的敏感系数,αi从[0,1]中随机产生。步骤3:鸽群速度初始化定义向量Vi=(vi1,vi2,…,vij,…vin)为鸽子i的飞行速度,[-Vmax,Vmax]为飞行速度的范围,vij从中随机产生,其表达式为:vij=δVmax (2)式中:δ为[-1,1]内的随机数。2)腾空鸽群在起飞时,蹬地的高度有所不同。根据这一特性,均匀化初始值,定义[down,up]为鸽群的腾空区间。步骤1:,ΔXi=(Δxi1,Δxi2,…,Δxij,…,Δxin)为鸽子i的腾空高度,ΔXi中的每一分量从腾空范围中随机产生,其表达式:Δxij=ε(up-down)+down (3)式中:ε为[0,1]内的随机数。步骤2:更新每只鸽子的当前位置Xi,其表达式Xi=Yi+αi*ΔXi (4)若Xi优于当前最优位置Yi,则将当前位置Xi赋给当前最优位置Yi,即Yi=Xi,若Xi优于鸽群当前最优位置Pb,则令Pb=Xi。注:为提高算法后期收敛的精确度和速度。腾空区间[down,up]的精度会与鸽群当前最优位置Pb分量pij的最大值相同。例如,当Pb中pij的最大值的精确度为十分之一时,腾空区间[down,up]按下式保持相同的精确度: { up n e w = u p * 0.1 down n e w = d o w n * 0.1 - - - ( 5 ) ]]>3)上升鸽群腾空后有上升过程,使鸽群朝更优的方向飞行。模拟这一特性,用伪梯度方法,寻找最优解的方向,称为上升方向f′ij(Xi)。步骤1:通过式(6),随机产生向量ΔCi=(Δci1,Δci2,…,Δcij,…,Δcin)式中:ri为上升高度。步骤2:计算鸽子i在每一维度j的上升方向f′ij(Xi),其表达式: f i j ′ ( X i ) = f ( X i + ΔC i ) - f ( X i本文档来自技高网...

【技术保护点】
一种新型群智能优化算法‐鸽群算法,其特征在于,步骤如下:(1)起飞过程:模拟鸽群起飞的特点,包含初始化、腾空和上升三个子过程,用来均匀化初始值并寻找最优解的方向;1)初始化定义N为鸽群中鸽子数量;向量Xi=(xi1,xi2,…,xij,…,xin),i=1,2,…,N,j=1,2,…,n为鸽子i的当前位置;n为未知数个数,即维度;每只鸽子的当前位置向量xi对应优化问题的一个可行解,并具有相同的维度n;向量Yi=(yi1,yi2,…,yin)为鸽子i当前最优位置;向量Pb=(pb1,pb2,…,pbn)为鸽群当前最优位置;向量Pw=(pw1,pw2,…,pwn)为鸽群当前最差位置;步骤1:鸽群位置的初始化对于一个多维函数,变量xij有定义域[xdown,xup],由于鸽群在起飞时有先有后,因此在定义域范围内,每只鸽子的初始定义域范围按式(1)递减,使得鸽群的初始化位置丰富,定义向量将向量λ打乱顺序获得向量λ':xij=λi′[β(xup-xdown)+xdown]---(1)]]>式中:β为[0,1]内的随机数;步骤2:鸽群敏感度初始化鸽子反应灵敏,警觉性高,易受到惊吓,每只鸽子的敏感性不同;定义αi为鸽子i的敏感系数,αi从[0,1]中随机产生;步骤3:鸽群速度初始化定义向量Vi=(vi1,vi2,…,vij,…vin)为鸽子i的飞行速度,[‑Vmax,Vmax]为飞行速度的范围,vij从中随机产生,其表达式为:vij=δVmax                    (2)式中:δ为[‑1,1]内的随机数;2)腾空鸽群在起飞时,蹬地的高度有所不同;根据这一特性,均匀化初始值,定义[down,up]为鸽群的腾空区间;步骤1:ΔXi=(Δxi1,Δxi2,…,Δxij,…,Δxin)为鸽子i的腾空高度,ΔXi中的每一分量从腾空范围中随机产生,其表达式:Δxij=ε(up‑down)+down              (3)式中:ε为[0,1]内的随机数;步骤2:更新每只鸽子的当前位置Xi,其表达式Xi=Yi+αi*ΔXi                 (4)若Xi优于当前最优位置Yi,则将当前位置Xi赋给当前最优位置Yi,即Yi=Xi,若Xi优于鸽群当前最优位置Pb,则令Pb=Xi;腾空区间[down,up]的精度与鸽群当前最优位置Pb分量pij的最大值相同;当Pb中pij的最大值的精确度为十分之一时,腾空区间[down,up]按下式保持相同的精确度:upnew=up*0.1downnew=down*0.1---(5)]]>3)上升鸽群腾空后有上升过程,使鸽群朝更优的方向飞行;用伪梯度方法模拟,寻找最优解的方向,称为上升方向f′ij(Xi);步骤1:通过式(6),随机产生向量ΔCi=(Δci1,Δci2,…,Δcij,…,Δcin)式中:ri为上升高度;步骤2:计算鸽子i在每一维度j的上升方向f′ij(Xi),其表达式:fij′(Xi)=f(Xi+ΔCi)-f(Xi-ΔCi)2Δcij,i=1,2,...,N,j=1,2,...,n;---(7)]]>步骤3:更新每只鸽子的当前位置Xi,其表达式:xij=yij+ri*sign(f′ij(Xi))               (8)式中:sign(x)为符号函数,当x>0时sign(x)=1;当x=0时sign(x)=0;当x<0时sign(x)=‑1;若Xi优于当前最优位置Yi,则令Yi=Xi,若Xi优于鸽群当前最优位置Pb,则令Pb=Xi;步骤4:再循环一次步骤1至步骤3;为了避免随机向量ΔCi有较大的偏差对f′ij(Xi)准确度产生影响,重复操作;当腾空范围[down,up]的取值变化时,上升高度ri比腾空范围的精确度多一位;(2)飞行过程:模拟鸽群飞行的特点,包含平飞、转弯和追逐三个子过程;平飞用于局部寻优,转弯用于全局寻优,追逐用于改善全局最差解;当鸽群升空后,进入飞行阶段,鸽子在平缓飞行时,方向是听从邻居的,鸽子在急转弯时,方向是听从领导的;利用这一特点,令鸽群在平飞时寻找局部最优,转弯时寻找全局最优;1)平飞定义鸽子i的邻居范围为M,即鸽子周围的M只鸽子作为自身的邻居;Avei为邻居鸽群的平均位置;平飞次数为F1;步骤1:计算鸽子i的平均位置Avei,其表达式:式中,M是一个非常重要的参数,它影响局部最优值的寻优;当M的取值过大时,Avei的值会趋近于全局最优,影响算法的收敛速度;当M的取值过小时,算法容易早熟收敛,影响算法的精度;在该公式中是向下取整函数;步骤2:计算鸽子i的飞行速度Vi;Vi=w*Vi+c1*(Avei‑Xi)            ...

【技术特征摘要】
1.一种新型群智能优化算法‐鸽群算法,其特征在于,步骤如下:(1)起飞过程:模拟鸽群起飞的特点,包含初始化、腾空和上升三个子过程,用来均匀化初始值并寻找最优解的方向;1)初始化定义N为鸽群中鸽子数量;向量Xi=(xi1,xi2,…,xij,…,xin),i=1,2,…,N,j=1,2,…,n为鸽子i的当前位置;n为未知数个数,即维度;每只鸽子的当前位置向量xi对应优化问题的一个可行解,并具有相同的维度n;向量Yi=(yi1,yi2,…,yin)为鸽子i当前最优位置;向量Pb=(pb1,pb2,…,pbn)为鸽群当前最优位置;向量Pw=(pw1,pw2,…,pwn)为鸽群当前最差位置;步骤1:鸽群位置的初始化对于一个多维函数,变量xij有定义域[xdown,xup],由于鸽群在起飞时有先有后,因此在定义域范围内,每只鸽子的初始定义域范围按式(1)递减,使得鸽群的初始化位置丰富,定义向量将向量λ打乱顺序获得向量λ': x i j = λ i ′ [ β ( x u p - x d o w n ) + x d o w n ] - - - ( 1 ) ]]>式中:β为[0,1]内的随机数;步骤2:鸽群敏感度初始化鸽子反应灵敏,警觉性高,易受到惊吓,每只鸽子的敏感性不同;定义αi为鸽子i的敏感系数,αi从[0,1]中随机产生;步骤3:鸽群速度初始化定义向量Vi=(vi1,vi2,…,vij,…vin)为鸽子i的飞行速度,[-Vmax,Vmax]为飞行速度的范围,vij从中随机产生,其表达式为:vij=δVmax (2)式中:δ为[-1,1]内的随机数;2)腾空鸽群在起飞时,蹬地的高度有所不同;根据这一特性,均匀化初始值,定义[down,up]为鸽群的腾空区间;步骤1:ΔXi=(Δxi1,Δxi2,…,Δxij,…,Δxin)为鸽子i的腾空高度,ΔXi中的每一分量从腾空范围中随机产生,其表达式:Δxij=ε(up-down)+down (3)式中:ε为[0,1]内的随机数;步骤2:更新每只鸽子的当前位置Xi,其表达式Xi=Yi+αi*ΔXi (4)若Xi优于当前最优位置Yi,则将当前位置Xi赋给当前最优位置Yi,即Yi=Xi,若Xi优于鸽群当前最优位置Pb,则令Pb=Xi;腾空区间[down,up]的精度与鸽群当前最优位置Pb分量pij的最大值相同;当Pb中pij的最大值的精确度为十分之一时,腾空区间[down,up]按下式保持相同的精确度: up n e w = u p * 0.1 down n e w = d o w n * 0.1 - - - ( 5 ) ]]>3)上升鸽群腾空后有上升过程,使鸽群朝更优的方向飞行;用伪梯度方法模拟,寻找最优解的方向,称为上升方向f′ij(Xi);步骤1:通过式(6),随机产生向量ΔCi=(Δci1,Δci2,…,Δcij,…,Δcin)式中:ri为上升高度;步骤2:计算鸽子i在每一维度j的上升方向f′ij(Xi),其表达式: f i j ′ ( X i ) = f ( X i + ΔC i ) - f ( X i - ΔC i ) ...

【专利技术属性】
技术研发人员:伊廷华温凯方李宏男
申请(专利权)人:大连理工大学
类型:发明
国别省市:辽宁;21

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

1