基于Q学习的节点数量可变水声网络介质访问控制方法

文档序号:27548726发布日期:2021-11-24 21:50阅读:136来源:国知局
基于Q学习的节点数量可变水声网络介质访问控制方法
基于q学习的节点数量可变水声网络介质访问控制方法
技术领域
1.本发明涉及水声网络,尤其是涉及一种基于q学习的节点数量可变水声网络介质访问控制方法。


背景技术:

2.近年来,无论是在军事方面还是在民用方面,占据地球表面积71%的海洋日益成为世界关注的焦点。作为海洋物联网的重要组成部分,水声网络也逐渐成为重要的研究热点之一。
3.水声网络由大量电池供电的水声传感器节点构成,然而在海洋环境下,节点的电池更换难度大、成本高,且水声信道传播时延长、信道容量小、可靠性低。这要求水声网络进行数据传输必须采用高效节能的协议。水声网络介质访问控制协议是,多个用户/节点共享同一水声信道介质,分配介质使用权的协议,是水声网络进行正常工作的重要协议。
4.针对水声网络数据传输能耗高、海洋信道条件不稳定的问题,ahmed等(ahmed f,et al.,a time

slotted data gathering medium access control protocol using q

learning for underwater acoustic sensor networks[j].ieee access,2021,9(1):48742

48752.)从能耗和复杂度等角度出发,将q学习算法用于水声网络介质访问控制协议,允许节点智能选择退避槽,并相应调度数据包传输,以避免数据传输冲突。但该协议存在收敛速度慢、抗干扰能力弱、节点数量无法大动态变化等问题,且在节点数目较多的水声网络,其性能也会有所下降。当前,水声网络和人工智能的结合大部分集中在路由优化设计方面,仅有个别研究关注其在介质访问控制协议方面的研究。目前,q学习与水声网络介质访问控制协议结合的研究中,尚未见海洋信道环境动态变化导致可接入节点数量变化时,如何优化q学习设计,以确保水声网络维持高吞吐量、快学习速度和强鲁棒性的方法。


技术实现要素:

[0005]
本发明的目的在于针对水声网络能耗有限、吞吐量低和海洋信道环境大动态变化等问题,利用q学习算法,通过优化设计奖励机制,提供一种拥有高学习速度和节能的介质访问控制方法,在水声网络节点数量变化的情况下,仍可实现复杂度低、吞吐量高、抗干扰能力强的新型介质访问控制协议,优化水声信道介质资源使用权分配方案,提升网络性能的基于q学习的节点数量可变水声网络介质访问控制方法。
[0006]
本发明包括以下步骤:
[0007]
1)参数初始化:
[0008]
考虑一个水声网络,包含m个传感器节点(以下简称“节点”)和1个信宿(以下简称“信宿”),节点从海洋环境中感知信息,信宿负责搜集节点感知的声学数据。
[0009]
设信宿的数据搜集过程分为n个时隙,为确保每个节点都拥有一个时隙将数据发送给信宿,可令时隙数n与水声网络节点数m相等;设q学习算法中,应用于介质访问控制的q矩阵为m
×
n的矩阵,q矩阵的行m(m=1,2,

,m)表示节点序号,q矩阵的列n(n=1,2,

,n)
表示时隙序号;因此,q(m,n)表示节点m选择第n个时隙发送数据这一动作所对应的q值;q值越大表示节点m选择第n个时隙发送数据的优先度越大,即,节点m会选择q矩阵第m行中q值最高的时隙发送数据;若第m行中出现多个相同的最高q值,则会在第m行最高q值的多个时隙中随机选择一个时隙发送数据;为降低节点运算复杂度,每个节点内部只需存储表示自己选择发送时隙的那一行子矩阵,即节点m只需存储大小为1
×
n的子矩阵q
m
,其中q=[q1;q2;

;q
m


;q
m
‑1;q
m
];设每个节点的数据帧格式相同、长度相同,时隙的时间长度也相同,且时隙的时间长度等于水声最大传播时延加数据帧长度;
[0010]
初始化迭代次数i=0,最大迭代次数为k,初始q值表为m
×
n的零矩阵。
[0011]
2)当数据搜集开始,信宿记录各个时隙的接收情况,若在某个时隙内没有成功接收到完整数据,信宿会记下该时隙为未成功;在传输结束时,信宿会广播一个反馈信号给所有节点。该反馈信号,包含网络内的时隙数n和未成功的时隙信息(包括该时隙内数据冲突、因信道状态差无法成功接收数据、无节点发送数据/时隙空闲状态三种情况)。
[0012]
3)奖励机制设计:
[0013]
当收到信宿的反馈信号之后,节点m会根据发送时自身选择第n个时隙发送数据这一动作,结合反馈信号里的未成功时隙信息,针对q矩阵的第m行(即节点m内部存储q矩阵的子矩阵q
m
),获得不同的奖励子矩阵r
m
(m,:)。r
m
(m,:)表示节点m选择第n个时隙发送数据这一动作后结合反馈信号而获得的奖励子矩阵。
[0014]
奖励子矩阵r
m
(m,:)的设置如下:
[0015]

若节点m所选择的第n个时隙发送成功,且n≠n(即第n个时隙不是最后一个时隙),那么奖励子矩阵r
m
(m,:)中的元素r
m
(m,n)为正值+|ψ|,以确保q
m
(m,n)值增加。
[0016]

若节点m所选择的第n个时隙发送成功,且n=n(即第n个时隙是最后一个时隙),那么奖励子矩阵r
m
(m,:)中的元素r
m
(m,n)为负值

δ
·
|ψ|,其中δ属于(0,1),以确保q
m
(m,n)值缓慢变化,最后略低于零。
[0017]

若节点m所选择的第n个时隙发送失败,那么奖励子矩阵r
m
(m,:)中的元素r
m
(m,n)为0,以确保q
m
(m,n)值趋于0。
[0018]

若是节点m选择第n个时隙以外的时隙n
其它
发送成功,那么节点m的奖励子矩阵r
m
(m,:)中的元素r
m
(m,n
其它
)为负值

|ψ|,其中n
其它
≠n,以确保q
m
(m,n
其它
)值减小。
[0019]

若是节点m选择第n个时隙以外的时隙n
其它
发送失败,那么奖励子矩阵r
m
(m,:)中的元素r
m
(m,n
其它
)为0,其中n
其它
≠n,以确保q
m
(m,n
其它
)值趋于0。
[0020]
4)按照q学习公式q
m
(m,:)

(1

γ)
·
q
m
(m,:)+γ
·
r
m
(m,:)更新q值表,其中,γ是学习速率,取值为(0,1],子矩阵r
m
是大小与子矩阵q
m
相同的奖励子矩阵。
[0021]
5)i=i+1,若达到最大迭代次数k或q值表不再变化或反馈信号中无未成功的时隙信息,则到达稳定状态,否则重复步骤2)至步骤4)。
[0022]
6)根据迭代得到的最终q值表,让节点m选择q值最大所对应的时隙n
max
发送数据给信宿,完成水声信道介质资源使用权分配任务。
[0023]
7)在步骤2)至步骤4)中,当存在新的1个节点加入水声网络时(即,m=m+1),该新节点的序号为(m+1),节点(m+1)收到信宿的反馈信号后,执行以下步骤:
[0024]
7.1)根据反馈信号里的时隙数n,初始化新节点的子矩阵q
m+1
为1
×
(n+1)的零矩阵。
[0025]
7.2)接着,新节点尚未发送数据,根据反馈信号,对子矩阵q
m+1
进行更新,更新方法与步骤3)至步骤4)相同。
[0026]
7.3)在步骤7.2)中,更新后的子矩阵q
m+1
的最高值是q
m+1
(m+1,n+1),重复步骤2)开始新的一轮传输。信宿在第(n+1)个时隙接收到新节点(m+1)的数据后,更新反馈信号中的时隙数n为(n+1)。
[0027]
7.4)其它节点m收到更新后的反馈信号后,将q值表扩展为1
×
(n+1)子矩阵q
m
,第(n+1)个元素q
m
(m,n+1)值为0。
[0028]
7.5)对网络内除新节点以外的其余m个节点,执行步骤7.4)。
[0029]
8)在步骤2)~步骤4)中,当1个节点退出水声网络时(即,m=m

1),执行以下步骤:
[0030]
8.1)若在第n个时隙发送数据的节点m退出水声网络,则信宿在第n个时隙未接收到数据,标记第n个时隙为未成功,并通过反馈信号广播给网络中剩余的所有节点。
[0031]
8.2)剩余的所有节点根据反馈信号更新各自的子矩阵q
k
,其中k=1,2,

,m,且k≠m,经过步骤2)~步骤4)的多次迭代,所有节点的子矩阵q
k
(:,n)值为0。
[0032]
8.3)因为在最后一个时隙(即第n个时隙)发送数据的节点对应的q值略低于0,所以下一轮传输过程中,该节点将会在第n个时隙发送数据。
[0033]
8.4)执行了步骤8.3)后,信宿从第n个时隙未接收到数据,变为最后一个时隙(即第n个时隙)未接收到数据;当最后一个时隙未接收到数据的次数超过设置的最大阈值时,更新反馈信号中的网络时隙数n为(n

1)。
[0034]
8.5)其它节点k收到更新后的反馈信号后,删除q值表的第n列,将子矩阵q
k
删减为1
×
(n

1)。
[0035]
本发明兼顾吞水声网络吐量和能耗方面,根据前一轮的时隙分配情况,结合q学习算法,利用反馈信号中的信息对下一轮的时隙分配进行优化,从而提高水声数据传输的成功率和网络吞吐量。由于节点能量耗尽导致个别节点死亡、洋流运动导致节点位置漂移等原因,导致水声网络节点数量变化时,本发明所提方案解决节点减少时隙冗余的问题和节点增加时隙不足的问题,确保水声网络高吞吐量。
[0036]
本发明具有以下突出优点:
[0037]
1)在节点数量较多的大规模水声网络中,传统的介质访问控制协议为协调各个节点传输,能量消耗大、吞吐量低。本发明所述基于q学习的节点数量可变水声网络介质访问控制方法,针对q矩阵的一整行(即子矩阵)进行奖励子矩阵设计,而非逐个元素更新q矩阵,可提高q学习的效率,具有学习速度快、吞吐量高、能耗节约、抗干扰能力强的特点,适用于各种规模水声网络。
[0038]
2)针对海洋环境复杂,链路忽而失效忽而有效,以及水下节点在应用过程中被人为的回收和下放,水声网络节点数量变化,利用本发明所提q学习方案进行时隙分配,有效适应节点数量变化,维持高吞吐量,确保系统稳健性。
[0039]
3)将计算放在每个节点内部进行,每个节点只需存储q矩阵中的一行(即第m个节点只需存储子矩阵q
m
),降低节点的存储复杂度,提高运算速度;同时,对于信宿而言无需存储整个q值表,减少信宿的能耗,提高了网络整体寿命。
附图说明
[0040]
图1为水声网络拓扑图。图中包含1个信宿和20个节点。
[0041]
图2为本发明基于q学习的节点数量可变水声隙网络介质访问控制方法的q值变化示例。
[0042]
图3为本发明基于q学习的节点数量可变水声网络介质访问控制方法的节点传输过程流程图。
[0043]
图4为本发明基于q学习的节点数量可变水声网络介质访问控制方法的信宿工作流程图。
[0044]
图5为本发明基于q学习的节点数量可变水声网络介质访问控制方法的网络吞吐量在不同网络规模下的对比图。
[0045]
图6为本发明基于q学习的节点数量可变水声网络介质访问控制方法的发送成功率在不同网络规模下的对比图。
[0046]
图7为本发明基于q学习的节点数量可变水声网络介质访问控制方法在节点数增加时的网络吞吐量变化图。
[0047]
图8为本发明基于q学习的节点数量可变水声网络介质访问控制方法在节点数减少时的网络吞吐量变化图。
具体实施方式
[0048]
下面结合附图和具体实施例对本发明做详细描述。
[0049]
1)考虑一个水声网络,包含m=20个传感器节点(以下简称“节点”)和1个信宿(以下简称“信宿”),如图1所示。节点从海洋环境中感知信息,信宿负责搜集节点感知的声学数据。
[0050]
设信宿的数据搜集过程分为n=20个时隙,为确保每个节点都拥有一个时隙将数据发送给信宿,可令时隙数与水声网络节点数相等。设q学习算法中,应用于介质访问控制的q矩阵为20
×
20的矩阵,q矩阵的行m(m=1,2,

,m)表示节点序号,q矩阵的列n(n=1,2,

,n)表示时隙序号。q(m,n)表示节点m选择第n个时隙发送数据这一动作所对应的q值;q值越大表示节点m选择第n个时隙发送数据的优先度越大。若一行中出现多个相同的最高q值,则节点会在该行最高q值的多个时隙中随机选择一个时隙发送数据。为降低节点运算复杂度,每个节点内部只需存储表示自己选择发送时隙的那一行子矩阵,即节点m只需存储大小为1
×
n的子矩阵q
m
,其中q=[q1;q2;

;q
m


;q
m
‑1;q
m
]。如节点a存储q矩阵的第一行,记为q
a
。设每个节点的数据帧格式相同、长度相同,时隙的时间长度也相同,且时隙的时间长度等于水声最大传播时延加数据帧长度。
[0051]
初始化迭代次数i=0,最大迭代次数为k=20,初始q值表为20
×
20的零矩阵。
[0052]
2)当数据搜集开始,信宿记录各个时隙的接收情况。若在某个时隙内没有成功接收到完整数据,信宿会记下该时隙为未成功。在传输结束时,信宿会广播一个反馈信号给所有节点。该反馈信号,包含网络内的时隙数20和未成功的时隙信息(包括该时隙内数据冲突、因信道状态差无法成功接收数据、无节点发送数据/时隙空闲状态三种情况)。
[0053]
在本实施例中,如图2所示,设第10个时隙和第15个时隙发送数据未成功。
[0054]
3)奖励机制设计:
[0055]
当收到信宿的反馈信号之后,节点m会根据发送时自身选择第n个时隙发送数据这一动作,结合反馈信号里的未成功时隙信息,针对q矩阵的第m行(即节点m内部存储q矩阵的子矩阵q
m
),获得不同的奖励子矩阵r
m
(m,:)。r
m
(m,:)表示节点m选择第n个时隙发送数据这一动作后结合反馈信号而获得的奖励子矩阵。
[0056]
奖励子矩阵r
m
(m,:)的设置如下:
[0057]

若节点m所选择的第n个时隙发送成功,且n≠n(即第n个时隙不是最后一个时隙),那么奖励子矩阵r
m
(m,:)中的元素r
m
(m,n)为正值+|ψ|,以确保q
m
(m,n)值增加。
[0058]

若节点m所选择的第n个时隙发送成功,且n=n(即第n个时隙是最后一个时隙),那么奖励子矩阵r
m
(m,:)中的元素r
m
(m,n)为负值

δ
·
|ψ|,其中δ属于(0,1),以确保q
m
(m,n)值缓慢变化,最后略低于零。
[0059]

若节点m所选择的第n个时隙发送失败,那么奖励子矩阵r
m
(m,:)中的元素r
m
(m,n)为0,以确保q
m
(m,n)值趋于0。
[0060]

若是节点m选择第n个时隙以外的时隙n
其它
发送成功,那么节点m的奖励子矩阵r
m
(m,:)中的元素r
m
(m,n
其它
)为负值

|ψ|,其中n
其它
≠n,以确保q
m
(m,n
其它
)值减小。
[0061]

若是节点m选择第n个时隙以外的时隙n
其它
发送失败,那么奖励子矩阵r
m
(m,:)中的元素r
m
(m,n
其它
)为0,其中n
其它
≠n,以确保q
m
(m,n
其它
)值趋于0。
[0062]
在本实施例中,设q值范围在正负5之间,则ψ=5。节点a在第5时隙发送数据,节点b在第10时隙发送数据,节点c在第20时隙发送数据。第10时隙和第15时隙因为冲突发送未成功。其它时隙则属于发送成功。那么:节点a选择的第5个时隙发送成功,所以奖励子矩阵r
a
(a,:)中的元素r
a
(a,5)为+5,q
a
(a,5)值增加;节点c选择的第20个时隙发送成功,所以奖励子矩阵r
c
(c,:)中的元素r
c
(c,20)为

1,q
c
(c,5)值缓慢变化,最后略低于零;节点b选择的第10个时隙发送失败,所以奖励子矩阵r
b
(b,:)中的元素r
b
(b,10)为0,q
b
(b,10)值趋于0;节点a选择第5个时隙发送,第20个时隙发送成功,所以奖励子矩阵r
a
(a,:)中的元素r
a
(a,20)为

5,q
a
(a,20)值减小;节点a选择第5个时隙发送,第10个时隙发送失败,所以奖励子矩阵r
a
(a,:)中的元素r
a
(a,10)为0,q
a
(a,10)值趋于0。节点a的子矩阵q
a
的变化情况如图2所示。
[0063]
4)按照q学习公式q
m
(m,:)

(1

γ)
·
q
m
(m,:)+γ
·
r
m
(m,:)更新q值表,其中,γ是学习速率,取值为(0,1],设为0.2,子矩阵r
m
是大小与子矩阵q
m
相同的奖励子矩阵。
[0064]
5)i=i+1,若达到最大迭代次数k或q值表不再变化或反馈信号中无未成功的时隙信息,则到达稳定状态,否则重复步骤2)至步骤4)。
[0065]
6)根据迭代得到的最终q值表,让节点m选择q值最大所对应的时隙n
max
发送数据给信宿,完成水声信道介质资源使用权分配任务。
[0066]
7)在步骤2)至步骤4)中,当存在新的1个节点加入水声网络时(即,m=m+1),该新节点的序号为(m+1)。设稳定状态下,水声网络内节点数m=20,设新节点d加入水声网络,此时水声网络节点数为21。新节点d收到信宿的反馈信号后,执行以下步骤:
[0067]
7.1)根据反馈信号里的时隙数20,初始化新节点d的子矩阵q
d
为1
×
(20+1)的零矩阵。
[0068]
7.2)接着,新节点尚未发送数据,根据反馈信号,对子矩阵q
d
进行更新,更新方法与步骤3)~步骤4)相同。
[0069]
7.3)因为在稳定网络下,所有节点正常传输,时隙分配互不冲突,所以在步骤7.2)
中,所有节点都发送成功,更新后的子矩阵q
d
的最高值是q
d
(d,21),也就是新节点d会在第21个时隙发送数据。重复步骤2)开始新的一轮传输。信宿在第21个时隙接收到新节点d的数据后,更新反馈信号中的时隙数20为21。
[0070]
7.4)其它节点m收到更新后的反馈信号后,将q值表扩展为1
×
21子矩阵q
m
,第21个元素q
m
(m,21)值为0。
[0071]
7.5)对网络内除新节点d以外的其余20个节点,执行步骤7.4)。
[0072]
8)在步骤2)至步骤4)中,当1个节点退出原有20个节点的水声网络时,比如节点b退出水声网络。执行以下步骤:
[0073]
8.1)若在第10个时隙发送数据的节点b退出水声网络,则信宿在第10个时隙未接收到数据,标记第10个时隙为未成功,并通过反馈信号广播给网络中剩余的所有节点。
[0074]
8.2)剩余的所有节点根据反馈信号更新各自的子矩阵q
k
,除了节点b的子矩阵q
b
(节点b退出水声网络,因此不会收到反馈信号,存储在节点b内部子矩阵q
b
丢失),经过步骤2)至步骤4)的多次迭代,所有节点的子矩阵q
k
(:,10)值为0。
[0075]
8.3)设节点c原本在最后一个时隙(即第20个时隙)发送数据,所以节点c对应的q
c
(c,20)值略低于0,所以下一轮传输过程中,节点c将会在第10个时隙发送数据。
[0076]
8.4)执行步骤8.3)后,信宿从第10个时隙未接收到数据,变为第20个时隙未接收到数据。当最后一个时隙未接收到数据的次数超过设置的最大阈值时(比如第20个时隙连续3次没有接收到信号),则更新反馈信号中的网络时隙数20为19。
[0077]
8.5)其它节点m收到更新后的反馈信号后,删除q值表的第20列,将子矩阵q
m
删减为1
×
19。
[0078]
图3为本发明所述基于q学习的节点数量可变水声网络介质访问控制方法的节点传输过程流程图,对应上述步骤1)、步骤3)和步骤4)。图4为q本发明所述基于q学习的节点数量可变水声网络介质访问控制方法的信宿工作流程图,对应上述步骤2)、步骤7)和步骤8)。
[0079]
下面对本发明所述方法的可行性进行计算机仿真验证。
[0080]
在距离信宿1500米的有效通信范围内,随机分布5至50个节点。仿真参数设置如下:水下声速为1500米每秒,节点和信宿的传输速率为1000比特每秒,数据帧和反馈信号格式相同、长度均设为1000比特。时隙长度均相同,设为2秒。若节点往信宿发送的数据传输5次之后还失败,将丢弃该数据,重新发送新的数据。仿真时间为一个小时。对比算法为s

aloha和csma/ca。
[0081]
以下是本发明所述方法仿真结果的分析。
[0082]
1)网络吞吐量对比
[0083]
图5为本发明基于q学习的节点数量可变水声网络介质访问控制方法的网络吞吐量在不同网络规模下的对比图。由图5可见,本发明基于q学习的节点数量可变水声网络介质访问控制方法的网络吞吐量明显高于另外两种对比算法。利用q学习完成水声信道介质资源使用权分配任务,可减少控制帧的收发,缩短信道空闲时间,提高网络吞吐量。
[0084]
2)发送成功率对比
[0085]
图6为本发明基于q学习的节点数量可变水声网络介质访问控制方法的发送成功率在不同网络规模下的对比图。由图6可见,本发明基于q学习的节点数量可变水声网络介
质访问控制方法的发送成功率高于另外两种对比算法。在节点数量多的情况下,利用q学习分配水声信道介质资源,在稳定阶段能够有效避免冲突,提高成功率,因此网络吞吐量也较高。
[0086]
3)节点增加分析
[0087]
从10个节点开始,设每传输10次后有1个新节点加入水声网络,直到50个节点。图7为本发明基于q学习的节点数量可变水声网络介质访问控制方法的在节点数目增加网络吞吐量变化图。可见,当水声网络节点数目增加,本发明基于q学习的节点数量可变水声网络介质访问控制方法在不影响本身网络内节点正常传输的情况下,可对新加入节点进行有效水声信道介质资源分配,且学习速度快,经过1轮的学习水声网络吞吐量即可达到稳定。
[0088]
4)节点减少分析
[0089]
从50个节点开始,设每传输10次后有1个节点退出水声网络,直到剩余10个节点。图8为本发明基于q学习的节点数量可变水声网络介质访问控制方法的在节点数目减少网络吞吐量变化图。若最后1个时隙连续3次没有接收到信号,信宿将减少反馈信号中的网络内节点数目。可见,当水声网络节点数目减少,本发明基于q学习的节点数量可变水声网络介质访问控制方法,由于特殊的q值更新机制,最后1个时隙发送成功节点的q值略低于0,发送未成功的时隙q值趋0,因此可实现将时隙安排聚集在传输过程前面的效果。识别出水声网络节点数目减少后,通过删除最后1个时隙,以达到高吞吐量的效果。学习速度与退出水声网络节点本身的时隙有关:若退出水声网络的节点本身在最后1个时隙发送数据,则学习速度较快,约3轮;若退出水声网络的节点不在最后1个时隙发送数据,则学习速度较慢,约6轮。
[0090]
通过上述三种仿真方案对比可见,基于q学习的节点数量可变水声网络介质访问控制方法拥有更高的吞吐量和更高的成功率。一方面,介质访问控制协议能有效避免数据冲突,缩短空闲时间,提高网络吞吐量;另一方面,所设计的q学习算法中每个节点只需存储q矩阵中的一行,复杂度低,计算简单,抗干扰能力强,只需少量控制帧的收发,即可有效提高成功率。
[0091]
本发明将机器算法引入水声网络介质访问控制协议,利用q学习完成水声信道介质资源使用权分配任务,使水声网络能在节点数目变化的情况下,有效适应节点数量变化,维持高吞吐量,确保系统稳健性。当前,水声网络和人工智能的结合大部分集中在路由优化设计方面,仅有个别研究关注其在介质访问控制协议方面的研究。在海洋信道环境动态变化导致可接入节点数量变化时,如何结合q学习算法,优化设计奖励机制,确保水声网络维持高吞吐量、快学习速度和强鲁棒性的方法,具有重要应用价值。针对上述问题,本发明通过优化q学习设计,使节点可变水声网络的介质访问控制协议具有学习速度快、吞吐量高、能耗省、抗干扰能力强、适用于各类网络节点规模的优点。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1