一种改进遗传算法结构优化效率的方法

文档序号:6618943阅读:224来源:国知局

专利名称::一种改进遗传算法结构优化效率的方法
技术领域
:本发明涉及一种结构优化效率的方法,特别是关于一种用于结构优化领域中离散结构拓扑、尺寸、形状和材料优化的改进遗传算法结构优化效率的方法。
背景技术
:离散结构优化根据优化内容的不同,可以分为拓扑、尺寸、形状以及材料优化。用传统的优化算法无法实现离散结构的综合优化,因为这是一个离散、非凸、多变量、多领域的优化问题。遗传算法不要求目标函数以及约束函数可导、易于处理离散问题、具有全局收敛能力,因此可以解决离散结构综合优化的困难。但是用遗传算法进行结构优化,个体适应值评价需要通过耗时的结构分析得到,计算量很大,导致优化效率较低。遗传算法主要是基于达尔文的进化论、魏茨曼的选择学说和孟德尔的基因学说,模仿物竞天择、优胜劣汰、适者生存的生物遗传和进化的规律。用遗传算法进行结构优化,首先在物理空间中对每个个体进行结构分析以获取其适应值,然后通过编码技术把物理空间中的结构映射到基因空间中,与染色体一一对应,再对染色体执行选择、交叉和变异操作,以产生更好的新个体。由于遗传算法采用"适者生存"策略,适应值高的个体生存的概率高,因此经过选择操作之后,交配池中存在不少重复的高适值个体。此外,由于交叉和变异操作均为基于概率的操作,经过交叉和变异操作之后,种群中只有部分个体是新个体,其余个体为父代的直接拷贝。因此,遗传算法进化过程中出现的所有个体中,有一部分是前代已经出现过的。当用遗传算法进行结构优化时,在一次进化过程中,结构分析占据了绝大部分的时间。因此避免对重复出现的个体进行结构分析,可以有效的减少计算量,提高遗传算法结构优化的整体效率。但是直接存储进化过程中出现的所有染色体,需要巨大的存储量,对大规模的问题,这将是无法接受的。而且,直接存储染色体也将导致对重复个体的适值评价所需的计算复杂度较高。
发明内容针对上述问题,本发明的目的是提供一种计算复杂度低、存储量少、计算效率较高的改进遗传算法结构优化效率的方法。为实现上述目的,本发明采取以下技术方案一种改进遗传算法结构优化效率的方法,即引入个体识别码的方法,其包括以下步骤1)初始化种群和进化历史表采用随机方法对种群进行初始化,建立一个m维的空矩阵,作为初始化的进化历史表;2)计算当前种群的个体识别码根据个体识别码公式计算当前种群中每个个体的识别码,用于判断当前种群中是否具有重复个体;3)根据个体识别码判断个体是否为重复个体逐个检索当前种群的个体识别码是否与进化历史表中第一列中的某个数值相同,若存在相同值,则表示此个体曾经出现过,是重复个体,转到步骤6);若不存在相同值,则表示此个体为新个体,转到步骤4);4)通过有限元方法对新个体进行结构分析对新个体进行结构分析,得出新个体的结构响应值;5)更新进化历史表在原有进化历史表基础上,按行增加所有新个体的识别码、结构响应值信息,即这一代中有多少个新个体,进化历史表就要相应增加多少行;6)对重复个体和进行结构分析后的新个体进行适值评价,得出相应适值,评价的方法如下A=其中,fit为个体的适值;Ri(i=l,2,…,m,m为结构响应函数的个数)为结构响应值;7)判断算法是否停止若算法迭代次数达到允许的最大迭代次数或找到最优解,则算法结束;反之,则转到步骤8);8)对种群进行选择、交叉和变异操作,得到新种群后,转到步骤2),循环操作。所述新个体的结构响应值由结构分析得到,所述重复个体的结构响应值在进化历史表中检索得到。所述个体识别码的计算公式为似=|>,/^=,其中,Id为个体识别码;Ne为基结构所包含的单元数;,,和^分别为基^吉构中第i个单元对应的拓扑值和属性值;p,为最大属性值。所述个体识别码在小规模问题时采用长整型进行存储,在大规模问题时采用字符串格式进行存储。所述个体识别码标识一个染色体。所述重复个体由所述个体识别码来判断,判断所需的最坏时间复杂度为0(TNNe+TN2),其中,T为当前进化代数,N为种群规模,Ne为基结构中单元数量。本发明由于采取以上技术方案,其具有以下优点1、本发明由于采用了个体识别方法,用一个识别码来唯一标识一个染色体,因此避免了对重复个体进行结构分析,有效的减少了计算量,提高了遗传算法结构优化的计算效率。2、本发明由于采用了通过计算每个染色体的识别码来识别个体是否重复,因此只需存储个体识别码一个数值,而不是存储整个染色体,实现了存储量少,降低了所需内存的空间。3、本发明由于采用了通过检索个体识别码来判断个体是否重复,使判断算法的最坏时间复杂度比直接存储染色体所需的时间复杂度要小一个数量级,因此计算效率较高。本发明可广泛应用于基于遗传算法的离散结构的各领域的优化问题中。图1是本发明采用个体识别方法的遗传算法流程图图2是本发明平面六节点桁架的基结构示意图具体实施例方式下面结合附图和实施例对本发明进行详细的描述。本发明利用有限元方法对离散结构进行结构分析,由于在有限元方法中,梁单元的属性可以表达其横截面形状和尺寸,以及此单元的材料信息,因此本发明采用梁单元的属性作为设计变量,可实现横截面形状、尺寸以及材料的综合优化。离散结构优化中结构的拓扑优化需要采用拓扑优化变量。为了避免对重复个体进行结构分析,需要对进化过程中出现过的所有不重复个体进行识别、记录,并需要判断当前种群中的个体是否已经出现过。因此本发明引入一种个体识别方法,用一个识别码来唯一标识一个染色体,避免了对重复个体进行结构分析。个体识别码的计算方法如下其中,Id为个体识别码;Ne为基结构所包含的单元数;Z,和p,分别为基结构中第i个单元对应的拓扑值和属性值;A^为最大属性值。个体识别码在小规模问题时可以采用长整型进行存储,当问题规模比较大的时候,可以采用字符串格式存储识别码进行存储,防止内存溢出。对染色体标识完毕后,将每一代种群中的新个体的识别码与结构响应等信息存储在进化历史表中,以便于检索。如表1所示,为进化历史表数据结构。其中Ri(i=l,2,…,m,m为结构响应函数的个数)为结构响应函数值。表l<table>tableseeoriginaldocumentpage6</column></row><table>如图1所示,本发明引入个体识别码的方法,以避免对重复个体进行结构分析,其步骤如下1)初始化种群和进化历史表采用随机方法对种群进行初始化;建立一个m维的空矩阵,作为初始化的进化历史表。2)计算当前种群的个体识别码根据个体识别码公式(1)计算当前种群中每个个体的识别码,用于判断当前种群中是否具有重复个体。3)根据个体识别码判断个体是否为重复个体逐个检索当前种群的个体识别码是否与进化历史表中第一列中的某个数值相同,若存在相同值,则表示此个体曾经出现过,是重复个体,转到步骤6);若不存在相同值,则表示此个体为新个体,转到步骤4)。4)通过有限元方法对新个体进行结构分析对新个体进行结构分析,得出新个体的结构响应值。5)更新进化历史表在原有进化历史表(如表l所示)基础上,按行增加所有新个体的识别码、结构响应值信息,即这一代中有多少个新个体,进化历史表就要相应增加多少行。6)对重复个体和进行结构分析后的新个体进行适值评价,得出相应适值,评价的方法如下,氛i2,…人)(2)其中,fit为个体的适值;Ri(i=l,2,…,m,m为结构响应函数的个数)为结构响应值。新个体的结构响应值由上述步骤4)结构分析得到,重复个体的结构响应值由在进化历史表(如表l所示)中检索得到。7)判断算法是否停止若算法迭代次数达到允许的最大迭代次数或找到最优解,则算法结束;反之,则转到步骤8)。8)对种群进行选择、交叉和变异操作,得到新种群,转到步骤2),循环操作。由上述各步骤可知,由于本发明在遗传算法结构优化中引入个体的识别方法,因此避免了对重复个体进行结构分析,有效的减少了计算量,提高了遗传算法结构优化的计算效率。并且通过计算每个染色体的识别码来识别个体是否重复,只需存储个体识别码一个数值,而不是存储整个染色体,因此所需内存空间降低了很多。同时,由于通过检索个体识别码来判断个体是否重复的最坏时间复杂度为0(TNNe+TN2),这比直接存储染色体所需的时间复杂度0(TN2Ne)要小一个数量级(其中,T为当前进化代数,N为种群规模,Ne为基结构中单元数量。),因此本发明的存储量较少、计算速度较高。下面通过具体实施例对本发明方法的应用效果进行进一步描述。如图2所示,平面六节点桁架的基结构中,杆件长度a为9.14m,加载力P为444.5kN。杆件材料的杨氏模量为68.9GPa,密度为2.768X103kg/cin3,泊松比为0.3。杆件横截面积的定义域为一个含有32个离散值的集合{1.05,1.16,1.54,1.69,1,86,1.99,2,02,2,18,2.34,2.48,2.50,2.70,2.90,3.10,3.21,3.30,3.70,4.66,5.14,7.42,8.71,8.97,9.16,10.00,10.32,12.13,12.84,14.19,14.77,17.10,19.35,21.61}X10—3m2,分别对应从1到32的杆件属性编号。以最小化结构质量为目标函数,要求所有杆件应力不许超过172MPa,节点2和节点5的最大位移不许超过5.08cm,利用本发明的方法求结构的最佳拓扑及尺寸。上述实施例中,引入本发明的个体识别方法的遗传算法进行求解,采用的种群规模为40,最大迭代次数为400,分别进行了10次运算,统计进化过程中出现的新个体和重复个体的数量,统计结果如表2所示。表2计算次数新个体数重复个体数总个体数重复个体比例159833577956037.42%29749625116D0033.07%3973262681600039.18%424081432384037.29%541012419652037.10%1281759204037.21%728241616444036.40%8974862521600039.08%33B12019540037.39%109528G4721600040.45%平均5873.53706.595昍38.06%由上述统计结果可知,10次运算中重复个体的比例平均高达38.06%,即采用个体识别方法之后平均可以减少38.06%的结构分析次数。在本实施例中,若不引入个体识别方法,则结构分析环节所占用的时间为92.60%。因此,在引入个体识别方法后,平均可以提高35.42%的计算效率。上述实施例为本发明的一个应用,并非用于限定本发明的实施范围。凡基于本发明技术方案上的变化和改进,不应排除在本发明的保护范围之外。8权利要求1、一种改进遗传算法结构优化效率的方法,即引入个体识别码的方法,其包括以下步骤1)初始化种群和进化历史表采用随机方法对种群进行初始化,建立一个m维的空矩阵,作为初始化的进化历史表;2)计算当前种群的个体识别码根据个体识别码公式计算当前种群中每个个体的识别码,用于判断当前种群中是否具有重复个体;3)根据个体识别码判断个体是否为重复个体逐个检索当前种群的个体识别码是否与进化历史表中第一列中的某个数值相同,若存在相同值,则表示此个体曾经出现过,是重复个体,转到步骤6);若不存在相同值,则表示此个体为新个体,转到步骤4);4)通过有限元方法对新个体进行结构分析对新个体进行结构分析,得出新个体的结构响应值;5)更新进化历史表在原有进化历史表基础上,按行增加所有新个体的识别码、结构响应值信息,即这一代中有多少个新个体,进化历史表就要相应增加多少行;6)对重复个体和进行结构分析后的新个体进行适值评价,得出相应适值,评价的方法如下fit=f(R1,R2,...,Rm)其中,fit为个体的适值;Ri(i=1,2,...,m,m为结构响应函数的个数)为结构响应值;7)判断算法是否停止若算法迭代次数达到允许的最大迭代次数或找到最优解,则算法结束;反之,则转到步骤8);8)对种群进行选择、交叉和变异操作,得到新种群后,转到步骤2),循环操作。2、如权利要求1所述的一种改进遗传算法结构优化效率的方法,其特征在于:所述新个体的结构响应值由结构分析得到,所述重复个体的结构响应值在进化历史表中检索得到。3、如权利要求1所述的一种改进遗传算法结构优化效率的方法,其特征在于:所述个体识别码的计算公式为<formula>formulaseeoriginaldocumentpage3</formula>其中,Id为个体识别码;Ne为基结构所包含的单元数;f,和/7,分别为基结构中第i个单元对应的拓扑值和属性值;&ax为最大属性值。4、如权利要求2所述的一种改进遗传算法结构优化效率的方法,其特征在于所述个体识别码的计算公式为<formula>formulaseeoriginaldocumentpage3</formula>其中,Id为个体识别码;Ne为基结构所包含的单元数;(和/7,分别为基结构中第i个单元对应的拓扑值和属性值;Aax为最大属性值。5、如权利要求1或2或3或4所述的一种改进遗传算法结构优化效率的方法,其特征在于所述个体识别码在小规模问题时采用长整型迸行存储,在大规模问题时采用字符串格式进行存储。6、如权利要求1或2或3或4所述的一种改进遗传算法结构优化效率的方法,其特征在于所述个体识别码标识一个染色体。7、如权利要求5所述的一种改进遗传算法结构优化效率的方法,其特征在于.-所述个体识别码标识一个染色体。8、如权利要求1或2或3或4或7所述的一种改进遗传算法结构优化效率的方法,其特征在于所述重复个体由所述个体识别码来判断,判断所需的最坏时间复杂度为0(T丽e+TN2),其中,T为当前进化代数,N为种群规模,Ne为基结构中单元数量。9、如权利要求5所述的一种改进遗传算法结构优化效率的方法,其特征在于:所述重复个体由所述个体识别码来判断,判断所需的最坏时间复杂度为0(TNNe+TN2),其中,T为当前进化代数,N为种群规模,Ne为基结构中单元数量。10、如权利要求6所述的一种改进遗传算法结构优化效率的方法,其特征在于所述重复个体由所述个体识别码来判断,判断所需的最坏时间复杂度为0(T丽e+TN2),其中,T为当前进化代数,N为种群规模,Ne为基结构中单元数量。全文摘要本发明涉及一种改进遗传算法结构优化效率的方法,即引入个体识别码的方法,其包括以下步骤初始化种群和进化历史表;计算当前种群的个体识别码;根据个体识别码判断个体是否为重复个体;通过有限元方法对新个体进行结构分析;更新进化历史表;对重复个体和进行结构分析后的新个体进行适值评价,得出相应适值;判断算法是否停止;若否,则对种群进行选择、交叉和变异操作,得到新种群后,转至开始步骤,循环操作。本发明由于采用了个体识别方法,用一个识别码来唯一标识一个染色体,因此避免了对重复个体进行结构分析,有效的减少了计算量,提高了遗传算法结构优化的计算效率。本发明可广泛应用于基于遗传算法的离散结构的各领域的优化问题中。文档编号G06N3/12GK101582130SQ20091008565公开日2009年11月18日申请日期2009年5月27日优先权日2009年5月27日发明者桂良进,苏瑞意,范子杰申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1