Hi all,
I’m tackling the following nonconvex fractional quadratic optimization problem
where \boldsymbol{x}=[x_1,\dots,x_N]^T, \boldsymbol{a}_t = [a_{1t},\dots,a_{Nt}]^T\, \forall t \in \mathcal{T} and \boldsymbol{Q}_t \in \mathbb{R}_+^{N \times N} \, \forall t \in \mathcal{T} is a stricly lower triangular matrix.
After relaxing the binary constraint, my idea is to use the bisection method being the problem quasi-convex, i.e. I’d check the problem feasibility for smaller and smaller values of a constant z until the problem becomes infeasible. Below is one iteration of the method.
cvx_begin
variable x(N,1)
subject to
for t = 1:T
a_t = A_all(t,:)’;
Q_t = triu(reshape(Q_all(t,:,:),N,N));
a_t’*x <= z * x’*Q_t’*x;
end
0<=x<=1
cvx_end
Unfortunately, CVX returns the error “The second argument must be positive or negative semidefinite”, even though matrix \boldsymbol{Q}_t is positive semidefinite for all t. I also tested it by means of the MATLAB eig function, which gives N zero eigenvalues.
At first I thought it was some kind of numerical problem, so I scaled up the input data. Currently, \boldsymbol{Q}_t's are in the order of 10^3, while \boldsymbol{a}_t's are in the order of 10^2 and I wouldn’t expect it to be an issue for the solver.
Do you have any suggestions? Thank you.