优化算法之手推遗传算法(Genetic Algorithm)的详细步骤图解
来源:DeepHub IMBA
本文约2000字,建议阅读5分钟
本文为你详细讲解遗传算法。
遗传算法可以做什么?
遗传算法是元启发式算法之一。它有与达尔文理论(1859 年发表)的自然演化相似的机制。如果你问我什么是元启发式算法,我们最好谈谈启发式算法的区别。
启发式和元启发式都是优化的主要子领域,它们都是用迭代方法寻找一组解的过程。启发式算法是一种局部搜索方法,它只能处理特定的问题,不能用于广义问题。而元启发式是一个全局搜索解决方案,该方法可以用于一般性问题,但是遗传算法在许多问题中还是被视为黑盒。
那么,遗传算法能做什么呢?和其他优化算法一样,它会根据目标函数、约束条件和初始解给我们一组解。
最优局部解与最优全局解
遗传算法是如何工作的?
遗传算法有5个主要任务,直到找到最终的解决方案。它们如下。
初始化
适应度函数计算
选择
交叉
突变
定以我们的问题
我们将使用以下等式作为遗传算法的示例。它有 5 个变量和约束,其中 X1、X2、X3、X4 和 X5 是非负整数且小于 10(0、1、2、4、5、6、7、8、9)。使用遗传算法,我们将尝试找到 X1、X2、X3、X4 和 X5 的最优解。
将上面的方程转化为目标函数。遗传算法将尝试最小化以下函数以获得 X1、X2、X3、X4 和 X5 的解决方案。
由于目标函数中有 5 个变量,因此染色体将由 5 个基因组成,如下所示。
初始化
在初始化时,确定每一代的染色体数。在这种情况下,染色体的数量是 5。因此,每个染色体有 5 个基因,在整个种群中总共有 25 个基因。使用 0 到 9 之间的随机数生成基因。
在算法中:一条染色体由几个基因组成。一组染色体称为种群
下图是第一代的染色体。
适应度函数计算
它也被称为评估。在这一步中,评估先前初始化中的染色体。对于上面示例,使用以下的计算方式。
这是第一代种群中的第一个染色体。
将 X1、X2、X3、X4 和 X5 代入目标函数,得到 53。
适应度函数是 1 除以误差,其中误差为 (1 + f(x))。
下面公式中加 1 是为了避免零问题
这些步骤也适用于其他染色体。
选择
轮盘赌法是遗传算法中的一种随机选择方法。这就像赌场里的轮盘赌。它有一个固定点,并且轮子旋转直到轮子上的一个区域到达固定点的前面。
在遗传算法的背景下,具有较高适应度值的染色体将更有可能在轮盘赌中被选中。
首先,计算 5 条染色体的总适应度值。
总计 =
优化算法之手推遗传算法(Genetic Algorithm)的详细步骤图解相关推荐
- 路径算法:遗传算法 (Genetic Algorithm, GA)
遗传算法简介 遗传算法是受自然进化理论启发的一系列搜索算法.通过模仿自然选择和繁殖的过程,遗传算法可以为涉及搜索,优化和学习的各种问题提供高质量的解决方案.同时,它们类似于自然进化,因此可以克服传统搜 ...
- 【算法】超详细的遗传算法(Genetic Algorithm)解析
转自:https://www.jianshu.com/p/ae5157c26af9 [算法]超详细的遗传算法(Genetic Algorithm)解析 00 目录 遗传算法定义 生物学术语 问题导入 ...
- 遗传算法 python 简书_【算法】超详细的遗传算法(Genetic Algorithm)解析
00 目录 遗传算法定义 生物学术语 问题导入 大体实现 具体细节 代码实现 01 什么是遗传算法? 1.1 遗传算法的科学定义 遗传算法(Genetic Algorithm, GA)是模拟达尔文生物 ...
- 遗传算法(Genetic Algorithm)从了解到实例运用(上)(python)
前言 本文主要介绍了数学建模常用模型遗传算法,从原理出发到编程实现再到实例运用.笔者参与过大大小小五次数学建模,个人觉得该优化算法值得一学. 提示:以下是本篇文章正文内容 一.遗传算法由来 遗传算法的 ...
- 遗传算法 python 简书_遗传算法(Genetic Algorithm ,GA)学习笔记
1 遗传算法的概念 1.1 遗传算法的科学定义 遗传算法(Genetic Algorithm, GA) 是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程 ...
- 遗传算法Genetic Algorithm
文章目录 遗传算法Genetic Algorithm 1. 简介 1.1 简介 1.2 相关概念介绍 1.2.1 选择(复制) 1) 轮盘赌选择法 2) 随机遍历抽样法 3) 锦标赛选择法 4) 比例 ...
- 遗传算法 python包_遗传算法 (Genetic Algorithm)
遗传算法( Genetic Algorithm )又叫基因进化算法,或进化算法.属于启发式搜索算法一种,这个算法比较有趣,并且弄明白后很简单,写个 100-200 行代码就可以实现.在某些场合下简单有 ...
- 【深度学习入门到精通系列】遗传算法 (Genetic Algorithm)
文章目录 1 遗传算法概述 2 遗传算法 2.1 找一个好的fitness方程 2.2 DNA 编码 2.3 代码实现 3 配对句子 4 旅行商问题 5 Microbial Genetic Algor ...
- 遗传算法(Genetic Algorithm,GA)实现数据排序,python
遗传算法(Genetic Algorithm,GA)实现数据排序,python 遗传算法是一种比较广泛.通用的算法体系,为了说明遗传算法的原理和实现,现在用GA解决一个计算机科学最基本.最古老的问题: ...
最新文章
- 百度宣布:搜索业务总裁向海龙离职,另回购10亿美元股份
- 安装和使用花生壳(linux)
- MySQL 性能优化及常用命令
- 程序员的一个爬虫,把估值175亿的马蜂窝给捅了
- 英语对计算机人才的重要性,英语对计算机专业的重要性及如何提高英语水平
- Sys和system用户、sysdba 和sysoper系统权限、dba角色的区别
- 使用Filezilla 与 linux远程服务器传输文件时,设置默认打开编辑器
- MySQL数据类型不一致_数据类型不一致导致的SQL不走索引
- Volley源码学习2--cache类
- MySQL8.0二进制免编译部署过程详解(二)
- openEuler 高校开发者大赛报名启动!广阔天地,码出不凡
- MySQL MYISAM引擎表锁和行锁详解
- 基于JSP的旅游信息管理系统(含论文)
- RTSP支持MPEG-4格式监控
- 纯干货分享!Python视频教程分享,python学习路线图(含大纲+视频+源码)
- 国二c语言程序,国家计算机二级c语言题库及答案
- excel 合并多个工作表,保留列宽等格式
- 纸上得来终觉浅,绝知此事要躬行
- 柏力纪德:成功对接类目小二的关键是什么
- 【渝粤题库】广东开放大学 文化创意学 形成性考核
热门文章