接近开关传感器的GAT算法是一种依据节点的地理位置进行分簇,并对簇内的节点选择性的进行休眠的路由算法。其核心思想是:在各数据源到数据目的地之间存在有效通路的前提下,尽量减少参与数据传输的节点数,从而减少用于数据包侦听和接收的能量开销。它将无线传感器网络划分成若干个单元格(簇),各单元格内任意一个节点都可以被选为代表,代替本单元格内所有其他节点完成数据包向相邻单元格的转发。被选中的节点成为本单元格的簇头节点;其他节点都进行休眠,不发送、接收和侦听数据包。
接近开关传感器的GAT算法通常分为虚拟单元格的划分和虚拟单元格中簇头节点的选择两个阶段。
1、虚拟单元格的划分。节点根据其位置信息和通信半径将网络区域划分为若干虚拟单元格,并保证相邻单元格中的任意两个节点都可以直接通信,假设节点已知整个监测区域的位置信息和本身的位置信息,节点可以通过计算得知自己属于哪个单元格。
2、虚拟单元格中的簇头节点的选择。节点周期性进入睡眠和工作状态,从睡眠状态唤醒后与本单元内其他节点进行信息交换,以此确定自己是否需要成为簇头节点,每个节点处于发现、活动以及睡眠三种状态。在网络初始化时,所有节点均处于发现状态,每个节点通过发送广播消息通告自己的位置和ID等信息,然后每个节点将自身定时器设置为某个区间内的随机值Td,一旦定时器超时,节点发送消息声明其进入活动状态,成为簇头。节点如果在定时器超时前收到来自同一单元格内其他节点设置定时器T。来设置自己处于活动状态的时间。在T。超时前,簇头节点定期广播自己处于活动状态的信息,以抑制其他处于发现状态的节点进入活动状态;当T。超时后,簇头节点重新回到发现状态,处于活动状态的节点如果发现本单元格出现了更适合成为簇头的节点,会自动进入睡眠状态。
由于节点处于侦听状态时也会消耗很多热量,所以让节点处于睡眠状态成为接近开关传感器拓扑控制算法中常见的方法,接近开关传感器的GAF算法的优点是在节点密集型分布的网络中休眠了部分节点,节省了网络总能耗。但GAF算法没有考虑移动节点的存在,实际应用环境中,簇头节点很容易从一个单元格移动的另一个单元格,从而造成某些单元格内没有节点转发数据包,最终造成大量丢包和重复发包,导致总能耗的增加。 |