Mathematica Asked on July 4, 2021
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.
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP