发明名称 一种基于离散萤火虫算法的片上网络映射方法
摘要 本发明公开了一种基于离散萤火虫算法的片上网络映射方法,其特征包括以下步骤:步骤1.参数定义;步骤2.初始化萤火虫个体集合及参数;步骤3.检查迭代终止条件,若满足迭代终止条件,则执行步骤9,否则执行步骤4;步骤4.获取第G次迭代时的最优萤火虫及全局最优萤火虫;步骤5.判断萤火虫个体的移动条件;步骤6.遍历萤火虫个体集合,并按照步骤5判断所有萤火虫个体的移动条件,遍历完成则执行步骤8;步骤7.更新萤火虫个体;步骤8.更新第G次迭代时的最优萤火虫;步骤9.获得最优映射方案。本发明能缩短优化时间,提高求解精度,获得更优映射结果。
申请公布号 CN104079439A 申请公布日期 2014.10.01
申请号 CN201410346056.2 申请日期 2014.07.18
申请人 合肥工业大学 发明人 杜高明;刘鑫;张多利;宋宇鲲;欧阳昊;尹勇生
分类号 H04L12/24(2006.01)I;G06F17/50(2006.01)I;G06F15/173(2006.01)I 主分类号 H04L12/24(2006.01)I
代理机构 安徽省合肥新安专利代理有限责任公司 34101 代理人 何梅生
主权项 一种基于离散萤火虫算法的片上网络映射方法,所述片上网络是由资源节点和通讯节点组成,其特征是按如下步骤进行:步骤1、参数定义:定义所述片上网络的拓扑结构为R,且R={L,M,N},L表示片上网络的行数,M表示片上网络的列数,N表示片上网络的层数,L&gt;0,M&gt;0,N&gt;0;以所述拓扑结构R的任一顶点为原点o,以所述拓扑结构R的行方向为x轴,列方向为y轴,层方向为z轴,建立笛卡尔直角坐标系o‑xyz;令IP核c表征为所述片上网络的资源节点,则IP核集合为C={c<sub>0</sub>,c<sub>1</sub>,…,c<sub>a</sub>,…,c<sub>A‑1</sub>},A表示IP核总数,A≤L×M×N,c<sub>a</sub>表示所述片上网络中的第a个IP核,0≤a≤A‑1;定义萤火虫个体集合为X={X<sub>1</sub>(t<sub>1</sub>),X<sub>2</sub>(t<sub>2</sub>),…,X<sub>k</sub>(t<sub>k</sub>),…,X<sub>K</sub>(t<sub>K</sub>)},K表示萤火虫个体总数,1≤k≤K,t表示萤火虫个体的更新次数,t≥0,t<sub>k</sub>表示第k只萤火虫个体的更新次数,X<sub>k</sub>(t<sub>k</sub>)表示第t<sub>k</sub>次更新后的第k只萤火虫个体;定义P<sup>k</sup>(t<sub>k</sub>)为所述第t<sub>k</sub>次更新后的第k只萤火虫个体X<sub>k</sub>(t<sub>k</sub>)的映射方案,P<sup>k</sup>(t<sub>k</sub>)={map(r<sub>0</sub>),map(r<sub>1</sub>),...,map(r<sub>i</sub>),...,map(r<sub>T‑1</sub>)},r表示所述片上网络中的通讯节点,T为所述片上网络中的通讯节点总数,T=L×M×N,r<sub>i</sub>表示所述片上网络中的第i个通讯节点,0≤i≤T‑1;假设按照所述第k只萤火虫个体X<sub>k</sub>(t<sub>k</sub>)的映射方案P<sup>k</sup>(t<sub>k</sub>)对所述IP核集合C进行映射后,若所述第i个通讯节点r<sub>i</sub>上未映射有IP核,则定义map(r<sub>i</sub>)=‑1;若所述第i个通讯节点r<sub>i</sub>上映射有IP核,则定义map(r<sub>i</sub>)=a,表示映射在第i个通讯节点r<sub>i</sub>上的IP核为第a个IP核c<sub>a</sub>;定义所述第k只萤火虫个体X<sub>k</sub>(t<sub>k</sub>)的荧光亮度为I<sup>k</sup>(t<sub>k</sub>);定义所述第k只萤火虫个体X<sub>k</sub>(t<sub>k</sub>)的映射方案的总通讯量为所述第k只萤火虫个体X<sub>k</sub>(t<sub>k</sub>)的荧光亮度I<sup>k</sup>(t<sub>k</sub>);定义Q<sup>k</sup>(t<sub>k</sub>)={R,P<sup>k</sup>(t<sub>k</sub>)}表示所述片上网络的拓扑结构R和所述第k只萤火虫个体X<sub>k</sub>(t<sub>k</sub>)的映射方案P<sup>k</sup>(t<sub>k</sub>)的拼接;则将所述第k只萤火虫个体X<sub>k</sub>(t<sub>k</sub>)表征为X<sub>k</sub>(t<sub>k</sub>)={Q<sup>k</sup>(t<sub>k</sub>),I<sup>k</sup>(t<sub>k</sub>)};定义w<sub>k</sub>为第k只萤火虫X<sub>k</sub>(t<sub>k</sub>)与其他任意一只萤火虫个体之间计算归一化距离的次数,w<sub>k</sub>>0;定义<img file="FDA0000540337750000021.GIF" wi="202" he="95" />为第w<sub>k</sub>次计算的第k只萤火虫X<sub>k</sub>(t<sub>k</sub>)和其他任一只萤火虫个体X<sub>s</sub>(t<sub>s</sub>)之间的归一化距离,1≤s≤K,且s≠k;定义光强吸收因子为γ,γ∈[0,1]、迭代次数为G、最大迭代次数为GMax、最大随机步长为α、最大吸引度为β<sub>0</sub>;步骤2、初始化萤火虫个体集合及参数:步骤2.1、随机产生映射方案P<sup>k</sup>(t<sub>k</sub>),获得所述片上网络中映射有IP核的通讯节点的坐标;步骤2.2、利用式(1)获得荧光亮度I<sup>k</sup>(t<sub>k</sub>):<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msup><mi>I</mi><mi>k</mi></msup><mrow><mo>(</mo><msub><mi>t</mi><mi>k</mi></msub><mo>)</mo></mrow><mo>=</mo><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mrow><mi>L</mi><mo>&times;</mo><mi>M</mi><mo>&times;</mo><mi>N</mi></mrow></munderover><munderover><mi>&Sigma;</mi><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mrow><mi>L</mi><mo>&times;</mo><mi>M</mi><mo>&times;</mo><mi>N</mi></mrow></munderover><msub><mi>v</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub><mo>&times;</mo><msub><mi>h</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000540337750000022.GIF" wi="832" he="146" /></maths>式(1)中,v<sub>i,j</sub>表示映射有IP核的第i个通讯节点r<sub>i</sub>与映射有IP核的第j个通讯节点r<sub>j</sub>之间的通讯量;h<sub>i,j</sub>表示映射有IP核的第i个通讯节点r<sub>i</sub>与映射有IP核的第j个通讯节点r<sub>j</sub>之间的跳数,令映射有IP核的第i个通讯节点r<sub>i</sub>的坐标为(i<sub>x</sub>,i<sub>y</sub>,i<sub>z</sub>),映射有IP核的第j个通讯节点r<sub>j</sub>的坐标为(j<sub>x</sub>,j<sub>y</sub>,j<sub>z</sub>),则h<sub>i,j</sub>=|i<sub>x</sub>‑j<sub>x</sub>|+|i<sub>y</sub>‑j<sub>y</sub>|+|i<sub>z</sub>‑j<sub>z</sub>|;步骤2.3、按照步骤2.1和步骤2.2,初始化萤火虫个体集合中的每一个萤火虫个体;步骤2.4、初始化迭代次数G=0,输入光强吸收因子γ,γ∈[0,1]、最大迭代次数GMax=gmax、最大随机步长α=step,最大吸引度β<sub>0</sub>=1,更新次数t<sub>k</sub>=0,计算归一化距离的次数w<sub>k</sub>=1;步骤3、令迭代终止条件为G≥GMax,若满足所述迭代终止条件,则执行步骤9,否则执行步骤4;步骤4、获取第G次迭代时的最优萤火虫X<sub>min</sub>(G)及全局最优萤火虫X<sub>gmin</sub>(G):遍历所述萤火虫个体集合并比较任意两只萤火虫个体的荧光亮度,寻找荧光亮度最小的萤火虫个体记为第G次迭代时的最优萤火虫X<sub>min</sub>(G);当G=0时,全局最优萤火虫X<sub>gmin</sub>(G)=X<sub>min</sub>(G),当G≠0时,若X<sub>gmin</sub>(G)>X<sub>min</sub>(G),则更新全局最优萤火虫X<sub>gmin</sub>(G)=X<sub>min</sub>(G),否则全局最优萤火虫X<sub>gmin</sub>(G)保持不变;步骤5、判断第k只萤火虫个体X<sub>k</sub>(t<sub>k</sub>)的移动条件:步骤5.1、令s=1,则第t<sub>1</sub>次更新后的第1只萤火虫个体表示为X<sub>1</sub>(t<sub>1</sub>);步骤5.2、判断s=K是否成立,若成立则执行步骤6,否则执行步骤5.3;步骤5.3、将w<sub>k</sub>+1赋值给w<sub>k</sub>,利用式(2)获得所述第k只萤火虫个体X<sub>k</sub>(t<sub>k</sub>)到第s只萤火虫个体X<sub>s</sub>(t<sub>s</sub>)之间的归一化距离<img file="FDA0000540337750000031.GIF" wi="266" he="110" /><maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><msubsup><mi>d</mi><mi>uni</mi><mrow><mi>k</mi><mo>,</mo><mi>s</mi></mrow></msubsup><mrow><mo>(</mo><msub><mi>w</mi><mi>k</mi></msub><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><msub><mi>d</mi><mrow><mi>k</mi><mo>,</mo><mi>s</mi></mrow></msub><mo>-</mo><msubsup><mi>d</mi><mi>min</mi><mrow><mi>k</mi><mo>,</mo><mi>s</mi></mrow></msubsup></mrow><mrow><msubsup><mi>d</mi><mi>max</mi><mrow><mi>k</mi><mo>,</mo><mi>s</mi></mrow></msubsup><mo>-</mo><msubsup><mi>d</mi><mi>min</mi><mrow><mi>k</mi><mo>,</mo><mi>s</mi></mrow></msubsup></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mtext>2</mtext><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000540337750000032.GIF" wi="691" he="197" /></maths>式(2)中,d<sub>k,s</sub>表示第k只萤火虫个体X<sub>k</sub>(t<sub>k</sub>)的映射方案P<sup>k</sup>(t<sub>k</sub>)到第s只萤火虫个体X<sub>s</sub>(t<sub>s</sub>)的映射方案P<sup>s</sup>(t<sub>s</sub>)之间相差的跳数,<img file="FDA0000540337750000036.GIF" wi="86" he="75" />表示第k只萤火虫个体X<sub>k</sub>(t<sub>k</sub>)的映射方案P<sup>k</sup>(t<sub>k</sub>)到第s只萤火虫个体X<sub>s</sub>(t<sub>s</sub>)的映射方案P<sup>s</sup>(t<sub>s</sub>)之间相差的跳数的理论最大值,<img file="FDA0000540337750000033.GIF" wi="94" he="80" />表示第k只萤火虫个体X<sub>k</sub>(t<sub>k</sub>)的映射方案P<sup>k</sup>(t<sub>k</sub>)到第s只萤火虫个体X<sub>s</sub>(t<sub>s</sub>)的映射方案P<sup>s</sup>(t<sub>s</sub>)之间相差的跳数的理论最小值;步骤5.4、根据式(3)所示的移动条件,判断第k只萤火虫个体X<sub>k</sub>(t<sub>k</sub>)是否向第s只萤火虫个体X<sub>s</sub>(t<sub>s</sub>)移动,若满足所述移动条件,则执行步骤7,否则,将s+1赋值给s,并执行步骤5.2;<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><mfrac><mn>1</mn><mrow><msup><mi>I</mi><mi>k</mi></msup><mrow><mo>(</mo><msub><mi>t</mi><mi>k</mi></msub><mo>)</mo></mrow></mrow></mfrac><mo>&lt;</mo><mfrac><mn>1</mn><mrow><msup><mi>I</mi><mi>s</mi></msup><mrow><mo>(</mo><msub><mi>t</mi><mi>s</mi></msub><mo>)</mo></mrow></mrow></mfrac><mo>&times;</mo><mi>exp</mi><mrow><mo>(</mo><mo>-</mo><msubsup><mi>&gamma;d</mi><mi>uni</mi><mrow><mi>k</mi><mo>,</mo><mi>s</mi></mrow></msubsup><mrow><mo>(</mo><msub><mi>w</mi><mi>k</mi></msub><mo>)</mo></mrow><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000540337750000034.GIF" wi="822" he="147" /></maths>式(3)中,<img file="FDA0000540337750000035.GIF" wi="518" he="147" />表示由于第k只萤火虫个体X<sub>k</sub>(t<sub>k</sub>)和第s只萤火虫个体X<sub>s</sub>(t<sub>s</sub>)之间的距离使第s只萤火虫个体X<sub>s</sub>(t<sub>s</sub>)的荧光亮度倒数的衰减;步骤6、遍历所述萤火虫个体集合,并按照步骤5判断所有萤火虫个体的移动条件,遍历完成则执行步骤8;步骤7、更新萤火虫个体X<sub>k</sub>(t<sub>k</sub>)步骤7.1、利用式(4)获得所述第t<sub>k</sub>次更新后的第k只萤火虫个体X<sub>k</sub>(t<sub>k</sub>)与第s只萤火虫个体X<sub>s</sub>(t<sub>s</sub>)之间的吸引度β<sub>k,s</sub>(t<sub>k</sub>):<maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><msub><mi>&beta;</mi><mrow><mi>k</mi><mo>,</mo><mi>s</mi></mrow></msub><mrow><mo>(</mo><msub><mi>t</mi><mi>k</mi></msub><mo>)</mo></mrow><mo>=</mo><mfrac><msub><mi>&beta;</mi><mn>0</mn></msub><mrow><mn>1</mn><mo>+</mo><mi>&gamma;</mi><msup><mrow><mo>(</mo><msubsup><mi>d</mi><mi>uni</mi><mrow><mi>k</mi><mo>,</mo><mi>s</mi></mrow></msubsup><mrow><mo>(</mo><msub><mi>w</mi><mi>k</mi></msub><mo>)</mo></mrow><mo>)</mo></mrow><mn>2</mn></msup></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000540337750000041.GIF" wi="691" he="170" /></maths>步骤7.2、根据第k只萤火虫个体X<sub>k</sub>(t<sub>k</sub>)与第s只萤火虫个体X<sub>s</sub>(t<sub>s</sub>)之间的吸引度β<sub>k,s</sub>(t<sub>k</sub>)按照β移动步骤规则发生移动,并将移动后的萤火虫个体X<sub>k</sub>(t<sub>k</sub>)记为X<sub>k</sub>(t<sub>k</sub>)';步骤7.3、所述移动后的萤火虫个体X<sub>k</sub>(t<sub>k</sub>)'根据所述最大随机步长α按照第一α移动步骤规则再次发生移动,并将更新次数t<sub>k</sub>+1赋值给t<sub>k</sub>,从而获得第t<sub>k</sub>次更新后的第k只萤火虫个体X<sub>k</sub>(t<sub>k</sub>)中的映射方案P<sup>k</sup>(t<sub>k</sub>);步骤7.4、根据更新后的第k只萤火虫个体X<sub>k</sub>(t<sub>k</sub>)中的Q<sup>k</sup>(t<sub>k</sub>)={R,P<sup>k</sup>(t<sub>k</sub>)},利用式(1)获得更新后的第k只萤火虫个体X<sub>k</sub>(t<sub>k</sub>)中的荧光亮度I<sup>k</sup>(t<sub>k</sub>);步骤7.5、根据所述片上网络的拓扑结构R、所述更新后的第k只萤火虫个体X<sub>k</sub>(t<sub>k</sub>)的映射方案P<sup>k</sup>(t<sub>k</sub>)以及荧光亮度I<sup>k</sup>(t<sub>k</sub>),获得更新后的第k只萤火虫个体X<sub>k</sub>(t<sub>k</sub>),并将s+1赋值给s后,执行步骤5.2;步骤8、更新第G次迭代时的最优萤火虫X<sub>min</sub>(G):步骤8.1、第G次迭代的最优萤火虫X<sub>min</sub>(G)按照第二α移动步骤规则发生移动,从而获得更新后的第G次迭代最优萤火虫X<sub>min</sub>(G)'中的映射方案P<sup>min</sup>(G)';步骤8.2、根据更新后的第G次迭代时的最优萤火虫X<sub>min</sub>(G)'中的片上网络的拓扑结构R和映射方案P<sup>min</sup>(G)',利用式(1)获得第G次迭代时的最优萤火虫X<sub>min</sub>(G)'中的荧光亮度I<sup>min</sup>(G)';步骤8.3、将G+1赋值给G,并执行步骤3;步骤9、获得最优映射方案:所述全局最优萤火虫X<sub>gmin</sub>(G)的映射方案P<sup>gmin</sup>(G)为所述最优映射方案。
地址 230009 安徽省合肥市包河区屯溪路193号