遗传算法简单解读

1.仿生学背景

自然界的生物遗传过程可总结为“物竞天择,适者生存”。初代染色体作为万物之始,不断复制、杂交、变异,代代相传,形成庞大的基因池。其中,不能适应生存条件的基因被淘汰,适应能力强的基因则得以延续,并不断壮大,形成“进化”的现象。

对于一些繁杂的最优化问题,由于决策数目庞大,用直接计算的方式很难求解,则考虑模拟生物遗传过程来逼近最优解(这表明遗传算法的最终结果并不一定是真正的最优解,但可以通过设置循环次数得到一个在接受范围内的逼近解)。

2.算法流程

遗传算法是一个多次循环过程。每一次循环模拟了“一代生命”的繁衍、死亡和变异,形成新的基因池。新的基因池将作为下一次循环的初始基因池。

编码:在遗传算法中,将一种决策方式以二进制编码,形成一条“染色体”,并根据决策的数量来确定二进制数的长度,保证每一个决策都有一个独一无二的染色体编码。对于决策数量无穷的问题,则只要使其长度能够满足一定的精度即可。

复制:决策的目标函数值对应该决策的适应能力。决策按照其目标函数值的大小以不同概率被复制到下一代,模拟了“优胜劣汰”的过程。具体使用轮盘选择法,适应能力大,被选中的概率就大。

杂交:杂交用交换两决策的二进制编码的某一位来模拟。两决策发生杂交的概率是常量,并随机交换其中一位二进制数。为了以某概率使两决策杂交,为每一个决策取一个(0,1)间的随机数,所有取值小于杂交概率的决策形成杂交集合,集合内决策两两抱团发生杂交。

变异:变异则用改变某决策的二进制编码的若干位二进制数来模拟。每一个决策的每一位二进制数以确定的概率发生变异。为了以某概率使决策的若干位发生变异,为每一个决策的每一位二进制数取一个(0,1)间的随机数,取值小于变异概率的二进制位发生变异。

流程:

在进入循环之前,我们通过随机方法得到初代基因池(每一次循环后基因池内的基因总量不变,即群体大小固定)。每一次循环都首先用轮盘选择法复制基因到下一代,再在新的基因池中进行杂交和变异操作。经过固定次数的循环后得到“完全进化”的基因池。在此基因池中寻找适应能力最大的基因个体,即对应最优决策。

3.算法关键

遗传算法的关键在于杂交变异。它们确保最终结果不会囿于局部最优解,而是不断突破当前基因组成,寻找更优解。通常,杂交概率较大,变异概率较小,符合自然规律。

轻松解读仿生学最优化算法(一)——遗传算法相关推荐

  1. 轻松解读仿生学最优化算法(二)——蚁群算法

    蚁群算法简单解读 1.仿生学背景 蚂蚁在寻找食物的过程中,会在经过的道路上留下信息素. 起初蚂蚁不知道食物在哪儿,于是在经过的道路上留下浓度一致的信息素.在同样的时间内,绕远路的蚂蚁和走近路的蚂蚁消耗 ...

  2. 最优化算法之遗传算法

    最优化算法之遗传算法 一.算法模型 (1)编码方法 (2)适应度函数 (3)选择群体 (4)交叉 (5)变异 二.基本原理 1.编码 1.1编码精度 2.解码 3.复制选择 三.代码实现 一.算法模型 ...

  3. Python最优化算法学习笔记(Gurobi)

    微信公众号:数学建模与人工智能 github地址:https://github.com/QInzhengk/Math-Model-and-Machine-Learning Python最优化算法学习笔 ...

  4. 机器学习中的最优化算法总结

    https://www.toutiao.com/a6672189997212238348/ 导言 对于几乎所有机器学习算法,无论是有监督学习.无监督学习,还是强化学习,最后一般都归结为求解最优化问题. ...

  5. NeurIPS 2018 | 腾讯AI Lab详解3大热点:模型压缩、机器学习及最优化算法

    导读:AI领域顶会NeurIPS正在加拿大蒙特利尔举办.本文针对实验室关注的几个研究热点,模型压缩.自动机器学习.机器学习与最优化算法,选取23篇会议上入选的重点论文进行分析解读,与大家分享.Enjo ...

  6. 一步步教你轻松学KNN模型算法

    一步步教你轻松学KNN模型算法 ( 白宁超 2018年7月24日08:52:16 ) 导读:机器学习算法中KNN属于比较简单的典型算法,既可以做聚类又可以做分类使用.本文通过一个模拟的实际案例进行讲解 ...

  7. 【转载】NeurIPS 2018 | 腾讯AI Lab详解3大热点:模型压缩、机器学习及最优化算法...

    原文:NeurIPS 2018 | 腾讯AI Lab详解3大热点:模型压缩.机器学习及最优化算法 导读 AI领域顶会NeurIPS正在加拿大蒙特利尔举办.本文针对实验室关注的几个研究热点,模型压缩.自 ...

  8. 智能优化算法之遗传算法(GA)的实现(基于二进制编码,Python附源码)

    文章目录 一.遗传算法的实现思路 二.基于二进制编码方式的遗传算法的实现 1.库的导入 2.目标函数 3.个体编码函数 4.个体解码函数 5.选择函数 6.交叉函数 7.变异函数 8.算法主流程 一. ...

  9. Dogleg“狗腿”最优化算法

    近期刚学习了dogleg狗腿最优化算法,老师给出了一个大体的框架并给出了一个练习,让我们用程序去实现它,鉴于本人刚刚开始接触最优化,对MATLAB语言的使用也很生疏,在网上查阅了大量的资料,一个通宵把 ...

最新文章

  1. modulenotfounderror: no module 或modulenotfounderror: no module named 'matplotlib._path' 原因详解及解决办法
  2. python中wraps的详解
  3. 线段树——思维(Codeforces 339D Xenia and Bit Operations/Billboard HDU - 2795)
  4. Linux的企业-Codis 3集群搭建详解
  5. linux device attr,DEVICE_ATTR的使用
  6. 网上照片之博客照片与网店照片拍摄心得
  7. Solidworks CAM入门教程,简单生成雕刻机刀路,经验分享
  8. 第一章 概率与统计介绍--机器学习数学基础
  9. C#-学生公寓管理系统的实现
  10. 10、返回当前审批流程图、后续审批按钮
  11. RTC与WebRTC有什么区别
  12. thymeleaf 设置时间格式
  13. stunserver 的几个公网地址及其问题
  14. 盒模型——快递比喻法
  15. FPGA——PS/2驱动
  16. 连接数据库出现java.lang.NullPointerException
  17. 使用malloc为指针分配内存空间
  18. vue组件引入scss变量_SCSS特色的Vue.js ui组件设计系统
  19. 微信聊天消息,好友转账消息的xml数据样本(分3种情况),以及各个字段含义
  20. 基于RGB-D数据的人体检测

热门文章

  1. 世界最大的两个BT网站被迫下线 ExtraTorrent遭遇DDoS攻击
  2. 计算机网络设计校园大楼网络,计算机网络东区学生宿舍楼校园网规划及设计.docx...
  3. Spotlight安装
  4. 四川汶川地震 各地伤亡汇总(实时更新)
  5. vtk 显示效果设置
  6. 前端用户关闭浏览器时,后端判断是否退出
  7. IC设计 — 同步FIFO和异步FIFO设计实现(一)
  8. android 除法运算保留小数点
  9. 无胁科技-TVD每日漏洞情报-2022-8-1
  10. 树莓派文字转语音 python_[原创] 在树莓派上把文字转成语音(Text-To-Speech/TTS)...