随着计算机技术和计算流体力学(CFD)的快速发展,采用数值优化方法进行飞行器的气动设计,可以大大提高优化设计效率并减少设计成本。近年来粒子群算法引起了进化计算领域学者们的广泛关注,短短几年便获得快速发展,在诸多领域得到应用,形成学术界一个新的研究热点,研究成果不断涌现。然而粒子群算法在寻优过程中也存在全局最优和局部最优的矛盾[1],比较容易过早收敛而陷入局部最优。
为了解决全局最优与局部最优的矛盾,本文对自然界中大部分寄生生物进行了探讨与分析,在此指导下,将模拟寄生(simulated parasitism)模型引入到基本粒子群优化算法中来,提出了一种基于寄生模型的粒子群算法,使得改进的算法具有良好的全局/局部搜索平衡能力,有效地提高了算法的寻优性能。将该算法应用到翼型的气动优化设计中,取得了良好的结果。
1 粒子群算法基本粒子群优化算法(particle swarm optimization,PSO)是由美国的社会心理学家Kennedy和电气工程师Eberhart于1995年提出的[2]。它模拟了鸟群的飞行觅食行为,将解空间中的设计变量看成一群没有体积和质量的“鸟”(也称为“粒子”),将所求问题的最优解看成鸟群寻找的“食物”,所有粒子通过不断改变飞行方向和距离,并以个体极值Pbest和群体极值Gbest来引导自己调整飞行状态,更新速度和位置,从而趋向问题的最优解。其中粒子可根据如下两个公式来更新。
式中,x代表粒子当前的位置,v代表粒子的速度;ω为惯性权重因子,是影响算法性能的一个重要参数,其大小决定了粒子对当前速度继承的多少;学习因子c1,c2用来调节粒子飞向Pbest和Gbest的步长;r1和r2是产生于(0,1)之间的随机数[3]。与一般的算法相比,PSO算法流程简单易实现,且无复杂的参数调整,目前广泛地应用于各种设计领域。其缺点是该算法在进化后期,种群多样性消失,容易出现早熟停滞,从而陷入局部最优。
2 寄生模型自然界中的大部分寄生生物[4]需要获取宿主体内的养分才能生存,并在合适的部位产下后代,越是营养丰富的部位越能吸引寄生生物产生下一代。在宿主体内发育的下一代个体只有能获得足够养分的个体才能发育为成熟个体,而其他个体则被淘汰掉,这里本文假设被淘汰掉的个体将由发育成熟的个体所吞噬,这也符合自然界中优胜劣汰的自然生存法则。这样经过N代的繁衍以后宿主内的寄生生物体就应该聚集在最易得到养分的几个区域内。
将寄生模式的概念应用在最优化问题中,则寄生模式以整个寻优空间为宿主,寄生生物群在整个寻优空间寻找最优解,最终寻优成功时,寄生生物群落应该聚集在最优解周围。寄生模型有良好的全局/局部寻优的平衡性能,本文将寄生生物的运动、繁衍抽象为一种模型需要作出一下几个假设:
1)将最优化问题的寻优解空间假设为宿主,寻优过程中适应值的大小即为养分的多少。
2)假设宿主内能容纳的幼体个数不限制,成熟个体数将有一个最大值。
3)每个个体产生下一代个体后将会死亡。
2.1 模拟寄生算法寄生模型中寄生生物在宿主体内繁衍、群聚的过程抽象出来,推演出一种全新的寻优算法——模拟寄生算法(simulated parasitic,SP)。这个抽象过程建立在寄生模型的3个假设的基础上。假设在某一的寻优空间下有一个寄生生物,它可以在空间任意位置产生后代,由于不能预先知道空间内的养分分布情况,所以本文将采用设计速度快、分布均匀的拉丁超立方抽样的方法来随机产生后代的位置。
设第一代产生N个后代。计算第一代N个个体的适应值,取得全局最优值,然后将由最优势的M个幼体将其他个体吞噬掉。然后这M个幼体将会发育成成熟个体,并随后产生下一代个体。每一个成熟个体产生的幼体数量将由它和全局最优值的关系决定,如果优于全局最优值,适应值之差越大幼体数目越多,并且幼体分布范围越小(以成熟个体为中心随机分布),反之幼体分布范围越大[5]。产生后代的数量公式如下:
其中参数k为繁殖系数,N0为繁殖基准,这2个参数决定繁殖后代的数目。
拉丁超立方抽样的范围由下面的公式给出:
q为拥挤度因子,该参数不是一个确定值,将由当前迭代次数t来决定,并依据实际寻优问题进行调整。寻优前期应给q一个较大的值,随着寻优过程逐步收敛,q将以指数形式递增。
本文中q的递增形式如下:
如果成熟个体适应值不优于全局最优值,其后代将根据全局最优解、该个体适应值的关系分布于全局最优解周围、该个体周围,其分布范围仍采用类似上述公式的方法来确定。还有一部分将分布在整个设计空间内,这部分将通过拉丁超立方抽样产生。
然后计算每一代产生的幼体的适应值,适应值最小的那些幼体将被淘汰掉,最后存活下来的M个幼体将发育为成熟个体 ,继续产生下一代。
2.2 算法流程由以上的论述总结出基于寄生模型的模拟寄生算法(SP)的模拟寄生算法的流程图 1所示:
主要流程如下:
1) 产生初始群落N个个体;
2) 更新全局最优值Gbest;
3) 确定最优势M个个体对应的适应值为Pbest;
4) 判断这些个体与全局最优的关系,若不比全局最优差,则产生N个下一代(拉丁超立方抽样),其分布范围由适应值之差和该个体位置决定;
5) 若比全局最优差,则后代以拉丁超立方抽样分别分布于全局最优解周围、该个体周围、及整个空间;
6) 判断是否满足停止条件,是则停止优化 否则转至步骤2)。
3 基于寄生模型的粒子群算法粒子群算法具有收敛速度快、算法简单易实现等特点,但它很难克服算法易于早熟而陷入局部最优解的问题[6],而寄生模式有很好的跳出局部最优解的能力,因此本文考虑将寄生模式加入到粒子群算法中,以期能达到2种寻优模型相互耦合从而找到全局最优解的目的。
粒子群算法与寄生模型结合改进的寻优算法——基于寄生模型的粒子群算法(SPPSO),具体改进思路如下:在寄生模型算法流程的第四步,成熟个体优于全局最优解产生后代的过程中引入粒子群算法进行一次快速的寻优,以帮助算法找到更合适的寻优方向。这里粒子群算法的迭代代数设置的较小,因为这里的搜索范围是本文认为的一个局部最优域,设置较小的代数即可达到确定局部最优解域,确定寻优方向的目的。SPPSO算法的流程图如下:
4 函数测试为验证SP算法和SPPSO算法是否具有良好的寻优能力,分别用这2种算法进行函数测试,并与PSO算法进行对比。这里选用的测试函数是一维测试函数Sphere函数和二维测试函数LevyNo.5函数、Ackley函数。
1) Sphere函数:
搜索范围:-100≤xi≤100
全局最小值:min(f1)=f1(0,…,0)=0
该函数又称DeJong函数,是一个非线性的对称单峰函数。
2) Ackley函数:
搜索范围:50≤xi≤50
全局最小值为:min(f2)=f2(0,…,0)=0
该函数是一个连续、旋转、不可分离的多峰函数,存在大量的局部最优点。
3) LevyNo.5函数:
搜索范围:-10≤xi≤10
全局最小值为:
该函数具有760个局部极值点,使得各种优化算法很难搜索到全局最优解。
下面用SP算法和SPPSO算法分别对这3个函数进行优化测试,并将优化结果与PSO算法进行对比。为了保证计算量基本保持一致,将3种算法参数设置如下:
PSO算法的参数选择为种群规模200,迭代进化代数为50。
SP算法的参数选择初始群落N=60,设计空间内成熟个体的数目为5,每个成熟个体产生的后代个数为N0=60,迭代优化代数为50。
SPPSO算法参数设置为初始种群N=60,每一代设计空间内成熟个体数目为M=5,每个成熟个体产生的后代个数 ,算法模块中采用的基本粒子群算法设置迭代次数为10。
经过函数测试,得到以下测试结果:
进行20次优化计算绘制出适应值的收敛曲线如下:
从图 6至图 8的函数优化收敛曲线可以看出,利用寄生模型对目标函数进行优化虽然可以达到优化的目的,并且大多数时候收敛速度很快(从图中可以看出大部分收敛曲线在迭代的第10代左右就已经收敛),但是直接使用SP进行优化时,算法稳定性不够,尤其是目标函数为局部极值点多的二维函数时,有时甚至会陷入局部最优解无法跳出。从图 9至图 11的SPPSO算法的函数测试寻优收敛曲线可以看出SPPSO算法相对于SP算法其寻优的稳定性有了很大的提高,从收敛曲线可以看出SPPSO算法在迭代10次以前大多可以收敛。
为测试3种算法在优化问题中的性能本文分别对以上3个测试函数做100次函数测试并对测试结果进行比较。结果如表 1所示:
函数 | 算法 | |||
PSO | SP | SPPSO | ||
Sphere | 平均值 | 2.53×10-10 | 1.23×10-12 | 2.85×10-14 |
Ackley | 7.21×10 -5 | 6.78×10 -8 | 1.64×10 -8 | |
Levy5 | -175.059 42 | -175.588 75 | -176.137 46 | |
Sphere | 最小值 | 7.56×10 -12 | 1.12×10 -13 | 1.70×10 -16 |
Ackley | 5.36×10 -6 | 2.59×10 -7 | 3.72×10 -9 | |
Levy5 | -176.137 55 | -176.137 57 | -176.137 57 |
从表 1的优化结果看,虽然SP算法在寻优过程中稳定性上不如PSO算法,但SP算法的寻找全局最优的能力是优于PSO算法的。不论是单峰函数还是复杂的多峰值函数SP算法在100次优化中的平均值和找到的最小值都优于PSO算法。SPPSO算法很好收敛在全局最优解附近。
函数测试证明基于寄生模型的SP算法切实有效,能达到全局寻优的目的,且寻优性能较好,说明本文提出的模拟寄生算法在寻优问题中与其他优化算法比较确实有其优势。是一种值得继续深入研究的算法。函数测试表明基于SPPSO算法有较强的寻优能力。
从函数测试结果可以看出SP算法以及SPPSO算法在寻优性能上比基本粒子群算法有了较大提高,证明该算法在优化过程中寻找全局最优解的能力是较强的。
下面我们将SP算法、SPPSO算法应用到翼型气动优化设计中,以检验其在气动优化设计中的优化搜索能力。
5 翼型优化设计优化设计模型包括3个基本要素:目标函数,约束条件和设计变量。对于翼型气动优化设计而言,一般确定了设计点后可选取表示升阻特性或力矩特性的气动系数作为目标函数,对翼型厚度和面积等进行限制作为约束,将翼型的几何形状作为设计变量[7]。下面将分别使用SP算法和SPPSO算法对RAE2822翼型进行优化并与PSO算法的优化结果进行对比。
设计状态为:
Ma=0.73 α=3.19° Re=6.5×106
对RAE2822进行单点减阻优化设计。优化目标为最小化翼型阻力系数,约束条件为翼型的面积和最大厚度不减小,翼型的力矩系数基本不减小且保持升力系数基本保持不变。在该算例中,翼型几何参数化采用改进的Hicks-Henne参数化方法,选取14个设计变量来确定翼型,其中7个设计变量表示翼型厚度分布,另外7个设计变量表示翼型弯度分布。气动特性的分析计算采用N-S雷诺平均方程计算绕翼型流场,湍流模型为k-ω SST,网格采用非结构网格。
同样地,为了保证3种优化算法的计算量基本一致,各算法的参数设置如下:
PSO算法中种群规模为200,迭代计算30代。
SP算法中参数N(每个成熟个体产生的后代的个数)分别为60,迭代计算15代。
SPPSO算法中参数N(每个成熟个体产生的后代的个数)为60,迭代计算10代,每一次使用PSO算法时迭代代数为10。
将优化设计的结果与基本粒子群算法(PSO)进行对比,得到结果如下:
从图中可以看出,与原始翼型相比3种算法PSO、SP、SPPSO算法都能够起到优化作用。从翼型几何形状上看,翼型的上表面顶点和最大厚度位置后移;从气动上看,3种算法都能够使前缘吸力峰值增大,并显著减弱了激波,而SPPSO及SP算法得到的翼型表面压力系数分布都略好于PSO算法。其中SPPSO算法在翼型表面压力系数分布上的过度最为平滑。
参数 | RAE2822 | PSO | SP | SPPSO |
C l | 0.744 | 0.753 | 0.761 | 0.741 |
C d | 0.021 54 | 0.018 38 | 0.017 09 | 0.016 19 |
C m | -0.074 | -0.075 | -0.074 | -0.074 |
升阻比 | 34.540 | 40.968 | 44.529 | 45.769 |
翼型面积 | 0.077 87 | 0.080 0 | 0.080 1 | 0.080 1 |
从上面的优化结果对比上可以看出,SP算法及SPPSO算法在翼型优化中的性能表现与基本粒子群算法想比较有了较大提高。SP算法优化得到的气动参数表现上,阻力系数降低了20.65%,升阻比提高了28.92%,而SPPSO算法优化后的翼型阻力系数降低了24.84%,升阻比提高了32.51%,均比PSO算法的14.67%和18.61%高,证明了SP算法和SPPSO算法在气动优化设计中有着较好的寻优能力。
6 结 论本文提出的寄生模型具有以下优点:
1)有较好的跳出局部最优的机制,当算法陷入局部最优时,成熟个体不优于全局最优值,其后代将随机分布于整个空间,有较强的跳出局部最优的能力。
2)收敛速度快,能够更快找到全局最优点。
3)算法灵活,最大成熟个体数量和每个成熟个体能产生的幼体数量的设置使多种群智能优化算法都可以与寄生模型相结合。
本文中讨论的与粒子群算法的结合使用,利用了寄生模型良好的跳出局部最优的性能,以及粒子群算法简便快速的特点,使得整体算法不仅能够快速收敛,而且计算结果也比较理想。从函数测试和翼型优化设计中证明了我们的算法改进策略是切实有效的。同时也说明,寄生模型能够在付出较小计算代价的情况下得到良好的优化结果。
寄生模型也具有较好的通用性,为改进各种智能优化算法提供了一种普适的模型。在最优化问题中可以与其他算法进行有机结合,从而有可能为算法提供更好的智能驱动力,提升算法的寻优性能。
[1] | 李丁,夏露. 智能优化算法及其在气动优化设计中的应用研究[D]. 西安:西北工业大学,2011 Li D, Xia L. Aerodynamic Optimization Design Based on Intelligent Algorithms[D]. Xi′an: Northwestern Polytechnical University, 2011 (in Chinese) |
[2] | Kennedy J, Eberhart R C. Particle Swarm Optimization[C]//Proceedings of the 1995 IEEE International Conference on Neural Networks Perth, WA, Australia, 1995: 1942-1948 |
Click to display the text | |
[3] | 胡建秀,曾建潮.微粒群算法中惯性权重的调整策略[J]. 计算机工程,2007,33(11):193-195 Hu Jianxiu, Zeng Jianchao. Selection on Inertia Weight of Paticle Swarm Optimazation[J]. Computer Enginnering, 2007,33(11):193-195 (in Chinese) |
Cited By in Cnki (89) | |
[4] | 罗卫东. 寄生生物在统治世界?[J]. 大自然探索,2001,20(7): 10-12 Luo Weidong. Parasites in Rule the World?[J]. Discovery of Nature,2001,20(7): 10-12 (in Chinese) |
Cited By in Cnki (1) | |
[5] | 孙腾腾,夏露. 基于代理模型的群智能算法在气动优化设计中的应用[D]. 西安:西北工业大学,2014 Sun Tengteng, Xia Lu. Swarm Intelligence Algorithms Based on Surrogate Model for Aerodynamic Optimization Design[D]. Xi′an: Northwestern Polytechnical University, 2014 (in Chinese) |
[6] | Boyd R, Recharson P. Culture and the Evolutionary Process[M]. Chicago: University of Chicago Press, 1985 |
[7] | Ray T. Swarm Algorithm for Single-and Mutiobjective Airfoil Design Optimization[J]. AIAA Journal, 2004,42(2):366-373 |
Click to display the text |