来源:IEEE Sensors Journal

Year: 2016, Volume: 16, Issue: 20
Pages: 7545 - 7557, DOI: 10.1109/JSEN.2016.2601327    

目的: 减少能量损耗,延长网络生命周期
了解基本思路

    圆:传感器节点  框: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.存储的结果就是最终的树-簇路由结构 

 
                                                                                                                     

第八周论文学习03 An Efficient Tree-based Power Saving Scheme for Wireless Sensor Networks with Mobile Sink的更多相关文章

  1. 第八周java学习总结

    学号 20175206 <Java程序设计>第八周学习总结 教材学习内容总结 第十五章:泛型与集合框架 主要内容 泛型 链表 堆栈 散列映射 树集 树映射 重点和难点 重点:泛型和集合的使 ...

  2. 20165223《Java程序设计》第八周Java学习总结

    教材学习内容总结 第12章-JAVA多线程机制 要点 Java中的线程 Thread类与线程的创建 线程的常用方法 线程同步 协调同步的线程 线程联合 GUI线程 计时器线程 教材学习中的问题和解决过 ...

  3. 20145307第八周JAVA学习报告

    20145307<Java程序设计>第8周学习总结 教材学习内容总结 通用API 日志API 1.java.util.logging包提供了日志功能相关类与接口,使用日志的起点是logge ...

  4. 第八周LINUX学习笔记

    vsftpd丶NFS丶SAMBA nfs基于rpcsamba基于cifs(smb)  DRBD: ftp:File Transfer protocol 文件传输协议 两个连接:       tcp:命 ...

  5. 2019年8月19日~8月25日 第八周JAVA学习总结

    临近开学,本周的任务完成情况不够好,平常乱七八糟的事情比较多,所以放在学习上的心思比较少.平均每天放在JAVA学习的时间约1个小时,放在编程的时间约半小时,解决问题的时间约1小时. 下一个星期就要开学 ...

  6. 20175317 《Java程序设计》第八周学习总结

    20175317 <Java程序设计>第八周学习总结 教材学习内容总结 第八周我学习了教材第十五章的内容,认识了什么是泛型与集合框架,具体内容如下: 泛型 1. 如何声明泛型类 2. 如何 ...

  7. 20155227 2016-2017-2 《Java程序设计》第八周学习总结

    20155227 2016-2017-2 <Java程序设计>第八周学习总结 教材学习内容总结 NIO与NIO2 NIO即New IO.java从JDK1.4开始提供了NIO,在JAVA ...

  8. 201671010140. 2016-2017-2 《Java程序设计》java学习第八周

    第八周Java学习      本周,老师带领我们完善了一下继承,借口,拷贝,lambda表达式,内部类方面欠缺,不完善的地方,帮助我们查漏补缺.       以拷贝的学习为例,我本来对拷贝的理解非常浅 ...

  9. #2019-2020-4 《Java 程序设计》第八周总结

    2019-2020-4 <Java 程序设计>第八周知识总结 第15章:泛型与集合框架 一.泛型 1.泛型(Generics)是可以建立具有类型安全的集合框架,如链表.散列映射等数据结构: ...

随机推荐

  1. Mysql优化之Explain查询计划查看

    我们经常说到mysql优化,优化中一种常见的方式就是对于经常查询的字段创建索引.那么mysql中有哪些索引类型呢? 一.索引分类1.普通索引:即一个索引只包含单个列,一个表可以有多个单列索引 2.唯一 ...

  2. VS2017安装使用Easyx时出现的问题及解决方法

    EasyX 是针对 Visual C++ 的绘图库,在初学 C 语言实现图形和游戏编程.图形学.分形学等需要绘图实践的领域有一定应用. EasyX 库在 Visual C++ 中模拟了 Turbo C ...

  3. 全栈工程师对Python面试中is和==区别的详细解说!看完真的学到了!

    面试实习生的时候,当问到 is 和 == 的区别时,很多同学都答不上来,搞不清两者什么时候返回一致,什么时候返回不一致.本文我们来看一下这两者的区别. 我们先来看几个例子: a = "hel ...

  4. JAVA 基础篇

    一.数组 1. 什么是数组? 数组和变量差不多,也是可以存放数据的,但是数组可以存放多个数据,而且多个数据的数据类型统一 格式 数据类型 [] 数组名称; 还有一种等效的写法,不推荐 数据类型 数组名 ...

  5. 比较好用的移动端适配的两种方案及flexible和px2rem-loader在webpack下的配置

    移动端适配,目前自己常用的两种 方案,参考以下两篇好文 方案一:使用lib-flexible包 https://www.w3cplus.com/mobile/lib-flexible-for-html ...

  6. 微信小程序访问webservice(wsdl)+ axis2发布服务端(Java)

    0.主要思路:使用axis2发布webservice服务端,微信小程序作为客户端访问.步骤如下: 1.服务端: 首先微信小程序仅支持访问https的url,且必须是已备案域名.因此前期的服务器端工作需 ...

  7. shell中的fg 命令

    fg(前台执行) frontground bg(后台执行) background & daemon 总结: 一般命令在前台执行(fg),执行完毕后,控制返回给用户. 在命令后面加上&, ...

  8. [Go] 写文件和判断文件是否存在

    OpenFile得到一个File,然后调用它的Write,参数是字节切片Stat看看返回错误没有 package main import ( "fmt" "os" ...

  9. centos 7下配置阿里yum源

    1.打开centos的yum文件夹 cd /etc/yum.repos.d/ 2.用wget下载repo文件 wget http://mirrors.aliyun.com/repo/Centos-7. ...

  10. Lnmp架构部署动态网站环境.2019-7-3-1.2

    Nginx安装 一.安装准备 Pcre(Perl Compatible Regular Expressions,兼容正则表达式)安装pcre库是为了使Nginx支持HTTP Rewrite模块. 安装 ...