[发明专利]基于FPGA的粒子群算法加速方法有效
申请号: | 201810915413.0 | 申请日: | 2018-08-13 |
公开(公告)号: | CN109086537B | 公开(公告)日: | 2023-05-05 |
发明(设计)人: | 黄岚;李大琳;王康平;王岩;张睿;王喆;白天 | 申请(专利权)人: | 吉林大学 |
主分类号: | G06F30/27 | 分类号: | G06F30/27;G06N3/006 |
代理公司: | 北京轻创知识产权代理有限公司 11212 | 代理人: | 谈杰 |
地址: | 130000 吉*** | 国省代码: | 吉林;22 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 fpga 粒子 算法 加速 方法 | ||
1.一种基于FPGA的粒子群算法加速方法,其特征在于,包括以下步骤:
将所要求解的粒子群数据分成若干个可并行计算的数据组,组间粒子数据则流水计算;
在每次迭代过程中,各数据组的数据独立并行计算,得到每个数据组的组内最优位置;再根据各个数据组的组内最优位置得到本次迭代的粒子群的全局最优解;
进行下一次迭代,直到满足预定的迭代终止条件,获得预设满足要求的最优解;所述各数据组的数据独立并行计算,得到每个数据组的组内最优位置,包括以下步骤:
对各个粒子进行初始化;
根据上次迭代得到的组内最优位置和各粒子当前的位置更新粒子位置;
计算各个粒子的适应度;
对各个粒子间进行信息交互,得到本次迭代过程中的组内最优位置;
所述对各个粒子进行初始化,具体为:
根据实际应用场景和需要求解的适应度函数决定的解空间,对各粒子进行随机初始化,得到各个粒子在求解空间内的随机位置;所述根据上次迭代得到的组内最优位置和各粒子当前的位置更新粒子位置,具体为:
使用位置更新函数和前一轮位置更新得到的全局最优位置信息,计算得到本轮迭代中粒子新的位置;所述计算各个粒子的适应度,具体为:
将更新后的新的粒子位置信息带入适应度函数,获得粒子的本轮的适应度值,然后与上一轮获得的适应度值进行比较,将二者中更优的作为本轮粒子更新的最终适应度值,传递到下一轮迭代;并且,将更优的适应度对应的粒子位置作为本轮迭代的粒子的最优位置保存并传递到下一轮迭代;所述对各个粒子间进行信息交互,得到本次迭代过程中的组内最优位置,具体为:
将本组的各粒子的适应度值进行比较,适应度最优的粒子的位置作为本轮迭代的组内最优位置;
设计分组粒子流水同步缓存器,所述粒子群带宽缓冲器使用BRAM向量结构;所述每个数据组存放在FPGA中的一个BRAM中;所述根据各个数据组的组内最优位置得到粒子群的全局最优解,具体为:
将各组的最优位置所对应的适应度值进行比较,适应度最优的粒子的位置作为本轮迭代的全局最优位置;
加速器把粒子数据按维度展开,每个维度的数据放入一块BRAM中,单个粒子的数据存储需要D块BRAM,BRAM的带宽扩展为原来的D倍,同时,还将BRAM以向量模型进行设计,单块BRAM的每个存储单元存储一组粒子的一个维度,对于每个BRAM每个时钟进行一次读写可以读出一组数据,满足高并发流水的RAM带宽需求。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于吉林大学,未经吉林大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810915413.0/1.html,转载请声明来源钻瓜专利网。