编辑: 山南水北 2019-03-13

dt = dt I . (4) I = 10w t T ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? w = 2, t >

0. 1T;

w = 3, t >

0. 5T;

w = 4, t >

0. 75T;

w = 5, t >

0. 9T;

w = 6, t >

0. 95T. (5) 其中: t 为当前迭代次数, T 为最大迭代次数, w 为一 个由t和T 定义的常数. Step 5: 蚁狮重筑陷阱. 若游走的蚂蚁种群中出现了适应值高于蚁狮的 个体,则该蚂蚁将作为下一代蚁狮在其位置修筑 陷阱 ,即Antliont j = Antt i if f(Antt i) >

f(Antliont j). (6) 其中: t为当前代数, Antliont j 为第t代所选中的第j 个 蚁狮的位置, Antt i 为第t代第i个蚂蚁的位置, f 为适 应值函数. Step 6: 精英化. 将适应度最好的蚁狮作为精英,它能够影响所有 第4期 赵小国 等: 融合改进蚁狮算法和T-S模糊模型的噪声非线性系统辨识

761 蚂蚁的游走. 假定每只蚂蚁的随机游走同时受到轮 盘赌选择的蚁狮和精英的影响,即Antt i = Rt A + Rt E

2 . (7) 其中: Rt A 为第 t 代绕轮盘赌选中的蚁狮进行的随机 游走, Rt E 为第t代绕精英进行的随机游走. 1.2 ALO算法的改进 通过对原始ALO算法的研究,发现其搜索更偏 向于精英, 容易陷入局部最优;

由式 (4) 和(5) 中可以 看出其搜索半径呈跳跃式,可能会错过最优值区域. 针对这些不足, 本文引入动态搜索和寻优半径连续 收缩机制来改进ALO算法,并与ALO、PSO(Particle swarm optimization)算法进行测试对比. 结果表明,该 改进ALO算法具有更好的寻优精度和收敛速度. 1.2.1 动态随机搜索机制 动态随机搜索机制通过动态调整搜索空间实现 对不同区域的探索,以增加发现最优解概率,可以提 高算法摆脱局部最优束缚的能力[16] . 动态随机搜索 机制包括两部分:全局搜索和局部搜索. 本文引入其 局部搜索部分,对当前全局最优位置进行局部寻优, 加快算法收敛速度. 具体操作步骤如下. Step 1: 选定待替换对象Xi, 最大迭代次数itermax. Step 2: 设定空种群Ptemp,初始搜索步长stepk. Step 3: 针对所有维度m,执行如下操作: Step 3.1: 在[?stepi, stepi]内产生随机向量Xr;

Step 3.2: 按公式 Xtemp = Xi + Xr, X′ temp = Xi ? Xr 生成新个体,并加入种群;

Step 3.3: 调整搜索步长stepk;

Step 3.4: 迭代k,针对某一维的搜索结束,否则跳 转到Step 3.1;

Step 3.5: 在种群Ptemp 内选择最佳个体Xbest temp,如 果优于Xi,则替换之,否则仍保留Xi. Step 4: 若算法迭代满足结束条件, 则输出结果 Xi,算法结束,否则跳转至Step 2. 1.2.2 半径连续收缩机制 蚂蚁围绕蚁狮游走的半径决定着蚂蚁搜索的范 围,根据式(4)和(5)绘制出蚂蚁游走的半径收缩方式 如图1所示. 由图1可以看出:原始ALO算法半径收 缩呈跳跃式,导致蚂蚁对求解区域的探索存在遗漏;

在跳跃之间的每一个阶段的衰减极慢,严重影响了算 法的收敛速度. ALO算法基于蚂蚁游走半径的收缩来实现算法 的收敛, 因此,如果游走半径随迭代次数的增加而快 速减小,则有助于提高算法的收敛速度. 下面给出新 图1半径跳跃式收缩方式 的半径收缩公式: ? ? ? ct = ct I, dt = dt I;

(8) I = exp ( ? a t T ) . (9) 其中: a 为衰减因子, 可根据半径收缩的精度要求进 行人为设定;

t和T 分别为当前迭代次数和最大迭代 次数. 根据式(8)和(9)绘制半径连续收缩方式如图2 所示,可以看出蚂蚁游走半径连续快速收缩. 图2半径连续式收缩方式 从上面两种改进机制的说明中可以看出: 动态 搜索机制通过动态调整实现对不同区域的探索,帮助 算法跳出局部最优;

下载(注:源文件不在本站服务器,都将跳转到源网站下载)
备用下载
发帖评论
相关话题
发布一个新话题