文档介绍:第二章基本遗传算法(GA)
基本遗传算法描述
遗传算法在自然与社会现象模拟、工程计算等方面得到了广泛的应用。在各个不同的应用领域,为了取得更好的结果,人们对GA进行了大量的改进,为了不至于混淆,我们把Holland提出的算法称为基本遗传算法,简称 GA、SGA(Simple ic Algorithm )、CGA(Canonical ic Algorithm),将其它的“GA类”算法称为GAs(ic Algorithms),可以把GA看作是GAs的一种特例。
基本遗传算法的构成要素
(1) 染色体编码方法
基本遗传算法使用固定长度的二进制符号串来表示群体中的个体,其等位基
因由二值符号集{0,1}组成。
初始群体中各个个体的基因值用均匀分布的随机数来生成。如:
x;100111001000101101
就可表示一个个体,该个体的染色体长度是 l=18。
(2) 个体适应度评价
基本遗传算法按与个体适应度成正比的概率来决定当前群体中每个个体遗传
到下一代群体中的机会多少。为正确计算这个概率,这里要求所有个体的适应
度必须为正数或零。这样,根据不同种类的问题,必须预先确定好由目标函数
值到个体适应度之间的转换规则,特别是要预先确定好当目标函数值为负数时
的处理方法。
(3) 遗传算子
基本遗传算法使用下述三种遗传算子:
•选择运算:使用比例选择算子;
•交叉运算:使用单点交叉算子;
•变异运算:使用基本位变异算子。
(4) 基本遗传算法的运行参数
基本遗传算法有下述4个运行参数需要提前设定:
• M:群体大小,即群体中所含个体的数量,一般取为20 ~ 100。
• T:遗传运算的终止进化代数,一般取为100 ~ 500
• pc:交叉概率, ~
• pm:变异概率,一般取为 ~
[说明]
这4个运行参数对遗传算法的求解结果和求解效率都有一定的影响,但目前
尚无合理选择它们的理论依据。在遗传算法的实际应用中,往往需要经过多次试
算后才能确定出这些参数合理的取值大小或取值范围。
基本遗传算法的形式化定义
基本遗传算法可定义为一个7元组:
GA= (M, F, s, c, m, pc, pm )
M——群体大小;
F——个体适应度评价函数;
s——选择操作算于;
c——交叉操作算子:
m——变异操作算于;
pc——交叉概率;
pm——变异概率;
基本遗传算法描述
Procedure GA
Begin
initialize P(0);
t=0;
while (t<=T) do
for i=1 to M do
Evaluate fitness of P(t);
end for
for i=1 to M do
Select operation to P(t);
end for
for i=1 to M/2 do
Crossover operation to P(t);
end for
for i=1 to M do
Mutation operation to P(t);
end for
for i=1 to M do
P(t+1) = P(t);
end for
t=t+1
end while
end
基本遗传算法的实现
根据上面对基本遗传算法构成要素的分析和算法描述,我们可以很方便地用计
算机语言来实现这个基本遗传算法。
现对具体实现过程中的问题作以下说明:
编码与解码
(1) 编码
假设某一参数的取值范围是[umin , umax],我们用长度为l的二进制编码符号串来表示该参数,则它总共能够产生 2l种不同的编码,参数编码时的对应关系如下:
00000000…00000000=0 umin
00000000…00000001=1 umin +
00000000…00000010=2 umin + 2
……
11111111…11111111=2l–1 umax
x = umin + ( bi · 2i-1 ) ·
1
i=l
Umax umin
2l 1
其中, 为二进制编码的编码精度,其公式为:
=
Umax umin
2l 1
(2) 解码
假设某一个体的编码是:
x: bl bl-1 bl-2……b2b1
则对应的解码公式为:
[例] 设- ≤ x ≤ , 精度要求=1/10000,由公式:
Umax umin
2l =
+ 1
1/10000
+
+