130 likes | 257 Views
Application of Neural Network in Wireless Sensor Netwok Routing Algorithm 神经网络在无线传感器网络路由算法中的应用. 卢旭. 摘要. 本文提出了一种新的无线传感器网络路由算法。介绍了算法的主要思想和实现方法。算法无需额外的硬件。仿真显示,该算法能够准确快速地完成路由过程,能够明显地延长无线传感器网络的寿命。. 1 引言.
E N D
Application of Neural Network in Wireless Sensor Netwok Routing Algorithm神经网络在无线传感器网络路由算法中的应用 卢旭
摘要 • 本文提出了一种新的无线传感器网络路由算法。介绍了算法的主要思想和实现方法。算法无需额外的硬件。仿真显示,该算法能够准确快速地完成路由过程,能够明显地延长无线传感器网络的寿命。
1 引言 • 现代社会中,无线传感器网络有着广阔的应用环境。无线传感器网络的每个节点都由传感器、接收器、发射器、存储器以及处理器组成。能够执行数据收集、通信、存储和简单的数据处理功能。一个无线传感器网络可以看作是一个分布式的数据库,每个节点是一个数据组。查询处理在数据路由中完成。由于每个节点都有一定的通信距离的限制,所以必须逐节点地传输数据。因此在所有应用中,数据路由成了一个主要的待解决的问题。 • 研究人员已经开发出了很多种路由算法。直接扩散算法和谣传路由算法是基于查询的。地理和能量可知路由(GEAR)算法和图表嵌入式(GEM)算法是基于无线传感器网络节点的位置信息的。
通过研究我们开发了一种新的路由算法(NNR算法)。我们为每个传感器网络构建一个神经网络。通过学习,每个节点都学会怎样在传输给定信息时选择下一个节点。学习过程可以离开物理网络而提前完成好。因此路由速度和网络寿命都可以明显提高。 • 本节中,我们介绍了无线传感器网络中已有的路由算法。在第二节中,我们将提出我们的基于神经网络的路由算法(NNR算法)。第三节中,我们将给出一些关于NNR算法的仿真结果。最后,第四节是结论。
2.神经网络路由算法(NNR算法) • NNR算法包括四个步骤:信息收集、训练和测试样本、节点训练和信息发送。 • 第一步:信息收集 当无线传感器网络创建好时,首先所有节点的位置信息必须收集好。已有很多节点位置算法,如距离矢量跳数算法(DV-Hop)、无组织位置算法以及近似三角测量法测试算法(APIT)。这些算法都以节点跳数、相关节点位置信息以及三边测量法和最大概似法评估等形式指出了节点的位置信息。在配置过程当中,每个节点都获得一些重要的信息:节点的位置和跳数、邻节点的数目、所有邻节点的位置、跳数和剩余能量。另外,每个节点都给邻节点一个序列号,序列号是基于邻节点相对于自己的角度给出的,如图1所示。所有的信息都被收集到无线传感器网络的根节点,然后保存进计算机。
第二步:训练和和测试样本 • 我们可以构建一个无线传感器网络,用一个计算机来收集信息。首先,我们随机选择一个目标节点,然后从根节点发送一个信息到目标节点。最佳路径将被保存在一个矢量组中。在计算出每个节点的能耗之后,这些节点的剩余能量值就会被更新。然后,另一个随机目标节点会被选中。上述过程持续到网络寿命结束。这之后,我们让网络又回到初始状态,然后又重复同样的过程数次。我们可以获得一个庞大的最佳路径矢量组的数目。通过这些矢量组,我们可以获得节点ni的很多组路由信息数据,包括所有邻节点的能量信息。这些数据形成一个样本矢量模型。
我们将该模型分为两个样本。一个用于训练节点ni,另一个用于测试训练结果。我们称这两个样本叫训练样本和测试样本。他们中的所有元素都包括以下数据: 假设节点ni的位置是(nix, niy),目标节点的位置是(njx, njy),角度定义如下: 假设一个节点的初始能量是E0,其剩余能量是E,标准化剩余能量就是E/ E0。 是输出矢量。t1和t2是两个邻节点的输出数据。假设信息被发送到第一个邻节点,那么t1=0.9、t2=0.1。假设信息被发送到第二个邻节点,那么t1=0.1、t2=0.9。
第三步:节点训练 我们给每个节点构建一个三层的神经网络。假设邻节点的数量是m,将有2+2*m个输入单元和m个输出单元。隐藏单元的数量是3或者更多。所有单元都是S形单元。单元定义如下: • 我们使用BP(误差反向传播)算法作为训练算法来训练神经网络的各节点。训练算法描述如下。
第四步:信息发送 • 一旦每个节点的权矢量完成,根节点就会发送一个特别的信息给无线传感器网络中其它的所有节点,该信息包括各节点的权矢量和发送节点的剩余能量。当各节点收到信息时,就会报告自己的权矢量和发射器的剩余能量,然后在发送信息到其邻节点之前,用自己的剩余能量来更新发送节点的剩余能量。这样,每个节点都知道了自己的权矢量以及所有邻节点的剩余能量。 • 我们附上两个值到所有真实信息如查询命令或数据,这两个值包括信息发送节点的剩余能量以及目标节点的位置。 • 当一条真实信息从根节点发送出来,每个接收到这条信息的节点都将首先检查目标节点的位置。如果接受者是目标节点,就将执行信息里包含的命令,然后发送结果到信息的发送节点。如果接受者不是目标节点,就将根据其权矢量和神经网络选择一个邻节点,然后在发送信息到所选节点之前用自己的剩余能量更新发送节点的剩余能量。如果没有节点可选,这个节点就必须发送一个错误信息给信息的发送者。路由过程就是以这种方式实现的。
3.仿真结果 • 我们用MATLAB来仿真NNR算法,无线传感器网络随机分布在一个圆形区域。圆形的半径是5。节点数是200。每个节点的通信距离是1。位于圆心的根节点的能量是无穷的。其它节点的初始能量都是1000。每次通信能耗都是1。每个节点我们都假设有300~500个训练样本和100~200个测试样本。在节点训练之后,所有节点在测试样本中的平均精度都大于90%(精度在85%~97%之间)。当无线传感器网络寿命结束(在最近100次通信过程中有超过50次失败)时,所有节点的标准化剩余能量分布如图2所示。
4.结论 • 基于神经网络我们提出一种新的无线传感器网络路由算法。通过仿真可见,NNR算法能够正确地完成路由过程,有效地延长网络寿命,还能明显提高路由速度。