- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
遗传算法及其MATLAB实现 第4组 唐煦尧 朱萌萌 廉馨 目录 概念及背景知识 流程图 算法 应用程序 * * 遗传算法的概念最早是由Bagley J.D 于1967年提出的。后来Michigan大学的J.H.Holland教授于1975年开始对遗传算法(Genetic Algorithm, GA)的机理进行系统化的研究。遗传算法是对达尔文生物进化理论的简单模拟,其遵循“适者生存”、“优胜略汰”的原理。遗传算法是一种通过模拟自然进化过程搜索最优解的方法。 它被提出以来,在函数优化、生产调度、模式识别、神经网络、自适应控制等领域得到了广泛的应用,大大提高了问题求解的效率。 现实生活中很多问题都可以转换为函数优化问题,遗传算法则大大提高了求解全局最优解的效率,具有很高的价值。 概念及背景知识 流程图 初始化数据 统计计算 选择 交叉 突变 遗传 迭代结束? 否 结束 是 例题:求max f(x(1),x(2))=21.5+x(1)*sin(4πx(1))+x(2)*sin(20πx(2)) -3.0≤x(1)≤12.1 s.t. 4.1≤x(2)≤5.8 函数f(x1,x2)的三维图形如图所示。 (1)编码 首先要进行编码工作,即将变量转化成二进制数串。数串的长度取决于所要求的精度。例如,变量x的区间是(L,U),要求的精度是小数点后4位,也就意味着每个变量应该被分成至少(L,U)*10^4个部分。对一个变量的二进制数串位数用以下公式计算: 本例精度要求保留小数点后4位,则目标函数的两个自变量x1及x2所构成的染色体数串可以表示如下: 本例中任一染色体数串都是33位,即000001010100101001101111011111110. 以上编码前18位表示x1,后15位表示x2,如下表所示。 则二进制转化成十进制为 假设初始种群中有10个个体,其染色体可随机生成如下: 相对应的十进制的实际值[x1,x2]为 * (2)评价个体适应度 对一个染色体数串的适应度的评价由以下三个步骤组成: ①将染色体串进行解码,转换成真实值,即: ②评价目标函数f= -f(x) ③将目标函数值转为适应度,上述染色体的适应度值如下: * 依照染色体的适应度值进行新种群的复制,步骤如下: ①计算染色体的适应度值 ②计算种群的适应度值总和: ③计算每个染色体被复制的概率: ④计算每个染色体被复制的累积概率: (3)新种群复制 依照轮盘选择法,转动轮盘10次(种群中有10条染色体),每次选择一个作为新种群的染色体。假设10次中产生的0~1随机数序列如下: 0.301431 0.322062 0.766503 0.881893 0.350871 0.538392 0.177618 0.343242 0.032685 0.197577 根据以上的计算方法,可以先计算出种群中每个染色体的适应度和概率,如下表所列。利用计算机模拟轮盘选择法,假设计算机产生10个[0,1]区间的随机数列如下: 第1个随机数为0.301431,大于Q3小于Q4,所以U4被选中; 第2个随机数为0.322062,大于Q3小于Q4,所以U4再次被选中; …… 第10个随机数为0.197577,大于Q1小于Q2,所以被U2选中; 依照轮盘选择法,新种群的染色体组成如下: 这种轮盘选择法的机理是:染色体的适应度大意味着[Qk,Qk+1]区间跨度就大,随机数发生器产生的均匀随机数就会有更大的概率落在较大长度的[Qk,Qk+1]区间里,这样具有较大Pk值的染色体自然更有机会复制到下一代。 * (4)新种群交配 ①交配染色体数量的确定 交配染色体数量=染色体总量×交配概率 [10 × 0.25]=2 即交配染色体数目为2 ②交配染色体对象的确立 用计算机产生[0,1]区间的10个随机数,确定其分别对应10个个体,其中低于交配概率的参加交配。 ③在交配池发生交配 (5)基因突变 假设突变几率P为0.01,亦即种群内所有基因都有0.01的概率进行突变。本例中共有33×10=330个基因,即希望每一代中有3.3个突变基因,每个基因的突变概率是均等的。因此,将产生330个介于0~1之间的随机数,然后将该随机数小于0.01者选出,并
原创力文档


文档评论(0)