Problem of solving a large scale Quadratic Problem with Quadratic Inquality Constraint (QCQP)

qcqpsemidefinite-programming

I am trying to solve following large-scale quadratic fractional (QF) problem:
\begin{equation}
\begin{aligned}
\min_{x\in\Re^{n\times1}} &\frac{x^\top H x + f^\top x + C_e}{x^\top R x}\\
\text{s.t.} &~~Ax\leq b
\end{aligned}
\end{equation}

where $H$ and $R$ are both positive definite matrics. $C_e$ is a positive scalar. $n$ is around 5000.

By letting $z^2:=\frac{1}{x^\top R x}$, the original QF problem can be transferred into a non-convex QCQP problem:
\begin{equation}
\begin{aligned}
\min_{\theta\in\Re^{n+1}} &\theta^\top \tilde{H} \theta\\
\text{s.t.} &~~\theta^\top\tilde{R}\theta=1\\
&~~\tilde{A}\theta\leq \tilde{b}\\
&~~\sigma^{-1}_{\text{vwap}} \leq z
\end{aligned}
\end{equation}

where $\theta:=[y^\top,z]^\top$, $y=xz$ and solve it using some non-convex solver i.e. IPOPT.

Alternatively, I could transform the non-convex QCQP problem into a semi-definite programming (SDP) problem, such that:
\begin{equation}
\begin{aligned}
\min_{X} &~tr(\tilde{H} X)\\
\text{s.t.} &~~tr(\tilde{R}X)=1\\
&~~tr(\tilde{A}_iX)\leq \tilde{b}_i\\
&~~ X\succeq 0
\end{aligned}
\end{equation}

and solve it using some SDP solver, i.e. MOSEK. I firstly tried to use MOSEK to solve this $5000\times 5000$ SDP problem, but it seems very slow.

I then tried to use IPOPT (ver 3.12.9). By providing the Jacobian & Hessian informations and a feasible initial guess $x_0$, IPOPT could solve my problem very fast in most of the time. However, sometimes IPOPT iterations stucks for more than 10 mins! Because it keeps

"Reallocating memory for MA57: lfact"

I am wondering, is there any efficient and robust way to solve my optimization problem?

Best Answer

The IPOPT memory reallocating problem can be solved by setting

options.ipopt.ma57_automatic_scaling = 'yes';

Related Question