编码机

编码机制是遗传算法的前提条件,是按一定顺

发布时间:2022/11/9 22:08:51   
白颠疯会自己好吗 http://m.39.net/pf/a_7720944.html

遗传算法借鉴达尔文的生物进化论,通过模仿自然界生物进化机制发展起来的随机全局搜索和优化方法。根据生物进化论,在不断变化的自然环境中,对环境适应能力强的个体存活下来的几率大,而不能适应环境的个体逐渐被淘汰。适应性好的个体通过遗传机制将好的基因特性遗传给其后代,并且在适应环境的过程中个体发生变异,使之向有利于适应环境的方向发展,所以可以说生物的进化过程是一个优化的过程。

遗传算法正是对这种进化机制的模仿,年开始对其理论和方法进行系统研究,这关键性的第一步是由美国的J.Holland教授迈出的。借鉴生物进化机制,遗传算法模拟生物的进化过程寻找研究对象的最优解。它将问题的可行解通过编码机制编码成基因串,即染色体,通过适应度函数的过滤以及类似自然界中的选择、交叉、变异等操作产生新的种群,这样一代一代周而复始的进化使群体中个体的适应度逐步提高,直到满足一定的条件,得到最优解。

编码机制是遗传算法的前提条件,遗传算法不是直接对研究对象进行搜索,而是先将研究对象按照一定的编码机制转换成相应符号按一定顺序排列成的基因串,即染色体个体,这些编码后的串也就构成了问题的可行解,这个转换过程就是染色体编码,是遗传算法的关键。目前普遍使用的编码机制为二进制编码和实数编码。

在遗传算法中人们普遍使用二进制编码机制对研究问题的变量进行编码。顾名思义,二进制编码方式就是使用0或1来对问题空间的参数进行编码,即染色体是由0和1构成的字符串。二进制编码具有编码和解码简单易操作,便于选择、交叉、变异操作算子的实现等优点。其缺点在于不能同时兼顾计算精度和效率:个体的二进制编码长度增长是可以提高计算精度,但是要以牺牲运算效率为代价;而要提高运算效率就要缩短个体的二进制编码长度来降低计算量。

实数编码是针对上述二进制编码精度不高的缺点提出来的。所谓实数编码即直接使用实数来表示染色体中的基因元素,实数编码的染色体长度是问题变量的个数。一般情况下采用决策变量的实际值表示基因值,因此也称为真值编码。实数编码不仅求解精度相对较高,而且不需要编解码。BP神经网络的初始权值和阈值比较敏感,所以采用实数编码。

自然界中的生物都遵循着优胜劣汰的进化规律,所谓优胜劣汰是指对环境越适应的个体存活下来的几率越高。优胜劣汰的标准在遗传算法中通过适应度来反应。度量个体适应度的函数称为适应度函数,其作用是对个体的适应程度进行评估比较,通过适应度的大小来决定当前群体中每个个体遗传到下一代的几率,从而进行优胜劣汰的遗传操作。遗传算法求解问题最优解的类型一般是求全局最大值或最小值。

仿照自然界物种的繁衍、交配、基因突变的过程,遗传算法有三个基本的操作:选择、交叉、变异。这三个基本操作有一个共同点:它们都是在随机的情况下进行的,虽然种群中个体向最优解进化的规则是随机的,但是这种随机是高效有方向的。先将三种基本操作介绍如下:遗传算法中的选择操作对应着自然界中优胜劣汰的进化规则,以适应度为选择原则,以一定概率从种群中选择若干个体。

适应度高的个体得以存活并有更多的繁殖后代的机会,而适应度低的个体繁殖受到抑制甚至会被淘汰。交叉操作模仿生物繁殖后代时基因的交叉结合。按照交叉概率P对两个染色体某部分基因进行互换。这个过程反映了信息交换的思想。如同自然界中通过基因重组可以产生不同于父类的基因,遗传算法中的交叉操作也是为了产生新的基因组合从而产生新的个体。交叉时,可实行单点交叉、多点交叉或算术交叉。

基因突变是生物进化过程中的重要步骤之一,通过染色体上某个位置的基因突变产生新的个体。变异正是模仿这种基因突变,改变染色体上某个或某些位置上的基因。变异算子使得遗传算法可以在初始基因组合以外的解空间进行搜索,避免进化过程易在早期陷入局部解,使进化过程不至终止,最终得到全局最优解。

遗传算法中变异发生的概率较低,就像生物在自然环境中是在很偶然的情况下才会引起基因突变的,通常取值在0.-0.01之间,虽然概率较低但是也为产生新的个体创造了可能性。在遗传算法操作过程中,参数的选择也很重要,需要适当确定参数的值以提高选优的效果。这些参数包括对个体编码时所采用的字符串长度;

初始化时群体的大小,即所包含字符串的个数;交叉率,即实施交叉的概率;变异率,即实施变异操作的概率;其他可供繁殖停止的参数指标,如最大迭代次数等。遗传算法是一种对一组被编码的可行解空间进行全局优化搜索、快捷、容错性强的算法,是一类可用于复杂系统优化计算的算法,和其它搜索方法相比它采用了许多独特的技术和方法,有很多优越性。

归纳如下:1.遗传算法不是对所研究的问题直接进行操作,它的操作对象是参数编码后的个体。这就打破了操作对象的局限性,使其可以直接对集合、矩阵、树等结构对象进行操作,而且不受维数的限制。这一解决问题的方式使遗传算法可以在多种领域中得到应用。

2.遗传算法是以群体而不是个体为对象进行寻优的,是一种并行求解方式。这就避免了许多传统单点搜索算法对于多极值分布的搜索空间往往会陷入局部而不是全局最优解的缺点。所以遗传算法是从全局的角度出发寻找问题的最优解,而且遗传算法并不是盲目的在解空间内进行搜索,它的依据是适应度函数。

3.遗传算法在选优的过程中是以适应度作为依据的,并不需要额外的外部信息。而适应度函数的确定比较简单方便往往只是通过目标函数来确定。所以遗传算法的寻优过程就避免了函数求导等复杂计算,并且可以缩小目标搜索空间,故使遗传算法的求解效率得到了提高。另外由于适应度函数没有连续可微等条件的限制,使其应用范围大大扩大。

4.遗传算法是对自然界中生物进化过程的模拟,生物的进化是在随机的情况下进行的,与之相类似遗传算法的选择、交叉和变异等操作都是随机的。由于遗传算子的运算按概率进行,因而搜索具有很高的灵活性,比确定性优化方法的搜索范围更大。

通过前面对BP神经网络和遗传算法的分析可知,遗传算法是一种在全局范围内寻优的算法,而BP算法虽然有诸多的优点得到众多研究人员的青睐,但其自身存在易陷入局部极小点、全局搜索能力弱以及训练速度慢等不足。如果将遗传算法引入BP神经网络就可以有效的克服BP算法的不足,达到较好的预测效果。

遗传算法可以从三个方面对神经网络进行优化:对网络结构的优化、对网络权值的优化以及对学习规则的优化。引入遗传算法对BP神经网络的权值和阈值进行优化。BP算法的思想是通过调节权值和阈值使实际输出尽可能的接近期望输出,所以实际上它也是一种优化算法——寻找最优的权值和阈值。因为目前广泛使用的BP神经网络是采用梯度下降方法对权值和阈值进行调整的,致使初始权值和阈值关系到网络的训练结果。

一旦取值不当,可能会使网络陷入漫长的训练过程甚至无法收敛,并且还极有可能易陷入局部极小点而无法得到全局极小值。然而目前是以随机的方式对初始权值和阈值进行赋值,缺乏依据,不能确保网络的性能。通过遗传算法所具有的全局优化特性对网络的初始权值和阈值进行优化,避免BP神经网络随机的选取初始权值和阈值,使其得到最优的初始值。这样就可以充分发挥两种算法的优势,既能发挥BP神经网络的优势又可以应用遗传算法的全局搜索能力克服其缺点。



转载请注明:http://www.aideyishus.com/lkyy/2234.html
------分隔线----------------------------