将表达式转换为前缀表示法

(函数来自 pyomo.core.expr.compare)

pyomo.core.expr.compare.convert_expression_to_prefix_notation(expr, include_named_exprs=True)[source]

此函数将pyomo表达式转换为看起来非常像前缀表示法的列表。结果可用于等式比较以比较表达式树。

请注意,此函数返回的数据结构将来可能会发生变化。然而,我们将确保结果可以用于相等比较。

还请注意,如果期望相等比较返回True,则结果应仅用于相等比较。如果被比较的表达式预期不同,则相等比较通常会返回错误,而不是返回False。

m = ConcreteModel() m.x = Var() m.y = Var()

e1 = m.x * m.y e2 = m.x * m.y e3 = m.x + m.y

convert_expression_to_prefix_notation(e1) == convert_expression_to_prefix_notation(e2) # 正确 convert_expression_to_prefix_notation(e1) == convert_expression_to_prefix_notation(e3) # 错误

然而,可以使用compare_expressions函数:

compare_expressions(e1, e2) # 真 compare_expressions(e1, e3) # 假

Parameters:

expr (NumericValue) – 一个Pyomo表达式、变量或参数

Returns:

prefix_notation – 前缀表示法中的表达式

Return type:

list