《MPMLS》 2026.3.12

0 阅读4分钟

《Multiple Penalties and Multiple Local Surrogates for Expensive Constrained Optimization》

📖 摘要

  这篇论文针对昂贵约束优化(Expensive Constrained Optimization)中“函数评估代价高、可行解难找、代理模型构建成本大”的问题,提出了一种结合多重罚函数(Multiple Penalties)与多重局部代理模型(Multiple Local Surrogates)的进化优化方法 MPMLS,并在多组基准测试与真实翼型设计任务上取得了优于或不逊于现有方法的结果。

一、论文基本信息

论文标题:Multiple Penalties and Multiple Local Surrogates for Expensive Constrained Optimization  

作者:Genghui Li,Qingfu Zhang   

作者单位:香港城市大学(City University of Hong Kong)计算机科学系;香港城市大学深圳研究院(City University of Hong Kong Shenzhen Research Institute)   

出处:IEEE Transactions on Evolutionary Computation,2021,25(4)   

DOI/链接:10.1109/TEVC.2021.3066606

二、研究背景与动机

  论文研究的是一类很“难伺候”的优化问题:一方面,目标函数和约束函数的每次评估都非常昂贵;另一方面,解不仅要追求目标值更优,还必须满足约束条件。作者将这类问题写成标准形式:最小化目标函数 f(x)f(x),同时满足若干不等式约束 gi(x)0g_i(x) \le 0。为了统一衡量约束违反程度,文中定义了约束违反函数:

G(x)=i(max(0,gi(x)))2G(x)=\sum_i \left(\max(0, g_i(x))\right)^2

  在这类问题上,传统做法常常借助代理模型(Surrogate Model)来减少真实评估次数,也就是先用便宜的近似模型替代昂贵的真实函数,再用少量真实评估来校正搜索方向。过去二十年里,围绕昂贵约束优化,已经出现了不少代理辅助进化算法(Surrogate-Assisted Evolutionary Algorithms)。   不过,已有方法主要有两类老问题。第一类问题出在约束处理上。很多方法要么使用单一罚系数的罚函数,要么使用可行性优先(Feasibility Rule)这类规则。单一罚系数的问题在于,很难同时兼顾“寻找可行解”和“继续优化目标值”,而且也不容易维持种群多样性;可行性优先虽然有时更容易找到可行解,但常常会把搜索资源过多消耗在“先变可行”这件事上。   

第二类问题出在代理模型本身。全局代理模型(Global Surrogates)会随着训练样本增多而迅速变得昂贵;局部代理模型(Local Surrogates)虽然更便宜、局部更准,但又容易缺乏全局视野。把全局与局部代理混合起来的方法虽然折中,但全局建模开销依旧是个绕不开的问题。   

所以,这篇论文的核心动机非常清楚:作者想同时解决三个问题——如何平衡目标优化与约束满足、如何保持种群多样性、如何降低代理模型构建成本。围绕这三个问题,论文提出了 MPMLS:用多个罚系数形成多个子问题,用空间划分机制让不同子问题探索不同区域,再给每个子问题只配一个局部代理模型,从而在效率和效果之间找到更好的平衡。

三、核心方法与创新点

  核心思想:MPMLS 的基本思路可以概括为一句话——把一个昂贵约束优化问题拆成多个“罚系数不同、搜索区域不同、局部模型不同”的子问题,并行推进。这样做的好处是,不同子问题会天然偏向不同的“目标—可行性”权衡方向,整个种群就不容易一窝蜂地挤向同一种搜索策略。   具体来说,论文为每个子问题定义了如下罚函数目标:

F(xλi)=f(x)+λiG(x)F(x \mid \lambda_i)=f(x)+\lambda_i G(x)

  其中,f(x)f(x) 是原始目标函数,G(x)G(x) 是约束违反度,λi\lambda_i 是第 ii 个子问题对应的罚系数。不同的 λi\lambda_i 会让不同子问题对“目标更优”还是“更接近可行”有不同偏好。   论文真正巧妙的地方,在于它不是拍脑袋设罚系数,而是根据当前种群中目标值排序、约束违反排序以及罚函数排序之间的关系,自适应地估计一个合理区间,再在这个区间中均匀采样出多个罚系数。这样做的含义是:算法不会只拿一个固定尺度去衡量所有解,而是同时保留多种“价值观”。这对于约束优化尤其重要,因为边界附近的高质量不可行解,很多时候恰恰是通往最优可行解的桥。   另一个重要设计,是对子问题搜索区域进行动态划分。每个子问题并不是在整个解空间里搜索,而是在围绕当前解邻域确定的一个子区域 Ωi\Omega_i 中搜索。论文通过邻居点的最小值、最大值以及一个控制区域大小的参数 αi\alpha_i,为每个子问题生成不同大小的局部搜索盒。它的直觉很朴素:既然不同子问题本来就承担不同搜索职责,那它们也应该在空间上分工,而不是所有人都在同一片地方“内卷”。   在代理模型选择上,作者明确采用径向基函数模型(Radial Basis Function, RBF),并且对每个子问题只使用当前个体附近的若干已评估邻居来训练局部模型,而不是用全部历史样本训练一个笨重的全局模型。论文还特别指出,和高斯过程(Gaussian Process, GP)相比,RBF 在这类场景下通常更便宜,而效率并不差。   在优化子问题时,MPMLS 使用带有差分进化(Differential Evolution, DE)风格的预筛选机制:针对每个个体,利用多个 DE 变异与交叉算子产生大量候选后代,再通过局部代理模型评估这些候选,挑出看起来最有希望的一个做真实评估。这一步的本质,是把昂贵评估额度集中花在更值得验证的候选点上。   如果把论文的创新点拆开来看,我觉得至少有三条。   

创新点 1:多重罚函数,不再用单一罚系数硬扛所有搜索阶段。 这让算法能在“重目标、轻约束”和“轻目标、重约束”之间保留一整条连续谱,而不是只能在两头来回摆。   

创新点 2:多子区域并行搜索,主动维持种群多样性。 尤其在可行域内部存在多个局部最优,或者全局最优位于边界附近时,这种空间分工能明显降低过早陷入局部最优的风险。   

创新点 3:多重局部代理模型,兼顾精度与建模成本。 论文没有走“一个大而全的全局模型”路线,而是让每个子问题只建自己需要的局部模型,从机制上控制了代理训练复杂度。

四、实验与结果分析

  论文的实验安排比较完整,先做了两个二维人工问题的搜索行为展示,再在 CEC2006、CEC2010、CEC2017 三组经典约束优化基准上与多种强基线对比,最后又做了一个真实的翼型设计任务。整体上,作者不仅想证明“结果更好”,还想说明“为什么它会更好”。

4.1 搜索行为展示:MPMLS 到底是怎么搜的?

  作者先构造了两个二维人工约束优化问题 ATF1 和 ATF2。它们共享同一个二维 Rastrigin 目标函数,但约束形状不同:ATF1 的全局最优点位于可行域内部;ATF2 的全局最优点位于可行域边界上。这个设置很有针对性,因为它正好对应了约束优化里两种很常见、但搜索策略完全不同的场景。 在这里插入图片描述   图 1 MPMLS 在两个二维人工约束优化问题上的演化过程。黑色椭圆表示可行域,红点表示全局最优解,蓝色方块表示种群个体;左列为 ATF1,右列为 ATF2,不同行分别对应不同代数。   从图 1 可以看出,ATF1 这个问题里,MPMLS 的种群会从不同方向逐渐进入可行域,并且能够同时覆盖多个局部最优区域;这说明它的多罚系数和多子区域设计,确实在维持多样性方面发挥了作用。到了 ATF2,现象更有意思:由于全局最优位于边界,MPMLS 不会一股脑把所有个体都压进可行域内部,而是会同时保留一部分靠近边界的不可行解,与可行解一起向全局最优附近逼近。这个现象其实正好验证了作者的设计逻辑——在约束优化里,“有价值的不可行解”并不一定是噪声,很多时候它们反而是找到最优边界解的必要跳板。

4.2 数据集与基线模型

  数据集:论文使用了 CEC2006、CEC2010、CEC2017 三套经典约束优化基准问题,还额外测试了一个真实世界的 RAE 2822 翼型阻力最小化任务。前者覆盖了不同维度、不同约束形态和不同可行域难度,后者则能检验算法在高代价工程优化中的实际表现。   基线模型:作者主要对比了三类方法。其一是 CORCO,它本身不是代理辅助方法,而是经典约束进化优化中的强基线;其二是 (μ+μ)(\mu+\mu)-CEP-RBF,这是基于 RBF 的代理辅助进化规划方法;其三是 GLoSADE,它结合了全局代理与局部代理,并配合可行性规则和局部搜索,是昂贵约束优化里的代表性强方法。

4.3 CEC2006:在有限评估预算下,MPMLS 整体最强

在这里插入图片描述   表 1 CEC2006 基准函数上 CORCO、(μ+μ)(\mu+\mu)-CEP-RBF、GLoSADE 和 MPMLS 的平均最优函数误差。若某算法在 25 次独立运行中未找到可行解,则以成功次数代替,并在统计检验中给予大惩罚。   在 CEC2006 上,论文把真实函数评估次数限制在 3000 次,这个预算对昂贵优化来说相当苛刻。结果很有代表性:CORCO 虽然是常规约束优化中的强方法,但在评估次数受限时明显吃亏,甚至在 g06、g07、g09、g10、g16、g18 上都找不到可行解;相比之下,三种代理辅助方法都能在所有测试问题上找到可行解。   更关键的是,在这些代理辅助方法中,MPMLS 的整体表现最好。按论文的统计结果,MPMLS 相比 CORCO、(μ+μ)(\mu+\mu)-CEP-RBF 和 GLoSADE 都展现出了更强的总体优势;从综合排名看,MPMLS 也是整体最优。作者还提到,MPMLS 在 g06 上甚至找到了比当时最佳已知解更好的结果,因此误差为负值。这个细节很能说明问题:MPMLS 不只是“稳定”,而且在部分问题上真的有冲击更优解的能力。   当然,论文也没有把结果说得过满。它承认在 g10 和 g19 上,GLoSADE 反而优于 MPMLS。作者给出的解释也有道理:GLoSADE 使用可行性优先规则,在某些“可行域特别小”或“需要特别强调可行性”的问题上,更容易尽快找到可行解;同时,它还结合了局部搜索,因此有时在精修阶段占优。

4.4 CEC2010:高维下依然稳,而且优势更明显

在这里插入图片描述   表 2 CEC2010 基准函数上 CORCO、(μ+μ)(\mu+\mu)-CEP-RBF、GLoSADE 和 MPMLS 的平均目标函数值,分别报告 10 维与 30 维结果。   在 CEC2010 的 10 维和 30 维测试上,MPMLS 延续了很强的整体优势。10 维时,它在大多数问题上都取得了最好结果;30 维时,也依然保持了非常突出的竞争力,仅在个别问题上落后于 GLoSADE。把所有问题综合起来看,MPMLS 在统计检验中的总体表现依然最强。   我觉得这部分结果特别重要,因为它说明 MPMLS 的优势不是只在低维、演示型问题里成立。很多算法一到维度上去就会出现两个毛病:要么代理模型不准了,要么建模成本爆炸了。MPMLS 在这里还能保持竞争力,说明“多个局部小模型”这条路子在高维昂贵优化里确实更可持续。

4.5 CEC2017:问题更难时,MPMLS 依旧很能打

在这里插入图片描述   表 3 CEC2017 基准函数上 CORCO、(μ+μ)(\mu+\mu)-CEP-RBF、GLoSADE 和 MPMLS 的平均目标函数值,分别报告 10 维与 30 维结果。   CEC2017 的问题整体更复杂,很多问题在有限评估预算下,连找到可行解都不容易。论文里提到,在部分测试函数上,多个对比方法都出现了“反复运行仍找不到可行解”的情况。可即便如此,MPMLS 仍然在不少问题上拿到了最优平均结果;放到整体统计上看,它明显优于 CORCO 和 (μ+μ)(\mu+\mu)-CEP-RBF,并与 GLoSADE 保持了更有竞争力的水平。   论文在这里还专门总结了 MPMLS 相比 GLoSADE 的三个区别:第一,GLoSADE 用可行性优先,MPMLS 用罚函数,因此 MPMLS 更容易平衡目标优化与约束违反;第二,GLoSADE 需要全局代理,MPMLS 不需要;第三,GLoSADE 依赖外部局部优化器,而 MPMLS 只用进化操作完成搜索。这个总结其实把文章的立场讲得很清楚:它不是要做一个更复杂的“混搭框架”,而是想用更简洁的一套机制,换来更低建模成本和更稳健的搜索行为。

4.6 真实任务:RAE 2822 翼型优化

  在真实世界实验中,作者选择了 RAE 2822 翼型在跨声速黏性流场中的阻力最小化问题。这个任务很典型:目标是最小化阻力系数 cd(x)c_d(x),同时满足升力系数、俯仰力矩和翼型面积等多个约束。更关键的是,候选解的质量需要通过计算流体力学(Computational Fluid Dynamics, CFD)仿真来评估,而单次仿真大约就要 20 分钟。换句话说,这才是真正意义上的“昂贵优化”。 在这里插入图片描述   图 2 (μ+μ)(\mu+\mu)-CEP-RBF、GLoSADE 和 MPMLS 在 RAE 2822 翼型设计问题上的平均最优阻力系数收敛曲线。横轴为仿真次数,纵轴为阻力系数。   从图 2 看,(μ+μ)(\mu+\mu)-CEP-RBF 和 GLoSADE 在前期更快找到可行解,这并不奇怪,因为它们都更偏向可行性优先;MPMLS 则在前期显得没那么“激进”。但后续走势出现了反转:一旦 MPMLS 找到可行解,它对解质量的改进速度和最终结果都更有竞争力。论文最终的结论是,在 400 次仿真预算内,MPMLS 的表现优于或至少不逊于另外两种代理辅助方法。这个结果很有说服力,因为真实工程里,人们往往并不只关心“多快找到第一个可行解”,更关心“在总预算固定的情况下,最后能拿到多好的设计”。

五、总结与展望

  论文贡献:在我看来,这篇论文最核心的贡献,不只是提出了一个新算法名词,而是给昂贵约束优化提供了一种很有启发性的结构化思路:不要把“约束处理”“多样性维持”“代理建模”当成三个彼此独立的补丁,而要把它们设计成同一个分解框架里的协同机制。 MPMLS 通过多罚系数、多子区域、多局部代理三个部件互相配合,把“如何找可行解”“如何避免早熟”“如何省下建模成本”这三个经典矛盾,放进了一套统一方案里。   个人思考:这篇文章给我最大的启发,是它对“不可行解”的态度很成熟。很多约束优化方法天然把不可行解当作应尽快淘汰的对象,但这篇论文提醒我们:在边界最优、狭窄可行域、复杂多峰这类问题上,不可行解未必是坏东西,关键在于它是否“有信息量”。MPMLS 通过不同罚系数并行保留这些候选方向,本质上是在提高搜索的容错率。   当然,这篇论文也不是没有可以继续打磨的地方。首先,它目前只处理不等式约束(Inequality Constraints),对等式约束(Equality Constraints)的扩展还留在未来工作里;其次,论文默认所有子问题被平等对待,但现实中不同子问题的“回报率”并不一样,如果后续能做自适应资源分配,也许能进一步提升效率;另外,MPMLS 虽然避免了全局代理的高成本,但多个局部模型加上多子问题并行,也会带来一些实现复杂度,尤其在超高维或约束数很多时,这种复杂度如何继续控制,也值得继续研究。   总的来说,这是一篇问题意识很强、方法设计有层次、实验也比较扎实的论文。它不是那种单靠某个花哨模块“堆”出来的工作,而是围绕昂贵约束优化的几个真问题做了系统设计。对于想研究代理辅助优化、约束进化算法,或者工程设计优化的人来说,这篇文章很值得细读。