遗传算法介绍

本文详细介绍了遗传算法的基本概念,如个体、种群和适应度,并阐述了选择、交叉和变异等核心步骤。通过实例展示了如何在解决优化问题中应用遗传算法,包括轮盘赌选择、随机联赛选择等策略。此外,还提供了遗传算法的程序资源,帮助初学者理解和实践遗传算法。
摘要由CSDN通过智能技术生成

博主之前学习了遗传算法的原理内容,为了防止忘记,写了这篇博客,也可供初学者参考一二,如有不正确的地方,还望指正,希望和各位共同进步。      

遗传算法是一种经典的优化算法,说白了就是找最值,基本的原理就是通过在规定的区间内不断地搜索解方案,比较挑选出其中的最值。

0 绪论

        首先说明遗传算法的一些专业名词:

        以解决h=x2+y2-lgz为例来进行说明,求最大或最小的h值

        1、个体:个体是用式子中的变量来表示的,例如可以用[x,y,z]来表示某个个体,x,y,z这三个变量可以用二进制或者是实数编码。

        2、种群:许多个个体组成的群体,比如[1,2,3],[2,1,3],[2,4,3]这三个个体就组成一个种群。

        3、适应度:也就是说某个个体对于最优解的适应程度,一般是用函数值来表达就行,比如此处的h就可以作为适应度。

        4、编码、解码:针对个体而言,比如在使用二进制编码时,对x,y,z编成二进制,或者从二进制解码成实数再来计算目标函数值,即适应度。

1 步骤简介

(1)选择

选择操作模仿自然界中的“优胜劣汰”法则,若个体的适应度高则其有更大概率被遗传到下一代,反之则概率较小。进行选择操作的方法有许多,比如轮盘赌选择、排序选择、最优个体保存、随机联赛选择等。

a. 轮盘赌选择:将种群中所有个体的适应度值加和,并把每个个体的适应度值与和的比值作为该个体选择的选择概率,从而个体适应度越高被选中概率越高。

b. 排序选择:按照适应度值大小对所有个体进行排序,并根据排序确定个体被选中的概率。

c. 最优个体保存:会将父代群体中的最优的个体直接保存入子代个体中,保证了优秀个体能够遗传到下一代。

d. 随机联赛选择:设置固定值k,每次随机取k个个体,将其中适应度最高的个体遗传入下一代。

这些选择方法各有优缺点,应根据不同场景、不同要求进行选择,本研究采用随机联赛选择方法。(2)交叉

交叉操作模拟自然界中染色体的交叉换位现象,用于生成新个体,决定了算法的全局搜索能力。

一般用的交叉操作有:单点交叉、多点交叉、均匀交叉、算数交叉等等

(3)变异

变异和交叉都是生成新的个体的重要办法,从而达到在规定的区间内进行搜索的目的。

对于二进制编码,就是在编码中随机改变几位的内容,例如:01011变异最后一位就变成了01010,实现了变异。

对于实数编码,可以每次改变小步长来变异,同样还有二项式变异、高斯变异等一系列变异方法。

2 整体框图

 

 

 

 该框图借鉴的是详解遗传算法(含MATLAB代码)_小草莓的魔法笔记-CSDN博客_遗传算法matlab程序这篇文章。

其中,GEN为遗传代数,M为种群中个体的数量。

1、首先随机初始化种群,计算每个个体的适应度

2、分别对种群中的个体进行选择、交叉、变异操作,直到每个个体都进行了相应的操作,则此时完成了一代种群的计算,代数GEN+1

3、当GEN等于给定的最大迭代代数时,遗传完毕,选出最新的种群个体中适应度最高的个体作为最终解。

注:对于是不是每个个体都要执行一遍交叉和变异的问题,并不一定,可以执行交叉但并不执行变异,或者反过来,当然也有两者都进行的,视情况而定。

3、程序

遗传算法程序.zip-深度学习文档类资源-CSDN下载

 亲测可用的遗传算法程序。

 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值