1.一种基于改进免疫算法的PID主动队列管理方法,首先将生物免疫系统中的免疫记忆机制和浓度抑制机制引入免疫算法,并采用精英交叉策略和小波变异算子改善免疫算法的寻优能力和收敛性,然后将改进的免疫算法用于PID控制器参数的优化,并将优化后的参数应用于网络主动队列管理系统,使得改进的PID主动队列具有更快的响应速度,从而快速稳定队列长度、优化丢包率,其特征在于,所述PID控制器参数的优化是指:将PID控制器的性能指标函数作为免疫算法的目标函数,PID控制器的系数组合作为抗体,在给定的参数空间内进行组合优化搜索,快速求得使得PID控制器指标函数值最小的一组PID控制器参数,具体操作如下:
1)确定免疫算法的抗原与抗体
将PID控制器的性能指标函数J作为免疫算法的目标函数,视为抗原,将PID控制器的系数 , , 视为抗体;
其中,PID控制器的性能指标函数J为
式中, 为系统误差, 为控制器的输出, 为上升时间, , , , 为权值,且 远远大于 , ,yout(t)为TCP/AQM模型被控对象的当前时刻的输出,yout(t-1)为TCP/AQM模型被控对象的上一时刻的输出;
2)产生初始抗体群
采用浮点数编码方案,将PID控制器参数( , , )组合在一起,根据其参数范围将编码的长度 限定为3位,随机产生pop个抗体 构成初始群体,并从pop个抗体中随机选取N个抗体组成记忆库;
设定三个参数的的取值范围是 ,则编码方法如下:式中,r为[0,1]之间的随机数;
设定抗体完成一次交叉、变异、选择操作为一次迭代,当前的迭代次数为g;
设定免疫算法进行交叉、变异、选择操作的最大次数为最大迭代次数为gmax,gmax由多次试验进行确定,其值为200~400;
3)采用系统的误差评估抗原和抗体之间的亲和度利用亲密度函数 计算系统在每一个 , , 组合下的系统响应,式中,B表示大于0的常量,通过加入B值来避免分母接近于0出现溢出的情况,免疫算法的目标函数J越小,则适应度函数 越大,表示产生的抗体亲和度越高;
4)对抗体群中的抗体按照步骤3)的方法依次进行亲和度计算,并按照亲和度大小进行降序排列,将亲和度高的前N个抗体放入记忆库中进行更新,算法运行结束后,记忆库中亲和度最高的抗体即为所求的最优参数组合;
5)判断算法当前的迭代次数g是否达到最大进化代数gmax,如果满足,则终止算法,将记忆库中亲和度最大的抗体进行输出,即得到最优的PID控制器参数组合;如果算法未达到gmax,则执行步骤6);
6)利用精英交叉策略和给定的交叉概率Pc使产生的精英个体与初始种群中的每一个抗体进行交叉,以改善种群结构,提高算法的收敛速度,式中Pc为经验值,取0.5~0.99,交叉之后得到新的抗体群;
7)为了保持抗体多样性,对步骤6)得到的新抗体群中每一个抗体进行自适应变异概率计算,自适应变异概率函数为;
式中, ,fmax表示当前种群最大适应度, 表示种群的平均亲和度,f表示参与变异的个体的亲和度;
将计算出的每个抗体的自适应变异概率 与r进行比较,r为[0,1]之间的随机数,若,则按照以下自适应小波变异算子变异公式对该抗体进行变异操作得到新的抗体:式中,函数 为基于时间的变尺度, 和
分别 为变量的最大值和最小值, 为 之间的随机数, 为小波变异函数,其计算公式为:
而函数 的计算公式如下: ,这样,c为 为上限,设为10000, 的取值随着g的增加在1和10000之间增大,而 的取值随着g的增加取值不断减小;
将经过变异操作之后得到抗体组合成新一代的抗体群;
8)按照公式 计算步骤7)得到的抗体群中每一个抗体的选择概率,并进行轮盘赌选择操作从而得到更新后的抗体群,并返回步骤3);
式中, , , 为抗体与抗原间的亲和力, 为抗体浓度;
抗体浓度 是群体中相似抗体所占的比例,即 ,在该公式中,,T为抗体的亲和度阈值, , 为抗体与抗体之间的亲和度,, 为抗体 和 之间的欧式距离, 的计
算公式如下:
9)根据步骤5)中得到的最优的PID控制器参数组合,对PID主动队列管理模型进行整定;
10)初始化改进免疫算法中的参数:抗体种群规模pop,当前迭代次数g,最大迭代次数gmax和记忆库大小N;
11)启动队列管理模块,令当前采样时刻 ,实时对当前队列长度 进行采样;
12)利用公式 计算输入变量偏差,其中 为当前时刻的队列长度,为期望队列长度,设为200, 为当前队列长度与期望队列长度的偏差;
13)利用公式 计算K时刻时缓存队列中的丢包率,式中,, , ,C示链路容量(Packets/s), 表示往返时延RTT,N表示TCP的连接数;
14)根据公式 更新队列长度误差及丢包率,路由节点以 为丢包概率对路由器缓存队列中的数据包进行随机丢弃,避免缓存溢出丢包;
式中, 为当前时刻计算的丢包率, 为上一时刻计算的丢包率, 为上一时刻的队列长度偏差, 为当前时刻队列长度与期望队列长度的偏差。