表达式值访问器

(类来自 pyomo.core.expr.visitor)

class pyomo.core.expr.visitor.ExpressionValueVisitor[源代码]

基础类:object

注意

这个类是PyUtilib ValueVisitor类的定制版本,专门用于高效遍历Pyomo表达式树。然而,这个类并不是PyUtilib ValueVisitor类的子类,因为所有关键方法都已被重新实现。

__init__()

方法

__init__()

dfs_postorder_stack(node)

使用栈实现进行后序深度优先搜索。

finalize(ans)

此方法定义了此类中搜索方法的返回值。

visit(node, values)

访问树中的一个节点,并使用其子节点的值计算其值。

visiting_potential_leaf(node)

访问一个节点,如果它是叶子节点,则返回其值。

成员文档

dfs_postorder_stack(node)[source]

使用栈实现进行后序的深度优先搜索。

注意

此方法与PyUtilib的ValueVisitor.dfs_postorder_stack方法具有相同的功能。不同之处在于,此方法专门为高效遍历Pyomo表达式树而设计。

Parameters:

node – 表达式树的根节点 被搜索的。

Returns:

返回值由finalize()函数确定,该函数可以由用户定义。

finalize(ans)[source]

此方法定义了此类中搜索方法的返回值。

默认实现返回初始节点(也称为根节点)的值,因为此访问者模式计算并返回每个节点的值,以便能够计算此值。

Parameters:

ans – 搜索方法计算的最终值。

Returns:

搜索后的最终值。默认情况下,简单地返回 ans

visit(node, values)[source]

访问树中的一个节点,并使用其子节点的值计算其值。

此方法应由创建子类的用户重写。

Parameters:
  • node – 树中的一个节点

  • values – 该节点子节点的值列表

Returns:

该节点的,是使用values计算的

visiting_potential_leaf(node)[source]

访问一个节点,如果它是叶子节点,则返回其值。

注意

此方法需要为特定的访问者应用程序重写。

Parameters:

node – 树中的一个节点

Returns:

(flag, value)。如果 flag 为 False, 则该节点不是叶子节点,且 valueNone。 否则,value 是该节点的计算值。

Return type:

一个元组