第1章 绪 论
1.1 工程结构优化设计
结构优化是根据既定的结构体系、荷载工况、材料和规范所规定的各种约束条件(如构件强度、刚度、稳定性和尺寸等),构建出相应的结构优化设计的数学模型(设计变量、目标函数和约束条件等),采用合适的优化方法求解优化问题,其过程为结构分析、优化设计、再分析、再优化,不断反复直至满足终止机制[1]。
传统的结构设计中,所有参与计算的量基本以常量出现;而结构优化设计中,参与计算的量部分是常量,部分是变量,从而形成全部的结构设计方案域,对于方案个数较多的结构优化设计问题,不可能一一对其设计方案进行计算,为此需借助数学手段和计算机工具从中搜索出可行且较好的方案,从而实现结构设计与优化技术的有机结合,达到缩短设计周期、节省人力、提高结构设计的质量和水平的目的[2]。
1.1.1 工程结构优化设计的发展
工程结构优化设计早在1854年Maxwell求理想桁架结构布局时就已实现[3],但其较为完整的概念则是在1904年才由Michell提出[4]。在电子计算机出现之前,工程结构优化设计受到计算手段的限制,但学者们在构件的优化设计方面仍做了许多工作[5-7],其中*有影响力的就是满应力法,即构件的各个组成部分同时达到容许强度或失稳安全限度时求得构件截面优化尺寸的方法。20世纪60年代初引入数学规划法后发现,满应力法得到的不一定就是*轻设计,但结构优化设计问题变量多、约束多且大都是复杂隐式函数的特点也使得传统的数学规划法难以解决大型复杂结构的优化设计问题[8]。近几十年来,随着数学、力学的发展和计算机技术的提高,基于有限元分析和启发式智能算法的工程结构优化设计方法得到国内外学者的广泛关注,并对工程结构优化设计理论和方法的发展及推广起到了促进作用。
1.1.2 工程结构优化设计方法
就结构工程而言,结构优化设计的定义为:工程结构在满足约束条件下,以某一个或多个经济、技术条件作为目标,求出*优方案的设计方法。通过构建结构优化设计的数学模型,利用不同的优化方法,对结构进行优化。
数学模型一般包括了以下几个组成部分。
(1)设计变量
设计变量是在优化过程当中,以量化指标对结构的某方面特性(如柱的高度、截面面积等)进行描述,通常可以分为两种:
①连续设计变量,是指优化过程中连续变化的变量,如拉索的预应力大小,拱和网壳的矢跨比,等等。
②离散设计变量,是指优化过程中不能连续变化的变量,如杆件的截面面积等。这种变量往往是以类似截面库的形式进行模型的建立。
(2)目标函数
目标函数主要用于评估设计结果的好坏,通常采用的目标函数有结构质量、结构造价、应变能、鲁棒性等,特别是对于钢结构而言,结构质量往往是直接反映经济效益的指标,因此经常以此作为结构优化设计的目标函数。
(3)约束条件
以钢结构为例,其优化设计的约束条件一般包括:
①强度、稳定约束条件,主要是指构件在受力状态下能否满足规范的强度和稳定要求。
②刚度约束条件,如结构支座的*大水平位移、结构的*大竖向位移等必须满足相关规范的要求。
③截面尺寸约束条件,构件及拉索的截面除了满足规范要求以外,还应尽可能在常用的截面库中选择。
在建立了结构优化设计的数学模型后,可以根据模型的特点,选择合适的优化算法。传统的优化算法大致可以分为两类:一类是线性规划算法,如单纯形法;另一类是非线性规划算法,如牛顿法、鲍威尔法等[9]。对于工程结构问题,其模型涉及因素较多,相互关系较为复杂,与传统优化算法的标准模型差距较大。当实际结构系统规模不断扩大,约束条件增多且相互耦合,系统具有多准则、非线性、不可微或不确定等特点时,以梯度为基础的传统优化算法就难以实现。相比而言,近几十年来基于生物智能或自然物理现象的各类随机搜索算法(即智能优化算法)发展很快,并受到较多国内外学者的关注,如遗传算法、蚁群算法、模拟退火算法、粒子群算法和模拟植物生长算法等,而且在不同的领域中均有较好的适用性[10-23]。
1.2 模拟植物生长算法
模拟植物生长算法(plant growth simulation algorithm,PGSA)是中国学者李彤在2005年提出的,该算法受自然界中植物的生长现象启发,建立了一整套类似于植物生长的优化选择体系[24]。PGSA基于植物的向光性质,设立目标函数,在算法的计算过程中,对所有可行解进行目标函数的求解,确定对应的形态素浓度,然后依据植物学中的形态素浓度理论,在可行域内进行植物生长,使每一次生长产生的可行解逐渐向全局*优解逼近[25]。与其他优化算法相比,PGSA有以下两个优点:
①PGSA是根据植物仿生学的原理提出的,在PGSA运行的过程中,根据形态素浓度理论,引入基于概率理论的选择机制,使每次得到的生长点更具有生长优势,避免了因确定性规则而使算法陷入局部*优解,所以PGSA可用于复杂问题的优化求解。
②与其他相对成熟的优化算法(如遗传算法)相比较,PGSA不存在交叉率、编码长度、编码规则等一系列烦琐的参数设置,仅需对生长步长、初始生长点进行选取,因此PGSA对参数的依赖小,运行更加稳定。
1.2.1 基本原理
1. 模拟植物的生长演绎方式
20世纪60年代末,美国生物学家Lindenmayer把Chomsky的生成转换语法引入生物学,以简单的重写规则和分枝规则为基础,建立了关于植物的描述、分析和发育模拟的形式语法,称为L-系统[26, 27]。L-系统具有一套自定义的字符串文法和一组对应的替换产生式规则,通过使用这些规则文法进行分析和替换,对植物的生长过程(包括植物产生分歧、节间生长等过程)采用形式语言的方法(即由一条公理和几条产生式)来进行描述,进行有限次的迭代,并对所产生的字符串进行集合解释,从而生成复杂图形的一个重写系统[28]。其核心思想可以概括为以下几点[29]:
①由种子发芽破土而出的茎秆在一些叫作节的部位长出新枝。
②大多数新枝上又反复长出更新的枝。
③不同的枝之间有相似性,整个植物属于自相似结构。
在植物生长过程中,向光性生长对植物生长形态影响是*大的。早在19世纪80年代,Charles Darwin和Francis Darwin就把向光性定义为植物的生长器官接受单方向的光照而引发的生长弯曲的能力[30]。植物在光照作用下,其茎和枝上能生长出新枝的部位也就是生长点,会聚集一种具有植物生长活性的形态素,形态素浓度由光源位置决定,在光源作用下,越靠近光源的生长点其形态素浓度越高。
目前,生物学上已对植物的生长过程得出以下结论[31, 32]:
①当植物有两个或两个以上的节时,各个节的形态素浓度值决定了该节是否能够长出新枝,形态素浓度值越大的节,长出新枝的机会越大。
②每个细胞的形态素浓度值并不是预先赋予的,而是细胞系统依据其所在环境的位置信息确定的。当新枝生长后,生长点数目发生变化,形态素浓度将重新在各生长点之间进行分配。
PGSA就是受到L-系统的启发而创造的一种智能优化算法。在算法的运行中,被选择的节(又称为生长点)不断分化产生接近光源的新枝,而该算法在如何选取生长点的机制上,是根据植物的形态素浓度理论来确定的[25]。
2. 模拟植物生长算法的动力学特征
如前所述,植物的生长过程首先是从种子开始,生长出第一个主茎,若植物主茎上的生长点不止一个,那么就根据各个生长点的形态素浓度的高低来决定哪一个是可以继续生长新枝的生长点。植物的生长过程其实就是由种子生出茎,茎再生出枝,枝再生出新枝,这样一个反复迭代的过程。
基于PGSA进行优化问题的求解,实质就是模拟植物枝干长满整个生长空间的过程,如图1.1所示。根据植物生长的内在动力及向光性生长的特性,建立茎、枝生长及凋谢的动力机制,将植物的整个生长空间当作解的可行域,光源看作全局*优解,植物的动力生长机制由其向光性决定,根据植物学中的形态素浓度理论建立在不同光线强度的环境下按照全局*优的方式向着光源快速生长的动力模型[25, 33]。
图1.1 植物枝干长满整个生长空间的过程
3. 模拟植物生长算法的实现原理
根据植物生长向光性机理,PGSA中植物的整个生长空间即为优化问题的可行域,*接近光源的生长点对应的函数值即为所求优化问题的*优值,因此越接近光源的生长点,其函数值越接近*优值。在其算法流程中,首先需要选定可行域内的一个解作为植物的种子即初始生长点 ,对应的初始函数值为 ;然后定义植物生长出茎和枝的方式,即在可行域内的搜索机制,按照该搜索机制,初始生长点生长出多个新增生长点 ,即种子生长出茎和枝,各生长点组成生长点集合 ;接着计算各生长点的函数值 ,剔除其中函数值大于初始函数值 的生长点;由于在优化问题中光源的位置未知,无法根据各生长点函数值与所求*优函数值的接近程度来直接反映各生长点的形态素浓度值,因此仅能根据各生长点函数值与初始函数值的远离程度来体现形态素浓度,其函数值与初始函数值相差较大的生长点具有更高的形态素浓度值,即具有更大的生长概率。因此,相应的形态素浓度按照式(1.1)计算,即依据生长点与初始生长点的位置确定其生长概率:
(1.1)
式中, 为第i个生长点的形态素浓度; 为生长点集合 中生长点的个数。由此式可知,生长点函数值与初始函数值相差越大的生长点形态素浓度越高,且各生长点的形态素浓度之和为1,即
(1.2)
将上述生长点集合中所有生长点的形态素浓度值转换成一个位于区间[0, 1]的概率空间,如图1.2所示。
图1.2 形态素浓度值概率空间
在确定各生长点的形态素浓度后,引入随机概率搜索机制,即由系统产生[0, 1]之间的随机数,随机数就类似向概率空间中投掷的小球,小球落在的某个概率空间所对应的生长点就可得到优先生长的权利,即为下一次的生长点[34]。采用此方法选择下一次的生长点,可体现出植物生长过程中形态素浓度较高的生长点获得生长的概率就越大。
通过上述原则选取了生长点后,采用同样的生长方式产生新的生长点,即由此生长点长出新枝,并将新增生长点加入生长点集合中,同时将选中的生长点从生长点集合 中剔除。各生长点形态素浓度重新分布,再根据形态素浓度公式(1.1)和随机概率搜索机制,选择下一次的生长点,如此反复直至植物生长布满整个生长空间,便得到*优解及其相应的*优值[35]。
1.2.2 算法流程与实现
根据上述基本原理,以 为设计变量,设 属于Rn中的有界闭包, , 为精度要求的步长, 为目标函数,在考虑了如何通过编程实现根据形态素浓度进行随机投点的方法以后,PGSA的计算流程如图1.3所示。
图1.3 PGSA的基本流程
展开