Zoutendijk 可行方向法

Views: --

约束优化中的搜索方向必须同时满足两件事:让目标下降,并且小步走后仍可行。Zoutendijk 法把这两件事合成一个方向子问题。

可行方向锥

考虑

minf(x),Axb,Ex=e.\min f(x),\qquad Ax\ge b,\qquad Ex=e.

在可行点 xx,把不等式分为活动组 AIx=bIA_Ix=b_I 与非活动组。非活动约束已有正松弛,小步不会立即违反;活动约束要求

AId0.A_Id\ge0.

等式要求

Ed=0.Ed=0.

因此非零 dd 是局部可行方向,当且仅当满足这两式。

下降方向

ff 可微,

f(x)Td<0\nabla f(x)^Td<0

保证充分小正步长使目标下降。于是可行下降方向是可行方向锥与开半空间的交集。

Zoutendijk 方向子问题

为避免任意缩放 dd 使内积无限负,加入归一化,例如 1dj1-1\le d_j\le1。方向子问题可写成

mind,ηηs.t.f(x)Tdη,AId0,Ed=0,1dj1.\begin{aligned} \min_{d,\eta}\quad &\eta\\ \text{s.t.}\quad &\nabla f(x)^Td\le\eta,\\ &A_Id\ge0,\\ &Ed=0,\\ &-1\le d_j\le1. \end{aligned}

若最优 η<0\eta^*<0,得到可行下降方向;若 η=0\eta^*=0,通常说明不存在一阶可行下降方向,当前点满足相应一阶驻点条件。

也常把最大分量范数归一化与目标直接写成 minf(x)Td\min \nabla f(x)^Td,本质相同。

步长不能只看目标

得到方向后,步长必须先保证所有非活动约束也不被穿过。对线性约束,若某行 aiTd<0a_i^Td<0,最大可行步长为

αˉi=aiTxbiaiTd.\bar\alpha_i=\frac{a_i^Tx-b_i}{-a_i^Td}.

0αminiαˉi0\le\alpha\le\min_i\bar\alpha_i

内再做一维搜索。走到新边界后,活动集随之更新。

与 KKT 的联系

若方向 LP 的最优值为零,其对偶乘子给出

f(x)AITμ+ETλ=0,μ0,\nabla f(x)-A_I^T\mu+E^T\lambda=0,\qquad \mu\ge0,

这正是线性约束问题的 KKT 驻点关系。换句话说,不存在可行下降方向与梯度落在法锥中是同一事实的原始/对偶表达。

算法步骤

  1. 从可行点开始,识别活动约束;
  2. 解方向 LP;
  3. 若无法得到严格下降,停止;
  4. 计算最大可行步长,在可行区间内搜索;
  5. 更新点和活动集。

考试要点

  • 只有活动不等式限制无穷小方向,非活动约束限制有限步长。
  • 等式约束方向必须满足 Ed=0Ed=0
  • 方向子问题需要归一化,否则线性目标可能无界。
  • “方向 LP 最优值为零”要结合约束资格解释为 KKT 点。

评论