代齐齐
(安徽水利水电职业技术学院,安徽 合肥 231603)
遗传算法是由美国Michigan大学的J.Holland教授于1975年首先提出的是一种通过模拟自然进化过程搜索最优解的方法[1]挡土墙的墙顶宽、墙面坡比、墙背坡比和基底坡度4个设计指标作为变量,以截面面积最小为目标,在满足《公路设计手册·路基》[2]相关要求的基础上,利用VB语言编写遗传算法程序,对重力式挡土墙进行优化设计。
浮点遗传算法的基本做法如下:
(1)编码方法。浮点数编码是指用某一范围内的一个浮点数来表示每个基因值,个体的编码长度等于其决策变量的个数[3]。本文中采用浮点数编码。
(2)适应度函数。适应度函数一般有直接构造法、界限构造法和分式界限构造法3种构造方法。本文中采用直接构造法,由于目标函数是面积最小问题,但其不满足比例选择中概率非负的要求。考虑到挡土墙截面面积一般不会大于1000m2,因此可采用式(1)
F(f(x))=1000-f(x)
(1)
(3)选择策略。采用优胜劣汰机制作为选择策略的基本思想,适应度的大小与存活概率成正比。本文中采用比例选择法。
(4)重组策略。基因重组是结合来自父代交配种群中的信息产生新的个体。浮点数编码有线性重组、中间重组和离散重组3种形式。本文中采用中间重组。中间重组不适用于二进制变量,仅适用于实变量。
(5)变异策略。变异是一种局部随机搜索,该策略使得遗传算法保持种群的多样性,防止非成熟收敛的出现。本文中变异率的取值范围为0.0001~0.1。
(6)终止准则。遗传算法的终止准则主要有:① 算法已找到能接受的优秀个体;② 进化代数已进化到了预定的最大代数,一般取为100~1000;③ 在预定的代数内最适应个体的适应度无法改进。本文中选取② 作为遗传算法终止准则,在程序设计中最大代数取为100。
重力式挡土墙的设计是非常复杂的,该系统的设计本着简单实用的原则,针对广大从事地质灾害防治以及施工人员而设计,只需输入基本的设计参数,就可以得到所需的截面形式。
(1)一般设计子系统。一般设计子系统包括挡土墙土压力计算程序、自重计算程序及对设定的截面尺寸的稳定性验算程序。土压力计算程序以库伦土压力理论为依托,先假定挡土墙破裂面的位置,验算其是否符合条件,不符合时,系统会自动调整为正确的破裂面位置。自重计算程序必须给定截面尺寸和挡土墙容重,和土压力计算程序是相互独立的。稳定性验算程序是在土压力计算和自重计算的基础上,依据《路基路面工程》[4]第六章挡土墙设计的稳定性验算部分,对设计的横断面进行抗滑稳定性、抗倾覆稳定性、基底应力及合力偏心距、墙身截面强度4方面进行验算,如有一方面不符合稳定性的要求,就必须修改挡土墙截面尺寸,直到满足稳定性的要求为止。
(2)优化设计子系统。优化设计子系统是在一般设计的基础上进行,包括对挡土墙截面积的优化程序,优化过程中最优横截面在图片框中的动态显示程序和设计数据导入数据库程序。挡土墙截面积优化程序也就是用VB语言将浮点遗传算法表示出来的程序。其有初始种群的产生、选择操作、重组操作、变异操作4步。其中每步都要调用一般设计子系统的程序,如初始种群的产生就需要调用一般设计子程序以产生给定范围内的可行解。最优横截面动态显示程序是在每次优化产生最优解后,调用绘图程序将最优横断面在图片框中绘出。设计数据导入数据库程序是将一般设计和优化设计中得到的数据都导入到Access数据库。
以某工程重力式路堑挡土墙为例。墙高H=4m,墙身容重γG=22kN/m3,墙后填土容重γ=18kN/m3,墙后填土的内摩擦角φ=25°,墙后填土表面的倾斜角β=20°,土对墙背的外摩擦角δ=20°。图1为重力式路堑挡土墙一般设计结果图,图2为重力式路堑挡土墙优化设计结果图。从图中可以看出一般设计和优化设计的重力式路堑挡土墙截面面积分别为18.12m2和12.34m2,优化率为31.9%。
图1 重力式路堑挡土墙一般设计结果
图2 重力式路堑挡土墙优化设计结果
根据浮点遗传算法的原理,用 VB6.0 实现浮点遗传算法的程序,可以对挡土墙截面进行优化设计。算例结果表明,浮点遗传算法对于重力式挡土墙的优化设计是有效可行的。