当前位置:文档之家› 遗传算法的研究及应用毕业设计

遗传算法的研究及应用毕业设计

毕业设计遗传算法的研究及应用摘要本文分为三部分:第一部分:遗传算法的概述。

主要介绍了遗传算法的基本思想、遗传算法的构成要素、遗传算法的特点、遗传算法的基本模型、遗传算法的应用情况及今后的研究方向等等的内容。

第二部分:基于Matlab 7.0下的遗传算法求解函数最值问题。

遗传算法作为一种新的优化方法,广泛地用于计算科学、模式识别和智能故障诊断等方面,它适用于解决复杂的非线性和多维空间寻优问题,近年来也得到了较为广阔的应用。

本人选择了函数优化这个应用领域,按照遗传算法的步骤,即编码、解码、计算适应度(函数值)、选择复制运算、交叉运算和变异运算,对函数进行求解最值。

第三部分:对遗传算法求函数最值问题的改进。

这部分主要针对本文第二部分进行改进,通过改变基本遗传算法运行参数值,如改变交叉概率Pc值和变异概率Pm值,从而使最优值更加接近相对标准下函数的最值。

关键词:遗传算法适应度交叉概率变异概率目录1 前言 (1)2 遗传算法概述 (1)2.1生物进化理论和遗传学的基本知识 (1)2.2遗传算法的基本思想 (3)2.3遗传算法的构成要素 (3)2.3.1 染色体编码方法 (3)2.3.2 适应度函数 (4)2.3.3 遗传算子 (4)2.3.4 基本遗传算法运行参数 (5)2.4遗传算法的特点 (6)2.5遗传算法的基本模型 (7)2.6遗传算法的应用 (8)2.7遗传算法今后的研究方向 (10)3 基于MATLAB 7.0下的遗传算法求解函数最值问题 (11)3.1遗传算法的标准函数 (11)3.2解题步骤说明 (12)3.2.1 编码问题 (12)3.2.2 选择运算 (12)3.2.3 交叉运算 (13)3.2.4 变异运算 (13)3.3运行参数说明 (14)3.4对遗传算法求得的最值的分析 (14)3.5运行程序以及对其解释 (14)3.6从数学的角度求解函数最优值 (18)3.6.1 自变量x以0.2为步进单位 (18)3.6.2 自变量x以0.1为步进单位 (19)3.6.3 自变量x以更精确的数为步进单位 (21)4 对遗传算法求解函数最值问题的改进 (21)4.1寻找求得最优解的运行参数值 (22)4.1.1 当Pc=0.9和Pm=0.0001 (22)4.1.2 当Pc=0.9和Pm=0.001 (23)4.1.3 当Pc=0.9和Pm=0.01 (24)4.1.4 当Pc=0.9和Pm=0.1 (26)4.1.5 当Pc=0.4和Pm=0.1 (27)5 结论 (29)参考文献 (30)ABSTRACT (31)附录 (32)致谢 (38)仲恺农业工程学院毕业论文(设计)成绩评定表 (39)1 前言生命科学与工程科学的相互交叉、相互渗透和相互促进是近代科学技术发展的一个显著特点,而遗传算法的蓬勃发展正体现了科学发展的这一特征和趋势。

遗传算法(Genetic Algorithm---GA),是模拟达尔文的遗传选择和自然淘汰的生物进化过程的计算模型,它是由美国Michigan大学的J.Holland教授于1975年首先提出的。

J.Holland教授和他的研究小组围绕遗传算法进行研究的宗旨有两个:一是抽取和解释自然系统的自适应过程,二是设计具有自然系统机理的人工系统。

毫无疑问,J.Holland 教授的研究无论对自然系统还是对人工系统都是十分有意义的。

众所周知,在人工智能领域中,有不少问题需要在复杂而庞大的搜索空间中寻找最优解或准最优解。

因此,研究能在搜索过程中自动获取和积累有关搜索空间的知识,并自适应地控制搜索过程,从而得到最优解或准最优解的通用搜索算法一直是令人瞩目的课题。

遗传算法就是这种特别有效的算法。

它的主要特点是简单、通用、鲁棒性强,适用于并行分布处理,应用范围广。

尽管遗传算法本身在理论和应用方法上仍有许多待进一步研究的问题,但它在组合优化问题求解、自适应控制、规划设计、机器学习和人工生命等领域的应用中已发展现了其特色和魅力。

2 遗传算法概述2.1 生物进化理论和遗传学的基本知识在介绍遗传算法之前,有必要了解有关的生物进化理论和遗传学的基本知识。

达尔文的生物进化论告诉我们,“适者生存,优胜劣汰”。

在生物自然环境中,生物种群的自然繁衍,生存,发展,最终取决于它对自然环境的适应能力。

当一个种群相对其他种群,对周围的环境能够显示出良好的适应能力,它将在生物竞争中处于优势地位,获取较大的生存机会,反之,该种群则趋向于消亡。

所以,一个种群的优异的适应能力是该种群得以繁衍发展的根本。

从达尔文的进化论我们可以看出,生物环境对生物的进化主要通过三个途径来进行:选择,交叉和变异。

遗传算法是一种模拟生物进化过程的学习方法,它操作的对象是由多个个体构成的种群,通过对种群中的成员模拟生物进化的方式来产生下一代种群,新种群总是在旧种群的基础上获得改进和提高,周而复始,从而使得种群的整体质量朝着优良的方向发展。

由于遗传算法是借鉴生物进化的思想,所以,遗传算法仍然沿用生物学中的一些术语。

染色体:它是遗传算法中运行的最基本的单位,是特定问题在算法中的表现形式,一般由二进制的数串所组成;基因:它是染色体的最小组成单位,在二进制数串中它由一个数位来表示;基因片:多个基因构成基因片;种群:种群是由多个染色体构成的集合,它的数目称之为种群规模;适应度:适应度反映了染色体所蕴涵的问题解质量的优劣,一般来说,染色体的适应度是一个非负数;适应度函数:染色体到适应度之间的映射关系;选择:遗传算子之一,是算法基于适应度对染色体进行优胜劣汰的操作过程;交叉:遗传算子之一,是算法产生新个体的途径之一,又称之为基因重组;变异:遗传算子之一,是算法产生新个体的途径之一,是小概率发生事件。

遗传算法所借鉴的生物学基础就是生物的遗传、变异和进化。

遗传---世间的生物从其父代继承特性或性状,这种生命现象就称为遗传。

生物的遗传方式有以下三个:(1) 复制生物的主要遗传方式是复制。

遗传过程中,父代的遗传物质DNA被复制到子代。

即细胞在分裂时,遗传物质DNA通过复制而转移到新生的细胞中,新细胞就继承了旧细胞的基因。

(2) 交叉有性生殖生物在繁殖下一代时,两个同源染色体之间通过交叉而重组,亦即在两个染色体的某一相同位置处DNA被切断,其前后两串分别交叉组合而形成两个新的染色体。

(3) 变异在进行细胞复制时,虽然概率很小,仅仅有可能产生某些复制差错,从而使DNA发生某种变异,产生出新的染色体。

这些新的染色体表现出新的性状。

生物的不同品种都属于变异,在丰富多彩的生物界中,蕴含着形形色色的变异现象。

在这些变异现象中,有的仅仅是由于环境因素的影响造成的,并没有引起生物体内的遗传物质的变化,因而不能够遗传下去,属于不遗传的变异。

有的变异现象是由于生殖细胞内的遗传物质的改变引起的,因而能够遗传给后代,属于可遗传的变异。

敌酋上的生物,都是经过长期进化而形成的。

根据达尔文的自然选择学说,地球上的生物具有很强的繁殖能力。

在繁殖过程中,大多数生物通过遗传,使物种保持相似的后代;部分生物由于变异,后代具有明显差别,甚至形成新物种。

正是由于生物的不断繁殖后代,生物数目大量增加,而自然界中生物赖以生存的资源却是有限的。

因此,为了生存,生物就需要竞争。

生物在生存竞争中,根据对环境的适应能力,适者生存,不适者消亡。

自然界中的生物,就是根据这种优胜劣汰的原则,不断地进行进化。

2.2 遗传算法的基本思想遗传算法实质上是一种繁衍、监测和评价的迭代算法。

它一般要包含以下几个处理步骤:(1) 对问题的解进行编码,即用染色体表示问题的可能潜在解,生成经过编码的初始种群,适应度函数因优化问题的目标函数而定;(2) 根据适应度大小挑选个体进行遗传操作; (3) 按照适者生存和优胜劣汰的原理逐代演化,得到问题的最优解或近似最优解。

每个个体在种群演化过程中都被评价优劣并得到其适应度值,个体在选择、交叉以及变异算子的作用下向更高的适应度进化以达到寻求问题最优解的目标。

2.3 遗传算法的构成要素遗传算法中包含五个基本要素,即染色体的编码方法、适应度函数、遗传算子、基本遗传算法运行参数及约束条件的处理。

每个要素对应不同的环境有各种相应的设计策略和方法,而不同的策略和方法决定了相应的遗传算法具有不同的特征。

2.3.1 染色体编码方法遗传算法不能直接处理问题空间的参数,而需要把问题的可行解从其解空间转换到遗传算法所能处理的搜索空间中,这一转换方法就称为编码。

一般来说,由于遗传算法的鲁棒性,它对编码的要求并不苛刻。

但由于编码的方法对于个体的染色体排列形式,以及个体从搜索空间的基因型到解空间的表现型的转换和遗传算子的运算都有很大影响,因此编码方法在很大程度上决定了如何进行群体的遗传进化运算以及遗传进化运算的效率。

针对一个具体应用问题,如何设计一种完美的编码方案是遗传算法的应用难点,而目前还没有一套既严密又完整的指导理论及评价准则能帮我们设计编码方案。

对于实际应用问题,仍须对编码方法、选择运算方法、交叉运算方法、变异运算方法、解码方法统一考虑,以寻求到一种对问题的描述最为方便、遗传运算效率最高的编码方案。

在目前看来,人们已经提出了许多种不同的编码方法,主要有:二进制编码、格雷码和浮点数编码等等[2]。

2.3.2 适应度函数适应度函数指为了体现染色体的适应能力,引入了对问题中的每一个染色体都能进行度量的函数。

遗传算法在进化搜索中基本不利用外部信息,仅以种群中每个个体的适应度函数值为依据进行搜索,因此适应度函数的选取至关重要。

遗传算法常常将目标函数直接作为适应度函数,但由于在执行选择操作时,它要按与个体适应度成正比的概率来决定当前群体中每个个体遗传到下一代群体中的几率,而要正确计算此概率,要求所有个体的适应度值必须非负[3]。

2.3.3 遗传算子(1) 选择算子选择操作建立在对个体的适应度进行评价的基础之上,适应度较高的个体被遗传到下一代群体中的概率较大;适应度较低的个体被遗传到下一代群体中的概率较小,因而可以避免有效基因的损失,使高性能的个体得以较大的概率生存,从而提高全局收敛性和计算效率。

最常用的选择算子是比例选择算子,它是以正比于个体适应度值的概率来选择相应的个体。

另外还有比较常用的选择算子还有:最优保存策略选择、排序选择和随机联赛选择。

(2) 交叉算子遗传算法中,在交叉运算之前还必须先对群体中的个体进行随机配对,然后在这些配对个体组中两个个体之间进行交叉操作。

交叉算子用于组合产生新的个体,它要求对个体编码串中的优良模式不能有太多的破坏并且能有效的产生出一些较好的新个体模式,以便在解空间中能进行有效搜索,且保证对有效模式的破坏概率较小。

最常用的交叉算子有单点交叉算子和算术交叉算子。

相关主题