来源: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. leetcode一刷总结,明天二刷

    1:基础的数据结构:图掌握极差,二叉树次之 2:常用的算法思想:dp,深度有先,广度优先等等. 3:优化以解决的题目,注意思想的总结 4:将约150道题都刷掉 5:优先解决设计算法思想的题目类别,其次 ...

  2. java自定义equals函数和hashCode函数

    所有类都继承自Object类,他所有的非final方法:equals,hashCode, toString, clone 和 finalize,它们都有通用约定. 我们在覆盖这些方法的时候需要遵循这些 ...

  3. Vue自定义指令使用方法详解 和 使用场景

    Vue自定义指令的使用,具体内容如下 1.自定义指令的语法 Vue自定义指令语法如下: Vue.directive(id, definition) 传入的两个参数,id是指指令ID,definitio ...

  4. 7个Python小坑,给新手党的福利

    Python语言简单易用,但容易给新入门的朋友造成一些微妙的,难以捕捉的错误,稍不注意就入坑了. 因此,今天给大家总结一些易犯的小错误,让你轻松进行不踩坑的Python学习. 1.缩进,符号和空格不正 ...

  5. Java生鲜电商平台-SpringCloud微服务架构高并发参数优化实战

    Java生鲜电商平台-SpringCloud微服务架构高并发参数优化实战 一.写在前面 在Java生鲜电商平台平台中相信不少朋友都在自己公司使用Spring Cloud框架来构建微服务架构,毕竟现在这 ...

  6. C#窗体间常用的几种传值方式、以及委托与事件的详细介绍

    窗体间的传值,最好使用委托方式传值,开始之前,我们先来说一下委托与事件的关系. 委托:是一个类. 事件:是委托类型的一个特殊实例,只能在类的内部触发执行. 首先创建2个窗体,这里我们以form1为发送 ...

  7. 易优CMS:arcview的基础用法

    [基础用法] 名称:arcview 功能:获取单条文档数据 语法: {eyou:arcview aid='文档ID'} <a href="{$field.arcurl}"&g ...

  8. hadoop 自定义OutputFormat

    1.继承FileOutputFormat,复写getRecordWriter方法 /** * @Description:自定义outputFormat,输出数据到不同的文件 */ public cla ...

  9. vuejs利用props,子组件修改父组件的数据,父组件修改子组件的的数据,数据类型为数组

    博文参考 传送们点一点 父组件: <template> <div> <aa class="abc" v-model="test" ...

  10. 以聚合数据免费接口为例,通过 Class 类继承方法,让小程序实现项目化接口调用

    微信小程序数据来源,是通过接口实现的.但接口如何调,数据如何取?每个人都有不同的方法,下面以聚合数据免费接口为例. 配置接口 config.js 聚合数据请求接口需要以key作为参数. const c ...