一种无线传感器网络拥塞控制方法与流程

文档序号:11591583阅读:634来源:国知局
一种无线传感器网络拥塞控制方法与流程

本发明涉及一种与无线传感器网络拥塞控制相关的管理方法,更具体地说,本发明涉及一种无线传感器网络拥塞控制方法。



背景技术:

近年来,无线传感器网络技术得到了飞速发展,应用领域越来越广,对于无线传感器网络的要求也越来越高。随之而来的无线传感器网络拥塞问题也日益突出。无线传感器网络拥塞主要存在以下几个问题:

(1)节点级的拥塞:即节点需要发送的分组流量超过节点的发送能力,导致节点队列缓存溢出,造成数据分组的丢失和网络排队延迟的增加。

(2)无线链路级的拥塞:无线信道是共享信道,在同一时刻相邻节点只能有一个节点使用无线信道,当多个相邻节点同时竞争使用无线信道时便会产生访问冲突引起链路级拥塞,增加分组的服务时间,降低链路利用率和网络的吞吐量。

本发明主要关注节点级的拥塞问题。节点需要发送的分组流量超过节点的发送能力,导致了无线传感器网络拥塞现象的发生。一般来说,当节点队列缓存中存在过多的数据分组时,会产生拥塞。在网络发生拥塞时,会导致丢包率和延时增加,吞吐量下降,严重时会发生“拥塞崩溃”现象。

为了解决这种拥塞现象所带来的丢包率和延时增加,吞吐量急剧下降等网络性能的问题,现在无线传感器网络节点队列中普遍采用“弃尾方法”。当路由器因缓冲区不能及时处理接收的数据包时,会对暂时未能处理的数据包进行排队。按照弃尾方法将队列长度相关的参数进行预先设定,并将队列长度的参数与预定的阈值进行比较,若大于阈值,则开始丢弃大于阈值之后的数据包。“弃尾”的意思即从队列尾部开始丢弃。

但是弃尾方法中存在两个严重缺点:持续的满队列和业务流对缓存的死锁。而主动队列管理(aqm)方法在有线网络拥塞控制中的研究已经很成熟,它在拥塞之前采用预见式的提前丢包的思想,能够有效地控制队列长度,避免网络发生拥塞,解决滞后性和能量的不必要耗费问题。尤其是主动队列管理方法当中的pi方法,能够将缓冲中的队列控制在一个不依赖于负载的水平,其实现的基本思想是对于一个新到达的包,通过比较缓冲队列长度与目标队列长度,记录其误差,通过对误差进行比例积分控制来确定新到达包的丢弃概率。

但pi方法也有很多不完善之处,所以针对pi方法的改进方法也有很多。

中国专利公开号cn102821001a,公开日为2012年12月12日,专利申请号为cn201210344427.4,专利名称为“模糊神经元主动队列管理方法在ipcop中实现的方法”。描述了一种模糊神经元主动队列管理方法在ipcop中实现的方法,该方法步骤如下:1.相关参数的定义及初始化;2.等待新的数据包到达;3采用有导的hebb学习算法对神经元加权系数动态调节;包括对当前时刻瞬时队列长度q(k)进行采样,并计算神经元方法输入量x1(k),x2(k),x3(k)的值;4.采用模糊控制方法动态调整神经元增益k,包括以x1(k)和x2(k)为输入量,神经元增益k的变化量δk为输出量,对输入量x1(k)和x2(k)进行模糊化;5.计算丢弃概率p(k)并以丢弃概率p(k)对数据包进行丢弃,包括计算丢弃概率p(k),最后将数据包以丢弃概率p(k)进行丢弃。

中国专利公开号cn102129259a,公开日为2011年7月20日,专利申请号为cn201010034360.5,专利名称为“用于砂尘环境试验风洞的基于神经网络pi的智能温度控制系统和方法”。描述了基于神经网络pi的砂尘环境试验风洞的智能温度控制系统,其特征在于:(1)建立神经网络系统结构,(2)神经网络参数的混合学习训练,(3)pi控制,(4)限幅处理。本发明把pi控制器和神经网络结合起来,利用神经网络的自适应,离线学习和在线学习的能力得出控制变量协调控制因子,有效的确定主控设备和辅控设备。然后再通过pi控制器进行对被控对象温度的协调有效控制,当pi控制器输出控制变量之后,再进行对被控变量利用s函数进行限幅处理,使控制变量最优化。本发明克服了现有技术在控制上协调性差的影响,提高了控制的可靠性与协调性,拓展了其应用范围,也可用于其它感应器输出信号的协调性控制。

中国专利公开号cn105281615a,公开日为2016年1月27日,专利申请号为cn201510771820.5,专利名称为“一种基于改进粒子群算法优化无刷直流电机模糊控制器的方法”。本发明公开了一种基于改进粒子群算法优化无刷直流电机模糊控制器的方法,步骤包括:将整个解空间划分为七个区域;根据目标函数计算每个粒子的适应度;根据其适应度,更新粒子的个体极值和全局极值;将所更新的个体极值和全局极值赋值给量化因子ka、kb和比例因子kp、ki、kd;对输入输出的性能指标进行评估,如果满足目标函数则结束,如果不满足则应用改进粒子群算法将pi、pg代入量子粒子群公式,粒子在空间区域不断寻优,直到粒子满足目标函数,生成新的粒子群体。本发明基于改进粒子群算法能以最快的速度找出全局最优解,电机在额定转速下运行平稳,响应迅速,基本无超调出现,具有良好的随动性和动静态特性。

中国专利公开号cn101119281,公开日为2008年2月6日,专利号申请号为cn200710120757.4,专利名称为“一种传感器网络拥塞控制方法”。公开了一种传感器网络拥塞控制方法,应用于无线传感器网络中的网络节点,包括:步骤1)、网络节点对本节点的节点门限值和报文周期数的值做初始化;步骤2)、网络节点开始一个报文周期,生成一个新的本地数据报文,并得到它的报文优先级;步骤3)、对新生成的本地数据报文做网络拥塞判断,在发生网络拥塞的前提下,将本节点的报文周期数清零,增加本节点的门限值,调整发送队列,并向邻居节点广播新的门限值;步骤4)、对网络节点是否收到其他网络节点所发送的数据报文进行判断,如果收到数据报文,执行下一步,否则,执行步骤6);步骤5)、对所收到的数据报文做网络拥塞判断,在发生网络拥塞的前提下,将本节点的报文周期数清零,增加本节点的门限值,调整发送队列,并向邻居节点广播新的门限值;步骤6)、判断是否收到了邻居节点所发送的广播消息,若收到了广播消息且广播消息中所包含的节点门限值高于本节点的门限值,则按照广播消息中的节点门限值调高本节点的门限值,调整发送队列,然后将本节点的报文周期数清零,并广播新的节点门限值;步骤7)、判断本轮报文周期的终止时刻是否已经到达,如果已经到达,则执行下一步,否则重新执行步骤4);步骤8)、判断本节点的报文周期数是否低于一个规定值,如果低于则增加报文周期数后,重新执行步骤2)。否则将报文周期数清零后,降低节点门限值,然后重新执行步骤2)。

通过分析发现,传统pi方法设定参数主要依靠经验,并且设置为静态参数,这并不有利于pi方法应对不同的网络环境实施良好的网络拥塞控制。所以,本发明结合pi方法来控制无线传感器网络节点队列中包的丢弃概率,并且通过单神经元控制技术和粒子群算法对pi方法中的参数进行在线调整和优化。从而完善了pi方法存在参数固定的不足。解决网络拥塞所带来的中间节点队列不稳定、吞吐量急剧下降、丢包率和延时高等网络性能下降的问题。



技术实现要素:

本发明所要解决的技术问题是克服了现有技术存在的持续的满队列和业务流对缓存的死锁问题以及传统pi方法参数固定、不能很好适应无线传感器网络环境的问题,提供了一种无线传感器网络拥塞控制方法。

为解决上述技术问题,本发明是采用如下技术方案实现的:所述的一种无线传感器网络拥塞控制方法包括步骤如下:

1)相关参数的定义:

2)pi方法的实现:

将pi方法加载到ns2软件中,并且将pi方法应用于无线传感器网络节点的队列管理中;

3)采用单神经元控制技术对pi方法的改进:

采用单神经元控制技术对pi方法的参数kp、ki进行在线调整,其中,将此步骤采用单神经元控制技术对pi方法的改进命名为npi方法;

4)改进的粒子群算法对npi方法的参数进行在线寻优:

改进的粒子群算法对npi方法中的固定参数kp、ki的初始值和学习速率η1、η2进行在线寻优,通过实时矫正来在线调整单神经元的权值,其中,将此步骤采用改进的粒子群算法对npi方法的参数进行在线寻优命名为pnpi方法;

5)以丢弃概率p(k)进行主动丢包:

按照pnpi方法得到的丢弃概率p(k)进行主动丢包。

技术方案中所述的相关参数的定义是指:

1)kp0、ki0为pi方法中的两个固定参数kp、ki的初始值;

2)k为单神经元系数,其值为0.12;

3)wi(k)为神经元权值,i=1,2,初始值分别为2.58392e-6与98290e-6;

4)节点缓存队列长度为40packets;

5)q0为期望队列长度,其值为20packets;

6)q为瞬时队列长度,其初始值为0;

7)p(k)为丢弃概率;

8)粒子群的规模为n=30;

9)粒子的维数d=4;

10)粒子群惯性权重最大值w_max=0.9;

11)粒子群惯性权重最小值w_min=0.4;

12)pi方法的两个固定参数的最小值kp_min=ki_min=0.0000001;

13)pi方法的两个固定参数的最大值kp_max=ki_max=10;

14)η1、η2为神经元学习速率,设置最小值为η1_min=η2_min=0.0000001,最大值为η1_max=η2_max=10;

15)v_min、v_max为粒子群速度的最小值和最大值,其值分别为v_min=10,v_max=10;

16)c1、c2为粒子群算法学习因子,其中c1=0.95+0.1*rand,c2=c1。

技术方案中所述的pi方法的实现的步骤如下:

1)将pi方法加载到ns2软件中:

(1)将传统pi方法所包含的文件pi.h和pi.cc加载到ns2仿真软件中,其中pi.h和pi.cc为pi方法实现的代码;

(2)在ns2.35文件夹下修改makefile和makefile.vc文件,在这两个文件的obj_cc=\tools/random.otools/rng.otools/ranvar.ocommon/misc.ocommon/下加入代码queue/red-pd.oqueue/pi.oqueue\,其中ns2.35为ns2软件的版本;

(3)在lib文件夹下修改ns-lib.tcl文件,在lib文件的if{[stringfirst"red"$qtype]!=-1||下加入代码if{[stringfirst"pi"$qtype]!=-1||;

(4)在lib文件夹下的ns-default文件中对pi参数进行初始化;

(5)对ns2进行重新编译,至此,把pi方法加载到了ns2软件中;

2)将pi方法应用于无线传感器网络节点的队列管理中:

(1)编写tcl脚本文件,模拟无线传感器网络环境;

(2)将pi方法加载到tcl脚本文件中,其中tcl脚本为ns2软件的模拟脚本。

技术方案中所述的采用单神经元控制技术对pi方法的改进的步骤如下:

1)设置pi方法的输入量x1(k)、x2(k);

其中:x1(k)为瞬时队列长度q与期望队列长度q0的误差,x2(k)为误差的一次差分;单神经元控制技术的输入输出关系为:

其中,k为单神经元的系数,并且保证k>0,xi(k)为单神经元的输入,wi(k)为xi(k)的权重,u(k)为单神经元的输出;

2)本技术方案采用有导的hebb学习算法来调节加权系数wi(k),其表达式为:

wi(k+1)=wi(k)+ηiz(k)u(k)xi(k)

其中:z(k)为输出误差信号z(k)=e(k),η1、η2为不同的学习速率系数;

3)单神经元控制技术是通过调整输入变量xi(k)的权重wi(k)来实现自适应调整的,其中wi(k)分别对应于pi方法的ki、kp;为了实现算法的收敛性和鲁棒性,采用规范化学习算法进行处理,则表达式可以写成下式:

其中,wi'(k)可表示为:

为了依据无线传感器网络环境的实时变化来调整方法的参数,所述的pnpi方法将pi方法的参数进行自适应调整,已有pi方法的两个固定参数通过专家经验得出,不具有动态调整的特性;所以通过上述步骤对神经元权值进行在线调整,即对pi两个固定参数进行在线调整。

技术方案中所述的改进的粒子群算法对npi方法的参数进行在线寻优的步骤如下:

1)对粒子群中粒子的位置和速度进行随机初始化,假设一个粒子群的种群规模为n,每个粒子代表d维搜索空间中的一个解,其中粒子i在求解空间中的位置和速度分别表示为:

xi=(xi1,xi2,...,xid),vi=(vi1,vi2,...,vid)

其中:粒子群神经元初始化参数为4个,所以d=4,种群规模n=30;

2)计算每个粒子的适应度:本技术方案中选定的适应度为

3)计算粒子所经历的最好位置和全局最好位置:其中粒子所经历的最好位置为pi=(pi1,pi2,...,pid),群体中所有粒子经历过最好位置,即全局最好位置为g=(pg1,pg2,...,pgd);粒子所经历的最好位置由式(1)决定:

群体的全局最好位置g=(pg1,pg2,...,pgd)中的下标g由式(2)确定:

式中:就是指当f(pi(t))取得最小值时,变量i的取值,即g的取值;

4)对粒子的速度vid(t)和位置xid(t)进行进化,在标准pso模型中,粒子在每一维上的速度和位置更新公式如下:

vid(t+1)=ωvid(t)+c1r1id(t)(pid(t)-xid(t))+c2r2id(t)(pgd(t)-xid(t))

xid(t+1)=xid(t)+vid(t+1)

式中:vid和xid定义分别表示第i个粒子第d维的速度分量与位置分量;

pid为第i个粒子所经历的历史最佳位置分量;

pgd为群体所经过的历史最佳位置分量;

w为惯性权重,决定了粒子对当前速度的继承度;

r1和r2为[0,1]区间内均匀分布且相互独立的随机数,称为随机因子;

c1为个体认知加速系数,表示粒子对自己经历过的历史最佳位置的记忆;

c2为群体认知加速系数,表示粒子对整个种群所经历过的历史最佳位置的记忆能力,学习因子的存在使得粒子具有自我总结和向群体中最优个体学习的能力,通过两种能力的相互补充协调,粒子不断向着全局最优位置或局部最优位置靠近;

5)判断结束条件,如果进化到预先设定的代数,继续往下进行,否则返回步骤2)即计算每个粒子的适应度步骤。

技术方案中所述的以丢弃概率p(k)进行主动丢包的步骤如下:

1)本发明所述的pnpi方法需要按照采用单神经元控制技术对pi方法的改进步骤中公式计算丢弃概率;

2)得到丢弃概率后,以丢弃概率p(k)进行主动丢包,在队列缓冲区溢出之前,提前主动丢包,避免拥塞发生。

与现有技术相比本发明的有益效果是:

1.本发明所述的一种无线传感器网络拥塞控制方法解决了弃尾方法中持续的满队列和业务流对缓存的死锁;

2.对比pi方法,本发明所述的一种无线传感器网络拥塞控制方法,解决了pi方法因参数固定不能很好的适应无线传感器网络动态环境而导致的队列长度不稳定的缺点,使队列长度稳定在期望值附近;

3.对比pi方法和采用单神经元控制技术对pi方法的改进(命名为npi方法),本发明所述的一种无线传感器网络拥塞控制方法,在自适应调整固定参数的同时对一些参数进行了在线寻优,防止npi方法的局部优化问题。从而更好的适应无线传感器网络环境;

4.本发明所述的一种无线传感器网络拥塞控制方法(命名为pnpi方法)在没有影响实际到达数据包的情况下,与pi方法,npi方法比较,提高了吞吐量和分组投递率,降低了丢包率和时延,节约了网络资源,改善了网络通信质量。

附图说明

下面结合附图对本发明作进一步的说明:

图1为本发明所述的一种无线传感器网络拥塞控制方法(pnpi方法)的功能流程示意框图;

图2为本发明所述的pnpi方法的结构原理图;

图3为本发明所述的一种无线传感器网络拥塞控制方法中的对于采用单神经元控制技术对pi方法的改进(命名为npi方法)步骤的分解功能控制原理图;

图4为本发明所述的pnpi方法中的用改进的粒子群算法对npi方法的初始参数(kp0、ki0)、神经元学习速率(η1、η2)进行在线寻优步骤的分解功能流程示意框图;

图5为本发明所述的pnpi方法在ns-2网络仿真平台下的网络拓扑图;

图6为本发明实施例中的pi方法中间节点队列长度曲线图;

图7为本发明实施例中的npi方法中间节点队列长度曲线图;

图8为本发明实施例中的pnpi方法中间节点队列长度曲线图;

图9为本发明实施例中的pi、npi方法与本发明所述的pnpi方法中间节点队列长度均值对比图;

图10为本发明实施例中的pi、npi方法与本发明所述的pnpi方法中间节点队列长度方差对比图;

图11为本发明实施例中的pi、npi方法与本发明所述的pnpi方法中吞吐量对比曲线图;

图12为本发明实施例中的pi、npi、pnpi方法与本发明所述的pnpi方法中瓶颈节点1的丢包率对比曲线图;

图13为本发明实施例中的pi、npi、pnpi方法与本发明所述的pnpi方法中延时对比曲线图;

图14为本发明实施例中的pi、npi、pnpi方法与本发明所述的pnpi方法中分组投递率对比曲线图。

具体实施方式

下面结合附图对本发明作详细的描述:

参阅图1、图2,本发明提供了一种无线传感器网络拥塞控制方法,尽管pi方法是一种有效的拥塞控制机制和拥塞避免机制,但其仍然存在下面一些不足。

1.pi方法的参数固定,不能适应于无线传感器网络技术(wirelesssensornetwork,wsn)的动态变化;

2.根据无线传感器网络结构,端到端的拥塞控制方法已无法有效地解决拥塞问题,因此,需要考虑将中间节点与源端配合来设计拥塞控制策略,而主动队列管理方法满足了这一点要求,所以将pi方法应用到无线传感器网络中非常有价值。

3.对传统pi方法改进的过程中,npi方法虽然对pi方法的两个固定参数kp、ki进行了自适应调整,但单神经元控制技术有其自身增加延时的缺陷。

为了解决上述问题,产生了一些用于无线传感器网络的改进的pi拥塞控制策略方法。这些方法结合了无线传感器网络的特点,对参数进行了调整,但其参数调整的效果并不十分理想,仍需有待加强。

本发明提供了一种能够依据无线传感器网络环境,自适应调整、计算pi方法固定参数kp、ki,并且对一些参数进行在线寻优的一种无线传感器拥塞控制方法(pnpi),该方法依次含有如下步骤:

1.相关参数的定义

1)kp0、ki0为pi方法中的两个固定参数kp、ki的初始值;

2)k为单神经元系数,其值为0.12;

3)wi(k)为神经元权值,i=1,2,初始值分别为2.58392e-6和98290e-6;

4)节点缓存队列长度为40packets;

5)q0为期望队列长度,其值为20packets;

6)q为瞬时队列长度,其初始值为0;

7)p(k)为丢弃概率;

8)粒子群的规模为n=30;

9)粒子的维数d=4;

10)粒子群惯性权重最大值wmax=0.9;

11)粒子群惯性权重最小值wmin=0.4;

12)pi方法的两个固定参数的最小值kp_min=ki_min=0.0000001;

13)pi方法的两个固定参数的最大值kp_max=ki_max=10;

14)η1、η2为神经元学习速率,设置最小值为η1_min=η2_min=0.0000001,最大值为η1_max=η2_max=10;

15)v_min、v_max为粒子群速度的最小值和最大值,其值分别为v_min=10,v_max=10;

16)c1、c2为粒子群算法学习因子,其中c1=0.95+0.1*rand,c2=c1。

2.pi方法的实现

设置pi方法两个固定参数kp0、ki0初始值,神经元系数k,期望队列长度q0,粒子群的规模为n=30,粒子的维数d=4,粒子群惯性权重最大值wmax=0.9,粒子群惯性权重最小值wmin=0.4,pi方法的两个参数的最小值kp_min=ki_min=0.0001和最大值kp_max=ki_max=10:

1)将pi方法加载到ns2软件中的步骤如下:

其中ns2是指networksimulatorversion2,ns(networksimulator)是一种针对网络技术的源代码公开的、免费的软件模拟平台。

(1)将传统pi方法所包含的文件pi.h和pi.cc加载到ns2仿真软件中,其中pi.h和pi.cc为pi方法实现的代码;

(2)在ns2.35文件夹下修改makefile和makefile.vc文件,在这两个文件obj_cc=\tools/random.otools/rng.otools/ranvar.ocommon/misc.ocommon/下加入代码queue/red-pd.oqueue/pi.oqueue\,其中ns2.35为ns2软件的版本;

(3)在lib文件夹下修改ns-lib.tcl文件,在lib文件的if{[stringfirst"red"$qtype]!=-1||下加入代码if{[stringfirst"pi"$qtype]!=-1||;

(4)在lib文件夹下的ns-default文件中对pi参数进行初始化;

(5)对ns2进行重新编译,至此,把pi方法加载到了ns2软件中。

2)将pi方法应用于无线传感器网络节点的队列管理中的步骤如下:

(1)编写tcl脚本文件,模拟无线传感器网络环境;其中tcl脚本为ns2软件的模拟脚本;

(2)将pi方法加载到tcl脚本文件中的代码:setval(ifq)queue/droptail/priqueue;#interfacequeuetype改为setval(ifq)queue/pi;#interfacequeuetype。

3.采用单神经元控制技术对pi方法的改进

参阅图3,因pi方法的两个固定参数kp、ki非常重要,对于无线传感器网络拥塞控制的效果有很大影响,所以采用单神经元控制技术对pi方法的两个固定参数kp、ki进行在线调,得到的方法命名为npi方法,本发明所述的pnpi方法采用有监督的hebb学习方法对pi方法的参数进行自适应调整,根据无线传感器网络动态变化情况,调整当前pi方法的两个固定参数kp、ki。

采用单神经元控制技术对pi方法的改进包括如下步骤:

1)设置pi方法的输入量x1(k)、x2(k),其中,x1(k)为瞬时队列长度q与期望值q0的误差,x2(k)为误差的一次差分;单神经元控制技术的输入输出关系为:

其中,k为单神经元的系数,并且保证k>0,xi(k)为单神经元的输入,wi(k)为xi(k)的权重,u(k)为单神经元的输出;

2)在单神经元控制技术中,根据学习信号的不同将学习算法分为3种:无导的hebb学习算法、有导的delta学习算法和有导的hebb学习算法。根据需要,本技术方案采用有导的hebb学习算法来调节加权系数wi(k),其表达式为:

wi(k+1)=wi(k)+ηiz(k)u(k)xi(k)

其中,z(k)为输出误差信号z(k)=e(k),η1、η2为不同的学习速率系数;

3)单神经元控制技术是通过调整输入变量xi(k)的权重wi(k)来实现自适应调整的,其中wi(k)分别对应于pi方法的ki、kp;为了实现算法的收敛性和鲁棒性,采用规范化学习算法进行处理,则表达式可以写成下式:

其中,wi'(k)可表示为:

为了依据无线传感器网络环境的实时变化来调整方法的参数,本发明所述的pnpi方法将pi方法的两个固定参数kp、ki进行自适应调整,已有pi方法的两个固定参数kp、ki通过专家经验得出,不具有动态调整的特性;所以通过上述步骤对神经元权值进行在线调整,即对pi方法两个固定参数进行在线调整,得到的方法命名为npi方法;准备进行下一步计算的步骤。

4.改进的粒子群算法对npi方法的参数进行在线寻优

根据期望队列长度和瞬时队列长度的误差来调整自适应函数,达到反馈的目的。参阅图4,通过改进的粒子群算法对npi方法的参数进行在线寻优,步骤如下:

1)对粒子群中粒子的位置和速度进行随机初始化,假设一个粒子群的种群规模为n,每个粒子代表d维搜索空间中的一个解,其中粒子i在求解空间中的位置和速度分别表示为:

xi=(xi1,xi2,...,xid),vi=(vi1,vi2,...,vid)

其中:粒子群神经元初始化参数为4个,所以d=4,种群规模n=30;

2)计算每个粒子的适应度:本技术方案中选定的适应度为

3)计算粒子所经历的最好位置和全局最好位置:其中粒子所经历的最好位置为pi=(pi1,pi2,...,pid),群体中所有粒子经历过最好位置,即全局最好位置为g=(pg1,pg2,...,pgd);其中粒子所经历的最好位置由式(1)决定:

群体的全局最好位置g=(pg1,pg2,...,pgd)中的下标g由式(2)确定:

式中:就是指当f(pi(t))取得最小值时,变量i的取值,即g的取值;

4)对粒子的速度vid(t)和位置xid(t)进行进化,在标准pso模型中,粒子在每一维上的速度和位置更新公式如下:

vid(t+1)=ωvid(t)+c1r1id(t)(pid(t)-xid(t))+c2r2id(t)(pgd(t)-xid(t))

xid(t+1)=xid(t)+vid(t+1)

式中:vid和xid定义分别表示第i个粒子第d维的速度分量与位置分量;

pid为第i个粒子所经历的历史最佳位置分量;

pgd为群体所经过的历史最佳位置分量;

w为惯性权重,决定了粒子对当前速度的继承度;

r1和r2为[0,1]区间内均匀分布且相互独立的随机数,称为随机因子;

c1为个体认知加速系数,表示粒子对自己经历过的历史最佳位置的记忆,

c2为群体认知加速系数,表示粒子对整个种群所经历过的历史最佳位置的记忆能力,学习因子的存在使得粒子具有自我总结和向群体中最优个体学习的能力,通过两种能力的相互补充协调,粒子不断向着全局最优位置或局部最优位置靠近;

5)判断结束条件,如果进化到预先设定的代数,继续往下进行,否则返回步骤2)即计算每个粒子的适应度步骤。

5.以丢弃概率p(k)进行主动丢包的步骤如下:

1)本发明所述的pnpi方法需要按照步骤3即采用单神经元控制技术对pi方法的改进步骤中公式计算丢弃概率;

2)得到丢弃概率后,以丢弃概率p(k)进行主动丢包,在队列缓冲区溢出之前,提前主动丢包,避免拥塞发生。

实施例

仿真条件如下:

参阅图5,为了检验本发明所述的一种无线传感器网络拥塞控制方法(命名为pnpi方法)的性能,把本发明所述的pnpi方法加载到ns-2仿真平台上,仿真使用2.35版本的ns-2平台,操作系统为ubuntu10.04。图中所表示的为在ns-2仿真平台上搭建的模拟无线传感器网络环境,其中节点数为14个,节点的传输范围250m,无线传感器网络的媒体访问控制(mediaaddresscontrol,mac)层采用802.11协议,路由协议采用aodv,节点的初始能量默认值,节点缓存队列长度为40packets,初始源节点向汇聚节点以200kb/s的速率发送数据,包的大小为128b,采样频率w=100hz,仿真时间50s,从0s源节点开始发送数据包到50s停止发送。

使用以下一系列的实验来说明本发明所述的pnpi方法,对于提高队列稳定程度、提高吞吐量和分组投递率、降低丢包率和时延具有一定的改善,实验的前提为:传统pi方法中固定参数值kp=0.0000475,ki=0.0000174。npi方法和提出的pnpi方法中,单神经元系数为k=0.12。

pi方法、npi方法与本发明所述的pnpi方法的网络性能比较。

参数设置:传统pi方法中期望队列长度为20packets,固定参数值kp=0.0000475,ki=0.0000174,采样频率w=100hz,npi方法和提出的pnpi方法中期望队列长度为20packets,单神经元系数为k=0.12。

由实验可以得到图6、图7与图8,分别是pi方法、npi方法与本发明所述的pnpi方法的瞬时队列长度的变化曲线,可以发现本发明所述的pnpi方法的队列长度曲线震荡幅度明显减小,并且保持较低的队列长度,而且在接下来的仿真时间里本发明所述的pnpi方法的队列长度更为平滑,几乎没有强烈的抖动。

由实验组可以得到图9和图10,分别是pi方法、npi方法与本发明所述的pnpi方法的队列长度均值和方差的对比图。从图中可以看出pi方法均值最大,npi和pnpi方法的均值几乎相等,而pi方法的方差远远大于其他两种方法,并且pnpi方法的方差小于npi方法。所以pnpi方法更加稳定。

由实验组可以得到图11,是pi方法、npi方法与本发明所述的pnpi方法的吞吐量变化的对比曲线,可以发现本发明所述的pnpi方法吞吐量几乎在每一时刻都高于pi方法和npi方法,说明pnpi方法明显提高了无线传感器网络性能。

由实验可以得到图12,是pi方法、npi方法与本发明所述的pnpi方法的瓶颈节点1的丢包率对比,可以发现本发明所述的pnpi方法的丢包率明显低于其他两种方法。

由实验可以得到图13,是pi方法、npi方法与本发明所述的pnpi方法的延时对比,可以发现本发明所述的pnpi方法,其延时在仿真时间里大多数时刻都低于其他两种方法。

由实验组可以得到图14,是pi方法、npi方法与本发明所述的pnpi方法的分组投递率对比,可以发现本发明所述的pnpi方法,其分组投递率在仿真时间里大多数时刻都高于其他两种方法。

上述实验分别检验了本发明所述的pnpi方法的性能,通过上述实验可以得出在相同的网络环境和相同的仿真条件下,本发明所述的pnpi方法取得了稳定队列长度、提高吞吐量和分组投递率、降低丢包率和延时等无线传感器网络性能。

本发明所述的pnpi方法达到了本发明的设计目标,该方法的参数根据网络环境自适应调整参数设置,而不是像其他方法由静态参数配置调节方法控制网络拥塞,并取得了良好的效果,可以证明本发明所述的pnpi方法具有自适应、动态调整的能力,且其性能优良。

当前第1页1 2 
网友询问留言 已有1条留言
  • 131819... 来自[中国] 2023年06月08日 16:43
    非常好!
    0
1