[发明专利]一种基于GPU加速的蚁群算法优化方法在审
申请号: | 201410147893.2 | 申请日: | 2014-04-14 |
公开(公告)号: | CN103955443A | 公开(公告)日: | 2014-07-30 |
发明(设计)人: | 何发智;周毅;侯能 | 申请(专利权)人: | 武汉大学 |
主分类号: | G06F15/16 | 分类号: | G06F15/16;G06N3/00 |
代理公司: | 武汉科皓知识产权代理事务所(特殊普通合伙) 42222 | 代理人: | 张火春 |
地址: | 430072 湖*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 gpu 加速 算法 优化 方法 | ||
1.一种基于GPU加速的蚁群算法优化方法,其特征在于,包括以下步骤:
步骤1:初始化TSP问题定义数据,初始化蚁群参数;
步骤2:定义两个GPU内核,所述的两个GPU内核为路径创建内核和信息素更新内核,并初始化所述的两个GPU内核;
步骤3:路径创建内核将m只蚂蚁分别对应到GPU的m个工作组,一个工作组内设置了n个工作项,每个工作组内的n个工作项并行读取计算参数到工作组本地内存,m只蚂蚁并行进行路径创建,每只蚂蚁的路径创建又由工作组的n个工作项并行计算;
步骤4:信息素更新内核第一次执行设置为n*n个工作项,并行对信息素数组进行挥发操作,第二次执行设置为与路径创建内核相同的工作组和工作项参数,通过原子操作方法并行更新所有蚂蚁走过路径的信息素;
步骤5:重复执行步骤3和4直到达到设定的结束条件,GPU输出计算结果。
2.根据权利要求1所述的基于GPU加速的蚁群算法优化方法,其特征在于:步骤3的具体实现包括以下子步骤:
步骤3.1:每个工作项由一个二维的编号(bid,tid)表示,其中bid为工作组编号,tid为工作组内的工作项编号;
步骤3.2:每个工作组内工作项并行读取其对应蚂蚁的n条数据,其中禁忌表、城市是否可访问数组读入到工作组本地内存,城市距离和信息素数组读入GPU全局内存;
步骤3.3:每个工作项按照式一并行计算转移概率,计算结果保存到该工作组的本地内存数组P[n]={p1,p2,..,pn},
(式一)
式中k是蚂蚁的编号,τi,j为城市i到j之间路径上的信息素值,ηi,j=1/di,j为启发式值,α和β是可配置参数,决定了信息素和启发式值对转移概率的影响,是蚂蚁k在i城市时可访问的城市;
步骤3.4:采用并行轮盘赌算法进行转移城市选择;
步骤3.5:将转移的城市记录到蚂蚁对应的禁忌表数组,并且设置城市是否可访问数组中该城市值为0;
步骤3.6:重复执行所述的步骤3.2至步骤3.5,直到蚂蚁走过所有城市;
步骤3.7:采用并行归约的方法并行计算蚂蚁走过路径的长度。
3.根据权利要求2所述的基于GPU加速的蚁群算法优化方法,其特征在于:步骤3.4中所述的并行轮盘赌算法,其具体实现包括以下子步骤:
步骤3.4.1:并行计算转移概率的前缀和;
步骤3.4.2:并行计算随机值与转移概率之差的绝对值;
步骤3.4.3:采用并行归约的方法寻找绝对值最小的城市。
4.根据权利要求2所述的基于GPU加速的蚁群算法优化方法,其特征在于:步骤4的具体实现包括以下子步骤:
步骤4.1:如果传递的功能参数编号为0,则按照下述式二并行计算信息素挥发后的值
(式二)
其中ρ为小于1的正数,代表信息素挥发率,L为路径的集合;
步骤4.2:如果传递的功能参数编号为1,更新蚂蚁走过路径上的信息素,其计算公式如下:
(式三)
其中
其中LK为蚂蚁k走过路径的总长度,Q为常量;采用了浮点数原子加法操作,用来保证多个蚂蚁同时更新一条路径上的信息素时,数据不会被覆盖,而是正确累加;
步骤4.3:从m只蚂蚁的路径长度中采用并行归约的方法寻找出路径最短的那只,然后把此蚂蚁走过的路径长度和禁忌表中记录的路径写进GPU全局内存。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉大学,未经武汉大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410147893.2/1.html,转载请声明来源钻瓜专利网。
- 上一篇:套轴式行星齿轮增速抬钓竿
- 下一篇:一种强化局部耐磨的链条