[发明专利]一种基于GPU加速的蚁群算法优化方法在审
申请号: | 201410147893.2 | 申请日: | 2014-04-14 |
公开(公告)号: | CN103955443A | 公开(公告)日: | 2014-07-30 |
发明(设计)人: | 何发智;周毅;侯能 | 申请(专利权)人: | 武汉大学 |
主分类号: | G06F15/16 | 分类号: | G06F15/16;G06N3/00 |
代理公司: | 武汉科皓知识产权代理事务所(特殊普通合伙) 42222 | 代理人: | 张火春 |
地址: | 430072 湖*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 gpu 加速 算法 优化 方法 | ||
技术领域
本发明属于计算机处理技术领域,涉及一种基于图形处理单元(GPU,Graphics Processing Unit)加速的蚁群算法优化方法。
背景技术
蚁群算法是一种基于种群的启发式搜索算法,常用于求解优化问题的近似解。此类优化问题一般都可以转换为旅行商问题(TSP,Travel Salesman Problem)。目前TSP问题已经被证明是NP难的问题,它在运筹学和计算机科学理论中是一个非常重要的问题。蚁群算法最早应用于解决TSP问题。TSP问题的目标是在一个有向带权完全图中寻找最小权值的汉密尔顿回路,目前蚁群优化算法已应用于许多组合优化问题,包括蛋白质折叠或路由车辆的二次分配问题,很多派生的方法已经应用于实变量动力学问题,随机问题,多目标并行的实现。
GPU是一种专用的图形渲染设备。最初GPU是专用于图形处理的硬件,然而自从2006年以来,越来越多的研究人员研究了利用GPU进行通用计算的GPGPU领域,各大厂商也推出了专用的GPGPU语言,比如CUDA、OPENCL等。
发明内容
本发明的目的是优化原有基于CPU的计算方法,使之支持并行计算,设计出一套算法利用图像处理器(GPU)加速执行,使得蚁群算法在单个主机上求解TSP问题的计算时间最多缩短为原有方法的1/23。
本发明所采用的技术方案是:一种基于GPU加速的蚁群算法优化方法,其特征在于,包括以下步骤:
步骤1:初始化TSP问题定义数据,初始化蚁群参数;
步骤2:定义两个GPU内核,所述的两个GPU内核为路径创建内核和信息素更新内核,并初始化所述的两个GPU内核;
步骤3:路径创建内核将m只蚂蚁分别对应到GPU的m个工作组,一个工作组内设置了n个工作项,每个工作组内的n个工作项并行读取计算参数到工作组本地内存,m只蚂蚁并行进行路径创建,每只蚂蚁的路径创建又由工作组的n个工作项并行计算;
步骤4:信息素更新内核第一次执行设置为n*n个工作项,并行对信息素数组进行挥发操作,第二次执行设置为与路径创建内核相同的工作组和工作项参数,通过原子操作方法并行更新所有蚂蚁走过路径的信息素;
步骤5:重复执行步骤3和4直到达到设定的结束条件,GPU输出计算结果。
作为优选,步骤3的具体实现包括以下子步骤:
步骤3.1:每个工作项由一个二维的编号(bid,tid)表示,其中bid为工作组编号,tid为工作组内的工作项编号;
步骤3.2:每个工作组内工作项并行读取其对应蚂蚁的n条数据,其中禁忌表、城市是否可访问数组读入到工作组本地内存,城市距离和信息素数组读入GPU全局内存;
步骤3.3:每个工作项按照式一并行计算转移概率,计算结果保存到该工作组的本地内存数组P[n]={p1,p2,..,pn},
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉大学,未经武汉大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410147893.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:套轴式行星齿轮增速抬钓竿
- 下一篇:一种强化局部耐磨的链条