Hello!
I have been trying to solve a Orthogonal Procrustes problem which is posed as a Frobenious Norm minimization problem where the frobenious norm of AX-B is minimized. In words, we are looking for the best linear mapping A for mapping X to B. A,X and B all are matrices. When I try to solve this unconstrained minimization problem, CVX is giving me outputs.
To put some constraints, instead of minimizing norm(AX-B,‘fro’), I am trying to minimize equivalent problem termed as:
minimize trace(X’QX) - 2*trace(B’AX) where Q = A’A. The transposes are conjugate transposes. In CVX, the code is written as below:
cvx_begin
cvx_solver sedumi
variable codebooks(N,M*J) complex;
variable Q(M*J,M*J) hermitian toeplitz;
minimize abs(trace(indicator'*Q*indicator-2*y'*codebooks*indicator))
subject to
for i=1:M*J
Q(i,i) == 1;
end
cvx_end
Unfortunately CVX is accepting my problem but returning NaN as the output.
Calling SeDuMi 1.34: 144 variables, 0 equality constraints
SeDuMi 1.34 (beta) by AdvOL, 2005-2008 and Jos F. Sturm, 1998-2003.
Alg = 2: xz-corrector, Adaptive Step-Differentiation, theta = 0.250, beta = 0.500
eqs m = 1, order n = 6, dim = 148, blocks = 3
nnz(A) = 1 + 0, nnz(ADA) = 1, nnz(L) = 1
it : by gap delta rate t/tP t/tD* feas cg cg prec
0 : 4.73E+00 0.000
1 : 8.96E-02 1.96E+00 0.000 0.4148 0.9000 0.9000 1.28 1 1 2.1E+00
2 : 1.09E-02 8.86E-02 0.000 0.0451 0.9900 0.9900 1.36 1 1 6.5E-01
3 : 3.67E-06 7.54E-04 0.000 0.0085 0.9945 0.9945 1.03 1 1 3.2E-01
4 : 2.73E-04 5.05E-05 0.000 0.0670 0.9675 0.9675 -0.93 1 1 5.8E-04
5 : 1.89E-04 1.20E-06 0.000 0.0237 0.9900 0.9900 -1.14 1 1 4.7E-04
6 : 1.52E-04 5.43E-10 0.000 0.0005 0.9999 0.9999 -1.00 1 1 4.2E-04
7 : 1.11E-04 9.23E-11 0.000 0.1699 0.8438 0.8438 -1.04 1 1 3.5E-04
8 : 1.19E-04 2.64E-12 0.000 0.0287 0.9900 0.9900 -1.04 1 1 3.6E-04
9 : 1.05E-04 6.06E-13 0.175 0.2290 0.7875 0.7875 -1.01 2 2 3.4E-04
10 : 7.05E-05 2.95E-14 0.000 0.0487 0.9675 0.9675 -0.90 3 2 3.0E-04
11 : 7.05E-05 2.30E-15 0.000 0.0779 0.9000 0.0000 -0.99 3 3 2.9E-04
12 : 6.78E-05 8.04E-17 0.294 0.0350 0.9675 0.9652 -1.00 3 3 2.8E-04
13 : 5.13E-05 2.46E-17 0.203 0.3055 0.6750 0.6750 -0.99 3 3 2.7E-04
iter seconds |Ax| [Ay]_+ |x| |y|
13 0.6 1.5e-02 1.8e-17 5.9e+00 2.6e-17
Failed: no sensible solution/direction found.
Detailed timing (sec)
Pre IPM Post
1.480E-01 3.830E-01 1.001E-02
Max-norms: ||b||=1, ||c|| = 1,
Cholesky |add|=0, |skip| = 0, ||L.L|| = 1.
Status: Failed
Optimal value (cvx_optval): NaN
Is any DCP ruleset being violated for this alternative representation of main problem which I could solve in CVX? I will be truly grateful for any sort of kind suggestion. Thanks in advance!