最优化方法 · 期末复习笔记
教材:《最优化方法及其 Python 程序实现》
✔ 考:第1章 绪论 第3章 线搜索 第4章 梯度法与牛顿法 第5章 共轭梯度法 第6章 拟牛顿法 第7章 信赖域方法 第9章 最优性条件 第10章 罚函数法 第11章 可行方向法
✘ 不考:第2章 Python 基础、第8章 Gauss-Newton / L-M、第12章 二次规划、第13章 SQP
快速跳转:
第1章 绪论 第3章 线搜索 第4章 梯度法与牛顿法 第5章 共轭梯度法 第6章 拟牛顿法 第7章 信赖域方法 第9章 最优性条件 第10章 罚函数法 第11章 可行方向法
第 1 章 绪论
1.1 最优化模型
定义 最优化问题的一般形式:
$$\min_{x\in\mathbb{R}^n}\ f(x)\quad \text{s.t.}\quad x\in\Omega$$
其中 $f$ 为目标函数,$\Omega$ 为可行域(约束集)。约束问题常写为
$$\min f(x)\ \ \text{s.t.}\ \ g_i(x)\le 0\ (i=1,\dots,p),\ \ h_j(x)=0\ (j=1,\dots,m)$$
局部极小点 :存在邻域 $N_\varepsilon(x^*)$,使 $\forall x\in N_\varepsilon(x^*)\cap\Omega$,$f(x)\ge f(x^*)$。
全局极小点 :对一切 $x\in\Omega$ 有 $f(x)\ge f(x^*)$。
凸规划中局部极小点必是全局极小点 (重要结论)。
1.2 向量和矩阵范数
定义 范数三条基本性质:非负性($\|x\|=0 \Leftrightarrow x=0$)、齐次性、三角不等式。
向量范数:$\|x\|_1=\sum|x_i|$,$\ \|x\|_2=\sqrt{\sum x_i^2}$,$\ \|x\|_\infty=\max|x_i|$。
矩阵范数(算子范数) :$\|A\|_1=\max_j\sum_i|a_{ij}|$(列和),$\ \|A\|_\infty=\max_i\sum_j|a_{ij}|$(行和),$\ \|A\|_2=\sqrt{\lambda_{\max}(A^\top A)}$(谱范数)。
相容性:$\|Ax\|\le\|A\|\cdot\|x\|$。
重要不等式:$\|A\|_2\le\|A\|_F$(Frobenius 范数),$\|A+B\|\le\|A\|+\|B\|$。
1.3 函数的可微性
梯度 :$\nabla f(x)=\left(\dfrac{\partial f}{\partial x_1},\dots,\dfrac{\partial f}{\partial x_n}\right)^\top$,是 $f$ 增长最快的方向。
Hesse 矩阵 :$\nabla^2 f(x)=\left[\dfrac{\partial^2 f}{\partial x_i\partial x_j}\right]_{n\times n}$,对称($f$ 二阶连续可微时)。
Taylor 展开 (复习核心公式):
$$f(x_k+d)=f(x_k)+\nabla f(x_k)^\top d+\tfrac12 d^\top \nabla^2 f(x_k+\theta d)\, d,\quad \theta\in(0,1)$$
方向导数 :$D f(x;d)=\nabla f(x)^\top d$($f$ 可微时)。
重要性质:$\nabla f(x)^\top d<0 \Rightarrow d$ 是 $f$ 在 $x$ 处的下降方向 。
1.4 凸函数
定义 凸集 :$\forall x_1,x_2\in S,\ \lambda\in[0,1]$,有 $\lambda x_1+(1-\lambda)x_2\in S$。
凸函数 :在凸集 $S$ 上,$f(\lambda x_1+(1-\lambda)x_2)\le \lambda f(x_1)+(1-\lambda)f(x_2)$;严格凸取 "$<$"($x_1\ne x_2,\ \lambda\in(0,1)$)。
判定
一阶条件 :$f$ 可微,则 $f$ 凸 $\Leftrightarrow$ $f(y)\ge f(x)+\nabla f(x)^\top (y-x),\ \forall x,y$。
二阶条件 :$f$ 二阶可微,则 $f$ 凸 $\Leftrightarrow$ $\nabla^2 f(x)$ 半正定($\forall x\in S$);$\nabla^2 f(x)$ 正定 $\Rightarrow$ 严格凸。
凸函数的和、正倍数仍是凸函数。
考点 凸规划:凸目标 + 凸可行域 → 任何局部极小点即全局极小点 ;若 $f$ 严格凸,极小点唯一。
1.5 无约束最优化条件(基础)
定理
一阶必要条件 :$x^*$ 是局部极小点且 $f$ 可微 $\Rightarrow$ $\nabla f(x^*)=0$(驻点)。
二阶必要条件 :还需 $\nabla^2 f(x^*)$ 半正定 。
二阶充分条件 :$\nabla f(x^*)=0$ 且 $\nabla^2 f(x^*)$ 正定 $\Rightarrow$ $x^*$ 是严格局部极小点。
对凸函数:$\nabla f(x^*)=0$ $\Leftrightarrow$ $x^*$ 是全局极小点。
1.6 优化算法的一般框架
框架 迭代格式:给定 $x_k$,确定搜索方向 $d_k$,再确定步长 $\alpha_k$,令
$$x_{k+1}=x_k+\alpha_k d_k$$
终止准则常用:$\|\nabla f(x_k)\|\le\varepsilon$ 或 $\|x_{k+1}-x_k\|\le\varepsilon$ 或 $|f(x_{k+1})-f(x_k)|\le\varepsilon$。
定义 收敛速度 :设 $\lim\|x_k-x^*\|=0$,若存在 $r\in(0,1)$ 使 $\lim\dfrac{\|x_{k+1}-x^*\|}{\|x_k-x^*\|}=r$,称线性收敛 ($r$ 越小越快);若上式极限为 0,称超线性收敛 ;若 $\dfrac{\|x_{k+1}-x^*\|}{\|x_k-x^*\|^2}\to c$,称二阶收敛 。
算法优劣比较:收敛速度(线性 < 超线性 < 二阶)、每步计算量(一阶导 / 二阶导信息)。
典型习题(附解析)
题 1-1 设 $A$ 为对称半正定矩阵,证明 $f(x)=x^\top Ax$ 是 $\mathbb{R}^n$ 上的凸函数。
展开解析
$\nabla f(x)=2Ax$,$\nabla^2 f(x)=2A$ 处处半正定。由凸函数二阶判定条件(Hesse 矩阵半正定 ⇔ 凸)即得 $f$ 凸。若 $A$ 正定则 $f$ 严格凸。∎
题 1-2 设 $A=\begin{pmatrix}1&2\\2&1\end{pmatrix}$,求 $\|A\|_1,\ \|A\|_\infty,\ \|A\|_F,\ \|A\|_2$。
展开解析
列和均为 $1+2=3$,故 $\|A\|_1=3$;行和均为 3,故 $\|A\|_\infty=3$;$\|A\|_F=\sqrt{1^2+2^2+2^2+1^2}=\sqrt{6}$。
$A$ 对称,特征值 $\lambda=1\pm2$,即 $3,-1$,故 $\|A\|_2=\sqrt{\lambda_{\max}(A^\top A)}=\max|\lambda_i(A)|=3$。
题 1-3 求 $f(x)=x_1^2+x_2^2$ 的驻点,并用二阶条件判断其类型。
展开解析
$\nabla f=(2x_1,2x_2)^\top=0\Rightarrow x^*=(0,0)$。$\nabla^2 f=I$ 正定,由二阶充分条件,$x^*$ 是严格局部极小点(且 $f$ 凸,故为全局极小点),$f(x^*)=0$。
题 1-4 设迭代误差 $e_k=\|x_k-x^*\|$ 分别为 $(0.5)^k$ 与 $(0.5)^{k^2}$,判断各自的收敛速度。
展开解析
① $\dfrac{e_{k+1}}{e_k}=0.5$(极限 0.5),线性收敛 ,收敛率 $r=0.5$。
② $\dfrac{e_{k+1}}{e_k}=(0.5)^{(k+1)^2-k^2}=(0.5)^{2k+1}\to0$,超线性收敛 。
第 3 章 线搜索方法
任务:已知下降方向 $d_k$($\nabla f(x_k)^\top d_k<0$),求步长 $\alpha_k$ 使 $\varphi(\alpha)=f(x_k+\alpha d_k)$ 尽量小。
3.1 精确线搜索
定义 $\alpha_k=\arg\min\limits_{\alpha\ge 0} f(x_k+\alpha d_k)$。
一维情形必要条件:$\varphi'(\alpha_k)=\nabla f(x_k+\alpha_k d_k)^\top d_k=0$(搜索方向与新点梯度正交)。
常用方法:0.618 法(黄金分割法,考试重点,见下方专题) 、插值法(二次/三次插值)。
3.2 非精确线搜索(⭐ 必考)
三大准则
Armijo 准则 :$f(x_k+\alpha d_k)\le f(x_k)+\rho\,\alpha\,\nabla f(x_k)^\top d_k$,其中 $\rho\in(0,1)$(常取 $0.1$)。 实现:从 $\alpha=1$ 开始,每次乘 $\beta\in(0,1)$ 缩减,直到满足不等式(Armijo 回退法)。
Goldstein 准则 :要求步长"不太大也不太小":
$$\rho\,\alpha\,\nabla f(x_k)^\top d_k \le f(x_k+\alpha d_k)-f(x_k)\ \le\ (1-\rho)\,\alpha\,\nabla f(x_k)^\top d_k,\quad \rho\in(0,\tfrac12]$$
缺点:可能把最优步长排除在外。
Wolfe 准则 :Goldstein 第一条 + 曲率条件 :
$$\nabla f(x_k+\alpha d_k)^\top d_k\ \ge\ \sigma\,\nabla f(x_k)^\top d_k,\qquad \rho<\sigma<1$$
(强 Wolfe 准则额外要求 $|\nabla f(x_k+\alpha d_k)^\top d_k|\le -\sigma\nabla f(x_k)^\top d_k$。)
定理 当 $f$ 连续可微、$d_k$ 是下降方向时,Wolfe 准则(及 Armijo 准则)总存在满足条件的步长。
易考点:写出 Armijo / Goldstein / Wolfe 准则的表达式并解释几何含义;用 Armijo 回退法手算一两次迭代。
3.3 线搜索方法的收敛性
收敛性分析的核心:结合"下降方向 + 可接受步长准则"证明 $\nabla f(x_k)\to 0$ 或 $\|g_k\|\to 0$。
使用精确线搜索或 Wolfe 准则时,梯度法、牛顿法、拟牛顿法等可获得收敛性保证。
Zoutendijk 条件(第 11 章也会用到):
$$\sum_{k=0}^{\infty}\cos^2\theta_k\,\|\nabla f(x_k)\|^2<\infty$$
其中 $\cos\theta_k$ 是搜索方向与负梯度的夹角余弦,衡量"方向与最速下降方向的接近程度"。
典型习题(附解析)
题 3-1 $f(x)=x_1^2+4x_2^2$,$x_0=(1,1)^\top$,取 $d_0=-\nabla f(x_0)$,用 Armijo 准则($\rho=0.25$)与回退法($\alpha$ 从 1 开始每次减半)求第一个可接受的 $\alpha_0$ 及 $x_1$。
展开解析
$g_0=(2,8)^\top$,$d_0=(-2,-8)^\top$,$g_0^\top d_0=-68$,$f(x_0)=5$。
Armijo 条件:$f(x_0+\alpha d_0)\le 5+\rho\alpha g_0^\top d_0=5-17\alpha$。
左边 $f(x_0+\alpha d_0)=(1-2\alpha)^2+4(1-8\alpha)^2=5-68\alpha+260\alpha^2$,代入得 $260\alpha^2\le51\alpha$,即 $\alpha\le51/260\approx0.196$。
检验:$\alpha=1$ ✗,$\alpha=0.5$ ✗,$\alpha=0.25$ ✗($4.25>0.75$),$\alpha=0.125$ ✓($0.5625\le2.875$)。
故 $\alpha_0=0.125$,$x_1=x_0+0.125d_0=(0.75,\,0)^\top$。
题 3-2 写出 Goldstein 准则,说明其中 $\rho$ 的取值范围及该准则的优缺点。
展开解析
$$\rho\,\alpha g_k^\top d_k\ \le\ f(x_k+\alpha d_k)-f(x_k)\ \le\ (1-\rho)\,\alpha g_k^\top d_k,\qquad \rho\in(0,\tfrac12)$$
(注意 $g_k^\top d_k<0$,两个不等式要求函数下降量"不太小也不太大"。)
优点:计算简单、易实现;缺点:两条边界线可能把一维极小点排除在外 。$\rho\ge\tfrac12$ 时两条件可能无解,故要求 $\rho<\tfrac12$。
题 3-3 简答:Wolfe 准则与 Goldstein 准则的区别?为什么拟牛顿法(如 BFGS)偏爱 Wolfe 准则?
展开解析
Wolfe 准则 = Armijo 充分下降条件 + 曲率条件 $\nabla f(x_k+\alpha d_k)^\top d_k\ge\sigma g_k^\top d_k$(使新点梯度沿 $d_k$ 的分量增大,步长"不太陡")。它不像 Goldstein 那样可能排除最优步长;且曲率条件保证 $y_k^\top s_k=(g_{k+1}-g_k)^\top\alpha d_k=(1-\sigma)\alpha g_k^\top d_k>0$,这正是拟牛顿校正保持正定所需的条件,故 BFGS 通常配 Wolfe(强 Wolfe)线搜索。
⭐ 专题:0.618 法(黄金分割法)——精确线搜索手算重点
原理
适用于
单峰函数 $arphi(\alpha)=f(x_k+\alpha d_k)$ 在搜索区间 $[a,b]$ 上求极小。在区间内取两个对称试探点:
$$\lambda=a+0.382(b-a),\qquad \mu=a+0.618(b-a)$$
比较 $\varphi(\lambda)$ 与 $\varphi(\mu)$:
若 $\varphi(\lambda)<\varphi(\mu)$:极小点在 $[a,\mu]$ 内,令 $b\leftarrow\mu$,保留旧点 $\lambda$ 作为新区间的试探点 ;
若 $\varphi(\lambda)\ge\varphi(\mu)$:极小点在 $[\lambda,b]$ 内,令 $a\leftarrow\lambda$,保留旧点 $\mu$ 。
每迭代一次区间长度变为原来的
0.618 倍 (缩短率恒定),且每轮只需
新增一次 函数值计算(另一个点直接复用——因为 $\lambda+\mu=a+b$,两试探点关于区间中点对称)。
算法
确定初始搜索区间 $[a_0,b_0]$(考试直接给定,进退法不作要求)与精度 $\varepsilon>0$;
计算 $\lambda=a+0.382(b-a)$,$\mu=a+0.618(b-a)$,及 $\varphi(\lambda),\varphi(\mu)$;
若 $\varphi(\lambda)<\varphi(\mu)$:$b:=\mu$,$\mu:=\lambda$,$\lambda:=a+0.382(b-a)$;
否则:$a:=\lambda$,$\lambda:=\mu$,$\mu:=a+0.618(b-a)$;
若 $|b-a|<\varepsilon$,取 $\alpha^*\approx\dfrac{a+b}{2}$,停止;否则转 3。
必背公式
缩短率 :每步 $\dfrac{b_{k+1}-a_{k+1}}{b_k-a_k}=0.618=\dfrac{\sqrt5-1}{2}$(黄金比)。
k 步后区间长度 :$(b_k-a_k)=0.618^k\,(b_0-a_0)$。
迭代次数估计 :要使 $b_k-a_k<\varepsilon$,需 $0.618^k<\dfrac{\varepsilon}{b_0-a_0}$,即
$$k>\frac{\ln\big(\varepsilon/(b_0-a_0)\big)}{\ln 0.618}\approx\frac{\ln\big((b_0-a_0)/\varepsilon\big)}{0.4812}$$
试探点比例:$0.382$ 从左端量,$0.618$ 从左端量(两点的对称性:$\lambda+\mu=a+b$)。
关系:0.618 法是 Fibonacci 分数法的极限形式,缩短率固定为 0.618;分数法缩短率用 $F_{n-1}/F_n$。
第一步:如何把一般问题化成关于步长的函数 φ(α)(⭐ 关键桥梁)
三步套路
题目通常给的是:目标 $f(x)$、当前点 $x_k$、搜索方向 $d_k$(由所用算法给出,如负梯度方向、牛顿方向等)。化为关于步长 $\alpha$ 的一元函数只需三步:
写出搜索点 :沿方向走 $\alpha$ 后的点为 $x(\alpha)=x_k+\alpha d_k$,即每个分量 $x_i(\alpha)=x_{k,i}+\alpha d_{k,i}$(这是含 $\alpha$ 的一次式);
代入目标 :$\varphi(\alpha)=f\big(x_k+\alpha d_k\big)$,把上式逐分量代入 $f$,整理成 $\alpha$ 的一元函数(二次目标 $\Rightarrow$ $\varphi$ 是二次三项式 $A\alpha^2+B\alpha+C$);
一维求解后回代 :用 0.618 法(或解析法)求 $\alpha^*=\arg\min\varphi(\alpha)$,则迭代点为 $x_{k+1}=x_k+\alpha^* d_k$。
化法示例 1 $f(x)=x_1^2+2x_2^2$,$x_0=(1,1)^\top$,取最速下降方向 $d_0=-\nabla f(x_0)=(-2,-4)^\top$。写出 $\varphi(\alpha)$。
展开解析
① 搜索点:$x(\alpha)=(1,1)^\top+\alpha(-2,-4)^\top=(1-2\alpha,\ 1-4\alpha)^\top$。
② 代入:$\varphi(\alpha)=(1-2\alpha)^2+2(1-4\alpha)^2$,展开整理:
$$\varphi(\alpha)=36\alpha^2-20\alpha+5$$
③ 验证:解析最优步长 $\alpha^*=-\dfrac{B}{2A}=\dfrac{20}{72}=\dfrac{5}{18}$,与之前共轭梯度/最速下降例题中算出的 $\alpha_0=\dfrac5{18}$ 完全一致——0.618 法就是在数轴上逼近这个 5/18 。
化法示例 2 $f(x)=x_1^2+4x_2^2$,$x_0=(1,1)^\top$,$d_0=(-2,-8)^\top$。写出 $\varphi(\alpha)$ 并求解析最优步长。
展开解析
$x(\alpha)=(1-2\alpha,\ 1-8\alpha)^\top$,故
$$\varphi(\alpha)=(1-2\alpha)^2+4(1-8\alpha)^2=260\alpha^2-68\alpha+5$$
解析最优步长 $\alpha^*=\dfrac{68}{520}=\dfrac{17}{130}\approx0.131$(即 Armijo 例题中回退到 0.125 时已很接近它)。
技巧:二次目标的 $\varphi$ 一定是二次三项式,可先用 $\varphi(0)=f(x_k)$ 检验常数项 C 是否等于 $f(x_k)$,防代入错误。
⭐ 完整大题演练 $\min f(x)=x_1^2+2x_2^2$,$x_0=(1,1)^\top$,用最速下降法,取方向 $d_0=(-2,-4)^\top$,要求用 0.618 法在 $[0,1]$ 上做精确线搜索(迭代两轮),求 $x_1$。
展开解析
第一步(化函数) :$x(\alpha)=(1-2\alpha,\,1-4\alpha)^\top$,
$$\varphi(\alpha)=(1-2\alpha)^2+2(1-4\alpha)^2=36\alpha^2-20\alpha+5$$
(检验:$\varphi(0)=5=f(x_0)$ ✓。解析解 $\alpha^*=5/18\approx0.278$。)
第二步(0.618 法,$[a,b]=[0,1]$) :
第 1 轮:$\lambda=0.382$,$\mu=0.618$。
$\varphi(0.382)=36\times0.146-7.64+5\approx2.613$;$\varphi(0.618)=36\times0.382-12.36+5\approx6.391$。
$\varphi(\lambda)<\varphi(\mu)$ → 弃右端:$[a,b]=[0,\,0.618]$,长度 $0.618$ ✓,保留 $\lambda=0.382$ 作新 $\mu$。
第 2 轮:新增 $\lambda=0+0.382\times0.618\approx0.236$。
$\varphi(0.236)=36\times0.0557-4.72+5\approx2.285<\varphi(0.382)=2.613$ → 弃右端:$[a,b]=[0,\,0.382]$,长度 $0.382$ ✓。
两轮后区间 $[0,\,0.382]$ 套住 $\alpha^*\approx0.278$ ✓,取中点 $\alpha\approx0.191$ 或继续迭代加密。
第三步(回代) :$x_1=x_0+\alpha^*d_0=(1,1)+\tfrac5{18}(-2,-4)=(\tfrac49,-\tfrac19)^\top$——与精确解析计算结果一致。
例 1 用 0.618 法求 $\min\varphi(\alpha)=(\alpha-2)^2$,初始区间 $[0,5]$,迭代两轮。
展开解析
第 1 轮 :$\lambda=0+0.382\times5=1.91$,$\mu=0+0.618\times5=3.09$。
$\varphi(1.91)=0.0081$,$\varphi(3.09)=1.19$。因 $\varphi(\lambda)<\varphi(\mu)$,弃右端:$b:=3.09$。新区间 $[0,\,3.09]$,长度 $3.09=5\times0.618$ ✓。
第 2 轮 :保留点 $\mu_{\text{新}}=1.91$(旧 $\lambda$),新增 $\lambda=0+0.382\times3.09=1.18$。
$\varphi(1.18)=0.672>\varphi(1.91)=0.008$,弃左端:$a:=1.18$。新区间 $[1.18,\,3.09]$,长度 $1.91=3.09\times0.618$ ✓。
第 3 轮 :保留 $\lambda_{\text{新}}=1.91$,新增 $\mu=1.18+0.618\times1.91=2.36$,$\varphi(2.36)=0.13>0.008$,弃右端:$b:=2.36$。区间 $[1.18,2.36]$。
区间 $[1.18,\,2.36]$ 套住真解 $\alpha^*=2$,区间中点 $1.77$ 已是不错的近似——每轮区间恰缩短为 0.618 倍。
例 2 用 0.618 法求 $\min\varphi(\alpha)=\alpha^2+2\alpha$,初始区间 $[-3,2]$,迭代两轮。
展开解析
真解 $\alpha^*=-1$($\varphi'(\alpha)=2\alpha+2=0$)。区间长度 $5$。
第 1 轮 :$\lambda=-3+0.382\times5=-1.09$,$\mu=-3+0.618\times5=0.09$。
$\varphi(-1.09)=1.188-2.18=-0.992$,$\varphi(0.09)=0.008+0.18=0.188$。$\varphi(\lambda)<\varphi(\mu)$ → $b:=0.09$。新区间 $[-3,\,0.09]$,长度 $3.09$ ✓。
第 2 轮 :旧 $\lambda=-1.09$ 在新区间中的相对位置 $=\dfrac{-1.09-(-3)}{3.09}=0.618$,故它成为新的 $\mu$;新增 $\lambda=-3+0.382\times3.09=-1.82$。
$\varphi(-1.82)=3.312-3.64=-0.328>\varphi(-1.09)=-0.992$ → $a:=-1.82$。新区间 $[-1.82,\,0.09]$,长度 $1.91$ ✓。
两轮后区间 $[-1.82,\,0.09]$ 仍套住 $\alpha^*=-1$,中点 $-0.865$ 即近似解。
例 3 初始区间 $[0,1]$,要求区间长度缩短到 0.01 以下,至少要迭代多少次?若要求 0.05 呢?
展开解析
由 $0.618^k(b_0-a_0)<\varepsilon$,即 $0.618^k<\varepsilon$(此处 $b_0-a_0=1$):
① $\varepsilon=0.01$:$k>\dfrac{\ln0.01}{\ln0.618}=\dfrac{-4.605}{-0.4812}\approx9.57$,取 $k=10$ 次(此时长度 $0.618^{10}\approx0.0081<0.01$)。
② $\varepsilon=0.05$:$k>\dfrac{\ln0.05}{\ln0.618}=\dfrac{-2.996}{-0.4812}\approx6.23$,取 $k=7$ 次($0.618^7\approx0.0347<0.05$)。
考试技巧:$\ln0.618\approx-0.4812$,每迭代一次长度乘 0.618,可逐次乘:1→0.618→0.382→0.236→0.146→0.090→0.056→0.034→0.021→0.013→0.0081。
例 4 已知区间 $[a,b]=[1,4]$,写出 0.618 法的两个试探点,并说明为什么下一轮只需计算一次新函数值。
展开解析
$\lambda=1+0.382\times3=2.146$,$\mu=1+0.618\times3=2.854$。
对称性:$\lambda+\mu=2.146+2.854=5=a+b$,即两点关于区间中点对称。若弃去右端($b:=\mu=2.854$),旧点 $\lambda=2.146$ 在新区间 $[1,2.854]$ 中的相对位置 $=\dfrac{2.146-1}{1.854}=0.618$,恰是新区间的 $\mu$ 点——函数值已算过,直接沿用;因此除第一轮算两次外,以后每轮只需 1 次新函数值计算 。
第 4 章 梯度法和牛顿法
4.1 梯度法(最速下降法)
算法
给定 $x_0$,$\varepsilon>0$,$k=0$;
若 $\|\nabla f(x_k)\|\le\varepsilon$,停止;
取方向 $d_k=-\nabla f(x_k)$(负梯度方向 = 最速下降方向);
线搜索确定 $\alpha_k$(精确线搜索或固定小步长);
$x_{k+1}=x_k+\alpha_k d_k$,$k:=k+1$,转 2。
性质
相邻两次搜索方向互相垂直:精确线搜索下 $\nabla f(x_{k+1})^\top d_k=0$,又 $d_{k+1}=-\nabla f(x_{k+1})$,故 $d_{k+1}^\top d_k=0$ → 迭代路径呈锯齿形 。
线性收敛 ;对二次函数收敛速度由 Hesse 矩阵条件数 控制:条件数越大,锯齿越严重、收敛越慢。
优点:计算简单、只用到一阶导信息、对初始点无要求;缺点:收敛慢。
4.2 牛顿法
算法 在 $x_k$ 处用二阶 Taylor 展开,牛顿方向为
$$d_k=-\nabla^2 f(x_k)^{-1}\nabla f(x_k)\qquad(\text{解方程 } \nabla^2 f(x_k)d=-\nabla f(x_k))$$
迭代:$x_{k+1}=x_k+d_k$(若配合线搜索则为阻尼牛顿法 )。
性质
二阶收敛 (局部收敛:初始点必须足够靠近 $x^*$)。
对正定二次函数一步到达极小点 。
缺点(⭐ 常考简答) :① 需计算并求逆 Hesse 矩阵,工作量大;② $\nabla^2 f(x_k)$ 不正定时方向可能不是下降方向;③ 初始点太远时可能不收敛(甚至发散)。
4.3 修正牛顿法
阻尼牛顿法 :牛顿方向 + 一维线搜索,改善全局收敛性。
修正 Hesse 矩阵 :当 $\nabla^2 f(x_k)$ 不正定时,用 $\nabla^2 f(x_k)+E_k$($E_k$ 使其正定,如 $\|A\|I$ 平移或 Cholesky 修正)后再求牛顿方向。
考点 三种方法对比:最速下降(一阶信息、线性收敛、慢)、牛顿(二阶信息、二阶收敛、局部)、修正牛顿(加线搜索/正定修正保证每步下降)。
典型习题(附解析)
题 4-1 用最速下降法(精确线搜索)求 $f(x)=x_1^2+2x_2^2$ 的极小点,从 $x_0=(1,1)^\top$ 出发迭代两步,验证相邻搜索方向正交。
展开解析
$\nabla f=(2x_1,4x_2)^\top$,$\nabla^2f=\mathrm{diag}(2,4)=A$。精确步长公式:$\alpha_k=\dfrac{g_k^\top g_k}{g_k^\top A g_k}$。
第一步 :$g_0=(2,4)^\top$,$d_0=(-2,-4)^\top$;$g_0^\top g_0=20$,$g_0^\top Ag_0=8+64=72$,$\alpha_0=\tfrac{20}{72}=\tfrac{5}{18}$。
$x_1=(1,1)+\tfrac5{18}(-2,-4)=(\tfrac49,-\tfrac19)^\top$,$g_1=(\tfrac89,-\tfrac49)^\top$。验证:$g_1^\top d_0=-\tfrac{16}9+\tfrac{16}9=0$ ✓(正交)。
第二步 :$g_1^\top g_1=\tfrac{80}{81}$,$g_1^\top Ag_1=\tfrac{128}{81}+\tfrac{64}{81}=\tfrac{192}{81}$,$\alpha_1=\tfrac{5}{12}$。
$x_2=(\tfrac49,-\tfrac19)+\tfrac5{12}(-\tfrac89,\tfrac49)=(\tfrac2{27},\tfrac2{27})^\top$,$g_2=(\tfrac4{27},\tfrac8{27})^\top$,$g_2^\top d_1=0$ ✓。
迭代点轨迹 $(1,1)\to(\tfrac49,-\tfrac19)\to(\tfrac2{27},\tfrac2{27})$ 交替横跳,呈现锯齿现象 ,收敛慢(线性收敛)。
题 4-2 用牛顿法求 $\min f(x)=x_1^2-x_1x_2+x_2^2+2x_1-4x_2$,从 $x_0=(0,0)^\top$ 出发。
展开解析
$g_0=(2x_1-x_2+2,\ -x_1+2x_2-4)^\top|_{(0,0)}=(2,-4)^\top$;$\nabla^2f=\begin{pmatrix}2&-1\\-1&2\end{pmatrix}$ 正定,$(\nabla^2f)^{-1}=\tfrac13\begin{pmatrix}2&1\\1&2\end{pmatrix}$。
$d_0=-(\nabla^2f)^{-1}g_0=-\tfrac13\begin{pmatrix}2&1\\1&2\end{pmatrix}\binom{2}{-4}=-\tfrac13\binom{0}{-6}=(0,2)^\top$。
$x_1=(0,0)+(0,2)=(0,2)^\top$,验证 $g(x_1)=(0,0)^\top$ → $x^*=(0,2)$,$f(x^*)=-4$。
说明:正定二次函数牛顿法一步达到极小点 。
题 4-3 简答:牛顿法的优缺点及修正策略。
展开解析
优点 :二阶收敛(快);正定二次函数一步终止。
缺点 :① 需计算并求逆 Hesse 矩阵,工作量大;② $\nabla^2f$ 不正定时 $d_k$ 可能不是下降方向;③ 初始点离解远时可能不收敛。
修正 :① 加线搜索得阻尼牛顿法(改善全局收敛);② Hesse 不正定时用 $\nabla^2f+E_k$($E_k$ 使其正定,如谱平移 $\|A\|I$)修正,或改用拟牛顿/信赖域框架。
第 5 章 共轭梯度法
5.1 共轭方向法
定义 设 $A$ 对称正定,若 $d_i^\top A d_j=0\ (i\ne j)$,则称 $d_0,d_1,\dots$ 关于 $A$ 共轭 ($A$-正交)。非零共轭方向组线性无关。
基本定理 对二次函数 $f(x)=\tfrac12 x^\top A x+b^\top x+c$($A$ 对称正定),从任意 $x_0$ 出发沿共轭方向 依次做精确线搜索 ,至多 $n$ 步达到极小点(二次终止性 )。
5.2 共轭梯度法(⭐ 必考算法)
算法(FR 共轭梯度法)
$d_0=-g_0$,$k=0$;
沿 $d_k$ 精确(或 Wolfe 非精确)线搜索得 $\alpha_k$,$x_{k+1}=x_k+\alpha_k d_k$;
$g_{k+1}=\nabla f(x_{k+1})$,若 $\|g_{k+1}\|\le\varepsilon$ 停止;
计算 $d_{k+1}=-g_{k+1}+\beta_k d_k$;
$k:=k+1$,转 2($k+1\ge n$ 时可取 $d_{n}=-g_n$ 重启)。
常用的 $\beta_k$ 公式(必须记住):
FR 公式 :$\beta_k^{FR}=\dfrac{\|g_{k+1}\|^2}{\|g_k\|^2}$
PRP 公式 :$\beta_k^{PRP}=\dfrac{g_{k+1}^\top(g_{k+1}-g_k)}{\|g_k\|^2}$
还有 Dixon–Myers、Hestenes–Stiefel 等,二次函数精确线搜索下它们等价。
性质
对二次函数,共轭梯度法产生的方向是关于 $A$ 共轭的;最多 $n$ 步终止。
取 $\beta=0$ 时退化为最速下降法 → 共轭梯度法可视为"带记忆的梯度法"。
对一般(非线性)函数需周期性重启 (每 $n$ 步取 $d=-g$)。
优点:只需一阶导信息、存储量小(几个向量),适合大规模问题。
收敛性:FR 法(强 Wolfe 线搜索)全局收敛;PRP 法一般比 FR 快但全局性稍弱。
典型习题(附解析)
题 5-1 用 FR 共轭梯度法求 $\min f(x)=x_1^2+2x_2^2$,从 $x_0=(1,1)^\top$ 出发(精确线搜索),并验证共轭性与二次终止性。
展开解析
第 0 步 :$d_0=-g_0=(-2,-4)^\top$,同最速下降:$\alpha_0=\tfrac5{18}$,$x_1=(\tfrac49,-\tfrac19)^\top$,$g_1=(\tfrac89,-\tfrac49)^\top$。
第 1 步 :$\beta_0=\dfrac{\|g_1\|^2}{\|g_0\|^2}=\dfrac{80/81}{20}=\dfrac{4}{81}$;
$d_1=-g_1+\beta_0d_0=(-\tfrac89,\tfrac49)+\tfrac4{81}(-2,-4)=(-\tfrac{80}{81},\tfrac{20}{81})^\top$。
验证 $A$-共轭:$d_1^\top A d_0=(-\tfrac{80}{81})(-4)+(\tfrac{20}{81})(-16)=\tfrac{320}{81}-\tfrac{320}{81}=0$ ✓。
$\alpha_1=\dfrac{g_1^\top g_1}{d_1^\top A d_1}=\dfrac{80/81}{14400/6561}=\dfrac{9}{20}$;$x_2=x_1+\alpha_1d_1=(0,0)^\top$。
两步精确到达极小点 ,体现了共轭梯度法的二次终止性($n=2$ 步)。
题 5-2 证明:精确线搜索下 $g_{k+1}^\top d_k=0$。
展开解析
令 $\varphi(\alpha)=f(x_k+\alpha d_k)$。$\alpha_k$ 是 $\varphi$ 的极小点,故
$$\varphi'(\alpha_k)=\nabla f(x_k+\alpha_kd_k)^\top d_k=g_{k+1}^\top d_k=0.\qquad\blacksquare$$
(几何意义:新点梯度与搜索方向正交。这也解释了最速下降法的锯齿正交性。)
题 5-3 默写 FR 与 PRP 公式,并简述两者特点。
展开解析
$$\beta_k^{FR}=\frac{\|g_{k+1}\|^2}{\|g_k\|^2},\qquad \beta_k^{PRP}=\frac{g_{k+1}^\top(g_{k+1}-g_k)}{\|g_k\|^2}$$
二次函数 + 精确线搜索下两式等价。FR:全局收敛性好(强 Wolfe 下),但锯齿倾向重、可能慢;PRP:利用 $g_{k+1}-g_k$ 信息,数值表现常更优,但一般函数下全局性需附加条件(如 $\beta^{PRP}\ge0$ 或周期重启)。
第 6 章 拟牛顿法
思想:用一阶信息(函数值差、梯度差)构造近似 Hesse 矩阵(或其逆),避免计算二阶导数,同时保持牛顿法的快收敛。
6.1 拟牛顿条件(⭐ 必考)
定义 记 $s_k=x_{k+1}-x_k$,$y_k=g_{k+1}-g_k$。要求校正矩阵 $H_{k+1}\approx \nabla^2 f(x_{k+1})^{-1}$ 满足拟牛顿条件(割线条件) :
$$H_{k+1}\,y_k=s_k$$
若用 $B_{k+1}\approx\nabla^2 f$,则为 $B_{k+1}\,s_k=y_k$。
6.2 对称秩 1(SR1)方法
公式 $H_{k+1}=H_k+\dfrac{(s_k-H_k y_k)(s_k-H_k y_k)^\top}{(s_k-H_k y_k)^\top y_k}$
特点:校正矩阵秩 1;公式唯一确定;但分母可能为 0,且不能保证 $H_{k+1}$ 正定 → 实际中需加保护措施。
6.3 BFGS 方法(⭐⭐ 最重要)
公式 对 $B_{k+1}$ 校正($B\approx\nabla^2 f$):
$$B_{k+1}=B_k+\frac{y_k y_k^\top}{y_k^\top s_k}-\frac{B_k s_k s_k^\top B_k}{s_k^\top B_k s_k}$$
等价地,对逆近似 $H_{k+1}$(记 $\rho_k=\dfrac{1}{y_k^\top s_k}$):
$$H_{k+1}=\left(I-\rho_k s_k y_k^\top\right)H_k\left(I-\rho_k y_k s_k^\top\right)+\rho_k s_k s_k^\top$$
性质
若 $H_k$($B_k$)对称正定且 $y_k^\top s_k>0$,则校正后仍对称正定 (⭐ 常考证明思路:证 $d_k=-H_k g_k$ 满足 $g_k^\top d_k<0$)。
配合 Wolfe 线搜索可保证 $y_k^\top s_k>0$。
超线性收敛 ,是目前公认最有效的拟牛顿校正公式。
6.4 DFP 方法
公式 (对逆近似 $H$):
$$H_{k+1}=H_k+\frac{s_k s_k^\top}{s_k^\top y_k}-\frac{H_k y_k y_k^\top H_k}{y_k^\top H_k y_k}$$
特点:最早的拟牛顿方法;保持正定需精确线搜索;实际数值表现不如 BFGS。BFGS 与 DFP 互为"$B$/$H$ 对偶"。
6.5 Broyden 族
公式 BFGS 与 DFP 的凸组合:
$$H_{k+1}^{Broyden}=(1-\theta_k)H_{k+1}^{BFGS}+\theta_k H_{k+1}^{DFP},\quad \theta_k\in[0,1]$$
通过参数 $\theta$ 平衡 BFGS 与 DFP 的性质。
6.6 收敛性
一致凸函数上,BFGS + Wolfe 线搜索全局收敛且超线性收敛。
拟牛顿法"自校正"特性:一步精确线搜索后对二次函数即可恢复对曲率的正确近似。
易考点:写出拟牛顿条件;默写 BFGS/DFP 校正公式;证明正定性保持;比较各方法优劣。
典型习题(附解析)
题 6-1 默写:① 拟牛顿条件;② BFGS 校正公式($B$ 形式与 $H$ 形式);③ DFP 校正公式。
展开解析
① 记 $s_k=x_{k+1}-x_k,\ y_k=g_{k+1}-g_k$:$B_{k+1}s_k=y_k$(或 $H_{k+1}y_k=s_k$)。
② BFGS:$B_{k+1}=B_k+\dfrac{y_ky_k^\top}{y_k^\top s_k}-\dfrac{B_ks_ks_k^\top B_k}{s_k^\top B_ks_k}$;等价地 $H_{k+1}=\left(I-\rho_ks_ky_k^\top\right)H_k\left(I-\rho_ky_ks_k^\top\right)+\rho_ks_ks_k^\top$,$\rho_k=\dfrac{1}{y_k^\top s_k}$。
③ DFP:$H_{k+1}=H_k+\dfrac{s_ks_k^\top}{s_k^\top y_k}-\dfrac{H_ky_ky_k^\top H_k}{y_k^\top H_ky_k}$(DFP 与 BFGS 互为 $B/H$ 对偶)。
题 6-2 $f(x)=x_1^2+2x_2^2$,$x_0=(1,1)^\top$,$B_0=I$,取 $d_0=-B_0^{-1}g_0$ 并精确线搜索得 $x_1=(\tfrac49,-\tfrac19)^\top$。试完成一次 BFGS 校正,求 $B_1$,并验证拟牛顿条件。
展开解析
$d_0=-g_0=(-2,-4)^\top$,$\alpha_0=\tfrac5{18}$(见题 4-1),$s_0=x_1-x_0=(-\tfrac59,-\tfrac{10}9)^\top$,$g_1=(\tfrac89,-\tfrac49)^\top$,$y_0=g_1-g_0=(-\tfrac{10}9,-\tfrac{40}9)^\top$。
$y_0^\top s_0=\tfrac{50}{81}+\tfrac{400}{81}=\tfrac{50}9$,$s_0^\top s_0=\tfrac{125}{81}$。
$$B_1=I+\frac{y_0y_0^\top}{y_0^\top s_0}-\frac{s_0s_0^\top}{s_0^\top s_0}
=I+\begin{pmatrix}\tfrac29&\tfrac89\\[2pt]\tfrac89&\tfrac{32}9\end{pmatrix}-\begin{pmatrix}\tfrac15&\tfrac25\\[2pt]\tfrac25&\tfrac45\end{pmatrix}
=\frac1{45}\begin{pmatrix}46&22\\22&169\end{pmatrix}$$
验证:$B_1s_0=\left(-\tfrac{10}9,-\tfrac{40}9\right)^\top=y_0$ ✓;且 $B_1$ 正定(顺序主子式 $\tfrac{46}{45}>0$,$\det B_1=\tfrac{(46\cdot169-22^2)}{45^2}>0$)。
题 6-3 证明:若 $B_k$ 对称正定且 $y_k^\top s_k>0$,则 BFGS 校正后的 $B_{k+1}$ 仍对称正定。
展开解析
对称性显然。对任意 $d\ne0$:
$$d^\top B_{k+1}d=d^\top B_kd+\frac{(y_k^\top d)^2}{y_k^\top s_k}-\frac{(s_k^\top B_kd)^2}{s_k^\top B_ks_k}$$
令 $u=B_k^{1/2}d,\ v=B_k^{1/2}s_k$,则 $\dfrac{(s_k^\top B_kd)^2}{s_k^\top B_ks_k}=\dfrac{(u^\top v)^2}{v^\top v}\le\dfrac{(u^\top u)(v^\top v)}{v^\top v}=u^\top u=d^\top B_kd$(Cauchy–Schwarz),故前两项之差不小于 $0$;而 $\dfrac{(y_k^\top d)^2}{y_k^\top s_k}\ge0$。
若等号同时成立则 $y_k^\top d=0$ 且 $d$ 与 $s_k$ 共线(关于 $B_k$ 内积),即 $d=\tau s_k$,此时 $y_k^\top d=\tau y_k^\top s_k=0$ 与 $y_k^\top s_k>0$ 矛盾($\tau\neq0$)。故 $d^\top B_{k+1}d>0$,$B_{k+1}$ 正定。∎
第 7 章 信赖域方法
思想:与线搜索"先定方向、再定步长"相反——先在当前点信赖域半径 $\Delta_k$ 范围内用二次模型选点,模型好就扩大区域,模型差就缩小区域。
7.1 一般框架(⭐ 必考)
算法
给定 $x_0$,$\Delta_0>0$,$0<\eta<\tfrac14$(如 $\eta=0.25$),$k=0$;
构造二次模型 $q_k(d)=f(x_k)+g_k^\top d+\tfrac12 d^\top B_k d$,求解信赖域子问题 :
$$\min_{d}\ q_k(d)\quad \text{s.t.}\quad \|d\|\le\Delta_k \ \ (\text{或 } \|d\|_2\le\Delta_k)$$
计算增量比 (实际下降与预测下降之比):
$$r_k=\frac{f(x_k)-f(x_k+d_k)}{q_k(0)-q_k(d_k)}$$
若 $r_k>\eta$(如 $>\tfrac14$):接受 $x_{k+1}=x_k+d_k$;否则 $x_{k+1}=x_k$(拒绝该步)。
更新 $\Delta_k$:$r_k<\tfrac14$ 时 $\Delta_{k+1}=\tfrac14\Delta_k$(缩小);$r_k>\tfrac34$ 且 $\|d_k\|=\Delta_k$ 时 $\Delta_{k+1}=2\Delta_k$(扩大);否则不变。
终止检验,$k:=k+1$。
考点 $r_k$ 的含义:$r_k\approx 1$ → 模型与真实函数吻合 → 接受步并扩域;$r_k\le 0$(或很小)→ 模型差 → 拒绝步并缩域。$B_k$ 常取对称正定(可用拟牛顿校正)。
7.2 收敛性
只要子问题解使模型下降量达到一定比例(如满足 Cauchy 下降条件 $q_k(0)-q_k(d_k)\ge c\,\|g_k\|\min\{\Delta_k,\|g_k\|/\|B_k\|\}$),就有 $\|g_k\|\to 0$ 的全局收敛性。
7.3 信赖域子问题的求解
精确解 :$d(\Delta)=-\left(B+\lambda I\right)^{-1}g$,$\lambda\ge 0$ 使 $\|d\|=\Delta$ 或 $\lambda=0$ 且 $B$ 正定、解在域内(Levenberg–Marquardt 式平移)。
折线法(Dogleg) :$B$ 正定时在"最速下降(Cauchy)点"与"牛顿点"之间的折线上取点:
牛顿点 $\|d_N\|\le\Delta$ → 直接取牛顿点;
Cauchy 点 $\|d_C\|\ge\Delta$ → 取 $-\dfrac{\Delta}{\|g\|}g$;
否则取折线与信赖域边界的交点。
二维子空间法 等。
易考点:完整描述信赖域算法流程;解释 $r_k$ 及 $\Delta_k$ 的调整规则;与线搜索方法的区别。
典型习题(附解析)
题 7-1 求解信赖域子问题:$\min\ q(d)=g^\top d+\tfrac12 d^\top d$,$g=(-4,2)^\top$,$\|d\|_2\le1$。
展开解析
$B=I$ 正定,无约束解 $d^u=-g=(4,-2)^\top$,$\|d^u\|=\sqrt{20}=2\sqrt5>1=\Delta$,故解在信赖域边界 上:
$$d^*=-\frac{\Delta}{\|g\|}g=\frac{1}{\sqrt5}(2,-1)^\top,\qquad \|d^*\|=1\ \checkmark$$
(一般情形:$\|{-B^{-1}g}\|\le\Delta$ 时取牛顿点,否则解 $(B+\lambda I)d=-g$ 使 $\|d\|=\Delta$。)
题 7-2 某步信赖域迭代中:$f(x_k)=10$,$f(x_k+d_k)=9.8$,预测下降量 $q_k(0)-q_k(d_k)=0.5$,且 $\|d_k\|=\Delta_k$。判断该步是否接受,并给出 $\Delta$ 的更新。
展开解析
$$r_k=\frac{f(x_k)-f(x_k+d_k)}{q_k(0)-q_k(d_k)}=\frac{0.2}{0.5}=0.4$$
因 $r_k=0.4>\eta(=0.25)$ → 接受 $x_{k+1}=x_k+d_k$;又 $r_k<\tfrac34$ → $\Delta_{k+1}=\Delta_k$(不扩大也不缩小)。若 $r_k\le0$ 则拒绝该步并缩域 $\Delta_{k+1}=\tfrac14\Delta_k$。
题 7-3 简答:信赖域方法与线搜索方法的区别;折线法(Dogleg)的三种情形。
展开解析
线搜索:先定方向 $d_k$,再定步长 $\alpha_k$,步长可任意大;信赖域:先限定 $\|d\|\le\Delta_k$,在域内解二次模型子问题,通过 $r_k$ 反馈自动调整 $\Delta_k$,无需线搜索,且对非凸、不正定情形天然稳健。
折线法($B$ 正定):① 牛顿点 $d_N=-B^{-1}g$ 在域内 → 取 $d_N$;② Cauchy 点 $d_C=-\dfrac{g^\top g}{g^\top Bg}g$ 在域外 → 取 $-\dfrac{\Delta}{\|g\|}g$;③ 否则取 Cauchy 点与牛顿点连线与边界的交点。
第 9 章 约束优化的最优性条件
9.1 等式约束问题
问题:$\min f(x)$ s.t. $h_j(x)=0,\ j=1,\dots,m$。
定义 Lagrange 函数 :$L(x,\lambda)=f(x)-\lambda^\top h(x)$($\lambda\in\mathbb{R}^m$ 为 Lagrange 乘子)。
一阶必要条件 若 $x^*$ 是局部极小点且约束梯度 $\{\nabla h_j(x^*)\}$ 线性无关(LICQ / 正则性条件),则存在 $\lambda^*$ 使
$$\nabla_x L(x^*,\lambda^*)=\nabla f(x^*)-\sum_j \lambda_j^*\nabla h_j(x^*)=0,\qquad h(x^*)=0$$
(这就是等式约束的 KKT / Lagrange 条件;$\lambda$ 的符号约定要看教材使用 $\pm$ 哪种。)
二阶条件 在最优性条件成立的点处,Lagrange 函数 Hesse 矩阵在
临界方向锥 (切空间 $\{d:\nabla h_j(x^*)^\top d=0\}$)上:
必要:$d^\top\nabla_{xx}^2 L(x^*,\lambda^*)d\ge 0$;
充分:$\nabla f(x^*)-\lambda^{*\top}\nabla h(x^*)=0$ 且上述二次型 $>0$($\forall d\ne 0$)$\Rightarrow$ 严格局部极小。
9.2 不等式约束问题(⭐⭐ 必考)
问题:$\min f(x)$ s.t. $g_i(x)\le 0,\ i=1,\dots,p$。
定义 起作用(有效/active)约束 :$x^*$ 处 $g_i(x^*)=0$ 的约束;其指标集记 $I(x^*)$。
可行方向 $d$:$\nabla g_i(x^*)^\top d\le 0\ (\forall i\in I(x^*))$;下降方向 :$\nabla f(x^*)^\top d<0$。
几何必要条件 局部极小点处不存在"既可行又下降"的方向:
$$\{d:\nabla f(x^*)^\top d<0\}\ \cap\ \{d:\nabla g_i(x^*)^\top d\le 0,\ i\in I\}=\varnothing$$
由 Farkas 引理推出 KKT 条件。
KKT 条件(必须熟记并会手算)
$$
\begin{cases}
\nabla f(x^*)+\displaystyle\sum_{i=1}^{p}\lambda_i^*\nabla g_i(x^*)=0 & \text{(平稳性)}\\[4pt]
g_i(x^*)\le 0 & \text{(原始可行)}\\[2pt]
\lambda_i^*\ge 0 & \text{(对偶可行)}\\[2pt]
\lambda_i^*\, g_i(x^*)=0,\ i=1,\dots,p & \text{(互补松弛)}
\end{cases}
$$
(对约束 $g_i(x)\ge 0$ 或"$\le 0$",乘子符号要相应调整——按教材约定。)
注意 KKT 条件是必要条件需要约束规格 (如 LICQ:起作用约束梯度线性无关;或 MFCQ)。KKT 点不一定是极小点 ;凸规划中 KKT 点 ⇔ 全局极小点。
9.3 混合约束问题
同时含 $g_i(x)\le 0$ 与 $h_j(x)=0$ 的 KKT 条件:等式约束乘子 $\lambda_j$ 无符号限制,不等式约束乘子 $\mu_i\ge 0$ 且满足互补松弛;平稳性为
$$\nabla f(x^*)+\sum_i \mu_i^*\nabla g_i(x^*)+\sum_j \lambda_j^*\nabla h_j(x^*)=0$$
9.4 鞍点和对偶问题
定义 Lagrange 对偶函数 :$\varphi(\lambda)=\inf_x L(x,\lambda)$。对偶问题 :$\max_{\lambda}\varphi(\lambda)$。
弱对偶 :对偶问题最优值 $\le$ 原问题最优值;差值称为对偶间隙。强对偶 :两者相等(凸问题 + 约束规格如 Slater 条件时成立)。
鞍点定理 $(x^*,\lambda^*)$ 是 $L(x,\lambda)$ 的鞍点($L(x,\lambda^*)\ge L(x^*,\lambda^*)\ge L(x^*,\lambda)$ 对一切 $x,\lambda$)$\Rightarrow$ $x^*$ 是原问题最优解且 KKT 条件成立。凸规划中鞍点 ⇔ 强对偶 ⇔ KKT。
易考点:求起作用约束集;写出 KKT 条件并对具体小问题手算所有 KKT 点并判断是否为极小点;弱/强对偶、互补松弛的经济/几何解释。
典型习题(附解析)
题 9-1 用 KKT(Lagrange)条件求解:$\min\ x_1^2+x_2^2$ s.t. $x_1+x_2=1$,并做二阶验证。
展开解析
$L=x_1^2+x_2^2-\lambda(x_1+x_2-1)$。平稳性:$2x_1=\lambda,\ 2x_2=\lambda\Rightarrow x_1=x_2$;代入约束:$x^*=(\tfrac12,\tfrac12)^\top$,$\lambda^*=1$,$f(x^*)=\tfrac12$。
二阶:$\nabla^2_{xx}L=2I$,切空间 $T=\{d:d_1+d_2=0\}$,$\forall d\in T,\ d\ne0$:$d^\top(2I)d=2\|d\|^2>0$ → 严格局部极小点(目标凸,实际为全局极小)。
题 9-2 求 KKT 点:$\min\ x_1^2+x_2^2$ s.t. $x_1+x_2\ge1$。
展开解析
写约束为 $g(x)=1-x_1-x_2\le0$,$L=x_1^2+x_2^2+\mu(1-x_1-x_2)$。KKT:
$$2x_1-\mu=0,\quad 2x_2-\mu=0,\quad 1-x_1-x_2\le0,\quad \mu\ge0,\quad \mu(1-x_1-x_2)=0$$
① 若 $\mu=0$:$x=0$,违反 $g(0)=1>0$,舍去。
② 若 $g=0$:$x_1=x_2=\tfrac\mu2$,$1-\mu=0\Rightarrow\mu=1$,$x^*=(\tfrac12,\tfrac12)^\top$,满足全部 KKT 条件。
问题为凸规划 → $x^*$ 为全局极小点。与题 9-1 对比:两题答案一致,因为该不等式约束在最优点处起作用 。
题 9-3 证明弱对偶定理:设原问题 $\min f(x)$ s.t. $g_i(x)\le0$,对偶函数 $\varphi(\mu)=\inf_x L(x,\mu)$($\mu\ge0$),则 $\varphi(\mu)\le f(x^*)$ 对一切可行 $x$ 与 $\mu\ge0$ 成立。
展开解析
对任意可行 $x$(即 $g_i(x)\le0$)与任意 $\mu\ge0$:
$$\varphi(\mu)=\inf_z L(z,\mu)\ \le\ L(x,\mu)=f(x)+\sum_i\mu_ig_i(x)\ \le\ f(x)$$
最后一步用到 $\mu_i\ge0,\ g_i(x)\le0\Rightarrow\mu_ig_i(x)\le0$。故对偶最优值 $\le$ 原问题最优值(对偶间隙 $\ge0$);凸问题 + Slater 条件时两者相等(强对偶)。∎
第 10 章 罚函数法
思想:把约束优化转化为一系列无约束 问题求解。
10.1 外点法(外部罚函数法)
罚函数 对 $\min f(x)$ s.t. $g_i(x)\le0,\ h_j(x)=0$,构造
$$P(x,M)=f(x)+M\left[\sum_{i=1}^p \big(\max\{0,g_i(x)\}\big)^2+\sum_{j=1}^m h_j(x)^2\right]$$
$M>0$ 为罚因子。解 $\min P(x,M_k)$ 得 $x_k$,令 $M_{k+1}=\sigma M_k$($\sigma>1$,常取 10)迭代。
性质
罚项只在违反约束(可行域外部) 时起作用;$M\to\infty$ 时 $x_k$ 从外部逼近最优解。
收敛性:对适当大的 $M$,罚问题最优解即原问题最优解;一般 $M_k\to\infty$ 时 $\{x_k\}$ 的极限点为原问题最优解。
缺点:$M$ 太大导致罚函数病态(Hesse 条件数大),数值困难。
10.2 内点法(障碍函数法)
障碍函数 仅适用于
不等式约束 问题,初始点必须在可行域
内部 :
倒数障碍 :$\ \bar P(x,r)=f(x)+r\displaystyle\sum_i \frac{1}{-g_i(x)}$
对数障碍 :$\ B(x,\mu)=f(x)-\mu\displaystyle\sum_i \ln\big(-g_i(x)\big)$
$r$(或 $\mu$)$>0$,迭代时令 $r\to 0^+$。障碍项在可行域内部为正、靠近边界时趋于 $+\infty$,保证迭代点不越界。
性质 $r\to0^+$ 时内点法解从可行域内部 逼近最优解;极限处最优解常在边界上。与外点法对比:内点法任意中间迭代点都是可行解(工程上有用),但要求初始内点、不适用等式约束。
10.3 乘子法(增广 Lagrange 乘子法,⭐ 必考)
增广 Lagrange 函数 (等式约束情形):
$$\Phi(x,\lambda,\sigma)=f(x)-\lambda^\top h(x)+\frac{\sigma}{2}\|h(x)\|^2$$
不等式约束($g_i(x)\le0$)常用乘子法等价形式:罚项为
$$\frac{\sigma}{2}\left[\max\Big\{0,\ g_i(x)+\frac{\mu_i}{\sigma}\Big\}\right]^2 \ \text{项之和}$$
迭代 固定 $(\lambda,\sigma)$ 解无约束问题得 $x_k$,然后更新乘子:
等式约束:$\lambda_{k+1}=\lambda_k-\sigma\, h(x_k)$;
不等式约束:$\mu_{i,k+1}=\max\{0,\ \mu_{i,k}+\sigma\, g_i(x_k)\}$。
若 $\|h(x_k)\|$ 下降不够则增大 $\sigma$。
优点(对比外点法) 乘子法相当于在罚函数上加了乘子估计,罚因子 $\sigma$ 不必趋于无穷 即可精确收敛 → 避免了罚函数病态问题;收敛速度也更好。
易考点:写出外点/内点/乘子法的辅助函数;乘子更新公式;三种方法的对比表(见下)。
外点法 内点法 乘子法
辅助函数 罚函数(违反约束才罚) 障碍函数(边界处罚) 增广 Lagrange 函数
初始点要求 任意(可不可行) 必须可行域内点 任意
参数走向 $M\to\infty$ $r\to 0^+$ $\sigma$ 可不趋于 $\infty$,乘子趋于 $\lambda^*$
迭代点位置 可行域外 可行域内 一般不可行,收敛到可行
适用约束 等式+不等式 仅不等式 等式+不等式
主要缺点 病态($M$ 大) 病态($r$ 小)、需内点 每次要解无约束子问题
典型习题(附解析)
题 10-1 用外点法求解:$\min\ f(x)=x$ s.t. $x\ge1$(罚因子 $M_k\to\infty$),并求极限解。
展开解析
约束写为 $g(x)=1-x\le0$,罚函数 $P(x,M)=x+M\left[\max\{0,\,1-x\}\right]^2$。
当 $x<1$(不可行侧):$P=x+M(1-x)^2$,$\dfrac{dP}{dx}=1-2M(1-x)=0\Rightarrow x_M=1-\dfrac{1}{2M}$;当 $x\ge1$ 时 $P=x$ 递增,最优点在 $x_M$。
$M\to\infty$ 时 $x_M\to1^-$,即原问题最优解 $x^*=1$,迭代点从可行域外部 逼近边界。
题 10-2 用内点法(对数障碍函数)解同一问题:$\min\ x$ s.t. $x>1$。
展开解析
障碍函数 $B(x,r)=x-r\ln(x-1)$($r>0$)。令 $B'(x)=1-\dfrac{r}{x-1}=0\Rightarrow x_r=1+r$,且 $B''=\dfrac{r}{(x-1)^2}>0$ 为极小。
$r\to0^+$ 时 $x_r\to1^+$,从可行域内部 逼近最优解 $x^*=1$。与外点法对照:外点从外部、内点从内部逼近;外点中间点不可行,内点中间点均可行。
题 10-3 用乘子法解:$\min\ x$ s.t. $x=1$。证明:一次乘子更新后即可精确求解,且罚因子 $\sigma$ 不必趋于无穷。
展开解析
增广 Lagrange 函数:$\Phi(x,\lambda,\sigma)=x-\lambda(x-1)+\tfrac\sigma2(x-1)^2$。
令 $\Phi_x=1-\lambda+\sigma(x-1)=0\Rightarrow x_k=1+\dfrac{\lambda_k-1}{\sigma}$。
乘子更新:$\lambda_{k+1}=\lambda_k-\sigma(x_k-1)=\lambda_k-(\lambda_k-1)=1$。
下一步解得 $x_{k+1}=1+\dfrac{1-1}{\sigma}=1=x^*$,有限步精确收敛 。而外点法需 $M\to\infty$ 才得到 $x^*$,且罚函数病态——这正是乘子法的优势。
第 11 章 可行方向方法
思想:约束优化的直接方法——每一步都产生可行点 ,沿"既可行又下降"的方向搜索。
11.1 Zoutendijk 可行方向法
方向子问题(线性约束情形) 在 $x_k$ 处,设起作用约束指标集 $I(x_k)$,求方向 $d$ 解线性规划:
$$\min\ z\quad \text{s.t.}\quad \nabla f(x_k)^\top d\le z,\ \ \nabla g_i(x_k)^\top d\le z\ (i\in I(x_k)),\ \ -1\le d_j\le1$$
若最优值 $z^*<0$,则 $d_k$ 为既下降又可行的方向;若 $z^*=0$,则 $x_k$ 为 KKT 点(Fritz John 意义下停机)。
非线性约束 下可行方向条件 $\nabla g_i(x_k)^\top d<0$ 变成解一个非线性规划(用投影等技巧),也可取 $\varepsilon$-起作用约束集。
得方向后做线搜索保持可行性:步长上界 $\bar\alpha=\max\{\alpha: g_i(x_k+\alpha d)\le 0\}$,在 $[0,\bar\alpha]$ 上对 $f(x_k+\alpha d_k)$ 线搜索。
缺点:可能锯齿现象 、收敛慢(可能只收敛到 Fritz John 点)。
11.2 梯度投影法(Rosen 梯度投影法)
投影矩阵 线性等式约束 $Ax=b$ 下的正交投影矩阵:
$$P=I-A^\top(AA^\top)^{-1}A$$
负梯度在约束面上的投影 $-P\,g_k$ 即投影方向;若 $P=0$(无下降投影),需考察起作用不等式约束并调整(换入换出起作用约束集)。
算法(线性约束)
$g_k=\nabla f(x_k)$,若 $\|Pg_k\|$ 足够小则处理新起作用约束或停机;
取 $d_k=-Pg_k$(投影负梯度方向,自动满足约束面切向);
线搜索得 $x_{k+1}=x_k+\alpha_k d_k$(保持可行)。
性质 投影方向总是可行的;当投影为零且起作用约束乘子非负时达到 KKT 点。梯度投影法是牛顿法思想在约束流形上的推广,对起作用约束集不变时收敛较快。
11.3 简约梯度法
Wolfe 简约梯度法 :处理线性约束 $\min f(x)$ s.t. $Ax=b,\ x\ge0$。把变量分块 $x=(x_B,x_N)$(基变量/非基变量),用 $Ax=b$ 消元,目标函数化为关于 $x_B$ 的简约函数 ,其梯度(简约梯度)为
$$r_N=\nabla_N f-\nabla_B f\, A_B^{-1}A_N$$
沿 $-r$ 的可行下降方向搜索(允许非基变量取 0 时用截断/换基处理)。
广义简约梯度法(GRG) :推广到非线性约束 $h(x)=0$——把部分变量视为"因变量",用牛顿迭代在每步把迭代点拉回约束面,再沿简约梯度下降。相当于"消元 + 无约束优化"。
易考点:Zoutendijk 方向子问题(LP)的建立与求解;投影矩阵 $P=I-A^\top(AA^\top)^{-1}A$ 的计算与投影方向的求法;简约梯度的推导。
典型习题(附解析)
题 11-1 在 $x_k=(2,0)^\top$ 处,对问题 $\min\ f(x)=x_1^2+2x_2^2$ s.t. $x_1+x_2\le2,\ x_1\ge0,\ x_2\ge0$,用 Zoutendijk 方法求可行下降方向。
展开解析
起作用约束:$x_1+x_2\le2$(等号成立)与 $x_2\ge0$。$g_k=(4,0)^\top$。解方向子问题:
$$\min z\quad\text{s.t.}\quad 4d_1\le z,\ \ d_1+d_2\le z,\ \ -d_2\le z,\ \ -1\le d_i\le1$$
最优解 $d_k=(-1,\tfrac12)^\top$,$z^*=\max\{-4,\,-\tfrac12,\,-\tfrac12\}=-\tfrac12<0$。
检验:$g_k^\top d_k=-4<0$(下降),$\nabla g_i^\top d_k\le0$(可行),故为可行下降方向;随后在 $[0,\bar\alpha]$ 上做线搜索。若 $z^*=0$ 则当前点已是 KKT 点。
题 11-2 用梯度投影法解:$\min\ f(x)=x_1^2+2x_2^2$ s.t. $x_1+x_2=1$,从 $x_0=(0,1)^\top$ 出发。
展开解析
$A=(1\ 1)$,$AA^\top=2$,投影矩阵
$$P=I-A^\top(AA^\top)^{-1}A=I-\frac12\begin{pmatrix}1&1\\1&1\end{pmatrix}=\frac12\begin{pmatrix}1&-1\\-1&1\end{pmatrix}$$
$x_0$ 处 $g_0=(0,4)^\top$,$Pg_0=(-2,2)^\top$,取 $d_0=-Pg_0=(2,-2)^\top$。验证 $Ad_0=0$(切向可行)、$g_0^\top d_0=-8<0$(下降)。
线搜索:$f(x_0+\alpha d_0)=(2\alpha)^2+2(1-2\alpha)^2=12\alpha^2-8\alpha+2$,$\alpha_0=\tfrac13$,$x_1=(\tfrac23,\tfrac13)^\top$。
$g_1=(\tfrac43,\tfrac43)^\top$,$Pg_1=0$ → 达到 KKT 点 $x^*=(\tfrac23,\tfrac13)^\top$(与题 9-1 型 Lagrange 结果一致,此处 $\lambda=\tfrac43$)。
题 11-3 简答:Wolfe 简约梯度法中简约梯度 $r_N$ 的推导思路;广义简约梯度法(GRG)如何处理非线性约束?
展开解析
线性约束 $Ax=b,\ x\ge0$ 下把变量分为基变量 $x_B$ 与非基变量 $x_N$,由 $Ax=b$ 解出 $x_B=A_B^{-1}(b-A_Nx_N)$,代入目标函数得只含 $x_N$ 的简约函数 ,其梯度即简约梯度
$$r_N=\nabla_Nf-\nabla_Bf\,A_B^{-1}A_N$$
沿 $-r$ 方向在保持 $x\ge0$ 与 $Ax=b$ 的限制下线搜索(分量触零时换基)。
GRG:约束非线性 $h(x)=0$ 时,将部分变量视为因变量,每次迭代后用牛顿迭代把点拉回约束面 ,再沿简约梯度搜索——本质是"消元 + 无约束优化"。
小题速记(选择 / 判断题专用知识点)
大题靠"会算",小题靠"辨析"。下面按主题整理易混、易考的细碎说法,每条都要能一眼判对错。
一、内点法 vs 外点法(高频考区)
说法 判 备注
外点法允许迭代点进入不可行区域 ✔ 迭代点从可行域外部逼近最优解
外点法初始点可以是任意点 ✔ 不需要可行初始点
内点法初始点必须在可行域内部 (严格可行) ✔ 障碍项在边界趋于 +∞,起点的约束必须严格满足
内点法迭代点始终保持在可行域内 ✔ 中间解都是可行解(工程上可用)
内点法可以处理等式约束 ✘ 仅适用不等式约束;等式约束要用外点/乘子法
外点法不需要初始化 / 内点法一定比外点法慢 ✘ 两者都需要初始化;速度与问题有关,无绝对快慢
外点罚因子 $M\to\infty$,内点障碍参数 $r\to0^+$ ✔ 乘子法的 $\sigma$ 可不趋于 $\infty$
二、罚函数 / 障碍函数的形式辨析(高频考区)
外点法无约束子问题目标:$f(x)+\sigma_k P(x)$ (原目标 + 罚项,$\sigma_k$ 是罚因子,不是乘在 $f$ 上)。
罚项只罚"违反约束"的部分 (⭐ 最易错):
约定 $g_i(x)\le 0$:违反即 $g_i>0$,罚项 $\big[\max\{0,\,g_i(x)\}\big]^2$;
约定 $g_i(x)\ge 0$:违反即 $g_i<0$,罚项 $\big[\min\{0,\,g_i(x)\}\big]^2$(等价于 $\max\{0,-g_i\}^2$)。
直接用 $\sum_i g_i(x)^2$ 或 $\sum_i|g_i|^2$ 当罚项是错的 :对满足约束的可行点也会产生罚项("误罚"),不是外点罚函数。
等式约束 $h_j(x)=0$ 的罚项:$h_j(x)^2$(任何点都可能"违反",平方罚合理)。
内点法两种障碍函数($g_i\le0$ 约定):倒数 $\dfrac{r}{-g_i(x)}$、对数 $-r\ln\big(-g_i(x)\big)$;靠近边界时趋于 $+\infty$,把迭代点"挡"在内部。
三、KKT 条件辨析(高频考区,⭐⭐⭐)
混合约束 $\min f(x)$ s.t. $h_i(x)=0\ (i\in E)$,$g_j(x)\ge0\ (j\in I)$,Lagrange 函数 $L=f-\sum\lambda_ih_i-\sum\lambda_jg_j$:
四要素缺一不可:平稳性 ($\nabla f=\sum\lambda\nabla h+\sum\lambda\nabla g$)、原始可行 、对偶可行 (不等式乘子 $\lambda_j\ge0$)、互补松弛 ($\lambda_jg_j=0$)。
等式约束乘子 $\lambda_i$ 符号无限制 (✔);只有不等式约束乘子才要求非负。
"等式乘子与不等式乘子必须同时非零"是错误说法 (✘)——两组乘子相互独立,各管各的约束,可以一个为零另一个不为零。
不起作用约束(如 $g_j(x^*)>0$)⇒ 互补松弛强制其乘子 $\lambda_j=0$(✔)。
"梯度可由约束函数梯度线性组合表示"(平稳性)✔——但乘子的存在性需要约束规格 (如起作用约束梯度线性无关 LICQ);无约束规格时只能得 Fritz John 条件。
KKT 条件是必要条件 :KKT 点不一定是极小点(✘"KKT 点必为极小点");凸规划中 KKT 点 $\Leftrightarrow$ 全局极小点(✔)。
四、其他章节快判点
主题 能一眼判对错的说法
线搜索 精确线搜索下 $g_{k+1}^\top d_k=0$ ✔;最速下降相邻两搜索方向互相垂直(锯齿)✔;Armijo 中 $\rho\in(0,1)$、Goldstein 中 $\rho\in(0,\tfrac12)$
算法方向速记 梯度法(最速下降)方向:$d_k=-\nabla f(x_k)$(负梯度方向 )✔;牛顿方向:$-\nabla^2f^{-1}\nabla f$;不是"正曲率/任意"方向
Wolfe 准则目的 同时保证充分下降条件 + 曲率条件 ,在非精确搜索中找到合适步长、保证收敛 ✔(不是"梯度与方向一致"也不是"步长不超 1")
方法归属 共轭梯度法是共轭方向法的特例 (搜索方向由梯度生成并满足共轭条件)✔;梯度法/牛顿法不是共轭方向法
拟牛顿信息量 DFP/BFGS 校正只用两个量 :位移 $s_k=x_{k+1}-x_k$ 和梯度差 $y_k=g_{k+1}-g_k$(不需要二阶导 $\nabla^2f$)✔——这正是"拟牛顿"用一阶信息近似二阶的意义
0.618 法 适用单峰函数 ✔;每步缩短率恒为 0.618 ✔;试探点 $\lambda+\mu=a+b$(对称)✔;除首轮外每轮只需 1 次新函数计算 ✔;k 步后长度 $0.618^k(b_0-a_0)$ ✔
收敛速度 最速下降:线性;牛顿:二阶(局部);拟牛顿/共轭梯度:超线性 / 线性~超线性
牛顿法 正定二次函数一步到达极小点 ✔;Hesse 不正定时牛顿方向可能不是下降方向 ✔
共轭梯度 对 $n$ 维正定二次函数至多 $n$ 步精确终止 ✔;共轭方向组线性无关 ✔;取 $\beta=0$ 退化为最速下降 ✔
拟牛顿 拟牛顿条件 $B_{k+1}s_k=y_k$ ✔;正定性保持需要 $y_k^\top s_k>0$(Wolfe 线搜索可保证)✔;SR1 可能分母为零、不保证正定 ✔
信赖域 $r_k>0$(如 $>\tfrac14$)接受该步 ✔;$r_k$ 小则缩小 $\Delta$ ✔;$r_k$ 分子是真实下降、分母是预测下降 ✔
范数 $\|A\|_2\le\|A\|_F$ ✔;对称矩阵 $\|A\|_2=\max|\lambda_i(A)|$ ✔;$\|A\|_1$=最大列和、$\|A\|_\infty$=最大行和 ✔
凸性 凸规划局部极小=全局极小 ✔;严格凸 ⇒ 极小点唯一 ✔;$\nabla^2f$ 半正定 ⇔ 凸(可微情形)✔
凸集与组合 凸集中任意两点的凸组合 $\lambda x_1+(1-\lambda)x_2$($\lambda\in[0,1]$)仍在该集内 ✔;凸组合点不可能跑到集合外或"必在边界上"
梯度几何意义 $\nabla f(x)$ 指向函数值上升最快 的方向(最大上升方向)✔;$-\nabla f$ 是最大下降方向 ✔;梯度与该点等高线垂直 (等高线切线方向上变化率为 0)✔
Hesse 矩阵计算 元素 = 二阶偏导 $\partial^2f/\partial x_i\partial x_j$,先求通式再代入点;例:$f=x_1^3+x_2^3$ 的 Hesse 为 $\mathrm{diag}(6x_1,6x_2)$,在 $(1,1)$ 处行列式 $6\times6=36$
最优化模型 $\min f(x)$ 问题中目标函数值越小(越接近最优值)结果越好 ✔;最优值是"目标",不是"约束满足程度"
对偶 弱对偶:对偶值 ≤ 原问题值,永远成立 ✔;强对偶需凸 + 约束规格(如 Slater)✔;等式约束乘子无符号限制 ✔
可行方向 Zoutendijk 方向子问题最优值 $z^*=0$ ⇒ KKT 点 ✔;投影矩阵 $P=I-A^\top(AA^\top)^{-1}A$ 对称且幂等($P^2=P$)✔;$Pg=0$ 表示梯度垂直于约束面(该面内无下降方向)✔
五、真题演练(本卷 5 题 · 含答案与解析)
第一组 罚函数法与 KKT 条件
第 1 题 内点法与外点法的主要区别?
答案:A
A ✔:外点法迭代点可进入不可行区域;内点法迭代点始终在可行域内部。B ✘ 无绝对快慢;C ✘ 内点法恰恰不许出界;D ✘ 外点法同样需要初始化(初始点、罚因子 $M_0$ 等)。
第 2 题 约束 $g_i(x)\ge 0$ 时,外点罚函数最常用的罚项形式?
答案:C $\sum\limits_{i=1}^m \min\{g_i(x),0\}^2$
外点罚项只应惩罚违反约束 的部分:$g_i(x)\ge0$ 约定下,违反即 $g_i(x)<0$,故取 $\big[\min\{g_i,0\}\big]^2$,可行点罚项为零。A、B、D 在点可行($g_i\ge0$)时也产生非零罚项,会把可行点也"罚",不是标准外点罚函数。
对照记忆:若约定 $g_i(x)\le0$,则罚项为 $\big[\max\{0,g_i\}\big]^2$。
第 3 题 无约束优化中外点罚函数法的目标函数形式?
答案:D $f(x)+\sigma_k P(x)$
外点法 = 原目标 + 罚项加权:$P(x)=\sum\big[\min\{0,g_i\}\big]^2+\sum h_j^2$,罚因子 $\sigma_k\to\infty$。A、B、C 的组合方式都不对($\sigma$ 只乘罚项,不乘 $f$ 或 $x$)。
第 4 题 局部极小点 $x^*$ 处满足 KKT 条件,哪项不是 必要条件?(约束:$h_i(x)=0,\ i\in E$;$g_j(x)\ge0,\ j\in I$)
答案:C
A ✔ 必要:平稳性即 $\nabla f(x^*)$ 可由约束梯度线性组合表示。
B ✔ 必要:不等式约束($g_j\ge0$、$L=f-\sum\lambda_jg_j$ 约定下)乘子 $\lambda_j\ge0$。
C ✘ 不是必要 :等式约束乘子 $\lambda$ 与不等式约束乘子 $\mu$ 相互独立、各对应自己的约束,没有任何"同时非零"的要求(例如只有等式约束起作用时,不等式乘子全为零)。
继续:D 为什么是必要条件?
D ✔ 必要:这是互补松弛条件 $\lambda_j\,g_j(x^*)=0$ 的直接推论——当 $g_j(x^*)>0$(约束不起作用)时,必有 $\lambda_j=0$。
第 5 题 内点法的关键特征?
答案:B 初始点必须在可行域内部
内点法的障碍函数(如 $-r\ln(-g_i)$ 或 $r/(-g_i)$)在约束边界处趋于 $+\infty$,要求迭代全程保持严格可行 ,故初始点必须位于可行域内部(所有不等式约束严格满足)。A、C ✘(不可行点处障碍函数无定义/为负);D ✘(是"内部"而非"边界",边界上障碍函数趋于无穷)。
第二组 绪论基础(凸集 / 梯度 / Hesse)
第 6 题 设 $C$ 是 $\mathbb{R}^n$ 中的凸集,$x_1,x_2\in C$,则凸组合点 $x=\lambda x_1+(1-\lambda)x_2$ 的位置?
答案:B 一定属于 C
这就是凸集的定义 :任意两点的凸组合($\lambda\in[0,1]$)仍在集合内。所以既不是"可能不属于",也不是"必在边界上"——组合点一般在线段 $[x_1,x_2]$ 上任意位置。
第 7 题 对于最优化问题 $\min f(x)$,目标函数 $f(x)$ 的值越小则结果越____。
答案:A 好
最小化问题中 $f(x)$ 越小越接近最优值,结果越好;若是最小化问题选"差"或"不确定"就是混淆了目标与约束。(若是 $\max$ 问题则相反。)
第 8 题 $f(x_1,x_2)=x_1^3+x_2^3$ 的 Hesse 矩阵在 $(1,1)^\top$ 处的行列式?
答案:D 36
$$\nabla^2f=\begin{pmatrix}6x_1&0\\0&6x_2\end{pmatrix}\ \xrightarrow{\ x=(1,1)\ }\ \begin{pmatrix}6&0\\0&6\end{pmatrix},\qquad \det=6\times6=36$$
要点:Hesse 元素是二阶偏导 ,先写通式再代点,别把一阶导当 Hesse。
第 9 题 梯度向量 $\nabla f(x)$ 的方向是?
答案:A 函数 $f(x)$ 在该点的最大上升方向
方向导数 $Df(x;d)=\nabla f(x)^\top d$,由 Cauchy–Schwarz,当 $d$ 与 $\nabla f$ 同向时取得最大值 $\|\nabla f\|$,故梯度是最快上升 方向。C ✘ 最大下降方向是负 梯度 $-\nabla f$;B ✘ 等高线切线方向上 $Df=0$,切线方向与梯度垂直 ,不是梯度方向。
第 10 题 $f(x_1,x_2)=x_1^3+3x_1x_2+2x_2^2$,求 $f$ 在 $(1,1)^\top$ 处的梯度。
答案:B $\begin{pmatrix}6\\7\end{pmatrix}$
$$\frac{\partial f}{\partial x_1}=3x_1^2+3x_2,\qquad \frac{\partial f}{\partial x_2}=3x_1+4x_2$$
代入 $x_1=x_2=1$:$(3+3,\ 3+4)=(6,7)^\top$。易错点:中间项 $3x_1x_2$ 对两个变量都有偏导($3x_2$ 与 $3x_1$),漏掉就会选错。
第三组 算法基础(梯度法 / DFP / 共轭方向 / Wolfe)
第 11 题 梯度法中搜索方向 $d_k$ 由哪一项决定?
答案:B 负梯度方向
梯度法核心思想:$d_k=-\nabla f(x_k)$,沿目标函数的负梯度 (下降最快)方向移动。A ✘"梯度方向"是上升最快方向;C、D ✘ 正曲率/任意方向都不是梯度法的定义。
第 12 题 DFP 算法中 Hesse 逆矩阵的更新公式依赖于哪两个量?
答案:A $s_k$ 和 $y_k$
每步只用位移 $s_k=x_{k+1}-x_k$ 和梯度差 $y_k=\nabla f(x_{k+1})-\nabla f(x_k)$:$H_{k+1}=H_k+\dfrac{s_ks_k^\top}{s_k^\top y_k}-\dfrac{H_ky_ky_k^\top H_k}{y_k^\top H_ky_k}$。这正是拟牛顿法的卖点——只靠一阶信息近似二阶 ,不算 $\nabla^2f$。
第 13 题 以下哪种方法是共轭方向法的一个特例?
答案:B 共轭梯度法
共轭梯度法(CG)的搜索方向由梯度生成并满足关于 $A$ 的共轭条件,是共轭方向法最重要的特例。梯度法、牛顿法、修正牛顿法的方向不满足共轭条件,不属于共轭方向法。
第 14 题 Wolfe 准则用于确定搜索步长,其主要目的是保证什么?
答案:A 满足充分下降条件和曲率条件
Wolfe = 充分下降(Armijo 型不等式)+ 曲率条件 $g_{k+1}^\top d_k\ge\sigma g_k^\top d_k$(步长不能"太陡")。两个条件合起来保证非精确线搜索能找到合适步长,并为收敛性分析(如 $y_k^\top s_k>0$)提供基础。B、C、D 都不是 Wolfe 的内容。
第 15 题 最速下降法中每次选择的方向是?
答案:B 负梯度方向
负梯度方向是当前点下降最快 的方向(梯度上升最快、其反向下降最快),这就是"最速下降"名称的由来。A、C、D 均与定义不符。
十大考点速查(冲刺清单)
# 考点 关键内容
1 极小点判定 一阶 $\nabla f=0$;二阶必要半正定 / 充分正定;凸函数局部=全局
2 收敛速度 线性 / 超线性 / 二阶的定义式
3 非精确线搜索 Armijo、Goldstein、Wolfe 三准则表达式及比较
4 最速下降 vs 牛顿 方向公式、锯齿现象、条件数影响、牛顿法三大缺点与修正
5 共轭梯度法 共轭定义、二次终止性、$\beta$ 的 FR / PRP 公式、重启
6 拟牛顿法 拟牛顿条件 $H_{k+1}y_k=s_k$、BFGS/DFP 公式、正定性保持、超线性收敛
7 信赖域方法 子问题 $\min q_k(d),\ \|d\|\le\Delta_k$、增量比 $r_k$、$\Delta$ 调整规则、折线法
8 KKT 条件 平稳性+原始可行+对偶可行($\lambda\ge0$)+互补松弛;手算小题;对偶与鞍点
9 罚函数法 外点/内点/乘子法的辅助函数、参数走向、三法对比表
10 可行方向法 Zoutendijk 方向子问题(LP)、投影矩阵 $P$、简约梯度 $r_N$
祝考试顺利!建议配合课后习题 1、3–7、9–11 章对应的习题演练,重点动手推导 KKT 手算题与算法迭代一两步的计算题。