I have gone through Mathematica’s documentation and guides on ConvexOptimization, ParametricConvexOptimization and SemidefiniteOptimization. I am also running the latest version of Mathematica.
The kind of matrix-based, parametric, constrained optimization problems I want to solve is this:
begin{equation}
min_{X_j, , L_{jk}} text{Tr}(A L) \
text{such that, } X_j text{ and } L_{jk} text{ are } 4times4 text{ Hermitian matrices} \
G_k cdot X_j = delta_{j k}\
L:=begin{bmatrix}L_{11} &L_{12} &L_{13} \ L_{12} &L_{22} &L_{23} \ L_{13} &L_{23} &L_{33}end{bmatrix} succeq begin{bmatrix} X_1 \ X_2 \ X_3 end{bmatrix}begin{bmatrix}X_1 &X_2 &X_3end{bmatrix}
end{equation}
where the variables to be optimized over are $X_j$ and $L_{jk}$ ($j$ and $k$ run from 1 to 3), which are themselves matrices! The matrices $G_k$ and $A$ depend on some parameter $alpha$ (and satisfy additional properties).
I have been able to run this kind of optimization in MATLAB, and also a much simpler version of this in Mathematica, where $j, k=1$ and the parameter value is fixed, using,
ConvexOptimization(
Tr((Rho)0 .
v11), {VectorGreaterEqual({v11, x1}, "SemidefiniteCone") &&
Tr((Rho)0 . x1) == 0 && Tr((Rho)1 . x1) == 1 &&
Element(x1, Matrices({4, 4}, Complexes, Hermitian)) &&
Element(v11, Matrices({4, 4}, Complexes, Hermitian))} , {x1,
v11}))
However I simply can not get the full problem to run on Mathematica, using either ConvexOptimization( ) (at fixed parameter values), ParametricConvexOptimization( ), SemidefiniteOptimization( ), or Minimize( ).
ConvexOptimization( ) at fixed parameter values for $j, k = 1, 2$ shows the warning ConvexOptimization::ctuc: The curvature (convexity or concavity) of the term X1.X2 in the constraint {{L11,L12},{L12,L22}}Underscript((VectorGreaterEqual), Subsuperscript((ScriptCapitalS), +, (FilledSquare))){{X1.X1,X1.X2},{X1.X2,X2.X2}} could not be determined.
Minimize( ) shows the error Minimize::vecin: Unable to resolve vector inequalities ...
And ParametricConvexOptimization( ) and SemidefiniteOptimization( ) simply return the input as output.
Has anyone got some experience with running such matrix-based optimizations in Mathematica? Thanks for your help.
EDIT 1:
For the two-dimensional case ($j, k=1, 2$) I tried (with $A$ the identity matrix, and at fixed parameter value):
ConvexOptimization(
Tr(Tr(ArrayFlatten({{L11, L12}, {L12,
L22}}))), {VectorGreaterEqual({ArrayFlatten({{L11, L12}, {L12,
L22}}), ArrayFlatten({{X1 . X1, X1 . X2}, {X1 . X2,
X2 . X2}})}, "SemidefiniteCone") && Tr((Rho)0 . X1) == 0 &&
Tr((Rho)0 . X2) == 0 && Tr((Rho)1 . X1) == 1 &&
Tr((Rho)1 . X2) == 0 && Tr((Rho)2 . X1) == 0 &&
Tr((Rho)2 . X2) == 1 &&
Element(X1, Matrices({4, 4}, Complexes, Hermitian)) &&
Element(X2, Matrices({4, 4}, Complexes, Hermitian)) &&
Element(L11, Matrices({4, 4}, Complexes, Hermitian)) &&
Element(L12, Matrices({4, 4}, Complexes, Hermitian)) &&
Element(L22, Matrices({4, 4}, Complexes, Hermitian)) }, {X1, X2,
L11, L12, L22})
and for the three-dimensional case ($j, k = 1, 2, 3$) with variable parameter value and $A$ the identity matrix, I tried
ParametricConvexOptimization(
Tr(Tr(ArrayFlatten({{L11, L12, L13}, {L12, L22, L23}, {L13, L23,
L33}}))), {VectorGreaterEqual({ArrayFlatten({{L11, L12,
L13}, {L12, L22, L23}, {L13, L23, L33}}),
ArrayFlatten({{X1}, {X2}, {X3}}) .
Transpose(ArrayFlatten({{X1}, {X2}, {X3}}))},
"SemidefiniteCone"), Tr((Rho)0 . X1) == 0 ,
Tr((Rho)0 . X2) == 0 , Tr((Rho)0 . X3) == 0 ,
Tr((Rho)1 . X1) == 1 , Tr((Rho)1 . X2) == 0 ,
Tr((Rho)1 . X3) == 0 , Tr((Rho)2 . X1) == 0 ,
Tr((Rho)2 . X2) == 1 , Tr((Rho)2 . X3) == 0 ,
Tr((Rho)3 . X1) == 0 , Tr((Rho)3 . X2) == 0 ,
Tr((Rho)3 . X3) == 1 }, {Element(X1,
Matrices({4, 4}, Complexes, Hermitian)),
Element(X2, Matrices({4, 4}, Complexes, Hermitian)),
Element(X3, Matrices({4, 4}, Complexes, Hermitian)),
Element(L11, Matrices({4, 4}, Complexes, Hermitian)),
Element(L12, Matrices({4, 4}, Complexes, Hermitian)),
Element(L13, Matrices({4, 4}, Complexes, Hermitian)),
Element(L22, Matrices({4, 4}, Complexes, Hermitian)),
Element(L23, Matrices({4, 4}, Complexes, Hermitian)),
Element(L33, Matrices({4, 4}, Complexes, Hermitian))}, {(Alpha)})
Here, the $rho_{k}$ matrices are the $G_k$ matrices.