MCPP_visitor

(类来自 pyomo.contrib.mcpp.pyomo_mcpp)

class pyomo.contrib.mcpp.pyomo_mcpp.MCPP_visitor(expression, improved_var_bounds=None)[source]

基础类:StreamBasedExpressionVisitor

从相应的Pyomo表达式创建一个MC++表达式。

该类遍历一个pyomo表达式树,并构建相应类型的McCormick表达式。

关于内存管理的注意事项:MCPP_visitor 将返回一个指向在 C 接口内动态分配的 MC++ 区间对象的指针。调用者有责任对该对象调用 mcpp_lib.release() 以防止内存泄漏。

__init__(expression, improved_var_bounds=None)[source]

方法

__init__(表达式[, 改进的变量边界])

acceptChildResult(node, data, child_result, ...)

beforeChild(node, child, child_idx)

exitNode(node, data)

finalizeResult(node_result)

register_num(num)

注册一个新数字:参数、变量或数字常量。

register_var(var, lb, ub)

注册一个新变量。

walk_expression()

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

walk_expression_nonrecursive(expr)

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

属性

client_methods

成员文档

register_num(num)[source]

注册一个新数字:参数、变量或数字常量。

register_var(var, lb, ub)[source]

注册一个新变量。

walk_expression()[source]

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

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

walk_expression_nonrecursive(expr)

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

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