1、1,遗传算法综述及简单应用实例及Matlab程序,2,4.1 遗传算法简介 4.1.1 遗传算法的产生与发展 4.1.2 生物进化理论和遗传学的基本知识 4.1.3 遗传算法的思路与特点 4.1.4 遗传算法的基本操作 4.1.5 遗传算法的应用 4.2 基本遗传算法 4.2.1 简单函数优化的实例 4.2.2 遗传基因型 4.2.3 适应度函数及其尺度变换 4.2.4 遗传操作选择 4.2.5 遗传操作交叉/基因重组 4.2.6 遗传操作变异 4.2.7 算法的设计与实现 4.2.8 模式定理,3,4.1 遗传算法简介,产生早在50年代,一些生物学家开始研究运用数字计算机模拟生物的自然遗传与
2、自然进化过程;1963年,德国柏林技术大学的I. Rechenberg和H. P. Schwefel,做风洞实验时,产生了进化策略的初步思想;60年代, L. J. Fogel在设计有限态自动机时提出进化规划的思想。1966年Fogel等出版了基于模拟进化的人工智能,系统阐述了进化规划的思想。,4.1.1 遗传算法的产生与发展,4,4.1 遗传算法简介,产生60年代中期,美国Michigan大学的J. H. Holland教授提出借鉴生物自然遗传的基本原理用于自然 和人工系统的自适应行为研究和串编码技术;1967年,他的学生J. D. Bagley在博士论文中首次提出“遗传算法(Genetic
3、 Algorithms)”一词;1975年,Holland出版了著名的“Adaptation in Natural and Artificial Systems”,标志遗传算法的诞生。,4.1.1 遗传算法的产生与发展,5,4.1 遗传算法简介,发展70年代初,Holland提出了“模式定理”(Schema Theorem),一般认为是“遗传算法的基本定理”,从而奠定了遗传算法研究的理论基础;1985年,在美国召开了第一届遗传算法国际会议,并且成立了国际遗传算法学会(ISGA,International Society of Genetic Algorithms);,4.1.1 遗传算法的产生
4、与发展,6,4.1 遗传算法简介,发展1988年,Holland的学生D. J. Goldherg出版了“Genetic Algorithms in Search, Optimization, and Machine Learning”,对遗传算法及其应用作了全面而系统的论述;1991年,L. Davis编辑出版了Handbook of genetic algorithms,其中包括了遗传算法在工程技术和社会生活中大量的应用实例。,4.1.1 遗传算法的产生与发展,7,4.1 遗传算法简介,达尔文的自然选择说遗传(heredity):子代和父代具有相 同或相似的性状,保证物种的稳定性;变异(v
5、ariation):子代与父代,子代不同个体之间总有差异,是生命多样性的根源;生存斗争和适者生存:具有适应性变异的个体被保留,不具适应性变异的个体被淘汰。 自然选择过程是长期的、缓慢的、连续的过程。,4.1.2 生物进化理论和遗传学的基本知识,8,4.1 遗传算法简介,遗传学(Genetics)基本概念与术语染色体(chromosome):遗传物质的载体;脱氧核糖核酸(DNA):大分子有机聚合物,双螺旋结构;遗传因子(gene):DNA或RNA长链结构中占有一定位置的基本遗传单位;,4.1.2 生物进化理论和遗传学的基本知识,9,4.1 遗传算法简介,遗传学基本概念与术语基因型(genotyp
6、e):遗传因子组合的模型;表现型(phenotype):由染色体决定性状的外部表现;,4.1.2 生物进化理论和遗传学的基本知识,10,4.1 遗传算法简介,遗传学基本概念与术语基因座(locus):遗传基因在染色体中所占据的位置,同一基因座可能有的全部基因称为等位基因(allele);个体(individual):指染色体带有特征的实体;种群(population):个体的集合,该集合内个体数称为种群的大小;,4.1.2 生物进化理论和遗传学的基本知识,11,4.1 遗传算法简介,遗传学基本概念与术语进化(evolution):生物在其延续生存的过程中,逐渐适应其生存环境,使得其品质不断得到
7、改良,这种生命现象称为进化;适应度(fitness):度量某个物种对于生存环境的适应程度。对生存环境适应程度较高的物种将获得更多的繁殖机会,而对生存环境适应程度较低的物种,其繁殖机会就会相对较少,甚至逐渐灭绝;,4.1.2 生物进化理论和遗传学的基本知识,12,4.1 遗传算法简介,遗传学基本概念与术语选择(selection):指决定以一定的概率从种群中选择若干个体的操作 ;复制(reproduction):细胞在分裂时,遗传物质DNA通过复制而转移到新产生的细胞中,新的细胞就继承了旧细胞的基因;交叉(crossover):在两个染色体的某一相同位置处DNA被切断,其前后两串分别交叉组合形成
8、两个新的染色体。又称基因重组,俗称“杂交”;,4.1.2 生物进化理论和遗传学的基本知识,13,4.1 遗传算法简介,遗传学基本概念与术语变异(mutation):在细胞进行复制时可能以很小的概率产生某些复制差错,从而使DNA发生某种变异,产生出新的染色体,这些新的染色体表现出新的性状;编码(coding):表现型到基因型的映射;解码(decoding):从基因型到表现型的映射。,4.1.2 生物进化理论和遗传学的基本知识,14,4.1 遗传算法简介,进化论与遗传学的融合 19301947年,达尔文进化论与遗传学走向融合,Th. Dobzhansky1937年发表的遗传学与物种起源是融合进化论
9、与遗传学的代表作。生物进化与智能学的关系 生物物种作为复杂系统,具有奇妙的自适应、自组织和自优化能力,这是一种生物在进化过程中体现的智能,也是人工系统梦寐以求的功能。,4.1.2 生物进化理论和遗传学的基本知识,15,4.1 遗传算法简介,遗传算法的基本思路,4.1.3 遗传算法的思路与特点,16,4.1 遗传算法简介,自组织、自适应和自学习性 在编码方案、适应度函数及遗传算子确定后,算法将利用进化过程中获得的信息自行组织搜索。本质并行性 内在并行性与内含并行性不需求导 只需目标函数和适应度函数概率转换规则 强调概率转换规则,而不是确定的转换规则,4.1.3 遗传算法的思路与特点,17,4.1
10、 遗传算法简介,简单实例产生初始种群计算适应度,4.1.4 遗传算法的基本操作,0001100000 0101111001 0000000101 1001110100 10101010101110010110 1001011011 1100000001 1001110100 0001010011,(8) (5) (2) (10) (7)(12) (5) (19) (10) (14),18,4.1 遗传算法简介,简单实例选择,4.1.4 遗传算法的基本操作,0.086957,0.054348,0.0217390.1086960.0760870.1304350.0543480.2065220.10
11、86960.152174,19,4.1 遗传算法简介,简单实例选择,4.1.4 遗传算法的基本操作,0.086957,0.054348,0.0217390.1086960.0760870.1304350.0543480.2065220.1086960.152174,0.086957,0.141304,0.163043,0.2717390.3478260.4782610.5326090.7391300.8478261.000000,20,4.1 遗传算法简介,简单实例选择在01之间产生一个随机数:,4.1.4 遗传算法的基本操作,0.086957,0.054348,0.0217390.10869
12、60.0760870.1304350.0543480.2065220.1086960.152174,0.086957,0.141304,0.163043,0.2717390.3478260.4782610.5326090.7391300.8478261.000000,0.070221,0.545929,0.784567,0.446930,0.507893,0.291198,0.716340,0.270901,0.371435,0.854641,21,0001100000 1110010110 1100000001 1001110100 10101010101110010110 10010110
13、11 1100000001 1001110100 0001010011,4.1 遗传算法简介,简单实例交叉,4.1.4 遗传算法的基本操作,0001100000 1110010110 1100000001 1001110100 10101010101110010110 1001011011 1001110100 1100000001 0001010011,0001,1110,100000,010110,111,100,0010110,1011011,110000,100111,0100,0001,1001110100,1100000001,1010101,0001010,010,011,22,
14、4.1 遗传算法简介,简单实例变异,4.1.4 遗传算法的基本操作,23,4.1 遗传算法简介,简单实例至下一代,适应度计算选择交叉变异,直至满足终止条件。,4.1.4 遗传算法的基本操作,24,4.1 遗传算法简介,选择 1.适应度计算:按比例的适应度函数(proportional fitness assignment)基于排序的适应度计算(Rank-based fitness assignment),4.1.4 遗传算法的基本操作,25,4.1 遗传算法简介,选择 2.选择算法:轮盘赌选择(roulette wheel selection)随机遍历抽样(stochastic univers
15、al selection)局部选择(local selection)截断选择(truncation selection)锦标赛选择(tournament selection),4.1.4 遗传算法的基本操作,26,4.1 遗传算法简介,交叉或基因重组 实值重组(real valued recombination):离散重组(discrete recombination)中间重组(intermediate recombination)线性重组(linear recombination)扩展线性重组(extended linear recombination),4.1.4 遗传算法的基本操作,27
16、,4.1 遗传算法简介,交叉或基因重组 二进制交叉(binary valued crossover):单点交叉(single-point crossover)多点交叉(multiple-point crossover)均匀交叉(uniform crossover)洗牌交叉(shuffle crossover)缩小代理交叉(crossover with reduced surrogate),4.1.4 遗传算法的基本操作,28,4.1 遗传算法简介,变异 实值变异 二进制变异,4.1.4 遗传算法的基本操作,29,4.1 遗传算法简介,函数优化 是遗传算法的经典应用领域;组合优化 实践证明,遗传
17、算法对于组合优化中的NP完全问题非常有效;自动控制 如基于遗传算法的模糊控制器优化设计、基于遗传算法的参数辨识、利用遗传算法进行人工神经网络的结构优化设计和权值学习等;,4.1.5 遗传算法的应用,30,4.1 遗传算法简介,机器人智能控制 遗传算法已经在移动机器人路径规划、关节机器人运动轨迹规划、机器人逆运动学求解、细胞机器人的结构优化和行动协调等;组合图像处理和模式识别 目前已在图像恢复、图像边缘持征提取、几何形状识别等方面得到了应用;,4.1.5 遗传算法的应用,31,4.1 遗传算法简介,人工生命 基于遗传算法的进化模型是研究人工生命现象的重要理论基础,遗传算法已在其进化模型、学习模型
18、、行为模型等方面显示了初步的应用能力;遗传程序设计 Koza发展了遗传程序设计的慨念,他使用了以LISP语言所表示的编码方法,基于对一种树型结构所进行的遗传操作自动生成计算机程序。,4.1.5 遗传算法的应用,32,4.1 遗传算法简介 4.1.1 遗传算法的产生与发展 4.1.2 生物进化理论和遗传学的基本知识 4.1.3 遗传算法的思路与特点 4.1.4 遗传算法的基本操作 4.1.5 遗传算法的应用 4.2 基本遗传算法 4.2.1 简单函数优化的实例 4.2.2 遗传基因型 4.2.3 适应度函数及其尺度变换 4.2.4 遗传操作选择 4.2.5 遗传操作交叉/基因重组 4.2.6 遗
19、传操作变异 4.2.7 算法的设计与实现 4.2.8 模式定理,33,4.2 基本遗传算法,问题的提出 一元函数求最大值:,4.2.1 简单函数优化的实例,34,4.2 基本遗传算法,问题的提出 用微分法求取f(x)的最大值: 解有无穷多个:,4.2.1 简单函数优化的实例,35,4.2 基本遗传算法,问题的提出 当i为奇数时xi对应局部极大值点,i为偶数时xi对应局部极小值。x19即为区间-1,2内的最大值点: 此时,函数最大值f(x19)比f(1.85)=3.85稍大。,4.2.1 简单函数优化的实例,36,4.2 基本遗传算法,编码 表现型:x 基因型:二进制编码(串长取决于求解精度)
20、串长与精度之间的关系: 若要求求解精度到6位小数,区间长度为2-(-1)3,即需将区间分为3/0.000001=3106等份。 所以编码的二进制串长应为22位。,4.2.1 简单函数优化的实例,37,4.2 基本遗传算法,产生初始种群 产生的方式:随机 产生的结果:长度为22的二进制串 产生的数量:种群的大小(规模),如30,50, 1111010011100001011000 1100110011101010101110 1010100011110010000100 1011110010011100111001 0001100101001100000011 00000110100100000
21、00000 ,4.2.1 简单函数优化的实例,38,4.2 基本遗传算法,计算适应度 不同的问题有不同的适应度计算方法 本例:直接用目标函数作为适应度函数 将某个体转化为-1,2区间的实数: s= x=0.637197 计算x的函数值(适应度): f(x)=xsin(10x)+2.0=2.586345,4.2.1 简单函数优化的实例,39,4.2 基本遗传算法,计算适应度 二进制与十进制之间的转换: 第一步,将一个二进制串(b21b20b0)转化为10进制数: 第二步,x对应的区间-1,2内的实数:,4.2.1 简单函数优化的实例,(0000000000000000000000)-1(1111
22、111111111111111111)2,40,4.2 基本遗传算法,遗传操作 选择:轮盘赌选择法; 交叉:单点交叉; 变异:小概率变异,4.2.1 简单函数优化的实例,41,4.2 基本遗传算法,模拟结果 设置的参数: 种群大小50;交叉概率0.75;变异概率0.05;最大代数200。 得到的最佳个体: smax=; xmax=1.8506; f(xmax)=3.8503;,4.2.1 简单函数优化的实例,42,4.2 基本遗传算法,模拟结果 进化的过程:,4.2.1 简单函数优化的实例,43,4.2 基本遗传算法,编码原则完备性(completeness):问题空间的所有解都能表示为所设计
23、的基因型;健全性(soundness):任何一个基因型都对应于一个可能解;非冗余性(non-redundancy):问题空间和表达空间一一对应。,4.2.2 遗传基因型,44,4.2 基本遗传算法,多种编码方式二进制编码;浮点数编码;格雷码编码;符号编码;复数编码;DNA编码等。,4.2.2 遗传基因型,45,4.2 基本遗传算法,二进制编码与浮点数编码的比较在交叉操作时,二进制编码比浮点数编码产生新个体的可能性多,而且产生的新个体不受父个体所构成的超体的限制;在变异操作时,二进制编码的种群稳定性比浮点数编码差。,4.2.2 遗传基因型,46,4.2 基本遗传算法,适应度函数的重要性 适应度函
24、数的选取直接影响遗传算法的收敛速度以及能否找到最优解。 一般而言,适应度函数是由目标函数变换而成的,对目标函数值域的某种映射变换称为适应度的尺度变换(fitness scaling)。,4.2.3 适应度函数及其尺度变换,47,4.2 基本遗传算法,适应度函数的设计单值、连续、非负、最大化合理、一致性(能够反映解的优劣)计算量小通用性强,4.2.3 适应度函数及其尺度变换,48,4.2 基本遗传算法,几种常见的适应度函数直接转换 若目标函数为最大化问题:Fit ( f (x) )= f (x) 若目标函数为最小化问题:Fit ( f (x) )= - f (x),4.2.3 适应度函数及其尺度
25、变换,49,4.2 基本遗传算法,几种常见的适应度函数界限构造法1 若目标函数为最大化问题: 若目标函数为最小化问题:,4.2.3 适应度函数及其尺度变换,50,4.2 基本遗传算法,几种常见的适应度函数界限构造法2 若目标函数为最大化问题: 若目标函数为最小化问题: c为目标函数的保守估计值。,4.2.3 适应度函数及其尺度变换,51,4.2 基本遗传算法,适应度函数的作用 适应度函数设计不当有可能出现欺骗问题: (1)进化初期,个别超常个体控制选择过程; (2)进化末期,个体差异太小导致陷入局部极值。,4.2.3 适应度函数及其尺度变换,52,4.2 基本遗传算法,适应度函数的线性变换法
26、f=*f+ 系数的确定满足以下条件: favg= favg fmax= cmult favg cmult =1.02.0, 和取适当值,以保证适应度值非负。,4.2.3 适应度函数及其尺度变换,53,4.2 基本遗传算法,适应度函数的幂函数变换法 f= f k k与所求优化问题相关,4.2.3 适应度函数及其尺度变换,54,4.2 基本遗传算法,适应度函数的指数变换法 f= e-af a决定了复制的强制性。 a越大,大适应度的个体被复制的强制性就越弱。,4.2.3 适应度函数及其尺度变换,55,4.2 基本遗传算法,几个概念选择压力(selection pressure):最佳个体选中的概率与
27、平均个体选中概率的比值;偏差(bias):个体正规化适应度与其期望再生概率的绝对差值;个体扩展(spread):单个个体子代个数的范围;多样化损失(loss of diversity):在选择阶段未选中个体数目占种群的比例;,4.2.4 遗传操作选择,56,4.2 基本遗传算法,几个概念选择强度(selection intensity):将正规高斯分布应用于选择方法,期望平均适应度;选择方差(selection variance):将正规高斯分布应用于选择方法,期望种群适应度的方差。,4.2.4 遗传操作选择,57,4.2 基本遗传算法,个体选择概率的常用分配方法按比例的适应度分配(propo
28、rtional fitness assignment) 某个体i,其适应度为fi,则其被选取的概率Pi为: 如果尺度变换不合适,可能造成早熟。,4.2.4 遗传操作选择,58,4.2 基本遗传算法,个体选择概率的常用分配方法基于排序的适应度分配(rank-based fitness assignment) 线性排序(by Baker) 为种群大小,i为个体序号,max代表选择压力。,4.2.4 遗传操作选择,59,4.2 基本遗传算法,个体选择概率的常用分配方法基于排序的适应度分配(rank-based fitness assignment) 非线性排序(by Michalewicz) i为个
29、体序号,c为排序第一的个体的选择概率。,4.2.4 遗传操作选择,60,4.2 基本遗传算法,常用选择方法轮盘赌选择法(roulette wheel selection),4.2.4 遗传操作选择,61,4.2 基本遗传算法,常用选择方法随机遍历抽样法(stochastic universal sampling),4.2.4 遗传操作选择,62,4.2 基本遗传算法,常用选择方法局部选择法(local selection) (1)线形邻集,4.2.4 遗传操作选择,63,4.2 基本遗传算法,常用选择方法局部选择法(local selection) (2)两对角邻集,4.2.4 遗传操作选择,
30、64,4.2 基本遗传算法,常用选择方法局部选择法(local selection) (2)两对角邻集,4.2.4 遗传操作选择,65,4.2 基本遗传算法,常用选择方法截断选择法(truncation selection) 个体按适应度排列,只有优秀个体能够成为父个体,参数为截断阈值(被选作父个体的百分比)。,4.2.4 遗传操作选择,66,4.2 基本遗传算法,常用选择方法锦标赛选择法(tournament selection) 随机从种群中挑选一定数目个体(竞赛规模),其中最好的个体作为父个体,此过程重复进行完成个体的选择。,4.2.4 遗传操作选择,67,4.2 基本遗传算法,常用选择
31、方法早熟现象适应度高的个体迅速繁殖,使搜索过程过早结束;种群中个体的适应度接近,导致进化过程陷入局部最优点;基本遗传算法达到收敛的代数与选择强度成反比,较高的选择强度是很好的选择方法,但太高会导致收敛过快。,4.2.4 遗传操作选择,68,4.2 基本遗传算法,实值重组离散重组 子个体的每个变量可以按等概率随机地挑选父个体。,4.2.5 遗传操作交叉/基因重组,父个体1 12 25 5父个体2 123 4 34,子个体1 123 4 5子个体2 12 4 34,69,4.2 基本遗传算法,实值重组中间重组 子个体父个体1(父个体2父个体1) 是比例因子,由-d,1+d上均匀分布地随机数产生。
32、d=0时为中间重组,一般取d=0.25。 子代的每个变量均产生一个 。,4.2.5 遗传操作交叉/基因重组,70,4.2 基本遗传算法,实值重组中间重组,4.2.5 遗传操作交叉/基因重组,父个体1 12 25 5父个体2 123 4 34,子个体1子个体2,值样本1 0.5 1.1 -0.1值样本2 0.1 0.8 0.5,120.5(12312)=67.5,67.5,251.1(425)=1.9,1.9,2.1,120.1(12312)=23.1,23.1,8.2,19.5,71,4.2 基本遗传算法,实值重组中间重组,4.2.5 遗传操作交叉/基因重组,72,4.2 基本遗传算法,实值重
33、组线性重组,4.2.5 遗传操作交叉/基因重组,父个体1 12 25 5父个体2 123 4 34,子个体1子个体2,值样本1 0.5值样本2 0.1,120.5(12312)=67.5,67.5,250.5(425)=14.5,14.5,19.5,120.1(12312)=23.1,23.1,22.9,7.9,73,4.2 基本遗传算法,实值重组线性重组,4.2.5 遗传操作交叉/基因重组,74,4.2 基本遗传算法,二进制交叉单点交叉,4.2.5 遗传操作交叉/基因重组,75,4.2 基本遗传算法,二进制交叉多点交叉,4.2.5 遗传操作交叉/基因重组,76,4.2 基本遗传算法,二进制交
34、叉均匀交叉,4.2.5 遗传操作交叉/基因重组,父个体1 0 1 1 1 0 0 1 1 0 1 0 父个体2 1 0 1 0 1 1 0 0 1 0 1,子个体1 1 1 1 0 1 1 1 1 1 1 1子个体2 0 0 1 1 0 0 0 0 0 0 0,样本1 0 1 1 0 0 0 1 1 0 1 0 样本2 1 0 0 1 1 1 0 0 1 0 1,1表示由父个体1提供变量值;0表示由父个体2提供变量值。,77,4.2 基本遗传算法,实值变异 一般采用: 二进制变异,4.2.6 遗传操作变异,78,4.2 基本遗传算法,主程序,4.2.7 算法的设计与实现,%用遗传算法进行简单函
35、数的优化clearbn=22; %个体串长度inn=50; %初始种群大小gnmax=200; %最大代数pc=0.75; %交叉概率pm=0.05; %变异概率,Continue,79,4.2 基本遗传算法,主程序,4.2.7 算法的设计与实现,%产生初始种群s=round(rand(inn,bn);%计算适应度,返回适应度f和累积概率pf,p=objf(s);,Continue,80,4.2 基本遗传算法,主程序,4.2.7 算法的设计与实现,gn=1;while gngnmax+1 for j=1:2:inn %选择操作 seln=sel(s,p); %交叉操作 scro=cro(s,s
36、eln,pc); scnew(j,:)=scro(1,:); scnew(j+1,:)=scro(2,:); %变异操作 smnew(j,:)=mut(scnew(j,:),pm); smnew(j+1,:)=mut(scnew(j+1,:),pm); end,Continue,81,4.2 基本遗传算法,主程序,4.2.7 算法的设计与实现,s=smnew; %产生了新的种群 %计算新种群的适应度 f,p=objf(s); %记录当前代最好和平均的适应度 fmax,nmax=max(f); fmean=mean(f); ymax(gn)=fmax; ymean(gn)=fmean;,Cont
37、inue,82,4.2 基本遗传算法,主程序,4.2.7 算法的设计与实现,%记录当前代的最佳个体 x=n2to10(s(nmax,:); xx=-1.0+x*3/(power(2,bn)-1); xmax(gn)=xx; gn=gn+1endgn=gn-1;,Continue,83,4.2 基本遗传算法,主程序,4.2.7 算法的设计与实现,%绘制曲线subplot(2,1,1);plot(1:gn,ymax;ymean);title(历代适应度变化,fonts,10);legend(最大适应度,平均适应度);string1=最终适应度,num2str(ymax(gn);gtext(stri
38、ng1);subplot(2,1,2);plot(1:gn,xmax,r-);legend(自变量);string2=最终自变量,num2str(xmax(gn);gtext(string2);,End,84,4.2 基本遗传算法,计算适应度和累计概率函数,4.2.7 算法的设计与实现,%计算适应度函数function f,p=objf(s);inn bn=size(s); %读取种群大小, 有inn个个体,个体长度为bn,Continue,85,4.2 基本遗传算法,计算适应度和累计概率函数,4.2.7 算法的设计与实现,for i=1:inn x=n2to10(s(i,:); %将二进制转
39、换为十进制 xx=-1.0+x*3/(power(2,bn)-1); %转化为-1,2区间的实数 f(i)=ft(xx); %计算函数值,即适应度endf=f;,Continue,86,4.2 基本遗传算法,计算适应度和累计概率函数,4.2.7 算法的设计与实现,%计算选择概率fsum=0;for i=1:inn fsum=fsum+f(i)*f(i);endfor i=1:inn ps(i)=f(i)*f(i)/fsum;end,Continue,87,4.2 基本遗传算法,计算适应度和累计概率函数,4.2.7 算法的设计与实现,%计算累积概率p(1)=ps(1);for i=2:inn p
40、(i)=p(i-1)+ps(i);endp=p;,Back to main.m,88,4.2 基本遗传算法,计算目标函数值函数,4.2.7 算法的设计与实现,%目标函数function y=ft(x);y=x.*sin(10*pi*x)+2;,Back to objf.m,89,4.2 基本遗传算法,选择操作函数,4.2.7 算法的设计与实现,%“选择”操作function seln=sel(s,p);inn=size(p,1);%从种群中选择两个个体for i=1:2 r=rand; %产生一个随机数 prand=p-r; j=1; while prand(j)0 j=j+1; end se
41、ln(i)=j; %选中个体的序号end,Back to main.m,90,4.2 基本遗传算法,交叉操作函数,4.2.7 算法的设计与实现,%“交叉”操作function scro=cro(s,seln,pc);inn bn=size(s);,Continue,91,4.2 基本遗传算法,交叉操作函数,4.2.7 算法的设计与实现,if randpc chb=ceil(rand*(bn-1); %在1,bn-1范围内随机产生一个交叉位 scro(1,:)=s(seln(1),1:chb) s(seln(2),chb+1:bn); scro(2,:)=s(seln(2),1:chb) s(s
42、eln(1),chb+1:bn);else scro(1,:)=s(seln(1),:); scro(2,:)=s(seln(2),:);end,Back to main.m,92,4.2 基本遗传算法,变异操作函数,4.2.7 算法的设计与实现,%“变异”操作function snnew=mut(snew,pm);bn=size(snew,2);snnew=snew;if randpm chb=ceil(rand*bn); %在1,bn范围内随机产生一个变异位 snnew(chb)=abs(snew(chb)-1);end,Back to main.m,93,4.2 基本遗传算法,运行程序,
43、4.2.7 算法的设计与实现,94,4.2 基本遗传算法,运行程序,4.2.7 算法的设计与实现,95,4.2 基本遗传算法,运行程序,4.2.7 算法的设计与实现,96,4.2 基本遗传算法,运行程序,4.2.7 算法的设计与实现,97,4.2 基本遗传算法,模式 将种群中的个体即基因串中的相似样板称为模式。 在二进制编码的串中,模式是基于三个字符集(0,1,*)的字符串,符号*代表任意字符,即0或1。 如模式 *1* 描述了一个四个元的子集010,011,110,111。,4.2.8 模式定理,98,4.2 基本遗传算法,模式阶和定义距 模式 H 中确定位置的个数称为模式 H 的模式阶,记作 O(H),如 O(0 1 1 * 1 *)=4。 模式阶用来反映不同模式间确定性的差异,模式阶越高,模式的确定性就越高,所匹配的样本个数就越少。,4.2.8 模式定理,99,4.2 基本遗传算法,
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。