一种无线传感器网络数据预测方法与流程

文档序号:11710278阅读:257来源:国知局
一种无线传感器网络数据预测方法与流程
本发明属于无线传感器网络及数据预测等
技术领域
,具体涉及一种无线传感器网络数据预测方法。
背景技术
:无线传感器网络(wirelesssensornetwork,wsn)是一种典型的分布式网络,它包含大量的传感器节点,通常被部署在各种环境下以收集数据。通过无线传感器网络中采集到的历史数据,可以对未来的数据或者走势进行预测。如预测森林中某些关键区域的温度以判断是否存在火灾的风险、预测未来几天雾霾的走势以及时地提醒广大市民进行相应的防范等。无线传感器收集的数据具有多源特点,即由于网络中节点的密度较高,所以在空间上距离较近的节点在同一时刻的采样值相似。此外,任意的一个节点在连续的时间区间之内的采样值也具有相似性,以上的特点使得无线传感器网络可以进行相关数据的预测。另外,无线传感器网络数据预测技术与数据融合技术联系紧密,可作为弥补数据融合缺陷的关键技术,并对降低无线传感器网络的能耗也有特殊的贡献。目前,运用于无线传感器网络数据预测的方法主要有时序算法、基因表达编程、神经网络算法等等。然而这些传统的数据预测方法普遍存在的缺点是计算复杂,尤其是基因表达编程算法和粒子群-神经网络算法,有较高的算法复杂度,虽然精度有所提高,但是能量开销巨大。技术实现要素:本发明要解决的技术问题是针对传统方法中存在的能量消耗过高、计算开销较大等弊端,为此提出了一种新的数据预测方法,以无线传感器网络中的簇为单位,每个簇的簇头负责进行数据预测,能够有效地保证数据预测的精度,且具备较好的通用性和实用性。为达到上述目的,本发明提出的技术方案为一种无线传感器网络数据预测方法,具体包含以下步骤:步骤1:根据某种分簇算法进行分簇并选举簇头,该分簇算法须能选出计算能力较强的节点担任簇头,分簇结束后,簇头获得本簇内非簇头节点的id(标记为idi,1=<i<=n)和总数量n,并设定存储数据的条数k,簇头开始簇内数据的收集;步骤2:簇头获得簇内各个非簇头节点的数据,将其作为一条新的记录存储在内存中;步骤3:对于每一条新记录中的每一个节点的值进行计算,由公式(1)得到与目标值y,即簇头需要上传到基站的最终值的残差ri=|xi-y|(1);步骤4:基于步骤3得到的残差,由公式(2)计算误差:步骤5:对于每一条记录的每一个节点的数据值xi,保存其对应的ri和ei;步骤6:当内存中的记录条数等于k时,则可以进行数据的预测,簇头由公式(3)计算参与数据预测的节点数目pn:步骤7:确定参与预测的节点数目pn后,进一步确定这些节点的id,由公式(4)计算当前k条历史数据中各个节点的总误差ei,并对ei从小到大进行排序,根据排序结果选择出前pn个节点进行预测,用sj(1=<j<=pn)表示被选中做数据预测的节点的id:步骤8:为选中做数据预测的每个节点分配权重wj,根据这些节点的比值进行归一化之后确定各自的wj,并保证各个wj的总和等于1;步骤9:对最近一次的簇头计算的y值进行修正,确定修正的方向和步长,如公式(5)所示:其中,rtj表示id为sj的节点在第t(1=<t<=k)条数据中的残差,正负号表示本次数据预测的方向,该方向根据k条历史数据记录值的走势给出式中ɑ为本次数据预测的步长,表示以怎样的速率去接近当前预测值的真实值。进一步,上述k值的设定是基于对数据预测的准确程度和消耗内存空间的平衡,k值较大,预测的结果越准确,但同时也会消耗较大的内存空间并造成较高的计算开销。步骤2中,如果当前内存中数据的条数等于k,则删除最早的那条数据;如果当前内存中数据的条数小于k,则只进行存储新记录的操作。步骤3中,所述目标值y是簇头需要上传到基站的最终值,该值可以是每一个节点的值的平均值。步骤9中所述ɑ的取值原则如下:(1)对于一些敏感值,步长ɑ应尽可能地小;(2)如果在这k条数据中,数据走势波动较大,步长ɑ应尽可能地小;(3)如果采样时间间隔较大,可适当增加步长ɑ。与现有技术相比,本发明的有益效果是:1、本发明在数据预测的过程中没有选择所有的节点而是选择了部分历史误差较低的节点。2、本发明的历史数据条数k和预测步长ɑ等参数都可以根据实际需求进行自定义,灵活度高。3、计算量小,能有效节约能耗,同时精度较高。4、本方法简单易实现,具有较好的实用性,易于在实际环境中使用。附图说明图1为簇头内存中存储数据的示意图。图2为本发明的具体流程图。具体实施方式下面结合附图对本发明做进一步详细的说明。本发明方法的具体流程如图2所示,具体的步骤如下:步骤1:根据某种分簇算法进行分簇并选举簇头,该分簇算法须能选出计算能力较强的节点担任簇头。分簇结束后,簇头获得本簇内非簇头节点的id(标记为idi,1=<i<=n)和总数量n,并设定好存储数据(用于数据预测)的条数k(k的选择关系到数据预测的准确程度,k值较大,则说明用于预测的数据量越多,预测的结果越准确,但同时也会消耗较大的内存空间并造成较高的计算开销)。完成k值的选择之后,簇头开始簇内数据的收集。步骤2:簇头获得簇内各个非簇头节点的数据,将其作为一条新的记录存储在内存中。如果当前内存中数据的条数等于k,则删除最早的那条数据;如果当前内存中数据的条数小于k,则只进行存储新记录的操作。步骤3:对于每一条新记录中的每一个节点的值进行计算,由公式(1)得到与目标值y(簇头需要上传到基站的最终值,如平均值)的残差。ri=|xi-y|(1)步骤4:通过步骤3得到的残差,由公式(2)计算误差。步骤5:对于每一条记录的每一个节点的数据值xi,保存其对应的ri和ei。步骤6:当内存中的记录条数等于k时,则可以进行数据的预测。簇头由公式(3)计算参与数据预测的节点数目pn。步骤7:确定参与预测的节点数目pn后,进一步确定这些节点的id:由公式(4)计算当前k条历史数据中各个节点的总误差ei,并对ei从小到大进行排序,根据排序结果选择出前pn个节点进行预测,用sj(1=<j<=pn)表示被选中做数据预测的节点的id。步骤8:为选中做数据预测的每个节点分配权重wj,根据这些节点的的比值归一化之后确定各自的wj,并保证各个wj的总和等于1。步骤9:预测的基本思想是对最近一次的簇头计算的y值(簇头要上传到基站的最终值)进行修正,确定修正的方向和步长,如公式(5)所示。其中rtj表示id为sj的节点在第t(1=<t<=k)条数据中的残差。公式(5)中的正负号即表示本次数据预测的方向,该方向根据k条历史数据记录值的走势给出。式中ɑ为本次数据预测的步长,表示以怎样的速率去接近当前预测值的真实值,ɑ取值的原则如下:(1)对于一些敏感值,步长ɑ应尽可能地小(2)如果在这k条数据中,数据走势波动较大,步长ɑ应尽可能地小(3)如果采样时间间隔较大,可适当增加步长ɑ。为便于本领域的技术人员进一步理解本发明,现提供一个实施例,实施例的背景为计算无线传感器网络某区域内的平均温度值。步骤1:根据经典leach算法进行分簇并选举簇头,每个簇拥有一个簇头负责将数据发送给基站并进行数据预测。设现有某簇,簇内非簇头节点数量n等于5,这些节点的id分别为a至e。簇头选择其存储的历史数据条数k等于3。随后,开始数据收集的过程。步骤2:簇头获得簇内各个非簇头节点的数据,将其作为一条新的记录存储在内存中。如果当前内存中数据的条数等于3,则删除最早的那条数据;如果当前内存中数据的条数小于3,则只进行存储新记录的操作。现给定该簇的3条历史数据内容(包括各节点采集的温度值)如下表所示:abcdeaverage1252425.722.426.224.6225.624.426.823.627.825.6326.325.527.92528.926.7未来值(需要预测的值)如下表所示:abcdeaverage2726.128.826.13027.6步骤3:对于每一条新记录中的每一个节点的值进行计算,由公式(1)得到与平均值y的残差。如对第三条记录中的节点a,残差为0.4。最终得到每条记录中每个节点的ri,如下表所示:abcde10.40.61.12.21.6201.21.222.230.41.21.21.72.2步骤4:通过残差计算平方误差,如对第三条记录中的节点a,由公式(2)得其平方误差为0.03。最终得到每条记录中每个节点的ei,如下表所示:abcde10.030.070.2510.5200.290.290.82130.030.290.290.591步骤5:簇头将以上两张表的数据存储在内存中,此时簇头内存中的数据如图1所示的内容。步骤6:当内存中的记录条数等于3时,即可以进行数据的预测。簇头由公式(3)计算参与数据预测的节点数目pn=log25=2,即在数据预测过程中,需要两个节点的历史值。步骤7:现由步骤6知需要2个节点参与数据预测,簇头需要确定这两个节点的id。簇头根据公式(4)计算当前3条历史数据记录中各个节点的总误差。对于节点a至e,总误差如下表所示:abcde0.060.650.832.412.5计算完成后根据总误差对节点进行升序排序,取前两个节点即a和b来完成数据预测。步骤8:为选中做数据预测的节点a和b分配权重wj,根据各个节点的比值确定wj,并保证各个wj的总和等于1。节点a和节点b的总误差分别为0.06和0.65,故分别配置权重为0.92和0.08。步骤9:开始数据的预测,确定方向和步长。从3条历史数据中可以观察到平均值呈上升的趋势,故方向为正方向。观察平均值的历史走势可以发现,它分别以1,1.1的步长在增加,取1和1.1的均值1.05作为步长,最后根据公式(5)可以得到预测值为27.75,与第4条记录中的27.6近似度很高。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1