[发明专利]一种基于FPGA异构运行遗传算法的方法及系统在审
| 申请号: | 201710575712.X | 申请日: | 2017-07-14 |
| 公开(公告)号: | CN107301459A | 公开(公告)日: | 2017-10-27 |
| 发明(设计)人: | 张新 | 申请(专利权)人: | 郑州云海信息技术有限公司 |
| 主分类号: | G06N3/12 | 分类号: | G06N3/12 |
| 代理公司: | 北京集佳知识产权代理有限公司11227 | 代理人: | 罗满 |
| 地址: | 450018 河南省郑州市*** | 国省代码: | 河南;41 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 fpga 运行 遗传 算法 方法 系统 | ||
技术领域
本发明涉及遗传算法领域,特别是涉及一种基于FPGA异构运行遗传算法的方法及系统。
背景技术
遗传算法是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。随着遗传算法计算性能的提高,目前在机器学习、信号处理、自动控制等领域也有了广泛的应用,尤其可以用来训练神经网络。
然而随着科技的发展,我们面对的问题越来越复杂,处理的数据量越来越大,逐步进入大数据的时代,串行算法在处理复杂问题以及数据量较大的问题时往往会出现收敛速度慢、结果不准确等问题,这些问题严重阻碍了遗传算法的应用,研究并行运行遗传算法迫在眉睫。
目前来说,现有的并行方案都是基于多核CPU架构的,比较常用的方案有粗粒度模型,每个线程计算一个种群,这种算法的并行度和线性数相关,在CPU核数较少的情况下并行效率不高,另一种比较常用的方案是细粒度模型,只运算一个种群,每个线程计算一个个体,并行效率高,但是需要众核架构的集群,所以运行的成本也比较高。
发明内容
本发明的目的是提供一种基于FPGA异构运行遗传算法的方法,解决了遗传算法运算并行度不高的问题,提高了遗传算法收敛算法的效率,降低了运算的成本,拓展了遗传算法的应用场景,本发明的另一目的是提供了一种基于FPGA异构运行遗传算法的系统。
为解决上述技术问题,本发明提供一种基于FPGA异构运行遗传算法的方法,该方法包括:
FPGA设备获取待执行遗传算法运算的多个种群数据;所述FPGA设备对所述种群中的每个个体进行适应度的评价,得到评价结果;主机根据所述评价结果,对各个所述种群中的所述个体执行选择运算,以便所述种群中各个所述个体的适应度达到预设条件,且各个所述种群具有相同的最优个体;在执行选择运算后,所述FPGA设备对各个所述种群内各个所述个体执行交叉运算和/或变异运算的操作,其中各个种群之间并行执行所述操作,且所述种群内各个所述个体之间并行执行所述操作;所述主机根据所述操作结果获得收敛的最优个体。
其中,所述FPGA设备对所述种群中的每个个体进行适应度的评价包括:
各个所述种群之间并行执行适应度的评价的操作,且所述种群内各个所述个体之间并行执行适应度评价的操作。
其中,所述主机根据所述操作结果获得收敛的最优个体包括:
所述主机根据所述操作结果选出各个所述种群中的最优个体;判断所述最优个体是否收敛,如果否,则再次执行所述FPGA设备对各个所述种群内各个所述个体进行交叉运算和/或变异运算的操作,其中各个种群之间并行执行所述操作,且所述种群内各个所述个体之间并行执行所述操作,直到判断所述最优个体收敛。
其中,判断所述最优个体是否收敛还包括:
如果判断所述最优个体收敛,则算法停止。
其中,所述FPGA设备获取多个待执行遗传算法运算的多个种群数据包括:
所述主机通过PCI-e接口把数据传给DDR内存,所述FPGA设备通过DDR读取多个种群数据。
本发明还提供了一种基于FPGA异构运行遗传算法的系统,包括:
主机和FPGA设备;所述主机,用于主机根据评价结果,对各个所述种群中的所述个体执行选择运算,以便所述种群中各个所述个体的适应度达到预设条件,且各个所述种群具有相同的最优个体;所述主机根据所述操作结果获得收敛的最优个体;
所述FPGA设备和所述主机相连接,用于FPGA设备获取待执行遗传算法运算的多个种群数据;所述FPGA设备对所述种群中的每个个体进行适应度的评价;在执行选择运算后,所述FPGA设备对各个所述种群内各个所述个体执行交叉运算和/或变异运算的操作,其中各个种群之间并行执行所述操作,且所述种群内各个所述个体之间并行执行所述操作。
其中,所述FPGA设备用于各个所述种群之间并行执行适应度的评价的操作,且各个所述种群内各个所述个体之间并行执行适应度评价的操作。
其中,所述主机,用于所述主机根据所述操作结果选出各个所述种群中的最优个体;判断所述最优个体是否收敛,如果否,则再次执行所述FPGA设备对各个所述种群内各个所述个体进行交叉运算和/或变异运算的操作,其中各个种群之间并行执行所述操作,且所述种群内各个所述个体之间并行执行所述操作,直到判断所述最优个体收敛。
其中,所述主机还用于如果判断所述最优个体收敛,则算法停止。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于郑州云海信息技术有限公司,未经郑州云海信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710575712.X/2.html,转载请声明来源钻瓜专利网。





