遗传算法概念、步骤、应用解析(案例直白--黄含驰)

article/2025/11/6 21:04:52

遗传算法

 在几十亿年的演化过程中,自然界中的生物体已经 形成了一种优化自身结构的内在机制,它们能够不 断地从环境中学习,以适应不断变化的环境
 对于大多数生物体,这个过程是通过自然选择和有性生殖来完成的。自然选择决定了群体中哪些个体 能够存活并繁殖,有性生殖保证了后代基因的混合 与重组

 演化计算(Evolutionary Computation, EC)是在达尔文(Darwin)的进化论和孟德 尔(Mendel)的遗传变异理论的基础上产生的一种在基因和种群层次模拟自然界生 物进化过程与机制,进行问题求解的自组织、自适应的随机搜索技术
 它以达尔文进化论的“物竟天择、适者生存”作为算法的进化规则,并结合孟德尔的遗 传变异理论,将生物进化过程中的繁殖(Reproduction)、变异(Mutation)、竞争 (Competition)、选择(Selection)引入到了算法中,是一种对人类智能的演化模 拟方法  演化计算的主要有遗传算法、演化策略、演化规划和遗传规划四大分支。其中,遗传算 法是演化计算中最初形成的一种具有普遍影响的模拟演化优化算法

(插播:nips2020新群,有兴趣的上车喔。原来的大群人基本满了,审核也慢,可能要求也高

 遗传算法简称GA(Genetic Algorithms)是1962年由美国Michigan大学的Holland教授提 出的模拟自然界遗传机制和生物进化论而成的一种并行随机搜索最优化方法
 遗传算法是以达尔文的自然选择学说为基础发展起来的

自然选择学说包括以下三个方面:
 遗传:这是生物的普遍特征,亲代把生物信息交给子代,子代总是和亲代具有相同或相似 的性状。生物有了这个特征,物种才能稳定存在
 变异:亲代和子代之间以及子代的不同个体之间的差异,称为变异。变异是随机发生的, 变异的选择和积累是生命多样性的根源
 生存斗争和适者生存:具有适应性变异的个体被保留下来,不具有适应性变异的个体被淘 汰,通过一代代的生存环境的选择作用,性状逐渐与祖先有所不同,演变为新的物种

⑤遗传算法的基本原理

 遗传算法将“优胜劣汰,适者生存”的生物进化原理引入优化参数形成的编码串联群体中
 按所选择的适应度函数并通过遗传中的复制、交叉及变异对个体进行筛选,使适应度高的个体 被保留下来,组成新的群体
 新的群体既继承了上一代的信息,又优于上一代
 这样周而复始,群体中个体适应度不断提高,直到满足一定的条件
 遗传算法的算法简单,可并行处理,并能得到全局最优解

⑥遗传算法的基本操作

遗传算法的基本操作有三种

 复制(Reproduction Operator)
 从一个旧种群中选择生命力强的个体产生新种群的过程
 具有高适应度的个体更有可能在下一代中产生一个或多个子孙
 模拟无性繁殖

 交叉(Crossover Operator)
 复制操作能从旧种群中选择出优秀者,但不能创造新的染色体
 交叉模拟了生物进化过程中的有性繁殖现象,通过染色体的交换组合,产生新的优良品种
 交叉的过程:在匹配池中任选两个染色体,随机选择一点或多点交换点位置;交换双亲染 色体交换点右边的部分,即可得到两个新的染色体数字串

 变异(Mutation Operator)
 模拟生物在自然的遗传环境中由于各种偶然因素引起的基因突变
 以很小的概率随机地改变遗传基因(表示染色体的符号串的某一位)的值
 在染色体以二进制编码的系统中,它随机地将染色体的某一个基因由1变为0,或由0变为1

变异的重要作用
 没有变异,则无法在初始基因组合以外的空间进行 搜索
 使进化过程在早期就陷入局部解而进入终止过程
 为了在尽可能大的空间中获得质量较高的优化解 水至清则无鱼

 遗传算法在解空间进行高效启发式搜索,而非盲目地穷举或完全随机搜索
 遗传算法对于待寻优的函数基本无限制,它既不要求函数连续,也不要求函数可微,既可以是 数学解析式所表示的显函数,又可以是映射矩阵甚至是神经网络的隐函数,因而应用范围较广
 遗传算法具有并行计算的特点,因而可通过大规模并行计算来提高计算速度,适合大规模复杂 问题的优化

⑧遗传算法的应用领域

 函数优化
 非线性、多模型、多目标的函数优化问题,采用其他优化方法较难求解,而遗传算法却可以得到较 好的结果
 组合优化
 随着问题的增大,组合优化问题的搜索空间也急剧扩大,采用传统的优化方法很难得到最优解
 自动控制
 利用遗传算法进行控制器参数的优化
 基于遗传算法的模糊控制规则的学习
 基于遗传算法的参数辨识
 基于遗传算法的神经网络结构的优化和权值学习
 机器人
 移动机器人路径规划、关节机器人运动轨迹规划、机器人结构优化和行为协调
 图像处理
 图像处理过程中的扫描、特征提取、图像分割等的优化计算
 模式识别、图像恢复、图像边缘特征提取

⑨遗传算法关键概念

编码

 研究生物遗传是从染色体着手
 染色体是由基因排成的串,可以理解为生物编码
 研究遗传算法,研究如何编码是第一步工作
 编码是通过某种机制把求解问题抽象为由特定符号按一定顺序 排成的串
 使用二进制串进行编码是常见的方法

 利用遗传算法求下列一元函数的最大值,其中 x∈[-1,1] ,求解结果精确 到 6 位小数,请问如何编码?  f(x)=x*sin(8π*x)+3.0
 【解】:由于区间长度为2,求解结果精确到6位小数,因此可将自变量 定义区间划分为 2*10^6等份。又因为2^20 < 2*10^6 < 2^21 ,所以本例的二进 制编码长度至少需要21位,本例的编码过程实质上是将区间[-1,1]内对 应的实数值转化为一个二进制串( b20b19...b0)

初始种群
 确定编码方案后,遗传算法通常采用随机方法生成若干个个体 的集合
 该集合称为初始种群
 初始种群中个体的数量称为种群规模

适应度函数
 遗传算法对一个个体(解)的好坏用适应度函数值来评价
 适应度函数值越大,解的质量越好
 适应度函数是遗传算法进化过程的驱动力,也是进行自然选择的唯一标 准,它的设计应结合求解问题本身的要求而定
 遗传算法使用选择运算来实现对群体中的个体进行优胜劣汰操作:适应 度高的个体被遗传到下一代群体中的概率大;适应度低的个体,被遗传 到下一代群体中的概率小

遗传算子
 选择操作的任务就是按某种方法从父代群体中选取一些个体,遗传到下 一代群体
 选择算子采用轮盘赌选择方法,又称比例选择算子,它的基本思想是: 各个个体被选中的概率与其适应度函数值大小成正比。设群体大小为n , 个体i 的适应度为 Fi ,则个体i 被选中遗传到下一代群体的概率为:

 轮盘赌选择方法的实现步骤如下:
①计算群体中所有个体的适应度函数值(需要解码)
②利用比例选择算子的公式,计算每个个体被选中遗传到下一代群体的 概率
③采用模拟赌盘操作(即生成0到1之间的随机数与每个个体遗传到下一 代群体的概率进行匹配)来确定各个个体是否遗传到下一代群体中

交叉运算
 交叉运算是指对两个相互配对的染色体依据交叉概率 Pc 按某种方式相互交换其部分基因,从而形 成两个新的个体。交叉运算是遗传算法区别于其他进化算法的重要特征,它在遗传算法中起关键 作用,是产生新个体的主要方法
 交叉算子一般采用单点交叉算子
 交叉前(用”|"来表示交叉点):
 00000|01110000000010000
 11100|00000111111000101
 交叉后:
 00000|00000111111000101
 11100|01110000000010000

变异运算
 所谓变异运算,是指依据变异概率 Pm 将个体编码串中的某些基因值用其它基因值来替换,从而 形成一个新的个体
 遗传算法中的变异运算是产生新个体的辅助方法,它决定了遗传算法的局部搜索能力,同时保持 种群的多样性
交叉运算和变异运算的相互配合,共同完成对搜索空间的全局搜索和局部搜索
 变异算子采用基本位变异算子。基本位变异算子是指对个体编码串随机指定的某一位或某几位基 因作变异运算。对于基本遗传算法中用二进制编码符号串所表示的个体,若需要进行变异操作的 原有基因值为0,则变异操作将其变为1;反之,若原有基因值为1,则变异操作将其变为0
 变异前:  000001110000000010000
 变异后:  000001110001000010000

⑩遗传算法应用实例

函数最值问题

 利用遗传算法求函数最值(极值)问题是清晰地理解遗传算法 的一个较好的途径
 【例】求函数f(x1,x2)=x1^2+x2^2的最大值,其中x1 及x2取值范 围为{1,2,3,4,5,6,7}。

编码
 本例用无符号二进制整数来表示,因 x1, x2 为 0 ~ 7之间的整 数,分别用3位无符号二进制整数来表示
 将它们连接在一起所组成的6位无符号二进制数就形成了个体 的基因型,表示一个可行解
 如:基因型 X=101110 所对应的表现型是:x=[ 5,6 ]。个 体的表现型x和基因型X之间可通过编码和解码程序相互转换

初始群体的产生
 遗传算法是对群体进行的进化操作
 需要给其淮备一些表示起始搜索点的初始群体数据
 本例中,群体规模的大小取为4,即群体由4个个体组成,每个 个体可通过随机方法产生
 如:011101,101011,011100,111001

适应度计算
 遗传算法以个体适应度的大小来评定各个个体的优劣程度,从 而决定其遗传机会的大小
 本例中,目标函数总取非负值,并且是以求函数最大值为优化 目标,故可直接利用目标函数值作为个体的适应度

选择运算
 选择运算(或称为复制运算)把当前群体中适应度较高的个体按某种规则或模型遗传到下一代群体 中,一般要求适应度较高的个体将有更多的机会遗传到下一代群体中
 采用与适应度成正比的概率来确定各个个体复制到下一代群体中的数量。其具体操作过程是:
 先计算出群体中所有个体的适应度的总和
 Σfi ( i=1.2,…,M );
 其次计算出每个个体的相对适应度的大小 fi / Σfi ,它即为每个个体被遗传到下一代群体中的概率
 每个概率值组成一个区域,全部概率值之和为1
 最后再产生一个0到1之间的随机数,依据该随机数出现在上述哪一个概率区域内来确定各个个体 被选中的次数

交叉运算
 交叉运算是遗传算法中产生新个体的主要操作过程,它以某一概率相互交换某两个个体之间的部 分染色体。本例采用单点交叉的方法,其具体操作过程是:先对群体进行随机配对
 其次随机设置交叉点位置; 最后再相互交换配对染色体之间的部分基因

 其中新产生的个体“111101”、“111011”的适应度较原来两个个体 的适应度都要高

变异运算
 变异运算是对个体的某一个或某一些基因座上的基因值按某一较小的概率进行改变,它也是产生 新个体的一种操作方法。本例中,我们采用基本位变异的方法来进行变异运算,其具体操作过程 是:首先确定出各个个体的基因变异位置,下表所示为随机产生的变异点位置,其中的数字表示 变异点设置在该基因座处;然后依照某一概率将变异点的原有基因值取反

新一代

 对群体P(t)进行一轮选择、交叉、变异运算之后可得到新一代的群体p(t+1)

群体经过一代进化之后,其适应度的最大值、平均值都得到了明显的改进。事实上,这里已经找 到了最佳个体“111111”

本文为记录文章,转帖为记录,转自下边作者,特此鸣谢!

作者:微尘-黄含驰
链接:https://zhuanlan.zhihu.com/p/93749379

另外matlab的代码及进一步理解可参考遗传算法介绍并附上Matlab代码 - 知乎 (zhihu.com)


http://chatgpt.dhexx.cn/article/Xjk2PTHx.shtml

相关文章

遗传算法超详细图解

遗传算法&#xff08;Genetic Algorithm&#xff09;顾名思义&#xff0c;是一种基于自然选择原理和自然遗传机制的启发式搜索算法。该算法通过模拟自然界中生物遗传进化的自然机制&#xff08;选择、交叉和变异操作&#xff09;&#xff0c;将好的遗传基因&#xff08;最优目标…

遗传算法及其应用

一、遗传算法的定义 遗传算法的基本思想是参考生物学中物种“物竞天择&#xff0c;适者生存”的思想。在计算机中&#xff0c;通过给定约束条件&#xff0c;使初始参数不断迭代&#xff0c;从而接近最优解。 遗传算法可描述为&#xff1a; Initialize population process-chr…

详解遗传算法(含MATLAB代码)

目录 一、遗传算法概述 二、遗传算法的特点和应用 三、遗传算法的基本流程及实现技术 3.1 遗传算法的基本流程 3.2 遗传算法的实现技术 1.编码 2.适应度函数 3.选择算子 4.交叉算子 5.变异算子 6.运行参数 四、遗传算法的基本原理 4.1 模式定理 4.2 积木块假设 …

遗传算法步骤

遗传算法是一种模拟生物自然进化的一种算法&#xff0c;通话对生物进化的模拟&#xff0c;实现对数值函数的模拟计算。它主要分为四个步骤&#xff1a;初始化、杂交、变异和选择。相关实现可参考https://github.com/ShaquallLee/evolutionary-programming/tree/master/aEP 1、…

遗传算法原理+程序案例详解

注明&#xff1a;这篇遗传算法程序我在网上看到多次&#xff0c;很多人在转载时&#xff0c;都称已经修改了错误的地方&#xff0c;程序在matlab上能够运行。 当我在学习这段程序时&#xff0c;发现结果仍存在很大问题(不稳定、不准确)。我一行一行看时&#xff0c;发现不仅有少…

遗传算法、遗传算法库函数ga和gamultiobj、遗传算法工具箱GOT实例介绍

目录 前言 适应度函数和目标函数的关系 1. 常规遗传算法 2.结合非线性规划fmincon函数的遗传算法 2.1 fmincon非线性规划函数使用 2.2 结合非线性规划fmincon函数的遗传算法使用及示例 2.2.1 编码 2.2.2 选择 2.2.3交叉 2.2.4变异 2.2.5非线性规划fmincon函数 2.2.…

遗传算法原理与应用详解

遗传算法 ( GA , Genetic Algorithm ) &#xff0c;也称进化算法 。 遗传算法是受达尔文的进化论的启发&#xff0c;借鉴生物进化过程而提出的一种启发式搜索算法。因此在介绍遗传算法前有必要简单的介绍生物进化知识。 一.进化论知识 作为遗传算法生物背景的介绍&#xff0…

遗传算法(一) 遗传算法的基本原理

遗传算法&#xff08;一&#xff09;遗传算法的基本原理 1.概述 遗传算法&#xff08;Genetic Algorithm, GA&#xff09;起源于对生物系统所进行的计算机模拟研究。它是模仿自然界生物进化机制发展起来的随机全局搜索和优化方法&#xff0c;借鉴了达尔文的进化论和孟德尔的遗…

算法理解-遗传算法(Genetic Algorithm)(一个带计算过程的例子)

想要快速的了解一个算法&#xff0c;最好的方式便是拿个例子手动进行实现算一遍。这里借鉴了网络上的一个例子&#xff0c;求解如下的一个函数&#xff1a; f(x)x∗sin(10∗π∗x)2x∈[−1,2] f(x) = x*sin(10*\pi*x)+2 \\ x \in[-1, 2] 其函数图像为&#xff1a; 例子来源&a…

遗传算法及python实现

目录 一、遗传算法概念 二、遗传算法应用实例 基础概念&#xff1a; 1、种群和个体&#xff1a; 2、编码、解码与染色体&#xff1a; 3、适应度和选择&#xff1a; 4、 交叉、变异&#xff1a; 三、遗传算法python完整代码 “适者生存&#xff0c;不适者淘汰” …

遗传算法详解python代码实现以及实例分析

遗传算法 文章目录 遗传算法前言一、遗传算法是什么&#xff1f;二、实例讲解例题11.初始化种群2.优胜劣汰3.根据优胜劣汰的结果&#xff0c;交配生殖、变异5.生物遗传进化 例题21.初始化参数2.定义环境&#xff08;定义目标函数&#xff09;3.DNA解码&#xff08;计算x&#x…

遗传算法实例解析

遗传算法实例及MATLAB程序解析 遗传算法Genetic Algorithms&#xff0c;GA&#xff09;是一种基于自然选择原理和自然遗传机制的搜索&#xff08;寻优&#xff09;算法&#xff0c;它是模拟自然界中的生命进化机制&#xff0c;在人工系统中实现特定目标的优化。遗传算法的实质是…

遗传算法详解及代码实现

遗传算法 定义相关术语交叉变异产生子代完整过程 遗传算法应用问题的提出与解决方案“袋鼠跳”问题爬山法&#xff08;最速上升爬山法&#xff09;模拟退火遗传算法 遗传算法实现过程遗传算法的一般步骤遗传算法图解进化细节种群和个体编码方法二进制编码浮点编码法符号编码法 …

遗传算法详解

转载&#xff1a;https://blog.csdn.net/u010451580/article/details/51178225 三&#xff1a;遗传算法 照例先给出科学定义&#xff1a; 遗传算法&#xff08;Genetic Algorithm, GA&#xff09;起源于对生物系统所进行的计算机模拟研究。它是模仿自然界生物进化机制发展起…

遗传算法(Genetic Algorithm)详解与实现

遗传算法&#xff08;Genetic Algorithm&#xff09;详解与实现 遗传算法简介类比达尔文进化论达尔文进化理论遗传算法对应概念 遗传算法理论图式定理&#xff08;schema theorem&#xff09; 遗传算法与传统算法的差异遗传算法的优缺点优点局限性 遗传算法应用场景遗传算法的组…

经典遗传算法及MATLAB实例

经典遗传算法及简单实例&#xff08;MATLAB&#xff09; 1. 遗传算法简单介绍1.1 理论基础1.2 算法要点1.1 编码1.2 适应度函数 1.3 基本流程 2. 代码实例&#xff08;MATLAB&#xff09;2.1 代码汇总2.1 初始化种群2.2 计算适应度2.3 迭代终止判断2.4 自然选择&#xff08;轮盘…

遗传算法及实例

遗传算法是模拟生物在自然环境下遗传的过程而形成的自适应全局优化搜索算法。如果把某个问题的可行域看作是一个族群&#xff0c;目标函数看作是自然选择的条件&#xff0c;那么&#xff0c;这个族群通过一代又一代的繁衍和进化最终变成最接近筛选条件的样子。遗传算法就是利用…

遗传算法原理及算法实例

遗传算法原理解析 遗传算法&#xff08;GA&#xff09;是一种元启发式自然选择的过程&#xff0c;属于进化算法&#xff08;EA&#xff09;大类。遗传算法通常是利用生物启发算子&#xff0c;如变异、交叉和选择来生成高质量的优化和搜索问题的解决方案。 借鉴生物进化理论&…

遗传算法小结及算法实例(附Matlab代码)

目录 1、遗传算法流程 2、关键参数说明 &#xff08;1&#xff09;群体规模 \(NP\) &#xff08;2&#xff09;交叉概率 \(P_c\) &#xff08;3&#xff09;变异概率 \(P_m\) &#xff08;4&#xff09;进化代数 \(G\) 3、MATLAB仿真实例 3.1 遗传算法求解一元函数的极…

遗传算法(Genetic Algorithm,GA)实例详解

遗传算法是模拟生物在自然环境中的遗传和进化的过程而形成的自适应全局优化搜索算法&#xff0c;他能有效求解NP问题以及非线性、多峰函数优化和多目标优化问题。 1.理论基础 1.1生物学基础 遗传算法的生物学基础是借鉴了达尔文的进化论和孟德尔的遗传学说&#xff0c;一个种…