遗传算法五大基本要素——参数编码、群体设定

简介: 遗传算法主要借用生物进化中的“适者生存”的规律。遗传算法包括两个数据转换操作,一个是从表现型到基因型的转换,将搜索空间中的`参数或解`转化成遗传空间中的`染色体或者个体`,这个过程叫做编码(coding)。另一个就是从基因型到变现型的转换,即将个体转换成搜索空间中的参数,这个过程叫做解码(decode)。遗传算法中包含了五个基本要素:参数编码,初始群体的设定,适应度函数的设计;遗传操作设计和控制参数设定。由于遗传算法不能直接处理问题空间的参数,因此,必须通过编码将要求解的问题表示成遗传空间的染色体或者个体。它们由基因按一定的结构组成。由于遗传算法的健壮性,对编码的要求并不苛刻。对一

遗传算法主要借用生物进化中的“适者生存”的规律。

遗传算法包括两个数据转换操作,一个是从表现型到基因型的转换,将搜索空间中的参数或解转化成遗传空间中的染色体或者个体,这个过程叫做编码(coding)。另一个就是从基因型到变现型的转换,即将个体转换成搜索空间中的参数,这个过程叫做解码(decode)。

遗传算法中包含了五个基本要素:参数编码,初始群体的设定,适应度函数的设计;遗传操作设计和控制参数设定。

由于遗传算法不能直接处理问题空间的参数,因此,必须通过编码将要求解的问题表示成遗传空间的染色体或者个体。它们由基因按一定的结构组成。由于遗传算法的健壮性,对编码的要求并不苛刻。对一个具体的应用问题如何编码是应用遗传算法的首要问题,也是遗传算法应用的难点。事实上,还不存在一种通用的编码方法,特殊的问题往往采用特殊的方法。

1、编码

1.1 位串编码

将问题空间的参数编码为一维排列的染色体的方法,称为一维染色体编码方法。一维染色体编码中最常用的符号集是二值符号集$\{0,1\}$,即采用二进制编码(Binary Encoding)。

(1)二进制编码
二进制编码是用若干二进制数表示一个个体,将原问题的解空间映射到位串空间$B=\{0,1\}$上,然后在位串空间上进来遗传操作。<>/font

优点:二进制编码类似于生物染色体的组成,从而使算法易于用生物遗传理论来解释,并使得遗传操作若交叉、变异等很容易实现。另外,采用二进制编码时,算法处理的模式数最多。

缺点:
①相邻整数的二进制编码可能具有较大的Hamming举例。例如,15和16的二进制表示为01111和10000,因此,算法要从15改进到16则必须改变所有的位。这种缺陷造成了Hamming悬崖(Hamming Cliffs),将降低遗传算子的搜索效率。
②二进制编码时,一般要先给出求解的精度。但求解的精度确定后,就很难在算法执行的过程中进行调整,这就是算法缺乏微调(fine-tuning)的功能。若在算法一开始就选择较高的精度,那么串长就很大,这样也会降低算法的效率。
③在求解高维优化问题的时候,二进制编码串将非常长,从而使得算法的搜索效率很低。

(2)Gray编码
$Gray$编码是将二进制编码通过一个变换进行转换得到的编码。
设二进制串$<β_1β_2...β_n>$对应$Gray$串$<γ_1γ_2...γ_n>$,则从二进制编码到$Gray$编码的变换为:

$$ γ_k= \begin{cases} β_1,\quad k=1\\ β_{k-1}\bigoplus β_k, \quad k>1 \end{cases} \tag{1} $$

上式子(1)中,$\bigoplus$表示摸2的加法,也就是异或运算,不同为1,相同为0。

举个例子说明一下:
假设有一个二进制编码串$(10110)_2$,那么我们将它转化为Gray编码后为$(11101)_{Gray}$ 。

从一个Gray串到二进制串的变换为:

$$ β_k=\displaystyle \sum^{k}_{i=1}{γ_i(mod2)}= \begin{cases} γ_1,\quad k=1\\ β_{k-1}\bigoplus γ_k, \quad k>1 \end{cases} \tag{2} $$

举个例子说明一下:
假设有一个Gray编码串$(01001)_{Gray}$,将其转化为二进制编码串后为$(01110)_2$。

Gray编码的优点是克服了二进制编码的Hamming悬崖的缺点。

1.2 实数编码

为克服二进制编码的缺点,对问题的变量是实向量的情形,可以直接采用实数编码。

实数编码是用若干实数表示一个个体,然后在实数空间上进行遗传操作。

采用实数表达法不必进行数制转换,可直接在解的表现型上进行遗传操作。从而可引入与问题领域相关的启发式信息来增加算法的搜索能力。近年来,遗传算法在求解高维或复杂优化问题时一般使用实数编码。

1.3 多参数级联编码

对于多参数优化问题的遗传算法,常采用多参数级联编码。其基本思想是把每个参数先进行二进制编码得到子串,再把这些子串连成一个完整的染色体。多参数级联编码中的每个子串对应各自的编码参数,所以,可以有不同的串长度和参数的取值范围。

2、群体设定

由于遗传算法是对群体进行操作的,所以,必须为遗传操作准备一个由若干初始解组成的初始群体。群体设定主要包括两个方面:初始种群的产生和种群规模的确定。

2.1 初始种群的产生

遗传算法中初始群体中的个体可以是随机产生的,但最好采用如下策略设定:

①根据问题固有知识,设法把握最优解所占空间在整个问题空间中的分布范围,然后,在此分布范围内设定初始群体。

②先随机产生一定数目的个体,然后从中挑选最好的个体加人初始群体中。这种过程不断迭代,直到初始群体中个体数目达到了预先确定的规模。

2.2 种群规模的确定

群体中个体的数量称为种群规模。
种群规模影响遗传优化的结果和效率。当种群规模太小时,遗传算法的优化性能一般不会太好,容易陷入局部最优解。而当种群规模太大时,则计算复杂。

种群规模的确定受遗传操作中选择操作的影响很大。模式定理表明:若种群规模为$M$,则遗传操作可从这$M$个个体中生成和检测$M^3$个模式,并在此基础上能够不断形成和优化积木块,直到找到最优解。

显然,==种群规模越大==,遗传操作所处理的模式就越多,产生有意义的积木块并逐步进化为最优解的机会就越高。==种群规模太小==,会使遗传算法的搜索空间范围有限,因而搜索有可能停止在未成熟阶段,出现未成熟收敛现象,使算法陷入局部最优解。因此,必须保持种群的多样性,即种群规模不能太小。

另一方面,种群规模太大会带来若干弊病:

  • 一是群体越大,其适应度评估次数增加,所以计算量也增加,从而影响算法效率;
  • 二是群体中个体生存下来的概率大多采用和适应度成比例的方法,当群体中个体非常多时,少量适应度很高的个体会被选择而生存下来,但大多数个体却被淘汰,这会影响配对库的形成,从而影响交叉操作。

种群规模一般取为20~100。

相关文章
|
1月前
|
算法 决策智能
基于禁忌搜索算法的VRP问题求解matlab仿真,带GUI界面,可设置参数
该程序基于禁忌搜索算法求解车辆路径问题(VRP),使用MATLAB2022a版本实现,并带有GUI界面。用户可通过界面设置参数并查看结果。禁忌搜索算法通过迭代改进当前解,并利用记忆机制避免陷入局部最优。程序包含初始化、定义邻域结构、设置禁忌列表等步骤,最终输出最优路径和相关数据图表。
|
1月前
|
算法
基于最小二乘递推算法的系统参数辨识matlab仿真
该程序基于最小二乘递推(RLS)算法实现系统参数辨识,对参数a1、b1、a2、b2进行估计并计算误差及收敛曲线,对比不同信噪比下的估计误差。在MATLAB 2022a环境下运行,结果显示了四组误差曲线。RLS算法适用于实时、连续数据流中的动态参数辨识,通过递推方式快速调整参数估计,保持较低计算复杂度。
|
2月前
|
算法
基于极大似然算法的系统参数辨识matlab仿真
本程序基于极大似然算法实现系统参数辨识,对参数a1、b1、a2、b2进行估计,并计算估计误差及收敛曲线,对比不同信噪比下的误差表现。在MATLAB2022a版本中运行,展示了参数估计值及其误差曲线。极大似然估计方法通过最大化观测数据的似然函数来估计未知参数,适用于多种系统模型。
|
3月前
|
算法 5G vr&ar
基于1bitDAC的MU-MIMO的非线性预编码算法matlab性能仿真
在现代无线通信中,1-bit DAC的非线性预编码技术应用于MU-MIMO系统,旨在降低成本与能耗。本文采用MATLAB 2022a版本,深入探讨此技术,并通过算法运行效果图展示性能。核心代码支持中文注释与操作指导。理论部分包括信号量化、符号最大化准则,并对比ZF、WF、MRT及ADMM等算法,揭示了在1-bit量化条件下如何优化预编码以提升系统性能。
|
3月前
|
算法
【Azure Developer】完成算法第4版书中,第一节基础编码中的数组函数 histogrm()
【Azure Developer】完成算法第4版书中,第一节基础编码中的数组函数 histogrm()
|
4月前
|
机器学习/深度学习 存储 算法
编码之舞:从算法到应用的探索之旅
在数字化时代的浪潮中,编程技术如同一种语言,连接着人类与机器。本文将带领读者踏上一场自数据结构基础至高级算法应用的探索旅程,通过实际案例分析,揭示算法在现代软件开发中的重要作用,并分享作者在编程实践中的心得体会,旨在为初学者和资深开发者提供有价值的参考与启示。
|
3月前
|
算法 搜索推荐
支付宝商业化广告算法问题之基于pretrain—>finetune范式的知识迁移中,finetune阶段全参数训练与部分参数训练的效果如何比较
支付宝商业化广告算法问题之基于pretrain—>finetune范式的知识迁移中,finetune阶段全参数训练与部分参数训练的效果如何比较
|
4月前
|
算法 数据安全/隐私保护
基于GA遗传优化算法的Okumura-Hata信道参数估计算法matlab仿真
在MATLAB 2022a中应用遗传算法进行无线通信优化,无水印仿真展示了算法性能。遗传算法源于Holland的理论,用于全局优化,常见于参数估计,如Okumura-Hata模型的传播损耗参数。该模型适用于150 MHz至1500 MHz的频段。算法流程包括选择、交叉、变异等步骤。MATLAB代码执行迭代,计算目标值,更新种群,并计算均方根误差(RMSE)以评估拟合质量。最终结果比较了优化前后的RMSE并显示了SNR估计值。
73 7
|
3月前
|
算法
基于EM期望最大化算法的GMM模型参数估计matlab仿真
此程序在MATLAB 2022a中实现了基于EM算法的GMM参数估计,用于分析由多个高斯分布组成的混合数据。程序通过迭代优化各高斯组件的权重、均值与协方差,直至收敛,并输出迭代过程的收敛曲线及最终参数估计结果。GMM假设数据由K个高斯分布混合而成,EM算法通过E步计算样本归属概率,M步更新参数,循环迭代直至收敛。
下一篇
无影云桌面