InP)预先设定的虚拟节点请求的CPU资源的最大值;λ为压 缩常数,一般取值为4。
[0085] 对虚拟网络G【采用最大亲密度匹配(MCM)方法得到下一级粗化的虚拟网络GL, 具体执行过程如下:
[0086] 步骤i)如果虚拟网络G的节点个数小于等于2*Ν,那么结束粗化阶段,虚拟网络 即为待分割的虚拟网络if最粗化的虚拟网络,m等于此时的k值;否则,即虚拟网络句 的节点个数大于2*N,则执行步骤ii);
[0087] 步骤ii)以随机的顺序访问虚拟网络G中的节点,然后对每一个被访问的节点执 行步骤iii)和iv);
[0088] 步骤iii)如果被访问的节点V未匹配,而且节点V还有未匹配的邻接节点,那么 使用公式(2)计算节点V与其所有未匹配的邻接节点的亲密度,然后选择与节点V亲密度 最大的未匹配的邻接节点ν'作为节点V的匹配节点;合并匹配的节点对ν'和V为一个多 重节点,多重节点的权重等于匹配的节点对V和V的权重之和,即 wW = Wv + 其中wLst*为多重节点的权重,W v为节点V的权重,W v<为节点V'的权重;如果多重节点 与其任意一个邻接节点之间包含两条虚拟链路,那么将这两节点之间的两条虚拟链路 合并为一条多重虚拟链路,然后根据公式(1)计算两虚拟链路的分割映射代价MCfe,最后设 置多重虚拟链路的权重为MC 2^如果多重节点V _与其任意一个邻接节点之间包含多条虚 拟链路,那么将这两节点之间的多条虚拟链路合并为一条多重虚拟链路,然后根据本发明 中计算虚拟链路集合中包含多条虚拟链路时的分割映射代价的方法,计算这多条虚拟链路 的分割映射代价MC Multlj,最后设置多重虚拟链路的权重为MCMultl^将节点对ν'和V设置 为匹配状态;
[0089] 步骤iv)如果被访问的节点V已匹配,或者在被访问的节点V未匹配情况下,节点 V没有未匹配的邻接节点,那么节点V的匹配查找过程结束。
[0090] 步骤二:初始划分阶段
[0091] 初始划分阶段的目的是将步骤一粗化阶段得到的待分割的虚拟网络珲最粗化 的虚拟网络分割成二个节点个数相当的子虚拟网络。目前有多种分割方法:谱二分法 (Spectral bisection,SB)、组合方法、Kernighan - Lin算法、图分区扩展划分算法(Graph growing partitioning algorithm,GGP)、图分区贪婪式扩展划分算法(Graph growing partitioning algorithm,GGGP)等,但是这些方法均没有考虑切割链路总数对虚拟网络的 分割代价的影响。
[0092] 本发明对图分区贪婪式扩展划分算法(Greedy graph growing partitioning algorithm, GGGP) 《Karypis G,Kumar V.A fast and high quality multilevel scheme for partitioning irregular graphs》 (SIAM Journal on scientific Computing, 1998, 20 (I) : 359-392)进行改进,以适用于虚拟网络的分割,改进的部分主要是 结合切割集中虚拟链路的权重分布以及数量来定量切割集的切割代价,这里的切割集具体 是指所有跨越划分后得到的两个子虚拟网络的虚拟链路构成的集合,具体改进的执行过程 如下:
[0093] 步骤a)随机从虚拟网络中选取1个节点Vstart作为扩展分区Gsub的扩展起点, 也就是说扩展分区G sub最初只有一个本发明随机选取的节点V start;
[0094] 步骤b)查找虚拟网络^相对于当前扩展分区Gsub的前端节点集合
^具体可以遍历虚拟网络(?中所有虚拟链 路,如果被访问的虚拟链路的一端节点属于当前扩展分区Gsub,而其另一端节点不属于当前 扩展分区Gsub,那么将该虚拟链路中不属于当前扩展分区Gsub的一端节点加入到前端节点集
[0095] 步骤c)依次假设将前端节点集合(G)中的一个节点加入到当前扩展分 区Gsub,然后查找虚拟链路切割集
·具体可以遍历 虚拟网络贫:中所有虚拟链路,如果被访问的虚拟链路的一端节点属于当前扩展分区Gsub, 而其另一端节点不属于当前扩展分区Gsub,那么将该虚拟链路加入到虚拟链路切割集 £;,,(<%),最后根据本发明中计算虚拟链路集合的分割映射代价的方法计算虚拟链路切割 集^(G:;)的分割映射代价规;最后选择前端节点集合1呢)中使直最小的节 点真正加入到当前扩展分区Gsub;
[0096] 步骤e)如果当前扩展分区Gsub中的节点的个数小于虚拟网络?ξ的节点的个数 的一半,则返回执行步骤b);否则,即当前扩展分区G sub中的节点的个数大于等于虚拟网络 的节点的个数的一半,则执行步骤f);
[0097] 步骤f)对得到的划分进行合并调优,具体就是遍历虚拟网络:中所有虚拟链路, 如果被访问的虚拟链路的一端节点属于当前扩展分区Gsub,而其另一端节点不属于当前扩 展分区Gsub,如果该不属于当前扩展分区Gsub的端节点的度值为1的话,就将该不属于当前 扩展分区Gsub的端节点加入到当前扩展分区G sub。至此,虚拟网络R的划分过程结束。
[0098] 为了更直观地阐述本发明使用上述改进的图分区贪婪式扩展划分算法解决初始 划分阶段虚拟网络的分割问题,现结合图2,以一个具体的虚拟网络实例(?进行详细的划 分说明。
[0099] 1)随机从图2所示虚拟网络实例中选取一个节点作为扩展分区Gsub的扩展起 点,这里假设随机选中的节点为节点b,所以扩展分区G sub= {b};
[0100] 2)查找虚拟网络实例巧相对于当前扩展分区Gsub的前端节点集合
〃遍历虚拟网络实例中所有虚拟链路后 可知只有虚拟链路(b,a)、(b,c)、(b,e)满足其一端节点属于当前扩展分区Gsub,而其另一 端节点不属于当前扩展分区Gsub,所以前端节点集合c,eh
[0101] 3)依次假设将前端节点集合仏",.(€)中的一个节点加入到当前扩展分区Gsub = {b},然后根据本发明中计算虚拟链路集合的分割映射代价的方法计算虚拟链路切割集
勺分割映射代价,具体执行过程如下:
[0102] 假设将节点a加入到当前扩展分区Gsub= {b},得到如图3(1)所示划分,当前扩 展分区Gsub= {a,M,遍历虚拟网络实例贫中所有虚拟链路后可知只有虚拟链路(b,c)、 (b,e)、(b,f),满足其一端节点属于当前扩展分区G sub,而其另一端节点不属于当前扩展 分区Gsub,所以虚拟链路切割集民w(〇) = Ub,c>,(b,e),(b,f)},根据本发明中计算虚拟 链路集合的分割映射代价的方法计算虚拟链路切割集尾以试;)的分割映射代价,得 MCr =40:
[0103] 假设将节点c加入到当前扩展分区Gsub= {b},得到如图3(2)所示划分,当前扩 展分区Gsub= {a,c},遍历虚拟网络实例€中所有虚拟链路后可知只有虚拟链路(b,a)、 (b,e)、(b,f),满足其一端节点属于当前扩展分区G sub,而其另一端节点不属于当前扩展 分区Gsub,所以虚拟链路切割集KG,(b, e),(b,f)},根据本发明中计算虚拟 链路集合的分割映射代价的方法计算虚拟链路切割集的分割映射代价,得 MCf =42·
[0104] 假设将节点e加入到当前扩展分区Gsub= {b},得到如图3(3)所示划 分,当前扩展分区Gsub= {b,e},遍历虚拟网络实例G中所有虚拟链路后可知 只有虚拟链路(b,a)、(b,c)、(b,f)、(e,d)、(e,f),满足其一端节点属于当前 扩展分区G sub,而其另一端节点不属于当前扩展分区Gsub,所以虚拟链路切割集
},根据本发明中计算虚拟链 路集合的分割映射代价的方法计算虚拟链路切割集尽",(€)的分割映射代价MCk,,得 MC. =44;
[0105] 由于将节点a加入到当前扩展分区Gsub= {a}后得到的值最小,所以本发明 最后将节点a真正加入到当前扩展分区Gsub= {a},即可得到如图3 (1)所示的划分,此时当 前扩展分区Gsub= {b,a};
[0106] 3)当前扩展分区Gsub= {b,a},其节点的个数为2,小于虚拟网络实例G=的节点的 个数的一半(4),所以返回执行上述改进的图分区贪婪式扩展划分算法中的步骤b),这里 不再详细说明,最终得到如图4所示的划分,Gsub= {b,a,c};
[0107] 4)当前扩展分区Gsub= {b,a,c},其节点的个数为3,小于虚拟网络实例(?,的节 点的个数的一半(4),所以返回执行上述改进的图分区贪婪式扩展划分算法中的步骤b), 这里不再详细说明,最终得到如图5所示的划分,Gsub= {b,a,c,e};
[0108] 5)当前扩展分区Gsub= {b,a,c,e},其节点的个数为4,等于虚拟网络实例G:;的 节点的个数的一半(4),所以不再返回执行上述改进的图分区贪婪式扩展划分算法中的步 骤b),而是执行步骤f);
[0109] 6)对得到的划分进行合并调优,即对如图5所示的划分进行合并调优,遍历虚拟 网络实例CS中所有虚拟链路后可知只有虚拟链路(e,d),满足其一端节点属于当前扩展分 区G sub,而其另一端节点不属于当前扩展分区Gsub,而且该不属于当前扩展分区Gsub的节点d 的度值为1,所以将节点d加入到当前扩展分区Gsub,得到如图6所示的划分。至此,虚拟网 络实例的划分过程结束。
[0110] 由于本发明对图分区贪婪式扩展划分算法所作的改进并没有改变原算法贪婪地 扩展方式,所以改进的图分区贪婪式扩展划分算法最终得