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

Take advantage of power cones in atom canonicalization #1223

Open
rileyjmurray opened this issue Jan 24, 2021 · 2 comments
Open

Take advantage of power cones in atom canonicalization #1223

rileyjmurray opened this issue Jan 24, 2021 · 2 comments

Comments

@rileyjmurray
Copy link
Collaborator

Some cvxpy atoms are approximately canonicalized via collections of SOC constraints, when they could be represented exactly by power cones. Support for power cone constraints was added in #1211, but that PR didn't modify or create new atoms.

We should look at revising our current canonicalization of power-cone-representable atoms, including geo_mean, pnorm, and power, which have downstream uses in harmonic_mean, inv_prod, and mixed_norm. Right now the (approximate) canonicalizations of these atoms is managed by functions in cvxpy/utilities/power_tools.py.

I think the natural way to do this is to rewrite all of these atoms to use PowCone3D constraints, and then to add in a new reduction that replaces a given PowCone3D constraint by an approximation obtained with several SOC constraints. At the same time, we could consider adding a reduction that replaces a PowCone3D constraint with an equivalent pair of ExpCone constraints (this would have the effect of allowing ECOS to avoid approximate reformulations via SOC constraints).

@akshayka
Copy link
Collaborator

Riley, that approach sounds very natural indeed! Totally on board with it, provided that Steven agrees.

@SteveDiamond
Copy link
Collaborator

That's fine with me!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: No status
Development

No branches or pull requests

3 participants