时隙Aloha及伪贝叶斯算法Word下载.docx
- 文档编号:19563883
- 上传时间:2023-01-07
- 格式:DOCX
- 页数:12
- 大小:126.81KB
时隙Aloha及伪贝叶斯算法Word下载.docx
《时隙Aloha及伪贝叶斯算法Word下载.docx》由会员分享,可在线阅读,更多相关《时隙Aloha及伪贝叶斯算法Word下载.docx(12页珍藏版)》请在冰豆网上搜索。
,仿真时,我们认为每个节点每个时隙最多只会到达一个数据包,故仿真时可以以一个时隙为步长,每个节点每个时隙到达一个数据包的概率就为p=
,由此,对每个节点生成一组随机数,当此随机数小于等于p,则表示有一个数据包到达,把此随机数用1代替,反之则没有数据包到达,把此随机数用0代替,这样可以得到每个节点在某个时刻是否有数据包到达的矩阵,然后把每组矩阵相加,得到某一时刻总的到达的数据包,当某一时刻为1时,总共只有一个数据包到达,则可以成功传送,对于每个给定的λ,取多个时隙作多次重复试验,则可以得到这多次重复试验中成功传送的次数,用成功传送的次数除以总的重复试验次数,就是成功传送的概率。
对不同λ值,用上述方法,就可以得到不同λ值对应的成功传送的概率。
此外,对于给定的λ,理论成功传送的概率为
,对于时隙长度1有
。
下面是m=3000,取5000个时隙点,λ在[0,3]间对应的成功传送的概率:
图1不同λ下成功传送的概率
程序:
clc
clear
closeall
m=3000;
t=5000;
z=[];
lilun=[];
fork=0:
0.1:
3
p=k/m;
x=rand(m,t);
fori=1:
m
forj=1:
t
ifx(i,j)<
=p
x(i,j)=1;
else
x(i,j)=0;
end
y=(sum(x));
z=[z,sum(y==1)/t];
lilun=[lilun,k*exp(-k)];
end
k=0:
3;
plot(k,z,'
r*'
)
holdon
plot(k,lilun)
2、绘制到达率和离开率随n的分布情况,和理论值进行对照。
为了方便叙述,作如下假设:
qr:
等待重传的节点在每一时刻内重传数据包的概率;
m:
系统内总的节点数;
n:
每个时隙开始时等待重传的节点数;
qa:
每个发送节点有数据包到达的概率。
实验思路:
(1)为了简化程序,使用matlab自带的二项分布生成函数binornd来模拟数据包的到达和离开。
由于题目说明使用延时的下界,则无缓冲,每个节点最多容纳一个数据包,多则丢弃。
实验中要用到两个矩阵,一个是u,用来模拟n个等待重传的数据包以概率qr重传,所以这个矩阵的前n项可以用binornd(1,qr,1,n)来表示,即u(1:
n)=binornd(1,qr,1,n),后面m-n项为0,即u(n+1:
m)=0,这就可以模拟有n个等待重传的节点以概率qr重新发送。
同理,用矩阵l来模拟m-n个空闲节点新数据包到达的情况,容易得到l(1:
n)=0和l(n+1:
m)=binornd(1,qa,1,m-n),D(n)=sum(l)得到的则是新到达数据包的个数。
(2)将矩阵u和l相加得到矩阵y,则y表示的是每个节点是否有数据包发送,如果y只有一项为1,即sum(y)==1,则表示有数据发送成功,此时可以用Ns来计数发送成功的次数,否则则是空闲或者碰撞。
(3)对每一个等待重传的节点数n,我们做M次试验,每次试验,对新到达的数据包求和,即:
D(n)=D(n)+sum(l),对发送成功的次数记数,即:
Ns(n)=Ns(n)+1。
最后则有一个时隙内新到达的数据包的平均值为D=D/M,一个时隙内平均传输数据包的个数为Ps=Ns/M。
此外,为了使统计值与理论值比较接近,M的取值要比较大。
(4)理论值:
D=(m-n)qa,Ps=G(n)exp(-G(n)),其中G(n)=(m-n)qa+n*qr=D+n*qr。
(5)本实验过程中qa和qr的选择对实验的效果影响较大,为了使传送成功的概率最大,总的到达强度取1/e,通过实验,qr在[0.01,0.1]可以看到比较好的效果,在这个区别里,改变qr,可以较清楚地看到qr的改变对到达率和离开率的影响。
下面是qr=0.06、qr=0.08和qr=0.04的实验结果:
图2qr=0.06时不同等待重传节点数n下的到达率和离开率
图3qr=0.08时不同等待重传节点数n下的到达率和离开率
图4qr=0.04时不同等待重传节点数n下的到达率和离开率
图中直线为到达率,曲线为离开率,星形为实验值,连续线为理论值,首先可以看到实验值和理论值的吻合程度很好,这需要重复实验的次数M较大;
第二,我们可以看到重传概率qr增加,曲线会向左压缩,导致到达率和离开率的第二个交叉点向左移,这样很小的n值都可能使系统进入不稳定区域,到达不稳定平衡点的可能性增加;
第三,如果qr减小,曲线向右扩张,从而导致第二个交叉点向右移,扩张到一定程度后,实际系统将仅有一个稳定点,如图4所示。
lamida=1/exp
(1);
m=100;
qa=lamida/m;
qr=0.04;
Ns=zeros(1,m+1);
D=zeros(1,m+1);
D1=zeros(1,m+1);
Ps1=zeros(1,m+1);
M=20000;
forn=0:
M
u(1:
n)=binornd(1,qr,1,n);
u(n+1:
m)=0;
%n¸
ö
µ
È
´
ý
Ö
Ø
«
Ä
½
Ú
ã
l(1:
n)=0;
l(n+1:
m)=binornd(1,qa,1,m-n);
%m-n¸
¿
Õ
Ï
Ð
D(n+1)=D(n+1)+sum(l);
%Ó
É
Ó
¾
ó
Ã
»
0Ï
î
£
¬
×
÷
û
y=u+l;
%Ë
ù
Ê
Ç
·
ñ
Ý
°
ü
±
í
ifsum(y)==1%´
Ë
Í
³
¹
¦
Ns(n+1)=Ns(n+1)+1;
Ns(n+1)=Ns(n+1);
%¿
ò
ß
Å
²
D1(n+1)=(m-n)*qa;
G(n+1)=D1(n+1)+n*qr;
Ps1(n+1)=G(n+1)*exp(-G(n+1));
Ps=Ns/M;
D=D/M;
t=0:
m;
plot(t,Ps,'
plot(t,Ps1,'
r'
plot(t,D,'
*'
plot(t,D1)
由于伪贝叶斯算法中,当节点有新数据包到达时,不是立刻发送,而是仿照有数据包等待重传的节点一样,先对该数据包进行缓存,在下一时隙也是以概率qr进行传输,可以将实验过程2中的思路稍做修改即可:
(1)对于矩阵u,如果等待重传的节点数为n,则将矩阵u的前n项置为1,后m-n项置为0,而对于矩阵l则和实验过程2一样,前n项置为0,后m-n项用二项分布生成函数来模拟,到达的概率为qa。
(2)将u和l相加得到矩阵y,则表示的是下一时隙每个节点是否有数据发送的矩阵,y中1的个数就是下一时隙等待重传的节点的个数total,这些等待重传的节点将分别以概率qr发送,此时可以用二项分布生成函数来模拟其发送,即leave=binornd(1,qr,1,total),此时,如果leave矩阵只有一个为1,其他都为0,则可以成功发送,从而将下一时隙等待重传的节点数减1。
(3)根据leave矩阵,可以得到等待重传的节点发送情况,只有一个1则发送成功,全是0则空闲,多于一个1则是碰撞,从而可以根据伪贝叶斯算法做下一次等待重传节点数的预测,其表达式为:
下面是实验结果:
a)验证在n的估计误差大情况下的收敛特性
i.初始等待重传的节点数n=50,初始估计的等待重传的节点数n_t=200,m=2000,
,时隙数为N=2000。
图5初始估计值比实际值大的收敛情况
ii.初始等待重传的节点数n=350,初始估计的等待重传的节点数n_t=200,m=2000,
图6初始估计值比实际值小的收敛情况
iii.初始等待重传的节点数n=50,初始估计的等待重传的节点数n_t=200,m=2000,
图7到达强度变大,初始估计值比实际值小的收敛情况
从图中可以看到,不管估计的初始等待重传的节点数比实际值大还是小,估计值都将收敛于实际值,当估计值远大于实际值时,重传的概率qr较小,故系统空闲的概率较大,成功传输的概率较大,故估计值会迅速减小,从而趋于实际值;
当估计值比实际值小时,重传的概率qr较大,故系统碰撞的概率较大,故估计值会迅速增大,从而趋于实际值。
此外,对比图5和图7,可以看出,当到达强度增大时,收敛速度变慢,分析原因为,如果估计值和实际值相等,则qr=1/n,G(n)=1,达到最大成功传输的概率1/e,此时D(n)=λ-1/e,当λ<
1/e时,D(n)<
0,而且λ越小,D(n)负的越大,故收敛越快。
b)稳定性验证
初始等待重传的节点数n=50,初始估计的等待重传的节点数n_t=200,m=2000,时隙数为N=2000,图8是
和
时的稳定性对比图。
从图8中可以看到,当
时,系统的稳定性就无法保证,只有
时,伪贝叶斯算法才是稳定的。
图8稳定性验证
lamida=1/exp
(1)*0.6;
n=50;
n_t=200;
N=2000;
n1=n;
n1_t=n_t;
m=2000;
qa=lamida/m;
forj=1:
N
qr=min(1,1/n1_t);
n=n1;
n_t=n1_t;
%n_tº
n1_t·
ð
jº
j+1Ê
¶
Ô
¤
â
%·
Â
æ
n)=1;
total=length(find(y==1));
leave=binornd(1,qr,1,total);
%Ã
¸
Ò
qr´
ifsum(leave)==1%´
n1=total-1;
else
n1=total;
N1(j)=n1;
%Ï
¼
%Ô
ifsum(leave)==1||sum(leave)==0
n1_t=max(lamida,(lamida+n_t-1));
n1_t=n_t+lamida+(exp
(1)-2)^(-1);
%Å
N1_t(j)=n1_t;
plot(1:
N,N1,'
b'
);
holdon;
N,N1_t,'
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 时隙 Aloha 伪贝叶斯 算法