MultipleBigMTransformation

(class from pyomo.gdp.plugins.multiple_bigm)

class pyomo.gdp.plugins.multiple_bigm.MultipleBigMTransformation[source]

Bases: GDP_to_MIP_Transformation, _BigM_MixIn

Implements the multiple big-M transformation from [1]. Note that this transformation is no different than the big-M transformation for two- term disjunctions, but that it may provide a tighter relaxation for models containing some disjunctions with three or more terms.

[1] Francisco Trespalaios and Ignacio E. Grossmann, “Improved Big-M

reformulation for generalized disjunctive programs,” Computers and Chemical Engineering, vol. 76, 2015, pp. 98-103.

__init__()[source]

Initialize transformation object.

Methods

__init__()

Initialize transformation object.

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

get_all_M_values(model)

Returns a dictionary mapping each constraint, disjunct pair (where the constraint is on a disjunct and the disjunct is in the same disjunction as that disjunct) to a tuple: (lower_M_value, upper_M_value), where either can be None if the constraint does not have a lower or upper bound (respectively).

get_src_constraint()

Return the original Constraint whose transformed counterpart is transformedConstraint

get_src_constraints(transformedConstraint)

Return the original Constraints whose transformed counterpart is transformedConstraint

get_src_disjunct()

Return the Disjunct object whose transformed components are on transBlock.

get_src_disjunction()

Return the Disjunction corresponding to xor_constraint

get_transformed_constraints()

Return the transformed version of srcConstraint

Attributes

CONFIG

transformation_name

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

get_all_M_values(model)[source]

Returns a dictionary mapping each constraint, disjunct pair (where the constraint is on a disjunct and the disjunct is in the same disjunction as that disjunct) to a tuple: (lower_M_value, upper_M_value), where either can be None if the constraint does not have a lower or upper bound (respectively).

Parameters:

model (A GDP model that has been transformed with multiple-BigM)

get_src_constraint()

Return the original Constraint whose transformed counterpart is transformedConstraint

Parameters:
  • transformedConstraint (Constraint, which must be a component on one of)

  • of (the BlockDatas in the relaxedDisjuncts Block)

  • block (a transformation)

get_src_constraints(transformedConstraint)[source]

Return the original Constraints whose transformed counterpart is transformedConstraint

Parameters:
  • transformedConstraint (Constraint, which must be a component on one of)

  • of (the BlockDatas in the relaxedDisjuncts Block)

  • block (a transformation)

get_src_disjunct()

Return the Disjunct object whose transformed components are on transBlock.

Parameters:

transBlock (BlockData which is in the relaxedDisjuncts IndexedBlock) – on a transformation block.

get_src_disjunction()

Return the Disjunction corresponding to xor_constraint

Parameters:

xor_constraint (Constraint, which must be the logical constraint) – (located on the transformation block) of some Disjunction

get_transformed_constraints()

Return the transformed version of srcConstraint

Parameters: