4、经典多目标优化算法(上):加权求和法、ε-约束法、目标规划法,优缺点分析。

各位同学,咱们今天聊聊多目标优化里的几个“老前辈”。

做材料设计,你很少只盯着一个指标。比如我要设计一个锂电池正极材料,既要能量密度高,又要循环寿命长,还得成本低。这三个目标往往互相打架。你想想看,能量密度上去了,循环寿命可能就下来了。这就是典型的多目标优化问题。

我早年做合金配方优化时,就吃过这个亏。当时只盯着强度一个目标优化,结果强度是上去了,韧性差得一塌糊涂,一掰就断。从那以后,我再也不敢只看单一目标了。

今天咱们先讲三个最经典的算法:加权求和法ε-约束法目标规划法。它们虽然“老”,但非常实用,很多现代算法也是从它们的思想上演化来的。

4.1 加权求和法:最简单,也最容易被坑

加权求和法的思路,说白了就是把多个目标揉成一个。

比如你有两个目标:f1(比如成本)和 f2(比如性能)。你给每个目标分配一个权重 w1 和 w2,然后加起来:

minimize F = w1 * f1(x) + w2 * f2(x)
subject to: x ∈ S
其中 w1 + w2 = 1, w1, w2 ≥ 0

嗯,这里要注意。权重怎么定?这完全取决于你的偏好。我个人习惯是先跑几组不同权重的解,看看帕累托前沿大概长什么样,再决定权重。

优点:
  • 实现简单,代码就几行
  • 计算效率高,一次优化出一个解
  • 适合目标重要性明确的情况
缺点:
  • 权重选择主观性强,不同权重结果差异巨大
  • 无法处理非凸的帕累托前沿——这是个大坑
  • 一次只能得到一个解,想得到多个解需要反复跑
避坑指南:

我曾经在一个高熵合金项目中用加权求和法,怎么调权重都得不到理想结果。后来才发现,帕累托前沿是非凸的,加权求和法根本找不到凹进去的那部分解。所以,如果你不确定前沿形状,慎用加权求和法。

4.2 ε-约束法:把目标变成约束

这个方法很有意思。它的核心思想是:只优化一个主要目标,把其他目标变成约束条件。

比如,你主要关心性能,但成本不能太高。那你就把成本设为一个上限 ε,然后优化性能:

minimize f1(x)
subject to: f2(x) ≤ ε2
           f3(x) ≤ ε3
           x ∈ S

你想想看,这样做的好处是什么?你可以通过调整 ε 的值,系统地探索帕累托前沿。我建议你从宽松的约束开始,逐步收紧,这样能看到完整的 trade-off 关系。

优点:
  • 能处理非凸的帕累托前沿
  • 每次优化只针对一个目标,问题简化了
  • 通过调整 ε,可以生成多个帕累托解
缺点:
  • ε 值的选取也需要经验,太松或太紧都不行
  • 如果约束太多,可行域可能为空
  • 计算量比加权求和法大一些
我的经验:

我在做聚合物复合材料设计时,经常用 ε-约束法。我会先确定一个“必须满足”的硬约束,比如成本上限,然后在这个约束下优化其他性能。这样出来的结果,工程上更可行。

4.3 目标规划法:给每个目标设个“小目标”

目标规划法,说白了就是给每个目标设定一个期望值,然后尽量去接近它。

比如,我希望成本低于 100 元,性能高于 80 分。那优化目标就是让实际值尽可能接近这些目标值。数学上,它通常写成:

minimize Σ |fi(x) - Ti|^p
subject to: x ∈ S

其中 Ti 是第 i 个目标的目标值,p 是范数(常用 p=1 或 p=2)。

我个人觉得,这个方法最贴近工程师的思维习惯。因为我们做设计时,心里往往有个“理想值”。比如我希望这个催化剂的转化率能达到 95%,选择性达到 90%。目标规划法就是帮你找到最接近这个理想点的实际方案。

优点:
  • 直观,容易理解
  • 可以处理优先级不同的目标(加权目标规划)
  • 能找到“折中”的解,而不是极端解
缺点:
  • 目标值 Ti 的设定很关键,设得不好结果会偏
  • 如果目标之间严重冲突,可能找不到满意的解
  • 对非凸问题也可能失效
避坑指南:

我曾经在优化热电材料时,给电导率和塞贝克系数都设了很高的目标值。结果优化出来的解,两个指标都离目标很远。后来我才意识到,这两个参数本身就有物理上的制约关系,不可能同时达到最优。所以,设定目标值前,一定要先搞清楚目标之间的物理关系。

4.4 三种算法对比总结

好了,咱们把这三个算法放在一起对比一下。我整理了一个表格,方便你快速查阅:

特性 加权求和法 ε-约束法 目标规划法
核心思想 多目标变单目标 一个目标优化,其余做约束 接近预设目标值
处理非凸前沿 ❌ 不能 ✅ 能 ⚠️ 部分能
参数设置难度 中等(权重) 较高(ε值) 中等(目标值)
计算效率 中等
工程实用性 一般
适用场景 目标重要性明确,前沿凸 有硬约束,需要探索前沿 有明确期望值

4.5 知识体系结构图

为了让你更直观地理解这三种算法的关系,我画了一张图:

经典多目标优化算法(上)知识体系 多目标优化问题 加权求和法 ε-约束法 目标规划法 优点:简单高效 缺点:非凸失效 优点:处理非凸 缺点:ε值难调 优点:直观易懂 缺点:目标值难定 选择建议 前沿凸 → 加权求和法 | 有硬约束 → ε-约束法 | 有期望值 → 目标规划法 不确定时,建议先用ε-约束法探索前沿

嗯,今天的内容就到这里。这三种算法虽然经典,但各有局限。下一章咱们会讲更高级的算法,比如 NSGA-II 和 MOEA/D,它们能更好地处理复杂的多目标问题。不过,先把这三个基础算法吃透,后面的内容你会学得更轻松。