一种改进的实数编码遗传算法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
i =1 3
xi ∈ [ - 2. 048, 2. 048]
i = 1, 2, 3
F1 是一个简单的平方 和函 数 , 也是 三参 数单 极值 的二 次 函数 , 它 有 一 个 极 小 值 点 f ( 0, 0, 0 ) = 0 和 八 个 极 大 值 点 f( xi ) = 78. 6432 | xi | = ± 5. 12 。 求解函数极小值 : BGA 得到 f( - 0. 000057, 0. 000048, 0. 000000) = 0. 000000 改进算法得到 f( 0. 0000000, 0. 000000, 0. 000000) = 0. 000000 求解函数极大值 : BGA 得到 f( 5. 098526, 5 . 119375 , 4. 708100) = 74. 369174 改进算法得到 f( - 5. 12, - 5 . 12, - 5. 12) = 78. 643200
[ 2]
任何事物都存在着两面性 , 实数编码的遗传算法在不断进 化完善的过程中也不可避免地牺牲了遗传过程的某些特性 , 必 然存在着其他问题。进化过程 是短暂 的骤变 和长期 渐进相 间 的非均匀过程 , 即在物种进化的初始阶段往往出现较多的进化 试探 , 导致种群的多样 性 , 而进化 后期则 趋于保 守。实 数编 码 虽然能克服二进制编码的某些缺点 , 但仍不能解决遗传算法所 固有的过早收敛、 停滞现象和弱的爬山能力。 遗传算法运行时 , 每一 代种群 中总存 在一个 或多个 相同 , 且适应度最高的个体 I x ( x 是 能够 唯一标 志该 个体 形态 的值 , 并且仅取决于该 个体 的构 成 ) 。若 在算 法连 续 若干 代运 行 中 I x 不变 , 我们定义此时算法处于阶段 Sx , 包括 该 I x 首次产生 至 最后一次保持适应度最高 时算法 所经历 的运行 代数。一个 遗 传算法的运行过程可 表示为 队列 Sa , Sb , … , Sx , …。若 算法 在 不可接收的长时间内停留 在阶 段 Sx , 且 I x 不 是问 题的 最优 解 或可接收的次优解时 , 认为遗传算法失效。 由于种群中存在着大量相同或相似的个体 , 所以算法的遗 传操作可能导致种群趋于单调。这时 , 所有个体经遗传操作向 其他个体转移的状态转移 矩阵也 趋于一 致。 由于实 数编码 遗 传算法交叉、 变异算子的特 殊性 , 更容 易造成 种群中 所有个 体
盲目性 , 保持种群多样 性。编码采 用二进 制编码 , 此算 法中 的 类定Leabharlann Baidu如下 :
class GA{ int chrom[ MAX_SIZE] ; double y double fitness; int parent int sex; public: }; / / 染色 体长度 / / 函数 值 / / 适应 度 / / 双亲 编号 / / 个体 性别
2
实数编码遗传算法的改进
在实数编码遗传算法中 , 基因串 Xi ( i = 1, 2, … , N) 的 形式
为( a i1 , a i2 , … , a in ) , 其中 , a ik ∈ D( a k ) R( k = 1, 2, … , n) , n 为 解空间的维数 , N 为种群尺寸。 收稿日期 : 2003- 09- 13; 修返日期 : 2003- 10- 29 基金项目 : 国家自然基金资助项目 ( 60272034)
第9 期

平等 : 一种改进的实数编码遗传算法
・ 87 ・
一种改进的实数编码遗传算法
魏 平 , 熊伟清
( 宁波 大学 计算 机科 学与 技术 研究 所 , 浙 江 宁波 315211) 摘
*
要 : 针 对实 数编 码在 进行 数值 优化 时固 有的过 早收 敛 、 停滞 现 象 和 弱 的 爬 山能 力 等 缺 点 , 通过 设 计 不 同 的
・ 88 ・
计算机应用研究
2004 年
的状态转移矩阵与优化对象的构造严重不符合的情况 , 增大了 算法失效的风险。 为减小实数编码遗传算法在未取得最优解之前 , 长时间停 留在某一阶段 Sx 的 风险 , 可采 取 以下 改 进 措施 改 进 选择、 交 叉、 变异算子 , 使个体的转换方 向与优 化对象 的构造 尽可能 一 致。通过应用改进的选择、 交叉、 变异 算子提 高原算 法中交 叉 变异的效率 , 从而使遗传 算法能 够保持 和利用 自身的 优势 , 提 高性能。 2. 2 变异算子的改进 在基本的实数编码遗传算法中采用的变异算子非常简单 , 就是根据变异概率选择部分个体进行变异操作 , 产生介于变量 上下限之间的随机数 , 所 以这种 变异属 于大范 围变异 , 当然 结 果是不够理想的。通过多次实 验发现 遗传后 期个体 很难向 最 优解靠近 , 算法表现出较强的随机性。以下有两种改进办法 : ( 1) 在遗传后期 , 在变 异算 子中 增添 一 项判 断 , 当遗 传 代 数超过某一值时改变变异算 子 , 不再采 用大范 围的随 机变异 , 而是在前一代的遗传个体上增加一个很小的参数 , 该参数与变 异概率有关 , 迫使个体向 最优解 靠近 , 避免了 基本遗 传算法 固 有的过早收敛和停滞现象。对于实数编码 , 变异算子是主要的 搜索算子 , 不同的变异算子有不同的搜索趋向。如某些算子搜 索的范围较大 , 适合进行全局搜索 ; 某些算子的搜索范围较小 , 适合进行局部搜索。 ( 2) 在允许大范围 变异 的情 况下 , 增 加 小范 围变 异 , 具 体 表现在遗传操作上对于每一个 参加交 叉操作 的个体 在交叉 以 后进行小的变异操作 , 即在个体值附近增加或减少一个随机产 生的与变异率有关的小的量 , 通 过变异 数值 , 促进新 的适应 体 的产生。对于未参加交叉操作 的个体 仍采用 大范围 的变异 操 作, 即产生的随机值介于 变量的 上下限 之间 , 变化范 围相对 比 较大 , 且产生的个体不能 肯定是 更适宜 遗传环 境的 , 但毕竟 交 叉概率是比较大 的 , 所 以参 加大 范 围变 异的 个 体还 是少 于 半 数。改进后的实数编码遗传算 法加快 了遗传 向最优 个体靠 近 的速度 , 并提高了函数优化的精度。 2. 3 交叉算子的改进 在 SGA 中交配 完全是 随机的 , 虽然 这种随 机化的 杂交 形 式在寻优的初级阶段保持了 解的多 样性 , 但在 进化的 后期 , 大 量个体集中于某一极值点上 , 它们的后代造成了近亲繁殖。 在进化时 , 避免近亲繁殖有助于生物种群的进化。先分析 一种极端的情况 , 交叉的 个体都 是近亲 , 则交 叉后产 生的下 一 代染色体不变 , 在问题的解空间上 , 不增加新的解点 , 减少了群 体的多样性。如果遗传控制以适应度作为算法停止规则的话 , 近亲交叉极易引起早熟 , 不能达 到进化 的目的 ; 如果 禁止近 亲 交叉 , 交叉后的下一代染 色体发 生变化 的可能 性大大 提高 , 在 问题的解空间上问题的 可行解 增多。解点 越多 , 越离 散, 则 个 体覆盖最优解的可能性越大 , 从 而改善 了求解 问题的 能力 , 对 此我们引入记录双亲编号 , 让双 亲甚至 近亲不 能进行 交叉 , 可 以避免近亲繁殖 , 提高进化速度。算法设计如下 : 该算法通过把种群的每个个体标上 0 或 1 两种性质 , 这样 就天然地把生物群划分为两个不同性质的子种群 , 在选择操作 时只能选择不同性质的父个体 并且保 证双亲 的不同 才能生 成 子个体 , 这就在一定程度上改进了基本遗传算法中选择操作的
[3]
1
引言
遗传算法 ( Genetic Algorithm, GA) 由美 国 Michigan 大学 的
Holland 于 1975 年首先提出 , 是模拟达尔文的遗传选 择和自然 淘汰的生物进化论的计算 模型。它作 为一种 有效的 全局并 行 优化搜索工具 , 具有简单、 通用、 鲁棒性强和适于并行分布处理 的特点 [ 1] 。最初的遗 传 算法 是基 于 二进 制 串的 , 类 似于 生 物 染色体结构 , 易于用生物 遗传理 论解释 , 各种 遗传操 作易于 实 现, 且算法处理的模式最多。但是二进制编码不能直接反映问 题固有的结构特征 , 个体长度大 , 占用计算机内存多 , 在进行数 值优化时精度不高 , 且稳定 性不如 实数编 码。 在具体 问题中 , 直接采用解空间的形式进行编码 , 可以直接在解的表现型上进 行遗传操作 , 从而易于引 入特定 领域的 启发式 信息 , 可以取 得 比二进制编码更高的效率
其中 sex 可以是 0 或 1 用来 表 示不 同性 质 的个 体 , parent 记录双亲编号。 算法的基本步骤同基本遗传算法 , 仅交叉算子修改为当个 体的性别不同 , 双亲不相同时进行交叉操作。 另外需采用保留精英 GA 是以概率收敛到问 题最优解 [ 4] , 在算法中还是需要的。 改进算法比起基本的实数 编码遗 传算法 应用在 函数优 化 问题中已有了一定的成果。从 初始值 到最优 解的进 化代数 明 显缩短 , 在精度要求相同的 情况下 速度明 显加快 , 且 未发现 求 解过程陷入局部最优解。
Abstract: An improved Real- code Genetic Algorithm is designed with different crossover and mutation aiming at its inherent premature convergence and leak mountain climbing while function optimizing. The experiment shows the more satisfied effect. Key words: Genetic Algorithms; Premature Convergence; Real- code; Function Optimization 算法中对一对基因串 Xi , Xj 的交叉操作 , 将根据某种方 式 选取若干交叉位置 , 这些 位置 的标 号组 成一 标记 集 L, 交叉 产 生 的新个体 Xp , Xq 按以下方式取值 : 当 k L 时 , a mk = a mk ( m = p, q) , 当 k∈ L 时 , a pk = r ×a ik + ( 1 - r) a jk , a qk = r ×a jk + ( 1 - r) a ik , 0 < r < 1 。对基因串 Xi 的变 异操 作 , 将根 据某 种方 式选 取 若干变异位置 , 这些位置的标记组成一标记 L, 变异后 Xi 按 以 下方式取值 : 当 k L 时 , a ik = a ik , 当 k ∈ L 时 , a ik = a ik + δ , δ是 按某一方式获得的随机变 量。 算法的 执行过 程与传 统的基 于 位串的遗传算法类似。 2. 1 实数编码遗传算法的缺陷分析

尽管实数编码精度高 , 适合于 复杂大 空间搜 索 , 遗 传算 法 存在搜索后期效率低和易 形成未 成熟收 敛的情 况。为了充 分 发挥实数编码在数值优化方面的巨大优势 , 对基本的实数编码 遗传算法进行了分析 , 并 尝试了 几种改 进方法 , 包括 设计不 同 的选择、 变异算子 , 使用改进后的实数编码遗传算法 , 在函数优 化问题上取得了较好的效果 , 有效地解决了传统遗传算法中搜 索时间、 计算精度、 全局收敛性等问题。
3
数值实验
我们将基本的实数编码遗 传算法 简称为 BGA。下面用 不
同的函数测试改进后的实数编 码遗传 算法的 优化性 能作出 比 较。参数的 选 择 统 一 为 种 群 大 小 POPSIZE = 100, 交 叉 概 率 P c = 0. 6, 变异概率 Pm = 0. 15 。
F1: f( x1 , x2 , x3 ) = ∑ xi 2
An Improved Real- code Genetic Algorithm
WEI Ping, XIONG Wei- qing
( Institute of Computer Science & Technology, Ningbo University, Ningbo Zhejiang 315211 , China)
交叉 、 变 异算 子 , 提出 了一 种改 进的 实数编 码的 遗传 算法 。数 值实 验显示 , 该算 法在函 数优 化 问题 上 取 得了 较 满 意的 效果 。 关键 词 : 遗 传算 法 ; 早熟 现象 ; 实数 编码 ; 函 数优 化 中图 法分 类号 : TP301. 6 文献 标识 码 : A 文章 编号 : 1001- 3695( 2004) 09- 0087 - 02
相关文档
最新文档