Skip to content

Take advantage of power cones in atom canonicalization #1223

@rileyjmurray

Description

@rileyjmurray

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).

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions