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

Set request: ScaledPSDCone #531

Closed
blegat opened this issue Oct 1, 2018 · 11 comments · Fixed by #2154
Closed

Set request: ScaledPSDCone #531

blegat opened this issue Oct 1, 2018 · 11 comments · Fixed by #2154
Labels
Type: Set Request Request for a new set
Milestone

Comments

@blegat
Copy link
Member

blegat commented Oct 1, 2018

The scaled PSD cone was removed in #176 arguing that it is not useful when modeling.
However, some solvers such as SCS and Mosek uses it internally and need to transform the unscaled PSD coefficients to the PSD coefficients and also transforming constraintprimal and constraintdual values.
If we add the scaled PSD cone back, these transformations could be factored out of the solver wrappers into a bridge in MOI.
This might seem inefficient to have a bridge for such simple transformation but in fact if implemented as a light bridge (see #523), it shouldn't have more overhead that the transformation currently carried out in the solver wrappers. At least there would be only one place to check for performance.
What do you think ? Should we bring it back ?

  • Bring it back ! 👍
  • Do not bring it back ! 👎
@chriscoey
Copy link
Contributor

Yes please!

@chriscoey
Copy link
Contributor

Looks like we can move ahead with this?

@mlubin
Copy link
Member

mlubin commented Oct 7, 2018

Do we really need three versions of the PSD cone? It's a lot of complexity to manage within MOI.

Light bridges could shift the balance, but they don't exist yet.

@chriscoey
Copy link
Contributor

What is the timeline for the lighter bridges?

@mlubin
Copy link
Member

mlubin commented Oct 7, 2018

After JuMP 0.19

@chriscoey
Copy link
Contributor

Ok. This year?

@mlubin
Copy link
Member

mlubin commented Oct 7, 2018

I don't know. I wouldn't recommend blocking your work on it.

@chriscoey
Copy link
Contributor

The level of complexity that will need to be introduced on the solver side is unacceptable. I will wait. @blegat I'm prepared to help.

@odow
Copy link
Member

odow commented Sep 15, 2021

I added the scaled PSD cone to SCS here: jump-dev/SCS.jl#219, along with a bridge from PositiveSemidefiniteConeTriangle.

A bigger issue than the scaling, which is easy to deal with, is the permutation of the cone. For now I think we're okay with non-standard bridges in the packages. We can revisit if lots of solvers end up using the same bridge and set.

@odow odow changed the title Add scaled psd cone Set request: ScaledPSDCone Nov 19, 2021
@odow
Copy link
Member

odow commented Jun 9, 2022

I'm going to close this issue. We don't need more complications at the MOI level.

We now have a good way for solvers to define their own bridges and expose them via the ListOfNonstandardBridges attribute.

There are also some differences with how the matrices are permuted (lower triangular or upper triangular), so the best course of action is to look at the SCS set and bridge and make the appropriate changes:

https://github.com/jump-dev/SCS.jl/blob/master/src/MOI_wrapper/scaled_psd_cone_bridge.jl

@blegat
Copy link
Member Author

blegat commented Apr 25, 2023

I'm reopening since not having this set starts to generate a lot of duplicate code across solvers:

I don't think we need to add the scaled psd square, scaled log-det etc... but the scaled psd triangle would definitely help

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Type: Set Request Request for a new set
Development

Successfully merging a pull request may close this issue.

4 participants