机械优化设计_第1页
机械优化设计_第2页
机械优化设计_第3页
机械优化设计_第4页
机械优化设计_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

机械优化设计1. 机械优化设计基本思路1.1优化问题概述在保证基本机械性能的基础上,借助计算机,应用一些精度较高的力学/ 数学规划方法进行分析计算,让某项机械设计在规定的各种设计限制条件下,优选设计参数,使某项或几项设计指标(外观、形状、结构、重量、成本、承载能力、动力特性等)获得最优值。机械优化设计的过程:(l)分析设计变量,提出目标函数,确定约束条件,建立优化设计的数学模型;(2)选择适当的优化方法,编写优化程序;(3)准备必须的初始数据并上机计算,对计算机求得的结果进行必要的分析。优化方法的选择取决于数学模型的特点,如优化设计问题规模的大小、目标函数和约束函数的性态以及计算精度等,在选择各种可用的优化方法时,需要考虑的问题是优化方法本身的适应性和计算机执行该程序时所花费的时间和费用。一般认为,对于目标函数和约束函数均为显函数且设计变量个数不太多的问题,可选用罚函数法;对于只含有线性约束的非线性规划问题,可选用梯度投影法;对于函数易于求导的问题,可选用可行方向法;对于难以求导的问题则应选用直接法,如复合形法。1.2传统优化算法概述根据对约束条件处理的方式不同,可将传统的约束优化方法分为直接法和间接法两大类。直接法通常适用于只含不等式约束的优化问题,它是在可行域内直接搜索可行的最优点的优化方法,如复合形法、随机方向法、可行方向法和广义简约梯度法。间接法是目前在机械优化设计中应用较为广泛的一种优化方法,其基本思路是将约束优化问题转化成一个或一系列无约束优化问题,再进行无约束优化计算,从而间接地搜索到原约束问题的最优解。如惩罚函数法和增广拉格朗日乘子法。1.2.1直接法复合形法是一种求解约束优化问题的重要的直接解法,其基本思想是在 n 维设计空间内构造以 k 个可行点为顶点的超多面体,即复合形。对各个顶点所对应的目标函数值进行比较,将目标函数值最大的顶点,即最坏点去掉,然后按照一定的法则求出目标函数值有所下降的可行的新点,并以此点代替最坏点,构成新的复合形。如此重复,直至复合形缩小到一定的精度,即可停止迭代,获得最优解。随机方向法是一种原理很简单的直接解法,其基本思想是在可行域内任意选一初始点,然后利用随机数的概率特性产生若干个随机方向,并从中选出一个使目标函数值下降最快的随机方向作为搜索方向进行搜索。约束变尺度法是一种最先进的非线性规划计算方法,它将二次规划、线性近似、拉格朗日乘子、罚函数、变尺度以及不确定搜索这些方法有效地结合在一起,其基本思想是首先对优化问题产生拉格朗日函数,然后利用该函数在每个迭代点构造一个带有不等式约束条件的二次规划子问题,由于该子问题不易求解析解,所以只能借助于数值方法求解其极值,以每次迭代的二次规划子问题的极值解作为此次迭代的搜索方向,同时采用不精确一维搜索确定搜索步长因子,产生新的迭代点,经过一系列迭代后,最终逼近原问题的最优解。广义简约梯度法是一种求解一般非线性规划问题的有效方法,其基本思想是在优化问题中引进松弛变量,在起作用的约束集合中,将不等式约束转化为等式约束,并且保留变量的上、下边界值,将原问题转化为只有等式约束和边界约束的数学规划问题。将设计变量分为基变量和非基变量两部分,利用目标函数对非基变量的简约梯度构造该次迭代的搜索方向,沿此方向进行一维搜索以确定步长,从而获得新的迭代点。对于非线性约束条件,需要不断运用牛顿法向边界投影,以确保起作用约束条件的交界处向最优点逼近。1.2.2间接法惩罚函数法(Sequential Unconstrained Minimization Technique,SUMT),即 SUMT 是一种使用广泛的、有效的间接解法,其基本思想是将约束优化问题中的等式和不等式约束函数经过加权转化后,和原目标函数结合形成一个新的目标函数惩罚函数,然后通过求解该惩罚函数的无约束极小值,以期望得到原问题的约束最优解。根据迭代过程是否在可行域内进行,惩罚函数又可分为内点惩罚函数法、外点惩罚函数法和混合惩罚函数法三种。增广拉格朗日乘子法也是求解非线性优化问题的有效方法之一,其主要思想是把惩罚函数与拉格朗日乘子法相结合,即在惩罚函数中引入拉格朗日乘子或者说是在拉格朗日函数中引入惩罚项。当采用外点惩罚函数时,试图在惩罚因子不超过某个适当大的正数的情况下,通过调节拉格朗日乘子,逐次求解无约束优化问题的最优解,并使之逐渐逼近原约束问题的最优解。1.3现代优化方法随着 20 世纪 70 年代初期计算机复杂性理论的形成,科学工作者发现并证明了大量来源于实际的组合最优化问题是非常难求解的,针对大规模组合优化问题,传统优化方法已显得无能为力了。20 世纪 80 年代初期,应运而生出现了一系列现代优化方法,如遗传算法、模拟退火算法、蚁群算法等。它们的共性是基于客观世界中一些自然现象,通过与组合最优化求解进行类比,找出一些共性,以此为基础建立相应的算法。这些算法的目标是希望能够求解 NP 完全问题的全局最优解,具有一定的普适性,可用于解决大量实际应用问题。其基本内容介绍如下。2. 遗传算法遗传算法(Genetic Algorithm, GA)是模拟生命进化机制搜索和优化,并将自然遗传学和计算机科学结合的优化方法。美国Michigan大学的JOHNHHOLLAND (1975)首先提出了GA的概念和方法,其依据是以生物界中基因的遗传变异及达尔文的自然选择和适者生存原理,对问题进行随机的进化操作,逐步迭代寻求问题最优解的方法,目前应用范围几乎涉及到传统优化方法难以解决的优化问题。2.1遗传算法的基本概念一般的遗传算法由四个部分组成:编码机制、控制参数、适应度函数、遗传算子。(1)编码机制(encoding mechanism)GA不是对研究对象直接进行讨论,而是通过某种编码机制把对象统一赋于有特定符号按一定顺序排成的串(string)。正如研究生物遗传,是从染色体着手,染色体则是由基因排成的串。串的集合构成群体,个体就是串。在优化问题,一个串对应一个可能的解;在分类问题中,串可解释为一个规则。目前有二进制编码、实数编码、结构编码等。(2)适应度函数(fitness function)优胜劣汰是自然进化的原则。优、劣要有标准。在GA中,用适应度函数描述每一个个体的适宜程度。引进适应度函数的目的在于可根据其适应度对个体进行评估比较,定出优劣程度。适应度函数可分为原始适应度函数和标准适应度函数。原始适应度函数是问题求解目标的直接表示,通常采用问题的目标函数作为个体的适应性度量;标准适应度函数是将原始适应度函数作一个适当的变换以转换成标准的度量方式,即皆化为极大化情形,并且适应值非负。(3)遗传算子(genetic operator)遗传算法有三个遗传算子:选择、交叉、变异。(a)选择算子也称复制(reproduction)算子,它的作用在于根据个体的优劣程度决定它在下一代是被淘汰还是被选择。一般的说,适应度高即优良个体有较大的选择机会,而适应度小即低劣的个体继续存在的机会也较小。选择策略有适应值比例选择、排名选择、局部竞争机制选择等。(b)交叉算子交叉的最简单方法是从群体中随机取出两个字符串(父辈个体),并随机确定一个交叉点,将交叉点两个字符串的右段互相交换,从而形成两个新串(后代)。杂交方式一般有一点交叉、两点交叉、均匀交叉、基于顺序交叉等。(c)变异算子它的作用是随机地改变字符串的某个位置上的字符。如在二进制编码的字符串中,某位置字符0变为1,或1变为0。变异有均匀性变异、正态性变异、非一致性变异、自适应性变异和多级变异。(4)控制参数(control parameters)在GA的实际操作时,需适当确定某些参数的值以提高选优的效果。这些参数是:(a)字符串所含字符的个数L,即串长。(b)每一代群体的大小N,即所包含字符串的个数,也称群体的规模。(c)交叉率(crossover rate)Pc,即施行交叉算子的概率。(d)突变率(mutation)Pm,即施行突变算子的概率。根据经验,对于算子执行重叠的算法,即遗传操作产生的新的个体替代上一代中部分较差的个体,而生成新的种群,算法的主要控制参数取值范围一般为:N=20100,Pc=060095,Pm=0001001(或取1/L,此处L为串长);对于算子执行非重叠的算法,即用后代替换掉整个群体产生新种群,取值范围一般为:N=20100,Pc=0507,Pm=0204。2.2遗传算法的实现目前,遗传算法经过改进已有各种不同形式的遗传算法,一般把John Holland于1975年提出的遗传算法称作标准的遗传算法(Simple GA,简称GA),现就SGA应用在机械优化设计的主要步骤简述如下。(1)建立优化数学模型。就是把机械设计的具体问题用数学关系表达出来及准确地描述出来。具体地讲,就是确定设计变量、目标函数以及约束函数。其数学模型为maxF(X)X=x1,x2,xnTstgu(X)0u=1,2,phv(X)=0v=p+1,p+2,p+m(2)编码的确定。遗传算法求解问题不是直接作用在问题的解空间上,而是利用某种编码表示。GA在求解之前,首先确定合适的编码方式,如二进制编码,将问题的所有设计变量编码成子串,再将子串连成一定长度的串,即染色体,一个串对应一个设计点,即设计空间的一个解。选择何种编码表示有时将对算法的性能、效率等产生很大的影响。(3)适应函数的确定。适应值是对解的质量的一种度量,用以反映个体对问题环境适应能力的强弱。适应函数是个体竞争的测度,控制个体的生存的机会。一般以目标函数的形式表示。(4)选择策略的确定。选择体现了优胜劣汰的自然法则,适应值越高的个体被选择的机会就越多。一般采用适应值比例选择,具体地讲,个体的选择概率为pi=fi/ni=1fi,其中fi为个体的适应值,ni=1fi为个体适应值的总和。实践证明,不同的选择策略对算法的性能也有较大的影响。(5)交叉。交叉是遗传算法的重要的遗传算子,目的是产生新的基因组合,形成新的个体。SGA采用的是一点交叉,即随机地在两个父串上选择一个交叉点,然后交换这两个对应子串。如设两个父串为1=(10111010),2=(01011011),随机交叉点是5,交换1,2的子串(010)与(011)得到两个新串1=(10111011)和2=(01011010)。交叉体现了自然界中信息交换的思想。(6)突变。交叉完成后即可进行突变操作,突变是按位进行的,即以概率pm改变串上的某一位,以二进制串为例:串0101001突变0101101突变的目的在于增强GA的搜索最优解的能力,通过突变操作,可确保群体中个体的多样性,有效的防止算法的早熟收敛。但过多的突变会使GA退化为随机搜索。(7)终止判据的确定。目前,确定遗传算法终止条件的主要判据有以下几个:(a)判断GA进化是否达到了预定的最大代数;(b)GA是否找到了较优的个体,即问题的较优的解;(c)个体的适应值是否已趋于稳定,而无改进。(8)最优解的确定:若找到的最优解或次优解满意,则结束;否则,修改数学模型或调整GA的各控制参数,直到求出最优解。2.3遗传算法的特点遗传算法具有十分顽强的鲁棒性,这是因为遗传算法与其它普通的优化搜索方法相比,采用了许多独特的技术和方法,其主要特点如下:(1)GA 的自组织、自适应和自学习性(智能性)。应用遗传算法求解问题时,在确定编码方案、适应度函数以及遗传算子后,遗传算法将利用进化过程中获得的信息自行组织搜索,由于基于自然系统的选择策略为“优胜劣汰”,因而适应度大的个体具有较高的生存概率。通常适应度大的个体具有更适应环境的基因结构,再通过基因重组和基因突变等遗传操作,就可能产生更适应环境的后代。遗传算法的这种自组织、自适应特性,使它同时具有能根据环境变化来自动发现环境的特性和规律的能力。自然选择消除了算法设计过程中的一个最大障碍,即需要事先描述问题的全部特点,并要说明针对问题的不同特点算法应采取的措施。因此,利用遗传算法可以解决复杂的非线性规划问题。(2)GA 的处理对象不是参数本身,而是参变量编码后的染色体串。编码操作使得遗传算法可直接对结构对象进行操作。所谓结构对象泛指集合、序列、矩阵、树、图、链和表等各种一维或二维或三维结构形式的对象。这一特点,使得遗传算法具有广泛的应用领域。通过对树结构的操作,用遗传算法可得到用于分类的最佳决策树。(3)通过对任务序列的操作,遗传算法可用于规划,而通过对序列的处理,遗传算法可自动构造顺序控制系统。(4)GA 同时搜索解空间中的一群点,而非单个点。如同在解空间中撒网一样,GA 同时对空间中的不同区域采样,并构成不断进化的群体序列,或者说 GA 并行地爬多个山峰。而许多传统搜索方法都是单点搜索方法,即通过一些变动规则,问题的解从搜索空间中的当前解转移到另一个解。对于多峰值分布的搜索空间常常会陷于局部的某个单峰的优化解。而遗传算法同时处理多个解,并行爬多个峰,从而使其具有较好的全局搜索性能,减少陷入局部解的可能。同时,这使遗传算法本身也十分易于并行化。(5)在 GA 中,基本上不用搜索空间的知识或其它辅助信息,而仅用适应度函数值对个体进行评估,并在此基础上进行遗传操作。需要着重提出的是:遗传算法的适应度函数不仅不受连续可微的约束,而且其定义域可以任意设定。对适应度函数的唯一要求是:对于输入可计算出加以比较的正的输出,这一特点使得遗传算法的应用范围大大扩展。GA 不是采用确定性规则,而是采用概率的变迁规则来指导搜索方向。遗传算法采用概率仅仅是作为一种工具来指导其搜索过程朝着搜索空间的更优的解空间移动。因此遗传算法虽然看起来采用的是一种盲目的搜索方法,但实际上具有明确的搜索方向。(6)GA 对给定问题,可以产生许多潜在解,最终选择可以由使用者确定。遗传算法对于确认可替代解集而言是特别合适的。同时,GA 算法亦存在过早收敛和易陷入局部最优的问题。基于上述特点,GA 算法适用于大规模、高度非线性的不连续多峰函数的优化以及无解析表达式的目标函数的优化。2.4改进的遗传算法如何提高遗传算法跳出局部最优的能力和如何提高遗传算法的收敛速度成为近年来遗传算法的研究热点,许多学者从不同的角度对遗传算法进行了改进,使遗传算法的寻优能力有了不同程度的提高。而对遗传算法的研究主要集中在数学基础、各环节的实现方式以及与其他算法的结合方面,其中,尤以遗传算法与其他算法相结合方面的研究最为引人关注。由于遗传算法具有开放式的结构,与同题的关联性不大,很容易和其它算法进行结合,所以融合了其它的算法思想和遗传算法思想的混合遗传算法成了目前改进遗传算法研究的一个重要方向。模拟退火遗传算法:模拟退火算法的基本思想是通过模拟高温物体退火过程的方法,来找到优化问题的全局最优或近似全局最优解。遗传算法的局部搜索能力较差,但把握搜索过程总体的能力较强,而模拟退火算法具有较强的局部搜索能力,并能使搜索过程避免陷入局部最优解,但它却对整个搜索空间的了解不多,不便于使搜索过程进入最有希望的搜索区域,从而使得模拟退火算法的运算效率不高。但如果将遗传算法和模拟退火算法相结合,互相取长补短,则有可能开发出性能优良的新的全局搜索算法。目前,已有许多学者将退火机制引入到遗传操作中,使遗传操作产生优良个体的概率增加,并使遗传算法的寻优能力有了明显的提高。模糊遗传算法:模糊遗传算法,即融合模糊优化设计思想的遗传算法,它把模糊优化和遗传算法优化结合起来,构成一种混合优化的设计方法。其目的是利用模糊优化设计的优点,克服一般遗传算法优化设计存在的不足,从而使得系统的优化设计更灵活、方便,取得好的设计效果。模糊遗传算法运用模糊控制的思想,来自适应改变遗传算法的种群规模、交叉概率、变异概率、适应度函数以及控制策略等。混沌遗传算法:混沌是自然界广泛存在的一种非线性现象,它充分体现了系统的复杂性。混沌运动具有类似随机变量的杂乱表现,具有随机性。混沌运动的上述性质作为避免陷入局部极小的优化搜索机制,恰好可以弥补遗传算法易陷入局部最优、收敛速度慢的缺陷。可以利用混沌的遍历性产生初始种群,也可以对优良个体进行变异操作,从而增强了遗传算法的全局寻优能力。此外,遗传算法的全局搜索能力及免疫算法的局部优化相配合的免疫遗传算法;用小生境思想来实现遗传算法的选择操作,使遗传算法的全局寻优能力得到了明显提高的小生境遗传算法;量子计算思想与遗传算法结合的产物的量子遗传算法,可使量子遗传算法表现出比标准遗传算法更好的种群多样性、更强的全局搜索能力和更快的收敛速度。蜜蜂进化型遗传算法中,种群的最优个体作为蜂王与被选的每个个体(雄蜂)以概率进行交叉操作,增强了对种群最优个体所包含信息的开采能力,结果表明,蜜蜂进化型遗传算法是一种提高遗传算法性能的有效改进算法。2.5遗传算法在机械工程中的应用前景遗传算法作为一种非确定性的模拟自然演化的学习过程的求解问题方法,在很多领域具有广泛的应用价值,其在机械工程领域的应用前景主要体现在以下几个方面:(1)与 CAD 技术相结合,解决总体方案设计方面的优化问题;(2)利用遗传算法的组合优化特性解决机械系统中多种系列化标准件的组合选取问题;(3)将遗传算法和计算机仿真技术相结合,对工程实际问题中难以确定的参数进行编码,以原设计产品的性能和数学模型的仿真性能之间的差异最小为目标函数,求解符合原设计要求的设计参数与工艺参数;(4)用遗传算法进行系统可靠度分配,从而使机械系统获得最高的可靠性;(5)以能耗降低到最小为目标,运用遗传算法进行节能设计,使设备在满足功能要求的条件下达到最佳效果。虽然遗传算法在很多方面还有待于进一步的研究、探讨和完善,但是,随着计算机技术的进步和生物学研究的深入,遗传算法在操作技术和方法上将更加通用、更加有效,并且在机械工程领域的应用也会越来越广泛。3. 模拟退火法模拟退火算法(Simulate Anneal Arithmetic,SAA)是一种通用概率演算法,用来在一个大的搜寻空间内找寻命题的最优解。模拟退火是S.Kirkpatrick, C.D.Gelatt和M.P.Vecchi在1983年所发明。而V.erný在1985年也独立发明此演算法。模拟退火算法是解决TSP问题的有效方法之一。模拟退火的原理也和金属退火的原理近似:将热力学的理论套用到统计学上,将搜寻空间内每一点想像成空气内的分子;分子的能量,就是它本身的动能;而搜寻空间内的每一点,也像空气分子一样带有“能量”,以表示该点对命题的合适程度。演算法先以搜寻空间内一个任意点作起始:每一步先选择一个“邻居”,然后再计算从现有位置到达“邻居”的概率。3.1模拟退火法的实现模拟退火算法可以分解为解空间、目标函数和初始解三部分。 重要理解:假设材料在状态i之下的能量为E(i),那么材料在温度T时从状态i进入状态j就遵循如下规律:如果 E(j) E(i),则状态转移以如下的概率被接受:expE(i)-E(j)/KT其中,K 是物理学中的波尔兹曼常数,T 是材料温度。算法关键参数和操作的设定:从算法的流程上看,模拟退火算法包括三函数两准则,即状态产生函数、状态接受函数、温度更新函数、内循环终止准则和外循环终止准则,这些环节的设计将决定模拟退火算法的优化性能。此外,初温的选择对模拟退火算法性能也有很大影响。状态产生函数:原则:设计状态产生函数(领域函数)的出发点应该是尽可能保证产生的候选解遍布全部的解空间。通常,状态产生函数由两部分组成,即产生候选解的方式和候选解产生的概率分布。方法:在当前状态的领域结构内以一定概率方式(均匀分布、正态分布、指数分布等)产生。状态接受函数:原则:函数一般以概率的方式给出,不同接受函数的差别主要在于接受概率的形式不同。设计状态接受概率,应该遵循以下原则:(1)在固定温度下,接受使目标函数下降的候选解的概率要大于使目标函数上升的候选解概率;(2)随温度的下降,接受使目标函数上升的解的概率要逐渐减少;(3)当温度趋于零时,只能接受目标函数下降的解。方法:状态接受函数的引入是模拟退火算法实现全局搜索的最关键的因素,模拟退火算法中通常用 min1,exp(-C/t)作为状态接受函数。初始温度:初始温度、温度更新函数、内循环终止准则和外循环终止准则通常被称为退火历程。原则:通过理论分析可以得到初温的解析式,但解决实际问题时难以得到精确的参数;实际应用时往往要让初温充分大。实验表明:初温越大,获得高质量解的机率越大,但花费较多的计算时间。方法:(1)均匀抽样一组状态,以各状态目标值的方差为初温;(2)随机产生一组状态,确定两两状态间的最大目标差值,根据差值,利用一定的函数确定初温,譬如 t0 =-/lnPr,其中Pr 为初始接受函数;(3)利用经验公式。温度更新函数:温度更细函数,即温度的下降方式,用于在外循环中修改温度值。内循环终止准则:常用的Metropolis 抽样准则:(1)检验目标函数的均值是否稳定;(2)连续若干步的目标值变化较小;(3)按一定的步数抽样。外循环终止准则(1)设置终止温度的阈值;(2)设置外循环迭代次数;(3)算法搜索到的最优值连续若干步保持不变;(4)概率分析方法。模拟退火的基本思想:(1) 初始化:初始温度T(充分大),初始解状态S(是算法迭代的起点), 每个T值的迭代次数L(2) 对k=1,L做第(3)至第6步:(3) 产生新解S(4) 计算增量t=C(S)-C(S),其中C(S)为评价函数(5) 若t0,然后转第2步。模拟退火算法与初始值无关,算法求得的解与初始解状态S(是算法迭代的起点)无关;模拟退火算法具有渐近收敛性,已在理论上被证明是一种以概率l 收敛于全局最优解的全局优化算法;模拟退火算法具有并行性。 3.2模拟退火法参数控制问题模拟退火算法的应用很广泛,可以求解NP完全问题,但其参数难以控制,其主要问题有以下三点: (1) 温度T的初始值设置问题。 温度T的初始值设置是影响模拟退火算法全局搜索性能的重要因素之一、初始温度高,则搜索到全局最优解的可能性大,但因此要花费大量的计算时间;反之,则可节约计算时间,但全局搜索性能可能受到影响。实际应用过程中,初始温度一般需要依据实验结果进行若干次调整。 (2) 退火速度问题。 模拟退火算法的全局搜索性能也与退火速度密切相关。一般来说,同一温度下的“充分”搜索(退火)是相当必要的,但这需要计算时间。实际应用中,要针对具体问题的性质和特征设置合理的退火平衡条件。 (3) 温度管理问题。 温度管理问题也是模拟退火算法难以处理的问题之一。实际应用中,由于必须考虑计算复杂度的切实可行性等问题,常采用如下所示的降温方式: 式中k为正的略小于1.00的常数,t为降温的次数。4. 蚁群算法蚁群算法(ant colony optimization, ACO),又称蚂蚁算法,是一种用来在图中寻找优化路径的机率型算法。它由Marco Dorigo于1992年在他的博士论文中提出,其灵感来源于蚂蚁在寻找食物过程中发现路径的行为。蚁群算法是一种模拟进化算法,初步的研究表明该算法具有许多优良的性质.针对PID控制器参数优化设计问题,将蚁群算法设计的结果与遗传算法设计的结果进行了比较,数值仿真结果表明,蚁群算法具有一种新的模拟进化优化方法的有效性和应用价值。4.1蚁群算法的基本概念(1)蚁群算法中的参数:ALPHA : 启发因子,信息素的重要程度,一般取值1.0。BETA:期望因子,城市间距离的重要程度,一般取值2.0。ROU:信息素挥发系数,一般取值0.5。ANT_COUNT : 蚂蚁数量,一般取值为城市数量的2/3。CITY_COUNT:城市数量。IT_COUNT:迭代次数,就是全部蚂蚁搜索多少次,取值自己设定。Q : 信息素总量,取值多少对算法没什么影响。(2)蚂蚁类实现蚁群算法的关键是用代码实现蚂蚁的行为,我们来实现一个蚂蚁类,这个蚂蚁类应该具有以下行为。1、 初始化,蚂蚁从某个城市出发。2、 选择下一个城市。3、 移动到下一个城市。4、 如果全部城市都去过了,直接返回到出发城市,到第5步,否则再跳转到第2步。5、 计算走过的路径长度。(3)TSP类有了蚂蚁类只是实现了单个蚂蚁的行为,蚁群算法是多个蚂蚁的行为,还有更新环境信息素,输出最后结果等工作需要做,我们再定义一个TSP类。这个类完成下面工作。1、 初始化环境信息素。2、 管理多个蚂蚁,让多只蚂蚁按设定的搜索次数去搜索路径。3、 蚂蚁完成一次搜索后,更新环境信息素,同时保存下目前的最优路径。4、 输出最后结果。(4)全局变量有了上面两个类之后,还有一些工作要做,环境信息素需要保存,算法参数需要定义,城市信息的数据需要保存,这些东西都放到全局变量的定义里。4.2蚁群算法的实现Dorigo等人提出的蚂蚁群体优化的元启发式规则较好地描述了蚁群算法的实现过程,其过程可以表示为:当没有达到结束条件时,蚂蚁在一定的限制条件下寻找一条路径;轨迹(即信息激素)浓度的挥发;后台程序,主要是完成单个蚂蚁无法完成的任务,比如说根据全局信息对信息激素浓度进行更新;达到条件,结束。下面以一维搜索为例,引申到n维空间的函数优化问题中。假定优化函数为:m inZ=f(x)xa,b。设m个人工蚂蚁,刚开始时位于区间a,b的m等分处,蚂蚁从位置i转移到位置j的概率定义为pij,则:式中:fj蚂蚁j的领域吸引强度;Zij目标函数的差值,定义为fi(x)-fj(x);T,U经验系数,T,U1, 5。在得到新一代的解以后,更新方程为:fj(i+ 1)=df(i)+fjd(0, 1)。(12)式中:fj第j只蚂蚁在本次循环中吸引强度的增加;d强度的持久性。式中fj的更新按下式进行:fj=Q/Lj。式中:Q正常数, 0Q10 000;Lj本次循环中f(x)的增量,定义为f(x+r)-f(x)。于是,函数f(x)的寻优就借助m个蚂蚁的不断移动来进行:当Zij0时,蚂蚁i按概率pij从其领域i移至蚂蚁j的领域;当Zij0时,蚂蚁i做领域搜索(搜索半径或步长为r),即每个蚂蚁要么转移至其它蚂蚁处,要么进行领域搜索。由此可见,当蚂蚁的数量足够多,搜索半径足够小,这种寻优方式相当于一群蚂蚁对定义区间a,b做穷尽的搜索,逐渐收敛到问题的全局最优解。上述函数优化过程不受优化函数是否连续、是否可导等限制,较之经典搜索方法具有明显的优越性和稳定性。4.3蚁群算法的特点(1) 蚁群算法是一种自组织的算法。在系统论中,自组织和它组织是组织的两个基本分类,其区别在于组织力或组织指令是来自于系统的内部还是来 自于系统的外部,来自于系统内部的是自组织,来自于系统外部的是他组织。如果系统在获得空间的、时间的或者功能结构的过程中,没有外界的特定干预,我们便 说系统是自组织的。在抽象意义上讲,自组织就是在没有外界作用下使得系统墒增加的过程(即是系统从无序到有序的变化过程)。蚁群算法充分休现了这个过程, 以蚂蚁群体优化为例子说明。当算法开始的初期,单个的人工蚂蚁无序的寻找解,算法经过一段时间的演化,人工蚂蚁间通过信息激素的作用,自发的越来越趋向于 寻找到接近最优解的一些解,这就是一个无序到有序的过程。 (2) 蚁群算法是一种本质上并行的算法。每只蚂蚁搜索的过程彼此独立,仅通过信息激素进行通信。所以蚁群算法则可以看作是一个分布式的多agent系统,它在问题空间的多点同时开始进行独立的解搜索,不仅增加了算法的可靠性,也使得算法具有较强的全局搜索能力。 (3) 蚁群算法是一种正反馈的算法。从真实蚂蚁的觅食过程中我们不难看出,蚂蚁能够最终找到最短 路径,直接依赖于最短路径上信息激素的堆积,而信息激素的堆积却是一个正反馈的过程。对蚁群算法来说,初始时刻在环境中存在完全相同的信息激素,给予系统 一个微小扰动,使得各个边上的轨迹浓度不相同,蚂蚁构造的解就存在了优劣,算法采用的反馈方式是在较优的解经过的路径留下更多的信息激素,而更多的信息激 素又吸引了更多的蚂蚁,这个正反馈的过程使得初始的不同得到不断的扩大,同时又引导整个系统向最优解的方向进化。因此,正反馈是蚂蚁算法的重要特征,它使得算法演化过程得以进行。 (4) 蚁群算法具有较强的鲁棒性。相对于其它算法,蚁群算法对初始路线要求不高,即蚁群算法的求解结果不依赖子初始路线的选择,而且在搜索过程中不需要进行人工的调整。其次,蚁群算法的参数数目少,设置简单,易于蚁群算法应用到其它组合优化问题的求解。5. 粒子群算法粒子群算法,也称粒子群优化算法(Particle Swarm Optimization),缩写为 PSO, 是近年来发展起来的一种新的进化算法((Evolutionary Algorithm - EA)。PSO同遗传算法类似,是一种基于迭代的优化算法。系统初始化为一组随机解,通过迭代搜寻最优值。但是它没有遗传算法用的交叉(crossover)以及变异(mutation),而是粒子在解空间追随最优的粒子进行搜索。同遗传算法比较,PSO的优势在于简单容易实现并且没有许多参数需要调整。目前已广泛应用于函数优化,神经网络训练,模糊系统控制以及其他遗传算法的应用领域。5.1粒子群算法的实现PSO 初始化为一群随机粒子(随机解)。然后通过迭代找到最优解。在每一次迭代中,粒子通过跟踪两个极值来更新自己。第一个就是粒子本身所找到的最优解,这个解叫做个体极值pBest。另一个极值是整个种群目前找到的最优解,这个极值是全局极值gBest。另外也可以不用整个种群而只是用其中一部分作为粒子的邻居,那么在所有邻居中的极值就是局部极值。(1)粒子公式在找到这两个最优值时,粒子根据如下的公式来更新自己的速度和新的位置:v = w * v + c1 * rand() * (pbest - present) + c2 * rand() * (gbest - present) present = present + v v 是粒子的速度, w是惯性权重,present 是当前粒子的位置. pbest and gbest 如前定义 rand () 是介于(0, 1)之间的随机数. c1, c2 是学习因子. 通常 c1 = c2 = 2.应用PSO解决优化问题的过程中有两个重要的步骤: 问题解的编码和适应度函数。(2)基本粒子群算法的流程(a)依照初始化过程,对粒子群的随机位置和速度进行初始设定;(b)计算每个粒子的适应度;(c)对于每个粒子,将其适应度与所经历的最好位置Pi的适应度值进行比较,若较好,则将其作为当前最好位置;(d)对于每个粒子,将其适应度与全局所经历的最好位置Pg的适应度值进行比较,若较好,则将其作为全局最好位置;(e)根据两个迭代公式对粒子的速度和位置进行优化;(f)如未达到结束条件通常为足够好的适应度值或达到一个预设最大代数(Gmax),返回步骤(2);否则执行步骤(

温馨提示

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

评论

0/150

提交评论