SCP (Sequential Convex Programming) vs SQP (Sequential Quadratic Programming)

117 Views Asked by At

Can someone explain me at a high level the difference between an SCP and an SQP to solve a nonlinear (nonconvex) program?

Assume my problem is something like

$$\min_x. \quad f(x)$$ $$\text{s.t. }\quad g(x) \leq 0 $$

where both $f$ and $g$ are (in general) nonconvex.

My understanding is that (regardless or trust-region or line-search variants) SCP tackles the problem by forming a convex approximation of the objective $\tilde f$ around the current iterate $x^k$ and similarly linearise the constraints $g(x) \approx \tilde g(x) = g(x^k) + \nabla g(x^k)(x-x^k)$ and solve the the convex subproblem

$$\min_x. \quad \tilde f(x)$$ $$\text{s.t. }\quad \tilde g(x) \leq 0 $$

to obtain the next iterate $x^{k+1}$ or at least the direction $d$ such that $x^{k+1} = x^k + \alpha d$.

In the same vein as far as my understanding goes SQP find the next iterate by solving the quadratic problem

$$\min_x. \quad \hat f(x)$$ $$\text{s.t. } \quad \hat g(x) \leq 0 $$

where $\hat g = g(x^k) + \nabla g(x^k)(x-x^k)$ and $\hat f(x) = f(x^k) + \nabla f(x^k)d + d B_k d$ where $B_k$ is the Hessian or an approximation of it.

So is the difference between the two methods just the assumed shape of the convex approximation of the objective $f$ ?

Or am I missing some details?