MultipleChoiceTransformation

(class from pyomo.contrib.piecewise.transform.multiple_choice)

class pyomo.contrib.piecewise.transform.multiple_choice.MultipleChoiceTransformation(**kwds)[source]

Bases: Transformation

Converts a model containing PiecewiseLinearFunctions to a an equivalent MIP via the Multiple Choice method from [1]. Note that, while this model probably resolves to the model described in [1] after presolve, the Pyomo version is not as simplified. Specifically, in [1], the the ‘z’ variables (representing the value of the piecewise-linear function in each Disjunct) are not disaggregated. In this transformation’s output they will be, but a linear combination of inequalities yields a model equivalent to the Multiple Choice model in [1].

References

[1] J.P. Vielma, S. Ahmed, and G. Nemhauser, “Mixed-integer models

for nonseparable piecewise-linear optimization: unifying framework and extensions,” Operations Research, vol. 58, no. 2, pp. 305-315, 2010.

__init__(**kwds)

Methods

__init__(**kwds)

apply(model, **kwds)

DEPRECATED.

apply_to(model, **kwds)

Apply the transformation to the given model.

create_using(model, **kwds)

Create a new model with this transformation

Member Documentation

apply(model, **kwds)

DEPRECATED.

Deprecated since version 4.3.11323: Transformation.apply() has been deprecated. Please use either Transformation.apply_to() for in-place transformations or Transformation.create_using() for transformations that create a new, independent transformed model instance.

apply_to(model, **kwds)

Apply the transformation to the given model.

create_using(model, **kwds)

Create a new model with this transformation