轻松解读仿生学最优化算法(一)——遗传算法
遗传算法简单解读
1.仿生学背景
自然界的生物遗传过程可总结为“物竞天择,适者生存”。初代染色体作为万物之始,不断复制、杂交、变异,代代相传,形成庞大的基因池。其中,不能适应生存条件的基因被淘汰,适应能力强的基因则得以延续,并不断壮大,形成“进化”的现象。
对于一些繁杂的最优化问题,由于决策数目庞大,用直接计算的方式很难求解,则考虑模拟生物遗传过程来逼近最优解(这表明遗传算法的最终结果并不一定是真正的最优解,但可以通过设置循环次数得到一个在接受范围内的逼近解)。
2.算法流程
遗传算法是一个多次循环过程。每一次循环模拟了“一代生命”的繁衍、死亡和变异,形成新的基因池。新的基因池将作为下一次循环的初始基因池。
编码:在遗传算法中,将一种决策方式以二进制编码,形成一条“染色体”,并根据决策的数量来确定二进制数的长度,保证每一个决策都有一个独一无二的染色体编码。对于决策数量无穷的问题,则只要使其长度能够满足一定的精度即可。
复制:决策的目标函数值对应该决策的适应能力。决策按照其目标函数值的大小以不同概率被复制到下一代,模拟了“优胜劣汰”的过程。具体使用轮盘选择法,适应能力大,被选中的概率就大。
杂交:杂交用交换两决策的二进制编码的某一位来模拟。两决策发生杂交的概率是常量,并随机交换其中一位二进制数。为了以某概率使两决策杂交,为每一个决策取一个(0,1)间的随机数,所有取值小于杂交概率的决策形成杂交集合,集合内决策两两抱团发生杂交。
变异:变异则用改变某决策的二进制编码的若干位二进制数来模拟。每一个决策的每一位二进制数以确定的概率发生变异。为了以某概率使决策的若干位发生变异,为每一个决策的每一位二进制数取一个(0,1)间的随机数,取值小于变异概率的二进制位发生变异。
流程:
在进入循环之前,我们通过随机方法得到初代基因池(每一次循环后基因池内的基因总量不变,即群体大小固定)。每一次循环都首先用轮盘选择法复制基因到下一代,再在新的基因池中进行杂交和变异操作。经过固定次数的循环后得到“完全进化”的基因池。在此基因池中寻找适应能力最大的基因个体,即对应最优决策。
3.算法关键
遗传算法的关键在于杂交和变异。它们确保最终结果不会囿于局部最优解,而是不断突破当前基因组成,寻找更优解。通常,杂交概率较大,变异概率较小,符合自然规律。
轻松解读仿生学最优化算法(一)——遗传算法相关推荐
- 轻松解读仿生学最优化算法(二)——蚁群算法
蚁群算法简单解读 1.仿生学背景 蚂蚁在寻找食物的过程中,会在经过的道路上留下信息素. 起初蚂蚁不知道食物在哪儿,于是在经过的道路上留下浓度一致的信息素.在同样的时间内,绕远路的蚂蚁和走近路的蚂蚁消耗 ...
- 最优化算法之遗传算法
最优化算法之遗传算法 一.算法模型 (1)编码方法 (2)适应度函数 (3)选择群体 (4)交叉 (5)变异 二.基本原理 1.编码 1.1编码精度 2.解码 3.复制选择 三.代码实现 一.算法模型 ...
- Python最优化算法学习笔记(Gurobi)
微信公众号:数学建模与人工智能 github地址:https://github.com/QInzhengk/Math-Model-and-Machine-Learning Python最优化算法学习笔 ...
- 机器学习中的最优化算法总结
https://www.toutiao.com/a6672189997212238348/ 导言 对于几乎所有机器学习算法,无论是有监督学习.无监督学习,还是强化学习,最后一般都归结为求解最优化问题. ...
- NeurIPS 2018 | 腾讯AI Lab详解3大热点:模型压缩、机器学习及最优化算法
导读:AI领域顶会NeurIPS正在加拿大蒙特利尔举办.本文针对实验室关注的几个研究热点,模型压缩.自动机器学习.机器学习与最优化算法,选取23篇会议上入选的重点论文进行分析解读,与大家分享.Enjo ...
- 一步步教你轻松学KNN模型算法
一步步教你轻松学KNN模型算法 ( 白宁超 2018年7月24日08:52:16 ) 导读:机器学习算法中KNN属于比较简单的典型算法,既可以做聚类又可以做分类使用.本文通过一个模拟的实际案例进行讲解 ...
- 【转载】NeurIPS 2018 | 腾讯AI Lab详解3大热点:模型压缩、机器学习及最优化算法...
原文:NeurIPS 2018 | 腾讯AI Lab详解3大热点:模型压缩.机器学习及最优化算法 导读 AI领域顶会NeurIPS正在加拿大蒙特利尔举办.本文针对实验室关注的几个研究热点,模型压缩.自 ...
- 智能优化算法之遗传算法(GA)的实现(基于二进制编码,Python附源码)
文章目录 一.遗传算法的实现思路 二.基于二进制编码方式的遗传算法的实现 1.库的导入 2.目标函数 3.个体编码函数 4.个体解码函数 5.选择函数 6.交叉函数 7.变异函数 8.算法主流程 一. ...
- Dogleg“狗腿”最优化算法
近期刚学习了dogleg狗腿最优化算法,老师给出了一个大体的框架并给出了一个练习,让我们用程序去实现它,鉴于本人刚刚开始接触最优化,对MATLAB语言的使用也很生疏,在网上查阅了大量的资料,一个通宵把 ...
最新文章
- modulenotfounderror: no module 或modulenotfounderror: no module named 'matplotlib._path' 原因详解及解决办法
- python中wraps的详解
- 线段树——思维(Codeforces 339D Xenia and Bit Operations/Billboard HDU - 2795)
- Linux的企业-Codis 3集群搭建详解
- linux device attr,DEVICE_ATTR的使用
- 网上照片之博客照片与网店照片拍摄心得
- Solidworks CAM入门教程,简单生成雕刻机刀路,经验分享
- 第一章 概率与统计介绍--机器学习数学基础
- C#-学生公寓管理系统的实现
- 10、返回当前审批流程图、后续审批按钮
- RTC与WebRTC有什么区别
- thymeleaf 设置时间格式
- stunserver 的几个公网地址及其问题
- 盒模型——快递比喻法
- FPGA——PS/2驱动
- 连接数据库出现java.lang.NullPointerException
- 使用malloc为指针分配内存空间
- vue组件引入scss变量_SCSS特色的Vue.js ui组件设计系统
- 微信聊天消息,好友转账消息的xml数据样本(分3种情况),以及各个字段含义
- 基于RGB-D数据的人体检测
热门文章
- 世界最大的两个BT网站被迫下线 ExtraTorrent遭遇DDoS攻击
- 计算机网络设计校园大楼网络,计算机网络东区学生宿舍楼校园网规划及设计.docx...
- Spotlight安装
- 四川汶川地震 各地伤亡汇总(实时更新)
- vtk 显示效果设置
- 前端用户关闭浏览器时,后端判断是否退出
- IC设计 — 同步FIFO和异步FIFO设计实现(一)
- android 除法运算保留小数点
- 无胁科技-TVD每日漏洞情报-2022-8-1
- 树莓派文字转语音 python_[原创] 在树莓派上把文字转成语音(Text-To-Speech/TTS)...