在传统的优化问题中,我们通常只有一个目标函数,比如:最小化成本 或 最大化收益。
但在实际工程或决策中,往往存在多个相互冲突的目标,比如:
- 汽车设计:希望 速度快(目标1)同时 油耗低(目标2),但速度越快往往油耗越高。
- 机器学习模型调参:希望 精度高(目标1)同时 推理延迟低(目标2)。
- 投资组合管理:希望 收益高(目标1)同时 风险低(目标2)。
此时我们引入多目标优化问题,一般形式如下:
设
- x=(x1,x2,…,xn)T∈X⊆Rn 为决策变量向量,
- f(x)=(f1(x),f2(x),…,fm(x))T 为目标函数向量。
约束条件为:
gi(x)≤0,i=1,2,…,p,hj(x)=0,j=1,2,…,q.
则多目标优化问题可表述为:
Minimizes.t.f(x)={f1(x),f2(x),…,fm(x)}gi(x)≤0,i=1,2,…,p,hj(x)=0,j=1,2,…,q,x∈X⊆Rn.
由于不存在一个在所有目标上同时优于其他所有解的“完美解”,我们引入 “帕累托最优性(Pareto Optimality)” 的概念:如果一个解在 不恶化任何一个目标的前提下 改进了至少一个目标,则认为它优于另一个解。所有无法被其他解支配的解构成的解集,称为 Pareto 最优解集,其在目标空间中的映射则构成 Pareto 前沿(Pareto Front)。
因此,求解多目标优化问题的核心任务不是寻找一个单一解,而是求解整个 Pareto 前沿,它代表了不同目标之间的最优折中关系,为决策者提供选择依据。
下面是对帕累托最优性的定义:
定义 1.1(Pareto 支配) 设 xa,xb∈Ω,若满足:
{fi(xa)≤fi(xb),fj(xa)<fj(xb),∀i∈{1,2,…,m},∃j∈{1,2,…,m},
则称 xa Pareto 支配 xb,记作 xa≺xb。
定义 1.2(弱 Pareto 支配) 若:
fi(xa)≤fi(xb),∀i=1,2,…,m,
则称 xa 弱 Pareto 支配 xb,记作 xa⪯xb。
定义 1.3(Pareto 最优解) 若 ∄x∈Ω 使得 x≺x∗,则称 x∗ 为 Pareto 最优解。
Pareto 最优解集合定义为:
P∗={x∈Ω∣∄x′∈Ω,x′≺x}.
定义 1.4(Pareto 前沿) 所有 Pareto 最优解在目标空间中的像构成的集合定义为 Pareto 前沿:
F∗={f(x)∣x∈P∗}.