拓扑控制(topology control )是一种协调节点间各自传输范围的技术,用以构建具有某些期望的全局特性(如连通性)的网络拓扑结构,同时减少节点的能耗或增加网络的传输能力。

报告内容:

选取一种拓扑控制算法,编程实现该算法并用图形显示效果。要求有 执行 算法前后拓扑对比图 、链路数量统计对比。节点数目最少 50 个,随机分布,其他如通信半径、部署区域大小等自行选取。考虑到连通性问题,要求 应用拓扑控制的 初始 网络为 全连通网络 , 即 每个节点与 其他 任意节点至少 存在 一条链路 ( 可在 随机生成节点位置时 多 试几次或增加节点密度)。 编程环境 、语言不限。

背景介绍:

随着路由节点的增加以及拓扑结构变化率的增大,传统的路由转发协议算法效率低、鲁棒性差。贪婪周界无状态路由协议(GPSR)只使用拓扑结构中的临近信息节点进行“贪婪转发”决策。当数据包进入“路由空洞”的时候,算法会先构造GG平面图或者RNG平面图,然后采用“周边转发”绕过此区域。此过程中,算法会自动切换“贪婪转发”和“周边转发”这两种模式。在频繁变化或者节点数量多的拓扑结构中,并且每个节点存储的信息量少,GPSR可以较低的成本快速地响应变化,查询正确的路由路径

为了让节点存储最少的信息量,并且能够快速响应拓扑结构的变化。需要使用贪心法的思想,让每一步都是最优解,这个转发过程就是“贪心转发”。

但是有些时候无法满足“贪心转发”的条件,此时的情况就是“路由空洞”。解决“路由空洞”的重要技术是“右手法则”,这个转发过程就是“周边转发”。而在周边转发之前需要将图处理成平面图,有GG和RNG两种平面图供选择。

主要的平面化算法有GG(Gabriel Graph )和RNG( Relative Neighborhood Graph )。

构造平面图

1. RNG平面图

RNG平面图的定义

若顶点U,V和任意其它顶点W之间的距离,全都大于或等于顶点u和v之间的距离d(u,v),则在顶点U和V之间存在RNG边(u,v)。用方程式表示如下:

matlab中的RNN网络函数_伪代码

 

下  图形象地说明了RNG平面图的定义。以节点u和节点v各自形成一个半径为d(u,v)的圆形,半月形阴影区域则是这两个圆的重叠部分。若(u,v)是RNG中的边,则在节点U和V之间的阴影半月形区域内,不能包含有任何证明节点w。此时,由于d(u, v) > max(d(u,w), d(w,v)),为了构建RNG平面图,必须把边(u, v) 舍去

matlab中的RNN网络函数_伪代码_02

 

RNG平面图的定义

RNG的算法

对于每个节点u,有完整的邻节点列表N,用以下伪代码去除非RNG连接:

matlab中的RNN网络函数_matlab_03

RNG伪代码

 

2. GG平面图

GG平面图的定义

如果节点u和节点v之间,直径为uv的圆内,不存在其它顶点W,则节点u和节点v存在GG边(u,v)。用方程式表示如下:

matlab中的RNN网络函数_matlab中的RNN网络函数_04

 

下图形象地说明了RNG平面图的定义,节点u和节点v之间形成一个直径为d(u,v)的圆形,节点u和节点v都在圆上,即是圆形阴影区域。若(u,v)是GG中的边,则在节点U和V之间的圆形阴影区域,不能包含有任何证明节点w。

matlab中的RNN网络函数_matlab中的RNN网络函数_05

 

GG平面图的定义

GG平面图的算法

直径为uv的圆形阴影的圆心也是uv的中点。对于每个节点u,有完整的邻节点列表N,用以下伪代码去除非GG连接:

matlab中的RNN网络函数_链路_06

 

GG伪代码

对伪代码在MATLAB中实现

从两者的定义可以看出,RNG是GG的子集,差别在GG只是在节点间较小的圆形阴影区域内搜寻证明节点。如下图所示,左图是无线网络的完整拓扑图;150个节点被随机部署在150*150米的区域,无线电范围为250米;中间表示整个拓扑图的RNG子图;右图表示整个拓扑图的GG子图,sum,sum1,sum2分别为完整无线网络拓扑链路数量、RNG算法计算后链路数量和GG算法计算后链路数量。

   

matlab中的RNN网络函数_算法_07

matlab中的RNN网络函数_matlab中的RNN网络函数_08

 

matlab中的RNN网络函数_链路_09

matlab中的RNN网络函数_链路_10

 

 

 

再次随机生成150个节点,结果分别如下:

 

matlab中的RNN网络函数_matlab中的RNN网络函数_11

matlab中的RNN网络函数_matlab中的RNN网络函数_12

 

 

matlab中的RNN网络函数_伪代码_13

matlab中的RNN网络函数_matlab_14