1.一种软件定义网络中多控制器部署问题的改进粒子群算法,其特征在于,它包括以下步骤:步骤S1、获取网络拓扑G,以及其所需控制器的数量k和需要优化的性能指标函数f,随机生成多个粒子p,形成一个粒子群P,其中,每一个粒子p代表多控制器部署问题的一个解决方案(即每一个粒子代表一组控制器的位置);
步骤S2、随机设定每一个粒子p的速度矢量,记为v,并将速度矢量v所形成的集合记为V;
步骤S3、根据粒子p的当前位置及速度矢量,更新每个粒子p的位置,计算公式为:pnew = pold + v;
其中pnew为粒子p更新后的位置;
pold为粒子p当前的位置;
v为粒子p的速度矢量;
步骤S4、寻找每个粒子p的历史最优值和历史最差值,记为pbest和pworst,同时寻找整个粒子群P中所有粒子p的历史最优值和历史最差值,并记为gbest和gworst;
步骤S5、更新粒子p的速度矢量,更新公式为:
vnew= w*vold
+c1*r1*(pbest-pold)+c2*r2(gbest-pold)+c3* (1-r1)*(pold-pworst)+c4*(1-r2)*(pold-gworst);
其中,vnew为粒子p更新后的速度矢量;
w为粒子p更新速度矢量时的速度惯性矢量,计算公式为:w = 0.5 + (fgbest-fgworst)/fgbest;
其中,fgbest为整个粒子群P中所有粒子p的历史最优值gbest所对应的性能指标函数;
fgworst为整个粒子群P中所有粒子p的历史最差值gworst所对应的性能指标函数;
c1、c2、c3和c4为1;
r1和r2为在区间[0, 1]的随机数;
步骤S6、设置算法终止条件,循环迭代步骤S3-S6,并判断是否达到算法终止条件,若是,则终止循环迭代,并输出最后一次循环后的粒子p,即为多控制器部署问题的最优解决方案,若否,则将vnew作为步骤S3中的速度矢量v,继续循环迭代步骤S3-S6。
2.根据权利要求1所述的软件定义网络中多控制器部署问题的改进粒子群算法,其特征在于所述步骤S1中,粒子群P的产生步骤包括:步骤A1、对网络拓扑G进行整数编号,每一个编号代表一个节点,并计算各个节点之间的最短路径距离,存储到一个距离矩阵D中;
步骤A2、随机选取k个数量的编号,作为一个粒子p,也表示为一组控制器位置,在这些位置上同时部署控制器及交换机;
步骤A3、依据最短路径原则,为网络中的其他交换机分配控制器,确保每个交换机只与离其最近的控制器连接;
步骤A4、根据步骤A3确定的控制器位置、交换机位置及交换机与控制器之间的映射关系,结合距离矩阵D存储的网络中各个节点之间的最短路径距离,计算出控制器与交换机之间的总距离,取其平均值作为网络的平均延迟,作为评估粒子性能的指标;
步骤A5、循环步骤A2-A4,得到多个粒子p,组成粒子群P。
3.根据权利要求2所述的软件定义网络中多控制器部署问题的改进粒子群算法,其特征在于步骤S2中,速度矢量v为1*k的矢量。
4.根据权利要求1所述的软件定义网络中多控制器部署问题的改进粒子群算法,其特征在于所述步骤S3中,当速度矢量v不为整数时,对速度矢量V进行四舍五入取整处理。
5.根据权利要求1所述的软件定义网络中多控制器部署问题的改进粒子群算法,其特征在于在所述步骤S6中,当算法循环迭代次数超过50时,算法终止;或是当步骤S5中求得的gbest和gworst的数值相较于上一次循环迭代的gbest和gworst的数值,增幅均不超过10%时,算法终止。