  In this paper, we give a new penalized semidefinite programming approach for
non-convex quadratically-constrained quadratic programs (QCQPs). We incorporate
penalty terms into the objective of convex relaxations in order to retrieve
feasible and near-optimal solutions for non-convex QCQPs. We introduce a
generalized linear independence constraint qualification (GLICQ) criterion and
prove that any GLICQ regular point that is sufficiently close to the feasible
set can be used to construct an appropriate penalty term and recover a feasible
solution. Inspired by these results, we develop a heuristic sequential
procedure that preserves feasibility and aims to improve the objective value at
each iteration. Numerical experiments on large-scale system identification
problems as well as benchmark instances from the library of quadratic
programming (QPLIB) demonstrate the ability of the proposed penalized
semidefinite programs in finding near-optimal solutions for non-convex QCQP.
