网站首页  词典首页

请输入您要查询的论文:

 

标题 基于C++ AMP加速并行蚁群算法
范文 林超
摘? 要: 蚁群算法与同类智能算法相比具有计算速度快、收敛迅速、算法稳定性好等优点,但是随着数据量的增大,计算用时呈现指数型增长。为了更好地解决大数据量蚁群算法计算慢的问题,结合蚁群算法天然的并行性,基于最新的GPU并行化接口C++ AMP实现了并行蚁群算法,使计算用时大幅度减少。经试验分析,该算法可以达到3倍的加速效果。
关键词: 蚁群算法; 并行蚁群算法; C++ AMP; GPU计算
中图分类号: TN911.7?34; TP18??????????? 文献标识码: A??????????????????????? 文章编号: 1004?373X(2014)23?0069?03
Abstract: Compared with similar intelligent algorithms, ant colony algorithm has the advantages of faster calculation, more rapid convergence and more perfect stability. However, with the increasing amount of data, its computation time emerges the exponential growth. In order to solve the problem that the large amount of data ant colony algorithm is slow, by utilizing the natural parallelism of ant colony algorithm, the parallel ant colony algorithm was achieved on the basis of the latest GPU parallel interface C++AMP, which realized the substantial reduction of computation time. The analysis result indicates that the reduction extent is up to 3 times the acceleration effect.
Keyword: ant colony algorithm; parallel ant colony algorithm; C++ AMP; GPU computation
蚁群算法是由Macro Dorigo等人于1991年提出的一种启发式智能算法[1]。蚁群算法的设计灵感源于蚁群寻找食物的过程,一群蚂蚁通过相互协作就能找到从蚂蚁巢穴到食物的最短路径。其算法核心为路径上的信息素积累,导致更多的蚂蚁选择这一路径,最后几乎所有蚂蚁选择经过该路径,于是就找出了一条从蚂蚁巢穴到食物的最短路径。蚁群算法有着较高的隐含并行性,并且其在很多经典问题上有着出色的表现,如旅行商问题TSP(Traveling Salesman Problem)[2?5]、车辆调度问题[6?7]、集成电路设计[8]以及通信网络负载[9]等问题。随着数据量的增大,串行程序的计算用时成指数型增长,显然不满足人们的需要。为了更快求解这类问题,基于蚁群算法天然的并行性,把算法并行化是很好的选择。文献[10]应用云计算技术将蚁群算法并行化,提出了基于MapReduce的蚁群算法;文献[11?13]实现了基于MPI并行计算的蚁群聚类算法;文献[14?15]研究了基于OpenMP技术的多核架构下并行蚁群算法;文献[16?17]建立了一种基于CUDA的并行蚁群算法。本文基于最新的GPU并行化接口C++ AMP实现蚁群算法的并行化,并通过数值验证加速效果。
1? C++ AMP介绍
GPU计算由来已久,已经成熟的接口包括NVIDIA的CUDA C和AMD的OPENCL接口,随着微软公司Visual Studio 2012的发布,在Build大会上微软向大家呈现了一种新的GPU并行计算模式C++ AMP,其最低运行环境是:Win7系统+Visual Studio 2012+DirectX11,所以它比另外两种并行端口适用范围更广,可以实现真正意义上的跨平台运行。C++ AMP采用面向对象的C++语言开发,支持CPU,GPU等跨平台编译运行,具有逻辑结构简单、数据隐式拷贝、自动负载均衡等特点,可以快速、稳定地实现并行计算。
一个C++ AMP计算过程中最重要的包括:
(1)数据,其基本数据类型有array<;T,N>;,array_view<;T,N>;,index<;N>;,extent<;N>;,tiled_extent<;D0,D1,D2>;,title_index(D0,D1,D2>;,accelerator,accelerator_view,texture<;T,N>;等;
(2) 迭代函数parallel_for_each函数,是C++AMP并行计算的核心部分,负责线程开辟、核函数计算等工作,基本的计算过程由核函数指定,通常核函数为Lambda表达式,也可以是由限定符restrict(amp)限定的GPU函数;
(3) 线程索引index类,线程开辟大小extent类,他们两者是一一对应的。如果extent是二维的,则index也是二维的,由index类对象来实现对线程的惟一标示;
(4) 数学函数,数学函数库有双精度数学函数与快速数学函数两种,根据需要选择。
C++ AMP的执行模式是由CPU线程控制、由parallel_for_each函数作为详细设置、由核函数完成核心计算任务、数据隐式拷贝的执行模型。程序开始运行时,只有CPU主线程活动,当执行到并行区域时,主线程根据parallel_for_each函数的设置,启动GPU线程组来完成相应的计算任务,最后拷贝数据回CPU主线程,这时GPU线程挂起或者退出,控制流又回到CPU主线程中。
2? 蚁群算法介绍
为了更加清楚详细地描述蚁群算法,本文借助经典的TSP问题来描述(TSP问题:已知[n]个城市以及城市两两之间的距离,求一条遍历所有城市的最短路径,除初始城市之外每个城市访问且仅访问一次)。
蚁群算法可以定义如下:设有[n]个城市,[m]个蚂蚁,任意城市[i]与城市[j]之间的距离为[d(i,j)],启发函数定义为[η(i,j)=1d(i,j),]任意城市[i]与城市[j]之间的信息素浓度为[τ(i,j)],并且初始时刻信息素浓度相同,蚂蚁[k]经过城市[i]转到城市[j]的概率计算公式如下所示:
[pkij=[τ(i,j)]α?[η(i,j)]βs∈J(k)[τ(i,s)]α?[η(i,s)]β,s∈J(k)0,others] (1)
式中:[J(k)]是蚂蚁[k]下一步允许选择的城市的集合;[α,][β]为权重系数。当所有蚂蚁都完成一次循环后,对信息素矩阵进行更新操作,这样,新时刻路径[(i,j)]上的信息素浓度采用调整式(2)进行调节:
[τ(i,j)=ρτ(i,j)+k=1mΔτk(i,j)] (2)
式中:[ρ(0<;ρ<;1)]表示信息素保留程度,其值越大表示信息素挥发速率越慢;[Δτk(i,j)]表示在本次循环中第[k]只蚂蚁在路径[(i,j)]上的信息素贡献。每只蚂蚁的信息素贡献可以用式(3)进行计算:
[Δτk(i,j)=QLk,第k只蚂蚁在本次循环中经过(i,j)0,否则] (3)
式中:[Q]是信息素强度,它影响算法的收敛速度;[Lk]表示第[k]只蚂蚁在本次循环中所有的路径总和[4]。
3? 并行蚁群算法
根据上述介绍,可以看出每只蚂蚁寻找自己路径依赖于上次循环产生的信息素矩阵以及各城市之间的静态路径长度,两两蚂蚁之间没有信息素交流,经过分析,这是一种符合SIMD模型的过程,故可以将每只蚂蚁寻找最优路径的过程并行进行,从而加速算法计算。并行蚁群算法可以用如下算法进行描述:
Step1:初始化所有参数、变量,如权重系数[α,][β;]蚂蚁个数[m;]最大迭代步数NC;信息素矩阵初始值[τ(i,j)=1。]
Step2:按照蚂蚁个数分配线程,每个线程代表一只蚂蚁。每只蚂蚁独立构造一个解(解即一条遍历所有城市的路径),详细描述为:蚂蚁[k]随机选取一个城市[i]作为自己的初始点,再根据转移概率公式计算转移概率[pkij;]根据概率最大者选择下一个城市[j],从而蚂蚁走过路径为[(i,j)。]若当前路径长度大于上一循环求得最短路径长度,则结束本次循环;否则继续循环,直到蚂蚁[k]寻找到一个解。
Step3:规约Step2中所有蚂蚁产生的解,求解出所有解中的最优解和最优值进行保存操作。
Step4:根据当前最优解和最优值信息,进行信息素矩阵更新操作。
Step5:判断是否满足结束条件,若满足,则输出最优解和最优值;否则,循环执行次数+1,转Step2。结束条件为循环次数大于NC或者当前解已经稳定(通常两步解出的最优解与最优值相同即可认为当前解已经稳定)。
串行蚁群算法的时间复杂度为[O(NC?m?n2)],计算量主要集中在蚂蚁各自构造一个解的过程。蚁群算法在一代迭代中包括蚂蚁独立求解、相互交流得到较优解和改变信息素的过程,且信息素的改变直接影响下一代概率计算的结果,从而产生不同的解,并向较优解进化。由于把算法并行化,采用每只蚂蚁并行寻找路径的模式进行,则并行蚁群算法的时间复杂度减小为[O(NC?n2)],使算法有明显的加速。
4? 数值实验
4.1? 实验环境
实验环境采用NVIDIA GeForce GT 440环境,具体参数配置如表1所示。
4.2? 数值结果
数值实验采用的数据为随机生成的二维坐标,取值范围在[0,1 000],分城市数目[n、]蚂蚁数目[m、]迭代次数[NC]等三个参数进行实验分析,实验结果如表2所示。
由表2前三行可知,串行时间与并行时间随着迭代次数的增加呈现线性增长趋势,这也符合第3节的理论推导,此时串行时间与并行时间相当,加速比在[1-0.01,1+0.01]范围之内,可以认为此时没有加速效果。由此三行知道,加速比和运行时间都与迭代次数无关。下面选取小的迭代次数来进行数值实验,分析城市数目与蚂蚁数目对串行时间、并行时间、加速比的影响。
表1 实验环境GeForce GT 440配置参数
[项目\&;参数\&;操作系统\&;Windows 7, 64-bits\&;内存\&;4 GB\&;运行环境\&;Visual Studio 2012\&;CPU\&;Intel(R) Xeon(R) W3520@ 2.67 GHz x 4\&;GPU\&;显卡型号:NVIDIA GeForce GT 440
显存:512 MB DDR3
带宽:54.4 GB/s
带宽:54.4 GB/s
核心频率:850 MHz
存储频率:850 MHz
渲染频率:1 700 MHz
SM个数:2个
SP个数:96个\&;]
表2 实验结果
[城市数目
(n)\&;蚂蚁数目
(m)\&;迭代次数(NC)\&;串行时间
?;/s\&;并行时间
?;/s\&;加速比\&;200\&;200\&;100\&;80.153\&;79.445\&;1.01\&;200\&;200\&;1 000\&;796.334\&;802.333\&;0.99\&;200\&;200\&;10 000\&;7 849.595\&;7 933.443\&;0.99\&;300\&;300\&;100\&;269.303\&;168.883\&;1.75\&;300\&;600\&;100\&;538.044\&;219.804\&;2.45\&;300\&;1 000\&;100\&;895.340\&;320.112\&;2.80\&;500\&;500\&;100\&;1 251.692\&;496.486\&;2.52\&;500\&;1 000\&;100\&;2 486.281\&;870.372\&;2.86\&;]
由表2整体可以看出,当城市数目及蚂蚁数目较大时,对数据普遍有加速效果。由表2第4~6行分析可知,固定城市数目,随着蚂蚁数目增大,串行时间呈现线性增长,而并行时间的增长率小于线性,加速比越来越大。这是由于并行线程数目是以蚂蚁数目为参数的,蚂蚁数目越大,并行线程数目越多,从而使得并行时间增长率比线性还小。但是此时并行时间并没有遵循第3节分析的函数[O(NC?n2)],这是由于虽然并行线程开辟了[m]个,但是最终的物理执行过程同时运行的线程个数为96个(SP个数),又涉及到CPU?GPU异构通信时间,从而使得整体并行时间没有按照理论分析的结果。并行线程数目m越大,负载相对越均衡,物理资源占用越充分,从而加速效果越来越明显,直到达到相应的物理瓶颈。这也可以由表2的7,8行得出。
由表2中的第5,7行和第6,8行可以对比出,蚂蚁数目[m]一定时,城市数目[n]对于串行、并行算法时间的影响。对比5,7两行可以看出,蚂蚁数目大体一样,城市数目改变量比较大,其加速比相差不大;对比6,8两行可以看出,蚂蚁数目一样时,城市数目的改变对于整个算法的加速比影响并不是很大。这个也可以从并行程序中串行执行部分、数据交换所用时间以及算法本身所用时间方面进行分析,这个加速效果是合理的。
5?; 结?; 论
本文基于最新的GPU并行化接口C++ AMP,设计实现了并行蚁群算法,经过数值实验分析,可以达到3倍的加速效果,对于大数量的蚁群算法求解提供了新的解决思路。加速效果不是很明显,原因是CPU配置较高,GPU性能不是很好导致。
参考文献
[1] COLORNI A, DORIGO M, MANIEZZO V, et al. Distributedoptimization by ant colonies [C]// Proceedings of European Conference on Artificial Life. Paris: [s.n.], 1991: 134?142.
[2] 蒋腾旭.改进的遗传蚁群混合算法在TSP中的应用[J].计算机与现代化,2013(12):30?33.
[3] 余鹏,何学军.基于蚁群算法的舰艇编队海上补给路径规划方法[J].海军工程大学学报,2014(2):108?112.
[4] 郭平,鄢文晋.基于TSP问题的蚁群算法综述[J].计算机科学,2007(10):181?184.
[5] 王胜训,李艳颖.一种求解TSP的自适应蚁群优化算法[J].西安工程大学学报,2013(6):840?844.
[6] 杨浩雄,胡静,何明珂.配送中多车场多任务多车型车辆调度研究[J].计算机工程与应用,2013(10):243?246.
[7] 于滨,杨忠振,程春田.并行蚁群算法在公交线网优化中应用[J].大连理工大学学报,2007(2):211?214.
[8] 黄训诚,耿阿囡,庄奕琪,等.基于蚁群算法的集成电路无网格布线[J].电子器件,2006(3):874?877.
[9] 王爱静,郝志峰,黄翰,等.双向反馈蚁群算法在网络负载均衡问题的研究[J].计算机工程与应用,2011(36):112?114.
[10] 吴昊,倪志伟,王会颖.基于MapReduce的蚁群算法[J].计算机集成制造系统,2012(7):1503?1509.
[11] 杨燕,王全根,黄波.蚁群聚类算法的并行化设计与实现[J].控制工程,2013(3):411?414.
[12] 刘彩云,陈忠.一种蚁群算法的并行实现[J].长江大学学报(自科版)理工卷,2007(4):9?11.
[13] 曹明,甘云,王胜炎,等.基于MPI的并行蚁群算法的实现[J].电脑知识与技术,2012(12):2863?2864.
[14] 刘向娇,吴素萍,刘佳梅.基于OpenMP求解旅行商问题的并行蚁群算法[J].微电子学与计算机,2011(7):149?151.
[15] 陈昊.基于OpenMP的并行蚁群算法求解协同空战火力分配[J].传感器与微系统,2013(1):20?24.
[16] 白洪涛,欧阳丹彤,李熙铭,等.基于GPU的共享信息素矩阵多蚁群算法[J].吉林大学学报:工学版,2011(6):1678?1683.
[17] 李建明,胡祥培,庞占龙,等.一种基于GPU加速的细粒度并行蚁群算法[J].控制与决策,2009,24(8):1132?1136.
带宽:54.4 GB/s
核心频率:850 MHz
存储频率:850 MHz
渲染频率:1 700 MHz
SM个数:2个
SP个数:96个\&;]
表2 实验结果
[城市数目
(n)\&;蚂蚁数目
(m)\&;迭代次数(NC)\&;串行时间
?;/s\&;并行时间
?;/s\&;加速比\&;200\&;200\&;100\&;80.153\&;79.445\&;1.01\&;200\&;200\&;1 000\&;796.334\&;802.333\&;0.99\&;200\&;200\&;10 000\&;7 849.595\&;7 933.443\&;0.99\&;300\&;300\&;100\&;269.303\&;168.883\&;1.75\&;300\&;600\&;100\&;538.044\&;219.804\&;2.45\&;300\&;1 000\&;100\&;895.340\&;320.112\&;2.80\&;500\&;500\&;100\&;1 251.692\&;496.486\&;2.52\&;500\&;1 000\&;100\&;2 486.281\&;870.372\&;2.86\&;]
由表2整体可以看出,当城市数目及蚂蚁数目较大时,对数据普遍有加速效果。由表2第4~6行分析可知,固定城市数目,随着蚂蚁数目增大,串行时间呈现线性增长,而并行时间的增长率小于线性,加速比越来越大。这是由于并行线程数目是以蚂蚁数目为参数的,蚂蚁数目越大,并行线程数目越多,从而使得并行时间增长率比线性还小。但是此时并行时间并没有遵循第3节分析的函数[O(NC?n2)],这是由于虽然并行线程开辟了[m]个,但是最终的物理执行过程同时运行的线程个数为96个(SP个数),又涉及到CPU?GPU异构通信时间,从而使得整体并行时间没有按照理论分析的结果。并行线程数目m越大,负载相对越均衡,物理资源占用越充分,从而加速效果越来越明显,直到达到相应的物理瓶颈。这也可以由表2的7,8行得出。
由表2中的第5,7行和第6,8行可以对比出,蚂蚁数目[m]一定时,城市数目[n]对于串行、并行算法时间的影响。对比5,7两行可以看出,蚂蚁数目大体一样,城市数目改变量比较大,其加速比相差不大;对比6,8两行可以看出,蚂蚁数目一样时,城市数目的改变对于整个算法的加速比影响并不是很大。这个也可以从并行程序中串行执行部分、数据交换所用时间以及算法本身所用时间方面进行分析,这个加速效果是合理的。
5?; 结?; 论
本文基于最新的GPU并行化接口C++ AMP,设计实现了并行蚁群算法,经过数值实验分析,可以达到3倍的加速效果,对于大数量的蚁群算法求解提供了新的解决思路。加速效果不是很明显,原因是CPU配置较高,GPU性能不是很好导致。
参考文献
[1] COLORNI A, DORIGO M, MANIEZZO V, et al. Distributedoptimization by ant colonies [C]// Proceedings of European Conference on Artificial Life. Paris: [s.n.], 1991: 134?142.
[2] 蒋腾旭.改进的遗传蚁群混合算法在TSP中的应用[J].计算机与现代化,2013(12):30?33.
[3] 余鹏,何学军.基于蚁群算法的舰艇编队海上补给路径规划方法[J].海军工程大学学报,2014(2):108?112.
[4] 郭平,鄢文晋.基于TSP问题的蚁群算法综述[J].计算机科学,2007(10):181?184.
[5] 王胜训,李艳颖.一种求解TSP的自适应蚁群优化算法[J].西安工程大学学报,2013(6):840?844.
[6] 杨浩雄,胡静,何明珂.配送中多车场多任务多车型车辆调度研究[J].计算机工程与应用,2013(10):243?246.
[7] 于滨,杨忠振,程春田.并行蚁群算法在公交线网优化中应用[J].大连理工大学学报,2007(2):211?214.
[8] 黄训诚,耿阿囡,庄奕琪,等.基于蚁群算法的集成电路无网格布线[J].电子器件,2006(3):874?877.
[9] 王爱静,郝志峰,黄翰,等.双向反馈蚁群算法在网络负载均衡问题的研究[J].计算机工程与应用,2011(36):112?114.
[10] 吴昊,倪志伟,王会颖.基于MapReduce的蚁群算法[J].计算机集成制造系统,2012(7):1503?1509.
[11] 杨燕,王全根,黄波.蚁群聚类算法的并行化设计与实现[J].控制工程,2013(3):411?414.
[12] 刘彩云,陈忠.一种蚁群算法的并行实现[J].长江大学学报(自科版)理工卷,2007(4):9?11.
[13] 曹明,甘云,王胜炎,等.基于MPI的并行蚁群算法的实现[J].电脑知识与技术,2012(12):2863?2864.
[14] 刘向娇,吴素萍,刘佳梅.基于OpenMP求解旅行商问题的并行蚁群算法[J].微电子学与计算机,2011(7):149?151.
[15] 陈昊.基于OpenMP的并行蚁群算法求解协同空战火力分配[J].传感器与微系统,2013(1):20?24.
[16] 白洪涛,欧阳丹彤,李熙铭,等.基于GPU的共享信息素矩阵多蚁群算法[J].吉林大学学报:工学版,2011(6):1678?1683.
[17] 李建明,胡祥培,庞占龙,等.一种基于GPU加速的细粒度并行蚁群算法[J].控制与决策,2009,24(8):1132?1136.
带宽:54.4 GB/s
核心频率:850 MHz
存储频率:850 MHz
渲染频率:1 700 MHz
SM个数:2个
SP个数:96个\&;]
表2 实验结果
[城市数目
(n)\&;蚂蚁数目
(m)\&;迭代次数(NC)\&;串行时间
?;/s\&;并行时间
?;/s\&;加速比\&;200\&;200\&;100\&;80.153\&;79.445\&;1.01\&;200\&;200\&;1 000\&;796.334\&;802.333\&;0.99\&;200\&;200\&;10 000\&;7 849.595\&;7 933.443\&;0.99\&;300\&;300\&;100\&;269.303\&;168.883\&;1.75\&;300\&;600\&;100\&;538.044\&;219.804\&;2.45\&;300\&;1 000\&;100\&;895.340\&;320.112\&;2.80\&;500\&;500\&;100\&;1 251.692\&;496.486\&;2.52\&;500\&;1 000\&;100\&;2 486.281\&;870.372\&;2.86\&;]
由表2整体可以看出,当城市数目及蚂蚁数目较大时,对数据普遍有加速效果。由表2第4~6行分析可知,固定城市数目,随着蚂蚁数目增大,串行时间呈现线性增长,而并行时间的增长率小于线性,加速比越来越大。这是由于并行线程数目是以蚂蚁数目为参数的,蚂蚁数目越大,并行线程数目越多,从而使得并行时间增长率比线性还小。但是此时并行时间并没有遵循第3节分析的函数[O(NC?n2)],这是由于虽然并行线程开辟了[m]个,但是最终的物理执行过程同时运行的线程个数为96个(SP个数),又涉及到CPU?GPU异构通信时间,从而使得整体并行时间没有按照理论分析的结果。并行线程数目m越大,负载相对越均衡,物理资源占用越充分,从而加速效果越来越明显,直到达到相应的物理瓶颈。这也可以由表2的7,8行得出。
由表2中的第5,7行和第6,8行可以对比出,蚂蚁数目[m]一定时,城市数目[n]对于串行、并行算法时间的影响。对比5,7两行可以看出,蚂蚁数目大体一样,城市数目改变量比较大,其加速比相差不大;对比6,8两行可以看出,蚂蚁数目一样时,城市数目的改变对于整个算法的加速比影响并不是很大。这个也可以从并行程序中串行执行部分、数据交换所用时间以及算法本身所用时间方面进行分析,这个加速效果是合理的。
5?; 结?; 论
本文基于最新的GPU并行化接口C++ AMP,设计实现了并行蚁群算法,经过数值实验分析,可以达到3倍的加速效果,对于大数量的蚁群算法求解提供了新的解决思路。加速效果不是很明显,原因是CPU配置较高,GPU性能不是很好导致。
参考文献
[1] COLORNI A, DORIGO M, MANIEZZO V, et al. Distributedoptimization by ant colonies [C]// Proceedings of European Conference on Artificial Life. Paris: [s.n.], 1991: 134?142.
[2] 蒋腾旭.改进的遗传蚁群混合算法在TSP中的应用[J].计算机与现代化,2013(12):30?33.
[3] 余鹏,何学军.基于蚁群算法的舰艇编队海上补给路径规划方法[J].海军工程大学学报,2014(2):108?112.
[4] 郭平,鄢文晋.基于TSP问题的蚁群算法综述[J].计算机科学,2007(10):181?184.
[5] 王胜训,李艳颖.一种求解TSP的自适应蚁群优化算法[J].西安工程大学学报,2013(6):840?844.
[6] 杨浩雄,胡静,何明珂.配送中多车场多任务多车型车辆调度研究[J].计算机工程与应用,2013(10):243?246.
[7] 于滨,杨忠振,程春田.并行蚁群算法在公交线网优化中应用[J].大连理工大学学报,2007(2):211?214.
[8] 黄训诚,耿阿囡,庄奕琪,等.基于蚁群算法的集成电路无网格布线[J].电子器件,2006(3):874?877.
[9] 王爱静,郝志峰,黄翰,等.双向反馈蚁群算法在网络负载均衡问题的研究[J].计算机工程与应用,2011(36):112?114.
[10] 吴昊,倪志伟,王会颖.基于MapReduce的蚁群算法[J].计算机集成制造系统,2012(7):1503?1509.
[11] 杨燕,王全根,黄波.蚁群聚类算法的并行化设计与实现[J].控制工程,2013(3):411?414.
[12] 刘彩云,陈忠.一种蚁群算法的并行实现[J].长江大学学报(自科版)理工卷,2007(4):9?11.
[13] 曹明,甘云,王胜炎,等.基于MPI的并行蚁群算法的实现[J].电脑知识与技术,2012(12):2863?2864.
[14] 刘向娇,吴素萍,刘佳梅.基于OpenMP求解旅行商问题的并行蚁群算法[J].微电子学与计算机,2011(7):149?151.
[15] 陈昊.基于OpenMP的并行蚁群算法求解协同空战火力分配[J].传感器与微系统,2013(1):20?24.
[16] 白洪涛,欧阳丹彤,李熙铭,等.基于GPU的共享信息素矩阵多蚁群算法[J].吉林大学学报:工学版,2011(6):1678?1683.
[17] 李建明,胡祥培,庞占龙,等.一种基于GPU加速的细粒度并行蚁群算法[J].控制与决策,2009,24(8):1132?1136.
随便看

 

科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。

 

Copyright © 2004-2023 puapp.net All Rights Reserved
更新时间:2025/3/10 19:09:55