一种有效的实数编码遗传算法_周育人
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一种有效的实数编码遗传算法
周育人1 , 李元香1 , 王 勇2
(1 .武汉大学 计算机学院 , 湖北 武汉 430072 ;2 .武汉化工学院 自动化系 , 湖北 武汉 430073)
摘 要 :提出实数编码遗传算法的一个新重 组算子 ——— 子空 间正态分 布算子 , 它 在多父体 张成的 子空间 中任取 一 点 , 然后进行高斯变异产生后代 .与已有的一些重组算子相比 , 新算子产 生的后代在 保持向量 均值的前 提下具 有更多 的 广泛性和多样性 , 数值试验显示它在求解高维优 化问题和复杂多极值优化问题方面有优势 .
(Arithmetic Crossover ), 中 间 杂 交 (Intermediate Crossover), 扩展杂交(Ex tended Crossover)以及郭涛算 法[ 7] 等基本 上类 似于单 形杂交 .从自 适应 的角 度来 看 , 这些重组算子都具有天然的自适应特征 , 因为它们 利用多个父体的分布信息产生后代 .
3)设 D 为父体 x 3 到连接两父体 x 1 和 x 2 的直 线(称为初始搜索线)的距离 ;
4)由下式产生一个后代
n -1
∑ xc = x p +ξd +D ηiei , i =1
ξ~ N (0 , σξ2), ηi ~ N (0 , ση2)
这里 n 是自变量维数 , ei (i =1 , …, n -1)为初始搜索 线的正交子空间的一组规范正交基(由 Gram-Schmidt
2 .2 演化算法模型
对于实数编码遗传算法 , 重组算子的设计是一个
重要方面 , 另外 , 群体替换模型的设计也在算法的性能
上发挥重 要的作用 .最小 代数代沟(M inimal Genera-
tion Gap , MGG )模 型 是 一 个 首 先 由 Satoh 提 出, 现在已被广泛使用的模 型[ 9] , 它较好的 均衡了
2 新的实数编码演化算法
2 .1 子空间正态分布杂交算子
实参数演化算法与其说是时间搜索法还不如说是
空间搜索法 .UNDX 在两父体中心的周围由新坐标系
下的高斯变异产生后代 , SPX 则由多父体组成的多面
体产生后代 .从杂交算子要求后代具有丰富的多样性
方面来看 , UNDX 和 SPX 都有所不足 :UNDX 所产生
n
∑ o 为 n +1 个父体向量的中心 , 即 o
=
n
1 +1 i =0
xi
,将
单形沿 x i -o 方向以扩张比例 ε向外扩张 , 得到一个
新单形 , 在新单形中随机地取一点即为单形杂交算子
所产生的后代 .如图 2 是 R2 中 3
图 1 U NDX
图 2 SPX
个父体 x 1 、x 2 、x3 所产生的单形及扩张后所产生的新 单形 .
1)在重组算子运算前后 , 群体中个体向量的均值 应保持不变 ;
2)在应用重组 算子后 , 个体间 距离的方 差应增 加.
因为重组算子没有使用个体适应值函数 , 所以应 保持个体向量均值不变 , 这便是性质 1).性质 2)的理 由是由于选择算子有减少群体中个体 距离方差的倾 向 , 为了保持群体的适当的多样性 , 重组算子应增加群 体个体距离的方差 .
第 1 期 周育人 等 :一种有效的实数编码遗传算法
41
图 3 子空间正态分布杂交
算法的探索(Exploration)和开发(Exploitation)能力 . 它将重组算子和选择算子以下列方式交叉进行 :
1)从第 t 代群体 P(t)中随机地选取 μ个父体 ; 2)对 μ个父体使用重组算子产生 λ个后代 ; 3)从群体中随机选取两个父体 ;在所选的两个父 体中 , 一个由 λ个后代中最好的个体 替换掉 , 另一个 由剩下的 λ-1 个后代使用赌轮选择算子替换掉 . 在数值实验中 , 使用下述稍加改进后的 MGG 模 型 , 与原始 MGG 模型的相比性能有所高 , 算法描述如 下: 1)初始化 , 群体规模为 N(设为偶数), 置 t =0 ; 2)从第 t 代群体 P(t)中随机地选取 μ个父体 ; 3)对 μ个父体使用子空间正态分布杂交算子产 生 λ个后代 ; 4)从 μ个父体和 λ个后代组成的集合中选取两 个个体 , 其中一个为(μ+λ)个个体中适应值最好的个 体 , 另一个在剩下的(μ+λ-1)个个体中由二进制联 赛产生 ; 5)重复步骤 2)、3)和 4), 直到选取 N 个后代 , 由 这 N 个 后 代 这 将 群 体 P (t )中 的 个 体 整 体 替 换 掉 ; 6)若 满足 停机 条 件则 停机 , 否 则 t =t +1 , 转 2).
=20 (Schwefel function)
函数 F1 是许多抗早熟收敛算法都要为之一试的 函数 , 它只有一个全局最小点(0 , 0), 最小值为 -1 , 它
在自变量范围[ -10 , 10] ×[ -10 , 10] 内有无数个局部
极小值点 , 这些局部最小值点形成几个圆环包围惟一
的整体最小值点 , 图 4 是 F 1 的图形 .函数 F 2 的最优
本文提出一种新的实数编码方法 ———子空间正态 分布杂交算子 , 该方法以群体的部分个体所张成的子 空间为中心 , 对其中的点进行自适应高斯变异 , 产生新 的后代 .数值实验证实了新方法的可行性和有效性 , 其 性能优于已有的一些方法 .
1 UNDX 算子和 SPX 算子
什么样的实数编码重组算子是好的重组算子 ? 文 献[ 8] 提出了重组算子应具备的两个性质 :
关 键 词 :演化计算 ;实数编码 ;优化 ;子空间正态分布算子 中图分类号 :T P 301 .6 文献标识码 :A
0 引 言
演化算法(Evolutionary Algo rithms , EAs), 包括演 化策略(Evolution Strategies, ES)、演 化规 划(Evolutionary Programming , EP)以及遗传算法(Genetic Algo rithms , GAs), 都成功地应用于函数优化问题 .演化 策略和演化规划针对连续变量使用浮点编码 , 变异算 子作为产生后代的首要算子 ;遗传算法则主要使用二 进制编码 , 其产生后代的首要算子为杂交算子 .然而 , 由于认识到二进制编码求解函数优化 问题效果不理 想 , 遗传算法也采用实数编码 , 称之为实数编码遗传算 法(Real-Coded Genetic Algori thm s, RCGA).现在广泛 使用的实参数演化算法可分成 3 类 :1)自适应演化策 略[ 1] ;2)微分演化算法[ 2] ;3)实数编码遗传算法[ 3] .当 然 , 这种划分算不上严格 , 3 类方法之间有其公共性和 相似性 .
n
∑ x ** = x * +r ζiei , ζi ~ N (0 , σζ2) i =1
这里 ei(i =1 , … , n)为 n 维的单位坐标向量 , r 为 μ
μ
个父体到中心 o 的距离的平 均值 , 即 r = ∑ ‖ xi i =1
∑ o ‖/ μ, 其中 o
=
1μ μi =1
xi
, ‖·‖表示欧几里德距离 ;
值为 -78 .332 3 , 它存在 2n 个局部最小值 .函数 F3 和
F 4 的最小值在
x
* i
=0(i
=1
,
…,
n)处取到 , 最小值为
F * =0 .F1 和 F2 属于多极值优化问题 , F 3 和 F 4 是
高维优化问题 .
图 4 函数 F 1 的图形
数值试验在 M AT LAB 中完成 .在子空间正态分 布杂交算子中 , 群体规模 取为 100 , 父体个数 μ取为 3 , 一次产生后代个数 λ取为 10 , 高斯变异的标准差 σζ
的后代局限在父体中心的周围 ;SPX 所产生的多面体
搜索空间不够广泛 , 若多父体向量线性相关则 SPX 的
不足更加突出 .以下提出的子空间正态分布杂交算子
可以在一定程度上克服上述不足 , 使搜索空间更广泛 ,
更具多样性 .子空间正态分布杂交算子在多父体张成
的子空间中任取一点 , 然后进行高斯变异产生后代 , 步
σζ取为 c/ n , c 为常数 , 根据实验 c 在区间[ 1 , 1 .3] 中
取值效果较好 .
上述杂交算子与 UNDX 相比较 , 前者在多父体所 张成的子空间附近取点 , 后者在多父体中心附近取点 ,
前者产生的后代更具多样性和广泛性 ;新算子与仅仅
使用子空间搜索的 SPX 相比 , 同样更具多样性和广泛 性 .图 3 是 R2 中 3 个父体 x 1 、x 2 、x 3 的子空间正态分 布杂交算子示意图 .
骤如下 :
1)从群体中随机选取 μ个父体 xi (i =1 , … , μ);
2)从 μ个父体所张成的子空间中随机地取一点 x * =k 1 x 1 +…+ kμx μ, 其中 k 1 +…+ kμ=1 , 0 ≤ki ≤ 1 , i =1 , … , μ;
3)对 x *进行高斯变异 , 产生一个后代
第 49 卷 第 1 期 武汉大学学 报(理学版) 2003 年 2 月 J.Wuhan U niv .(N at .Sci .Ed.)
Vol.49 No.1 Feb .2003, 039~ 043
文章编号 :1671-8836(2003)01-0039-05
收稿日期 :2002-07-16 基金项目 :国家自然科学基金资助项目(69703011) 作者简介 :周育人(1965-), 男 , 副教授 , 现从事演化计算 、并行计算研究 .
40
武汉大学学报(理学版) 第 49 卷
ቤተ መጻሕፍቲ ባይዱ
UNDX 算子是一个有良好搜索能力的算子 , 它在
多父体张成的椭圆形区域内搜索(图 1).文献[ 9] 对采
用自适应变异的演化策略和采用 UNDX 杂交算子的
实数编码遗传算法进行了比较 , 结果显示 , 实数编码遗
传算法 UNDX 在求解高维和多极值函数优化问题方 面性能占优 .
如图 1 , 3 父体的 UNDX 由以下步骤产生后代 : 1)从群体中随机地选取 3 个父体 x 1 、x 2 、x 3 ; 2)设 x 1 和 x 2 两父体之差为 d =x 1 -x 2 , x 1 和 x 2 两父体的中点为 x p =(x1 +x 2)/ 2 ;
3 数值试验
选取 4 个常见的测试函数来检验新算子 . 求下列函数的最小值 :
1)F1
=(1si+n 20
x 2 +y 2 -0 .5 .001(x 2 +y 2))2
-0
.5 ,
x
,
y
∈[
-
10 , 10] (Schaffer function)
n
∑ 2)F 2
=
1 n
(x
4 i
i =1
-16
x
目前为止已有多种实数编码算子 , 主要有混和杂 交算子(Blend Crossover , BLX)、模拟二进制杂交算子 (Simulated Binary Crossover , SBX)[ 4] 、单 峰正态分布 杂交 算 子 (Unimodal No rmal Dist ribution Crossover , U N DX )[ 5] 和 单 形 杂 交 算 子 (Simplex Crossover , SPX)[ 6] 等等 .其中 UN DX 和 SPX 是现今使用较广 、效 果较好的两个算子 , 其他一些重组算子如算术杂交
正交化方法求得). U N DX 中参数一 般取为[ 9] :σξ=1/ 2 , ση=0 .35/
n .μ个父体的 UNDX 算子是类似的 , 见文献[ 10] .
SPX 算子使用 n +1 个父体向量 xi (i =0 , … , n)
产生后代 , 这 n +1 个向量形成 Rn 中的一个单形 .设
2 i
+x i),
|xi
|≤10 ,
n
=10
n
∑ 3)F3 =
i
x
2 i
,
|xi |≤100 , i
=1 , …, n
,n =
i =1
20 (Ellipsoidal function)
n
i
∑ ∑ 4)F4 = ( xj )2 , xi ≤100 , i =1 , … , n , n
i =1 j =1
周育人1 , 李元香1 , 王 勇2
(1 .武汉大学 计算机学院 , 湖北 武汉 430072 ;2 .武汉化工学院 自动化系 , 湖北 武汉 430073)
摘 要 :提出实数编码遗传算法的一个新重 组算子 ——— 子空 间正态分 布算子 , 它 在多父体 张成的 子空间 中任取 一 点 , 然后进行高斯变异产生后代 .与已有的一些重组算子相比 , 新算子产 生的后代在 保持向量 均值的前 提下具 有更多 的 广泛性和多样性 , 数值试验显示它在求解高维优 化问题和复杂多极值优化问题方面有优势 .
(Arithmetic Crossover ), 中 间 杂 交 (Intermediate Crossover), 扩展杂交(Ex tended Crossover)以及郭涛算 法[ 7] 等基本 上类 似于单 形杂交 .从自 适应 的角 度来 看 , 这些重组算子都具有天然的自适应特征 , 因为它们 利用多个父体的分布信息产生后代 .
3)设 D 为父体 x 3 到连接两父体 x 1 和 x 2 的直 线(称为初始搜索线)的距离 ;
4)由下式产生一个后代
n -1
∑ xc = x p +ξd +D ηiei , i =1
ξ~ N (0 , σξ2), ηi ~ N (0 , ση2)
这里 n 是自变量维数 , ei (i =1 , …, n -1)为初始搜索 线的正交子空间的一组规范正交基(由 Gram-Schmidt
2 .2 演化算法模型
对于实数编码遗传算法 , 重组算子的设计是一个
重要方面 , 另外 , 群体替换模型的设计也在算法的性能
上发挥重 要的作用 .最小 代数代沟(M inimal Genera-
tion Gap , MGG )模 型 是 一 个 首 先 由 Satoh 提 出, 现在已被广泛使用的模 型[ 9] , 它较好的 均衡了
2 新的实数编码演化算法
2 .1 子空间正态分布杂交算子
实参数演化算法与其说是时间搜索法还不如说是
空间搜索法 .UNDX 在两父体中心的周围由新坐标系
下的高斯变异产生后代 , SPX 则由多父体组成的多面
体产生后代 .从杂交算子要求后代具有丰富的多样性
方面来看 , UNDX 和 SPX 都有所不足 :UNDX 所产生
n
∑ o 为 n +1 个父体向量的中心 , 即 o
=
n
1 +1 i =0
xi
,将
单形沿 x i -o 方向以扩张比例 ε向外扩张 , 得到一个
新单形 , 在新单形中随机地取一点即为单形杂交算子
所产生的后代 .如图 2 是 R2 中 3
图 1 U NDX
图 2 SPX
个父体 x 1 、x 2 、x3 所产生的单形及扩张后所产生的新 单形 .
1)在重组算子运算前后 , 群体中个体向量的均值 应保持不变 ;
2)在应用重组 算子后 , 个体间 距离的方 差应增 加.
因为重组算子没有使用个体适应值函数 , 所以应 保持个体向量均值不变 , 这便是性质 1).性质 2)的理 由是由于选择算子有减少群体中个体 距离方差的倾 向 , 为了保持群体的适当的多样性 , 重组算子应增加群 体个体距离的方差 .
第 1 期 周育人 等 :一种有效的实数编码遗传算法
41
图 3 子空间正态分布杂交
算法的探索(Exploration)和开发(Exploitation)能力 . 它将重组算子和选择算子以下列方式交叉进行 :
1)从第 t 代群体 P(t)中随机地选取 μ个父体 ; 2)对 μ个父体使用重组算子产生 λ个后代 ; 3)从群体中随机选取两个父体 ;在所选的两个父 体中 , 一个由 λ个后代中最好的个体 替换掉 , 另一个 由剩下的 λ-1 个后代使用赌轮选择算子替换掉 . 在数值实验中 , 使用下述稍加改进后的 MGG 模 型 , 与原始 MGG 模型的相比性能有所高 , 算法描述如 下: 1)初始化 , 群体规模为 N(设为偶数), 置 t =0 ; 2)从第 t 代群体 P(t)中随机地选取 μ个父体 ; 3)对 μ个父体使用子空间正态分布杂交算子产 生 λ个后代 ; 4)从 μ个父体和 λ个后代组成的集合中选取两 个个体 , 其中一个为(μ+λ)个个体中适应值最好的个 体 , 另一个在剩下的(μ+λ-1)个个体中由二进制联 赛产生 ; 5)重复步骤 2)、3)和 4), 直到选取 N 个后代 , 由 这 N 个 后 代 这 将 群 体 P (t )中 的 个 体 整 体 替 换 掉 ; 6)若 满足 停机 条 件则 停机 , 否 则 t =t +1 , 转 2).
=20 (Schwefel function)
函数 F1 是许多抗早熟收敛算法都要为之一试的 函数 , 它只有一个全局最小点(0 , 0), 最小值为 -1 , 它
在自变量范围[ -10 , 10] ×[ -10 , 10] 内有无数个局部
极小值点 , 这些局部最小值点形成几个圆环包围惟一
的整体最小值点 , 图 4 是 F 1 的图形 .函数 F 2 的最优
本文提出一种新的实数编码方法 ———子空间正态 分布杂交算子 , 该方法以群体的部分个体所张成的子 空间为中心 , 对其中的点进行自适应高斯变异 , 产生新 的后代 .数值实验证实了新方法的可行性和有效性 , 其 性能优于已有的一些方法 .
1 UNDX 算子和 SPX 算子
什么样的实数编码重组算子是好的重组算子 ? 文 献[ 8] 提出了重组算子应具备的两个性质 :
关 键 词 :演化计算 ;实数编码 ;优化 ;子空间正态分布算子 中图分类号 :T P 301 .6 文献标识码 :A
0 引 言
演化算法(Evolutionary Algo rithms , EAs), 包括演 化策略(Evolution Strategies, ES)、演 化规 划(Evolutionary Programming , EP)以及遗传算法(Genetic Algo rithms , GAs), 都成功地应用于函数优化问题 .演化 策略和演化规划针对连续变量使用浮点编码 , 变异算 子作为产生后代的首要算子 ;遗传算法则主要使用二 进制编码 , 其产生后代的首要算子为杂交算子 .然而 , 由于认识到二进制编码求解函数优化 问题效果不理 想 , 遗传算法也采用实数编码 , 称之为实数编码遗传算 法(Real-Coded Genetic Algori thm s, RCGA).现在广泛 使用的实参数演化算法可分成 3 类 :1)自适应演化策 略[ 1] ;2)微分演化算法[ 2] ;3)实数编码遗传算法[ 3] .当 然 , 这种划分算不上严格 , 3 类方法之间有其公共性和 相似性 .
n
∑ x ** = x * +r ζiei , ζi ~ N (0 , σζ2) i =1
这里 ei(i =1 , … , n)为 n 维的单位坐标向量 , r 为 μ
μ
个父体到中心 o 的距离的平 均值 , 即 r = ∑ ‖ xi i =1
∑ o ‖/ μ, 其中 o
=
1μ μi =1
xi
, ‖·‖表示欧几里德距离 ;
值为 -78 .332 3 , 它存在 2n 个局部最小值 .函数 F3 和
F 4 的最小值在
x
* i
=0(i
=1
,
…,
n)处取到 , 最小值为
F * =0 .F1 和 F2 属于多极值优化问题 , F 3 和 F 4 是
高维优化问题 .
图 4 函数 F 1 的图形
数值试验在 M AT LAB 中完成 .在子空间正态分 布杂交算子中 , 群体规模 取为 100 , 父体个数 μ取为 3 , 一次产生后代个数 λ取为 10 , 高斯变异的标准差 σζ
的后代局限在父体中心的周围 ;SPX 所产生的多面体
搜索空间不够广泛 , 若多父体向量线性相关则 SPX 的
不足更加突出 .以下提出的子空间正态分布杂交算子
可以在一定程度上克服上述不足 , 使搜索空间更广泛 ,
更具多样性 .子空间正态分布杂交算子在多父体张成
的子空间中任取一点 , 然后进行高斯变异产生后代 , 步
σζ取为 c/ n , c 为常数 , 根据实验 c 在区间[ 1 , 1 .3] 中
取值效果较好 .
上述杂交算子与 UNDX 相比较 , 前者在多父体所 张成的子空间附近取点 , 后者在多父体中心附近取点 ,
前者产生的后代更具多样性和广泛性 ;新算子与仅仅
使用子空间搜索的 SPX 相比 , 同样更具多样性和广泛 性 .图 3 是 R2 中 3 个父体 x 1 、x 2 、x 3 的子空间正态分 布杂交算子示意图 .
骤如下 :
1)从群体中随机选取 μ个父体 xi (i =1 , … , μ);
2)从 μ个父体所张成的子空间中随机地取一点 x * =k 1 x 1 +…+ kμx μ, 其中 k 1 +…+ kμ=1 , 0 ≤ki ≤ 1 , i =1 , … , μ;
3)对 x *进行高斯变异 , 产生一个后代
第 49 卷 第 1 期 武汉大学学 报(理学版) 2003 年 2 月 J.Wuhan U niv .(N at .Sci .Ed.)
Vol.49 No.1 Feb .2003, 039~ 043
文章编号 :1671-8836(2003)01-0039-05
收稿日期 :2002-07-16 基金项目 :国家自然科学基金资助项目(69703011) 作者简介 :周育人(1965-), 男 , 副教授 , 现从事演化计算 、并行计算研究 .
40
武汉大学学报(理学版) 第 49 卷
ቤተ መጻሕፍቲ ባይዱ
UNDX 算子是一个有良好搜索能力的算子 , 它在
多父体张成的椭圆形区域内搜索(图 1).文献[ 9] 对采
用自适应变异的演化策略和采用 UNDX 杂交算子的
实数编码遗传算法进行了比较 , 结果显示 , 实数编码遗
传算法 UNDX 在求解高维和多极值函数优化问题方 面性能占优 .
如图 1 , 3 父体的 UNDX 由以下步骤产生后代 : 1)从群体中随机地选取 3 个父体 x 1 、x 2 、x 3 ; 2)设 x 1 和 x 2 两父体之差为 d =x 1 -x 2 , x 1 和 x 2 两父体的中点为 x p =(x1 +x 2)/ 2 ;
3 数值试验
选取 4 个常见的测试函数来检验新算子 . 求下列函数的最小值 :
1)F1
=(1si+n 20
x 2 +y 2 -0 .5 .001(x 2 +y 2))2
-0
.5 ,
x
,
y
∈[
-
10 , 10] (Schaffer function)
n
∑ 2)F 2
=
1 n
(x
4 i
i =1
-16
x
目前为止已有多种实数编码算子 , 主要有混和杂 交算子(Blend Crossover , BLX)、模拟二进制杂交算子 (Simulated Binary Crossover , SBX)[ 4] 、单 峰正态分布 杂交 算 子 (Unimodal No rmal Dist ribution Crossover , U N DX )[ 5] 和 单 形 杂 交 算 子 (Simplex Crossover , SPX)[ 6] 等等 .其中 UN DX 和 SPX 是现今使用较广 、效 果较好的两个算子 , 其他一些重组算子如算术杂交
正交化方法求得). U N DX 中参数一 般取为[ 9] :σξ=1/ 2 , ση=0 .35/
n .μ个父体的 UNDX 算子是类似的 , 见文献[ 10] .
SPX 算子使用 n +1 个父体向量 xi (i =0 , … , n)
产生后代 , 这 n +1 个向量形成 Rn 中的一个单形 .设
2 i
+x i),
|xi
|≤10 ,
n
=10
n
∑ 3)F3 =
i
x
2 i
,
|xi |≤100 , i
=1 , …, n
,n =
i =1
20 (Ellipsoidal function)
n
i
∑ ∑ 4)F4 = ( xj )2 , xi ≤100 , i =1 , … , n , n
i =1 j =1