当前位置:文档之家› 实数编码遗传算法中交叉算子的研究与改进

实数编码遗传算法中交叉算子的研究与改进


2.2.1 对解空间中个体的影响
f ( y(t) + α[x(t) − y(t)]) ,其平均适应度为:
设父代个体中第 i 维变量为 xi (t), yi (t) , 则第一次交叉后的子代个体中第 i 维变量
为: xi (t + 1), yi (t + 1) ,第二次交叉后子代个
体中第 i 维变量为: xi (t + 2), yi (t + 2) ,如此 循环,第 n 次交叉后子代个体中第 i 维变量
后的平均适应度。
(a) 交叉操作前的平均适应度
(b) 交叉操作后的平均适应度
(c) 交叉操作前的平均适应度
(d) 交叉操作后的平均适应度

图 1 交叉操作前后的平均适应度变化曲线 Fig.1 Changing curves of average fitness using
crossover operator
从图(a)与(b)的对比和(c)与(d)的对比中 可以看出,种群的平均适应度在经过交叉操 作后是几乎不发生变化的。
2.3 小结
为了更好地说明中间重组交叉算子的
给寻优过程带来的影响,先对一事实加以证
明。
下面对“适应度等于平均适应度的个体
在下一代的期望复制数为 1”进行证明。
(3)
其中,α, β ∈ rand (0,1) 。
2.2 中间重组交叉算子的分析
目前,对于实数编码的遗传算法,很多 论文中都采用了这种交叉算子[2][3][4]。下面分 别从解个体的微观层次和整个种群平均适 应度的宏观层次对这种交叉算子进行分析。
-1-

的个体在下一代的期望复制数为 1”这一事 实的证明,可以看出:这会导致比例选择操 作失去了效力,出现了对每一个个体都复制 一次的结果,即等概率复制。
综上所述,采用中间重组的交叉操作, 父代与子代的平均适应度几乎不发生变化, 并且种群中的个体会趋于相同,使进化过程 停滞。
基于这种观点,对上面图 1 加以分析。 分析如下:虽然中间重组的交叉操作从始至 终不会改变父代与子代的平均适应度,但在 进化开始时,由于初始种群个体的多样性, 选择算子会起到作用,使得种群的平均适应 度有所上升,随着进化的进行,种群中的个 体会趋于相同,导致个体的适应度都约等于 平均适应度,这就使得比例选择操作失去了 效力,而变异只能产生个别的新解,所以造 成了寻优过程的停滞不前。这也就是图 1 中 的曲线开始时上升,随后趋于平缓,而收敛 不到全局最优解的原因了。
f avg (t + 1) =
f (x(t)) + βf ( y(t) − x(t)) + 2
f ( y(t)) + αf (x(t) − y(t))
= f (x(t)) + f ( y(t)) + f (x(t) − y(t)) (α − β )
2
2
= f avg (t) + Δ
(8)
其中
Δ=
f (x(t) − y(t)) (α − β ) 。
f (x(t)), f ( y(t)) ,其平均适应度为:
f avg (t) =
f (x(t)) + 2
f ( y(t))
(6)
子代两个体的适应度为:
f (x(t) + β[ y(t) − x(t)])

进行交叉后,都不会导致平均适应度的变
化,所以,解个体在进行交叉后,也不会使
整个种群的平均适应度发生变化。
则子代个体中的第 i 维变量的交叉算子
计算式为:
xi (t +1) = yi (t +1) = αxi (t) + (1 − α ) yi (t)
(14) 其中,α = f (x) 。
f (x) + f (y)
3.1.2 均匀算术交叉算子的分析
可以认为(14)式是一种加权操作,其实 质是对适应度大的个体加以较大的权重,使 得子代个体在适应度大的父代个体附近产 生。
中图分类号:TP301.6
文献标识码:A
1. 引言(Introduction)
遗传算法(Genetic Algorithm)是模拟达 尔文的遗传选择和自然淘汰的生物进化进 程 的 计 算 模 型 , 由 美 国 Michigan 大 学 的 J.Holland 教授创建的。是一种高度并行的随 机化搜索的自适应的组合优化算法。该算法 不需要求导或其他辅助知识,只是通过影响 搜索方向的目标函数和相应的适应度函数 来寻求最优解。在许多领域得到了应用。
2
当α = β 时, f avg (t + 1) = favg (t) ,说
明父代种群中的任意两个体在经过交叉操
作后,平均适应度不变。由上述 x(t), y(t) 选
取的任意性,可知整个种群的平均适应度也
是 不 变 的 ; 当 α≠β 时 , 由 于
α, β ∈ rand (0,1) , Δ 变化范围很小,所以
(5) 从上面的推导可以看出,中间重组的交 叉算子使得产生解的搜索空间不断缩小。
f avg (t + 1) =
f (x(t + 1)) + 2
f ( y(t + 1))
= f (x(t) + β[ y(t) − x(t)]) + f ( y(t) + α[x(t) − y(t)]) 2
(7)
由于线性组合满足齐次性和叠加性,所以:
交叉后的两子代个体分别为:
x(t + 1) = [x1 (t + 1), x2 (t + 1),Λ , xn (t + 1)] y(t + 1) = [ y1(t + 1), y2 (t +1),Λ , yn (t + 1)]
(2)
其中, xi (t), yi (t) 为父代解向量中对应的第 i 维变量,即第 i 个待优化参数; xi (t + 1), yi (t + 1) 为子代解向量中对应的第 i
f avg (t + 1) ≈ favg (t) 。
②再来考虑解个体有 n 维,即:待优化 参数只有 n 个,并且适应度函数仍为解的线 性组合的情况。在这种情况下,每一维的在
2.2.2 对种群平均适应度的影响
下面推导当采用中间重组的交叉算子
时,子代与父代的平均适应度的关系。
①为了简便,首先考虑解个体只有一
2. 中间重组交叉算子的描述与 分析(Description and analysis of crossover operator)
2.1 中间重组交叉算子的描述
设用于交叉的任意两父代个体分别为:
x(t) = [x1(t), x2 (t),Λ , xn (t)]
(1)
y(t) = [ y1(t), y2 (t),Λ , yn (t)]
③最后,考虑解个体有 n 维,并且适应 度函数为解的非线性组合的情况。在这种情
况下,可对非线性的适应度函数进行线性
化,因此猜想在进行中间重组交叉操作后,
整个种群的平均适应度是不变的,但有待证
明。
通过对非线性的 Shaffer’s F6 函数的仿 真试验,表明父代与子代的平均适应度是不
变的。
Shaffer’s F6 函数表达式为:
f
(
x,
y )= 0.5−
sin 2 x 2 + y 2 − 0 .5 (1 + 0 .001 ( x 2 + y 2 )) 2
分别对α = β 、α ≠ β 时进行仿真试
验。仿真结果如图 1。
图 1 中,(a)和(b)图是当α = β 时,各
-2-
代交叉操作之前和之后的平均适应度;(c)
和(d)是当α ≠ β 时,各代交叉操作之前和之
维变量。从父代到子代交叉变异的公式为:
xi (t + 1) = αxi (t) + (1 − α ) yi (t) = yi (t) + α[xi (t) − yi (t)] yi (t + 1) = βyi (t) + (1 − β )xi (t) = xi (t) + β[ yi (t) − xi (t)]
遗传算法常用的编码方式有两种,一种 是二进制编码,另一种是浮点数编码。这两 种编码方式各有所长,二进制编码方式与浮 点数编码方式相比,搜索能力强,但是浮点 数编码比二进制编码在变异操作上能够保 持更好的种群多样性[1]。
目前,对于实数编码的遗传算法,交叉 操作算子多采用传统的中间重组的方法 [2][3][4]。但是,这种交叉方法易于使寻优过程 停滞,不能得到满意解。因此,很多人也对 此进行了改进,提出了许多改进型的交叉算 子[5][6],但是,在使用过程中,也出现了问 题。本文对传统的中间重组的方法以及两种 改进型交叉算子进行了分析,并在此基础 上,提出一种新的交叉算子,使得算法不论 在收敛的快速性还是正确性上都有很大的 提高。
为: xi (t + n), yi (t + n) 。
因为 α, β ∈ rand (0,1) ,所以,
xi (t +1), yi (t +1) ∈(min[xi (t), yi (t)],max[xi (t), yi (t)]) xi (t + 2), yi (t + 2)∈(min[xi (t +1), yi (t +1)],
f sum
f sum
f sum
f sum
(12)
其中 fi × n = [( f1 + f2 + Λ + fn ) n]× n = 1,即:
f sum
f sum
适应度等于平均适应度的个体在下一代的
相关主题