基于改进遗传算法的结构可靠度计算
2012-10-16周书敬杨贝贝程芳萌郑建明
周书敬,杨贝贝,程芳萌,郑建明
(1.河北工程大学土木工程学院,河北邯郸056038;2.开滦集团有限公司钱营矿业分公司,河北唐山063301)
结构可靠度是结构可靠性的一个数值指标,是结构在规定的时间和条件下,保证结构可靠性的概率。常用的可靠度分析方法有蒙特卡罗法、一次二阶矩法(FOSM)、JC法和几何法等[1],其中蒙特卡罗法在计算时,为了得到一定的精度,需要较多的抽样次数,而大大增加计算量;后几种方法则仅限于对线性方程的、变量服从正态分布的计算进行求解,当功能函数比较复杂时,容易陷入局部极值而无法得到全局极值[2]。
美国学者Holland提出的遗传算法(Genetic Algorithm,GA)具有求解能力局限性较小、对目标函数和约束条件的要求少、全局搜索能力好等优点,但也存在易产生早熟收敛现象以及局部搜索能力较差等缺陷[3-5]。本文引入鱼群算法中具有加快寻优速度的追尾行为和克服局部极值能力较好的聚群行为对其进行改进,并以门式框架结构为例,分别采用JC法与改进遗传算法对其可靠度指标进行对比分析。
1 可靠度指标数学模型
假设结构的抗力用R来表示,作用在结构上的荷载效应用S来表示,其中R和S是相互独立的随机变量,二者的概率密度函数分别为fR(r)和fS(s),Z=R-S为结构的功能函数,则结构状态如图1 所示[6]。
X1,X2,...,Xn为随机分布的 n 个独立随机变量,结构极限状态方程为 Z=g(X1,X2,…,Xn)=0,采用拉科维茨-菲斯莱法将变量由非正态当量正态化,从而得到等效正态分布的均值 μ'xi、标准差σ'xi和可靠指标β。
其中:Φ(x)-标准正态分布的概率密度函数;Φ-1(x)-标准正态分布函数的反函数;f(x)-概率密度函数;F(x)-概率分布函数。
由可靠度指标的几何意义可知,在标准正态坐标系中,极限状态曲面上验算点是与坐标原点距离最近的点,可靠度指标β是其最小距离。鉴于最初验算点位置未知,可以将β看成点P(x1,x2,…,xn)的函数,则求解可靠度指标可以归结为求解以下约束优化模型:
由于可靠度的模型受约束条件限制,而遗传算法一般对无约束模型的优化比较简便。所以需要从变量X1,X2,…,Xn中选变异最大的变量 Xj,将其转化为 Xj=f(X1,…,Xj-1,Xj+1,…,Xn)。
因此框架结构的可靠度指标数学模型可表示为
2 算法分析
2.1 遗传算法基本操作过程
(1)编码:遗传算法的表现方式是以设置参数来选择编码方式。将设计分量分别编码,在将其合为一个二进制串,从而得到优化问题的一个可行解,这就是二进制编码。例如二进制代码串1000/1001/1100A/B/C可以表示自变量A,B,C一组取值。
河道管理范围划界确权是依法管理河道的重要基础和依据。重庆市水利局依据水法、防洪法和重庆市河道管理条例等,2012年完成了378.2km试点河段划界工作,取得了良好的社会效果。河道划界能够确定河道管理范围,保障河道不被侵占,行洪安全得到了有力保证。
(2)初始群体的生成:随机产生一定量的初始串结构数据,每个串结构数据叫做一个个体,这些个体构成了一个种群。
(3)适应度值评价检测:适应度函数可以代表解的好坏。
(4)选择:在群体中,通过选择算子的作用,可以决定进入下一代的个体。通常个体的适应度越大,则越容易被选择。
(5)交叉:在群体中,选择的两个作为父代的个体,通过交叉算子的作用,形成两个子代个体。交叉的方法是随机选取一个(或两个)点,将两个父代的二进制代码串在这个点处截断,交换两者中间(或尾部)从而产生新一代。如:a 1001 0110和b 1100 1001交叉后变为a'10011001和b'1100 0110。
(6)变异:在群体中,通过变异算子的作用,一个父代产生一个子代。对于二进制基因串就是把1变为0或把0为1如:a 110001101变异a'110101101。
(7)终止条件判断:若进化代数未达到最大值,转到步骤(2);若进化代数达到最大值,则以进化过程中所得到的具有最大适应度的个体作为最优解输出,从而计算终止。
2.2 算法改进
遗传算法经过选择、交叉和变异后产生新的个体,每个个体在进入下一代群体之前要经历一个随机进化的过程,这个过程计算量较大,算法容易局部震荡。鱼群算法具有较强的搜索能力和跳出局部极值的能力,其中追尾行为可加快寻优速度,使算法快速的向某个极值前进,避免解的局部震荡而停滞不前[7];聚群行为可以使算法跳出局部极值,从而得到其它极值,最终得到全局极值[8]。具体实现如下。
在遗传算法经过选择、交叉和变异后,首先引入追尾行为,若当前状态Z(Xj)<Z(Xi),说明Xj的附近不拥挤且有较多食物,则向Xmin的位置移动一步,否则,再重新随机选择Xj;其次引入聚群行为,若nf/N<δ(0<δ<1),说明中心有较多的食物并且不太拥挤,若此时Z(Xc)比Z(Xi)优,则向中心位置Xc前进一步,否则,人工鱼随机移动一步。如此,利用改进遗传算法不仅加快了寻优速度,而且克服了遗传算法容易陷入局部最优的缺陷,改进的遗传算法优化程序如图2。
3 算例分析
表1 框架结构的截面尺寸及分布情况Tab.1 Section size and distributions of frame structures
3.1 变量编码
采用3个9位二进制编码串表示框架结构的3 个设计变量 A1,A2,P。其中,A1的取值为 0.200~ 0.400 m2,A2的取值为 0.100 ~ 0.300 m2,P 的取值为10.00~50.00 kN,均用二进制编码串000000000~111111111对应表示。将编码串连成一个27位长的二进制编码串,构成了框架结构的染色体编码,则解空间和遗传算法的搜索空间具有一一对应关系。
3.2 变量解码
解码和编码的过程是互逆的。所以解码时,应先将二进制编码串根据编码时所表示的设计变量个数切断为若干个二进制编码串,然后将其转换为十进制代码yi,最后用解码公式算出变量X。
编码为 X=bibi-1bi-2…b2b1的个体,十进制代码为其解码公式为 X=Umin+分别表示参数的最大值和最小值。
因此,结构的设计变量 A1,A2,P(i=1,2,3,…9)的解码公式分别为
利用MATLAB根据改进遗传算法的优化程序对框架结构的可靠度进行编程,所得结果与文献9中JC算法的结果见表2。
表2 JC法与改进遗传算法计算荷载对可靠度影响的比较Tab.2 Comparison of effect from load to the reliability between JC method and improved genetic algorithm
从表2中可以得出,在同一验算点处对门式框架结构施加不同的荷载值,分别用JC法与改进遗传算法对结构可靠度指标β进行计算结果非常相近,证明了改进遗传算法对结构的可靠度分析是合理可行的。然而,JC法对结构可靠度的分析过程受多个约束条件限制,计算量较大,改进的遗传算法与JC法相比对约束条件的限制很小,能更好的处理离散、非线性等问题,计算过程相对简单,证明改进遗传算法对结构的可靠度分析是简单高效的。
4 结论
1)通过追尾行为和聚群行为对遗传算法的改进,在一定程度上防止了遗传算法的早熟收敛,提高了收敛速度。
2)改进的遗传算法在对框架结构可靠度指标分析过程中受到的约束条件较少,而计算结果与JC算法的相近,合理可行且简单高效。
[1] 桂劲松,康海贵.结构可靠度计算的最优化方法及其Matlab实现[J] .四川建筑科学研究,2004(6):18-20.
[2] 魏锦辉,董笑慧,董宝丽.遗传算法及其在结构可靠度计算中的应用[D] .郑州:郑州航空工业管理学院,2009.
[3] HOLLAND J H.Adaptation in natural and artificial systems[M] .Ann Arbor,Michigan:University of Michigan Press,1975.
[4] 曹兰,梁梁,全秀祥.遗传算法在负载均衡系统中的应用研究[J] .四川理工学院学报:自然科学版,2011,24(1):82-85.
[5] 王红霞,高瑞贞,张京军.基于不动点理论的改进遗传算法[J] .河北工程大学学报:自然科学版,2010,27(3):56-59.
[6] 徐 钦.基于遗传算法的复杂网络节点匹配问题[J] .黑龙江科技学院学报,2011,21(2):244-248.
[7] 贡金鑫,魏巍巍.工程结构可靠性设计原理[M] .北京:机械工业出版社,2007.
[8] 李晓磊.一种新型的智能优化方法-人工鱼群算法[D] .杭州:浙江大学,2003.
[9] 王闯.人工鱼群算法的分析及改进[D] .大连:大连海事大学,2008.
[10] 吴懿,林建华.遗传算法和人工神经网络在分析框架结构可靠度中的应用[D] .福建:国立华侨大学,2004.