一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种SDN环境下基于改进粒子群算法的多控制器部署方法与流程

2022-03-26 12:15:34 来源:中国专利 TAG:

一种sdn环境下基于改进粒子群算法的多控制器部署方法
技术领域
1.本发明涉及软件定义网络(sdn)技术领域,特别是一种sdn环境下基于改进粒子群算法的多控制器部署方法。
技术背景
2.近年来,随着信息通信技术的迅猛发展与普及,产生了一系列流量需求巨大且时延敏感的新兴业务,如智能驾驶、远程医疗等。传统网络由于架构落后等问题,难以满足运营商和广大用户群体的需求。因此,sdn(software defined networking,软件定义网络)应运而生,为解决这类问题提供了新思路。
3.sdn是一种逻辑集中控制的新网络架构,主要有以下特点:数据平面与控制平面解耦合,二者不再相互依赖;网络开放可编程,sdn为使用者提供了通用api接口,便于对网络进行管理。
4.早期sdn网络多为单控制器结构,但这种结构无法承担大型网络的管理任务,且存在致命的单点故障等问题。因此多控制器结构的sdn网络成为了主流。早在2012年,heller等人指出sdn多控制器部署问题是一个np-hard问题,并对多控制器部署问题做了一个总结:给定一个拓扑,需要部署多少个控制器以及控制器该部署在何处。2018年,sahoo则分别评估了经典粒子群算法和经典萤火虫算法在sdn多控制器部署问题中的性能。
5.综上所述,本发明提供一种基于改进粒子群算法的多控制器部署方法,旨在降低网络中的平均时延与维持负载均衡。


技术实现要素:

6.本发明的目的在于提供一种sdn环境下基于改进粒子群算法的多控制器部署方法,该方法将粒子群算法中的惯性权重式进行改进,能够降低网络中的平均时延。
7.假设网络拓扑中有n个节点,需要部署k个控制器,所有节点均代表一台交换机,且都可能被部署一个控制器。每一个粒子代表一种部署方案。
8.一种sdn环境下基于改进粒子群算法的多控制器部署方法,包括以下步骤:
9.步骤s1:网络拓扑初始化。获取sdn网络拓扑,计算网络中各节点间的最短距离,得到各节点间的时延。
10.步骤s2:社区检测划分控制域。采取社区检测方法,利用s1中得到的各节点间的最短距离,将网络划分为k个不同的控制域。
11.步骤s3:初始化粒子种群。利用s2中划分好的控制域,将控制器的数量与控制域的数量设为相同,即k。在每一个控制域内随机取一个节点作为控制器部署的初始位置,并将其设为局部最优pbest和全局最优gbset。
12.步骤s4:计算粒子群中的各粒子的适应值,并更新局部最优pbest和全局最优gbset。
13.步骤s5:根据公式对粒子的速度v和位置x进行更新。
14.步骤s6:设置迭代结束条件,判断是否迭代结束,结束则进入s7,否则进入s4。
15.步骤s7:输出控制器部署方案及其适应值。
16.进一步,所述步骤s1具体包括:
17.s1.1:对网络拓扑中的所有节点进行编号,即(1,2,3,

,n)。
18.s1.2:根据现有网络拓扑的具体条件,得出各相邻节点间的距离。
19.s1.3:应用图论中的dijkstra算法可以求得各节点间的最短路径。
20.s1.4:将各节点间最短路径对应的最短距离除以三分之二倍光速,即可得出各节点间的时延。
21.所述步骤s2是将所有节点划分为k个社区,社区检测已有成熟算法,如louvain算法等。为了尽量保持网络的负载均衡,设定节点最多的社区与节点最少的社区的节点数之差为2,即不同控制域内交换机的的最大差值为2。
22.所述步骤s3具体包括:
23.s3.1:设定粒子群的种群大小,迭代最大次数,学习因子c1,c2,设定粒子的维数为k,惯性权重的最大值ω
max
,惯性权重的最小值ω
min

24.s3.2:在k个控制域内分别随机取一个节点作为初始位置。
25.s3.3:将初始位置设为局部最优pbest和全局最优gbset。
26.所述步骤s4具体包括:
27.s4.1:计算粒子适应值,粒子的适应度函数可由为步骤1中所得的时延平均值得出,本发明采用控制器-交换机平均时延与控制器-控制器平均时延之和作为适应值函数,总平均时延t
total-ave
的计算公式如下:
28.t
total-ave
=t
d-ave
t
c-ave
29.其中t
d-ave
为交换机与控制器的平均时延,t
c-ave
为控制器与控制器间的平均时延。
30.s4.2:判断本次迭代适应值与pbest的大小关系,若本次适应值较小,则将本次适应值设为pbest,并设为局部最优位置。再与全局最优gbset比较,若本次适应值较小,则将本次适应值设为gbset,并设为全局最优位置。若计算所得适应值相比原pbest较大,则本次迭代没有增益,不需更新pbest和gbset。
31.所述步骤s5具体包括:
32.s5.1:对粒子的速度进行更新,经典粒子群算法中,对于粒子pi的第j维分量,其(m 1)次更新可由下式得出:
[0033][0034]
经典粒子群算法通常采用的惯性权重式:
[0035][0036]
改进粒子群算法需要设定一个新的惯性权重,定义ρ为反馈因子:
[0037][0038]
fitness
t-1
为上一次迭代的适应度,fitness
t
为本次迭代的适应度值。同时,随着迭代次数t的增加,所有粒子的适应度都接近全局最优值,为防止陷入局部最优解,必须添
加递减因子e-αt
,该因子可以根据α调整ρ的衰减速度,可以根据需要将其设定为固定值。因此本发明使用的惯性权重式为:
[0039]
ω
fit
=(1 e-αt
ρ)*ω
[0040]
s5.2:对粒子的位置进行更新,经典粒子群算法中,对于粒子pi的第j维分量,其(m 1)次更新可由下式得出:
[0041][0042]
所述步骤s6,检测迭代是否结束,设定迭代最大次数为60次,当检测到迭代次数t为60时,进入步骤s7。否则返回至步骤s4。
[0043]
所述步骤s7,此时迭代已经结束,输出当前全局粒子最佳位置gbset及其适应值,即多控制器部署方案。
[0044]
与现有技术相比,本发明的有益效果在于:本发明基于改进粒子群算法提出一种sdn环境下的多控制器部署方法,可以有效降低网络的总平均时延并保持负载均衡。
附图说明
[0045]
为使本发明的目的、技术方案和有益效果更加清楚,本发明提供如下附图:
[0046]
图1为本发明所述方法的流程图。
[0047]
图2为某一网络拓扑初始化示意图。
具体实施方式
[0048]
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用于解释本发明,并不用于限定本发明。
[0049]
参照图1,一种sdn环境下基于改进粒子群算法的多控制器部署方法,包括以下步骤:
[0050]
步骤s1:网络拓扑初始化。获取sdn网络拓扑,计算网络中各节点间的最短距离,得到各节点间的时延。
[0051]
步骤s2:社区检测划分控制域。采取社区检测方法,利用s1中得到的各节点间的最短距离,将网络划分为k个不同的控制域。
[0052]
步骤s3:初始化粒子种群。利用s2中划分好的控制域,将控制器的数量与控制域的数量设为相同,即k。在每一个控制域内随机取一个节点作为控制器部署的初始位置,并将其设为局部最优pbest和全局最优gbset。
[0053]
步骤s4:计算粒子群中的各粒子的适应值,并更新局部最优pbest和全局最优gbset。
[0054]
步骤s5:根据公式对粒子的速度v和位置x进行更新。
[0055]
步骤s6:设置迭代结束条件,判断是否迭代结束,结束则进入s7,否则进入s4。
[0056]
步骤s7:输出控制器部署方案及其适应值。
[0057]
进一步,所述步骤1的具体如下:
[0058]
s1.1:对网络拓扑中的所有节点进行编号,即(1,2,3,

,n)。
[0059]
s1.2:根据现有网络拓扑的具体条件,得出各相邻节点间的距离。
[0060]
s1.3:应用图论中的dijkstra算法可以求得各节点间的最短路径。
[0061]
s1.4:将各节点间最短路径对应的最短距离除以三分之二倍光速,即可得出各节点间的时延。
[0062]
所述步骤s1运行完毕后,网络拓扑形式参照图2。
[0063]
所述步骤s2是将所有节点划分为k个社区,社区检测已有成熟算法,如louvain算法等。为了尽量保持网络的负载均衡,设定节点最多的社区与节点最少的社区的节点数之差为2,即不同控制域内交换机的的最大差值为2。
[0064]
所述步骤s3具体包括:
[0065]
s3.1:设定粒子群的种群大小,迭代最大次数,学习因子c1,c2,设定粒子的维数为k,惯性权重的最大值ω
max
,惯性权重的最小值ω
min

[0066]
s3.2:在k个控制域内分别随机取一个节点作为初始位置。
[0067]
s3.3:将初始位置设为局部最优pbest和全局最优gbset。
[0068]
所述步骤s4具体包括:
[0069]
s4.1:计算粒子适应值,粒子的适应度函数可由为步骤1中所得的时延平均值得出,本发明采用控制器-交换机平均时延与控制器-控制器平均时延之和作为适应值函数,总平均时延t
total-ave
的计算公式如下:
[0070]
t
total-ave
=t
d-ave
t
c-ave
[0071]
其中t
d-ave
为交换机与控制器的平均时延,t
c-ave
为控制器与控制器间的平均时延。
[0072]
s4.2:判断本次迭代适应值与pbest的大小关系,若本次适应值较小,则将本次适应值设为pbest,并设为局部最优位置。再与全局最优gbset比较,若本次适应值较小,则将本次适应值设为gbset,并设为全局最优位置。若计算所得适应值相比原pbest较大,则本次迭代没有增益,不需更新pbest和gbset。
[0073]
所述步骤s5具体包括:
[0074]
s5.1:对粒子的速度进行更新,经典粒子群算法中,对于粒子pi的第j维分量,其(m 1)次更新可由下式得出:
[0075][0076]
经典粒子群算法通常采用的惯性权重式:
[0077][0078]
改进粒子群算法需要设定一个新的惯性权重,定义ρ为反馈因子:
[0079][0080]
fitness
t-1
为上一次迭代的适应度,fitness
t
为本次迭代的适应度值。同时,随着迭代次数t的增加,所有粒子的适应度都接近全局最优值,为防止陷入局部最优解,必须添加递减因子e-αt
,该因子可以根据α调整ρ的衰减速度,可以根据需要将其设定为固定值。因此本发明使用的惯性权重式为:
[0081]
ω
fit
=(1 e-αt
ρ)*ω
[0082]
s5.2:对粒子的位置进行更新,经典粒子群算法中,对于粒子pi的第j维分量,其(m
1)次更新可由下式得出:
[0083][0084]
所述步骤s6,检测迭代是否结束,设定迭代最大次数为60次,当检测到迭代次数t为60时,进入步骤s7。否则返回至步骤s4。
[0085]
所述步骤s7,此时迭代已经结束,输出当前全局粒子最佳位置gbset及其适应值,即多控制器部署方案。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献