第八周论文学习03 An Efficient Tree-based Power Saving Scheme for Wireless Sensor Networks with Mobile Sink
2024-09-04 23:59:13
Year: 2016, Volume: 16, Issue: 20
目的: 减少能量损耗,延长网络生命周期
了解基本思路
圆:传感器节点 框:Mobile Sink (大致原则是:距离越小,能耗越小。后面给出能耗的计算公式)
A节点肯定直接与Ms相连;
B节点到MS的距离大于BA的距离,所有选择A节点作为自己转发数据的下一个节点;B,C,D相同;
E节点到MS的距离是所有EC,EB,EA距离中最小的,所以选择直接与MS相连,达到节省能耗的目的。
最终结果如下图:
具体实现过程
模型建立
基本假设:
-----结点有三类:簇头(CH)、中继(hop node)、普通结点;
-----所有节点的位置信息可知(GPS等技术);
-----任意两个结点的距离是可以计算的;
-----每一轮的数据收集过程,移动结点(Mobile sink)都可以知道每一个节点的位置信息以及剩余能量;
基本公式
能耗的计算:
-----1)转发消息的能耗计算公式;
-----2)接收消息的能耗计算公式;
------d表示两个结点间距,L表示L bits大小的数据,EDA表示数据融合与压缩时的能量消耗,εamp 放大器的能耗。
放大器能耗计算:
-----d0表示节点传输距离的阈值,εfs 自由空间传播模型;εamp 多路径衰减信道模型
核心算法: 动态排序成簇算法
1.Input:N,M //传感器节点数量,M表示给定区域的边长
2.Output:树-簇路由结构
3.初始化:total_energy=0,min_distance=√2 M,temporary result=null and hop_node_state=false
//剩余能量总和,初始值为0,;记录任意两个节点的最小距离变量
4.For (i=1;i<=N;i++)
5. Calculate d(i,MS) //计算节点i与移动节点间的距离
6. total_energy += energy[i]
7.End For //4-7 计算出所有节点的剩余能量
8.avg_energy = total_energy/N // 所有传感器节点的平均剩余能量
9.sorted_order[].node //根据d(i,MS)的升序排序
10.For (α=1,α<=N;α++)
11. Calculate d(sortrd_order[α].node,MS)
12. For(ß=1,ß<=α-1;ß++)
13. Calculate d(sorted_order[α].node,sorted_order[ß].node) //计算节点α,ß之间的距离,记为dα,β .节点与MS之间的距离分别为dα,MS dβ,MS
14. Calculate dβ,MS
15. If((dα,MS<dα,β)and hop_node_state == false)
16. hop_node_state == false
17. Else
18. If(min_distance>dα,β)
19. hop_node = sorted_order[β].node
20. hop_node_state = true
21. min_distance = dα,β
22. End If
23. End If
24. End For
25. If(hop_node_state == true)
26. sorted_order[α].node 连接到hop_node 并且暂时存储该状态
27. Else
28. sorted_order[α].node 自己链接到MS 并且暂时存储该状态
29. End If
30. min_distance = √2 M
31. hop_node_state = false
32. End For
33.存储的结果就是最终的树-簇路由结构
最新文章
- 常见.NET功能代码汇总 (2)
- cpu缓存与多线程
- realloc 函数的使用
- Eclipse perl的IDE环境插件-EPIC
- 【编程技巧】java不使用第三个变量处理两个变量的交换
- SpringBatch前言
- 使用Elasticsearch-dump迁移ES数据
- 【vue学习】vue 2.0版本以上创建项目的的步骤
- ubuntu typora使用学习
- PHPMYWIND4.6.6前台Refer头注入+后台另类getshell分析
- Android 常见异常及解决办法
- 【51nod1847】 奇怪的数学题
- 【python游戏编程04--加载位图与常用的数学函数】
- 03_java基础(八)之static关键字与代码块
- APR Recipe
- IDEA使用笔记(二)——常用快捷键
- Unity----Scene加载问题
- spring---aop(10)---Spring AOP中AspectJ
- STM32知识点纪要
- WebDriver高级应用——操作Web页面的滚动条
热门文章
- Eclipse引入自定义XML约束文件(DTD,SCHEMA)问题
- apt-get failed:The following signatures were invalid: BADSIG
- 给 K8s API “做减法”:阿里巴巴云原生应用管理的挑战和实践
- 错误InnoDB:Attemptedtoopenapreviouslyopenedtablespace.
- 英语阅读——A meaningful life
- Java开发桌面程序学习(一)——JavaFx+Jfoenix初始以及搭建
- mybatis关联关系映射
- js addEventListener事件多次绑定问题
- 安装新版Magisk卡在启动页面等问题以及解决办法
- Git:SSH、SSH与HTTP区别、git常用命令