GG平面图和RNG平面图的matlab实现

拓扑控制(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)。用方程式表示如下:

 

下  图形象地说明了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) 舍去

 

RNG平面图的定义

RNG的算法

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

RNG伪代码

 

2. GG平面图

GG平面图的定义

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

 

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

 

GG平面图的定义

GG平面图的算法

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

 

GG伪代码

对伪代码在MATLAB中实现

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


   

 

 

 

 

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

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

man1669

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值