ExpressionBoundsVisitor

(类来自 pyomo.contrib.fbbt.expression_bounds_walker)

class pyomo.contrib.fbbt.expression_bounds_walker.ExpressionBoundsVisitor(leaf_bounds=None, feasibility_tol=1e-08, use_fixed_var_values_as_bounds=False)[源代码]

基础类:StreamBasedExpressionVisitor

Walker 用于从叶节点到根节点计算表达式的边界,并缓存终端节点的边界(变量和表达式)。

注意:如果模型上有任何变化(例如,变量边界、固定、可变参数值等),那么你需要创建一个新的walker实例,或者清除self.leaf_bounds!

Parameters:
  • leaf_bounds (用于缓存表达式叶子节点边界的ComponentMap) – 树

  • feasibility_tol (float, 区间算术的可行性容差) – 计算

  • use_fixed_var_values_as_bounds (bool, 是否使用不使用) – 固定变量的值作为这些变量的上下界,或者忽略固定状态并使用边界。如果您不希望在计算边界有效期间变量的固定状态发生变化,请设置为‘True’。

__init__(leaf_bounds=None, feasibility_tol=1e-08, use_fixed_var_values_as_bounds=False)[源代码]

方法

__init__([leaf_bounds, feasibility_tol, ...])

beforeChild(node, child, child_idx)

exitNode(node, data)

initializeWalker(expr)

walk_expression(expr)

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

walk_expression_nonrecursive(expr)

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

属性

client_methods

成员文档

walk_expression(expr)

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

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

walk_expression_nonrecursive(expr)

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

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