APP下载

基于改进的AFSA算法对复杂系统的寻优

2015-03-11温阳东殷运鹏

关键词:鱼群极值步长

温阳东, 殷运鹏, 朱 杨

(合肥工业大学 电气与自动化工程学院,安徽 合肥 230009)

0 引 言

系统的寻优问题是指在一定的资源环境约束条件下寻找系统的最佳设计方案,现代意义上的系统优化问题实质上是计算机技术同数学规划的统一。

对于一个实际问题而言,在一定指标的约束下如何使投资最小、取得的经济收益最大,是每个工程都需要考虑的重要问题[1]。而复杂的非线性系统不是简单的串、并联单元的结合,其目标函数与约束函数多为非线性、非凸、不连续、不可微,甚至有多重极值,这些问题导致很难用一般的解析方法对其进行寻优。

复杂的非线性系统的寻优问题发展至今,可用的方法仍然不多,并且没有哪一种方法被证明是优于其他方法的。从20世纪50年代开始,在自然科学不断发展的同时,很多人从大自然生态系统中得到灵感创新出具有启发式的仿生优化算法,并被用于复杂系统的寻优。但是这些方法在解决实际问题中仍然存在许多不足,例如最优值不精确、算法繁琐、无法逃出局部最优值等。因此,复杂非线性系统的寻优仍然是一个需要人们努力研究的问题,对此本文提出了一种改进的AFSA 算法[2]。

1 算法的基本原理

人工鱼群算法(artificial fish school algorithm,AFSA)是文献[3]于2002年提出的,该算法求全局极值的能力良好,并具有对初值、参数选择不敏感等优点,已在系统最优化、神经网络、模式识别、参数估计、辨识方法等方面得以应用[4]。

1.1 传统的AFSA算法

AFSA算法是一种群体智能(swarm intelligence)优化算法。在自然界,一片水域养鱼,刚开始鱼随机地被放养到这片水域中,但是一段时间后,鱼往往能自行或者尾随其他鱼找到这片水域中食物最多的地方,因而一般情况下,鱼集中的地方也就是这片水域中营养物质最丰富的地方。AFSA算法就是根据这一特点,构造出理想的人工鱼模仿鱼群觅食来达到寻优的目的。

AFSA模型的建立如下:在n维的可供搜索的空间内模拟出N条人工鱼,用多维向量表示为X=(x1,x2,x3,…,xn),其中xi(i=1,2,…,n)为寻优目标;每条人工鱼所处水面位置的食物浓度为y=f(X);每2条人工鱼之间的距离为dij=|xi-xj|;每条人工鱼每次移动的步长为Step;每条人工鱼的视野范围为Visual,即表示鱼的感知范围;某个区域内判断人工鱼是否过于拥挤的拥挤因子为δ;寻优的迭代次数为Num[5]。

1.1.1 人工鱼的行为描述

在人工鱼群的寻优过程中,每次位置的更新都是通过觅食、聚群、追尾、随机行为来进行的。具体描述如下[6]:

(1)觅食行为。人工鱼的当前状态为Xi,在它的感知范围Visual内,随机选择一个状态Xj,如果yj>yi,则向该方向前进一个步长Step,否则重新选择状态Xj,重复Num次后若无yj>yi,则随机移动一个步长Step。

(2)聚群行为。人工鱼的当前状态为Xi,在它的感知范围Visual内搜寻伙伴们的数目np与中心位置Xc,如果yc/np>δyi则表明区域内不是很拥挤,向Xc的方向前进一个Step,反之则继续执行觅食行为。

(3)追尾行为。人工鱼的当前状态为Xi,在它的感知范围Visual内,yj浓度下最大的伙伴为Xj,如果yj/np>δyi,表明伙伴Xj处有较大的食物浓度,且伙伴数量较少,则向伙伴Xj位置处移动一个Step。

(4)随机行为。即某条人工鱼在Visual范围内,随机选择一个位置移动,也是为了更大范围地寻找伙伴或食物。

1.1.2 人工鱼的行为选择与特点

人工鱼在进行行为选择时,总是遵循每一步都选择向最优化方向移动最大的行为,即下一个状态一定优于当前状态,否则就进行随机行为。

综上所述,传统的人工鱼群算法模型为:

其中,X为当前鱼的状态;XV为Visual内的某一状态;Visual为鱼的感知范围;behaven为鱼的行为选择;Step为移动1次的步长;Xnext为迭代下一次的鱼的状态[7]。

1.1.3 传统AFSA算法的局限性

AFSA算法解决了很多问题,也具备了很多优点。但当传统的AFSA算法被用于工程计算、优化控制等实际工程中,会发现有明显的不足之处[8]:① 前期收敛的速度很快,可是到了迭代后期速度明显下降;② 精确度的获取能力不足,只能得到最优解域;③ 当搜寻区域较大、处于变化平坦的区域时,收敛到全局最优解的速度变慢,搜索效果不好。

1.2 改进的双空间自适应嵌套AFSA算法

针对传统AFSA算法在复杂非线性系统中的局限性,本文采取了双空间二次迭代的改进。

1.2.1 改进思路

本文采取的改进思路如下:

(1)第1次寻优,采取稍大的Visual与稍大的Step开始,并在迭代过程中随着迭代次数的增大,快速地在整个水域里找寻出最优解域。

(2)第2次寻优以第1次搜寻出的最优解域作为整个水域,以第1次最优解域内的人工鱼默认为产出子代的人工鱼,子代人工鱼的视野与步长均做出相应的调整,并在不断的迭代中自适应做出调整,即可在一代最优域的基础上精确寻优。由于空间的变化,拥挤因子也做出相应调整。

1.2.2 双空间自适应嵌套AFSA算法模型

第1次全空间搜索的模型为:

第2次最优域空间内搜索的子代鱼模型为:

其中,Visual0为初始最大的视野;Step0为初始最大的步长;iter为当前迭代的次数;Num为总迭代次数。上标1、2分别为一代鱼和二代鱼(即子代鱼)。

从公式上看第2次与第1次迭代差不多,但是其子代鱼的水域、视野、步长、拥挤因子都根据水域的变化而不同,并会在迭代中自适应调整。

2 算法对复杂系统寻优的实现

所谓复杂的非线性系统是因为其传递函数、目标函数、约束函数的非线性与复杂性,使其难以设计寻优方案,或者寻优的结果不理想。而实际工作中的系统较多为复杂非线性系统,因此面对复杂非线性函数的寻优常常十分困难[9]。

按照改进的算法,复杂非线性系统寻优的实现分为第1次全空间搜索和第2次最优域空间内搜索。

第1次全空间搜索步骤如下:

(1)根据实验经验选取合适的人工鱼数目N、初始视野Visual0、初始步长Step0、最大迭代次数Num、拥挤因子δ。因为是第1次搜索,Visual0与Step0可适当选择较大值,以便快速找到全局的最优域。

(2)当前迭代次数iter=0,随机生成N条人工鱼,鱼群初始化完成。

(3)计算每条鱼位置处的食物浓度FD,将最大的FD值写入公告板中,即在系统约束条件下计算该系统的最优解,FD值为最优解的相反数。

(4)按照(3)式和(4)式的模型,人工鱼进行行为选择并不停地寻优,直至到达最大迭代次数时结束。

第1次全空间搜索的目的是为了快速得到最优解域,因此其迭代次数不需要过大,否则会增加许多不必要的计算。

第2次最优域空间内搜索步骤如下:

(1)把第1次寻优的最优域空间B作为本次寻优的全空间,第1次寻优结束时B空间内有Nb条人工鱼,默认这Nb条鱼产下子代鱼后死亡。

(2)子代鱼的初始视野与初始步长均为一代鱼的1/2,该空间内可能存在拥挤的情况,因而根据实验变动Num和拥挤因子δ,求极大值可使δ适当减小。

(3)视野与步长按照(5)式和(6)式的自适应方式在每一次迭代中进行不断的自适应,从而选择出相应的行为进行迭代。

(4)当连续n次的寻优结果的均方差小于停止因子γ时,可视为寻优完成,停止迭代。

在双空间自适应嵌套寻优过程中可能会出现人工鱼某一状态不满足约束条件,则在该人工鱼ε邻域内随机选取一个值判断是否满足约束条件,若不满足则重新选取直至满足为止。

3 改进算法的测试

3.1 测试复杂非线性系统函数

具有普遍性的3个测试系统如下:?

测试系统的函数图形如图1所示。

图1 3个测试系统的函数图像

由图1可知,f1有5个非等高极值,且全局最优值为0.908 3;f2为二维多峰函数,有3个极值,全局最优解为10.007 0;f3为Schaffer函数,该函数只有1个全局最大值1,在该最小谷值周围有多个圈脊,形成无数个局部最大值,在寻优过程中很容易停留在圈脊带上。

3.2.3 种算法寻优对比

对上述3个复杂非线性系统函数运用遗传算法[10](GA)、传统 AFSA算法、本文改进的 AFSA算法进行寻优对比。GA算法采用Matlab遗传算法工具箱[11],种群规模为N=30,交叉概率为Pc=0.92,变异概率为pm=0.08,迭代次数为100。传统AFSA对应3个系统的Visual分别为0.26、4.06、0.26,Step分别为0.12、1.90、1.90,拥挤因子δ为0.103,鱼群数目为50。本文改进的AFSA算法第1空间的Visual和Step采用传统AFSA算法参数的120%,δ为0.103;第2空间的Visual和Step为第1空间参数的1/2,δ降为0.086。

3种算法在相同的PC平台上运行25次,平均寻优结果对比见表1所列,其中t为每次计算时鱼群首次找到最优解的所用时间。测试平台参数如下:Pentium(R)Dual-Core CPU 2.2GHz,RAM 2.0GB,32位系统。

表1 3种算法平均寻优结果对比

测试结果分析如下:

(1)f1与f2系统中,本文改进的AFSA算法的平均最优解的精度和找到最优解的速度比传统AFSA算法与GA算法都有一定程度的提升。

(2)从图1中可以看出,f3系统众多的局部极值与全局极值非常接近,因此3种算法寻优效果较为接近。

4 实际算例分析探讨

大规模输电电网的规划是一个容易陷入局部极值的寻优问题。选择被广泛采用的IEEE Garver-18点系统对本文AFSA算法进行测试。系统如图2所示,其中实线表示原有网络,虚线表示可扩建的线路[12]。

图2 Garver-18点系统

运用本文AFSA算法,经调试,取人工鱼数目N=25;2次空间的最大迭代次数分别为Num1=50,Num2=150,一代鱼的Visual为6,二代鱼的Visual为2;2次空间的拥挤因子分别为0.4和0.2;过负荷检验采用直流潮流。计算得出的规划结果见表2所列。

表2 Garver-18点系统规划方案

为了评价该算法的性能,分别采用GA算法、传统AFSA算法和本文AFSA算法在同一个PC平台上对18节点系统进行优化,各计算50次,算法对比结果见表3所列。

表3 算法对比结果

由表3可以看出,本文改进后的AFSA算法具有稳定的收敛性能且用时较短。

通过输电网规划的Garver-18点系统算例可以看出,相比于传统AFSA算法,改进后的算法在电力系统规划、多级阶梯物流中转运输系统的优化等多极值复杂系统寻优中具有收敛稳定、用时较短等技术优势。

5 结束语

本文改进人工鱼群算法,提出了双空间自适应嵌套AFSA算法。通过理论分析测试、实际算例检验,证明了该算法具有稳定的收敛性,不会陷入局部最优点,并相对提高了部分复杂非线性系统的寻优能力。

由于AFSA算法的研究尚处于初期,还有许多问题,如算法的灵敏度和适用域宽度、理论的推广等有待进一步研究。

[1] 王华伟,高 军.复杂系统可靠性分析与评估[M].北京:科学出版社,2013:5-9.

[2] 高 尚,杨静宁.群智能算法及其应用[M].北京:中国水利水电出版社,2006:3-7.

[3] 李晓磊,邵之江,钱积新.一种基于动物自治体的寻优模式:鱼群算法[J].系统工程理论与实践,2002,22(11):32-38.

[4] 江铭炎,袁东风.人工鱼群算法及其应用[M].北京:科学出版社,2012:112-124.

[5] 李晓磊,薛云灿,路 飞.基于人工鱼群算法的参数估计方法[J].山东大学学报:工学版,2004,34(3):84-87.

[6] 李晓磊,钱积新.基于分解协调的人工鱼群优化算法研究[J].电路与系统学报,2003,8(1):1-6.

[7] Carvalho D R,Freitas A A.A genetic algorithm for discovering small disjunct rules in data mining[J].Applied Soft Computing,2002,2(2):75-88.

[8] Wang Z,Z W,Wang Z,et al.Classification rule mining with an improved ant colony algorithm[J].Lecture Notes in Computer Science,2005,3339:357-367.

[9] 倪 健,马昌凤.解非线性方程的一种新的全局快速算法[J].合 肥 工 业 大 学 学 报:自 然 科 学 版,2011,34(4):620-622.

[10] 张梅凤.人工鱼群智能优化算法的改进及应用研究[D].大连:大连理工大学,2008.

[11] 雷英杰.MATLAB遗传算法工具箱及应用[M].西安:西安电子科技大学出版社,2008:34-45.

[12] 金义雄,程浩忠.改进粒子群算法及其在输电网规划中的应用[J].中国电机工程学报,2005,25(2):46-50.

猜你喜欢

鱼群极值步长
基于Armijo搜索步长的BFGS与DFP拟牛顿法的比较研究
极值点带你去“漂移”
极值点偏移拦路,三法可取
一类“极值点偏移”问题的解法与反思
鱼群漩涡
基于改进鱼群优化支持向量机的短期风电功率预测
基于人工鱼群算法的光伏阵列多峰MPPT控制策略
匹配数为1的极值2-均衡4-部4-图的结构
基于逐维改进的自适应步长布谷鸟搜索算法
多子群并行人工鱼群算法的改进研究