1、现代机械设计概论,优化设计,机电工程学院 机械设计系,1 优化设计基础,优化设计(Optimal Design)是20世纪60年代随着计算机的广泛使用而迅速发展起来的一门新的学科。它为工程及产品设计提供了一种重要的科学设计方法,使得在解决复杂设计问题时,能从众多设计方案中寻得尽可能或最适宜的设计方案。,1.1优化设计基础,所谓优化设计,是根据最优化原理和方法,利用电子计算机作为计算工具,从众多的设计方案中寻找到最为适宜的设计方案的一种先进设计方法。优化设计问题一般主要包含两个方面的内容(1)将设计中的物理模型抽象为数学模型。其中包括建立评选设计方案的目标函数,考虑这些设计方案是否为工程所接受的
2、约束条件以及确定哪些参数参与优选等;(2)数学模型的求解。根据数学模型的性质,选用合适的优化方法,并利用计算机进行数学模型的求解,得到优化设计方案。,1.2 优化设计的数学模型,数学模型是对实际问题的描述和概括,是进行优化设计的基础。数学模型能否严密而准确的反映优化问题的实质,是优化设计成败的关键。优化设计数学模型的标准形式表达为:,1.3 优化设计的主要类型,根据数学模型的结构特点不同,可以有不同的优化设计类型。根据优化问题的数学模型是否含有设计约束,可将优化问题分为约束优化问题和无约束优化问题。绝大多数工程优化设计问题都是约束优化问题。无约束优化问题的目标函数如果是一元函数,则称之为一维优
3、化问题;如果是二元或二元以上函数,则称之为多维无约束优化问题。,对于约束优化问题,可按其目标函数与约束函数的特性,分为线性规划问题和非线性规划问题。如果目标函数和所有的约束函数都是线性函数,称之为线性规划问题;否则,则称之为非线性规划问题。对于目标函数是二次函数而约束函数都是线性函数这一类问题,一般称之为二次规划问题。如果目标函数和约束函数都是凸函数,则称为凸规划问题。凸规划的一个重要性质就是,凸规划的任何局部极小解一定是全局最优解。,线性规划和非线性规划是数学规划中的两个重要分支,在工程设计问题中均得到了广泛应用。另外,对于一个优化问题,如果可以用一个目标函数来衡量,称之为单目标优化问题;如
4、果需要用两个或两个以上的目标函数来衡量,则称之为多目标优化问题。其中单目标优化是多目标优化的基础。,2 遗传算法,遗传算法是模拟生物在自然环境下的遗传和进化过程而形成的一种自适应全局优化概率搜索算法。它最早由美国密执根大学的Holland教授提出,起源于20世纪60年代对自然和人工自适应系统的研究。遗传算法出现后,以其简单通用、鲁棒性强、适于并行处理以及应用范围广等显著特点,得到了广泛的应用。,遗传算法,遗传算法概述遗传算法基本原理与方法 遗传算法的应用,2.1遗传算法概述,遗传算法的概念 遗传算法(Genetic Algorithm, GA)起源于对生物系统所进行的计算机模拟研究。它是模仿自
5、然界生物进化机制发展起来的随机全局搜索和优化方法,它借鉴了达尔文的进化论和孟德尔的遗传学说。 其本质是一种高效、并行、全局搜索的方法,它能在搜索过程中自动获取和积累有关搜索空间的知识,并自适应地控制搜索过程以求得最佳解。,遗传算法操作使用适者生存的原则,在潜在的解决方案种群中逐次产生一个近似最优的方案。在遗传算法的每一代中,根据个体在问题域中的适应度值和从自然遗传学中借鉴来的再造方法进行个体选择,产生一个新的近似解。这个过程导致种群中个体的进化,得到的新个体比原个体更能适应环境,就像自然界中的改造一样。,遗传算法的特点 遗传算法是一种借鉴生物界自然选择和自然遗传机制的随机搜索法。它与传统的算法
6、不同,大多数古典的优化算法是基于一个单一的度量函数的梯度或较高次统计,以产生一个确定性的试验解序列;遗传算法不依赖于梯度信息,而是通过模拟自然进化过程来搜索最优解,它利用某种编码技术,作用于称为染色体的数字串,模拟由这些串组成的群体的进化过程。,遗传算法的优点,(1)对可行解表示的广泛性。(2)群体搜索特性。(3)不需要辅助信息。(4)内在启发式随机搜索特性。(5)遗传算法在搜索过程中不容易陷入局部最优,即使在所定义的适应度函数是不连续的、不规则的或有噪声的情况下,也能以很大的概率找到全局最优解。,(6)遗传算法采用自然进化机制来表现复杂的现象,能够快速可靠地解决求解非常困难的问题。(7)遗传
7、算法具有固有的并行性和并行计算的能力。(8)遗传算法具有可扩展性,易于同别的技术混合。,遗传算法的缺点,(1)编码不规范及编码存在表示的不准确性。(2)单一的遗传算法编码不能全面地将优化问题的约束表示出来。考虑约束的一个方法就是对不可行解采用阈值,这样,计算的时间必然增加。,(3)遗传算法通常的效率比其他传统的优化方法低。(4)遗传算法容易出现过早收敛。(5)遗传算法对算法的精度、可信度、计算复杂性等方面,还没有有效的定量分析方法。,遗传算法与传统方法的比较,传统算法,遗传算法,遗传算法与启发式算法的比较,启发式算法是通过寻求一种能产生可行解的启发式规则,找到问题的一个最优解或近似最优解。该方
8、法求解问题的效率较高,但是具有唯一性,不具有通用性,对每个所求问题必须找出其规则。但遗传算法采用的是不是确定性规则,而是强调利用概率转换规则来引导搜索过程。,遗传算法与爬山法的比较,爬山法是直接法、梯度法和Hessian法的通称。爬山法首先在最优解可能存在的地方选择一个初始点,然后通过分析目标函数的特性,由初始点移到一个新的点,然后再继续这个过程。爬山法的搜索过程是确定的,容易产生局部最优解;而遗传算法是随机的。其主要差别为:(1)爬山法的初始点仅一个,由决策者给出;遗传算法的初始点有多个,是随机产生的。(2)爬山法由上一个点产生一个新的点;遗传算法在当前的种群中经过交叉、变异和选择产生下一代
9、种群。对同一问题,遗传算法花费的机时少。,遗传算法与穷举法的比较,穷举法就是对解空间内的所有可行解进行搜索,但是通常的穷举法并不是完全穷举法,即不是对所有解进行尝试,而是有选择地尝试,如动态规划法、限界剪枝法。对于特殊的问题,穷举法有时也表现出很好的性能。但一般情况下,对于完全穷举法,方法简单可行,但求解效率太低;对于动态规划法、限界剪枝法,则鲁棒性不强。相比较而言,遗传算法具有较高的搜索能力和极强的鲁棒性。,遗传算法与盲目随机法的比较,与上述的搜索法相比,盲目随机搜索法有所改进,但是它的搜索效率仍然不高,并且只有解在搜索空间中形成紧致分布时,它的搜索才有效。而遗传算法作为导向随机搜索方法,是
10、对一个被编码的参数空间进行高效搜索。,经上面的探讨,可以看到遗传算法与传统优化方法在本质上有着不同之处,主要有以下几点:(1)遗传算法搜索种群中的点是并行的,而不是单点。(2)遗传算法并不需要辅助信息或辅助知识,只需要影响搜索方向的目标函数和相应的适应度。(3)遗传算法使用概率变换规则,而不是确定的变换规则。(4)遗传算法工作使用编码参数集,而不是自身的参数集(除了在实值个体中使用)。,2.2遗传算法基本原理及方法,遗传算法的基本思想 遗传算法是依据生物进化中的“适者生存”规律的基本思想设计的,它把问题的求解过程模拟为群体的适者生存过程,通过群体的一代代的不断进化(包括竞争、繁殖和变异等)出现
11、新群体,相当于找出问题的新解,最终收敛到“最适应环境”的个体(解),从而求得问题的最优解或满意解。,遗传算法在求解优化问题时,都是将实际问题的求解空间按一定的编码方式表现出来,即对解空间中的各个解进行编码。所谓解的编码就是把各个解用一定数目的字符串(如“0”和“1”)表示。字符串中的每一位数称为遗传基因,每一个字符串(即一个解的编码)称为一个染色体或个体。个体的集合称为群体。遗传算法的寻优过程就是通过染色体的结合,即通过双亲的基因遗传、变异和交配等,使解的编码发生变化,从而根据“适者生存”的规律,最终找出最优解。表1列出了生物遗传的基本概念在遗传算法中的体现。,表1 生物遗传与求解优化问题的对
12、应关系,遗传算法一般由编码与解码、适应度函数、遗传算子和控制参数等四个部分组成。1) 由设计空间向遗传算法编码空间的映射称为编码;由编码空间向设计空间的映射称为解码。用遗传算法求解优化问题时,必须先建立设计变量与染色体之间的对应关系,即确定编码和解码的规则。这样在遗传算法中,其优化问题求解的一切过程都通过设计解的编码与解码来进行。,2) 适应度函数是用以描述个体适应环境的程度,也是生物进化中决定哪些染色体可以产生优良后代(适者生存)的依据。一般是,个体的适应度函数值越大,则个体性能越好,生存可能性越大;反之,若个体的适应度函数值越小,则个体的性能越差,越有可能被淘汰。3) 遗传算子包括复制(或
13、选择)算子、交配算子和变异算子。复制算子是根据个体的优劣程度决定在下一代是被淘汰还是被复制(即个体继续存在,子代保持父代的基因)。交配是指两个相互配对的染色体按某种方式相互交换其部分基因而生产两个新的个体。变异是将个体编码字符中的某些基因用其他等位基因来替换,从而生成一个新的染色体。这三个算子一般都按一定的种群复制(或选择)概率、交配概率和变异概率随机地进行,造成遗传中的子代和父代的差异。4) 算法的控制参数包括种群的规模M、交配率Pc和变异率Pm。,遗传算法的计算步骤,用遗传算法求解工程优化设计问题的基本步骤如下:1) 确定寻优参数,进行编码。编码时先要设置编码长度;2) 随机产生一组初始解
14、(即个体)组成初始种群。初始种群中个体的数目称作初始种群的规模;3) 计算种群中各个个体的目标函数值及其相应的适应度函数值;4) 形成匹配集。根据种群中各个染色体的适应度函数值,采取一定的选择方法,从种群中选出适应值较大的个染色体(其中有些染色体是重复的),称这个染色体的集合即为匹配集。这一过程即为选择操作。5) 按某种复制规则进行繁殖。由匹配集中的个染色体繁殖产生个新的染色体,得到一个新的种群。繁殖方法主要有两种:交叉和变异。6)若遗传代数(迭代次数)达到给定的允许值或其它收敛条件已满足时停止遗传,否则返回步骤3)。,上述遗传算法的计算过程可用下图表示,遗传算法流程图,目前,遗传算法的终止条
15、件的主要判据有以下几种:1) 判别遗传算法进化代数是否达到预定的最大代数;2) 判别遗传搜索是否已找到某个较优的染色体;3) 判别各染色体的适应度函数值是否已趋于稳定、再上升否等。,遗传算法实现的几个技术问题,编码编码是应用遗传算法时要解决的首要问题,同时编码方法在很大程度上决定了如何进行群体的遗传进化运算以及遗传进化运算的效率。因此编码是设计遗传算法时的一个关键步骤。1) 编码方法由于遗传算法应用的广泛性,迄今为止人们已经提出了很多不同的编码方法。总的来说,这些编码方法可以分成三大类:二进制编码方法、浮点数编码方法和符号编码方法。,二进制编码方法是遗传算法中最常用的一种编码方法,它使用的编码
16、符号集是由二进制符号0和1所组成的符号集0,1,它所构成的个体基因是一个二进制编码符号串。二进制编码方法编码、解码操作简单易行,交叉、变异等操作便于实现。例如:对于 可以用5位长的二进制编码来表示该参数,编码串X=01101就可以表示一个个体,其对应的参数值x=13。缺点:高维搜索时,二进制编码串非常长,使得算法的搜索效率很低。求解精度确定后难以调整,缺乏微调的功能。,所谓浮点数编码方法,是指个体的每个基因值用某一范围内的一个浮点数来表示,个体的编码长度等于设计变量的个数。因为这种编码方法使用的是设计变量的真实值,所以浮点数编码方法也叫真值编码方法。与二进制编码法相比,浮点数编码方法更适合表示
17、范围较大的数和较大空间的遗传搜索。而且便于遗传算法与经典优化方法的混合使用,改善了遗传算法的计算复杂性,提高了运算效率。用浮点数编码时应注意:保证基因值在给定的区间限制范围内;使用遗传算子时,保证产生的新个体基因也在同一限制范围内;多个字节表示一个基因时,交叉运算必须在两个分界字节进行。,符号编码方法是指个体染色体编码串中的基因值取自一个无数值含义,而只用代码含义的符号集。这个符号集可以是一个数字序号表,如1,2,3,4,;也可以是一个字母表,如A,B,C,D,等。对于使用符号编码方法的遗传算法,一般需要认真设计交叉、变异等遗传运算的操作方法,以满足问题的各种约束要求,这样才能提高算法的搜索性
18、能。,2)编码串长度 使用二进制编码来表示个体时,编码串长度的选取与问题所要求的求解精度有关;使用浮点数编码来表示个体时,编码串长度与决策变量的个数相等;使用符号编码来表示个体时,编码串长度由问题的编码方式来确定;另外,也可使用变长度的编码来表示个体。,初始种群的确定 确定初始种群的第一步是定义染色体的个数,用表示,一般建议取x20100;第二步是随机产生个初始染色体,常用如下两种方法 1) 根据问题要求,确定每个设计变量 的变化范围,从而得到一个包含最优解的m维超立方体(不一定是整个可行域)。从该超立方体中随机产生一定数目的可行个体,然后挑选出最好的个体加到初始种群中。这个过程不断迭代,直到
19、初始种群中个数达到了预先确定的规模,即得到了M个可行的初始染色体 Z1,Z2,Zm。,2) 首先求出可行域的一个点,即一个可行个体,记为 Z0。然后确定一个足够大的数G,以使遗传操作能遍及整个可行域。该大数G还将在变异操作中得到应用。接着,再产生M个初始染色体:在m维实空间Rm 中,随机选择一个方向H,并检验Z0+GH的可行性,若可行,即在可行域内,将Z0+GH作为一个染色体;否则,将取G为0,G区间内的一个随机数,直到Z0+GH可行为止。重复以上过程M次,便可产生M个初始染色体Z1,Z2,Zm 。,适应度函数(fitness) 遗传算法中使用适应度这个概念来度量群体中各个体在优化计算中可能达
20、到或接近于或有助于找到最优解的优良程度。适应度较高的个体遗传到下一代的概率比较大;而适应度较低的个体遗传到下一代的概率就相对小一些。度量个体适应度的函数称为适应度函数. 对于函数优化问题,必须将优化问题的目标函数f(x)与个体的适应度函数F(x)建立一定的映射关系,且遵循两个基本原则:(1)适应度函数的值不小于零;(2)优化过程中目标函数变化方向应与群体进化过程中适应度函数的变化方向一致。,式中,Cmax为一个适当的相对比较大的数,可以是预先指定的一个较大的数,也可以是当前带或最近几代群体中的最大目标函数值。 特别地,当优化目标是求函数最大值,并且目标函数总取正值时,可以直接设定个体的适应度函
21、数F(X)就等于相应的目标函数f(x),即 F(X)=f(x),遗传算子 在遗传算法中,通过编码组成初始群体后,遗传操作的任务就是对群体的个体按照它们对环境适应的程度(适应度评估)施加一定的操作,从而实现优胜劣汰的进化过程。从优化搜索的角度而言,遗传操作可使问题的解一代又一代地优化,并逼近最优解。 遗传算法遗传操作包括复制(选择)、交叉和变异等三个基本遗传算子。,1)复制算子(Selection) 遗传算法中的复制操作就是用来确定如何从父代群体中按某种方法选取哪些个体遗传到下一代群体中的一种遗传运算。复制操作是建立在群体中个体的适应度评估基础上的,即个体的适应度越高,其性能越好、越符合要求,因
22、而被复制的机会就越多;反之,适应度低的个体,其被选择的机会也就越少,甚至被淘汰。 为了进行复制操作,需要对种群中的每个个体设定一个复制概率,使该个体被复制的可能性与其在种群中的适应性成比例,即适应性强的个体被选择复制的可能性越大。这里介绍两种设定个体复制概率的常用方法。,(2-1),图2-2 基于排序的轮盘赌选择法,2) 交叉算子(crossover),3) 变异算子(mutation),约束条件的处理,fanhui,2.3 遗传算法的应用,表 11-3 初始可行的染色体及其目标值和适应度值,表 11-4 复制概率及累积概率,表 11-5 经复制所得的新种群 表 11-6 经交叉操作获得的种群,表 11-7 经变异操作获得的种群,谢谢观看/欢迎下载,BY FAITH I MEAN A VISION OF GOOD ONE CHERISHES AND THE ENTHUSIASM THAT PUSHES ONE TO SEEK ITS FULFILLMENT REGARDLESS OF OBSTACLES. BY FAITH I BY FAITH,