遗传算法GA-算法原理与算法流程图

本站原创文章,转载请说明来自《老饼讲解-BP神经网络》bp.bbbdata.com

目录

一、遗传算法流程图    

 1.1. 遗传算法流程图    

二、遗传算法的思想与机制   

2.1 遗传算法的思想    

2.2 遗传算法的机制介绍    

三、 遗传算法的算法流程   

3.1 遗传算法的算法流程    

3.2 关于遗传算法的自定义内容    


遗传算法是著名的智能算法之一,它借鉴于生物遗传进行的机制来寻找一个优秀的解
本文讲解遗传算法的思路和具体流程,并剖析遗传算法的核心思路

一、遗传算法流程图    

 1.1. 遗传算法流程图    

 遗传算法(Genetic Algorithm,GA)是一种群体寻优算法
遗传算法的算法流程图如下:


遗传算法是一个灵活的算法,本流程图中仅包含遗传算法中最基础必备的核心内容
在实际应用中需要根据具体问题设计具体的染色体交换、基因变异方式

二、遗传算法的思想与机制   

本节介绍遗传算法的思想与机制,初步了解遗传算法是什么

2.1 遗传算法的思想    

遗传算法是一种借鉴生物遗传进化机制而设计的寻优算法,生物在多代种群迭代中,优胜劣态,最终种群越来越优秀 

这种机制可以迁移到我们的数学求最优值问题上来,种群个体就相当于我们的解,目标函数就是衡量这个个体优秀程度的指标,所以我们可以借鉴生物是怎么进化到一个优秀个体,来让我们的解,也进化(寻找)到一个更优秀的解

2.2 遗传算法的机制介绍    

遗传算法是以生物进化的概念而设计的一种寻优算法
主要借鉴的机制有三,如下:
👉1. 种群与编码                   
👉2. 染色体交换与基因突变
👉3. 适者生存  

种群与编码
在刚开始时,遗传算法会先初始化一个种群,即一组X,种群的个体(即每个X)都以编码的形式存在,如下 


染色体交换与基因突变
然后遗传算法通过个体之间的染色体交换和基因突变来产生新的种群


适者生存
最后,根据种群个体的适应度来选择是否能遗留到下一代种群


通过这种机制,不断的迭代,使得种群的质量不断优化,直到种群无法进化,或者达到最大迭代次数时,终止迭代,最后输出最优的个体

三、 遗传算法的算法流程   

本节展示遗传算法的具体算法流程

3.1 遗传算法的算法流程    

遗传算法的算法流程如下:
一、初始化种群                                                                                 
       初始化g个解                                                                         
二、迭代T轮                                                                                       
       2.1 染色体交换                                                                            
             解与解之间进行部分交换                            
             交换的方式是多种多样,具体问题有具体方案         
        2.2 基因变异                                                                             
             抽个别解作单独的随机调整                         
        2.3 计算个体适应度                                                                   
             越优秀的解,适应度越大                           
        2.4 赌轮盘选择一下代                                                               
             (1) 生成轮盘                                                                      
                  按适应度占比分配轮盘面积,适应度越大面积就越大
             (2) 赌轮盘选择下一代                                                        
                  仍抽g个解作为下一代 ,本轮最优必须进入下一轮,
                  剩余g-1个通过赌轮盘确定选择哪一个(赌g-1次轮盘)
                  赌轮盘的方法:                                                      
                  每次生成一个[0,1]之间的随机数,                
                  随机数指向轮盘哪个位置就抽哪个                
                (有可能重复抽到同一个)                        
三、输出结果                                              
       最后,遗传算法输出历史最优的解作为最终的解  

3.2 关于遗传算法的自定义内容    

遗传算法是一种思想,对于具体的问题,我们需要自行定义如下部分
(1) 染色体交换的方式(即解与解之间如何进行部分交换) 
      如果解的形式是一个数值,往往会把它先换为2进制,
      再将解进行部分片段交换,以此产生新解            
(2) 基因变异的方式(即单个解如何作出随机改变)           
(3) 适应度的设计(越优秀值的解适应度越大)                  
      如果是最小化问题,且目标函数恒大于0,         
      则常见的方法将适应度取为目标函数的倒数       
✍️补充:关于解的编码
如果解X不是编码形式,还需另外设计如何将X转换成编码形式
 例如X如果是数值形式,可以将它转换成二进制形式
 


相关文章
1-LVQ的学习目录:老饼|BP神经网络-竞争神经网络
2-SVM的学习目录:老饼|BP神经网络-感知机与SVM
3-BP的学习目录:老饼|BP神经网络-BP入门

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/193024.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一文总结MySQL的指令是如何工作的

当你输入一条MySQL指令时候有没有想过会发生什么? 建立连接 首先你得先连到数据库上才行,这又分为长连接和短链接,短链接就是你查询一次就断开连接,长连接是你可以多次查询直到主动断开连接(也可能被杀死进程&#x…

4.3每日一题(知全微分求函数本身)

公式 1、先通过公式:dx前系数对y求偏导、dy前面的系数对x求偏导,求出 f(x)的表达式;对x求不定积分,再通过 f(0)0求出常数C,即可求出 f(x) 2、把F(x)的全微分列出来,dx、dy前面的表达式分别为F(x)偏x、y的…

移动端路径传参以数字的形式,写死的情况

页面1 async getListTransferAndApprova() { //把mark值拼接到路径的后面,定义一个变量,使得切换穿的mark都不一样let mark ;if (this.tabsCurrent 0) {mark 2;} else if (this.tabsCurrent 1) {mark 3;}else if (this.tabsCurrent 2) {mark 4;}…

IDEO也不行了吗?设计正在变革#实时设计

2023 年 8 月,在与宜家品牌合作近 10 年之后,SPACE10 关门了。 最近,IDEO,设计思维的早期倡导者和践行者,宣布裁员1/3。 介绍下这两家设计公司: SPACE10 由宜家全额资助,于 2015 年落户哥本哈根…

微信小程序开发学习——页面布局、初始导航栏与跳转

1.盒模型 要求实现效果如图所示: 所有WXML元素都可以看作盒子,在WXSS中"box model”这一术语是用来设计和布局时使用盒模型本质上是一个盒子,封装周围的WXML元素它包括: 边距,边框,填充和实际内容,模…

SQL零基础入门教程,贼拉详细!贼拉简单! 速通数据库期末考!(八)

FULL OUTER JOIN 除了前面讲到的 INNER JOIN(内连接)、LEFT JOIN(左连接)、RIGHT JOIN(右连接),还有另外一种关联方式,即 FULL OUTER JOIN(全外连接) FULL O…

C/C++数据结构之堆栈(Stack):理解、实现与运用

当我们讨论堆栈时,我们首先需要了解它的概念和基本原理。堆栈是一种后进先出(Last In, First Out,LIFO)的数据结构,它的操作主要包括压栈(Push)和弹栈(Pop),以…

webpack 中,filename 和 chunkFilename 的区别

filename filename 是一个很常见的配置,就是对应于 entry 里面的输入文件,经过webpack打包后输出文件的文件名。比如说经过下面的配置,生成出来的文件名为 index.min.js。 chunkFilename chunkFilename 指未被列在 entry 中,却…

Java 教育局民办教育信息服务与监管平台

1) 项目背景 按照《中华人民共和国民办教育促进法》和《中华人民共和国政府信息公开条例》的相关规定,为满足学生和家长、社会各界获取权威信息的需求,着力解决服务老百姓最后一公里问题,达到宣传民办教育和引导家长择校的效果&#xff0…

LeetCo

题目描述如下: 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M …

leetcoe刷题日志-6N字形变换

将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 “PAYPALISHIRING” 行数为 3 时,排列如下: 之后,你的输出需要从左往右逐行读取,产生出一个新的字符串&#…

世微 降压恒流驱动IC 景观亮化洗墙灯舞台灯汽车灯LED照明 AP5199S

1. 特性 支持高辉调光,调光比 平均电流工作模式 高效率:最高可达 95% 输出电流可调范围 60mA~12A 最大工作频率 1MHz 恒流精度≤3% 支持 PWM 封装:SOP8 2. 应用领域 景观亮化洗墙灯 舞台调光效果灯 汽车照明 3. 说明 AP5199S…