衡量交换机的重要性参数
每个交换机连接的节点度数的多少代表着交换机重要程度的不同,将控制器和交换机连接的拓扑结构的度量指标节点度数作为衡量交换机重要程度的重要参数,设拓扑结构度量指标节点度数用来表示,则连接交换机的回报函数为:
上式表示交换机的重要程度,越大,则表示交换机越重要。交换机重要性参数值越大,代表交换机重要性程度越高。只是一个参数,根据实际情况来定,没有实际意义。根据特定的网络拓扑结构图,本课题将定义交换机的重要程度门限值为。门限值的具体值由实际情况而定。
(1)
当交换机重要性参数小于等于门限值时,则该交换机为普通交换机,对于普通交换机,主要考虑dijkstra算法进而引入迁移代价,从而实现负载均衡,由于普通交换机的重要程度对迁移影响程度为,因此不再考虑它。
(2)
当交换机重要性参数大于门限值时,该交换机为重要交换机,值越大,交换机重要性程度越高。对于重要交换机的迁移,不仅要考虑迁移代价,而且更应考虑重要交换机的安全性。基于保证交换机的安全,确保同一核心控制器下连接的重要交换机数量最小化,迁移交换机时将重要交换机迁移到不同的控制器下。
状态空间定义
智能体合理选择动作的基础是先划分状态空间,对于SDN控制器负载均衡算法来说,状态空间应该是所有控制器构成的集合,即基于Q-learning算法的SDN状态空间是由每个控制器构成状态集合。
动作空间定义
对于基于Q-learning算法的SDN控制器负载均衡算法,所有交换机到核心控制器的连接作为动作空间。每一次迁移每个状态只能选择一个动作。所以在控制器结构中,根据就近原则,设置结构中有个交换机和个控制器,预先随机把个交换机分配给个核心控制器管理,随后依据Q-learning算法进行迁移。
(1) 如果交换机为普通交换机,引入迁移代价的概念,即当需要迁移的时候,采用dijkstra算法(狄克斯特拉算法是从一个顶点到其余各顶点的最短路径算法,解决的是有向图中最短路径问题),即使交换机负载很小的时候,它也并不会迁移到较远的核心控制器的管理之下。
如果交换机为重要交换机时,首先根据根据dijkstra 算法和网络拓扑图的拓扑结构度量指标节点度数求出Q值最大的控制器,如果Q值最大的控制器只有一个,则进行交换机的连接,如果Q值最大的控制器有多个,则选择连接重要交换机数目最少的控制器进行连接。
回报函数
回报函数是指智能体在与环境的不断交互中,环境对智能体动作的好坏产生的一种评价[4]。控制器从动作集合中选择某一动作之后,网络环境会对这个动作做出评价,给予一个奖励值并发生状态转移。控制器从某个动作得到的回报函数值越大,那么之后控制器再次选择该动作的概率就会增加。从某个动作得到的回报函数值越小,那么之后控制器再次选择该动作的概率就会减少。基于回报函数的设计,希望分配给每个核心控制器的重要交换机的数目最小化,回报函数如下(12)表示为:
(12)
式中:在状态动作下, 表示单个交换机的负载; 是指标号为的核心控制器下所有交换机的负载总和。为衡量该交换机重要程度的重要性参数。该值越大,交换机重要性程度越大,回报函数越大。为一个参数,越大,代表交换机重要程度对于回报函数影响越大。回报函数越大,迁移可能性越大。
搜索策略
在Q-learning算法中我们定义一个值函数,表示我们在状态下执行动作获得的未来奖励,并进行迭代运算继续优化函数。有了这个函数就可以很方便的进行决策,从而采取值最高的动作,用公式表示为:
(13)
其中(13)式表示一种策略,策略即为在某个状态下选择动作的规则,如果最大值对应的控制器只有一个,则会采取值最高的动作作为最优策略,如果最大 值对应的控制器为多个,则会采取采取值最高并且所连接所有控制器中连接重要交换机最少的动作作为最优策略。
K
R
a
h
T
h
T
K
R
0
K
R
h
T
K
R
{
}
1234
,,,
SCCCC
=
n
m
n
m
(
)
,
rsa
(
)
,
rsa
(
)
(
)
(
)
(
)
O r d i n a r y switch
,
Important switch
1,,
j
j
Si
Si
C
Si
K
Si
C
L
L
rsa
L
hR
L
kLn
ì
ï
ï
ï
=
í
ï
+
ï
ï
î
=
å
å
S
a
p
Si
L
j
Si
C
L
å
j
K
R
K
R
h
h
(
)
,
rsa
(
)
,
Qsa
S
(
)
1,2,,
K
Rpkn
a
==
L
(
)
,
aij
Q
Q
Q
(
)
(
)
(
)
,
,
,
a,=argmax,argmin
ZSj
ij
ij
aij
SSCC
ijQsaab
ÎÎ
æö
æö
ç÷
Ç
ç÷
ç÷
ç÷
èø
èø
å
S
(
)
,
aij
Q
Q
(
)
,
aij
K
R
Q
Q
(
)
,
aij