非线性规划中的Zoutendijk可行方向法
Zoutendijk可行方向法是一种求解非线性约束优化问题的迭代算法,其核心思想是在每次迭代中,沿着一个既能使目标函数下降又不会违反约束的方向移动。下面我将分步骤详细解释这个方法。
第一步:问题形式化与基本概念
考虑标准形式的非线性规划问题:
min f(x)
s.t. g_i(x) ≤ 0, i = 1,...,m
h_j(x) = 0, j = 1,...,p
在任意可行点x处,我们定义积极约束集I(x) = {i | g_i(x) = 0}。一个方向d被称为可行方向,如果存在α₀ > 0,使得对所有α ∈ [0,α₀],点x + αd都保持可行。同时,如果∇f(x)ᵀd < 0,则称d为下降方向。
第二步:可行方向的数学特征
对于不等式约束,在可行点x处,要使d是可行方向,需要满足∇g_i(x)ᵀd ≤ 0(对所有i ∈ I(x))。对于等式约束,需要满足∇h_j(x)ᵀd = 0。这些条件保证了在方向d上移动时,原来满足的约束在局部范围内不会立即被违反。
第三步:构造可行方向子问题
Zoutendijk法的关键是在每个迭代点xₖ求解一个线性规划子问题来寻找最佳可行下降方向。该子问题形式为:
min z
s.t. ∇f(xₖ)ᵀd ≤ z
∇g_i(xₖ)ᵀd ≤ z, i ∈ I(xₖ)
∇h_j(xₖ)ᵀd = 0, j = 1,...,p
-1 ≤ d_l ≤ 1, l = 1,...,n
这里引入变量z来表示约束违反程度的上界,边界约束-1 ≤ d_l ≤ 1是为了保证问题有界。如果求得的最优值z* < 0,则表明存在严格可行下降方向。
第四步:方向搜索与步长选择
当求得可行下降方向dₖ后,需要确定步长αₖ。通常采用线搜索策略,如Armijo准则:选择αₖ使得:
f(xₖ + αₖdₖ) ≤ f(xₖ) + γαₖ∇f(xₖ)ᵀdₖ
同时保证xₖ + αₖdₖ的可行性,其中γ ∈ (0,1)为控制参数。
第五步:收敛性分析
Zoutendijk法的一个重要性质是,在适当条件下,算法产生的序列满足一阶最优性条件。具体来说,如果算法在有限步内停止,则当前点是一个驻点;否则,任何聚点都是原问题的KKT点。这个收敛性证明依赖于约束规格(如MFCQ)的假设。
第六步:实际应用考虑
在实际计算中,需要注意几个关键点:
- 约束积极集的识别精度会影响方向质量
- 当z* = 0时,当前点可能已接近KKT点
- 对于非线性等式约束,可行方向集可能很窄,需要精细的线搜索策略
- 与投影梯度法的结合可以改进数值稳定性
这个方法特别适用于中等规模的非线性规划问题,其优势在于每次迭代只需要求解一个线性规划问题,计算相对简单,且能保证迭代点的可行性。