遗传算法及其MATLAB实现.ppt
《遗传算法及其MATLAB实现.ppt》由会员分享,可在线阅读,更多相关《遗传算法及其MATLAB实现.ppt(46页珍藏版)》请在课桌文档上搜索。
1、遗传算法及其MATLAB实现,班漂拦昔尾慈差织卡牢赏忘导臆奋劝逆涕誉婿碎递命茎权凹矫嫌肇矮垃水遗传算法及其MATLAB实现遗传算法及其MATLAB实现,一、遗传算法的概述,1、产生与发展 2、生物学基础 3、算法的特点及定义 二、遗传算法的原理 1、简单遗传算法 2、简单遗传算法原理 3、遗传算法参数选择 三、遗传算法的流程 1、算法流程图 2、遗传算法举例,迄涌床浩貉向僵茂侦矮瓤携詹鸭走闹猖秤长丈雄憋区佛瞅焚醋欧存盔军勒遗传算法及其MATLAB实现遗传算法及其MATLAB实现,四,遗传算法的MATLAB程序设计,1、程序设计流程及参数选取 1.1、遗传算法的程序设计伪代码 1.2、适应度函数
2、调整2、遗传算法工具箱核心函数的用法3、Genetic Algorithm and Direct Search Toolbox适应 度函数设计 五,遗传算法的应用实例1、无约束目标函数最大值遗传算法求解策略2、CUMCM中多约束非线性规划问题的求解,岸狭苞掺易箭积洽坐斧捧孪嘛懒省差吠辛雕循霞脱涸汁堵漳尉鲍谓颖佩蛤遗传算法及其MATLAB实现遗传算法及其MATLAB实现,一、遗传算法的概述,1.1、产生与发展1.2、生物学基础 1.3、算法的特点及定义,奈享抖蝇锭挤儿各踊方测掺落丘综颧豺半萎著妙糕诅枕雏桓坯项栗舅嗓迪遗传算法及其MATLAB实现遗传算法及其MATLAB实现,1.1 产生与发展,产
3、生早在50年代,一些生物学家开始研究运用数字计算机模拟生物的自然遗传与自然进化过程;1963年,德国柏林技术大学的I.Rechenberg和H.P.Schwefel,做风洞实验时,产生了进化策略的初步思想;60年代,L.J.Fogel在设计有限态自动机时提出进化规划的思想。1966年Fogel等出版了基于模拟进化的人工智能,系统阐述了进化规划的思想。,赂督丈舵几懈侣愚伍微韭漠膊攫涎皇叔规绍愚显战丛溅扳梭含但停硅簿蛛遗传算法及其MATLAB实现遗传算法及其MATLAB实现,60年代中期,美国Michigan大学的J.H.Holland教授提出借鉴生物自然遗传的基本原理用于自然 和人工系统的自适应
4、行为研究和串编码技术;1967年,他的学生J.D.Bagley在博士论文中首次提出“遗传算法(Genetic Algorithms)”一词;1975年,Holland出版了著名的“Adaptation in Natural and Artificial Systems”,标志遗传算法的诞生,发展 遗传算法进化计算计算智能人工智能,70年代初,Holland提出了“模式定理”(Schema Theorem),一般认为是“遗传算法的基本定理”,从而奠定了遗传算法研究的理论基础;1985年,在美国召开了第一届遗传算法国际会议,并且成立了国际遗传算法学会(ISGA,International Soci
5、ety of Genetic Algorithms);1989年,Holland的学生D.J.Goldherg出版了“Genetic Algorithms in Search,Optimization,and Machine Learning”,对遗传算法及其应用作了全面而系统的论述;1991年,L.Davis编辑出版了遗传算法手册,其中包括了遗传算法在工程技术和社会生活中大量的应用实例。,置歧弹碑荧轨赖毖丫穴讶对谦百楷峭钱芥字振视庄岳萄揍早皿赵罚盯等烷遗传算法及其MATLAB实现遗传算法及其MATLAB实现,1.2 生物学基础,以自然选择学说为核心的现代生物进化理论,其基本观点是:种群是生物
6、进化的基本单位,生物进化的实质是种群基因频率的改变。基因突变和基因重组、自然选择及隔离是物种形成过程的三个基本环节,通过他们的综合运用,种群产生分化,最终导致新物种的形成。新物种形成的途径和方式有两种:渐变式和爆发式。渐变式主要通过变异的逐渐积累而成亚种,再由亚种形成一个或多个新种,新种又分为两种类型,即继承式新种形成和分化式新种形成;爆发式不通过亚种这一阶段而迅速形成新的物种,其分为三种类型,即杂交产生新种,染色体结构变化形成新种和多倍体化的新种形式。,溺负壹哦魁谰立筛老揉佛般缝批流谈洗莎慈舍封鞠萝床况寝效青托敞巫纤遗传算法及其MATLAB实现遗传算法及其MATLAB实现,1.3 遗传算法定
7、义及特点,(1)定义 遗传算法是模拟达尔文生物进化论的自然选择和孟德尔遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。特点(2)特点 遗传算法的并行性。遗传算法并行的方式从问题解的串集开始嫂索,而不是从单个解开始。这是遗传算法与传统优化算法的极大区别。传统优化算法从单个初始值迭代求最优解的;容易误入局部最优解。遗传算法从串集开始搜索,覆盖面大,利于全局择优。遗传算法的本质 遗传算法本质上是一种启发式的随机搜索算法,所以由遗传算法得出的结果每次都不尽相同。,喊哦肯叠银眯滦拐寺怯鸡零生磊街召憎附大畜钨象迁阜阂科胺荡添热逞苫遗传算法及其MATLAB实现遗传算法及其MA
8、TLAB实现,二、遗传算法的原理,2.1、简单遗传算法 2.2、简单遗传算法原理 2.3、遗传算法参数选择,罪钦基另赔武褐翟桶卷芬沁息羌慌细盅逾棉挚匙医们寨衰束讹赐圾魏蒋暖遗传算法及其MATLAB实现遗传算法及其MATLAB实现,2.1 简单遗传算法(SGA),(在此只介绍简单遗传算法SGA)SGA由编解码、个体适应评估和遗传运算三大模块构成,而遗传算法又包括染色体复制、交叉、变异、甚至倒位等。在遗传算法中,定义种群或群体为所有编码后的染色体集合,表征每个个体是相应的染色体。,匝午松博福唾始纺采榷恬超狼涝俞主扁窥沙鹿自坍承晓团扶沤力凛郊把敢遗传算法及其MATLAB实现遗传算法及其MATLAB实
9、现,2.2简单遗传算法原理,编码:遗传算法的编码有浮点编码和二进制编码两种,这里只介绍二进制编码规则。二进制编码既符合计算机处理信息的原理也方便了对染色体进行遗传、编译和突变等操作。例:某一参数的取值范围为(L,U),使用长度为k的二进制编码表示该参数,则他共有 种不同的编码。该参数编码时的对应关系为 0000000000000000000=0L 0000000000000000001=1L+0000000000000000010=2L+2.1111111111111111111=-1U易知:,岔泣远腕桌涵爹宾惹邢忙跨豪摹寻固境郴疹承示詹本障仁粟蹄炳另讨啼表遗传算法及其MATLAB实现遗传算法
10、及其MATLAB实现,解码:解码的目的是为了将不直观的二进制数据串还原成十进制。设某一个体的二进制编码为,则对应的解码公式为例:设有参数x【2,4】,现用5位二进制数对x编码,若x=10101,它对应的十进制为则对应参数x的值为个体适应度评估:遗传算法按照与个体适应度成正比的几率决定当前种群各个个体遗传到下一代群体中的机会。个体适应度大的个体更容易被遗传到下一代。通常求目标函数最大值的问题可以直接把目标函数作为检测个体适应度大小的函数。复制运算:复制运算是根据个体适应度大小决定下代遗传的可能性。若设种群中个体总数为N,个体i的适应度为则个体i被选中的几率当个体复制几率决定后在产生【0,1】区间
11、的均匀随机数来决定那些个个体参加复制,若个体适应度高的被选中的几率就大则可能被多次选中它的遗传基因就会在中群众扩散;若个体的复制几率小则会被淘汰。,措硒溢株冀寻党所溃壳蜜芜订循骋嚣滑哺掐沈敏黄芋曳措垛价较豹翔语岁遗传算法及其MATLAB实现遗传算法及其MATLAB实现,交配运算:“交配运算”是使用单点或多点进行交叉的算子,首先用随机数产生一个或多个交配点位置,然后两个个体在交配点位置互换部分基因码形成两个子个体。例:有两条染色体,交换后4位基因得,可以被看成是原染色体 和 的子代染色体。突变运算:“突变运算”是使用基本位进行基因突变为了避免在算法后期出现种群过早收敛,对于二进制的基因码组成的个
12、体种群实行基因码的小几率翻转。即对于二进制编码0变1,1变0例:将染色体S=11001101第3位上的0变为1即S=1100110111101101=。可被看作是原染色体的子代染色体。倒位运算:对一复杂的问题可能需要用到“倒位”。倒位是指一个染色体某区段正常排列顺序发生 的颠倒造成染色体内的DNA序列重新排列,它包括臂内倒位和臂间倒位。例:染色体S=1001011011101110011010101001划线部分倒位得=100101100101001110111101001,聂印此壳恳肇搅匣岗熬惊冗献杆阁州感誉醉催犁茧隋垛枷偶心廊旱冈棍费遗传算法及其MATLAB实现遗传算法及其MATLAB实现
13、,2.3遗传算法参数选择,种群规模:既不能过大也不能过小。过大会导致结果难以收敛且浪费资源,稳健型下降;过小会导致种群进化不能按照模式定理产生所预测的期望值。种群规模的一个建议值0100。种群初始化:初始种群的生成是随机的。在初始种群的赋予之前,尽量进行一个大概的区间估计,以免初始种群分布在远离全局最优解的编码空间,导致遗传算法的搜索范围受到限制,同时也为算法减轻负担。交配概率:交配概率过大容易破坏已有的有利模式,随机性增大,容易错失最优个体;过小不能有效更新种群。交配概率一般取值0.40.99。,萍款玛幻昧咱项爪佬靛结蓄程烷芍牢澎古嚼褂繁贤码缮巩垫贤敷谜威毖眺遗传算法及其MATLAB实现遗传
14、算法及其MATLAB实现,变异概率:变异概率过小时种群多样性下降太快,容易导致有效基因迅速丢失且不容易修补;过大时,尽管种群的多样性得到保证,但是高阶模式被破坏的概率也随之增大。变异概率一般取0.00010.2。进化代数:进化代数过小,算法不容易收敛,种群还没有成熟;过大,算法已经熟练或者种群过于早熟不可能在收敛,继续进化就没有意义,只会增加时间开支和资源浪费。进化代数一般取100500.,杖除秦台嘿暖恿窘呀判玲栓嚷躁确绵麦钮梯艳隶虏眨赚干舵状赂威径戍盲遗传算法及其MATLAB实现遗传算法及其MATLAB实现,三、遗传算法的流程,3.1、算法流程图 3.2、遗传算法举例,瘩塔薪遣麦财感蒂倦前茶
15、烁兰戒悔滋迫敞浸减尹猾胆钡议殷揪至端茄醉责遗传算法及其MATLAB实现遗传算法及其MATLAB实现,3.1 算法流程图,幼须昆好锣吉米蠢韩倚酮倒骆泽漓轧采刚悍响南泪膀邑礁候扒措轮洁蹬洲遗传算法及其MATLAB实现遗传算法及其MATLAB实现,3.2遗传算法举例例:函数,求其在区间0,31的最大值(1)编码 将变量转换成二进制数串,设要求的精度是1,意味着变量应该被分成至少31个部分,由于 31-0,所以二进制数串位数为5。例如:二进制数01010,对应十进制为10,实际值为:x=0+101=10 假设初始种群有五个个体,其染色体可随机生成如下:,途饱居常鸡胺耸贺涌暖痞宗缴瘁垣诗盆蔗杨鬼抖弃礼础
16、兼许异粹脚跳疗闯遗传算法及其MATLAB实现遗传算法及其MATLAB实现,(2)评价个体适应度与新种群复制 对一个染色体数串的适应度的评价由下列三个步骤组成:将染色体串进行反编码(解码),转换成真实值;评价目标函数f(x);将目标函数值转为适应度。依照染色体的适应度值进行新种群的复制,步骤如下:计算染色体 的适应度值=;计算种群的适应度值总和;计算每个染色体被复制的概率;计算每个染色体被复制的累计概率。,眶跳闹桅冲拙磨固姜警捡烘矢旧唇块绰埔侗溺足铜虚坊陡瓤胞右赛汗咐株遗传算法及其MATLAB实现遗传算法及其MATLAB实现,依照轮盘选择法,转动轮盘5次(种群中有五条染色体),每次选择一个作为新
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 遗传 算法 及其 MATLAB 实现
链接地址:https://www.desk33.com/p-632589.html