Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for det(P)^(1/n) #214

Closed
dalekj opened this issue Oct 27, 2017 · 4 comments · Fixed by #605
Closed

Support for det(P)^(1/n) #214

dalekj opened this issue Oct 27, 2017 · 4 comments · Fixed by #605

Comments

@dalekj
Copy link

dalekj commented Oct 27, 2017

In trying to solve a problem with objective function
maximize det(P)
there are two common transformations that turn the objective into a convex objective.
The first is to convert the problem to
maximize logdet(P)
which is currently implemented and can be solved using e.g. SCS.
Another option is to instead solve
maximize det(P)^(1/n)
This is equivalent to the geometric mean of the eigenvalues of P. From what I've read, this can be modeled with semidefinite and second order cones (I don't know the details of this). This allows a lot more solvers to be used to solve this optimization problem (instead of relying on a first order method like SCS)

Would it be possible to get support for the nth root of the determinant added?

@blegat
Copy link
Member

blegat commented Oct 27, 2017

An example of implementation can be found in mosek source code in tools/examples/fusion/python/lownerjohn_ellipsoid.py with functions geometric_mean and det_rootn.

@chriscoey
Copy link

There was an old issue which may be of interest: #132

@dalekj
Copy link
Author

dalekj commented Oct 30, 2017

@blegat , thank you for pointing me toward the mosek implementation. Using the references mentioned in the source code, I was able to put together my own implementation.
If I have time, I can try to clean up my code and make it available.

@odow
Copy link
Member

odow commented Apr 23, 2024

Now that #590 is merged, this issue can be resolved by adding a logdet and rootdet atom that map to GenericConstraints with MOI.LogDetConeSquare and MOI.RootDetConeSquare.

@odow odow mentioned this issue Apr 25, 2024
@odow odow closed this as completed in #605 Apr 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

Successfully merging a pull request may close this issue.

5 participants