I am getting out of memory while running following SDP on 150 dataset

Uncategorized
Nov 21, 2015
J

I have written the following optimization problem(NEO k means with SDP) in cvx(SDP).

\begin{multline}
\max_{Z,f ,g} \ trace(KZ) − f^Td \
subject to \
trace(W^{−1}Z) = k \
Z_{ij} ≥ 0 \
Z = Z^T \
Ze = Wf \
e^Tf = (1 + α)n \
e^T g ≥ (1 − β)n \
f \geq g \
0 \leq g \leq 1
\end{multline}

I have written the following code for the above optimization problem in the cvx matlab.

cvx_begin SDP
 variables Z(n_datapoints,n_datapoints) f(n_datapoints,1) g(n_datapoints,1)
 minimize ((f' * d ) - trace(K * Z))
 trace(inv(W) *  Z) == k_classes
 Z >= 0 
 Z == Z'
 (Z * e) == (W * f)
 e' * f == (1+alpha)*n_datapoints
 e'* g >= (1-beta)*n_datapoints
 f >= g
 g>= 0
 g <= 1
cvx_end

% now use cvx to formulate the problem
cvx_begin SDP
variables Z(n_datapoints,n_datapoints) f(n_datapoints,1) g(n_datapoints,1)
trace( Z/W) == k_classes
Z >= 0
Z == Z’
(Z * e) == (W * f)
e’ * f == (1+alpha)n_datapoints
e’
g >= (1-beta)*n_datapoints
f >= g
g>= 0
g <= 1
minimize ((f’ * d ) * trace(K * Z))
cvx_end
cvx_status

I don’t know whether I have written it correctly or not. Whenever I am running it , it is giving me out of memory error.
Please help me.

M

What happens if you try another solver, like SeDuMi or MOSEK?

Unfortunately, if you’re running out of memory, there’s likely nothing we can do.

J
Replying to #2

I am new to CVX . Could you please tell me whether the formulation I have done is correct ot not ?