Determinant maximization


Let us solve a determinant maximization problem. Given two ellipsoids

E1 = {x | xTP1x1}

E2 = {x | xTP2x1}

Find the ellipsoid E = {x | xTPx≤1} with smallest possible volume that contain the union of E1 and E2. By using the fact that the volume of the ellipsoid is proportional to -det P and applying the S-procedure, it can be shown that this problem can be written as

The objective function -det P (which is minimized) is not convex, but monotonic transformations can render this problem convex. One alternative is the logarithmic transform, leading to minimization of -log det P instead. This operator was used in previous version of YALMIP, but is not recommended any more.

Instead, YALMIP uses -(det P)1/m where m is dimension of P (in other words, the geometric mean of the eigenvalues). The concave function (det P)1/m, available by applying geomean on a Hermitian matrix in YALMIP, can be modeled using semidefinite and second order cones, hence any SDP solver can be used for solving determinant maximization problems. See [Nesterov and Nemirovskii] for details.

n = 2;
P1 = randn(2);P1 = P1*P1'; % Generate random ellipsoid
P2 = randn(2);P2 = P2*P2'; % Generate random ellipsoid
t = sdpvar(2,1);
P = sdpvar(n,n);
F = set(1 > t > 0);
F = F + set(t(1)*P1-P > 0);
F = F + set(t(2)*P2-P > 0);
sol = solvesdp(F,-geomean(P));
ellipplot(double(P));hold on;
ellipplot(double(P1));
ellipplot(double(P2));

If you have the dedicated solver MAXDET installed and want to use it, you must use the dedicated command logdet for the objective and explicitly select MAXDET. This command can not be used in any other construction than in the objective function, compared to the geomean operator that can be used as any other variable in YALMIP, since it a so called extended operator.

solvesdp(F,-logdet(P),sdpsettings('solver','maxdet'));
ellipplot(double(P));hold on;
ellipplot(double(P1));
ellipplot(double(P2));

Note that if you use the logdet command, if MAXDET not is explicitly selected, YALMIP will use -(det P)1/m as objective function instead. This will not cause any problems if your objective function is a simple logdet expression (since the two functions are monotonically related). However, if you have a mixed objective function such as tr(P)-logdet(P), the conversion will change your optimal solution. Hence, if you really want to optimize the mixed expression, you must explicitly select MAXDET. Otherwise, YALMIP will change your objective to tr(P)-(det P)1/m.