分段线性到MIP

(类来自 pyomo.contrib.piecewise.transform.piecewise_to_mip_visitor)

class pyomo.contrib.piecewise.transform.piecewise_to_mip_visitor.PiecewiseLinearToMIP(transform_pw_linear_expression, transBlock)[source]

基础类:StreamBasedExpressionVisitor

在创建等效的MIP公式时,用于替换分段线性表达式的表达式遍历器。

Parameters:
  • transform_pw_linear_expression (function) – 一个接受分段线性表达式(PiecewiseLinearExpression)、其父分段线性函数(PiecewiseLinearFunction)和转换块(transformation Block)的回调函数。它需要将分段线性表达式转换为MIP形式,并返回将在表达式中替换它的变量(Var)或其他表达式。

  • transBlock (Block) – 传递给上述回调的转换块

__init__(transform_pw_linear_expression, transBlock)[source]

方法

__init__(transform_pw_linear_expression, ...)

beforeChild(node, child, child_idx)

exitNode(node, data)

initializeWalker(expr)

walk_expression(expr)

遍历一个表达式,调用已注册的回调函数。

walk_expression_nonrecursive(expr)

非递归地遍历表达式,调用已注册的回调函数。

属性

client_methods

finalizeResult

成员文档

walk_expression(expr)

遍历一个表达式,调用已注册的回调函数。

这是运行访问者的标准接口。它默认使用访问者的高效递归实现,如果递归堆栈太深,则回退到walk_expression_nonrecursive()

walk_expression_nonrecursive(expr)

非递归地遍历表达式,调用已注册的回调函数。

这个例程对于深度(或不平衡)树来说比递归遍历更安全。然而,它比递归实现稍微慢一些。