一种遗传算法适应度函数的改进方法_张思才

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

2 适应度函数的选取
首先是遗传算法运行 初期阶 段 , 群 体中或 许会出 现少数 适 应度极好的个体 , 最终这些个体可能会充斥整个群体 , 使用于 产 生新个体作用较大的交叉 操作失 去作用 , 从而 使得群 体多样 性 降低 , 遗传算法提前收敛到某个局部最优解 。 因此 , 适应度函 数 的选取应尽量地避免早熟 现象 , 即降低 适应度 较高的 个体与 其 它个体适应度之间的差异 , 限制其复制数量以维护群体多样性 。 其次是运行后期阶段 , 群体越来越集中 , 个体之间的差异 减 小 , 相 互之间的竞争力也随 即减弱 。 这 必然造 成个体 被选择 到 下一代中的概率接近 , 使进化过程失去竞争力 , 退化为随机选 择 过程 。 因此 , 适 应度函数的选取也应该克服这种退化现象 , 使 算 法在运行后期阶段能够扩大最佳个体适应度与其 它个体适应度 之间的差异 , 提高个体之间的竞争性 。
第 23 卷第 2 期 2006 年 2 月
计算机应用与软件 Com pu te r Applicatio ns and Soft w a re
Vo l. 23, No. 2 Feb . 2006
一种遗传算法适应度函数的改进方法
张思才 张方晓
(中国工程物理研究院结构力学研究所 四川 绵阳 621900)
0 引 言
遗传算法 ( gene tic a lgo rithm s, 简 称 GA)是 模拟 生物 进化 过 程中 , “适者生存 , 优 胜劣汰 ”规 律而 无需函 数梯 度信 息的自 适 应全局搜索算 法 [ 1] 。 遗传 算法 倍受 各行 设计 者青 睐之 原因 在 于: 这类随机算法能 够同 时处理 N 个设计 变量 , 有 利于 实现 并 行操作 , 提高多变量优化问题的计算效率 ; 能够跳出局部最优解 而做到全局搜索 。 遗传算法依 靠选择 操作模 拟自然界 中的 “ 适 者生存 , 优胜劣汰 ”这一过程 , 即选择 操作来 引导算 法的搜 索方 向 , 而选择操作是以个体的适应度作为确定性指标 , 从当前群体 中选择适应值高的个体以生成 交配池 。 如此必然造成群体中基 因信息的丢失 , 使群体中个体平均相似度增加 , 最终造成遗传算 法早熟 。 文献 [ 2] 研究 表明 优化 参数配 置不 当 , 遗 传算 法可 能 会出现不收敛 的情 况 。 为 使遗 传算 法运 用于 工程 结构 优化 领 域 , 诸多学者对遗传算 法做出 不少改 进 [ 3 ~ 5] 。 大 多数 改进 思想 都是对遗传算法中的 适应度函 数 、交 叉概率 和变异 概率等 方面 进行改进 , 尤其以文献 [ 5] 中提出的 自适应遗 传算法 为代表 , 其 思想就是建立在个 体适应 度基础之 上 。 此外 , 遗传 算法本 身是 以激励机制 — — — 适应 度函数为基 础 , 故 对适应 度函数 的改 进应 该是最基本的 、最有效的改进方式 。 G o ldbe rg在简单遗传算法的 基础上提出线 性拉伸方法 以扩 大个体之间的差异 , 但是 涉及到 常数的 选取问 题 。 本文将 对常 数的选取进行讨论 , 为避免人为因素对算法的影响 , 本文提出一 种非线性的动态适应 度函数 , 以典型 的遗传 算法测 试函数 为考 题验证本文提出的适 应度函数的有效性与可行性 。
Ab strac t A i m ing at the shortco m ing of the simp le gene tic a lgo rithm (GA) w ith the linear fitness function unfit fo r evo lutionary proce ss, a m od ified genetic a lgo rithm w ith the nonlinear fitness func tion, which can adapt to evo lu tiona ry process of a lgo rithm is p resented in this disse rta tion . GA w ith linear sca ling m e thod propo sed by G o ldberg[ 1] and m od ified GA in this pape r , respe ctive ly, calculates the genetic a lgo rithm ' s testing functions . The co m parison be t w een the results ob tained by abovem en tioned a lgo rithm s indica tes that the non linear adaptive fitne ss func tion is effec tive fo r i m prov ing the si m ple gene tic a lgo rithm' s pe rfo r m ance . K eyword s G enetic algorithm F itne ss function O p ti m ization co m puta tion
表 1 线性拉伸适应度 序号 1 2 3 4 5 6 本文 c 1 . 05 1. 2 1. 4 1 . 55 1. 7 2. 0 F2 最优值 0. 000003 0. 000002 0. 000001 0. 000001 0. 000003 0. 000000 0. 000001 起始收敛代数 151 104 187 126 88 123 13 最优值 0. 000019 0. 000019 0. 000019 0. 000019 0. 000019 0. 000019 0. 000019 F6 起始收敛代数 165 186 146 171 163 192 129 图 4 三种不同适应度函数对应的优化情况 图 3 不同常数 c对应的优化结果
m
图 1 不同常数 c对应的优化结果
3 算 例
图 2 非线性适应度函数对应的收敛情况
下面以典型的遗 传算法测试函数验证文中构造的适应度函 数之有效性 、可行性 , 比较采用不同适应 度函数的遗传算法得到 的寻优结果 。
3. 1 Schaffer 函数 F6
Scha ffer函数 F 6 的具体形式为 (3) 式 , 其 局部最 优点很多 , 最优点是 f6(0, 0) =0。 sin2 x2 +x2 - 0. 5 1 2 m in f6(x1 , x2 ) =0. 5 + [ 1 +0. 001 ×(x2 +x2 )] 2 1 2 xi ∈ [ - 100, 100] ( i =1, 2) (3) 设计变量以 15 位二进制数表示 , 分别以不 同 c值的线 性拉 伸遗传算法 ( L GA)与改进遗传算法 ( M GA)计算 , 其收敛过 程分 别如图 1 所示 , 得到的近似最优值均为 1. 9 ×10 - 5 。 图 2 给出了 简单遗传算法 (SGA)、 L GA 及 M GA 的进化情 况 , 从图 2 中 可以 看出采用非线性适应 度函数的 遗传算 法收敛 , 且运 行效率 明显 提高 。 表 1 给出了 不同 c 值的 LGA 收 敛到 函数最 优或 近似 最 优点对应的起始收敛 代数 。
1 遗传算法
遗传算法寻优的本质 是以群 体中各 个体的适 应度为 依据 , 通过选择 、交叉等操 作反 复迭 代 , 不 断寻 求出 适应 度较 好的 个 体 , 最 终得到问题的最优解 。 适应度函 数是评 价群体 中个体 好 坏的标准 , 是模拟自然选择 的唯一 依据 。 从而 适应度 函数选 取 的优劣直接影响遗传算法的收敛速度及能否找到 最优解 。
A MOD IFIED M ETHOD TO F ITNESS FUNCTI ON OF GENETIC ALGOR ITHM S
Zhang S icai Zhang Fangx iao
(I n stitu te of S tructura l Mechanics, Ch ina Academy of Eng ineering ph ysics, M ianyang S ichuan 621900, Ch ina)
式中 , F * ( X) 为经过线性拉伸得 到的适 应度函 数 ; F (X ) 为 目标 函数通过线性变换得 到的适应 度函数 , 且与 常数的 选取密 切相 关 [ 1] ; F avg 为当前 群体个 体平均 适应度 ; Fm ax 为当前 群体中 最佳 个体的适应度 ; c为常数 , 建议取 1 ~ 2。 显然 , 适 应度 函数 的好 坏直接取决于常数 c 的选取 。 对于求极小值问题 , 针对上述问题 , 本文构造具有随进化代 数动态调整的非线性 适应度函数为 : [ n] F * (X ) = (2) G(X ) 式中 , F * ( X) 为非线性适应度函 数 ; G(X ) 是 经过无 约束处 理后 得到的目标 函 数 ; [ Q ] 表示 取 值 不 大于 Q 的整 数 值 ; m =1 + lnN, N 为根据问题复 杂程 度设定 的最 大进 化代 数 ; n 为 当前 的 进化代数 。 文献 [ 6] 建议进 化代数根据问题 取 100 ~ 500 代 。 由 (2)式 可知 , 此进化代数范围内的 适应度函 数都可 以动态 调整个 体适 应度 。 另外 , 文献 [ 7] 研究表明进化 代数与个 体位串 长度有关 。 考虑个体位 串长 度 及算 法运 行 耗费 , 最 大 进化 代数 N 设定 为 200。
式 , 唯 一的全局最优点为 (1, 1)。 2 2 m inf 2(x1 , x2 ) =100(x2 1 - x2 ) +(1 - x1 ) xi ∈ [ - 2. 048, 2. 048] (i =1, 2) (4) 设计变量以 10 位二 进 制数 表示 , 分别 以不 同 c值 的 LGA 与 M GA 计算 , 其代敛情况 分别 如图 3 所示 。 MGA 优化 得到 的 近似最优值为 10 -6 , 表 1 给出了不同 c值的 LGA 得到的函数 最
收稿日期 : 2004 - 02 - 05。 张思 才 , 硕士 , 主研领 域 : 结构 设计及 优 化算法研究 。
第 2 期
Байду номын сангаас
张思才等 : 一种遗传算法适应度函数的改进方法
109
G o ldbe rg的线性拉伸适应度 函数为 [ 1] : (c - 1)F avg F -c F avg F * (X ) = F (X ) + m ax F F ma x -F avg F m ax -F avg avg (1)
摘 要 针对简单 遗传算法中线性适应度函数随进化过程恒定不变的缺点 , 提出一 种可随进 化代数动态 调整的非 线性适应度 函 数 。 以典型的遗传算法测试函数为算例 , 分别以 G o ldbe rg提出的线性拉伸方法 [ 1] 与文中提出 的改进遗 传算法进行 计算 。 计算结 果 表明文中提出的动态 适应度函数对简单遗传算法的改进有较明显的效果 。 关键词 遗传算法 适应度函数 优化计算
3. 2 De Jong函数 F2
De Jong函数 F 2 是一个 二维 函数 , 其 函数 具体 形式 为 ( 4)
110
计算机应用与软件
M od ify(Local H and le)or E rase( Local H and le) }
2006 年
优或近似最优点及对应的起始 收敛代数 。 比较两种适应度函数 改进方法得到的 结果 , 表 明 MGA 在 最接 近函 数最 优点 的情 况 下可以明显提高运行效率 。 图 4 给出了采用不同适应度函 数的 遗传算法的进化情况 , 从图 4 中可以 看出采 用非线 性适应 度函 数的遗传算法收敛 , 且运行效率明显提高 。
相关文档
最新文档