Back-End Reductions

The reductions listed here are specific to the choice of back end, i.e., solver. Currently, we support two types of back ends: conic solvers and quadratic program solvers. When a problem is solved through the solve() method, CVXPY attempts to find the best back end for your problem. The Dcp2Cone reduction converts DCP-compliant problems into conic form, while the Qp2SymbolicQp converts problems with quadratic, piecewise affine objectives, affine equality constraints, and piecewise-linear inequality constraints into a form that is closer to what is accepted by solvers. The problems output by both reductions must be passed through another sequence of reductions, not documented here, before they are ready for to be solved.

Dcp2Cone

class cvxpy.reductions.dcp2cone.dcp2cone.Dcp2Cone(problem=None)[source]

Bases: cvxpy.reductions.canonicalization.Canonicalization

Reduce DCP problems to a conic form.

This reduction takes as input (minimization) DCP problems and converts them into problems with affine objectives and conic constraints whose arguments are affine.

accepts(problem)[source]

A problem is accepted if it is a minimization and is DCP.

apply(problem)[source]

Converts a DCP problem to a conic form.

Qp2SymbolicQp

class cvxpy.reductions.qp2quad_form.qp2symbolic_qp.Qp2SymbolicQp(problem=None)[source]

Bases: cvxpy.reductions.canonicalization.Canonicalization

Reduces a quadratic problem to a problem that consists of affine expressions and symbolic quadratic forms.

accepts(problem)[source]

Problems with quadratic, piecewise affine objectives, piecewise-linear constraints inequality constraints, and affine equality constraints are accepted.

apply(problem)[source]

Converts a QP to an even more symbolic form.