[发明专利]一种二值FPRM电路面积与延时综合优化方法有效
申请号: | 201710932755.9 | 申请日: | 2017-10-10 |
公开(公告)号: | CN107679326B | 公开(公告)日: | 2019-07-09 |
发明(设计)人: | 汪鹏君;王铭波;符强;张会红 | 申请(专利权)人: | 宁波大学 |
主分类号: | G06F17/50 | 分类号: | G06F17/50;G06N3/00 |
代理公司: | 宁波奥圣专利代理事务所(普通合伙) 33226 | 代理人: | 方小惠 |
地址: | 315211 浙*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 子种群 粒子 寻优 粒子群寻优 延时 电路 综合优化 搜索 变异机制 估算模型 粒子种群 面积估算 效率基础 学习策略 有效地 最优解 构建 算法 优化 多样性 关联 引入 学习 | ||
1.一种二值FPRM电路面积与延时综合优化方法,其特征在于包括以下步骤:
①建立p极性下二值FPRM电路的面积估算模型与延时估算模型:
①-1将p极性下二值FPRM电路采用二值FPRM逻辑表达式表示为:
其中,n为函数fp(xn-1,xn-2,…,x0)输入变量的个数;xn-1,xn-2,…,x0为函数fp(xn-1,xn-2,…,x0)的n个输入变量,为XOR运算符号,bj为与项系数,且bj∈{0,1};j为与项序数,j为大于等于0且小于等于2n-1的整数,用二进制可表示为jn-1jn-2…j0;p为二值FPRM电路的极性,用二进制可表示为pn-1pn-2…p0;πj为与项展开式,表示为i为大于等于0且小于等于n-1的整数,变量在与项展开式中的表示形式如下所示:
在pi=0且ji=1时,xi在与项展开式中以原输入变量的形式出现,在ji=0时,xi在与项展开式中以1的形式出现,在pi=1且ji=1时,xi在与项展开式中以原输入变量的反变量形式出现;
①-2p极性下二值FPRM电路的由多输入异或项和多输入与项组成,将多输入异或项看作多输入XOR门,多输入与项看作多输入AND门,首先采用类Huffman算法将p极性下二值FPRM电路内包含的所有多输入XOR门分解为二输入XOR门,将分解得到的二输入XOR门的数量记为No.XOR,然后再采用类Huffman算法将p极性下二值FPRM电路内包含的所有多输入AND门分解为二输入AND门,将分解得到的二输入AND门的数量记为No.AND;
①-3在分解完的p极性下二值FPRM电路中,从输入变量到输出信号经过二输入AND门和二输入XOR门的数量最少的路径作为关键路径,将该关键路径中包含的二输入AND门和二输入XOR门的数量记为num(key);
①-4将p极性下二值FPRM电路的面积记为area(p),延时记为delay(p),得到p极性下二值FPRM电路的面积估算模型为:
area(p)=No.XOR+No.AND (3)
延时估算模型为:
delay(p)=num(key) (4)
②构建粒子群算法与二值FPRM电路面积与延时优化的关联:将粒子的位置表示为极性,粒子的搜索空间表示为可选择极性的空间,种群全局最优粒子的位置表示为最佳极性,个体最优粒子的位置表示为近似最佳极性;
③采用粒子群算法搜索种群全局最优粒子位置,具体过程为:
Step1:设粒子种群大小为M,M取值范围为大于等于20并小于等于100的整数,粒子种群中每个粒子的位置和个体最优粒子位置分别为极性取值范围内的n位二进制数,粒子种群中第m个粒子速度表示为vmnvm(n-1)…vmd…vm2vm1,d为大于等于1且小于等于n的整数,vmd表示粒子种群中第m个粒子速度的第d位,m=1,2,…,M,vmd取值范围在[-vmax,vmax]之间,vmax表示粒子的速度每一位的最大取值,其值为大于等于1并小于等于8的随机数;初始化粒子种群中每个粒子的速度、位置和个体最优粒子位置;通过列表技术得到当前粒子种群中各粒子的位置对应极性下二值FPRM电路的二值FPRM逻辑表达式,按照步骤①-2~步骤①-4的方法得到各极性下二值FPRM电路的面积和延时;设置粒子群算法的迭代总次数为T,T为大于等于100的整数且小于等于500的整数,设定当代迭代次数为变量t,初始化变量t,令变量t=0;
Step2:根据公式(5)计算当前粒子种群中每个粒子的位置的适应度:
其中,sm表示当前粒子种群中第m个粒子的位置,m=1,2,…,M,fitness(sm)表示当前粒子种群中第m个粒子位置的适应度,area(sm)表示当前粒子种群中第m个粒子的位置对应极性下二值FPRM电路的面积,total_area表示当前粒子种群中所有粒子的位置对应极性下二值FPRM电路的面积之和,delay(sm)表示当前粒子种群中第m个粒子的位置对应极性下二值FPRM电路的延时,total_delay表示当前粒子种群中所有粒子的位置对应极性下二值FPRM电路的延时之和,α为面积权重值,取大于等于0且小于等于1的任意常数;
根据公式(6)计算当前粒子种群中每个粒子的个体最优粒子位置的适应度:
其中,pbestm表示粒子种群中第m个粒子的个体最优粒子位置,fitness(pbestm)表示粒子种群中第m个粒子的个体最优粒子位置的适应度,area(pbestm)表示粒子种群中第m个粒子的个体最优粒子位置对应极性下二值FPRM电路的面积;delay(pbestm)表示当前粒子种群中第m个粒子的个体最优粒子位置对应极性下二值FPRM电路的延时;
Step3:将当前粒子种群中,对应的适应度最小的粒子的个体最优粒子位置作为当前粒子种群的全局最优粒子位置;
Step4:采用变量t的当前值加1后的值去更新变量t,得到更新后的t,将更新后的t作为当代迭代次数,对粒子群进行第t次迭代,具体迭代过程为:
A.将当前粒子种群中所有粒子按照其粒子位置对应的适应度从小到大的顺序进行排序,选择其中粒子位置对应的适应度较小的数量为|0.3*M|的粒子作为第一个粒子子种群,剩余的粒子作为第二个粒子子种群,其中符号“*”表示乘运算符号,符号||表示对0.3*M的值进行四舍五入,取为整数;
B.对第一个粒子子种群中每个粒子的速度进行更新,具体过程为:
B-1.设置一大于等于0且小于等于1的概率常数Pls,并采用随机函数为第一个粒子子种群中每个粒子产生一个对应的随机数,该随机数大于等于0且小于等于1,将第一个粒子子种群中第h个粒子对应的随机数记为randh,h=1,2,…,|0.3*M|;
B-2.分别将第一个粒子子种群中每个粒子对应的随机数与Pls进行比较,并根据比较结果对第一个粒子子种群中每个粒子的速度进行更新,具体过程为:
a.将第h个粒子对应的随机数randh与Pls进行比较,如果randh大于Pls,则采用公式(7)依次计算该粒子的速度的第1位~第n位对应的变异值:
vhd'(t)=δ×gaussrandhd (7)
如果randh小于等于Pls,则采用公式(8)依次计算该粒子的速度的第1位~第n位对应的变异值:
vhd'(t)=vhd(t-1)+c1r1(pbesthd(t-1)-shd(t-1))+c2r2(gbestd(t-1)-shd(t-1)) (8)
其中,公式(7)和公式(8)中,vhd'(t)表示第一个粒子子种群中第h个粒子速度第d位对应的变异值,公式(7)中,δ为高斯变异系数,其为大于等于0.1且小于等于0.9的常数,gaussrandhd为在对第一个粒子子种群中第h个粒子速度的第d位进行高斯变异时,采用随机函数产生的服从均值为0,方差为1的随机数;公式(8)中,如果t=1,则vhd(t-1)表示第h个粒子的初始速度的第d位,pbesthd(t-1)表示第h个粒子的初始个体最优粒子位置的第d位,gbestd(t-1)表示粒子种群的初始全局最优粒子位置的第d位,shd(t-1)表示第h个粒子的初始位置的第d位;如果t>1,则vhd(t-1)表示第h个粒子在第t-1次迭代更新后的速度的第d位,pbesthd(t-1)表示在第t-1次迭代更新后的第h个粒子的个体最优粒子位置的第d位,gbestd(t-1)表示在第t-1次迭代更新后的粒子种群的全局最优粒子位置的第d位,shd(t-1)表示在第t-1次迭代更新后的第h个粒子的位置的第d位;c1和c2分别为学习因子,其分别为大于等于1且小于等于3的整数,r1和r2分别为采用随机函数产生的大于等于0且小于等于1的随机数,每变异一次,都采用随机函数重新产生r1和r2;
b.如果vhd'(t)大于vmax,则采用vmax更新第一个粒子子种群中第h个粒子速度的第d位,如果vhd'(t)小于-vmax,则采用-vmax更新第一个粒子子种群中第h个粒子速度的第d位,如果vhd'(t)大于等于-vmax且小于等于vmax,则第一个粒子子种群中第h个粒子速度保持不变;
C.对第二个粒子子种群中每个粒子的速度进行更新,具体过程为:
C-1.从第一个粒子子种群中随机抽取一个粒子的位置作为第二个粒子子种群的全局最优粒子位置;
C-2.采用公式(9)和公式(10)依次计算第二个粒子子种群中每个粒子的速度的第1位~第n位对应的变异值:
其中,vld'(t)表示第二个粒子子种群中第l个粒子速度第d位对应的变异值,l=1,2,…,M-|0.3*M|;abestd表示第二个粒子子种群的当前全局最优粒子位置的第d位,r3为采用随机函数产生的大于等于0且小于等于1的随机数,每变异一次,都采用随机函数重新产生r3
如果t=1,则vld(t-1)表示第l个粒子的初始速度的第d位,pbestld(t-1)表示第l个粒子的初始个体最优粒子位置的第d位,sld表示第l个粒子的初始位置的第d位;
如果t>1,则vld(t-1)表示第l个粒子在第t-1次迭代更新后的速度第d位,pbestld(t-1)表示在第t-1次迭代更新后的第l个粒子的个体最优粒子位置的第d位,sld表示在第t-1次迭代更新后的第l个粒子的粒子位置的第d位;
C-3.如果vld'(t)大于vmax,则采用vmax更新第二个粒子子种群中第l个粒子速度的第d位,如果vld'(t)小于-vmax,则采用-vmax更新第二个粒子子种群中第l个粒子速度的第d位,如果vld'(t)大于等于-vmax且小于等于vmax,则第二个粒子子种群中第l个粒子速度保持不变;
D.将速度更新后的第一个粒子子种群和第二个粒子子种群合并,得到速度更新后的粒子种群;
E.对当前粒子种群中所有粒子的粒子位置依次进行更新,具体过程为:
E-1.采用公式(11)依次计算当前粒子种群中每个粒子的粒子位置的第1位~第n位对应的变异值:
其中R'md(t)为当前粒子种群中第m个粒子的粒子位置的第d位对应的变异值,vmd(t)为当前粒子种群中第m个粒子的速度的第d位,e表示自然对数的底;
E-2.采用随机函数产生一大于等于0且小于等1的随机数r4;
E-3.将R'md(t)与r4进行比较:如果R'md(t)大于r4,则采用1更新当前粒子种群中第m个粒子的粒子位置的第d位,否则采用0更新当前粒子种群中第m个粒子的粒子位置的第d位;
F.再次按照公式(5)计算当前粒子种群中每个粒子的粒子位置的适应度;如果t=1,则将每个粒子的粒子位置的适应度与其初始的个体最优粒子位置的适应度进行比较,如果当前该粒子的位置的适应度值小于其个体最优粒子位置的适应度,则采用当前该粒子的位置更新其个体最优粒子位置,并更新该粒子的个体最优粒子位置对应的二值FPRM电路的面积、延时和适应度,否则其个体最优粒子位置保持不变;如果t>1,则将每个粒子的粒子位置的适应度与其第t-1次迭代的个体最优粒子位置的适应度进行比较,如果当前该粒子的位置的适应度值小于其第t-1次迭代的个体最优粒子位置的适应度,则采用当前该粒子的位置更新其个体最优粒子位置,并更新该粒子的个体最优粒子位置对应的二值FPRM电路的面积、延时和适应度,否则其个体最优粒子位置保持不变;
G.将对应适应度最小的个体最优粒子位置作为当前粒子种群的全局最优粒子位置;
Step5:判断t是否等于T,如果不等于,则重复步骤Step4,直至t等于T,将此时的全局最优粒子位置作为最优极性,计算得到该最优极性下二值FPRM电路面积与延时。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于宁波大学,未经宁波大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710932755.9/1.html,转载请声明来源钻瓜专利网。