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.
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).
Return the original Constraint whose transformed counterpart is transformedConstraint
get_src_constraints
(transformedConstraint)Return the original Constraints whose transformed counterpart is transformedConstraint
Return the Disjunct object whose transformed components are on transBlock.
Return the Disjunction corresponding to xor_constraint
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:
srcConstraint (ScalarConstraint or ConstraintData, which must be in)
Disjunct (the subtree of a transformed)