YeeKal
optimization

非线性优化

YeeKal
"#optimization"

  • SQP

SQP: Sequential quadratic programming

求解带约束非线性优化问题的迭代方法,要求目标函数二阶微分连续。每次迭代相当于求一个二次优化问题。

kkt 条件

牛顿法: $x_{k+1} = x_k - \frac{\nabla f}{\nabla^2f}$

SQP algorithm A feasible point x ∈ F that satisfies the first order necessary optimality conditions (A1) is called a critical point of the NLP (4.1a)-(4.1c). Note that a critical point need not to be a local minimum

在ktt点,目标函数的极值点也是拉格朗日函数的极值点;所有的约束要么是等于0,否则就退化为无约束条件。SQP算法通过牛顿法寻找拉格朗日函数的极值点:

如果微分变量能完整得通过解析的方式求出来,则这一迭代过程会很顺利。

等式约束

令每次迭代步长为$\delta =$, 则:

上式等价于一个等式约束的二次规划问题:

对以上二次规划问题通过使拉格朗日方程的梯度为0即可得到迭代步长的表达式。

不等式约束

令每次迭代步长为$\delta =$, 则:

等价的带不等式约束的二次规划问题

求解方式:

  • directly solve matrix block
  • Quasi-Newton approximations to the Hessian
  • trust region, line search to improve robustness
  • treatment of constraints during the iterative process

ref