有人可以从高层次上解释一下 SCP 和 SQP 解决非线性(非凸)程序的区别吗?
假设我的问题类似于
minx.f(x)
s.t.g(x)≤0
其中和都是(通常)非凸的。fg
我的理解是(无论是信任区域还是线搜索变体)SCP 通过围绕当前迭代的凸近似来解决问题,并类似地线性化约束并求解凸子问题f~xkg(x)≈g~(x)=g(xk)+∇g(xk)(x−xk)
minx.f~(x)
s.t.g~(x)≤0
获得下一次迭代或至少方向使得。xk+1dxk+1=xk+αd
就我的理解而言,同样地,SQP 通过解决二次问题找到下一个迭代
minx.f^(x)
s.t.g^(x)≤0
其中和其中是 Hessian 或其近似值。g^=g(xk)+∇g(xk)(x−xk)f^(x)=f(xk)+∇f(xk)d+dBkdBk
那么这两种方法之间的区别仅仅是目标的凸近似的假设形状吗?f
还是我遗漏了一些细节?