现代机械设计概论-遗传算法_第1页
现代机械设计概论-遗传算法_第2页
现代机械设计概论-遗传算法_第3页
现代机械设计概论-遗传算法_第4页
现代机械设计概论-遗传算法_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、现代机械设计概论现代机械设计概论 遗传算法遗传算法 2008年12月v1遗传算法概述v2遗传算法基本原理与方法 v3遗传算法的应用 1.遗传算法概述1.1 遗传算法的概念 遗传算法(Genetic Algorithm, GA)起源于对生物系统所进行的计算机模拟研究。它是模仿自然界生物进化机制发展起来的随机全局搜索和优化方法,借鉴了达尔文的进化论和孟德尔的遗传学说。其本质是一种高效、并行、全局搜索的方法,能在搜索过程中自动获取和积累有关搜索空间的知识,并自适应地控制搜索过程以求得最佳解。 遗传算法操作使用适者生存的原则,在潜在的解决方案种群中逐次产生一个近似最优的方案。在遗传算法的每一代中,根据

2、个体在问题域中的适应度值和从自然遗传学中借鉴来的再造方法进行个体选择,产生一个新的近似解。这个过程导致种群中个体的进化,得到的新个体比原个体更能适应环境,就像自然界中的改造一样。 1.2 遗传算法的特点遗传算法的特点 遗传算法是一种借鉴生物界自然选择和自然遗传机制的随机搜索法。它与传统的算法不同,大多数古典的优化算法是基于一个单一的度量函数的梯度或较高次统计,以产生一个确定性的试验解序列;遗传算法不依赖于梯度信息,而是通过模拟自然进化过程来搜索最优解,它利用某种编码技术,作用于称为染色体的数字串,模拟由这些串组成的群体的进化过程。 1.2.1 遗传算法的优点遗传算法的优点(1)对可行解表示的广

3、泛性。(2)群体搜索特性。(3)不需要辅助信息。(4)内在启发式随机搜索特性。(5)遗传算法在搜索过程中不容易陷入局部最优,即使在所定义的适应度函数是不连续的、不规则的或有噪声的情况下,也能以很大的概率找到全局最优解。(6)遗传算法采用自然进化机制来表现复杂的现象,能够快速可靠地解决求解非常困难的问题。(7)遗传算法具有固有的并行性和并行计算的能力。(8)遗传算法具有可扩展性,易于同别的技术混合。1.2.2 遗传算法的缺点遗传算法的缺点(1)编码不规范及编码存在表示的不准确性。(2)单一的遗传算法编码不能全面地将优化问题的约束表示出来。考虑约束的一个方法就是对不可行解采用阈值,这样,计算的时间

4、必然增加。(3)遗传算法通常的效率比其他传统的优化方法低。(4)遗传算法容易出现过早收敛。(5)遗传算法对算法的精度、可信度、计算复杂性等方面,还没有有效的定量分析方法。1.3 遗传算法与传统方法的比较传统算法起始于单个点改善(问题特有的)终止?结束是否遗传算法起始于群体改善(独立于问题的)终止?结束是否1.3.1遗传算法与启发式算法的比较 启发式算法是通过寻求一种能产生可行解的启发式规则,找到问题的一个最优解或近似最优解。该方法求解问题的效率较高,但是具有唯一性,不具有通用性,对每个所求问题必须找出其规则。但遗传算法采用的是不是确定性规则,而是强调利用概率转换规则来引导搜索过程。1.3.2

5、遗传算法与爬山法的比较爬山法是直接法、梯度法和Hessian法的通称。爬山法首先在最优解可能存在的地方选择一个初始点,然后通过分析目标函数的特性,由初始点移到一个新的点,然后再继续这个过程。爬山法的搜索过程是确定的,容易产生局部最优解;而遗传算法是随机的。其主要差别为:(1)爬山法的初始点仅一个,由决策者给出;遗传算法的初始点有多个,是随机产生的。(2)爬山法由上一个点产生一个新的点;遗传算法在当前的种群中经过交叉、变异和选择产生下一代种群。对同一问题,遗传算法花费的机时少。1.3.3 遗传算法与穷举法的比较穷举法就是对解空间内的所有可行解进行搜索,但是通常的穷举法并不是完全穷举法,即不是对所

6、有解进行尝试,而是有选择地尝试,如动态规划法、限界剪枝法。对于特殊的问题,穷举法有时也表现出很好的性能。但一般情况下,对于完全穷举法,方法简单可行,但求解效率太低;对于动态规划法、限界剪枝法,则鲁棒性不强。相比较而言,遗传算法具有较高的搜索能力和极强的鲁棒性。1.3.4 遗传算法与盲目随机法的比较遗传算法与盲目随机法的比较与上述的搜索法相比,盲目随机搜索法有所改进,但是它的搜索效率仍然不高,并且只有解在搜索空间中形成紧致分布时,它的搜索才有效。而遗传算法为导向随机搜索方法,是对一个被编码的参数空间进行高效搜索。经上面的探讨,可以看到遗传算法与传统优化方法在本质上有着不同之处,主要有以下几点:(

7、1)遗传算法搜索种群中的点是并行的,而不是单点。(2)遗传算法并不需要辅助信息或辅助知识,只需要影响搜索方向的目标函数和相应的适应度。(3)遗传算法使用概率变换规则,而不是确定的变换规则。(4)遗传算法工作使用编码参数集,而不是自身的参数集(除了在实值个体中使用)。2. 遗传算法基本原理及方法2.1 遗传算法的基本思想遗传算法的基本思想遗传算法正是依据生物进化中的“适者生存”规律的基本思想设计的,它把问题的求解过程模拟为群体的适者生存过程,通过群体的一代代的不断进化(包括竞争、繁殖和变异等)出现新群体,相当于找出问题的新解,最终收敛到“最适应环境”的个体(解),从而求得问题的最优解或满意解。遗

8、传算法在求解优化问题时,都是将实际问题的求解空间按一定的编码方式表现出来,即对解空间中的各个解进行编码。所谓解的编码就是把各个解用一定数目的字符串(如“0”和“1”)表示。字符串中的每一位数称为遗传基因,每一个字符串(即一个解的编码)称为一个染色体或个体。个体的集合称为群体。遗传算法的寻优过程就是通过染色体的结合,即通过双亲的基因遗传、变异和交配等,使解的编码发生变化,从而根据“适者生存”的规律,最终找出最优解。表2-1列出了生物遗传的基本概念在遗传算法中的体现。 表2-1遗传算法一般由编码与解码、适应度函数、遗传算子遗传算法一般由编码与解码、适应度函数、遗传算子和和控制参数等四个部分组成。控

9、制参数等四个部分组成。1) 由设计空间向遗传算法编码空间的映射称为编码;由编码空间向设计空间的映射称为解码。用遗传算法求解优化问题时,必须先建立设计变量与染色体之间的对应关系,即确定编码和解码的规则。这样在遗传算法中,其优化问题求解的一切过程都通过设计解的编码与解码来进行。2) 适应度函数是用以描述个体适应环境的程度,也是生物进化中决定哪些染色体可以产生优良后代(适者生存)的依据。一般是,个体的适应度函数值越大,则个体性能越好,生存可能性越大;反之,若个体的适应度函数值越小,则个体的性能越差,越有可能被淘汰。3) 遗传算子包括复制(或选择)算子、交配算子和变异算子。复制算子是根据个体的优劣程度

10、决定在下一代是被淘汰还是被复制(即个体继续存在,子代保持父代的基因)。交配是指两个相互配对的染色体按某种方式相互交换其部分基因而生产两个新的个体。变异是将个体编码字符中的某些基因用其他等位基因来替换,从而生成一个新的染色体。这三个算子一般都按一定的种群复制(或选择)概率、交配概率和变异概率随机地进行,造成遗传中的子代和父代的差异。4) 算法的控制参数包括种群的规模M、交配率Pc和变异率Pm。2.2遗传算法的计算步骤计算步骤计算步骤v用遗传算法求解工程优化设计问题的基本步骤如下:用遗传算法求解工程优化设计问题的基本步骤如下:v1) 确定寻优参数,进行编码。编码时先要设置编确定寻优参数,进行编码。

11、编码时先要设置编码长度;码长度;v2) 随机产生一组初始解(即个体)组成初始种群。随机产生一组初始解(即个体)组成初始种群。初始种群中个体的数目称作初始种群的规模;初始种群中个体的数目称作初始种群的规模;v3) 计算种群中各个个体的目标函数值及其相应的计算种群中各个个体的目标函数值及其相应的适应度函数值;适应度函数值;v4) 形成匹配集。根据种群中各个染色体的适应度函数值,采取一定的选择方法,从种群中选出适应值较大的个染色体(其中有些染色体是重复的),称这个染色体的集合即为匹配集。这一过程即为选择操作。v5) 按某种复制规则进行繁殖。由匹配集中的个染色体繁殖产生个新的染色体,得到一个新的种群。

12、繁殖方法主要有两种:交叉和变异。v6)若遗传代数(迭代次数)达到给定的允许值或其它收敛条件已满足时停止遗传,否则返回步骤3)。上述遗传算法的计算过程可用下图表示。遗传算法流程图 目前,遗传算法的终止条件的主要判据有以下几种:v1) 判别遗传算法进化代数是否达到预定的最大代数;v2) 判别遗传搜索是否已找到某个较优的染色体;v3) 判别各染色体的适应度函数值是否已趋于稳定、再上升否等。 2.3遗传算法实现的几个技术问题 v2.3.1 2.3.1 编码编码v 编码是应用遗传算法时要解决的首要问题,同时编码方法在很大程度上决定了如何进行群体的遗传进化运算以及遗传进化运算的效率。因此编码是设计遗传算法

13、时的一个关键步骤。v1) 编码方法v 由于遗传算法应用的广泛性,迄今为止人们已经提出了很多不同的编码方法。总的来说,这些编码方法可以分成三大类:二进制编码方法、浮点数编码方法和符号编码方法。v v 二进制编码方法是遗传算法中最常用的一种编码方法,它使用的编码符号集是由二进制符号0和1所组成的符号集0,1,它所构成的个体基因是一个二进制编码符号串。二进制编码方法编码、解码操作简单易行,交叉、变异等操作便于实现。v 所谓浮点数编码方法,是指个体的每个基因值用某一范围内的一个浮点数来表示,个体的编码长度等于设计变量的个数。因为这种编码方法使用的是设计变量的真实值,所以浮点数编码方法也叫真值编码方法。

14、与二进制编码法相比,浮点数编码方法更适合表示范围较大的数和较大空间的遗传搜索。而且便于遗传算法与经典优化方法的混合使用,改善了遗传算法的计算复杂性,提高了运算效率。v 符号编码方法是指个体染色体编码串中的基因值取自一个无数值含义,而只用代码含义的符号集。这个符号集可以是一个数字序号表,如1,2,3,4,;也可以是一个字母表,如A,B,C,D,等。对于使用符号编码方法的遗传算法,一般需要认真设计交叉、变异等遗传运算的操作方法,以满足问题的各种约束要求,这样才能提高算法的搜索性能。v2) 编码串长度v 使用二进制编码来表示个体时,编码串长度的选取与问题所要求的求解精度有关;使用浮点数编码来表示个体

15、时,编码串长度与决策变量的个数相等;使用符号编码来表示个体时,编码串长度由问题的编码方式来确定;另外,也可使用变长度的编码来表示个体。2.3.2 初始种群的确定初始种群的确定确定初始种群的第一步是定义染色体的个数,用表示,一般建议取20100;第二步是随机产生个初始染色体,常用如下两种方法:v1) 根据问题要求,确定每个设计变量根据问题要求,确定每个设计变量 的变化范围,从而得到一个包含最优解的的变化范围,从而得到一个包含最优解的m维超立方体(不一定是整个可行域)。从该维超立方体(不一定是整个可行域)。从该超立方体中随机产生一定数目的可行个体,超立方体中随机产生一定数目的可行个体,然后挑选出最

16、好的个体加到初始种群中。这然后挑选出最好的个体加到初始种群中。这个过程不断迭代,直到初始种群中个数达到个过程不断迭代,直到初始种群中个数达到了预先确定的规模,即得到了了预先确定的规模,即得到了M个可行的初个可行的初始染色体始染色体 Z1,Z2,Zm。2) 首先求出可行域的一个点,即一个可行个体,记为 Z0。然后确定一个足够大的数G,以使遗传操作能遍及整个可行域。该大数G还将在变异操作中得到应用。接着,再产生M个初始染色体:在m维实空间Rm 中,随机选择一个方向H,并检验Z0+GH的可行性,若可行,即在可行域内,将Z0+GH作为一个染色体;否则,将取G为0,G区间内的一个随机数,直到Z0+GH可

17、行为止。重复以上过程M次,便可产生M个初始染色体Z1,Z2,Zm 。2.2.3 适应度函数适应度函数 v 遗传算法中使用适应度这个概念来度量群体中各个体在优化计算中可能达到或接近于或有助于找到最优解的优良程度。适应度较高的个体遗传到下一代的概率比较大;而适应度较低的个体遗传到下一代的概率就相对小一些。度量个体适应度的函数称为适应度函数。v v 对于函数优化问题,必须将优化问题的目标函数f(x)与个体的适应度函数F(x)建立一定的映射关系,且遵循两个基本原则:(1)适应度函数的值不小于零;(2)优化过程中目标函数变化方向应与群体进化过程中适应度函数的变化方向一致。 特别地,当优化目标是求函数最大

18、值,并且目标函数总取正值时,可以直接设定个体的适应度函数F(X)就等于相应的目标函数f(x),即 F(X)=f(x)2.2.4 遗传算子遗传算子v 在遗传算法中,通过编码组成初始群体后,遗传操作的任务就是对群体的个体按照它们对环境适应的程度(适应度评估)施加一定的操作,从而实现优胜劣汰的进化过程。从优化搜索的角度而言,遗传操作可使问题的解一代又一代地优化,并逼近最优解。v 遗传算法遗传操作包括复制、交叉和变异等三个基本遗传算子。v1)复制算子)复制算子v 遗传算法中的复制操作就是用来确定如何从父代群体中按某种方法选取哪些个体遗传到下一代群体中的一种遗传运算。复制操作是建立在群体中个体的适应度评估基础上的,即个体的适应度越高,其性能越好、越符合要求,因而被复制的机会就越多;反之,适应度低的个体,其被选择的机会也就越少,甚至被淘汰。 v 为了进行复制操作,需要对种群中的每个个体设定一个复制概率,使该个体被复制的可能

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论