A convex QCQP problem can be efficiently solved using an interior point method (in a polynomial time), typically requiring around 30-60 iterations to converge. Solving the general non-convex case is an
NP-hard problem. To see this, note that the two constraints
x1(
x1 − 1) ≤ 0 and
x1(
x1 − 1) ≥ 0 are equivalent to the constraint
x1(
x1 − 1) = 0, which is in turn equivalent to the constraint
x1 ∈ {0, 1}. Hence, any
0–1 integer program (in which all variables have to be either 0 or 1) can be formulated as a quadratically constrained quadratic program. Since 0–1
integer programming is NP-hard in general, QCQP is also NP-hard. However, even for a nonconvex QCQP problem a local solution can generally be found with a nonconvex variant of the interior point method. In some cases (such as when solving
nonlinear programming problems with a sequential QCQP approach) these local solutions are sufficiently good to be accepted. == Relaxation ==