一种基于改进免疫算法的pid主动队列管理方法

文档序号:9666548阅读:729来源:国知局
一种基于改进免疫算法的pid主动队列管理方法
【技术领域】
[0001] 本发明涉及到计算机网络管理领域,具体的说是一种基于改进免疫算法的PID主 动队列管理方法。
【背景技术】
[0002] 网络用户、网络应用,以及网络类型的日益增多,导致网络流量的急剧增加,网络 拥塞现象越来越严重,网络性能明显劣化,如何保证服务质量并降低数据包丢失的概率成 为Internet的关键问题。当前路由器上常采用的网络拥塞避免方法中主动队列管理 (ActiveQueueManagement,AQM)机制是其中主流方法,其基本思想是通过平均队列长度 来平滑网络突发流量,主动队列管理算法的主要代表有耶1)、此现、?1、?10等,针对1?0、80? 等算法存在参数设置敏感、缺乏公平性和队列长度波动较大的缺点,一些基于PI控制器的 主动队列管理算法被提出,虽然此类方法解决了传统主动队列管理算法的公平性和队列波 动问题,但是PI控制器存在响应迟缓问题,因此,研究人员又提出了基于PID控制器的主动 队列管理方法。
[0003] PID主动队列管理方法的主要目标是:快速地稳定队列长度在期望队列长度值附 近,保证队列长度波动最小,以减低网络丢包率并使网络系统达到稳定状态。许多学者对 PID参数整定方法进行了深入研究,提出了很多参数整定方法,Ziegler-Nichols频率响应 法的参数整定方法是其中代表性的一种。但是在动态变化的网络环境中,很难根据经验确 切得到网络系统的临界放大倍数和临界震荡周期,也就无法使用该方法整定PID控制器的 参数。基于稳定裕度的参数整定方法被提出。该方法的不足是监控网络系统幅值裕度和相 角裕度的计算公式非常复杂,难以得到最佳的优化效果。最小平方误差积分的PID参数优化 方法被提出,这些PID参数整定方法在确定被控对象的对象的前提下,寻找某个指标使得系 统状态最佳的PID参数,只能达到PID控制器的其中一个参数最优,无法对PID的参数进行组 合优化,也就难以达到最优的网络状态。

【发明内容】

[0004] 为解决现有主动管理算法中存在的PID控制器参数设置困难的问题,本发明提出 了一种基于改进免疫算法的PID主动队列管理方法,首先,将生物免疫系统中的免疫记忆机 制和浓度抑制机制引入免疫算法,以及采用精英交叉策略和小波变异算子改善了算法的寻 优能力和收敛性,随后,将改进的免疫算法用于PID控制器参数的优化,将PID控制器的性能 指标函数作为免疫算法的目标函数,PID控制器的系数组合作为抗体,在给定的参数空间内 进行组合优化搜索,快速求得使得PID控制器指标函数值最小的一组PID控制器参数,并将 该PID控制器应用于网络主动队列管理系统,使得改进的PID主动队列管理方法具有更快的 响应速度,以此快速稳定队列长度,优化丢包率。
[0005] 本发明为解决上述技术问题所采用的技术方案为:一种基于改进免疫算法的PID 主动队列管理方法,首先将生物免疫系统中的免疫记忆机制和浓度抑制机制引入免疫算 法,并采用精英交叉策略和小波变异算子改善免疫算法的寻优能力和收敛性,然后将改进 的免疫算法用于PID控制器参数的优化,并将优化后的参数应用于网络主动队列管理系统, 使得改进的PID主动队列具有更快的响应速度,从而快速稳定队列长度、优化丢包率,所述 PID控制器参数的优化是指:将PID控制器的性能指标函数作为免疫算法的目标函数,PID控 制器的系数组合作为抗体,在给定的参数空间内进行组合优化搜索,快速求得使得PID控制 器指标函数值最小的一组PID控制器参数,具体操作如下: 1) 确定免疫算法的抗原与抗体 将PID控制器的性能指标函数J作为免疫算法的目标函数,视为抗原,将PID控制器的系 数KP,Ki,Kd视为抗体; 其中,PID控制器的性能指标函数J为
式中,e(t)为系统误差,U(t)为控制器的输出,tu为上升时间,'\¥1,'\¥2,'?3,'?4为权值,且¥4 远远大于W1,yE(t) =ymjt(t)-ymjt(t-1),ymjt(t)为TCP/AQM模型被控对象的当前时刻的输出, y〇ut(t-Ι)为TCP/AQM模型被控对象的上一时刻的输出; 2) 产生初始抗体群 采用浮点数编码方案,将PID控制器参数(KP,Ki,Kd)组合在一起,根据其参数范围将编 码的长度1限定为3位,随机产生pop个抗体X= (XI,X2,X3)构成初始群体,并从pop个抗体中 随机选取N个抗体组成记忆库; 设定三个参数的的取值范围是[a,b],则编码方法如下: Xi=a+rX(b~a) 1= 1,2,3 式中,r为[0,1]之间的随机数; 设定抗体完成一次交叉、变异、选择操作为一次迭代,当前的迭代次数为g; 设定免疫算法进行交叉、变异、选择操作的最大次数为最大迭代次数为gmax,gmax由多 次试验进行确定,其值为200~400; 3) 采用系统的误差评估抗原和抗体之间的亲和度 利用亲密度函数fitk=l/(B+J(ITAE))计算系统在每一个KP,Ki,Kd组合下的系统响应, 式中,B表示大于0的常量,通过加入B值来避免分母接近于0出现溢出的情况,免疫算法的目 标函数J越小,则适应度函数fitk越大,表示产生的抗体亲和度越高; 4) 对抗体群中的抗体按照步骤3)的方法依次进行亲和度计算,并按照亲和度大小进行 降序排列,将亲和度高的前N个抗体放入记忆库中进行更新,算法运行结束后,记忆库中亲 和度最高的抗体即为所求的最优参数组合; 5) 判断算法当前的迭代次数g是否达到最大进化代数gmax,如果满足,则终止算法,将 记忆库中亲和度最大的抗体进行输出,即得到最优的PID控制器参数组合;如果算法未达到 gmax,则执行步骤6); 6) 利用精英交叉策略和给定的交叉概率Pc使产生的精英个体与初始种群中的每一个 抗体进行交叉,以改善种群结构,提高算法的收敛速度,式中Pc为经验值,取0.5~0.99,交 叉之后得到新的抗体群; 7) 为了保持抗体多样性,对步骤6)得到的新抗体群中每一个抗体进行自适应变异概率 计算,自适应变异概率函数为
., 式中,1?,1^4<1.0,匕^表示当前种群最大适应度,7表示种群的平均亲和度4表示参 与变异的个体的亲和度; 将计算出的每个抗体的自适应变异概率pm与r进行比较,r为[0,1]之间的随机数,若pm >r,则按照以下自适应小波变异算子变异公式对该抗体进行变异操作得到新的抗体:
式中,函数= 为基于时间的变尺度,Xmax和Χ_分别a为变量的最 大值和最小值,供为[_3a(g),3a(g)]之间的随机数,〇(g)为小波变异函数,其计算公式为:
而函数a(g)的计算公式如下:</丨=e-ln(ii+hlW,这样,c为a(g)为上限,设为 10000,a(g)的取值随着g的增加在1和10000之间增大,而a(g)的取值随着g的增加取值不断 减小; 将经过变异操作之后得到抗体组合成新一代的抗体群; 8) 按照公i1
f算步骤7)得到的抗体群中每一个抗体的选择概 率,并进行轮盘赌选择操作从而得到更新后的抗体群,并返回步骤3); 式中,0 = 2,(1 = 〇.95,;^1(;〇为抗体与抗原间的亲和力,(^为抗体浓度; 抗体浓度Ci是群体中相似抗体所占的比例,S卩
^在该公式中,
Γ为抗体的亲和度阈值,T= 0.9,Si,」为抗体与抗体之间的亲和度,Si,j= 1 / (1+dij),dij为抗体Xi(Xil,Xi2,Xi3)和Xj(Xjl,Xj2,Xj3)之间的欧式距离,dij的计算公式如下:
9) 根据步骤5)中得到的最优的PID控制器参数组合,对PID主动队列管理模型进行整 定; 10) 初始化改进免疫算法中的参数:抗体种群规模pop,当前迭代次数g,最大迭代次数 gmax和记忆库大小N; 11) 启动队列管理模块,令当前采样时刻k=l,实时对当前队列长度q(k)进行采样; 12) 利用公式e(k)=q(k)-qQ计算输入变量偏差,其中
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1