当前位置:
文档之家› 粗粒度并行遗传算法的 MapReduce 并行化实现
粗粒度并行遗传算法的 MapReduce 并行化实现
[3 ]
。 MapReduce 模
型是 Google 实验室提出的分布式并行编程模型或 框架, 它能在普通的 PC 机上构建集群来处理大规 模数据集, 成为云计算平台主流的并行数据处理 模型。Apache 开源社区的 Hadoop 项目用 Java 语 言实现了该模型, 同时 Hadoop 项目还设计了开放 源代码的云计算技术平台
Parallel Implementation of CoarseGrained Parallel Genetic Algorithm with MapReduce model
CHENG Xingguo,XIAO Nanfeng
( School of Computer Science and Engineering, South China University of Technology,Guangzhou 510006 ,China) Abstract: According to the properties of CoarseGrained Parallel Genetic Algorithm,the article provides a method to implement it based on MapReduce programming model. Firstly,the initial population is divided into a few subpopulations,and each of these subpopulations is maintained by different Tasktracker in which the classical Genetic Algorithm ( GA ) ,such as fitness calculation,selection, crossover and mutation are executed in Map function,and then some excellent individuals are selected and migrated to other subpopulation in the Partition phase. The experiments on the Hadoop platform indicate this method can not only improve the efficiency of Genetic Algorithm thanks to the high Parallelism of MapReduce model, but also eliminate, to some extent, the problem of early convergence and local optima of classic GA. Key words: genetic algorithm ( GA) ; coarsegrained parallel genetic algorithm ( CGPGA) ; MapReduce
[6 ]
。 它将
随机生成的初始种群依处理器个数分割成若干个 较大的子种群, 各个子种群在不同的处理器上相 互独立地并发执行遗传操作, 每经过一定的进化 代数, 各子种群间再相互交换若干数量的个体, 以 实现各个子种群的共同进化。 对经典遗传算法进行粗粒度并行改进的主要 目的是: 在不增加适应度计算量的基础上, 通过提 高种群多样性来提高计算结果。 粗粒度并行遗传算法 ( CPGA ) 可以形式化地 定义为一个三元组: CPGA = ( T, G, SGA) 式中: T 是进行迁移操作的时间间隔 ( 频率 ) ; G 是 迁移操作所交换的个体和信息; SGA 是经典遗传 算法( 单一种群 ) , 它将根据子种群的数量多次重 复地执行。 粗粒度并行遗传算法的子种群间常用的环行 连接结构
基本流程如图 2 所示。
68 重庆理工大学学报
图3
子种群环形连接结构
3
图2 遗传算法流程
粗粒度并行遗传算法的 MapReduce 并
行化实现
粗粒度并行遗传算法进行 MapReduce 的基本 思路是: 把串行遗传算法的每一次迭代变为一次 MapReduce 操作。其中, 在 Map 中完成计算个体 适应值、 杂交、 变异的操作; Reduce 则判断是否满 “是” 足收敛条件, 若为 则输出结果, 否则进入下一 次 MapReduce 操作。与普通的 MapReduce 操作不 同, 在 Map 阶段结束后, 粗粒度并行遗传算法 MapReduce 通过 Partition 实现并行化, 在子种群间用 而其他大部分个体保持 环行算法迁移最优个体, 独立, 如图 4 所示。
传统的遗传算法有两个严重的不足: ① 容易 过早收敛; ② 在进化后期搜索效率较低, 使得最终 搜索得到的结果往往不是全局最优解而是局部最 优解, 并且该算法不能有效克服过早收敛现象
[5 ]
。
因此, 现有的大量研究集中于如何改进传统的遗 传进化思想。 目前各种改进思想层出不穷, 粗粒 度模型就是其中的一种。 粗 粒 度 模 型 又 称 分 布 式 模 型 ( distributed style) 或孤岛模型 ( islandbased model ) , 是适应性 最强和应用最广的遗传算法并行化模型
法。将随机生成的初始种群分割 成 若干个 子种 群, 用 Map 方法 实 现 单 个 子种 群 的 传 统 遗 传 算 法。各个子种群在不同的 Node 上相互独立地并发执行个体适应值计算、 选择、 交叉 和 变异 等 操 作, 在 Partition 环节将每个子群所提取 的 最优 个 体 迁 移 到其他 子种 群 中, 以实 现 各 个 子种 群 的 共同进化。该方法充分利用了 MapReduce 的高度并 行 性, 提 高 了 算 法的 效 率, 同 时 在一 定 程 度 上克服了过早收敛和局部最优解问题。 关 键 词: 遗传算法; 粗粒度并行遗传算法; MapReduce 文献标识码: A 文章编号: 1674 - 8425 ( 2013 ) 10 - 0066 - 05 中图分类号: TP18
[1 ]
算法的 MapReduce 并行编程实现方法, 并进行了 相关实验。
1
MapReduce 编程模型
MapReduce 编程模型的基本思路是将大数据
集分解为成百上千的小数据集 splits, 每个 ( 或若 干个) 数据集分别由集群中的 1 个节点 ( 一般是 1 台普通计算机 ) 并行执行 Map 计算任务 ( 指定了 并生成中间结果, 然后这些中间结果 映射规则) , 又由大量的节点并行执行 Reduce 计算任务 ( 指定 了归约规 则 ) , 形 成 最 终 结 果。 图 1 描 述 了 MapReduce 的运行机制: 在数据输入阶段, JobTracker 获得待计算数据片在 NameNode 上的存储元信息; JobTracker 指派多个 TaskTracker 完 在 Map 阶段, 成 Map 运算任务并生成中间结果; 在 Partition 阶 段完成中间结果对 Reducer 的分派; 在 Shuffle 阶 段完成中间计算结果的混排交换; JobTracker 指派 TaskTracker 完成 Reduce 任务; Reduce 任务完成后 通知 JobTracker 与 NameNode 以产生最后的输出 结果。MapReduce 详细执行过程如图 1 所示
[7 ]
如图 3 所示。
图4
粗粒度并行遗传算法 MapReduce 的并行化实现
69 程兴国, 等: 粗粒度并行遗传算法的 MapReduce 并行化实现 Mapper 和 Re为了保证各个子群独自繁衍, ducer 的节点数量都为 n, 同时确保 Mapper i 的数 据在对应的 Reducer i 进行处理。 待处理的每个个 体给予一个子群 key, 在 Map 处理过程中, 最优个 体的 key = ( key + 1 ) mod n, 而 Partition 的操作是 key mod n, 从而实现最优个体的环形迁移。 3. 1 Map 函数的设计 Map 函数先对子群中的个体进行杂交 、 变异 操作, 然后遍历子群, 计算其适应值, 根据适应值 找出子群中的最优个体和最差个体, 最优个体用 于迁移到下一个子群( key + 1 ) mod n, 而淘汰最差 个体。当然, 也可以实现迁移若干最优个体, 但数 量不宜过大, 否则会影响子群的差异性。 Map 函数伪代码清单
doi: 10. 3969 / j. issn. 1674-8425( z) . 2013. 10. 014
粗粒度并行遗传算法的 MapReduce 并行化实现
程兴国, 肖南峰
( 华南理工大学 计算机科学与工程学院 , 广州 510006 ) 摘 要: 针对粗粒度并行遗传算法的特 点, 给 出 了 MapReduce 编 程模 型 实 现 遗 传 算 法的方
[2 ]
。本文在基于 Hadoop
。
技术的云计算基础平台上研究了粗粒度并行遗传
图1
MapReduce 详细执行过程
相互结合渗透而成的算法, 是具有“生成 + 检测 ”
2
粗粒度并行遗传算法
遗传算法 ( GA ) 是自然遗传学和计算机科学
的迭代过程的搜索算法, 即产生、ቤተ መጻሕፍቲ ባይዱ选择优良个体、
[4 ] 基因组合( 变异) 、 再产生、 再选择、 再组合 … , 其
收稿日期: 2013 - 05 - 21 基金项目: 国家自然科学基金资助项目( 61171141 ) ; 广东省产学研省部合作专项资金资助项目( 2012B091100448 ) 作者简介: 程兴国( 1973 —) , 男, 江西九江人, 博士研究生, 讲师, 主要从事智能算法研究; 肖南峰( 1962 —) , 男, 江西 南昌人, 博士, 博士生导师, 主要从事人工智能和仿人机器人研究 。