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, 2020 at 13:46
  • $\begingroup$ @fedja Isn't $b$ a scalar? $\endgroup$ Aug 25, 2020 at 13:50
  • $\begingroup$ @RodrigodeAzevedo Ah, yes. Is it negative then? $\endgroup$
    – fedja
    Aug 25, 2020 at 13:50
  • $\begingroup$ @fedja Since $A \succ 0$ (I assume), for $b < 0$ the feasible region is empty. $\endgroup$ Aug 25, 2020 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, 2020 at 13:56

1 Answer 1

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, 2020 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$ Aug 25, 2020 at 12:12
  • $\begingroup$ Thanks a lot for your help Mark. $\endgroup$
    – user164237
    Aug 25, 2020 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, 2020 at 11:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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