用于约束多目标优化问题的双群体差分进化算法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
用于约束多目标优化问题的双群体差分进化算法
孟红云1 张小华2 刘三阳1
(1.西安电子科技大学 应用数学系,西安,710071;
2.西安电子科技大学 智能信息处理研究所,西安,710071)
摘 要:首先给出一种改进的差分进化算法,然后提出一种基于双群体搜索机制的求解约束多目标优化问题的差分进化算法.该算法同时使用两个群体,其中一个用于保存搜索过程中找到的可行解,另一个用于记录在搜索过程中得到的部分具有某些优良特性的不可行解,避免了构造罚函数和直接删除不可行解.此外,将本文算法、N SGA-Ⅱ和SPEA 的时间复杂度进行比较表明,NS GA-Ⅱ最优,本文算法与SPE A相当.对经典测试函数的仿真结果表明,与NSGA-Ⅱ相比较,本文算法在均匀性及逼近性方面均具有一定的优势. 关键字: 差分进化算法;约束优化问题;多目标优化问题;
中图分类号:TP18
1 引言
达尔文的自然选择机理和个体的学习能力推动进化算法的出现和发展,用进化算法求解优化问题已成为一个研究的热点[1-3].但目前研究最多的却是无约束优化问题.然而,在科学研究和工程实践中,许多实际问题最终都归结为求解一个带有约束条件的函数优化问题,因此研究基于进化算法求解约束优化问题是非常有必要的.不失一般性,以最小化问题为例,约束优化问题(Constrai ned Opti mizatio n Prob lem ,COP )可定义如下:
)(COP ()()()()q
j x h p i x g t s x f x f x f x F j i k R
x n ,,1,0)( ,,1,0)( ..,,,)(min 21 ===≤=∈ (1) 其中)(x F 为目标函数,)(),(x h x g j i 称为约束条件,n n R x x x x ∈=),,,(21 称为n 维决策
向量.将满足所有约束条件的解空间S 称为(1)的可行域.特别的,当1=k 时,(1)为单目标优化问题;当1>k 时,(1)为多目标优化问题.)(x g i 为第i 个不等式约束,)(x h j 是第j 个等式约束.另一方面,对于等式约束0)(=x h j 可通过容许误差(也称容忍度)0>δ将它转化为两个不等式约束:
⎪⎩⎪⎨⎧≤--≤-0
)(0)(δδx h x h j j
(2) 故在以后讨论问题时,仅考虑带不等式约束的优化问题.进一步,如果x 使得不等式约束0)(=x g i ,则称约束()x g i 在x 处是积极的.在搜索空间S 中,满足约束条件的决策变量x 称为可行解,否则称为不可行解.
定义1(全局最优解)()
**2*1*,,,n x x x x =是COP 的全局最优解,是指S x ∈*且)(*x F 不劣于可行域内任意解y 所对应的目标函数)(y F ,表示为)( )(*
y F x F . 对于单目标优化问题,)( )(*y F x F 等价为)()(*y F x F ≤,而对于多目标优化问题是指不存在y ,使得)(y F Pa re to 优于)(*x F .
目前,进化算法用于无约束优化问题的文献居多,与之比较,对约束优化问题的研究相对
较少[4-6]。文[7]
对当前基于进化算法的各种约束处理方法进行了较为详细的综述.对于约束优化问题的约束处理方法基本上分为两类:基于罚函数的约束处理技术和基于多目标优化技术的约束处理技术.由于罚函数法在使用中不需要约束函数和目标函数的解析性质,因此经常被应用于约束优化问题,但该类方法对罚因子有很强的依赖性,需要根据具体问题平衡罚
函数与目标函数.为了避免复杂罚函数的构造,Ve rdegay 等[8]将进化算法中的竞争选择用于
约束处理,并在比较两个解的性能时提出了三个准则,但他的第三个准则—可行解优于不可行解—这一准则合理性不强 .然而该文的这一准则却为进化算法求解约束优化问题提供了新思路,获得了良好效果.
因为在现实中存在一大类约束优化问题,其最优解位于约束边界上或附近,对于这类问题,在最优解附近的不可行解的适应值很可能优于位于可行域内部的大部分可行解的适应值,因此无论从适应值本身还是从最优解的相对位置考虑,这样的不可行解对找到最优解都是很有帮助的,故如何有效利用搜索过程中的部分具有较好性质的不可行解是解决此类问题的难点之一.基于以上考虑,本文拟给出一种求解约束多目标优化问题的基于双群体机制的差分
进化算法,并对文中算法的时间复杂度与NSG A-Ⅱ[9]和S PE A[10]进行比较,最后用实验
仿真说明文中算法的可行性及有效性. 2 用于约束优化的双群体差分进化算法
2.1 差分进化算法
差分进化算法是一类简单而有效的进化算法,已被成功应用于求解无约束单目标和多目
标优化问题 [11-14].该算法在整个运行过程中保持群体的规模不变,它也有类似于遗传算
法的变异、交叉和选择等操作,其中变异操作定义如下:
()
321r r r P P F P C -⋅+= (3)
其中1r P ,32,r r P P 为从进化群体中随机选取的互不相同的三个个体,F 为位于区间]1,5.0[中的参数.(3)式表示从种群中随机取出的两个个体32,r r P P 的差,经参数F 放大或缩小后被加到第三个个体1r P 上,以构成新的个体()n c c C ,,1 =.为了增加群体的多样性,交叉操作被引入差分进化算法,具体操作如下: 针对父代个体),,(1n r x x P =的每一分量i x ,产生位于区间]1,0[中的随机数i p ,根据i p 与
参数CR 的大小关系确定是否用i c 替换i x ,以得到新的个体),,(1
n r x x P ''=' , 其中 , , ⎩⎨⎧='i i i x c x if if CR
p CR p i i ≥<.如果新个体r P '优于父代个体r P ,则用r P '来替换r P ,否则保持不变.在差分进化算法中,选择操作采取的是贪婪策略,即只有当产生的子代个体优于父代个体时才被保留,否则,父代个体被保留至下一代.
大量研究与实验发现差分进化算法在维护群体的多样性及搜索能力方面功能较强,但收敛速度相对较慢,因此本文拟给出一种改进的差分进化算法用于多目标优化问题,仿真实验表明,改进的差分进化算法在不破坏原有算法维护群体多样性的前提下,可改善差分进化算法的收敛速度.