How to solve the following constrained minimization problem: $$ \arg_S min_\; \frac{1}{2}\left \{ \left \| K_2SK_1^T-M \right \|_F^2 +\lambda \left \| S \right \|_F^2\right \} \\ s.t. \sum_{1}^{col}S=Sum1 \\ \sum_{1}^{row}S=Sum2 \\ s_{i,j} \in S \geq 0 \\ $$
where $K_1$,$K_2$,$M$ and $S$ are 2d Matrix, and only $S$ is unknown. In the constraints, $Sum1$ is the sum along the column of $S$, which is a row vector. $Sum2$ is the sum along the row of $S$, which is a column vector. All elements in $S$ are non-negative.
Here is the data stored in mat format. How to solve this kind of problem? Are there any MATLAB routines I can use out-of-box?
load('matlab.mat');
% min norm( K2*X*K1'-M,'fro')^2+lambda*norm(X,'fro')^2
% s.t. sum(X,1) = Sum1 ; sum(X,2) = Sum2; all(X>=0) = true
What I've Tried:
- CVX:
Failed to find the optimal solution with all supported solvers. Here is the cvx script I use:
cvx_begin
variable S(size(K2,2),size(K1,2))
minimize(0.5*(square_pos(norm(K2*S*K1'-M,'fro'))+lambda*square_pos(norm(S,'fro'))))
sum(S,1) == Sum1
sum(S,2) == Sum2
S>=0
cvx_end
Edit:
A synthetic data with much smaller scale was attached here. DR was also normalized.

Mis missing in the data you linked. Moreover, the DR is still huge! – Royi Dec 28 '20 at 09:02