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?