遗传算法的基本原理

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

第二章遗传算法的基本原理

2.1遗传算法的基本描述

2.1.1全局优化问题

全局优化问题的定义:给定非空集合S作为搜索空间,f : S—>R为目标函数,全局优化问

题作为任务maxf(x)给出,即在搜索空间中找到至少一个使目标函数最大化的点。

X母

全局最大值(点)的定义:函数值f* = f(x*):::■::称为一个全局最大值,当且仅当-X • S= f(x)_ f(x )成立时,x - S被称为一个全局最大值点(全局最大解)。

局部极大值与局部极大值点(解)的定义:

假设在S上给定了某个距离度量T,如果对x< S,; 0,使得对-S,

::(X, X )::;= f(X)_ f(X ),则称x为一个局部极大值点,f (x ')为一个局部极大值。当目标函数有多个局部极大点时,被称为多峰或多模态函数(multi-modalityfu nctio

n )。

主要考虑两类搜索空间:

伪布尔优化问题:当S为离散空间B L={0,1}L,即所有长度为L且取值为0或1的二进制位串的集合时,相应的优化问题在进化计算领域称为伪布尔优化问题。

连续参数优化问题:当取S伪n维实数空间R n中的有界集合S「「n=1[3i ,b i],其中& :::b i,i =1,2, …,n时,相应的具有连续变量的优化问题称为连续参数优化问题。

对S为吐{0,1} L,常采用的度量时海明距离,当S「点[a i,bj时,常采用的度量就是欧氏距离。

2.1.2遗传算法的基本流程

遗传算法的基本步骤如下:

1)选择编码策略,把参数集合X和域转换为位串结构空间S;

2)定义适应度函数f(X);

3)确定遗传策略,包括群体规模,选择、交叉、变异算子及其概率。

4)生成初始种群P;

5)计算群体中各个体的适应度值;

6)按照遗传策略,将遗传算子作用于种群,产生下一代种群;

7)迭代终止判定。

遗传算法涉及六大要素:参数编码,初始群体的设定,适应度函数的设计,遗传操作的设计,控制参数的设定,迭代终止条件。

由于GA 计算过程的鲁棒性,它对编码的要求并不苛刻。原则上任何形式的编码都可以, 只要存在合适的对其进行操作的遗传算子,使得它满足模式定理和积木块假设。

由于编码形式决定了交叉算子的操作方式,编码问题往往称作编码 -交叉问题。

对于给定的优化问题,由 GA 个体的表现型集合做组成的空间称为 问题(参数)空间, 由GA 基因型个体所组成的空间称为 GA 编码空间。遗传算子在GA 编码空间中对位串个体进 行操作。

定义:由冋题空间向GA 编码空间的映射称为编码,而有编码空间向冋题空间的映射成 为译码。

问题编码一般应满足以下三个原则:

1) 完备性(completeness ):问题空间中的所有点都能能成为 GA 编码空间中的点的表现型。 即编

码应能覆盖整个问题空间。

2) 健全性(soundness ): GA 编码空间中的染色体位串必须对应问题空间中的某一潜在解。 即每个

编码必须是有意义的。

3) 非冗余性(non-redundancy ):染色体和潜在解必须一一对应。

在某些情况下,为了提高 GA 的运行效率,允许生成包含致死基因的编码位串,它们对 应于优化问题的非可行解。虽然会导致冗余或无效的搜索,但可能有助于生成全局最优解所 对应的个体,所需的总计算量可能反而减少。

根据模式定理,De Jong 进一步提出了较为客观明确的编码评估准则,称之为编码原理。 具体可以概括为两条规则:

1) 有意义积木块编码规则:编码应易于生成与所求问题相关的短距和低阶的积木块。 2) 最小字符集编码规则:编码应采用最小字符集,以使问题得到自然、简单的表示和描述。

1 .二进制编码

1) 连续实函数的二进制编码

设一维连续实函数f(x),

[u,v]采用长度维L 的二进制字符串进行定长编码,建立位串 空间:

其中,个体的向量表示为a k = (a k1, a k2^' , a kL )

,其字符串形式为s k = a k1a k2…a kL ,S k 称

为个体a k 对应的位串。表示精度为Ax=(v-u)/(2L -1)

将个体又位串空间转换到问题空间的译码函数 -:{0,1}L > [u,v]的公式定义为:

对于n 维连续函数f (x), x =(X 1, X 2,…,x n ),为• [up vj(i 二1,2,…,n )

,各维变量的二进制编

a K r >, a k

- (a k1, a k2, ,a kL ) , a ki O 1r 1=1,2, …,L ; K=2 32,

k=1,2,…,K;

n

码位串的长度为l i,那么x的编码从左到右依次构成总长度为L - I,的二进制编码位串。

i J

相应的GA编码空间为:

S ={a i, a2^,a

K

}

,K=2

该空间上的个体位串结构为

对于给定的二进制编码位串S k,位段译码函数的形式为

h

X i = - (a ki,a k2,…,&外)=U i 「(•二.a kj2'J), i = 1,2,…,n

2i -1 y

米用二进制编码的GA进行数值优化时,可以通过改变编码长度,协调搜索精度和搜索效率之间的关系。

2)组合冋题的二进制编码

在很多组合优化问题中,目标函数和约束函数均为离散函数,采用二进制编码往往具有直接的语义,可以将问题空间的特征与位串的基因相对应。

2.其他编码

1)大字符集编码

2)序列编码

3)实数编码

4)树编码

5)自适应编码

6)乱序编码

7)二倍体和显性规律

Lawrenee Davis等学者主张:采用的编码对问题来讲应该时最自然的,并可以据此设计能够处理该编码的遗传算子。

2.1.4群体设定

遗传算法的两个主要特点之一就是基于群体搜索的策略,群体的设定,尤其是群体规模的设定,对遗传算法性能有着重要的影响。这中间包括两个问题:1)初始群体如何设定;2)进化过程中各代的规模如何维持?

1.初始群体的设定

遗传算法中初始群体中的个体是按一定的分布随机产生的,一般来讲,初始群体的设定可以采用如下的策略:

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

2)先随机生成一定数目的个体,然后从中挑出最好的个体加入到初始群体中。这一过程不断重复,直到初始群体中个体数达到了预定的规模。

相关文档
最新文档