遗传算法论文:浅谈遗传算法的研究与改进

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

遗传算法论文:浅谈遗传算法的研究与改进【摘要】遗传算法是模拟自然界生物进化机制的概率性搜索算法,可以处理传统搜索方法难以解决的非线性问题。但是经典遗传算法存在局部收敛、收敛速度慢等缺点,这使得经典遗传算法有时很难找到全局最优解。本文针对经典遗传算法中所存在的缺点,采用阶段式的适应度函数、基于竞争机制的交叉方式和仿粒子群变异操作,使遗传算法的收敛速率、全局收敛概率都得到了较大的提高。

【关键词】遗传算法适应度交叉操作仿粒子群变异

一遗传算法

遗传算法(genetic algorithm,简称ga)是holland 在研究自然遗传现象与人工系统的自适应行为时,模拟生物进化现象,并采用自然进化机制来表现复杂现象的一种全局群体搜索算法。遗传算法的基本思想起源于darwin进化论和mendel的遗传学说。作为一类智能计算工具和学习算法,由于其实现简单、对目标函数要求不高等特性,遗传算法已广泛应用于如人工智能、组合优化等研究领域。

1.遗传算法的优越性

遗传算法(genetic algorithm)利用某种编码技术作用在称为染色体的二进制串上,模拟由这些串组成的个体的进化过程。通过有组织的、随机的信息交换来重新结合那些

适应性好的串,在每一代中,利用上一代串结构中适应性好的位和段来形成一个新的串的群体,同时在串结构中尝试用新的位和段来代替原来的部分以形成新的个体,以增加种群的多样性。遗传算法的最大优点是能够通过群体间的相互作用,保存已经搜索到的信息,这是基于单次搜索过程的优化方法所无法比拟的。但是,遗传算法也存在着计算速度较慢,并且容易陷入局部最优解的问题中。

遗传算法的优越性归功于它与传统搜索方法不同的特

定结构。

第一,遗传算法的操作对象是编码,对问题的限制极少,对函数的一些约束条件如连续性、可导性等不做要求,减少了要解决问题的复杂性。

第二,遗传算法同时搜索解空间内的许多点,因而可以有效地防止搜索过程中收敛到局部最优解,并获得全局最优解,与其他单点搜索的方法相比,在计算时间上也有较大的优势。

第三,遗传算法使用遗传操作时是按概率在解空间进行搜索,因而既不同于随机搜索,也不同于枚举法那样盲目地举例,而是一种有目标、有方向的启发式搜索。

2.遗传算法的基本步骤

遗传算法的实现中包括复制、交叉、变异三个算子,需

要确定关键的几个参数与标准包括:种群规模、基因编码、适值函数、选择概率、遗传算子以及停机准则。下面分别对其进行说明:

第一,表示法与适应度计算。标准遗传算法(二进制编码)作用于确定长度的二进制位串上,即i={0,1}l。假设需要

解决如下函数优化问题,一般

是将位串分为n段,每段长度为lx,即l=nlx,每段表示分量

xi∈[ui,vi]的二进制代码。位段译码函数的常见形式为:

(1)

其中… 记为个体… 的第

i段。把位段译码函数组合成一个个体的译码函数… ,则适应度函数可设置为,其中δ为比例变换函数,作用之一是确保适应值为正值,并且最好使个体的适应度值最大。常见的比例变换有线性比例、幂比例和指数比例等。

第二,交叉。交叉操作是将已有个体组合出新个体,使两个个体的有效信息得以遗传到下一代,并可能得到新的个体信息。在遗传算法中,交叉操作是主要的遗传操作,它把两个不同个体上的有用段组合在一起,ga的性能在很大的程

度上依赖所使用的交叉算子。交叉操作算子r'∶i μ→i也是作用在位串上,以概率pc对两个个体进行交叉,pc的作用范围一般为[0.6,1.0]。两个父辈个体s=(s1,…,sl),v=(v1,…,vl)被随机地从群体中选择而进行交叉,产生了两个子代个体:

s'=(s1,…,sh-1,sh,vh-1,…,vl,)(2)

v'=(v1,…,vh-1,vh,sh-1,…,sl,)(3)

其中交叉点h为1到l之间的一个随机整数。这种交叉即为一点交叉,通过选择更多的交叉点并交替地变换交叉点之间的位段,就可以把一点交叉扩展到m点交叉算子。另外还有一些其他形式的交叉算子,如一致交叉算子等。不过目前还没有明确的理论或可靠的实验证据来决定哪一种交叉

算子是最适合的。

第三,变异。变异操作的目的是通过随机改变染色体的某些基因来引入新个体,增加种群多样性,并在一定程序上进行局部搜索。相对于交叉操作,变异操作的设计和实现更为简单和灵活。在标准遗传算法中,变异一般被看作为辅助算子,它作用在位串上,以较小的概率pm随机地改变串上的每一位(即相应位上的0变为1,或者1变为0)。变异概率pm的值一般为0.001到0.01之间,它不依赖目标变量的维数

和位串的总长。个体(s1,…,sl)经变异算子作用后

变为(… ),其中:

(4)

这里θi是0与1之间的一致随机数,对串上的每一位都要重新采样。常用的变异操作包括:(1)互换:随机变换若干不同位置上的不同基因。(2)逆序:将某两随机位置间的基因串逆序。(3)插入:即将某一位置上的基因(或某一段位置上的基因串)插入到另一位置之前或之后,若两位置相邻,则该操作也称为漂移。

第四,选择。标准遗传算法采用的是一种依据概率复制的选择算子s∶i μ→i μ,个体ai的复制概率由它的相对适应度给出:

(5)

按照这个概率分布选取μ个个体产生下一代父辈群体。显然该选择算子不适于出现负适应度值和最小化任务的情况,此时需采用适应度值比例转换。综上所述,标准遗传算法的主要步骤可描述如下:

二遗传算法的改进

1.一般自适应遗传算法

经典遗传算法(cga)采用的都是固定参数,由于遗传

算法从本质上说是一种动态自适应的进化过程,因此固定的参数设置则是对遗传算法性能的一种局限和束缚。经典遗传算法在进化过程中,各遗传算子的参数保持不变。由于在进化后期,种群内个体的多样性大幅度减小,适应值接近,因此选择操作的选择压力可能不够,致使算法接近随机搜索状态。

针对cga存在的这些问题,srinvivas等人提出自适应遗传算法(adaptive ga,aga),即交叉概率pc和变异概率pm能够随适应度自动改变,遗传算法的参数中交叉概率pc 和变异概率pm的选择是影响遗传算法行为和性能的关键所在,直接影响算法的收敛性,pc越大,新个体产生的速度就越快。然而,pc过大时遗传模式被破坏的可能性也越大,使得具有高适应度的个体结构很快就会被破坏;但是如果pc

过小,会使搜索过程缓慢,以至停滞不前。对于变异概率pm,如果pm过小,就不易产生新的个体结构;如果pm取值过大,那么遗传算法就变成了纯粹的随机搜索算法。

当种群中每个个体的适应度趋于一致或趋于局部最优时,使二者增加,而当种群适应度比较分散时,使二者减小,同时对适应度高于群体平均适应度的个体,采用较低的交叉和变异概率,使性能优良的个体进入下一代,而低于平均适应度的个体,采用较高的交叉和变异概率,使性能较差的个

相关文档
最新文档