论文题目:A Novel Evolutionary Algorithm for Dynamic Constrained Multiobjective Optimization Problems
动态约束多目标问题的一种新进化算法(Qingda Chen , Student Member, IEEE, Jinliang Ding , Senior Member, IEEE, Shengxiang Yang , Senior Member, IEEE, and Tianyou Chai)EEE TRANSACTIONS ON EVOLUTIONARY COMPUTATION, VOL. 24, NO. 4, AUGUST 2020
刚开始学习多目标优化算法,不作商业用途,如果有不正确的地方请指正!
个人总结:
下次来补充
摘要
- 提出了一组具有挑战性特征的通用问题来促进动态约束多目标优化的研究
- 问题包括真实的pareto前沿的不同模式和变化的可行域
- 并设计了一个具有非支配解选择算子、配对选择策略、种群选择算子、变化检测方法和变化响应策略的动态约束多目标优化算法
- 非支配解选择算子能够在环境变化时获得具有多样性的非支配种群。
- 交配选择策略和种群选择算子能够自适应地处理不可行解。
- 如果检测到变化,所提出的变化响应策略结合随机生成的解重用部分旧解来重新初始化种群。
- 并设计了一种稳态更新方法来改进保留的先前解。
引言
在整个优化过程总涉及多个目标和约束,这些目标和约束可能随时间而变化。这样的问题可以被称为动态约束多目标优化问题(DCMPOs)。在数学形式上表达为:
求解多目标优化问题( Multiobjective Optimization Problem,MOP )的目标是获得一组非支配解,所有的非支配解都必须是可行的。与无动态约束多目标优化( CMOPs )和无约束动态多目标优化( DMOPs )相比,DCMOPs由于同时存在约束和动态,具有更大的挑战性。
对于一个DCMOP,目标函数的真实POF可以由无约束POF (即无约束DCMOP的POF)和可行域的边界确定.当可行域的下界不规则时,DCMOP的真实POF可能会变得不连通。
真实的POF的不连续性可能导致种群滞留在局部区域,降低种群多样性,此外动态性和约束性会导致真正的POF以不规则的方式运动。
本文提出的想法
为了推进动态约束多目标进化算法( d CMOEA )的研究现状,作者设计了一组测试问题,并提出了一种新的DC-MOEA来求解他,主要内容有:
- 将DCMOPs的两个重要特性引入测试问题中。
- 提出了一种适用于DCMOPs的非支配解选择算子。当新环境出现时,所提出的非支配解选择算子可以保留上一环境中得到的部分非支配解,增加新环境中非支配集的多样性。
- 在设计的交配选择策略和种群选择算子中引入了约束处理技术,能够平衡种群多样性和算法收敛能力
- 提出了一种变化检测策略,可以准确地检测出目标函数或约束中出现的动态性。
相关工作
A.约束处理技术
CMOPs的约束处理技术可分为3类:
- 优先考虑可行解以存活到下一代的技术;
- 权衡可行性与收敛性的技术;
- 修复不可行解的技术。
作者分别介绍了每个类下面的各个算法和一些不在这三个类里面的算法埋个点,以后有空再看。
B.变化响应策略
变化响应策略又可分为一下三类:
- 多样性增强
- 记忆机制
- 预测策略
- 补充的(多种群策略)
作者也讲到了各自类的算法,当然很多算法都是多种方法结合一起应对环境变化。
提出测试问题
基于实际应用,作者考虑了4种类型的测试问题:
- 可行区域随t先增加后减小,而真实POF从连续变为断开,最后又回到连续。
- 可行区域随t先减小后增大,而真实POF从断开变为连续,最后又变为断开。
- 可行区域随t先增加后减小,而真实POF从断开变为连续,最后又回到断开。
- 可行区域随t先减小后增大,而真实POF从连续变为断开,最后又变为连续。
又考虑到一些现实问题中的目标函数会在几种优化模式之间震荡,提出了DCMOP无约束POF的两种情况 :
- 无约束 POF 具有一种模式,包括凸性和凹度。具有快速收敛的算法可以轻松解决此类问题
- 物镜函数在几种模式之间振荡,可能包括凸性和凹面。
基于上述讨论的各种,提出了以下实例生成器:
在上面的目标函数中:
- s(t)是一个非负的动态参数,用于控制无约束的POF运动,s(t)的大范围移动也会导致POF出现大范围运动。
- h(xi,t)是一个非负函数,使得0≤h(xi, t)≤s(t)。
- At控制无约束的POF曲率。
- Wt确定无约束POF的混合凹段和凸段的数量,正确设置 Wt 可以使不受约束的 POF 在几种模式之间振荡。
- g(xII, t) 是一个非负函数,用于确定 POS 中解决方案的起始位置和变化,最小值为零。
因此目标函数可以表示为:
基于此公式具有不同s(t)、at和Wt设置的无约束POF如下图所示:
当遇到上述两种DCMOP无约束POF的情况时 :
- 对于无约束POF具有一种模式时,Wt设置为常数
- 无约束 POF 在几种优化模式之间振荡时,Wt = φsin(ηπ(t + 1)),φ控制振荡的曲率,而η确定振荡的周期(即周期为 2π /ηπ),当目标函数为
φ 和 η 对无约束的 POFs影响如图所示
- a为φ = 6 ,η = 0.4 的 DCMOP 的无约束 POF;(b)为φ = 3,η = 0.4。
提出DCMOEA
算法伪代码:
A.初始化
对于DCMOP来说,当可行域比较小时,很难生成可行的解决方案。但是POS和POF中的解决方案必须是可行的,所以作者规定在初始化时必须有一个可行的解决方案并设计了如下方法:
- 首先使用
生成xij,rand为0-1之间的整数
- 其次
计算每个解的约束偏差值。
- 其中 Gk(xi, t) 和 Hk(xi, t) 分别表示在 t 处k 个不等式和相等约束违反。参数 c 是将相等约束放宽为不等式约束的容差值,v(xi, t) 是 xi 在 t 处的总约束违反,如果 v(xi, t) 为零,则 xi 是可行的解。
- 如果没有可行解就再重新生成。
B.非支配解选择
在DCMOP问题中,出现环境变化时之前的非支配解可能会变为支配解甚至时不可行解。为了解决这个问题作者提出:
- 当检测到环境时,使用上面v(xi, t)计算出A的中所有解的约束变差值,并从A中删除约束偏差值大于0的解。
- 之后A中的每一个解与都通过
计算后的适应度值相关联,其中 R 是解的集合,i 和 i' 是 R 中两个不同解的索引。 |·|表示集合的基数,i'<i 表示 i' 支配 i.F(i) 是 R 中第 i 个解的适应度值。
- 再删去A中的支配解,之后A为空集或者至少有一个可行解。
- 再使用同样的方法计算出P中的约束值,并将P中所有可行解复制到空集S中并使空集S中的每一个解都与适应度相关联。
- 再把S中所有的非支配解复制到S1中,若A为空则S1复制到A中。
- 若A中至少有一个解则有三种情况:
- 如果S1中的解由A中的任何解支配,则删除S1
- 如果S1中的解不受A中的任何解支配并不支配A中的任何解,则S1的解添加到A中
- 如果S1中的解不受A中的任何解支配但支配了A中的某些解,则把此解替加入到A中并删除A中被支配的解。
- 最后如果A中的数量大于N,则根据拥挤度排序保留前N个解
整体的伪代码如下:
C.交叉和遗传操作
现比较常见的方法:二元锦标选择,SBX交叉等
出现的问题:DCMOP同时涉及约束和动态,这意味着DCMOP的可行区域随动态而变化。如果从P中选择亲本的方法会影响算法的种群多样性和收敛速度;如果简单地从可行的解中选择可能会降低后代的多样性;而选择过多的不可行解可能会减慢算法的收敛速度。
作者提出:根据解的可行性比修改目标函数值,以平衡亲本群体中可行和不可行解的数量。此修改方法包括距离测量和自适应惩罚。具体步骤如下:
- 使用函数
对值进行归一化,其中fmax和fmin分别表示第m个目标函数的最大最小值,最下面的函数则为x在t处第m个归一化的目标函数值。
- 用上面的解的约束值计算公式与
一起计算出候选解在t处的总归一化约束冲突,这个值越小证明候选解越好!
- 由
得到第m个目标函数中xi的拥挤度
- 用
得到第m个目标函数中xi的惩罚值,其中rf表示当前人口的可行比率,
- 用
表示xi的第m个修正目标值
- 给每个解用
关联一个适应度值之后使用nsga-2中的方法计算拥挤度距离。
- 最后,根据第i个孩子算则来那个父母,根据P中解的适应度值和拥挤距离使用交配选择算子,伪代码如下:
- 一旦构建了亲本种群,就会使用二元交叉(SBX)和多项式突变(PM)算子来生成后代。
D.种群选择操作
对于DCMOP而言,如果可行区域随动态减小,则可能会出现更多不可行的解决方案。相反,不可行的解决方案的数量可能会减少。
如果简单的丢弃不可行方案,算法可能会陷入局部最优。
如果保留更多不可行的方案,算法的收敛速度就会下降。
为了平衡这两种情况dCOMEA考虑了两种处理不可行解的情形:
- P和Q的可行解数量小于或者等于阈值NF的情况
- P和Q的可行解数量大于NF的情况
1)Number of Feasible Solutions is Fewer Than or Equal to NF(小于或等于NF)
- 首先将P和Q中的解复制到空集C中,将C中的可行解缚复制到FC不可行解分配到IC中。
- 并对IC中的解按照之前的修正方法最终用上
进行修正。
- 和上面一样每个解关联一个适应度并通过快速非支配排序和拥挤比较算法选出最前面的解使得FC加上IC中前面的解的数量等于N
2)Number of Feasible Solutions is More Than NF(大于NF)
- 利用前面提到的公式对C的解目标函数值进行修正,并进行快速非支配和拥挤度比较选择N个解
具体伪代码如下:
E.动态处理
这块作者首先使用了一个变化检测方法检测DCMOPS在不可预见的环境下产生的变化,随后再对提出变化进行一个响应。
1)环境检测
作者使用同时检测目标函数和约束条件的策略检测环境变化步骤如下:
- 为了减少算法复杂度,随机挑选10%N数量的个体L
- 设i为1,如果i<L则重新计算第i个解的个目标函数值;若i>L,停止检测
- 如果i重新计算的值与之前不同则说明有变化,停止检测,否则就进行下一步
- 重新计算每个约束左右两侧的差值,如果差值与上一代不同,则认为检测到一个变化并停止检测,否则就令i+1 再从第二步后半部分开始循环
2)变化响应
这里作者采取了随机移民(random immigrants)和记忆方案在新环境出现时重新初始化种群
- 首先,通过前面初始化的方法初始化50%N数量的解放入空集R中
- 其次,重新评估前面的所有解并根据上文的方法计算修正目标函数值并使用快速非支配排序和拥挤度计算选择前50%N数量的解,与R组合,选择出可行解放入FS中
- FS中的每一个解赋予一个适应度值,对于第i个保留的前一个解使用公式
为每个变量定位一个新的位置,其中xrbestj是适应度值小于FS中两个随机解的适应度值的解的第j个变量。
- 为了快速计算可行性比率,使用
来快速估算t时刻的比率
- 当可行比率小时,相对应的不可行变量进行小幅修正,反之进行大幅修正。
伪代码如图所示:
F.dCMOEA的计算复杂度
dCMOEA的总体计算复杂度为O ( MN2 )或O ( N2logN ),取较大者
实验研究
对比一些其他算法证明dCOMEA算法确实好,有点看累了先跳过这里。
讨论
这里讲了算法的有效性和决策变量个数对算法的影响有兴趣的可以看看
结论
讲了所提出的问题和算法,认为算法在对三个目标上还需要有点改进,未来将研究可扩展的动态约束高多维目标优化算法。