发明内容
本发明的目的在于提出一种无线传感器网络事件侦测方法,该方法侦测开销小、结果准确性相对高,并能够在缺失位置信息的情况下实时地对于大规模无线传感器网络进行事件侦测。
一种无线传感器网络事件侦测方法,包括以下步骤:
A、依据路由节点树计算编码开销梯度,确定事件模式和最接近的事件区域大小;
B、根据编码开销梯度从基站节点回溯到事件节点。
所述步骤A进一步包括:
A1、接收子节点数据包,所述数据包中包括数据编码、编码开销最大值CCMAX、状态MS和跳数n;
A2、根据编码开销公式计算当前节点的编码开销cc,若cc大于CCMAX,则令CCMAX=cc;
A3、根据编码开销阈值Δ确定有限状态机在当前节点输入的第一参数;
A4、根据所述状态MS对有限状态机在子节点的输出状态进行合并,确定有限状态机在当前节点输入的跳数n;
A5、根据A3中确定的第一参数和A4中确定的跳数n得到有限状态机在当前节点输出的状态MS;
A6、当前节点将更新后的数据包发送至父节点,父节点继续执行步骤A1-A6,直至当前节点为基站节点。
步骤A2中,所述编码开销公式为,
其中,z表示感知的数据集合;xi表示数据集合中一个唯一的读数;pdf(xi)表示概率密度函数;N表示在数据集合中的感知数据的数量。
步骤A3中,
当编码开销cc大于预设阈值Δ时,所述输入的第一参数为1,否则输入的第一参数为0。
步骤A4中,预设三个跳数范围nr,nm和nf,用于匹配事件区域到基站节点的距离和片段间的距离,当跳数n大于nr时,属于Leaf模式;跳数n大于nm且小于nr时,属于Middle模式;跳数n小于nf,属于Root模式;
将所述第一参数和n作为所述有限状态机的输入,根据所述第一参数和n的不同组合可得到7种状态输出,分别为,欲进入事件状态S0,Leaf模式进入事件状态S1,Middle模式进入事件状态S2,Root模式进入事件状态S3,Leaf模式离开事件状态S4,Middle模式离开事件状态S5和Root模式离开事件状态S6。
步骤A4中,当前节点将各个子节点的有限状态机输出的状态MS进行合并,合并时的优先级为,Root模式>Middle模式>Leaf模式;当合并后的状态为S0,S1,S2或S3时,跳数n为当前状态的跳数,当合并后的状态为S4,S5,或S6时,跳数n仍保持前一个状态的跳数。
所述步骤B进一步包括:
B1、当前节点收到基站节点发出的回溯数据包,将所述回溯数据包转发至具有最大梯度编码开销的邻居节点s;
B2、若ccS=CCMAX,则发送触发信息至当前节点的n跳邻居节点,计算n跳邻居节点数据的编码开销ccn-hop;
B3、若ccn-hop>CCMAX,则标记当前节点为事件节点,否则标记当前节点为非事件节点。
对于未收到所述回溯数据包而只收到所述触发信息的节点,计算该节点的n跳邻居节点数据的编码开销ccn-hop,若ccn-hop>CCMAX,则标记该节点为事件节点,否则标记该节点为非事件节点;
若该节点的最大梯度ccS大于预设阈值Δ,则将所述触发信息发送至该节点的1跳邻居节点。
采用本发明的技术方案提供了一种基于数据分布压缩比的无模型约束的无线传感器网络的事件侦测的实现方法,侦测开销小、结果准确性相对高,无需位置信息,并能够实时地对于大规模无线传感器网络进行事件侦测。
具体实施方式
由于大多数的已有的无线传感器网络中事件侦测实现是基于预定义模型或者低效的网络数据查询技术,那么是否也存在一个不需要模型和查询的实现方式,本发明首先从原型系统能够着手来探索这种方法。使用40个TelosbMotes节点来组建一个实验平台,如图1所示,揭示事件发生时的数据分布情况。图1描述的是本发明的基本实现场景平台的节点,它们由40个Telosb节点组成,每个节点之间的距离是相等的。我们选择左下角的节点作为基站节点,然后使用一个加热器来模拟一个火灾事件发生的情况。通过分析从基站节点得到的数据,作为本发明的一个验证的过程。
使用一个发热器来加热一个区域50秒模拟一个发生在小范围内部的火源事件。然后收集整个网络的数据,以便分析出数据变化的本质。实验的结果如图2所示,事件区域节点(节点2,3,7,9,15)的数据具有相似的变化趋势,其中有一些传感器的节点读数达到了很高的峰值,比如节点2,有一些节点读数变化相对较低,比如节点3和9。总的来说,火灾事件增加了事件发生区域的传感器节点读数的多样性。可以看到这些节点数据的特点,事件区域的节点具有相似的变化趋势,虽然有一些节点的变化率比较大,但是它们的趋势是相似的。所以我们发现它们的基本规律是:事件的发生增加了无线传感器网络中节点的数据的多样性,所以数据越有规律,数据越容易压缩。本发明的基本思想就是使用上述现象,利用事件发生区域的数据的多样性来侦测事件。一组数据的多样性越小,那么这组数据的可压缩性就越强。
下面定义一个新的测量值来描述数据压缩比的变化。
编码开销(CodingCost)是描述一组编码(Code)基于概率密度分布函数(PDF)的平均预期最小描述长度的度量标准。所述编码开销的计算公式如下:
其中z表示感知的数据集合;xi表示数据集中一个唯一的读数;N表示在数据集合中的感知数据的数量。我们使用以2为底的数学表述方式是为了更加适合计算机上的数据表示。
提出一个定理来说明各节点的编码开销存在一种梯度关系,假设有N
e个传感器节点在事件区域R
e和N
n个传感器节点在非事件区域R
n,D
x表示传感器节点集合x的感知数据集合。那么三个节点数据集合的编码开销分别为:
and
并且它们满足下述关系
证明如下:将编码开销R
n,R
e和R
n ∪R
e分别表示为c
n,c
e和c
a。
所以
因为 得到
所以得到
证明完毕。
通过每个节点在网络里各自计算自己的编码开销值,从事件区域到基站节点的编码开销的梯度结构被建立起来。本发明的算法基于上述定理来实现的。
我们在确定事件范围的相关网络位置的基础上分析路由树中的事件模式。
在每次检测过程中引入数据压缩并统计子节点的编码开销,以求在编码树中建立一个梯度关系图。伴随着分布式行为,在没有额外通讯的情况下,沿着路由树,建立起编码开销梯度图的时间序列。我们定义了三种事件模式,分别是Leaf,Middle和Root。Leaf表示事件区域发生在部署图的边界处,Middle表示事件区域发生在部署图的中间,Root表示事件区域发生在部署图的前面。
Leaf型事件模式,位于非事件区域的传感器数据不会经过事件区域,但是位于事件区域的传感器数据必须通过非事件区域,因为只能通过非事件区域把数据传递给基站节点。所以,当数据沿路径从数据区域传输到非事件区域时数据压缩过程将会发生巨大的变化。
对于模式Middle,事件区域的位置导致了比Leaf模式更多的复杂性。事实上,Middle中存在两类条件,这两类条件分别为数据传输进出事件区域和数据传输离开事件区域。
对于Root模式,曲线的高峰期出现在前面,说明事件的地区在基站节点附近。
综上所述,我们使用这些数据的三种模式来描述不同类型的事件。此外,编码开销曲线可以看作是网络梯度图的表现形式,它不但可以用于以被动的方式检测事件是否发生,还可以以更有效的方式驱动时间节点。
因此,我们需要一个机制来识别沿着路由树的事件属于哪种事件模式。我们使用有限状态机(FSM)来描述这一自动化的处理过程,如图3所示。我们预定义Δ来表示编码开销的阈值,这个阈值助于检测事件。如果编码开销大于Δ,FSM的第一个输入参数设置为1,否则为0。我们定义nr,nm和nf定义为三跳计数类型,这些类型用于匹配事件区域到基站的距离和片段间的距离,整个网络分成三个区域:边界,中间和前方。如果跳数n大于nr,那么它属于远程距离类型;如果跳数n大于nm且小于nr,它属于中距离型;如果跳数n小于nf,它属于前面距离类型。
我们定义FSM的三种状态:欲进入事件状态(S0),进入事件状态(S1,S2和S3),离开事件状态(S4,S5和S6)。欲进入事件状态S0表示包不进入事件区域;进入事件状态表示包已进入事件区域,离开事件状态表示包已经离开事件区域。S1和S4属于模式Leaf;S2和S5属于Middle模式;S3和S6属于Root模式;S0同时属于模式Leaf,Middle和Root三种模式。
如图3所示,从FSM的初始状态,当输入为<0,n∈{nr,nm,nf}>时,FSM的状态过渡到状态S0,表明编码开销的变化没有达到阈值和一个正常的网络跳数,或者过渡到状态S1,当输入等于<1,n∈{nr}>,表明数据包进入事件区域,而这种事件属于Leaf模式。然后根据输入,FSM沿着路由树变换状态。FSM的最终状态S4,S5,和S6分别表示Leaf事件模式,Middle事件模式和Root事件模式。需要说明的是,第一次转移的输入参数只有两个组合:<0,n∈{nr,nm,nf}>和<1,n∈{nr}>。输入<1,n∈{nm,nf}>是不合逻辑的,因为这个输入的前一个输入的值必须是<0,n∈{nr}>,这将导致FSM的状态转移到S0。所以,第一次FSM状态转换的输入是完备的。
节点会收到从多个子节点收到多个FSM数据包。FSM状态合并的原则是Root具有最高优先级,其次是Middle,最后是Leaf模式。也就是说S3优先级大于S2,S2的优先级大于S1;S6的优先级大比S5,S5的优先级大于S4。换句话说,多个来自子节点的FSM状态依据FSM合并原则在父亲节点进行合并。但是必须说明,如果网络中没有事件发生,FSM将停留在S0状态,直到基站接收到这个数据包。
下面结合附图并通过具体实施方式来进一步说明本发明的技术方案。
图4(a)是本发明具体实施方式提供的无线传感器网络事件侦测方法的流程示意图。如图4所示,该方法包括:
步骤S401,依据路由节点树计算编码开销梯度,确定事件模式和最接近的事件区域大小。该步骤用来进行网络事件的捕获,将所有网络数据收集至基站节点,如图4(b)所示,该步骤进一步包括:
步骤S401a,接收子节点数据包,所述数据包中包括数据编码、编码开销最大值CCMAX、状态MS和跳数n;
步骤S401b,根据编码开销公式计算当前节点的编码开销cc,若cc大于CCMAX,则令CCMAX=cc;
步骤S401c,根据编码开销阈值Δ确定有限状态机在当前节点输入的第一参数;如果编码开销大于Δ,FSM的第一个输入参数设置为1,否则为0。
步骤S401d,根据所述状态MS对有限状态机在子节点的输出状态进行合并,确定有限状态机在当前节点输入的跳数n;根据前面所述的合并规则将FSM在各个子节点的输出状态进行合并,当FSM的状态停留在S0,S1,S2或S3时,跳数n为当前状态的跳数,当合并后的状态为S4,S5,或S6时,跳数n仍保持前一个状态的跳数。
步骤S401e,根据步骤S401c中确定的第一参数和步骤S401d中确定的跳数n得到有限状态机在当前节点输出的状态MS;
步骤S401f,当前节点将更新后的数据包发送至父节点,父节点继续执行步骤A1-A6,直至当前节点为基站节点。当前节点将包括当前节点的数据编码,编码开销最大值CCMAX,状态MS和跳数n的数据包发送至父节点,父节点继续执行上述步骤更新数据包中的数据,直到当前节点为基站节点。
在这个处理过程中,整个传感器网络构建一个分布式的编码开销梯度图,而且基站获得了事件模式(MS)和一个与之相对应的近似事件区域的大小(n)。
步骤S402,根据编码开销梯度从基站节点回溯到事件节点。基站节点从子节点收到所有的数据包之后,得到了事件的模式,然后发送一个回溯数据包Ma来启动事件回溯,确定事件节点。如图4(c)所示,该步骤进一步包括:
步骤S402a,当前节点收到基站节点发出的回溯数据包Ma,将所述回溯数据包Ma转发至具有最大梯度编码开销ccs的邻居节点s。这个回溯数据包包括编码开销最大变化CCMAX和跳数n(最接近事件地区大小)。所述具有最大梯度ccS的邻居节点即为具有最大编码开销变化的节点。
步骤S402b,若ccS=CCMAX,则发送触发信息至当前节点的n跳邻居节点,计算n跳邻居节点数据的编码开销ccn-hop。触发消息Mt包含CCmax和到n跳邻居节点的n并计算了n跳邻居节点的编码开销ccn-hop。触发消息Mt中的n与回溯数据包Ma中的n相同。所述n跳邻居节点为距离当前节点n跳的邻居节点,将这些节点数据组成的数据集合利用编码开销公式计算ccn-hop。
步骤S402c,若ccn-hop>CCMAX,则标记当前节点为事件节点,否则标记当前节点为非事件节点。
之所以判定当前节点是否为事件节点时,要以“n跳邻居节点”的ccn-hop与CCMAX比较,这是一个根据实验的结果,比直接用编码开销的变化值来比较更加准确,因为事件区域的大小是根据n在变化的,单一的根据编码开销的变化值来比较不能体现这种变化,另外我们的监测不需要节点位置信息,开销很小。
以上步骤S402a至S402c是针对收到回溯数据包Ma的节点在判定自己是否为事件节点时的方法,对于未收到回溯数据包Ma而只收到触发消息Mt的节点,则通过以下步骤进行判定。
步骤S402d,对于未收到所述回溯数据包Ma而只收到所述触发消息Mt的节点,计算该节点的n跳邻居节点数据的编码开销ccn-hop。
步骤S402e,若该节点的最大梯度ccS大于预设阈值Δ,则将所述触发信息发送至该节点的1跳邻居节点。这是为了当需要处理这个节点在事件边界的情况,防止漏掉一些节点,保证事件覆盖的区域节点都会受到Mt数据包。
步骤S402f,若ccn-hop>CCMAX,则标记该节点为事件节点,否则标记该节点为非事件节点。
显而易见,由于事件发生的位置未知,多个事件发生时事件定位和驱动过程将会比单一事件时更为复杂。下面扩展上文的算法,使其适应多种事件情况。
在多事件情况下存在两种类型的组件模型。一种情况称为In-line,它表示事件匹配网络路由树中之前和之后的序列;另一种情况成为Collateral情况,用于描述在路由树中平行发生的事件。任何一个多事件情况都可以分解为这两种情况的集合。
多事件情况的第一个难点是如何确定事件的类型。为了描述第一个难点,我们对诊断过程进行一些修改以适应上述两种多事件情况。对于In-line,节点必须满足一个条件,这个条件是在包Mc中FSM的状态已经是S4,S5或者S6,并且其编码开销输入的变化大于Δ。所以这个Mc被标记为In-line情况并传递下去。那些标记Mc的节点记录自己为独立的节点,并命名为P。对于Collateral情况,我们可以通过一个智能的FSM状态合成图来处理这个条件。当节点接收到两个Mc时,这两个Mc中包括了FSM当前的状态,如果这两个状态是最终状态(S4,S5和S6),并且与这两个状态相关的跳数的差值大于预设的阈值(该阈值为两个不同事件区域间的最小跳),那么这个节点可以用P来标示自己,P表示一个独立的节点,并且这个节点把包含情况信息的包发给基站。最后,基站节点通过上述方法将会得到一个多事件模式。
多事件情况的第二个难点是如何有效地定位事件。但单一事件中,基站通过编码开销最深的梯度路径发送Ma包来定位事件节点,并且触发驱动过程。但是这种方法在多个事件情况不再适用,这主要是由于编码开销的最深梯度路径无法到达每个事件节点。所以我们必须保证定位过程能够定位到所有的事件节点。采用特殊的处理方法是一种符合逻辑的方法。这种特殊的方法是确定一些节点,把他们设为P节点,按照In-line情况或者Collateral情况,启动一个或者两个独立的驱动过程。首先,驱动路径能够到达P节点,P节点代表下一个事件模型(In-line情况或者Collateral情况),之后,节点P触发下一个驱动过程,如此往复。最后,所有的事件区域都会进入这个过程。
采用本发明的技术方案提供了一种基于数据分布压缩比的无模型约束的无线传感器网络的事件侦测的实现方法,侦测开销小、结果准确性相对高,并能够实时地对于大规模无线传感器网络进行事件侦测。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉该技术的人在本发明所揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。