GablrielGraph拓扑控制图的python图像实现
问题:
拓扑控制(topology control)
是一种协调节点间各自传输范围的技术,用以构建具有某些期望的全局特性(如连通性)的网络拓扑结构,同时减少节点的能耗或增加网络的传输能力。
选取一种拓扑控制算法(如 RNG、GG、DG、YG、MST、DRNG、 DLMST、DLSS,TopDisc 等),编程实现该算法并用图形显示效果。要求有执行算法前后拓扑对比图、链路数量统计对比。节点数目最少 50 个,随机分布,其他如通信半径、部署区域大小等自行选取。考虑到连通性问题,要求应用拓扑控制的初始网络为全连通网络(即每个节点与其他任意节点至少存 在一条链路,随机生成节点位置时可多试几次或增加节点密度)
拓扑算法的选择与原理
1. UDG(Unit Disk Graph)
定义:假定网络中N个节点构成了二维平面中的节点V所有节点都以最大功率工作时所产生的拓扑成为UDG
思路:每个节点遍历其余结点坐标,计算彼此距离(功率),属于范围内的节点连接成边缘,将边缘加入列表
2. GG(Gabriel Graph)
定义:任意两个节点u和v,以边u、v为直径的圆内没有其他节点
思路:每个节点遍历其余结点坐标,计算彼此距离(功率),判断是否属于范围内,且彼此连接圆内只有目标节点一个,成功便将边缘加入列表
程序框架
config.py:定义了随机初始化节点函数
util.py:定义了针对单个节点,利用udg或gg思想,遍历其余所有节点返回生成的边缘列表有关方法
gg.py:gg图演示程序
源码
gg.py
1 |
|
config.py
1 |
|
util.py
1 |
|
运行结果
目标范围:1000*1000,节点数量:50,最大通信功率(距离):250
GG
|
UDG
|
目标范围:1000*1000,节点数量:100,最大通信功率(距离):200
GG
|
UDG
|
目标范围:1000*1000,节点数量:20,最大通信功率(距离):900
GG
|
UDG
|
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!