混合蛙跳算法(共8篇)
混合蛙跳算法 篇1
0 引言
最优化问题[1]存在于人类日常生活中的方方面面,人类从事任何活动的实质归结为认识世界和建设世界,认识世界就是为了更好地建设世界,然而建设世界的本质就是依靠优化决策。最优化问题是一个古老的课题,早在在古代战国时期,就有了孙膑为田忌赛马献策赢了齐威王这一经典事件[2];在第二次世界大战期间,英国成立了专门的作战研究小组,目的是为了最有效地利用有限的战备资源去赢取最大的胜利[1]等。随着科学技术日新月异的发展和应用领域的不断扩展,常规的优化方法[2,3,4](例如牛顿法,拉格朗日乘数法,共轭梯度法等)已经无法满足越来越复杂的优化问题的求解需要,因此寻找更为有效的优化方法显得越来越重要。
一些学者提出模拟自然界生态系统机制的新型智能优化算法,并用来解决复杂优化问题,取得了一定的效果。群体智能优化算法正是基于此基础上产生的。群体智能优化算法[5,6]自20世纪90年代提出以来受到广泛的关注,通过对自然界中社会性生物的群体行为进行模拟和建模,研究其内在的原理,并以此为基础解决许多工程应用,科学计算,社会经济等领域的实际问题。由于其求解能力强,计算结构简单,吸引了众多演化计算领域专家的注意,形成了许多新的研究热点并取得显著的成就。目前群体智能优化算法广泛应用于农业、通讯、交通、金融、材料、化工、能源及国防等领域中。
混合蛙跳算法[5,6,7](Shuffled frog leaping algorithm,SFLA)是近几年兴起的一种新型的后启发式群体智能优化算法,它继承其他优化算法的优点同时,还具有寻优能力更强,参数更少的优点,目前已广泛应用于模式识别[8],函数的优化[9,10,11,12],信号与信息处理[13,14]等领域中并取得了成功。由于混合蛙跳算法提出的时间不长,无论在理论研究还是实践应用方面都处于起步阶段。
1 混合蛙跳算法
1.1 SFLA算法的数学模型
混合蛙跳算法是2003年由Eusuff和Lansey提出的一种新的群体智能优化算法,它概念简单,参数少,计算速度快,全局寻优能力强。
在一个D维的目标搜索空间中,随机生成P只青蛙(解)组成初始群体,第i只青蛙表示问题的解为Xi=(xi1,xi2,…,xiD)。青蛙个体按适应度值从优到劣排列,将整个群体分为M个子群体。其中排名第1的青蛙分入第1子群体,排名第2的青蛙分入第2子群体,第M只青蛙分入第M子群体,第M+1只青蛙分入第1子群体,第M+2只青蛙分入第2子群体,依次类推,直到全部青蛙划分完毕。
每个子群体进行局部深度搜索,即在子群体的每次迭代中,首先确定当前迭代中子群体的最差个体Xw、最好个体Xb和全局最好个体Xg;只对该子群体中当前的最差个体Xw进行更新操作,更新策略如下。
蛙跳步长更新公式
青蛙个体的位置更新公式
其中,Ωi表示青蛙个体的更新步长,i=1,2,…,N;rand()为均匀分布在[0,1]之间的随机数;||Ωmax||表示所允许更新的最大蛙跳步长;||Ωmin||表示所允许更新的最小蛙跳步长。执行更新策略(1)(2)。如果newXw的适应度值优于原来Xw的适应度值,则用更新后的个体的位置(解)取代原来群体中的当前最差个体的位置(解)。如果没有改进,则更新策略变为如下过程。
蛙跳步长更新公式:
青蛙个体的位置更新公式:
执行更新策略(3)(4)。如果newXw的适应度值仍然没有改进,则随机产生一个新的Xw。
当所有子群体的局部深度搜索完成以后,将所有的青蛙个体重新混合排序并再次划分子群体,然后再进行局部深度搜索,如此反复直到满足混合迭代次数。
1.2 SFLA算法的实现流程
第1步:随机初始化青蛙种群,设置SFLA算法中的参数:种群中的青蛙个体总数N,青蛙个体(解)的维数d,每个子群体中的个体数m,子群体的个数n,子群体内的局部迭代次数cyc,全局混合迭代次数cyc,允许更新的最大蛙跳步长Ωmax和最小蛙跳步长Ωmin。
第2步:计算每只青蛙个体的适应度值。
第3步:将当前所有的N只青蛙个体按照适应度值从优到劣进行排序。
第4步:将每只青蛙个体依次划分到各个子群体中,共划分为n个子群体。
第5步:对每一个子群体,重复执行以下步骤cyc次:
(1)根据适应度值更新当前迭代中子群体的最好个体的位置Xb和全局最好个体的位置Xg,并确定当前迭代中子群体的最差个体的位置Xw;
(2)按照1.1节中所描述的更新策略对Xw进行更新。
第6步:当所有子群体都完成了局部深度搜索后,若满足全局混合迭代次数cyc,进化过程结束,输出全局最优值;否则,将全部的青蛙个体重新混合,转至第3步重新计算。
以上算法实现流程如图1所示。
2 混合蛙跳算法的研究现状
2003年,Eusuff和Lansey首次提出混合蛙跳算法,由于其结构简单、参数少、运行速度快、易于实现的优点,得到了国内外学者的广泛关注。然而混合蛙跳算法存在算法迭代后期容易陷入局部极值点,出现早熟收敛现象,同时收敛速度变慢,寻优时间变长,无法搜索到精度更高的最优点等缺陷。因此,目前对混合蛙跳算法的研究主要集中在算法改进和算法应用方面。
混合蛙跳算法由于提出的时间不长,无论在理论研究还是实践应用方面都处于起步阶段。群体智能优化算法不是一门理论严谨的学科,主要是以实验为主,因此关于算法的理论研究主要集中在算法收敛性证明上。骆剑平等人[15]通过求解差分方程分析了混合蛙跳算法的运动轨迹并证明了算法的全局收敛性;Elbeltagi等人[16]对比研究了遗传算法、粒子群优化算法、蚁群算法和混合蛙跳算法的数学模型和优化性能;
目前,针对混合蛙跳算法存在的缺陷,为了提高算法的优化性能,国内外学者从各个方面对算法提出了改进。罗雪晖等人[17]将调整序思想引入到混合蛙跳算法的局部搜索阶段,将变异操作引入到全局信息交换阶段,从而提出一种改进的混合蛙跳算法并将其应用于求解旅行商问题(Travelling salesman problem,TSP),实验结果表明该算法在求解旅行商问题上具有更好的搜索性能和顽健性;骆剑平等人[15]把具有极强局部搜索能力的幂律极值动力学优化融合在混合蛙跳算法中,从而拓展了算法的搜索精度和空间;郑仕链等人[18]提出新的蛙跳移动步长公式,每次蛙跳移动步长中引入上一次的移动距离,包含了对过去经验的记忆,因此具有更强的寻优能力;Alireza等人[7]提出一种混合多目标蛙跳算法,并将其应用于流水线平衡装配线排序问题中;Elbeltagi等人[19]提出一种新的参数用来加速算法的搜索范围,并分析了该参数对算法优化性能的影响,最后将所提算法用来求解离散和连续两类问题,结果表明改进算法十分有效并且可行;文献[9]通过适当地延长蛙跳步长并且加入惯性部分,提出一种改进的蛙跳步长更新公式,同时为了进一步改进混合蛙跳算法的局部深度搜索能力和加速收敛,将进化算法引入到混合蛙跳算法的局部深度搜索阶段,从而提出一种改进的混合蛙跳算法;文献[20]将模拟退火算法和混合蛙跳算法相结合,从而改进了算法迭代后期陷入局部极值的缺点,并将其应用于求解最优潮流问题(Optimal power flow,OPF);文献[21]提出一种求解多目标柔性作业车间调度问题的改进混合蛙跳算法,该算法通过几种策略来构成初始种群,并依据一种新的准则来划分子群体,同时在全局信息交换阶段引入两种变异因子,在局部深度搜索阶段嵌入一些不同的局部搜索方法,从而提高算法的求解性能。
与其他群体智能优化算法一样,混合蛙跳算法由于其独特的优势被广泛应用于实际优化问题中。例如,旅行商问题[22]、电力系统优化[23]、作业车间调度问题[24,25]、函数优化[10,11,12]、财务调度问题[26]、水资源分配[27]、图像处理[13]、背包问题[28]、聚类问题[29]等方面,文献[30]提出一种多目标优化的改进混合蛙跳算法,并用来求解配电馈线重组问题;文献[31]中将一种改进的混合蛙跳算法应用于工业CSTR反应器的醋酸乙烯聚合中;文献[32]中将混合蛙跳算法应用求解离散优化问题中。
3 结束语
混合蛙跳算法在提出的短短几年时间里得到了国内外学者的广泛关注,成为人工智能领域中的研究热点。虽然混合蛙跳算法被成功用于求解实际优化问题,但是由于其提出的时间不长,无论是在理论研究还是实际应用都处于起步阶段。目前关于混合蛙跳算法并没有一套完整的理论体系,未来的工作应当注重算法收敛速度证明并总结出一套完整的理论模型;由于现实生活中需要解决的优化问题各式各样,如何突破原有混合蛙跳算法模型的束缚,设计出更为有效的群体智能优化算法将在未来工作中继续研究。
混合蛙跳算法 篇2
教学内容:教科书第93―94页,练习二十的第;一10题。
教学目的:
1.使学生掌握加法和乘法的运算定律。能够比较熟练地运用这些运算定律进行简便计算。
2.使学生掌握四则运算的运算顺序.能正确计算四则混合运算。
教学过程():
一、运算定律
教师:“我们在学习四则运算时.学过哪些运算定律?”指名用自己的话说出运算 定律,并举例说明。然后用字母表示出来:教师根据学生的回答,整理成教科书第93页的表。
如果学生只举整数的例子,教师可以引导学生想一想:运算定律除了对整数加法和乘法适用以外,对小数和分数的加法、乘法适用吗?让学生再举几个有关小数、分数加法和乘法的例子。
下面的式子有没有错误?把错的地方改正过来。
(4.3十2.5)×4=4.3×4×2.5×4
(700十1)×68=700×68十68
153×(220十57)=153×220十57
63×8十37×8;(63十37)×(8十8)
还可以做练习二十的第8题。
教师:“在我们学过的知识里哪些地方应用丁运算定律?”可以多让几个学生说一说。如果学生掌握得比较好,还可以让学生用运算定律解释―下积、商的变化规律:如:在乘法里。如果一个因数扩大10倍,另一个因数不变,那么积就扩大10倍:可
以用下面的式子说明:
(a×10)×b=a×10×b=a×b×10=(a×b)×10
这里应用了乘法的交换律和结合律。
二、简便算法
教师:“应用运算定律可以使―些计算简便。谁能举个例子?”
接着出示教科书第93页的例1、先让学生观察题目中的数有什么特点。然后让学生说一说应该用什么运算定律。说完后,让学生独立完成计算。
集体订正时.教师再提问:这道题是怎样应用运算定律的?应用了哪些运算定律?使学生明确:在计算时.不仅计算的开始有时可以用简便方法进行计算,在计算的过程中有时也可以用简便方法进行计算。
教师:“在计算时,要随时注意用简便方法进行计算、”
做教科书第93页“做一做”中的题目。
教师说明题目要求后。让学生独立计算。教师巡视,对学习有困难的学生进行个别辅导。集体订正时.让学生说一说每道题是怎样用简便方法计算的。特别是下面二道题,是怎样进行简便计算的?
567十98 1 ― ― 21 ÷7
教师要提醒学生:有的`算式可能存在几种不同的算法,所以。在运算前要认真审 题.看清算式中各个数的特点、选用―种比较简便的算法,使计算又对又快。
三、四则混合运算
引导学生回忆四则混合运算的有关概念和运算顺序。
“什么叫做第一级运算?什么叫做第―级运算:”
“在一个算式中如果只含有同―级运算、运算顺序是怎样的:”
“在一个算式中如果含有第―级和第二级两级运算。应该先算什么?”
“在含有括号的算式中。应该先算什么?再算什么?”
出示教科书第94页中间的算式.让学生标明运算顺序。
教师:“在计算混合运算的式题时.首先要认真审题,看清题中有哪些运算符号.确定运算的顺序。”
出示教科书第94页的例2。先让学生认真审题。想一想运算顺序。然而让学生独立计算。教师巡视。了解学生掌握的情况、对个别学生进行辅导,集体订正时,指名说一说运算的顺序。同时,还要注意强调书写的格式。
做练习二十的第9题。学生独立计算。集体订正。
四、小结(略)
混合蛙跳算法 篇3
无线传感器网络WSN由一组传感器节点以自组织方式构成。每个节点兼备路由器和主机两种功能,不仅要执行感知、传输数据等应用任务,还要参与路由发现、维护以及网络构建等任务。WSN中节点一般采用电池供电,节点大部分情况下被布置在无人看守的环境中,电池不能补充和更换,节点能量受限。在这种情况下要延长网络生存时间就必须降低节点工作时能量消耗,试验表明节点能量主要消耗在通信模块上。无线通信中的传输数据的能量消耗与有效半径的2-4次方相关,减小节点的有效传输半径可以降低节点能量消耗。
另外WSN还有着不同于传统无线网络的其他特征:首先WSN中节点数量庞大,传统的以IP地址为基础的路由协议不适合WSN;其次WSN的应用背景主要是多个源节点感知数据,然后将感知数据传给目的节点Sink,不要求建立网络中任意两点之间的路由路径,这给设计高效的路由协议带来了可能性。因此采用合适的、高效的路由协议是降低无线传感器网络整体能耗的关键。这就需要我们设计一个满足需要的高效的路由协议。
1 相关工作
研究工作者们提出了许多的路由算法,比如SPIN[1](基于协商的路由算法)、DD[2](定向扩散协议)、LEACH[3]、TTDD[4](基于虚拟网格的路由协议)、LAR[5](位置辅助路由协议)等路由协议。他们都很好地解决了无线传感器网络的某方面的问题,但也都存在各自的问题。比如SPIN协议中出现了多个节点向同一个节点同时发送REQ的情况,有关的退避机制需要考虑。DD算法不能用于大规模的网络,主要用于具有大量查询而只有少量事件的应用场景,如果网络拓扑结构频繁变动,它的性能将大幅下降。
在WSN中,从源节点到基站或是到基站的某条传输路径一旦确定,就不会频繁改动,这样就会出现由于路径上的传输节点的失效或暂时不可用导致数据包传输失败,为此需要重新更新路由,增大了能耗和传输延迟。为了解决这个问题,研究工作者们提出了多路径路由[6,7]的概念。多路径路由协议通过将数据流分散到多个不同的路径上传送以实现负载的均衡性,在WSN中体现为能量的均衡性,并且可以通过增加冗余路径来提高网络的可靠性。优化增加了网络的可靠性,但同时也增加了网络能耗。
混合蛙跳算法[8]可以实现路由优化的目的,但是传统的混合蛙跳算法不能将可行解中的优良性能很好地保留在青蛙群体中,它的收敛速度也比较慢,这就表明了传统的混合蛙跳算法不适用于能量有限的无线传感器网络中。
针对以上问题,我们提出了一种改进的混合蛙跳算法来全局优化多路径路由。考虑到混合蛙跳算法的计算量大,所需要的资源信息较多,我们将混合蛙跳算法的执行在基站完成。这样就解决了由于建立多路径导致的网络能量浪费,又实现了多路径路由的优点,实现了WSN多路径路由的全局优化。
2 WSN路由优化算法
混合蛙跳算法是一种基于群体智能的生物进化算法。在WSN中,青蛙群体由一群具有相同结构的青蛙组成。整个群体被分为多个族群,每个族群有自己的思想,执行局部优化策略。在局部优化迭代结束后,各个族群之间进行思想交流,实现族群间的混合运算。达到了路由优化的目的。
2.1 网络模型
WSN网络模型假设如下:
1) 所有节点随机均匀地分布在一矩形区域内。且位置已知。
2) 所有节点与基站均保持静止,节点初始能量相同,并无法补充能量。基站的能量无限大。
3) 所有节点均同构,且唯一ID,并具有数据融合功能。
4) 每个节点的传输功率相同,有效通信距离均一样。
将无线传感器网络模型表示为一个有向图G=(V,E),其中V表示所有节点的集合,E表示所有边的集合。令r为节点v∈V的发射范围,L表示相邻节点间的距离。随机生成F只青蛙组成初始群体,每个青蛙个体表示一条源节点到基点的可行路径为U = (U1,U2 ,…,Ud),其中d表示解空间的维数。例如5个传感器节点组成的网络链路如图1所示。
随机生成的初始群体:
U1={S,1,2,BS} U2={S,1,3,2,BS}
U3={S,1,2,4,BS} U4={S,3,2,BS}
U5={S,1,2,3,4,BS} U6={S,4,BS}
U7={S,3,2,4,BS} U8={S,3,1,2,BS}
U9={S,3,4,BS} U10={S,4,3,2,BS}
2.2 算法描述
路由协议的好坏极大地影响整个网络的性能。好的路由协议不仅能够降低整个网络的能量消耗,延长网络生存周期,还能提高网络的稳定性。基于混合蛙跳算法的多路径路由的优化主要考虑了传输数据的能耗和可靠性两方面来全局优化多路径路由。以下为优化算法的具体步骤:
1) 初始化参数
在无线传感器网络中,按一定规则随机生成F只青蛙组成初始群体,计算青蛙个体的适应度f(i)。青蛙个体的适应度函数定义为:
其中D(u,x)表示源节点u在链路(u,x)上分配的数据流量,g(x,u)表示节点u在链路(x,u)上接收单位数据所消耗的能量,R(x,u)表示节点u在链路(x,u)上接收到的数据流量,t(u,x)表示节点u在链路(u,x)上发送单位数据所消耗的能量,W(u)表示感知的数据量。
2) 构造子族群
将生成的青蛙按适应度降序排列划分成m个族群,构造子族群。在随机生成初始群体之后,将青蛙个体按适应度f(i)降序排列存储于X={Ui},i=1,2,…,F,然后按照以下划分原则将整个青蛙群体分成m个族群Y1,Y2,…,Ym,每个族群中包含n只青蛙,满足下列关系:
Yij=X[j+(i-1)×n] i=1,2,…,m j=1,2,…,n
假设m=3,F只青蛙按适应度由高到低排列,位置位于第1 的青蛙分入第1 族群,第2 的青蛙分入第2 族群,第3 的青蛙分入第3 族群,第4的青蛙分入第1 族群,依次类推,将所有青蛙个体划分到3 个族群中。
3) 局部优化
将青蛙种群划分的多个族群进行局部优化。在每一个子族群中,具有最好适应度的可行路径表示为Ub,最差适应度的可行路径表示为Uw 。对每个子族群的局部优化,主要是对Ub和Uw进行交叉替换操作。具体的操作可如下进行:
(1) 在Ub和Uw中查找它们的公共基因,即查看两条路径是否同时经过某个节点,如果存在公共基因表明可以进行交叉。如果没有,则表明这两个个体不能交叉。
(2) 从选中的这个公共基因开始,直到下一个公共基因 (如果两条路径仅有一个相同节点,则取目的节点为下一个公共节点) ,对Uw进行链路交换。
例如: Ub={S,1,3,4, BS}
Uw={S,1,2,4,BS}
节点1、节点4为公共节点,经过交叉后,Ub不变。Uw变为:
Uw={S,1,3,4,BS}
计算交叉后的最差青蛙的适应度f′(w),如果f′(w)大于交叉前最差青蛙的适应度f(w),则交叉成功,否则交叉失败。如果交叉失败,再选用全局最优青蛙与最差青蛙进行交叉替换。交叉后判断交叉前后的最差青蛙的适应度,如果f′(w)大于f(w),则交叉完成,否则随机产生一个新的青蛙代替原来的最差的青蛙,交叉结束。
(3) 交叉后再对子族群中的所有的青蛙进行变异。每一个青蛙都以固定的概率p进行变异,大量实验表明p的值取0.02比较理想。子族群中的最优青蛙Ub也可能变异,为了防止变异后的Ub变得比原来的适应度差,如果变异后的Ub的适应度f′(b)大于变异前的适应度f(b),则发生变异,否则不进行变异。
4) 全局优化
所有子族群经过一定次数的局部优化后,将所有族群的青蛙混合在一起,重新计算适应度f(i),按适应度f(i)降序排列,重新划分族群,再进行局部优化,如此循环直到满足收敛条件为止。
2.3 算法分析
随机生成青蛙种群的时候,在可行路径中的节点的选择时,加入了节点的剩余能量的考虑。剩余能量越大的节点被选中的概率越大。概率q=E1/E2,E1表示节点的剩余能量,E2表示节点的初始能量。剩余能量的考虑缓解了部分节点因大量使用而死亡的问题。
改进的混合蛙跳算法改进了子族群青蛙局部优化方法,主要是对子族群中青蛙进行交叉变异操作,对子族群中最优青蛙和最差青蛙的交叉操作,考虑了多种情况,避免了局部早熟。随后进行概率变异操作,变异中如果最优的青蛙如果发生变异,要进行比对。这样不仅保证了青蛙个体的多样性,而且保留了青蛙的优良性,缩短了找到全局最优解的时间。
在每次的优化后保存最优的青蛙和次优的青蛙。采用这样的多路径路由可获得比单路路由更好的网络吞吐率和可伸缩性。如果最优路径中的某一个或几个节点的剩余能量很低,并且下一轮的路由更新还没开始,最优路径就不能传输数据。多路径路由就可以只使用次优的路径进行传输,保证了网络的流通,增加了网络的可靠性。
3 算法实现和实验仿真
3.1 算法流程
1) 基站收集网络初始信息。得到网络各个节点的邻居矩阵N和感知数据集合{W(u)|u∈V}。
2) 对网络节点ID编码并初始化青蛙群体。
3) 依据青蛙适应度划分生成青蛙种群。
4) 针对子族群中最优青蛙和最差青蛙进行选择替换操作,然后子群青蛙按概率0.02进行变异。
5) 混合子族群,再重复3)、4)操作;直到满足收敛条件为止。
6) 输出青蛙种群中适应度最优和次优的青蛙作为问题的满意解。
3.2 实验仿真
在下面的实验中,通过仿真网络中节点的通信和节点的能量消耗,主要从网络能量消耗方面进行了实验分析。
基本参数设定
网络的负荷根据控制系统的一般要求设置为:周期性发送和感知数据,各节点的发送数据周期为0.01 s~0.10 s,感知数据周期为0.1 s~0.5 s。青蛙更新迭代次数IT=10。定义网络生存周期为网络从运行开始到网络中死亡节点的百分数低于原来总节点数的50%时所持续的时间。
选择经典的传感网络路由算法定向扩散(DD) 算法作为比较对象。在同一环境下分别对混合蛙跳算法和DD算法的网络生存周期进行仿真测试。仿真结果如图2所示。
从图2中可以看出,采用改进的混合蛙跳算法的WSN路由优化算法具有更长的网络生存周期,并且随着感知数据量的增大,网络生存周期延长的效果越明显。说明混合蛙跳算法对于大数据量的全局优化更加突出。
4 结 语
本文在分析了现有的混合蛙跳算法的基础上,结合无线传感器网络的特点,提出了一种适合于无线传感器网络的路由优化算法。改进的混合蛙跳路由优化算法考虑到了节点的剩余能量,并且复杂的优化计算问题由能源充足、计算和存储能力强大的基站解决,平衡了节点能量负载,节省了能量消耗。仿真实验表明,相比DD算法,新算法均衡了网络能量消耗,有效地提高了网络生存周期,改善了网络性能。
参考文献
[1]WHeinzelman,J Kulik,HBalakrishnan.Adaptive Protocols for Infor-mation Dissemination in Wireless Sensor Networks[C]//Proc.5thACM/IEEE Mobicom,Seattle,WA,Aug 1999:174-85.
[2]C Intanagonwiwat,R Govindan,D Estrin.Directed Diffusion:a Scala-ble and Robust Communication Paradigm for Sensor Networks[C]//Proc.ACMMobi-Com2000,Boston,MA,2000:56-57.
[3]Heinzelman W,Chandrakasan A,Balakrishman H.Energy efficientcommunication protocol for wireless microsensor networks[C]//Proc ofthe 33rd Hawaii International Conference on Systern Sciences.Maui:IEEE Computer.
[4]HLuo,Fan YE,J Cheng,et al.TTDD:A Two-tier Data DisseminationModel for Largescale Wireless Sensor Networks[J].Wireless Net-works,2005,11(2):161-175.
[5]Young-Bae Ko,Nitin H Vaidya.Location-Aided Routing(LAR)inmobile ad hoc networks[J].ACM/Baltzer Wireless Networks(WI-NET)Journal,2000,6(4):307-321.
[6]Lees J,Gerlam.Sp litmultipath routing with maximally disjoint paths inAd Hoc networks[EB/OL].[2008-06-18].http://www.hp l.hp.com/personal/Sung-Ju_Lee/abstracts/papers/icc2001b.pdf.
[7]周集良,李彩霞,曹奇英.基于遗传算法的WSNs多路径路由优化[J].计算机应用,2009(2):521-524.
混合蛙跳算法 篇4
近年来,以风电为代表的可再生能源发电由于其节能减排的优势得到了快速发展。风电按规模大小可分为2种[1]:一种是规模化集中接入输电网的大中型风电场;另一种是以分布式电源(DG)形式接入配电网的分布式风电源(DWG)。当DWG接入配电网运行时,能够起到降低电能损耗、改善电压质量和减少环境污染等作用[2]。但是当配电网中DWG的渗透率提高时,由于其出力具有明显的随机性,会影响电力系统的正常运行,且影响程度与DWG的位置和容量有密切关系,因此对接入配电网的DWG进行选址定容规划是非常有必要的[3]。
在DG选址定容问题上,文献[3]以独立发电商收益最大为目标建立了单目标规划模型,采用模拟植物生长算法求解;文献[4]建立了DG选址定容多目标模型,采用遗传算法(GA)结合ε-约束法获得Pareto解;文献[5]把电动汽车也当成DG,建立了规划模型,采用蒙特卡洛模拟(MCS)嵌入GA求解;文献[6]则以配电网年运行费用最小为目标建立DG规划模型,并采用粒子群优化(PSO)算法求解。
本文首先对作为常用DG之一的DWG出力的随机性和负荷的不确定性进行了概率建模。在此基础上,利用机会约束规划方法[3,5]建立配电网DWG选址定容规划模型。以年综合费用最小为目标,采用基于拉丁超立方采样蒙特卡洛模拟(LHS-MCS)法的概率潮流判断规划方案是否满足节点电压机会约束和支路电流机会约束。设计了采用混合蛙跳算法(shuffled frog leaping algorithm,SFLA)求解DWG机会约束规划模型的具体实现方法。
1 含DWG的配电网概率潮流
1.1 DWG出力的随机性
风速的概率分布常用两参数Weibull分布来描述,其概率密度函数可表示为[7]:
式中:V为DWG叶轮轮毂处的风速;珔k为形状参数;c为尺度参数。
DWG的有功出力PDWG与风速V的关系如图1所示。
可将DWG的有功出力特性用分段函数表示为:
式中:Prated为DWG的额定功率;Vci,Vrated,Vco分别为切入风速、额定风速和切出风速。
本文的DWG采用常用的变速恒频双馈异步风力发电机,在运行过程中要从系统吸收无功功率[8]。可设DWG采用恒功率因数控制,则DWG的无功出力QDWG可表示为:
式中:λ为DWG的功率因数。
1.2 负荷的不确定性
一般可采用正态分布来描述负荷功率的不确定性[3]:
式中:PL,i,μp,i,σ2p,i分别为节点i有功负荷的随机量、期望和方差;QL,i,μq,i,σ2q,i分别为节点i无功负荷的随机量、期望和方差。
1.3 基于LHS-MCS法的配电网概率潮流计算
含DWG的配电网概率潮流计算可采用基于随机采样的蒙特卡洛模拟(RS-MCS)方法。该方法的缺点是:过小的采样次数会导致计算精度的不足,只有通过大大增加采样次数才能使得计算精度满足要求,而这将导致计算量剧增。本文采用基于LHS-MCS法的配电网概率潮流,相同精度要求下,相比于基于RS-MCS法的概率潮流计算方法,计算量小很多[9,10]。
拉丁超立方采样(LHS)是一种多维分层采样法,其本质是通过产生更加均匀分布的样本来提高精度[11]。在取少量样本的情况下,LHS方法可以极大地提高MCS法的模拟精度。
LHS方法主要包括采样和排序2个步骤[9],具体过程如下。
1)采样
设有M个待采样的随机变量Z1,Z2,…,ZM,其中Zk的累计概率密度函数为Yk=Fk(Zk),k=1,2,…,M。采样过程具体为:首先,将区间[0,1]分为NLHS个宽度为1/NLHS的等间距区间[(n-1)/NLHS,n/NLHS],n=1,2,…,NLHS,其中NLHS为LHS的采样数;然后,在每个子区间里随机选取一个ykn,ykn=(n-r)/NLHS,其中r表示0和1之间的随机数;最后,利用反变换得到采样值zkn=Fk-1((n-r)/NLHS),其中Fk-1(·)为Fk(·)的反变换。采样过程示意图如图2所示。
2)排序
当有多个输入随机变量时,LHS模拟的精度除了会受到采样值的影响之外,还会受到不同输入随机变量采样值之间相关性的影响,这就需要对采样后的样本重新进行排序,从而减少样本之间的相关性。可以采用Cholesky分解法[9,10]对样本进行排序,具体过程为:首先,生成一个每一行均是由整数1,2,…,NLHS随机排列而成的M×NLHS阶顺序矩阵L,计算L中行与行之间的Spearman秩相关系数矩阵ρL;然后,对ρL进行Cholesky分解,ρL=QQT,其中Q为下三角阵;最后,令G=Q-1 L,更新L中的元素得到新的顺序矩阵Lupdate,使得其每行元素的排列顺序与G中对应行的元素顺序相同。经过上述操作后,Lupdate中行与行之间的相关性就降到了最低。将采样矩阵每行元素按Lupdate中对应行的元素大小顺序重新进行排列,得到最终的采样矩阵Sobj。
基于LHS-MCS法的含DWG的配电网概率潮流计算方法具体如下。
1)输入计算所需的数据,包括系统节点参数、支路参数、DWG参数以及LHS的采样数等。
2)按照上述LHS方法对随机变量(风速、负荷功率)进行采样,得到一个M×NLHS阶的采样矩阵Sobj。
3)把采样矩阵Sobj的第n列(n=1,2,…,NLHS)元素代入潮流方程,求出该运行工况下的潮流分布和系统网损Ploss,n(n=1,2,…,NLHS)。
4)统计潮流的数字特性和概率分布,并判断节点电压和支路电流是否违反机会约束条件;按照求得总的系统网损。
2 DWG选址定容机会约束规划模型
以年综合费用最小[12]为目标,建立配电网DWG选址定容机会约束规划模型,目标函数为:
式中:CCAP为DWG投资成本费用;COPE为DWG运行和维护费用;Closs为网损费用。
DWG的投资成本费用包括设备固定投资费用和安装费用,其表达式为:
式中:η为DWG的经济使用年限;r0为贴现率;Wi为第i个节点DWG的安装容量;ce为DWG单位容量固定投资费用;cf为DWG单位容量安装费用;Π为DWG安装节点的集合。
DWG运行和维护费用的表达式为:
式中:cr为DWG单位发电量的运行和维护费用;为第i个节点DWG的年发电量,其中Πi为安装在第i个节点的DWG集合,Pi,p(t)为t时刻第i个节点第p台DWG的功率,可以通过MCS得到。
网损费用的表达式为:
式中:α为电价;Ploss为系统网损值;τ为年最大负荷损耗小时数。
具体约束条件如下。
1)潮流方程约束为:
式中:Pis和Qis分别为节点i注入的有功功率和无功功率;Ui和Uj分别为节点i和j的电压幅值;Θi为与节点i相连的节点集合;Gij和Bij分别为节点导纳矩阵的实部和虚部;θij为节点i和j之间的相角差。
2)待选节点DWG装机容量约束为:
式中:Wi,max为第i个待选节点DWG的最大允许安装容量。
3)节点电压机会约束为:
式中:Pr{·}表示条件成立的概率;βU为满足电压约束的置信度;Ui,min和Ui,max分别为节点i电压幅值所允许的下限和上限;Ωnode为系统所有节点集合。
4)支路电流机会约束为:
式中:Iw,max为支路w所允许的电流上限;βI为支路电流不发生越限的置信度;Ωline为系统所有支路集合。
3 模型求解
SFLA是由Eusuff和Lansey在2003年提出的一种基于群体的启发式进化计算方法[13],其在求解大规模优化问题时具有收敛速度快和全局寻优能力强的优点,最初被用于求解水资源分配问题[13,14]。目前在电力系统机组组合[15]、动态优化潮流[16]、输电网规划[17]等问题上已经得到了应用。本文将其用于求解配电网DWG选址定容问题。
以某一规划方案在各节点安装的DWG数量作为一只青蛙Xf=[xf1,xf2,…,xfd],其中下标d表示DWG待选节点数,则利用SFLA求解DWG机会约束规划模型的具体实现方法如下。
步骤1:设定初始参数。设定群体青蛙数量F,族群m,局部搜索迭代次数Nl,全局迭代次数Ng,青蛙所允许移动距离的最大值Smax。
步骤2:生成初始蛙群。随机生成F只青蛙作为初始蛙群P={X1,X2,…,XF},第f只青蛙表示问题的解为Xf=[xf1,xf2,…,xfd],f=1,2,…,F。
步骤3:适应度值计算。对每只青蛙所代表的规划方案进行概率潮流计算,得到网损期望、节点电压和支路电流越限概率。按式(6)计算目标函数值,并定义适应度函数为:
式中:a,b,c均为大于1的常数,且a=b<c;F0为足够大的常数,使适应度函数值恒为正。
步骤4:划分青蛙族群。对F只青蛙按照适应度降序排列,记适应度最好的青蛙为Pg。将整个蛙群分成m个子蛙群(族群),每个族群包含q只青蛙,满足F=mq。其中,第1只青蛙分入第1族群,第2只青蛙分入第2族群,第m只青蛙分入第m族群,第m+1只青蛙分入第1族群,第m+2只青蛙分入第2族群,依次类推。设Ys为第s族群青蛙的集合,则分配过程可描述为:
步骤5:局部搜索。对于每个族群,记适应度最好的青蛙为Pb,适应度最差的青蛙为Pw。局部搜索是对每个族群中的Pw进行循环更新操作,更新策略如式(16)和式(17)所示。经过更新后,如果得到的青蛙Pw′优于原来的青蛙Pw,则将其取代;如果没有改进,则用Pg取代Pb执行式(16)和式(17)所示的更新策略;如果仍然没有改进则随机产生一只新的青蛙取代原来的Pw。重复这种更新操作直到达到设定的局部迭代次数Nl。此外,若迭代过程中出现青蛙越界(违反约束条件2),则将越界分量用青蛙允许位置的边界值代替。局部搜索流程如图3所示。
式中:S表示青蛙的移动距离;int[·]表示取整运算,因为DWG安装数量是整数。
步骤6:混合蛙群。将所有族群的青蛙重新混合并执行步骤4和步骤5,重复此操作直到达到设定的全局迭代次数Ng。
SFLA求解DWG选址定容机会约束规划模型的详细流程如图4所示。
4 算例和结果分析
4.1 算例
33节点配电系统[18]如图5所示。
系统电压等级为12.66 kV,总有功负荷为3 715kW,总无功负荷为2 300kvar。待选DWG安装节点为8,11,14,17,28,32,每个待选节点DWG最大允许安装容量为1 000kW。设每个安装节点的风速均服从珔k和c分别为3.0和9.0的两参数Weibull分布。单台DWG额定容量为100kW,切入风速、额定风速和切出风速分别为3,13,20m/s。DWG的单位造价为5 000元/kW,安装成本费用为1 200元/kW,运行和维护费用为60元/(MW·h),经济使用年限为15年,贴现率为0.08。电价为0.5元/(kW·h),年最大负荷损耗小时数为4 000h。节点电压允许范围为0.93~1.07(标幺值),节点0和节点5之间的线路最大允许电流均为0.52 kA,其他线路最大允许电流均为0.3kA。
SFLA控制参数:蛙群规模为100,族群为10,局部搜索迭代次数为10,全局迭代次数为50,青蛙所允许移动距离的最大值为5。LHS采样规模为500,待采样随机变量数为39(33个负荷变量+6个风速变量)。在MATLAB R2009b平台上编写了计算程序(其中,概率潮流采用并行计算方法),所使用计算机的CPU为Intel(R)Core(TM)i5-3470,主频为3.2GHz,内存为4GB。
4.2 测试和结果分析
本文取置信度βU和βI为相同的值,分别对置信度为0.99,0.95,0.90,0.85,0.80这5种情况进行计算,规划结果如表1所示。
注:8(3)表示节点8安装3台DWG,其他以此类推。
5种情况下的最优规划方案节点电压最大越限概率分别发生在节点30,32,31,32,31,且均为越下限约束;支路电流最大越限概率均发生在支路0-1。从表1中“规划方案”一栏可以得出,5种情况下规划方案的DWG安装数量分别为25,21,18,16,15。可见,置信度要求越高,DWG装机容量越大,这主要是因为DWG在一定的渗透率内并网运行不但能提高节点电压幅值,而且能降低靠近变电站的馈线上的线路传输功率,从而减小节点电压最大越下限概率和支路电流最大越限概率。
此外,从表1中可以看出:随着置信度要求的降低,规划方案的年综合费用呈明显的下降趋势。实际应用中,规划人员可根据实际要求选取合适的置信度进行规划。
置信度为0.90时最优规划方案的节点电压期望值分布与规划前的节点电压期望值分布的对比如图6所示。从图中可以看出,接入DWG后,系统电压质量得到了明显的提高。
表2给出了置信度为0.90时,对最优规划方案分别采用基于RS-MCS法和基于LHS-MCS法进行概率潮流计算来检验机会约束条件的对比情况(检验10次)。
从表2中可以看出:采样规模为500,分别采用RS-MCS法和LHS-MCS法对机会约束条件进行检验时,两者的计算耗时几乎没有差别;在检验机会约束条件时,采样规模为500的LHS-MCS法能得到与采样规模为20 000的RS-MCS法相当的精度和稳定结果,但是前者的采样规模和计算耗时远小于后者。显然,基于LHS-MCS法的概率潮流计算更适合用来检验机会约束条件。
图7为相同种群规模下,分别采用PSO算法、GA和SFLA求解置信度为0.90时的DWG机会约束规划模型的收敛特性对比图。GA的参数:迭代次数为50、染色体数为100、交叉率为0.8、变异率为0.1,采用轮转赌盘选择机制。PSO算法的参数:迭代次数为50、粒子数为100、惯性权重为0.8、局部和全局学习因子均为2、粒子最大允许移动距离为5。从图7中可以看出,3种方法得到的最优解相同,但是SFLA的收敛速度更快。SFLA采用类似于PSO算法的局部搜索策略来寻找当前个体周围的最优解;同时采用混合策略促进族群间个体的信息交换,大大增加了SFLA的全局搜索能力。这2个策略结合使SFLA具有更快的收敛速度。
此外,SFLA求解该算例的DWG规划模型的计算耗时约为17 min,略微偏慢,但是由于规划不需要在线进行,这样的计算时间还是能够被实际所接受的。
5 结论
本文考虑DWG出力的随机性以及负荷的不确定性,利用机会约束规划方法建立了配电网DWG选址定容规划模型,采用SFLA结合基于LHS-MCS法的概率潮流对模型进行求解,结论如下。
1)机会约束规划方法适用于考虑不确定性的配电网DWG选址定容规划;规划人员可以根据实际要求选取合适的置信度进行规划。
2)在检验机会约束条件时,相比于基于RS-MCS法的概率潮流,基于LHS-MCS法的概率潮流更高效;LHS-MCS检验机会约束条件的方法同样适用于其他一系列机会约束规划模型的求解。
3)SFLA在求解DWG规划模型时具有高效性,比GA和PSO算法的收敛速度更快。
摘要:对分布式风电源(DWG)出力的随机性和负荷的不确定性进行概率建模。在此基础上,以年综合费用最小为目标,利用机会约束规划方法建立了配电网DWG选址定容规划模型。采用基于拉丁超立方采样蒙特卡洛模拟(LHS-MCS)法的概率潮流判断规划方案是否满足节点电压机会约束和支路电流机会约束。设计了混合蛙跳算法(SFLA)求解DWG规划模型的具体实现方法。33节点配电网的DWG规划结果验证了模型的合理性、LHS-MCS检验机会约束条件的有效性以及SFLA的高效性。
混合蛙跳算法 篇5
关键词:舰船电力系统,网络重构,混合蛙跳算法,离散化
混合蛙跳算法[1,2]是2003年由Eusuff和Lansey提出的一种结合了模因算法 (Memetic Algorithm, MA) 和粒子群优化算法 (Particle Swarm Optimization, PSO) 的新式后启发群体智能优化算法, 它继承了其他优化算法的优点的同时, 还具有概念简单, 参数更少, 计算速度更快的优点。目前已初步应用于神经网络, 函数优化, 参数辨识等领域, 并已经获得了成功。舰船电力系统网络重构其实质就是构建一个在故障状态下进行调节、调度和控制的电力网络管理自动化系统, 来最大限度地减少各种故障给电力系统带来的影响, 增强系统的稳定运行能力及连续供电能力, 完成对电力系统影响最小的电力恢复。
本文根据舰船电力系统的特点、重构指标以及网络拓扑, 考虑到负荷优先级以及发动机容量和电流限制问题, 提出了基于混合蛙跳算法的舰船电力系统网络重构方法, 结合具体算例进行分析研究, 结果表明混合蛙跳算法具有较高的收敛速度和精度。
1 舰船电力系统网络重构
1.1 舰船电力系统结构图
大型舰船电力系统中发电机通过主配电板和联络线构成环形供电系统[3], 使用径向模式的载荷分布, 如图1所示, 包括4个电站、8台发电机, 通常由3个电站供电, 1个备用。主配电板直接联接有些重要负载, 其他的负载由区域配电板 (负载中心) 进行供电, 发电机和供电负载之间具有任意性。图1中, G为电站, C为区域配电板, L为载荷。为了确保一级负载的供电可靠性, 正常情况下选用两路供电, “—”代表正常的供电线路, “---”代表备用的供电线路。
1.2 目标函数
按照舰船负载的重要程度, 可分为3级, 其中, 1、2级负载为重要负载。舰船电力系统重构时与陆地配电网以网损或经济运行为目标函数不同, 舰船电力系统的故障恢复问题是一个多目标决策问题。在任何情况下, 必须要保证重要负载的供电, 同时使负载损失的总量达到最小。
因此, 综合考虑到开关的操作次数最少, 以及全部重要负载的恢复供电, 创建如下舰船电力系统网络重构模型[4]:
目标函数为:
式1) 中, i=1, 2, 3…, N1, j=1, 2, 3…, N2, k=1, 2, 3…, N3;分Lg1、Lg2、Lg3别为1、2、3级负载的个数, 负载总数NL=N1+N2+N3;λ1, λ2, λ3分别为1、2、3级负载的比例系数, μ为开关比例系数;xi, xj=1或0, 分别表示负载的供电和卸载;zr=0或1 (r=1, 2, …, M) , 分别表示在重构中开关保持不变或发生变化。
1.3 约束条件
式中, Ii为第i条线路的电流值, Imax为线路运行所允许的最大电流值;Pi为第i条线路的功率值, 、Pmin、Pmax分别为线路运行所允许的最大功率值和最小功率值。
2) 放射状条件约束。对每一个重要负荷, 在恢复供电时, 正常路径和备用路径有且仅有一条闭合, 即zia+aiβ=1 i=1, 2, …, Ω3)
式中, zia, aiβ=0或1, 分别表示为同一负载的正常、备用开关处于打开或闭合状态;Ω为转换开关的个数。
3) 优先性约束。优先运行重要负载, 然后再考虑级别低的负载。
2 混合蛙跳算法
2.1 混合蛙跳算法基本原理
混合蛙跳算法 (Shuffled frog leaping algorithm, SFLA) 是2003年由Eusuff和Lansey提出的新型进化算法, 它概念简单, 参数少, 收敛速度快, 全局寻优能力强。下面综合介绍下混合蛙跳算法:
设青蛙种群规模为U, 子群体个数为N, 每个子群体含有M只青蛙, 则U=M*N。第j个个体在D维目标搜索空间内的位置 (解) 为Xj=ΣXj1, Xj2, …, Xj DΣ, 计算出每个青蛙个体的适应度值, 从优到劣排列, 在迭代过程中, 将第一个青蛙放到第一个子群体, 第二个青蛙放到第二个子群体, 依次分配, 直到第N个青蛙放到第N个子群体, 然后, 第N+1个青蛙放到第1个子群体, 第N+2只青蛙分入第2个子群体, 依次循环下去, 直到所有青蛙分配完毕。
在子群体每次迭代后, 确定出适应度最差个体Xw= (Xw1, Xw2, …, Xw D) 和最优个体Xb=ΣXb1, Xb2, …, Xb DΣ, 比较各子群体, 确定全局最优个体Xg=ΣXg1, Xg2, …, Xg DΣ。每次进化后, 对最差个体进行更新操作, 方法如下:
蛙跳步长更新公式:
青蛙个体的位置更新公式:new Xw=Xw+Qj5)
其中, Qj表示青蛙个体更新的步长, j=1, 2, …, M;Rand () 是[0, 1]之间的随机数;‖Qmax‖表示所允许的最大蛙跳更新步长;‖Qmin‖表示所允许的最小蛙跳更新步长。使用公式4) 、5) 更新。如果new Xw的适应度值优于原来的适应度值, 则用new Xw的位置 (解) 代替原来Xw的位置 (解) 。如果没有改进, 则使用以下方法进行更新:
蛙跳步长更新公式
使用公式6) 7) 更新。如果new Xw的适应度值仍然没有改进, 则在解空间中随机生成一个解代替Xw。当所有的子群体实现了子群内的局部搜索后, 再次混合所有的青蛙, 依次排列划分出子群体进行迭代, 反复循环, 直到满足迭代次数。
2.2 适应度函数
适应度函数也称评价函数, 根据函数值可以判断生物个体是否有更多的能力来繁衍后代, 它是判断生物个体优劣的一个重要依据。因此, 适应度函数的选取直接关系到算法的性能。本文选用的适应度函数为:
上式中, 表达式参见式1) , Nc是发电机的数量;Nl是负载的数量, α1, α2表示惩罚系数;△P, △I表示如下:
其中, 式9) 为违反发电机功率约束的惩罚函数, 式10) 为违反发电机电流约束的惩罚函数。选取α1, α2=1.0e8。式9) 中的Plim表示发电机功率的极限值, 当发电机功率超过上限Pmax, Plim为上限值Pmax, 当发电机功率小于下限Pmin, Plim为下限值Pmin;式10) 中的Ilim与Plim类似。由本文所研究的重构问题是最小优化问题, 因此, 青蛙个体适应度值越小越好。
2.3 混合蛙跳算法的离散化求解过程
本文中混合蛙跳算法仅针对连续问题, 而舰船电力系统网络重构是个多目标、非线性、离散化问题。因此, 必须在SFLA产生初始种群后进行离散化处理。其方法是:将负荷进行二进制0、1、2编码[5], 其中, 0代表失电, 1代表正常线路供电, 2代表备用线路供电。在故障情况下, 有些负载会失去正常线路供电, 有些负载为了保证重要负载的恢复供电, 会改由备用线路供电, 则负载的供电情况有以下四种情况:
有正常有备用:[0, 0.5) →0, [0.5, 1.5]→1, (1.5, 2]→2
有正常无备用:[0, 0.25) →0, [0.5, 2]→1
无正常有备用:[0, 1) →0, [1, 2]→2
无正常无备用:[0, 2) →0
3 算例分析
以图1所示的舰船电力系统简化结构图为例, 各发电机的实际功率不得超过320k W, 各条线路的实际电流值不得超过420A, 故障前所有负荷均由正常供电线路供电。系统负荷数据及有关参数见表1[6]。
故障一:假设电力系统中, L5, L11失去正常供电。目标函数式1) 中的参数为:λ1=1, λ2=1, λ3=0.01。SFLA参数设置为:种群大小为600, 总进化代数为100。最佳方案如表2所示:L5、L11由备用路径恢复供电, L8改用备用路径恢复供电, L4卸载。开关操作次数是4次, 最佳收敛代数是3, 平均收敛代数是3.8。与单纯的遗传算法 (SGA) [6], 改进粒子群算法 (IPSO) [7]相比较, SGA卸载负载过多, 导致开关操作次数很大, 在有限的时间内, 优势很小;IPSO收敛很快, 但是还没有达到开关次数最小的效果;SFLA达到了开关次数最少, 收敛快的目的。
故障二:假设电力系统中, L3, L12, L13失去正常供电, L10失去备用, 设置与故障一相同。最佳方案如表3所示:L3、L13由备用路径恢复供电, L12卸载。与启发式遗传算法 (HGA) [8], 粒子群算法 (PSO) [5]相比较, SFLA的故障恢复方案明显优于GA、HGA算法所得到的结果, PSO方案已达到最优, 但是在相同的开关操作次数下, SFLA收敛更快。
通过两个算例可知, 应用混合蛙跳算法 (SFLA) 可以保证在最小的开关操作次数下恢复所有重要负载的供电, 且收敛速度快。可见, SFLA在求解离散化问题上具有较强的搜索能力。
4 结论
随着世界各国综合国力的提高, 军事力量的增强, 舰船的研究也越来越深入。依照舰船电力系统网络重构的特征, 建立了以快速恢复重要负载, 最大限度的确保重要负载的供电恢复和开关次数最小为目标的故障修复离散化模型, 应用混合蛙跳算法来进行故障恢复, 通过算例与其他方法分析比较, 证实了蛙跳算法在舰船重构问题上的适用性, 具有更强的稳定性, 收敛性。
参考文献
[1]Eusuff M M, Lansey K E.Shuffled frog-leaping algorithm:A memetic meta-heuristic for disvrete optimization[J].Engineering Optimization, 2006.
[2]J.A.Jordaan, R.Zivanovic, "Dynamic leapfrog algorithm for power system state estimation", IEE Proc.-Gener.Transm.Disirih.Vol.150, No.1, January 2003.
[3]兰海, 肖云云, 张利军等.多Agent的船舶电力系统网络重构技术[J].船舶与海洋工程学报, 2010.
[4]张毅, 杨秀霞.舰船电力系统网络重构研究综述[J].电工技术学报, 2005.
[5]王锡淮, 李军军, 肖健梅等.基于梯度DPSO算法在舰船电力系统网络重构[J].电工技术学报, 2007.
[6]杨秀霞, 张晓峰, 张毅, 陈迎春.基于启发式遗传算法舰船电力系统网络重构研究[J].中国电机工程学报, 2006.
[7]陈雁, 孙海顺, 文劲宇等.改进粒子群算法在船舶电力系统网络重构中的应用[J].电力自动化设备, 2011.
混合蛙跳算法 篇6
遗传算法,粒子群算法,蚁群算法,人工鱼群算法等优化算法的出现对于求解约束、非线性和多极值的全局优化和多目标优化问题提供了新的解决方法,并且在社会生产各个领域得到广泛应用[1,2,3,4]。
混合蛙跳算法(Shuffled Frog Leaping Algorithm,SFLA)是2003年由Eusuff和Lansey提出的一种基于群体智能的生物进化算法[5]。算法具有概念简单、参数少、计算速度快、全局寻优能力强、易于实现等特点,近年来,该算法不断得到改进和应用[6,7,8,9,10]。
本文通过引入自适应因子,提出了一种改进的混合蛙跳算法,通过测试实验函数和优化电力系统经济调度问题,结果表明本文提出的改进算法较之基本混合蛙跳算法和文献[6-7]中的改进算法,具有更好的优化性能。
1 改进的混合蛙跳算法
1.1 自适应混合蛙跳算法(ISFLA)
ISFLA在更新过程中,青蛙个体能够记住自身前两次的更新步长和个体邻域的历史最优值,因而迭代过程中Pw(适应值最差个体)不仅向Pb(子群适应值最好个体)或Pg(全局适应值最好个体)学习,在延续上次更新的部分惯性步长的同时,还向记忆中的个体邻域历史最优值学习,随着迭代次数的增加,自适应因子对个体更新策略影响呈线性减弱趋势。这种更新策略加快了算法的收敛速度,扩大了个体的搜索区域,同时也保持了开发与探索的平衡,维持了种群的多样性,一定程度上扩展了算法的搜索能力。具体更新策略如下式。
式中:R1,R2,R3,R4是0~1之间的随机数;Dis是Pw的移动步长;Dis M是青蛙移动步长的上限;t是当前迭代次数;Tmax是总的迭代次数;W是权重因子;Ws和We是权重因子的初始值和结束值,本文中的取值分别是0.9和0.4;s为大于1的整数,取值范围[1,30]。图1为s分别等于3、5、10,Tmax=1000时,函数a的值的曲线图。
His(Pw)是Pw的个体邻域历史最优值。个体邻域结构如图2所示,在图中有P个存储体,标记为{C(i),i=1,2,…,P},按照初始化种群的适应值降序排列,自左至右存储相应个体迭代过程中的历史最优值。个体邻域指个体所对应存储体左右半径内的存储体集合,如:以C(3)为中心,半径为2的个体邻域集合是{C(j),j=1,2,3,4,5}。存储体采用循环结构,C(1)包含在C(P)的右邻域内,C(P)包含在C(1)的左邻域内。
1.2 测试标准函数蛙跳算法流程
Step1:设置相关参数,在定义域范围内随机产生P只青蛙,子群数为M,每个子群青蛙个数为N,全局信息交换迭代次数为T1,局部搜索迭代次数为T2。
Step2:计算每只青蛙的适应值,将所有青蛙按照目标函数值降序排序,随机分组。
Step3:执行式(2)、式(3),对每个子群重新排序,更新每个子群的Pw、Pb及整个种群的Pg。
Step4:判断局部搜索迭代次数是否达到T2,若未达到,返回Step3继续执行。
Step5:判断全局信息交换迭代次数是否达到T1或Pg是否达到要求的收敛精度。如果不满足,跳至Step2继续执行;如果满足,算法结束,输出Pg。
1.3 实验方法、结果及说明
1.3.1 实验设计
应用SFLA,文献[6-7]中的改进算法和ISFLA,对下面4个测试函数进行优化计算,并对其计算结果进行分析,以下4个测试函数均为求全局极小值,测试函数参数如表1所示,测试平台为VC++6.0,机器主频为P4(2.2 G),内存为2 G。
实验中算法具体参数设置:青蛙种群规模为200,子群数为20,每个子群中青蛙数为10,迭代进化次数为500,子群内更新迭代次数为10。ISFLA的个体邻域半径为1,各函数优化的参数和目标精度见表1。对以上4个测试函数分别采用SFLA,文献[6-7]中的改进算法、ISFLA进行极小值寻优,实验结果采用算法独立执行30次得到的平均值。
本文采用以下方式分析算法的优化性能:(1)固定迭代进化次数,算法收敛速度和精度分析;(2)固定收敛精度,算法迭代进化次数分析。
1.3.2 实验结果及分析
1)固定迭代进化次数,算法收敛速度和精度分析
实验结果如表2和图3~图6所示。由表2可以看出,ISFLA的平均优化结果明显好于基本SFLA和文献[6-7]中改进算法。ISFLA的运行时间与基本SFLA和文献[6]中的改进算法相当,但明显快于文献[7]中改进算法,另外ISFLA的标准差相对较小,表明改进算法具有更好的稳定性。
图3~图6是函数f1~f4采用四种算法运行30次后得到的平均值的进化曲线,在图3~图6中,使用函数平均极值的常用对数表示纵坐标的值,使用进化次数表示横坐标的值。从图中可以看出,ISFLA虽然在进化前期收敛速度较慢,但在中后期收敛速度明显快于其他三种算法。
2)固定收敛精度,算法迭代进化次数分析
4个测试函数分别采用基本SFLA、文献[6-7]中改进算法、ISFLA各自独立执行30次,达到表1中要求精度的迭代次数(最大迭代次数为500),如表3所示,其中,成功率等于达到要求精度的迭代次数与实验总次数(30)之比。从表3可以看出:ISFLA对4个函数达到93%~100%的成功率,改进算法明显高于其他三种算法。从达到固定优化精度的平均迭代次数、最小迭代次数和最大迭代次数三个指标来看,ISFLA都比其他三种算法整体上性能突出。以上结果说明ISFLA优化成功率高、收敛速度快,且具有较好的稳定性。
2 在电力系统经济调度问题中的应用
2.1 燃料成本目标函数
电力系统经济调度问题燃料成本的数学模型如式(5)[11]。
式中:Fcost为系统燃料成本费用;Z为系统内发电机数目;Pm为第m台发电机的有功功率;Fmcost(Pm)为第m台发电机的耗量特性。
1)普遍性描述
Fmcost(Pm)的二次函数近似表示为
式中,am,bm,cm为燃料成本系数。
2)发电机耗量曲线的阀点效应[12]
机组热运行测试过程中,发电机有功功率从最小值缓慢增加到最大值,通过对Pm、Fmcost(Pm)采样可获得机组的耗量曲线,通常将其表示为二次函数形式,如式(5)。然而汽轮机进汽阀突然开启时出现的拔丝现象在机组的耗量曲线上叠加了1个脉冲效果,即产生了阀点效应,如图7所示。
当考虑阀点效应时,耗量特性为
式中:Em为由阀点效应引起的耗量特性变化;am,bm,cm,gm,hm为系统参数;mPmin为第m台发电机的有功功率下限。
2.2 约束条件
调度过程中考虑两种约束条件:容量约束与平衡约束。
容量约束为
其中,Pmmin,Pmmax为第m台发电机的最小和最大有功功率输出。
平衡约束为
其中:PF为系统负荷;Ploss为有功网损。采用B系数法时,网损与发电机有功功率的关系为
式中:P为M维有功功率列向量;Bmj,B0m,B00为B系数,实际应用中可以每隔一段时间进行测量修正。
2.3 算例分析与结果说明
为了验证改进混合蛙跳算法的性能,本文以文献[12-13]的3机组6母线电力系统为例,分别讨论:a)忽略网损,忽略阀点效应;b)忽略网损,考虑阀点效应;c)考虑网损,考虑阀点效应三种情形下系统的负荷分配问题,并针对同一问题,使用ISFLA、文献[6-7]和SFLA进行优化求解,并与文献[14]中的标准PSO算法(SPSO)以及文献[15-16]中改进粒子群算法的结果进行比较研究。具体的参数为:发电机负载总负荷PD=500 MW,各发电机的耗量特性常数及有功功率容量约束见表4。
2.4 改进算法优化电力系统调度问题流程[14]
Step1:设置相关参数,青蛙总数为P,子群数为M,每个子群青蛙个数为N,全局信息交换迭代次数为T1,局部搜索迭代次数为T2。
Step2:根据不等式约束和等式约束在定义域范围内随机产生P只青蛙的前D-1维位置。
Step3:计算每个个体最后一维的位置,判断是否符合机组功率限定,若不符合转Step2。
Step4:根据式(6)~式(8)计算每只青蛙的适应值,将所有青蛙按照目标函数值降序排序,随机分组。
Step5:执行式(1)、式(2)对每个子群重新排序,更新每个子群的Pw、Pb及整个种群的Pg。
Step6:判断局部搜索迭代次数是否达到T2,若未达到,返回Step5继续执行。
Step7:判断全局信息交换迭代次数是否达到T1或Pg是否达到要求的收敛精度。如果不满足,跳至Step4继续执行;如果满足,算法结束,输出Pg。
计算网损的B系数如下[14]:
实验中算法具体参数设置:青蛙种群规模为50,子群数为10,每个子群中青蛙数为5,迭代进化次数为500,子群内更新迭代次数为5。ISFLA的个体邻域半径为1,试验次数为10,实验结果采用算法独立执行10次得到的最好值。表5和表7分别统计了各算法的最优解以及与其他参考文献中的最优解。
表5中,各种算法优化性能相近,但是ISFLA在10~20次之内找到最优解,而其他算法则在300~400次找到最优解[14],使用ISFLA求解该问题具有较快的收敛速度和精度。
从表6和表7中可以看出,ISFLA求解该问题得到的解均优于基本SFLA和文献[6-7],文献[14-16]中的解,且具有较快的收敛速度及较高的收敛精度。
4 结束语
混合蛙跳算法 篇7
随着激光雷达技术的发展,激光雷达成像在军事和民用领域中得到了越来越多的应用。其中,条纹管激光雷达成像(Streak Tube Imaging Lidar,STIL)就是近年来发展起来最有希望实用化的成像体制之一。与传统的激光雷达成像比较,条纹管成像具有探测视场大,成像帧频高,成像精度高等特点[1,2,3,4]。同时条纹管成像不同于普通成像,其常常应用于一些特殊环境中。此时往往由于探测物体对激光反射回波较弱,造成条纹图像目标与背景区别不明显、对比度低,使条纹目标数据难以提取,为后续图像数据处理带来困难。因此,研究条纹图像增强是很有必要和有意义的。
图像增强是图像处理中最具有吸引力的领域之一。图像增强是采用一系列技术手段对图像某些特征,如轮廓、边缘、对比度进行调整,来改善图像的视觉效果和质量,以便于图像的显示、观察或者进一步处理,其最终目的是改善给定图像。图像增强方法分为两大类:空间域和频域方法[5]。空间域一词是指图像平面自身,这类方法是以对图像像素的直接处理为基础的。常用方法为灰度变换法、直方图处理法、图像平滑和图像锐化等。而频域法是以修改图像傅里叶变换后的频谱成分为基础的。先把图像做变换,然后在频域中进行处理,最后再变换回空间域。这类方法计算量比较大,并且变换参数选取人工干预的较多。此外,近年来也出现了很多结合优化算法的图像增强方法[6,7,8,9],它们多用于普通图像或者红外图像增强处理。对于条纹管图像,传统图像增强方法的效果不是很好。本文提出了一种蛙跳[10]自适应图像增强算法,该算法借助非完全Beta函数,利用混合蛙跳算法实现非完全Beta函数参数的自适应选择,对条纹图像进行增强。
1 条纹管激光成像系统的建立
建立了一套以皮秒扫描相机为探测器的激光雷达成像系统[11]。系统组成如图1所示:
扫描相机采用自行设计的可见光皮秒变像管扫描相机[12],光谱响应范围为203~850 nm,灵敏度为100µA/lm,时间分辨力小于等于2 ps,动态分辨力为15 lp/mm。激光源采用皮秒YAG激光器,其可以输出波长调谐范围为266~1 063 nm,脉冲宽度为35 ps,重复频率为10 Hz的激光脉冲。
图2就是应用该系统对水下靶板成像所获得的一副条纹图像。可以看出,由于水下光波散射损失较大,目标回波信号较弱,条纹图像和背景对比度不高,这对后续数据提取不利,所以需要进行图像增强处理。
2 基于混合蛙跳算法和非完全Beta函数的图像增强
2.1 灰度变换曲线
本文使用归一化非完全Beta函数实现灰度图像增强变换曲线自动拟合[13]。非完全Beta函数的定义如式(1):
式中:0<α,β<10,B(α,β)为Beta函数。Beta函数的定义如式(2):
参数α和β取不同值时,能够拟合各类灰度变换曲线。当α<β时,经过变换后对较暗区域进行拉伸。当α=β时,变换曲线是对称的,对中间区域进行拉伸,对两边区域进行压缩。当α>β时,经过变换后对较亮区域进行拉伸。图3即为α和β不同取值时的几种灰度变换曲线,其中,横坐标为原图像灰度,纵坐标为变换后图像灰度。
如果采用穷举法或人工干预方法来确定最佳的α和β值,这样处理不仅浪费时间而且不具有智能性。本文利用混合蛙跳算法,通过归一化非完全Beta函数实现灰度图像增强变换曲线的自动拟合,对每幅图像自适应找出其非线性变换函数最优参数α和β值,从而实现图像自适应增强。
2.2 混合蛙跳算法的原理
混合蛙跳算法(SFLA)是近年来由Eusuff和Lansey提出并发展的一种基于模因的超启发算法[10]。混合蛙跳算法来源于自然界中基于群体合作青蛙的觅食行为。该算法使用局部搜索中子群青蛙之间相互影响的模因演化形式,采用混合策略允许局部搜索之间交换信息而向全局优化发展。SFLA结合模因演化算法和粒子群算法优点,算法包括元素之间局部搜索和全局信息交换,使局部和全局信息很好的结合。局部搜索使模因在局部个体间传递,混合策略使局部间模因在全局间交换。
SFLA的工作过程为:在一个D维搜索空间中,随机生成F只青蛙的初始群体。第i只青蛙表示问题的解为Xi=(xi1,xi2,K,xiD)。计算每只青蛙适应值f(Xi),把青蛙个体按照适应值从大到小排列。将排序后的青蛙分为m个蛙群,每个蛙群中有n只青蛙,因此总青蛙数为F=m×n。其中,第1只青蛙分到第1个蛙群,第二只青蛙分到第2个蛙群,第m只青蛙分到第m个蛙群……,第m+1只青蛙又分到第1个蛙群,依次类推,直到所有青蛙划分完成。
在每个子蛙群中进行局部深度搜索,为了确保竞争性,使用三角概率分布式(3)挑出q只青蛙组成子群族,pj为族群中第j只青蛙被挑中的概率。这样,适应值越大的青蛙被挑选进入子族群的概率就越大。
确定当前迭代子群体中最差个体位置Xw,最好个体位置Xb和全局最好个体位置Xg。以局部优值Xb和全局优值Xg对最差个体进行更新操作,分为蛙跳步长更新和青蛙位置更新。以全局优值为例,对蛙跳步长更新,如式(4),位置更新如式(5)。其中,rand()表示均匀分布在[0,1]之间的随机数。
先以局部优值进行步长和位置更新,计算式同(4)、(5),仅以局部优值Xb替代式中全局优值Xg即可。计算最差个体位置更新后的适应值大小,如果最差个体适应值没有改进,则以全局优值重新更新,如适应值仍然没有改进,则随机产生一个新位置Xw。重复子群体中位置更新操作,直到完成子群体迭代。因为子群迭代中,只对最差个体位置进行更新,故随着迭代更新,参数值逐渐向最优靠近。
当完成所有子群体局部深度搜索后,将所有青蛙重新混合排序划分,重复进行局部深度搜索,直至满足混合迭代次数。完成所有迭代后,可发现,所有青蛙都向最优位置靠拢,即参数值达到最优。
2.3 评价函数
在本文中,以文献[14]提出的评价图像质量的测量函数为标准确定蛙跳算法的适应值函数,如式(6):
其中:M,N表示图像宽和高,i表示某青蛙个体,f′(x,y)为图像处理后(x,y)处灰度值,fitness(i)值越大,则图像灰度分布越均匀,图像对比度越高,图像质量就越好。
2.4 基于混合蛙跳和非完全Beta函数的图像增强算法
基于模因混合蛙跳优化和非完全Beta函数的图像增强算法为
步骤1对输入的图像进行归一化处理:
式中:f(x,y)为在点(x,y)处的原始图像灰度值,Lmin,Lmax为原始图像最小和最大灰度值。
步骤2利用混合蛙跳算法确定Beta函数参数(α,β)最优值。
首先随机给出F组(α,β)值,作为初始青蛙位置,其中(α,β)取值范围在(1,10)。按照算法步骤3、4计算每一组(α,β)对应的增强图像f′(x,y)。根据适应值式(6)计算每一组参数(α,β)的适应值大小,按照适应值从大到小进行排序。将F组值划分为m个子蛙群,在每一个子蛙群中进行局部搜索,即找出每一个子蛙群中最差位置(α,β)w,最好位置(α,β)b,青蛙的全局最好位置(α,β)g。按步长更新式(4)、位置更新公式(5)对每个子蛙群中最差个体位置(α,β)w进行更新。完成子蛙群迭代后,混合蛙群。重复局部搜索,直至满足混合迭代次数。最终确定(α,β)的最优值。
步骤3利用混合蛙跳优化所求得参数(α,β)构造灰度变换曲线,对输入图像进行增强。
步骤4对增强后图像进行反归一化,得到最终的增强图像。
3 实验与仿真
对条纹管相机的条纹图像,分别采用传统直方图均衡化法(Histogram equalization)、色调映射法(Tone mapping)和本文基于混合蛙跳自适应法对原始图像进行对比度增强。如图4、图5所示,其中(a)为通过系统成像实验获得原始条纹图像,(b)为利用本文提出的混合蛙跳和非完全Beta函数结合进行的条纹图像增强,(c)为利用直方图均衡化方法进行的图像增强,(d)为利用色调映射法进行的图像增强。
本实验中两参数的计算过程为:对输入图像f(x,y),根据式(7)进行归一化处理,得到归一化的图像g(x,y)。随机给出F组(α,β)值,作为初始青蛙位置。对每只青蛙,根据其(α,β)值构造灰度变换曲线,对其归一化图像g(x,y)进行灰度变换得到g′(x,y),并按式(9)进行反归一化f′(x,y)。根据适应值式(6)计算每只青蛙位置(α,β)对应适应值大小,按照适应值从大到小进行排序。将F组值划分为m个子蛙群,找出每一个子蛙群中最差位置(α,β)w,最好位置(α,β)b,以及整个蛙群的全局最好位置(α,β)g。按步长更新公式(4)、位置更新公式(5)对子蛙群中最差个体位置(α,β)w进行更新。完成子蛙群迭代后,混合蛙群。满足混合迭代次数后,算法结束,最终确定最佳参数值。本实验中,首先给出初始蛙群大小分别为8、24、100进行实验,当初始蛙群为8时,迭代完成后,参数值不能达到最优;当初始蛙群为100时,虽然参数值可以达到最优,但是运算时间较慢;当初始蛙群为24时,参数值可以达到最优,运算时间也比较快。由此可见,初始蛙群大小F的选择既不能太大,也不能太小。太大会增加算法的计算量,并在改善最优值方面并没有太大帮助;太小不利于蛙群之间的信息交换,找不到全局最优值。故在本实验中,初始蛙群的大小取24即可,其取值与输入图像大小的关系不大。对图4,最后得到最优参数值为α=.7 3,β=42.,符合第三种Beta函数变换曲线特点。对图5,得到参数值α=.5 6,β=9.1,符合第一种Beta函数变换曲线特点。无论哪种变换,都根据原始图像特点将其一定范围内像素进行了拉伸,使输入图像整体对比度得到提高。
条纹图像具有目标与背景区分不明显、对比度低等特点。由本文算法处理图像后的直方图可以看出,本文算法并没有将整个亮度范围的像素区域进行拉伸,只是将目标区域的灰度值进行了有效增强,背景区域的灰度值反而被较好的压缩,故在增强过程中有效的抑制了噪声。与传统直方图均衡化法和色调映射法比较,传统直方图方法是将整体图像像素进行拉伸,图像亮部分虽然得到了增强,但是暗部分像素也进行了拉伸,随图像的增强,噪声反而增加。而色调映射算法也在增强基础上加入了一定的噪声,这说明传统直方图增强方法和色调映射算法是不适用于特殊条纹图像增强处理的。而本文方法,整体对比度比较好,细节信息也被很好保留下来,在视觉效果上要优于这两种传统方法的增强效果。
4 结论
灰度变换是一种比较有效的图像增强方法,但在传统算法中人工干预因素比较多,智能化程度比较低。本文利用蛙跳全局寻优能力强的特点,结合非Beta函数对图像进行增强。实验结果表明,该方法可以根据输入条纹图像自适应选取参数,增强条纹图像各部分反差,增加感兴趣的灰度区域,抑制不感兴趣的灰度区域,如噪声。不但能提高原始图像整体对比度,而且较好保留了图像中细节信息。实验表明,该算法在视觉质量上优于传统直方图均衡化法和色调映射算法,并且适合图像自动化处理,因而具有较大工程实用价值。对一些跟条纹管图像特点类似红外图像,也可应用本文方法进行增强。但对普通图像,由于不具有条纹图像这种特点,故本文增强方法不一定适用。
基于蛙跳算法的模糊图像复原 篇8
关键词:蛙跳,模糊,复原
图像是人类感知世界的视觉基础,但是由于传送和转换,造成了图像模糊,而在一些视频领域又需要清晰的、高质量的图像。因此,为了提高图像质量,复原具有非常重要的意义[1]。
对于模糊图像复原的研究,过去主要是以逆滤波、维纳滤波、约束最小二乘复原为出发点,但是逆滤波只对没有被噪声污染的图像很有效;维纳滤波需要求得到半无限时间区间内的全部观察数据,不能用于噪声为非平稳的随机过程的情况,且对于向量情况应用也不方便;约束最小二乘滤波器抑制了噪声,但同时也去掉了一些有用的高频细节。20世纪90年代以来,出现了一些新的算法:量子算法、人工神经网络、粒子群算法等。但其理论依据多源于对生物群落社会性的模拟,与其相关的数学分析比较缺乏,这就导致现有研究还存在许多不足,缺乏具备普遍意义的理论性分析。算法中涉及的各种参数设置无确切的理论依据,通常是按照经验型方法确定,对具体问题和应用环境的依赖性比较大[2]。
笔者源于对青蛙觅食行为的研究,提出蛙跳智能优化算法。在一组随机青蛙个体每次进化中,根据个体的适应度来确定吸引域;以某种策略更新局部最差个体,使得搜索个体向最优解移动;通过个体间的协作与竞争来实现在多维空间中对最优解的搜索。
把最佳图像的复原过程看成求解最优化的过程,将图像的复原处理转变成蛙跳算法的寻优问题。该方法具有模糊图像复原清晰度高、抑制噪声能力强特点。
1 蛙跳算法描述
1.1 基本描述
青蛙跳跃运动具有爆发性强、距离远(能达到身体长度的15倍左右)的特点,能轻松越过沟渠和障碍,并且具有良好的环境适应性。一群青蛙生活在一片湿地中,湿地内部离散地分布着许多石头,这群青蛙找寻不同的石头进行跳跃,从而到达食物较多的地方。每个青蛙通过寻找不同的石头提高自己寻找食物的能力,每只蛙可以与其他的蛙交流思想并以通过传递信息的方式来改进其他蛙的寻食信息[3]。
通过模拟青蛙群体在寻食过程中所体现出的协同行为来完成对问题的求解。多只青蛙形成了种群,每只青蛙代表一个解,同时种群被分成了多个子群,每个子群包括一定数量的青蛙,在每个子群内分别执行局部搜索,按族群不同进行信息传递,并将全局信息的交换与局部进化搜索相结合。在局部搜索结束后,各子群重新合并成为新一代种群。各青蛙携带的信息得到了有效交流,使得算法具有较强的跳出局部极值点的能力,从而向着全局最优的方向前进。每只青蛙都受自己和其他青蛙的影响,并通过子群进化来调整位置。经过一定数量的进化后,不同子群间的青蛙通过跳跃过程来传递信息。这种进化和跳跃过程相间进行,直到满足收敛的条件为止[4,5]。
1.2 数学模型
将图像域中的每个要复原像素解视作1只青蛙,所有解集合组成青蛙群体。设解群体规模为P,设第i只青蛙表示问题的第i个解
xi=(xi1,xi2,…,xis) (1)
式中:s表示解空间维数,i=1,2,…,p;计算每个解的适应度值f(xi),并将个体按适应度值从大到小降序排列f(1)≥f(2)≥f(p);将排序后的青蛙平均分配到M个族群,每个族群有N个青蛙,P=M×N。在优化计算过程中,将第1只青蛙f(1)适应值大的解x(1)分配到第1个族群,第2只适应值大的青蛙分配到第2个族群,一直分配下去,直到第M个适应值大的青蛙分配到第m个族群。然后将第M+1个适应值大的青蛙又分配到第1个族群,如此循环分配,直到所有P只青蛙分配完毕为止。
在每一个子群中,目标函数值最好的解为
xb=(xb1,xb2,…,xbn) (2)
目标函数值最差的解为
xw=(xw1,xw2,…,xwn) (3)
群体中目标函数值最好的解为
xg=(xg1,xg2,…,xgn) (4)
在每次迭代中,对xw进行更新操作[6],其更新策略为
x
式中:x
令d(k)=rand(0,1)×(x
若f(x
若f(x
重复迭代计算更新,若仍无改进,则随机产生一个新的解取代旧解x
当所有子群的局部搜索完成后,将所有子群的P只青蛙重新混合,再按目标值从优到劣的顺序重新排序和划分子群,然后再进行局域深度搜索。如此反复,直到设定的混合迭代次数,或达到满足问题的精度要求为止。
d的大小决定算法的全局收敛性,当较大时,有利于全局搜索,但可能飞过最优解;当较小时,利于局部区域内精细搜索,但容易陷入局部最优。因此对d控制如下
式中,dm为第m只蛙跳步长。
1.3 模糊图像复原
1.3.1 模糊运动图像模型
设物体f(x,y)在同一平面运动,令x(t)和y(t)分别为物体在x和y方向上的分量,t为运动的时间,记录介质的总曝光量是在快门打开到关闭这段时间的积分[8],则模糊的图像为
式中:n(x,y)为随机加性噪声,具有有限幅值。
对其频域分析傅里叶变换后为
利用傅里叶变换的位移性质,得到
令
G(u,v)=F(u,v)H(u,v)+N(u,v) (10)
1.3.2 复原过程
对时域模型g(x,y)=f(x,y)*h(x,y)+n(x,y)离散化。
设退化函数h(x,y)采用为M×M矩阵
噪声n(x,y)采用的矩阵为
把输出连续图像g(x,y)离散化,在x,y方向上采样间隔分别为Δx,Δy,并均取N点,则数字图像用矩阵表示为
则原图形f(x,y)的估计矩阵为
这样从已知的降质图像g(x,y)中,根据h(x,y)和n(x,y)的某些先验信息[9],对f(x,y)作最佳的估值
式中:
式中:
为了更好地对比仿真结果,对图像复原算法建立评价指标体系。图像复原算法的性能由信噪比ISNR来评估,计算公式为
式中:g为模糊图像;
假设f(x,y)的尺寸为P×Q,使用了均方误差MSE对复原质量进行评价
两幅图像的MSE越小,说明两幅图越接近。
1.3.3 算法实现流程
算法流程为:
1) 确定种群P和子群M,每个子群有N只青蛙,迭代次数T;
2) 初始化种群,计算每只蛙的适应度值,适应度值降序排列;
3) 记录每个子群中目标函数值最好的解xb和最差的解xw;群体中目标函数值最好的解xg;
4) 根据xw更新策略,得到子群中最差青蛙位置更新,在指定迭代次数内继续执行以上操作;
5) 计算蛙跳步长d获得r的取值;
6) 根据构造矩阵,输出模糊图像复原结果。
2 实验仿真
2.1 复原效果视觉对比
截取“海空雄鹰团”苏-30MK2型战机快速上升视频一帧,程序通过Matlab7.0软件处理,在上述条件下,对逆滤波、维纳滤波、约束最小二乘复原、量子算法、人工神经网络、粒子群算法以及本文算法进行处理对比,效果如图1,图2所示。
图1a是计算机模拟出的高斯模糊并有加性噪声影响的退化图像,模糊函数是均值为0,方差为4。图1b为复原效果,图1c为逆滤波复原效果,图1d为维纳滤波复原效果,图1e为约束最小二乘复原效果,图1f为量子算法复原效果,图1g是人工神经网络复原效果,图1h是粒子群算法复原效果。从视觉效果中可以看出,图1c,图1d,图1e的复原效果明显低于图1f,图1g,图1h的复原效果,经典算法抑制噪声的能力不如人工智能算法,复原结果受噪声的影响较明显,图像中噪声颗粒偏大;图1f,图1g,图1h的复原结果相差不大,但依然存在多余的噪声和边缘;图2b本文复原效果细节保持能力最强,视觉上平滑了部分多余的细节,所以用蛙跳算法复原的图像比用其他方法恢复的图像在低频谱区内更平滑,而在高频区域去掉尖锐部分,整体视觉效果更好。
在相同的硬件条件下CPU为3.6 GHz,内存2 048 Mbyte,操作系统Windows XP,硬盘为SATA2.0接口,图3给出了图像复原率对比曲线。
从图3可以看出该算法的复原率比较高,这是因为各青蛙携带的信息得到了有效交流,使得算法具有较强的跳出局部极值点能力,从而向着全局最优的方向前进。
2.2 评价指标对比
表1为该算法对复原图像的信噪比ISNR数据对比。从结果可以得到该算法ISNR最大为10.960 5,对抑制噪声能力最强。其他算法,噪声将被放大可能将信号湮没,影响了图像恢复质量,在频域进行时,无法避免振铃效应。
表2为该算法对复原图像的均方误差MSE数据对比。噪声方差以模糊函数方差4为标准,从结果可以得到该算法MSE最小为0.028 1,复原图像应最接近原图,这也在复原后的视觉效果图1b体现出来。
3 总结
针对模糊图像复原要求,本文提出了一种基于蛙跳算法的复原技术。该算法的关键在于把蛙跳步长d和r的取值构造函数关系。蛙跳算法恢复模糊图像效果满足人眼的视觉要求,通过客观分析对比ISNR、MSE数据,证明该算法对抑制噪声能力最强,复原图像清晰度高,具有一定的实用价值。
参考文献
[1]刘积平,余营林.一种简易的图像去噪方法[J].华南理工大学学报,2008,28(2):60-63.
[2]骆剑平,李霞,陈泯融.混合蛙跳算法的Markov模型及其收敛性分析[J].电子学报,2010,38(12):2875-2880.
[3]栾垚琛,盛建伦.基于粒子群算法的混洗蛙跳算法[J].计算机与现代化,2009,(11):39-42.
[4]王亚敏,冀俊忠,潘全科,等.基于离散蛙跳算法的零空闲流水线调度问题求解[J].计算机工程与应用,2010,46(17):52-56.
[5]任立群.基于蛙跳算法的无线Mesh网QoS路由算法[J].聊城大学学报:自然科学版,2010,23(1):82-85.
[6]赵鹏军,刘三阳.求解复杂函数优化问题的混合蛙跳算法[J].计算机应用研究,2009,26(7):2435-2437.
[7]李祚泳,张正健,汪嘉杨.基于蛙跳算法优化的地下水水质韦伯普适指数公式[J].水文,2010,30(3):1-5.
[8]尹建新,计时鸣,张利.相对运动所引起的模糊图像的模糊复原算法研究[J].浙江工业大学学报,2006,34(1):78-81.
[9]郝毫刚,李艳玲,黄春艳.基于方向信息测度的运动模糊图像恢复[J].计算机工程,2010,36(2):201-202.