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

Exotic2Common: avoid stack atoms in PowConeND to PowCone3D reduction #1222

Open
rileyjmurray opened this issue Jan 24, 2021 · 8 comments
Open
Labels
canonicalization help wanted We would appreciate contributions for this issue! A CVXPY member will provide guidance.

Comments

@rileyjmurray
Copy link
Collaborator

rileyjmurray commented Jan 24, 2021

Following PR #1211, cvxpy supports 3D and ND power cone constraints. The main way for doing this is the (Exotic2Common) that maps an ND power cone to a collection of (N-2) 3D power cones. As-implemented, this reduction has two downsides:

  1. The canonicalization involves use of hstack atoms and other high-level affine transformations. This use of high-level atoms will likely be more expensive to canonicalize in cvxcore compared to if we built suitable sparse matrices directly.
  2. The PowConeND class currently does not have dual variable support. (Resolved in 2023 by PR Dual variables for PowConeND #2241.)

We'd welcome contributions handling either of these issues.

We'd welcome contributions for handling the remaining issue.

@rileyjmurray rileyjmurray added canonicalization help wanted We would appreciate contributions for this issue! A CVXPY member will provide guidance. labels Jan 24, 2021
@rileyjmurray
Copy link
Collaborator Author

For (2), see this writeup on how dual variables for the 3D power cone lift of the ND power cone can be propogated back as dual variables for the original ND power cone.

@pat749
Copy link

pat749 commented Mar 22, 2022

hi @rileyjmurray currently i am working on it and i am also reading arxiv research paper which you have given ,but i have a simple doubt should hamza fawzi paper also have to implemented using cvxpy and also any suggestion for this task? thanks

@pat749
Copy link

pat749 commented Mar 22, 2022

and also any discourse group where i can join

@rileyjmurray
Copy link
Collaborator Author

rileyjmurray commented Mar 22, 2022

Hi @pat749, nice to hear you're taking this on! Hamza Fawzi's papers are not needed for this task. We can have discussions here, on Discord, or on GitHub Discussions.

@pat749
Copy link

pat749 commented Mar 22, 2022

ok thanks

@rileyjmurray
Copy link
Collaborator Author

@pat749 have you worked on this? If so, can you please push your code to a public repository so I can see where you're at?

@pat749
Copy link

pat749 commented Apr 12, 2022

yes i have worked on it just some work remaining ,currently i am busy due to proposal writting for gsoc
and also college exam i will try to complete it by 17-18 april. i have some doubt about this can i get some more references about ND power cone?

@goulart-paul
Copy link
Contributor

We have added native support for ND power cones in Clarabel v0.6.0, including updates to the python wrapper.

Very basic example here. Better documentation than that still to come.

@rileyjmurray rileyjmurray changed the title Improve N-dimensional power cone support Exotic2Common: avoid use of stacking atoms in PowConeND to PowCone3D reduction Oct 4, 2023
@rileyjmurray rileyjmurray changed the title Exotic2Common: avoid use of stacking atoms in PowConeND to PowCone3D reduction Exotic2Common: avoid stack atoms in PowConeND to PowCone3D reduction Oct 4, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
canonicalization help wanted We would appreciate contributions for this issue! A CVXPY member will provide guidance.
Projects
Status: No status
Development

No branches or pull requests

3 participants