群搜索优化算法

2024-10-08

群搜索优化算法(精选12篇)

群搜索优化算法 篇1

0 引言

基于随机搜索的智能优化算法如进化算法、模拟退火算法等, 具有容易实现、适用范围广的特点, 已被广泛用于计算机技术和工程领域, 同时也一直是个研究热点。

群集智能算法 (Swarm Intelligence Algorithm) 是近年来出现的一类新的智能优化算法。典型的群集智能算法有Dorigo提出的蚁群算法 (Ant Colony Algorithm) [1], Kenndy与Eberthart提出的粒子群算法 (Particle Swarm Optimizer Algorithm) [2], 李晓磊等提出的鱼群算法[3]以及S.He和Q.H.Wu提出的群搜索优化算法 (Group Search Optimizer Algorithm) [4]。

GSO算法对于多模态高维函数优化问题优势明显[5], 但其算法较复杂, 运行速度较慢, 且在低维问题中表现稍差。对GSO算法进行了改进, 提高了优化性能、简化了计算过程、加快了运行速度。文中选用了4种常用测试函数, 分别在低维 (30维) 和高维 (300维) 的情况下, 将改进算法与GA、PSO、GSO算法做了函数优化比较, 比较结果说明改进是有效的。所有测试程序均在MATLAB7中实现。

1 改进的群搜索优化算法

1.1 群搜索优化算法

群搜索优化 (GSO) 算法源于群居动物如鸟、鱼、狮子等的觅食行为[4]。这些动物的觅食策略主要有:①发现, 即发现食物;②加入, 即加入 (追随) 发现者分享食物[4]。为避免陷入局部极小, GSO还采用了游荡策略。据此群成员被分为三类:发现者、加入者和游荡者。

每轮迭代中, 当前位置最佳的个体成为此轮的发现者, 发现者探测周围区域寻找更好的资源, 如果找到便移动到新位置上, 否则保持原位置不变。其他个体随机地被选择为加入者或游荡者, 加入者即向发现者的位置前进一段距离, 而游荡者朝任意方向游动一段距离。在整个迭代过程中, 发现者保持了当前最佳位置, 加入者一直向发现者靠近, 而游荡者则随机地在觅食区域游弋。每个个体都可以在三种角色中切换。

1.2 改进的群搜索优化算法

结合文献[6,7]中对GSO的改进方法, 本文对GSO的改进主要有三个方面, 一是采用完全随机搜索, 不再按搜索角度进行搜索[6];二是游荡者在生成新位置时, 限制允许变异的维的数量[6];三是发现者在迭代过程中的移动方向被各成员作为经验保存起来, 以此预测下一发现者的位置。为具有多样性, 每一次的移动只被随机选中的少数成员记录下来。其中前两个改进来自文献[6,7], 第三个改进为本文提出。

改进算法描述如下:

在一个n维搜索空间, 群中第i个成员在第k次迭代时的位置为Xundefined∈Rn、经验为Vundefined∈Rn。在迭代开始之前, 用随机值初始化每个成员的位置, 经验值均设为零。

在第k次迭代时, 计算群中每个成员的适应度, 找出位置最好的成员作为发现者, 记为Xundefined, 发现者在本轮迭代中保持此位置不变。

若Xundefined≠Xundefined, 则随机选择10%的群成员按式 (1) 进行经验积累, 再以式 (2) 进行位置预测。否则不选择成员进行积累和预测。

Vundefined=c1Vundefined+c2r (Xundefined-Xundefined) (1)

Xundefined=Xundefined+r2Vundefined (2)

其中, r1和r2为n维向量, 其分量均为[0, 1]均匀分布随机数, c1和c2为常量系数。

在其余的成员中, 以80%的概率随机选择加入者, 加入者以一个随机步长向发现者靠近[4]:

Xundefined=Xundefined+r3 (Xundefined-Xundefined) (3)

其中, r3为n维向量, 分量均为[0, 1]均匀分布随机数。

余下的成员作为游荡者, 向任意方向随机移动一段距离[7]:

Xundefined=Xundefined+r4·step·mutationflag (4)

其中, r4、step和mutationflag均为n维向量。r4为标准正态分布随机向量。step为步长常量。mutationflag是一个用0、1表示的布尔值向量, 标志了各维是否允许变异, 用以下方法求得[6]:

mutationflag=r5

其中, r5为n维均匀分布随机向量。mutationprobability=1.5/n+ (4n/k) 2为分量变异概率, 其值随迭代次数递减。“<”运算比较左边每个分量与右边标量的大小, 返回一个用0、1表示的布尔值向量。

算法步骤如下:

①初始化最大步长值;用随机值初始化每个成员的位置得到矩阵X;初始化经验矩阵V为0;k=0;

② k=k+1;

③计算群中每个成员的适应度, 找出位置最好的成员作为发现者, 记为Xundefined;

④对群中每个成员i (i≠best) , 执行第⑤至⑦步;

⑤若Xundefined≠Xundefined并且 [0, 1]均匀分布随机数r<0.1, 则成员i作为发现者的预测点, 使用公式 (1) 和 (2) 进行经验积累和位置预测。否则, 转到⑥。

⑥若r<0.8, 则i是加入者, 使用公式 (3) 以一个随机步长向发现者靠近。否则, 转到⑦。

⑦ i是游荡者, 使用公式 (4) 向任意方向移动一段距离。

⑧判断终止条件是否满足, 若是则输出Xundefined, 否则返回②。

2 函数优化实验

2.1 测试函数

选择了4个经典测试函数进行优化实验, 如表1所示。其中f1~f2为单模态函数, f3~f4为多模态函数。

2.2 实验算法及参数设置

在本文中进行函数优化实验的算法有:GA、PSO、和本文改进算法。

GA来自MATLAB7.0自带的GADST (Genetic Algorithm and Direct Search Toolbox) , 参数设置为intermediate crossover、migration rate=0, 其他参数取默认值。PSO使用PSOT粒子群优化工具箱[8]里的标准PSO, 参数采用默认值:c1和c2值为2, 惯性权重系数在前1500次迭代中由0.9变化到0.4, 最大步长为4。本文改进算法中步长设为4, c1和c2分别为0.6和6, 种群规模为51。其它算法的种群规模均为50。迭代次数在30维函数优化时设置为3000, 在300维时设置为60000。

2.3 函数优化实验结果及算法比较

低维函数优化比较如表2所示。表2列出了GA、PSO、GSO和本文算法分别对函数f1~f4求最小值的结果, 表中数据是算法连续50次运行的平均结果。其中GA、PSO和本文算法的数据为实验测试所得, GSO的数据取自文献[4]。

图1所示为GA、PSO和本文算法分别对函数f1~f4 (低维) 的优化过程曲线图, 数据均为算法连续50次运行的平均值。

由表2可知, 低维情况下, 本文改进算法4个函数的优化结果均小于GSO算法, 说明改进是有效的。且4个函数的优化结果均比GA算法小, 在对f2、f3的优化中也小于PSO算法。可见其优于GA算法, 与PSO算法相比也有一定优势。如图1所示, 改进算法的收敛速度比GA和PSO快, 例如函数f4, 改进算法在不到500次迭代时已搜索到最小值附近, 而PSO算法需要近1000次迭代。总之, 在低维情况下, 改进算法整体收敛性能较好, 收敛速度较快。

高维函数优化结果比较如表3所示。表3列出了各算法分别对函数f1~f4求最小值的结果, 其中, GA、PSO和本文算法的数据为实验所得, 是连续20次运行的平均结果, GSO的数据取自文献[6], 是10次运行的平均结果。图2为GA、PSO和本文算法分别对函数f1~f4 (高维) 的优化过程曲线图, 数据为算法连续20次运行的平均值。由图表可知, 在高维函数优化时, 改进算法的搜索性能优于其它3种算法, 收敛速度和精度均较高。

3 结束语

本文的GSO改进算法比原算法简单高效, 易于实现, 收敛性能更优。本文改进算法的参数和算子可根据具体问题修改和调整, 是解决实际问题的一个新选择。

参考文献

[1]Colorni, Dorigo A, Maniezzo M.Distributed optimization by ant col-onies[C].Proceedings of the First European Conference on Artifi-cial Life.Paris, France:1991:134-142.

[2]Kenndy J, Eberhart R C.Particle Swarm Optimization[C].Pro-ceedings of the 1995 IEEE International Conference on Neural Net-works.Piscataway, NJ, USA:1995:1942-1948.

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

[4]He S, Wu QH.ANovel Group Search Optimizer Inspired by AnimalBehavioural Ecology[C].2006 IEEE Congress on EvolutionaryComputation, 2006:4415-4421.

[5]He S, Wu Q H, Saunders J R.Group Search Optimizer:An Opti-mization Algorithm Inspired by Animal Searching Behavior[J].IEEE Transactions on Evolutionary Computation, Oct.2009, 13 (5) :973-990.

[6]张雯雰, 滕少华, 李丽娟.改进的群搜索优化算法[J].计算机工程与应用, 2009, 45 (4) :48-51.

[7]张雯雰, 陆武魁, 罗玉玲.群搜索优化算法在桁架结构优化中的应用[J].现代计算机, 2009 (321) :17-20.

[8]Birge B.Psot-a particle swarmoptimization for use with matlab[C].In SIS’03, Proceedings of the 2003 IEEE, Swarm Intelligence Sym-posium, April 2003:182-186.

群搜索优化算法 篇2

基于粒子群算法的并联机构结构参数优化设计

介绍了粒子群优化算法的原理和实现方法,分析了该算法的主要参数对搜索性能的`影响,并把粒子群算法用于六自由度的并联机构的参数优化设计中,取得了较好的效果,试验证明,粒子群算法是一种有效的优化方法,适用于大型复杂结构的优化设计.

作 者:孙凡国 黄伟 KONG Fan-guo HUANG Wei 作者单位:五邑大学,机电工程系,广东,江门,529020刊 名:机械设计与研究 ISTIC PKU英文刊名:MACHINE DESIGN AND RESEARCH年,卷(期):22(3)分类号:V221.6关键词:粒子群优化算法 进化计算 优化设计

群搜索优化算法 篇3

关键词 粒子群算法;水资源优化配置;水稻

中图分类号 S344 文献标识码 A

Optimal Allocation of Rice Water Based on PSO

LUO Yongheng1,ZHANG Mi2,ZHOU Jianhua2

(1. Economic College of Hunan Agricultural University,Changsha,Hunan 410128,China;

2. School of Economics and Management,Changsha University of Science & Technology,Changsha,Hunan 410114,China)

Abstract This article aimed to achieve the optimal allocation of rice water resources. The optimal allocation of rice water not only exists in different types of rice such as early rice, season rice and late rice, but also exists in different growth stages of the same type. Particle swarm optimization has the advantages of high efficiency and precision in the calculation and is relatively easy to operate,so it was applied to the optimal allocation of rice water model solution. The specific example of optimal allocation of rice water in GaoLu village of HengYang verifies the feasibility of the algorithm.

Key words particle swarm optimization;the optimal allocation of water resource; rice

1 引 言

作为农业大省的湖南省,其主要农作物是水稻,故水稻用水量十分巨大.虽然湖南省全境地处亚热带季风湿润气候区,降水较为丰沛,但在季节性干旱时节中,全省不少农村地区普遍存在着水稻用水困难问题.

在科学地对水稻进行用水的前提下,有限的灌溉水量既要在早稻、一季稻和晚稻等不同类型的水稻之间进行优化配置,也要在同一类型水稻在不同的生长阶段进行优化配置.为此就要构建一种大系统、多目标的高维非线性优化配置模型.在以往的文献中,在求解模型的方法选择中,一般采用大系统分解协调原理和动态规划相结合的方法.该方法虽然将大系统分解为一个个的子系统并减少了变量个数,便于优化求解,但协调的过程需要多次从低阶模型中返回信息,而且对于每层的寻优求解过程存在难以克服的矛盾,状态变量离散过少会降低计算精度,使计算结果偏差太大;离散过多,则又会大大降低计算效率.因此有学者应用基于粒子群的大系统优化模型来求解.粒子群优化算法具有较强全局寻优能力,应用于水稻用水的优化配置模型的求解.粒子群优化算法一方面提高了计算效率和计算精度,另一方面也比较容易操作.本研究以湖南省衡阳县高炉村的水稻用水优化配置为具体算例.结果表明,本文所用方法运算快速,程序实现简单可行,评价结果准确,没有陷入局部最优解的局限,

2 粒子群优化算法

粒子群优化算法(Particle Swarm Optimization)是由Kennedy和Eberhart于1995年提出的一种新型的群智能进化算法,它可以灵活方便地处理具有大量等式约束、不等式约束和同时包含连续变量、离散变量的混合整数优化问题.因此,对于水稻的用水优化配置间题,采用粒子群优化算法也是一种可行方案,其为水稻用水优化配置提供了一种很有前景和潜力的新型方法[1-7].

粒子群算法的规则比遗传算法还要简单.粒子群算法从随机解出发,由迭代公式计算最优解,通过适应度来评价解的品质,通过追随当前搜索到的最优值来寻找全局最优.

粒子群优化算法中,其迭代公式是:

vij(t+1)=wvij(t)+c1v1j(t)(pij(t)

-xij(t))+c2v2j(t)(pgj(t)-xij(t)),

xij(t+1)=xij(t)+vij(t+1),

其中,i表示粒子i,j表示粒子的第j维,t表示第t代,c1,c2为加速常数.w为惯性权重:w(iter)=wmax -(wmax -wmin )/imax ·iter.wmax 为最大惯性权值,imax 为最大进化代数;wmin 为最小惯性权值,iter为代数.r1和r2为两个随机函数,并且相互独立.vij∈[-vmax ,vmax ], vmax =kvmax ,0.1≤k≤1.0.

3 水稻用水优化配置的模型构建

水稻用水优化配置的出发点和立足点就是,灌溉水稻的用水能够产生最大的经济效益.然而,灌溉水稻的用水量与其带来的经济效益,存在着复杂的非线性关系,较难用函数关系对其进行描述.有时使用动态规划法、线性与非线性规划法等方法,也可以用离散的表格形式表达水稻用水量与其经济效益之间的关系,但前提就是都要把灌溉水稻的用水作为连续变量,为此往往使水稻的用水配置决策与实际的用水情况不相适应.

由一季稻和晚稻打成的大米(简称为一季稻米和晚稻米.同样,由早稻打成的米是早稻米),因为煮熟后米饭较软、黏,得到消费者的偏爱,因而一季稻米和晚稻米其市场价格要比早稻米高出不少.一季稻米由于其生长周期长,加之其米饭口感好,营养比晚稻米丰富,因而其市场售价又比晚稻米贵一些.目前,在我国南方地区,尤其是湖南省的中南部地区,农户在全年当中,有的只是种植一季稻,也有不少农户种植水稻两次,即分别种植早稻和晚稻.这样在每年的3月至10月当中,水稻的存在形式是,既有早稻,也有一季稻和晚稻.除了早稻和晚稻不能同时存在以外,早稻和一季稻、一季稻和晚稻,均有一段交差重叠的时期.本研究因为数据采集的关系,没有考虑大米的市场价格,因而也就没有经济效益的价格因素.而只是把灌溉水稻的用水能够产生最大的经济效益,仅仅等同于水稻的产量.

基于上述情况的考虑,本研究把不同类型的水稻(早稻、一季稻和晚稻)看作一个用水单位,对不同类型的水稻进行用水量最优配置.同类型水稻的用水,分阶段进行用水量最优配置.

3.1 同类型水稻用水优化配置模型

同类型的水稻,处于不同阶段(本研究把水稻的生长期划分为四个生长阶段,具体的阶段划分,见下文),其用水量是不同的.水稻的用水原则是:第一阶段,深水返青;第二阶段,浅水分蘖;第三阶段,有水壮苞;第四阶段,干湿壮籽[8].

1)第一阶段的深水返青.移栽后的水稻,吸引水分的能力大大减弱,这是由于水稻的根系受到大量损伤,大大减弱了稻根吸收水分的能力.这时候需要对稻田大量灌水,以增加稻根吸收水分的机会.此时田中如果水量不多的话,禾苗的稻根因为吸收水分困难,就会造成禾苗返青期延长.也因为禾苗叶片丧失的水分多,禾苗出现卷叶死苗的现象.因此,水稻禾苗移栽后必须深水返青.不过,深水返青一般以水深3~4 cm为适宜,并不是灌水越深越好.

2)第二阶段的浅水分蘖.分蘖期的水稻,在稻田灌水过深的情况下,往往会由于土壤缺氧闭气,禾苗基部光照弱,禾苗养分分解缓慢,禾苗分蘖困难.但分蘖期也不能没有水层.一般以保持1.5 cm深的浅水层为宜,并要做到“后水不见前水”,以利协调土壤中水、肥、气、热的矛盾.

3)第三阶段的有水壮苞.水稻稻穗形成期间,是水稻生长期中大量耗费水的时期,特别是减数分裂期,对水分的反应更加敏感.这时如果缺水,就会造成颖花退化,穗短、粒少、空壳多等.所以,水稻孕穗到抽穗期间,一定要保持田间有3 cm左右的水层,以保花增粒.

4)第四阶段的干湿壮籽.水稻抽穗扬花以后,叶片停止长大,茎叶不再伸长,颖花发育完成,禾苗需水量减少.为了加强田间透气,减少病害发生,提高根系活力,防止叶片早衰,促进茎秆健壮,应采取“干干湿湿,以湿为主”的用水管理方法,以期达到的以水调气,以气养根,以根保叶,以叶壮籽的目的.

为了理论证明的方便以及建模的需要,本研究把水稻的生长期划分为N个阶段,这N个阶段也就是建模中的粒子群维度.N个阶段形成N维向量的粒子,每个阶段的用水量设为粒子的一维,随机选取5N组N维向量组形成整个粒子群.

设:Si为计划湿润层内可供水稻利用的土壤储水量,Si1、Si2为降雨前后第i个天然土层的土壤含水量,以占干容重的百分数表示.θ为计划湿润层内土壤平均含水率,以占干土重的百分数计.CKi为第i阶段的地下水补给量,θw为土壤含水率下限,约大于凋萎系数,以占干容重的百分数计.θf为田间持水量,以占干土重百分数计.H为计划湿润层深度,Hi从为第i个天然土层的土壤厚度.Pei为第i阶段的有效降雨量,Pi为自然降雨量.α为降雨入渗系数α值与一次降雨量、降雨强度、降雨延续时间、土壤性质、地面覆盖及地形等因素有关。并且一般地,一次降雨量小于5 mm时,α为0;当一次降雨量在5~50 mm时,约为1.0~0.8;当次降雨量大于50 mm时,α=0.70~0.80。.γ为土壤干容重.n为天然土层数.WZi为第i阶段计划湿润层增加而增加的水量.WZi为零时,表明当时段内计划湿润层深度一致.

F(x)=max

(ETa)i=Si-Si+1+mi+pei+CKi-Ki,(2)

式(1)、(2)中,λi为第i个阶段水稻产量对缺水的敏感指数,(ETa)i为第i阶段的实际蒸发蒸腾量/mm,(ETm)i为第i阶段的潜在蒸发蒸腾量/ mm,Pei=αPi,Si=10γH(θi-θω).式(1)和式(2)中的约束条件为∑Ni=1mi=Q以及θw≤θ≤θf.

3.2 不类型水稻用水优化配置模型

不同类型的水稻,其用水优化配置的模型构建如下:

以不同类型水稻的生长期为一个完整的时期(稻谷从播种到收获有 3~5 个月的周期.一般早稻的生长期为 90~120 天,一季稻为 120~150 天,晚稻为 150~170天).假设有M种水稻(由于稻是人类的主要粮食作物,目前世界上可能超过有14万种的稻,而且科学家还在不停地研发新稻种,因此稻的品种究竟有多少,是很难估算的.尽管农户一般种植早稻、一季稻和晚稻,但也不排除农户种植其他类型的水稻),阶段变量K=1,2,…,M,所有类型水稻的种植面积为已知条件,C0为水稻灌区总的可供水量(m3),不同类型水稻的可分配水量为Ck(m3),实际分配给每种类型水稻的净灌溉水量为Qk(m3),所有种植面积的水稻全部得到灌溉,则有所有类型水稻之间水量平衡方程

Ck+1=Ck-Qkη, (3)

式(3)中,初始条件Cl=C0.η为水稻用水的有效利用系数,η一般取0.8~0.9.

在不以单个农户为收益单位、而以某个地域(比如某个县、乡,或者某个村)为收益单位,则可以以各种类型水稻所带来的经济效益之和G最大为目标,建立目标函数

G=max ∑Mk=1F(Qk)·AK·YMk·PRk, (4)

式(4)中,G的单位为万元,F(Qk)为由第一层反馈回来的效益指标(最大相对产量),Ak为第k种水稻的优化种植面积,YMk为第k种水稻的充分供水条件下的产量,PRk为为第k种作物的单价.输入灌区总的可用水量为Q、灌区内水稻种类数量为M,YMk及PRk分别为第K种类型水稻充分供水条件下产量(kg/hm2)及单价(元/kg).式(3)和式(4)中的约束条件为0≤Qk/η≤Ck,0≤Ck≤C0以及0≤∑Qk/η≤C0.

4 衡阳县高炉村的水稻用水优化配置算例

衡阳县地处五岭上升和洞庭湖下陷的过渡地带,“衡阳盆地”北沿.“衡阳盆地”属于南方湿热丘岗地易侵蚀退化脆弱区,是典型的红壤丘陵盆地.衡阳县地貌类型以岗、丘为主,海拔100~500 m之间的土地面积占全县土地总面积46.4%,坡度在15°以上的土地面积比重为52.6%.高炉村地处衡阳县洪罗庙镇南侧,地貌属于南方丘陵区类型.目前,全村人口1 217人,309户,分属于12个村民小组.全村耕地面积1 428亩,其中水田794亩,早地634亩.蒸水河从村的北边流过,池塘水域面积53亩.高炉村的水田,均种植水稻.不过,多数农户同时种植早稻和晚稻,也有不少农户种植一季稻.2009年以前,高炉村在各种水稻用水时,全是采取粗放型管理方法管理用水[9,10],各种水稻(早稻、一季稻、晚稻)的用水量及产量,见表1.2010年,该村在衡阳县政府有关部门的倡导和大力推动下,采取了精细化的水稻用水管理措施,应用了基于粒子群算法的用水量管理.该算法对衡阳县高炉村782亩水稻田(794亩水田中,有12亩田,因为各种原因,并没有种植水稻)进行了水稻用水优化配置应用研究,见表2和表3.衡阳县高炉村的水稻用水优化配置算例,验证了本文的算法.

通过表2和表3可以发现,本文所使用的粒子群优化算法,在早稻、一季稻和晚稻等不同类型水稻的用水优化配置以及同一类型的水稻在不同的生长阶段用水的优化配置方面,产生了较好的实际效果,表现为水稻产量得到提高.这说明粒子群优化算法寻优能力和优化效率更高,该算法在不同类型的水稻和同一类型水稻的不同生长阶段的用水优化配置,均是可行的.参考文献

[1] 刘玉邦,梁川.免疫粒子群优化算法在农业水资源优化配置中的应用[J].数学的实践与认识, 2011,41(20):163-171.

[2] 陈晓楠,段春青,邱林,等.基于粒子群的大系统优化模型在灌区水资源优化配置中的应用[J].农业工程学报,2008,24(3):103-106.

[3] 崔远来,李远华.作物缺水条件下灌溉供水量最优分配[J].水利学报,1997,28(3):37-42.

[4] 李霆,康绍忠,粟晓玲.农作物优化灌溉制度及水资源分配模型的研究进展[J].西北农林科技大学学报:自然科学版,2005,33(12):148-152.

[5] 贺正楚,翟欢欢.基于DEA三阶段模型的两型农业生产效率——以湖南省为例[J].农业系统科学与综合研究,2011,27(4):395-400.

[6] 苏里坦,宋郁东,愈双思.大型灌区高产节水灌溉优化配水决策模型研究[J].水利学报(增刊),2005:369-373.

[7] 刘玉邦.农业水资源高效利用理论及其在川中丘陵区的应用[D].成都:四川大学水利水电学院,2011.

[8] 水稻全生育期如何管水[EB/OL].[2008-01-04]http://data.jinnong.cc/mspx/d9539.shtml.

[9] 贺正楚.基于数据包络分析法的湖南省“两型”农业生产效率评价[J].农业现代化研究,2011,32(3):344-347.

群搜索优化算法 篇4

生产调度是计算机集成制造系统CIMS(Computer Integrated Manufacturing System)研究领域生产管理的核心内容和关键技术,车间调度问题JSP(Job Shop Scheduling Problem)是最困难的约束组合问题之一,其特点是没有一个有效的算法能在多项式时间内求出其最优解[1]。现在常用的是近似算法,主要包括遗传算法GA(Genetic Algorithm)[2]、模拟退火SA(Simulated Annealing)算法、粒子群优化PSO(Particle Swarm Optimization)算[3]和变邻域搜索[4]VNS(Variable Neighborhood Search)等现代优化算法,能够在合理的时间内得到较高质量的解,因此受到了广泛关注。然而,这些启发式算法或者源于对某些自然过程的直接模拟,或者源于对某些局域搜索方法的改进,在求解问题的同时不可避免地存在着一定的缺陷。若将两种算法混合使用,则能实现优化性能的互补,显示出广阔的应用前景。

本文提出了一种基于先后表编码方案的离散版粒子群优化PSO算法。同时结合了禁忌搜索TS(Tabu search)算法的自适应特点,设计了两种基于粒子群优化算法和禁忌搜索算法的混合调度算法。实验结果表明,两种混合算法是有效的,在搜索质量上优于粒子群优化算法和禁忌搜索算法。

1 改进粒子群优化算法

1.1 基本粒子群优化算法

PSO是由Kennedy和Eerhart于1995年提出的[5]。在PSO系统中,PSO随机初始化为问题的一组解,称为一群粒子。第i个粒子在n维解空间的位置表示为Xi=(Xi1,Xi2,…,Xin),并具有与优化目标函数相关的适应度Fiti,同时每个粒子具有各自的速度Vi=(Vi1,Vi2,…,Vin)来决定其单次迭代的位移。在整个搜索过程中,粒子通过种群和个体经验来动态调整自己的位置。在基本的粒子群优化算法中,粒子通过跟踪两个极值来更新自己,第一个是粒子自身所经历过的历史最好位置Pi=(Pi1,Pi2,…,Pin),另一个是群体所有粒子经历过的最好位置Pg=(Pg1,Pg2,…,Pgn)。迭代式如下:

vik+1=w×vik+c1Rand1()(Pik-XiΚ)+c2Rand2()(Pgk-Xik) (1)

Xik+1=Xik+Vik (2)

式中, Vik为粒子i在第k次迭代中的速度;Xik为粒子i在第k次迭代中的位置;w为惯性权重;Rand1(),Rand2()为两个独立的均匀分布在[0,1]区间的随机数;c1是认知系数,调节向Pik飞行步长;c2为社会系数,调节向Pgk的飞行步长。

1.2 适合JSP问题的改进粒子群优化算法

传统的PSO局限于连续的实数的速度—位移更新模型,不能有效地拓展到离散及组合优化问题领域。速度—位移模型中的粒子采用实数编码,其位置和速度的每一维都代表独立的变量,迭代过程中并不能反映出这些变量之间的顺序或者其它约束关系。该模型的本质为粒子代表的解在连续空间内,跟随个体以及领域极值以矢量运算的形式进行更新,因此并不适合处理作业车间调度之类的复杂组合优化问题。

本文以速度—位移更新模型为基础,分析传统PSO的优化机理,结合GA在解决JSP上取得的成果,按照PSO模型构建出适合JSP问题的改进粒子群优化算法。现介绍该算法的主要改进部分。

1.2.1 位置矢量编码

本文的改进粒子群优化算法中的粒子对应GA中的染色体,采用基于先后表的编码方案[6]。对于n个工件在m台机器上加工的Job Shop调度问题,用粒子中的某一段序列 ,Sm=(Oi),i=1,2,…,n,表示n个工件在第m台机器上加工工序Oi的一个先后序列,则有n!种序列解,n个工件在m台机器上的加工序列,可由序列集合S={Sk|k=1,2,…,m}表示,其全部序列解则有(n!)m种组合。当所有工序被调度时,总可以找到满足性能指标的全部机器的加工工序的最优序列。为此,PSO求解只需分别合理改变每个粒子的段其m编码,搜索最优解即可。

1.2.2 粒子更新策略

上述编码方法简单、直接,但不能直接用式(1)和式(2)进行速度和位置的更新。粒子群算法的实质在于粒子根据自己和群体的飞行经验不断地调整自己的位置和速度,从而向最优解飞行。粒子的新位置是粒子的速度、个体极值和全局极值相互作用的结果。下面给出求解JSP问题的改进粒子群优化算法中的位置更新公式:

Xi,jk+1=c2,jg(c1,jg(wfa,b(Xi,jk),Pi,jk),Pgjk) (3)

式(3)中各个符号的含意如下:

(1) Xi,jk表示第i个粒子的第j段序列,其中k为迭代次数。每个粒子都是由m段序列组成,对粒子中的每一段序列按式(3)对粒子进行更新操作。

(2) 函数fa,b(Xi,jk),其作用是交换粒子Xik的第j段序列中的第a分量与第b分量。a,b是区间[1,n]内的随机整数,这部分相当于粒子进行局部搜索,局部搜索寓于在每个粒子的每段序列Xi,jk的变化之中。

(3) 函数g(Xi,jk,Pi,jk)反映了粒子对自身经验的学习,其中Pi,jk为粒子自身最好位置Pi的第j段序列。令Yi,jk=g(Xi,jk,Pi,jk),其执行过程如下:①把m台机器随机分成两个集合S1和S2;②若Xi,jkS1,则Yi,jk=Xi,jk;若Xi,jkS2,则Yi,jk=Pi,jk;③输出结果Yi,jk

(4) 函数g(Yi,jk,pgjk)反映了粒子对群体经验的学习,其中pgjk为粒子群体经历的最好位置pg的第j段序列。其执行过程与函数g(Xi,jk,Pi,jk)相同。

(5) 解释算子符号⨂的作用,以wfa,b(Xi,jk)为例,在[0,1]内产生一个随机数ρ,若ρ<w,则wfa,b(Xi,jk)=fa,b(Xi,jk),否则wfa,b(Xi,jk)=Xi,jk。其中需要说明的是,式(1)中的c1,c2,在式(3)中取值与两个交换序列段的相似度(α)有关。在本文中的相似度(α)是指两段序列上对应位置上的工序相同情况,例如对于(1,5,3,2,4)和(1,3,2,5,4)两段工序序列,其相似度为2。这样对于式(3)中的c1,ic2,i=1-αn(i=12m),即两段序列越相似交换的概率越小,反之交换的概率越大。

2 混合PSO调度算法

2.1 禁忌搜索算法

针对以上提出的改进粒子群优化算法,本文采用禁忌搜索算法(TS)作为粒子的局部搜索策略。禁忌搜索算法的基本过程是从一个初始可行解s开始,确定满足特定条件的解s的领域N(s),然后从领域N(s)中选出一个与s相邻的可行解s′(通常是N(s)中最好解),从s移动到s′。最后从新的开始点s′重复搜索。为了避免循环和陷入局部最优,TS引入了一个记忆装置,即长度为maxT的禁忌表(Tabu List),表中记录了最近进行的maxT个移动,在当前的迭代步骤中,这些移动是禁止的,这些移动可能是解的本身,也可能是解的属性。然而,可能发生一个感兴趣的移动被禁止,为了执行诸如这样的移动,算法中定义了一个渴望水平函数,这个函数用来在进行一个禁止移动的移动时,估计得益。如果这个得益是可接受的,则这个移动的禁忌状态被去掉,并且这个移动可以被执行。本文采用的禁忌搜索算法如下:

s表示JSP的一个可行解,V(s)表示解s对应的移动集合,Cmax(s)表示解s对应的完工时间,C*表示当前最小的完工时间,T表示禁忌表,maxT表示禁忌表的长度,IterNum表示当前迭代次数,NSP表示领域搜索程序,其中本文采用文献[7]提出的邻域定义方法,maxIterNum表示禁忌搜索的最大步长。设s*为禁忌搜索的初始解,则禁忌搜索的步骤为:

步骤 1 设置最大步长maxIterNum,令IterNum=0,T=ϕ,C*=Cmax(s*),s=s*;

步骤 2IterNum=IterNum+1,找出移动集合V(s),如果V(s)=ϕ,迭代停止,返回新的解s*;

步骤 3 应用NSP,找到移动v′∈V(s),求出新解s′和新的禁忌表T′,令s=s′,T=T′;

步骤 4 如果Cmax(s)<C*,则设置C*=Cmax(s),s*=s;

步骤 5 如果未达到迭代停止准则,转步骤2:否则停止迭代,得到新的解为s*。

其中,TS算法的迭代停止准则是:如果已达到最大迭代次数maxIterStep,或者迭代过程中最优值无改进的最大允许步数达到maxNoneStep,则迭代停止。

需要说明的是,本文中的粒子采用的是基于先后表的编码方案,因此,在进行禁忌调度搜索时需要先将粒子对应的编码转换为一个JSP解。而禁忌搜索的输出解也需要进行编码,从而得到一个新的粒子。

2.2 混合算法

PSO收敛速度快,但是收敛精度低。TS通用性强,易于实现,但采用的是串行搜索,计算时间长,效率低,本文结合JSP的特点,将PSO和TS相结合,在PSO中不同地方嵌入基于关键工序的邻域交换的TS搜索策略,得到了两种混合调度算法,下面分别介绍这两种混合调度算法。

2.2.1 广义粒子群优化算法

在全局版PSO系统中,信息是一种单向流动方式,Pgk将信息传给其它粒子。在Pgk的带动下,整个粒子群向最优解的方向进化,因此Pgk对PSO的优化性能有重大影响。为了提高PSO的优化性能,可在粒子群每次迭代之后对Pgk执行TS搜索算法,增强算法对Pgk的探索能力,从而提高算法的性能。该算法称为广义粒子群算法GPSO(General Particle Swarm Optimization),具体算法流程如下:

(1) 初始化

(Ⅰ) PSO算法。①初始化种群,包括种群数目、每个粒子的位置,评价每个粒子的适应度;②用种群中适应度最好的粒子初始化Pg,用每个粒子的自身位置初始化Pi;③给参数wc1,jc2,j(j=1,2,…,m)赋值,设定最大循环次数MaxGeneration,generation=0。

(Ⅱ) TS算法。分别给最大步长maxIterNum、最优值无改进的最大允许步数maxNoneStep赋值。

(2) 计算

当前代数未达到设定的PSO的MaxGeneration

{

generation++;

②用式(3)产生下一代种群;

③评价新种群;

{找到新的PgPi;更新种群的Pg和每个粒子的Pi;}

④用PSO中的全局最优粒子Pg作为TS的初始解。按上文介绍的TS算法对全局最优粒子Pg进行禁忌搜索;

⑤让通过TS算法优化了的最优粒子作为全局最优粒子Pg

}

(3) 输出优化结果。

2.2.2 粒子群-禁忌搜索交替算法

第二种混合调度算法称为粒子群—禁忌搜索交替算法PTS(PSO and TS in turn)。该算法执行过程是:先随机产生初始粒子群体,再通过式(3)产生一组新粒子个体;然后对每个个体的历史最优解分别执行TS搜索,以其结果作为下一代群体中每个个体的历史最优解,并以其中的最好解作为PSO算法的全局最优解。重复上述过程,开始新一轮的搜索。随着搜索过程的进行,PSO算法的惯性系数逐渐降低,算法逐渐定位在最优解附近的区域并进行精细搜索。具体的算法流程如下:

(1) 初始化

(Ⅰ) PSO算法。①初始化种群,包括种群数目、每个粒子的位置,评价每个粒子的适应度;②用每个粒子的自身位置初始化Pi,用种群中适应度最好的粒子初始化Pg;③给参数wc1,jc2,j(j=1,2,…,m)赋值,设定最大循环次数MaxGeneration,generation=0。

(Ⅱ) TS算法。分别给最大步长maxIterStep、最优值无改进的最大允许步数maxNoneStp赋值。

(2) 计算

当前代数未达到设定的PSO的MaxGeneration

{

①generation++;

②用式(3)产生下一代种群;

③用PSO中的每个粒子的历史最优粒子Pi作为TS的初始解。按上文介绍的TS算法对每个粒子的历史最优粒子Pi进行禁忌搜索;

④评价新种群

{找到新的PgPi;更新种群的Pg和每个粒子的Pi;}

}

(3) 输出优化结果

3 实验分析

3.1 算法比较

算法用C++语言编程实现,本文分别采用三个标准的JSP测试问题(FT10、FT20、LA16)对其进行测试。程序运行环境:CPU为P4,主频为1.60G,内存为1GB。

其中种群大小设置为N=|O|×200%,其中|O|为工序总数,进化代数为|O|×200%。TS的最大迭代次数maxIterStep=40;最优值无改进的最大允许步数maxNoneStep=10。

对于每个测试问题,程序连续运行了20次。

由表1~表3比较可知:

(1) 两种混合调度算法得到的最优值和平均值优于PSO和TS算法,表明混合算法能实现两种算法的优势互补,提高求解质量。

(2) GPSO和PTS得到的平均值相对偏差都比较小,标准差也较小,表明这两种混合算法不但具有较高的求解精度,而且具有较高的鲁棒性。

3.2 混合算法与其它权威文献中的算法比较

将混合算法随机运行20次的最优结果与JSP研究领域的权威文献[8,9,10]比较,如表4所示。表4中的问题是研究JSP问题的常用算例,表中的数据为各算法得到的最小完工时间。经比较可知,混合算法得到的最优值均优于GA,SA和TS。

4 结 论

结合JSP问题的特点,本文提出了基于先后表编码的离散版粒子群优化算法,充分利用粒子群优化算法的大范围、随机搜索和群体协同搜索的能力,同时为了克服粒子群优化算法收敛精度不高的缺陷,通过在PSO中的不同地方嵌入基于关键工序的领域交换的TS搜索,得到了两种PSO和TS的混合算法,提高了粒子群优化算法在求解Job Shop调度问题的算法效能。但是粒子群优化算法和禁忌搜索算法都是启发性算法,将两者混合使用虽然能有效地提高求解质量,但也不可避免地存在着一定的缺陷。例如,有较多的输入参数并不能保证每次运行都能够得到最优解,难以把握两种算法融合的最佳方式和最佳时机等。因此,从理论上进一步分析混合算法的收敛性和收敛速度以及参数对结果的影响非常有必要。

参考文献

[1]Jain.AS,Meeran S.Deterministic job-shop scheduling:past,presentand future[J].European Journal of Operational Research.1999,113(2):390-434.

[2]Cheng R,Gen M,Tsujimura Y.A Tutorial Survey of Job-Shop Shed-uling Problem Using Genetic Algorithms,PartⅡ:Hybrid GeneticSearch Strategies[J].Computes&Industrial Engineering,1999,33(2):343-364.

[3]Pan QK,Tasgetiren MF,Liang YC.ADiscrete Particle SwarmOpti-mization Algorithm for the No-Wait FlowShop Scheduling Problem withMakespan Criterion[C]//Proceedings of the International Workshopon UK Planning and Scheduling Special Interest Group,UK PLANSIG2005,London,2005.

[4]潘全科,王文宏,朱剑英,等.基于粒子群优化和变邻域搜索的混合调度算法[J].计算机继承制造系统,2007,13(2):323-328.

[5]Kennedy J,Eberhart R.Particle swarm optimization[C]//Proceedingsof IEEE International Conference on Neural Networks.1995:1942-1948.

[6]王凌.智能优化算法及其应用[M].北京:清华大学出版社,2001.

[7]童刚,李光泉,刘宝坤.一种用于Job-Shop调度问题的改进禁忌搜索算法[J].系统工程理论与实践,2001,21(9):48-52.

[8]Corce FD,Tadei R,Volta G.Agenetic algorithmfor the Job Shop problem[J].Computers and Operations Research,1995,22(1):15-24.

[9]Laarhoveh P V,Aarts E,Lenstra J K.Job Shop scheduling by simula-ted annealing[J].Operations Research,1992,40(1):113-125.

群搜索优化算法 篇5

基于改进粒子群优化算法的新安江模型参数优选

新安江模型是一种实用有效的水文模型,在洪水预报以及水资源评估和管理中得到了广泛的应用.为此,结合新安江模型参数的`特点,提出了基于改进粒子群优化算法的新安江模型参数优选方法,并将该模型应用到日径流预报中.实例表明,该方法能快速地完成参数寻优,并能较好地寻找出参数的全局最优解.

作 者:刘力 周建中 杨俊杰 刘芳 安学利 Liu Li Zhou JianZhong Yang JunJie Liu Fang An XueLi 作者单位:华中科技大学水电与数字化工程学院,湖北,武汉,430074刊 名:水力发电 ISTIC PKU英文刊名:WATER POWER年,卷(期):200733(7)分类号:O224 TV125关键词:参数优选 新安江模型 粒子群优化算法 径流预测

群搜索优化算法 篇6

摘要:蚁群优化算法作为单目标优化问题,由于只有一个目标函数,通常会将解限制到特定的范围内。当优化的目标不恰当时,算法可能失效,比如分辨率限制问题。我们将多目标优化的思想与传统的用于社区检测的蚁群优化算法相结合,增加了目标函数个数,即增加了解的评价指标数目。该算法引入多目标策略,提出多目标ACO算法,该算法在一次运行过程中会产生一组Pareto最优解。并在三个真实世界网络证明该算法的有效性和准确性。

关键词:复杂网络;社区检测;蚁群优化算法;多目标优化

中图分类号:TP18文献标识码:A

1引言

1991年意大利学者Dorigo M等人首次提出了蚁群优化算法[1,2]引起了学者的广泛关注与研究。蚁群算法是一种基于种群的启发式仿生进化系统,该算法采用了正反馈分布式并行计算机制,易于与其它方法相结合并且具有较强的鲁棒性。

本文介绍了一种基于蚁群优化的多目标社区检测方法,将蚁群优化算法与多目标策略[3]相结合,是一种优化模块度的社区检测方法。对于多目标优化问题,通常无法得到最优解,若同时考虑多个目标函数则算法将会得到一组优于其它解的最优解集。该集合叫做帕雷托(Pareto)解集或者非支配解集。

2基于蚁群优化的多目标社区检测

蚁群优化算法(ACO),是一种基于蚂蚁觅食行为的启发式方法,用来解决困难的组合优化问题,并且已经成功的应用到了各种棘手的问题,像二次分配问题(QAP),车辆路径问题(VRP)等。在1996年,Gambardella等人提出了一种修正的蚁群优化算法——蚁群系统(Ant System,AS),已经成功地应用在旅行商问题上。在这之后,科学家们也发明了一些改进的算法,比如精英蚁群系统(Elitist Ant System,EAS),最大最小蚁群系统(MaxMin Ant System,MMAS)以及排序蚁群系统(RankBased Ant System,ASrank)。

运用蚁群优化来做社区检测,首先需要指出如何表达一个解,其次就是如何构建一个解,然后就是信息素的初始化以及更新。下面我们将详细描述该算法。

2.1编码方式

社区就是复杂网络的子图,因而检测社区结构就等价于找出能揭示网络最好分割的一组子图。因此,社区检测问题的解可以明确地表示为:一个n个元素的向量表示图,其连通分量相当于社区。向量的元素和索引对应于图G=(V,A)中的节点。例如,向量中第i个元素等于j,即节点Vi和Vj之间有边相连,也就是说这两个节点在同一个连通分量里面,即处于同一个社区。

该编码框架的优点有很多,最重要的是不需要预先知道复杂网络的社区划分数目。解码的过程需要找出所有的连通分量。所有属于同一个连通分量的节点被划分到一个社区,解码过程是有必要的且可以通过广度优先搜索(breadthfirst search,BFS)或者深度优先搜索(depthfirst search,DFS)在线性时间内完成。解码完成后,会得到一个表示每个节点归属的向量。这种基于基因近邻的编码框架已经应用到了多目标聚类领域。该框架在社区检测的应用中有几个主要的优点,最重要的是,不需要预先知道社区的真实划分数目K,因为在解码过程中能够自动地得到K的取值。

3.1真实世界网络

本节将MOACO算法应用在三个真实世界网络上,分别是Zacharys Karate Club、Bottlenose Dolphins、Books about US politics。以上复杂网络是社会网络分析领域中的经典数据集,将这些数据在并与没有加入多目标策略的ACO算法以及GA、GAloacal算法进行了对比。由表2可以看出,三十次独立运行后,在Zacharys Karate Club网络中,ACO和MOACO的平均模块度值均不如GA和GA-local算法的结果好,而MOACO和ACO的平均模块度相差不大;在Dolphin social network网络中,本文提出的MOACO算法的平均NMI值明显好于其它算法。在Dolphin social network网络中,MOACO算法的模块度Q平均值与ACO算法的结果相差不大,而NMI的平均值要好于ACO算法。

为了验证蚁群规模和迭代次数对算法的影响,以Zacharys Karate Club网络为例进行参数分析,参数α、β、T、ρ、ε的值不变化,算法独立运行三十次求平均模块度值Q和平均NMI值,讨论蚁群规模N对算法结果的影响。

由表3可以看出,随着蚁群规模的增加,平均模块度值呈增长趋势,在蚁群规模为80时,达到了最大值。而由于蚁群优化算法中蚂蚁个体选择路径是随机的,因而平均NMI值没有呈现一定的规律,而当蚁群规模为40时,平均NMI值取得最大值。

表4表示参数α、β、N、ρ、ε保持不变,讨论迭代次数T对算法结果的影响,算法独立运行三十次的算法结果如表4所示。

由表4可知,迭代次数对算法的平均模块度值影响不大,而当迭代次数为150次的时候,平均NMI值取得了最大值。

图2表示调节参数过程中,算法取得的最优结果,即每一次运行的模块度值和NMI值,data1表示平均模块度值,data2表示平均NMI值。最优参数为:迭代次数150次,种群规模40。可以看出模块度值非常稳定。

3.2计算机仿真网络

本节使用经典的GN benchmark复杂网络来检测算法的可行性和有效性。GN基准网络是由Newman等提出。对于该基准网络,每个图包含了128个节点,分为4个由32个节点构成的社区。每个节点平均有Zin条边与同社区内节点连接,Zout条边与社区外节点连接。其中Zin+Zout = 16,作为每个节点的期望的度。随着Zout的增大,所产生的随机网络给社区检测算法带来了更大的挑战。特别是当Zout大于8时,意味着每个节点在社区内的边都要小于社区外的边,这时网络的社区结构就会非常模糊。当Zout≤ 8时,节点外度所占的比例小于内度所占的比例,因此算法应该能检测出网络中存在的社区结构,当Zout = 0时,表明节点的外度为0,此时节点仅与自身社区内的节点相连接,社区结构非常明显。分别对Zout从0到2进行了测试,对每种类型的网络产生一个复杂网络,使用NMI来衡量算法检测的结果和真实网络划分之间的相似性。对于每个网络,计算三十次独立运行的平均值。

由表5可以看出,当GN网络的外度为0时,该算法可以准确地检测出网络划分情况;当GN网络的外度为1和2的时候,该算法得到的结果也还都是有效的。

但是,在蚁群优化方法中,其算法复杂度比较高,所需要的搜索时间很长,而且容易出现所有的蚂蚁所对应的解完全相同这种“停滞现象”。导致了当复杂网络的社区数目较大时,算法不能产生有效解。另外,该算法对计算机生成的仿真网络不能得到有效的结果,这是我们进一步研究的内容。

4小结

基于传统的蚁群优化算法(ACO)算法的缺陷,提出了一种用于复杂网络社区检测的多目标蚁群优化算法MOACO,该算法将继续沿用传统的基于模块度优化的策略,加入了多目标的思想,每次迭代过程中,根据两个目标函数的不同折中,最终得到Pareto解集,选取每一代中优先级最高的那一组解。在三个真实世界网络和GN网络中的外度较小的网络上证明了算法的有效性,并将提出算法与ACO算法进行了比较,NMI平均值要优于ACO算法,模块度Q的平均值与ACO算法相当。缺点是不能处理社区划分类别多的复杂网络,对于结构模糊的GN网络,算法的效果不明显。

参考文献

[1]HONGHAO C, ZUREN F, ZHIGANG R. Community detection using ant colony optimization [C] Evolutionary Computation (CEC), 2013 IEEE Congress on. IEEE, 2013: 3072-3078.

[2]DORIGO M,BIRATTARI M,STUTZLE T. Ant colony optimization[J]. Computational Intelligence Magazine, IEEE, 2006, 1(4): 28-39.

[3]SOLNON C, Ghédira K. Ant colony optimization for multi-objective optimization problems[J]. Internation Journal on computer science, 2010.

[4]GONG M, CAI Q,CHEN X, et al. Complex network clustering by multiobjective discrete particle swarm optimization based on decomposition[J]. Evolutionary Computation, IEEE Transactions on, 2014, 18(1): 82-97.

群搜索优化算法 篇7

无功优化是一个复杂、多目标、非线性的混合规划问题[1,2]。目前, 无功优化的目标函数主要有2类:多个子目标线性加权组合为单一目标, 从而转化为单目标优化问题, 该方法的优点是便于计算, 缺点是难以确定各目标函数的权重;应用多目标优化算法求取无功优化的Pareto前沿, 该方法的优点是能提供丰富的Pareto最优解集, 缺点是难以对大量的Pareto最优解进行取舍, 不利于生产决策, 而且目前多目标优化的算法多为对单一算法的局部改进, 不能从根本上解决单一算法的缺点[3,4]。文献[5]提出采用超效率包络分析法对Pareto最优解进行评估, 但在评估相对效率时, 仍需要人为地设定参考比例。文献[6-7]采用多目标模糊优化原理将多目标优化问题转化为单目标优化问题, 这种方法摆脱了惩罚函数的限制和后期决策难题。

传统的优化算法通常不能处理离散变量[8], 要求各控制变量连续、目标函数可微, 且容易产生“维数灾”, 因此人工智能算法被大量应用到无功优化中。其中, 粒子群优化PSO (Particle Swarm Optimization) 算法是美国Kennedy和Eberhart博士于1995年提出的一种生物进化算法[9], 该算法的优点在于并行计算、易于实现、收敛速度快等, 缺点在于存在初值敏感性、易陷入局部极值点、搜索精度不高等[10,11]。禁忌搜索TS (Tabu Search) 算法是一种高效启发式优化技术, 能以较大的概率跳出局部极值点, 缺点是初始解敏感性强, 如果初始解不理想, 该算法很难跳出局部最优解, 甚至无法收敛可行解[12,13]。因此, 可将2种算法结合起来, 优势互补, 但结合点在哪里, 目前尚无合理的判断方法[14], 显然过早进入TS算法不利于TS的爬坡能力, 过晚进入TS算法则不利于提高计算速度、节省计算时间。

本文针对有功网损、电压偏差和静态电压稳定裕度的多目标无功优化问题, 提出一种基于改进粒子群-禁忌搜索算法的多目标电力系统无功优化方法。以最小特征值模为电压稳定裕度指标构造了3个目标函数的单一妥协模型。应用Kent映射产生的混沌序列作为初始种群, 保证初始种群的多样性和均匀性。PSO算法进行前期计算时, 采用凸函数递减惯性权重和自适应学习因子提高算法的收敛速度和精度。针对PSO算法搜索精度不高和陷入局部最优的问题, 在PSO算法后期收敛后引入TS算法进行全局寻优。提出了一种基于群体适应度方差的PSO算法后期收敛指标, 当其值为0时算法自动进入TS计算阶段, 解决2种算法的结合点问题。最后, 将本文方法应用于IEEE 14、IEEE 30和IEEE 118节点系统中, 验证其有效性和可行性。

1 多目标无功优化模型

1.1 目标函数

本文以系统有功网损最小为经济性指标, 电压平均偏差最小和电压安全稳定裕度最大为技术性指标。

a.系统网损:

其中, L为系统总支路数;gk为支路k电导;Ui、Uj、θij分别为支路k两端节点i、j的电压幅值及其相角差。

b.电压平均偏差:

其中, NL为系统负荷节点总数;Ui为节点i实际电压;Ui*为节点i额定电压;Uimax、Uimin分别为节点i的最大、最小允许偏差。

c.静态电压稳定裕度。

静态电压稳定裕度是指系统当前运行点到电压崩溃点间的距离。目前用于无功优化的静态电压稳定裕度指标有基于广义Tellegen定理的静态电压稳定裕度指标[6,7]、最小特征值模指标[5,15,16,17]和负荷裕度指标等。负荷裕度指标因计算量大、增长模式难以确定而不经常采用[5], 最小特征值模指标由潮流雅可比矩阵直接求得, 不需要额外计算, 易于求取, 因而被广泛使用。

当电力系统由正常工作点向稳定极限过渡时, 雅可比矩阵最小特征值模单调地趋向于零, 如果潮流雅可比矩阵最小特征值模等于零, 表明该工作点是电压崩溃临界点, 因此本文静态电压稳定裕度目标函数为:

其中, J为雅可比矩阵;eig (·) 表示取特征根运算。

1.2 约束条件

a.等式约束条件, 即为潮流方程:

其中, Pi G、Pi L分别为节点i的发电机有功出力和有功负荷;Qi G、Qi L分别为节点i的发电机无功出力和无功负荷;Qi C为节点i的无功补偿容量;Gij、Bij分别为节点导纳阵中节点i和节点j之间的电导和电纳。

b.不等式约束:

其中, T为变压器变比;QC为无功补偿容量;QG为发电机无功出力;U为节点电压。

1.3 单一妥协模型

多个目标函数之间有时存在矛盾和制约, 即一个目标的优化可能降低另一个目标的性能, 很难使各个目标同时达到最优。如果采用加权法, 罚因子太大会使罚函数项淹没其他目标函数, 罚因子太小又会使罚函数项在目标函数中所占的分量过轻, 不利于搜索可行解。如果直接求取Pareto最优前沿, 又存在后期决策困难。因此本文引入模糊集理论, 对有功网损和静态电压稳定奇异值指标进行尺度变换, 建立单一妥协模型如下:

其中, μi (fj) (i=1, 2;j=1, 2, 3) 为各指标的隶属度值。

系统网损和电压平均偏差指标为极小值性目标函数, 对μ1 (fj) 构造隶属度函数[4,5]:

其中, fjmax、fjmin分别为目标函数fj的最大、最小值。

需要说明的是, 本文以最小特征值模为静态电压稳定裕度指标, 是极大值型目标函数, 故应对μ2 (fj) 应构造隶属度函数:

由式 (6) 可知, 模型目标是使隶属度值最大的指标最小, 对隶属度函数值较大的目标函数进行优化, 优化结果x*即为多目标问题的有效解[18]。

2 改进粒子群-禁忌搜索算法

2.1 初始种群的产生

PSO算法是一种群体优化算法, 随机产生的初始群体可能导致初始种群在解空间分布不均, 较大的“趋同性”使粒子群不能全面地搜索解空间, 故初始解空间分布越均匀多样, 搜索效果越好。混沌运动能在一定范围内按其自身“规律”不重复地遍历所有状态, 常被用来改进PSO算法[19]。Kent混沌方程为[20]:

其中, ζ为常数;z为混沌序列。

相比典型Logistic混沌系统[20], Kent混沌系统在[0, 1]上的分布更均匀。Kent混沌系统和典型Logistic混沌系统的概率分布如图1所示, 因此, 本文采用Kent映射产生的混沌序列作为初始种群。

设某个控制变量的取值范围为[xmin, xmax], 序列公式为:

其中, xid0为某控制变量的初始值;z (i) 为由式 (9) 产生的序列数。

2.2 PSO算法

PSO算法是一种群体智能的优化算法, 根据自身以及群体的飞行经历进行寻优, 寻优公式为:

其中, i=1, 2, …, n (n为种群数) ;d=1, 2, …, m (m为粒子数) ;k为迭代次数;c1、c2为学习因子, 通常取2, 用于平衡粒子个体和群体的认知能力;r1、r2为[0, 1]之间的随机数;pkid为粒子i在第k次迭代中第d维的最优位置, 称为个体最优位置;gdk为粒子群在第k次迭代中第d维的最优位置, 称为全局最优位置;w为惯性权重, 反映了粒子保持原有运动趋势的能力, 较小的w具有较好的局部搜索能力, 可提高求解精度, 增大w有利于增强对新区域的搜索能力。

惯性权重w一般按式 (13) 进行线性自适应调整。

其中, wmax、wmin分别为惯性权重的最大、最小值, 通常分别取为0.9、0.4;iter为当前迭代次数;itermax为最大迭代次数。

文献[21]在研究了线性递减、随机、凹函数递减和凸函数递减4种惯性权重取值方法之后, 证明凸函数递减惯性权重法在多峰函数寻优中收敛速度最快、精度最高。因此本文惯性权重w取为:

c1体现了粒子对自身的学习能力, c2体现粒子对群体的学习能力, c1递减和c2递增有利于算法初期粒子的自我探索能力和算法后期群体认知能力。因此本文c1、c2取值如下:

其中, c1f、c1i、c2f、c2i为常数, 按经验取值为c1f=1.5、c1i=0.7、c2f=2.5、c2i=0.5。

PSO算法寻优过程中, 粒子通过追踪个体最优位置pkid和全局最优位置gdk来更新自己。如果某次迭代中发现一个最优位置, 根据式 (11) — (16) , 所有粒子将迅速向其靠拢, 即粒子群迅速“趋同”, 无法在解空间内重新搜索。

2.3 PSO算法后期收敛指标

粒子群“趋同”之后无法重新搜索解空间, 容易陷入局部最优, 因此算法后期引入TS算法。TS算法有很高的初值要求, 故应以PSO算法的后期收敛解作为TS的初始解。如果仅以PSO算法迭代过程中全局最优位置gdk是否进化为PSO算法后期收敛的判断依据[14,19], 由式 (11) 知gdk不变时所有粒子向gdk靠拢, 个体最优位置pkid在迭代过程中有可能被更新, pkid更新过程中, 如果发现比gdk更优的位置, gdk将被替代, 因此仅以gdk是否进化来判断种群是否进入后期收敛状态是不完善的。

文献[22]提出用PSO算法群体适应度方差σ2来反映全部粒子的收敛程度, 因收敛程度具有模糊性, 因此本文引入模糊截集概念, 将模糊集合转化为经典集合, 并定义经典集合下的收敛指标δLCIkd。

设A∈F (UM) , F表示模糊集, UM表示模糊集的论域, 则A的λ截集可表示为。对于反映PSO群体收敛程度的适应度方差σ2, 它的隶属度函数可表示为:

其中, fi为第i个粒子的当前适应度;E (f) 为当前粒子群群体适应度期望;f*为定标因子。

置信水平λ为常数, 取为0.01, PSO算法收敛程度的λ截集可表示为:

PSO群体收敛程度的Aλ是一个经典集合。如果f∈Aλ, 则某次迭代的产生PSO群体在λ水平上尚未进入后期收敛状态, 仍有优化的裕度。

将Aλ用模糊向量法表示:

Aλ是一个{0, 1}集合。随着迭代次数k的增加, 集合中的0元素逐渐增多。本文将后期收敛指标δLCIkd定义为:

其中, ∨表示取上确界;kd为常数。

若δLCIkd=1, 说明PSO算法整体方差在λ水平上尚未进入后期收敛状态;若δLCIkd=0, 则判定PSO算法整体停止进化, 无法找到更优解, 应引入其他方法进行改良。本文选择获得优良解概率较大的TS算法。

2.4 TS算法

TS算法包含禁忌对象、禁忌长度、邻域函数、候选解、藐视准则等基本参数。算法步骤如下。

a.当δLCIkd指标检测到PSO算法进入后期收敛状态时, 说明PSO算法已经无法给出更优的解, 把此时PSO算法的最优解作为TS初始解, 并将TS的禁忌表置为空, 进入TS优化阶段。

b.利用TS当前解产生邻域解, 本文中保持当前解其他元素不变, 仅改变某个控制变量的档位或数值, 所有元素逐次调整一遍, 得到一个候选解集合。

c.逐个判断候选解集合中的候选解是否满足藐视准则, 藐视准则基于适应度的大小。若候选解满足藐视准则, 则用满足藐视准则的候选解集中的最优解代替当前解, 并替换最早进入禁忌表的禁忌对象, 禁忌表中各对象任期减一, 然后转步骤e;否则, 转步骤d。禁忌长度设置为0.6l (l为候选解个数) 。

d.逐个判断候选解集中候选解的禁忌属性, 候选解集中最优非禁忌候选解成为新的当前解, 同时替换最早进入禁忌表的禁忌对象, 禁忌表中各对象任期减1。

e.判断是否满足终止条件。若满足, 则结束算法并输出优化结果;否则, 转步骤b。

由步骤c、d可知, TS的新解不是在当前解的邻域中随机产生, 而是非禁忌候选解的最优解;由步骤d可知, TS算法搜索过程中可以接受劣解, 相比于一直进化的PSO算法, TS算法不仅可以进化还可以“退化”。因此, 获得优良解的概率较大。

3 混合算法在多目标无功优化中的应用

以发电机机端电压、有载调压变压器分接头位置及静止无功补偿电容器投入的步长为控制变量进行求解。实际运行中, 发电机机端电压可以在额定范围内连续变化, 故采用连续十进制实数编码, 变压器分接头调节档位和电容器投入容量按整数变化, 故采用离散变量十进制实数编码。那么PSO算法中的某个粒子, 或TS中的某个解表示为:

其中, UGi (i=1, …, ng) 为发电机节点电压;Tki (i=1, …, nT) 为有载调压变压器分接头;QCi (i=1, …, nc) 为静止无功补偿电容器投入的容量。

混合算法在无功优化中的求解流程如图2所示。

a.系统初始化。读入系统的网络参数, 利用式 (10) 产生初始种群。

b.PSO算法阶段。潮流计算, 利用式 (1) — (3) 求各目标函数, 由式 (7) 、 (8) 计算各目标函数的隶属度, 确定个体最优位置和全局最优位置。

c.由式 (17) — (21) 计算δLCIkd, 判断PSO算法是否停止进化。若δLCIkd=1, 则按式 (11) 、 (12) 、 (14) — (16) 更新粒子群的速度和位置, 再转入步骤b;若δLCIkd=0, 则PSO算法进入后期收敛状态, 转入步骤d。

d.TS阶段。详见第2.4节内容。

4 算例分析

分别以IEEE14、IEEE30和IEEE 118节点系统为例来验证本文算法的有效性和可行性。IEEE 14、IEEE 30节点系统的终止条件为迭代100次, IEEE118节点系统的终止条件为迭代200次。除平衡节点外, 电源节点都作为PV节点处理, 负荷节点都作为PQ节点处理。变压器变比上限为1.1, 下限为0.9, 调节范围为1.0±0.012 5×8, 编码范围为 (-8, 8) , 共有17档;无功补偿为-0.12~0.36p.u., 调节步长为0.04 p.u., 编码范围为 (-3, 9) , 负号表示投入为电抗器。

4.1 IEEE 14节点算例

运用本文方法及标准PSO算法对该系统进行无功优化, 为减少随机性对算法的影响, 分别运行50次, 结果取平均值, 与文献[17]获得的Pareto最优前沿折中解相比较, 结果见表1, 表中有功网损、电压偏差、电压稳定裕度为标幺值, 后同。可以看出, 与优化前相比, 优化后多种方法所得网损和电压稳定裕度都有所降低, 这是因为该系统网损和电压稳定裕度之间存在矛盾, 互相制约。文献[17]选出的折中解极大地改善了系统网损, 对电压稳定裕度的考虑较少, 所以系统电压稳定风险大。而标准PSO算法较早地收敛于局部解, 无法获得全局最优解。本文算法使有功网损从0.1365p.u.降至0.1207p.u., 降低了11.58%, 网损指标得到很大改善, 同时电压稳定裕度降低了0.95%, 比文献[17]和标准PSO算法付出的稳定代价小。

4.2 IEEE 30节点算例

运用本文方法、标准PSO算法和TS算法对该系统进行无功优化, 仿真结果如图3、4所示。由图知, 标准PSO算法前期寻优能力较强, 后期因粒子群迅速“趋同”而陷入局部最优;TS算法因初始解不够理想, 未能有效发挥其“爬山”能力, 结果不甚理想;本文算法用TS算法对PSO算法的解进一步优化, 所得结果优于单纯的PSO算法和TS算法。

本文算法与标准PSO算法、TS算法、文献[17]获得的Pareto最优前沿折中解相比较, 结果见表2。

由表2得出以下结论。

a.采用本文方法后, 有功网损得到较大改善, 电压偏差减小, 电压稳定裕度也得到了提高。

b.在计算速度方面, 本文方法逊于文献[17]和标准PSO算法, 优于TS算法。这是因为TS算法建立了外部存储单元———候选解集和禁忌表, 每次迭代都要逐项提取候选解比较其与藐视准则的关系, 若不满足藐视准则还要继续提取禁忌表内容进行禁忌属性对比。同时, TS算法在迭代过程中要对2个外部存储单元进行维护更新, 这大幅增加了计算时间, 降低了计算速度。标准PSO算法仅保留全局最优位置和局部最优位置, 每次迭代时直接利用, 节约了大量存储和比较时间, 因而计算速度较快。本文算法前期采用标准PSO算法, 后期采用TS算法, 因此计算速度快于TS算法, 慢于标准PSO算法。

c.文献[17]虽然计算速度快, 但结果为Pareto解集, 若用于指导实际生产, 仍需后续数据处理, 最优折中解的选取有其不确定性。本文算法计算时间虽长, 但后续数据处理时间为0, 因此有较大优势。

置信水平λ影响了迭代次数在PSO算法和TS算法之间的分配, 本文算法中置信水平λ取0.01和0.2时的优化结果对比如表3所示。

相同迭代次数下, λ越大, PSO算法的计算次数越少, TS算法的计算次数越多。λ过大时, PSO算法不能为TS算法提供较好的初始解, 影响算法整体寻优结果, 而且TS算法需建立2个外部存储单元, 计算速度慢。反之, λ越小, PSO算法的计算次数越多, TS算法的计算次数越少。所以, 在迭代次数足够多的情况下, λ取较小值为宜。

4.3 IEEE 118节点算例

用本文方法与其他3种优化算法分别优化IEEE 118节点系统, 结果见表4。

由表4得出以下结论。

a.相比其他3种优化算法, 本文方法在各个目标方向都取得了较好的结果, 优化后网损为1.147 p.u., 降损率为15.16%, 电压偏差降低为0.062 p.u., 同时电压稳定裕度得到提高。

b.在计算速度方面, 本文方法后期采用了TS算法, 建立了外部存储单元, 因此相同迭代次数下, 计算时间比标准PSO算法长, 计算速度慢。但本文方法能合理减少TS算法的计算次数, 计算时间比TS算法短。

c.随着系统控制变量的增多, TS算法外部存储单元存储量激增, 给存储单元的维护与更新带来较大困难, 同时完成一次迭代所需要的调用和对比时间也大幅增加。而且由于初值限制, TS算法难以获得比本文方法更优的解。

d.与文献[17]相比, 本文方法在计算阶段的耗时较长, 但其最优折中解的选择过程内嵌于目标函数中, 省却了后续数据处理时间。

λ取不同值时的优化结果如表5所示。

由表5知, λ取较大值时, 粒子群收敛程度较低, 本文前期优化结果不理想, 后期TS算法受初值影响, 难以获得较优解。在迭代次数有限且足够多的情况下, λ的增大造成TS算法计算次数增多, 不利于计算速度。

5 结论

本文综合考虑考虑系统网损、电压偏差以及电压稳定裕度3个目标, 建立了以最小特征值模为电压稳定指标的单一妥协模型。算法采用Kent映射产生初始种群, 使初始种群更加均匀多样, 采用凸函数递减惯性权重和自适应学习因子改进PSO算法, 以PSO算法的后期收敛解作为TS初始解进行全局寻优, 提出了一种基于PSO群体适应度方差的后期收敛指标, 当其值为0时进入TS算法阶段, 解决了2种算法的结合点问题。

本文方法是PSO算法和TS算法的合理结合, 能在各个目标方向取得较好的优化结果。相同迭代次数下, 本文方法计算速度比PSO算法慢, 比TS算法快。后期收敛指标的置信水平影响了迭代次数在PSO算法和TS算法之间的分配, 在迭代次数有限且足够多的情况下, 置信水平取较小值为宜。置信水平的取值可作为优化问题进一步研究, 例如通过优化置信水平得到合理的迭代次数, 减少计算时间, 加快计算速度。

摘要:针对有功网损、电压偏差和静态电压稳定裕度的多目标无功优化问题, 提出一种基于改进粒子群-禁忌搜索算法的多目标电力系统无功优化方法。以最小特征值模为电压稳定裕度指标建立了3个目标函数的单一妥协模型。应用Kent映射产生的混沌序列作为初始种群, 保证初始种群的多样性和均匀性。粒子群优化 (PSO) 算法进行前期计算时, 采用凸函数递减惯性权重和自适应学习因子提高算法的收敛速度和精度;针对PSO算法搜索精度不高和陷入局部最优的问题, 在PSO算法后期收敛后引入禁忌搜索算法全局寻优。基于群体适应度方差, 引入模糊截集理论将模糊集合转化为经典集合, 定义了经典集合下的收敛指标, 当其值为0时进入禁忌搜索计算阶段, 解决2种算法的切换问题。将所提方法应用于IEEE14、IEEE30和IEEE118节点系统中, 验证了其有效性和可行性。

改进的蚁群禁忌搜索混合算法 篇8

蚁群算法 (antcolonyalgorithm, 简称ACA) 是由意大利学者ColorniA和DorigoM.等人于1992年首先提出来[1], 它具有很强的并行性, 是一种结合了分布式计算、正反馈机制和贪婪式搜索的算法, 所以具有很强的搜索较优解的能力。但是它也存在一些不足之处:例如, 算法需要较长的搜索时间、容易出现早熟停滞现象等。从而不能对解空间进一步搜索, 不利于发现更好的解。为了更优地解决旅行商问题, 改进单纯用蚁群算法求解旅行商问题的结果, 本文根据蚁群算法、免疫算法和禁忌搜索算法自身的特点, 分别对三者的优势和不足进行了分析, 提出一种将三者混合使用来求解旅行商问题的新型算法。该算法针对蚁群算法中的个体蚂蚁缺乏识别问题特征信息的能力, 将问题的特征信息作为疫苗注射给蚂蚁, 使蚂蚁具有“免疫”的能力, 然后将改进的蚁群算法作全局搜索, 用禁忌搜索算法作局部搜索。这样有效的结合了它们各自的优势, 很有效地改善了解的质量。

1 基本蚁群算法、免疫算法和禁忌搜索算法

1.1 基本蚁群算法

蚂蚁个体之间是通过一种称之为外激素的物质进行信息传递, 从而能相互协作, 完成复杂的任务。下面简单介绍其基本算法。

我们以求解平面上n个城市的TSP问题 (1, 2, …, n表示城市序号) 为例说明ACA的模型。n个城市的TSP问题就是寻找通过n个城市各一次且最后回到出发点的最短路径。

为模拟实际蚂蚁的行为, 首先引入如下记号:设m是蚁群中蚂蚁的数量。dij (i, j=1, 2, …, n) 表示城市i和j之间的距离, τij (t) 表示在t时刻城市i和j之间的路径上残留的信息量。来模拟实际蚂蚁的信息素浓度。

在初始化的时候, m个蚂蚁被放置在不同的城市上, 赋予每条边上的信息量为τij (0) 。每个蚂蚁k的tabuk的第一个元素赋值为它所在的城市。

用pkij (t) 表示在t时刻蚂蚁k由城市i转移到城市j的概率, 则

式 (1) 中allowedk表示蚂蚁k下一步允许走过的城市的集合, 它随蚂蚁k的行进过程而动态改变;信息量τij (t) 随时间的推移会逐步衰减, 用1—ρ表示它的衰减程度;α, β分别表示蚂蚁在运动过程中所积累的信息量及启发式因子在蚂蚁选择路径中所起的不同作用;ηij (t) 为由城市i转移到城市j的期望程度, 可根据某种启发算法而定。

经过n个时刻, 蚂蚁k走完所有的城市, 完成一次循环。此时, 要根据式 (2) 对各路径上的信息量作更新:

式 (2) 中:

Δiτjk表示蚂蚁k在本次循环中在城市i和城市j之间留下的信息量, 其计算方法根据计算模型而定, 在最常用的antcyclesystem模型中:

式 (4) 中Q为常数, Lk为蚂蚁k在本次循环中所走路径的长度[2]。

1.2 基本免疫算法

免疫算法是近几年才提出的一种随机优化方法, 它模拟生物免疫系统。用亲和力来描述抗体与抗原之间的匹配程度, 用排斥力来描述两个抗体之间的相似程度, 依据抗体与抗原之间的亲和力以及抗体与抗体之间的排斥力来选择抗体。免疫算法将抗原和抗体分别对应于优化问题的目标函数和可行解。把抗体和抗原的亲和力视为可行解与目标函数的匹配程度;用抗体之间的亲和力保证可行解的多样性, 通过计算抗体期望生存力来促进较优抗体的遗传和变异, 用记忆细胞单元保存择优后的可行解来抑制相似可行解的继续产生并加速搜索到全局最优解, 同时, 当相似问题再次出现时, 能较快产生适应该问题的较优解甚至最优解。

免疫算法在保留进化算法优良特征的前提下, 力图有选择、有目的利用待求问题中的特征信息和知识来抑制进化过程中出现的退化现象, 以提高算法的效率。免疫算法的核心在于免疫算子的构造, 而免疫算子则是通过接种疫苗和免疫选择两个步骤来完成。在实际的操作过程中, 首先, 对所求解的问题 (即抗原) 进行具体分析, 从中提取出最基本的特征信息 (即疫苗) ;其次, 对此特征信息进行处理, 以将其转化为求解问题的一种方案 (即抗体) ;最后, 将此方案以适当的形式转化为免疫算子以实施具体的操作。

1.3 禁忌搜索算法

禁忌搜索算法 (tabusearch, 简称TS) 的思想最早有Glover (1986) 提出, 它是对局部领域搜索的一种扩展, 是一种全局逐步寻优算法, 是对人类智力过程的一种模拟。TS算法通过引入一个灵活的存储结构和相应的禁忌准则来避免迂回搜索, 并通过藐视准则来赦免一些被禁忌的优良状态, 进而保证多样化的有效探索以最终实现全局优化。

简单TS算法的基本思想是:给定一个当前解 (初始解) 和一种领域, 然后在当前解的领域中确定若干候选解;若最佳候选解对应的目标值优于“best sofar”状态, 则忽视其禁忌特征, 用其代替当前解和“bestsofar”状态, 并将相应的对象加入禁忌表, 同时修改禁忌表中个对象的任期;若不存在上述候选解, 则选择在候选解中选择非禁忌的最佳状态为新的当前解, 而无视它与当前解的优劣, 同时将相应的对象加入禁忌表, 并修改禁忌表中各对象的任期;如此重复上述迭代搜索过程, 直至满足停止准则[3]。

2 蚁群算法、免疫算法和禁忌搜索算法的混合

2.1 混合的基本思想

免疫算法是近几年才提出的一种随机优化方法, 它模拟生物免疫系统, 通过模拟免疫系统的学习、记忆等功能来进行模式识别和寻优搜索。将免疫算法中的疫苗思想与蚁群算法相结合, 将TSP问题的一个特性就是“其最优解是一个不含交叉路线的闭合回路”[4]看作疫苗提取出来。当蚂蚁构造完解后, 通过接种该疫苗来修正非优解, 从而提高解的质量。但是融合后的新算法在求解后期并不能很好地跳出局部最优。这是由于在此次相关的TSP问题中, 采用的是消除交叉路径的疫苗所导致。该疫苗并不具备帮助蚂蚁跳出局部最优的能力。若想提高新算法后期跳出局部最优的能力, 需要引入局部搜索这一操作。禁忌搜索 (tabu search, 简称TS) 算法是由Glover于1986年提出的, 它是一种全局逐步寻优的搜索算法, 是模拟一种智力过程。TS算法由于具有灵活的记忆功能和藐视准则, 并且在搜索过程中可以接受劣解, 所以具有较强的“爬山”能力, 这样搜索时能够跳出局部最优解, 转向解空间的其他区域进行, 从而获得更好的全局最优解的概率增加, 所以TS算法比较适合于作局部搜索, 但TS也有不足, 一是对初始解有较强的依赖性, 好的初始解可使TS在解空间中搜索到好的解, 而较差的初始解则会降低TS的收敛速度;二是迭代搜索过程是把一个解移动到另一个解, 从而降低了得到全局最优解的概率[5]。由于这三种算法与问题无关, 通用性与优化性能较好, 能处理大规模问题, 为复杂问题的优化提供了新的途径。本文首先将免疫疫苗注射给蚁群算法以使群体中的个体分布在解空间的大部分区域, 得到好的初始解[6], 再从群体中每个个体开始用TS算法进行局部搜索, 改善群体的质量。

2.2 混合算法的基本步骤

解TSP问题的混合的算法如下:

步骤1:初始化信息素分布等参数;

步骤2:根据先验知识提取疫苗;

步骤3:将蚂蚁随机地置于任一结点上;

步骤4:每只蚂蚁通过重复地应用状态转移规则 (伪随机概率转移规则) 建立一个路径, 并且在建立路径的过程中, 蚂蚁每走一步, 均应用局部信息素更新规则对刚走过的路径进行信息素量的修改, 直至所有蚂蚁均完成解路径的构造;

步骤5:记录本次迭代产生的最优解;

步骤6:对当代的最优解路径接种疫苗;

步骤7:应用全局信息素更新规则;

步骤8:判断是否满足算法的终止条件, 如满足则算法停止;否则, 转步骤3。

步骤9:输出目前最好解。

步骤10:给定算法参数, 将蚁群算法全局搜索出的最好解作为初始解x, 置禁忌表为空。

步骤11:判断算法终止条件是否满足?若是, 则结束算法并输出最优解;否则, 继续以下步骤。

步骤12:利用当前解的邻域函数产生其所有 (或若干) 邻域解, 并从中确定若干候选解。

步骤13:对候选解判断藐视准则是否满足?若成立, 则用满足藐视准则的最佳状态y替代x成为新的当前解, 即x=y, 并用与y对应的禁忌对象替换最早进入禁忌表的禁忌对象, 同时用y替换“best sofar”状态, 然后转步骤 (15) ;否则, 继续以下步骤。

步骤14:判断候选解对应的各对象的禁忌属性, 选择候选解集中非禁忌对象对应的最佳状态为新的当前解, 同时用与之对应的禁忌对象替换最早进入禁忌表的禁忌对象元素。

步骤15:转步骤 (11) 。

2.3混合算法的算法测试

为了检验算法的有效性, 本文选用Oliver30城市坐标数据 (最优解为423.740 6) 作为实验例子来研究。混合算法参数:α=1.5, m=30, β=2, ρ=0.9, 迭代次数为50次, 混合算法测试20次, 测试结果如表1所示。图1是在一次测试中单一蚁群算法解, 图2是在同次测试中接种疫苗后蚁群算法解, 图3是测试中接种疫苗后的蚁群算法与禁忌搜索算法再次混合后的解, 总路程为423.740 6。在这20次测试中, 新混合算法共有14次获得最优解, 获最优解的概率为70%。从图表中我们可以明显看出三种算法混合的解要优于单一的蚁群算法的解, 优于蚁群算法与其他两种算法单独混合的解。

3 结论

利用蚁群算法、免疫算法和禁忌搜索算法的特性, 提出的混合算法显著提高了寻优能力, 具有较大的实用价值和推广价值。这也证实了蚁群算法与其它算法 (先进技术) 的结合有助于改善其自身或相应技术方法的性能, 今后还可以尝试与其它算法 (先进技术) 的混合, 如、神经网络、模糊逻辑和支持向量机等。

摘要:蚁群算法作为一种全局搜索的方法, 具有正反馈性、并行性、分布性、自组织性等特点, 在求解复杂组合优化问题上具有强大的优势。但是, 蚁群算法也存在一些不足之处:例如, 算法需要较长的搜索时间、容易出现早熟停滞现象。为了更优地解决旅行商问题, 改进单纯用蚁群算法求解旅行商问题的结果, 通过蚁群算法、免疫算法和禁忌搜索算法自身的特点, 分别对三者的优势和不足进行分析, 提出一种将三者混合使用的求解旅行商问题的算法。

关键词:蚁群算法,免疫算法,禁忌搜索算法,旅行商问题

参考文献

[1]Colorni A, Dorigo M, Maniezzo V.An investigation of some proper-ties of an ant algorithm.Proc of the Parallel ProblemSolving fromNa-ture Conference (PPSN92) .Brussels, Belgium:Elsevier Publish-ing, 1992;509—520

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

[3]王凌.智能优化算法及其应用.北京:清华大学出版社, 2001

[4]顾军华, 谭庆, 李娜娜, 等.一种新的求解TSP问题智能蚁群优化算法.计算机工程与应用, 2007;43 (25) :69—71

[5]江新姿, 汤可宗, 高尚.蚁群算法与免疫算法的混合算法.科学技术与工程, 2008;8 (5) :1327—1329

群搜索优化算法 篇9

粒子群优化算法(PSO)的基本思想受启发于鸟群的觅食过程[1],它具有进化算法所具有的启发式和随机搜索的特点,相对其他进化算法,PSO更简单,更容易实现,已应用在很多工程领域。但PSO也存在容易陷入局部最优(早熟)的缺点,因此,国内外学者提出了各种算法改良方法[2,3,4,5],在近期研究中,有学者提出了比较新颖的思想,文献[6]利用自然界的“鲶鱼效应”思想,对PSO种群进化策略进行了改良,文献[7,8]引入了混沌技术对PSO每代更新公式里的随机参数进行了改进。著名的“No Free Lunch定理”[9]已从理论上证明了在数学意义上所有优化算法在所有可能的问题范围内都会具有相同的平均性能,因此各种优化算法都有自身的优点、缺点和适用范围[10]。为克服这种缺点,综合不同算法的优点,取长补短,使算法优势互补,近20年来涌现了大量的混合算法[11]。差分进化算法(DE)[12]作为另一种群体演化的优化算法,从Hendtlass在2001年提出首个DEPSO算法[13]开始,DE就被广泛应用到与PSO混合的算法上,据研究[14],2001年至2010年在国际学术杂志公开发表的粒子群(PSO)混合算法,PSO+GA(遗传算法)占34%,PSO+DE(差分进化算法)占22%,PSO+其他占44%,该研究显示近年公开发表的PSO+DE混合算法有快速上升的趋势,说明DE有自身独特的优势,在与PSO混合算法中得到越来越多研究人员的认同。本文通过分析文献[7,8],在此基础上进行了相应的进化策略改良,并把改良后的PSO与DE进行混合,得到一种混合算法,通过大量的实验计算,验证了本文改良策略不但改良了PSO自身搜索性能,还通过与DE的混合,显著地提高了在各类问题的优化性能。

1 粒子群优化算法

1.1 基本粒子群优化算法

粒子群优化算法是文献[1]中提出的一种模拟自然界鸟群觅食过程的随机搜索算法,模拟的生物个体称作粒子,代表问题空间的一个可行解。粒子在搜索过程中受当前最优粒子的指引,并经逐代搜索,最后得到最优解。粒子具有速度,设定一个群体共有M个粒子在D维的搜索空间里,受当前最优粒子的位置牵引,粒子it时刻的状态如下:位置,xidt=[Ld,Ud],LdUd分别是搜索空间的最小值和最大值;速度vit=(vi1t,vi2t,…,vidt),vidt∈[vmin,d,vmax,d],vmin、vmax分别为速度的最小值和最大值;个体最优位置pit=(pi1t,pi2t,…,piDt),全局最优位置pgt=(pg1t,pg2t,…,pgDt)。其中,1≤dD,1≤iM。那么,粒子在时刻t+1时的位置通过下面更新公式获得:

其中,r1、r2为均匀分布在(0,1)的随机数;c1、c2为学习因子,通常取c1=c2=2。

文献[15]随后提出惯性权重w,速度更新公式加入惯性权重后,会根据迭代的次数动态调整速度,速度更新式(1)改成:

vidt+1=wvidt+c1r1(pidt-xidt)+c2r2(pgdt-xidt) (3)

惯性权重w是影响算法性能的一个重要因素,当w值较大时,算法的全局搜索能力较好,也就是搜索能力较强,当w值较小时,则算法的局部搜索能力较强,也就是开采能力较强,通常将w初始设为0.9,随着迭代数增加,线性减至0.4,这样,初期增加算法的全局搜索能力,后期加强算法的局部精细搜索能力。w变化公式如下:

w=wmax-wmax-wminintermax×inter (4)

其中,wmax、wmin、intermax、inter分别是最大惯性权重、最小惯性权重、最大迭代数、当前迭代数。

1.2 鲶鱼效应改进的粒子群算法

文献[6]把自然界的鲶鱼效应引进到粒子群算法,其基本思想是引入鲶鱼与沙丁鱼竞争,进而淘汰没有活力的沙丁鱼。在算法上,如果在迭代过程中,全局最优解在一定代数内没有进化,则把个体解最差的90%的粒子(没有活力的沙丁鱼)初始化,恢复群体活力。由于这种鲶鱼效应的改良方法是针对整个种群,本文把此方法命名为“种群鲶鱼效应粒子群算法”,这种改良策略是为了提高算法的搜索能力,种群鲶鱼效应粒子群算法的步骤如下:

(1) 初始化种群。

(2) 计算种群里个体的适应度。

(3) 记录个体最优解pbest,全局最优解gbest。

(4) 根据速度、位置更新公式更新种群各个个体位置。

(5) 判断全局最优解gbest在规定代数内是否有进化?如果有进化,转到步骤(6);如果停止没有进化,把个体适应度由好到差排序,把90%程度度最差的个体进行位置、速度初始化,转到步骤(6)。

(6) 判断是否满足停止条件,满足即终止计算,否则重复步骤(2)。

1.3 混沌粒子群算法

1.3.1 混沌技术

混沌运动普遍存在于非线性系统中,是一种看起来随机的非随机运动,具有随机性、遍历性和规律性[7]。由于具有遍历性特点,易实现和避免局部陷阱的特殊能力,混沌技术已引入到优化算法中。混沌系统动力学模型种类繁多,我们选用Logistic方程,这是一个典型的混沌系统[8],方程式如下:

式中,Cr(0)是算法每次运行时随机产生,并不等于{0,0.25,0.5,0.75,1},k等于4。

1.3.2 改良速度更新公式的混沌粒子群算法

混沌引入到粒子群算法有多种方法,文献[8]提出一种改善速度更新式子的混沌方法,这方法利用混沌技术的遍历特性,使速度更新时具有遍历性效果,这种算法是为了提高算法的搜索能力,该算法速度更新公式如下:

vidt+1=wvidt+c1Cr(pidt-xidt)+c2(1-Cr)(pgdt-xidt) (6)

式中,Cr是根据式(5)产生。

2 本文算法应用的两种改良策略

2.1 精细搜索的混沌粒子群算法

文献[16]把混沌引入到差分进化算法中,在每代最优解xbest附近进行混沌搜索,有效地提高了局部精细搜索能力。同理,我们也可以把混沌引入到粒子群算法中,在每代最优解xbest附近进行精细搜索,该搜索策略可表示为:

式中,α是方向因子,Cr是式(5)产生的混沌数,UdLd分别是搜索空间的上下限。

在每代最优解xbest附近进行搜索时,文献[16]是用fk=Cr(Ud-Ld)算出的偏离幅度在最优解附近进行混沌搜索,但这方法跳动的幅度相对比较大,容易错过附近的更优极值,我们设计这种混沌搜索策略是为了不要错过每代最优解附近可能存在的更优解,为了更有利达到这个目的,本文用式(9)的方法进行改良,在每代最优解附近跳动的幅度大为缩小,有利提高局部的“精细搜索能力”。

本文将这种混沌搜索方法称为“混沌精细搜索策略”,这种策略有效提高算法的深度搜索能力。

2.2 个体鲶鱼效应粒子群算法

上面介绍了文献[6]提出的种群鲶鱼效应粒子群算法, 这种群体鲶鱼搜索方法在搜索过程中往往要不止一次重新初始化90%的个体,每次初始化都使群体中绝大部分的个体的搜索都要“从头再来”,重新从最初状态开始搜索,常常会导致群体在一个不短的代数内不再进化,而这种“从头再来”又容易导致恶性循环,因为前一次的初始化使群体在设置的一定代数内没有进化,根据算法设计,又要重新初始化90%个体,又来一次“从头再来”,群体搜索还未找到更优的解,再次被初始化打断了进化进程,算法一旦掉进这个陷阱,性能可能还不如基本算法。

作为改良,本文的初始化只是针对个体,即在进化过程中记录每个个体的进化,如果某个个体在一定代数内没有进化,就把该个体初始化,恢复该个体的活力。“重新初始化”针对的是单个个体,不会导致群体绝大部分个体重新初始化重新搜索的问题,保证了进化进程没有屡屡被中断。本文把这种策略称为“个体鲶鱼效应粒子群算法”,个体鲶鱼效应粒子群算法的步骤如下:

(1) 初始化种群。

(2) 计算种群里个体的适应度。

(3) 记录个体最优解pbest,全局最优解gbest。

(4) 根据速度、位置更新公式更新种群各个个体位置。

(5) 记录每个个体不再进化的代数。

(6) 判断每个个体在规定代数内是否有进化?如果有进化,转到步骤(7);如果停止没有进化,把该个体位置、速度初始化,转到步骤(7)。

(7) 判断是否满足停止条件,满足即终止计算,否则重复步骤(2)。

3 差分进化算法(DE)

差分进化算法也是一种启发随机搜索算法,它保留了遗传算法的基本框架,同样包含有选择、交叉和变异三个操作,不同的是它由变异到交叉,再到选择的顺序。DE/rand/1 策略[12]是差化进化算法普遍应用的一个方法,也是本文采用的版本。DE种群共有M个候选解,初始种群为xit,i=1,2,…,M。变异操作时,任一随机矢量vit根据式(10)产生变异,式中随机数r1,r2,r3∈{1,2,…,M},加权因子F∈[0,2]。杂交操作中,新种群xit=[x′t1,x′t2,…,x′td]由随机矢量vit=[vi1,vi2,…,vid]和目标矢量xit=[xi1,xi2,…,xid]共同产生,具体操作如式(11)所示,其中j=[1,2,…,D],rand b(j)∈[0,1]是同一随机数的第j个值。CR∈[0,1]是变异概率,rand r(i)∈[1,2,…,D]是随机选择维数,它确保个体至少一个变异数。

选择操作中采用贪婪策略:

其中Φ(x)代表适应函数。

4 粒子群优化的混合算法

粒子群算法已广泛应用于科学研究、工程技术和经济管理等诸多领域,但实际优化问题越来越复杂,只靠单一的粒子群算法往往不能取得满意的结果,国内外学者逐渐用粒子群算法与其他算法混合起来,从而使混合算法具有不同算法的互补优势,正如进化计算与混合算法研究专家Raidl所言[17],选择一种适当的混合算法对于高效地求解多数困难问题而言都是非常有必要的。

PSO+DE混合算法的步骤如下:

(1) 初始化种群PSO和DE。

(2) 分别计算种群PSO和DE里个体的适应度。

(3) 分别记录各个种群的个体最优解pbest,全局最优解gbest。

(4) 选出PSO、DE最优的gbest作为各自种群的gbest。

(5) 根据速度、位置更新公式更新种群各个体位置。

(6) 判断是否满足停止条件,满足即终止计算,否则重复步骤(2)。

5 仿真实验

5.1 实验算法

为检验本文提出的两种改良策略:混沌精细搜索策略和个体鲶鱼效应搜索策略的有效性,本文将这两种改良策略与上面所述最近文献的三种改良策略进行组合和比较,形成11个算法,这些算法具体如下:

算法1

有惯性权重的粒子群算法,这是广泛采用的一个粒子群算法的基本形式,即由式(2)和式(3)组成的粒子群优化算法,本文简称为PSO,这是个最基本的PSO算法。

算法2

由算法1经过种群鲶鱼效应改良的算法,本文简称PSO_Catfish_1,这是文献[6]提出的一种改良策略。

算法3

由算法1经过个体鲶鱼效应改良的算法,本文简称PSO_Catfish_2,这是本文提出的个体鲶鱼效应改良策略对算法1的改良,仿真实验中与算法2的改良效果进行比较。

算法4

引入混沌技术改良过速度更新式子的算法,即是由式(5)、式(6)和式(2)组成的算法,本文简称CPSO,这是文献[8]提出的改良速度更新公式的混沌粒子群算法。

算法5

由算法4经过种群鲶鱼效应改良的算法,本文简称CPSO_Catfish_1,这是文献[8]提出的混沌种群鲶鱼粒子群优化算法。

算法6

经过个体鲶鱼效应改良的算法4,本文简称CPSO_Catfish_2,这是本文提出的混沌个体鲶鱼粒子群优化算法,仿真实验中与算法5的改良效果进行比较。

算法7

引入了混沌精细搜索策略的PSO算法,即是由式(3)、式(2)、式(7)、式(8)和式(9)组成的算法,本文简称为CFSPSO,这是本文提出的另一改良策略——混沌精细搜索策略形成的算法。

算法8

经过个体鲶鱼效应改良的算法7,本文简称CFSPSO_Catfish_2,这是本文提出的两种改良策略组合成的新型算法。

算法9

协作式混合的基本PSO+DE混合算法,即是根据式(3)、式(2)、式(10)、式(11)和式(12)混合的算法,把PSO和DE算法都分配到搜索空间中各自独立地按照算法自身的参数进行搜索,并把混合算法最优解作为两算法的信息共享变量,在进化的每一代都要比较两者各自搜索到的最优解,选取优者为混合算法的最优解,之后把混合算法最优解作为下一代的PSO和DE各自的全局最优解,进行下一代搜索,利用这种最优解信息共享机制可以有效地协调两算法的运行,达到混合的目的。本文简称PSODE,这是基本的PSO+DE混合算法。

算法10

经过个体鲶鱼效应改良的算法9,本文简称PSODE_ Catfish_2,仿真实验验证本文提出的个体鲶鱼效应改良策略利用到混合算法的有效性。

算法11

本文提出的两种改良策略:混沌精细搜索和个体鲶鱼效应搜索,是分别从加强每代最优解附近精细搜索,有效增强个体粒子活力这两个角度对PSO算法进行改良,这样改良后的PSO算法的搜索策略还是PSO算法的框架。而差化进化算法(DE)有着不同PSO的进化策略,把PSO与DE进行混合可以基于进化策略的差异而搜索多样性使算法不易掉进局部陷阱出不来,达到取长补短的作用。把经过本文提出的混沌精细搜索和个体鲶鱼效应搜索改良后的PSO,再与DE进行混合,得到本文的混合算法,简称PSODE_Self。

5.2 算法优化性能仿真比较

下面用三个标准测试函数来测试上述算法的优化性能,这些标准函数如下:

(1) Sphere函数

f1(x)=i=1nxi2

其中X=(x1,x2,…,xn),-100≤xi≤100。

(2) Rastrigrin函数

f2(x)=i=1n[xi2-10cos(2πxi)]+10

其中X=(x1x2,…,xn),-5.12≤xi≤5.12。

(3) Rosenbrock函数:

f3(x)=i=1n100×(xi+1-xi2)2+(1-xi)2

其中X=(x1,x2,…,xn),-30≤xi≤30。

这些标准函数理论最小值都是minf(x)=0, f1Sphere是个单峰函数,f2Rastrigrin是山谷形的狭长抛物状的,很容易搜索到山谷,但要达到全局最优却非常困难,f3Rosenbrock是典型的非线性多模态函数,很难最小化,在搜索区域内存在成千上万的局部极小值,搜索极容易陷入局部最优。

5.3 仿真实验设置

上面各种算法中,PSO种群规模取50,DE种群规模取30,函数维度为10,惯性权重w初值0.9,终值0.4;学习因子c1=c2=2,DE的交叉概率CR为0.8,两个种群迭代都是1500。实验机器是Intel Pentium Dual T2390 @ 1.86的CPU,2GB内存,软件用Matlab 7.0,windows XP操作系统。

5.4 仿真结果

为消除随机搜索的误差,每个算法将独立运行50次,得出函数值后再求平均,并为了分析算法的时间开销,结果见表1所示。并用Matlab自动记录算法的搜索过程,绘出各算法的函数收敛曲线图。由于开始和最终寻优得到的数值相差幅度太大,为了方便比较分析,本文对每代寻优得到的函数值求自然对数,即ln(fitness)以e为底的对数,绘出的进化曲线图,如图1-图3所示。

5.5 仿真结果分析

综合表1和进化曲线图1-图3可以看出,经过对三个函数的测试,本文提出的两种改良策略均有较好的表现,详细分析如下:

1) 分析算法1-算法3:

算法2、算法3是分别用不同的策略对算法1进行改良。

(1) 引入了种群鲶鱼效应的算法2,从表1看到算法2的性能比算法1有一定的改善,从进化曲线图分析,发现两者的进化过程并没太大差别。这是因为种群鲶鱼算法在一定程度上增强了全局搜索能力,但由于在一定代数没有进化的时候,就要重新初始化90%的个体,基本是整个种群被再次初始化,重新进行搜索,这方法虽然有利提高广度搜索能力,但会很大地影响算法的深度搜索,总体上的改善性能不显著。

(2) 本文提出的经个体鲶鱼效应改良的算法3,在Rastrigrin和Rosenbrock这些复杂函数搜索性能有着十分显著的改善,但在简单函数Sphere却表现一般,原因在于Sphere太简单,种群不需要有太强的广度搜索能力,更需要深度搜索能力,算法只要集中于局部进行深度搜索,就能不断进化,可以取得更高的精度,但算法3由于记录粒子个体的进化,经常对个体重新初始化,影响了个体的深入开采,因此在简单搜索的时候性能表现一般。

2) 分析算法4-算法6:

类似地,算法5、算法6分别用种群鲶鱼效应和个体鲶鱼效应对算法4进行了改良。

(1) 比较算法4和算法1,发现算法4这种只是用混沌技术对速度更新式子的随机数进行修改,如式(6)所示,对算法性能不但没有改善,反而性能更差,原因在于算法1速度更新式(3)中,随机数本身就有种群多样性的作用,但经混沌技术修改成式(6)后,却带有遍历特性,反而对种群多样性有损害,影响了算法的广度搜索能力。

(2) 算法5、算法6和算法4比较,发现经过种群鲶鱼效应改良的算法5只是有一定的改良,而经个体鲶鱼效应改良的算法6,性能改良非常显著,因为算法6的个体鲶鱼效应有效增强了算法的广度搜索能力,同时又保持深度搜索能力。从进化曲线图可以看出,两者改善性能跟上面Ⅰ的分析极为相似,经过个体鲶鱼效应改良的算法6在复杂函数的寻优上有着更好的性能,表明本文提出的个体鲶鱼效应改良算法的有效性。

3) 分析算法7、算法8:

经过混沌精细搜索策略改良的算法7,性能表现平平,而加入个体鲶鱼效应的算法8,性能有明显的改善。从进化曲线图看到,算法8的复杂函数Rastrigrin和Rosenbrock性能改善更为明显,说明本文提出的混沌精细搜索策略单独使用效果不显著,应与本文提出的个体鲶鱼效应策略组合使用,能获得更好的性能。

4) 对算法9-算法11的分析:

这三个算法都是PSO和DE的混合算法。

(1) 从表1数据和进化曲线图可见,算法9-算法11的性能比前面8个算法都在显著的提升,这是因为混合算法有互补优势,极大的提升了算法的广度搜索和深度搜索能力,这是混合算法的独特优势,这也是本文提出的改良策略最终集合到混合算法的原因。

(2) 从进化曲线图看出,在sphere这种简单的函数优化上三种混合算法的进化曲线高度相似,而在Rastrigrin和Rosenbrock这两种复杂的函数搜索时,算法11的性能改善得很显著。

(3) 经过个体鲶鱼效应改良的算法10,不但在Sphere有了更好的表现,在后两个复杂函数更有着非常显著的改善。在算法10基础上再进行混沌精细搜索策略改良后,形成的算法11,性能更是优越,比前面10个算法都好。

综而述之,经过大量的仿真实验,发现算法经过个体鲶鱼效应改良后,性能均有显著的提升;而原始粒子群算法只经单一的混沌精细搜索策略改良后,性能表现平平,但把混沌精细搜索策略与个体鲶鱼效应结合,再应用到粒子群优化与差分进化混合算法时,性能就有非常显著的改善,并且在不同类型的测试函数表现得相当稳定。仿真结果验证了本文应用的两种改良策略——混沌精细搜索和个体鲶鱼效应改良策略是有效的,最后组成的新型混合算法在实验中获得比其他算法更好的寻优性能。

另外,从表1也可以看出,在时间开销方面,单一的粒子群算法时间基本都在2秒以内,而混合算法的时间就多了一倍多,但也在5秒以内,处于可以接受的范围以内。

6 结 语

本文经过分析最近文献提出的三种改良粒子群算法——鲶鱼效应改良策略、混沌改良策略、与差分进化算法混合的改良策略,分析其优点和不足,应用了两个改良方法——混沌精细搜索策略和个体鲶鱼效应改良策略,经过大量仿真实验,表明了本文提出的改良策略的优越性,并且在实验中进行算法比较,证明本文最终提出的新型混合算法有更好的寻优性能。

摘要:为了提高粒子群优化算法的寻优精度,分析了最新文献提出的三种粒子群算法改良策略的优点和不足之处,对混沌搜索策略和鲶鱼效应策略进行了改良,通过仿真证明了提出的改良方法的优越性。最后提出一种新型混合算法,并在仿真实验中进行了各种算法性能比较,验证了最终提出的新型混合算法有更好的优化性能。

群搜索优化算法 篇10

水库优化调度需要考虑到众多约束条件和实际情况, 本文引进了动态规划算法, 构成了DP-TS算法, 以锦屏一级二滩水库群调度实例模拟算法。

1 水库群优化调度模型

1.1 目标函数

根据发电效益最大的原则, 得到目标函数如下式所示:

注:E为总时间段的发电量;Et为第t个时间段水库群的发电量;Ai是第i个电站的出力系数;Qit是第i个电站在第t个时段的平均发电流量;Hit是第i电站在第t时段的平均发电水头;△t是所计算的时间长度。

1.2 约束条件

(1) 库容约束条件

(2) 流量约束条件

(3) 电站出力约束条件

(4) 水量平衡约束条件

1.3 目标函数处理

考虑到保证率的要求, 我们加入惩罚项, 最终目标函数如下:

注:A为惩罚系数;E保为保证电量;σk为模型参数, 取值规则为:当Et≥E保时, σk=0;否则σk=1。

2 动态-禁忌搜索算法

2.1 TS算法

TS算法是组合优化算法的一种, 以下为TS算法的主要步骤。

Step1:赋予一组初始值集合X0n (X0n={X01, X02, …, X0n}) , 计算当下X0n的目标函数值;

Step2:令当前解集合Xnnow和最优解集合Xnbest等于X0n, 禁忌表长度l为0;

Step3:构造当前解集合Xnnow的邻域, 将其作为候选集, 在候选集中选一个最佳解X1n;

Step4:若X1n比最优解集Xnbest更优, 令Xnbest=X1n, Xnnow=X1n;

Step5:若X1n比最优解集Xnbest差, 且X0n到X1n的变化不在禁忌表中, 则令Xnnow=X1n;若在禁忌表中, 则在候选解中寻找次优解X2n, 并令X1n=X2n, 返回Step5;

Step6:将X0n到X1n的变化记录到禁忌表末尾, 若禁忌表长度达到最大值, 去掉最头的一个记录;否则禁忌表长度l=l+1;

Step7:满足迭代收敛条件转Step8, 否则转Step3;

Step8:满足精度要求, 退出。

2.2 DP-TS算法

TS算法的初值较为主观, 故我们利用DP算法来获取TS算法的初值。我们利用DP算法得出一个优化解XnDP, 将此解作为TS算法的初值X0n, 这样便可利用TS算法以利于求解全局最优解的优点, 又避开其初始值选取敏感的缺点, 得到组合DP-TS算法。

3 实例应用

3.1 锦屏一级二滩水库群概况

锦屏一级水电站位于四川省, 装机容量3600MW, 保证出力1086MW, 多年平均174.1×108kwh, 水库正常蓄水位1880m, 死水位1800m, 正常蓄水位以下库容77.6×108m3, 调节库容49.1×108m3, 属年调节水库。二滩水电站水库正常蓄水位1200m, 发电最低运行水位1155m, 总库容58×108m3, 调节库容33.7×108m3, 死水位库容24.2×108m3, 属季调节水库。电站装机容量3300MW, 多年平均发电量168.8×108kwh, 保证出力1050MW

3.2 算法设计

DP算法求初始值:

根据上述给出的约束条件, 通过获取某典型年的逐月径流情况以及库水位与库容的关系, 可以得到用DP算法求出的一个解集串。在这里我们取水位离散点数为50和500, 保证率惩罚系数A=5, DP算法主要相关变量设计如下:

(1) 阶段变量和状态变量:阶段变量取1月, 整个调度期共12个时段, 即阶段变量k=1, 2, ..., 12。状态变量取各时段初系统的水位, 水库水位在死水位与各时段状态允许最高水位之间连续变化, 取水库水位变化△z为一个间隔, 相应于该水位的一个状态。状态变量Zkij= (zk1i, zk2j) , 表示第k状态初, 锦屏一级水库水位处于i状态, 二滩水库水位处于j状态。

(2) 决策变量和状态转移方程:各阶段, 若初状态为Zkij, 末状态为Zk+1, g, h, 则决策变量出库流量为qkijgh= (q0k1ig, q0k2ig) 。状态转移方程用水量平衡方程, 第k阶段, 入流为Qk= (Qk1, Qk2) , 状态变量为Zkij, 决策变量为qkijgh, 状态转移方程为:

其中:Vk+1, g, h、Vkij为初状态Zkij, 末状态Zk+1, g, h所对应的库容;Sk为整个系统的入库流量;Qk1为锦屏一级的入库流量;Qk2为锦屏一级与二滩之间的区间流量;q0k1ig为第k阶段, 此始末状态下, 锦屏一级水库的出库流量;q0k2ig为第k阶段, 此始末状态下, 二滩水库的出库流量。

(3) 根据上述变量选取可得到该法下最优解所对应的发电流量解集XnDP={Q1DP, Q2DP, …, QnDP}。

3.3 DP-TS算法求全局最优解

根据表1中利用DP算法得出的发电流量解集XnDP={Q1DP, Q2DP, …, QnDP}作为TS算法的初始值X0n, 然后利用上述所介绍的TS算法求出最后最优解, 见表1。

3.4 结果分析

在基于DP算法基础上的TS算法由于初值选取较好, 因而迭代的次数明显减少, 可迅速趋于全局最优解, 为便于比较, 我们再利用DP算法在水位离散点数分别为500的情况下求解两个水库发电效益, 并与在DP算法离散点为50的基础上的DP-TS算法的结果进行比较, 结果见表2。

从上表可以看出DP算法随着离散点所取数量增多, 发电量有着提升, 但耗时多, 而DP-TS算法只需在DP算法取50离散点的情况下便可与取500离散点时具有获得几乎相当的调度解, 且时间消耗与离散点为500的DP算法相比较少。进一步, 容易知道当水库群的数量进一步增多时, DP算法会陷入“时间灾”, 而组合算法的优点则会突出。

4 结论

群搜索优化算法 篇11

关键词:群鱼算法 多谐波源 辐射约束

中图分类号:TM714 文献标识码:A 文章编号:1672-3791(2014)10(b)-0094-01

电力系统考核电能质量的主要指标是电压的幅值和频率,现在世界各国都把电网电压正谐波形畸变率极限值作为电能质量考核指标之一。随着电力电子技术的飞速发展,各种新型用电设备越来越多地问世和使用,谐波的影响越来越严重。因此,研究和分析谐波具有重要的实际意义。

1 有源滤波模型优化目标函数

采用电力有源滤波器是抑制谐波的一个趋势。有源电力滤波器基本原理是从补偿对象中检测出谐波电流,由补偿装置产生与该谐波电流大小相等而极性相反的补偿电流,从而消除电网中的谐波。这种滤波器能对频率和幅值都变化的谐波进行跟踪补偿,且补偿特性不受电网阻抗的影响,因而受到广泛的重视,并且在日本等国得到广泛的应用。有源电力滤波器的基本思想在六七十年代就己经形成。80年代以来,由于大中功率全控型半导体器件的成熟,脉冲宽度调制(Pulse Width Modulation-PWM)控制技术的进步,以及基于瞬时无功功率理论的谐波电流瞬时检测方法的提出,有源电力滤波器才得以迅速发展。本节以混合型有源滤波器进行模型分析。混合型有源滤波器兼顾无源和有源滤波的长处,减少补偿系统投资性能比较高。实用滤波器的参数优化问题能够在最低费用下满足谐波抑制的要求,无源部分主要由电感L和电容C组成,其经济性主要由原件功率和容量决定,该文采用有源优化配置的目标函数为:

式中表示经济性,表示电感、电容以及额定容量之间的函数关系,表示额定容量与优化配置之间的函数关系。

有源滤波对网络进行无功补偿,并且通过有源滤波器以及基波电流的各次谐波来控制电流容量,电流的电容容量为:

为了使理论总投资费用更接近工程总投资费用,避免选择值得盲目性,采用市场价格决定法确定系数。容量决定与所补偿的总谐波电流有效值,其并且容量值与基波无关,是由补偿的谐波电流值决定的。

通过加装滤波装置后,使得电网谐波含量在符合国家标准的基础上尽量降低,并以母线的谐波频率电压畸变率为衡量的标准。

2 无源滤波优化模型目标函数

无源电力滤波器是有滤波电容、电阻、电抗以及电容进行组合的滤波装置,能为谐波电路提供一个通路,使得所滤去的告辞谐波与谐振频率相等,达到滤去谐波目的。其中电容、电阻、电抗以及电容的不同组合以及不同的接线方式可以形成不同类型的滤波器,无源滤波装置一般由单组或者若干组滤波器组成,同时还可以加上一组高通滤波器,运行中能和谐波源并并联除去滤波同时兼容调压和补偿的作用。无源滤波器运行可靠、维护方便以及结构简单是当前运用广泛的滤波器,但是在某些条件下可能与系统发生谐振是谐波分量增加导致电能质量下降。

假设网络中各个节点都有可能有谐波,并需要安装如干个不同谐振频率以及不同类型的滤波支路,通过并联形成无源滤波器。以常用的单调谐型以及二阶高通滤波支路为对象进行函数说明。假设节点i处最多允许安装的无源滤波支路为J,并且最后一个支路是二阶高通类型,则余下依次为对应单调谐波类型。那么需要用组合来表示节点i和条数J来表示谐振次数、品质因素、电容器值、电感值以及电阻值:

品质因素:;电容器值:;电感值:;电阻值:,其中以及分别为高通滤波支路的谐波次数,由此将构成以下关系:

上式中ij表示i节点j条无源滤波支路,无源滤波优化模型目标函数呈现以下线性关系:

3 基于鱼群算法的参数寻优的规划模型

滤波器寻优规划是一个优化组合问题,使得整个建设的运行和投资最小,其目的就是寻找一个规划方案,同时满足可靠性和约束条件。人工鱼群算法是一个基于模拟鱼群行为的随机搜索的智能现代启发式算法。主要利用觅食、群聚以及追尾行为作为算子,通过鱼群中个体的局部寻有优达到全局最优的目的,这种算法具有良好的克服局部极值取得全局最优的能力,还能很好的解决优化组合问题和快速收敛的特点。

3.1 数学模型描述

滤波器配置优化以配置规划的综合费用H作为最小目标函数,包含投资费用、设备折旧费用以及运行中的电能损耗费用等。

式中X为n维决策向量,就是规划问题的解,X=代表规划问题中可配置的n个滤波器;是配置投资的费用,,是滤波器给线路的投资回报,是滤波设备的折旧率,是新建滤波i投资费用,是一个向量元素;是滤波损耗费用,是配置滤波器i的损耗,是在符合状态下滤波器的运行时间,是价格单位。

3.2 辐射约束处理

滤波器参数优化选择是在一个闭环结构开环运行的特征网络中的,稳定运行状态对分支网络树形辐射结构,在滤波器规划领域中,对一个规划的方案应该满足:N=S+M。M为滤波器节点数,包含原有节点和新建的节点,S为网络的支路数。因此一个多谐波网络滤波器优化配置辐射约束条件应该定义如下:

定义1、滤波器优化方案满足等式条件,并满足网络结构树形单向辐射接欧冠,可以在该方案进行拓扑操作;定义2优化配置方案仅仅满足等式即可。应用群鱼启发式算法来求解滤波器规划问题,通常所有可能的需要待建设滤波器节点被选择作为规划的变量几何。如果不采取特殊措施,在迭代过程中会有大量不可行的方案出现,如以上遗传算法中个,对给定的可行初始方案,经过遗传算子特别是交叉变异操作过的染色体往往破坏规划的“辐射性”,这样过于不可预测的结果使方案不可行。

4 结语

在利用有源滤波进行规划时候也容易产生滤波器配置问题,为了保证寻优采用保证基本辐射性的编码,即在迭代寻优和初始化过程中对每个个体进行辐射约束,这样大大减少优化中的不可解,提高了寻优的效率。

参考文献

[1]贾莉.基于模态分析法的无源滤波器优化配置[M].中国石油大学(华东)硕士学位论文,2010.

[2]李习武,王延松.配电网的无源滤波器优化配置的研究[M].中国石油大学(华东)硕士学位论文,2008-05-01.

群搜索优化算法 篇12

P2P (Peer to Peer) 即对等计算或对等网络, 通过直接交换共享计算机资源和服务。在P2P网络环境中, 成千上万台彼此连接的计算机都处于对等地位, 整个网络不依赖专用的中心服务器。网络中的每台计算机既能充当网络服务的请求者, 又能对其他计算机的请求做出响应, 提供资源与服务。

按照数据信息在网络中的存储方式, 可以将P2P系统分为两大类:结构化P2P系统, 以Chord、CAN等为代表, 在结构化网络中每个节点存储的信息与网络拓扑结构有关。非结构化P2P系统, 以Gnutella、Freenet为代表, 非结构化网络与网络拓扑无关, 其节点可任意存储信息。以上所说的这些网络主要是通过直接交换来共享计算机资源, 因此搜索技术成为P2P网络的关键技术。

目前, 大多数应用系统是非结构化拓扑结构, 这种结构的覆盖网络一般采用基于完全随机图的搜索算法, 容错性好, 支持复杂查询, 受节点频繁加入和退出系统的影响小, 但随着联网节点不断增多, 以这种方式定位资源将造成网络流量急剧增加, 导致网络带宽消耗大, 并由此产生可扩展性差等问题。所以不能采用传统路由扩散的方法解决搜索信息的定位问题;同时, 如何从大量分散的对等点中快速找到所需要的资源也是个巨大的挑战。本文就对无结构对等网络现有的算法进行研究, 在此基础上引入人工智能领域的蚁群算法, 利用蚂蚁信息素的多样性和正反馈机制来指导节点的选择查询, 以达到减少查询所带来网络流量和盲目性, 提高查询成功的概率。

1 常见的搜索算法与缺点

根据对邻居转发方式的不同, 可将非结构化对等网络的搜索算法分成两类:泛洪搜索算法与漫游类搜索算法。

(1) 泛洪搜索算法一般有Gnutella算法、Iterative-Deepening/Expanding-Ring算法、改进的BFS算法等。目前, 在运作的大型的P2P网络都采用类似于Gnutella网络的模式, Gnutella实现了对搜索规模的简单控制, 为了控制搜索消息的传播, 是通过TTL的减值来实现的。在Gnutella网络中, 节点检查收到的Query消息或者Ping消息的TTL值, 如果消息的TTL值不等于零, 则将该消息的TTL减1, 然后将该消息转发给节点的所有邻居节点;如果消息的TTL值等于零, 则不再转发该消息。但在Gnutella算法中, TTL的设置是一个两难的问题:TTL值设置的过大, 则很可能造成大量无谓的搜索开销;而TTL值设置的过小, 则搜索不易满足, 使得搜索需要重复发起。因此, LV等研究人员提出了Expanding-Ring算法, 接着Yang等研究人员又提出了Iterative-Deepening算法, 这两个算法本质相似, 算法的前半部分完全与Gnutella算法一样, 主要区别在于算法的后半部分。在该策略中, 查询节点先初始化一个较小的生命周期TTL值, 如果成功查询到生命周期正好降到0时, 所有查询消息都暂时休眠, 等待搜索结果返回查询发起节点。查询发起节点收到所有结果之后, 判断该次搜索是否已满足查询结果, 如果已满足, 则放弃继续搜索;如果不满足, 则逐步增加TTL值, 直到TTL值达到预定的最大值或成功查询到目标数据。这种策略在某种程度上降低了网络流量, 但依然会延长找到目标数据的时间。由此, 有人提出另外一种泛洪算法:改进的BFS算法, 该策略是所有节点随机抽取一定比例的相邻节点传递查询信息包Query, 而不是像原始泛洪搜索算法那样把查询信息包转发给所有的邻居节点。选择的邻节点的数目占总邻居数的比例是这种机制的参数。虽然它减少了平均消息量的产生, 但是它仍然还是要与大量的节点相关联, 而且有一定的随机性。

(2) 漫游类搜索算法最常见的是K-Random-Walker算法, 该策略是研究人员在原来Expanding-Ring算法的基础上构想了这种叫做K步漫游行走器的算法, 节点将K个请求消息转发给在其相邻节点中随机选取的K个节点, 然后这K个节点将请求消息随机地向它的一个相邻节点进行转发, 依次类推。直到搜索成功或者TTL值为零。这种策略的最大优点是大大减少了消息的产生数量, 但缺点是难以优化k值。k值小则冗余开销小, 但用户时延大, 如k值大则可以获得低时延, 但导致冗余开销增大, 并使查询发起者附近节点重复收到查询消息。对k的优化需预先了解P2P网络全局信息, 但无结构P2P网络中单个节点难以做到。

2 基于蚁群算法的非结构化P2P网络搜索的改进

以上的搜索算法, 不是导致查询产生大量的网络流量而对网络造成很重的负担, 就是导致搜索结果的可靠性受到影响。因此, 将基于人工智能的蚁群算法应用到非结构化P2P网络的搜索中来具有十分重要的意义, 提出了一种基于蚁群算法的非结构化P2P网络搜索的改进。该策略是利用蚁群算法的两种机制:多样性和正反馈机制。多样性保证了蚂蚁在觅食的时候不置走进死胡同而无限循环;正反馈机制则保证了相对优良的信息能够被保存下来, 从而建立它们的对应关系表, 利用该路由表来指导资源搜索。仿真实验表明, 该搜索算法有效地减少了查询带来的网络流量和盲目性, 提高了查找成功率。

2.1 算法描述

在基于蚁群算法的非结构化P2P网络搜索机制中, 整个P2P系统可以视为一个由很多蚁巢以及连接这些蚁巢的通路构成的网络。每个蚁巢相当于P2P网络中的一个对等节点, 存放了一定量的P2P文件资源, 查询消息包可以看作是蚂蚁, 搜索的目标视为食物, 存在搜索目标的节点就是食物源。当某节点发起查询请求, 相当于蚁巢派出蚂蚁寻找食物, 当一只蚂蚁找到食物以后, 它会在环境释放一种信息素, 吸引其他的蚂蚁过来, 这样越来越多的蚂蚁会找到食物, 每一只蚂蚁每一步的行动是, 根据一定的依据选择下一个它还没有访问的节点, 同时在完成一步 (从一个节点到达另外一个节点) 或者一个循环 (完成对所有n个节点的访问) 后, 更新所有路径上的残留信息浓度, 由此, 网络中的节点都维护一张信息素表, 来保留本节点的信息和信息素浓度以作为下一跳节点的依据。用户通过节点查找关键词Key时, 先检查自己的信息素表, 如果有, 则返回给用户, 并更新信息素表。如没没有, 先从信息表中找相似主题, 如找到与主题相似度达到一定值的时候, 查询蚂蚁再根据本节点的信息素浓度。浓度高, 就作为下一跳节点, 如果下一节点没有要找的食物, 就将消息包中的TTL (存活时间) 值减1。某一节点在收到消息包后, 如果发现TTL值为0, 就停止转发消息包。如果消息包在TTL减为0之前到达了拥有食物的目标节点, 就会返回一个命中消息包。这可以看成是找到食物的蚂蚁沿原路返回源节点, 沿途释放信息素, 并且修改节点的信息素表。

2.2 路由表的建立

每个蚁巢需要维护3张表:本地资源存储表, 关键字信息存储表和信息素表。本地资源存储表负责本地资源的维护, 它包括节点的ID和IP信息, 这些信息可以用来开辟新的连接;关键字信息存储表存储该节点以前访问的相应的请求信息, 它可以对外提供资源信息的查询。信息素表存储了通往邻居节点上关键词信息素浓度值。

当节点新加入时, 需要初始化路由表, 信息素浓度初始值都为常量0, 当用户通过源节点进行关键词Key查询, 先检查本地的路由表是否有满足条件的资源, 则将其返回给用户, 并修改路由表, 如没有, 则根据主题相似函数检查是否有相关主题。两个主题的相似度用夹角相似公式:

每个主题D可以表示为一个范化特征矢量Ψ (D) =[α (Ψ) (t1) , ..., α (Ψ) (ti) , ..., α (Ψ) (tm) ]。α (ti) 表示词条i权重要程度的权值。假设两个查询的矢量分别是U和V, 夹角越小说明查询的相似度越高。其决策规则为:若S (V, U) ≥ζ, 则U, V相似;否则不相似, 相似度阈值的确定公式为:

其中σ[s, l]表示阈值的自信度, ζ[s, l]表示划分的相似度阈值。

如果相似度一样, 再根据信息素浓度值的高低来判断下一跳。当用户在返回命中消息包时, 沿途节点的信息素表更新规则如下:m= (1-ρ) *m+Δm (1)

其中ρ是挥发系数, 通常设置ρ<1, 用来避免信息素的无限增加。Δm为信息素的增量, 这里根据下式得出:

W是增加的信息素原始总量, 为常数。μ为节点浓度差, 是一介于0和1之间的调节因子。Sij为目标节点i到节点j的跳数, 这样就保证了在每次增加信息素浓度时, 离目标节点越近的节点增量越多, 其增量随着当前节点与目标节点距离的增大而递减。每隔一段时间, 信息素会自动更新, 形成信息素的挥发现象, 这时, Δm取值为0。

2.3 路由表的更新与维护

为了避免残留信息过多引起的残留信息淹没启发信息的问题, 在每一只蚂蚁完成对节点的访问后, 并返回消息包时, 必须对残留信息进行更新处理, 又因为缓存是有限的, 因此每个节点根据信息量大小来管理缓存空间, 下面画出路由信息表的更新与维护的算法框图 (图1) 。

3 仿真与实验

本文通过实验对基于蚁群算法的非结构化P2P网络搜索的改进算法的性能进行评估, 考察其搜索成功率、响应率 (平均每次搜索产生的响应结果数) 、产生的冗余消息以及整体性能 (搜索效率) , 并与两个典型的洪泛算法和随机漫步算法进行性能比较。

所有实验在一台Core (TM) 2 Duo 2.00 GHz处理器、2G内存、Windows XP操作系统的PC机上完成。用PeerSim模拟P2P网络环境, 网络拓扑是基于BRITE产生的10000个节点的power law模型。其中最大节点度数为315、最小节点度数为4, 平均节点度数为8, 以上三种搜索算法采用Java语言编程实现并在PeerSim上运行。

实验中采用100个对象, 其拷贝分布和查询分布服从Zipflike分布, 且分别为Zipf-like (α=1) 和Zipf-like (α=0.9) 。这一设置符合的调查结果:流行对象的拷贝数量占所有拷贝数量的50%, 对它们的查询次数占所有查询次数的60%。另外, 随机选择10%的网络节点 (即1000个) 进行查询, 每个节点进行约2600次查询。

当搜索深度TTL达到10跳时, 仿真实验结果如图2所示。从图2中可以看到本文中改进的算法搜索成功率明显高于洪泛和随机漫步算法。另外从图3看出在响应率方面, 基于蚁群算法的非结构化P2P网络搜索的改进算法比洪泛和随机漫步算法提高了近一个数量级。其次, 图4用消息冗余度 (即冗余消息数量占总消息数量的百分比) 来比较各种算法在搜索过程中产生的冗余消息。图5比较了各种算法的搜索效率。随着搜索深度的递增, 基于蚁群算法的非结构化P2P网络搜索的改进算法不仅能够有效地减少冗余消息, 而且在效率方面都比洪泛和随机漫步算法都高。

4 结论

本文基于蚁群算法的非结构化P2P网络搜索的改进算法, 在一定程度上减少了节点的信息处理量, 减少了查询带来的网络流量和盲目性, 对网络拥塞控制起到了一定的作用, 使P2P网络的性能得到了进一步的提高。如何动态的确定TTL参数的选取, 更好地提高P2P网络的搜索性能是我们下一步研究的重点。

摘要:如何高效地搜索P2P网络上的资源是P2P网络实现的最为关键的问题。非结构化的对等网络, 一般以广播方式作为其搜索的基本策略, 引发较大的网络流量和盲目性。本文针对以上问题, 引入人工智能领域的蚁群算法, 利用蚂蚁信息素的多样性和正反馈机制, 有效的指导节点选择查询, 以便更快地找到查询结果。仿真结果表明, 该算法有效地减少了查询带来的网络流量和盲目性, 提高了查找的成功率。

关键词:对等网络,蚁群算法,信息素,非结构化P2P,查询

参考文献

[1]Stoica, Morris R, Karger D.Chore.a scalable peer-to-peer loopup service for internet applications.ACM SIGCOM M.san Diego.USA.2001.

[2]Ripeanu M.Peer-to-peer architecture case study:gnutella network.1 IEEE International Conference on Peer-to-peer Computer (P2P2001) .Linkoping, Sweden.2001.

[3]Clarke I, Sandberg O, Wiley B.Freenet:a distributed anonymous information storage and retrieval system.The ICSCI Workshop on Design Issues in Anonymity and Unobservability .Berkeley.California.USA.2002.

[4]Colorni A, Dorigo M, Maniezzo V.An investigation of som prop-erties of an ant algorithm[C] In:Proc.of the Parallel Problem Solv-ing from Nature Conference  (PPSN’92) .Brus2sels.Belgium:Elsevier Publishing.1992:509-520.

[5]B Yang, H Garcia2Molina. Imp roving Search in Peer2to2Peer Net2works[C].ICDCS.2002.

[6]Kalogeraki V, Gunopulos D, Zeinalipour-yazti D.A Local Search Mechanism for Peer-to-Peer Networks [C] Proc. of the 11th Inter-national Conference on Information and Knowledge Management.New York,  USA: ACM Press.2002.

[7]Lv Q, Cao P, Cohen E, et a1.Search and replication in unstructured peer-to—peer networks[C].New York:Proceedings of 16th ACM International Conference on supercomputing (ICS’02) .2002.

[8]Rocchio J.Relevance feedback in information retrieval [A].Salton G.SMART Retrieval Sys:Experiments in AutomaticDoc Proc[C].NJ.USA:Prentice- Hall.1971.

[9]Salton G, Wong A, Yang C.A vector space model forautomaticind-exing[J].Commu of ACM.1995.

[10]PeerSim P2P simulator[EB/OL].[2007201218].http://peersim.sourceforge.net.

[11]BR ITE:Boston University rep resentative Internet topology generator[EB/OL]. [2007201218].http://www.Cs.Bu.Edu/brite.

上一篇:三角模糊分析下一篇:连锁经营企业营销管理