遗传算法与蚁群算法的改进融合_陈亚云
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
提高种群的多样性, 有效地避免传统遗传算法 “早
熟” 的缺点。
2.1.6 变异操作
变异也是提高种群多样性的一种方法, 但是发生
变异的概率相对较小。 种群以变异概率Pm进行变异, 采用互换变异的方法。
2.1.7 循环操作
判断迭代次数是否达到设定的迭代代数, 若达
到,则停止进化, 选择最优适应度值对应的染色体所
的特定知识。 对于一些多维、 高精度要求的连续函
数优化, 二进制编码存在着连续函数离散化时的映
来自百度文库
射误差, 个体编码的长度串较短时, 可能达不到精
度要求; 而个体编码串的长度较长时, 虽然提高精
度, 但却会使算法的性能降低。 为提高遗传算法局
部 搜 索 能 力 , 可 以 采 用 格 雷 码 ( Grey Code) 编 码 ;
陈亚云, 韩文涛, 崔鹤平
(武警工程大学军交运输系, 陕西西安, 710086)
摘要: 通过将遗传算法与蚁群算法进行融合,可以得到一种新的启发式算法,从而在时间效率上优于蚂蚁算法,在求解效率上优于遗传算 法。 本文将对混合算法进行改进,具体分析怎样实现算法的融合,使之更加适合求解多目标优化问题。 关键词: 遗传算法; 蚁群算法; 混合算法; 多目标优化 中图分类号: TP183 文献标识码: A 文章编号: 2095-5553. (2014) 03-0246-04
1 混合的思想
1.1 混合的基本思想 根据很多相关的研究资料, 遗传算法与蚁群算法
图 1 速度―时间曲线图 Fig. 1 Curve graph of speed-time
从 图 1 可 以 看 出 , 遗 传 算 法 在 搜 索 的 初 期 (T0~Tb时 间 段 )具 有 较 高 的 向 最 优 解 收 敛 的 速 度 , 在 Tc之 后 求 解 最优解的速度开始下降, 并在Tg时刻之后开始落后于 蚁群算法。 与之相反,蚁群算法在搜索的初期(T0~Tb时 间段),因为信息素缺乏,搜索速度缓慢,随着信息素积 累 强 度 的 增 加 ,Td时 刻 后 , 它 的 最 优 解 收 敛 速 度 开 始 迅 速提高[2]。 分析可知,遗传算法虽然具有快速全局搜索 能力,但却没有利用到系统中的反馈信息,往往导致无 为的冗余迭代,求解效率低。 蚁群算法通过信息素的累 积和更新而收敛于最优路径,具有分布、并行、全局收 敛能力,但初期信息素匮乏、导致算法速度慢[4]。
求最大值形式且函数值为非负的适应度函数。 本文
采用界限构造函数:
若目标函数为最小化问题:
! Fit (f(t)) = cmax-f (x)f (x)<cmax
(1)
0
others
式中: cmax— ——f (x) 的估计最大值。
若目标函数为最大化问题:
! Fit (f(t))= f (x)-cmax f (x)>cmax
第 35 卷 第 4 期 2014 年 7 月
中国农机化学报 Journal of Chinese Agricultural Mechanization
DOI:10.13733/j.jcam.issn.2095-5553.2014.04.061
Vol.35 No.4 July. 2014
遗传算法与蚁群算法的改进融合
遗传算法与蚁群算法这两种算法相结合的好处在 于, 能克服遗传算法在搜索到一定阶段时最优解搜索 效率低下和蚁群算法初始信息素匾乏的不足的问题, 又能发挥在寻优搜索中各自的优势, 相互弥补劣势。 1.2 混合的改进思想
为了表述方便, 假设求解的优化问题为农产品 运输问题, 优化目标分别为运输时间、 运输成本和 运输风险。 在求解多目标优化问题时, 确定遗传算 法的适应度函数和蚁群算法的启发函数是一个难点, 传统的做法是采用权重系数, 但是这种方法主观因 素比较大。 本文将对混合算法进行改进, 在遗传算 法时, 可以分别根据运输时间、 运输成本和运输风 险三个优化目标确定适应度函数, 进行三次遗传算 法求得三组不同的最优解。 根据三组不同的最优解, 对蚁群算法的初始信息素进行赋值, 运输时间、 运 输成本、 运输风险都比较少的路径上信息素必然会 出现重合, 从而信息素浓度大, 可以促使在蚁群算 法过程中迅速找到最优解。 在确定蚁群算法的启发 函数时, 由于运输时间、 运输成本、 运输风险的单 位不同, 不能够直接相加。 可以根据遗传算法求得 三组解, 取平均值, 分别得到运输时间、 运输成本、 运输风险的均值。 在计算蚁群算法的启发函数值时, 可以将运输时间、 运输成本、 运输风险分别除以均 值, 达到统一量纲的目的, 从而三者直接相加所得 值即为启发函数值。
遗传算法与蚂蚁算法的融合, 其基本思想是汲取 两种算法的优点, 克服各自的缺陷, 优势互补。 为 此, 可以首先利用遗传算法的随机搜索、 快速性、 全 局收敛性, 产生有关问题的初始信息素分布。 然后在 Tg时刻, 充分利用蚁群的并行性、 正反馈机制以及求
收稿日期: 2013年6月7日 修回日期: 2013年9月10日 第一作者:陈亚云,男,1989年,湖南衡阳人,硕士研究生;研究方向为运输装备管理与保障。 E-mail: yundedi@qq.com 通讯作者:韩文涛,女,1969年,内蒙古赤峰人,工学博士,教授;研究方向为运输装备管理与保障。 E-mail: 13571851361@163.com
陈亚云, 韩文涛, 崔鹤平. 遗传算法与蚁群算法的改进融合[J]. 中国农机化学报, 2014, 34(4): 246~249 Chne Yayun, Han Wentao, Cui Heping. Improved combination of genetic algorithm and ant colony algorithm [J]. Journal of Chinese Agricultural Mechanization, 2014, 34(4): 246~249
第4期
陈亚云 等: 遗传算法与蚁群算法的改进融合
247
解效率高等特征搜索最优解。 这样融合后的算法叫做 遗传蚁群混合 算 法 (Genetic Algorithm-Ant Algorithm, GAAA), 在时间效率上优于蚂蚁算法, 在求精解效率 上优于遗传算法, 是时间效率和求解效率都比较好的 一种新的启发式方法。
度较高的n/3个个体 (n为城市个数) 组成一个矩阵T1。 这n个个体分别为一组城市的排列, 所以矩阵T1每 一 行的每一个元素都代表一个城市。 由于构成个体的城
0 引言
的总体态势呈现出如图1所示的速度―时间曲线。
一般说来, 科学研究与工程实践涉及的许多优化 问题大都是多目标优化问题。 多目标优化问题中各目 标之间通过决策变量相互制约, 对其中一个目标优化 必须以其它目标作为代价, 而且各目标的单位又往往 不一致, 因此很难客观地评价多目标问题解的优劣 性。 在处理多目标优化问题上, 传统的做法是利用权 重将多目标路线优化问题加权转化为单目标最短路进 行求解。 但由于权重的确定往往非常困难且带有很大 主观性, 使得确定的 “最优” 路线往往只是决策者的 某种意愿, 并不是真正意义上的 “最优” 路线。
遗传算法与蚁群算法都属于现代启发式算法,两 种算法都应用于了求解组合优化问题上, 并取得了一 定的成果,但同时都存在各自的缺陷。 遗传算法不能利 用系统中的反馈信息,导致无为的冗余迭代,求解效率 低。 而蚁群算法在初期信息素匮乏,导致算法速度慢。 通过将遗传算法与蚂蚁算法的进行融合, 可以达到汲 取两种算法的优点,克服各自的缺陷,实现优势互补的 目的。 目前,通过将蚁群算法与遗传算法进行融合来解 决多目标优化问题,已取得了较好的效果 。 [1~3] 本文将 对算法融合的过程进行改进, 使之更加适合求解多目 标优化问题。
从中挑出较好的个体构成初始种群。 这个过程是一个
不断迭代的过程, 直到初始种群中个体数量达到了预
先确定的规模结束。 同时, 对种群规模、 种群进化代
数、 适应度参数、 遗传优化的次数、 交叉概率的参
数、 变异概率的参数等进行初始化。
2.1.3 确定适应度函数, 进行适应度计算
适应度函数是用来评价个体适应度的函数。 多
目标优化问题存在多个优化目标, 假设优化问题为
农产品运输问题, 分别根据运输时间、 运输成本和
运输风险确定三个适应度函数, 单独进行遗传算法。
适应度函数值必须是非负的, 但是针对不同种类的
问题, 目标函数值可能是求最小值, 且有可能为负
数。 为了保证遗传算法中对各个个体适应度的比较
排序, 从而确定选择概率, 必须将目标函数转化为
Pbi=
f
M
(bi)
;
∑
i=1
f
(bi)
j
步骤4: 计算每个个体的累积概率 Qi=∑j=1 Pbj;
步骤5: 转动M轮轮盘:
① 产 生M个 [0, 1] 之 间 的 均 匀 随 机 数 R。 如 果
R≤Q1, 则 选 择 染 色 体b1; 否 则 , 选 择 第i个 染 色 体bi (2≤i≤M), 使得Qi-1≤R≤Qi;
② 统计各区间的ξ值ξ1, ξ2, …, ξM, 其中ξi是落在i 号区域的随机数个数;
③ 取 最 大 的ξ值ξj=max (ξ1, ξ2, …, ξM) 所 在 区 间j
对应的个体bj, 为本轮转动后所选中的个体Mi, 即:
≤ Mi=
bmin(i1, i2, …, il)存在l个相同ξ值区间 bj其他
2 混合算法的实现步骤
2.1 在混合算法 的前阶段, 利 用遗传算法 求解得到 可行解
遗传算法一开始, 先随机的产生种群。 种群里 面的每一个个体 (或叫染色体) 都代表一组节点的 排列, 其质量高低用一个适应函数来评价。 每一个 个体根据适应度, 按照一定的概率被选择进行交 叉、 变异, 产生新的下一代种群。 适应度高的个体 更有机会来繁殖下一代; 随着连续的繁殖, 种群趋 于收敛于高适应度的那些种群, 从而找到可能的最 优解。 2.1.1 编码
为改善遗传算法的计算复杂性、 提高运算效率, 可
以采用浮点数编码、 符号编码方法等。 此外还有实
数 编 码 、 多 参 数 级 联 编 码 、 交 叉 编 码 、 DNA编 码 等
编码方法。
2.1.2 随机产生初始种群, 并确定参数的初始值
根据编码机制, 初始化原始种群。 随机生成一定
数目的个体, 这个数量通常是群体规模的两倍, 然后
(l≤M)
;
≤X(0)=O
④ 将Mi并入X, 即
; X(t)=X(t-1)∪Mi
⑤ 若选出的个体数到达种群大小要求则跳出,
否则转回①。
2.1.5 交叉操作
将父代中剩余的染色体搭配成对, 一对经过配对
的染色体以交叉概率Pc进行交叉重组产生 子 代 个 体 , 交叉方法采用双点交叉的改进方法, 一定程度上可以
根据具体问题的实际情况, 将实际问题的参数 通过编码转换为遗传算法的编码组。 通常采用二进
制编码形式, 将某个变量值代表的个体表示为一个
(0, 1) 二进制串, 串长取决于求解的精度。 二进制
符号串的优点在于编码、 解码操作简单, 交叉、 变
异等遗传操作便于实现, 而且便于利用模式定理进
行理论分析等; 其缺点在于, 不便于反映所求问题
对应的路径输出作为求解问题的解; 若没有达到, 则
将迭代次数加1进入下一个循环中。
2.1.8 输出解集
符合终止条件, 跳出循环, 记录当前进化种群。
根据不同的适应度函数, 最终得到三组不同的解集。
2.2 根据遗传算 法求得的最 优解, 对初始 信息素进
行赋值
依次从遗传算法得到的三组最优解中, 选择适应
O, 则具体操作过程如下:
步骤1: 将所有个体按其适应度值由大到小进行
排序, 排序后的种群为Z'= {b1, b2, …, bi, …, bM}, 其
中f (bi-1) >f (bi) >f (bi+1);
步骤2: 计算出种群Z'中 所 有 个 体 的 适 应 度 总 和
M
∑f
i=1
(bi);
步骤3: 计算出每个个体被选取的概率为:
(2)
0
others
式中: cmin— ——f(x)的估计最小值。 2.1.4 选择操作
根据适应度函数计算种群每个个体的适应度, 通
过改进的轮盘赌选择方法选择出优良的个体。 设种群
248
中国农机化学报
2014 年
大小为M, 父代种群Z= {a1, a2, …, ai, …, aM}, 其中每
个个体的适应度大小为f (ai); 子代群体初始状态为X=