学习资料《智能优化算法及其Matlab实例》 包子阳   余继周    编著

第二章遗传算法:

1.遗传算法:就是借鉴达尔文以及孟德尔的进化理论,而创造的一种模拟自然生物进化的算法。它的本质是一种并行的,高效的,全局搜索的方法,他能够在搜索的构成中自动获取和积累有关搜索空间的知识,并自适应的控制搜索过程以求的最优解。

就是模仿自然,优胜劣汰的自然选择的原则。在生物的种群进化化中为了得到好的解,我们只需要不断的进行优化,产生新的个体,而个体的产生中,怎样进行“过滤”?在学习遗传算法的时候总是讲求“优胜劣汰”但是意义是什么?---为了在产生的新个体以及原来的旧个体之间进行下一代的选择。

2.生物遗传和进化的规律:

(1)生物的所有遗传信息都包含在其染色体上,染色体决定了生物性状,染色体是有基因以及其有规律的排列所构成的。

(2)生物的贩之爱过程就是尽心的复制,组合的过程。同源染色体的交叉或变异会产生新的物种

(3)适应能力强的基因或染色体会表现出优良的性状,这些优良的外部性状,有助于生物择偶,产生子代

3.遗传操作

(1)选择算子:根据个体的适应度,按照一定的规则和方法,从第t代群体P(t)中选择一些优良的个体遗传给下一代群体P(t+1)

轮盘赌是使用的最早的选择算法

2018-3-27 遗传算法中的轮盘赌 - CSDN博客

https://blog.csdn.net/luolang_103/article/details/79711974

问题: 通过轮盘赌的公式,感觉既然每一个的适应度都可以计算出来,然后就直接的通过计算出适应度的积累就和,然后就得到了概率啊,为什么还有那么复杂的轮盘模拟??

: 我想应该是模拟自然吧,就像都知道优胜劣汰,但是自然界还是存在智力缺损的孩子。就是模拟自然的这个特征并不知说就要从高的概率中直接的进行选择,而是通过rand的值的大小,然后再群姐进项选择。

(2)交叉算子

将群体P(t)中选择的个体随机搭配,每一对个体依仗Pc交叉概率,交换他们之间的部分染色体

交叉操作的步骤:

从交配池中随机取得要交配的一对个体

根据二进制的位数L,随机的额选取{【1,L-1】中的一个或多个交叉位置

根据交叉概率Pc实施交叉,配对个体在交换交叉位置的部分基因,形成新的个体

(3)变异算子

变异概率Pm

4.遗传算法的特点:

(1)遗传算法以决策变量的编码作为运算对象,使得其可以模仿生物的染色体,基因等的概念,方便与生物上的进行对照。方便下面的编码操作

(2)遗传算法直接以木变函数值最为搜索信息。不需要目标函数的导数等信息,减少计算的难度复杂度

(3)遗传算法同时使用多个搜索点的搜索信息-----也就是说在最初的搜索中,遗传算法从一个由多个个体组成的初始群体开始,而不是单一的个体

(4)遗传算法是基于概率的搜索技术。它属于自适应概率搜索技术,它的选择,交叉,变异的运算都是以一定的概率方式进行的

(5)遗传算法具有自组织,自适应,自学习的特性。

5.流程:

遗传算法的基本运算过程如下:
a)初始化:设置进化代数计数器t=0,设置最大进化代数T,随机生成M个个体作为初始群体P(0)。
b)个体评价:计算群体P(t)中各个个体的适应度。
c)选择运算:将选择算子作用于群体。选择的目的是把优化的个体直接遗传到下一代或通过配对交叉产生新的个体再遗传到下一代。选择操作是建立在群体中个体的适应度评估基础上的。
d)交叉运算:将交叉算子作用于群体。遗传算法中起核心作用的就是交叉算子。
e)变异运算:将变异算子作用于群体。即是对群体中的个体串的某些基因座上的基因值作变动。
群体P(t)经过选择、交叉、变异运算之后得到下一代群体P(t+1)。
f)终止条件判断:若t=T,则以进化过程中所得到的具有最大适应度个体作为最优解输出,终止计算。

6.关键参数说明

(1)群体规模NP。NP太小的时候遗传的优化不会太好,采用较大的规模可以减少遗传算法陷入局部最优解,但是计算的复杂度增加,一般的选取是10~200

(2)交叉概率Pc

较大可以增加遗传算法开辟新的搜索区域,但是与利于局部的开发。太低的话遗传算法会陷入“局部”一般是0.25~1.00

(3)变异概率Pm

主要的目的是为了保证物种的多样性.低频的变异可以防止群体中重要基因的丢失,高频的则更类似于随机搜素。一般的范围:0.001~0.1

(4)终止代数G

一般在100~1000之间

伪代码:来源:

遗传算法入门 - 苍梧 - 博客园
http://www.cnblogs.com/heaad/archive/2010/12/23/1914725.html

基本遗传算法伪代码

/*
* Pc:交叉发生的概率
* Pm:变异发生的概率
* M:种群规模
* G:终止进化的代数
* Tf:进化产生的任何一个个体的适应度函数超过Tf,则可以终止进化过程
*/
初始化Pm,Pc,M,G,Tf等参数。随机产生第一代种群Pop

do

  计算种群Pop中每一个体的适应度F(i)。
  初始化空种群newPop
  do
  {
    根据适应度以比例选择算法从种群Pop中选出2个个体
    if ( random ( 0 , 1 ) < Pc )
    {
      对2个个体按交叉概率Pc执行交叉操作
    }
    if ( random ( 0 , 1 ) < Pm )
    {
      对2个个体按变异概率Pm执行变异操作
    }
将2个新个体加入种群newPop中
} until ( M个子代被创建 )
用newPop取代Pop
}until ( 任何染色体得分超过Tf, 或繁殖代数超过G )

2018-4-7 进化类算法------1、遗传算法(GA)相关推荐

  1. 遗传算法(进化类算法)中的选择,交叉,变异等一系列问题解析(二)

    问题1--遗传算法中适应度函数如何确定 一般来说,遗传算法中的适应度函数是根据你想要得到的优化结果进行确定的.有的优化目的是要更小的适应度函数值,相反有的优化目的是要更大的适应度函数值. 这样说吧,例 ...

  2. 【优化算法】遗传算法GA求解混合流水车间调度问题(附C++代码)

    [优化算法]遗传算法GA求解混合流水车间调度问题(附C++代码) 00 前言 各位读者大家好,好久没有介绍算法的推文了,感觉愧对了读者们热爱学习的心灵.于是,今天我们带来了一个神奇的优化算法--遗传算 ...

  3. 算法实践-遗传算法GA

    文章目录 1.遗传算法简介: 2.GA实践 遗传算法主要步骤: 1.遗传算法简介: 遗传算法(Genetic Algorithm, GA)是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计 ...

  4. 计算机视觉与深度学习 | 粒子群算法与遗传算法(GA)及与蚁群算法(ACO)比较

    ================================================ 博主github:https://github.com/MichaelBeechan 博主CSDN:h ...

  5. 【算法】遗传算法GA中几种交叉算子小结

    (图片例子来自上课时老师的PPT,不过老师说PPT是他从网上组合的,所以没有出处) 1.Partial-Mapped Crossover (PMX)   过程:     第一步,随机选择一对染色体(父 ...

  6. matlab设置ga算法,matlab遗传算法ga函数

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 function optimization4() A=[];b=[]; Aeq=[];beq=[];LB=[0.1;0.03;0.03;0.1;0.03; ...

  7. 相控阵天线(四):阵列天线波束赋形(遗传算法、粒子群算法、进化差分算法、含python代码)

    目录 波束赋形简介 遗传算法波束赋形 粒子群算法波束赋形 差分进化算法波束赋形 智能算法比较 遗传算法波束赋形代码示例 波束赋形简介 根据期望的方向图辐射特性(如方向图形状.主瓣宽度.副瓣电平.方向性 ...

  8. 进化算法与遗传算法的区别

    EA  (Evolutionary Algorithms):进化算法: GA  (Genetic Algorithm):遗传算法: 进化算法包括遗传算法.进化程序设计.进化规划和进化策略. 基于对生物 ...

  9. 差分进化算法和遗传算法的区别

    区别就在于变异操作 1 差分进化引入的意义 遗传算法的变异操作,就是对个体的某个或某段基因进行随机变换,得到新的个体,也就是新的一组解. 它的目的是通过生成新的解,来试图找到更优的选择. 但是,直观上 ...

最新文章

  1. 关于Mysql5.6 Failed to open file error2的记录
  2. css响应式布局 兼容ie6
  3. 零基础学Python【二十三、图形化界面设计 】(基础一篇全,欢迎认领)
  4. java用log.i打印数组_java-使用JSCH将ssh日志打印到列表(android)
  5. java实用教程——组件及事件处理——ActionEvent事件
  6. mysql 异步_MySQL -- 异步I/O
  7. linux文件系统挂载不上,nfs文件系统在linux下挂载不上的解决办法
  8. LSF-SCNN:一种基于 CNN 的短文本表达模型及相似度计算的全新优化模型
  9. 核心JavaScript——词法结构
  10. JavaScript经纬度和地图坐标相互转换
  11. MacOS Big Sur 11.2.3 (20D91) with Clover 5131 and OC 0.6.7 and PE 三EFI分区原版DMG黑苹果镜像
  12. Python学习笔记——给图片格式转换器做个GUI
  13. 从文件结构认识HLS
  14. 爆米豆分页插件使用及mysql的find_in_set函数使用
  15. Linux中usb设置burst,详细解读Linux系统中ntpq命令的使用
  16. es拼音分词 大帅哥_SpringBoot集成Elasticsearch 进阶,实现中文、拼音分词,繁简体转换...
  17. 高通推出骁龙888处理器,移动办公使用电子邮箱更便捷!
  18. 使用计算机辐射最大,台式电脑哪里辐射最大
  19. IC人物志-硅谷之父弗雷德里克·特曼(Frederick Terman)
  20. windows10宽带连接无法打开移动热点wifi

热门文章

  1. 051 日志案例分析(PV,UV),以及动态分区
  2. 使用Intellj Idea打开选中文件/文件夹
  3. gulp die('click').live('click' composer
  4. 使用dd命令复制ASM磁盘的spfile
  5. puppet aix之自动化用户管理
  6. h3c 3600 acl 配置 滤源IP是网关的ARP报文的ACL规则
  7. 如何有效使用每一点脑力总结_如何更有效地节省脑力和编码
  8. python中nlp的库_单词袋简介以及如何在Python for NLP中对其进行编码
  9. angular搭建项目步骤_建立健康的Angular项目应采取的步骤
  10. 数据通信技术(四:链路聚合)