0
$\begingroup$

I am struggling to solve an optimization problem of the following form:

$$\begin{array}{ll} \underset{A}{\text{maximize}} & \log \det (A) \\ \text{subject to} & a^T A^{-1} a \le b\end{array}$$

Is there any solution for it?

$\endgroup$
5
  • $\begingroup$ Does $b$ have negative entries? $\endgroup$ – fedja Aug 25 '20 at 13:46
  • $\begingroup$ @fedja Isn't $b$ a scalar? $\endgroup$ – Rodrigo de Azevedo Aug 25 '20 at 13:50
  • $\begingroup$ @RodrigodeAzevedo Ah, yes. Is it negative then? $\endgroup$ – fedja Aug 25 '20 at 13:50
  • $\begingroup$ @fedja Since $A \succ 0$ (I assume), for $b < 0$ the feasible region is empty. $\endgroup$ – Rodrigo de Azevedo Aug 25 '20 at 13:52
  • $\begingroup$ @RodrigodeAzevedo And for $b>0$ you can multiply $A$ by a huge number and drive the determinant up without any bound. Actually, it is strange either way: WLOG $a=(1,0,\dots,0)$. Then you can take $A=diag(1/b,M,\dots,M)$ if $b>0$ and $diag(1/b,-M,M,\dots,M)$ if $b<0$. So, unless we are in dimension $1$, the answer is always $+\infty$. $\endgroup$ – fedja Aug 25 '20 at 13:56
2
$\begingroup$

I will presume you want $A$ to be constrained to be symmetric (hermitian) psd. In that case, this is a convex optimization problem which is a Linear Semidefinite Programming problem (SDP) a.k.a. Linear Matrix Inequality (LMI).

A convex optimization modeling tool, such as CVX, can formulate this as a standard Linear SDP and call a solver to solve it.

Here is the code for CVX.

cvx_begin
variable A(n,n) hermitian semidefinite
maximize(log_det(A))
subject to
matrix_frac(a,A) <= b
cvx_end
$\endgroup$
4
  • $\begingroup$ Thanks a lot. A is a Hermitian matrix. $\endgroup$ – user164237 Aug 25 '20 at 11:24
  • $\begingroup$ If A can be complex, you can change the variable statment to "variable A(n,n) hermitian semidefinite, as I have now incorporated in the answer. $\endgroup$ – Mark L. Stone Aug 25 '20 at 12:12
  • $\begingroup$ Thanks a lot for your help Mark. $\endgroup$ – user164237 Aug 25 '20 at 22:17
  • $\begingroup$ Sorry I am new here. How can I do it? Is it enough to click on that checkmark? $\endgroup$ – user164237 Aug 26 '20 at 11:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.