蜂群算法在函数优化问题中的应用.docx

上传人:rrsccc 文档编号:9176391 上传时间:2021-02-05 格式:DOCX 页数:3 大小:14.42KB
返回 下载 相关 举报
蜂群算法在函数优化问题中的应用.docx_第1页
第1页 / 共3页
蜂群算法在函数优化问题中的应用.docx_第2页
第2页 / 共3页
蜂群算法在函数优化问题中的应用.docx_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《蜂群算法在函数优化问题中的应用.docx》由会员分享,可在线阅读,更多相关《蜂群算法在函数优化问题中的应用.docx(3页珍藏版)》请在三一文库上搜索。

1、蜂群算法在函数优化问题中的应用chrom= 0110110100 x1chrom【1】= 1101001011 x2实验表明,独立编码较整体编码具有良好的收敛性,能使函数较好地逼近于极值。原因主要在于当杂交和变异概率不变时,原始的整体编码由于精度要求,导致位串过长,而其中相当大的一部分位串只表示小数点后的数值,所以若杂交和变异算子作用在这一部分上,则对数值的改变不大。而独立编码由于大大缩短了位串长度,所以使得杂交和变异算子有很大可能作用到代表小数点以前的数值位串上,致使自变量的数值有较大改变。这就能使算法有效地跳出局部最优解陷阱,更好地接近全局最优解。2.2 选择与交叉蜂后以一定的速率穿梭于空

2、间中的不同区域,并在各个区域内随机地与碰到的雄蜂进行交配。在婚飞的开始,给蜂后赋予一定量的能量,在能量消耗到零或某一限度时或在受精囊装满时返回蜂巢。雄蜂提供给后代一半的基因,因此保证雄蜂的高适应度也有利于产生适应度较高的幼蜂。为此,我们使用一个模拟的退火算法【6】来对雄蜂进行选择。按照退火算法的原理,令当前的雄蜂为 D0,随机产生下一个用于交配的雄蜂为 D1,如果f (D1)≥f (D0)则D1被接受为当前雄蜂(f(D)表示雄蜂 D的适应度 ),准备与蜂后交配。否则 D1仅以概率:P(D0,D1) = (1)被接受。S(t)表示蜂后在t时刻的速率,随着时间的推移,S(t)的值会越来越小,

3、则接受不良个体的概率也就越来越小,所以总能保持雄蜂的高适应度。雄蜂与蜂后交配的随机率用下式表示:prob(Q,D)= (2)此处,prob(Q,D)是将D的精子加入到蜂后Q的受精囊的概率,也就是指交配成功的概率;f(t)是 D的适应度f(D)与Q的适应度f(Q)的绝对差值;S(t)表示蜂后在t时刻的速率。表面上看来这个函数有些类似退火算法,当蜂后在刚开始婚飞因而速率很大时或是雄蜂的适应度和蜂后的一样高时,交配的概率很大。随着时间的推移,蜂后的速率和能量以下面的方式衰减:S(t+1)=α*S(t) (3)E(t+1)=E(t)-r (4)此处,α是一个因子, &alpha

4、;∈;r是每次转移后能量的消耗量。2.3变异和灾变自然界中的变异率是进化的动力,只有通过变异率才能使后代产生前代没有的特性,为进化提供条件。同时变异率设置得是否合适对于算法的表现也有很大的影响。如果变异率太小则某位的有效基因可能经过好多代的进化都不会出现,算法容易陷入局部解中;如果变异率设得太大则经常变异容易丢失一些有效基因,反而倒丧失了启发性而变得更像随机搜索。一般情况下,变异率设在0.00010.1就比较合适了。在自然界中,有时会因为环境的突然性的巨大变化而使物种发生很大的改变,这时原有的基因平衡被打破,创造出完全不同的染色体,生物的性状发生很大的变化。将这种思想应用于我们的蜂群

5、算法中,有利于进化跳出局部极值点,快速、准确地搜索出全局最优解。但是,灾变率的选择也不是任意的,它应该根据具体的情况而合理地设定。多次实验的结果表明:选择灾变率的标准是要在整个的进化过程中保证发生1到2次的灾变。否则,若灾变率设得太小,可能整个进化完成后都没有发生一次灾变,也就丧失了设置灾变率的意义;若灾变率太高,则多次的反复灾变就很容易丢失经过多代进化积累起来的有利基因组合。3 算法实例测试为了体现蜂群算法的效果,分析解决问题的有效性,本文使用Rosenbrock函数作为测试函数,并将结果与基本遗传算法进行了比较,结果表明:蜂群算法能以较小的幼代数目、较小的进化代数得到比基本遗传算法高得多的

6、命中率搜索出最优解。在以下的测试中,基本遗传算法的运行参数为:群体大小:M=80;终止代数:T=200;交叉概率:Pc=0.6;变异概率:Pm=0.001。蜂群算法的运行参数为:群体大小:M=15;终止代数:T=60;变异概率:Pm=0.001;灾变概率:Pd=0.002。Rosenbrock函数的全局最大值计算:max f( χ1, χ2 )=100( χ12 -χ2 ) 2 +(1-χ1) 2(-2.048≤χ1,χ2 ≤2.048) (5)如图 1所示,该函数有两个局部极大点,分别是f(-2.048,2.048)=389

7、7.73,和 f(-2.048,-2.048)=3905.93,其中后者为全局最大点。由上面的测试结果可知,蜂群算法比基本遗传算法能更快、更准确地收敛到全局最优解,命中率较高。蜂群算法的性能明显高于基本遗传算法,能快速准确地搜索出全局最优解,是生物模型与计算机模型的较好的结合,是对于遗传算法的成功的改进。4 总结本文使用独立的编码方式使得染色体的变化不过多地局限于小数点后一些对结果影响不大的位,使染色体的变化在解的空间上能有较大的跨越,加快了向局部解收敛的速度。灾变的应用使算法能突发性地从局部最优解跳出,重新选择方向,向着全局最优解的方向进化,使得算法能较准确地搜索出全局最优解。总体上说,蜂群

8、算法是个与传统的遗传算法很不一样的过程,它的结果只强调于每一代中的一个最优个体,好像是针对性偏强,却在反映物种多样性上偏弱,但是正是因为它的针对性较强,将目标紧紧地盯住全局最优解,所以才能快速、准确地搜索出全局最优解。此外,该算法很灵活,在雄蜂的选择、蜂后与雄蜂交配的概率、工蜂对幼蜂的抚育作用这些地方都可以针对不同的问题而使用不同的选择标准或启发函数,具有很大的发展空间。而且蜂群算法中也存在着一般遗传算法没有出现过的特殊现象:一般的遗传算法每代的平均适应度会随着进化代数的叠加而不断提高,而蜂群算法却不一样,它每代的平均适应度是不受代数影响的,有时可能保持好多代都不变,有时甚至会减小。而这种现象

9、的产生也是由蜂群算法的特点所决定的。因为在进化到一定程度时,蜂后在不断地进化,雄蜂也在不断地进化,可能当前的蜂后和雄蜂都是当时最好的,所以它们可能是一代中许多幼蜂的父母或者甚至是以后好多代的父母,相同的基因产生的初始幼蜂当然相同,而且可能每个幼蜂经过变异后的基因都不如当前的情况,所以蜂群就好像陷入了一个停滞不前的情况了,许多代的平均适应值都是一样的。而平均适应度的减小则是因为蜜蜂的单倍体交叉特性,可能蜂后和雄蜂的适应度都是高的,可经过单倍体交叉后,恰好雄蜂染色体中的有利基因被标记了,而蜂后在对应标记位上的基因是不利的,所以产生的幼代的适应度反而会降低。参考文献:【1】 胡中华,赵敏.基于人工蜂

10、群算法的机器人路径规划.电焊机,2009(39):4.【2】 丁海军,李峰磊.蜂群算法在TSP问题上的应用及参数改进.中国科技信息,2008(3).【3】 高尚,杨静.群智能算法及其应用.北京:中国水利水电出版社,2006:58-63.【4】 Karaboga D,Basturk B.Onthe performance of Artificial Bee Colony (ABC) algorithm.Applied Soft Computing Journal,2007(5).【5】 MouloudKoudil, KarimaBenatchba. Using artificial bees to solve partitioning and scheduling problems in codesign.Applied Mathematics and Computation,2007:186.【6】 Afshar A, Bozorg Haddad O. Honey-bee mating optimization (HBMO) algorithm for optimal reservoir operation.Journal of the Franklin Institute,2007:344.出处:电脑知识与技术

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1