Convert_Pyomo2Casadi_Visitor
(类来自 pyomo.dae.simulator)
- class pyomo.dae.simulator.Convert_Pyomo2Casadi_Visitor[source]
-
表达式遍历器,用于评估由Substitute_Pyomo2Casadi_Visitor遍历器生成的表达式。
在Coopr3中,这个walker是不必要的,因为表达式可以简单地被评估。但在Pyomo5中,评估逻辑被更改为非递归的,这涉及到对表达式树中叶节点类型的检查。因此,如果树中的叶节点不是标准的Pyomo5变量类型,评估逻辑就会失败。
- __init__()
方法
__init__()dfs_postorder_stack(node)使用栈实现进行后序深度优先搜索。
finalize(ans)此方法定义了此类中搜索方法的返回值。
visit(node, values)访问已展开的节点
visiting_potential_leaf(node)访问一个潜在的叶子。
成员文档
- dfs_postorder_stack(node)
使用栈实现进行后序的深度优先搜索。
注意
此方法与PyUtilib的
ValueVisitor.dfs_postorder_stack方法具有相同的功能。不同之处在于,此方法专门为高效遍历Pyomo表达式树而设计。- Parameters:
node – 表达式树的根节点 被搜索的。
- Returns:
返回值由
finalize()函数决定,该函数可以由用户定义。
- finalize(ans)
此方法定义了此类中搜索方法的返回值。
默认实现返回初始节点(也称为根节点)的值,因为此访问者模式计算并返回每个节点的值,以便能够计算此值。
- Parameters:
ans – 搜索方法计算的最终值。
- Returns:
搜索后的最终值。默认情况下,简单地返回
ans。