摘 要: 为提高最短路径求解问题的效率,提出一种基于云计算的细粒度混合并行遗传算法求解最短路径的方法。方法采用云计算中Hadoop的MapReduce并行编程模型,提高编码效率,同时将细粒度并行遗传算法和禁忌搜索算法结合,提高了寻优算法的计算速度和局部寻优能力,进而提高最短路径的求解效率。仿真结果表明,该方法在计算速度和性能上优于经典遗传算法和并行遗传算法,是一种有效的最短路径求解方法。
关键词: 云计算;遗传算法;禁忌搜索算法;最短路径
0 引言
近年来随着社会的发展和人们生活节奏的加快,高效率、快节奏需求使得最短路径求解成为一大新的研究课题。云计算是继网格计算、对等计算之后产生的新的计算模式[1],其中Apache开发的Hadoop云计算平台被广泛应用,其核心MapReduce能够进行并行编码,且编码效率高,为大规模的最短路径求解提供了有效的解决途径。遗传算法[2-3](Genetic Algorithm,GA)由于具有潜在并行处理能力的特点,许多学者致力于并行遗传算法的研究,以提高搜索和寻优的速率,同时克服GA在进化初期超常个体引起的种群过早收敛到局部最优解的问题[4-5]。为提高GA的局部搜索能力,许多学者也将GA与其他算法结合,研究了混合遗传算法。其中禁忌搜索算法(Tabu Search Algorithm,TSA)的创始人将GA与TSA结合提出了混合遗传算法HGA(Hybrid Genetic Algorithm),HGA提高了算法的局部搜索能力和收敛速度,得到了广泛研究与应用[6-7]。同时混合遗传算法在并行遗传算法中也得到了一定研究,文献[3]将并行遗传贴片功率电感算法和禁忌搜索算法结合,提出了混合并行遗传算法(Hybrid parallel genetic algorithm,HPGA),由于算法利用并行遗传算法的特征,提高了算法效率。
针对上述研究基础,本文在云计算中的MapR绕线电感器educe并行编码模式基础上,提出一种基于细粒度混合并行遗传算法的最短路径求解方法。算法将细粒度并行遗传算法与禁忌搜索算法相结合,提高算法的局部寻优能力和收敛速度,进而应用到提高最短路径的求解效率的领域,具有重要意义。
1 背景知识
1.1 MapReduce模型
MapReduce是一种开源模型,适用于处理大规模数据,并对并行模型通信问题进行了很好的处理。其主要由Map函数和Reduce函数组成,其中Map函数将任务分割为多个小任务,通过相应的任务调度分配给分布在各地的计算机,再通过Reduce操作获得最终结果。其具体工作流程见文献[8]。
1.2 并行遗传算法
并行遗传算法分为主从式模型、粗粒度模型、细粒度模型等[9]。细粒度并行遗传算法是在群体中的每个个体分配一个处理单元,相互独立地采用GA执行进化,然后从进化后的个体中获得最优解。
GA的主要因素包括参数编码、初始种群设置、适应度函数、遗传操作设计和控制参数设置。其流程图如图1所示。
1.3 禁忌搜索算法
禁忌搜索算法TSA是由F.Glover在1986年首次提出的,是一种全局寻优算法。从TSA过程可以看出,其主要因素包括禁忌列表、禁忌长度、候选集、藐视规则、终止规则。其中禁忌列表是影响TSA质量的主要因素之一。禁忌长度是被禁忌的解不能访问的步数。候选集由大量当前解的邻居组成。藐视规则是确保搜索过程可以释放特定的解,进而保证当所有候选解被禁忌或某一禁忌解比当前最优解要好时能够寻找到更好的全局最优解。终止规则规定算法进行一定步数后停止。TSA的流程图如图2所示。
2 基于云计算的细粒度混合并行遗传算法
2.1 编码规则
传统的GA采用二进制编码的形式表述实际应用问题,但存在计算量大和精度受限的缺陷。为表述直观清晰且能克服上述缺陷,本文采用实数编码方式对最短路径求解问题进行编码,且此种方式不用解码。
采用基因表示路网节点,而染色体则表示路径。由于采用了实数编码方式,染色体会随基因变化而变化,所以做出如下规定来避免环路现象[10]:
(1)每个基因最多出现一次;
(2)染色体长度不能超过节点个数; 大功率电感厂家 |大电流电感工厂