当前位置: 首页 > 专利查询>武汉大学专利>正文

一种遗传算法的软硬件协同工作实现方法技术

技术编号:3921049 阅读:514 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供了一个遗传算法的软硬件协同工作实现方法。遗传算法是一种典型的演化算法,但是由于二进制编码的特点,利用软件实现的遗传算法求解实际问题的效率较低。硬件FPGA虽然可以提高求解的速度,但是纯硬件实现一旦实现,硬件结构不易改变,缺乏灵活性。本发明专利技术针对软件和硬件实现存在不足,提出了遗传算法的软硬件协同设计方法,它不仅可以提升运算速度,而且提高遗传算法IP核的通用性,只需在软件层改写适应值函数,就可实现类似问题的求解。软硬件协同的工作平台与纯软件,纯硬件实现相比,运用软硬件协同方法求解具有较高的效率和广泛的通用性。

【技术实现步骤摘要】

本专利技术涉及智能计算与软硬件协同技术,特别涉及一种使用软硬件协同来处理遗传算法的技术。
技术介绍
遗传算法(Genetic Algorithm, GA)是Holland在1975年在《Ad即tation in Natural andArtificial System》中首次提出的一种概率搜索算法,遗传算法通过有组织 地然而是随机地信息交换来重新结合那些适应性好的串,在每一代中,利用上一代串中适 应性好的位和段来生成一个新的串的群体,作为额外添加,偶尔也要在串结构中尝试用新 的位和段来替代原来的部分。类似于自然进化,遗传算法通过作用于染色体上的基因,寻找 好的染色体来求解问题。由于它不受搜索空间限制性假设条件的约束,不必要求诸如连续 性、可微性和单峰性等假设,以及其固有的并行性,因此作为一种稳健、高效的优化算法已 被广泛应用于各个领域。 而目前的遗传算法都是由纯硬件或者纯软件实现,由软件实现,算法的运算效率 低下。而由纯硬件实现,只能针对某个问题进行求解,做不到通用性。这两种实现方法都有 其各自的缺陷,目前急需一种可行的综合性技术方法能够改善上述技术的缺陷。 软硬件协同设计(Hardware/Software Co-designing)的思想是在硬件和软件设 计过程中尽最大限度的利用其协同作用来满足系统的要求。自从软硬件协同思想提出以 后,一直备受国内外研究者的关注,关于软硬件协同设计领域的研究也十分活跃。到目前为 止,国内外学者已经在此方面做过很多研究,比如在遥感影像的实时效应,音频编码算法, Lattice译码算法,数字电路仿真,系统的模拟、仿真和调试等一些方面都使用过软硬件协 同设计方法,并且获得比使用传统的设计方法更好的效果。因此利用软硬件协同设计方法 不仅可以提高求解问题的效率,同时可以扩宽其应用领域,进一步推动软硬件协同设计的 发展等。
技术实现思路
本专利技术的目的在于,利用软硬件协同工作的方式提供一种遗传算法的实现方法, 使算法的计算性能得到显著的提升,并且增加计算的通用性。 本专利技术所提供遗传算法的软硬件协同工作实现方法,基于FPGA平台实现以下各 部分, (1)在硬件层面,建立硬件遗传算法IP核, (2)在软件层面建立软件协同系统,用于计算适应值与随机数并向硬件遗传算法 IP核提供, (3)建立硬件遗传算法IP核与软件协同系统之间信息交互的协议,使硬件层面与 软件层面之间的信息交互达到同步状态; 所述软件协同系统包括以下模块,3 适应值计算模块,该模块根据实际问题提供相应的适应值函数,通过适应值函数 实现个体适应值的计算; 随机数模块,该模块根据硬件需求产生一个随机数; 所述硬件遗传算法IP核包括以下模块, 总控模块,该模块提供各个模块之间调用的控制信号,从而控制整个遗传算法的 流程以及数据的流向,协调各个模块在总控模块的控制信号下工作; 初始化模块,该模块随机地产生演化所需的初始种群,为遗传算法提供初始种 群; 交叉选择模块,该模块实现精英选择和交叉操作的相结合,即由随机数模块提供 的随机数选择两个个体作为父代个体,确定交叉点位置,进行单点交叉操作产生两个新个 体,然后根据适应值计算模块提供的适应值,从新个体和父代个体中选择两个适应值最高 的个体替换父代; 变异选择模块,该模块实现精英选择和变异操作的相结合,即由随机数模块提供 的随机数选择一个个体作为父代个体,确定变异点位置,进行单点变异操作产生一个新个 体,然后根据适应值计算模块提供的适应值,从新个体和父代个体中选择一个适应值最高 的个体替换父代,; 评价模块,该模块寻找出新一代种群中具有最优适应值的个体,将具有最优适应 值的个体更新到存储种群的片上内存上;并判断是否已达终止条件,若满足终止条件则停 止遗传算法; 片上内存模块,该模块组织两个片上内存,分别用于存储种群和适应值; 个体控制模块,该模块是一个四选一模块,用于判断初始化模块、交叉选择模块、变异选择模块和评价模块中是哪个模块要从存储种群的片上内存中进行个体读取和存储; 适应值控制模块,该模块是一个四选一模块,用于判断初始化模块、交叉选择模 块、变异选择模块和评价模块中是哪个模块要从存储适应值的片上内存中进行适应值读取 和存储。 而且,评价模块判断是否已达终止条件时,所述终止条件为最优适应值在100代 内不发生变化。 而且,所述新一代种群是经过交叉选择模块进行精英选择和交叉操作,然后经过 变异选择模块进行精英选择和变异操作所得结果。 本专利技术将遗传算法中适合于硬件处理的模块如杂交、变异等使用硬件编程实现, 将遗传算法中适应值评价这个通用性模块用软件来处理。它不仅可以提升运算速度,而且 提高遗传算法IP核的通用性,只需在软件层改写适应值函数,就可实现类似问题的求解。 软硬件协同的工作平台与纯软件或纯硬件实现相比,运用软硬件协同方法求解具有较高的 效率和广泛的通用性.附图说明 图l为本专利技术的原理图; 图2为本专利技术实施例的有限状态机 图3为本专利技术实施例的软硬件交互协议示意图。具体实施例方式下面结合附图与实施例对本专利技术进行详细描述 本实施例是在Xilinx公司提供的XC2VP30 FPGA开发板上实现,使用PowerPC ( —种精简指令集架构的中央处理器)作为处理器,使用逻辑门电路构成硬件IP核,使用Xilinx BlockMemory Ge證ator作为存储器。FPGA平台有两条总线,PLB(Processor LocalBus,处理器局部总线)和0PB (On-Chip Peripheral Bus,片上外设总线)。0PB总线连接一些低速和低性能设备,它不直接连接到处理器内核,而是通过总线桥与PLB总线上的设备(如PowerPC和片上内存)联系。具体实施时,软件层面的随机数模块和适应值计算模块由本领域技术人员采用软件模块化方案设计后安装到PowerPC中即可;硬件层面的各模块可根据工作原理采用Verilog语言描述,编译成逻辑门电路后作为硬件IP核接入0PB总线即可。在XC2VP30 FPGA开发板上建硬件IP核的时候,FPGA平台提供寄存器以便在工作流程中软硬件直接进行交互时使用。由于片上内存只能硬件访问,实施例设定了 24个寄存器,记为寄存器0、2、3. 23。 如图1所示,本专利技术的工作状态是由总控模块来实现各模块之间的调控的。如软件层面的随机数模块和适应值计算模块,硬件层面的初始化模块、交叉选择模块、变异选择模块、评价模块都和总控模块进行着信息的交互。因此总控模块是整个设计的核心部分,就好比计算机内部的CPU,它控制着整个设计的流程以及数据的流向,各模块也都是在总控模块的控制信号下有序地工作。对本IP核的设计而言,整个系统的工作状态都体现在总控模块上。各个子模块通过总控模块的控制信号进行着信息的交互。另外初始化模块、交叉选择模块、变异选择模块、评价模块均是通过适应值控制模块与个体控制模块来对片上内存进行访问。为便于实施起见,下面详细说明实施例中各个模块以供参考 总控模块总控模块由一个状态机构成,状态分别为IDLE、 INIT、 CR0SS、 MUT、VALUE和ST0P。总控模块通过状态机的方式来控制其他模块。例如进入INIT状态则激活初始化模块进本文档来自技高网
...

【技术保护点】
一种遗传算法的软硬件协同工作实现方法,其特征在于:基于FPGA平台实现以下各部分,(1)在硬件层面,建立硬件遗传算法IP核,(2)在软件层面建立软件协同系统,用于计算适应值与随机数并向硬件遗传算法IP核提供,(3)建立硬件遗传算法IP核与软件协同系统之间信息交互的协议,使硬件层面与软件层面之间的信息交互达到同步状态;所述软件协同系统包括以下模块,适应值计算模块,该模块根据实际问题提供相应的适应值函数,通过适应值函数实现个体适应值的计算;随机数模块,该模块根据硬件需求产生一个随机数;所述硬件遗传算法IP核包括以下模块,总控模块,该模块提供各个模块之间调用的控制信号,从而控制整个遗传算法的流程以及数据的流向,协调各个模块在总控模块的控制信号下工作;初始化模块,该模块随机地产生演化所需的初始种群,为遗传算法提供初始种群;交叉选择模块,该模块实现精英选择和交叉操作的相结合,即由随机数模块提供的随机数选择两个个体作为父代个体,确定交叉点位置,进行单点交叉操作产生两个新个体,然后根据适应值计算模块提供的适应值,从新个体和父代个体中选择两个适应值最高的个体替换父代;变异选择模块,该模块实现精英选择和变异操作的相结合,即由随机数模块提供的随机数选择一个个体作为父代个体,确定变异点位置,进行单点变异操作产生一个新个体,然后根据适应值计算模块提供的适应值,从新个体和父代个体中选择一个适应值最高的个体替换父代;评价模块,该模块寻找出新一代种群中具有最优适应值的个体,将具有最优适应值的个体更新到存储种群的片上内存上;并判断是否已达终止条件,若满足终止条件则停止遗传算法;片上内存模块,该模块组织两个片上内存,分别用于存储种群和适应值;个体控制模块,该模块是一个四选一模块,用于判断初始化模块、交叉选择模块、变异选择模块和评价模块中是哪个模块要从存储种群的片上内存中进行个体读取和存储;适应值控制模块,该模块是一个四选一模块,用于判断初始化模块、交叉选择模块、变异选择模块和评价模块中是哪个模块要从存储适应值的片上内存中进行适应值读取和存储。...

【技术特征摘要】

【专利技术属性】
技术研发人员:刘海峰李元香王峰王珑雷新柳林
申请(专利权)人:武汉大学
类型:发明
国别省市:83[中国|武汉]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1