12.2 遗传算法之实现
- 格式:pdf
- 大小:1.00 MB
- 文档页数:21


建筑设计中遗传算法的研究及实现一、引言随着信息技术的快速发展和应用,建筑设计领域也开始引入计算机辅助设计工具。
遗传算法作为一种有效的优化算法,具有全局搜索能力和并行计算优势,被广泛应用于建筑设计中。
本文将深入探讨建筑设计中遗传算法的研究和实现。
二、遗传算法概述遗传算法是模拟生物进化过程的一种智能优化算法。
它基于自然选择和遗传机制,通过不断迭代搜索和交叉变异操作,逐步优化问题的解。
遗传算法最大的特点是可以同时搜索多个解空间,具有较强的全局寻优能力。
三、建筑设计中的优化问题在建筑设计中,存在许多复杂的问题需要进行优化。
比如,建筑结构的拓扑优化、能源利用的最优化、平面布局的最佳化等。
这些问题涉及到多个变量和约束条件,传统的优化算法往往无法快速找到全局最佳解。
而遗传算法可以通过大规模的搜索和演化,找到较优的设计方案。
四、建筑设计中遗传算法的应用1. 建筑结构优化遗传算法可以应用于建筑结构的拓扑优化问题。
通过对建筑结构进行节点的增减、连杆延长和删减等操作,不断演化出更加优化的结构形式。
这一方法可以有效提高结构的稳定性和抗震性能。
2. 建筑能源优化能源利用是建筑设计中一个重要的考虑因素。
遗传算法可以通过调整建筑的朝向、窗户的位置和大小,寻找能够最大程度减少能耗的设计方案。
同时,遗传算法还可以优化建筑内部的供暖、通风、照明等系统,提高能源利用效率。
3. 平面布局规划在建筑设计中,平面布局对于功能性和空间利用率至关重要。
遗传算法可以通过对建筑内部空间的划分、功能区域的安排等操作,找到最佳的平面布局方案。
这有助于提高建筑的使用效率和舒适性。
五、建筑设计中遗传算法的实现建筑设计中遗传算法的实现过程主要包括以下几个步骤:“问题定义、设计变量和约束条件的设置、适应度函数的构建、初始种群的生成、遗传算子的设计、收敛条件的判断和结果分析”。
首先,需要明确建筑设计中所要解决的优化问题,如建筑结构的拓扑优化、能源利用的最优化等。
1 遗传算法的原理1.1 遗传算法的基本思想遗传算法(genetic algorithms,GA)是一种基于自然选择和基因遗传学原理,借鉴了生物进化优胜劣汰的自然选择机理和生物界繁衍进化的基因重组、突变的遗传机制的全局自适应概率搜索算法。
遗传算法是从一组随机产生的初始解(种群)开始,这个种群由经过基因编码的一定数量的个体组成,每个个体实际上是染色体带有特征的实体。
染色体作为遗传物质的主要载体,其内部表现(即基因型)是某种基因组合,它决定了个体的外部表现。
因此,从一开始就需要实现从表现型到基因型的映射,即编码工作。
初始种群产生后,按照优胜劣汰的原理,逐代演化产生出越来越好的近似解。
在每一代,根据问题域中个体的适应度大小选择个体,并借助于自然遗传学的遗传算子进行组合交叉和变异,产生出代表新的解集的种群。
这个过程将导致种群像自然进化一样,后代种群比前代更加适应环境,末代种群中的最优个体经过解码,可以作为问题近似最优解。
计算开始时,将实际问题的变量进行编码形成染色体,随机产生一定数目的个体,即种群,并计算每个个体的适应度值,然后通过终止条件判断该初始解是否是最优解,若是则停止计算输出结果,若不是则通过遗传算子操作产生新的一代种群,回到计算群体中每个个体的适应度值的部分,然后转到终止条件判断。
这一过程循环执行,直到满足优化准则,最终产生问题的最优解。
图1-1给出了遗传算法的基本过程。
1.2 遗传算法的特点1.2.1 遗传算法的优点遗传算法具有十分强的鲁棒性,比起传统优化方法,遗传算法有如下优点:1. 遗传算法以控制变量的编码作为运算对象。
传统的优化算法往往直接利用控制变量的实际值的本身来进行优化运算,但遗传算法不是直接以控制变量的值,而是以控制变量的特定形式的编码为运算对象。
这种对控制变量的编码处理方式,可以模仿自然界中生物的遗传和进化等机理,也使得我们可以方便地处理各种变量和应用遗传操作算子。
2. 遗传算法具有内在的本质并行性。
遗传算法Java实现以及TSP问题遗传算法求解在以前的⽂章()中已经介绍过,遗传算法是⼀种基于达尔⽂⽣物进化论的启发式算法,它的核⼼思想就是优胜劣汰,适应性好的个体将在⽣存竞争中获得更⼤的⽣存机会,⽽适应差的将更有可能在竞争中失败,从⽽遭到淘汰。
1. ⽣物进化图1⽤了⼀个⾮常形象的实例,来表现进化机制对⽣物繁衍的作⽤。
可以设想,曾有⼀个时期动物就根本没有眼睛。
那时,动物在它们的环境中航⾏完全是靠嗅觉和触觉来躲避掠⾷它们的动物。
他们也相当擅长于这样做,因为他们靠这样已经历了成千上万个世代。
在那个时候,⿐⼦⼤和⼿脚长的男性是受⼥孩⼦们欢迎的。
然⽽,突然有⼀天,当两个动物配对时,⼀个基因突变发⽣在为⽪肤细胞提供的蓝图上。
这⼀突变使其后代在他们的头上发育出了⼀个具有相当光敏效应的细胞,使其后代能⾜够识别周围环境是亮的还是暗的。
这样就给他带来了⼀个微⼩的优点,因为,如果⼀种⾷⾁动物,⽐如⼀只鹰,来到了某个范围以内,则它将阻挡了光线,这时,该动物就会感觉得到,就可迅速跑到隐蔽的地⽅去躲藏起来。
另外,这种⽪肤细胞还能指⽰现在是晚上或⽩天,或告诉他现在是在地⾯之上或地⾯之下,这些信息在捕⾷和吸取营养时都能为它提供⽅便。
你能看到这⼀新型⽪肤细胞将使这⼀动物与群体中其余的动物相⽐,具备了稍多的优点,从⽽更容易获得异性的青睐,因此也就有更多的⽣存和繁殖的机会。
过了⼀段时间,由于进化机制的作⽤,许多动物的染⾊体中都会出现具有光敏⽪肤细胞的基因。
现在,如果你再作⼀些外推,想象这⼀光敏细胞基因得到了进⼀步的有利突变,则你能看到,经过许多许多世代后,光敏细胞经过分化形成为⼀个区域;这个区域不断变⼤,产⽣出⼀些更为确定的特征,例如形成⼀个晶体,或产⽣能区别颜⾊的视觉细胞;还可以想象,⼀个突变使某个动物由⼀个光敏区域改变为两个光敏区域,由此就使那个动物有了⽴体视觉。
⽴体视觉对⼀个⽣物体来说是⼀个巨⼤的进步,因为这能精确告诉他⽬标离开他有多远。
遗传算法的VC++实现遗传算法是一种借鉴生物界自然选择和自然遗传机制的高度并行、随机、自适应搜索算法,其隐含的对全局信息的有效利用能力使遗传算法具有稳健性,能够很好地处理传统优化方法解决不了的复杂和非线性问题。
遗传算法的执行过程可以简单描述为随机地在参变量空间中进行搜索,由串组成的群体在遗传算子的作用下,同时对空间中不同的区域进行采样计算,从而构成一个不断迭代进化的群体序列。
遗传算法的突出表现能力是能够把注意力集中到搜索空间中期望值最高的部分,这是遗传算法中杂交算子作用的直接结果。
杂交过程就是模拟生物界中的有性繁殖,它是遗传算法中最重要的部分,是遗传算法区别于其它优化算法的根本所在。
遗传算法以迭代群体中的所有个体为操作对象,从本质上讲属于一种群体操作算法,其基本流程如图1 所示。
一个标准的遗传算法程序包含4 个基本组成部分: (1) 参数编码; (2) 初始群体生成;(3) 适应值检测; (4) 遗传操作。
其中遗传操作是遗传算法的核心,它由3 个基本操作算子组成,即选择算子、交叉算子和变异算子,不同的遗传算子对算法的运行性能有着各不相同的影响。
文章主要从遗传算法在求解连续最优化问题中的设计与实现环节上对遗传算法进行研究。
根据所求解问题的性质,设计合理的遗传算法程序,使之满足求解问题的要求。
一些术语一、染色体(Chronmosome)染色体又可以叫做基因型个体(individuals),一定数量的个体组成了群体(population),群体中个体的数量叫做群体大小。
二、基因(Gene)基因是串中的元素,基因用于表示个体的特征。
例如有一个串S=1011,则其中的1,0,1,1这4个元素分别称为基因。
它们的值称为等位基因(Alletes)。
三、基因地点(Locus)基因地点在算法中表示一个基因在串中的位置称为基因位置(Gene Position),有时也简称基因位。
基因位置由串的左向右计算,例如在串 S =1101 中,0的基因位置是3。