改进的人工蜂群算法在多目标参数优化中的应用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
改进的人工蜂群算法在多目标参数优化中的应用
王耀光1,王振林2,李迅波2
摘要:本文在Pareto 非支配集的基础上提出改进蜂群适应度算法操作,对蜂群算法产生的每一个个体进行局部搜索。为了提高算法的搜索率,采用精英选择加快多个目标的并行搜索。实验结果表明该方法与蜂群算法相比能快速地收敛于Pareto 最优解。 关键词:多目标优化,蜂群算法,Pareto 最优解
1引言
多目标优化是实际中广泛存在的NP 求解难问题。通常问题的最优解不是单个解,而是多个解,并且各个解之间的结果是不可比较的。近年来出现了许多优秀的多目标有优化算法,比如遗传算法、鱼群算法、粒子群算法以及其改进的算法[1-5]。但是这些算法还是存在收敛慢、容易陷入局部最优解等问题,有待进一步改进。
为了优化多变量、多模态数据函数,Karaboga 在2005年首次提出采用人工蜂群(ABC)算法来描述该问题[6]。该算法是模拟蜜蜂群觅食的智能算法,根据各自分工进行不同的活动,实现蜜蜂群信息的交流个体共享,从而找到问题的最优解。函数优化结果表明该算法比遗传算法、粒子群算法、微分进化算法具有更好的优化性能。
2 多目标人工蜂群算法
2.1多目标优化问题
考虑如下多目标优化问题:
12min ()((),(),,())m f x f x f x f x = ,
(1)
s.t.[,].x a b ∈,
其中,决策向量SN x R ∈,即12(,,,)SN x x x x = ,目标向量()m f x R ∈。多目标优化中,各个目标通常是相互制约的,一个目标得以优化,往往是牺牲其它目标的性能为代价,为了对多目标问题进行优化本文采用基于Pareto 的人工蜂群算法 进行求解。
Pareto 最优解集中的解是彼此不可比较的,解集中的解数量越多,分布越广泛,决策者的选择空间越大,越能对实际多目标问题进行合理求解。 2.2 个体适应度
本文采用双倍排序和自适应密度法,对个体的适应度赋值,首先根据Pareto 的支配关系,对群体中的每一个个体排序,再根据周围的拥挤情况计算适应度密度值,最后综合确定适应度。其方法如下: 1) 计算群体Q 中每个个体i 的排序()R i '
(){|,}R i j j Q j i i Q '=∈∀∈ (2)
其中,符号"" 表示Pareto 支配关系,即上式表示当前群体Q 中支配个体i 的个数。
2) 个体i 的排序()R i :
,()()()j Q i j
R i R i R j i Q ∈<''=+
∀∈∑
(3)
上式表明个体i 的排序数()R i 等于个体i 的伪排序数与支配个体i 的所有个体的伪排序数之和。
(3)根据种群的规模SN 将目标空间划分成e e e k
n n n ⨯⨯⨯
个网格,e n 表示
a ,小数部分为r 则
010e a
r n a r =⎧=⎨
+≠⎩ (4) 将每个个体所在的网格区域的个体数作为给个体的密度值。
(4)个体适应度值:
1
exp(()*())
i fit R i i ρ=
(5)
式中,()R i 表示个体i 的排序号,()i ρ表示个体i 的密度值。 2.3基于Pareto 的人工蜂群算法
在ABC 算法中,人工蜂群由采蜜蜂、观察蜂和侦察蜂三部分组成。蜜源的位置代表优化问题的可能解,蜜源的花蜜量代表相应解的质量或适应度。采蜜蜂的数量和解的数量相等。首先ABC 算法随机产生SN 个初始解(SN 为采蜜蜂数量)。每个解(1,2)i x i SN = 是一个D 维的向量,D 是优化参数的个数。经过初始化后,蜂群的位置(解)随着采蜜蜂、观察蜂和侦察蜂搜索开始循环。采蜜蜂根据记忆中的局部信息调整其位置并检查新蜜源的花蜜量。如果新位置的花蜜量比原来的多,则蜜蜂记住新的位置忘记旧的位置,否则保留旧的位置。在所有采蜜蜂完成
搜索过程后,它们将在舞蹈区与观察蜂分享蜜源的花蜜信息和位置信息。观察蜂据此按与花蜜量相关的概率选择一个蜜源位置,像采蜜蜂那样根据记忆中的位置做一定的调整,并检查新候选位置的花蜜量。如果新位置的花蜜量优于旧位置的花蜜量则忘掉旧的位置记住新位置。 主要算法步骤如下: 1、 初始化种群的数量; 2、 循环搜索;
3、 将采蜜蜂放置到蜜源位置;
4、 根据观察蜂的记忆将其放置到蜜源位置;
5、 放出侦察蜂到搜索区域寻找新的蜜源;
6、 记住搜索过程中最好的蜜源位置;
7、 循环搜索直到满足要求。
本文利用Pareto 最优概念,将优于某个体的个体适应度值作为该个体的适应度值,一个观察蜂选择蜜源的概率取决于蜜源的概率值i p ,其计算如下:
1
i
i SN
n
n fit p fit
==
∑ (6)
其中,i fit 是第个体i 的适应值,SN 是采蜜蜂数量(或蜜源数量)。 为了从记忆中就得蜜源位置产生一个新的蜜源位置,ABC 算法采用如下表达式:
()ij ij ij ij kj v x x x φ=+-, (7)
这里{1,2,)k SN ∈ ,{1,2,,}j D ∈ 是随机选择的下标,且k i ≠;
φ是在[-1,1]之间的随机数;它控制ij x 领域内新的蜜源的产生并代表蜜蜂对两个可视范围内两个蜜源位置的比较,从(7)式中可以看出随着ij x 与kj x 之间的差距缩小,对位置ij x 的扰动就越小,因此在解空间内随着最优解得逼近,步长将相应地减少。 在人工蜂群算法中,如果一个蜜源位置经过限定次数的循环后仍然不能被改
进,那么该蜜源处的采蜜蜂成为侦察蜂,该蜜源位置将被解空间内随机产生的一个位置所代替。设放弃的蜜源位置是i x ,则侦察蜂发现新蜜源并替换i x 的操作如下:
min max min [0,1]()j j j j
i x x rand x x =+-, (8)
式中,{1,2,,}j D ∈ 。