非线性规划中的序列二次规划-积极集-乘子法-过滤器-信赖域-自适应屏障-代理模型混合算法基础题
题目描述:
考虑非线性规划问题:
最小化 f(x) = (x₁ - 2)⁴ + (x₁ - 2x₂)²
满足约束条件:
g₁(x) = x₁² - x₂ ≤ 0
g₂(x) = x₁² + x₂² - 1 ≤ 0
其中 x = (x₁, x₂) ∈ R²
解题过程:
- 算法框架理解
这是一个综合了多种先进技术的混合算法,核心思想是:
- 使用序列二次规划(SQP)作为基本迭代框架
- 积极集策略识别有效约束
- 乘子法处理约束违反
- 过滤器避免Maratos效应
- 信赖域控制步长可靠性
- 自适应屏障函数处理不等式约束
- 代理模型减少函数计算成本
-
初始化
设初始点 x⁰ = (0.5, 0.5),初始信赖域半径 Δ₀ = 0.5
初始拉格朗日乘子估计 λ⁰ = (0, 0)
初始屏障参数 μ₀ = 1.0
构建二次代理模型逼近原问题 -
构建子问题
在第k次迭代时,构建二次规划子问题:
最小化 ∇f(xᵏ)ᵀd + ½dᵀBᵏd
满足约束:
∇gᵢ(xᵏ)ᵀd + gᵢ(xᵏ) ≤ 0, i∈Aᵏ(积极集)
||d|| ≤ Δᵏ(信赖域约束)
其中Bᵏ是Hessian矩阵的近似,通过BFGS更新 -
积极集识别
使用阈值ε=10⁻⁶判断约束活跃性:
如果 |gᵢ(xᵏ)| ≤ ε 或 λᵢ > 0,则约束i被认为是积极的
当前点x⁰处:g₁ = -0.25(不活跃),g₂ = 0.5(活跃) -
求解子问题
在信赖域内求解二次规划,得到试探步长dᵏ
计算预测下降量:Δq = q(0) - q(dᵏ)
实际下降量:Δf = f(xᵏ) - f(xᵏ + dᵏ) -
过滤器机制
定义(θ, f)空间,其中θ是约束违反度量
如果新点能改善f或θ,且不被过滤器中的任何点支配,则接受
避免目标函数和约束违反之间的权衡僵局 -
自适应屏障处理
对不等式约束引入对数屏障项:-μ∑ln(-gᵢ(x))
屏障参数μ根据收敛情况自适应调整:μ_{k+1} = 0.1μₖ -
代理模型更新
使用二次模型近似原函数,减少昂贵函数计算
根据实际/预测下降比调整模型精度
如果ρ = Δf/Δq > 0.75,增大信赖域;如果ρ < 0.25,减小信赖域 -
收敛判断
检查KKT条件的满足程度:
||∇L(x, λ)|| ≤ ε₁
max(0, gᵢ(x)) ≤ ε₂
其中ε₁=ε₂=10⁻⁶ -
迭代过程示例
从x⁰开始,经过约5-6次迭代收敛到最优解x* ≈ (0.907, 0.823)
最优值f(x*) ≈ 0.015,两个约束在最优解处都是活跃的
这个混合算法综合了多种技术的优点,在保证收敛性的同时提高了计算效率。