CN102982389A - 使用基于MapReduce的蚁群优化技术求解组合优化问题的方法 - Google Patents
使用基于MapReduce的蚁群优化技术求解组合优化问题的方法 Download PDFInfo
- Publication number
- CN102982389A CN102982389A CN2012104333438A CN201210433343A CN102982389A CN 102982389 A CN102982389 A CN 102982389A CN 2012104333438 A CN2012104333438 A CN 2012104333438A CN 201210433343 A CN201210433343 A CN 201210433343A CN 102982389 A CN102982389 A CN 102982389A
- Authority
- CN
- China
- Prior art keywords
- solution
- mapper
- ant
- individual
- pheromones
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种使用基于MapReduce的蚁群优化技术求解组合优化问题的方法,属于组合优化问题求解技术领域。本发明包括如下步骤:根据设定的mapper的数量划分指定组合优化问题的解空间;Map阶段,每个mapper独立并行地在步骤1)划分得到的子问题解空间中执行改进的蚁群算法,搜索局部最优解;Reduce阶段,reducer接受所有mapper在不同解空间搜索到的局部最优解,根据步骤1)中采用的解空间划分情况综合得到全局最优解;输出reducer当前得到的全局最优解,结束。本发明具有更好的可伸缩性,能够更好的改善求解大规模组合优化问题的效率。
Description
技术领域
本发明涉及的是组合优化问题求解技术领域的方法,具体的说,涉及的是使用基于MapReduce的蚁群优化技术求解组合优化问题的方法。
背景技术
蚁群算法(Ant Colony Optimization,ACO)是一种仿生的元启发式算法,源自于蚁群寻找食物的自然过程,具有可分布性、鲁棒性等优点,是元启发式算法中较优的一种,并被广泛应用于解决各种组合优化问题,例如具有NP难度的旅行商(TSP)问题的最优解答,Job Shop调度问题、二次指派问题以及多维背包问题等。在实际工程应用中蚁群算法被大量应用于数据分析、机器人协作问题求解、电力、通信、水利、采矿、化工、建筑、交通等领域。然而,经典蚁群算法时间空间开销巨大,性能随着问题规模的扩大而下降的严重问题。在计算机领域,可以通过采用分布式并行处理技术提高系统的可伸缩性(scalability)。
经对现有技术的文献检索发现,文章Parallel Multicolony ACO Algorithm WithExchange of Solutions,Proceedings of the18th Belgium-Netherlands Conference onArtificial Intelligence,2006:409-410(基于解交换的并行多群ACO算法)提出了采用MPI(Message Passing Interface)并行编程技术在多机环境下实现蚁群算法并解决TSP问题的方法,该方法具有一定的优点,但是该方法由于基于MPI技术,一方面无法保证系统的鲁棒性,另一方面复杂的MPI编程模型增加了开发难度。文章Scaling Populations of a Genetic Algorithm for Job Shop Scheduling Problemsusing MapReduce,Proceedings of the2010IEEE Second International Conference onCloud Computing Technology and Science,2010:780-785(使用MapReduce扩大Job Shop调度问题的遗传算法种群)提出了采用MapReduce技术实现遗传算法解决一定规模Job Shop调度问题的方法,该方法也具有一定的优点,但该方法需要多次MapReduce迭代,限制了算法性能的提高。
发明内容
本发明针对现有技术的不足,提供使用基于MapReduce的蚁群优化技术求解组合优化问题的方法,通过对组合优化问题的解空间进行划分,并充分利用MapReduce技术所具有的简单、可伸缩性强的特点,提高蚁群算法的并行化程度,改善其性能。本发明将有助于提高求解大规模组合优化问题的效率。
本发明是通过以下技术方案实现的:使用基于MapReduce的蚁群优化技术求解组合优化问题的方法,包括以下步骤:
1)根据设定的mapper的数量划分指定组合优化问题的解空间;
2)Map阶段,每个mapper独立并行地在步骤1)划分得到的子问题解空间中执行改进的蚁群算法,搜索局部最优解;
3)Reduce阶段,reducer接受所有mapper在不同解空间搜索到的局部最优解,根据步骤1)中采用的解空间划分情况综合得到全局最优解;
4)输出reducer当前得到的全局最优解,结束。
步骤1),具体为:分析指定组合优化问题的解空间类型,并根据设定的mapper数量划分解空间,令每个mapper分别在不同的子空间内搜索局部问题的解;其中,所述的问题的解空间是指:设问题的解向量为x=(x1,x2,…,xi…,xn),xi的取值范围为有穷集S,把x的所有可能取值组合称为问题的解空间,i、n均为自然数;每一个组合是问题的一个可能解;可行解是满足约束条件的解,是解空间中的一个子集;最优解是使目标函数取极值的可行解;解空间组织成子集树或排列树形式。
步骤2),即MapReduce的Map函数,其中,所述的改进的蚁群算法,具体包括如下步骤:
①根据步骤1)划分得到的子问题规模选择蚂蚁数和迭代次数,初始化个体的信息素值和待选个体集,具体设置如下:
假设子问题规模为ni(i∈[0,m-1]),m为mapper的数量;则对于解空间为子集树的问题,设置所需蚂蚁数ai=ni/100+1,所需迭代次数li=ni/10+1;对于解空间为排列树的问题,设置所需蚂蚁数ai=ni,所需迭代次数li=10ni;初始化每个个体的信息素值为τij(0)=0.5(j∈[0,ni-1]);i、j为自然数,初始化待选个体集Ci为子问题所包含的所有个体Si;
②设置待选个体集中每个个体的被选择概率,每个蚂蚁根据该值随机选择个体,具体方法如下:
③其中每个物品的被选到的概率只与在其上的信息素有关,刚开始时初始化为0.5表示每个物品被选到与没选到的概率是一样的;这样每只蚂蚁生成的物品集完全是独立且随机的,直到根据物品价值与重量比的好坏更新信息素来影响物品的选择;比较所有蚂蚁在步骤②中通过选择个体生成的解,从中选择局部最优解对应的蚂蚁b(b为自然数),用该局部最优蚂蚁生成的解更新相应个体的信息素,τi(t+1)=(1-ρ)τi(t)+Δτb,而其它个体信息素值不更新;
其中,t为迭代次数,0<ρ<1是信息素蒸发系数;0<Δτb<1是个体b信息素的增量;
④当满足终止条件时,输出当前mapper执行过程中保存的局部信息素向量,否则转步骤②;
步骤3)即MapReduce的Reduce函数,其功能是当所有mapper运行完对子问题的搜索后,将解传递到reducer后,使reducer根据步骤1)中采用的解空间划分的具体情况来综合得到全局最优解;其中,所述的根据步骤1)中采用的解空间划分的具体情况来综合得到全局最优解,具体分为如下两种情况:
当问题的解空间是子集树时,集合S中的n个元素被均匀分配给m个mapper中,采用将各mapper中得到的部分个体的信息素值进行合并得到集合S中全部个体的信息素值,进而按照步骤2)中所采用的改进的蚁群算法②~④计算全局最优解,所不同的有两处,一是每个个体被选择概率为实数α和β分别用于控制信息素浓度τij和启发式因子ηi(j)对生成个体选择概率Pij的影响程度,缺省情况下设置α=β=1,其中,启发式因子ηi(j)是预先设置的对个体选择性的先验知识,是问题相关的;每只蚂蚁从待选个体Ci中根据个体被选择概率Pij按轮盘赌选择算法随机选择个体;
另一个是信息素更新公式,Δτijb=Tσ,即增量平衡系数T与增量步进值σ之积;T和σ根据具体问题不同而分别设置经验值;
当问题的解空间按是排列树时,由于集合S中所有n个元素的n!个不同排列被均匀分配给m个mapper的方法,因此简单比较各mapper中得到的局部最优解,选择其中的最优解作为当前计算得到的最优解。
有益效果:
本发明提出的使用基于MapReduce的蚁群优化技术求解组合优化问题的方法,相比于现有的蚁群优化技术而言,具有更好的可伸缩性,能够更好的改善求解大规模组合优化问题的效率。本发明的方法可以广泛地应用于解决各种组合优化等复杂的NP问题,适用于VLSI设计、生产调度、控制工程、机器学习、神经网络、图像处理等工程领域。在其他工业价值方面,还包括一些新兴的应用例如:针对企业的运转模式的研究,认知科学及其信息处理的研究,新一代互联网上的群体智能等。
实验表明本发明所提出的方法在由16个处理节点(分别配有Intel Q84004核CPU和4GB主存)构成的MapReduce环境下:针对含有1000个物品的0-1背包问题(重量与价值独立且均匀分布于[1,100]区间,物品总重为50000,包容量为25000),其运行速度相对于单机系统可以提高大约7.87倍;针对包含105个城市的TSP问题(采用标准的TSP测试基准TSPLIB中的lin105数据集,参见http://comopt.ifi.uni-heidelberg.de/software/TSPLIB95/),其运行速度相对单机系统可以提高约1.83倍。
附图说明
图1是本发明使用基于MapReduce的蚁群优化技术求解组合优化问题的算法流程图。
图2是本发明的一个实施例“使用基于MapReduce的蚁群优化技术求解0-1背包问题”的算法流程图。
图3是本发明的一个实施例“使用基于MapReduce的蚁群优化技术求解旅行商问题”的算法流程图。
具体实施方式
下面结合附图对本发明的实施例作详细说明:本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
本发明的使用基于MapReduce的蚁群优化技术求解组合优化问题的方法,包括以下步骤:
步骤1)根据设定的mapper的数量划分指定组合优化问题的解空间;
步骤2).Map阶段,每个mapper独立并行地在步骤1)划分得到的子问题解空间中执行改进的蚁群算法,搜索局部最优解;
步骤3).Reduce阶段,reducer接受所有mapper在不同解空间搜索到的局部最优解,根据步骤1)中采用的解空间划分情况综合得到全局最优解;
步骤4).输出reducer当前得到的全局最优解,结束。
所述的步骤1),即分析指定组合优化问题的解空间类型,并根据设定的mapper数量划分解空间,令每个mapper分别在不同的子空间内搜索局部问题的解。其中,所述的问题的解空间是指:设问题的解向量为x=(x1,x2…,xi),xi的取值范围为有穷集Si,把x的所有可能取值组合称为问题的解空间。每一个组合是问题的一个可能解。可行解是满足约束条件的解,是解空间中的一个子集。最优解是使目标函数取极值(极大或极小)的可行解。通常将解空间组织成树或图的形式。在本专利中考虑以下两类解空间树,即子集树和排列树。其中,子集树是指当所给问题是从n个元素(个体)的集合S中找出S满足某种性质的子集时相应的解空间树,如n个物品的0-1背包问题所相应的解空间树;排列树是指当所给问题是确定n个元素(个体)满足某种性质的排列时相应的解空间树,如TSP问题的解空间树。假设有m个mapper,则对于解空间树为子集树的问题采用将集合S中的n个元素(个体)均匀分配给m个mapper的方法;而对于解空间树为排列树的问题采用将所有n个元素(个体)的n!个不同排列均匀分配给m个mapper的方法。
所述的步骤2),即MapReduce的Map函数,其功能是使每个mapper独立并行地在步骤1)划分得到的子问题解空间中执行改进的蚁群算法,搜索局部最优解。其中,所述的改进的蚁群算法是一种在传统蚁群算法之上通过对启发式因子、选择概率确定方法、信息素更新策略进行改进而形成的算法,具体包括如下步骤:
①根据步骤1)划分得到的子问题规模(即所包含的个体个数)选择蚂蚁数和迭代次数,初始化个体的信息素值和待选个体集。具体设置如下:假设子问题规模为ni(i∈[0,m-1]),则对于解空间为子集树的问题(如0-1背包问题),设置所需蚂蚁数ai=ni/100+1,所需迭代次数li=ni/10+1;对于解空间为排列树的问题(如TSP问题),设置所需蚂蚁数ai=ni,所需迭代次数li=10ni。初始化每个个体的信息素值为τij(0)=0.5(j∈[0,ni-1])。初始化待选个体集Ci为子问题所包含的所有个体Si(例如0-1背包问题中的所有物品,TSP问题中的所有两个城市间的可达路径)。
②设置待选个体集中每个个体的被选择概率,每个蚂蚁根据该值随机选择个体,具体方法如下:
③其中t为迭代次数,每个物品的被选到的概率只与在其上的信息素有关,刚开始时初始化为0.5表示每个物品被选到与没选到的概率是一样的。这样每只蚂蚁生成的物品集完全是独立且随机的,直到根据物品价值与重量比的好坏更新信息素来影响物品的选择。比较所有蚂蚁在步骤②中通过选择个体生成的解,从中选择局部最优解对应的蚂蚁b(用自然数表示),用该局部最优蚂蚁生成的解更新相应个体的信息素,τi(t+1)=(1-ρ)τi(t)+Δτb,而其它个体信息素值不更新。
其中,t为迭代次数,0<ρ<1是信息素蒸发系数。0<Δτb<1是个体b信息素的增量,τi(t+1)=(1-ρ)τi(t)+Δτb。针对TSP问题,每个mapper被划分一个初始路径,在其上分别运行蚁群搜索,τij(t+1)=(1-ρ)τij(t)+Δτb,Δτb=Tσ,T的经验值取0.2,增量步进值σ可通过公式σ=Lgb/Lib计算得到,其中,Lgb和Lib分别为当前全局最优蚂蚁所经过的路径长度和本次迭代局部最优蚂蚁所经过的路径长度。
④当满足终止条件时,输出当前mapper执行过程中保存的局部信息素向量,否则转步骤②;
所述的步骤3),即MapReduce的Reduce函数,其功能是当所有mapper运行完对子问题的搜索后,将解传递到reducer后,使reducer根据步骤1)中采用的解空间划分的具体情况来综合得到全局最优解。其中,所述的根据步骤1)中采用的解空间划分的具体情况来综合得到全局最优解,具体分为如下两种情况:
当问题的解空间是子集树(如n个物品的0-1背包问题)时,由于集合S中的n个元素(个体)被均匀分配给m个mapper中,因此简单对各mapper中得到的局部最优解直接进行合并将无法得到正确的全局最优解。针对这一问题,采用将各mapper中得到的部分个体的信息素值进行合并得到集合S中全部个体的信息素值,进而按照步骤2)中所采用的改进的蚁群算法②~④计算全局最优解,所不同的有两处,一是每个个体被选择概率为j∈Ci,α和β分别用于控制信息素浓度τij和启发式因子ηi(j)对生成个体选择概率Pij的影响程度,缺省情况下设置α=β=1。其中,启发式因子ηi(j)是预先设置的对个体选择性的先验知识,是问题相关的,例如:对于0-1背包问题,启发式因子设置为物品的价值密度,即物品价值与重量的比值;对于TSP问题,启发式因子设置为两个城市路径长度的倒数。每只蚂蚁从待选个体Ci中根据个体被选择概率Pij按轮盘赌选择(Roulette Wheel Selection)算法随机选择个体。这里,轮盘赌选择算法参见http://en.wikipedia.org/wiki/Roulette wheel selection。
其中V_total和W_total表示所有物品的总价值和总重量,v_iteration和w_iteration表示本次迭代中生成的最优解物品集的总价值和总重量。对于TSP问题则没有这些不同,因为求解TSP的reducer阶段,只是做解的比较,不需再次运行蚁群算法。
当问题的解空间按是排列树(如TSP问题)时,由于集合S中所有n个元素(个体)的n!个不同排列被均匀分配给m个mapper的方法,因此可以简单比较各mapper中得到的局部最优解,选择其中的最优解作为当前计算得到的最优解。
所述的步骤4),即输出reducer当前计算得到的最优解作为全局最优解,程序终止。
如图1所示,首先根据设定的mapper的数量划分指定组合优化问题的解空间;在Map阶段,每个mapper独立并行地在前述划分得到的子问题解空间中执行改进的蚁群算法,搜索局部最优解;在Reduce阶段,reducer接受所有mapper在不同解空间搜索到的局部最优解,根据采用的解空间划分情况综合得到全局最优解;最后,输出reducer当前得到的全局最优解,程序结束。
如图2所示,是本发明的一个实施例“使用基于MapReduce的蚁群优化技术求解0-1背包问题”的算法流程图。
步骤1),首先分析0-1背包问题的解空间类型。假设有10个物品的背包物品集S,重量分别为(6,3,7,5,2,3,8,2,4,1),价值分别为(10,4,6,8,9,4,2,5,6,4),背包最大容量为15。我们知道,0-1背包问题相应的解空间树是一棵子集树。假设有3个mapper,则将10个物品构成的集合S中的10个物品(个体)以轮转(round-robin)方式均匀分配给3个mapper。
步骤2),即Map阶段,使每个mapper独立并行地在步骤1)划分得到的子问题解空间中执行改进的蚁群算法,搜索局部最优解:
①根据步骤1)划分得到的子问题规模(即所包含的个体个数)选择蚂蚁数和迭代次数,初始化个体的信息素值和待选个体集。具体设置如下:如步骤1)假设的问题规模为10(为说明简便设置得比较小,在实际问题中会非常大),分给mapper1分得的部分物品集为(1,2,3),mapper2分得的部分物品集为(4,5,6),mapper3分得的部分物品集为(7,8,9,10),则对于解空间为子集树的问题(如0-1背包问题),设置所需蚂蚁数为了说明简便固设为ai=3,迭代次数li=2(在实际应用中根据蚂蚁数与迭代数公式ai=ni/100+1,li=ni/10+1本来应该的蚂蚁数与迭代数应为ai=1,li=1,但是为了更清楚的说明程序的过程,而设置为ai=3,li=2)。初始化每个个体的信息素值为最大值τij(0)=0.5(j∈[0,ni-1])。初始化待选个体集Ci为子问题所包含的所有个体SiSi=(1,2,3,4,5,6,7,8,9,10)。
②设置待选个体集中每个个体的被选择概率,每个蚂蚁根据该值随机选择个体,具体方法如下:
刚开始设每个物品的被选概率为0.5,每个mapper在所分配的物品中做随机选择,每个物品的被选择到的概率都是相等的。假设mapper1的3只蚂蚁选择的物品分别是(1,3),(2,3),(1,2),根据启发式因子式v/w选择出蚂蚁生成价值与重量比最大的蚂蚁,并以它来更新信息素。
③经计算步骤②中mapper1中的第三只蚂蚁选择的物品(1,2)的v/w最大,作为较优蚂蚁用信息素更新公式τij(t+1)=(1-ρ)τij(t)+Δτb更新信息素。其中,t为迭代次数,0<ρ<1是信息素蒸发系数。0<Δτb<1是个体b信息素的增量,Δτb=ρτij(t)/n,其中n为蚂蚁选择的物品的数量。
④设信息素挥发率ρ=0.9,经过一次更新的信息素从(1,1,1)变为(0.525,0.45,0.525)。因为不满足终止条件,所以进入第二次迭代。
⑤第二次迭代,mapper1的三只蚂蚁根据分配于其上的物品的信息素所决定的被选概率为(0.525,0.45,0.525)来随机选择背包物品,假设所选到的物品分别为(1),(3),(1,2,3),比较每只蚂蚁得到的价值与重量的比v/w,第二只蚂蚁的v/w最大可以作为最优蚂蚁更新信息素。
⑥经第二次迭代更新信息素,信息素在mapper1中变为了(0.4725,0.405,0.6475)。
⑦因为满足终止条件,输出当前mapper执行过程中保存的物品的信息素矩阵到所有reduce,假设reduce数为2并分别从所有mapper得到信息素绝阵为(0.4725,0.405,0.6475),(0.4725,0.6475,0.405),(0.405,0.495,0.405,0.695)。将所有的部分信息素矩阵拼接起来,形成完整物品集上的信息素矩阵(0.4725,0.405,0.6475,0.4725,0.6475,0.405,0.405,0.495,0.405,0.695),初始化reducer的蚂蚁数4,为说明简便设迭代次数为2。
⑧Reducer1的蚂蚁根据公式 计算所有物品的被蚂蚁选择到的概率(0.072,0.05,0.051,0.07,0.268,0.055,0.09,0.114,0.056,0.256)。
⑨以蚂蚁1为例,假设蚂蚁1根据⑧计算的物品被选概率第一次选择到物品5,由于背包剩余容量大于物品重量,直接将物品放入背包。重新根据剩余物品(1,2,3,4,6,7,8,9,10)的被选概率(0.099,0.068,0.069,0.095,0.075,0.013,0.155,0.076,0.349),选择第二个物品。假设选择到物品10,由于背包剩余容量大于物品重量,直接将物品放入背包……假设接下来被选中并放入背包的物品为(1,7),此时背包剩余容量为4,再次计算剩余物品被选概率并根据概率随机选择物品,设选到的是物品4,它的重量为5大于背包剩余容量,无法装入背包,则放弃物品4并从待选物品集中删除此物品,继续计算剩余物品的被选概率选择下一个物品,直到待选物品集为空,得到reducer1中蚂蚁1选择的背包物品(1,5,7,9,10)。其他蚂蚁的物品选择过程以此类推。
⑩计算本reducer的本迭代中所有蚂蚁选择的背包物品总重量,比较选择出生成的背包物品总价值最大的蚂蚁,如果解优于保存着的全局最优解则把它保存为全局最优解。根据迭代最优解来更新信息素浓度。使用公式τij(t+1)=(1-ρ)τij(t)+Δτijb,其中Δτijb=Tσ,即增量平衡系数T与增量步进值σ之积。T和σ根据具体问题不同而分别设置经验值。例如:针对0-1背包问题,T的经验值取0.5,σ可通过公式计算得到,其中V_total和W_total表示所有物品的总价值和总重量,v_iteration和w_iteration表示本次迭代中生成的最优解物品集的总价值和总重量;针对TSP问题,T的经验值取0.2,σ可通过公式σ=Lgb/Lib计算得到,其中,Lgb和Lib分别为当前全局最优蚂蚁所经过的路径长度和本次迭代局部最优蚂蚁所经过的路径长度。其中V_total和W_total分别是所有物品的总价值和总重量,v_iteration和w_iteration分别是迭代最优蚂蚁生成的物品集的总价值和总重量。假设蚂蚁2所选择的物品(1,5,8,9,10)是迭代最优解,根据公式更新后信息素(0.705,0,565,0.583,0.425,0.862,0.365,0.365,0.725,0.644,0.905)。
因为没有达到要求的迭代次数,继续对解空间进行搜索。根据上次迭代计算得到的信息素浓度计算物品的被选概率。每次根据概率蚂蚁随机选择一个物品,如果物品超过背包剩余容量则放弃此物品并继续选择直到待选物品集为空。
所述的步骤3),即MapReduce的Reduce函数,其功能是当所有mapper运行完对子问题的搜索后,将解传递到reducer后,使reducer根据步骤1)中采用的解空间划分的具体情况来综合得到全局最优解。其中,所述的根据步骤1)中采用的解空间划分的具体情况来综合得到全局最优解,具体分为如下两种情况:
当问题的解空间是子集树(如n个物品的0-1背包问题)时,由于集合S中的n个元素(个体)被均匀分配给m个mapper中,因此简单对各mapper中得到的局部最优解直接进行合并将无法得到正确的全局最优解。针对这一问题,采用将各mapper中得到的部分个体的信息素值进行合并得到集合S中全部个体的信息素值,进而按照步骤2)中所采用的改进的蚁群算法②~④计算全局最优解。
所述的步骤4),即输出reducer当前计算得到的最优解作为全局最优解,程序终止。
如图3所示,是本发明的一个实施例“使用基于MapReduce的蚁群优化技术求解旅行商问题”的算法流程图。
如5个城市的TSP问题,设问题为无向图,邻接矩阵为 MapReduce的ACO解空间划分搜索方法,假设mapper数为3。
①因为旅行售货员问题最终会回到出发城市成为环路,所以每个mapper取同一个起始城市为城市0。
②为3个mapper选取不同的第二个到达城市,分别为(1),(2),(3,4),则每个mapper可以再不同的路径上搜索问题的解:第一个mapper搜索的路径为<0,1,*,*,*>,第二个mapper搜索的路径为<0,2,*,*,*>,第三个mapper搜索的路径为<0,3,*,*,*><0,4,*,*,*>。由于解空间被缩小,如第一个mapper只需在(2,3,4)个城市间的全排列也就是2*3=6个解中寻找最优解就可以,问题规模被缩小化,可以更精确、快速地找到最优解,其他的mapper同理。
③假设第一个mapper寻找到的最优解为<0,1,4,2,3>,路程总长度为21,第二个mapper寻找到的最优解为<0,2,4,1,3>,路程总长度为23,第三个mapper寻找到的最优解为<0,3,2,4,1>,路程总长度为21。mapper把搜索到的部分最优解传递给reducer,reducer接收到3个在不同搜索空间找到的最优解并进行比较,选择其中的最优的解<0,1,4,2,3>作为程序的最优解,经计算和问题最优解相等,最优解21。
Claims (4)
1.使用基于MapReduce的蚁群优化技术求解组合优化问题的方法,其特征在于,包括以下步骤:
1)根据设定的mapper的数量划分指定组合优化问题的解空间;
2)Map阶段,每个mapper独立并行地在步骤1)划分得到的子问题解空间中执行改进的蚁群算法,搜索局部最优解;
3)Reduce阶段,reducer接受所有mapper在不同解空间搜索到的局部最优解,根据步骤1)中采用的解空间划分情况综合得到全局最优解;
4)输出reducer当前得到的全局最优解,结束。
2.根据权利要求1所述的使用基于MapReduce的蚁群优化技术求解组合优化问题的方法,其特征在于,步骤1),具体为:分析指定组合优化问题的解空间类型,并根据设定的mapper数量划分解空间,令每个mapper分别在不同的子空间内搜索局部问题的解;其中,所述的问题的解空间是指:设问题的解向量为x=(x1,x2,…,xi…,xn),xi的取值范围为有穷集S,把x的所有可能取值组合称为问题的解空间,i、n均为自然数;每一个组合是问题的一个可能解;可行解是满足约束条件的解,是解空间中的一个子集;最优解是使目标函数取极值的可行解;解空间组织成子集树或排列树形式。
3.根据权利要求1所述的使用基于MapReduce的蚁群优化技术求解组合优化问题的方法,其特征在于,步骤2),即MapReduce的Map函数,其中,所述的改进的蚁群算法,具体包括如下步骤:
①根据步骤1)划分得到的子问题规模选择蚂蚁数和迭代次数,初始化个体的信息素值和待选个体集,具体设置如下:
假设子问题规模为ni(i∈[0,m-1]),则对于解空间为子集树的问题,设置所需蚂蚁数ai=ni/100+1,所需迭代次数li=ni/10+1;对于解空间为排列树的问题,设置所需蚂蚁数ai=ni,所需迭代次数li=10ni;初始化每个个体的信息素值为τij(0)=0.5(j∈[0,ni-1]);初始化待选个体集Ci为子问题所包含的所有个体Si;
②设置待选个体集中每个个体的被选择概率,每个蚂蚁根据该值随机选择个体,具体方法如下:
③其中每个物品的被选到的概率只与在其上的信息素有关,刚开始时初始化为0.5表示每个物品被选到与没选到的概率是一样的;这样每只蚂蚁生成的物品集完全是独立且随机的,直到根据物品价值与重量比的好坏更新信息素来影响物品的选择;比较所有蚂蚁在步骤②中通过选择个体生成的解,从中选择局部最优解对应的蚂蚁b,为自然数,用该局部最优蚂蚁生成的解更新相应个体的信息素,τi(t+1)=(1-ρ)τi(t)+Δτb,而其它个体信息素值不更新;
其中,t为迭代次数,0<ρ<1是信息素蒸发系数;0<Δτb1是个体b信息素的增量;
④当满足终止条件时,输出当前mapper执行过程中保存的局部信息素向量,否则转步骤②。
4.根据权利要求1所述的使用基于MapReduce的蚁群优化技术求解组合优化问题的方法,其特征在于,步骤3)即MapReduce的Reduce函数,其功能是当所有mapper运行完对子问题的搜索后,将解传递到reducer后,使reducer根据步骤1)中采用的解空间划分的具体情况来综合得到全局最优解;其中,所述的根据步骤1)中采用的解空间划分的具体情况来综合得到全局最优解,具体分为如下两种情况:
当问题的解空间是子集树时,集合S中的n个元素被均匀分配给m个mapper中,采用将各mapper中得到的部分个体的信息素值进行合并得到集合S中全部个体的信息素值,进而按照步骤2)中所采用的改进的蚁群算法②~④计算全局最优解,所不同的有两处,一是每个个体被选择概率为实数α和β分别用于控制信息素浓度τij和启发式因子ηi(j)对生成个体选择概率Pij的影响程度,缺省 情况下设置α=β=1,其中,启发式因子ηi(j)是预先设置的对个体选择性的先验知识,是问题相关的;每只蚂蚁从待选个体Ci中根据个体被选择概率Pij按轮盘赌选择算法随机选择个体;
另一个是信息素更新公式,Δτijb=Tσ,即增量平衡系数T与增量步进值σ之积;T和σ根据具体问题不同而分别设置经验值;
当问题的解空间按是排列树时,由于集合S中所有n个元素的n!个不同排列被均匀分配给m个mapper的方法,因此简单比较各mapper中得到的局部最优解,选择其中的最优解作为当前计算得到的最优解。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012104333438A CN102982389A (zh) | 2012-11-02 | 2012-11-02 | 使用基于MapReduce的蚁群优化技术求解组合优化问题的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012104333438A CN102982389A (zh) | 2012-11-02 | 2012-11-02 | 使用基于MapReduce的蚁群优化技术求解组合优化问题的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102982389A true CN102982389A (zh) | 2013-03-20 |
Family
ID=47856361
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012104333438A Pending CN102982389A (zh) | 2012-11-02 | 2012-11-02 | 使用基于MapReduce的蚁群优化技术求解组合优化问题的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102982389A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103226762A (zh) * | 2013-04-17 | 2013-07-31 | 深圳东原电子有限公司 | 一种基于云计算平台的物流配送方法 |
CN103631657A (zh) * | 2013-11-19 | 2014-03-12 | 浪潮电子信息产业股份有限公司 | 一种基于MapReduce的任务调度算法 |
CN104683235A (zh) * | 2015-02-07 | 2015-06-03 | 江西科技学院 | 一种基于蚁群算法的qos路由优化方法 |
CN106026187A (zh) * | 2016-08-10 | 2016-10-12 | 广东工业大学 | 一种含分布式电源的配电网重构的方法及系统 |
WO2017166269A1 (en) * | 2016-04-01 | 2017-10-05 | Intel Corporation | System and method to accelerate reduce operations in graphics processor |
CN108897990A (zh) * | 2018-06-06 | 2018-11-27 | 东北大学 | 面向大规模高维序列数据的交互特征并行选择方法 |
CN109194746A (zh) * | 2018-09-06 | 2019-01-11 | 广州知弘科技有限公司 | 基于物联网的异构信息处理方法 |
CN109635328A (zh) * | 2017-11-08 | 2019-04-16 | 成都华微电子科技有限公司 | 集成电路布局方法以及分布式设计方法 |
CN113255094A (zh) * | 2020-02-10 | 2021-08-13 | 富士通株式会社 | 优化设备、优化程序和优化方法 |
CN114417947A (zh) * | 2020-10-28 | 2022-04-29 | 江苏斯诺物联科技有限公司 | 一种基于元启发式算法的并行工业物联网大数据聚类方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101477642A (zh) * | 2008-12-31 | 2009-07-08 | 中山大学 | 基于蚁群算法的飞机进港调度方法 |
-
2012
- 2012-11-02 CN CN2012104333438A patent/CN102982389A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101477642A (zh) * | 2008-12-31 | 2009-07-08 | 中山大学 | 基于蚁群算法的飞机进港调度方法 |
Non-Patent Citations (2)
Title |
---|
BINHAN WU: "A MapReduce based Ant Colony Optimization Approach to Combinatorial Optimization Problems", 《NATURAL COMPUTATION》 * |
王会颖: "蚁群算法及群体智能的应用研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103226762A (zh) * | 2013-04-17 | 2013-07-31 | 深圳东原电子有限公司 | 一种基于云计算平台的物流配送方法 |
CN103631657A (zh) * | 2013-11-19 | 2014-03-12 | 浪潮电子信息产业股份有限公司 | 一种基于MapReduce的任务调度算法 |
CN104683235A (zh) * | 2015-02-07 | 2015-06-03 | 江西科技学院 | 一种基于蚁群算法的qos路由优化方法 |
US10949251B2 (en) | 2016-04-01 | 2021-03-16 | Intel Corporation | System and method to accelerate reduce operations in graphics processor |
WO2017166269A1 (en) * | 2016-04-01 | 2017-10-05 | Intel Corporation | System and method to accelerate reduce operations in graphics processor |
US11989580B2 (en) | 2016-04-01 | 2024-05-21 | Intel Corporation | System and method to accelerate reduce operations in graphics processor |
CN106026187A (zh) * | 2016-08-10 | 2016-10-12 | 广东工业大学 | 一种含分布式电源的配电网重构的方法及系统 |
CN106026187B (zh) * | 2016-08-10 | 2019-05-24 | 广东工业大学 | 一种含分布式电源的配电网重构的方法及系统 |
CN109635328A (zh) * | 2017-11-08 | 2019-04-16 | 成都华微电子科技有限公司 | 集成电路布局方法以及分布式设计方法 |
CN108897990B (zh) * | 2018-06-06 | 2021-10-29 | 东北大学 | 面向大规模高维序列数据的交互特征并行选择方法 |
CN108897990A (zh) * | 2018-06-06 | 2018-11-27 | 东北大学 | 面向大规模高维序列数据的交互特征并行选择方法 |
CN109194746A (zh) * | 2018-09-06 | 2019-01-11 | 广州知弘科技有限公司 | 基于物联网的异构信息处理方法 |
CN109194746B (zh) * | 2018-09-06 | 2021-03-26 | 贵州我联你联网络技术有限公司 | 基于物联网的异构信息处理方法 |
CN113255094A (zh) * | 2020-02-10 | 2021-08-13 | 富士通株式会社 | 优化设备、优化程序和优化方法 |
CN114417947A (zh) * | 2020-10-28 | 2022-04-29 | 江苏斯诺物联科技有限公司 | 一种基于元启发式算法的并行工业物联网大数据聚类方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102982389A (zh) | 使用基于MapReduce的蚁群优化技术求解组合优化问题的方法 | |
Zaribafiyan et al. | Systematic and deterministic graph minor embedding for cartesian products of graphs | |
CN103226762B (zh) | 一种基于云计算平台的物流配送方法 | |
Wang et al. | Ant colony optimization for task allocation in multi-agent systems | |
Wu et al. | A mapreduce based ant colony optimization approach to combinatorial optimization problems | |
CN105426992A (zh) | 移动机器人旅行商优化方法 | |
US20130086355A1 (en) | Distributed Data Scalable Adaptive Map-Reduce Framework | |
CN105550268A (zh) | 大数据流程建模分析引擎 | |
CN110059875B (zh) | 基于分布式鲸鱼优化算法的公共自行车需求量预测方法 | |
Madduri et al. | Parallel Shortest Path Algorithms for Solving Large-Scale Instances. | |
Xu et al. | Sampling-based partitioning in MapReduce for skewed data | |
Liao et al. | MRPrePost—A parallel algorithm adapted for mining big data | |
Gaifang et al. | Cooperative ant colony-genetic algorithm based on spark | |
Liu et al. | Multi-Level Partitioning and Distribution of the Assignment Problem for Large-Scale Multi-Robot Task Allocation. | |
Yang | Improved ant colony algorithm based on PSO and its application on cloud computing resource scheduling | |
Shi et al. | Partitioning dynamic graph asynchronously with distributed FENNEL | |
Kalyani | Application of multi-core parallel programming to a combination of ant colony optimization and genetic algorithm | |
Coppa et al. | Counting cliques in parallel without a cluster: engineering a fork/join algorithm for shared-memory platforms | |
Doerner et al. | A parallel version of the d-ant algorithm for the vehicle routing problem | |
Boukerche et al. | An exact parallel algorithm to compare very long biological sequences in clusters of workstations | |
CN108596390A (zh) | 一种解决车辆路径问题的方法 | |
Mou | An efficient ant colony system for solving the new generalized traveling salesman problem | |
Hansen et al. | Complement to a comparative analysis of heuristics for the p-median problem | |
Zhu et al. | Community mining in complex network based on parallel genetic algorithm | |
Nawaz et al. | Spore: shortest path overlapped regions and confined traversals towards graph clustering |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130320 |