非线性规划中的过滤集方法(Filter Method)基础题
题目描述:
考虑一个标准形式的非线性规划问题:
最小化 \(f(x)\)
满足约束 \(g_i(x) \leq 0, \quad i = 1, 2, \ldots, m\),
其中 \(f\) 和 \(g_i\) 是连续可微函数,\(x \in \mathbb{R}^n\)。过滤集方法通过维护一个“过滤集”来平衡目标函数值下降和约束违反度减少,避免传统罚函数法中惩罚因子难以选取的问题。假设当前迭代点为 \(x_k\),约束违反度函数定义为 \(h(x) = \sum_{i=1}^{m} \max(0, g_i(x))\)。请详细解释过滤集方法的基本原理、迭代步骤及收敛性考虑。
解题过程:
-
基本思想
过滤集方法的核心是避免目标函数 \(f(x)\) 与约束违反度 \(h(x)\) 之间的权衡问题。传统罚函数法需将两者结合为单一函数(如 \(f(x) + \mu h(x)\)),但惩罚因子 \(\mu\) 的选取困难。过滤集方法将 \((h(x), f(x))\) 视为一对指标,通过直接比较这些指标对来接受新迭代点。 -
过滤集的定义
过滤集 \(\mathcal{F}_k\) 是一个由历史点对应的 \((h, f)\) 对组成的集合。新点 \(x_{k+1}\) 被接受的条件是:其对应的 \((h(x_{k+1}), f(x_{k+1}))\) 不被过滤集中任何点“支配”。支配关系定义为:
点 \((h_a, f_a)\) 支配 \((h_b, f_b)\) 当且仅当 \(h_a \leq h_b\) 且 \(f_a \leq f_b\),且至少有一个严格不等式成立。
这意味着新点必须在约束违反度或目标函数值上至少有一项优于过滤集中所有点。 -
迭代步骤
- 步骤0:初始化
选择初始点 \(x_0\),初始化过滤集 \(\mathcal{F}_0 = \{(h(x_0), f(x_0))\}\)(或为空集,若 \(x_0\) 不可行)。设定收敛容忍度 \(\epsilon > 0\)。 - 步骤1:子问题求解
在当前点 \(x_k\),通过局部优化方法(如QP子问题)计算试探点 \(x_{k+1}\)。子问题需同时减少 \(f\) 和 \(h\),例如:
最小化 \(\nabla f(x_k)^T d + \frac{1}{2} d^T H_k d\)
满足 \(g_i(x_k) + \nabla g_i(x_k)^T d \leq 0\),其中 \(H_k\) 为Hessian近似。 - 步骤2:过滤集检查
若 \((h(x_{k+1}), f(x_{k+1}))\) 不被 \(\mathcal{F}_k\) 中任何点支配,则接受 \(x_{k+1}\),并更新过滤集:- 将 \((h(x_{k+1}), f(x_{k+1}))\) 加入 \(\mathcal{F}_{k+1}\)。
- 移除 \(\mathcal{F}_k\) 中被新点支配的所有点(保持过滤集的非支配性)。
否则,拒绝 \(x_{k+1}\),缩小步长或调整子问题后重新求解。
- 步骤3:收敛判断
若 \(\|x_{k+1} - x_k\| < \epsilon\) 且 \(h(x_{k+1}) < \epsilon\),则停止;否则令 \(k = k+1\),返回步骤1。
- 步骤0:初始化
-
收敛性保证
为确保全局收敛,需引入“充分下降条件”避免循环。常见策略是要求新点满足:
\(f(x_{k+1}) \leq f(x_k) - \gamma h(x_k)\) 或 \(h(x_{k+1}) \leq \beta h(x_k)\),
其中 \(\gamma, \beta \in (0,1)\) 为参数。这能保证每次迭代要么显著减少 \(f\),要么显著减少 \(h\),从而推动收敛至KKT点。 -
优点与注意事项
- 优点:无需调整惩罚因子,避免过罚或欠罚问题。
- 注意:过滤集可能变大,需定期清理;子问题需保证可行性,否则需结合恢复策略。