一种基于SARSA(λ)算法的定向天线自组网邻居发现方法与流程

文档序号:25597617发布日期:2021-06-22 17:17阅读:268来源:国知局
一种基于SARSA(λ)算法的定向天线自组网邻居发现方法与流程

本发明属于无线网络通信领域,特别涉及该领域中的一种基于sarsa(λ)算法的定向天线自组网邻居发现方法。



背景技术:

无线自组网的应用场景越来越复杂,定向天线以其传输距离远和抗干扰能力强的优势被用于其中。但是由于其有限的波束宽度,给网络中的邻居发现过程带来了极大的挑战。而sarsa(λ)算法能够根据过去在网络中扫描的信息,不断积累经验以更新策略,使得逐渐收敛到最佳策略,从而加快了邻居发现的速度。

目前邻居发现的算法大多数在全过程或者在部分过程使用全向天线,针对全过程使用定向天线的算法较少。其中主要分为随机性算法和规划性算法,随机性算法效率较低,受不同网络结构影响很大,规划性算法需要有中心节点做协调,会使网络变得更复杂。一些算法加入了gps等位置辅助设备以提高效率,但会使节点的功耗增加,不适用于无线自组网。



技术实现要素:

本发明所要解决的技术问题就是提供一种基于sarsa(λ)算法的定向天线自组网邻居发现方法,可在没有任何先验知识的情况下,使每个节点发现自己所有的邻居,具有效率高、自适应性强等特点。

本发明采用如下技术方案:

一种基于sarsa(λ)算法的定向天线自组网邻居发现方法,其改进之处在于,包括如下步骤:

步骤1:邻居发现过程开始时,每个节点初始化自己的q矩阵,随机选择初始状态s0和初始动作a0,其中s0指传输或接收模式,a0指天线波束方向;

步骤2:如果节点进入传输模式,在当前时隙t内发送hello消息;如果节点进入接收模式,接收机监听在当前天线波束方向内的消息,如果多个hello消息在此处发生了碰撞,奖励是1;如果成功监听到了hello消息,那么成功发现了对方,奖励是0;如果没有监听到任何消息,奖励是0;

步骤3:使用ε-贪婪策略选择下一个时隙的动作at+1,at+1指天线波束方向,以ε-贪婪策略参数ε的概率随机选择动作,以1-ε的概率选择q矩阵中在下一个状态下最大值所对应的动作

a指动作空间,

步骤4:计算一步预测误差δ,

δ=r+γq(st+1,at+1)-q(st,at)(3)

γ指折扣因子,

对于刚访问过状态的资格迹增大1,

e(st,at)=e(st,at)+1(4)

步骤5:对于所有状态和动作,根据一步预测误差δ更新q矩阵,

q(s,a)=q(s,a)+αδe(s,a)(5)

α指更新步长;

每个状态的资格迹以γλ的速率衰减,λ指衰减因子;

e(s,a)=γλe(s,a)(6)

步骤6:进入下一个时隙,回到步骤2,直到邻居发现过程结束后停止。

本发明的有益效果是:

本发明所公开基于sarsa(λ)算法的定向天线自组网邻居发现方法,采用自适应的sarsa(λ)算法机制和资格迹的方法,相比于完全随机算法,能够积累扫描中的经验,自适应地找到存在未被发现邻居的扇区,从而加快邻居的发现速度。不需要使用gps等位置辅助装置,功耗更低,也不需要任何先验信息,要求条件少,适应性更强。采用非中心化的多智能体强化学习(marl)算法,可避免中心化的marl算法中过大的状态和动作空间。

附图说明

图1是一对节点使用定向天线通信的示意图;

图2是多个节点向同一个节点发送消息而发生碰撞的示意图;

图3是本发明方法的流程示意图;

图4是本发明实施例1所公开方法与完全随机算法的邻居发现时间对比图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明公开的一种基于sarsa(λ)算法的定向天线自组网邻居发现方法,采用了非中心化的多智能体强化学习(marl)算法。将节点的天线波束方向划分为k个不重叠扇区。如图1所示,只有当两个节点的天线波束相互对准,同时一个处于传输模式且另一个处于接收模式时,才能正常通信。如图2所示,如果多个hello消息在此处发生了碰撞,导致本时隙的邻居发现失败。以传输/接收模式作为状态,以天线波束方向作为动作。定义节点i在时隙t内的状态是其中状态空间是s={传输模式,接收模式};动作是其中动作空间是a={1,2,3...k}。

sarsa(λ)算法利用了资格迹的方法,资格迹是为每个状态额外添加的储存变量。每到达一个状态,所有状态的资格迹都要衰减,同时当前状态的资格迹增加。所以资格迹能够记录最近访问的状态,并将当前回报分配给最近访问的状态,理论上资格迹能够加快收敛速度。

邻居发现过程开始后,节点初始化q矩阵,随机选择初始状态和动作。处于传输模式的节点,传输hello消息。处于接收模式的节点,节点的接收机监听hello消息,根据不同的监听结果得到不同的奖励。节点随机选择下一个时隙的状态,并使用ε-贪婪策略选择下一个时隙的动作。根据当前时隙和下一个时隙的状态的动作计算出误差,并记录资格迹。更新q矩阵和资格迹矩阵。最后,如果邻居发现过程未结束则进入下一个时隙。

综上所述,基于sarsa(λ)算法的网络邻居发现方法,通过sarsa(λ)算法的机制,从定向天线的扫描中获得奖励或惩罚,积累相应的经验,使所述的邻居发现方法具有效率高、自适应性强等特点。

实施例1,如图3所示,本实施例公开了一种基于sarsa(λ)算法的定向天线自组网邻居发现方法,包括如下步骤:

步骤1:邻居发现过程开始时,每个节点初始化自己的q矩阵,随机选择初始状态s0(传输/接收模式)和初始动作a0(天线波束方向);

步骤2:如果节点进入传输模式,在当前时隙t内发送hello消息;如果节点进入接收模式,接收机监听在当前天线波束方向内的消息,如果多个hello消息在此处发生了碰撞,奖励是1;如果成功监听到了hello消息,那么成功发现了对方,奖励是0;如果没有监听到任何消息,奖励是0;

步骤3:使用ε-贪婪策略选择下一个时隙的动作at+1(天线波束方向),以ε-贪婪策略参数ε的概率随机选择动作,以1-ε的概率选择q矩阵中在下一个状态下最大值所对应的动作

a指动作空间,

步骤4:计算一步预测误差δ,

δ=r+γq(st+1,at+1)-q(st,at)(3)

γ指折扣因子,

对于刚访问过状态的资格迹增大1,

e(st,at)=e(st,at)+1(4)

步骤5:对于所有状态和动作,根据一步预测误差δ更新q矩阵,

q(s,a)=q(s,a)+αδe(s,a)(5)

α指更新步长;

每个状态的资格迹以γλ的速率衰减,λ指衰减因子;

e(s,a)=γλe(s,a)(6)

步骤6:进入下一个时隙,回到步骤2,直到邻居发现过程结束后停止。

为了验证本实施例方法的可行性,选择一个10km×10km大小的区域,所有节点随机布置,节点的天线波束被分为6个扇区。采用一次握手,接收方收到hello消息后不回复,而作为发送方的节点无法发现邻居。

在本实施例中,sarsa(λ)算法的相关参数被设置为:更新步长α=0.5,折扣因子γ=0.5,ε-贪婪策略参数ε=0.5,衰减因子λ=0.1。

如图4所示,选取了500种拓扑不同的网络,网络中的节点发现所有邻居所用时隙在采用本实施例基于sarsa(λ)算法的邻居发现方法时,比采用完全随机的邻居发现方法更少,最多可减少14%。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1