来源: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. manage.py相关命令

    python manage.py makemigrations <app_name> 在对应app下的migrations目录下,生成XXXX_initial.py文件,该XXXX_ini ...

  2. tf.contrib.slim模块简介

    原文连接:https://blog.csdn.net/MOU_IT/article/details/82717745 1.简介 对于tensorflow.contrib这个库,tensorflow官方 ...

  3. DVR登录绕过漏洞_CVE-2018-9995漏洞复现

    DVR登录绕过漏洞_CVE-2018-9995漏洞复现 一.漏洞描述 此漏洞允许攻击者通过修改”Cookie:uid=admin”之后访问特定DVR的控制面板,返回此设备的明文管理员凭证. 二.影响软 ...

  4. CentOS安装Docker-ce并配置中国国内加速(aliyun)镜像

    前提条件 1.系统.内核 CentOS7 要求64位系统.内核版本3.10以上 CentOS6 要求版本在6.5以上,系统64位.内核版本2.6.32-431以上 查看内核版本号 uname -r # ...

  5. c# 字符串中全角和半角字符互转

    public class ConvertDBCAndSBC { /// <summary>半角转成全角 /// 半角空格32,全角空格12288 /// 其他字符半角33~126,其他字符 ...

  6. 用PHP写出计算器

    <body> <?php if (!empty($_POST)) { $op=$_POST['point']; $sum1 = $_POST['sum1']; $sum2 = $_P ...

  7. RiscV汇编介绍(1)-编译过程

    从c/c++源文件,到可以执行文件,需要以下几个步骤: 预处理/编译 汇编 链接 下面我们以hello world程序为例,展示整个编译链接过程. 1. 编写hello.c代码 #include &l ...

  8. [转]C#操作Outlook

    本文转自:https://blog.csdn.net/yanlovehan/article/details/8500449 //引用Microsoft.Office.Interop.Outlook.d ...

  9. IDEA下新建Vue项目

    1.首先需要安装nodeJS,并配置全局环境变量. 2.在IDEA中新建一个空的project 3.在setting中配置JavaScript的语言版本为6 在file types的html中添加.* ...

  10. 【LeetCode】198. 打家劫舍

    打家劫舍 你是一个专业的小偷,计划偷窃沿街的房屋.每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警. 给定 ...