Page 250 - 《软件学报》2021年第9期
P. 250
2874 Journal of Software 软件学报 Vol.32, No.9, September 2021
锚点加入锚点队列.重复上述过程,直到分区内每个节点都有相对应的锚点.
此时,锚点队列 A 即为分区内选择的所有锚点,该队列中所有锚点的最短迁移路径 L tsp 可根据 TSP 问题计
算得出.若 L tsp ≤L b ,L b 为 DCV 的迁移路径上限,则锚点队列 A 即为最终锚点选取队列;否则,移除队列 A 中具有
最小权重的传感器节点,重新计算队列 A 的最短迁移路径,直到 L tsp 满足路径约束 L b .
由于锚点选择方案与其 k 跳之内邻居节点的个数和能量相关,参考文献[18]的设置,将 k 设为 3.在图 3 的基
础上,同样选取 200 个可充电传感器节点均匀的传感区域内,通过网络分区方案 NP-NSD,每个区域内锚点选择
示例结果如图 4 所示.黑色虚线代表锚点构成的 TSP 路径,带有标号的点表示本次执行过程中选择的锚点.图中
共有 4 个 TSP 路径,分别代表各个分区内的所有锚点的最短路径.
Fig.4 Sample diagram of anchor selection
图 4 锚点选择示例图
3.2 数据传输路径
当 DCV 停留在锚点 a 处时,停留时长记为τ a .在这段时间内,锚点以单跳路由的形式向 DCV 传输数据.聚类
内其他节点以多跳静态路由的形式向锚点传输数据.DCV 一旦达到在锚点 a 处的固定停留时长,它立即前往下
一锚点进行数据收集.
聚类内其他传感器节点向锚点传输数据过程中,节点并不是向与其相连的所有物理链路发送数据,而是具
有一定的规则.
锚点 a 向 DCV 传输数据过程中,以锚点 a 为根节点,将其一跳范围内所有传感器节点视为每个锚点的子节
点.锚点的子节点记为一级节点,且每个锚点的一级节点集合不包含其他锚点.重复此过程,直到计算出锚点 a 的
第 k 跳传感器节点,即 k 级节点.每级传感器节点均不包含其上级节点.此时,每个传感器节点的数据传输路径设
置完毕,且每个锚点均没有父节点只有子节点,k 级节点只有父节点不存在子节点,一个节点可能属于多个聚类,
但不影响节点之间数据的传输.
图 5 给出了一个网络数据传输示例图,图中包含 17 个传感器节点,其中有 3 个节点被选为锚点,节点编号
1,3,15 用于收集其聚类内节点产生的数据.一个传感器节点可以向不同的锚点传输数据,如节点 14,它可以向锚
点 3,15 同时传输数据.
• 当 DCV 停留在锚点 3 处时,节点 14 向锚点 3 传输数据;
• 当 DCV 移动至 15 号节点时,节点 14 先将数据传输至节点 2;随后,节点 2 将收集到的数据转发至锚点
15;锚点 15 将收集到的数据传至 DCV.