第二次培训之遗传算法

声明:由于本人目前对于该算法的认识较浅且本文只用来学习记录,所以如果想更全面的了解该算法,可以移步至以下链接~
超详细的遗传算法解析
遗传算法介绍并附上Matlab代码
此外,文章部分图片来自于第一个链接。

第二次课主要学习了3种非常经典的优化算法:遗传算法、蚁群算法、粒子群算法。这篇文章先总结遗传算法。

一、遗传算法概述

  遗传算法主要用于求解最优化问题,即优化一个目标函数。它主要运用了生物界种群进化、繁衍的过程中“优胜劣汰、适者生存”的规则,将生存概率较小的个体淘汰,留下优势个体,从而使整个种群最终趋于最优状态。其本质还是一种随机的搜索算法。

二、算法步骤流程图

  假设目前有一个种群,我们希望它们可以往更好的方向发展,从而更好地适应环境。在一次更新换代中,应该有以下步骤:
在这里插入图片描述

三、步骤详解

1. 初始化种群

为了保证后续交叉、变异操作的简便性以及随机性,最常用的方法就是:生成一个每个个体都由一个二进制串表示的种群。

  • 二进制串的每一位反映了这个个体的基因,而这个串则反映了这个个体的染色体
  • 二进制对应的十进制表示一个个体
2. 计算个体适应度

如何去反映这个个体在环境中的适应度呢?通常会有一个映射或者是函数,通过表示这个个体的十进制数计算出一个函数值,即为适应度。
在这里插入图片描述

3. 选择

计算出个体适应度之后,按照一定的规则,根据“适者生存”的原则对个体进行淘汰。比如说适应度较小的个体淘汰,适应度较大的个体保留下来,从而使种群个体数保持不变。比较常用的方法是“轮盘选择法”。每个个体进入下一代的概率等于它的适应度值与整个种群中个体适应度值和的比例。 在这里插入图片描述

4. 交叉

将种群中的所有个体两两分组,进行交叉变换,即染色对应的某一块区域交换,从而产生新的个体。
在这里插入图片描述

5. 变异

种群中的所有个体进行变异,即将各种中变异的基因进行0与1的互换:0变成1,1变成0。
在这里插入图片描述

6. 更新种群

将执行完上述操作的种群作为新的种群,为下一次迭代做准备。

7. 在所有个体中找到最优解

进行了淘汰之后,这一个种群会是更优势的一个种群,此时可以再其中找到一个最优的个体以及其对应最优适应度,即最优的和,作为待定的最终最优解。

四、说明

该算法的核心是遵循了自然界的这样一种规律,但是其实还是会有很多随机的量,是我们自己需要设定或者是随机生成的。比如:

  • 种群个体数,染色体长度,以及最初的二进制个体种群
  • 适应度较小的个体淘汰,多少算小呢?这个也是随机的
  • 在交叉变换的时候,两个个体交叉变换的概率是多少,到底是染色体哪一块区域进行交换
  • 变异的时候,某个个体变异的概率是多少,到底是染色体的哪一位进行变异
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值