基于Q-Learning算法获取无线体域网最优路径的方法与流程

文档序号:19792224发布日期:2020-01-24 14:30阅读:379来源:国知局
基于Q-Learning算法获取无线体域网最优路径的方法与流程

本发明属于无线传感器网络控制领域,特别涉及一种基于q-learning算法获取无线体域网最优路径的方法。



背景技术:

体域网,是通过在人体上布置一些小型传感器实现通信功能,并由体域网协调器联系这些传感器组成的一种网络。传感器可分为体表传感器和体内传感器,而协调器是作为连接体域网和外部网络的一种网关,数据在这些传感器之间利用无线信道进行安全准确的通信,因而体域网也可以称作无线体域网。无线体域网传感器小巧简易,可以负载在人体上从而可以保持一直进行数据传输处理,因为生理信号的独特性,身份认证的安全性得到了很大的提高。无线体域网搭建简单,占用空间小,所需要的材料成本低,所带来的性能好,可靠性高,还具有一定的安全性,因此无线体域网在生物领域各方面应用都有着广阔的前景,对人们的生活意义重大。

无线体域网路由算法是为了解决节点能耗问题,通过采用高效节能的路由协议,得出最优能量耗散传输路径,使得节点的能量消耗减小,增加网络的运行时间。目前无线体域网常用的有能量感知路由协议,该协议以数据传输中的能量消耗为标准,选择最优网络路径。通常根据具体的指标选择不同,能量感知路由协议可以分为单个数据分组所需最小能量路由,最小总发射功率路由,最大总可用电池容量路由,最小电池消耗路由,最小-最大电池消耗路由等。能量感知路由容易陷入单一路径,使得路径外的节点没有被充分利用,对于无线体域网整体寿命来说,效果不是非常理想。此外,传统的adhoc网络路由协议是将路径跳数和时延作为衡量指标,但是在无线体域网中容易消耗过多的节点能量,降低网络寿命。



技术实现要素:

本发明的目的在于提供一种获取无线体域网最优路径的方法,在考虑接收节点剩余能量和路径传输损耗的情况下,有效延长无线体域网网络节点生存周期,找到既能保证链路质量,又能考虑到整体数据传输网络的能量消耗的转发节点的最优选择。

实现本发明目的的技术解决方案为:一种基于q-learning算法获取无线体域网最优路径的方法,包括以下步骤:

步骤1、初始化无线体域网参数;

步骤2、设定q-learning算法中学习率α和折扣因子γ的值,其中α,γ∈[0,1];

步骤3、构建评价矩阵用于寻找最优路径,并利用步骤1初始化的无线体域网参数求取评价矩阵的初始值,之后在路径选择过程中不断更新评价矩阵,并利用q-learning算法不断学习q矩阵;

步骤4、根据学习后的q矩阵获取发送节点到目标节点sink的最优路径。

进一步地,步骤1所述初始化无线体域网参数,包括节点的数量、发送节点的设定、接收节点的设定、节点连接关系矩阵conx、接收节点剩余能量矩阵p以及节点距离矩阵d和路径损耗矩阵s。

进一步地,步骤3所述构建评价矩阵,并利用步骤1初始化的无线体域网参数求取评价矩阵的初始值,之后在路径选择过程中不断更新评价矩阵,并利用q-learning算法不断学习q矩阵,具体为:

步骤3-1、根据无线体域网参数构建评价矩阵r:

r=f(p,s)=a×p+b×s

式中,a、b分别为接收节点剩余能量矩阵p、路径损耗矩阵s的比重参数;

步骤3-2、利用步骤1初始化的无线体域网参数求取评价矩阵的初始值,初始化学习轮次数m=0,并初始化q矩阵,公式如下:

qij=0

式中,qij表示从节点i发送至节点j对应的q值;

步骤3-3、随机选择一个发送节点i,通过节点连接关系矩阵conx找出下一个可能动作的集合,即所有可能的接收节点的集合;

步骤3-4、利用贪婪策略从步骤3-3的集合中选取接收节点j;

步骤3-5、求取当前接收节点j的剩余能量值,并由此更新矩阵p,从而更新评价矩阵r;特殊地,若发送节点i与接收节点j对应的conxij为0,则将矩阵p和s中对应的值pij、sij置为0,从而r矩阵中对应的值rij更新为0;特殊地,若pij小于预设阈值plow,则当前接收节点j退出工作,conxij、pij、sij、rij均置为0;

步骤3-6、获取当前接收节点j到其它节点的最大q值qmax,结合更新后的评价矩阵r中的rij和qmax更新q矩阵,所用公式为:

qijnew=qijold+α[rij+γqmax]

式中,qijold表示更新前的q矩阵,qijnew表示更新后的q矩阵;

步骤3-7、判断当前接收节点j是否为sink节点,若是,令m递增1,并判断m是否大于设定的学习轮次数阈值m,若大于,则结束学习q矩阵,反之返回步骤3-3;否则返回步骤3-4。

进一步地,步骤4所述根据学习后的q矩阵获取发送节点到目标节点sink的最优路径,具体为:

步骤4-1、将q矩阵中的所有q值取倒数,q值为0的倒数取无穷大,并将q值倒数视为节点间的距离;

步骤4-2、设定发送节点i,构建两个为空的集合f和h,并将发送节点i加入集合f中,其余所有节点加入集合h中;

步骤4-3、从集合h中寻找conxij=1的所有节点,之后从这些节点中选取qij最小的节点j,并将该节点从集合h中剔除且加入至集合f中,由此获得发送节点i到节点j的最短路径;

步骤4-4、从集合h中寻找conxjk=1的所有节点,针对这些节点中的每一个节点k,求取qij与qjk的和qsum以及qik,选取qsum和qik中的较小值,并将较小值赋值给qik且加入集合l中;

步骤4-5、选取集合l中的最小值对应的节点q,并将该节点从集合h中剔除且加入至集合f中,由此获得发送节点i到节点q的最短路径;

步骤4-6、将节点q视为新的节点j,重复步骤4-4至4-6,直至集合f包含所有节点;

步骤4-7、从上述过程获得的所有路径中选取发送节点i至sink节点的最短路径,即为最优路径。

本发明与现有技术相比,其显著优点为:1)在选择路径时考虑了链路路径传输损耗,使得传输的数据准确性提高,保证了信道质量;2)在选择路径时考虑了每一段链路的接收端节点剩余能量,选择的路径可以让网络中各个节点的能量损耗均匀下降,从而延长整个无线体域网节点的生存周期。

下面结合附图对本发明作进一步详细描述。

附图说明

图1为本发明基于q-learning算法获取无线体域网最优路径的方法流程图。

图2为本发明实施例中仿真实验人体模型图。

图3为本发明实施例中仿真实验节点连接图。

图4为本发明实施例中仿真实验编号9节点发送数据的最优路径示意图。

图5为本发明实施例中仿真实验编号22节点发送数据的最优路径示意图。

图6为本发明实施例中仿真实验编号4节点发送数据的路径示意图,其中,图(a)为路径[4,7,10,12,14]的示意图,图(b)为路径[4,7,10,11,14]的示意图。

图7为本发明实施例中仿真实验编号16节点发送数据的路径示意图,其中,图(a)为路径[16,17,9,10,11,14]的示意图,图(b)为路径[16,6,7,11,14]的示意图。

图8为本发明实施例中仿真实验转发节点数与网络生存周期示意图。

具体实施方式

结合图1,本发明一种基于q-learning算法获取无线体域网最优路径的方法,包括以下步骤:

步骤1、初始化无线体域网参数;

步骤2、设定q-learning算法中学习率α和折扣因子γ的值,其中α,γ∈[0,1];

步骤3、构建评价矩阵用于寻找最优路径,并利用步骤1初始化的无线体域网参数求取评价矩阵的初始值,之后在路径选择过程中不断更新评价矩阵,并利用q-learning算法不断学习q矩阵;

步骤4、根据学习后的q矩阵获取发送节点到目标节点sink的最优路径。

进一步地,在其中一个实施例中,步骤1中初始化无线体域网参数,包括节点的数量、发送节点的设定、接收节点的设定、节点连接关系矩阵conx、接收节点剩余能量矩阵p以及节点距离矩阵d和路径损耗矩阵s;

其中,节点连接关系矩阵conx的初始化公式为:

接收节点剩余能量矩阵p的初始化公式为:

式中,sink为自定义设置的目标节点,pre-start为sink节点的初始能量,pse-start为其余节点初始能量;

节点距离矩阵d的初始化公式为:

式中,dij为节点i与节点j之间的直线距离,(x*,y*)表示节点“*”的坐标;

路径损耗矩阵s与节点距离矩阵d成正相关,其初始化公式为:

式中,k为比例系数,inf表示距离无限大。

进一步地,在其中一个实施例中,步骤3中构建评价矩阵,并利用步骤1初始化的无线体域网参数求取评价矩阵的初始值,之后在路径选择过程中不断更新评价矩阵,并利用q-learning算法不断学习q矩阵,具体为:

步骤3-1、根据无线体域网参数构建评价矩阵r:

r=f(p,s)=a×p+b×s

式中,a、b分别为接收节点剩余能量矩阵、路径损耗矩阵的比重参数;

步骤3-2、利用步骤1初始化的无线体域网参数求取评价矩阵的初始值,初始化学习轮次数m=0,并初始化q矩阵,公式如下:

qij=0

式中,qij表示从节点i发送至节点j对应的q值;

步骤3-3、随机选择一个发送节点i,通过节点连接关系矩阵conx找出下一个可能动作的集合,即所有可能的接收节点的集合;

步骤3-4、利用贪婪策略从步骤3-3的集合中选取接收节点j;

步骤3-5、求取当前接收节点j的剩余能量值,并由此更新矩阵p,从而更新评价矩阵r;特殊地,若发送节点i与接收节点j对应的conxij为0,则将矩阵p和s中对应的值pij、sij置为0,从而r矩阵中对应的值rij更新为0;特殊地,若pij小于预设阈值plow,则当前接收节点j退出工作,conxij、pij、sij、rij均置为0;

步骤3-6、获取当前接收节点j到其它节点的最大q值qmax,结合更新后的评价矩阵r中的rij和qmax更新q矩阵,所用公式为:

qijnew=qijold+α[rij+γqmax]

式中,qijold表示更新前的q矩阵,qijnew表示更新后的q矩阵;

步骤3-7、判断当前接收节点j是否为sink节点,若是,令m递增1,并判断m是否大于设定的学习轮次数阈值m,若大于,则结束学习q矩阵,反之返回步骤3-3;否则返回步骤3-4。

进一步地,在其中一个实施例中,步骤3-4中利用贪婪策略从步骤3-3的集合中选取接收节点j,具体为:以β的概率随机选取接收节点j,以1-β的概率选取最大的qij值对应的接收节点j,其中0<β<1。

进一步地,在其中一个实施例中,步骤3-5中求取当前接收节点j的剩余能量值pijnew,所用公式为:

pijnew=pijold-δp

式中,pijold为接收节点j原有剩余能量值,δp为接收节点j接收信号所消耗的能量。

进一步地,在其中一个实施例中,步骤4中根据学习后的q矩阵获取发送节点到目标节点sink的最优路径,具体为:

步骤4-1、将q矩阵中的所有q值取倒数,q值为0的倒数取无穷大,并将q值倒数视为节点间的距离;

步骤4-2、设定发送节点i,构建两个为空的集合f和h,并将发送节点i加入集合f中,其余所有节点加入集合h中;

步骤4-3、从集合h中寻找conxij=1的所有节点,之后从这些节点中选取qij最小的节点j,并将该节点从集合h中剔除且加入至集合f中,由此获得发送节点i到节点j的最短路径;

步骤4-4、从集合h中寻找conxjk=1的所有节点,针对这些节点中的每一个节点k,求取qij与qjk的和qsum以及qik,选取qsum和qik中的较小值,并将较小值赋值给qik且加入集合l中;

步骤4-5、选取集合l中的最小值对应的节点q,并将该节点从集合h中剔除且加入至集合f中,由此获得发送节点i到节点q的最短路径;

步骤4-6、将节点q视为新的节点j,重复步骤4-4至4-6,直至集合f包含所有节点;

步骤4-7、从上述过程获得的所有路径中选取发送节点i至sink节点的最短路径,即为最优路径。

下面结合实施例对本发明作进一步详细的描述。

实施例

本实施例中网络模型假设建立在一个成人身体上,整个网络包括了7个数据发送节点(分别编号为2,4,16,9,20,22,26),1个数据接收节点sink(编号为14)和18个数据转发节点。接收节点放置在人体模型的左侧腰部,数据发送节点分别放置在左耳,脖颈,左手背,右手肘,右腹,右膝盖,左脚踝,具体为如图2所示。

各个节点之间的连接关系如图3所示,当两节点之间有虚线连接时,表示两节点可以建立起通信链路,实现相互的数据传输。本实施例在仿真时建立一个26×26的矩阵conx,矩阵的行i表示信号发射节点的编号,而矩阵的列j作为信号接收节点的编号,当矩阵conxij值为1时,表示此行列编号的链路i-j可以联通。

在仿真中建立一个简易的能量模型,先假设接收节点初始能量有pre-start,而其余节点初始能量有pse-start,同时在每一段数据传输的链路中,接收节点需要消耗preceive能量,而发射节点需要消耗psend能量。在仿真时建立一个26×26的矩阵p,矩阵的行i表示信号发射节点的编号,而矩阵的列j作为信号接收节点的编号,则矩阵中每一项数据pij可以表示当此行列编号的链路i-j建立起来的时候,接收节点方所剩余的能量。设置当pij小于plow时,此时接收节点j停止工作,将矩阵conx中以j为行和以j为列的数据都置为0,表示此时节点j不再与其他节点建立起链路。

仿真链路路径损耗与链路路径长度成一定比例,因此仅简单考虑路径损耗只与路径长度相关。利用matlab编程,根据每个节点在模型中的横纵坐标根据距离公式求出每两节点之间的实际距离,建立一个26×26的距离矩阵d,再根据相关公式运算求出损耗矩阵s。

考虑每段链路传输时的路径损耗和接收节点的剩余能量,在能均匀消耗整个网络节点能量延长生存周期的情况下采取路径损耗总和最小的最优路径。因此通过相关函数关系把接收节点剩余能量矩阵与路径损耗矩阵组合成初始状态矩阵r,相关函数关系是先把接收节点剩余能量矩阵和路径损耗矩阵的数值转换到相同范围内,再根据设计比重参数a,b调整大小。然后把r初值矩阵代入q-learning算法中,经过得到q矩阵后再求倒数,从而可以利用最小路径算法dijkstra得到最优路径。综上所述,算法具体如图1所示。

利用matlab编写基于以上算法的脚本和函数,成功实现了用作图工具直观的展示出来了无线体域网模型中数据传输的最优路径以及随着传输数据后节点的能量损耗,为了充分利用网络中的资源从而延长网络的生产周期,所做出的最优路径的变化。

当处于初始状态时,由于各可能路径上节点的剩余能量相同,所以基于最小路径损耗和来选择最优路径。例如由编号9节点发送数据的最优路径为[9,13,14]如图4所示,由编号22节点发送数据的最优路径为[22,24,14]如图5所示。

由编号4节点发送数据时,有两种路径选择,分别为:如图6(a)所示的[4,7,10,12,14]和如图6(b)所示的[4,7,10,11,14]。当两链路中的节点能量都还没消耗时,两种路径都是有可能的。但在基于之前数据传输路径为[9,13,14]的情况下,编号13节点的剩余能量小于编号11节点,同时链路损耗相近,从而对应的q值矩阵小,所以此时最优路径为[4,7,10,11,14]。

如图7(a)所示,原本从编号16发射数据计算出的最优路径为[16,17,9,10,11,14],但是假设已经从编号9发送数据,经过路径[9,10,14],那么链路中的节点10和节点11都会由于接收和发送数据产生较大的能量损耗,因此可能会选择路径损耗和略大的另外一条路径[16,6,7,11,14]如图7(b)所示,牺牲一定的数据传输准确性,以使整个无线体域网网络节点生存周期延长。

仿真实验得到的网络生存周期图如图8所示。通过设置最小工作能量需求为80,因此当多次工作后,部分节点的剩余能量小于80,将会停止工作,从而将节点连接矩阵相应值置位0,不再与此节点连接链路。设置标志位,每次完成一次数据传输后标志位加1,直到某次数据传输过程中,可用节点都停止工作,从而返回最优路径为空。停止数据传输,此时积累的标志位则为网络生存周期。同时还仿真了采用最短路径路由方法得到的规划路径,也求出了网络生存周期与采用q-learning算法的结果进行比较,从而确定采用q-learning算法能够有效增大网络生存周期。

综上所述,本发明方法可以显著有效延长wban网络节点生存周期,能提高无线体域网更精确快捷地服务人类生活的能力,可以被广泛应用于医疗监测、疾病防控等无线体域网实际应用场景。

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