软件学报 2023 论文《面向复杂约束优化问题的进化算法综述》阅读笔记

一、论文基本信息

项目 内容
标题 面向复杂约束优化问题的进化算法综述
作者 陈少淼, 陈瑞, 梁伟, 李仁发, 李智勇
单位 湖南科技大学 / 湖南大学
期刊 软件学报, 2023, 34(2): 565-581
DOI 10.13328/j.cnki.jos.006711
关键词 约束优化; 进化算法; 多目标; 高维; 高计算开销; 等式约束

一句话概括: 本文从工程应用优化问题的复杂性出发,将面向复杂约束优化问题的进化算法分为"面向复杂目标的进化约束优化算法"和"面向复杂约束场景的进化算法"两大类,系统综述了近年来各类问题的研究进展,并总结了未来发展趋势。

二、研究动机与定位

2.1 为什么要写这篇综述?

已有综述(如文献2,即李智勇等 2017 年发表的《约束优化进化算法综述》)从约束处理机制本身的区别出发,重点讨论了各种约束处理技术的原理和优缺点,但较少讨论实际工程问题本身的复杂性对约束处理造成的挑战。

本文的定位是:立足于工程实际问题本身的复杂性对约束处理技术的影响,对近年来约束处理技术进行论述。

2.2 本文与已有综述的区别

维度 已有综述(如文献2) 本文
分类依据 约束处理机制的不同 引发约束优化处理复杂性的缘由
关注点 约束处理技术原理和优缺点 工程应用复杂性对约束处理的挑战
时间范围 截至2017年 涵盖近年最新进展

2.3 约束优化的基本定义

一个拥有 n 个变量和 m 个优化目标的约束优化问题定义为:

(不等式约束)

(等式约束)}

其中:

  • 当 m > 1 时,为多目标优化问题

  • 当 n 值较大(如 n \ge 100)时,为大规模优化问题

三、核心分类框架(最重要)

论文根据引发约束优化处理复杂性的缘由不同,将面向复杂约束优化问题的进化算法分为两大类:

复制代码
                复杂约束优化
                     │
      ┌──────────────┴──────────────┐
      │                             │
面向复杂目标的进化约束优化算法    面向复杂约束场景的进化算法
      │                             │
┌─────┼─────┐                 ┌──────┼──────┐
│     │     │                 │      │      │
多目标 大规模 高计算开销        等式约束 平衡约束 普适约束
CMOP  LSCOP  ECOP

表1 复杂约束优化问题分类与描述:

复杂性分类 问题分类 问题描述
面向复杂目标的进化约束优化算法 多目标约束优化 约束条件使得Pareto前沿形状和位置完全改变,且分布于多个可行区域,造成种群容易困在部分区域,无法获得均匀分布的Pareto前沿
大规模约束优化 大的搜索空间使得可行区域相对比例极大缩小从而寻找可行解困难、而约束带来的空间离散使得算法更容易陷入局部最优
高计算开销约束优化 面对高计算开销的约束评估计算,如何构建约束计算代理来降低计算开销是解决该问题的关键问题
面向复杂约束场景的进化算法 等式约束优化 等式约束使得解空间的可行解区域极度缩小,很大程度上减少了优化方法获得可行解的可能性。即使可以获得可行解,也很容易使得算法陷入局部最优
平衡约束优化 可行区域和不可行区域的比例与形状、函数值大小的差异都对算法在约束与目标之间的平衡搜索带来了挑战
普适约束优化 不同的约束处理技术对不同的优化问题、随机搜索技术、搜索阶段都有着不同的优化表现,如何提高约束处理技术的普适性具有重要意义

四、第一部分:面向复杂目标的进化约束优化算法

4.1 多目标约束优化(CMOP)⭐⭐⭐⭐⭐

为什么CMOP难?

CMOP同时具有:

  • 目标之间的冲突(多目标优化本身就需要权衡)

  • 约束带来的可行区域限制(约束使搜索空间被切割)

约束可能使搜索空间:

  1. 变小: 可行区域比例非常低

  2. 变得离散: 被约束切割成多个互不连通的区域

  3. 形状变复杂: 很窄、不连续、多个区域、边界复杂

核心挑战: 如何平衡收敛性、多样性和可行性三者之间的关系。

CMOP算法分类(表2)
方法分类 核心思想 你需要掌握
基于多种群的方法 不同种群负责不同任务,彼此协同 ⭐⭐⭐⭐
基于排序的方法 改进个体评价/排序机制,平衡约束与非支配 ⭐⭐⭐⭐⭐
基于分阶段的方法 不同阶段完成不同任务(前期找可行域,后期优化目标) ⭐⭐⭐⭐
改进的 \varepsilon 约束处理技术 调整可行性判断,使之适应多目标场景 ⭐⭐⭐⭐
其他 从解的质量定义、PF形状、种群多样性等角度改进 ⭐⭐⭐
基于排序的方法详解(重点)
  • 文献23实现约束和目标的平衡:

    • 分别对个体进行基于约束优势("可行性")和不考虑约束的Pareto优势("最优性")排序

    • 基于两个排名和当前种群的可行比例重新定义适应度值

  • Ning等人24提出约束非支配排序(CNS):

    • 给每个个体分配一个约束非支配秩

    • 该秩基于约束违约度和非支配排名

CMOP的三个开放问题
  1. Pareto最优解在离散可行区域背景下的均匀分布定义

  2. 面向CMOP的约束处理技术的通用性

  3. 面向可行区域极少情况下的CMOP的进化算法

4.2 大规模约束优化(LSCOP)⭐⭐⭐⭐

为什么大规模+约束更难?
  • 变量维度高(如卫星设计292维、耦合航空推进设计316维)

  • 大规模优化背景下,约束处理的关键问题不仅是目标与优化的平衡

  • 约束条件中变量间的依赖关系也需考虑,这极大地降低了基于分解的方法的实用性

变量分组是关键

基于分解的方法基本原理是将大规模优化问题分解为若干子问题:

  • 希望分解后子问题变量间的关联性越低越好

  • 但约束条件的考虑意味着约束条件中变量间的依赖关系也需考虑

测试集进展
  • CEC 2017: 设计了维度可扩展的约束问题基准测试函数(最高100维)

  • Sayed等人5: 18个大规模约束测试问题(100/500/1000维)

  • 罗文坚等人6: 扩展CEC 2010和CEC 2017,设计12个LSCOPs测试函数

开放问题

面向LSCOPs的测试问题目前还不够丰富,设计针对性的优化框架和约束处理技术是当前研究值得探索的方向。

4.3 高计算开销约束优化(ECOP)⭐⭐⭐

核心问题

目标函数与约束的评估计算非常昂贵(一次仿真可能需几十分钟/几小时),而进化算法需要大量评价( 次)。

代理模型(Surrogate Model)

核心思想: 真实模型 训练代理模型 用代理模型代替部分真实评价

常用代理模型:

  • 人工神经网络

  • 支持向量机(SVM)

  • 多项式回归

  • 高斯过程

  • 径向基函数(RBF)

关键挑战
  • 代理的精度问题(约束条件的考虑使该问题更加严重)

  • 等式约束的代理问题(目前尚未有高效的代理来近似等式约束,尤其是非线性等式约束)

五、第二部分:面向复杂约束场景的进化算法

5.1 等式约束优化⭐⭐⭐⭐

为什么等式约束特别难?

等式约束 h(x) = 0 在连续变量空间中,满足精确等式的点可能只占搜索空间中极小的一部分:

复制代码
搜索空间: ████████████████████
可行区域:        ─────

导致:

  • 随机搜索非常容易找不到可行解

  • 即使找到可行解,在狭小或不连续区域内继续搜索也很困难

  • 极易陷入局部最优

三种方法分类(表3)
方法分类 核心思想
基于容差参数设置的方法 将等式约束添加容差参数转换为不等式约束:,如何动态设置 \delta 是关键
基于局部搜索的方法 对可行区域进行局部搜索,快速获得优秀可行解
基于等式函数特征的方法 利用等式特性(如线性等式)直接获取可行解
-容差思想(重点)

原始等式约束:

h(x) = 0

放宽为:

  • 太大 可行域扩大过头,可能改变最优解

  • 太小 又很难找到可行解

  • 动态调整容差参数成为处理等式约束的重要方法

开放问题

当前在离散等式约束、非线性等式约束背景下存在一定局限性。

5.2 平衡约束优化⭐⭐⭐⭐⭐

核心矛盾

目标函数优化 vs 约束满足

传统思路:先满足约束,再优化目标(可行性优先)

但有时候:

  • A: 目标函数非常好,但稍微违反约束

  • B: 目标函数很差,但完全满足约束

传统可行性优先会选择 B,但 A 可能更有价值(离真正优秀的可行解只差一点)。

四种方法分类(表4)
方法分类 核心思想
提升目标函数值搜索偏好的方法 不过度依赖约束违约度,结合目标信息共同决定搜索方向
基于排序的方法 对个体基于约束违约度与目标函数值进行一定概率的排序
多目标约束处理优化方法 将约束违约度当成一个目标,利用多目标优化思想处理
其他方法 约束改进、推拉搜索、协同进化双种群等
方法一:提升目标函数值搜索偏好

传统约束处理技术潜意识地优先考虑个体违约程度。新方法:

  • 对个体生成过程采用不同的个体引导(违反约束程度最小的个体 + 目标函数值最佳的个体)

  • 结合目标函数信息的可行优先原则

  • 利用约束与目标函数之间的相关性来平衡

方法三:多目标约束处理优化方法

将约束条件作为问题优化目标之一:

  • 将约束优化问题定义为多目标优化问题

  • 采用多目标优化方法进行求解

  • 例如:将约束违约度和小生境计数作为两个新目标,定义为三目标优化问题

开放问题

平衡优化是一个开放性问题,目前缺少一定的理论分析和公认的平衡架构。

5.3 普适约束优化⭐⭐⭐

核心问题

有没有一种约束处理方法,可以适用于很多不同类型的问题?

六种传统约束处理技术及其局限
方法 典型问题
惩罚函数法 惩罚因子难设置
可行性法则 容易陷入局部最优,全局最优在边缘时表现不佳
-约束处理法 表现不稳定
随机排序法 表现稳定但效果一般
多目标优化法 计算开销大
提高普适性的两种途径
  1. 基于集成的方法: 将不同的约束处理技术和搜索策略集中考虑,根据其表现进行集成

    • 多种群策略(不同种群采用不同约束处理机制)

    • 基于概率的算子选择和种群聚类

    • 基于投票机制的约束处理技术集成框架

    • 自适应选择差分变异策略

  2. 基于模糊理论的方法: 采用模糊理论来描述约束处理的经验知识

    • 基于模糊规则的罚函数方法

    • 基于模糊偏好搜索的约束处理技术

    • 包含两层(个体和种群)的自适应模糊惩罚方法

开放问题
  • 基于集成的方法: 尚未有高效的优化场景描述方法

  • 基于模糊理论的方法: 模糊规则及隶属函数完全凭经验设计,缺乏系统性

六、未来发展趋势

6.1 大规模约束优化

当前工程应用优化问题大多体现了大规模和多约束特性,但进化算法主要面向无约束大规模优化问题。需要根据大规模约束优化自身特点与限制,设计针对性的优化框架和约束处理技术。

6.2 离散非线性等式约束优化

离散、非线性在等式约束问题中普遍存在,且在多目标、昂贵计算开销等优化背景下该问题更具有挑战性。提取、分析、描述等式约束优化场景,设计相应的由点到面、约束投影等方法可能是有效途径。

6.3 基于超启发式理念的普适约束优化

普适约束优化与超启发式优化理念具有很大的相似性。超启发式方法通过高层策略选择底层启发式方法,可能为解决普适约束优化提供新思路。

6.4 动态约束优化

动态优化是工程应用中优化问题存在的普遍特征。当前该领域的研究主要针对无约束的动态优化问题,没有考虑问题约束的动态变化特性。面向动态约束优化的研究有着重要的工程应用价值。

七、论文核心逻辑链总结

现实问题的困难

抽象困难(约束使搜索空间变小/离散/形状复杂)

分类研究(面向复杂目标 vs 面向复杂约束场景)

数学构造/算法设计(多种群/排序/分阶段/代理模型/容差参数等)

实验验证

分析算法弱点

发现开放问题 指导未来研究方向

八、与之前论文的对照关系

论文 核心关注点 与本文的关系
2021 TEVC (CF测试问题) 怎么构造更好的CMOP测试问题 本文的CMOP部分是该论文工作的"综述视角"------告诉你这个方向有哪些方法
EC 2023 (Noisy CO) 噪声下不同进化算法表现 本文关注的是"约束复杂性"而非"噪声",但研究思路类似:发现问题 \rightarrow 分析传统算法为什么失效 \rightarrow 针对失效机制修改算法 \rightarrow 设计实验验证
本文(软件学报2023) 复杂约束优化的全景地图 为你建立研究领域的"地图",告诉你哪些方向有研究、哪些还是空白

研究方向的启发

这篇综述和你的研究(约束多目标优化)直接相关的方向:

  • CMOP算法设计: 多种群、排序、分阶段、\varepsilon 约束改进

  • 平衡约束优化: 目标vs约束的权衡机制

  • 大规模约束优化: 变量分组+约束处理的结合

  • 普适约束优化: 集成方法、超启发式理念

相关推荐
xhy_07072 小时前
AI 在同一步上反复打转怎么办?WES Code 循环检测怎么用
人工智能·大模型·ai编程·wes code
鱼宵3 小时前
Spring AI 提示词模板:{变量} 参数化 + few-shot,一条提示词反复用
java·人工智能·spring·few-shot·提示词工程·springai
蜗牛互联网3 小时前
Python消费Responses SSE事件:增量文本、超时与取消
java·开发语言·人工智能·后端·python
架构师那点事儿3 小时前
大模型如何私有化部署到生产环境
人工智能·架构·llm
HeyAI人工智能3 小时前
官网内容优化 vs 企业级 RAG:AI 搜索时代,企业到底该先做什么?
人工智能·aigc
黑妹天下第一乖4 小时前
第09讲 · 多媒体与音频 SDK:硬件编解码与端侧语音
人工智能·嵌入式硬件·深度学习·机器人·音视频·iot
jeffsonfu4 小时前
扩散模型(Diffusion Models)崛起:GANs之后的下一个顶流?
人工智能
老李的安全笔记本4 小时前
Agent 工具调用为什么越改越差:两种方向的失败,Prompt 修不了
人工智能
土豆3594 小时前
那个叫 fix bug 的提交,改了 140 万行
人工智能