CN103714211A - 基于移动模式序列与多智能体粒子群的集成电路布图方法 - Google Patents

基于移动模式序列与多智能体粒子群的集成电路布图方法 Download PDF

Info

Publication number
CN103714211A
CN103714211A CN201310733462.XA CN201310733462A CN103714211A CN 103714211 A CN103714211 A CN 103714211A CN 201310733462 A CN201310733462 A CN 201310733462A CN 103714211 A CN103714211 A CN 103714211A
Authority
CN
China
Prior art keywords
make
intelligent body
order
bottomtotop
integrated circuit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201310733462.XA
Other languages
English (en)
Other versions
CN103714211B (zh
Inventor
刘静
焦李成
朱园
韩二丽
马文萍
马晶晶
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xidian University
Original Assignee
Xidian University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xidian University filed Critical Xidian University
Priority to CN201310733462.XA priority Critical patent/CN103714211B/zh
Publication of CN103714211A publication Critical patent/CN103714211A/zh
Application granted granted Critical
Publication of CN103714211B publication Critical patent/CN103714211B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

本发明公开一种基于模式移动序列与多智能体粒子群的集成电路布图方法,属于物理设计布图规划技术领域。本发明将模式移动序列作为编码方法,将多智能体系统与粒子群算法相结合,用于求解集成电路布图问题,其特征在于:首先根据采用随机生成的方法初始化智能体网格中的每个智能体,然后设计了模式移动序列对每个智能体进行编码,最后设计了邻域竞争算子、粒子群算法、自学习算子对智能体进行优化,验证结果表明,本发明在评定求解集成电路布图问题方法效用的一个重要的方面:求最小矩形包络的面积,有优势,是一种有效的求解集成电路布图问题的方法,还能扩展到求解多目标的集成电路布图问题。

Description

基于移动模式序列与多智能体粒子群的集成电路布图方法
技术领域
本发明涉及物理设计布图规划的一种方法,具体涉及一种基于移动模式序列(moving block sequence,MBS)与多智能体粒子群(multi-agent particleswarm optimization,MAPSO)的集成电路布图方法。
背景技术
布图规划(floorplanning)是超大规模集成电路(very large scaleintegration,VLSI)物理设计的关键环节,其结果对最终芯片的尺寸和全局互连结构有着重要影响。随着技术的日新月异,芯片设计的复杂度飞速增长,对芯片的尺寸和内部互连性能的要求也越来越高,这使得布图规划的作用尤为重要。针对布图规划问题,已有许多学者应用不同的数学工具提出了多种算法,包括最小分割算法、分级设计方法、解析型算法及随机优化算法等。随机优化算法的基本操作是对每次产生的新解进行评估,保留较优的解。由于它能够针对问题的特点和复杂性进行特定操作,设计灵活,可保证解的最优性,因而受到广泛的关注。
随机优化算法的核心是设计布图表示方法,即设计一种表示布局结果的编码。已有的布图表示方法可分为两大类:二分布图表示(slicing)和非二分布图表示(non-slicing)。二分布图表示通过使用垂直或水平的划分线将布图区域递归二划分为若干子区域,每一子区域有且仅有一个模块。代表方法有二叉树表示、规范波兰表达式方法、规范后缀表达式方法等。这是最简单的一类方法、它的解空间较小,因而求解速度较快。但由于大部分的布图问题都不具有二划分结构,使得其适用范围较小。与此相比,非二分布图表示更具有一般性,也更加灵活,可获得更高的面积利用率和更优的互连性能,因此目前的研究均集中在非二分布图表示方法的设计上。代表方法有序列对、有界分割网格、O-tree、B*-tree、角模块序列、传递闭包图、双生二元序列、角序列等。
对于布图规划问题已研究的算法大都采用模拟退火法,很少采用进化算法优化。这里主要认为由于非二分布图表示的随机优化方法的搜索空间均是非凸的,不利于进化算法,而且其存储量也很大。
发明内容
本发明的目的在于针对上述现有方法的不足,提出了一种基于模式移动序列与多智能体粒子群的集成电路布图方法,本方法能够解决技术背景中存在的不足,从而得到最优解和最优面积利用率的模块形状信息和移动模式序列。
本发明的技术方案是这样实现的:开始基于模式移动序列与多智能体粒子群的集成电路布图方法,其特征是:至少包括如下步骤:
步骤从101开始;
步骤102:参数设定:BoxRX,BoxTY分别记录已摆放的模块最小矩形包络的右边界和上边界;LeftToRight和BottomToTop是两个数组,分别记录按从左到右和从下到上的顺序记录已放置好的模块的右边界和上边界,即LeftToRight包含有x、yb、yt,BottomToTop包含有x1、xr、y;Edge//X和Edge//Y分别记录平行于X轴和Y轴的位置信息;Lsize×Lsize为多智能体的网格大小,t为大于或等于0的整数,表示第t代,Lt表示第t代智能体网格,Lt+1/2是Lt和Lt+1间的中间代智能体网格,Bestt是L0,L1,…,Lt中最优的智能体,CBestt是Lt中最优的智能体,sLssize×sLssize为自学习时的多智能体的网格大小,st表示为自学习时多智能体的代数,r1、r2指随机产生的0到1之间的实数,Li,j表示处在智能体网格第i行、第j列的智能体,energy(Li,j)表示智能体Li,j的能量,Po为邻域竞争时的选择变异概率,c1和c2为粒子群算法中的加速因子,W为粒子群算法中线性递减的惯性权重,n为所有微粒的总数;
步骤103:初始化智能体网格L0,更新Best0,采用随机生成满足模块顺序、移动序列号、模块方向的智能体网络,例如有9个模块,则模块顺序采用随机生成没有重复的0-8之间的9个整数,移动序列号采用随机生成0-3之间的9个整数,模块方向采用随机生成0-1之间的9个整数;
步骤104:循环调用基于模式移动序列的算法对智能体网格中每个智能体进行编码;
步骤105:计算适应度函数,并搜索出智能体中的个体极值和全局最好值,令t=0;
步骤106:网格Lt中每个智能体执行邻域竞争算子,得到Lt+1/2,Li,j max表示智能体Li,j邻域中能量最大的智能体,如果energy(Li,j)>energy(Li,j max),则智能体Li,j继续存活在网格上,否则,必须死亡,空出的格点由交换Li,j max的一部分而得到的新智能体占据,占据的方法由循环调用变异算法对每个智能体进行变异;
步骤107:对Lt+1/2中的每个智能体,将PSO算法作用在其上,进化得到Lt+1,对每个智能体的模块的摆放顺序采用PSO公式进行变化,对于模块的方向和模块的移动序列号采用单点交叉的方法,当当前代数t为偶数时,它们将和全局最好值的模块的方向和模块的移动序列号进行单点交叉,否则,它们将和个体极值的模块的方向和模块的移动序列号进行单点交叉,得到新的智能体网络;
步骤108:从Lt+1中找出CBestt+1
步骤109:将自学习算子作用在CBestt+1上,由CBestt+1循环调用变异产生新智能体sLssize×sLssize,变异方法与步骤105中变异方法相同,ssize是自学习时智能体的大小,若智能体sLi,j满足自学习条件,不断执行将邻域竞争算子和PSO算法作用在新产生的智能体sLi,j上,邻域竞争算子和PSO算法分别与步骤106和步骤107中的邻域竞争算子和PSO算法相同,直到自学习算子结束,即达到自学习时的最大代数,将自学习结束后得到的全局最优值赋值给CBestt+1
步骤110:如果energy(CBestt+1)>energy(Bestt),则直接进入步骤111;否则,转向步骤112;
步骤111:把CBestt+1的值赋予Bestt+1,转向步骤113;
步骤112:把Bestt的值赋予Bestt+1,把Bestt的值赋予CBestt+1
步骤113:如果不满足终止准则满足,即没有达到最大进化代数,令t自加1,转向步骤106;否则,转向步骤114;
步骤114:结束基于模式移动序列与多智能体粒子群的集成电路布图方法。
所述步骤104,包括如下步骤:
步骤201:开始调用基于模式移动序列的算法对智能体网格中每个智能体进行编码;
步骤202:初始化每个模块的左下角坐标为(0,0),令
Figure BDA0000445320160000041
Figure BDA0000445320160000042
Figure BDA0000445320160000043
步骤203:i←1;
步骤204:令j←i-1;若(MMi=0),转步骤205;若(MMi=1),转步骤207;若(MMi=2),令
Figure BDA0000445320160000051
并转步骤209;若
Figure BDA0000445320160000052
并转步骤217;
步骤205:令
Figure BDA0000445320160000053
若Edge//X非上覆盖BottomToTop[j],则令j←j-1并转步骤205;
步骤206:令
Figure BDA0000445320160000054
并转步骤225;
步骤207:令
Figure BDA0000445320160000055
若Edge//Y非上覆盖LeftToRight[j],则令j←j-1并转步骤207;
步骤208:令
Figure BDA0000445320160000056
并转步骤225;
步骤209:令若j≥0且Edge//X非上覆盖BottomToTop[j],则令j←j-1并转步骤209;
步骤210:若j≥0,则令
Figure BDA0000445320160000058
CoverLeftX←BottomToTop[j].xl,j←j-1;
步骤211:若j≥0且
Figure BDA0000445320160000059
则转步骤212。否则,令j←i-1并转步骤213;
步骤212:令
Figure BDA00004453201600000511
若Edge//X上覆盖BottomToTop[j],BottomToTop[j].xl<CoverLeftX,则令CoverLeftX←BottomToTop[j].xl;令j←j-1,并转步骤211;
步骤213:令
Figure BDA00004453201600000510
若j≥0且Edge//Y非右覆盖LeftToRight[j],则令j←j-1并转步骤213;
步骤214:若j≥0,则令CoverRightX←LeftToRight[j].x;否则,令CoverRightX←0;
步骤215:若(CoverRightX≥CoverLeftX)或者(CoverRightX<CoverLeftX)且 ( ( CoverLeftX - CoverRightX ) < B k i . width ) , 则令
Figure BDA0000445320160000062
CanMove←False;否则,令
Figure BDA0000445320160000063
步骤216:若CanMove=True,则令j←i-1并转步骤209。否则,转步骤225;
步骤217:令
Figure BDA0000445320160000064
Figure BDA0000445320160000065
若j≥0且Edge//Y非上覆盖LeftToRight[j],则令j←j-1并转步骤217;
步骤218:若j≥0,则令
Figure BDA0000445320160000066
CoverBottomY←LeftToRight[j].yb,j←j-1;
步骤219:若j≥0且则转步骤220。否则,令j←i-1并转步骤221;
步骤220:令
Figure BDA0000445320160000068
若Edge//Y上覆盖BottomToTop[j]且(LeftToRight[j].yb<CoverBottomY),则令CoverBottomY←LeftToRight[j].yb;令j←j-1,并转步骤219;
步骤221:令
Figure BDA0000445320160000069
若j≥0且Edge//X非右覆盖BottomToTop[j],则令j←j-1并转步骤221;
步骤222:若j≥0,则令CoverTopY←BottomToTop[j].y;否则,令CoverTopY←0;
步骤223:若(CoverTopY≥CoverBottomY)或者(CoverTopY<CoverBottomY)且 ( ( CoverBottomY - CoverTopY ) < B k i . height ) , 则令
Figure BDA00004453201600000611
CanMove←False;否则,令
Figure BDA00004453201600000612
CanMove←True;
步骤224:若CanMove=True,则令j←i-1并转步骤217。否则,转步骤225;
步骤225:若 ( B k i . xlb + B k i . width > Box RX ) , 则令
Figure BDA0000445320160000072
( B k i . ylb + B k i . height > Box TY ) , 则令
Figure BDA0000445320160000074
步骤226:令
Figure BDA0000445320160000075
Figure BDA0000445320160000076
步骤227:若j>0且(LeftToRight[j].x<LeftToRight[j-1].x),则令
Figure BDA0000445320160000078
j←j-1,转步骤227;否则令j←i;
步骤228:若j>0且(BottomToTop[j].y<BottomToTop[j-1].y),则令j←j-1,转步骤228;否则令i←i+1;
步骤229:若(i<n),则转步骤204;否则,转向步骤230;
步骤230:结束基于模式移动序列的编码。
所述的步骤106,包括如下步骤:
输入:Li,j max(P)=(m0,m1,…,mn-1);输出:Li,j(P)=(c0,c1,…,cn-1
Swap(x,y)表示交换x和y的取值,U(0,1)为0-1均匀分布的随机数,Random(n,i)是0,1,…,n-1中的一个随机整数且不等于i。
步骤301:开始进行变异算子;
步骤302:令Li,j(P)←Li,j max(P),i←0;
步骤303:若U(0,1)<Po,转向步骤304;否则,转向步骤306;
步骤304:令l←Random(n,i);
步骤305:Swap(ci,cl);
步骤306:令i←i+1;
步骤307:若i<n,则转步骤303;否则,转步骤308;
步骤308:结束变异算子。
所述的步骤107,包括如下步骤:
步骤401:开始PSO算法进行优化;
步骤402:初始化,令i←0;
步骤403:计算每个智能体的适应度值;
步骤404:并找出个体极值和全局最优值;
步骤405:根据如下PSO公式的方程对微粒的速度和位置进行进化:
Vid(t+1)=W×Vid(t)+c1×r1×(Pid(t)-xid(t))+c2×r2×(Pgd(t)-xid(t))
xid(t+1)=xid(t)+Vid(t+1)
其中Vid(t)表示第t代的第i个个体的速度,Pid(t)表示第t代的第i个个体的个体极值,Pgd(t)表示第t代的第i个个体的全局最优值,xid(t)表示第t代的第i个个体的微粒的个体值。
步骤406:对每个智能体中的微粒计算适应度值,更新个体极值和全局最优值。具体规则是:用它的适应度值xid和个体极值Pid比较,如果xid的适应度值大于Pid的适应度值,则xid替换掉Pid;对每个粒子,用它的适应度值xid和全局最优值Pgd比较,如果xid的适应度值大于Pgd的适应度值,则用xid替换掉Pgd
步骤407:令i←i+1;
步骤408:如果满足结束条件(误差足够好或i>n-1)就转步骤409;否则,转向步骤405;
步骤409:结束PSO算法的优化。
本发明与现有的技术相比具有以下优点:1)本发明基于一种新的非二分布图表示方法——移动模式序列,使得它的搜索空间是凸的,为算法中交叉算子的设计提供了平台,并且移动模式序列所需的存储量与已有方法相比更小;任何一个布局都可以通过迭代的向左和向下移动模块而得到左下紧布局,且所得到的左下紧布局的面积不会大于原始布局的面积,因此本发明用的移动模式序列的方法可以保证所得的布局为左下紧布局;2)本发明将多智能体系统与PSO算法相结合,设计了一种基于移动模式序列的多智能体粒子群算法的集成电路布图方法,多智能体PSO算法是基于智能体对环境感知与反作用的能力提出的一种优化算法,它的主要特点是种群规模小,收敛速度快,算法的稳定性高。该算法用智能体网格替代种群形式进化,每个智能体只能感知局部环境,一个智能体与其邻域发生作用后便将其信息传给了它们,在这种方式下,信息将渐渐扩散到整个智能体网格,智能体网格的模型更接近于真正的自然进化机制;粒子群优化是一种新兴的基于群体智能的启发式全局搜索算法,粒子群优化算法通过粒子间的竞争和协作以实现在复杂搜索空间中寻找全局最优点,它具有易理解、易实现、全局搜索能力强等特点。该算法能够得到更好的布图结果;3)本发明在评定求集成电路布图方法的一个重要的方面:求解到矩形包络的面积最小,有优势,是一种有效的求解集成电路布图方法的方法。
仿真实验结果表明,本发明提出的基于移动模式序列的多智能体粒子群算法的集成电路布图方法能够有效的求解集成电路布图问题。
附图说明
图1基于移动模式序列的多智能体粒子群算法的集成电路布图方法的主流程图;
图2智能体网格示意图;
图3模块初始位置示意图;
图4智能体基于模式移动序列编码的流程图;
图5智能体邻域竞争算子中的变异算子的算法流程图;
图6智能体PSO算法的流程图;
图7基于模式移动序列与多智能体粒子群的集成电路布图方法仿真结果显示图;
具体实施方式
本发明研究的集成电路布图问题,是指在模式移动序列要求达到所有模块都处于左下紧的情况下,将所有的模块全部摆放在第一象限,并且要求它们之间不会出现重叠,使包围所有模块的包络的面积达到最小。集成电路布图问题分为很多种,本发明求解的单目标,硬矩形模块的集成电路布图问题,目标是使包络的面积最小,并对两个标准问题库MCNC和GSRC的数据集进行测试。
如图1所示,
主流程图步骤特征是:
步骤101:开始基于模式移动序列与多智能体粒子群的集成电路布图方法;
步骤102:参数设定:BoxRX,BoxTY分别记录已摆放的模块最小矩形包络的右边界和上边界;LeftToRight和BottomToTop是两个数组,分别记录按从左到右和从下到上的顺序记录已放置好的模块的右边界和上边界,即LeftToRight包含有x、yb、yt,BottomToTop包含有x1、xr、y;Edge//X和Edge//Y分别记录平行于X轴和Y轴的位置信息;Lsize×Lsize为多智能体的网格大小,t为大于或等于0的整数,表示第t代,Lt表示第t代智能体网格,Lt+1/2是Lt和Lt+1间的中间代智能体网格,Bestt是L0,L1,…,Lt中最优的智能体,CBestt是Lt中最优的智能体,sLssize×sLssize为自学习时的多智能体的网格大小,st表示为自学习时多智能体的代数,r1、r2指随机产生的0到1之间的实数,Li,j表示处在智能体网格第i行、第j列的智能体,energy(Li,j)表示智能体Li,j的能量,Po为邻域竞争时的选择变异概率,c1和c2为粒子群算法中的加速因子,W为粒子群算法中线性递减的惯性权重,n为所有微粒的总数;
步骤103:初始化智能体网格L0,更新Best0,采用随机生成满足模块顺序、移动序列号、模块方向的智能体网络,例如有9个模块,则模块顺序采用随机生成没有重复的0-8之间的9个整数,移动序列号采用随机生成0-3之间的9个整数,模块方向采用随机生成0-1之间的9个整数;
步骤104:循环调用基于模式移动序列的算法对智能体网格中每个智能体进行编码;
步骤105:计算适应度函数,并搜索出智能体中的个体极值和全局最好值,令t=0;
步骤106:网格Lt中每个智能体执行邻域竞争算子,得到Lt+1/2,Li,j max表示智能体Li,j邻域中能量最大的智能体,如果energy(Li,j)>energy(Li,j max),则智能体Li,j继续存活在网格上,否则,必须死亡,空出的格点由交换Li,j max的一部分而得到的新智能体占据,占据的方法由循环调用变异算法对每个智能体进行变异;
步骤107:对Lt+1/2中的每个智能体,将PSO算法作用在其上,进化得到Lt+1,对每个智能体的模块的摆放顺序采用PSO公式进行变化,对于模块的方向和模块的移动序列号采用单点交叉的方法,当当前代数t为偶数时,它们将和全局最好值的模块的方向和模块的移动序列号进行单点交叉,否则,它们将和个体极值的模块的方向和模块的移动序列号进行单点交叉,得到新的智能体网络;
步骤108:从Lt+1中找出CBestt+1
步骤109:将自学习算子作用在CBestt+1上,由CBestt+1循环调用变异产生新智能体sLssize×sLssize,变异方法与步骤105中变异方法相同,ssize是自学习时智能体的大小,若智能体sLi,j满足自学习条件,不断执行将邻域竞争算子和PSO算法作用在新产生的智能体sLi,j上,邻域竞争算子和PSO算法分别与步骤106和步骤107中的邻域竞争算子和PSO算法相同,直到自学习算子结束,即达到自学习时的最大代数,将自学习结束后得到的全局最优值赋值给CBestt+1
步骤110:如果energy(CBestt+1)>energy(Bestt),则直接进入步骤111;否则,转向步骤112;
步骤111:把CBestt+1的值赋予Bestt+1,转向步骤113;
步骤112:把Bestt的值赋予Bestt+1,把Bestt的值赋予CBestt+1
步骤113:如果不满足终止准则满足,即没有达到最大进化代数,令t自加1,转向步骤106;否则,转向步骤114;
步骤114:结束基于模式移动序列与多智能体粒子群的集成电路布图方法;
如图4所示,
所述的步骤104,包括如下步骤:
步骤201:开始调用基于模式移动序列的算法对智能体网格中每个智能体进行编码;
步骤202:初始化每个模块的左下角坐标为(0,0),令
Figure BDA0000445320160000131
Figure BDA0000445320160000132
Figure BDA00004453201600001312
步骤203:i←1;
步骤204:令j←i-1;若(MMi=0),转步骤205;若(MMi=1),转步骤207;若(MMi=2),令
Figure BDA0000445320160000133
并转步骤209;若并转步骤217;
流程第一部分
步骤205:令
Figure BDA0000445320160000135
若Edge//X非上覆盖BottomToTop[j],则令j←j-1并转步骤205;
步骤206:令
Figure BDA0000445320160000136
并转步骤225;
流程第二部分
步骤207:令
Figure BDA0000445320160000137
若Edge//Y非上覆盖LeftToRight[j],则令j←j-1并转步骤207;
步骤208:令
Figure BDA0000445320160000138
并转步骤225;
流程第三部分
步骤209:令若j≥0且Edge//X非上覆盖BottomToTop[j],则令j←j-1并转步骤209;
步骤210:若j≥0,则令
Figure BDA00004453201600001310
CoverLeftX←BottomToTop[j].xl,j←j-1;
步骤211:若j≥0且
Figure BDA00004453201600001311
则转步骤212。否则,令j←i-1并转步骤213;
步骤212:令
Figure BDA0000445320160000141
若Edge//X上覆盖BottomToTop[j],BottomToTop[j].xl<CoverLeftX,则令CoverLeftX←BottomToTop[j].xl;令j←j-1,并转步骤211;
步骤213:令
Figure BDA0000445320160000142
若j≥0且Edge//Y非右覆盖LeftToRight[j],则令j←j-1并转步骤213;
步骤214:若j≥0,则令CoverRightX←LeftToRight[j].x;否则,令CoverRightX←0;
步骤215:若(CoverRightX≥CoverLeftX)或者(CoverRightX<CoverLeftX)且 ( ( CoverLeftX - CoverRightX ) < B k i . width ) , 则令
Figure BDA0000445320160000144
CanMove←False;否则,令
步骤216:若CanMove=True,则令j←i-1并转步骤209。否则,转步骤225;
流程第四部分
步骤217:令
Figure BDA0000445320160000146
Figure BDA0000445320160000147
若j≥0且Edge//Y非上覆盖LeftToRight[j],则令j←j-1并转步骤217;
步骤218:若j≥0,则令
Figure BDA0000445320160000148
CoverBottomY←LeftToRight[j].yb,j←j-1;
步骤219:若j≥0且
Figure BDA0000445320160000149
则转步骤220。否则,令j←i-1并转步骤221;
步骤220:令
Figure BDA00004453201600001410
若Edge//Y上覆盖BottomToTop[j]且(LeftToRight[j].yb<CoverBottomY),则令CoverBottomY←LeftToRight[j].yb;令j←j-1,并转步骤219;
步骤221:令
Figure BDA0000445320160000151
若j≥0且Edge//X非右覆盖BottomToTop[j],则令j←j-1并转步骤221;
步骤222:若j≥0,则令CoverTopY←BottomToTop[j].y;否则,令CoverTopY←0;
步骤223:若(CoverTopY≥CoverBottomY)或者(CoverTopY<CoverBottomY)且 ( ( CoverBottomY - CoverTopY ) < B k i . height ) , 则令
Figure BDA0000445320160000153
CanMove←False;否则,令
Figure BDA0000445320160000154
CanMove←True;
步骤224:若CanMove=True,则令j←i-1并转步骤217。否则,转步骤225;
流程第五部分
步骤225:若 ( B k i . xlb + B k i . width > Box RX ) , 则令
Figure BDA0000445320160000156
( B k i . ylb + B k i . height > Box TY ) , 则令
Figure BDA0000445320160000158
步骤226:令
Figure BDA0000445320160000159
Figure BDA00004453201600001510
Figure BDA00004453201600001511
步骤227:若j>0且(LeftToRight[j].x<LeftToRight[j-1].x),则令
Figure BDA00004453201600001512
j←j-1,转步骤227;否则令j←i;
步骤228:若j>0且(BottomToTop[j].y<BottomToTop[j-1].y),则令
Figure BDA00004453201600001513
j←j-1,转步骤228;否则令i←i+1;
步骤229:若(i<n),则转步骤204;否则,转向步骤230;
步骤230:结束基于模式移动序列的编码;
如图5所示,
所述的步骤106,包括如下步骤:
输入:Li,j max(P)=(m0,m1,…,mn-1);输出:Li,j(P)=(c0,c1,…,cn-1
Swap(x,y)表示交换x和y的取值,U(0,1)为0-1均匀分布的随机数,Random(n,i)是0,1,…,n-1中的一个随机整数且不等于i。
步骤301:开始进行变异算子;
步骤302:令Li,j(P)←Li,j max(P),i←0;
步骤303:若U(0,1)<Po,转向步骤304;否则,转向步骤306;
步骤304:令l←Random(n,i);
步骤305:Swap(ci,cl);
步骤306:令i←i+1;
步骤307:若i<n,则转步骤303;否则,转步骤308;
步骤308:结束变异算子;
如图6所示,
所述的步骤107,包括如下步骤:
步骤401:开始PSO算法进行优化;
步骤402:初始化,令i←0;
步骤403:计算每个智能体的适应度值;
步骤404:并找出个体极值和全局最优值;
步骤405:根据如下PSO公式的方程对微粒的速度和位置进行进化:
Vid(t+1)=W×Vid(t)+c1×r1×(Pid(t)-xid(t))+c2×r2×(Pgd(t)-xid(t))
xid(t+1)=xid(t)+Vid(t+1)
其中Vid(t)表示第t代的第i个个体的速度,Pid(t)表示第t代的第i个个体的个体极值,Pgd(t)表示第t代的第i个个体的全局最优值,xid(t)表示第t代的第i个个体的微粒的个体值。
步骤406:对每个智能体中的微粒计算适应度值,更新个体极值和全局最优值。具体规则是:用它的适应度值xid和个体极值Pid比较,如果xid的适应度值大于Pid的适应度值,则xid替换掉Pid;对每个粒子,用它的适应度值xid和全局最优值Pgd比较,如果xid的适应度值大于Pgd的适应度值,则用xid替换掉Pgd
步骤407:令i←i+1;
步骤408:如果满足结束条件(误差足够好或i>n-1)就转步骤409;否则,转向步骤405;
步骤409:结束PSO算法的优化。
本发明没有详细叙述的部分属于本行业的公知的常用手段,这里不一一叙述。
本发明的效果可以通过以下仿真实验进行验证:
1.实验运行环境和条件设置
实验运行的环境:处理器为Intel(R)Core(TM)i3CPU5503.2GHz3.19GHz,内存为3.05GB,硬盘为1T,操作系统为Microsoft windows XPProfessional2002,编程环境为Visual C++6.0。
实验条件设置:实验中测试了常用的两个标准问题集,一个是MCNC问题集,这个问题集应用非常广泛,它只有5个硬矩形模块布图问题和5个软矩形模块布图问题,其中规模最大的问题也只有49个模块;另一个是GSRC问题集,它的问题规模从10个模块到300个模块,能够测试算法对大规模问题的性能。本发明中测试了单目标、硬矩形模块的实例集。实验中智能体网格的大小Lsize×Lsize设计为8×8,最大进化代数为1000,学习时的智能体网格大小sLssize×sLssize设计为4×4,自学习的时候智能体的最大进化代数为20,邻域竞争算子中的变异概率Po为0.4,加速因子c1、c2均为2,惯性权值W为从0.9-0.4线性递减的数,线性递减公式为: W = 0.9 - t 1000 &times; ( 0.9 - 0.4 ) .
2.实验内容和结果分析
本实验采用基于模式移动序列与多智能体粒子群的集成电路布图方法对MCNC问题集和GSRC问题集中的硬矩形模块进行了测试,考虑到算法的随机性,求解问题集中的每个问题时,重复运行10次,其测试结果如表1所示,每个问题运行一次时的面积利用率的计算方式如下:
Figure BDA0000445320160000182
表1
Figure BDA0000445320160000183
Figure BDA0000445320160000191
考虑到问题中所有实例的最优解是用各种不同的方法求解得到的,从表1的实验结果可看出本发明提出的方法是很有效的,对于apte、xerox、hp、n10a,n10b、n10c找到最优面积利用率的可能性比较高,对于ami33、ami49,本发明找到最优面积利用率的可能性较低,是因为这两个问题集的规模比较大,搜索空间大,而程序所设计的运行次数1000代,虽然运行速度很快,但是不能搜索到最优面积利用率。其仿真结果如附图7所示。
为了进一步说明本发明的算法的性能,下面将本发明的算法求解MCNC数据集的结构与已有的O-tree、Enhanced O-tree、B*-tree算法进行比较,比较的结果如表2所示。
表2
Figure BDA0000445320160000192
从以上实验结果可以看出,本发明是一种有效的布图方法,于目前存在的效果最好的布图方法,本发明不是更好的,但用基于模式移动序列与多智能体粒子群算法求解集成电路布图问题,这是一个创新点,可能对发展其他算法求解集成电路布图问题有很好的指导作用。

Claims (4)

1.一种基于移动模式序列与多智能体粒子群的集成电路布图方法,其特征是:至少包括如下步骤:
步骤从101开始;
步骤102:参数设定:BoxRX,BoxTY分别记录已摆放的模块最小矩形包络的右边界和上边界;LeftToRight和BottomToTop是两个数组,分别记录按从左到右和从下到上的顺序记录已放置好的模块的右边界和上边界,即LeftToRight包含有x、yb、yt,BottomToTop包含有x1、xr、y;Edge//X和Edge//Y分别记录平行于X轴和Y轴的位置信息;Lsize×Lsize为多智能体的网格大小,t为大于或等于0的整数,表示第t代,Lt表示第t代智能体网格,Lt+1/2是Lt和Lt+1间的中间代智能体网格,Bestt是L0,L1,…,Lt中最优的智能体,CBestt是Lt中最优的智能体,sLssize×sLssize为自学习时的多智能体的网格大小,st表示为自学习时多智能体的代数,r1、r2指随机产生的0到1之间的实数,Li,j表示处在智能体网格第i行、第j列的智能体,energy(Li,j)表示智能体Li,j的能量,Po为邻域竞争时的选择变异概率,c1和c2为粒子群算法中的加速因子,W为粒子群算法中线性递减的惯性权重,n为所有微粒的总数;
步骤103:初始化智能体网格L0,更新Best0,采用随机生成满足模块顺序、移动序列号、模块方向的智能体网络,例如有9个模块,则模块顺序采用随机生成没有重复的0-8之间的9个整数,移动序列号采用随机生成0-3之间的9个整数,模块方向采用随机生成0-1之间的9个整数;
步骤104:循环调用基于模式移动序列的算法对智能体网格中每个智能体进行编码;
步骤105:计算适应度函数,并搜索出智能体中的个体极值和全局最好值,令t=0;
步骤106:网格Lt中每个智能体执行邻域竞争算子,得到Lt+1/2,Li,j max表示智能体Li,j邻域中能量最大的智能体,如果energy(Li,j)>energy(Li,j max),则智能体Li,j继续存活在网格上,否则,必须死亡,空出的格点由交换Li,j max的一部分而得到的新智能体占据,占据的方法由循环调用变异算法对每个智能体进行变异;
步骤107:对Lt+1/2中的每个智能体,将PSO算法作用在其上,进化得到Lt+1,对每个智能体的模块的摆放顺序采用PSO公式进行变化,对于模块的方向和模块的移动序列号采用单点交叉的方法,当当前代数t为偶数时,它们将和全局最好值的模块的方向和模块的移动序列号进行单点交叉,否则,它们将和个体极值的模块的方向和模块的移动序列号进行单点交叉,得到新的智能体网络;
步骤108:从Lt+1中找出CBestt+1
步骤109:将自学习算子作用在CBestt+1上,由CBestt+1循环调用变异产生新智能体sLssize×sLssize,变异方法与步骤105中变异方法相同,ssize是自学习时智能体的大小,若智能体sLi,j满足自学习条件,不断执行将邻域竞争算子和PSO算法作用在新产生的智能体sLi,j上,邻域竞争算子和PSO算法分别与步骤106和步骤107中的邻域竞争算子和PSO算法相同,直到自学习算子结束,即达到自学习时的最大代数,将自学习结束后得到的全局最优值赋值给CBestt+1
步骤110:如果energy(CBestt+1)>energy(Bestt),则直接进入步骤111;否则,转向步骤112;
步骤111:把CBestt+1的值赋予Bestt+1,转向步骤113;
步骤112:把Bestt的值赋予Bestt+1,把Bestt的值赋予CBestt+1
步骤113:如果不满足终止准则满足,即没有达到最大进化代数,令t自加1,转向步骤106;否则,转向步骤114;
步骤114:结束基于模式移动序列与多智能体粒子群的集成电路布图方法。
2.根据权利要求1所述的一种基于移动模式序列与多智能体粒子群的集成电路布图方法,其特征是:所述步骤104,包括如下步骤:
步骤201:开始调用基于模式移动序列的算法对智能体网格中每个智能体进行编码;
步骤202:初始化每个模块的左下角坐标为(0,0),令
Figure FDA0000445320150000031
步骤203:i←1;
步骤204:令j←i-1;若(MMi=0),转步骤205;若(MMi=1),转步骤207;若(MMi=2),令
Figure FDA0000445320150000034
并转步骤209;若(MMi=3),
Figure FDA0000445320150000041
并转步骤217;
步骤205:令
Figure FDA0000445320150000042
若Edge//X非上覆盖BottomToTop[j],则令j←j-1并转步骤205;
步骤206:令
Figure FDA0000445320150000043
并转步骤225;
步骤207:令
Figure FDA0000445320150000044
若Edge//Y非上覆盖LeftToRight[j],则令j←j-1并转步骤207;
步骤208:令并转步骤225;
步骤209:令若j≥0且Edge//X非上覆盖BottomToTop[j],则令j←j-1并转步骤209;
步骤210:若j≥0,则令
Figure FDA0000445320150000047
CoverLeftX←BottomToTop[j].xl,j←j-1;
步骤211:若j≥0且 ( BottomToTop [ j ] . y = B k i . ylb ) , 则转步骤212。否则,令j←i-1并转步骤213;
步骤212:令
Figure FDA0000445320150000049
若Edge//X上覆盖BottomToTop[j],BottomToTop[j].xl<CoverLeftX,则令CoverLeftX←BottomToTop[j].xl;令j←j-1,并转步骤211;
步骤213:令
Figure FDA00004453201500000410
若j≥0且Edge//Y非右覆盖LeftToRight[j],则令j←j-1并转步骤213;
步骤214:若j≥0,则令CoverRightX←LeftToRight[j].x;否则,令CoverRightX←0;
步骤215:若(CoverRightX≥CoverLeftX)或者(CoverRightX<CoverLeftX)且 ( ( CoverLeftX - CoverRightX ) < B k i . width ) , 则令
Figure FDA0000445320150000052
否则,令
Figure FDA0000445320150000053
步骤216:若CanMove=True,则令j←i-1并转步骤209。否则,转步骤225;
步骤217:令
Figure FDA0000445320150000054
Figure FDA0000445320150000055
若j≥0且Edge//Y非上覆盖LeftToRight[j],则令j←j-1并转步骤217;
步骤218:若j≥0,则令
Figure FDA0000445320150000056
CoverBottomY←LeftToRight[j].yb,j←j-1;
步骤219:若j≥0且 ( LeftToRight [ j ] . x = B k i . xlb ) , 则转步骤220。否则,令j←i-1并转步骤221;
步骤220:令
Figure FDA0000445320150000058
若Edge//Y上覆盖BottomToTop[j]且(LeftToRight[j].yb<CoverBottomY),则令CoverBottomY←LeftToRight[j].yb;令j←j-1,并转步骤219;
步骤221:令若j≥0且Edge//X非右覆盖BottomToTop[j],则令j←j-1并转步骤221;
步骤222:若j≥0,则令CoverTopY←BottomToTop[j].y;否则,令CoverTopY←0;
步骤223:若(CoverTopY≥CoverBottomY)或者(CoverTopY<CoverBottomY)且 ( ( CoverBottomY - CoverTopY ) < B k i . height ) , 则令CanMove←False;否则,令
Figure FDA0000445320150000063
步骤224:若CanMove=True,则令j←i-1并转步骤217。否则,转步骤225;
步骤225:若 ( B k i . xlb + B k i . width > Box RX ) , 则令
Figure FDA0000445320150000065
( B k i . ylb + B k i . height > Box TY ) , 则令
Figure FDA0000445320150000068
步骤226:令
Figure FDA0000445320150000069
Figure FDA00004453201500000610
Figure FDA00004453201500000611
步骤227:若j>0且(LeftToRight[j].x<LeftToRight[j-1].x),则令
Figure FDA00004453201500000612
j←j-1,转步骤227;否则令j←i;
步骤228:若j>0且(BottomToTop[j].y<BottomToTop[j-1].y),则令
Figure FDA00004453201500000613
j←j-1,转步骤228;否则令i←i+1;
步骤229:若(i<n),则转步骤204;否则,转向步骤230;
步骤230:结束基于模式移动序列的编码。
3.根据权利要求1所述的一种基于移动模式序列与多智能体粒子群的集成电路布图方法,其特征是:所述的步骤106,包括如下步骤:
输入:Li,j max(P)=(m0,m1,…,mn-1);输出:Li,j(P)=(c0,c1,…,cn-1
Swap(x,y)表示交换x和y的取值,U(0,1)为0-1均匀分布的随机数,Random(n,i)是0,1,…,n-1中的一个随机整数且不等于i。
步骤301:开始进行变异算子;
步骤302:令Li,j(P)←Li,j max(P),i←0;
步骤303:若U(0,1)<Po,转向步骤304;否则,转向步骤306;
步骤304:令l←Random(n,i);
步骤305:Swap(ci,cl);
步骤306:令i←i+1;
步骤307:若i<n,则转步骤303;否则,转步骤308;
步骤308:结束变异算子。
4.根据权利要求1所述的一种基于移动模式序列与多智能体粒子群的集成电路布图方法,其特征是:所述的步骤107,包括如下步骤:
步骤401:开始PSO算法进行优化;
步骤402:初始化,令i←0;
步骤403:计算每个智能体的适应度值;
步骤404:并找出个体极值和全局最优值;
步骤405:根据如下PSO公式的方程对微粒的速度和位置进行进化:
Vid(t+1)=W×Vid(t)+c1×r1×(Pid(t)-xid(t))+c2×r2×(Pgd(t)-xid(t))
xid(t+1)=xid(t)+Vid(t+1)
其中Vid(t)表示第t代的第i个个体的速度,Pid(t)表示第t代的第i个个体的个体极值,Pgd(t)表示第t代的第i个个体的全局最优值,xid(t)表示第t代的第i个个体的微粒的个体值。
步骤406:对每个智能体中的微粒计算适应度值,更新个体极值和全局最优值。具体规则是:用它的适应度值xid和个体极值Pid比较,如果xid的适应度值大于Pid的适应度值,则xid替换掉Pid;对每个粒子,用它的适应度值xid和全局最优值Pgd比较,如果xid的适应度值大于Pgd的适应度值,则用xid替换掉Pgd
步骤407:令i←i+1;
步骤408:如果满足结束条件(误差足够好或i>n-1)就转步骤409;否则,转向步骤405;
步骤409:结束PSO算法的优化。
CN201310733462.XA 2013-12-24 2013-12-24 基于移动模式序列与多智能体粒子群的集成电路布图方法 Active CN103714211B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310733462.XA CN103714211B (zh) 2013-12-24 2013-12-24 基于移动模式序列与多智能体粒子群的集成电路布图方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310733462.XA CN103714211B (zh) 2013-12-24 2013-12-24 基于移动模式序列与多智能体粒子群的集成电路布图方法

Publications (2)

Publication Number Publication Date
CN103714211A true CN103714211A (zh) 2014-04-09
CN103714211B CN103714211B (zh) 2016-08-17

Family

ID=50407182

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310733462.XA Active CN103714211B (zh) 2013-12-24 2013-12-24 基于移动模式序列与多智能体粒子群的集成电路布图方法

Country Status (1)

Country Link
CN (1) CN103714211B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107679326A (zh) * 2017-10-10 2018-02-09 宁波大学 一种二值fprm电路面积与延时综合优化方法
CN108233778A (zh) * 2018-01-19 2018-06-29 中国科学院合肥物质科学研究院 一种多智能单元串并联展收机构协同控制优化方法
CN111157002A (zh) * 2019-12-30 2020-05-15 西安电子科技大学 基于多智能体进化算法的飞行器3d路径规划方法
TWI741760B (zh) * 2020-08-27 2021-10-01 財團法人工業技術研究院 學習式生產資源配置方法、學習式生產資源配置系統與使用者介面

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100205122A1 (en) * 2009-02-11 2010-08-12 Myriam Zana Abramson Methods and systems of adaptive coalition of cognitive agents
CN102375895A (zh) * 2010-08-09 2012-03-14 中国科学院微电子研究所 一种自动构建器件模型参数优化提取过程的方法
US8437558B1 (en) * 2009-10-08 2013-05-07 Hrl Laboratories, Llc Vision-based method for rapid directed area search

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100205122A1 (en) * 2009-02-11 2010-08-12 Myriam Zana Abramson Methods and systems of adaptive coalition of cognitive agents
US8437558B1 (en) * 2009-10-08 2013-05-07 Hrl Laboratories, Llc Vision-based method for rapid directed area search
CN102375895A (zh) * 2010-08-09 2012-03-14 中国科学院微电子研究所 一种自动构建器件模型参数优化提取过程的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
钟伟才: "多智能体进化模型和算法研究", 《中国优秀博硕士学位论文全文数据库(博士)<信息科技辑>》, no. 02, 15 June 2005 (2005-06-15) *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107679326A (zh) * 2017-10-10 2018-02-09 宁波大学 一种二值fprm电路面积与延时综合优化方法
CN107679326B (zh) * 2017-10-10 2019-07-09 宁波大学 一种二值fprm电路面积与延时综合优化方法
CN108233778A (zh) * 2018-01-19 2018-06-29 中国科学院合肥物质科学研究院 一种多智能单元串并联展收机构协同控制优化方法
CN108233778B (zh) * 2018-01-19 2020-05-12 中国科学院合肥物质科学研究院 一种多智能单元串并联展收机构协同控制优化方法
CN111157002A (zh) * 2019-12-30 2020-05-15 西安电子科技大学 基于多智能体进化算法的飞行器3d路径规划方法
CN111157002B (zh) * 2019-12-30 2022-09-23 西安电子科技大学 基于多智能体进化算法的飞行器3d路径规划方法
TWI741760B (zh) * 2020-08-27 2021-10-01 財團法人工業技術研究院 學習式生產資源配置方法、學習式生產資源配置系統與使用者介面

Also Published As

Publication number Publication date
CN103714211B (zh) 2016-08-17

Similar Documents

Publication Publication Date Title
CN107330214A (zh) 基于离散化与启发式进化算法的空间布局优化方法
CN104200031B (zh) 一种基于距离优先和时空相关性的碰撞检测方法
CN107632590B (zh) 一种基于优先级的底事件排序方法
CN103714211A (zh) 基于移动模式序列与多智能体粒子群的集成电路布图方法
CN103188695B (zh) 一种室内天线的布放方法及系统
CN110046845A (zh) 一种场区车辆装载方法和装载系统
Singh et al. A review on VLSI floorplanning optimization using metaheuristic algorithms
CN110956655B (zh) 一种基于单目图像的稠密深度估计方法
CN104504468A (zh) 基于三维移动模式序列与密母算法的三维装箱方法
CN106981097A (zh) 一种基于分区局部光顺权因子的t样条曲面拟合方法
Bailey et al. Operative generative design using non-dominated sorting genetic algorithm II (NSGA-II)
CN115017805B (zh) 基于双向a*算法的核退役场区最优路径规划方法及系统
Ghalambaz et al. Building energy optimization using butterfly optimization algorithm
CN106339817A (zh) 一种多区域动态经济调度方法及系统
CN115329411A (zh) 基于先验规则和深度神经网络的舰船电气图纸布局方法
CN103714384A (zh) 基于移动模式序列与遗传禁忌的集成电路的布图方法
Li et al. A study on urban block design strategies for improving pedestrian-level wind conditions: CFD-based optimization and generative adversarial networks
Chatzikonstantinou A 3-dimensional architectural layout generation procedure for optimization applications: DC-RVD
CN105955927A (zh) 基于分解-并行遗传算法的约束优化算法
CN111542069B (zh) 一种基于快速非支配遗传算法实现无线ap部署优化方法
CN105069517A (zh) 基于混合算法的配电网多目标故障恢复方法
CN106161618A (zh) 一种车联网专用短程通信系统路侧通信单元布局优化方法
CN116880549A (zh) 城市环境下蜂窝接入式无人机的路径规划方法及相关装置
CN103714210A (zh) 基于最优适应启发式序列与多目标组织进化的集成电路布图方法
CN110365006B (zh) 一种基于nwbbo算法的电网分区方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant