从任务描述到数学问题
优化从“哪些量可以选择”开始,而不是从某个算法名称开始。设决策变量为
x=(x1,…,xn)∈Rn,外部给定的数据和设计参数合记为
p。一个常见模型写成
xmins.t.f(x;p)gi(x;p)≤0,i=1,…,m,hj(x;p)=0,j=1,…,r,x∈X.
f 是目标函数,gi 与 hj 是不等式和等式约束,X 可集中表达整数性、非负性、区间或其他结构。参数 p 在一次求解中保持不变;若把参数误写成变量,求解器会改变本应固定的输入,问题也随之改变。
优化模型与可行域
给定参数 p 后,满足全部约束的点组成可行域
F(p)={x∈X:gi(x;p)≤0,hj(x;p)=0}. 若 F(p)=∅,模型称为可行。点
x⋆∈F(p) 若满足
f(x⋆;p)≤f(x;p)对所有 x∈F(p), 则它是全局最优解,对应的数
f⋆=f(x⋆;p) 是最优值。最优解可以不唯一;最优值在问题有解时是一个确定的数。
目标必须把比较规则说清。成本、能量和误差通常最小化,收益最大化可等价写成最小化负收益。多个目标不能只并排列出后交给算法猜测优先级。加权和
w1f1+w2f2 需要说明权重、单位和取值依据;硬性安全要求更适合保留为约束,而不是以任意小的罚权混入目标。
例一:配料计划中的变量、参数与约束
例 1:在三个顶点上比较配料成本
一种混合物由原料 A、B 配制,xA,xB 表示每批使用的千克数。每千克 A、B 分别提供 3 和 1 单位有效成分,成本分别为 4 和 2 元。每批至少需要 6 单位有效成分,总质量不超过 4 千克。模型为
xA,xBmins.t.4xA+2xB3xA+xB≥6,xA+xB≤4,xA≥0,xB≥0. 变量是 (xA,xB);单价、有效成分系数、需求量和容量都是参数。线性目标在这个有界可行多边形上至少有一个最优顶点。需要比较的顶点为
(2,0)、(1,3) 和 (4,0),成本依次为 8、10 和 16 元,所以
(2,0) 是最优解。检验 (2,0) 时,有效成分恰为 6,总质量为 2;两个非负约束也满足。
若把“至少 6”误写成 3xA+xB≤6,(0,0) 会成为零成本最优点,却完全没有完成配料任务。这个错误不是求解精度问题,而是约束方向改变了可行域。若实际生产只能购买整千克,还要加入
xA,xB∈Z;连续模型的可行点不再都可执行。
可行不等于存在最优解
求解之前应依次问:可行域是否为空,目标在可行域上是否有下界,这个下界能否由某个可行点达到。三件事彼此独立。约束互相冲突会造成不可行;目标沿某个可行方向无限下降会造成无界;即使目标有有限下确界,也可能只有趋近它的序列而没有达到它的点。
一个常用的充分条件来自有限维空间中的极值定理:若
F 非空且紧,f 在 F 上连续,则最优解存在。欧氏空间中的紧集等价于闭且有界。紧性只是充分条件,不是必要条件。例如
f(x)=x2 在无界集合 R 上仍于 x=0 取得最小值。
无界可行域上可用强制增长补足有界性。若沿任意
∥x∥→∞ 的可行序列都有
f(x)→+∞,则称目标在可行域上具有强制性。非空闭可行域、连续目标和这种增长条件共同把足够低的水平集限制在有界区域内,进而保证最小值存在。
例 2:相同下确界,不同的取到情况
比较三个一维问题:
(A) x∈[0,1]minx,(B) x∈(0,1]minx,(C) x∈Rmine−x. (A) 的可行域紧且目标连续,最优值 0 在 x=0 取得。(B) 的可行域漏掉端点,所有可行值都大于 0;序列
xk=1/k 的目标趋于 0,所以目标值集合的下确界是 0,却没有最优解。(C) 的可行域闭但无界,目标始终为正且随
x→+∞ 趋于 0,同样没有点取得下确界。
这三个问题都“能算出一个下界”,但只有第一个真正有解。数值程序在 (B)、(C) 中可能不断给出更小的目标值;这不等于它迟早会到达某个最优点。
局部最优、全局最优与驻点
全局比较要覆盖整个可行域,局部比较只覆盖一个足够小的邻域。若存在
ε>0,使得所有满足
x∈F 且
∥x−x⋆∥<ε 的点都有
f(x⋆)≤f(x),则
x⋆ 是局部最优解。严格局部最优把非等号点的比较改为严格小于。
每个全局最优解都是局部最优解,反向一般不成立。可微无约束问题的内部局部极小点满足梯度为零,但梯度为零的点还可能是局部极大点、鞍点或高阶平坦点。二阶信息可以在部分光滑问题中分类,仍不能自动完成全局比较。
例 3:两个局部极小点只有一个是全局最优
令
f(x)=41x4−31x3−x2. 一阶导数分解为
f′(x)=x3−x2−2x=x(x−2)(x+1), 驻点为 −1,0,2。二阶导数
f′′(x)=3x2−2x−2,所以
f′′(−1)=3>0、f′′(0)=−2<0、f′′(2)=6>0。因此 −1 与 2 是严格局部极小点,0 是局部极大点。
函数值为
f(−1)=121,f(2)=−32. 又因四次项系数为正,∣x∣→∞ 时 f(x)→+∞。比较全部驻点和无穷远行为可知,x=2 是全局最优解,而
x=−1 只是局部最优解。从 −1 附近启动的局部下降算法可能停在那里;一阶驻点条件没有提供跨越中间高点的机制。
方向导数与可行方向
在边界点,负梯度方向可能立即离开可行域,因而不能只检查
∇f(x⋆)=0。函数沿方向 d 的单侧方向导数定义为
Df(x;d)=t↓0limtf(x+td)−f(x),
只要极限存在。若 f 在 x 可微,则
Df(x;d)=∇f(x)Td.
若对所有足够小的 t≥0,点
x⋆+td 仍可行,则 d 是一个局部可行方向。局部最优点沿任何可行方向都不能一阶下降,因此必要条件为
Df(x⋆;d)≥0对所有可行方向 d.
在可行域 F 为凸集、目标可微时,还可写成变分不等式
∇f(x⋆)T(y−x⋆)≥0对所有 y∈F.
定义法锥
NF(x⋆)={v:vT(y−x⋆)≤0, ∀y∈F},上式等价于
−∇f(x⋆)∈NF(x⋆)。这是一阶必要条件;在凸目标与凸可行域中,它还会成为全局最优的充分条件。
例 4:圆盘边界上的最优点梯度不为零
求点 x=(x,y) 在单位圆盘
x2+y2≤1 中到 a=(2,1) 的最近点,即最小化
f(x)=∥x−a∥22. 几何投影给出
x⋆=∥a∥2a=(52,51). 此处
∇f(x⋆)=2(x⋆−a) 并不为零。由于
a=5x⋆,
−∇f(x⋆)=2(5−1)x⋆, 它沿圆盘的外法向。任取圆盘内的 y,有
(x⋆)Ty≤∥y∥2≤1,从而
∇f(x⋆)T(y−x⋆)=2(1−5)((x⋆)Ty−1)≥0. 更直接地整理符号可得
2(5−1)(1−(x⋆)Ty)≥0。
梯度指向圆盘内部允许方向的反侧,任何可行微小位移都不会降低距离。边界约束承担了平衡梯度的作用。
尺度、单位与无量纲变量
优化公式中的数值大小应与物理尺度分开。若 x1 以米计、x2 以微米计,两个坐标的数字可能相差六个数量级;若把温度误差的平方与金额直接相加,权重还隐含了单位换算和偏好。可靠模型应为变量标注单位,为每个目标项选定参考尺度,并说明权重改变时所表达的决策偏好。
设典型尺度为 si>0,参考点为 xˉi,可定义无量纲变量
zi=sixi−xˉi.
在 z 中求解不会改变原问题的可行决策,只改变坐标表达和数值几何。以
f(u,v)=(u−1)2+10−6(v−1000)2
为例,原坐标 Hessian 为
diag(2,2×10−6),谱条件数为 106。令
z=v/1000 后,
f(u,z)=(u−1)2+(z−1)2,Hessian 变成 2I。最优物理点仍是
(u,v)=(1,1000),但圆形等高线比极狭长等高线更适合统一步长的一阶方法。
缩放不能修复错误模型。若目标漏掉安全代价,或约束单位混乱,条件数再好也只会更快地求出错误问题的答案。建模记录应保留原始单位、变换公式和结果的反变换。
建模检查顺序
一个可复核的优化模型至少包含以下信息:
- 每个决策变量的含义、维数、单位和允许范围;
- 参数的数据来源及在求解期间是否固定;
- 目标值的方向、单位、归一化方式和多目标权重;
- 每条约束的物理或逻辑依据,以及等号和不等号方向;
- 可行域为空、目标无界和下确界不取到时的处理方式;
- 局部或全局解的声称范围、初值和停止条件;
- 变量缩放、容差及结果恢复到原单位的方法。
MIT OpenCourseWare 的 Nonlinear Optimization 讲义系统整理了一阶最优性、法锥、凸性和约束条件。本章只使用其中稳定的有限维定义与必要条件;具体模型中的参数、单位和可行性仍须由任务数据逐项核对。
练习
练习 1:辨认模型的五类要素
- 所属知识
- 优化建模
- 难度
- 2/5
某仓库决定普通运输量 x 和加急运输量 y。两种方式每吨成本分别为 3 和 7,当天需求 d 已知,普通运输最多可用 c 吨。写出最小成本模型,并指出变量、参数、目标、可行域和单位。
查看提示
先区分求解器可以改变的量与一次求解中固定的量。
查看解答
模型为
x,ymin 3x+7ys.t.x+y≥d,0≤x≤c,y≥0. x,y 是以吨计的决策变量,d,c 是以吨计的参数,目标以相同货币单位计。可行域由需求、普通运力和非负约束共同给出。若不允许超额运输,可把需求约束改为 x+y=d;这属于任务语义变化,不能由算法自行决定。
练习 2:判断是否存在最优解
- 所属知识
- 存在性
- 难度
- 3/5
判断下列问题是否有最优解,并给出理由:
(a) x≥0min(x−2)2,(b) x>0minx2,(c) x∈Rmin(−x). 查看提示
分别检查可行域是否闭、目标是否有下界以及下界能否取到。
查看解答
(a) 有唯一最优解 x=2,可行且目标值为 0。(b) 的下确界为 0,但唯一能使平方为零的点 x=0 不可行,所以没有最优解。(c) 沿 x→+∞ 时目标 −x→−∞,问题向下无界,也没有有限最优值。
练习 3:驻点不等于最小点
- 所属知识
- 局部最优
- 难度
- 3/5
对 f(x)=x3−3x 求全部驻点,分类局部极值,并说明该问题在 R 上是否有全局最小值。
查看提示
先求一阶导数,再用符号变化或二阶导数分类。
查看解答
f′(x)=3x2−3=3(x−1)(x+1),驻点为 x=±1。二阶导数 f′′(x)=6x,所以 x=−1 是局部极大点,x=1 是局部极小点。由于
x→−∞ 时 x3−3x→−∞,函数在 R 上向下无界,没有全局最小值。局部极小点 x=1 不能据此升级为全局最优解。
练习 4:区间端点的一阶条件
- 所属知识
- 可行方向
- 难度
- 3/5
在约束 x≥1 下最小化 f(x)=x2。求最优解,列出该点的可行方向,并检验方向导数必要条件。解释为何无约束条件 f′(x)=0 不适用。
查看提示
在左端点只有非负方向可行,计算这些方向上的方向导数。
查看解答
可行域为 [1,∞),目标在该区间单调增加,所以最优解为 x⋆=1。端点的局部可行方向满足 d≥0。方向导数为
Df(1;d)=2d≥0,必要条件成立。此处 f′(1)=2=0,负梯度方向 d=−1 会立即离开可行域;约束边界代替零梯度条件阻止下降。
知识关系与后续
参考资料
课程 · 2025Nonlinear Optimization
Gabriele Farina
用于核对优化模型、凸性、次梯度、约束资格、KKT 条件和对偶结论的适用前提。
打开官方来源
MIT 的公开讲义覆盖方向导数、一阶最优性、法锥和约束优化。阅读时应逐项核对定理的可微性、可行域与凸性假设。
课程 · 年份待核Stanford CS229 Course Materials
Andrew Ng
用于核对经典机器学习模型的目标函数、推导和适用前提。
打开官方来源
Stanford CS229 课程材料展示机器学习中从数据、模型和损失形成优化目标的典型方式,可用于比较经验风险模型中的变量、参数和正则项。课程例子不能替代具体应用对单位、安全约束和数据来源的说明。