【遗传算法】遗传算法入门示例
遗传算法实例
问题:求二元函数的最大值
遗传算法实现步骤:
1.编码
编码方法包括:二进制编码法、浮点编码法、符号编码法
这里使用二进制编码。由于变量的最大值31,固采用5个位即可表达全部的值
x=6 00110
2.产生初始群体
01101 11000 01000 10011
3.评价个体的适应度--适应度函数
这里采用与适应度成正比的概率作为适应度
4.选择运算
序号 | 群体 | 适应值 | 选择概率 | 期望次数 | 选中次数 | 选择结果 |
1 | 01101 | 169 | 0.1444 | 0.58 | 1 | 01101 |
2 | 11000 | 576 | 0.4923 | 1.97 | 2 | 11000 |
3 | 01000 | 64 | 0.0547 | 0.22 | 0 | 11000 |
4 | 10011 | 361 | 0.3085 | 1.23 | 1 | 10011 |
适应值 为 f(群体反编码值) 如f(13)=169
选择概率: 如p=169/(169+576+64+361)=0.1444
期望次数:采用确定性算法,对于规模为N的群体,一个选择概率为p的染色体被选择的期望次数e。公式:e=p*N,取
选择结果:
常用的选择算子:
轮盘赌选择(Roulette Wheel Selection):是一种回放式随机采样方法。每个个体进入下一代的概率等于它的适应度值与整个种群中个体适应度值和的比例。选择误差较大。
随机竞争选择(Stochastic Tournament):每次按轮盘赌选择一对个体,然后让这两个个体进行竞争,适应度高的被选中,如此反复,直到选满为止。
最佳保留选择:首先按轮盘赌选择方法执行遗传算法的选择操作,然后将当前群体中适应度最高的个体结构完整地复制到下一代群体中。
无回放随机选择(也叫期望值选择Excepted Value Selection):根据每个个体在下一代群体中的生存期望来进行随机选择运算。方法如下:
(1) 计算群体中每个个体在下一代群体中的生存期望数目N。
(2) 若某一个体被选中参与交叉运算,则它在下一代中的生存期望数目减去0.5,若某一个体未 被选中参与交叉运算,则它在下一代中的生存期望数目减去1.0。
(3) 随着选择过程的进行,若某一个体的生存期望数目小于0时,则该个体就不再有机会被选中。
确定式选择:按照一种确定的方式来进行选择操作。具体操作过程如下:
(1) 计算群体中各个个体在下一代群体中的期望生存数目N。
(2) 用N的整数部分确定各个对应个体在下一代群体中的生存数目。
(3) 用N的小数部分对个体进行降序排列,顺序取前M个个体加入到下一代群体中。至此可完全确定出下一代群体中M个个体。
无回放余数随机选择:可确保适应度比平均适应度大的一些个体能够被遗传到下一代群体中,因而选择误差比较小。
均匀排序:对群体中的所有个体按期适应度大小进行排序,基于这个排序来分配各个个体被选中的概率。
最佳保存策略:当前群体中适应度最高的个体不参与交叉运算和变异运算,而是用它来代替掉本代群体中经过交叉、变异等操作后所产生的适应度最低的个体。
随机联赛选择:每次选取几个个体中适应度最高的一个个体遗传到下一代群体中。
排挤选择:新生成的子代将代替或排挤相似的旧父代个体,提高群体的多样性。
转载来自:作者:短短的路走走停停被抢注啦
链接:https://www.jianshu.com/p/ae5157c26af9
5.配对进行交配,其中交配位是随机选择的rand(5):位的话是从左边往右边数。
交配规则:
编号 | 群体 | 交配对象 | 交配位 | 第1代 | 适应值 |
1 | 01101 | 2 | 4 | 01100 | 144 |
2 | 11000 | 1 | 4 | 11001 | 625 |
3 | 11000 | 4 | 2 | 11011 | 729 |
4 | 10011 | 3 | 2 | 10000 | 256 |
6.得到第一代
序号 | 群体 | 适应值 | 选择概率 | 期望次数 | 选中次数 | 选择结果 |
1 | 01100 | 144 | 0.0821 | 0.3284 | 0 | 11001 |
2 | 11001 | 625 | 0.3563 | 1.4252 | 1 | 11011 |
3 | 11011 | 729 | 0.4156 | 1.6624 | 2 | 11011 |
4 | 10000 | 256 | 0.1460 | 0.5840 | 1 | 10000 |
不停地选择、配对(交叉)、变异。
变异:
异运算是对个体的某一个或某一些基因座上的基因值按某一较小的概率进行改变,它也是产生新个体的一种操作方法。本例中,我们采用基本位变异的方法来进行变异运算,其具体操作过程是:
• 首先确定出各个个体的基因变异位置;
• 然后依照某一概率将变异点的原有基因值取反。
遗传算法的基本原理和matlab实现
2016年9月7日星期三T.s.road 总结笔记遗传算法解决全局优化(即为最值点如图中C,D),而局部最优解决的是极值点问题(如图中A,B)1.
遗传算法的简单讲解与matlab实现
1.简单介绍 略过遗传算法的发展史,本文直接讲解遗传算法的基本原理与实现。在生活中很多问题都可以转换为函数优化问题,大部分函数
matlab遗传算法工具箱的使用
前言:1.官方文档里面有很多的实例和参数的说明2.图形化操作之后可以自动生成代码3.注意在程序里面要关掉打开的文件 fclose内容提
遗传算法的基本原理
1、简介 遗传算法是一种基于自然选择和群体遗传机理的搜索算法,它模拟了自然选择和自然遗传过程中的繁殖、杂交和突变现象.再利
详解遗传算法(含MATLAB代码)
目录 一、遗传算法概述 二、遗传算法的特点和应用 三、遗传算法的基本流程及实现技术 3.1 遗传算法的基本流程 3.2 遗传算法的实
文章回顾
大家看了本文【遗传算法】遗传算法入门示例的精彩教程资源内容,是不是对【遗传算法】遗传算法入门示例了解更多,真心希望【遗传算法】遗传算法入门示例能帮助到你, 小编会一直给你带来更多教程资源文章信息。
本文由第三方用户分享仅代表作者观点,不代表本网站立场,秉承互联网开放分享的精神,目的在于传递更多信息,加强各行业互通交流,但对内容不作任何保证或承诺,请读者自行参考斟酌。网站发布的信息(包含但不限于版式、图片、字体、文章等素材)由第三方用户分享,版权归原作者所有,本站不承担任何相关的版权纠纷等相关责任。如您认为本篇内容侵犯了您的权益,请与我们联系,我们会及时处理。
百科塔让百科知识为更多人带来价值。
转载请注明: 本文标题:【遗传算法】遗传算法入门示例 本文地址:https://www.bktl.cn/94774.html