发明名称 |
一种遗传算法的软硬件协同工作实现方法 |
摘要 |
本发明提供了一个遗传算法的软硬件协同工作实现方法。遗传算法是一种典型的演化算法,但是由于二进制编码的特点,利用软件实现的遗传算法求解实际问题的效率较低。硬件FPGA虽然可以提高求解的速度,但是纯硬件实现一旦实现,硬件结构不易改变,缺乏灵活性。本发明针对软件和硬件实现存在不足,提出了遗传算法的软硬件协同设计方法,它不仅可以提升运算速度,而且提高遗传算法IP核的通用性,只需在软件层改写适应值函数,就可实现类似问题的求解。软硬件协同的工作平台与纯软件,纯硬件实现相比,运用软硬件协同方法求解具有较高的效率和广泛的通用性。 |
申请公布号 |
CN101789044A |
申请公布日期 |
2010.07.28 |
申请号 |
CN201010103573.9 |
申请日期 |
2010.01.27 |
申请人 |
武汉大学 |
发明人 |
刘海峰;李元香;王峰;王珑;雷新;柳林 |
分类号 |
G06F17/50(2006.01)I |
主分类号 |
G06F17/50(2006.01)I |
代理机构 |
武汉科皓知识产权代理事务所(特殊普通合伙) 42222 |
代理人 |
张火春 |
主权项 |
一种遗传算法的软硬件协同工作实现方法,其特征在于:基于FPGA平台实现以下各部分,(1)在硬件层面,建立硬件遗传算法IP核,(2)在软件层面建立软件协同系统,用于计算适应值与随机数并向硬件遗传算法IP核提供,(3)建立硬件遗传算法IP核与软件协同系统之间信息交互的协议,使硬件层面与软件层面之间的信息交互达到同步状态;所述软件协同系统包括以下模块,适应值计算模块,该模块根据实际问题提供相应的适应值函数,通过适应值函数实现个体适应值的计算;随机数模块,该模块根据硬件需求产生一个随机数;所述硬件遗传算法IP核包括以下模块,总控模块,该模块提供各个模块之间调用的控制信号,从而控制整个遗传算法的流程以及数据的流向,协调各个模块在总控模块的控制信号下工作;初始化模块,该模块随机地产生演化所需的初始种群,为遗传算法提供初始种群;交叉选择模块,该模块实现精英选择和交叉操作的相结合,即由随机数模块提供的随机数选择两个个体作为父代个体,确定交叉点位置,进行单点交叉操作产生两个新个体,然后根据适应值计算模块提供的适应值,从新个体和父代个体中选择两个适应值最高的个体替换父代;变异选择模块,该模块实现精英选择和变异操作的相结合,即由随机数模块提供的随机数选择一个个体作为父代个体,确定变异点位置,进行单点变异操作产生一个新个体,然后根据适应值计算模块提供的适应值,从新个体和父代个体中选择一个适应值最高的个体替换父代,;评价模块,该模块寻找出新一代种群中具有最优适应值的个体,将具有最优适应值的个体更新到存储种群的片上内存上;并判断是否已达终止条件,若满足终止条件则停止遗传算法;片上内存模块,该模块组织两个片上内存,分别用于存储种群和适应值;个体控制模块,该模块是一个四选一模块,用于判断初始化模块、交叉选择模块、变异选择模块和评价模块中是哪个模块要从存储种群的片上内存中进行个体读取和存储;适应值控制模块,该模块是一个四选一模块,用于判断初始化模块、交叉选择模块、变异选择模块和评价模块中是哪个模块要从存储适应值的片上内存中进行适应值读取和存储。 |
地址 |
430072 湖北省武汉市武昌珞珈山 |