输入:虚拟网 G V = ( N V , E V ) 、底层网络 G S = ( N S , E S ) 、发生故障的网络节点集合 F n 、发生故障的网络链路集合 F e 、节点总恢复资源 R e n 、链路总恢复资源 R e e 、迭代次数MG、粒子群规模N;

输出:发生故障的网络资源的恢复方案 X i

1) 构建故障资源和虚拟业务的二层关联模型。基于故障资源和虚拟业务的映射关系,构建二层关联模型;

2) 构建故障资源的二进制字符串 X i ,每位表示当前网络资源是否被恢复;

3) 参数初始化。初始化的参数包括迭代次数MG、粒子群规模N、随机生成粒子的初始位置 X i 、随机生成粒子的初始速度 V i

4) 计算初始位置。使用公式(5)计算每个粒子位置的适应度函数值 f ( X i ) ,并将最优的初始位置 X i 设置为全局最优初始位置 X g b ,将每个粒子的初始位置 X i 设置为个体最优初始位置 X p b

5) 粒子速度和粒子位置更新。判断各个粒子位置是否符合约束条件,并进行相应操作。如符合公式(1)到公式(4)的约束条件,使用公式(6)、公式(7)分别对粒子速度、粒子位置进行更新;如不符合约束条件,随机生成新的粒子位置和粒子速度。

6) 更新全局最优初始位置和个体最优初始位置。对全局最优初始位置 X g b 、个体最优初始位置 X p b 进行更新。当 f ( X i ) < f ( X p b ) 时,设置 X p b = X i ;当 f ( X p b ) < f ( X g b ) 时,设置 X g b = X p b

7) 判断是否达到结束条件。判断是否达到最大的迭代次数MG;如已达到最大迭代次数,输出最优的 X i 。否则,返回步骤5。