毕业设计(论文)遗传算法求复杂函数极值问题

上传人:仙*** 文档编号:78232416 上传时间:2022-04-21 格式:DOC 页数:34 大小:359.51KB
收藏 版权申诉 举报 下载
毕业设计(论文)遗传算法求复杂函数极值问题_第1页
第1页 / 共34页
毕业设计(论文)遗传算法求复杂函数极值问题_第2页
第2页 / 共34页
毕业设计(论文)遗传算法求复杂函数极值问题_第3页
第3页 / 共34页
资源描述:

《毕业设计(论文)遗传算法求复杂函数极值问题》由会员分享,可在线阅读,更多相关《毕业设计(论文)遗传算法求复杂函数极值问题(34页珍藏版)》请在装配图网上搜索。

1、苏州大学自学考试毕业论文(设计)遗传算法求复杂函数极值问题中文摘要:本文首先介绍遗传算法的历史背景,基本思想,对遗传算法的常见的编码解码方法进行了深入的阐述,并对算子选择方法进行深入分析和对比,在此基础上把遗传算法应用于求解复杂函数的极值计算。最后在MATLAB语言环境下编写程序,对求解函数的最大值进行了仿真,并对调试的结果进行了分析,得出了部分结论。关键词:遗传算法 最优解 算子选择 复杂函数 作者:xx xx 指导老师:xxxx xxUsing Genetic Algorithm to Solve Extreme Problem of Complex Function AbstractFi

2、rstly, the historical background and basic idea of genetic algorithm are introduced in this paper. The common coding and decoding method of genetic algorithm are discussed too.Secondly, the selection method of genetic operator is analyzed and compared deeply, based on which genetic algorithm is used

3、 to solve extreme problem of complex function.Finally, with MATLAB software, the program is compiled and the maximum is sought out. At the end of the paper, the debugging result is analyzed and the conclusion is given. Keywords: Genetic Algorithm Optimal Solution Operator Selection Complex Function

4、Written by : xx xx Supervised by: xxxx xx 目 录第一章 绪论 (5)1.1 遗传算法生物学背景(5)1.1.1 遗传与变异(5)1.1.2 进化 (5)1.2 本文主要内容 (5)第二章 遗传算法简介 (6)2.1 遗传算法历史和发展(6)2.2 遗传算法的基本原理(6)2.3 遗传算法的特点(7)2.4 遗传算法的目的(7)2.5 遗传算法应用(8)第三章 遗传算法的参数和算子选择(10)3.1 遗传算法的数学理论(10)3.2 编码(11)3.2.1 编码方法 (11)3.2.2 编码原则 (13)3.3 个体适应度函数 (13)3.3.1 评价个

5、体适应 (13)3.2.2 适应度尺度变换(14)3.3 算子选择(14)3.3.1 选择运算 (14)3.3.2 交叉运算(16)3.3.3 变异运算(18)3.4 其他运行参数 (18)第四章 遗传算法求解复杂函数极值问题 (20)4.1 遗传算法的求解步骤(20)4.2 算例验证 (24)第五章 结论(28)参考文献(28)附录(程序)(29) 第一章 绪 论1.1遗传算法生物学背景生物的进化是一个奇妙的优化过程,它通过选择淘汰,突然变异,基因遗传等规律产生适应环境变化的优良物种。遗传算法是根据生物进化思想而启发得出的一种全局优化算法。1.1.1 遗传与变异1、遗传世间的生物从其亲代继承

6、特性或性状,这种生命现象叫遗传,研究这种生命现象的科学叫做遗传学。遗传信息是由基因组成的,生物的各种性状由其相应基因来控制,基因是遗传的基本单位。细胞分裂具有自我复制的能力,在细胞分裂的过程中,其遗传基因也同时被复制到下一代,从而其性状也被下一代所继承。2、变异 细胞在分裂时,遗传物质DNA通过复制而转移到新产生的细胞中,新细胞就继承了旧细胞的基因,在进行细胞复制时,虽然概率很小,但也有可能产生某些复制差错,从而使DNA发生某种变异产生出新的染色体,从而表现出新的性状。1.1.2 进化 生物在其延续生存的过程中,逐渐适应于其生存环境,使得其品质不断得到改良,这种现象叫做进化。新的基因依据其与环

7、境的适应程度决定其增殖能力,有利于生存环境的基因逐渐增加,而不利于生存环境的基因逐渐减少,通过这种自然的选择,物种渐渐的向适应于生存环境的方向进化,从而产生优良的物种。1.2 本文主要内容 本文主要讨论遗传算法在实际数值函数优化问题中的应用,即对实际问题建模后求函数最大值的问题。遗传算法通过对群体所施加的迭代进化过程,不断的将当前群体中具有较高适应度的个体遗传到下一代群体中,并且不断的淘汰掉适应度较低的个体,从而最终寻求出适应度最大的个体。这个适应度最大的个体经解码处理之后所对应的个体表现型即为实际问题最优解或是最近似最优解第二章 遗传算法简介 2.1 历史与发展二十世纪六十年代,I.Rech

8、enberg在他的演化战略中第一次引入了进化算法的思想(起初称之为Evolutionsstragegie)。他的这一思想逐渐被其他一些研究者发展。遗传算法(Genetic Algorithms) 是John Holland 发明的,后来他和他的学生及他的同事又不断发展了它。终于,在1975年John Holland 出版了专著自然系统和人工系统中的自适应(Adaption In Natural and Artificial Systems)。1992年,John Koza 曾经使用遗传算法编出新的程序去做一些具体的工作。他称他的这种方法为“进化规划”(Genetic Programming,简

9、称GP)。其中使用了LISP规划方法,这是因为这种语言中的程序被表示为“分析树”(Parse Tree),而这种遗传算法就是以这些分析树为对象的。2.2 遗传算法的基本原理: 遗传算法GA把问题的解表示成“染色体”,在算法中也即是以二进制编码的串。并且,在执行遗传算法之前,给出一群“染色体”,也即是假设解。然后,把这些假设解置于问题的“环境”中,并按适者生存的原则,从中选择出较适应环境的“染色体”进行复制,再通过交叉,变异过程产生更适应环境的新一代“染色体”群。这样,一代一代地进化,最后就会收敛到最适应环境的一个“染色体”上,它就是问题的最优解。这里所指的某种结束准则一般是指个体的适应度达到给

10、定的阀值;或者个体的适应度的变化率为零。图2-1中表示了遗传算法的执行过程。图2-1 遗传算法基本原理2.3 遗传算法特点:(1) 遗传算法的操作对象是一组可行解,而非单个可行解;搜索轨道有多条,而非单条,因此具有良好的并行性。(2) 遗传算法只需利用目标函数取值信息,而无须梯度等高价信息,因而实用用于大规模高度非线形的不连续多峰值函数的优化以及无解析表达式的目标函数的优化,具有很强的通用性。(3) 遗传算法的择优机制是一种“软“策略,加上其良好的并行性使其具有良好的全局优化性能和稳健性鲁棒性。(4) 遗传算法的可行解集是经过编码的,目标函数可解释为编码化个体的适应值因而具有良好的可操作性与简

11、单性。2.4 遗传算法的目的典型的遗传算法CGA(Canonical Genetic Algorithm)通常用于解决下面这一类的静态最优化问题:考虑对于一群长度为L的二进制编码bi,i1,2,n;有 bi0,1L给定目标函数f,有f(bi),并且760F(BI) 同时 f(bi)f(bi+1)求满足下式maxf(bi)|bi0,1L 的bi。很明显,遗传算法是一种最优化方法,它通过进化和遗传机理,从给出的原始解群中,不断进化产生新的解,最后收敛到一个特定的串bi处,即求出最优解。2.5 遗传算法的应用 遗传算法已经在很多复杂问题(比如说NP-难题)、机器学习和简单的进化规划中得到了使用。遗传

12、算法在一些艺术领域也取得了很大成就,比如说进化图片和进化音乐。 遗传算法的优势在于他的并行性。遗传算法在搜索空间中非常独立地移动(按照基因型而不是表现型),所以它几乎不可能像其它算法那样“粘”在局部极值点。 遗传算法更容易实现。一旦你有了一个遗传算法的程序,如果你想解决一个新的问题,你只需要针对新的问题重新进行基因编码就行。如果编码方法也相同,那你只需要改变一下适应度函数就可以了。当然,选择编码方法和适应度函数是一件非常难的问题。 遗传算法的缺点是它的计算时间太长。它们可能比其他任何算法需要的时间都长。当然,对于今天的高速计算机来说,这已经不是个大问题了。 为了让读者更好地了解遗传算法所解决的

13、问题,这里有一个关于遗传算法应用的小列表: (1)非线性动态系统预测,数据分析; (2)神经网络的结构和权重设计; (3)自动控制导弹的轨道设计; (4)进化LISP规划(遗传规划); (5)战略计划; (6)蛋白质分子的形状的寻找; (7)旅行商问题和时间序列排序问题; 第三章 遗传算法的主要参数及算子选择3.1 遗传算法的数学理论3.1.1 模式定理 遗传算法中,在选择,交叉和变异算子的作用下,具有低阶,短的定义长度,并且平均适应度高于群体平均适应度的模式将按指数级增加。其中:(1) 模式表示一些相似的模块,它描述了在某些位置上具有相似结构特征的个体编码串的一个子集。(2) 在模式H中具有

14、确定基因值的位置数目叫做该模式的模式阶。(3) 模式H中第一个确定基因值的位置和最后一个确定基因值的位置之间的距离称为该模式的模式定义长度。模式定理阐述了遗传算法的理论基础,它说明了模式的增加规律,同时也给遗传算法的应用提供了指导作用。3.1.2 积木块假设 模式定理说明了具有某种结构特征的模式在遗传进化过程中其样本数将按指数级增加,这种模式具有低阶,短的定义长度,且平均适应度高于群体平均适应度的模式。这种模式被称为积木块。 模式定理说明了积木块的样本数呈指数级增长,也说明了用遗传算法寻求最优化样本的可能性,但它并未指明遗传算法一定能够寻求到最优样本而积木块假设却说明了遗传算法的这种能力。定义

15、:个体的基因块通过选择,交叉,变异等遗传算子的作用,能够相互连接在一起,形成适应度更高的个体编码串。作用:积木块假设说明了用遗传算法求解各类问题的基本思想,即通过基因块之间的相互拼接能够产生出问题更好的解。基于模式定理和积木块假设,就使得我们能够在很多应用问题中广泛的使用遗传算法的思想。3.2 编码定义:遗传算法中如何描述问题的可行解,即把一个问题的可行解从其解空间转换到遗传算法所能处理的搜索空间的转换方法就称为编码作用: 编码是应用遗传算法时要解决的首要问题,也是设计遗传算法时的一个关键步骤。编码方法除了决定了个体的染色体排列形式之外还决定个体从搜索空间的基因型变换到解空间的表现性时的解码方

16、法,编码方法也影响到交叉算子和变异算子的遗传算法的运算方法。由此看见,编码方法在很大程度上决定了如何进行群体的遗传化运算及遗传进化运算效率。3.2.1编码方法1、二进制编码方法定义:二进制编码方法是遗传算法中最常见的一种编码方法,它使用的编码符号集是由二进制符号0和1所组成的二值符号集0,1,它所构成的基因型是一个二进制符号串。在使用二进制编码时,每一个基因就是一个由0或者1组成的字符串。 表 3-1二进制编码的基因 基因A 101100101100101011100101 基因B 111111100000110000011111 使用二进制编码时,即使等位基因的数量不大,我们也可以得到很多种

17、可能的基因。另一方面,这种方法对于很多问题来都很不自然,所以有时候在交叉和变异结束后还要做一些调整。 2、格雷码编码方法定义:格雷码是这样的一种编码方法,其连续2个整数所对应的编码值之间仅仅只有一个码位是不相同的,其余码位都相同。假设有一个二近制编码为B=bmbm-1b2b1,其对应的格雷码为G=gmgm-1.g2g1。由二进制编码到格雷码换算公式为: 公式(3-1)由格雷码到二进制转换公式为: 公式(3-2)格雷码优点:(1) 便于提高遗传算法的局部搜索能力(2) 交叉,变异等遗传操作便于实现(3) 符合最小字符串编码原则(4) 便于利用模式定理对算法进行理论分析3、浮点数编码方法定义:所谓

18、浮点数编码方法是指个体的每个基因值用某一范围内的一个浮点数来表示,个体的编码长度等于其决策变量的个数。例如:若一个优化问题含有5个变量xi ( I=1,2,5)每个变量都有其对应的上下限Umin,Umax,则:X: 5.80 6.90 3.50 3.80 5.00就表示一个体的基因型。其对应的表现型是:X =5.80 , 6.90 , 3.50 , 3.80 , 5.00T浮点数编码方法有下面几个优点:(1) 适合于在遗传算法中表示范围较大的数。(2) 适合于精度要求较高的遗传算法(3) 便于较大空间的遗传搜索(4) 改善了遗传算法的计算复杂性,提高了运算效率(5) 便于遗传算法和经典油画方法

19、的混合使用(6) 便于设计针对问题的专门知识的知识型遗传算子(7) 便于处理复杂的决策变量约束条件4、值编码(Value Encoding) 在很多问题中我们还可以采用直接的值编码,也就是说用一些比较复杂的数来编码,比如说实数。因为二进制编码在这类问题中不好用。 在值编码中,每个基因就是一串取值。这些取值可以是与问题有关任何值:整数,实数,字符或者其他一些更复杂的东西。 表3-2值编码串基因A 1.2324 5.3243 0.4556 2.3293 2.4545 基因B ABDJEIFJDHDIERJFDLDF 基因C (back), (back), (right), (forward), (

20、left) 3.2.2 编码原则(1) 应使用能易于产生所求问题相关的且具有低阶短定义长度模式的编码方案。(2) 应使用能使问题得到自然表示和描述的具有最小字符的编码方案。3.3 求适应度函数3.3.1 评价个体适应度定义:遗传算法中使用适应度这个概念来衡量群体中各个个体在优化计算中有可能达到或接近或有助于找到最优解的优良程度。适应度较高的个体遗传到下一代的概率教大,反之遗传到下一代的概率相对小一些。度量个体适应度的函数叫做适应度函数。评价个体适应度的一般过程:(1) 对个体编码串进行解码处理后,可得到个体表现型。(2) 由个体表现型可计算出对应个体的目标函数值。(3) 根据最优化问题的类型,

21、由目标函数值按一定的转换规则求出个体的适应度。3.3.2 适应度尺度变换在遗传算法中各个个体被遗传到下一代群体中的概率由该个体的适应度来决定。如何确定适应度对遗传算法的性能有很大的影响。在遗传算法运行的初期阶段,算法能够对一些适应度教高的个体进行控制,降低其适应度与其他个体适应度之间的差异程度,从而限制其复制数量,以维护群体的多样性。我们希望在遗传算法运行的后期阶段,算法能够对个体的适应度进行适当的放大,扩大最佳个体适应度与其他个体适应度之间的差异程度,以提高个体之间的竞争性。适应度尺度变换方法:(1) 线性尺度变换公式为: F=aF+b (32)其中,F为原适应度,F”为新适应度,a,b为系

22、数。线性尺度变换的选取条件:a.尺度变换后全个体的新适应度的平均值Favg要等于原适应度平均值Favg。b.尺度变换后群体中新的最大适应度Fmax要等于原平均适应度Favg的指定倍数。(2) 乘幂尺度变换公式为: F=FK (3-3)幂指数K与所求解的问题有关,并且在算法的执行中需要不断对其进行修正才能使尺度变换满足一定的伸缩要求。(3) 指数尺度变换公式为: F=exp(-F) (3-4)其中决定了选择的强制性,越小,原有适应度较高的个体的新适应度就越与其他个体的新适应度相差越大,亦即越增加了选择该个体的强制性。3.4算子选择 遗传算法中的选择操作就是用来确定如何从父代群体中按某种方法选取哪

23、些个体遗传到下一代群体中一种遗传运算。选择操作建立在对个体的适应度进行评价的基础之上,选择操作的目的是为了避免基因缺失,提高全局收敛性和计算效率。3.4.1 选择运算(1) 比例选择方法:是一种回放式随机采样方法。各个个体被选中的概率与其适应度大小成正比。设群体大小为M,个体I的适应度为Fi则个体被选种的概率Pis为:pis=Fi/Fi (I=1,2.M) (3-5)由此可见,适应度越高的个体被选种的概率也越大,反之适应度越低的个体被选种的概率也越小。(2) 最优保存策略:当前群体中适应度最高的个体不参与交叉运算和变异运算,而是 它来替代掉本代群体中经过交叉变异等遗传操作后所产生适应度最低的个

24、体。我们希望适应度最好的个体要尽可能保留到下一代群体中。最优保存策略进化模型的具体操作过程是:a. 找出当前群体中适应度最高的个体和适应度最低的个体。b. 若当前群体中最佳个体的适应度比总的迄今为止的最好个体适应度还要高,则以当前群体中的最佳个体做为新的迄今为止的最好个体。c. 用迄今为止的最好个体替换掉当前群体中最差个体。作用: 该策略的实施可保证迄今为止所得到的最优个体不会被交叉,变异等遗传运算所破坏,它遗传算法收敛性的一个重要保证条件。(3) 排序选择主要思想是:对群体中所有个体按其适应度大小进行排序,基于这个排序来分配各个个体被选中的概率,具体操作过如下:a. 对群体中的所有个体按其适

25、应度大小进行降序排序。b. 根据具体问题,设计一个概率分配表将各个概率值按上述排列次序分配给各个个体。c. 以各个分配到的概率值做为其能够遗传到下一代的概率,基于这些概率值用比例选择(赌轮选择)的方法产生下一代群体。(4)轮盘赌选择方法(Roulette Wheel Selection) 父代的选择是根据他们的适应度做出的。基因越是适应环境,那么它被选择到的机会就越大。想像一个轮盘赌的机器上放置了种群中所有的基因。每一个基因所占的地方的大小和它的适应度成正比。如下图所示:图3-1 赌轮算法示意图然后开始扔弹子,扔到那个地方就把对应的基因拿出来。显然,适应度越大的基因被选到的机会就越大。这个过程

26、可以被下面的这个算法来模拟:1求和 计算所有种群的适应度的和S; 2选择 在区间(0,S)上随机的产生一个数r; 3循环 从某个基因开始,逐一取出基因来,把它的适应度加到s上去(s开始为0),如果s大于r,则停止循环并返回当前基因; 当然,第一步在计算中只需要执行一次。3.4.2交叉算子 遗传算法中的所谓交叉运算,是指对两个相互配对的染色体按某种方式相互交换其部分基因,从而形成2个新的个体,交叉运算是遗传算法区别其他进化算法的重要特征,它在遗传算法中起关键作用,是产生新个体的主要方法。交叉算子的设计过程:1如何确定交叉点的位置2如何进行部分基因交换 最常用的交叉算子是单点交叉算子。下面介绍集中

27、适合于二进制编码个体或浮点数编码个体的交叉算子:(1) 单点交叉:它是指个体编码串中只随即设置一个交叉点然后在该点相互交换2个配对个体的部分染色体。特点:假如邻接基因座之间的关系能够提供比较好的个体性状和较高的个体适应度的话则这个单点交叉操作破坏这种个体性状和降低个体适应度的可能性最小。(2) 双点交叉和多点交叉:是指定个体编码串中随机设置2个或多个交叉点然后进行部分基因交换。具体操作过程:1在相互配对的两个个体编码串中随机设置2个交叉点2交换2个个体在所设定的两个交叉点之间的部分染色体。例如: A: x x | x x x x x | x x x -A: x x | y y y y y| x

28、 x x B: y y | y y y y y | y y y-B: y y | x x x x x| y y y 交叉点1 交叉点2 双点交叉示意图11001011 + 11011111 = 11011111 图(3-2) 均匀交叉算子 (Uniform Crossover):子代基因的每一个位点是随机地来自于两个父代基因中的一个的; 均匀交叉示意图11001011 + 11011101 = 11011111 图(3-3)3.4.3 变异算子遗传算法中所谓变异运算是指个体染色体编码串中某些基因座上的基因值用该基因座的其他等位基因替换,从而形成新个体。 位点转换算子(Bit Inversion

29、):选择一些位点然后将这些地方的0,1互换; 图(3-4)在遗传算法中使用变异算子的目的:1 改善遗传算法局部搜索能力2维持群体多样性,防止出现早熟现象变异算子的常用方法:a、基本位变异:指对个体基因串以变异概率随机指定某一位或几位基因座上的基因值做变异运算b、均匀变异:指分别用符合某一范围内随机数,以某一较小概率来替换个体编码串中各个基因座上的原有基因值。c、 边界变异:边界变异是上述均匀变异操作的一个变形遗传算法。在进行边界变异操作时,随机的取基因座的2个对应边界基因值之一去替换原来的基因值。d、非均匀变异:对每个基因座都以相同的概率进行变异运算之后相当于整个解向量在解空间中,作了一个轻微

30、的变动。3.5 遗传算法的其他运行参数(1) 编码串长度L:使用二进制来表示个体时,编码串长度L的选取与问题所要求的求解精度有关。(2) 群体大小M:表示群体中所含个体的数量。M取值越小可提运算速度但降低群体多样性。容易引起遗传算法的早熟现象,而当M取值较大时降低了遗传算法的运行效率。一般建议范围20-100。(3) 交叉概率Pc。交叉操作是遗传算法中产生新个体的主要方法,一般建议范围是0.4-0.99。随着遗传算法在线性能的提高可以增大交叉概率的取值。(4) 变异概率Pm。一般建议范围是0.00010.1,随着遗传算法在线性能的下降,可以减小变异概率的取值(5) 终止带宽T它表示遗传算法运行

31、到指定的进化代数之后就停止运行并将最佳个体作为所求问题的最优解输出。建议范围是1001000(6) 代沟G:表示每一代群体中被替换掉的个体在全部个体中所占的百分比。 第四章:用遗传算法求解复杂函数极值问题本课题采用遗传算法求解函数最大值问题,应用常规的二进度编码,利用赌轮算法选择最忧群体,进行交叉变异等遗传操作,最终求出所求函数最大值即最忧解,最后在MATLAB语言环境下进行调试,更改相关参数,得出几组最忧解图象并进行对比分析。 所求问题为f(x)=x+9*sin(4x)+8*cos(3x)的最大值,其中定义域为5=x=12,采用二进制编码,选取种群个体数目为20,设定二进制编码长度为10,交

32、叉概率为0.8,变异概率是0.01。4.1 本算例的求解步骤(1) 确定决策变量和约束条件【问题】求f(x)= 11*sin(6*x)+7*cos(5*x)的最大值,其中0=x 2 (个体表现型)00000000 (个体基因型) - 0 (个体表现型)111111111+00000000=11011111 (产生的新个体)种群的各个个体两两配对后以交叉概率Pc=0.8随机指定各个基因位进行交叉运算即生成新个体种群。假如邻接基因座之间的关系能够提供比较好的个体性状和较高的个体适应的话则这个单点交叉操作破坏这种个体性状和降低个体适应度的可能性最小变异运算使用第三章的基本位变异算子确定遗根据生物遗传

33、中基因变异的原理,以变异概率Pm对某些个体的某些位执行变异。在变异时,对执行变异的串的对应位求反,即把1变为0,把0变为1。变异概率Pm与生物变异极小的情况一致,所以,Pm的取值较小,一般取0.01-0.2。 经交叉运算得到的新个体基因串种群以变异概率Pm=0.01随机指定有一位或几位基因座上的基因值进行变异操作.11011111-11101011 (生成的新个体)以变异概率分别对每个或者几个基因位做变异操作就可以生成新的种群个体。单靠变异不能在求解中得到好处。但是,它能保证算法过程不会产生无法进化的单一群体。因为在所有的个体一样时,交叉是无法产生新的个体的,这时只能靠变异产生新的个体。也就是

34、说,变异增加了全局优化的特质。遗传算法的运行参数群体大小:M (20-100)终止代数:T (100-500)交叉概率:Pc (0.4-0.99)变异概率:Pm (0.0001-0.1)4.2 算例验证【问题】求f(x)= 11*sin(6*x)+7*cos(5*x)的最大值,其中0=x0temp=Cmin+objvalue(i);elsetemp=0.0;endfitvalue(i)=temp;endfitvalue=fitvalue;% 2.4 选择复制% 选择或复制操作是决定哪些个体可以进入下一代。程序中采用赌轮盘选择法选择,这种方法较易实现。% 根据方程 pi=fi/fi=fi/fsu

35、m ,选择步骤:% 1)在第 t 代,由(1)式计算 fsum 和 pi % 2)产生 0,1 的随机数 rand( .),求 s=rand( .)*fsum% 3)求 fis 中最小的 k ,则第 k 个个体被选中% 4)进行 N 次2)、3)操作,得到 N 个个体,成为第 t=t+1 代种群%遗传算法子程序% selection.m选择复制function newpop=selection(pop,fitvalue)totalfit=sum(fitvalue);%求适应值之和fitvalue=fitvalue/totalfit;%单个个体被选择的概率fitvalue=cumsum(fitv

36、alue); %如 fitvalue=1 2 3 4,则 cumsum(fitvalue)=1 3 6 10 px,py=size(pop);ms=sort(rand(px,1); %从小到大排列,将rand(px,1)产生的一列随机数变成轮盘赌形式的表示方法,由小到大排列fitin=1; %fivalue是一向量,fitin代表向量中元素位,即fitvalue(fitin)代表第fitin个个体的单个个体被选择的概率newin=1; %同理while newin=pxif(ms(newin)fitvalue(fitin) %ms(newin)表示的是ms列向量中第newin位数值,小于fitvalue(fitin)newpop(newin,:)=pop(fitin,:); %赋值 ,即将旧种群中 的第fitin个个体保留到下一代(newpop)newin=newin+1;elsefitin=fitin+1;endend% 2.5 交叉% 交叉(crossover),群体中的每个个体之间都以一定的概率 pc 交叉,即两个个体从各自字符串的某一位置% (一般是随机确定)开始互相交换,这类似生物进化过程中的基因分裂与重组。例

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!