一种基于帕雷托支配的MPRM电路多目标优化方法与流程

文档序号:21459142发布日期:2020-07-10 17:56阅读:249来源:国知局

本发明涉及一种mprm电路多目标优化方法,尤其是涉及一种基于帕雷托支配的mprm电路多目标优化方法。



背景技术:

随着集成电路(ic)技术的发展,集成电路的集成度正在迅速提高。功耗和面积已经成为ic设计中不容忽视的问题,在集成电路设计流程的各个阶段都需要考虑电路面积和功耗。

任何逻辑电路都可以采用基于and/or/not形式的布尔逻辑来表示,也可以采用基于and/xor或or/xnor形式的reed-muller(rm)逻辑来表示。随着集成电路优化设计的发展,以reed-muller(rm)逻辑表示的逻辑电路在功耗、面积、速度和可测试性方面比传统布尔逻辑的形式更具优势。rm逻辑主要分为固定极性rm(fixed-polarityreed-muller,fprm)和混合极性rm(mixed-polarityreed-muller,mprm)。mprm与fprm相对比,mprm不但具有更为简单的表示,且mprm展开式的极性搜索空间庞大,包含了fprm展开式的所有极性。因此,mprm具有比fprm更大的优化空间和更好的优化效果。

极性直接决定mprm电路的表达式形式,进而影响mprm电路的面积和功耗。mprm电路的优化是在特定空间中搜索一个或多个极性,使其目标函数获得最优值。但是,mprm电路的极性搜索空间庞大,使其电路性能优化的时间和空间复杂度很高。目前,mprm电路优化普遍使用的方法是枚举法和遗传算法。但是,大规模的mprm电路优化使用枚举法需要耗费大量时间,搜索效率低,使用遗传算法求解又会有种群多样性保持机制差、收敛速度慢和局部寻优能力弱等缺点,以致最终优化效果较差。



技术实现要素:

本发明所要解决的技术问题是提供一种搜索效率高,且寻优能力强,优化效果好的基于帕雷托支配的mprm电路多目标优化方法。

本发明解决上述技术问题所采用的技术方案为:一种基于帕雷托支配的mprm电路多目标优化方法,包括以下步骤:

(1)读取代表电路结构的函数表达式:

其中,n表示函数f(xn-1,xn-2,...,xk,...,x0)的输入变量数,(xn-1,xn-2,...,xk,...,x0)为函数f(xn-1,xn-2,...,xk,...,x0)的n个输入变量,xk为函数f(xn-1,xn-2,...,xk,...,x0)的第k+1个输入变量,k=0,1,2,...n-1,∏为与运算符号,ai是第i个最大项系数,且ai∈{0,1},i为最大项序数,用二进制表示为in-1in-2…ik…i0,mi表示第i个最大项,其符号表示形式为式中的出现形式和ik相关,若ik=1,若ik=0,其中为xk的反变量;

(2)利用极性转换方法将表示电路结构的函数表达式(1)转换为p极性的mprm表达式:

其中,p为极性值,用三进制表示为pn-1pn-2...pg...p0,pg为极性值p第g+1位上的数,g=0,1,2,...n-1,⊙∏为同或运算符,sj表示第j个或项,dj为第j个或项系数,dj∈{0,1},当dj=0时,表示sj在mprm表达式中出现,当dj=1时,表示(1+sj)在mprm表达式中出现,j为或项序数,j用二进制表示为jn-1jn-2…jg…j0,其中xg与pg和jg的关系为:当pg=0,jg=0或1时,xg以原变量的形式出现;当pg=1,jg=0或1时,xg以反变量的形式出现;当pg=2,jg=1时,xg以反变量的形式出现;当pg=2,jg=0时,xg以原变量的形式出现;

(3)构建p极性的mprm表达式对应的mprm电路的面积函数与功耗函数,将面积函数采用式(3)表示为:

式(3)中,earea表示p极性下mprm电路的面积,为dj的反变量,为jg的反变量;

功耗函数采用式(4)表示为:

式(4)中,epow表示p极性下mprm电路的功耗,vdd表示mprm电路的电源电压,fclk表示mprm电路的时钟频率,另外,将mprm电路分解为门电路后,mprm电路由xnor门和or门构成,将mprm电路中xnor门和or门的数量之和记为n,将mprm电路分解得到的xnor门和or门均称为mprm电路的门,mprm电路分解得到的n个门的顺序随机排列,其中,表示mprm电路的第s个门的输出负载电容,表示mprm电路的第s个门的开关活动性,s=1,2,3…n;

(4)将mprm电路面积和功耗优化的各参数与多目标三值多样性粒子群算法的各参数进行关联:将p极性的mprm表达式中输入变量数n定义成粒子群的搜索空间维数,将p极性的mprm表达式中的极性定义为粒子群的粒子,将p极性的mprm表达式中极性的极性值p的三进制数定义为粒子位置;设定粒子群中粒子的数量为d,d为大于等于50且小于等于100的整数,最大迭代数为t,t为大于等于100且小于等于150的整数;

(5)对粒子群进行初始化,得到第0代粒子群,具体为:随机初始化粒子群中各粒子的速度、位置和每个粒子的个体最优位置,将初始化后的粒子群称为第0代粒子群;

(6)设定粒子速度的最小边界值,将其记为vmin,令vmin=0,设定粒子速度的最大边界值,将其记为vmax,令vmax=6.0,设定粒子位置的最小边界值,将其记为xmin,令xmin=2.0,设定粒子位置的最大边界值,将其记为xmax,令xmax=3.0;

(7)构建用于存放全局最优粒子的外部集,对外部集进行初始化,具体过程为:

s1、构建第0代边界粒子群:对第0代粒子群中每个粒子的速度和位置进行判定操作后得到第0代边界粒子群,判定操作具体方式为:如果该粒子的速度大于等于0且小于等于6,则其速度保持不变,反之,将其速度减少为当前速度的一半,如果该粒子的位置大于等于xmin且小于等于xmax,则其位置保持不变,反之,将其位置修改为xmin;

s2、假设两个粒子,将某一粒子的位置映射为极性后,该极性下mprm电路的面积称为该粒子的面积,该极性下mprm电路的功耗称为该粒子的功耗,设定支配规则:将两个粒子分别称为粒子a和粒子b,如果粒子a的面积≤粒子b的面积并且粒子a的功耗≤粒子b的功耗,则认为粒子a支配粒子b,如果粒子a的面积>粒子b的面积并且粒子a的功耗>粒子b的功耗,则认为粒子a被粒子b支配,如果粒子a的面积≤粒子b的面积且粒子a的功耗>粒子b的功耗或者粒子a的面积>粒子b的面积且粒子a的功耗≤粒子b的功耗,则认为粒子a与粒子b不相关;

s3、构造第0代非支配集,对第0代非支配集进行赋值,具体为:

s3-1、采用第0代边界粒子群中的所有粒子构成第0代非支配粒子群;

s3-2、从当前非支配粒子群中随机选择一个粒子,将该粒子的面积和功耗分别与当前非支配粒子群中其他粒子面积和功耗进行比较,根据支配规则判定该粒子与其他粒子的关系,如果该粒子支配其他任意粒子,则将该粒子放入非支配集,完成第0代非支配集的赋值,如果该粒子支配其他粒子中一部分粒子,且其他粒子中另一部分粒子支配该粒子或者与该粒子不相关,则进入步骤s3-3;

s3-3、将当前非支配粒子群中该粒子支配的其他粒子中一部分粒子删除,保留另一部粒子,得到更新后的非支配粒子群,将更新后的非支配粒子群作为当前非支配粒子群,如果当前非支配粒子群中只存在一个粒子,则将该粒子放入非支配集,完成第0代非支配集的赋值,否则返回步骤s3-2;

s4、将第0代非支配集中的粒子存放到外部集中,完成外部集的初始化;

(8)将当前外部集中粒子的位置作为粒子群初始的全局最优位置。

(9)设定迭代次数,将其记为t,对t进行初始换,令t=1;

(10)对粒子群进行第t代迭代更新,具体过程为:

a、采用三值多样性粒子群中粒子的运动方程式对第t-1代粒子群中各粒子的速度和位置进行更新,得到第t代粒子群,三值多样性粒子群中粒子的运动方程式如式(5)至式(7)所示:

xfd(t)=round(sfd+2×σ×randx())(6)

其中,c1、c2和c3为学习因子,c1=c2=c3=1.5,r1、r2和r3是大于等于0且小于等于1的随机数,w为惯性权重,式中wstart表示初始权重,wend表示最终权重,初始惯性权重wstart=0.9,终止惯性权重wend=0.4。vfd(t)表示第t代更新完成后第f个粒子的速度,xfd(t)表示第t代更新完成后第f个粒子的位置,f=1,2,…,d,当t=1时,xfd(t-1)表示第f个粒子的初始位置,pmd(t-1)表示粒子群初始的全局最优位置,pnd(t-1)表示粒子群中随机任一粒子的初始位置,pfd(t-1)表示第f个粒子初始的个体最优位置,vfd(t-1)表示第f个粒子的初始速度,当t≥2时,xfd(t-1)表示第t-1代离子群中第f个粒子的位置,pfd(t-1)表示在第t-1代粒子群中第f个粒子的个体最优位置,pnd(t-1)表示第t-1代粒子群中随机任一粒子的位置,pmd(t-1)表示第t-1代粒子群的全局最优位置,vfd(t-1)表示第t-1代粒子群中第f个粒子的速度,e表示自然对数的底,σ为权值且σ=0.2,randn()为标准正态分布函数,round()表示四舍五入取整,上式(5)中,当计算得到的xfd(t)为大于2的整数时,令xfd(t)=2,当计算得到的xfd(t)为小于0的整数时,令xfd(t)=0,当计算得到的xfd(t)为大于等于1且小于等于2的整数时,xfd(t)的取值为其计算值。

b、对外部集进行第t代更新,具体过程为:

w1、构建第t代边界粒子群:对第t代粒子群中每个粒子的速度和位置进行判定操作后得到第t代边界粒子群,判定操作具体方式为:如果该粒子的速度大于等于0且小于等于6,则其速度保持不变,反之,将其速度减少为当前速度的一半,如果该粒子的位置大于等于xmin且小于等于xmax,则其位置保持不变,反之,将其位置修改为xmin;

w2、构造第t代非支配集,对第t代非支配集进行赋值,具体为:

w2-1、采用第t代边界粒子群中的所有粒子构成第t代非支配粒子群;

w2-2、从当前非支配粒子群中随机选择一个粒子,将该粒子的面积和功耗分别与当前非支配粒子群中其他粒子面积和功耗进行比较,根据支配规则判定该粒子与其他粒子的关系,如果该粒子支配其他任意粒子,则将该粒子放入非支配集,完成第t代非支配集的赋值,如果该粒子支配其他粒子中一部分粒子,且其他粒子中另一部分粒子支配该粒子或者与该粒子不相关,则进入步骤w2-3;

w2-3、将当前非支配粒子群中该粒子支配的其他粒子中一部分粒子删除,保留另一部粒子,得到更新后的非支配粒子群,将更新后的非支配粒子群作为当前非支配粒子群,如果当前非支配粒子群中只存在一个粒子,则将该粒子放入非支配集,完成第t代非支配集的赋值,否则返回步骤w2-2;

w3、更新外部集,具体为:

根据支配规则确定第t代非支配集中的粒子与当前外部集中的粒子的支配关系,如果第t代非支配集中的粒子被当前外部集中的粒子支配或者两者不相关,则对当前外部集不做处理,完成外部集的第t代更新,如果第t代非支配集中的粒子支配当前外部集中的粒子,则将当前外部集中的粒子删除,并将第t代非支配集中的粒子存放到当前外部集中,完成外部集的第t代更新;

c、将当前外部集中粒子的位置作为第t代粒子群的全局最优位置。

d、将第t代粒子群中每个粒子的位置映射为极性,采用式(3)和式(4)分别计算第t代迭代更新后每个极性下mprm电路的面积和功耗;

e、将第t代粒子群中每个粒子的位置映射为极性计算得到的面积和功耗与该粒子在第t-1代更新完成后的个体最优位置映射为极性计算得到的面积和功耗值进行比较,如果第t代粒子群中粒子位置对应极性下计算得到的面积≤第t-1代该粒子个体最优位置对应极性下计算得到的面积并且第t代粒子群中粒子位置对应极性下计算得到的功耗≤第t-1代该粒子个体最优位置对应极性下计算得到的功耗,则采用该粒子第t代更新后的位置取代该粒子在第t-1代更新完成后的个体最优位置作为该粒子第t代更新完成后的个体最优位置;如果第t代粒子群中粒子位置对应极性下计算得到的面积>第t-1代该粒子个体最优位置对应极性下计算得到的面积并且第t代粒子群中粒子位置对应极性下计算得到的功耗>第t-1代该粒子个体最优位置对应极性下计算得到的功耗,则采用将该粒子在第t-1代更新完成后的个体最优位置作为该粒子第t代更新完成后的个体最优位置;如果第t代粒子群中粒子位置对应极性下计算得到的面积≤第t-1代该粒子个体最优位置对应极性下计算得到的面积并且第t代粒子群中粒子位置对应极性下计算得到的功耗>第t-1代该粒子个体最优位置对应极性下计算得到的功耗,则采用该粒子第t代更新后的位置取代该粒子在第t-1代更新完成后的个体最优位置作为该粒子第t代更新完成后的个体最优位置;如果第t代粒子群中粒子位置对应极性下计算得到的面积>第t-1代粒子个体最优位置对应极性下计算得到的面积并且第t代粒子群中粒子位置对应极性下计算得到的功耗≤第t-1代粒子个体最优位置对应极性下计算得到的功耗,则采用将该粒子在第t-1代更新完成后的个体最优位置作为该粒子第t代更新完成后的个体最优位置;

f、粒子群第t代更新完成;

(11)判断t的取值是否等于t,如果不等于,则采用t的当前值加1的和更新t的值后,返回步骤(10)进行下一代更新,如果等于,则迭代完成进入步骤(12);

(12)将第t代粒子群的全局最优位置作为最优极性输出,将该最优极性对应的mprm电路的面积和功耗作为最优面积和功耗输出。

与现有技术相比,本发明的优点在于将mprm电路面积和功耗优化问题转换为粒子群寻优问题,通过多目标三值多样性粒子群(multi-objectiveternarydiversityparticleswarmoptimization,motdpso)算法对mprm电路面积与功耗进行最佳极性搜索,建立基于motdpso算法的粒子与mprm电路极性之间的参数映射关系,再将mprm电路面积优化的各参数与的各参数进行关联,构建面积和功耗优化函数,在多目标三值多样性粒子群算法求解mprm电路面积和功耗综合优化问题的基础上,对超出定义的速度边界范围和位置边界范围的粒子,执行边界约束处理,并结合支配概念来优化,由此本发明的方法搜索效率高,且寻优能力强,优化效果好,将本发明的方法采用18个pla格式mcncbenchmark电路进行测试,与nsga-ii算法搜索到的最优解相比,本发明的方法具有较好的优化效果和鲁棒性。

具体实施方式

以下结合实施例对本发明作进一步详细描述。

实施例:一种基于帕雷托支配的mprm电路多目标优化方法,包括以下步骤:

(1)读取代表电路结构的函数表达式:

其中,n表示函数f(xn-1,xn-2,...,xk,...,x0)的输入变量数,(xn-1,xn-2,...,xk,...,x0)为函数f(xn-1,xn-2,...,xk,...,x0)的n个输入变量,xk为函数f(xn-1,xn-2,...,xk,...,x0)的第k+1个输入变量,k=0,1,2,...n-1,∏为与运算符号,ai是第i个最大项系数,且ai∈{0,1},i为最大项序数,用二进制表示为in-1in-2…ik…i0,mi表示第i个最大项,其符号表示形式为式中的出现形式和ik相关,若ik=1,若ik=0,其中为xk的反变量;

(2)利用极性转换方法将表示电路结构的函数表达式(1)转换为p极性的mprm表达式:

其中,p为极性值,用三进制表示为pn-1pn-2...pg...p0,pg为极性值p第g+1位上的数,g=0,1,2,...n-1,⊙∏为同或运算符,sj表示第j个或项,dj为第j个或项系数,dj∈{0,1},当dj=0时,表示sj在mprm表达式中出现,当dj=1时,表示(1+sj)在mprm表达式中出现,j为或项序数,j用二进制表示为jn-1jn-2…jg…j0,其中xg与pg和jg的关系为:当pg=0,jg=0或1时,xg以原变量的形式出现;当pg=1,jg=0或1时,xg以反变量的形式出现;当pg=2,jg=1时,xg以反变量的形式出现;当pg=2,jg=0时,xg以原变量的形式出现;

(3)构建p极性的mprm表达式对应的mprm电路的面积函数与功耗函数,将面积函数采用式(3)表示为:

式(3)中,earea表示p极性下mprm电路的面积,为dj的反变量,为jg的反变量;

功耗函数采用式(4)表示为:

式(4)中,epow表示p极性下mprm电路的功耗,vdd表示mprm电路的电源电压,fclk表示mprm电路的时钟频率,另外,将mprm电路分解为门电路后,mprm电路由xnor门和or门构成,将mprm电路中xnor门和or门的数量之和记为n,将mprm电路分解得到的xnor门和or门均称为mprm电路的门,mprm电路分解得到的n个门的顺序随机排列,其中,表示mprm电路的第s个门的输出负载电容,表示mprm电路的第s个门的开关活动性,s=1,2,3…n;

(4)将mprm电路面积和功耗优化的各参数与多目标三值多样性粒子群算法的各参数进行关联:将p极性的mprm表达式中输入变量数n定义成离粒子群的搜索空间维数,将p极性的mprm表达式中的极性定义为粒子群的粒子,将p极性的mprm表达式中极性的极性值p的三进制数定义为粒子位置;设定粒子群中粒子的数量为d,d为大于等于50且小于等于100的整数,最大迭代数为t,t为大于等于100且小于等于150的整数;

(5)对粒子群进行初始化,得到第0代粒子群,具体为:随机初始化粒子群中各粒子的速度、位置和每个粒子的个体最优位置,将初始化后的粒子群称为第0代粒子群;

(6)设定粒子速度的最小边界值,将其记为vmin,令vmin=0,设定粒子速度的最大边界值,将其记为vmax,令vmax=6.0,设定粒子位置的最小边界值,将其记为xmin,令xmin=2.0,设定粒子位置的最大边界值,将其记为xmax,令xmax=3.0;

(7)构建用于存放全局最优粒子的外部集,对外部集进行初始化,具体过程为:

s1、构建第0代边界粒子群:对第0代粒子群中每个粒子的速度和位置进行判定操作后得到第0代边界粒子群,判定操作具体方式为:如果该粒子的速度大于等于0且小于等于6,则其速度保持不变,反之,将其速度减少为当前速度的一半,如果该粒子的位置大于等于xmin且小于等于xmax,则其位置保持不变,反之,将其位置修改为xmin;

s2、假设两个粒子,将某一粒子的位置映射为极性后,该极性下mprm电路的面积称为该粒子的面积,该极性下mprm电路的功耗称为该粒子的功耗,设定支配规则:将两个粒子分别称为粒子a和粒子b,如果粒子a的面积≤粒子b的面积并且粒子a的功耗≤粒子b的功耗,则认为粒子a支配粒子b,如果粒子a的面积>粒子b的面积并且粒子a的功耗>粒子b的功耗,则认为粒子a被粒子b支配,如果粒子a的面积≤粒子b的面积且粒子a的功耗>粒子b的功耗或者粒子a的面积>粒子b的面积且粒子a的功耗≤粒子b的功耗,则认为粒子a与粒子b不相关;

s3、构造第0代非支配集,对第0代非支配集进行赋值,具体为:

s3-1、采用第0代边界粒子群中的所有粒子构成第0代非支配粒子群;

s3-2、从当前非支配粒子群中随机选择一个粒子,将该粒子的面积和功耗分别与当前非支配粒子群中其他粒子面积和功耗进行比较,根据支配规则判定该粒子与其他粒子的关系,如果该粒子支配其他任意粒子,则将该粒子放入非支配集,完成第0代非支配集的赋值,如果该粒子支配其他粒子中一部分粒子,且其他粒子中另一部分粒子支配该粒子或者与该粒子不相关,则进入步骤s3-3;

s3-3、将当前非支配粒子群中该粒子支配的其他粒子中一部分粒子删除,保留另一部粒子,得到更新后的非支配粒子群,将更新后的非支配粒子群作为当前非支配粒子群,如果当前非支配粒子群中只存在一个粒子,则将该粒子放入非支配集,完成第0代非支配集的赋值,否则返回步骤s3-2;

s4、将第0代非支配集中的粒子存放到外部集中,完成外部集的初始化;

(8)将当前外部集中粒子的位置作为粒子群初始的全局最优位置。

(9)设定迭代次数,将其记为t,对t进行初始换,令t=1;

(10)对粒子群进行第t代迭代更新,具体过程为:

a、采用三值多样性粒子群中粒子的运动方程式对第t-1代粒子群中各粒子的速度和位置进行更新,得到第t代粒子群,三值多样性粒子群中粒子的运动方程式如式(5)至式(7)所示:

xfd(t)=round(sfd+2×σ×randx())(6)

其中,c1、c2和c3为学习因子,c1=c2=c3=1.5,r1、r2和r3是大于等于0且小于等于1的随机数,w为惯性权重,式中wstart表示初始权重,wend表示最终权重,初始惯性权重wstart=0.9,终止惯性权重wend=0.4。vfd(t)表示第t代更新完成后第f个粒子的速度,xfd(t)表示第t代更新完成后第f个粒子的位置,f=1,2,…,d,当t=1时,xfd(t-1)表示第f个粒子的初始位置,pmd(t-1)表示粒子群初始的全局最优位置,pnd(t-1)表示粒子群中随机任一粒子的初始位置,pfd(t-1)表示第f个粒子初始的个体最优位置,vfd(t-1)表示第f个粒子的初始速度,当t≥2时,xfd(t-1)表示第t-1代离子群中第f个粒子的位置,pfd(t-1)表示在第t-1代粒子群中第f个粒子的个体最优位置,pnd(t-1)表示第t-1代粒子群中随机任一粒子的位置,pmd(t-1)表示第t-1代粒子群的全局最优位置,vfd(t-1)表示第t-1代粒子群中第f个粒子的速度,e表示自然对数的底,σ为权值且σ=0.2,randn()为标准正态分布函数,round()表示四舍五入取整,上式(5)中,当计算得到的xfd(t)为大于2的整数时,令xfd(t)=2,当计算得到的xfd(t)为小于0的整数时,令xfd(t)=0,当计算得到的xfd(t)为大于等于1且小于等于2的整数时,xfd(t)的取值为其计算值。

b、对外部集进行第t代更新,具体过程为:

w1、构建第t代边界粒子群:对第t代粒子群中每个粒子的速度和位置进行判定操作后得到第t代边界粒子群,判定操作具体方式为:如果该粒子的速度大于等于0且小于等于6,则其速度保持不变,反之,将其速度减少为当前速度的一半,如果该粒子的位置大于等于xmin且小于等于xmax,则其位置保持不变,反之,将其位置修改为xmin;

w2、构造第t代非支配集,对第t代非支配集进行赋值,具体为:

w2-1、采用第t代边界粒子群中的所有粒子构成第t代非支配粒子群;

w2-2、从当前非支配粒子群中随机选择一个粒子,将该粒子的面积和功耗分别与当前非支配粒子群中其他粒子面积和功耗进行比较,根据支配规则判定该粒子与其他粒子的关系,如果该粒子支配其他任意粒子,则将该粒子放入非支配集,完成第t代非支配集的赋值,如果该粒子支配其他粒子中一部分粒子,且其他粒子中另一部分粒子支配该粒子或者与该粒子不相关,则进入步骤w2-3;

w2-3、将当前非支配粒子群中该粒子支配的其他粒子中一部分粒子删除,保留另一部粒子,得到更新后的非支配粒子群,将更新后的非支配粒子群作为当前非支配粒子群,如果当前非支配粒子群中只存在一个粒子,则将该粒子放入非支配集,完成第t代非支配集的赋值,否则返回步骤w2-2;

w3、更新外部集,具体为:

根据支配规则确定第t代非支配集中的粒子与当前外部集中的粒子的支配关系,如果第t代非支配集中的粒子被当前外部集中的粒子支配或者两者不相关,则对当前外部集不做处理,完成外部集的第t代更新,如果第t代非支配集中的粒子支配当前外部集中的粒子,则将当前外部集中的粒子删除,并将第t代非支配集中的粒子存放到当前外部集中,完成外部集的第t代更新;

c、将当前外部集中粒子的位置作为第t代粒子群的全局最优位置。

d、将第t代粒子群中每个粒子的位置映射为极性,采用式(3)和式(4)分别计算第t代迭代更新后每个极性下mprm电路的面积和功耗;

e、将第t代粒子群中每个粒子的位置映射为极性计算得到的面积和功耗与该粒子在第t-1代更新完成后的个体最优位置映射为极性计算得到的面积和功耗值进行比较,如果第t代粒子群中粒子位置对应极性下计算得到的面积≤第t-1代该粒子个体最优位置对应极性下计算得到的面积并且第t代粒子群中粒子位置对应极性下计算得到的功耗≤第t-1代该粒子个体最优位置对应极性下计算得到的功耗,则采用该粒子第t代更新后的位置取代该粒子在第t-1代更新完成后的个体最优位置作为该粒子第t代更新完成后的个体最优位置;如果第t代粒子群中粒子位置对应极性下计算得到的面积>第t-1代该粒子个体最优位置对应极性下计算得到的面积并且第t代粒子群中粒子位置对应极性下计算得到的功耗>第t-1代该粒子个体最优位置对应极性下计算得到的功耗,则采用将该粒子在第t-1代更新完成后的个体最优位置作为该粒子第t代更新完成后的个体最优位置;如果第t代粒子群中粒子位置对应极性下计算得到的面积≤第t-1代该粒子个体最优位置对应极性下计算得到的面积并且第t代粒子群中粒子位置对应极性下计算得到的功耗>第t-1代该粒子个体最优位置对应极性下计算得到的功耗,则采用该粒子第t代更新后的位置取代该粒子在第t-1代更新完成后的个体最优位置作为该粒子第t代更新完成后的个体最优位置;如果第t代粒子群中粒子位置对应极性下计算得到的面积>第t-1代粒子个体最优位置对应极性下计算得到的面积并且第t代粒子群中粒子位置对应极性下计算得到的功耗≤第t-1代粒子个体最优位置对应极性下计算得到的功耗,则采用将该粒子在第t-1代更新完成后的个体最优位置作为该粒子第t代更新完成后的个体最优位置;

f、粒子群第t代更新完成;

(11)判断t的取值是否等于t,如果不等于,则采用t的当前值加1的和更新t的值后,返回步骤(10)进行下一代更新,如果等于,则迭代完成进入步骤(12);

(12)将第t代粒子群的全局最优位置作为最优极性输出,将该最优极性对应的mprm电路的面积和功耗作为最优面积和功耗输出。

将本发明的基于帕雷托支配的mprm电路多目标优化方法采用c语言加以实现,在windows10操作系统下,通过vs2010编译,程序的硬件环境为intel(r)core(tm)i5-8250u@1.60ghz8gram,测试电路均采用pla格式的mcncbenchmark基准电路,对18个mcncbenchmark电路进行了面积与功耗优化实验。在实验中,各参数设置为:学习因子c1=c2=c3=1.5,初始惯性权重wstart=0.9,终止惯性权重wend=0.4,σ=0.2。粒子速度的最小边界值vmin=0,粒子速度的最大边界值vmax=6.0,粒子位置的最小边界值xmin=2.0,粒子位置的最大边界值xmax=3.0;粒子群规模和最大迭代次数由键盘输入。

为了验证本发明的基于帕雷托支配的mprm电路多目标优化方法(简称motdpso算法)在求解mprm电路面积与功耗优化的有效性,将本发明的基于帕雷托支配的mprm电路多目标优化方法与采用nsga-ii算法对mprm电路进行优化的方法(简称nsga-ii算法)进行实验比对。将上述2种算法分别测试20次,对20次结果的最优解求平均值。表1给出了在18个mcnc电路上运行上述2种方法的结果。表1中“name”和“input”分别为测试电路的名称和输入变量个数,“area”和“power”分别为测试20次电路最优解的平均面积和功耗,“s(area)”和“s(power)”表示电路面积和功耗的优化率,计算公式如下:

公式(8)和公式(9)中,sa1(sp1)、sa2(sp2)分别表示对nsga-ii和motdpso测试20次搜索到的最优解的平均面积和功耗。

表1motdpso与nsga-ii算法最优解实验数据和优化率

由表1数据可知,motdpso算法相比nsga-ii算法能获得更小的电路面积和功耗。比如pcle电路,motdpso算法比nsga-ii算法面积和功耗分别优化了8.50%和13.83%。在misex3电路中,即使motdpso算法搜索到的最佳极性电路面积有所增加,但功耗减少了。根据18个benchmark电路的测试结果可知,motdpso算法相比nsga-ii算法,电路面积与功耗平均优化率分别为4.29%和6.02%。最后,将2种算法运行20次的面积与功耗进行方差计算,nsga-ii算法面积与功耗方差为5.64和8.56,motdpso算法方差分别为4.87和6.35,所以motdpso算法具有良好的鲁棒性。

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