机会网络传输模型.

机会网络传输模型._第1张图片

作者:金良([email protected] csdn博客:http://blog.csdn.net/u012176591



1.情景再现

在固定大小的矩形区域内有N个初始位置遵循随机分布的、能够在这个矩形区域内随机运动的网络节点,假设在时刻,某一个节点获得一个message,然后这N个节点开始随机运动。所有节点都有相同的一个交换信息的有效半径,当两个节点的距离小于时,如果其中一个节点已携带有message而另一个节点尚且没有携带message,那么就会向传递该信息,已知成功率为

问题:求 时刻已获得 message 的节点的数目。

2.模型推导

时刻已获得message的节点的数目是,下面我们分析在该时刻单位时间的增量(即关于时间的倒数)的表达式。

分析如下:

已获得message的节点的数目是,那么未获得message的节点的数目是

由于节点的位置可以看成是遵循均匀分布,那么单位面积的区域内的未获得message的节点数目是

个已经获得message的节点的有效面积之和是

那么在此有效面积范围内未获得message的节点数目是二者乘积:

由于传递message的成功率是,那么单位时间新获得message的节点的数目是

那么我们要求解的常微分方程式:

机会网络传输模型._第2张图片


求解方程(2)得


3.有地图的仿真对比


机会网络传输模型._第3张图片
附作图代码:
from math import *  
from pylab import *  
x = range(45000)  
k = 0.00033  
y = 755.0/(1+754*exp(-k*array(x)))  
plot(x,y)  
show()

下图是仿真得到的图像(总节点数:755,初始带信息的节点数:1):
机会网络传输模型._第4张图片
附作图代码:
from pylab import *  
#fd = open("0.1/1.txt")  
#line = fd.readline()  
result = []  
i = 1  
for line in open("380_3.txt"):  
    print line  
    result.append([map(float,line.split(','))[0],i])  
    i += 1  
for j in range(i-1)[::-1]:  
   result[j][0] -= result[0][0]  
result = mat(result)  
print result  
plot(result[:,0],result[:,1])  
show()  
网络仿真画面截图:
第一幅——网络结构图:
机会网络传输模型._第5张图片

第二幅——仿真过程前

图中蓝色的点是节点,可以看到几乎所有的节点都是蓝色,表示没有携带信息

机会网络传输模型._第6张图片

第三幅——仿真过程1

这一幅图展示了信息传递的过程,红色的点表示携带信息的节点,可以看到携带信息的点正在传递信息给未携带信息的点

机会网络传输模型._第7张图片

第四幅——仿真过程2

这一幅图是第三幅图的进一步发展,可以看到几乎所有的点都携带了信息
机会网络传输模型._第8张图片

4.无地图的仿真对比

无地图的仿真与第三节有地图的仿真唯一地区别是,有地图的仿真过程中,节点沿着网络链路移动,而在无地图的仿真过程中,节点可以向任意方向移动。

下面是几张仿真得到的图像:

机会网络传输模型._第9张图片


机会网络传输模型._第10张图片
from math import *  
from pylab import *  
x = range(25000)  
k = 0.00107  
y = 3005.0/(1+3004*exp(-k*array(x)))  
plot(x,y)  
show()  

无地图的仿真过程截图:
机会网络传输模型._第11张图片

你可能感兴趣的:(机会网络)