AMPLRepn

(类来自 pyomo.repn.ampl)

class pyomo.repn.ampl.AMPLRepn(const, linear, nonlinear)[source]

基础类:object

AMPL NL 格式中表达式的“编译”表示。

这将以AMPL“NL”格式存储表达式的编译形式。数据结构包含6个字段:

mult

应用于此表达式的常数乘数。由:py:class`AMPLRepnVisitor`返回的:py:class`AMPLRepn`应始终具有mult == 1。

Type:

float

const

这个表达式的常数部分

Type:

float

linear

id(VarData)映射到线性系数

Type:

字典[int, float] 或 无

nonlinear

编译表达式的通用非线性部分作为一个包含两个部分的元组:

  • nl模板字符串:这是包含表达式中所有变量的占位符(%s)的NL字符串。

  • 一个可迭代对象,如果VarData ID对应于nl模板字符串中的占位符

如果没有表达式的通用非线性部分,则为None。请注意,在AMPLRepnVisitor中,这可能是一个元组片段的列表,但在退出AMPLRepnVisitor时,该列表会被连接成一个单一的元组。

Type:

元组[str, 列表[int]] 或 列表[元组[str, 列表[int]]] 或 无

named_exprs

一组ID指向在此表达式中出现的命名表达式(Expression)对象。

Type:

Set[int]

nl

这保存了此表达式的完整编译表示(包括乘数、常数、线性项和非线性片段),使用与nonlinear属性相同的格式。如果此字段不为None,则应被视为权威,因为有些NL片段无法通过{mult, const, linear, nonlinear}表示(例如,字符串参数)。

Type:

元组[str, 可迭代对象[int]]

__init__(const, linear, nonlinear)[source]

方法

__init__(const, linear, nonlinear)

append(other)

从acceptChildResult追加一个子结果

compile_nonlinear_fragment()

compile_repn([prefix, args, named_exprs])

duplicate()

to_expr(var_map)

属性

nl

mult

const

linear

nonlinear

named_exprs

成员文档

append(other)[source]

从acceptChildResult追加一个子结果

注释

该方法假设运算符为“+”。它的实现使得我们可以直接在表达式遍历器中使用AMPLRepn()作为数据对象(从而避免为自定义回调进行函数调用)。