Hull_Reformulation

(类来自 pyomo.gdp.plugins.hull)

class pyomo.gdp.plugins.hull.Hull_Reformulation[source]

基础:GDP_to_MIP_Transformation

通过形成凸包重构来放松析取模型。

通过形成每个析取的外壳重构,将析取模型松弛为代数模型。

此转换接受以下关键字参数:

转换将创建一个新的Block,其名称以“_pyomo_gdp_hull_reformulation”开头。它将包含一个名为“relaxedDisjuncts”的索引Block,用于存放松弛的disjuncts。这个Block由一个整数索引,表示disjuncts被松弛的顺序。所有转换后的Disjuncts都将有一个指向其转换约束所在Block的指针,所有转换后的Disjunctions都将有一个指向相应的OR或XOR约束的指针。

Parameters:
  • perspective_function (str) – 用于分解变量的透视函数。 必须是‘FurmanSawayaGrossmann’(默认)、 ‘LeeGrossmann’或‘GrossmannLee’之一

  • EPS (float) – 用于epsilon的值 [默认: 1e-4]

  • targets (block, disjunction, 或 list这些类型) – 要转换的目标。这可以是一个块、析取,或者一个块和析取的列表 [默认值: 实例]

__init__()[源代码]

初始化转换对象。

方法

__init__()

初始化转换对象。

apply(model, **kwds)

已弃用。

apply_to(model, **kwds)

将转换应用于给定的模型。

create_using(model, **kwds)

使用此转换创建一个新模型

get_disaggregated_var(v, disjunct[, ...])

返回与变量v和分离项disjunct对应的分解变量。

get_disaggregation_constraint(original_var, ...)

返回与original_var对应的分解(重新聚合?)约束(将分解的变量与其原始变量链接)以及析取转换。

get_src_constraint()

返回其转换后的对应项为transformedConstraint的原始Constraint

get_src_disjunct()

返回其转换后的组件位于transBlock上的Disjunct对象。

get_src_disjunction()

返回与xor_constraint对应的Disjunction

get_src_var(disaggregated_var)

返回与disaggregated_var对应的原始模型变量。

get_transformed_constraints(cons)

返回srcConstraint的转换版本

get_var_bounds_constraint(v[, disjunct])

返回一个字典,将键 'lb' 和/或 'ub' 映射到约束条件,这些约束条件在 Disjunct 激活时将分解变量设置在其下限和上限范围内(分别),否则设置为 0。

属性

CONFIG

transformation_name

成员文档

apply(model, **kwds)

已弃用。

自版本4.3.11323起已弃用:Transformation.apply() 已被弃用。请使用 Transformation.apply_to() 进行原地转换,或使用 Transformation.create_using() 创建新的独立转换模型实例。

apply_to(model, **kwds)

将转换应用于给定的模型。

create_using(model, **kwds)

使用此转换创建一个新模型

get_disaggregated_var(v, disjunct, raise_exception=True)[源代码]

返回与变量v和分离项disjunct对应的分解变量。

如果 v 是一个局部变量,此方法将返回 v。

Parameters:
  • v (出现在转换后的Disjunct约束中的Var)

  • disjunct (一个转换后的Disjunct,其中v出现)

get_disaggregation_constraint(original_var, disjunction, raise_exception=True)[source]

返回与original_var和析取转换相对应的分解(重新聚合?)约束(将分解变量链接到其原始变量)。

Parameters:
  • original_var (在转换中被分解的变量) – 属于析取 disjunction

  • 析取 (包含 original_var 的转换后的析取)

get_src_constraint()

返回其转换后的对应项为transformedConstraint的原始Constraint

Parameters:
  • transformedConstraint (Constraint, 必须是其中一个组件)

  • (在relaxedDisjuncts块中的BlockDatas)

  • block (一种转换)

get_src_disjunct()

返回转换后的组件位于transBlock上的Disjunct对象。

Parameters:

transBlock (BlockData 位于 relaxedDisjuncts IndexedBlock 中) – 在转换块上。

get_src_disjunction()

返回与xor_constraint对应的Disjunction

Parameters:

xor_constraint (Constraint, 必须是逻辑约束) – (位于转换块上)的某个 Disjunction

get_src_var(disaggregated_var)[源代码]

返回与disaggregated_var对应的原始模型变量。

Parameters:

disaggregated_var (由hull创建的Var) – 作为分解变量的转换 (因此出现在某些Disjunct的转换块上)

get_transformed_constraints(cons)[source]

返回srcConstraint的转换版本

Parameters:
get_var_bounds_constraint(v, disjunct=None)[source]

返回一个字典,将键 'lb' 和/或 'ub' 映射到约束条件,这些约束条件在 Disjunct 激活时将分解变量设置在其下限和上限范围内(分别),否则将其设置为 0。

Parameters:
  • v (由船体变换创建的Var) – 分解变量(因此出现在某个Disjunct的变换块上)

  • disjunct ((对于嵌套的Disjunctions) 在层次结构中的哪个Disjunct) – 边界约束应对应的层次结构中的哪个Disjunct。 对于非嵌套模型,这是可选的,因为可以推断出来。