傅里叶-莫茨金消元变换
(类来自 pyomo.contrib.fme.fourier_motzkin_elimination)
- class pyomo.contrib.fme.fourier_motzkin_elimination.Fourier_Motzkin_Elimination_Transformation[source]
基础类:
Transformation从线性模型中排除指定的变量。
- This transformation requires the following keyword argument:
- vars_to_eliminate: A user-specified list of continuous variables to
从模型中移除项目
转换将停用模型的原始约束,并创建一个名为“_pyomo_contrib_fme_transformation”的新块,其中包含投影的约束。请注意,由于原始模型和转换后的模型之间没有明显的映射关系,此转换将扁平化原始模型的结构。
方法
__init__()初始化转换对象
apply(model, **kwds)已弃用。
apply_to(model, **kwds)将转换应用于给定的模型。
create_using(model, **kwds)使用此转换创建一个新模型
post_process_fme_constraints(m, solver_factory)解决一系列线性规划问题的函数,用于检查约束是否相互隐含。
属性
CONFIG成员文档
- apply(model, **kwds)
已弃用。
自版本4.3.11323起已弃用:Transformation.apply() 已被弃用。请使用 Transformation.apply_to() 进行原地转换,或使用 Transformation.create_using() 创建新的独立转换模型实例。
- apply_to(model, **kwds)
将转换应用于给定的模型。
- create_using(model, **kwds)
使用此转换创建一个新模型
- post_process_fme_constraints(m, solver_factory, projected_constraints=None, tolerance=0)[source]
解决一系列线性规划问题的函数,用于检查约束是否相互隐含。删除任何隐含的约束。
- Parameters:
m (一个模型,已经用FME转换过。注意,如果约束) – 已被添加、激活或停用,我们将检查模型整个活动部分的冗余。如果你在FME之后直接调用这个,你只是在检查投影约束内的冗余,否则这取决于用户。
solver_factory (一个SolverFactory对象 (使用solver构造) – 可以解决模型上活动约束的连续松弛问题。也就是说,如果你有与投影变量无关的非线性约束,你需要要么停用它们,要么提供一个能够正确处理这些约束的solver。
projected_constraints (约束列表的投影约束。) – 默认值为 None,在这种情况下我们假设 FME 转换是在没有 指定其名称的情况下调用的,因此将在 私有转换块中查找它们。
tolerance (决定约束是否由其他约束隐含的容忍度) – 默认值为0,意味着如果线性规划求解发现约束可以紧但不会被违反,则移除该约束。将此值设置为一个小的正数将更保守地移除约束。将其设置为负值将导致问题放松。