一种基于改进头脑风暴算法的软硬件划分方法与流程

文档序号:15163844发布日期:2018-08-14 17:11阅读:182来源:国知局

本发明涉及一种软硬件划分方法。特别是涉及一种基于改进头脑风暴算法的软硬件划分方法。



背景技术:

1、现有技术的软硬件划分问题

一个任务集由诸多子任务组成,软硬件划分就是将这些子任务在软件处理单元和硬件处理单元上进行分配,不同的分配方案会达到不同的任务执行效果,因此,软硬件划分的目标就是要找到最优的软硬件划分方案。作为一个最优化问题,待划分的任务可以用g来表示。g=<v,e>,其中v={v0,v1,…,vn}是待划分任务的集合,任务规节点数n,vi表示第i个任务节点,vi=<vtype(i),ts(i),th(i),c(i,j),ah(i),…>,其中vtype(i)={sw,hw}代表节点vk有软件sw和硬件hw两种实现方式,ts代表任务节点的软件执行时间,th代表任务节点的硬件执行时间,ah(i)表示任务节点的硬件面积需求。c(i,j)表示vi和vj之间的通信时间。在大多数研究中,通常将所有任务节点的执行时间以及各节点之间的通信时间之和t(v)作为寻优目标,以硬件面积和asum作为约束条件,则其数学模型描述如下式所示,其中arealimit代表其硬件面积约束的大小。

min:

subjectto:

针对单软件+单硬件系统平台,n个任务节点的软硬件划分方案可以用一个0,1组成的n维向量表示。其0表示任务节点用软件实现,1表示任务节点用硬件实现。如方案[0,1,1,0...]表示任务节点1用软件实现,任务节点2用硬件实现,任务节点3用硬件实现,任务节点4用软件实现......

2、原始头脑风暴算法在软硬件划分上的应用

头脑风暴算法(brainstormoptimization,bso)是一种新型群体智能优化算法。

将头脑风暴算法映射到软硬件划分方案中,完成算法的初始化过程。确定个体总数、聚类个数、问题的维数(将复杂的系统分成多少个子任务)、最大迭代次数。每次迭代主要有两个部分,分别为聚类和更新。在聚类步骤中,基于k-means算法将n个个体聚成m个聚类,将每个类中的个体按照适应度值排序,选择适应度最小的个体作为新的聚类中心。在更新步骤中,个体依次更新,其中有四种产生新个体的办法:随机选择一个聚类并将随机信息添加到聚类中心;随机选择一个聚类并将随机信息添加到一个从该聚类中随机选择的个体;随机选择两个聚类并将随机信息添加到它们聚类中心的组合中;随机选择两个聚类并将随机信息添加到从这两个聚类中各随机选择的两个个体的组合中。当一个个体被更新时,应该根据预先设置的概率选择一种方法来生成一个新的个体,并根据其适应度值来决定是否用新的个体替换原有的个体。按照这种方式进行反复循环,直到迭代达到算法终止条件时,输出当前种群中最优个体作为最佳软硬件划分方案。



技术实现要素:

本发明所要解决的技术问题是,提供一种能够提升用群体智能算法求解软硬件划分问题时的求解质量,提升软硬件划分效果的基于改进头脑风暴算法的软硬件划分方法。

本发明所采用的技术方案是:一种基于改进头脑风暴算法的软硬件划分方法,包括如下步骤:

1)初始化参数,包括初始化个体的种群规模n,聚类数m,m<n,任务节点数l,硬件面积约束(arealimit)参数,算法的最大迭代次数max_iteration,算法的终止条件为连续t次无效迭代,t<max_iteration;

2)初始化聚类中心,是根据聚类数m,在硬件面积约束内划分m个等距离的坐标c1,c2,...,cm作为聚类中心;

3)迭代更新开始,计算n个个体所对应的适应度值,并按照适应度值由小到大对个体进行排序,排序第一的为全局最优个体;

4)从排序后的第一个个体开始,依次计算每个个体到每个聚类中心c1,c2,...,cm的距离dis,根据计算结果将个体分配到距离最近的那个聚类中心所在的未饱和聚类内,每个聚类中个体数量必须相同,当聚类中个体数量为n/m时,该聚类便饱和了,未分配的个体需要聚集到离它们最近的其它未饱和的聚类中,当最后一个个体聚类完成后,进入下一步骤;

5)对每一个聚类中的最优个体进行更新,即给最优个体添加随机信息inf以生成更新后的最优个体xnew1,更新后最优的个体xnew1如果满足硬件面积约束,且比更新前的个体的适应度值更优,则用更新后的最优个体xnew1代替更新前的最优个体构成新的最优个体,否则,保留更新前的最优个体

6)从第k聚类中随机选择一个个体随机选择的个体向聚类中最优个体移动随机长度,生成一个新的个体xnew2,

式中,表示聚类中最优个体,随机选择的个体更新后得到的个体xnew2,如果满足硬件面积约束且比本次更新前的适应度值优,则用本次更新后的个体xnew2代替随机选择的个体并直接进入步骤9),否则,进入步骤7);

7)随机选择的个体向全局最优个体移动随机长度,按如下公式进行更新:

式中,表示全局最优个体,随机选择的个体更新后得到的个体xnew3,如果满足硬件面积约束且比随机选择的个体的适应度值优,则用更新后的个体xnew3代替随机选择的个体并直接进入步骤9),否则,进入步骤8);

8)随机生成一个新的满足硬件面积约束条件的个体代替该随机选择的个体

9)一次迭代更新完成,迭代次数iteration加1,判断是否达到最大迭代次数max_iteration以及是否达到算法终止条件,若是,则进入步骤10),否则,回到步骤3)开始下一轮迭代;

10)输出最优个体作为最佳软硬件划分方案。

步骤2)是根据聚类数m,在硬件面积约束内划分m个等距离的坐标c1,c2,...,cm作为聚类中心。

步骤4)中所述的距离dis是采用如下公式:

其中,i表示在第i个子任务中,xj(i)表示第j个个体,ck(i)表示第k个聚类中心;。

步骤5)所述的随机信息inf计算公式如下:

其中,inf表示随机信息,k表示聚类序号,n(μ,σ)是高斯函数,是更新前的个体,xnew1是更新后的个体,ξ是一个权重系数,数学表达式如下:

ξ=logsig((0.5*max_iteration-current_iteration))/k*rand(0,1)(3)

其中,max_iteration表示最大迭代数,current_iteration表示当前迭代数。

本发明的一种基于改进头脑风暴算法的软硬件划分方法,通过聚类方式和个体更新方式的改进,有效的提升了算法每次迭代的效率、避免早熟以及全局寻优能力,使得改进后的算法求解质量以及收敛速度相比于原始算法得到了较好的提升。相对于原始的头脑风暴算法,本发明的方法在求解软硬件划分问题时可以获得质量更高的解。从而提升用群体智能算法求解软硬件划分问题时的求解质量,提升软硬件划分效果,推动智能计算在复杂嵌入式系统开发方面的应用。

附图说明

图1是现有技术的聚类方式示意图;

图2是本发明的聚类方式示意图。

具体实施方式

下面结合实施例和附图对本发明的一种基于改进头脑风暴算法的软硬件划分方法做出详细说明。

本发明的一种基于改进头脑风暴算法的软硬件划分方法,包括如下步骤:

1)初始化参数,包括初始化个体的种群规模n,聚类数m,m<n,任务节点数l,硬件面积约束(arealimit)参数,算法的最大迭代次数max_iteration,算法的终止条件为连续t次无效迭代,t<max_iteration;

2)初始化聚类中心,是根据聚类数m,在硬件面积约束内划分m个等距离的坐标c1,c2,...,cm作为聚类中心;

3)迭代更新开始,计算n个个体所对应的适应度值,并按照适应度值由小到大对个体进行排序,排序第一的为全局最优个体;

4)从排序后的第一个个体开始,依次计算每个个体到每个聚类中心c1,c2,...,cm的距离dis,根据计算结果将个体分配到距离最近的那个聚类中心所在的未饱和聚类内,每个聚类中个体数量必须相同,当聚类中个体数量为n/m时,该聚类便饱和了,未分配的个体需要聚集到离它们最近的其它未饱和的聚类中,当最后一个个体聚类完成后,进入下一步骤;

所述的距离dis是采用如下公式:

其中,i表示在第i个子任务中,xj(i)表示第j个个体,ck(i)表示第k个聚类中心;

5)对每一个聚类中的最优个体进行更新,即给最优个体添加随机信息inf以生成更新后的最优的个体xnew1,更新后的最优的个体xnew1如果满足硬件面积约束,且比更新前的个体的适应度值更优,则用更新后的最优的个体xnew1替更新前的个体构成新的最优个体,否则,保留更新前的最优个体

所述的随机信息inf计算公式如下:

其中,inf表示随机信息,k表示聚类序号,n(μ,σ)是高斯函数,是更新前的个体,xnew1是更新后的个体,ξ是一个权重系数,数学表达式如下:

ξ=logsig((0.5*max_iteration-current_iteration))/k*rand(0,1)(3)

其中,max_iteration表示最大迭代数,current_iteration表示当前迭代数;

6)从第k聚类中随机选择一个个体随机选择的个体向聚类中最优个体移动随机长度,生成一个新的个体xnew2,

式中,表示聚类中最优个体,随机选择的个体更新后得到的个体xnew2,如果满足硬件面积约束且比本次更新前的适应度值优,则用本次更新后的个体xnew2代替随机选择的个体并直接进入步骤9),否则,进入步骤7);

7)随机选择的个体向全局最优个体移动随机长度,按如下公式进行更新:

式中,表示全局最优个体,随机选择的个体更新后得到的个体xnew3,如果满足硬件面积约束且比随机选择的个体的适应度值优,则用更新后的个体xnew3代替随机选择的个体并直接进入步骤9),否则,进入步骤8);

8)随机生成一个新的满足硬件面积约束条件的个体代替该随机选择的个体

9)一次迭代更新完成,迭代次数iteration加1,判断是否达到最大迭代次数max_iteration以及是否达到算法终止条件,若是,则进入步骤10),否则,回到步骤3)开始下一轮迭代;

10)输出最优个体作为最佳软硬件划分方案。

例如,种群中9个个体根据适应度排序后为x1,x2,x3,x4,x5,x6,x7,x8,x9。其中x1,x2,x3处于区域region1,x4,x5,x6处于区域region2,x7,x8,x9处于区域region3。现有技术按照k-means的聚类方式为图1所示,本发明的聚类方式如图2所示,其中每个区域中间部分即为本发明设置的c1,c2,c3这几个坐标。根据到坐标的距离,x1,x2,x3为a组,x4,x5,x6位b组,x7,x8,x9为c组。可以看出,本发明采用的方法成功的防止所有个体向一个区域移动。

下面给出最佳实例:

实例的具体参数设置如下:

种群规模n=20,分组数m=4,最大迭代次数为1000,算法终止条件为连续150次无效迭代,迭代次数初始为0。以硬件面积作为约束条件,时间开销作为适应度值。以l=10节点的任务规模为例,即一个软硬件划分方案,改进头脑风暴算法运用于软硬件划分的具体步骤如下:

(1)随机生成20个满足面积约束的解,每个可行解均为由0,1组成的10位的编码序列。如其中一个解为0000011111。

(2)根据聚类数4以及任务节点数10,首先确定4个等距离的聚类坐标,c1,c2,c3,c4。c1=(1,1,0,0,0,0,0,0,0,0),c2=(0,0,1,1,0,0,0,0,0,0),c3=(0,0,0,0,1,1,0,0,0,0),c4=(0,0,0,0,0,0,1,1,0,0)。

(3)迭代更新开始,计算每个解的适应度值,即求其对应方案所需的时间开销,并将这20个解按照适应度值由小到大进行排序。

(4)进入分组阶段,按照公式(5)计算每个解到c1,c2,c3,c4的距离,如解0000011111到c1的距离为49,到c2的距离为49,到c3的距离为25,到c4的距离为9。若c4未饱和,则解0000011111将被分到第4组;若c4已饱和,则判断c3是否饱和,以此类推。按照这种规则依次分组完成。

(5)进入最优个体更新阶段,更新后的最优的个体,如果满足硬件面积约束,且比更新前的个体的适应度值更优,则用更新后的最优的个体替更新前的个体,构成新的最优个体,否则,保留更新前的最优个体。

(6)进入随机个体更新阶段,从聚类中随机选择一个个体,随机选择的个体将向聚类中最优个体移动随机长度,以生成一个新的个体。随机个体更新,如果满足硬件面积约束且比本次更新前的适应度值优,则用本次更新后的个体代替随机选择的个体,并直接进行第9步。否则,随机个体将向全局最优个体移动。进行第7步。

(7)随机选择的个体将向全局最优个体移动随机长度,以生成一个新的个体。随机个体更新后的位置,如果满足硬件面积约束且比本次更新前的适应度值优,则用更新后的个体代替随机选择的个体,并直接进行第9步。否则,进行第8步。

(8)随机生成一个新的满足硬件面积约束条件的个体代替该随机选择的个体。

(9)一次迭代更新完成。迭代次数加1,判断是否达到最大迭代次数1000以及是否达到算法终止条件,若是,则进行第10步,否则,回到第3步开始下一轮迭代。

(10)输出最优个体,即最佳软硬件划分方案。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1