遗传算法概述

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

第一章 遗传算法概述

2.1 遗传算法的原理

遗传算法是模拟生物在自然环境中的遗传和进化过程而形成的一种概率搜索算法。遗传算法是通过模拟生物在自然界中的进化过程而形成的一种优化算法。它的基本过程是:先随机生成规模为m 的初始群体,对连续优化问题即为n R 中的m 个点},,,{,},,,,{21112111m n m m m n x x x x x x x x ==的集合,

},,,{21k sn k s k s x x x 称为个体或者染色体,通过对该群体使用遗传操作(包括选择、

交叉、变异遗传算子),得到m 个新的个体,这称作是群体的一代进化,相当于通常优化算法的一次迭代。不断重复这一过程,可看作是群体的逐代演化,直到得到满足给出条件的问题解。

可以看出,遗传算法的关键是进化过程中使用的遗传操作即选择、交叉和变异等算子,这些算子决定了下一代个体的具体位置。

选择策略对算法性能的影响有举足轻重的作用。常用的是轮盘选择和精英选择。

a. 轮盘选择(roulette wheel selection )

选择的基本依据是个体的适应值,对于最小化问题,个体适应值取为)()(x f K x f -=',其中K 为一足够大的正数。定义第i 个体的选择概率为 ∑=''=n i i

i i x f x f p 1)()

( (3)

其意义是个体适应值在群体总适应值中所占的比例。生成一个[0,1]内的随机数r ,若i i p p p r p p p +++≤<+++- 21110,假设00=p ,则选择个体i 。 b. 精英选择(elitist selection )

当下一代群体的最佳个体适应值小于当前群体最佳个体的适应值,则将当前群体最佳个体或者适应值大于下一代最佳个体适应值的多个个体直接复制到下一代,随机替代或替代最差的下一代群体中的相应数量的个体。

交叉与变异算子的选取与编码方式有关,最初Holland[5] 提出的遗传算法是采用二进制编码来表现个体,后来发现对连续优化问题采用浮点编码可以达到更好的效果,因此越来越多地使用浮点编码,下述的交叉、变异算子针对浮点编码。

(2) 交叉算子

按照概率c p 随机选择两个个体},,,{112111n x x x x =,},,,{222212n x x x x =,随机选一个交叉位置}1,,2,1{-∈n p ,则交叉后的新个体为

},,,,,,{2)1(2112111n p p x x x x x x +=', },,,,,,{1)1(1222212n p p x x x x x x +='

(3) 变异算子

有多种不同的变异算子,效果较好的是自适应变异[6]。若个体

},,,{21n x x x x =的元素k x 被选择变异,],[max min k k k x x x ∈,则变异结果为

},,,,,{21n k x x x x x '=',其中

1)1,0(0)1,0()1()()1()(min max ==⎪⎩⎪⎨⎧-⋅---⋅-+='rand if rand if r x x x r x x x x T k k k T k k k k λλ (4)

此处取2=λ,max )(1f x f T k -=(定义为变异的温度),max f 取所解问题的到当前代的最大适应值,r 是[0,1]之间的随机数。这个变异算子使得适应值较好的个体在较小范围内搜索,适应值较差的个体,搜索范围相对较大。即根据个体的质量自适应的调整搜索范围,从而提高其搜索能力[7]。

以上所出现的术语及其解释如下:

个体(individuals):GA 所处理的基本对象、结构。

群体(population):个体的集合。

群体规模(population size):群体中个体的数目称为群体大小,也叫群体规模。

位串(bit string):个体的表示形式。对应于遗传学中的染色体。

基因(gene):位串中的元素,表示不同的特征。对应于生物学中的遗传物质单位,以 DNA 序列形式把遗传信息译成编码。

基因位(locus):某一基因的染色体中的位置。

等位基因(allele):表示基因的特征值,即相同基因位的基因取值。位串结构空间(bit strings space):等位基因任意组合构成的位串集合,基因操作在位串结构空间进行,对应于遗传学中的基因型的集合。

参数空间(parameters space):是位串空间在物理系统中的映射。对应于遗传学中的表现型的集合。

编码(coding)、译码(decoding)操作:遗传算法必须包含两个必须的资料转换操作,即把搜索空间中的参数或解转换成遗传空间中的染色体或个体,称为编码操作;反之,称为译码操作。

适应值(fitness):某一个体对于环境的适应程度,或者在环境压力下的生存能力,取决于遗传特征。

适应度函数(fitness function):各个个体对环境的适应程度叫做适应度。对于优化问题,适应度函数就是目标函数。

复制、选择(reproduction or selection):在有限资源空间上的排他性竞争。

交叉、交换、交配、重组(crossover or recombination):一组位串或者染色体上对应基因段的交换。

变异(mutation):位串或染色体水平上的基因变化,可以遗传给子代个体。

遗传算法在整个进化过程中的遗传操作是随机性的,但它所呈现出的特性并不是完全随机搜索,它能有效地利用历史信息来推测下一代期望性能提高的寻优点集。这样一代代地不断进化,最后收敛到一个最适应环境的个体上,求得问题的最优解。遗传算法涉及五大要素:参数编码、初始群体的设定、适应度函数的设计、遗传操作的设计和控制参数的设定。

2.2 遗传算法的实现

2.2.1 基本操作方法

(1)参数编码

编码机制是遗传算法的基础。通常遗传算法不直接处理问题空间的资料,而是将各种实际问题变换为与问题无关的串个体。对染色体串的遗传操作只与遗传算法的理论、技术有关,而与具体实际问题无关。这一特性增大了遗传算法的适用性。基本遗传算法使用固定长度的二进制符号串来表示群体中的个体,其等位基因是由二值符号集{0,1}所组成的。初始群体中各个个体的基因值可用均匀分部的随机数来生成。如:X=100111001000101101 就可以表示一个个体,该个体的染色体长度是n=18。

相关文档
最新文档