【说人话-论文导读1-1】约束进化优化的随机排序算法Stochastic Ranking for Constrained Evolutionary Optimization(持续更新中)

【说人话-论文导读1-1】Stochastic Ranking for Constrained Evolutionary Optimization


原文链接: Stochastic Ranking for Constrained Evolutionary Optimization
作者:Thomas P. Runarsson,Xin Yao

I. 介绍·Introduction

首先我们需要知道一个非线性优化问题A可以被形式化定义为:
m i n i m i z e   f ( x ) , x = ( x 1 , ⋯   , x n ) ∈ R n ( 1 ) minimize\ f(\boldsymbol{x}),x=(x_1,\cdots,x_n)\in \mathcal{R}^n(1) minimize f(x),x=(x1,,xn)Rn1

其中, x ∈ S ∩ F \boldsymbol{x}\in\mathcal{S}\cap\mathcal{F} xSF, S \mathcal{S} S表示解空间, F \mathcal{F} F表示可行解空间,且 S ⊆ R n \mathcal{S}\subseteq\mathcal{R}^n SRn,每个 x \boldsymbol{x} x都有自己的变量上界和下界,记为: x i ‾ ≤ x i ≤ x i ‾ , i ∈ { 1 , ⋯   , n } ( 2 ) \underline{\boldsymbol{x}_i}\leq\boldsymbol{x}_i\leq\overline{\boldsymbol{x}_i},i\in\{1,\cdots,n\}(2) xixixi,i{1,,n}2

而最终的可行解还需满足一些约束条件(constrains),数学表示为:
g j ( x ) ≤ 0   ∀ j ∈ { 1 , ⋯   , m } } ( 3 ) g_j(\boldsymbol{x})\leq0\ \forall j\in\{1,\cdots,m\}\}(3) gj(x)0 j{1,,m}}3

处理约束优化问题的一种常见方法是在目标函数中引入惩罚项,以惩罚违反约束的行为。惩罚项的引入使我们能够将一个受约束的优化问题(A)转化为一个不受约束的问题(A’),数学表示为: ψ ( x ) = f ( x ) + r g ϕ ( g j ( x ) ) ( 4 ) \psi(\boldsymbol{x})=f(\boldsymbol{x})+r_g\phi(g_j(\boldsymbol{x}))(4) ψ(x)=f(x)+rgϕ(gj(x))4

具体来说, f ( x ) f(\boldsymbol{x}) f(x)是原始的目标函数,而 r g ϕ ( g j ( x ) ) r_g\phi(g_j(\boldsymbol{x})) rgϕ(gj(x))是添加到目标函数中的惩罚项。每个 g j ( x ) g_j(\boldsymbol{x}) gj(x)代表一个约束条件,而 ϕ \phi ϕ是一个非负的实值函数,用于施加惩罚,可以简单理解为某个个体(解)满足约束条件的程度。参数 r g r_g rg是惩罚系数,它是随着迭代次数 g g g变化的一系列值,这意味着随着算法的迭代,惩罚的力度可以动态调整。
r g r_g rg的设定是一个值得讨论的问题,当 r g r_g rg设定的太小时,不可行的解可能会因为没有受到足够的惩罚而被保留下来。这意味着优化算法可能会找到一个不满足约束条件的解,并且由于惩罚不够,这个不可行的解仍然有可能在演化过程中被选中并传递到下一代。相反,如果 r g r_g rg设定得太大,那么即使是在演化早期阶段对于不可行区域的一点小小的探索也会受到严重的惩罚。这会使得算法倾向于只在可行区域内进行搜索,从而限制了整个搜索空间的探索,特别是在可行解区域是不连续的情况下。在这种情况下,如果没有探索不可行区域,算法可能很难从一个可行区域跳跃到另一个,除非这两个区域非常接近的情况。换句话说,一个合理设定的 r g r_g rg可以帮助算法在不同的可行区域之间过渡,而一个不合理的值则可能导致算法陷入局部最优或者完全忽略某些有前景的区域。
在一些简单问题上, r g r_g rg通常被动态地设定成随着代数单调非减的函数,而实际情况我们知道, r g r_g rg依赖于问题本身,其中一种最具潜力的方法是自适应调整 r g r_g rg,这种方法通过遗传算法本身(比如种群信息)来进行自动地、动态地调整。这种调整策略的优势是它能被应用到那些有着很少先验知识的问题中,因为我们不需要去找到一个预定义好的 r g r_g rg函数。
根据上面的公式我们可以知道,不同的 r g r_g rg定义了不同的适应度函数。一个解(个体)在某一个适应度函数下适应,并不代表它在另一个适应度函数下也适应。我们尝试自适应地找到一个最优的 r g r_g rg等效于自适应地给种群中的个体排序。(这句话很重要,我多讲两句,因为不同的 r g r_g rg对应了不同的适应度函数,而适应度函数会对每一个个体进行一个适应度值的评估,适应度高的个体保留,低的个体淘汰,所以不同 r g r_g rg对应的个体适应度评估值也不相同,所以种群中个体的排序也不相同,于是,一个最优的 r g r_g rg值等效于一个最优的排序)。
一种可以避免设置惩罚系数 r g r_g rg的办法是将约束优化问题转化成多目标优化问题,其中,约束被视为额外的目标函数,然而多目标优化并不比约束优化简单,因为在优化中必须平衡不同的目标。

II. 随机排序约束处理

A. 惩罚方法

给定一个惩罚系数 r g > 0 r_g>0 rg>0,有以下排序:
ψ ( x 1 ) ≤ ψ ( x 2 ) ≤ ⋯ ≤ ψ ( x λ ) ( 5 ) \psi(\boldsymbol{x}_1)\leq\psi(\boldsymbol{x}_2)\leq\cdots\leq\psi(\boldsymbol{x}_\lambda)(5) ψ(x1)ψ(x2)ψ(xλ)5

让我们关注其中的相邻两项,并且定义一个临界惩罚系数 r i ^ = ( f i + 1 − f i ) / ( ϕ i − ϕ i + 1 ) , ϕ i ≠ ϕ i + 1 \hat{r_i}=(f_{i+1}-f_i)/(\phi_i-\phi_{i+1}),\phi_i\neq\phi_{i+1} ri^=(fi+1fi)/(ϕiϕi+1),ϕi=ϕi+1
f i + r g ϕ i ≤ f i + 1 + r g ϕ i + 1 , i ∈ { 1 , ⋯   , λ } ( 6 ) f_i+r_g\phi_i\leq f_{i+1}+r_g\phi_{i+1},i\in \{1,\cdots,\lambda\} (6) fi+rgϕifi+1+rgϕi+1,i{1,,λ}6

对于给定的 r g > 0 r_g>0 rg>0的选择,以下三种不同的情况可能会导致不等式(6):

  1. f i ≤ f i + 1 f_i\leq f_{i+1} fifi+1 and ϕ i ≥ ϕ i + 1 \phi_i\geq \phi_{i+1} ϕiϕi+1:与不等式(6)比较说明,目标函数的大小关系是决定性因素,并且 0 < r g < r i ^ 0<r_g<\hat{r_i} 0<rg<ri^。当比较的个体都是可行解时, ϕ i = ϕ i + 1 \phi_i= \phi_{i+1} ϕi=ϕi+1 r i ^ → ∞ \hat{r_i}\rightarrow\infty ri^
  2. f i ≥ f i + 1 f_i\geq f_{i+1} fifi+1 and ϕ i < ϕ i + 1 \phi_i\lt \phi_{i+1} ϕi<ϕi+1:与不等式(6)比较说明,惩罚函数的大小关系是决定性因素,并且 0 < r i ^ < r g 0<\hat{r_i}<r_g 0<ri^<rg
  3. f i < f i + 1 f_i\lt f_{i+1} fi<fi+1 and ϕ i < ϕ i + 1 \phi_i\lt \phi_{i+1} ϕi<ϕi+1:此时 r i ^ < 0 \hat{r_i}<0 ri^<0,被称为非支配的,无论是目标还是惩罚函数都不能自行决定不平等(6)。

当比较第三种情况时, r g r_g rg的值对不等式(6)没有影响,换句话说,它不改变两个个体的排序。但是在前两种情况下, r g r_g rg的值很重要,因为 r i ^ \hat{r_i} ri^ r g r_g rg的关系将决定排序是以目标函数为主导的还是惩罚函数为主导的。举个例子,在第一种情况下,如果我们增加 r g r_g rg使得 r g > r i ^ r_g\gt\hat{r_i} rg>ri^,那么第 i + 1 i+1 i+1个个体的适应度将会变得小于第 i i i个个体的适应度。对于整个种群, r g r_g rg的选取将会决定被目标函数和惩罚函数支配的个体的分数。
然而,不是所有的 r g r_g rg取值都会影响个体的排序, r g r_g rg的取值范围是 r g ‾ ≤ r g ≤ r g ‾ \underline{r_g}\leq r_g\leq\overline{r_g} rgrgrg,这里的 r g ‾ \underline{r_g} rg是根据相邻个体仅根据目标函数计算出的最小关键惩罚系数, r g ‾ \overline{r_g} rg是根据相邻个体仅根据惩罚函数计算出的最大关键惩罚系数。简单来说,这意味着为了对个体进行排名,不是所有的惩罚系数都有效,它们必须在一个特定的计算出的范围内,这个范围由与目标函数和惩罚函数相关的计算结果决定。

  1. r g < r g ‾ r_g\lt\underline{r_g} rg<rg:所有比较仅基于适应度函数, r g r_g rg过小,导致其不足以影响个体之间的排序,我们称其为弱惩罚underpenalization.
  2. r g > r g ‾ r_g\gt\overline{r_g} rg>rg:所有比较仅基于惩罚函数, r g r_g rg过大,导致目标函数的影响可以忽略,我们称其为过惩罚overpenalization.
  3. r g ‾ ≤ r g ≤ r g ‾ \underline{r_g}\leq r_g\leq\overline{r_g} rgrgrg所有的比较都是基于目标函数和惩罚函数的组合。

所有的惩罚方法都可以被归类为以上三类,理解这三类方法十分重要,因为它们表明了哪个函数(函数的组合)正在推动搜索过程以及搜索是如何进行的。举个例子,为了找到既包含可行个体又包含不可行个体的好区域,大多数动态方法起始于一个较小的 r g r_g rg值,比如 r g < r g ‾ r_g\lt\underline{r_g} rg<rg。当搜索接近尾声,一个较大的 r g r_g rg值( r g > r g ‾ r_g\gt\overline{r_g} rg>rg)常被用来所有更好的可行解。对于无约束全局最优与其约束全局最优接近的问题,这种动态方法将很好地工作。但是对于那些约束全局最优远离其无约束的全局最优的问题时,这种方法起始时的较小 r g r_g rg值将会推动搜索朝向无约束全局最优,从而进一步远离约束全局最优。
在传统演化算法的进化策略中,处理约束的技术大致属于过惩罚的范畴,因为它们认为所有不可行的个体都被认为比可行的个体更差。实际上,规范进化策略(ES)只允许初始种群中有可行解,为了实施约束优化,ES可以用于通过最小化惩罚函数来找到有特征的初始种群,一旦找到可行的总体,ES算法将最小化目标函数,并拒绝生成的所有不可行解。
实际上,弱惩罚和过惩罚都是很好的约束处理技术,我们应该在保留可行个体和拒绝不可行个体之间取得平衡,换言之,个体的排序应该由目标函数和惩罚函数的组合决定,因此惩罚系数 r g r_g rg应该满足 r g ‾ ≤ r g ≤ r g ‾ \underline{r_g}\leq r_g\leq\overline{r_g} rgrgrg。值得注意的是,这两个界限并不是固定的。它们依赖于问题,并且可能随着世代的变化而变化,因为它们也由当前的种群决定。
一个简单的方法用于平衡一个排序中目标函数和惩罚函数占主导的比例,是分别统计相邻两个个体是以目标函数为主导还是惩罚函数为主导的数量。给定 r g r_g rg,通过公式 r i ^ = ( f i + 1 − f i ) / ( ϕ i − ϕ i + 1 ) , ϕ i ≠ ϕ i + 1 \hat{r_i}=(f_{i+1}-f_i)/(\phi_i-\phi_{i+1}),\phi_i\neq\phi_{i+1} ri^=(fi+1fi)/(ϕiϕi+1),ϕi=ϕi+1就能很快地比较。如果我们对应该由惩罚函数主导的相邻个体对的数量有预定的偏好,那么可以依此找到相应的惩罚系数 r g r_g rg
从本节的分析中可以清楚地看出,惩罚方法所要做的就是在目标函数和惩罚函数之间获得正确的平衡,从而使搜索在可行空间中向最优方向移动,而不仅仅是在可行和不可行的组合空间中向最佳方向移动。有效实现这种平衡的一种方法是直接而明确地调整这种平衡。这就是下一节中描述的随机排序的作用。

B. 随机排序

因为最优的 r g r_g rg很难选择,这里采用了一个不同的办法来实现目标函数和惩罚函数主导的平衡。这里引入了在搜索空间的不可行区域中仅使用目标函数进行比较的概率为 P f P_f Pf。也就是说,给定任意一对相邻的个体,如果两个个体都是可行解,则根据目标函数比较它们(以确定哪一个适应度更高)的概率为1,如果其中至少一个为不可行解,则用目标函数比较他们的概率为 P f P_f Pf
在这里,排序是通过一个类似冒泡排序的过程实现的(可以看成随机版本的冒泡排序)。其中, λ \lambda λ个个体在至少 λ \lambda λ次扫描内通过比较相邻个体进行排序,当在一次完整的扫描中排名顺序没有发生变化时,该过程将停止。在排序过程中,相邻个体赢得比较(即保持较高排名)的概率为:
P w = P f w P f + P ϕ w ( 1 − P f ) ( 7 ) P_w=P_{fw}P_f+P_{\phi w}(1-P_f) (7) Pw=PfwPf+Pϕw(1Pf)(7)

当两个比较的个体中至少一个个体是不可行解时, P f w P_{fw} Pfw是个体通过目标函数赢得比较的概率, P ϕ w P_{\phi w} Pϕw是个体通过惩罚函数赢得比较的概率。当两个个体都是可行解时, P w = P f w P_{w}=P_{fw} Pw=Pfw,因为上文提到“如果两个个体都是可行解,则根据目标函数比较它们的概率为1”。我们想要研究赢得比较次数比失利多 k 次的概率,那么总赢得比较的次数必须是 k ′ = ( N + k ) / 2 k' = (N + k)/2 k=(N+k)/2,其中 N N N是总的比较次数。这里解释一下为什么是 ( N + k ) / 2 (N + k)/2 (N+k)/2,我们通过一个例子来明确这一点。如果你有5次比较( N N N = 5),而要让一个个体被认为排名更高,他们需要赢得的次数必须多于输掉的次数。如果赢得的次数( k ′ k' k)小于或等于2,则输掉的次数将会多于赢得的次数。要确保他们赢得的次数多于输掉的次数, k ′ k' k 必须至少是3。一般来说,对于 N N N次比较,赢得 ( N + 1 ) / 2 (N+1)/2 (N+1)/2次是最小的多数胜出。现在,文中之所以用 ( N + k ) / 2 (N+k)/2 (N+k)/2而不是 ( N + 1 ) / 2 (N+1)/2 (N+1)/2,是因为 k k k是达到某个期望排名位置所需要的胜出次数超过失败次数的额外次数。本质上, k k k表示胜出次数超过失败次数的幅度。当考虑到这个期望的幅度时, ( N + k ) / 2 (N+k)/2 (N+k)/2公式给出了所需的总获胜次数。在 N N N次比较中赢得 k ′ k' k次比较的概率由二项分布给出:
P w ( y = k ′ ) = ( N k ′ ) P w k ′ ( 1 − P w ) N − k ′ ( 8 ) P_w(y = k') = \binom{N}{k'} P_w^{k'} (1 - P_w)^{N-k'} (8) Pw(y=k)=(kN)Pwk(1Pw)Nk8

而赢得至少 k ′ k' k次比较的概率为:
P w ′ ( y ≥ k ′ ) = 1 − ∑ j = 0 k ′ − 1 ( N j ) P w j ( 1 − P w ) N − j ( 9 ) P'_w(y \geq k') = 1 - \sum_{j=0}^{k'-1} \binom{N}{j} P_w^j (1 - P_w)^{N-j} (9) Pw(yk)=1j=0k1(jN)Pwj(1Pw)Nj9

公式(8)和(9)表明,比较次数 N N N越大,初始排名的影响就越小。这是因为随着比较次数的增加,个体赢得比较的概率分布变得更加平均,因此初始条件的影响会减弱。值得注意的是,不同个体赢得比较的概率( P w P_w Pw)在排序的不同阶段通常是不同的。现在考虑一种情况,即当 P w P_w Pw在整个排名过程中保持恒定,这是当 f i < f j f_i<f_j fi<fj ϕ i > ϕ j \phi_i>\phi_j ϕi>ϕj i ≠ j i\neq j i=j时的情况,那么 P f w = 1 P_{fw}=1 Pfw=1并且 P ϕ w = 0 P_{\phi w}=0 Pϕw=0。如果我们选择 P f = 1 / 2 P_f=1/2 Pf=1/2,那么 P w = 1 / 2 P_w=1/2 Pw=1/2。这将为基于目标函数或罚分函数的比较提供一个相等的机会。由于我们只对可行个体作为最终解感兴趣, P f P_f Pf应小于 1 / 2 1/2 1/2,这样就对不可行的解有偏见。偏见的强度可以通过简单地调整 P f P_f Pf来轻松调整。当参数 N N N,即扫描的次数,趋近于无穷大时,排名将由的 P f P_f Pf偏见决定。也就是说,如果 P f > 1 / 2 P_f>1/2 Pf>1/2,排名是基于目标函数的;当 P f < 1 / 2 P_f<1/2 Pf<1/2时,排名是基于惩罚函数的。因此,增加排名扫描的次数实际上相当于改变参数 P f P_f Pf,使其更大或更小。因此,我们可以通过调整 P f P_f Pf来调整达到最佳性能。表1展示了我们算法30次独立运行的平均结果。表中的数字表示最终种群中可行个体的百分比。从表中很清楚地看到,当 P f > 1 / 2 P_f>1/2 Pf>1/2 时,除非无约束的最优解恰好与约束的最优解相同,否则很难找到可行的解决方案。

文章给出了伪代码如下:
在这里插入图片描述
(未完待续……)

  • 24
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值