TransWikia.com

Can Mathematica solve matrix-based parametric (convex or semidefinite) constrained optimization problems?

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.

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP